UNPKG

@fuel-infrastructure/fuel-hyperlane-registry

Version:

A collection of configs, artifacts, and schemas for Hyperlane

37 lines (36 loc) 1.87 kB
import type { Logger } from 'pino'; import type { ChainMap, ChainMetadata, ChainName, WarpCoreConfig, WarpRouteDeployConfig } from '@hyperlane-xyz/sdk'; import { ChainAddresses, DeepPartial, WarpRouteId } from '../types.js'; import { IRegistry, RegistryContent, RegistryType } from './IRegistry.js'; import { SynchronousRegistry } from './SynchronousRegistry.js'; /** * A registry that accepts partial data, such as incomplete chain metadata or addresses. * Useful for merging with other registries force overrides of subsets of data. */ export interface PartialRegistryOptions { chainMetadata?: ChainMap<DeepPartial<ChainMetadata>>; chainAddresses?: ChainMap<DeepPartial<ChainAddresses>>; warpRoutes?: Array<DeepPartial<WarpCoreConfig>>; warpDeployConfigs?: Array<DeepPartial<WarpRouteDeployConfig>>; logger?: Logger; } export declare class PartialRegistry extends SynchronousRegistry implements IRegistry { readonly type = RegistryType.Partial; chainMetadata: ChainMap<DeepPartial<ChainMetadata>>; chainAddresses: ChainMap<DeepPartial<ChainAddresses>>; warpRoutes: Array<DeepPartial<WarpCoreConfig>>; warpDeployConfigs: Array<DeepPartial<WarpRouteDeployConfig>>; constructor({ chainMetadata, chainAddresses, warpRoutes, warpDeployConfigs, logger }: PartialRegistryOptions); listRegistryContent(): RegistryContent; getMetadata(): ChainMap<ChainMetadata>; getAddresses(): ChainMap<ChainAddresses>; removeChain(chainName: ChainName): void; addWarpRoute(_config: WarpCoreConfig): void; protected getWarpRoutesForIds(ids: WarpRouteId[]): WarpCoreConfig[]; protected getWarpDeployConfigForIds(_ids: WarpRouteId[]): WarpRouteDeployConfig[]; protected createOrUpdateChain(chain: { chainName: ChainName; metadata?: ChainMetadata; addresses?: ChainAddresses; }): void; }