Truffle

Truffle 和 Remix 的編譯方式不同

  • November 3, 2020

我有一個智能合約,當使用 truffle 和 remix 編譯時輸出不同的字節碼,即使兩者似乎都使用相同的編譯器版本:0.5.7+commit.6da8b019 這是一個已知問題嗎?這正常嗎?

這會導致驗證我在 etherscan 上的智能合約出現問題,從而受到我的使用者的信任,這是一件大事。

謝謝你的幫助。

好吧,在深入研究 remix 的編譯選項後,我找到了答案。現在看來,remix 的預設設置是:

evmVersion: "petersburg"

而在 Truffle 上,它設置為

evmVersion: "byzantium"

在 truffle-config 中明確設置 byzantium 修復了字節碼,現在它與 remix 的字節碼完全相同。

預設情況下,Truffle 編譯時啟用優化,Remix 時禁用。

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