UNPKG

@hyperlane-xyz/sdk

Version:

The official SDK for the Hyperlane Network

39 lines 1.68 kB
import { Logger } from 'pino'; import { Annotated, ProtocolType } from '@hyperlane-xyz/utils'; import { ProtocolTypedReceipt, ProtocolTypedTransaction } from '../../../ProviderType.js'; import { TxSubmitterInterface } from '../TxSubmitterInterface.js'; import { TxSubmitterType } from '../TxSubmitterTypes.js'; /** * Builds a TxSubmitterBuilder for batch transaction submission. * * Example use-cases: * const eV5builder = new TxSubmitterBuilder<EV5Transaction, EV5TransactionReceipt>(); * let txReceipts = eV5builder.for( * new EV5GnosisSafeTxSubmitter(chainA) * ).submit( * txs * ); * txReceipts = eV5builder.for( * new EV5ImpersonatedAccountTxSubmitter(chainA) * ).submit(txs); * txReceipts = eV5builder.for( * new EV5JsonRpcTxSubmitter(chainC) * ).submit(txs); */ export declare class TxSubmitterBuilder<TProtocol extends ProtocolType> implements TxSubmitterInterface<TProtocol> { private currentSubmitter; readonly txSubmitterType: TxSubmitterType; protected readonly logger: Logger; constructor(currentSubmitter: TxSubmitterInterface<TProtocol>); /** * Sets the current submitter for the builder. * @param txSubmitterOrType The submitter to add to the builder */ for(txSubmitter: TxSubmitterInterface<TProtocol>): TxSubmitterBuilder<TProtocol>; /** * Submits a set of transactions to the builder. * @param txs The transactions to submit */ submit(...txs: Annotated<ProtocolTypedTransaction<TProtocol>['transaction']>[]): Promise<ProtocolTypedReceipt<TProtocol>['receipt'] | ProtocolTypedReceipt<TProtocol>['receipt'][] | void>; } //# sourceMappingURL=TxSubmitterBuilder.d.ts.map