@aptos-labs/ts-sdk - v3.1.1
    Preparing search index...

    Class Simulate

    A class to handle all Simulate transaction operations.

    Index

    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