ローカル マシンで 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 (メイン)