Openzeppelin

關於如何使用 OpenZeppelin 的 SafeERC20.sol 的菜鳥問題

  • August 10, 2021

我想SafeERC20.sol在我的項目中使用,純粹是因為safeTransfer(). 我這樣做的方式是我只是將SafeERC20.sol文件放在我的項目文件夾中,然後使用import "./SafeERC20.sol";文件頭部的行以及using SafeERC20 for IERC20契約中的行。問題是,正如我所見,它SafeERC20.sol也使用Address.solOpenZeppelin,所以我必須將該文件也放在我的項目文件夾中。

這是導入文件的正確方法嗎?還是我應該從 OpenZeppelin 下載所有庫/文件夾並將它們放在我的項目文件夾中?如果我這樣做並且我只使用其中的 2 個,編譯器會只編譯這 2 個 OZ 文件而不是全部嗎?謝謝

您需要通過 yarn 或 npm 將 OpenZeppelin npm 包安裝到您的項目目錄中,例如:

yarn add @openzeppelin/contracts

或者

npm install --save @openzeppelin/contracts

SafeERC20.sol然後從那些已安裝的包中導入,例如:

import "@openzeppelin/contracts/<route to file>/SafeERC20.sol";

然後,您需要將其用於以下用途IERC20

using SafeERC20 for IERC20;

您不需要導入 OpenZeppelin 的Address.sol. 如果它是 的依賴項IERC20,則在您導入時它已經被隱式導入SafeERC20.sol

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