一、安装环境
1、在chrome浏览器安装MetaMask插件
2、安装插件
安装方法,下载后解压,在浏览器输入chrome://extensions/,将安装文件拖拽进浏览器,即可安装
3、新建钱包
输入密码,保存助记词
4、转入一个ETH(现在测试网络不能发行代币了)
二、发布合约
由于以太坊智能合约使用的是Solidity语言,所以需要使用Solidity开发。
进入到这个网站进行合约发布
在此是需要已经安装Chrome插件的
1、合约模版
-
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; -
} -
}
2、进入编辑网站
代码不需要修改
点击“Create”按钮
3、提交智能合约
点击“Create”后,就可以看到MetaMask弹出的“CONFIRM TRANSACTION”的页面,这个页面是用来确认发送的,点击“CONFIRM”确认提交。
点击刚刚发布的智能合约地址,就会调转到Etherscan(以太坊的区块浏览器),耐性等待智能合约的创建。
点击确认,支付成功后,然后他会自动部署合约,等一会,去区块浏览器查你的ETH主账号的事物:地址为:etherscan.io/address/(加上…
下图则为你的代币地址,然后查看代币的具体信息:地址为:
etherscan.io/token/(你自己的…
三、验证
打开MetaMask插件
点击add token
在token address中输入token地址
显示的正是刚刚创建的Token,也就是ZZZ,余额为1,这说明ERC20 Token发布成功了!
如果实在不会,我在这里推荐CoinTool 一键创建 cointool.catxs.com/eth/createT…