EOS開發完全解析(四):EOS快速發幣,何以圈錢?唯有發幣!

區塊鏈浪潮之巔發表於2018-10-27

一、前言

“不要跟我談什麼狗屁愛情故事,我現在只想搞錢!”

我現在只想搞錢

這可能是大部分韭菜的心聲,既然要搞錢,就要弄明白,幣圈搞啥來錢快,沒錯,就是發幣!

二、發幣

在eos上發幣和在ETH上發幣一樣,都非常簡單。在eos上發幣我們主要用到一個叫eosio.token的智慧合約,該合約執行建立許多不同的token,每個token可以由不同的使用者管理。

在我們部署token合約之前,首先需要建立一個賬號來管理合約。

2.1 建立賬號

我們這裡建立3個賬號用於測試,分別是eosio.token、langge111111和langge222222。其中eosio.token用來部署合約,另外兩個賬號用來測試轉賬。 ./cleos create account eosio eosio.token EOS75bGH5NwCen69GczAgGkg9vVVMQAdqDDqNeZHAyxX2TxDMP5tT EOS6u5pwb64P9HshRcWHFixgtU8WAe3yNHDjFJwKwLcuWYq4p1h1x 如何建立賬號之前章節已經講得很詳細了,這裡不再贅述,不明白的童鞋可以回去複習一下前面的章節。 EOS開發完全解析(三):EOS賬號建立

建立eosio.token賬號

這裡我們成功建立了eosio.token這個賬號

由於所有的操作都要基於錢包,所以,我們需要先把賬號匯入到錢包。 ./cleos wallet import -n eosio.token --private-key 5K3rGTJvymup1nXhbZM9aYNnRr5y9shtzCmDmTB5vREA1ujmv8E EOS開發完全解析(二):用cleos命令列建立、匯入、解鎖錢包

匯入eosio.token到錢包

2.2 部署eosio.token合約

./cleos set contract eosio.token ~/eos/build/contracts/eosio.token -p eosio.token 第一個eosio.token是部署合約的賬號,第二個eosio.token是要部署的合約,-p eosio.token的意思是授權賬號為eosio.token

部署eosio.token合約

2.3 建立代幣

eosio.token這個合約在~/eos/contracts/eosio.token這個目錄下面,我們看一下他的檔案結構

eosio.token合約檔案

我們開啟eosio.token.hpp這個C++標頭檔案可以看到提供瞭如下幾個公共方法,我把它們加上了註釋,這樣便於大家理解。

        /*
        *建立token
        ** issuer 發行人
        ** maximum_supply token總量
        */
         void create( account_name issuer,asset maximum_supply);
        /*
        *發幣,合約所有者使用操作
        ** to 接收賬戶
        ** quantity 傳送數量
        ** memo 備註
        */
         void issue( account_name to, asset quantity, string memo );
        /*
        *轉賬,普通使用者也可以
        ** from 傳送賬戶
        ** to 接收賬戶
        ** quantity 傳送數量
        ** memo 備註
        */
         void transfer( account_name from,account_name to,asset quantity,string memo)
複製程式碼

要建立代幣,我們這裡只需要使用create()方法即可,引數issue為發行人,發行人將有權執行凍結,召回和列入所有者白名單等操作。

執行create()方法, ./cleos push action eosio.token create '["eosio","100000000.00 LG"]' -p eosio.token 這段命令是指用eosio.token這個賬號執行create()方法,傳的引數為eosio100000000.00 LG,最後是授權,預設為active許可權。意思是為eosio這個賬號建立100000000.00個LG,精度為2位小數。

eos建立代幣.png

2.4 傳送代幣

./cleos push action eosio.token issue '["langge111111","10000.00 LG","airdrop"]' -p eosio -j 這段指令是為langge111111這個賬號傳送10000.00個LG,備註為“空投”,同時以json格式輸出。

傳送代幣

這裡列印內容有點多,我只擷取了部分。我們現在來查詢一下餘額,看看是否已經到賬。 ./cleos get currency balance eosio.token langge111111 我們可以看到,langge111111這個賬號已經有10000.00個LG了,而另外兩個賬號的LG為零。

查詢eos賬號餘額1

不知道大家有沒有發現一個神奇的現象,浪哥建立tokne的時候,明明指定了token所有者為eosio這個賬號,但是查詢餘額的時候,為啥它的LG餘額也為0呢? 產生這個問題的原因是因為建立代幣的時候,只是指定了該代幣的所有者為eosio這個賬號,而真正傳送代幣還需要呼叫issue方法。

接下來我們再執行一次issue方法,為eosio這個賬號傳送5000.00個LG。

**溫馨提示:**eos錢包在長時間未操作會自動鎖定,這個間隔大概是幾分鐘,所以繼續操作之前需要重新解鎖錢包。

傳送LG給eosio

再次查詢餘額,這時候就到賬了。

image.png

2.5 轉賬

./cleos push action eosio.token transfer '["langge111111","langge222222","5000.00 LG","test transfer"]' -p langge111111 從賬號langge111111轉5000.00個LG到賬號langge222222

eos轉賬

再來查詢一下餘額,安排上了,整整齊齊。

eos餘額查詢3

**溫馨提示:**不管是呼叫issue()還是transfer()方法,傳送token的精度必須與create()時的精度一致,否則會操作失敗。

三、總結

至此,我們已經掌握了eos全套發幣流程,是不是相當easy,比在ETH上發幣有過之而無不及吧?幣發完之後,接下來我們該幹嘛? 這個就見仁見智了,不過,浪哥只有一個要求:圈錢被維權了不要說看的浪哥的發幣教程就ok了。 下一講浪哥將講述如何做事之——手摸手實現一個eos智慧合約。 畢竟,我們是做事的團隊......

團隊在做事

相關文章