Out-of-Gas

警告!合約執行過程中遇到的錯誤超過____G一個_這在噸這FG一種sOut of gas

  • January 29, 2022

這是什麼 ?我正在嘗試從我的 Nano S Ledger 向 Bittrex 帳戶發送交易,不明白髮生了什麼?我還需要購買Gas嗎???

https://etherscan.io/tx/0x32fc78fa8a7074d98cd0e32005b7485a44af1423e688637f55c3ce573b150d78

您正在發送到契約地址。你交易的gas limit 21000太低了。較早的成功交易的氣體限制為 90000。

您應該查看 Bittrex 文件,詢問他們的支持使用哪個值來限制氣體。

您的交易被成功挖出,即被礦工納入區塊鏈,但因gas不足導致執行失敗。Gas 是乙太坊中執行複雜性的衡量標準。當您發送交易時,您指定兩個與氣體相關的參數:“氣體限制”和“氣體價格”。氣體限制是您允許交易在執行期間花費的氣體量。Gas 價格是您將為每個 Gas 單位支付的 Wei (1 Wei = 10^-18 Ether)。您為執行交易可能需要支付的總費用受 Gas 限制乘以 Gas 價格 Wei 的限制。

交易正在做的每一件事,都需要消耗一些燃料。最簡單的交易,只是將一些乙太幣從一個外部擁有的地址(即普通的非智能合約地址)轉移到另一個,不攜帶任何額外數據,也不會導致任何字節碼的執行,成本為 21000 gas。這個金額被稱為內在氣體成本:它是為要執行的交易的唯一事實而收取的。

包含在交易中的每個字節的額外數據都需要額外的 gas。與交易一起執行的每條字節碼指令也會消耗一些氣體。

對於您的交易,gas 限制設置為 21,000,gas 價格為每 gas 單位 21,000,000,000 Wei(0.000000021 Ether)。您的交易沒有附加任何數據,但目標地址是智能合約,而不是外部擁有的地址:0xa0380ee140befb7f0c055d5fc06702f3546cbbea。這意味著執行您的交易意味著執行該合約的程式碼。因此,21,000 的氣體限制對於您的交易來說絕對是太低了。它僅涵蓋內在的 gas 成本,但不涵蓋字節碼執行。

如您所見,成功執行的類似交易,每筆交易消耗 21,051 個 gas:0x5ddaacaf3d2fb3093018b085a9e82083b36e688d316ab82465cd1cb9d073dabb , 0xff10f9c4d7e17c4eb6ed10f28ffd4863bfe20a8deb2cdedbcc36

所以,基本上你應該做的是用更高的氣體限制重新發送你的交易,可能是 21,051 或更多。

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