Skip to main content

Module transaction

Module transaction 

Source
Expand description

Transaction building and signing.

This module provides types and utilities for constructing, signing, and submitting transactions to the Aptos blockchain.

§Overview

The transaction module supports several transaction types:

  • Simple transactions - Single sender, self-paid gas
  • Multi-agent transactions - Multiple signers required
  • Sponsored transactions - Fee payer pays gas on sender’s behalf
  • Batch transactions - Multiple transactions submitted efficiently

§Example: Simple Transaction

use aptos_sdk::transaction::{TransactionBuilder, EntryFunction};
use aptos_sdk::types::AccountAddress;

let payload = EntryFunction::apt_transfer(recipient, 1000)?;

let signed_txn = TransactionBuilder::new()
    .sender(sender.address())
    .sequence_number(0)
    .payload(payload.into())
    .chain_id(ChainId::testnet())
    .build_and_sign(&sender)?;

§Example: Type-Safe Payload Building

use aptos_sdk::transaction::InputEntryFunctionData;

// Simple and ergonomic payload construction
let payload = InputEntryFunctionData::new("0x1::aptos_account::transfer")
    .arg(recipient)
    .arg(1_000_000u64)
    .build()?;

// With type arguments
let payload = InputEntryFunctionData::new("0x1::coin::transfer")
    .type_arg("0x1::aptos_coin::AptosCoin")
    .arg(recipient)
    .arg(amount)
    .build()?;

§Example: Sponsored Transaction

use aptos_sdk::transaction::{SponsoredTransactionBuilder, EntryFunction};

let payload = EntryFunction::apt_transfer(recipient, 1000)?;

let signed_txn = SponsoredTransactionBuilder::new()
    .sender(&user_account)
    .sequence_number(0)
    .fee_payer(&sponsor_account)
    .payload(payload.into())
    .chain_id(ChainId::testnet())
    .build_and_sign()?;

§Example: Batch Transactions

use aptos_sdk::transaction::batch::TransactionBatchBuilder;

let batch = TransactionBatchBuilder::new()
    .sender(account.address())
    .starting_sequence_number(seq_num)
    .chain_id(ChainId::testnet())
    .add_payload(payload1)
    .add_payload(payload2)
    .build_and_sign(&account)?;

// Submit all in parallel
let results = batch.submit_all(&client).await;

Re-exports§

pub use authenticator::AccountAuthenticator;
pub use authenticator::Ed25519Authenticator;
pub use authenticator::TransactionAuthenticator;
pub use batch::BatchOperations;
pub use batch::BatchSummary;
pub use batch::BatchTransactionResult;
pub use batch::BatchTransactionStatus;
pub use batch::SignedTransactionBatch;
pub use batch::TransactionBatchBuilder;
pub use builder::TransactionBuilder;
pub use builder::sign_transaction;
pub use input::InputEntryFunctionData;
pub use input::InputEntryFunctionDataBuilder;
pub use input::IntoMoveArg;
pub use input::MoveI128;
pub use input::MoveI256;
pub use input::MoveU256;
pub use input::functions;
pub use input::move_none;
pub use input::move_some;
pub use input::move_string;
pub use input::move_vec;
pub use input::types as move_types;
pub use payload::EntryFunction;
pub use payload::Script;
pub use payload::ScriptArgument;
pub use payload::TransactionPayload;
pub use simulation::SimulatedEvent;
pub use simulation::SimulationOptions;
pub use simulation::SimulationResult;
pub use simulation::StateChange;
pub use simulation::VmError;
pub use simulation::VmErrorCategory;
pub use sponsored::PartiallySigned;
pub use sponsored::Sponsor;
pub use sponsored::SponsoredTransactionBuilder;
pub use sponsored::sponsor_transaction;
pub use types::RawTransaction;
pub use types::RawTransactionOrderless;
pub use types::SignedTransaction;
pub use types::SignedTransactionOrderless;
pub use types::TransactionInfo;

Modules§

authenticator
Transaction authenticators.
batch
Transaction batching for efficient multi-transaction submission.
builder
Transaction builder.
input
Type-safe entry function payload builders.
payload
Transaction payloads.
simulation
Transaction simulation for pre-flight validation.
sponsored
Sponsored transaction helpers.
types
Transaction types.