Simplify generateTransaction function

This commit is contained in:
Ayanami 2022-02-05 21:17:18 +09:00
parent 9ec34aa423
commit 9e1eeae948
No known key found for this signature in database
GPG Key ID: 0CABDF03077D92E4

23
cli.js
View File

@ -59,7 +59,7 @@ async function printERC20Balance({ address, name, tokenAddress }) {
} }
async function submitTransaction(signedTX) { async function submitTransaction(signedTX) {
console.log("Submitting raw transaction to the node"); console.log("Submitting transaction to the remote node");
await web3.eth.sendSignedTransaction(signedTX) await web3.eth.sendSignedTransaction(signedTX)
.on('transactionHash', function (txHash) { .on('transactionHash', function (txHash) {
console.log(`View transaction on block explorer https://${getExplorerLink()}/tx/${txHash}`) console.log(`View transaction on block explorer https://${getExplorerLink()}/tx/${txHash}`)
@ -73,7 +73,6 @@ async function generateTransaction(to, encodedData, value = 0) {
const nonce = await web3.eth.getTransactionCount(senderAccount) const nonce = await web3.eth.getTransactionCount(senderAccount)
const gasPrice = await fetchGasPrice() const gasPrice = await fetchGasPrice()
let gasLimit; let gasLimit;
let tx = {}
async function estimateGas() { async function estimateGas() {
const fetchedGas = await web3.eth.estimateGas({ const fetchedGas = await web3.eth.estimateGas({
@ -84,10 +83,10 @@ async function generateTransaction(to, encodedData, value = 0) {
data : encodedData data : encodedData
}) })
const bumped = Math.floor(fetchedGas * 1.3) const bumped = Math.floor(fetchedGas * 1.3)
gasLimit = web3.utils.toHex(bumped) return web3.utils.toHex(bumped)
} }
if (encodedData) { if (encodedData) {
await estimateGas(); gasLimit = await estimateGas();
} else { } else {
gasLimit = web3.utils.toHex(21000); gasLimit = web3.utils.toHex(21000);
} }
@ -95,7 +94,7 @@ async function generateTransaction(to, encodedData, value = 0) {
async function txoptions() { async function txoptions() {
// Generate EIP-1559 transaction // Generate EIP-1559 transaction
if (netId == 1) { if (netId == 1) {
tx = { return {
to : to, to : to,
value : value, value : value,
nonce : nonce, nonce : nonce,
@ -105,7 +104,7 @@ async function generateTransaction(to, encodedData, value = 0) {
data : encodedData data : encodedData
} }
} else if (netId == 5 || netId == 137 || netId == 43114) { } else if (netId == 5 || netId == 137 || netId == 43114) {
tx = { return {
to : to, to : to,
value : value, value : value,
nonce : nonce, nonce : nonce,
@ -115,7 +114,7 @@ async function generateTransaction(to, encodedData, value = 0) {
data : encodedData data : encodedData
} }
} else { } else {
tx = { return {
to : to, to : to,
value : value, value : value,
nonce : nonce, nonce : nonce,
@ -125,16 +124,10 @@ async function generateTransaction(to, encodedData, value = 0) {
} }
} }
} }
await txoptions(); const tx = await txoptions();
const signed = await web3.eth.accounts.signTransaction(tx, PRIVATE_KEY); const signed = await web3.eth.accounts.signTransaction(tx, PRIVATE_KEY);
if (!isLocalNode) { if (!isLocalNode) {
await web3.eth.sendSignedTransaction(signed.rawTransaction) await submitTransaction(signed.rawTransaction);
.on('transactionHash', function (txHash) {
console.log(`View transaction on block explorer https://${getExplorerLink()}/tx/${txHash}`)
})
.on('error', function (e) {
console.error('on transactionHash error', e.message)
});
} else { } else {
console.log('\n=============Raw TX=================','\n') console.log('\n=============Raw TX=================','\n')
console.log(`Please submit this raw tx to https://${getExplorerLink()}/pushTx, or otherwise broadcast with node cli.js broadcast command.`,`\n`) console.log(`Please submit this raw tx to https://${getExplorerLink()}/pushTx, or otherwise broadcast with node cli.js broadcast command.`,`\n`)