UNPKG

@hyperlane-xyz/cli

Version:

A command-line utility for common Hyperlane operations

51 lines 1.82 kB
import { Signer } from 'ethers'; import { Logger } from 'pino'; import { ChainName, ChainSubmissionStrategy, MultiProvider } from '@hyperlane-xyz/sdk'; import { IMultiProtocolSigner } from './BaseMultiProtocolSigner.js'; export interface MultiProtocolSignerOptions { logger?: Logger; key?: string; } /** * @title MultiProtocolSignerManager * @dev Context manager for signers across multiple protocols */ export declare class MultiProtocolSignerManager { protected readonly submissionStrategy: ChainSubmissionStrategy; protected readonly chains: ChainName[]; protected readonly multiProvider: MultiProvider; protected readonly options: MultiProtocolSignerOptions; protected readonly signerStrategies: Map<ChainName, IMultiProtocolSigner>; protected readonly signers: Map<ChainName, Signer>; readonly logger: Logger; constructor(submissionStrategy: ChainSubmissionStrategy, chains: ChainName[], multiProvider: MultiProvider, options?: MultiProtocolSignerOptions); /** * @notice Sets up chain-specific signer strategies */ protected initializeStrategies(): void; /** * @dev Configures signers for EVM chains in MultiProvider */ getMultiProvider(): Promise<MultiProvider>; /** * @notice Creates signer for specific chain */ initSigner(chain: ChainName): Promise<Signer>; /** * @notice Creates signers for all chains */ initAllSigners(): Promise<typeof this.signers>; /** * @notice Resolves all chain configurations */ private resolveAllConfigs; /** * @notice Resolves single chain configuration */ private resolveConfig; /** * @notice Gets private key from strategy */ private extractPrivateKey; } //# sourceMappingURL=MultiProtocolSignerManager.d.ts.map