美文网首页区块链区块链之虚拟货币区块链研习社
手把手教你发行自己的以太坊ERC20 Token

手把手教你发行自己的以太坊ERC20 Token

作者: 钟晓宏 | 来源:发表于2017-09-28 21:43 被阅读5118次

前言:

周一听了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

或者在这个网址领取3个测试用的ETH

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编码(bc0029之后所有的数据)。

请注意:以上都要和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, 成为读者入门以太坊智能合约的“最小必要知识”。

最后,我要感谢oldlee给我们带来的精彩演讲,感谢区块链研习社创造的平台。

以上引用自oldlee的简书文章:

http://www.jianshu.com/p/75730fae67e6

相关文章

网友评论

  • 02c79400c3bb:还有,大家有投资代币的吗?最近在瑞士站的看到一个新项目Orvium,是用区块链做知识版权的。大家知不知道这个项目,这个项目怎么样?求指教:grin:
  • 02c79400c3bb:厉害了:+1: :+1: :+1: :+1:
  • 80ac48e0fbc7:发完币,怎么把代码同步到GitHub上面,哪位老师知道?感谢:pray:
  • 965a4d278e65:亲爱的作者 我已经发布合约了 为什么代币的数量只有1个呢 不是填了1000000000吗,
    965a4d278e65:@追梦的年纪 你知道作者的这个合约安全性怎么样?怎么看合约的安全性
    965a4d278e65:@追梦的年纪 谢谢
    追梦的年纪:因为我们在创建HumanStandardToken时,输入的初始量为100000000,而decimal值为8,这个初始量值的单位是token的最低单位,故总量为1MTT,大家可以根据自己的情况作出相应调整。
  • 銳敏:verify and publish后页面提示:"We encountered an unexpected error.
    Please try back again shortly"
    8b264a1888c5:@銳敏 您好,您这个问题解决了吗?我也遇到了同样的问题
  • 龙少侠linux:按照你写的步骤一步一步来的、但是最后是myetherwallet找不到我创建的token。代币合约已经发布成功了。https://ropsten.etherscan.io/address/0x2e824cc7873199ae647a638999ae412c829c7a65#code
    965a4d278e65:@龙少侠linux 为什么代币的数量只有1个呢 不是填了1000000000吗,
    龙少侠linux:@钟晓宏 不。我已经切换了。后来我发现需要点击add custom token就可以了。
    钟晓宏:@龙爷linux myetherwallet没有有切换到ropsten?
  • bfcd42a10f90:卡在错误了:Create
    creation of Ballot errored: Error encoding arguments: Error: Supplied uint exceeds width: 8 vs 27
  • 小松鼠:你好,生成token之后,怎么给朋友空投发币给他们呢?我现在创建一个币,但是不知道怎么空投给他们?我觉得自己创建一个币,然后空投给朋友很好玩:smile:
    965a4d278e65:@钟晓宏 为什么代币的数量只有1个呢 不是填了1000000000吗,
    钟晓宏:@小松鼠 先转到自己的钱包,再转给他们
  • d44e7687db99:请教一下,生成token的时候在哪里设置图标,就是以太坊钱包里面的图标?
    2cf007c60673:@王明耀 图标问题搞定了吗?求解
    逍遥子_:@钟晓宏 这个生成图标解决了么
    钟晓宏:@王明耀 被你问倒了,我也不知道在哪里设置图标,我的理解是把图标的二进制写到代码里了,如果你知道,请告诉我,谢谢!
  • ClownQiang:楼主方便解释一下ABI编码是怎么生成的吗?
    ClownQiang:这边为什么是取60029之后的数据
  • Simth:在“Constructor Arguments ABI-encoded”中填入构造函数参数(100000000,"zhongxh's test token",8,"ZTT")的ABI编码,这个编码可以在创建合约的transaction的Input data中找出,如下图蓝色选中的部分即是构造函数参数的ABI编码(b0029之后所有的数据)。

    这一部分究竟是怎么选的????
    麥小禾:亲身测试,ABI编码有好几个0029,取最后一个0029后面的所有内容,大部分以多个0开始
    5df8ee9a4a1b:@钟晓宏 bc0029找不到啊?????
    JasinYip:是 60029,不是 b0029,作者看错了

本文标题:手把手教你发行自己的以太坊ERC20 Token

本文链接:https://www.haomeiwen.com/subject/cikpextx.html