Я использую Web3 для взаимодействия с моим контрактом на ethereum.Проблема в том, что я не могу передать более одного аргумента при вызове метода.Если я передаю два или более, не работает, даже если в моем контракте метод определяет, что получают два или более аргументов.
Я уже пытаюсь инкапсулировать все аргументы внутри объекта / массива / и т. Д., Ничего не работает.
Это отлично работает.
adicionaFatura: function(valor,data,hashF){
let self = this
return new Promise((resolve, reject) => {
self.instance.adicionaFatura(
hashF,
{from: window.web3.eth.accounts[0]}
).then(exists => {
resolve(exists)
}).catch(err => {
reject(err)
console.log('erro: ' + err)
})
})
Это не работает.
adicionaFatura: function(valor,data,hashF){
let self = this
return new Promise((resolve, reject) => {
self.instance.adicionaFatura(
valor,
data,
hashF,
{from: window.web3.eth.accounts[0]}
).then(exists => {
resolve(exists)
}).catch(err => {
reject(err)
console.log('erro: ' + err)
})
})
Код твердости
function adicionaFatura(uint valor, string memory emitData, bytes32 hash) public {
require(isMember(msg.sender) == true,"Sender not authorized.");
Fatura memory myStruct = Fatura({valorTotal:valor, data:emitData, estadoVenda:1});
KeysFaturas.push(hash);
transacoes[hash] = myStruct;
emit nextStage(hash,1);
}
Ошибка: