【译】EOS区块链开发的第一步(下篇)

注意:本文节选&翻译自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数据:

【译】EOS区块链开发的第一步(下篇)_第1张图片

上传“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

【译】EOS区块链开发的第一步(下篇)_第2张图片

./cleos get table currency currency accounts

【译】EOS区块链开发的第一步(下篇)_第3张图片

接收账户eosio现在有20的余额,发送账户的currency现在比最初的发行少20个。

总结:

我们首先安装了EOSIO,并建立了我们的开发环境。然后,我们安装了合约开发所需的可执行程序,并且我们已经开始了我们的第一个testnet节点,它在区块链上生成块。之后,我们学习如何生成公钥/私钥并将它们导入我们的钱包。我们使用公钥- OwnerKey 和 ActiveKey 创建一个账户,并且我们部署了样本currency合约。最后,我们使用currency合约进行了一笔交易。

完。

相关阅读:

【译】EOS区块链开发的第一步(上篇)

【译】EOS区块链开发的第一步(中篇)

你可能感兴趣的:(【译】EOS区块链开发的第一步(下篇))