🧃

Etherscanでsmart contractをverifyしたときにopenzeppelinの読み込みでエラーになる

2022/10/19に公開

テストネットやメインネットにデプロイした後に、Ethersanでsmart contractをverifyしようとするとこういうエラーが出てきた

ParserError: Source "@openzeppelin/contracts/token/ERC721/IERC721.sol" not found: File import callback not supported
--> myc.sol:5:1:
|
4 | import "@openzeppelin/contracts/token/ERC721/IERC721.sol"

解決法

この辺のページが参考になる。
https://forum.openzeppelin.com/t/how-to-verify-a-contract-on-etherscan-bscscan-polygonscan/14225
https://forum.openzeppelin.com/t/how-to-verify-with-hardhat-or-truffle-a-smart-contract-using-openzeppelin-contracts/4119

Etherscanからverifyする場合は、ソースコードのフラット化が必要そう。

Hardhatを使っている場合はプラグインを入れてターミナルからverifyできるので、私はこの方法を使いました。
https://hardhat.org/hardhat-runner/plugins/nomiclabs-hardhat-etherscan#multiple-api-keys-and-alternative-block-explorers

Discussion