错误创建MyToken错误:基本费用超出了在以太坊混音中部署智能合约的限制

时间:2020-10-25 02:12:55

标签: blockchain ethereum solidity smartcontracts remix

我目前正在上有关区块链理事会的课程。我在remix.ethereum.org网站上创建了一个智能合约文件。但是,在部署合同时,我收到一个错误消息:“创建MyToken错误:基本费用超出了汽油限额”。我是这种编程语言的新手,我不知道要解决此问题。来自区块链委员会的优秀人士不愿提供任何支持。有人可以帮我这个忙吗? 请在下面编译的智能合约代码中找到它,但是在尝试部署智能合约时出错。

pragma solidity ^0.5.10;

contract MyToken{
    mapping (address => uint256) private _balances;
    mapping(address => mapping(address=>uint256)) private _allowances;
    
    string private _name;
    string private _symbol;
    uint256 private _decimals;
    uint256 private _totalSupply;
    
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
    
    constructor(uint256 initialSupply, string memory tokenName, string memory tokenSymbol, uint8 decimalUnits) public{
        _balances[msg.sender] = initialSupply;
        _name = tokenName;
        _totalSupply = initialSupply;
        _symbol = tokenSymbol;
        _decimals = decimalUnits;
    
    }
    
    function name() public view returns (string memory){
        return _name;
    }
    
    function symbol() public view returns (string memory){
        return _symbol;
    }
    
    function decimals() public view returns (uint256){
        return _decimals;
    }
    
    function totalsupply() public view returns (uint256){
        return _totalSupply;
    }
    
    function setTotalSupply(uint256 totalSupply) internal {
        _totalSupply = totalSupply;
    }
    
    function balanceOf(address account) public view returns (uint256){
        return _balances[account];
    }
    
    function setBalance(address account, uint256 balance) internal {
        _balances[account] = balance;
    }
    
    function transfer(address beneficiary, uint256 amount) public returns (bool) {
        require(beneficiary != address(0), "Benficiary address cannot be zero" );
        require(_balances[msg.sender] >= amount, "sender does not have enough balance");
        require(_balances[beneficiary] + amount > _balances[beneficiary], "addition overflow" );
        _balances[msg.sender] -= amount;
        _balances[beneficiary] += amount;
        emit Transfer(msg.sender,beneficiary,amount);
        return true;
    }
    
    function approve(address spender, uint256 amount) public returns(bool success){
        require(spender != address(0), "Spender address cannot be zero");
        _allowances[msg.sender][spender] = amount;
        emit Approval(msg.sender,spender,amount);
        return true;
    }
    
    function transferFrom(address sender, address beneficiary, uint256 amount) public returns (bool){
        require(sender != address(0), "Sender cannot be zero");
        require(beneficiary != address(0),"beneficiary cannot be zero");
        require(amount <= _allowances[sender][msg.sender],"Allowances is not enough");
        require(_balances[sender] >= amount, "Sender does not have enough balance");
        require(_balances[beneficiary] + amount > _balances[beneficiary], "Addition overflow");
        
        _balances[sender] -= amount;
        _allowances[sender][msg.sender] -= amount;
        _balances[beneficiary] += amount;
        emit Transfer(sender, beneficiary, amount);
        return true;
        
    }
    
}

0 个答案:

没有答案