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

Blockchain 创建MyToken时出错:在以太坊混音中部署智能合约的基本费用超过了gas限制,blockchain,ethereum,solidity,smartcontracts,remix,Blockchain,Ethereum,Solidity,Smartcontracts,Remix,我目前正在做一个关于区块链委员会的课程。我在remix.ethereum.org网站上创建了一个智能合约文件。然而,在部署合同时,我收到了一个错误“创建MyToken出错:基本费用超过天然气限额”。我对这种编程语言是完全陌生的,我不知道如何解决这个问题。区块链委员会的优秀人士不愿意提供任何支持。有人能帮我解决这个问题吗? 请在下面查找编译后的智能合约代码,但在尝试部署智能合约时出错 pragma solidity ^0.5.10; contract MyToken{ mapping (

我目前正在做一个关于区块链委员会的课程。我在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;
        
    }
    
}
pragma-solidity^0.5.10;
合同MyToken{
映射(地址=>uint256)私人余额;
映射(地址=>mapping(地址=>uint256))私有_津贴;
字符串private\u name;
字符串专用符号;
uint256专用小数;
uint256私人供应;
事件传输(地址索引自,地址索引至,uint256值);
事件批准(地址索引所有者、地址索引支出者、uint256值);
构造函数(uint256 initialSupply、字符串内存令牌名称、字符串内存令牌符号、uint8小数单位)公共{
_余额[消息发送方]=初始供应;
_name=tokenName;
_总供给=初始供给;
_符号=符号;
_小数=小数单位;
}
函数名()公共视图返回(字符串内存){
返回_name;
}
函数symbol()公共视图返回(字符串内存){
返回符号;
}
函数decimals()公共视图返回(uint256){
返回小数;
}
函数totalsupply()公共视图返回(uint256){
返回总供给;
}
功能设置totalSupply(uint256 totalSupply)内部{
_总供给=总供给;
}
(地址帐户)公共视图返回的功能余额(uint256){
返回余额[账户];
}
函数setBalance(地址帐户,uint256余额)内部{
_结余[账户]=结余;
}
职能转移(受益人地址,uint256金额)公开申报(bool){
要求(受益人!=地址(0),“受益人地址不能为零”);
要求(_余额[msg.sender]>=金额,“发件人没有足够的余额”);
要求(_余额[受益人]+金额>_余额[受益人],“追加溢额”);
_余额[消息发送方]-=金额;
_余额[受益人]+=金额;
发出转账(消息发送方、受益人、金额);
返回true;
}
职能部门批准(地址支出者,uint256金额)公共回报(bool成功){
require(spender!=地址(0),“spender地址不能为零”);
_津贴[寄件人][支出者]=金额;
发出批准(消息发送者、支出者、金额);
返回true;
}
功能转移自(地址发送者、地址受益人、uint256金额)公共回报(bool){
require(发件人!=地址(0),“发件人不能为零”);
要求(受益人!=地址(0),“受益人不能为零”);
要求(金额=金额,“发件人没有足够的余额”);
要求(_余额[受益人]+金额>_余额[受益人],“追加溢额”);
_余额[发送方]-=金额;
_津贴[寄件人][消息寄件人]-=金额;
_余额[受益人]+=金额;
发出转让(发送方、受益人、金额);
返回true;
}
}

当您尝试部署合同时,需要增加您的气体限制。默认情况下,它会尝试估计成功部署所需的气体量,但不能总是准确地估计限制。您应该始终指定自己的值。