Class: TransactionManager
Defined in: packages/txm/lib/TransactionManager.ts:268
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:304
Parameters
_config
Returns
TransactionManager
Methods
addHook()
addHook<T>(type: T, handler: TxmHookHandler<T>): () => void;Defined in: packages/txm/lib/TransactionManager.ts:443
Adds a hook to the hook manager.
Type Parameters
T
T extends TxmHookType
Parameters
type
T
The type of hook to add.
handler
The handler function to add.
Returns
(): void;Returns
void
addTransactionOriginator()
addTransactionOriginator(originator: TransactionOriginator): void;Defined in: packages/txm/lib/TransactionManager.ts:434
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
The originator to add.
Returns
void
createTransaction()
createTransaction(params: TransactionConstructorConfig): Transaction;Defined in: packages/txm/lib/TransactionManager.ts:456
Creates a new transaction.
Parameters
params
Returns
A new transaction.
getTransaction()
getTransaction(txIntentId: UUID): Promise<Result<undefined | Transaction, Error>>;Defined in: packages/txm/lib/TransactionManager.ts:447
Parameters
txIntentId
UUID
Returns
Promise<Result<undefined | Transaction, Error>>
sendTransactions()
sendTransactions(transactionsBatch: Transaction[]): Promise<void>;Defined in: packages/txm/lib/TransactionManager.ts:473
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
An array of Transaction to be submitted
Returns
Promise<void>
start()
start(): Promise<void>;Defined in: packages/txm/lib/TransactionManager.ts:477
Returns
Promise<void>
Properties
abiManager
readonly abiManager: ABIManager;Defined in: packages/txm/lib/TransactionManager.ts:276
baseFeeMargin
readonly baseFeeMargin: bigint;Defined in: packages/txm/lib/TransactionManager.ts:287
blockInactivityTimeout
readonly blockInactivityTimeout: number;Defined in: packages/txm/lib/TransactionManager.ts:293
blockMonitor
readonly blockMonitor: BlockMonitor;Defined in: packages/txm/lib/TransactionManager.ts:270
blockTime
readonly blockTime: bigint;Defined in: packages/txm/lib/TransactionManager.ts:289
chainId
readonly chainId: number;Defined in: packages/txm/lib/TransactionManager.ts:285
collectors
readonly collectors: TransactionOriginator[];Defined in: packages/txm/lib/TransactionManager.ts:269
eip1559
readonly eip1559: EIP1559Parameters;Defined in: packages/txm/lib/TransactionManager.ts:286
finalizedTransactionPurgeTime
readonly finalizedTransactionPurgeTime: number;Defined in: packages/txm/lib/TransactionManager.ts:290
gasEstimator
readonly gasEstimator: GasEstimator;Defined in: packages/txm/lib/TransactionManager.ts:275
gasPriceOracle
readonly gasPriceOracle: GasPriceOracle;Defined in: packages/txm/lib/TransactionManager.ts:274
hookManager
readonly hookManager: HookManager;Defined in: packages/txm/lib/TransactionManager.ts:281
livenessCheckInterval
readonly livenessCheckInterval: number;Defined in: packages/txm/lib/TransactionManager.ts:298
livenessDownDelay
readonly livenessDownDelay: number;Defined in: packages/txm/lib/TransactionManager.ts:297
livenessSuccessCount
readonly livenessSuccessCount: number;Defined in: packages/txm/lib/TransactionManager.ts:296
livenessThreshold
readonly livenessThreshold: number;Defined in: packages/txm/lib/TransactionManager.ts:295
livenessWindow
readonly livenessWindow: number;Defined in: packages/txm/lib/TransactionManager.ts:294
maxPriorityFeePerGas
readonly maxPriorityFeePerGas: undefined | bigint;Defined in: packages/txm/lib/TransactionManager.ts:302
minPriorityFeePerGas
readonly minPriorityFeePerGas: undefined | bigint;Defined in: packages/txm/lib/TransactionManager.ts:301
nonceManager
readonly nonceManager: NonceManager;Defined in: packages/txm/lib/TransactionManager.ts:273
pendingTxReporter
readonly pendingTxReporter: TxMonitor;Defined in: packages/txm/lib/TransactionManager.ts:277
pollingInterval
readonly pollingInterval: number;Defined in: packages/txm/lib/TransactionManager.ts:291
priorityFeeAnalysisBlocks
readonly priorityFeeAnalysisBlocks: number;Defined in: packages/txm/lib/TransactionManager.ts:300
priorityFeeTargetPercentile
readonly priorityFeeTargetPercentile: number;Defined in: packages/txm/lib/TransactionManager.ts:299
retryPolicyManager
readonly retryPolicyManager: RetryPolicyManager;Defined in: packages/txm/lib/TransactionManager.ts:282
rpcAllowDebug
readonly rpcAllowDebug: boolean;Defined in: packages/txm/lib/TransactionManager.ts:288
rpcLivenessMonitor
readonly rpcLivenessMonitor: RpcLivenessMonitor;Defined in: packages/txm/lib/TransactionManager.ts:283
transactionCollector
readonly transactionCollector: TransactionCollector;Defined in: packages/txm/lib/TransactionManager.ts:279
transactionRepository
readonly transactionRepository: TransactionRepository;Defined in: packages/txm/lib/TransactionManager.ts:278
transactionSubmitter
readonly transactionSubmitter: TransactionSubmitter;Defined in: packages/txm/lib/TransactionManager.ts:280
transportProtocol
readonly transportProtocol: "http" | "websocket";Defined in: packages/txm/lib/TransactionManager.ts:292
viemClient
readonly viemClient: SafeViemPublicClient;Defined in: packages/txm/lib/TransactionManager.ts:272
viemWallet
readonly viemWallet: SafeViemWalletClient;Defined in: packages/txm/lib/TransactionManager.ts:271