Попытайтесь создать новую учетную запись и отправить некоторые eth на другую учетную запись с помощью библиотеки web3.
const account = web3.eth.accounts.create()
Теперь я хочу отправить eth с этой учетной записи (я отправил несколько eth на эту учетную запись) У меня есть несколько слабых мест:
- Не совсем понимаю, что это такое 'nonce' Я попытался установить 0 или 1.
- поле chainId. Что это? Просто взято из некоторого примера.
ошибка:
Ошибка: возвращенная ошибка: у tx нет правильного одноразового номера. одноразовый номер учетной записи: 1 index. js: 140: 36 в XMLHttpRequest.request.onreadystatechange (\ node_modules \ web3-provider-http \ src \ index. js: 110: 13) в XMLHttpRequestEventTarget.dispatchEvent (\ node_modules \ xhr2-cookies \ dist \ xml -http-request-event-target. js: 34: 22) в XMLHttpRequest._setReadyState (\ node_modules \ xhr2-cookies \ dist \ xml -http-запрос. js: 208: 14 ) в XMLHttpRequest._onHttpResponseEnd (\ node_modules \ xhr2-cookies \ dist \ xml -http-request. js: 318: 14) в IncomingMessage. (\ node_modules \ xhr2-cookies \ dist \ xml -http-request. js: 289: 61) в IncomingMessage.emit (events. js: 215: 7) в IncomingMessage.EventEmitter.emit (домен. js: 498: 23) в endReadableNT (_stream_readable. js: 1184: 12) в processTicksAndRejected (внутренний / process / task_queues. js: 80: 21)
код:
const Web3 = require('web3')
const Tx = require('ethereumjs-tx').Transaction
const rpcURL = 'HTTP://127.0.0.1:7545' // Your RCkP URL goes here
const web3 = new Web3(rpcURL)
var privateKey = "aa424f25bcb01b0dd9622cac2b6f1a51432a7b1c45a4a5b74040999f903d7b8e"//get from created account by web3.eth.accounts.create()
var addr = "0x9658BdD2a5CE0fFd202eF473E033DEE49e28d282"
const toAddress = '0xc74fB4Ac0011D4a78F35b7AE88407c83d95372E0'
const amountToSend = 0.5
var gasPrice = 2;//or get with web3.eth.gasPrice
var gasLimit = 3000000;
var rawTransaction = {
"from": addr,
nonce: '0x00',//maybe this is problem
gasPrice: '0x09184e72a000',
gasLimit: '0x2710',
"to": toAddress,
"value": web3.utils.toWei(amountToSend, "ether") ,
"chainId": 'mainnet'//4 //not really understand chain
};
var privKey = new Buffer(privateKey, 'hex');
var tx = new Tx(rawTransaction);
tx.sign(privKey);
var serializedTx = tx.serialize();
web3.eth.sendSignedTransaction('0x' + serializedTx.toString('hex'), function(err, hash) {
if (!err)
{
console.log('Txn Sent and hash is '+hash);
}
else
{
console.error(err);
}
});