与 Aptos 区块链交互

Aptos 区块链使用 Move 虚拟机 (VM) 来执行操作。虽然许多区块链实现了一组原生操作,但 Aptos 将所有操作委托给 Move,包括:账户创建、资金转账和发布 Move 模块。为了支持这些操作,构建在 Move 之上的区块链必须提供一个框架(类似于计算机的操作系统或最小的可行功能集)来与区块链交互。在本节中,我们将讨论这些通过 Aptos 框架的“script”函数公开的函数。

本指南(与移动模块教程相结合)将解锁在 Aptos 区块链之上开始构建丰富应用程序所需的最少信息量。注意:Aptos 框架正在大力开发中,本文档可能不是最新的。最新的框架可以在源代码中找到,这里。

Aptos Framework 内提供给用户的核心功能包括:

  • 发送和接收网络币 Coin<AptosCoin>

  • 创建一个新帐户

  • 发布新的移动模块

注意:本文档假设读者已经熟悉提交交易,如您的第一个交易教程中所述。

发送和接收网络代币 Coin<AptosCoin>

发送和接收网络代币 Coin 提交和执行交易时需要 Coin 支付 Gas 费。 Coin 可以通过调用 Devnet Faucet 获得。有关示例,请参阅您的第一次交易教程。 指示区块链执行传输的负载是:

这会指示 VM 执行script 0x1::Coin::transfer 类型参数为 0x1::aptos_coin::AptosCoin。此处需要类型,因为 Coin 是我们的标准模块,可用于创建多种类型的 Coin。请参阅您的第一枚硬币教程 有关创建自定义硬币的示例。第一个参数是收件人地址,0x737b36c96926043794ed3a0b3eaaceaf ,第二个是转账金额,1000 .发件人地址是发送查询此脚本的交易的帐户地址

创建新帐户

指示区块链创建新帐户的负载是:

这会指示 Move 虚拟机执行脚本 0x1::AptosAccount::create_account .第一个参数是要创建的帐户的地址,第二个参数是身份验证密钥原像(在帐户中提到 )。对于单签名者身份验证,这是与 0 连接的公钥字节(或 pubkey_A | 0x00)。这是防止帐户地址抢占所必需的。该指令的执行验证验证密钥的最后 16 字节是否与 16 字节的帐户地址相同。我们正在积极改进此 API,以支持接收 32 字节的帐户地址,从而消除对土地掠夺或帐户操纵的担忧。

发布新的 Move 模块

发布新模块的负载是:

"type": "module_bundle_payload", "modules": [ {"bytecode": "0x..."}, ],

这指示 VM 在发送者的帐户下发布模块字节码。如需完整教程,请参阅您的第一个移动模块。 需要注意的是,Move 字节码必须指定与发送者账户相同的地址,否则交易将被拒绝。例如,假设帐户地址为“0xe110”,则需要更新 Move 模块,因为“module 0xe110::Message”、“module 0xbar::Message”将被拒绝。或者,可以使用别名地址,例如module HelloBlockchain::Message,但HelloBlockchain 别名需要在Move.toml 文件中更新为0xe110。我们正在与 Move 团队合作,并计划将编译器合并到我们的 REST 接口中以缓解此问题。

Last updated