我使用了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对象的形式传递数字,以避免精度错误。”
出什么问题了,我该怎么办?
请帮助我。
谢谢。
答案 0 :(得分:0)
我找到了一种方法,这个问题消失了!我只是将web3的版本提高到1.0.0或更高版本,所以也许您可以尝试一下。 就是这样:
npm install -g web3@1.0.0-beta.52