EOS开发基础之五:使用cleos命令行客户端操作EOS——智能合约之Exchange
先回答一下上一節(jié)中留下的問(wèn)題,為什么我就看不到eosio這個(gè)賬戶中的錢呢?我明明為它c(diǎn)reate了很多token啊。
對(duì),你是create了,但是沒(méi)有issue啊。create了1000000000 SYS,只能說(shuō)明eosio.token這個(gè)用戶為eosio這個(gè)用戶在eosio.token用戶的這個(gè)合約上創(chuàng)建了1000000000 SYS,這些SYS還在央行里面躺著呢,還沒(méi)有發(fā)行,它就是一堆廢紙。
所以,咱們issue一下試試?
執(zhí)行命令:./cleos push action eosio.token issue '["eosio", "1000000000.0000 SYS", "memo"]' -p eosio
也就是發(fā)行者給把1000000000個(gè)SYS全部放進(jìn)自己的賬戶里準(zhǔn)備流通了。
?
怎么樣?我沒(méi)騙你吧?
好了,咱們來(lái)看一下上邊的腳本執(zhí)行情況。
1、因?yàn)橛诌^(guò)了一天了,所以我執(zhí)行第一條命令的時(shí)候,它要求我打開錢包,于是我就吧默認(rèn)錢包給打開了。
2、打開錢包后,我直接給eosio發(fā)1000000000個(gè)SYS,第一次報(bào)錯(cuò)了,說(shuō)交易時(shí)間過(guò)長(zhǎng),我忍了,再執(zhí)行一遍,它告訴我說(shuō) 數(shù)量超過(guò)可供應(yīng)量。
3、好吧,我們把十億換成999999900,再執(zhí)行,成功了。
4、現(xiàn)在再來(lái)看看它們各自有多少錢,看到?jīng)]?eosio這個(gè)賬戶也真的有錢了。但是它錢是不是太多了點(diǎn)?比如說(shuō)我們想再給simayi發(fā)行(issue)點(diǎn)SYS,還能成功嗎?
看到?jīng)]?沒(méi)錢了,國(guó)庫(kù)空虛了,以后simayi想要錢,只能找eosio這家伙要了,只能通過(guò)transfer的方式獲得了。咦,我們?cè)囋嚹懿荒芙o它發(fā)行負(fù)的錢可好?
有點(diǎn)不好意思,它告訴我說(shuō)讓我別鬧,要正數(shù)才行。看來(lái),simayi的這500塊,我只能transfer給它了:
執(zhí)行命令:./cleos push action eosio.token transfer '[ "eosio", "simayi", "500.0000 SYS", "m" ]' -p eosio
?
好了,大家的錢的問(wèn)題都講清楚了,咱們?cè)賮?lái)聊聊其它的合約吧。嗯,第三個(gè):
3、Exchange
The exchange contract 提供了創(chuàng)造和交易貨幣的能力。這是個(gè)什么情況?上邊的eosio.token不也能創(chuàng)建和交易貨幣嘛?等等,這里所說(shuō)的交易貨幣,是不是指像現(xiàn)實(shí)生活中美元和人民幣兌換之類的事啊?所謂的跨貨幣交易?這只是我的個(gè)人猜測(cè)哈。我們現(xiàn)在來(lái)做下實(shí)驗(yàn)吧。
那么,既然它能創(chuàng)建貨幣,那咱們現(xiàn)在就試試Exchange這個(gè)東西好不好使可好?
a、轉(zhuǎn)到nodeos的運(yùn)行界面,使用ctrl+c,停止nodeos的運(yùn)行(咱們不去/home/fengwork/.local/share/eosio/nodeos刪data文件夾哈,留著有用)
b、再次輸入./nodeos,啟動(dòng)節(jié)點(diǎn)
c、打開一個(gè)新的Terminal來(lái)操作cleos
?
3.1創(chuàng)建eosio.exch賬戶(./cleos create account eosio eosio.exch)
要?jiǎng)?chuàng)建一個(gè)賬戶還真是挺麻煩的。先得創(chuàng)建key,解鎖錢包,然后把key導(dǎo)入錢包,之后才能創(chuàng)建account。而且啊,account不能超過(guò)13個(gè)字符,且有命名規(guī)則要求。別告訴我你懶癌犯了哈,命令自己敲去。
呃,如果實(shí)在是真的懶癌犯了,那命令在下邊,誰(shuí)叫我心軟呢:
fengwork@ubuntu:~$ cd eos/build/programs/cleos/
fengwork@ubuntu:~/eos/build/programs/cleos$ ./cleos create key
Private key: 5Jm5G6rFAaxjPKuAraR8mYVmzqpB3E35Mjw363SceFjUeSF6G61
Public key: EOS5m1u5coWVEAfCwpJvh2ftGq2AEnVWFSS6ytvXgegZra11PK6hK
fengwork@ubuntu:~/eos/build/programs/cleos$ ./cleos create key
Private key: 5JfYHqk8wh2v3335Mxsp71B3pBevmpUxHKfkEiomKHcLDDnpfiy
Public key: EOS6wLBffPDWeaYCxTnD1KwFYMR1YjWcCMVf5iRpoQo53tsAAJCeE
fengwork@ubuntu:~/eos/build/programs/cleos$ ./cleos wallet list
Wallets:
[
? "default",
? "hanmeimei",
? "simaguang",
? "wangerxiao"
]
fengwork@ubuntu:~/eos/build/programs/cleos$ ./cleos wallet unlock -n default --password PW5KZGrxQR77W2ctkZPGsZugQVekdEipZKxE48sxy6rPFE6sUfnV6(可還記得你的default錢包的password?)
Unlocked: default
fengwork@ubuntu:~/eos/build/programs/cleos$ ./cleos wallet import 5Jm5G6rFAaxjPKuAraR8mYVmzqpB3E35Mjw363SceFjUeSF6G61
imported private key for: EOS5m1u5coWVEAfCwpJvh2ftGq2AEnVWFSS6ytvXgegZra11PK6hK
fengwork@ubuntu:~/eos/build/programs/cleos$ ./cleos wallet import 5JfYHqk8wh2v3335Mxsp71B3pBevmpUxHKfkEiomKHcLDDnpfiy
imported private key for: EOS6wLBffPDWeaYCxTnD1KwFYMR1YjWcCMVf5iRpoQo53tsAAJCeE
fengwork@ubuntu:~/eos/build/programs/cleos$ ./cleos create account eosio eosio.exch EOS5m1u5coWVEAfCwpJvh2ftGq2AEnVWFSS6ytvXgegZra11PK6hK EOS6wLBffPDWeaYCxTnD1KwFYMR1YjWcCMVf5iRpoQo53tsAAJCeE
executed transaction: c89b760279cb449d25dbce13ffb36a58bbabddaf28b656336acda9ca4fd42f1e? 200 bytes? 14902 us
#???????? eosio <= eosio::newaccount??????????? {"creator":"eosio","name":"eosio.exch","owner":{"threshold":1,"keys":[{"key":"EOS5m1u5coWVEAfCwpJvh2...
warning: transaction executed locally, but may not be confirmed by the network yet
?
警告先不管。
3.2加載Exchange合約(./cleos set contract eosio.exch ../../contracts/exchange -p eosio.exch)
?
3.3給eosio.exch創(chuàng)造點(diǎn)貨幣(./cleos push action eosio.exch create '{"issuer":"eosio", "maximum_supply":"200000000.0000 EXCH"}' -p eosio.exch)
?
看到?jīng)]?我們換著方的玩,它都創(chuàng)造不了貨幣。
那特么的上邊說(shuō)它能夠創(chuàng)造和交易貨幣,逗咱們玩呢?
?
我們?cè)俅斡胑osio.token來(lái)試試,另外創(chuàng)建一個(gè)幣種,看看效果:
?
這才是最正確的姿勢(shì)嘛,那個(gè)Exchange合約是個(gè)什么鬼?!
通過(guò)上邊的命令執(zhí)行情況,我們可以得到如下信息:
1、eosio.token加載過(guò)一遍后,就被寫入到鏈上了,即使我們重啟節(jié)點(diǎn),已加載的合約也不會(huì)丟失,除非你把塊都刪了,且沒(méi)有和別的機(jī)器連在一起上鏈
2、可以為同一個(gè)賬戶,如eosio,創(chuàng)造多個(gè)幣種,且把該幣種發(fā)布出去
3、還是不知道Exchange干啥用的
?
暫時(shí)到這里吧,下篇繼續(xù)。
?
轉(zhuǎn)載于:https://www.cnblogs.com/paluano/p/Exchange.html
總結(jié)
以上是生活随笔為你收集整理的EOS开发基础之五:使用cleos命令行客户端操作EOS——智能合约之Exchange的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。