是否可以清空乙太坊錢包?
當您發送交易時,您指定了 gas 價格和 gas 限制。如果它沒有使用整個 gas 限制,那麼你可以拿回一些錢。因此,似乎不可能事先知道總使用的氣體是多少,而在每個錢包中都留有零錢。
我試圖清空我的 MetaMask 錢包。我在https://ethgasstation.info/ (7)上查找了合理的汽油價格。我輸入了要發送的總餘額,MetaMask 當然因為費用而說“餘額不足”。我將gas價格更改為7,複製最高費用,拒絕交易,輸入金額等於(總餘額-最高費用)的新交易,再次將gas價格更改為7。發送後(幾小時),我的 MetaMask 錢包裡只剩下 0.09 美元!儘管我試圖仔細計算確切的金額,但似乎不可能清空錢包。
MetaMask 幫助說 MyEtherWallet 具有“發送最大值”功能,但它是如何工作的呢?
https://support.metamask.io/kb/article/14-sending-max-balance
同時發送您的全部餘額的一種簡單方法是將您的 MetaMask 帳戶導出到具有“發送最大值”功能的 MyEtherWallet,然後從那裡發送到交易所。
您不能提前知道實際使用的氣體,這不是真的嗎?如果您嘗試準確計算 gas 限制,那麼您有可能會耗盡您所有的 gas,而您的交易仍然失敗!(我以前也有過這種情況。)
如果您將乙太幣發送到 EOA(外部擁有的賬戶,而不是合約),那麼使用的氣體將始終為 21000 氣體,因此可以輕鬆正確地發送最大值。(我個人在合併帳戶時曾多次這樣做,並且餘額正好為 0。)
如果您將乙太幣發送到合約中,通常仍然可以完全正確地獲取氣體。有一個 JSON-RPC 方法
eth_estimateGas
可以模擬您即將進行的交易並返回使用的氣體量。我希望 MetaMask 預設使用該值作為氣體限制,但我不確定。除非合約根據某些可變狀態消耗不同數量的氣體(並且該狀態在您的交易被探勘之前發生變化),否則這應該正是您的實際交易使用的氣體量。我猜 MEW 的“發送最大值”發送的最大值是假設達到了完整的氣體限制。因此,如果您的 gas 限制設置高於實際消耗的 gas,那麼就會剩下一點 ether。
你是對的,如果有疑問,最好稍微高估你需要的氣體量(設置一個稍微高的氣體限制),然後把剩餘的乙太幣註銷。