Импорт для "@chainlink" и "@openzeppelinn" не работает.

Всякий раз, когда я пытаюсь выполнить импорт, подобный двум, показанным ниже, они не распознаются. Я использую VSCode. Да, я много раз пробовал устанавливать и удалять. Если кто-нибудь знает, почему это было бы ЭПИЧНО. Спасибо.

      import "@chainlink/contracts/src/v0.6/interfaces/AggregatorV3Interface.sol";
import "@openzeppelin/contracts/token/ERC721/ERC721Full.sol";

2 ответа

Расширение VSC Solidity не может читать переназначения Брауни. Я предполагаю, что вы получаете эту ошибку:

Источник «@chainlink/contracts/src/v0.6/interfaces/AggregatorV3Interface.sol» не найден: обратный вызов импорта файла не поддерживается

Источник "@openzeppelin/contracts/token/ERC721/ERC721Full.sol" не найден: обратный вызов импорта файла не поддерживается

Убедитесь, что вы правильно установили зависимости и переназначения в brownie-config.yaml:

      dependencies:
  - smartcontractkit/chainlink-brownie-contracts@0.2.1
  - OpenZeppelin/openzeppelin-contracts@3.4.0
compiler:
  solc:
    remappings:
      - '@chainlink=smartcontractkit/chainlink-brownie-contracts@0.2.1'
      - '@openzeppelin=OpenZeppelin/openzeppelin-contracts@3.4.0'

Составьте свои контракты:

      brownie compile

В случае успешной компиляции Brownie должен был загрузить пакеты, вы можете подтвердить это, запустив

      brownie pm list

Установите переназначения для расширения VSCode Solidity (например, в ./vscode/settings.json) .

      "solidity.remappings": [
  "@chainlink/=<PATH_TO_BROWNIE_STUFF>/.brownie/packages/smartcontractkit/chainlink-brownie-contracts@0.2.1",
  "@openzeppelin/=<PATH_TO_BROWNIE_STUFF>/.brownie/packages/OpenZeppelin/openzeppelin-contracts@3.4.0",
]

Убедитесь, что у вас есть версии ( @x.x.x) прямо во всех файлах конфигурации.

Если вы на Linux, <PATH_TO_BROWNIE_STUFF>вероятно, будет вашим домашним каталогом ( /home/jjreedv)

По состоянию на февраль 2022 года настройки кода переназначения для VS Code были обновлены для конкретной ОС.

Вот пример:

      {
    "solidity.remappingsUnix": [
        "@chainlink-brownie-contracts/=/home/<USERNAME>/.brownie/packages/smartcontractkit/chainlink-brownie-contracts@0.4.1",
        "@openzeppelin/=/home/<USERNAME>/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.6.0",
    ],
    "solidity.remappingsWindows": [
        "@openzeppelin/=C:/Users/<USERNAME>/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.6.0",
        "@chainlink-brownie-contracts/=C:/Users/<USERNAME>/.brownie/packages/smartcontractkit/chainlink-brownie-contracts@0.4.1",
    ],

Официальный README проекта:https://github.com/juanfranblanco/vscode-solidity#platform-specific-remappings

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