Transactions

如何計算轉賬金額以完全清空賬戶?

  • August 1, 2017

所以假設我的錢包是 1 eth,我需要完全清空它,我會這樣做

Var value = web3.toWei(1) - gas

是對的嗎?

是的。您需要計算出交易將花費多少 gas(以 ETH 計),但幸運的是,簡單的 ETH 轉賬正好是 21,000 gas(我認為,請仔細檢查這個數字)。這意味著要知道有多少 ETH 將用於 gas,您需要將其乘以所選的 gas 價格(例如,10^10)。

所以你的計算需要看起來像這樣:

var gasPrice = 20*10**9;
var gas = 21000;
var attoethForGas = gasPrice * gas;
var amountToSend = web3.toWei(1) - attoethForGas;

為了計算要發送的準確值,您必須使用 JavaScript 沒有提供的精確計算。幸運的是,web3.js 已經BigNumbereth.getBalance(). 為了執行精確的數學運算,您需要使用BigNumber方法而不是使用預設的算術運算符。例如:

gasPrice = new BigNumber(web3.toWei('0.6', 'gwei'))
cost = gasPrice.mul(21000)
value = eth.getBalance(eth.accounts[0]).sub(cost)

發佈時從這些來源中提取了常量:

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