为什么我的代码在重新混音时显示编译指示错误?

问题描述

我正在练习一些开放代码。我在坚固性方面还很新。当我尝试编译代码时,它会不断出现此错误 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部分(屏幕的左侧)重新编译代码。有时错误会一直存在,直到重新编译代码为止。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...