Light-Clients

發送原始交易不成功

  • July 23, 2017

我正在為專用網路開發一個輕錢包。我使用 ethereumjs-accounts 在本地儲存帳戶,使用 ethereum-tx 簽署交易。我已經部署了自定義令牌契約。這是我的txParams對象:

       nonce: nonce, //transaction count
       gasPrice: "0x0", //private network do not need gas
       gas: "0x0",
       from: account, //sender account
       to: contractParams.address,
       value: "0x0",
       data: this.contractInstance.sendFunds.getData(
           '0x07a204163f78bf9293c996f8c6d98a058a324b2d',
           '0xd9f0443219296744c91929fc0818b3e42d90b2eb',
           2,
           ''
       ) //calling functions to send tokens from 1 account to another

然後我簽署交易並將其發送到鏈:

   let tx = new EthereumTx(txParams);

   tx.sign(privateKey);

   let serializedTx = '0x' + tx.serialize().toString('hex');

   this.web3.eth.sendRawTransaction(serializedTx, (err, hash) => {
       if(err) {
           console.info(err);
       }else{
           console.log('Transaction hash: ', hash);
       }
   });

發送交易後,我收到了 tx 雜湊,但沒有任何反應。我可以在發送後 30-40 秒內通過雜湊獲取交易,然後交易消失,如果我在 40 秒後嘗試獲取它 - 我得到null.

任何想法可能導致此問題以及如何調試它?

交易對象from web3.eth.getTransaction(); 在此處輸入圖像描述

nonce和都使用前導前綴contractParams.address進行十六進制編碼?0x

ps)如果長度是奇數,最好用前導填充所有十六進制編碼值0。以確保長度是偶數。(即:0x1應輸入為0x01等)

pps)txParams.from可以刪除..它沒有意義

引用自:https://ethereum.stackexchange.com/questions/16011