@aptos-labs/ts-sdk
Version:
Aptos TypeScript SDK
138 lines (134 loc) • 6.22 kB
text/typescript
import { AptosConfig } from '../api/aptosConfig.mjs';
import { AccountAuthenticator } from '../transactions/authenticator/account.mjs';
import { UserTransactionResponse, PendingTransactionResponse, HexInput, TransactionResponse } from '../types/index.mjs';
import { AccountAddressInput } from '../core/accountAddress.mjs';
import { PrivateKey } from '../core/crypto/privateKey.mjs';
import { A as Account } from '../Ed25519Account-B1VMJOY2.mjs';
import { InputGenerateSingleSignerRawTransactionData, InputGenerateMultiAgentRawTransactionData, InputGenerateTransactionData, AnyTransactionPayloadInstance, AnyRawTransaction, InputSimulateTransactionData, InputSubmitTransactionData, InputGenerateTransactionOptions } from '../transactions/types.mjs';
import { SimpleTransaction } from '../transactions/instances/simpleTransaction.mjs';
import { MultiAgentTransaction } from '../transactions/instances/multiAgentTransaction.mjs';
import '../utils/apiEndpoints.mjs';
import '../utils/const.mjs';
import '../bcs/deserializer.mjs';
import '../bcs/serializer.mjs';
import '../core/hex.mjs';
import '../core/common.mjs';
import '../core/crypto/ed25519.mjs';
import '../publicKey-B3XRNhHO.mjs';
import '../core/crypto/signature.mjs';
import '../core/crypto/multiEd25519.mjs';
import '../core/crypto/multiKey.mjs';
import '../core/crypto/singleKey.mjs';
import '../types/indexer.mjs';
import '../types/generated/operations.mjs';
import '../types/generated/types.mjs';
import '../transactions/instances/transactionArgument.mjs';
import '../bcs/serializable/moveStructs.mjs';
import '../bcs/serializable/movePrimitives.mjs';
import '../bcs/serializable/fixedBytes.mjs';
import '../transactions/instances/rawTransaction.mjs';
import '../transactions/instances/chainId.mjs';
import '../transactions/instances/transactionPayload.mjs';
import '../transactions/instances/identifier.mjs';
import '../transactions/instances/moduleId.mjs';
import '../transactions/typeTag/index.mjs';
/**
* This file contains the underlying implementations for exposed submission API surface in
* the {@link api/transaction}. By moving the methods out into a separate file,
* other namespaces and processes can access these methods without depending on the entire
* transaction namespace and without having a dependency cycle error.
*/
/**
* We are defining function signatures, each with its specific input and output.
* These are the possible function signature for `generateTransaction` function.
* When we call `generateTransaction` function with the relevant type properties,
* Typescript can infer the return type based on the appropriate function overload.
*/
declare function generateTransaction(args: {
aptosConfig: AptosConfig;
} & InputGenerateSingleSignerRawTransactionData): Promise<SimpleTransaction>;
declare function generateTransaction(args: {
aptosConfig: AptosConfig;
} & InputGenerateMultiAgentRawTransactionData): Promise<MultiAgentTransaction>;
declare function buildTransactionPayload(args: {
aptosConfig: AptosConfig;
} & InputGenerateTransactionData): Promise<AnyTransactionPayloadInstance>;
declare function buildRawTransaction(args: {
aptosConfig: AptosConfig;
} & InputGenerateTransactionData, payload: AnyTransactionPayloadInstance): Promise<AnyRawTransaction>;
/**
* Builds a signing message that can be signed by external signers
*
* Note: Please prefer using `signTransaction` unless signing outside the SDK
*
* @param args.transaction AnyRawTransaction, as generated by `generateTransaction()`
*
* @return The message to be signed
*/
declare function getSigningMessage(args: {
transaction: AnyRawTransaction;
}): Uint8Array;
/**
* Sign a transaction that can later be submitted to chain
*
* @param args.signer The signer account to sign the transaction
* @param args.transaction An instance of a RawTransaction, plus optional secondary/fee payer addresses
* ```
* {
* rawTransaction: RawTransaction,
* secondarySignerAddresses? : Array<AccountAddress>,
* feePayerAddress?: AccountAddress
* }
* ```
*
* @return The signer AccountAuthenticator
*/
declare function signTransaction(args: {
signer: Account;
transaction: AnyRawTransaction;
}): AccountAuthenticator;
/**
* Simulates a transaction before singing it.
*
* @param args.signerPublicKey The signer public key
* @param args.transaction The raw transaction to simulate
* @param args.secondarySignersPublicKeys optional. For when the transaction is a multi signers transaction
* @param args.feePayerPublicKey optional. For when the transaction is a fee payer (aka sponsored) transaction
* @param args.options optional. A config to simulate the transaction with
*/
declare function simulateTransaction(args: {
aptosConfig: AptosConfig;
} & InputSimulateTransactionData): Promise<Array<UserTransactionResponse>>;
/**
* Submit transaction to chain
*
* @param args.transaction A aptos transaction type
* @param args.senderAuthenticator The account authenticator of the transaction sender
* @param args.secondarySignerAuthenticators optional. For when the transaction is a multi signers transaction
*
* @return PendingTransactionResponse
*/
declare function submitTransaction(args: {
aptosConfig: AptosConfig;
} & InputSubmitTransactionData): Promise<PendingTransactionResponse>;
declare function signAndSubmitTransaction(args: {
aptosConfig: AptosConfig;
signer: Account;
transaction: AnyRawTransaction;
}): Promise<PendingTransactionResponse>;
declare function publicPackageTransaction(args: {
aptosConfig: AptosConfig;
account: AccountAddressInput;
metadataBytes: HexInput;
moduleBytecode: Array<HexInput>;
options?: InputGenerateTransactionOptions;
}): Promise<SimpleTransaction>;
/**
* TODO: Need to refactor and move this function out of transactionSubmission
*/
declare function rotateAuthKey(args: {
aptosConfig: AptosConfig;
fromAccount: Account;
toNewPrivateKey: PrivateKey;
}): Promise<TransactionResponse>;
export { buildRawTransaction, buildTransactionPayload, generateTransaction, getSigningMessage, publicPackageTransaction, rotateAuthKey, signAndSubmitTransaction, signTransaction, simulateTransaction, submitTransaction };