前言:
周一听了oldlee《如何发行基于以太坊的数字货币》的精彩演讲,才发现发行以太坊ERC20 Token很简单,这是一件小白也可以做到的事情。以下是我对本次讲座内容的实践:
一、安装环境
1、在chrome浏览器安装MetaMask插件
安装完成后,你会看到chrome右上角有一个新的图标。
安装MetaMask插件
2、新建钱包
输入密码,保存助记词
3、使用测试网络
由于使用以太坊主网络发布智能合约需要真正的ETH,在这里我使用的是测试网络(如果要在主网络发布一个Token,只需要选择主网络)
切换到测试网络
4、领取测试用的ETH
点击“Buy”
MetaMask插件
点击"ROPSTEN TEST FAUCET"
MetaMask插件
点击绿色的按钮“request 1 ether from faucet”,就可以领取1ETH
MetaMask Ether Faucet
Ethereum Ropsten Faucet
如果两个都领取的话,那么此时你总共就有4个ETH了
MetaMask插件
二、编辑代码
由于以太坊智能合约使用的是Solidity语言,所以需要使用Solidity开发。
在这里我使用的是Remix,这是一个在线的Solidity编译器。
Remix是一个在线的Solidity编译器
1、拷贝代码
代码可以从这个网址拷,然后粘贴到Remix左边的代码编辑区就可以了
智能合约代码
2、设置参数
:大家注意在网页右边的"Run"中的“Environment”设置为“Injected Web3”,如果遇到无法选择“Injected Web3”的情况,请刷新一下。
“Create”中填入创建的Token参数,
第一个参数是Token的数量;
第二个参数是Token的全称;
第三个参数是Token的精度,即Token最小为小数点后几位;
第四个参数是Token的符号;
例如:100000000,"zhongxh's test token",8,"ZTT"
上述例子代表创建的Token的全称是"zhongxh's test token",符号是“ZTT”, ZTT的最大精度为小数点后8位,即最小是0.000000001ZTT,总共有1亿份,那么总共有100000000 * 10^(-8)ZTT,即1ZTT
点击“Create”按钮
以太坊智能合约的编辑、编译和创建
3、提交智能合约
点击“Create”后,就可以看到MetaMask弹出的“CONFIRM TRANSACTION”的页面,这个页面是用来确认发送的,点击“SUBMIT”提交。
以太坊智能合约的编辑、编译和创建
提交智能合约
点击“SENT”,可以看到刚刚创建的合约。
点击该智能合约
红色框里面是刚刚创建的智能合约
点击刚刚发布的智能合约地址,就会跳转到Etherscan(以太坊的区块浏览器),耐心等待智能合约的创建。
以太坊的区块浏览器
4、发布智能合约
Contract address为上面创建的合约地址;
Contract name为在Remix中选择创建的合约名称HumanStandardToken;
Compiler版本需选择在Remix进行合约创建时选择的编译器版本一致;
是否优化Optimization也需要与Remix发布合约时保持一致;
在“Enter the Solidity Contract Code below”中填入之前在Remix中的solidity合约代码;
在“Constructor Arguments ABI-encoded”中填入构造函数参数(100000000,"zhongxh's test token",8,"ZTT")的ABI编码,这个编码可以在创建合约的transaction的Input data中找出,如下图蓝色选中的部分即是构造函数参数的ABI编码(b0029之后所有的数据)。
请注意:以上都要和Remix发布合约时保持一致,否则没办法生成一个有效的ERC20 Token。
点击Verify and Publish,如果验证通过了就会出现如下页面:
刷新一下页面,点击Contract Source标签,就能看到上传的合约源代码了:
三、验证
因为Metamask不支持toekn的发送,我们切换到MyEtherWallet钱包。
需要注意的是,MyEtherWallet也需要切换到Rostpen网络
切换到Rostpen网络
接下来切换到“发送以太币/发送代币”
解锁以太坊钱包
在这里我选择用私钥的方式解锁钱包,私钥可以从Metamask获得
点击Metamask右上角的“...”,然后点击"Export Private Key ",输入密码,即可获得私钥
导出私钥
将私钥拷到MyEtherWallet,就可以解锁你的钱包了。
点击右下角的“Load Token Balance”
钱包已解锁
右下角显示的正是刚刚创建的Token,也就是ZTT,余额为1,这表明我的ERC20 Token发布成功了!
ERC20 Token发布成功了
四、后话
没想到发布一个以太坊的ERC20 token这么简单,这么方便,这也是为什么那么多个区块链项目利用以太坊进行爱西欧的原因。
但也正是因为简单,才招惹了很多传销组织和骗子,打着区块链的旗号骗人骗钱,因为这几乎是没有成本的买卖,希望大家在接下来的日子擦亮自己的眼睛,为自己的投资负责。
我希望通过这篇文章,让读者知道如何发布一个以太坊的ERC20 token, 成为读者入门以太坊智能合约的“最小必要知识”。