Я использую web3js v1.0.0-beta.34 для отправки подписанных транзакций на узел geth Geth / v1.8.13-unstable-2e0391ea / linux-amd64 / go1.10.3 в петле.
Проблема: на начальных итерациях цикла Node.js выводит хеш транзакции на консоль. Но когда цикл работает более нескольких секунд, мы начинаем получать ошибку:
Error: Failed to check for transaction receipt: {} at Object._fireError (/Users/x/test/node_modules/web3-utils/src/index.js:56:17) at /Users/x/test/node_modules/web3-core-method/src/index.js:260:23 at <anonymous>
В чем может быть причина этой проблемы?
test.js
for (var i = nonce; i < nonce + 1000; i++) {
nounce = web3.utils.numberToHex(nonce)
receivingAddr = getRandomWalletAddress()
var rawTx = {
nonce: i,
gasPrice: gasPriceHex,
gasLimit: gasLimitHex,
to: receivingAddr,
value: txValue,
data: txData
}
var tx = new Tx(rawTx);
tx.sign(key);
var serializedTx = tx.serialize();
web3.eth.sendSignedTransaction('0x' + serializedTx.toString('hex'))
.on('receipt', (receipt) => {
console.log(receipt.transactionHash)
})
}
rawTx
(особенно то, как вы генерируетеtxData
). Вы сказали, что получаете хэши транзакций ... каковы результаты? Есть одна действительно неприятная проблема с web3js в том, что, поскольку майнинг транзакций обычно занимает так много времени, библиотека выдаст вам ошибки тайм-аута, даже если все в порядке. Но это, похоже, другое. - person Adam Kipnis   schedule 19.07.2018