Web3js

sendRawTransaction 未出現/未送出到網路

  • September 18, 2017

我是 Javascript 的新手,所以請耐心等待。我已經成功地讓 web3.js 在 HTML 文件中工作,並且 getBalances 可以正常工作。(我暫時不想使用 Node.js)

但是現在我堅持發送原始交易。控制台告訴我創建了一個事務雜湊,但是當我在 Etherscan 上搜尋時,事務沒有出現。在“發件人”和“收件人”地址之間也沒有 ETH 轉移。

我在 HTML 文件中的程式碼:

     const gasLimitInHex = web3.toHex(30000)

     const valueInWei = web3.toWei('0.05', 'ether')
     const valueWeiInHex = web3.toHex(valueInWei)

     const rawTx = {
       gasLimit: gasLimitInHex,
       to: receiveEthAddress,
       value: valueWeiInHex
     }

     const tx = new EthJS.Tx(rawTx)
     tx.sign(privateKey)

     var serializedTx = tx.serialize()

     console.log(serializedTx.toString('hex'))

     web3.eth.sendRawTransaction('0x' + serializedTx.toString('hex'), function(err, hash) {
       if (!err) {
         console.log(hash)
       } else {
         console.log(err)
       }
     })

序列化的 tx:f866808082753094e1677d96bb82668bb188ec71498db5c0c0c4830e87b1a2bc2ec50000801ba0754d70a1dcbca6a7486fafeed8e63c8738b401af562697c2d97c990c4ac3d543a02a0664aeaa900c4d1d8ad94c3c69b76bcaa5f5c3e8307c4d63c86d60b70f4d7b

web3.js 返回的事務雜湊:0x9b89dad10e235d9bbd4b48f6a9768b557861281645b6d0702115e4a7141b0f41

僅供參考,我正在使用 myetherwallet API ( https://api.myetherapi.com/eth )

感謝@Ismael 為我指明了正確的方向。

nonce 和 gasPrice 都失去了。

對於隨機數:

var nonce = web3.eth.getTransactionCount(0xaddress);

對於gasPrice:

var gasPriceInWei = web3.toWei('10', 'gwei');

nonce 和 gasPrice 都需要轉換為十六進制。

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