Я пытаюсь записать некоторые данные в тестовую сеть Ethereum Rinkeby без использования мета-маски, но при вызове метода я получаю сообщение об ошибке ниже, но мой счетчик аргументов верен
UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 246): Error: Invalid number of arguments to Solidity function
код узла
var Web3 = require('web3')
var contract = require("truffle-contract")
var quickBooks = require('../build/contracts/quickBooks.json')
Web3.providers.HttpProvider.prototype.sendAsync = Web3.providers.HttpProvider.prototype.send;
var provider = new Web3.providers.HttpProvider("https://rinkeby.infura.io/v3/KEY")
var quickBooksContract = contract(quickBooks);
quickBooksContract.setProvider(provider);
var writeToEthereum = async function(_json){
//console.log(_json)
var instance = await quickBooksContract.at('ADDRESS')
var result = await instance.write.call(_json,_json.txhash,_json.createdt,"1",_json.write_set[0].set,{
from : "ADDRESS"
})
console.log(result);
}
Твердость
Прагма экспериментальная ABIEncoderV2;
контракт quickBooks {
struct Tx{
string txId;
string timeStamp;
string blockHash;
string payLoad;
string json;
}
mapping(string => Tx) private data;
function write(string _json,string _txId,string _timeStamp,string _blockHash,string _payLoad) public returns(bool success){
data[_txId] = Tx(_txId,_timeStamp,_blockHash,_payLoad,_json);
return true;
}
function read(string _txId)public returns(Tx){
return data[_txId];
}
}