Evm

合約創建交易中建構子的參數是如何編碼的?

  • September 17, 2018

乙太坊 ABI 定義了在呼叫方法時如何編碼和傳遞參數。但是在創建智能合約的合約創建交易中,建構子的參數是如何編碼的呢?

根據乙太坊黃皮書(第 4.2 節),合約創建交易沒有放置方法呼叫參數的數據字節數組。合約創建只有init字節數組,所以建構子的參數必須放在那裡。

init字節數組也是放置智能合約邏輯的字節碼的地方。

Solidity 編譯器期望傳遞建構子參數的方式是將參數附加到 Solidity 編譯器生成的字節碼。參數的格式與Ethereum ABI中定義的一樣。然後通過堆棧上具有適當值的操作碼將參數從init字節數組複製到 EVM 記憶體。CODECOPY這是在初始化字節數組中的字節碼實際在網路上執行時完成的。

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