第一个 NFT
本教程通过以下的分步步骤描述如何在 Aptos 区块链上创建和转移 NFT。核心 NFT 或代币的 Aptos 实例可以在 token.move 中找到。
第 1 步:选择一个 SDK
Aptos 官方 Rust SDK —— 待发布
第 2 步:运行示例
每个 SDK 都提供一个示例目录。本教程涵盖了该 simple-nft
示例。
克隆 aptos-core
:
Typescript
导航至 Typescript SDK 示例目录:
安装必要的依赖项:
运行
simple-nft
示例:Python
导航至 Python SDK 示例目录:
安装必要的依赖项:
运行
simple-nft
示例:Rust
待发布
第 3 步:理解输出
执行 simple-nft 示例后,应出现以下输出,但某些值会有所不同:
该示例演示了:
初始化 REST 和 Faucet 客户端
创建 Alice 和 Bob 两个帐户
为 Alice 和 Bob 的帐户提供资金
使用 Alice 的帐户创建一个集合和一个代币
Alice 提供代币,Bob 领取代币
Bob 通过一个多代理交易单方面地将代币发送给 Alice
第 4 步:深入了解 SDK
Rust
待发布
第 4.1 步:初始化客户端
在第 1 步中,示例初始化 API 和 Faucet 客户端。
API 客户端与 REST API 交互,并且
Faucet 客户端与 devnet Faucet 服务交互以创建和注资帐户
Typescript
使用 API 客户端,我们可以创建一个 T
okenClient
,用于常见的代币操作,例如创建、转移和领取集合和代币等。common.ts 将 URL 值初始化为这样:
Python
common.py
将这些值初始化为这样:💡 提示
默认情况下,两个服务等 URL 都指向 Aptos devnet 服务。然而,它们可以通过以下环境变量进行配置。
Rust
待发布
第 4.2 步:创建本地账户
下一步是在本地创建两个帐户。帐户代表链上和链下的状态。链下状态包括一个地址和用户验证所有权的公钥、私钥对。这一步演示了如何生成链下状态。
Typescript
Python
Rust
待发布
第 4.3 步:创建链上账户
在 Aptos 中,每个帐户都必须有一个链上表示,以支持接收代币和货币,以及在其他 dApp 中进行互动。一个帐户代表了一个存储资产的媒介,因此必须明确创建。这个示例利用 Faucet 来创建 Alice 和 Bob 的帐户。只有 Alice 帐户里有资金:
Typescript
Python
Rust
待发布
第 4.4 步:创建一个集合
现在开始创建代币的过程。首先,创建者必须创建一个集合来存储代币。一个集合可以包含零个、一个或多个不同的代币。集合只是一个容器,并不限制代币的属性:
Typescript
应用程序将调用
creatColletion
:createCollection
的函数签名。它返回一个交易哈希值:Python
应用程序将调用
create_colletion
:create_colletion
的函数签名。它返回一个交易哈希值:Rust
待发布
第 4.5 步:创建一个代币
要创建一个代币,创建者必须指定一个相关的集合。一个代币必须与一个集合相关联,并且该集合必须有可以被铸造的剩余代币。有许多与代币相关的属性,但辅助 API 只公开了创建静态内容所需的最小数量。
Typescript
应用程序将调用
creatToken
:createToken
的函数签名。它返回一个交易哈希值:Python
应用程序将调用
create_token
:create_token
的函数签名。它返回一个交易哈希值:Rust
待发布
第 4.6 步:读取代币和集合的元数据
集合和代币元数据都存储在创建者帐户的 Collection
表中。SDK 为查询这些特定的表格提供了便利的封装器:
Typescript
读取集合的元数据:
读取代币的元数据:
以下是
getTokenData
如何查询代币元数据的:Python
读取集合的元数据:
读取代币的元数据:
以下是
get_token_data
如何查询代币元数据的:Rust
待发布
第 4.7 步:读取代币余额
Aptos 内的每一个代币都是一个独立的资产,用户拥有的资产都存储在他们的 TokenStore
内。为读取余额:
Typescript
Python
Rust
待发布
第 4.8 步:提供和领取代币
许多用户因收到不需要的代币,而可能造成尴尬甚至是严重后果。Aptos 赋予每个帐户所有者权力,决定是否接受单边转账。默认情况下,是不支持单边转账的。所以 Aptos 提供了一个提供和领取代币的框架。
提供代币:
Typescript
Python
Rust
待发布
领取代币:
Typescript
Python
Rust
待发布
第 4.9 步:代币的安全单边转账
为支持代币安全单边转账,发送方可以首先要求接收方确认链下的待定转移。这里以多代理交易请求的形式出现。多代理交易包含多个签名,每个链上帐户都有一个签名。然后,Move 可以利用这一点给所有签名的人以签名者级别的权限。对于代币转移,这样确保了接收方确实希望收到这个代币,而不需要使用上述的代币转移框架。
Typescript
Python
Rust
待发布
第 4.10 步:实现代币单边转账
即将上线!
Last updated