• 吃人一口,還人一斗 我思故我在

    字面上意思是說,受別人一點幫助,就要思考如何回報他更多。

    同義的:受人點滴,湧泉以報

    我覺得更值得更深入思考的是,

    當你輕易地要求別人的幫助時,你就得有心理準備,要返還十倍或更多。

    所以,當自己能做到,不輕易要求別人的幫忙。

    (說到這裡,小伙伴會覺得跟我以前說的”情感投入報酬”不一樣,情境不同暫不展開)

    這是台灣的俗語,用台語發音更有味道。

  • 瘋狂宇宙 我思故我在

    這個宇宙太瘋狂,大海掀翻了小池塘。

  • 區塊鏈是工具,要合理的使用;而非商品炒作。我思故我在

  • 賀賀郎,哇嗄哩供喂 我思故我在

    意思就是說,我是一個好好的、正常的人,我幹嘛跟你講話。

    一般用於朋友間小小辨論時,無法說服對方而使用。

    請不要企圖說服價值觀不在同個方向上的人或朋友。

  • Ethereum 塞車體驗 我思故我在
    下午四點,第一次體驗到 Eethereum 的塞車,一個 Uniswap 的交易等了一個鐘頭

    約1600 左右的交易,到 1702 收到通知完成

    不是說好的幾秒鐘,幾分鐘哦。造成這個情況的這是 TPS 限制嗎?還是真的有大量垃圾訊息或攻擊導致的?

  • 中心思想 我思故我在

    行為會改變、技術會改變,但中心思想不會變
    如同你會隨著環境而適應,但你的價值觀沒那麼容易改變

    中心思想、價值觀要改變,需要非常深刻的思考及體會,一般人在成長階段接受了某種價值觀,就不容易再改變了。

  • 現在想想,還好選了 ethereum 入門 我思故我在
    當時本來是想跟 Bruce 在公司的決定一樣,從 Fabric 開始。最近沒聯絡不知道發展得如何?

    還好選了 ethereum 入門

  • 成大事者不拘小節 魔鬼藏在細節裡 我思故我在

    兩句話看似相互矛盾,但其實使用的場景是不同的
    年輕人,把這兩句話串在一起,就定位成幹話

    真的這淺薄嗎?

  • 想像力比知識更重要?我思故我在

    你的問題在於書讀得太少,想得太多。

    如果是可比較的,那請您思考:想像力固然重要,是不是應該讓你的知識追上你的想像力?

  • 學士碩士博士的不同 我思故我在
    學士 學習知識 判斷問題(價值)
    碩士 運用知識 解決問題
    博士 創造知識 發現問題

七行代碼發行 Token 一圓曾經的ICO美夢

走在 DeFi 鋼索上的大叔 andy 2个月前 (08-03) 293次浏览 已收录 0个评论 扫描二维码

七行代碼發行 Token ,一圓曾經的ICO美夢

2017年區塊鏈迎來 ICO 狂潮高峰, 數百種各式各樣的幣傾巢而出,其中甚至還有撞名的。有不少區塊鏈集資成功,但從今年下半年回過頭看,還有價值的可能不到 10%。
2018年不少交易所也發行了自己的去中心化貨幣,比如台灣的 BitoPro 為例,算是趕上ICO的尾巴,不過規模較小,再加上功能有限,除了交易所內的功能可以使用到,而有優惠之外,吸引力真的不高。所以看起來也是搖搖欲墜,18年真的是冰河期。而因為 ICO狂潮,也帶動了 ERC20 Token,然後開始 ICO的套路在 Token 上似乎也做了進化,DApp 帶個遊戲,再加上激勵制度,看起來變得相當斯文,吃相也不那麼難看。
2017年11月 MakerDAO 推出的穩定幣 DAI ,使 DeFi 延續了區塊鏈的熱度,在2018 及 2019 年,以 Dai 為基礎的各種借貸、交易所、資產管理等服務,逐漸上線,如果說DeFi 在2018年是起步, 2019年 是累積能量,那2020年應該可以邁入成長期開始爆發。

原本已經寫好的 ERC20 Token 合約,具備基礎的 ERC20 標準功能之後,還沒有 Debug ,就發現 OpenZappelin 已經有寫好標準的 ERC20 合約。初步看了一下,原來是我重新造了輪子。但是,雖然OpenZappelin 的 ERC20 Token 合約是符合安全審查的,但還是缺乏一些進階的功能。在增加功能之前,我們就先來看看這個ERC20標準合約,要如何部署,發行屬於我們自己的 Token 。這裡用的都是最簡單的方式,只需具備:

  • Chrome 瀏覽器
  • MetaMask 錢包

瀏覽器只需要標準的瀏覽器就可以了,edge 跟 firefox 也都可以。錢包只要使用能連上 Ropsten 測試網路的 ERC20 相容錢包即可,使用 MetaMask 是因為可以直接切換網路,又掛在 chrome 上很方便。

先上代碼再說明。

pragma solidity ^0.6.0;

import "https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC20/ERC20.sol";

contract ADCToken is ERC20 {
    constructor(uint256 initialSupply) public ERC20("AndyCoin", "ADC") {
        _mint(msg.sender, initialSupply * (10 ** uint256(decimals())));
    }
}

