Erc-20

從 Openzeppelin 複製介面和庫與使用 import 語句包含它們

  • November 20, 2021

我多次注意到大多數合約不是直接從 Open zeppelin 導入(例如 IERC20 介面、Ownable 介面、Safemath 庫等),而是將完整程式碼導入智能合約中。

一個例子?

查看柴犬智能合約: https ://etherscan.io/address/0x95ad61b0a150d79219dcf64e1e6cc01f0b64c4ce#code

在合約內部,IERC20 介面和 Safemath 庫被複製而不是從 Open Zeppelin 中作為導入語句包含在內。

這樣做有好處嗎?合約規模優勢?

謝謝

不,沒有優勢,這只是偏好問題。

請記住,最終所有 Solidity 程式碼都被編譯為字節碼,而字節碼反映了程式碼的實際堆棧功能。因此,編譯前是否將不同的合約儲存在不同的文件中與字節碼大小無關。

另一個需要考慮的因素是,當開發人員向 Etherscan 送出他們的 Solidity 程式碼時,他們可能更容易將所有文件程式碼複製粘貼到一個文件中並送出,而不是費力地單獨粘貼所有文件。這就是我認為 Shiba Inu Etherscan 合約中正在發生的事情,因為它們包含多個pragma語句,儘管您可以在沒有編譯錯誤的情況下這樣做,但這些語句似乎異常到足以讓人質疑這些合約是否都以這種形式編寫地方。

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