import { EndlessConfig } from '../api/endlessConfig.mjs'; import { AccountAuthenticator } from '../transactions/authenticator/account.mjs'; import { UserTransactionResponse, HexInput, TransactionResponse, PendingTransactionResponse } from '../types/index.mjs'; import { AccountAddressInput } from '../core/accountAddress.mjs'; import { PrivateKey } from '../core/crypto/privateKey.mjs'; import { A as Account } from '../Ed25519Account-JTDdDAW6.mjs'; import { InputGenerateTransactionData, AnyTransactionPayloadInstance, AnyRawTransaction, InputGenerateSingleSignerRawTransactionData, InputGenerateMultiAgentRawTransactionData, InputSimulateTransactionDataMock, InputGenerateTransactionOptions, InputSimulateTransactionData, InputSubmitTransactionData } 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 '../types/indexer.mjs'; import '../bcs/deserializer.mjs'; import '../bcs/serializer.mjs'; import '../core/hex.mjs'; import '../core/common.mjs'; import '../core/crypto/ed25519.mjs'; import '../authenticationKey-BaHTUD3k.mjs'; import '../core/crypto/signature.mjs'; import '../transactions/instances/transactionArgument.mjs'; import '../core/crypto/multiEd25519.mjs'; import '../core/crypto/multiKey.mjs'; import '../core/crypto/singleKey.mjs'; import '../core/crypto/bls12381.mjs'; import '../core/crypto/multiAuthKey.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: { endlessConfig: EndlessConfig; } & InputGenerateSingleSignerRawTransactionData): Promise; declare function generateTransaction(args: { endlessConfig: EndlessConfig; } & InputGenerateMultiAgentRawTransactionData): Promise; declare function buildTransactionPayload(args: { endlessConfig: EndlessConfig; } & InputGenerateTransactionData): Promise; declare function buildRawTransaction(args: { endlessConfig: EndlessConfig; } & InputGenerateTransactionData, payload: AnyTransactionPayloadInstance): Promise; /** * 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, * 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: { endlessConfig: EndlessConfig; } & InputSimulateTransactionData): Promise>; /** * Simulates a transaction before singing it. * * @param args.signer The signer authentication key * @param args.transaction The raw transaction to simulate * @param args.secondarySigners optional. For when the transaction is a multi signers transaction * @param args.feePayer 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 mockTransaction(args: { endlessConfig: EndlessConfig; } & InputSimulateTransactionDataMock): Promise>; /** * Submit transaction to chain * * @param args.transaction A endless 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: { endlessConfig: EndlessConfig; } & InputSubmitTransactionData): Promise; declare function signAndSubmitTransaction(args: { endlessConfig: EndlessConfig; signer: Account; transaction: AnyRawTransaction; }): Promise; declare function publicPackageTransaction(args: { endlessConfig: EndlessConfig; account: AccountAddressInput; metadataBytes: HexInput; moduleBytecode: Array; options?: InputGenerateTransactionOptions; }): Promise; /** * TODO: Need to refactor and move this function out of transactionSubmission */ declare function rotateAuthKey(args: { endlessConfig: EndlessConfig; fromAccount: Account; toNewPrivateKey: PrivateKey; }): Promise; export { buildRawTransaction, buildTransactionPayload, generateTransaction, getSigningMessage, mockTransaction, publicPackageTransaction, rotateAuthKey, signAndSubmitTransaction, signTransaction, simulateTransaction, submitTransaction };