Class: TransactionManager
Defined in: packages/txm/lib/TransactionManager.ts:273
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:309
Parameters
_config
Returns
TransactionManager
Methods
addHook()
addHook<T>(type: T, handler: TxmHookHandler<T>): () => void;
Defined in: packages/txm/lib/TransactionManager.ts:449
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:440
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:462
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:453
Parameters
txIntentId
UUID
Returns
Promise
<Result
<undefined
| Transaction
, Error
>>
sendTransactions()
sendTransactions(transactionsBatch: Transaction[]): Promise<void>;
Defined in: packages/txm/lib/TransactionManager.ts:479
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:483
Returns
Promise
<void
>
Properties
abiManager
readonly abiManager: ABIManager;
Defined in: packages/txm/lib/TransactionManager.ts:281
baseFeeMargin
readonly baseFeeMargin: bigint;
Defined in: packages/txm/lib/TransactionManager.ts:292
blockInactivityTimeout
readonly blockInactivityTimeout: number;
Defined in: packages/txm/lib/TransactionManager.ts:298
blockMonitor
readonly blockMonitor: BlockMonitor;
Defined in: packages/txm/lib/TransactionManager.ts:275
blockTime
readonly blockTime: bigint;
Defined in: packages/txm/lib/TransactionManager.ts:294
chainId
readonly chainId: number;
Defined in: packages/txm/lib/TransactionManager.ts:290
collectors
readonly collectors: TransactionOriginator[];
Defined in: packages/txm/lib/TransactionManager.ts:274
eip1559
readonly eip1559: EIP1559Parameters;
Defined in: packages/txm/lib/TransactionManager.ts:291
finalizedTransactionPurgeTime
readonly finalizedTransactionPurgeTime: number;
Defined in: packages/txm/lib/TransactionManager.ts:295
gasEstimator
readonly gasEstimator: GasEstimator;
Defined in: packages/txm/lib/TransactionManager.ts:280
gasPriceOracle
readonly gasPriceOracle: GasPriceOracle;
Defined in: packages/txm/lib/TransactionManager.ts:279
hookManager
readonly hookManager: HookManager;
Defined in: packages/txm/lib/TransactionManager.ts:286
livenessCheckInterval
readonly livenessCheckInterval: number;
Defined in: packages/txm/lib/TransactionManager.ts:303
livenessDownDelay
readonly livenessDownDelay: number;
Defined in: packages/txm/lib/TransactionManager.ts:302
livenessSuccessCount
readonly livenessSuccessCount: number;
Defined in: packages/txm/lib/TransactionManager.ts:301
livenessThreshold
readonly livenessThreshold: number;
Defined in: packages/txm/lib/TransactionManager.ts:300
livenessWindow
readonly livenessWindow: number;
Defined in: packages/txm/lib/TransactionManager.ts:299
maxPriorityFeePerGas
readonly maxPriorityFeePerGas: undefined | bigint;
Defined in: packages/txm/lib/TransactionManager.ts:307
minPriorityFeePerGas
readonly minPriorityFeePerGas: undefined | bigint;
Defined in: packages/txm/lib/TransactionManager.ts:306
nonceManager
readonly nonceManager: NonceManager;
Defined in: packages/txm/lib/TransactionManager.ts:278
pendingTxReporter
readonly pendingTxReporter: TxMonitor;
Defined in: packages/txm/lib/TransactionManager.ts:282
pollingInterval
readonly pollingInterval: number;
Defined in: packages/txm/lib/TransactionManager.ts:296
priorityFeeAnalysisBlocks
readonly priorityFeeAnalysisBlocks: number;
Defined in: packages/txm/lib/TransactionManager.ts:305
priorityFeeTargetPercentile
readonly priorityFeeTargetPercentile: number;
Defined in: packages/txm/lib/TransactionManager.ts:304
retryPolicyManager
readonly retryPolicyManager: RetryPolicyManager;
Defined in: packages/txm/lib/TransactionManager.ts:287
rpcAllowDebug
readonly rpcAllowDebug: boolean;
Defined in: packages/txm/lib/TransactionManager.ts:293
rpcLivenessMonitor
readonly rpcLivenessMonitor: RpcLivenessMonitor;
Defined in: packages/txm/lib/TransactionManager.ts:288
transactionCollector
readonly transactionCollector: TransactionCollector;
Defined in: packages/txm/lib/TransactionManager.ts:284
transactionRepository
readonly transactionRepository: TransactionRepository;
Defined in: packages/txm/lib/TransactionManager.ts:283
transactionSubmitter
readonly transactionSubmitter: TransactionSubmitter;
Defined in: packages/txm/lib/TransactionManager.ts:285
transportProtocol
readonly transportProtocol: "http" | "websocket";
Defined in: packages/txm/lib/TransactionManager.ts:297
viemClient
readonly viemClient: SafeViemPublicClient;
Defined in: packages/txm/lib/TransactionManager.ts:277
viemWallet
readonly viemWallet: SafeViemWalletClient;
Defined in: packages/txm/lib/TransactionManager.ts:276