查看原文
其他

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

李大狗就是我 李大狗LDG
2024-11-19

本文将阐述如何使用 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 的相关信息:

image-20221014160528368

我们可以看到,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

image-20221022080704748

会生成账户地址与私钥。

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

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

2.4 Get Faucet

$ python3 nft_issuer.py --get_faucet [acct]

image-20221022080910645

2.5 Create Collection

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

使

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


image-20221022081656996

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。

image-20221022082235698

2.7 Token 的浏览

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

image-20221022082605612

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上。

image-20221022082953276

结果浏览(网络为 testnet):

image-20221022084820118

前文链接:
对 DID Document 的思考 | Move dApp 极速入门(九)
DID中地址聚合器的实现 | Move dApp 极速入门(八)
Aptos 中的智能合约形式化验证 | Move dApp 极速入门(七)
Aptos CLI使用指南与REPL设计建议 | Move dApp 极速入门(六)
实现一套 DID 之总体设计 | Move dApp 极速入门(五)
合约数据类型综述 | Move dApp 极速入门(四)
操作资源 | Move dApp极速入门(三)
第一个 Move dApp | Move dApp极速入门(二)
Hello Move | Move dApp极速入门(一)
继续滑动看下一个
李大狗LDG
向上滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存