Skip to content

Class: TransactionManager

Defined in: packages/txm/lib/TransactionManager.ts:267

The TransactionManager is the core module of the transaction manager. To use the transaction manager, you must instantiate this class. Before using the transaction manager, call the TransactionManager.start method to start it. Once started, use the TransactionManager.addTransactionOriginator method to add a transaction originator and begin sending transactions to the blockchain.

Constructors

Constructor

new TransactionManager(_config: TransactionManagerConfig): TransactionManager;

Defined in: packages/txm/lib/TransactionManager.ts:303

Parameters

_config

TransactionManagerConfig

Returns

TransactionManager

Methods

addHook()

addHook<T>(type: T, handler: TxmHookHandler<T>): () => void;

Defined in: packages/txm/lib/TransactionManager.ts:442

Adds a hook to the hook manager.

Type Parameters

T

T extends TxmHookType

Parameters

type

T

The type of hook to add.

handler

TxmHookHandler<T>

The handler function to add.

Returns

(): void;
Returns

void


addTransactionOriginator()

addTransactionOriginator(originator: TransactionOriginator): void;

Defined in: packages/txm/lib/TransactionManager.ts:433

Adds an originator to the transaction manager. An originator is a function that returns a list of transactions to be sent in the next block. It is important that the originator function is as fast as possible to avoid delays when sending transactions to the blockchain

Parameters

originator

TransactionOriginator

The originator to add.

Returns

void


createTransaction()

createTransaction(params: TransactionConstructorConfig): Transaction;

Defined in: packages/txm/lib/TransactionManager.ts:455

Creates a new transaction.

Parameters

params

TransactionConstructorConfig

TransactionConstructorConfig.

Returns

Transaction

A new transaction.


getTransaction()

getTransaction(txIntentId: UUID): Promise<Result<undefined | Transaction, Error>>;

Defined in: packages/txm/lib/TransactionManager.ts:446

Parameters

txIntentId

UUID

Returns

Promise<Result<undefined | Transaction, Error>>


sendTransactions()

sendTransactions(transactionsBatch: Transaction[]): Promise<void>;

Defined in: packages/txm/lib/TransactionManager.ts:472

Submit a batch of transactions directly to the transaction collector for immediate processing. Transactions will be submitted to the blockchain immediately after collection without waiting for the next block. Ideal for time-sensitive transactions that don't depend on block context for their execution.

Parameters

transactionsBatch

Transaction[]

An array of Transaction to be submitted

Returns

Promise<void>


start()

start(): Promise<void>;

Defined in: packages/txm/lib/TransactionManager.ts:476

Returns

Promise<void>

Properties

abiManager

readonly abiManager: ABIManager;

Defined in: packages/txm/lib/TransactionManager.ts:275


baseFeeMargin

readonly baseFeeMargin: bigint;

Defined in: packages/txm/lib/TransactionManager.ts:286


blockInactivityTimeout

readonly blockInactivityTimeout: number;

Defined in: packages/txm/lib/TransactionManager.ts:292


blockMonitor

readonly blockMonitor: BlockMonitor;

Defined in: packages/txm/lib/TransactionManager.ts:269


blockTime

readonly blockTime: bigint;

Defined in: packages/txm/lib/TransactionManager.ts:288


chainId

readonly chainId: number;

Defined in: packages/txm/lib/TransactionManager.ts:284


collectors

readonly collectors: TransactionOriginator[];

Defined in: packages/txm/lib/TransactionManager.ts:268


eip1559

readonly eip1559: EIP1559Parameters;

Defined in: packages/txm/lib/TransactionManager.ts:285


finalizedTransactionPurgeTime

readonly finalizedTransactionPurgeTime: number;

Defined in: packages/txm/lib/TransactionManager.ts:289


gasEstimator

readonly gasEstimator: GasEstimator;

Defined in: packages/txm/lib/TransactionManager.ts:274


gasPriceOracle

readonly gasPriceOracle: GasPriceOracle;

Defined in: packages/txm/lib/TransactionManager.ts:273


hookManager

readonly hookManager: HookManager;

Defined in: packages/txm/lib/TransactionManager.ts:280


livenessCheckInterval

readonly livenessCheckInterval: number;

Defined in: packages/txm/lib/TransactionManager.ts:297


livenessDownDelay

readonly livenessDownDelay: number;

Defined in: packages/txm/lib/TransactionManager.ts:296


livenessSuccessCount

readonly livenessSuccessCount: number;

Defined in: packages/txm/lib/TransactionManager.ts:295


livenessThreshold

readonly livenessThreshold: number;

Defined in: packages/txm/lib/TransactionManager.ts:294


livenessWindow

readonly livenessWindow: number;

Defined in: packages/txm/lib/TransactionManager.ts:293


maxPriorityFeePerGas

readonly maxPriorityFeePerGas: undefined | bigint;

Defined in: packages/txm/lib/TransactionManager.ts:301


minPriorityFeePerGas

readonly minPriorityFeePerGas: undefined | bigint;

Defined in: packages/txm/lib/TransactionManager.ts:300


nonceManager

readonly nonceManager: NonceManager;

Defined in: packages/txm/lib/TransactionManager.ts:272


pendingTxReporter

readonly pendingTxReporter: TxMonitor;

Defined in: packages/txm/lib/TransactionManager.ts:276


pollingInterval

readonly pollingInterval: number;

Defined in: packages/txm/lib/TransactionManager.ts:290


priorityFeeAnalysisBlocks

readonly priorityFeeAnalysisBlocks: number;

Defined in: packages/txm/lib/TransactionManager.ts:299


priorityFeeTargetPercentile

readonly priorityFeeTargetPercentile: number;

Defined in: packages/txm/lib/TransactionManager.ts:298


retryPolicyManager

readonly retryPolicyManager: RetryPolicyManager;

Defined in: packages/txm/lib/TransactionManager.ts:281


rpcAllowDebug

readonly rpcAllowDebug: boolean;

Defined in: packages/txm/lib/TransactionManager.ts:287


rpcLivenessMonitor

readonly rpcLivenessMonitor: RpcLivenessMonitor;

Defined in: packages/txm/lib/TransactionManager.ts:282


transactionCollector

readonly transactionCollector: TransactionCollector;

Defined in: packages/txm/lib/TransactionManager.ts:278


transactionRepository

readonly transactionRepository: TransactionRepository;

Defined in: packages/txm/lib/TransactionManager.ts:277


transactionSubmitter

readonly transactionSubmitter: TransactionSubmitter;

Defined in: packages/txm/lib/TransactionManager.ts:279


transportProtocol

readonly transportProtocol: "http" | "websocket";

Defined in: packages/txm/lib/TransactionManager.ts:291


viemClient

readonly viemClient: SafeViemPublicClient;

Defined in: packages/txm/lib/TransactionManager.ts:271


viemWallet

readonly viemWallet: SafeViemWalletClient;

Defined in: packages/txm/lib/TransactionManager.ts:270