Импорт для "@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