一、准备
1、运行环境
我使用的是ubuntu-16.04操作系统,按照eos GitHub上的步骤安装,如果安装中遇到问题,也可以参考我的上一篇文章《搭建EOS测试环境》。
另外,我使用的是Dawn 2.0的代码。由于EOS还在紧张开发中,版本之间差别较大,如果使用的是其它版本的代码,请读者自行适配。
2、创建钱包
钱包用来管理账户,签署交易。
钱包创建后,默认就是unlock的(注意,钱包密码需要记录下来,后面还会用到)。
$ eosc wallet create
3、创建账户
部署智能合约需要一个账户。
首先,创建两个秘钥对(注意,秘钥对需要记录下来,后面还会用到)。
$ eosc create key #owner_key
$ eosc create key #active_key
然后使用系统默认的账户(inita)授权创建新账户(比如currency),将上面创建的私钥分别作为新账户的owner和active的公钥。
$ eosc create account inita currency OWNER_PUBLIC_KEY ACTIVE_PUBLIC_KEY
4、将账户导入钱包
账户导入钱包,方便钱包管理账户。
将账户的active的私钥导入钱包。
$ eosc wallet import XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
二、部署智能合约
接下来我们使用currency账户作为智能合约的创建账户。
首先,我们先查看currency账户是否已经部署智能合约。
$ eosc get code currency
code hash: 0000000000000000000000000000000000000000000000000000000000000000
code hash全是0表示currency账户还没有部署智能合约(因为currency是新创建的账户)。
然后,我们部署智能合约,这里使用eos自带的currency智能合约。
$ eosc set contract currency ../contracts/currency.wast ../contracts/currency.abi
最后,我们再查看一下currency账户的关联智能合约。
$ eosc get code currency
code hash: 9b9db1a7940503a88535517049e64467a6e8f4e9e03af15e9968ec89dd794975
此时,currency账户已经有关联的智能合约,表明智能合约部署成功了,currency token也就创建成功了。
三、调用智能合约
eos自带的currency智能合约只有转账的功能,我们这里就使用转账来示例。
首先,查看currency账户的余额。
$ eosc get table currency currency account
{
"rows": [{
"key":"account",
"balance": 1000000000
}
],
"more":false
}
从上面可以看到,此时,currency账户拥有1000000000个新创建的currency token。
再查看inita账户的余额。
$ eosc get table inita currency account
{
"rows": [{
"key":"account",
"balance": 0
}
],
"more":false
}
现在,我们从currency账户,给inita账户转50个currency token。
$ eosc push message currency transfer '{"from":"currency","to":"inita","quantity":50}' --scope currency,inita --permission currency@active
请注意,这个时候钱包必须是unlock,否则会报错。
现在我们再来看看currency账户和inita账户的余额。
$ eosc get table currency currency account
{
"rows": [{
"key":"account",
"balance": 999999950
}
],
"more":false
}
$ eosc get table inita currency account
{
"rows": [{
"key":"account",
"balance": 50
}
],
"more":false
}
从上面可以看到,转账后,currency账户少了50个 currency token,inita账户多了50个currency token,表明转账成功。
小tips:
如果因为突然断电或者无意中关机,没来得及同步数据,导致eosd运行有问题,可以删除区块数据和钱包数据,再运行eosd。
本文由【区块链研习社】优质内容计划支持,更多关于区块链的深度好文,请点击区块链研习社。
下面是不脸打赏地址:
ERC20代币地址:0xdeF092bca8d9E093EAD79c967b11D5cA7b0f7a4A
利用EOS发币QYB(屈原币)地址:
QPA9RhmH5NVRFXARWex9hkyoZMVypLqqYR
利用EOS发币
网友评论