Opcode
RETURN 操作碼之後是什麼?
我用 –bin 選項編譯了一個簡單的智能合約(與 –bin-runtime 相比),並查看了彙編程式碼。我可以看到,首先,“設置”程式碼將所有帶有 CODECOPY 的執行時程式碼複製到記憶體中,然後返回;停止。
但是 RETURN 之後會發生什麼;停止?我想這會停止一切,但從邏輯上講,接下來應該執行主程式碼,所以我很困惑。
說得通,在 RETURN 之後;停止,EVM 應該繼續執行留在返回記憶體中的程式碼,但這似乎在乙太坊規範中沒有解釋?
不,在
STOP
沒有執行之後。初始化程式碼(您正在查看的內容)的工作是返回將來與新創建的合約地址相關聯的程式碼。一旦它返回該程式碼,執行就完成了。當您隨後向合約地址發送交易時,該程式碼(由初始化程式碼返回)將被執行。