Brownie

布朗尼錯誤找不到契約/文件

  • August 10, 2022

您好,我開始solidity用 brownie 作為 eth-environment 編寫一些程式碼,我嘗試編譯程式碼並且 import 語句顯示錯誤 -

ParserError: Source "@smartcontractkit/chainlink-brownie-contracts/contracts/src/v0.8/VRFConsumerBase.sol" not found: File not found. Searched the following locations: "".

實際上我有 2 個導入語句,它們都顯示錯誤,我通過添加目前發布版本從第一個排序出來github,但是這個沒有排序並且它一直顯示錯誤,這是我的solidity導入 -

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.7;

import "@openzeppelin/contracts/token/ERC721/ERC721.sol";
import "@smartcontractkit/chainlink-brownie-contracts/contracts/src/v0.8/VRFConsumerBase.sol";

我編輯了brownie-config.yaml文件-

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

任何解釋的幫助都會有很大幫助,謝謝。

我相信您的智能合約需要有標準的導入路徑:即:

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.7;

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

您可能必須在部署之前下載契約,但我相信編譯應該下載它們。

npm install @chainlink/contracts --save

您是否安裝了 openZepplin 或其他先決條件?例如,您必須使用以下命令為 openZepplin 執行此操作:

$ npm install @openzeppelin/contracts

確保您的要求版本與您的範常式式碼相同。更多資訊在這裡

引用自:https://ethereum.stackexchange.com/questions/133331