Web3js

如何擷取錯誤事件(錯誤:返回錯誤:gas * price + value 資金不足)以在乙太坊網路上發送 Tether?

  • September 20, 2021

此程式碼用於將繫繩從一個地址發送到乙太坊網路上的另一個地址。

   const Web3 = require('web3')
   const web3 = new Web3('https://mainnet.infura.io/v3/f957dcc0cb6c430f9d32c2c085762bdf')   
   web3.eth.accounts.wallet.add('privateKey');
   var contractAbi = [];
   var tokenAddress = '0xdAC17F958D2ee523a2206206994597C13D831ec7'
   var fromAddress = '0xa73e...'
   var tokenInst = new web3.eth.Contract(contractAbi,tokenAddress);
   await tokenInst.methods.transfer(receiver, amount).send({from: fromAddress, gas: 100000})
       .then(console.log)
       .catch(console.error);

我已經檢查過上面的程式碼執行良好。

但是現在我遇到了這個錯誤(錯誤:返回錯誤:gas * price + value 資金不足),因為我的錢包裡沒有足夠的 eth。

所以,我想在下面的程式碼中添加呼叫功能,以提醒“gas 資金不足 * 價格 + 錢包價值”或提醒“提款成功!”。

await tokenInst.methods.transfer(receiver, amount).send({from: fromAddress, gas: 100000}) .then(console.log).catch(console.error);

我想知道合理的gas費用。

如果您能解決這些問題,我們將不勝感激。謝謝。

James,您可以使用合約實例上可用的estimateGas方法來檢查交易將使用的gas 量。

一旦你有了gas,你就可以將你的錢包餘額與gas * gasPrice(與你為交易選擇的任何gasPrice值)產品進行比較來解決這個錯誤。

所以你的氣體估計程式碼看起來像

let gas = await tokenInst.methods.transfer(receiver, amount).estimateGas({from: fromAddress})

引用自:https://ethereum.stackexchange.com/questions/110266