Saltearse al contenido

Gestiona Activos Fungibles con Multisig

Este tutorial introduce un caso de uso práctico que combina la cuenta multisig del framework de Aptos con el estándar de activo fungible para mejorar el margen de seguridad en la gestión de activos fungibles. Asegúrate de haber entendido la publicación de módulos y la cuenta multisig del framework de Aptos antes de continuar con el tutorial. Si no es así, se recomienda encarecidamente probar primero los siguientes tutoriales:

Este tutorial fue creado para el SDK de TypeScript.

¡Otros desarrolladores están invitados a agregar soporte para el SDK de Python, SDK de Rust, SDK de Go y SDK de Unity!

Para crear un activo fungible controlado por una cuenta multisig del framework de Aptos con todas las operaciones administrativas (acuñar, transferir, quemar, congelar/descongelar), es un requisito previo un contrato inteligente bien diseñado basado en el estándar de activo fungible. El equipo de Aptos proporciona un código de ejemplo en el repositorio aptos-core.

Clona el repositorio aptos-core:

Ventana de terminal
git clone git@github.com:aptos-labs/aptos-core.git ~/aptos-core

Navega al directorio managed_fungible_asset y luego publica este paquete en tu cuenta default usando la CLI:

Ventana de terminal
cd ~/aptos-core/aptos-move/move-examples/fungible_asset/managed_fungible_asset
aptos move publish --named-addresses example_addr=default

Navega al directorio multisig_managed_coin y luego publica este paquete en tu cuenta default usando la CLI también:

Ventana de terminal
cd ~/aptos-core/aptos-move/move-examples/fungible_asset/multisig_managed_coin
aptos move publish --named-addresses example_addr=default

Para este tutorial, multisig_managed_coin necesita llamar funciones definidas en managed_fungible_asset en la misma dirección. Así que ambos módulos deben ser publicados.

Ventana de terminal
cd ~/aptos-core/ecosystem/typescript/sdk/examples/typescript

Ejecuta el ejemplo multisig_managed_coin:

Ventana de terminal
MODULE_ADDR=${DEFAULT_ACCOUNT_ADDRESS} pnpm run multisig_managed_coin

El script de ejemplo debería ejecutarse correctamente sin errores. Luego podrás ver lo que hizo buscando las direcciones owner1 y owner2 impresas en la consola en el explorador de Aptos.

Sigamos el script para entender lo que hace:

Primero, generaremos tres cuentas de firmante único, owner1, owner2 y owner3, quienes serán copropietarios de una cuenta multisig del framework de Aptos.

Crear una cuenta multisig del framework de Aptos con un activo fungible gestionado

Sección titulada «Crear una cuenta multisig del framework de Aptos con un activo fungible gestionado»

A continuación, deja que owner1 llame a la función initialize() definida en multisig_managed_coin.move, que primero crea una cuenta multisig del framework de Aptos propiedad de owner1 y agrega tanto a owner2 como a owner3 como propietarios. También crea un activo fungible llamado “meme coin” con configuraciones personalizadas denotadas en la lista de argumentos y hace que la cuenta multisig sea el administrador del activo fungible. Además, cada propuesta necesita al menos 2 aprobaciones para ejecutarse.

Luego acuñamos 1000 y 2000 meme coin a owner2 y owner3, respectivamente. La transacción propuesta es enviada por owner2 y obtiene una aprobación adicional de owner3.

Después de acuñar, el ejemplo muestra cómo congelar la cuenta owner1. La transacción propuesta es enviada nuevamente por owner2 y aprobada por owner3 además.

Cuando owner1 está congelado, la transferencia normal no puede retirar de o depositar en esa cuenta. Pero como administrador de “meme coin”, la cuenta multisig tiene la capacidad de hacerlo. A continuación, Owner2 propone una transacción para transferir forzadamente 1000 meme coins de owner3 a owner1. Esta vez, owner1 la aprueba.

Finalmente, todos los tres propietarios tienen 1000 meme coins. ¡Quememos todas las monedas! Owner2 hace la propuesta y owner1 la aprueba.

Este tutorial muestra un flujo end-to-end de usar una cuenta multisig del framework de Aptos para administrar activos fungibles. De manera similar, puedes crear tu propio módulo y aprovechar nuestro poderoso SDK para crear el esquema de administración que se ajuste a tus necesidades.