Evm

現在執行的舊合約使用哪些語義?

  • December 17, 2018

假設現在呼叫了一個舊合約,其中包含一個當時無效但現在有意義的操作碼。在最近的事務中執行此操作碼時會發生什麼:執行會失敗還是會根據目前語義執行操作碼?換句話說:合約執行時的語義是否在部署時有效,還是在合約呼叫時語義有效?

即使在舊合約中,操作碼的執行也會發生變化。一個例子是revert。Solidity 在拜占庭分叉之前增加了對 require 和 revert 樣式錯誤的支持,但是當操作碼在硬分叉之前被啟動時,它只是作為一個錯誤工作。分叉後部署的相同合約使用操作碼在不消耗所有燃料的情況下恢復。

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