A class to handle all Simulate transaction operations.

Implementation

Properties

Implementation

  • Initializes a new instance of the Aptos client with the specified configuration. This allows you to interact with the Aptos blockchain using the provided settings.

    Parameters

    • config: AptosConfig

      The configuration settings for the Aptos client.

    Returns Simulate

    import { Aptos, AptosConfig, Network } from "@aptos-labs/ts-sdk";

    async function runExample() {
    // Create a configuration for the Aptos client
    const config = new AptosConfig({ network: Network.TESTNET }); // Specify your desired network

    // Initialize the Aptos client with the configuration
    const aptos = new Aptos(config);

    console.log("Aptos client initialized:", aptos);
    }
    runExample().catch(console.error);
  • Simulates a multi-agent transaction by generating a signed transaction and posting it to the Aptos full node. This function helps in understanding the outcome of a transaction involving multiple signers before it is executed.

    Parameters

    • args: {
          feePayerPublicKey?: PublicKey;
          options?: InputSimulateTransactionOptions;
          secondarySignersPublicKeys?: (undefined | PublicKey)[];
          signerPublicKey?: PublicKey;
          transaction: AnyRawTransaction;
      }

      The parameters for simulating the transaction.

      • OptionalfeePayerPublicKey?: PublicKey

        The public key of the fee payer (optional).

      • Optionaloptions?: InputSimulateTransactionOptions

        Options for simulating the transaction (optional).

      • OptionalsecondarySignersPublicKeys?: (undefined | PublicKey)[]

        An array of public keys for secondary signers (optional). Each element of the array can be optional, allowing the corresponding key check to be skipped.

      • OptionalsignerPublicKey?: PublicKey

        The public key of the primary signer (optional).

      • transaction: AnyRawTransaction

        The raw transaction to be simulated.

    Returns Promise<UserTransactionResponse[]>

    import {
    Account,
    Aptos,
    AptosConfig,
    Network,
    } from "@aptos-labs/ts-sdk";

    async function example() {
    let sender1 = Account.generate();
    let sender2 = Account.generate();
    let receiver = Account.generate();

    // 0. Set up the client and test accounts
    const config = new AptosConfig({ network: Network.DEVNET });
    const aptos = new Aptos(config);

    await aptos.fundAccount({
    accountAddress: sender.accountAddress,
    amount: 100_000_000,
    });

    // 1. Build
    console.log("\n=== 1. Building the transaction ===\n");
    const transaction = await aptos.transaction.build.multiAgent({
    sender: sender1.accountAddress,
    secondarySignerAddresses: [sender2.accountAddress],
    data: {
    // REPLACE WITH YOUR MULTI-AGENT FUNCTION HERE
    function:
    "<REPLACE WITH YOUR MULTI AGENT MOVE ENTRY FUNCTION> (Syntax {address}::{module}::{function})",
    functionArguments: [],
    },
    });
    console.log("Transaction:", transaction);

    // 2. Simulate (Optional)
    console.log("\n === 2. Simulating Response (Optional) === \n");
    const [userTransactionResponse] = await aptos.transaction.simulate.multiAgent(
    {
    signerPublicKey: sender1.publicKey,
    secondarySignersPublicKeys: [sender2.publicKey],
    transaction,
    },
    );
    console.log(userTransactionResponse);

    // If the fee looks ok, continue to signing!
    // ...
    }

    example();
  • Simulates a transaction based on the provided parameters and returns the result. This function helps you understand the outcome of a transaction before executing it on the blockchain.

    Parameters

    Returns Promise<UserTransactionResponse[]>

    import {
    Account,
    Aptos,
    AptosConfig,
    Network,
    } from "@aptos-labs/ts-sdk";

    async function example() {
    let sender = Account.generate();
    let receiver = Account.generate();

    // 0. Set up the client and test accounts
    const config = new AptosConfig({ network: Network.DEVNET });
    const aptos = new Aptos(config);

    await aptos.fundAccount({
    accountAddress: sender.accountAddress,
    amount: 100_000_000,
    });

    // 1. Build the transaction to preview the impact of it
    const transaction = await aptos.transaction.build.simple({
    sender: sender.accountAddress,
    data: {
    // All transactions on Aptos are implemented via smart contracts.
    function: "0x1::aptos_account::transfer",
    functionArguments: [receiver.accountAddress, 100],
    },
    });

    // 2. Simulate to see what would happen if we execute this transaction
    const [userTransactionResponse] = await aptos.transaction.simulate.simple({
    signerPublicKey: sender.publicKey,
    transaction,
    });
    console.log(userTransactionResponse);

    // If the fee looks ok, continue to signing!
    // ...
    }

    example();

Properties

config: AptosConfig
MMNEPVFCICPMFPCPTTAAATR