Saltearse al contenido

Transacciones Básicas

Esta sección cubre los tipos básicos de transacciones que pueden construirse y enviarse a la blockchain de Aptos.

  1. Configurar tu AptosClient

    Configura tu cliente Aptos agregando el namespace Aptos e instanciando un AptosClient. Puedes usar una configuración predefinida de Networks o configurar la tuya propia.

    using Aptos;
    class Program
    {
    static void Main(string[] args)
    {
    var config = new AptosConfig(Aptos.Networks.Mainnet);
    var client = new AptosClient(config);
    }
    }
  2. Configurar una Cuenta

    Para crear una transacción, necesitarás una cuenta para firmar la transacción. Esto puede hacerse usando una clave privada, mnemónico, o una combinación de ambos. En este ejemplo, generaremos una nueva cuenta aleatoria.

    using Aptos;
    class Program
    {
    static void Main(string[] args)
    {
    var config = new AptosConfig(Aptos.Networks.Devnet);
    var client = new AptosClient(config);
    // 1. Crear una cuenta y financiarla.
    var account = Account.Generate();
    await client.Faucet.FundAccount(account.Address, 100_000_000);
    }
    }
  3. Construir la Transacción

    Para interactuar con la blockchain, necesitarás construir una transacción. El AptosClient puede usarse para construir un payload de transacción que puede ser firmado y enviado a la cadena. En la transacción, podemos especificar el remitente, función de entrada, y argumentos.

    using Aptos;
    class Program
    {
    static void Main(string[] args)
    {
    var config = new AptosConfig(Aptos.Networks.Devnet);
    var client = new AptosClient(config);
    var account = Account.Generate();
    // 2. Construir la transacción
    var transaction = await client.Transaction.Build(
    sender: account,
    data: new GenerateEntryFunctionPayloadData(
    function: "0x1::aptos_account::transfer_coins",
    typeArguments: ["0x1::aptos_coin::AptosCoin"],
    functionArguments: [account.Address, "100000"]
    )
    );
    }
    }
  4. Firmar y Enviar Transacciones

    Una vez que la transacción está construida, puede ser firmada y enviada a la blockchain. El AptosClient puede usarse para firmar y enviar la transacción.

    using Aptos;
    class Program
    {
    static void Main(string[] args)
    {
    var config = new AptosConfig(Aptos.Networks.Devnet);
    var client = new AptosClient(config);
    var account = Account.Generate();
    var transaction = await client.Transaction.Build(
    sender: account,
    data: new GenerateEntryFunctionPayloadData(
    function: "0x1::aptos_account::transfer_coins",
    typeArguments: ["0x1::aptos_coin::AptosCoin"],
    functionArguments: [account.Address, "100000"]
    )
    );
    // 3. Firmar la transacción
    var submittedTransaction = await client.Transaction.SignAndSubmitTransaction(signer, transaction);
    }
    }
  5. (Opcional) Esperar a que la Transacción se Ejecute

    Después de que la transacción ha sido enviada, tendrá que procesarse antes de que se confirme en la blockchain. El AptosClient puede usarse para esperar a que la transacción sea procesada y ejecutada.

    using Aptos;
    class Program
    {
    static void Main(string[] args)
    {
    var config = new AptosConfig(Aptos.Networks.Devnet);
    var client = new AptosClient(config);
    var account = Account.Generate();
    var transaction = await client.Transaction.Build(
    sender: account,
    data: new GenerateEntryFunctionPayloadData(
    function: "0x1::aptos_account::transfer_coins",
    typeArguments: ["0x1::aptos_coin::AptosCoin"],
    functionArguments: [account.Address, "100000"]
    )
    );
    var submittedTransaction = await client.Transaction.SignAndSubmitTransaction(account, transaction);
    // 4. Esperar a que la transacción sea procesada
    var transactionResult = await client.Transaction.WaitForTransaction(submittedTransaction.Hash);
    }
    }