我正在使用Web3与以太坊合约进行交互。问题是调用该方法时我不能传递多个参数。如果我通过了两个或更多个即使在我的合同中也不起作用,则该方法将定义接收两个或更多个参数。
我已经尝试将所有参数封装在对象/数组/等内部,但没有任何效果。
这很好。
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);
}