您的第一笔交易

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

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

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

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

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

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

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

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

可以在这里找到代码

Step 1) 创建一个账户的表达形式

每个 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 接口。 虽然可以直接读取来自 REST 接口的数据,但以下代码片段演示了一种更优雅的方法。下一组代码片段演示了如何使用 REST 接口从 FullNode 检索分类帐数据,包括帐户和帐户资源数据。它还演示了如何使用 REST 接口来构建由 JSON 格式表示的签名交易。

Step 2.1) 读取账户

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

Step 2.2) 提交一笔交易

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

Step 2.3) 编写特定的逻辑

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

Step 3) Faucet 接口

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

Step 4) 执行应用程序并验证

执行后的结果输出:

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

提醒:

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

Last updated