Web3js
如何擷取錯誤事件(錯誤:返回錯誤:gas * price + value 資金不足)以在乙太坊網路上發送 Tether?
此程式碼用於將繫繩從一個地址發送到乙太坊網路上的另一個地址。
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})