'Solidity ParserError: expected a ';" but recieved public
I was trying to declare a variable as public so that I can view the data stored in it at any time. but when I try to do it its shows an error.
//SPDX-License-Identifier: MIT
pragma solidity 0.8.11;
import "@chainlink/contracts/src/v0.8/interfaces/AggregatorV3Interface.sol";
contract fundMe{
mapping( address => uint256) public addressToAmountFunded;
function fund () public payable {
addressToAmountFunded[msg.sender]=msg.value;
uint256 minimumFunding=50*10**18;
uint256 public value = msg.value;
require(getConversionRate(msg.value)>=minimumFunding,"You Need To Fund More");
}
function getVersion() public view returns(uint256){
AggregatorV3Interface priceFeed = AggregatorV3Interface(0x8A753747A1Fa494EC906cE90E9f37563A8AF630e);
return priceFeed.version();
}
function getPrice() public view returns(uint256){
AggregatorV3Interface priceFeed = AggregatorV3Interface(0x8A753747A1Fa494EC906cE90E9f37563A8AF630e);
(,int256 answer,,,)= priceFeed.latestRoundData();
return uint256(answer);
}
function getConversionRate(uint256 _amount) public view returns(uint256){
uint256 public price=getPrice();
uint256 ethAmountInUSD = (price * _amount) / 1000000000000000000;
return ethAmountInUSD;
}
}
also, get conversion rate is always returning 0 value. Any help is appreciated thankyou
Solution 1:[1]
remove public
uint256 public value = msg.value;
uint256 public price=getPrice();
I compiled it in remix:
//SPDX-License-Identifier: MIT
pragma solidity 0.8.11;
import "@chainlink/contracts/src/v0.8/interfaces/AggregatorV3Interface.sol";
contract fundMe{
mapping( address => uint256) public addressToAmountFunded;
function fund () public payable {
addressToAmountFunded[msg.sender]=msg.value;
uint256 minimumFunding=50*10**18;
// remix returns unused variable becuase u are not using it
// uint256 value = msg.value;
require(getConversionRate(msg.value)>=minimumFunding,"You Need To Fund More");
}
function getVersion() public view returns(uint256){
AggregatorV3Interface priceFeed = AggregatorV3Interface(0x8A753747A1Fa494EC906cE90E9f37563A8AF630e);
return priceFeed.version();
}
function getPrice() public view returns(uint256){
AggregatorV3Interface priceFeed = AggregatorV3Interface(0x8A753747A1Fa494EC906cE90E9f37563A8AF630e);
(,int256 answer,,,)= priceFeed.latestRoundData();
return uint256(answer);
}
function getConversionRate(uint256 _amount) public view returns(uint256){
uint256 price=getPrice();
uint256 ethAmountInUSD = (price * _amount) / 1000000000000000000;
return ethAmountInUSD;
}
}
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | Yilmaz |
