您的第一笔交易

本教程详细介绍了如何生成、提交和验证提交到 Aptos 区块链的交易。 步骤如下:

  • 创建一个帐户的表达形式

  • 围绕 REST 接口准备一个包装类

  • 在 Faucet 接口周围准备一个包装类

  • 将它们组合成一个应用程序,执行并验证

circle-info

请从下面的代码仓库中 clone 最新代码!

以下是示例代码,可以从 github 下载:

对于本教程,将重点关注 first_transaction.py

可以在这里arrow-up-right找到代码

Step 1) 创建一个账户的表达形式arrow-up-right

每个 Aptos 帐户都有一个唯一的帐户地址。 该帐户的所有者拥有映射到 Aptos 帐户地址的公钥、私钥对,以及存储在该帐户中的身份验证密钥。 在帐户基础中可以查看更多信息。 以下片段演示了该部分中描述的内容。

class Account:
    """Represents an account as well as the private, public key-pair for the Aptos blockchain."""

    def __init__(self, seed: bytes = None) -> None:
        if seed is None:
            self.signing_key = SigningKey.generate()
        else:
            self.signing_key = SigningKey(seed)

    def address(self) -> str:
        """Returns the address associated with the given account"""

        return self.auth_key()

    def auth_key(self) -> str:
        """Returns the auth_key for the associated account"""

        hasher = hashlib.sha3_256()
        hasher.update(self.signing_key.verify_key.encode() + b'\x00')
        return hasher.hexdigest()

    def pub_key(self) -> str:
        """Returns the public key for the associated account"""

        return self.signing_key.verify_key.encode().hex()

Step 2) REST 接口

Aptos 公开了一个用于与区块链交互的 REST 接口arrow-up-right。 虽然可以直接读取来自 REST 接口的数据,但以下代码片段演示了一种更优雅的方法。下一组代码片段演示了如何使用 REST 接口从 FullNode 检索分类帐数据,包括帐户和帐户资源数据。它还演示了如何使用 REST 接口来构建由 JSON 格式表示的签名交易。arrow-up-right

Step 2.1) 读取账户arrow-up-right

以下是用于查询帐户数据的包装类。arrow-up-right

Step 2.2) 提交一笔交易arrow-up-right

下面演示了构建、签名和等待交易的核心功能。arrow-up-right

Step 2.3) 编写特定的逻辑arrow-up-right

下面演示如何从区块链读取数据以及如何写入数据,例如提交特定交易。arrow-up-right

Step 3) Faucet 接口arrow-up-right

区块链水龙头为账户提供一定数量的代币,这些代币可用于支付 gas fees 或在用户之间代币转账。如果帐户尚不存在,Aptos 水龙头还可以创建一个帐户。Aptos 水龙头接口需要一个以十六进制编码字符串表示的公钥。arrow-up-right

Step 4) 执行应用程序并验证arrow-up-rightarrow-up-right

执行后的结果输出:

结果显示 Bob 从 Alice 那里收到了 1000 个硬币。 Alice 支付了 43 个硬币来支付 gas。 可以通过访问 REST 接口或区块浏览器来验证数据:

circle-info

提醒:

devnet 会被定期重置,因此上面的链接可能无法正常查询。你可以自己尝试教程,然后在区块浏览器中查看他们的帐户。

Last updated