无法在Web3中将多个参数传递给合同的方法

时间:2019-04-28 09:54:44

标签: javascript blockchain web3 truffle ganache

我正在使用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);
    }

错误: Error after confirm the transaction

0 个答案:

没有答案