UNPKG

@hyperlane-xyz/sdk

Version:

The official SDK for the Hyperlane Network

30 lines 2.44 kB
import { ProtocolType } from '@hyperlane-xyz/utils'; import { ChainMap } from '../../../types.js'; import { MultiProvider } from '../../MultiProvider.js'; import { TxSubmitterInterface } from './TxSubmitterInterface.js'; import { TxSubmitterBuilder } from './builder/TxSubmitterBuilder.js'; import { SubmissionStrategy } from './builder/types.js'; import { SubmitterMetadata } from './types.js'; export type SubmitterBuilderSettings = { submissionStrategy: SubmissionStrategy; multiProvider: MultiProvider; coreAddressesByChain: ChainMap<Record<string, string>>; additionalSubmitterFactories?: Record<string, SubmitterFactory>; }; export declare function getSubmitterBuilder<TProtocol extends ProtocolType>({ submissionStrategy, multiProvider, coreAddressesByChain, additionalSubmitterFactories, }: SubmitterBuilderSettings): Promise<TxSubmitterBuilder<TProtocol>>; export type SubmitterFactory<TProtocol extends ProtocolType = any> = (multiProvider: MultiProvider, metadata: SubmitterMetadata, coreAddressesByChain: ChainMap<Record<string, string>>) => Promise<TxSubmitterInterface<TProtocol>> | TxSubmitterInterface<TProtocol>; /** * Retrieves a transaction submitter instance based on the provided metadata. * This function acts as a factory, using a registry of submitter builders * to construct the appropriate submitter for the given protocol and submission strategy. * It allows for extending the default registry with custom submitter types. * * @param multiProvider - The MultiProvider instance * @param submitterMetadata - The metadata defining the type and configuration of the submitter. * @param coreAddressesByChain - The address of the core Hyperlane deployments by chain. Used for filling some default values for the submission strategies. * @param additionalSubmitterFactories optional extension to extend the default registry. Can override if specifying the the same key. * @returns A promise that resolves to an instance of a TxSubmitterInterface. * @throws If no submitter factory is registered for the type specified in the metadata. */ export declare function getSubmitter<TProtocol extends ProtocolType>(multiProvider: MultiProvider, submitterMetadata: SubmitterMetadata, coreAddressesByChain: ChainMap<Record<string, string>>, additionalSubmitterFactories?: Record<string, SubmitterFactory>): Promise<TxSubmitterInterface<TProtocol>>; //# sourceMappingURL=submitterBuilderGetter.d.ts.map