Solidity
revert() 會退還交易的所有氣體還是僅退還剩餘的氣體?
根據文件
revert()
不會消耗任何氣體:請注意,斷言式異常會消耗呼叫可用的所有 gas,而從 Metropolis 版本開始,恢復式異常不會消耗任何 gas。
但我經常讀到這
revert()
將退還未使用的汽油,例如在這個答案中。我認為退還所有 gas 將為 DOS 攻擊打開大門,所以我假設只會退還未使用的 gas。但我想確認:-)
只是剩下的氣體。
revert
將保留未使用的氣體:這意味著呼叫者將擁有未使用的氣體來執行進一步的計算。 退款是不同的,你是對的,如果revert
將gas返還給呼叫者,那將允許DoS攻擊(呼叫者可以循環多次,然後revert
,循環,revert
無限次)。