使用多签管理同质化资产
本教程介绍一个实用场景:将 Aptos 框架多签账户与同质化资产标准相结合,提升同质化资产管理的安全边际。继续之前,请确保已了解模块发布和 Aptos 框架多签账户;如未了解,强烈建议先完成以下教程:
第 1 步:选择 SDK
Section titled “第 1 步:选择 SDK”本教程基于 TypeScript SDK 编写。
欢迎其他开发者添加对 Python SDK、Rust SDK 和 Go SDK 的支持!
第 2 步:发布模块
Section titled “第 2 步:发布模块”要创建一个由 Aptos 框架多签账户控制、支持所有管理操作(铸造、转移、销毁、冻结/解冻)的同质化资产,前提是拥有一个基于同质化资产标准设计完善的智能合约。Aptos 团队在 aptos-core 仓库中提供了示例代码。
克隆 aptos-core 仓库:
git clone git@github.com:aptos-labs/aptos-core.git ~/aptos-core进入 managed_fungible_asset 目录,然后使用 CLI 将该包发布到 default 账户:
cd ~/aptos-core/aptos-move/move-examples/fungible_asset/managed_fungible_assetaptos move publish --named-addresses example_addr=default进入 multisig_managed_coin 目录,并同样使用 CLI 将该包发布到 default 账户:
cd ~/aptos-core/aptos-move/move-examples/fungible_asset/multisig_managed_coinaptos move publish --named-addresses example_addr=default在本教程中,multisig_managed_coin 需要调用同一地址上 managed_fungible_asset 定义的函数。因此必须发布两个模块。
第 3 步:启动示例
Section titled “第 3 步:启动示例”cd ~/aptos-core/ecosystem/typescript/sdk/examples/typescript运行 multisig_managed_coin 示例:
MODULE_ADDR=${DEFAULT_ACCOUNT_ADDRESS} pnpm run multisig_managed_coin示例脚本应能顺利执行且不出现错误。随后可在 Aptos Explorer 中搜索控制台打印的 owner1 和 owner2 地址,查看其执行的操作。
下面跟随脚本了解其功能:
生成单签账户
Section titled “生成单签账户”首先生成三个单签账户 owner1、owner2 和 owner3,它们将共同拥有一个 Aptos 框架多签账户。
创建带有受管同质化资产的 Aptos 框架多签账户
Section titled “创建带有受管同质化资产的 Aptos 框架多签账户”接下来,让 owner1 调用 multisig_managed_coin.move 中定义的 initialize() 函数。它首先创建由 owner1 所有的 Aptos 框架多签账户,并将 owner2 和 owner3 添加为所有者;随后创建名为“meme coin”的同质化资产,使用参数列表中指定的自定义设置,并让多签账户成为该资产的管理员。每项提案至少需要 2 个批准才能执行。
然后分别向 owner2 和 owner3 铸造 1000 和 2000 个 meme coin。该提案交易由 owner2 提交,并获得 owner3 的额外批准。
铸造后,该示例展示如何冻结账户 owner1。该提案交易同样由 owner2 提交,并额外由 owner3 批准。
owner1 被冻结时,普通转账无法从该账户取出或向该账户存入资产。但作为“meme coin”的管理员,多签账户具有执行这些操作的能力。 接下来,Owner2 提出交易,强制将 1000 个 meme coin 从 owner3 转移到 owner1。这次由 owner1 批准。
最后,三个所有者各自拥有 1000 个 meme coin。让我们销毁所有代币!Owner2 提出交易,owner1 批准。
本教程展示了使用 Aptos 框架多签账户管理同质化资产的端到端流程。同样地,你可以创建自己的模块,并利用功能强大的 SDK 创建满足自身需求的管理方案。