使用多签管理同质化资产
本教程介绍一个实用场景:将 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 步:理解链上流程”原先位于 aptos-core/ecosystem/typescript/sdk 的 TypeScript 示例已随 SDK 迁出而移除。请使用刚刚发布的 Move 包,再用当前 SDK 的多签 API 驱动同一流程。
- Move:
managed_fungible_asset和multisig_managed_coin - TypeScript SDK 多签(创建、提案、批准、执行):
examples/typescript-esm/multisig_v2.ts - 入门教程:您的第一个多签
预期流程如下:
生成单签账户
Section titled “生成单签账户”生成三个账户 owner1、owner2 和 owner3,它们将共同拥有一个 Aptos 框架多签账户。
创建管理同质化资产的框架多签
Section titled “创建管理同质化资产的框架多签”让 owner1 调用 multisig_managed_coin.move 中的 initialize()。该函数会创建由 owner1 拥有的框架多签,加入 owner2 和 owner3,按参数列表创建设置好的同质化资产(“meme coin”),并让多签成为资产管理员。每项提案至少需要两个批准。
向 owner2 铸造 1000、向 owner3 铸造 2000。owner2 提交提案,owner3 批准后执行。
冻结 owner1 的主存储。owner2 提交,owner3 批准。解冻是同一个调用,最后一个参数设为 false。
owner1 被冻结时,普通转账无法从该账户取出或向该账户存入。多签作为管理员仍可强制将 1000 从 owner3 转到 owner1。owner2 提案,owner1 批准。
从每位所有者销毁 1000。owner2 提案,owner1 批准。
本教程展示了使用 Aptos 框架多签账户管理同质化资产的端到端流程。你可以发布自己的模块,并用当前 SDK 构建适合自身需求的管理方案。