就這7行代碼,就可以發行標準的 ERC20 Token 然後使用 MataMask 錢包來收發代幣。
打開 Chrome ,進入 https://remix.ethereum.org/ ,我們使用 Remix 來編譯,錢包記得切換到 Ropsten 測試網路。
在 Remix 裡面建立新檔案,把代碼貼上後直接編譯完成。
對照下圖的行號,說明代碼。
第3行,調用 OpenZappelin 的 ERC20 Token 合約。
第5行,ADCToken 是合約名稱, 繼承自 ERC20 ,良好習慣的命名是與檔名相同。例外是同一個檔案內有兩個以上合約。
第6行,AndyCoin 是我們要創建的 Token 名稱 name , ADC 是 Token 代號 symbol
第7行,代幣數量,預設小數點後面是18個零,所以 10**18 就是 1個代幣,而我們用 10 ** uint256(decimals())) 的意思,就是用預設值來計算。這裡是坑,小心勿踩。

七行代碼發行 Token 一圓曾經的ICO美夢

然後按照上圖,左邊
ENVIROMENT 選 Injected Web3 ,意思是注入 Web3 的使用方式,這是最簡單的,你不用準備其他的編譯環境。
ACCOUNT 貼上要部署此合約的錢包地址,建議在這裡使用子錢包。最好符合錢包的安全使用規則。
CONTRACT 選擇已編譯完成的合約,我們這裡是 ADCToken ,檔名是 AndyCoin (此例檔名跟合約名不同)
DEPLOY 拉開後出現 INITIALSUPPLY ,這是合約建構子的參數名稱,是 Token 的初始供應量,由於合約沒有實現其他造幣的方法,因此這裡也等於總量。我們先少少的發行10億個幣就好。此坑小心輕踩。

輸入完成後,黃色按鈕 trasaction 。
然後錢包需要確認這筆交易,如下圖

七行代碼發行 Token 一圓曾經的ICO美夢

這裡標出所需花費的 gas ,這個值會跟在 mainchain 上部署一樣。
確認之後,回到 Remix ,如下圖右下部份。

七行代碼發行 Token 一圓曾經的ICO美夢

看到右下區域的 console
第二行綠色的文字,鏈接可以直接點開,會另開視窗到 etherscan ,可以即實看到這筆交易被確認的情況。
第三行是交易已經確認上鏈了。

下圖是確認完上鏈之後, Remix 左邊出現剛剛部署的合約欄位。

七行代碼發行 Token 一圓曾經的ICO美夢

Deployed Contracts 下拉,可以看到部署的合約。選到 ADCTOKEN , 可以先按右邊的複製鍵,把合約地址複製下來。許多地方都會用到此合約地址,比如在錢包內新增代幣時也會用到。
黃色的按鈕,是需要 gas 的操作,藍色的按鈕是不需要 gas 的操作。

我們點開 name, symbol, totalSupply 三個,如下圖

七行代碼發行 Token 一圓曾經的ICO美夢

三個欄位都正確沒毛病,totalSupply 是10億個代幣,後面跟上 18個零,因為 decimals 的項設值是18,我們沒有更改。

打開 MetaMask 發現代幣已到帳,因為 OpenZappelin 的 ERC20 實現,是會把初始供應量全部發給合約的創建者。如下圖。

七行代碼發行 Token 一圓曾經的ICO美夢

然後我們用 Remix 操作合約,發10萬個幣給另一個錢包帳號。這裡操作時,我們已經先把帳號複製下來,沒有切換錢包,請注意沒有切換錢包。如下圖。

七行代碼發行 Token 一圓曾經的ICO美夢

按下 transaction ,一樣要在錢包上確認。

如果沒有出現確認,就先等一下。等到出現確認並且按下之後,再切換成另一個接收代幣的帳號。下圖是切換到接收的錢包,下方沒有 ADC 代幣。

七行代碼發行 Token 一圓曾經的ICO美夢

沒有出現 ADC 代幣,我們手動加上。

按加入代幣之後,如下圖。

七行代碼發行 Token 一圓曾經的ICO美夢

在代幣合同位址的欄位,貼上合約地址,如下圖。

七行代碼發行 Token 一圓曾經的ICO美夢

會自動出現代幣代號及小數點精度, symbol 跟 decimal 。

按下一頁。

七行代碼發行 Token 一圓曾經的ICO美夢

然後按如入代幣。如下圖。

七行代碼發行 Token 一圓曾經的ICO美夢

然後再按回到上一頁,在左上角的向左箭頭。回到錢包主頁

七行代碼發行 Token 一圓曾經的ICO美夢

看到已經出現 ADC Token , 數量 10000 個,沒毛病。再回到剛剛的帳號,看看剩多少 ADC 。如下圖。

七行代碼發行 Token 一圓曾經的ICO美夢

ADC 代幣剩下 9億9千9百9十萬個。沒問題。

如果你想的話,也可以用錢包直接發,不需要從 Remix 操作合約來發代幣。一般我們也是直接從錢包發就可以了。

到目前為止,我們使用 OpenZappelin 的 ERC20 合約發行了 ADC Token ,看起來也很順利,但我們卻不了解裡面的結構,也就是 ERC20 代幣合約的內容是什麼,然後 OpenZappelin 又做了些什麼事。
下一篇文章我們來看看 ERC20.sol 裡面做了些什麼,看看高手是如何寫合約,看這種符合安全審核的程式,對我們這種新手來說很重要。可以透過高品質的代碼,學習到各種避免出現問題的寫法,盡量模仿高手的優點。


神隊友學長Andy , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:七行代碼發行 Token 一圓曾經的ICO美夢
喜欢 (0)
[320208045@qq.com]
分享 (0)
andy
关于作者:
中年大叔,打拼 like young students.
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址