UNPKG

@artela-network/registry

Version:

A collection of configs, artifacts, and schemas for Hyperlane

34 lines (33 loc) 1.61 kB
import type { Logger } from 'pino'; import type { ChainMap, ChainMetadata, ChainName, WarpCoreConfig } 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>>; 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>>; constructor({ chainMetadata, chainAddresses, warpRoutes, logger }: PartialRegistryOptions); listRegistryContent(): RegistryContent; getMetadata(): ChainMap<ChainMetadata>; getAddresses(): ChainMap<ChainAddresses>; removeChain(chainName: ChainName): void; addWarpRoute(_config: WarpCoreConfig): void; protected getWarpRoutesForIds(ids: WarpRouteId[]): WarpCoreConfig[]; protected createOrUpdateChain(chain: { chainName: ChainName; metadata?: ChainMetadata; addresses?: ChainAddresses; }): void; }