TransactionService

Kotlin-native transaction operations exposed by xyz.mcxross.kaptos.Aptos.

Functions

Link copied to clipboard
abstract suspend fun build(sender: AccountAddressInput, payload: TransactionPayload, options: TransactionOptions? = null): AptosResult<UnsignedTransaction.Simple>

Builds a single-sender transaction without signing it.

open suspend fun build(sender: AccountAddressInput, function: String, arguments: List<Any?> = emptyList(), typeArguments: List<TypeTag> = emptyList(), options: TransactionOptions? = null): AptosResult<UnsignedTransaction.Simple>

Builds a single-sender transaction directly from a Move function name and arguments.

Link copied to clipboard
inline suspend fun <T1> TransactionService.build(sender: AccountAddressInput, function: String, arguments: List<Any?> = emptyList(), options: TransactionOptions? = null): AptosResult<UnsignedTransaction.Simple>

Builds a single-sender transaction inferring a single type argument from T1.

@JvmName(name = "buildWithStrings")
suspend fun TransactionService.build(sender: AccountAddressInput, function: String, typeArguments: List<String>, arguments: List<Any?> = emptyList(), options: TransactionOptions? = null): AptosResult<UnsignedTransaction.Simple>

Builds a single-sender transaction directly from string type arguments.

Link copied to clipboard
abstract suspend fun buildFeePayer(sender: AccountAddressInput, payload: TransactionPayload, secondarySigners: List<AccountAddressInput> = emptyList(), feePayer: AccountAddressInput? = null, options: TransactionOptions? = null): AptosResult<UnsignedTransaction.FeePayer>

Builds a sponsored transaction. Omitting feePayer uses the zero-address placeholder so an external sponsor can be selected after construction.

Link copied to clipboard

Builds a transaction whose secondary signer order is preserved in the signing message.

Link copied to clipboard
abstract suspend fun entryFunctionPayload(function: String, typeArguments: List<TypeTag> = emptyList(), arguments: List<MoveArgument> = emptyList()): AptosResult<TransactionPayload.EntryFunction>

Resolve an on-chain ABI and encode a typed entry-function payload recursively.

Link copied to clipboard
open fun externalFeePayerRequest(transaction: UnsignedTransaction.FeePayer, senderAuthenticator: AccountAuthenticator, secondaryAuthenticators: List<AccountAuthenticator> = emptyList()): AptosResult<ExternalFeePayerRequest>

Serializes a placeholder fee-payer transaction and the sender authenticators for an external Aptos Gas Station. The returned ExternalFeePayerRequest.fingerprint can be journaled before the network write, but is deliberately distinct from the final transaction hash because the sponsor's address and authenticator are not yet available.

Link copied to clipboard
abstract suspend fun preloadModuleAbis(vararg modules: MoveModuleBytecode): AptosResult<Unit>

Preload module ABIs for cached or fully offline entry-function argument encoding.

Link copied to clipboard
abstract suspend fun sign(signer: TransactionSigner, transaction: UnsignedTransaction): AptosResult<AccountAuthenticator>

Produces the sender authenticator without submitting the transaction.

Link copied to clipboard
abstract suspend fun signAndSubmit(signer: TransactionSigner, transaction: UnsignedTransaction, secondaryAuthenticators: List<AccountAuthenticator> = emptyList(), feePayerAuthenticator: AccountAuthenticator? = null): AptosResult<PendingTransactionResponse>

Signs as the sender and submits, retaining explicit secondary and sponsor authenticators.

open suspend fun signAndSubmit(signer: TransactionSigner, payload: TransactionPayload, options: TransactionOptions? = null, secondarySigners: List<TransactionSigner> = emptyList(), feePayer: TransactionSigner? = null): AptosResult<PendingTransactionResponse>

Builds, signs, and submits a payload with client defaults. Secondary signers select a multi-agent transaction; supplying feePayer selects a sponsored transaction.

open suspend fun signAndSubmit(signer: TransactionSigner, function: String, arguments: List<Any?> = emptyList(), typeArguments: List<TypeTag> = emptyList(), options: TransactionOptions? = null, secondarySigners: List<TransactionSigner> = emptyList(), feePayer: TransactionSigner? = null): AptosResult<PendingTransactionResponse>

Builds, signs, and submits directly from a Move function name and arguments. Arguments are automatically coerced against the on-chain function ABI.

Link copied to clipboard
inline suspend fun <T1> TransactionService.signAndSubmit(signer: TransactionSigner, function: String, arguments: List<Any?> = emptyList(), options: TransactionOptions? = null, secondarySigners: List<TransactionSigner> = emptyList(), feePayer: TransactionSigner? = null): AptosResult<PendingTransactionResponse>

