pragma solidity ^0.6.0;
contract Token {
// 发行总量
uint256 public totalSupply;
// 代币符号
string public symbol;
// 代币名称
string public name;
// 代币精度
uint8 public decimals;
// 代币所有者地址对应的代币余额
mapping(address => uint256) public balanceOf;
// 权限者地址
address public owner;
constructor() public {
totalSupply = 100 * (10 ** 18);
symbol = "Token";
name = "Token";
decimals = 18;
balanceOf[msg.sender] = totalSupply;
owner = msg.sender;
}
// 转移代币
function transfer(address _to, uint256 _value) public {
require(balanceOf[msg.sender] >= _value && _value > 0, "Insufficient balance.");
balanceOf[msg.sender] -= _value;
balanceOf[_to] += _value;
}
// 增发代币
function mint(address _to, uint256 _value) public {
require(msg.sender == owner, "Only owner can mint.");
totalSupply += _value;
balanceOf[_to] += _value;
}
}
这个智能合约提供了一个名为 mint 的函数,可以用来增发代币。只有在智能合约创建时设置的 owner 地址才能调用这个函数。
请注意,这份代码仅供参考,并不保证能够在生产环境中使用。你应该对代码进行测试和审核,以确保它能够满足你的需求并且没有安全漏洞。文章只做技术分享研究使用,请读者遵纪守法,一切违法行为属读者个人行为,与本站无关!有兴趣的读者留言相互研究!