Cuentas Multikey
El SDK .NET de Aptos proporciona una implementación de cuentas Multikey para crear cuentas desde una combinación de múltiples pares de claves. Esto es útil para cuentas Multisig. En esta guía, proporcionaremos fragmentos de crear cuentas.
Crear una MultiKeyAccount
Sección titulada «Crear una MultiKeyAccount»Las MultiKeyAccount se crean para firmar transacciones donde la cuenta está controlada por múltiples claves privadas.
Crear una MultiKeyAccount
Sección titulada «Crear una MultiKeyAccount»Para crear una cuenta MultiKey, necesitarás los siguientes componentes:
PublicKeys
: Las claves públicas de las cuentas que controlan la cuenta MultiKey.SignaturesRequired
: El número mínimo de firmantes requeridos para firmar transacciones.Signers
: Los firmantes de cuenta que se usarán para firmar transacciones. El número de firmantes debería ser igual o mayor queSignaturesRequired
.
-
Crear tus Cuentas
Crea tus cuentas, pueden ser diferentes tipos de cuentas.
var account1 = Ed25519Account.Generate();var account2 = SingleKeyAccount.Generate(PublicKeyVariant.Secp256k1Ecdsa); -
Crear una Clave de Verificación MultiKey
Crea una clave de verificación MultiKey usando las
PublicKeys
ySignaturesRequired
. En este ejemplo, tenemos dos cuentas controlando el MultiKey y requerimos 2 firmantes para firmar transacciones.var multiKey = new MultiKey(publicKeys: [account1.PublicKey, account2.PublicKey],signaturesRequired: 2,); -
Crear la Cuenta MultiKey
Crea la cuenta MultiKey usando las
PublicKeys
,SignaturesRequired
, ySigners
.var multikeyAccount = new MultiKeyAccount(multiKey: multiKey,signers: [account1, account2]); -
Firmar y Enviar transacciones
Después de crear una cuenta MultiKey, puedes firmar y enviar transacciones usando el
AptosClient
.// 1. Construir la transacciónvar transaction = await client.Transaction.Build(sender: multikeyAccount,data: new GenerateEntryFunctionPayloadData(function: "0x1::aptos_account::transfer_coins",typeArguments: ["0x1::aptos_coin::AptosCoin"],functionArguments: [account.Address, "100000"]));// 2. Firmar y enviar la transacciónvar submittedTransaction = await client.Transaction.SignAndSubmitTransaction(multikeyAccount, transaction);// 3. (Opcional) Esperar a que la transacción sea confirmadavar committedTransaction = await client.Transaction.WaitForTransaction(submittedTransaction.Hash);