3

ローカル マシンで FundMe.sol をテストして複製しようとしています。

// SPDX-License-Identifier: MIT

pragma solidity ^0.6.6

import "@chainlink/contracts/src/v0.6/interfaces/AggregatorV3Interface.sol";
import "@chainlink/contracts/src/v0.6/vendor/SafeMathChainlink.sol";

contract FundMe {
    
    using SafeMathChainlink for uint256;
    
    mapping(address => uint256) public addressToAmountFunded;
    address[] public funders;
    address public owner;
    
    constructor() public {
        owner = msg.sender;
    }
    
    function fund() public payable {
        uint minimumUSD = 50 * 10 ** 18;
        require(getConversionRate(msg.value) >= minimumUSD, "You need to spend more ETH! reminder by: Marco Rado");
        addressToAmountFunded[msg.sender] += msg.value;
        funders.push(msg.sender);
    }
    
    function getVersion() public view returns (uint256) {
        AggregatorV3Interface priceFeed = AggregatorV3Interface(0x9326BFA02ADD2366b30bacB125260Af641031331);
        return priceFeed.version();
    }
    
    function getPrice() public view returns(uint256) {
        AggregatorV3Interface priceFeed = AggregatorV3Interface(0x9326BFA02ADD2366b30bacB125260Af641031331);
        (,int256 answer,,,) = priceFeed.latestRoundData();
        return uint256(answer * 10000000000);
        //4,143.080000000000000000
    }
    
    function getConversionRate(uint256 ethAmount) public view returns (uint256) {
        uint ethPrice = getPrice();
        uint ethAmountInUsd = (ethPrice * ethAmount) / 1000000000000000000;
        return ethAmountInUsd;
    }
    
    modifier onlyOwner {
        require(msg.sender == owner);
        _;
    }
    
    function withdraw() payable onlyOwner public {
        msg.sender.transfer(address(this).balance);
        for (uint256 funderIndex=0; funderIndex < funders.length; funderIndex++) {
            address funder = funders[funderIndex];
            addressToAmountFunded[funder] = 0;
        }
        funders = new address[](0);
    }
    
}

Brownie-config.yaml を使用

dependencies:
  - smartcontractkit/chainlink-brownie-contracts@1.2.0
compiler:
  solc:
    remappings:
      - '@chainlink=smartcontractkit/chainlink-brownie-contracts@1.2.0'

しかし、次を使用してコンパイルする場合:brownie compile

私はこのValueErrorを得ました:

marco@MarcoD2-5212019 MINGW64 ~/Documents/Blockchain/Smart Contracts University/demos/brownie_fund_me (main) $ Brownie compile 情報: 指定されたパターンのファイルが見つかりませんでした。Brownie v1.16.3 - イーサリアムの Python 開発フレームワーク

ファイル "C:\Users\marco.local\pipx\venvs\eth-brownie\lib\site-packages\brownie_cli_ main _.py"、64 行目、main importlib.import_module(f"brownie._cli.{cmd} ").main() ファイル "C:\Users\marco.local\pipx\venvs\eth-brownie\lib\site-packages\brownie_cli\compile.py"、50 行目、メイン proj = project.load()ファイル「C:\Users\marco.local\pipx\venvs\eth-brownie\lib\site-packages\brownie\project\main.py」、745行目、load return Project(name, project_path) ファイル「C: \Users\marco.local\pipx\venvs\eth-brownie\lib\site-packages\brownie\project\main.py"、180 行目、init内 self.load() ファイル "C:\Users\marco.local\pipx\venvs\eth-brownie\lib\site-packages\brownie\project\main.py"、235 行目、ロードの self._compile(changed, self._compiler_config、False) ファイル "C:\Users\marco.local\pipx\venvs\eth-brownie\lib\site-packages\brownie\project\main.py"、102 行目、コンパイル optimizer=compiler_config[" solc"].get("optimizer", None), File "C:\Users\marco.local\pipx\venvs\eth-brownie\lib\site-packages\brownie\project\ compiler_init.py"、105 行目、compile_and_format の find_solc_versions(solc_sources, install_needed=True, silent=silent) ファイル "C:\Users\marco.local\pipx\venvs\eth-brownie\lib\site-packages\brownie\project\ compiler\solidity.py"、150 行目、find_solc_versions pragma_specs[path] = sources.get_pragma_spec(source, path) ファイル "C:\Users\marco.local\pipx\venvs\eth-brownie\lib\site-packages\ Brownie\project\sources.py"、218 行目、get_pragma_spec の return NpmSpec(pragma_string) ファイル "C:\Users\marco.local\pipx\venvs\eth-brownie\lib\site-packages\semantic_version\base.py" 、618行目、初期化中 self.clause = self._parse_to_clause(expression) ファイル "C:\Users\marco.local\pipx\venvs\eth-brownie\lib\site-packages\semantic_version\base.py"、1225 行目、_parse_to_clause で cls を返します。 Parser.parse(expression) ファイル "C:\Users\marco.local\pipx\venvs\eth-brownie\lib\site-packages\semantic_version\base.py"、1265 行目、パースで ValueError("Invalid NPM block %r: %r" % (expression, block)) ValueError: Invalid NPM block in '^0.6.6 import "@chainlink/contracts/src/v0.6/interfaces/AggregatorV3Interface.sol"': 'import'

marco@MarcoD2-5212019 MINGW64 ~/Documents/Blockchain/Smart Contracts University/demos/brownie_fund_me (メイン)

bash ターミナルのスクリーンショット

4

0 に答える 0