@hyperlane-xyz/cli
Version:
A command-line utility for common Hyperlane operations
51 lines • 1.82 kB
TypeScript
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