UNPKG

@hyperlane-xyz/registry

Version:

A collection of configs, artifacts, and schemas for Hyperlane

45 lines (44 loc) 2.67 kB
import type { ChainMetadata } from '@hyperlane-xyz/sdk/metadata/chainMetadataTypes'; import type { WarpRouteDeployConfig } from '@hyperlane-xyz/sdk/token/types'; import type { ChainMap, ChainName } from '@hyperlane-xyz/sdk/types'; import type { WarpCoreConfig } from '@hyperlane-xyz/sdk/warp/types'; import type { Logger } from 'pino'; import { AddWarpRouteConfigOptions, ChainAddresses, UpdateChainParams, WarpDeployConfigMap, WarpRouteConfigMap, WarpRouteFilterParams, WarpRouteId } from '../types.js'; import { IRegistry, IRegistryMethods, RegistryContent, RegistryType } from './IRegistry.js'; export interface MergedRegistryOptions { registries: Array<IRegistry>; logger?: Logger; } /** * A registry that accepts multiple sub-registries. * Read methods are performed on all sub-registries and the results are merged. * Write methods are performed on all sub-registries. * Can be created manually or by calling `.merge()` on an existing registry. */ export declare class MergedRegistry implements IRegistry { readonly type = RegistryType.Merged; readonly uri = "__merged_registry__"; readonly registries: Array<IRegistry>; protected readonly logger: Logger; constructor({ registries, logger }: MergedRegistryOptions); getUri(): string; listRegistryContent(): Promise<RegistryContent>; getChains(): Promise<Array<ChainName>>; getMetadata(): Promise<ChainMap<ChainMetadata>>; getChainMetadata(chainName: ChainName): Promise<ChainMetadata | null>; getAddresses(): Promise<ChainMap<ChainAddresses>>; getChainAddresses(chainName: ChainName): Promise<ChainAddresses | null>; getChainLogoUri(chainName: ChainName): Promise<string | null>; addChain(chain: UpdateChainParams): Promise<void>; updateChain(chain: UpdateChainParams): Promise<void>; removeChain(chain: ChainName): Promise<void>; getWarpRoute(id: WarpRouteId): Promise<WarpCoreConfig | null>; getWarpDeployConfig(id: WarpRouteId): Promise<WarpRouteDeployConfig | null>; getWarpRoutes(filter?: WarpRouteFilterParams): Promise<WarpRouteConfigMap>; getWarpDeployConfigs(filter?: WarpRouteFilterParams): Promise<WarpDeployConfigMap>; addWarpRoute(config: WarpCoreConfig, options?: AddWarpRouteConfigOptions): Promise<void>; addWarpRouteConfig(config: WarpRouteDeployConfig, options: AddWarpRouteConfigOptions): Promise<void>; protected multiRegistryRead<R>(readFn: (registry: IRegistry) => Promise<R> | R): Promise<R[]>; protected multiRegistryWrite(writeFn: (registry: IRegistry) => Promise<void>, methodName: IRegistryMethods, logMsg: string): Promise<void>; merge(otherRegistry: IRegistry): IRegistry; }