Aptos NFT 发行指南 | Move dApp 极速入门(十)

  • 李大狗
  • 更新于 2023-01-03 11:36
  • 阅读 2637

一键发 NFT

本文将阐述如何使用 Python SDK 在 Aptos 上发行单个 NFT 与 NFT 集合(NFT Collection)。

0x01 Aptos 上的 NFT

Aptos NFT 的库地址:

https://github.com/aptos-labs/aptos-core/blob/main/aptos-move/framework/aptos-token/Move.toml

Aptos Framework(内含 FT)的库地址:

https://github.com/aptos-labs/aptos-core/tree/main/aptos-move/framework

我们可以在 Aptos 的浏览器上通过 0x1 访问到 Framework 的信息,通过 0x3 访问到 Token 的相关信息:

640

我们可以看到,Token 包含如下一些对外暴露的 functions:

  • balance_of:查询余额;
  • create_collection_script:创建 collection;
  • create_token_script:创建代币;
  • burn:燃烧;
  • burn_by_creator:由创作者燃烧;
  • check_collection_exists:查看 collection 是否存在;
  • check_tokendata_exists:查看 token 数据是否存在;

.....

和 EVM 系不同的是,除特殊需要外,Aptos 上发行 NFT 无需新建一个合约,只需调用现有模块,发布 Collection 即可。

其它模块调用同理,我们可以首先通过浏览器查看 ABI,如果再有疑问的话查看 Framework 的源码。

0x02 使用 Aptos NFT Issuer 发行 NFT

脚本 Repo:

https://github.com/NonceGeek/aptos_nft_issuer

2.1 安装

创建虚拟环境:

$ virtualenv env --python=3.9

激活虚拟环境:

$ . env/bin/activate

安装依赖包:

$ python3 setup.py build
$ python3 setup.py install

查看脚本帮助:

$ python3 nft_issuer.py --help

2.2 配置节点终端

我们可以通过环境变量配置节点终端:

$ export APTOS_NODE_URL="https://fullnode.devnet.aptoslabs.com/v1" # 开发网
$ export APTOS_NODE_URL="https://testnet.aptoslabs.com/v1" # 测试网
$ export APTOS_NODE_URL="https://fullnode.mainnet.aptoslabs.com/v1" # 主网

2.3 账户创建

$ python3 nft_issuer.py --gen_acct

640 (5)

会生成账户地址与私钥。

需要注意的是,Aptos 的账户地址需要 token 激活才能使用。

因此,如果在 mainnet,我们需要进行一小笔转账来激活;在 devnet 网络,我们可以领取 faucet 来激活。

2.4 Get Faucet

$ python3 nft_issuer.py --get_faucet [acct]

640 (6)

2.5 Create Collection

$ python3 nft_issuer.py --priv [priv] --create_collection '["test_cc","hello", "www.google.com"]'

使用 2.3 中所创建的私钥来进行操作,只要是对区块链进行状态修改的操作都需要私钥。

640 (2)

2.6 Create Token

$ python3 nft_issuer.py --priv [priv] --create_token '["test_cc", "Alice simple token", "Alice simple token", 1, "https://aptos.dev/img/nyan.jpeg"]'

该命令可以创建一个新的 token。

640 (7)

2.7 Token 的浏览

目前的 Chrome 插件钱包均支持 NFT 的浏览,如Petra Aptos Wallet

640 (3)

0x03 Create Tokens

我们也可以使用合集的方式在一个 Collection 下发行 Tokens:

$ python3 nft_issuer.py --priv 0x6f81aabc5dcb10101bc7db6d7bde10f67422dd0d3637089a0b1ff60ee83d6481 --create_tokens '["test_cc", "https://arweave.net/dexHfE8kFm0cdFEXiCNCRsdeROPfm9vlbKX91_j05l4/", 5, ".jpeg", "leeduckgo avatar"]'

这个合集可以在arweaveipfs上。

640 (8)

结果浏览(网络为 testnet):

640 (4)

点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
李大狗
李大狗
0x73c7...6A1d
面向炫酷编程