前期准备:外网连接、以太坊钱包(MetaMask)、ERC20Coin智能合约.sol
总步骤:
1.安装环境
2.编写属于你的智能合约
3.发布合约
一、安装环境
1、在chrome浏览器安装MetaMask插件安装好之后在扩展程序上面点击显示,之后会在右上角看到MetaMask
2.打开meatMask钱包创建一个属于自己的钱包
二.编写erc20合约
pragma solidity ^0.4.16;
interface tokenRecipient { function receiveApproval(address _from, uint256 _value, address _token, bytes _extraData) public; }
contract TokenERC20 {
string public name;
string public symbol;
uint8 public decimals = 18; // 18 是建议的默认值
uint256 public totalSupply;
mapping (address => uint256) public balanceOf; //
mapping (address => mapping (address => uint256)) public allowance;
event Transfer(address indexed from, address indexed to, uint256 value);
event Approval(address indexed owner, address indexed spender, uint256 value);
event Burn(address indexed from, uint256 value);
function TokenERC20(uint256 initialSupply, string tokenName, string tokenSymbol) public {
totalSupply = initialSupply * 10 ** uint256(decimals);
balanceOf[msg.sender] = totalSupply;
name = tokenName;
symbol = tokenSymbol;
}
function _transfer(address _from, address _to, uint _value) internal {
require(_to != 0x0);
require(balanceOf[_from] >= _value);
require(balanceOf[_to] + _value > balanceOf[_to]);
uint previousBalances = balanceOf[_from] + balanceOf[_to];
balanceOf[_from] -= _value;
balanceOf[_to] += _value;
Transfer(_from, _to, _value);
assert(balanceOf[_from] + balanceOf[_to] == previousBalances);
}
function transfer(address _to, uint256 _value) public returns (bool) {
_transfer(msg.sender, _to, _value);
return true;
}
function transferFrom(address _from, address _to, uint256 _value) public returns (bool success) {
require(_value <= allowance[_from][msg.sender]); // Check allowance
allowance[_from][msg.sender] -= _value;
_transfer(_from, _to, _value);
return true;
}
function approve(address _spender, uint256 _value) public
returns (bool success) {
allowance[msg.sender][_spender] = _value;
Approval(msg.sender, _spender, _value);
return true;
}
function approveAndCall(address _spender, uint256 _value, bytes _extraData) public returns (bool success) {
tokenRecipient spender = tokenRecipient(_spender);
if (approve(_spender, _value)) {
spender.receiveApproval(msg.sender, _value, this, _extraData);
return true;
}
}
function burn(uint256 _value) public returns (bool success) {
require(balanceOf[msg.sender] >= _value);
balanceOf[msg.sender] -= _value;
totalSupply -= _value;
Burn(msg.sender, _value);
return true;
}
function burnFrom(address _from, uint256 _value) public returns (bool success) {
require(balanceOf[_from] >= _value);
require(_value <= allowance[_from][msg.sender]);
balanceOf[_from] -= _value;
allowance[_from][msg.sender] -= _value;
totalSupply -= _value;
Burn(_from, _value);
return true;
}
}
三.发布合约
1.打开编写和发布合约的网站IDE:
2.创建erc20.sol合约
3.编译合约
打开编译页面,选择自己有要编译的合约,最后点击Compile TokenERC20.sol
4. 发布合约
在第一步打开发布合约的页面,之后在第二步选择要发布的合约名称,之后在第三步填入发布合约的初始化数据之后
初始化数据
- initialSupply:初始化发行量(发行量要注意有没有默认添加了小数点)
- tokenName:token名称
- tokenSymbol:token简称
5.选择发布的网络和地址
当以上的步骤都完成之后就到了最后的发布环节,你需要选择点击 Injected Web3链接你当前metamask的钱包网络还有地址,之后点击transact,即可完成.
最后当发布完成之后就会出现以下的方法,说明你已经发布完成一个erc20代币.
当你需要找到你发布的合约地址具体信息的时候,你可以打开metamask的交易记录
以上的信息就是你刚刚发布完成的合约地址信息
如果有遇到不懂得或者有疑问欢迎联系本人进行交流
WC:luo425116243