Reputation: 11
The compiler reports the error attached below; pretty strange as I am following the course's tutor, who suggested me to use an older version of remix, I read in similar questions that 'returns' should be singular but his code compile without issues, I tried anyway, didn't work; he is using ^0.4.11 I am running on ^0.8.4 even though the issue persisted when I downgraded to a previous version.
Error:
ParseError: Expected '{' but
got 'constant' -->
tests/pendulum_ico.sol:28:60: |
28 | function
equity_in_pendulum(address
investor) external constant
returns (uint) { | ^^^^^^^^
Code:
pragma solidity ^0.8.3;
contract pendulum_ico {
// Introducing the maximum number of Pendulum available for sale
uint public max_pendulum = 1000000;
// Introducing the USD to Pendulum conversion relocatable
uint public usd_to_pendulum = 1000;
// Introducing the total number of Pendulum that have been bought by the investors
uint public total_pendulum_bought = 0;
// Mapping from the investor address to its equity in Pendulum and usd_to_pendulum
mapping(address => uint) equity_pendulum;
mapping(address => uint) equity_usd;
// Checking if an investor can buy Pendulum
modifier can_buy_pendulum(uint usd_invested) {
require (usd_invested * usd_to_pendulum + total_pendulum_bought <= max_pendulum);
_;
}
// Getting the equity in Pendulum of an investor
function equity_in_pendulum(address investor) external constant returns (uint) {
return equity_pendulum[investor];
}
// Getting the equity in USD of an investor
function equity_in_usd(address investor) external constant returns (uint) {
return equity_usd[investor];
}
// Buying Pendulum
function buy_pendulum(address investor, uint usd_invested) external
can_buy_pendulum(usd_invested) {
uint pendulum_bought = usd_invested * usd_to_pendulum;
equity_pendulum[investor] += pendulum_bought;
equity_usd[investor] = equity_pendulum[investor] / 1000;
total_pendulum_bought += hadcoins_bought;
}
// Selling Pendulum
function sell_pendulum(address investor, uint pendulum_sold) external {
equity_pendulum[investor] -= pendulum_sold;
equity_usd[investor] = equity_pendulum[investor] / 1000;
total_pendulum_bought -= pendulum_sold;
}
}
Upvotes: 1
Views: 267
Reputation: 43481
From the breaking changes list between 0.4 a and 0.5:
Using
constant
as function state mutability modifier is now disallowed.
In 0.8, you can also declare the function as a view function, which meets the state immutability criteria defined in the 0.4 constant
.
function equity_in_pendulum(address investor) external view returns (uint) {
return equity_pendulum[investor];
}
Upvotes: 1