Я пишу приложение Nodejs с использованием Express Framework. Я пытаюсь отправить один эфир из одной учетной записи в другую, и хотя я получаю хэш транзакции, транзакция не проходит. Я уже читал, что цена на газ может быть слишком низкой, но опять же это не сработало, поскольку я установил его даже на 5.000.000. Когда я вызываю web3.eth.getTransactionReceipt('txHash')
, он возвращает ноль, поэтому я предполагаю, что транзакция не удалась.
Вот мой код:
router.get('/', (req, res, next) => {
// Build a transaction object
web3.eth.getTransactionCount(ad2, (err, txCount) => {
const txObject = {
nonce: toHex(txCount),
to: ad1,
value: toHex(web3.utils.toWei('1', 'ether')),
gasLimit: toHex(21000),
gasPrice: toHex(web3.utils.toWei('12', 'gwei'))
}
// Sign the transaction
const tx = new Tx(txObject);
tx.sign(pk2);
const serializedTx = tx.serialize();
const raw = '0x' + serializedTx.toString('hex')
// Broadchast the transaction to the network
web3.eth.sendSignedTransaction(raw, (err, txHash) => {
console.log('txHash:', txHash);
web3.eth.getTransactionReceipt(txHash, (err, receipt) => {
console.log('receipt: ', receipt);
if (receipt == null) {
// Render the page
res.render('sendTransaction', {
receiptSuccess: 0,
blockHash: 'No Receipt Found'
});
} else {
// Render the page
res.render('sendTransaction', {
receiptSuccess: 1,
blockHash: receipt.blockHash,
blockNumber: receipt.blockNumber,
transactionHash: receipt.transactionHash,
from: receipt.from,
to: receipt.to,
contractAddress: receipt.contractAddress,
gasUsed: receipt.gasUsed
});
}
});
});
});
});
Что мне нужно сделать, чтобы отправить транзакцию с адреса1 наадрес2 успешно? Чего не хватает в приведенном выше коде?
Спасибо!