前言:
周一聽了oldlee《如何發(fā)行基于以太坊的數(shù)字貨幣》的精彩演講,才發(fā)現(xiàn)發(fā)行以太坊ERC20 Token很簡(jiǎn)單,這是一件小白也可以做到的事情。以下是我對(duì)本次講座內(nèi)容的實(shí)踐:
一、安裝環(huán)境
1、在chrome瀏覽器安裝MetaMask插件
安裝完成后,你會(huì)看到chrome右上角有一個(gè)新的圖標(biāo)。
2、新建錢包
輸入密碼,保存助記詞
3、使用測(cè)試網(wǎng)絡(luò)
由于使用以太坊主網(wǎng)絡(luò)發(fā)布智能合約需要真正的ETH,在這里我使用的是測(cè)試網(wǎng)絡(luò)(如果要在主網(wǎng)絡(luò)發(fā)布一個(gè)Token,只需要選擇主網(wǎng)絡(luò))
切換到測(cè)試網(wǎng)絡(luò)
4、領(lǐng)取測(cè)試用的ETH
點(diǎn)擊“Buy”
點(diǎn)擊"ROPSTEN TEST FAUCET"
點(diǎn)擊綠色的按鈕“request 1 ether from faucet”,就可以領(lǐng)取1ETH
或者在這個(gè)網(wǎng)址領(lǐng)取3個(gè)測(cè)試用的ETH
如果兩個(gè)都領(lǐng)取的話,那么此時(shí)你總共就有4個(gè)ETH了
二、編輯代碼
由于以太坊智能合約使用的是Solidity語言,所以需要使用Solidity開發(fā)。
在這里我使用的是Remix,這是一個(gè)在線的Solidity編譯器。
1、拷貝代碼
代碼可以從這個(gè)網(wǎng)址拷,然后粘貼到Remix左邊的代碼編輯區(qū)就可以了
2、設(shè)置參數(shù)
:大家注意在網(wǎng)頁右邊的"Run"中的“Environment”設(shè)置為“Injected Web3”,如果遇到無法選擇“Injected Web3”的情況,請(qǐng)刷新一下。
“Create”中填入創(chuàng)建的Token參數(shù),
第一個(gè)參數(shù)是Token的數(shù)量;
第二個(gè)參數(shù)是Token的全稱;
第三個(gè)參數(shù)是Token的精度,即Token最小為小數(shù)點(diǎn)后幾位;
第四個(gè)參數(shù)是Token的符號(hào);
例如:100000000,"zhongxh's test token",8,"ZTT"
上述例子代表創(chuàng)建的Token的全稱是"zhongxh's test token",符號(hào)是“ZTT”, ZTT的最大精度為小數(shù)點(diǎn)后8位,即最小是0.000000001ZTT,總共有1億份,那么總共有100000000 * 10^(-8)ZTT,即1ZTT
點(diǎn)擊“Create”按鈕
3、提交智能合約
點(diǎn)擊“Create”后,就可以看到MetaMask彈出的“CONFIRM TRANSACTION”的頁面,這個(gè)頁面是用來確認(rèn)發(fā)送的,點(diǎn)擊“SUBMIT”提交。
以太坊智能合約的編輯、編譯和創(chuàng)建
點(diǎn)擊“SENT”,可以看到剛剛創(chuàng)建的合約。
點(diǎn)擊該智能合約
點(diǎn)擊剛剛發(fā)布的智能合約地址,就會(huì)跳轉(zhuǎn)到Etherscan(以太坊的區(qū)塊瀏覽器),耐心等待智能合約的創(chuàng)建。
4、發(fā)布智能合約
Contract address為上面創(chuàng)建的合約地址;
Contract name為在Remix中選擇創(chuàng)建的合約名稱HumanStandardToken;
Compiler版本需選擇在Remix進(jìn)行合約創(chuàng)建時(shí)選擇的編譯器版本一致;
是否優(yōu)化Optimization也需要與Remix發(fā)布合約時(shí)保持一致;
在“Enter the Solidity Contract Code below”中填入之前在Remix中的solidity合約代碼;
在“Constructor Arguments ABI-encoded”中填入構(gòu)造函數(shù)參數(shù)(100000000,"zhongxh's test token",8,"ZTT")的ABI編碼,這個(gè)編碼可以在創(chuàng)建合約的transaction的Input data中找出,如下圖藍(lán)色選中的部分即是構(gòu)造函數(shù)參數(shù)的ABI編碼(b0029之后所有的數(shù)據(jù))。
請(qǐng)注意:以上都要和Remix發(fā)布合約時(shí)保持一致,否則沒辦法生成一個(gè)有效的ERC20 Token。
點(diǎn)擊Verify and Publish,如果驗(yàn)證通過了就會(huì)出現(xiàn)如下頁面:
刷新一下頁面,點(diǎn)擊Contract Source標(biāo)簽,就能看到上傳的合約源代碼了:
三、驗(yàn)證
因?yàn)镸etamask不支持toekn的發(fā)送,我們切換到MyEtherWallet錢包。
需要注意的是,MyEtherWallet也需要切換到Rostpen網(wǎng)絡(luò)
接下來切換到“發(fā)送以太幣/發(fā)送代幣”
在這里我選擇用私鑰的方式解鎖錢包,私鑰可以從Metamask獲得
點(diǎn)擊Metamask右上角的“...”,然后點(diǎn)擊"Export Private Key ",輸入密碼,即可獲得私鑰
將私鑰拷到MyEtherWallet,就可以解鎖你的錢包了。
點(diǎn)擊右下角的“Load Token Balance”
右下角顯示的正是剛剛創(chuàng)建的Token,也就是ZTT,余額為1,這表明我的ERC20 Token發(fā)布成功了!
四、后話
沒想到發(fā)布一個(gè)以太坊的ERC20 token這么簡(jiǎn)單,這么方便,這也是為什么那么多個(gè)區(qū)塊鏈項(xiàng)目利用以太坊進(jìn)行愛西歐的原因。
但也正是因?yàn)楹?jiǎn)單,才招惹了很多傳銷組織和騙子,打著區(qū)塊鏈的旗號(hào)騙人騙錢,因?yàn)檫@幾乎是沒有成本的買賣,希望大家在接下來的日子擦亮自己的眼睛,為自己的投資負(fù)責(zé)。
我希望通過這篇文章,讓讀者知道如何發(fā)布一個(gè)以太坊的ERC20 token, 成為讀者入門以太坊智能合約的“最小必要知識(shí)”。
最后,我要感謝oldlee給我們帶來的精彩演講,感謝區(qū)塊鏈研習(xí)社創(chuàng)造的平臺(tái)。
以上引用自oldlee的簡(jiǎn)書文章:
http://www.lxweimin.com/p/75730fae67e6