Получение ошибки в web3. js относительно записи tx - PullRequest
2 голосов
/ 29 мая 2020

Привет, я получаю сообщение об ошибке

Error: [ethjs-query] while formatting inputs '[{"0":false}]' for method 'getTransactionReceipt' error: Error: [ethjs-format] hex string '[object Object]' must be an alphanumeric 66 utf8 byte hex (chars: a-fA-F) string, is 0 bytes
    at ethjs.min.js:11
    at new Promise (<anonymous>)
    at i.getTransactionReceipt (ethjs.min.js:11)
    at i.e.<computed> [as getTransactionReceipt] (ethjs.min.js:11)
    at ethjs.min.js:11

Я вызываю функцию инвестирования в смарт-контракт:

function invest()public payable onlyAmount() firstExist  returns(bool){    

//  balances[msg.sender]=msg.value;
 invested[msg.sender]+= msg.value;
 isInvested[msg.sender]=true;
 users[msg.sender].creationTime=now;
  commission=(msg.value.mul(10)).div(100);
 forCreators(commission);
emit Invest(msg.sender,msg.value);
 return true;
}

Где Как Я вызываю функцию из web3. js как

tokenContract.invest({
    from: user_address,
    gasLimit: web3.toHex(8000000),
    gasPrice: web3.toHex(web3.toWei('10', 'gwei')),
    value : web3.toHex( web3.toWei(0.25, 'ether'))

  })
  .then(txHash =>  eth.getTransactionSuccess(txHash)
      .then(receipt => {
        alert("Sigup Has been successful",receipt);
      })
  )
  .catch((err) => {
    alert("Error couldnot signUp");
    console.log(err);
  })

эта ошибка отображается во всех функциях записи .. Чтение работает нормально. Я никогда раньше не сталкивался с этой ошибкой. Я попытался развернуть контракт на Ropsten и Rinkeby с той же ошибкой. И эти контрактные функции отлично работают на etherscan и remix. В web3 js даже Metamask не отображается для транзакций. В чем может быть проблема?

1 Ответ

0 голосов
/ 29 мая 2020

, поэтому, как я уже упоминал выше, я использовал eth. js. Так почему-то проблема была в этом. Я работал, не используя eth js, а просто используя web3 js. Поскольку я уже реализовал все функции чтения и все функциональные возможности моего приложения узла, менять все было пустой тратой времени. сделал 2 переменные diff: 1 из eth js (для чтения) и 1 из чистого web3 js

const NameContract = web3.eth.contract(tokenABI);
window.tokenContract2 = NameContract.at(tokenAddress); //web3js


 window.tokenContract = eth.contract(tokenABI).at(tokenAddress); ethjs

, тогда я использовал функцию типа

tokenContract2.regUser({ from: user_address, gas: 400000 },
(err, res) => { /** callback **/ }
)

необходимы обратные вызовы потому что метамаск выдает ошибку.

Я все еще хотел бы знать root проблемы. Но так как у меня было мало времени, мне пришлось продолжить работу над проектом

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...