Каковы правила (синтаксис) импорта из репозитория Github в Solidity Contract?

У меня есть следующий оператор импорта в контракте Solidity (это работает).

import "@openzeppelin/contracts/token/ERC20/IERC20.sol"

Интерфейс, который я импортирую, находится в следующем репозитории: https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC20/IERC20.sol.

Мой вопрос: каков синтаксис или правила, которым я должен следовать при импорте из репозитория github в Solidity? что означает знак @ в операторе импорта?

Редкие достижения на Github ✨
Редкие достижения на Github ✨
Редкая коллекция доступна в профиле на GitHub ✨
0
0
36
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Ваш фрагмент показывает прямой импорт, который ищет файл в ваших локальных каталогах на основе конфигурации компилятора.

Одним из источников по умолчанию является каталог node_modules, в котором установлены пакеты НПМ.

Символ @ — это просто префикс NPM пакеты с ограниченной областью действия, позволяющий сгруппировать больше пакетов в одно и то же пространство имен (в данном случае @openzeppelin/<package_name>).


Чтобы импортировать контракт из GitHub, вы можете просто передать его полный URL:

import "https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC20/IERC20.sol";

Опять же, из-за конфигурации по умолчанию компилятор загружает удаленный файл с GitHub в локальный временный каталог и импортирует его содержимое перед компиляцией.

Другие вопросы по теме