Solc
solc 生成的二進製文件的問題
我正在編寫一份契約,
solc
我得到了這樣的東西(我用三個點替換了大部分十六進制數字以使其更短):608060405234801561001057600080fd5b5060008054600...152905173__whitelist.sol:AddressSet______________91637ab6b0b491604480830192...0029
似乎造成麻煩的事情是
__whitelist.sol:AddressSet______________
因為當我在乙太坊中部署合約時,當我檢查交易時,只使用該字元串的程式碼。其他一切都被丟棄。當我使用 Remix 部署合約時,二進製文件看起來不錯,中間沒有那些字元串。
這是我用來編譯程式碼的命令:
solc --optimize --pretty-json --combined-json bin,abi whitelist.sol
我是否需要使用特殊標誌來避免這種情況?
正如@Ismael 在評論中指出的那樣,問題在於我正在使用一個庫並且沒有連結它。
--libraries
我通過使用in擺脫了這個問題solc
:solc --optimize --libraries "AddressSet:0x4025e920fb97ce003b361021534f0c0335254f65" --pretty-json --combined-json bin,abi whitelist.sol
這生成了可以部署到乙太坊的正確二進制程式碼。