Visual Code Studio, обратный вызов при импорте файла не поддерживается - источник файла не найден

Пытаясь устранить другую проблему с моим проектом, я, должно быть, что-то сломал, но я не знаю, как это исправить.

Это мои операторы импорта для проекта:

      pragma solidity >=0.6.6;

import "@openzeppelin/contracts/token/ERC721/ERC721.sol";
import "@chainlink/contracts/src/v0.6/VRFConsumerBase.sol";

А это мой домовой-config.yaml

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

Но, несмотря на то, что все это работало до вчерашнего дня, попытка компиляции дает мне только следующие ошибки:

      PS C:\Users\XXX\Desktop\Project> brownie compile
INFO: Could not find files for the given pattern(s).
Brownie v1.16.4 - Python development framework for Ethereum

New compatible solc version available: 0.6.6
Compiling contracts...
  Solc version: 0.6.6
  Optimizer: Enabled  Runs: 200
  EVM Version: Istanbul
CompilerError: solc returned the following errors:

contracts/AdvancedCollectible.sol:3:1: ParserError: Source "OpenZeppelin/openzeppelin-contracts@3.4.0/contracts/token/ERC721/ERC721.sol" not found: File not found.
import "@openzeppelin/contracts/token/ERC721/ERC721.sol";
^-------------------------------------------------------^

contracts/AdvancedCollectible.sol:4:1: ParserError: Source "smartcontractkit/chainlink-brownie-contracts@1.0.2/contracts/src/v0.6/VRFConsumerBase.sol" not found: File not found.
import "@chainlink/contracts/src/v0.6/VRFConsumerBase.sol";
^---------------------------------------------------------^

Как мне решить эту проблему? Я видел несколько ответов на аналогичные проблемы со ссылками на node.js или локальные копии материалов, которые я пытаюсь импортировать, но разве эта команда не должна извлекать данные из github? Почему этого не происходит ниоткуда?

2 ответа

Это связано с тем, что расширение Solidity ищет не в том каталоге. Шаг ниже исправил проблему для меня -

Измените настройки расширения Solidity в VSCode.

Настройки по умолчанию включают: "solidity.packageDefaultDependenciesContractsDirectory": "contracts" Пользователям необходимо изменить настройку с Contracts на пустую строку. "solidity.packageDefaultDependenciesContractsDirectory": ""

Источник - https://github.com/juanfranblanco/vscode-solidity/issues/178

Установите Openzeppelin в корень вашей папки с помощью npm.

npm i @openzeppelin/контракты

то же самое для цепной связи

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