Solidity
在編譯期間查找合約的字節碼
是否有解決方案可以恢復以solidity 導入的合約的完整字節碼(init + runtime)。例如“bytes code = getBytecode (Escrow.sol)”,這會在編譯期間被字節碼替換嗎?非常感謝你的幫助
使用 Remix 肯定是立竿見影的。只需點擊“詳細資訊”,然後點擊“字節碼”
這在建構時是可能的,但您需要為此定制工具。
假設您想在 contract 中使用合約的字節
A
碼B
。首先將合約編譯
A
成字節碼。所以你會有文件A.bin
。讓我們假設這個文件的內容是0x6060604052604080519081...
.然後你需要編寫一個程式碼,將這個字節碼轉換成如下所示的 Solidity 文件
A_bin.sol
:pragma solidity 0.5.7; contract A_bin { bytes internal constant A_bytecode = abi.encodePacked( uint8 (0x60), uint8 (0x60), uint8 (0x60), uint8 (0x40), uint8 (0x52), uint8 (0x60), uint8 (0x40), uint8 (0x80), uint8 (0x51), uint8 (0x90), uint8 (0x81), ...); }
您可以使用 Python 的 Javascript 或您喜歡的任何語言編寫此類程式碼。
現在在契約中
B
,您可以包含A_bin.sol
、繼承契約並在需要B
的地方使用。A_bin``A_bytecode