问题描述
我正在练习一些开放代码。我在坚固性方面还很新。当我尝试编译代码时,它会不断出现此错误: browser / grow.sol:1:1:警告:源文件未指定所需的编译器版本!考虑添加“ pragma solidity ^ 0.5.0;” ^ 。我正在使用REMIX和编译器版本0.5.0
/**
*Submitted for verification at Etherscan.io on 2020-08-25
*/
pragma solidity ^0.5.0;
contract ERC20Interface {
function totalSupply()
public
view
returns (uint);
function balanceOf(address tokeNowner)
public
view
returns (uint balance);
function allowance
(address tokeNowner,address spender)
public
view
returns (uint remaining);
function transfer(address to,uint tokens) public
returns (bool success);
function approve(address spender,uint tokens) public
returns (bool success);
function transferFrom
(address from,address to,uint tokens) public
returns (bool success);
event Transfer(address indexed from,address indexed to,uint tokens);
event Approval(address indexed tokeNowner,address indexed spender,uint tokens);
}
contract SafeMath {
function safeAdd(uint a,uint b) public pure returns (uint c) {
c = a + b;
require(c >= a);
}
function safeSub(uint a,uint b) public pure returns (uint c) {
require(b <= a); c = a - b; } function safeMul(uint a,uint b) public pure returns (uint c) { c = a * b; require(a == 0 || c / a == b); } function safeDiv(uint a,uint b) public pure returns (uint c) { require(b > 0);
c = a / b;
}
}
contract MYTOKEN is ERC20Interface,SafeMath {
string public name;
string public symbol;
uint8 public decimals;
uint256 public _totalSupply;
mapping(address => uint) balances;
mapping(address => mapping(address => uint)) allowed;
constructor() public {
name = "MYTOKEN";
symbol = "MYT";
decimals = 18;
_totalSupply = 1000000000000000000000000;
balances[msg.sender] = _totalSupply;
emit Transfer(address(0),msg.sender,_totalSupply);
}
function totalSupply() public view returns (uint) {
return _totalSupply - balances[address(0)];
}
function balanceOf(address tokeNowner) public view returns (uint balance) {
return balances[tokeNowner];
}
function allowance(address tokeNowner,address spender) public view returns (uint remaining) {
return allowed[tokeNowner][spender];
}
function approve(address spender,uint tokens) public returns (bool success) {
allowed[msg.sender][spender] = tokens;
emit Approval(msg.sender,spender,tokens);
return true;
}
function transfer(address to,uint tokens) public returns (bool success) {
balances[msg.sender] = safeSub(balances[msg.sender],tokens);
balances[to] = safeAdd(balances[to],tokens);
emit Transfer(msg.sender,to,tokens);
return true;
}
function transferFrom(address from,uint tokens) public returns (bool success) {
balances[from] = safeSub(balances[from],tokens);
allowed[from][msg.sender] = safeSub(allowed[from][msg.sender],tokens);
emit Transfer(from,tokens);
return true;
}
}
解决方法
我这边没有错误。使用pragma
语句后,是否尝试过重新编译代码?在重新混合中,您可以在SOLIDITY COMPILER
部分(屏幕的左侧)重新编译代码。有时错误会一直存在,直到重新编译代码为止。