注意:本文节选&翻译自https://infinitexlabs.com/first-steps-in-eos-blockchain-development/
对搭建EOSIO开发环境感兴趣的,也可以查看EOS官方的本地环境搭建教程:https://github.com/EOSIO/eos/wiki/Local-Environment
因文章较长,我分成了上中下三篇,本篇是下篇。
内容简介:
1、为currency合约创建一个账号
2、上传currency合约到区块链
3、用currency合约交易
为“currency”合约创建一个账号
这个被命名为“currency”的账号将会被用于“currency”合约。生成两对 公钥/私钥,稍后将其分配为public-OwnerKey 和 public-ActiveKey。
cd ~/eos/build/programs/cleos/
./cleos create key # OwnerKey
./cleos create key # ActiveKey
这将输出以下格式的两对公钥和私钥:
Private key: XXXXXXXXXXXXXXXXXXXXXXX
Public key: XXXXXXXXXXXXXXXXXXXXXXX
把两个私钥导入到钱包:
./cleos wallet import
./cleos wallet import
请注意,如果你未指定钱包的名称,则将使用“默认”。另外,不要忘记保存你生成的密钥。
通过 cleos create account 命令来创建账号。该创建将会被eosio账户授权。上面生成的两个公钥将与该账户关联,一个作为其OwnerKey,另一个作为其ActiveKey。如果它执行成功了,你应该会得到一个JSON返回,并返回一个确认其已成功执行的事物ID。
./cleos create account eosio currency
executed transaction: f280ab10e0734f7d2ff3d84f84a4189c7e3f17b739469121bf28abcecbf6f1b1 364 bytes 1000 cycles
你可以通过下面的命令来校验账号是否已经创建成功了
./cleos get account currency
如果一切顺利,你将得到一个类似下面格式的json数据:
上传“currency”合约样本到区块链
在上传一个合约之前,你需要去校验区块链上还没有这个合约
./cleos get code currency
code hash: 0000000000000000000000000000000000000000000000000000000000000000
使用currency账户上传currency合约样本。响应应该是带有一些JSON的transaction_id。这表示你的合同已成功上传:
cleos set contract currency build/contracts/currency/ build/contracts/currency/currency.wast build/contracts/currency/currency.abi
同样,你也可以通过以下命令校验代码已经被设置:
./cleos get code currency
code hash: 9b9db1a7940503a88535517049e64467a6e8f4e9e03af15e9968ec89dd794975
在使用currency合约之前,你必须 create 然后 issue 合约:
./cleos push action currency create ‘{“issuer”:”currency”,”maximum_supply”:”1000000.0000 CUR”,”can_freeze”:”0”,”can_recall”:”0”,”can_whitelist”:”0”}’ —permission currency@active
./cleos push action currency issue ‘{“to”:”currency”,”quantity”:”1000.0000 CUR”,”memo”:””}’ —permission currency@active
然后校验currency合约是否已经有了合适的初始余额:
./cleos get table currency currency accounts
{ “rows”: [{ “balance”: “1000.0000 CUR”, “frozen: 0, “whitelist”: 1 } ], “more”: false }
通过“currency”合约转账
下面演示从 currency账号转账 “20.0000 CUR” 到 “eosio”账号。一个成功的交易将生成一个交易ID和JSON输出:
./cleos push action currency transfer ‘{“from”:”currency”,”to”:”eosio”,”quantity”:”20.0000 CUR”,”memo”:”my first transfer”}’ —permission currency@active
executed transaction: 943fc09b6ccc426d172fdda87c70e02eeb9934790b2f23ce6da298e98f06f07f 284 bytes 1000 cycles
>> transfer
最后,我们校验一下“currency”合约的余额:
检查前一个交易涉及的两个账户的状态
./cleos get table currency eosio accounts
./cleos get table currency currency accounts
接收账户eosio现在有20的余额,发送账户的currency现在比最初的发行少20个。
总结:
我们首先安装了EOSIO,并建立了我们的开发环境。然后,我们安装了合约开发所需的可执行程序,并且我们已经开始了我们的第一个testnet节点,它在区块链上生成块。之后,我们学习如何生成公钥/私钥并将它们导入我们的钱包。我们使用公钥- OwnerKey 和 ActiveKey 创建一个账户,并且我们部署了样本currency合约。最后,我们使用currency合约进行了一笔交易。
完。
相关阅读: