PHP WebShell

Текущая директория: /opt/BitGoJS/node_modules/@aptos-labs/ts-sdk/src/api/transactionSubmission

Просмотр файла: build.ts

// Copyright © Aptos Foundation
// SPDX-License-Identifier: Apache-2.0

import { AccountAddressInput } from "../../core";
import { generateTransaction } from "../../internal/transactionSubmission";
import { InputGenerateTransactionPayloadData, InputGenerateTransactionOptions } from "../../transactions";
import { MultiAgentTransaction } from "../../transactions/instances/multiAgentTransaction";
import { SimpleTransaction } from "../../transactions/instances/simpleTransaction";
import { AptosConfig } from "../aptosConfig";

/**
 * A class to handle all `Build` transaction operations.
 */
export class Build {
  readonly config: AptosConfig;

  /**
   * 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.
   *
   * @param config - The configuration settings for the Aptos client.
   * @param config.network - The network to connect to (e.g., TESTNET, MAINNET).
   * @param config.nodeUrl - The URL of the Aptos node to connect to.
   * @param config.account - The account details for authentication.
   *
   * @example
   * ```typescript
   * 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 the network
   *         nodeUrl: "https://testnet.aptos.dev", // specify the node URL
   *     });
   *
   *     // Initialize the Aptos client
   *     const aptos = new Aptos(config);
   *
   *     console.log("Aptos client initialized:", aptos);
   * }
   * runExample().catch(console.error);
   * ```
   */
  constructor(config: AptosConfig) {
    this.config = config;
  }

  /**
   * Build a simple transaction.
   *
   * This function allows you to create a transaction with specified sender and data.
   *
   * @param args.sender - The sender account address.
   * @param args.data - The transaction data.
   * @param args.options - Optional transaction configurations.
   * @param args.withFeePayer - Whether there is a fee payer for the transaction.
   *
   * @returns SimpleTransaction
   *
   * @example
   * ```typescript
   * import { Aptos, AptosConfig, Network } from "@aptos-labs/ts-sdk";
   *
   * const config = new AptosConfig({ network: Network.TESTNET });
   * const aptos = new Aptos(config);
   *
   * async function runExample() {
   *   // Build a simple transaction
   *   const transaction = await aptos.transaction.simple({
   *     sender: "0x1", // replace with a real sender account address
   *     data: {
   *       function: "0x1::aptos_account::transfer",
   *       functionArguments: ["0x2", 100], // replace with a real destination account address
   *     },
   *     options: {
   *       gasUnitPrice: 100, // specify your own gas unit price if needed
   *       maxGasAmount: 1000, // specify your own max gas amount if needed
   *     },
   *   });
   *
   *   console.log(transaction);
   * }
   * runExample().catch(console.error);
   * ```
   */
  async simple(args: {
    sender: AccountAddressInput;
    data: InputGenerateTransactionPayloadData;
    options?: InputGenerateTransactionOptions;
    withFeePayer?: boolean;
  }): Promise<SimpleTransaction> {
    return generateTransaction({ aptosConfig: this.config, ...args });
  }

  /**
   * Build a multi-agent transaction that allows multiple signers to authorize a transaction.
   *
   * @param args - The parameters for creating the multi-agent transaction.
   * @param args.sender - The sender account address.
   * @param args.data - The transaction data.
   * @param args.secondarySignerAddresses - An array of the secondary signers' account addresses.
   * @param args.options - Optional transaction configurations.
   * @param args.withFeePayer - Whether there is a fee payer for the transaction.
   *
   * @returns MultiAgentTransaction
   *
   * @example
   * ```typescript
   * import { Aptos, AptosConfig, Network } from "@aptos-labs/ts-sdk";
   *
   * const config = new AptosConfig({ network: Network.TESTNET });
   * const aptos = new Aptos(config);
   *
   * async function runExample() {
   *   // Build a multi-agent transaction
   *   const transaction = await aptos.multiAgent({
   *     sender: "0x1", // replace with a real sender account address
   *     data: {
   *       // Transaction data structure
   *       function: "0x1::aptos_account::transfer",
   *       functionArguments: ["0x2", 100], // replace with a real destination account address and amount
   *     },
   *     secondarySignerAddresses: ["0x3", "0x4"], // replace with real secondary signer addresses
   *     options: {
   *       // Optional transaction configurations
   *       maxGasAmount: "1000",
   *       gasUnitPrice: "1",
   *     },
   *   });
   *
   *   console.log(transaction);
   * }
   * runExample().catch(console.error);
   * ```
   */
  async multiAgent(args: {
    sender: AccountAddressInput;
    data: InputGenerateTransactionPayloadData;
    secondarySignerAddresses: AccountAddressInput[];
    options?: InputGenerateTransactionOptions;
    withFeePayer?: boolean;
  }): Promise<MultiAgentTransaction> {
    return generateTransaction({ aptosConfig: this.config, ...args });
  }
}

Выполнить команду


Для локальной разработки. Не используйте в интернете!