Evm

執行環境變數 Iw 和 Ie

  • October 3, 2018

根據黃皮書,其中一個執行環境變數是:

Iw,對狀態進行修改的許可。

我找不到有關它的更多資訊,例如它是如何設置的以及它可以獲得什麼值(我猜是 1 或 0)


另外我想確保變數

即,目前消息呼叫或合約創建的深度(即目前正在執行的 CALL 或 CREATE 的數量)。

僅對每個 CALL 和 CREATE 操作碼減一,但絕不會為 DELEGATECALL 或 CALLCODE

我的回答是基於目前版本的黃皮書

I_w

Iw,對狀態進行修改的許可

關於異常停止的段落解釋了這個標誌的重要性:

在此處輸入圖像描述

僅考慮最後一個條件,它表示如果修改權限為假並且目前指令是由指定的W(即可能改變狀態的指令),那麼我們有一個例外。為了完整起見,我還報告了功能W

在此處輸入圖像描述

I_w 通常設置為T(true),並且F僅在執行 STATICCALL 時設置為。


僅對每個 CALL 和 CREATE 操作碼減一,但絕不會為 DELEGATECALL 或 CALLCODE

這是錯誤的。此外,DELEGATECALL 和 CALLCODE 遞增和遞減呼叫堆棧(在黃皮書中指定)。

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