我目前正在上有关区块链理事会的课程。我在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;
}
}