前言:

周一听了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, 成为读者入门以太坊智能合约的“最小必要知识”。

作者 灰武士