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
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
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
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
Returns
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
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