Невозможно передать несколько аргументов методу контракта в Web3 - PullRequest
0 голосов
/ 28 апреля 2019

Я использую 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);
    }

Ошибка: Error after confirm the transaction

...