Brownie
布朗尼錯誤找不到契約/文件
您好,我開始
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
確保您的要求版本與您的範常式式碼相同。更多資訊在這裡