一、前言
“不要跟我談什麼狗屁愛情故事,我現在只想搞錢!”
這可能是大部分韭菜的心聲,既然要搞錢,就要弄明白,幣圈搞啥來錢快,沒錯,就是發幣!
二、發幣
在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這個賬號
由於所有的操作都要基於錢包,所以,我們需要先把賬號匯入到錢包。
./cleos wallet import -n eosio.token --private-key 5K3rGTJvymup1nXhbZM9aYNnRr5y9shtzCmDmTB5vREA1ujmv8E
EOS開發完全解析(二):用cleos命令列建立、匯入、解鎖錢包
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
2.3 建立代幣
eosio.token
這個合約在~/eos/contracts/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()
方法,傳的引數為eosio
和100000000.00 LG
,最後是授權,預設為active
許可權。意思是為eosio
這個賬號建立100000000.00個LG
,精度為2位小數。
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為零。
不知道大家有沒有發現一個神奇的現象,浪哥建立tokne的時候,明明指定了token所有者為
eosio
這個賬號,但是查詢餘額的時候,為啥它的LG餘額也為0呢? 產生這個問題的原因是因為建立代幣的時候,只是指定了該代幣的所有者為eosio
這個賬號,而真正傳送代幣還需要呼叫issue
方法。
接下來我們再執行一次issue
方法,為eosio
這個賬號傳送5000.00個LG。
**溫馨提示:**eos錢包在長時間未操作會自動鎖定,這個間隔大概是幾分鐘,所以繼續操作之前需要重新解鎖錢包。
再次查詢餘額,這時候就到賬了。
2.5 轉賬
./cleos push action eosio.token transfer '["langge111111","langge222222","5000.00 LG","test transfer"]' -p langge111111
從賬號langge111111
轉5000.00個LG到賬號langge222222
。
再來查詢一下餘額,安排上了,整整齊齊。
**溫馨提示:**不管是呼叫
issue()
還是transfer()
方法,傳送token的精度必須與create()
時的精度一致,否則會操作失敗。
三、總結
至此,我們已經掌握了eos全套發幣流程,是不是相當easy,比在ETH上發幣有過之而無不及吧?幣發完之後,接下來我們該幹嘛? 這個就見仁見智了,不過,浪哥只有一個要求:圈錢被維權了不要說看的浪哥的發幣教程就ok了。 下一講浪哥將講述如何做事之——手摸手實現一個eos智慧合約。 畢竟,我們是做事的團隊......