I am trying to test and replicate in my local machine the 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);
}
}
with a brownie-config.yaml
dependencies:
- smartcontractkit/chainlink-brownie-contracts@1.2.0
compiler:
solc:
remappings:
- '@chainlink=smartcontractkit/chainlink-brownie-contracts@1.2.0'
but when I do compile using: brownie compile
I got this ValueError:
marco@MarcoD2-5212019 MINGW64 ~/Documents/Blockchain/Smart Contracts University/demos/brownie_fund_me (main) $ brownie compile INFO: Could not find files for the given pattern(s). Brownie v1.16.3 - Python development framework for Ethereum
File "C:\Users\marco.local\pipx\venvs\eth-brownie\lib\site-packages\brownie_cli_main_.py", line 64, in main importlib.import_module(f"brownie._cli.{cmd}").main() File "C:\Users\marco.local\pipx\venvs\eth-brownie\lib\site-packages\brownie_cli\compile.py", line 50, in main proj = project.load() File "C:\Users\marco.local\pipx\venvs\eth-brownie\lib\site-packages\brownie\project\main.py", line 745, in load return Project(name, project_path) File "C:\Users\marco.local\pipx\venvs\eth-brownie\lib\site-packages\brownie\project\main.py", line 180, in init self.load() File "C:\Users\marco.local\pipx\venvs\eth-brownie\lib\site-packages\brownie\project\main.py", line 235, in load self._compile(changed, self._compiler_config, False) File "C:\Users\marco.local\pipx\venvs\eth-brownie\lib\site-packages\brownie\project\main.py", line 102, in compile optimizer=compiler_config["solc"].get("optimizer", None), File "C:\Users\marco.local\pipx\venvs\eth-brownie\lib\site-packages\brownie\project\compiler_init.py", line 105, in compile_and_format find_solc_versions(solc_sources, install_needed=True, silent=silent) File "C:\Users\marco.local\pipx\venvs\eth-brownie\lib\site-packages\brownie\project\compiler\solidity.py", line 150, in find_solc_versions pragma_specs[path] = sources.get_pragma_spec(source, path) File "C:\Users\marco.local\pipx\venvs\eth-brownie\lib\site-packages\brownie\project\sources.py", line 218, in get_pragma_spec return NpmSpec(pragma_string) File "C:\Users\marco.local\pipx\venvs\eth-brownie\lib\site-packages\semantic_version\base.py", line 618, in init self.clause = self._parse_to_clause(expression) File "C:\Users\marco.local\pipx\venvs\eth-brownie\lib\site-packages\semantic_version\base.py", line 1225, in _parse_to_clause return cls.Parser.parse(expression) File "C:\Users\marco.local\pipx\venvs\eth-brownie\lib\site-packages\semantic_version\base.py", line 1265, in parse raise ValueError("Invalid NPM block in %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 (main)