web3.eth.sendSignedTransaction不是函数

时间:2019-04-02 06:49:34

标签: ethereum web3

我使用了web3.eth.sendSignedTransaction函数,但是它不起作用。

这是问题代码

  var nonce = web3.eth.getTransactionCount("<from address>");

  const txParams ={
      nonce:web3.utils.toHex(nonce),
      to : "<to address>",
      value : web3.utils.numberToHex(web3.utils.toWei('0.01','ether')),
      gasPrice :web3.utils.numberToHex(web3.utils.toWei('1','Gwei')),
      gasLimit:web3.utils.numberToHex('300000'),
      chainId :3          //Ropsten
  }
  const tx = new Tx(txParams);
  const privateKey = Buffer.from("<primary key>",'hex');
  tx.sign(privateKey);

  const serializedTx = '0x' + tx.serialize().toString('hex');
  console.log(serializedTx);
  web3.eth.sendSignedTransaction(serializedTx, function(err,txId){if(err){ console.log(' : ',txId)}});

我检查了“ serializedTx”日志。

  

0xf86d827b7d843b9aca00830493e0944f16477b610cad87e1f506e42208bc36bce6aa4887f8b0a10e470000802aa016a1bc13133cbbfd0cdb5aa0da5e049e0eba3972bcbaf79e7f7e7e7e7e7b3e7b3e7b3e7b3e7b3e3e3b3e3b3e3b3e6e3b1e7b3b0e7b0e0b0e0b0e0b0e0b0e0b0e0b0e0b0e0b0e0b0b0b0b0b0e0b0e8b0b0b0b0b0b0b0b0b0b0b0b0c

我认为它太长了...

以太也无法转移。

我尝试过

web3.utils.toWei('0.01', 'ether')

"web3.utils.toWei(0.01, 'ether')"

但这是错误的。

  

错误代码是“请以字符串或BigNumber对象的形式传递数字,以避免精度错误。”

出什么问题了,我该怎么办?

请帮助我。

谢谢。

1 个答案:

答案 0 :(得分:0)

我找到了一种方法,这个问题消失了!我只是将web3的版本提高到1.0.0或更高版本,所以也许您可以尝试一下。 就是这样:

npm install -g web3@1.0.0-beta.52