UNPKG

@aptos-labs/ts-sdk

Version:
138 lines (134 loc) 6.22 kB
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 };