Builds, signs, and submits inferring a single type argument from T1.

@JvmName(name = "signAndSubmitWithStrings")
suspend fun TransactionService.signAndSubmit(signer: TransactionSigner, function: String, typeArguments: List<String>, arguments: List<Any?> = emptyList(), options: TransactionOptions? = null, secondarySigners: List<TransactionSigner> = emptyList(), feePayer: TransactionSigner? = null): AptosResult<PendingTransactionResponse>

Builds, signs, and submits with string type arguments.

Link copied to clipboard
abstract suspend fun simulate(transaction: UnsignedTransaction, senderPublicKey: PublicKey, secondarySignerPublicKeys: List<PublicKey> = emptyList(), feePayerPublicKey: PublicKey? = null, options: SimulationOptions = SimulationOptions()): AptosResult<List<UserTransactionResponse>>

Simulates any non-encrypted transaction with optional gas-estimation flags.

Link copied to clipboard
abstract suspend fun submit(transaction: UnsignedTransaction, senderAuthenticator: AccountAuthenticator, secondaryAuthenticators: List<AccountAuthenticator> = emptyList(), feePayerAuthenticator: AccountAuthenticator? = null): AptosResult<PendingTransactionResponse>

Combines externally produced authenticators and submits the signed BCS transaction.

Link copied to clipboard
open suspend fun submitAndWait(signer: TransactionSigner, transaction: UnsignedTransaction, secondaryAuthenticators: List<AccountAuthenticator> = emptyList(), feePayerAuthenticator: AccountAuthenticator? = null, waitOptions: WaitForTransactionOptions = WaitForTransactionOptions()): AptosResult<TransactionResponse>

Signs, submits, and waits for an already-built transaction.

open suspend fun submitAndWait(signer: TransactionSigner, payload: TransactionPayload, transactionOptions: TransactionOptions? = null, secondarySigners: List<TransactionSigner> = emptyList(), feePayer: TransactionSigner? = null, waitOptions: WaitForTransactionOptions = WaitForTransactionOptions()): AptosResult<TransactionResponse>

Builds, signs, submits, and waits for a payload, including sponsored and multi-agent flows.

open suspend fun submitAndWait(signer: TransactionSigner, function: String, arguments: List<Any?> = emptyList(), typeArguments: List<TypeTag> = emptyList(), transactionOptions: TransactionOptions? = null, secondarySigners: List<TransactionSigner> = emptyList(), feePayer: TransactionSigner? = null, waitOptions: WaitForTransactionOptions = WaitForTransactionOptions()): AptosResult<TransactionResponse>

Builds, signs, submits, and waits directly from a Move function name and arguments. Arguments are automatically coerced against the on-chain function ABI.

Link copied to clipboard
inline suspend fun <T1> TransactionService.submitAndWait(signer: TransactionSigner, function: String, arguments: List<Any?> = emptyList(), transactionOptions: TransactionOptions? = null, secondarySigners: List<TransactionSigner> = emptyList(), feePayer: TransactionSigner? = null, waitOptions: WaitForTransactionOptions = WaitForTransactionOptions()): AptosResult<TransactionResponse>

Builds, signs, submits, and waits inferring a single type argument from T1.

@JvmName(name = "submitAndWaitWithStrings")
suspend fun TransactionService.submitAndWait(signer: TransactionSigner, function: String, typeArguments: List<String>, arguments: List<Any?> = emptyList(), transactionOptions: TransactionOptions? = null, secondarySigners: List<TransactionSigner> = emptyList(), feePayer: TransactionSigner? = null, waitOptions: WaitForTransactionOptions = WaitForTransactionOptions()): AptosResult<TransactionResponse>

Builds, signs, submits, and waits with string type arguments.

Link copied to clipboard
open fun userTransactionHash(transaction: UnsignedTransaction, senderAuthenticator: AccountAuthenticator, secondaryAuthenticators: List<AccountAuthenticator> = emptyList(), feePayerAuthenticator: AccountAuthenticator? = null): AptosResult<String>

Computes the canonical on-chain hash of an already authenticated user transaction without submitting it. Applications can persist this hash before the network write and reconcile the exact signed transaction after interruption.

Link copied to clipboard
abstract suspend fun waitForTransaction(hash: String, options: WaitForTransactionOptions = WaitForTransactionOptions()): AptosResult<TransactionResponse>

Waits until hash commits or the configured wait policy terminates.

open suspend fun waitForTransaction(transaction: PendingTransactionResponse, options: WaitForTransactionOptions = WaitForTransactionOptions()): AptosResult<TransactionResponse>

Waits for a pending response without requiring callers to extract its hash.