UNPKG

@artela-network/registry

Version:

A collection of configs, artifacts, and schemas for Hyperlane

26 lines (25 loc) 1.53 kB
import type { ChainMap, ChainMetadata, ChainName, WarpCoreConfig } from '@hyperlane-xyz/sdk'; import { ChainAddresses, WarpRouteConfigMap, WarpRouteId } from '../types.js'; import { BaseRegistry } from './BaseRegistry.js'; import { IRegistry, RegistryContent, UpdateChainParams, WarpRouteFilterParams } from './IRegistry.js'; /** * Shared code for sync registries like the FileSystem and Partial registries. * This is required because of the inconsistent sync/async methods across registries. * If the Infra package can be updated to work with async-only methods, this code can be moved to the BaseRegistry class. */ export declare abstract class SynchronousRegistry extends BaseRegistry implements IRegistry { abstract listRegistryContent(): RegistryContent; getChains(): Array<ChainName>; abstract getMetadata(): ChainMap<ChainMetadata>; getChainMetadata(chainName: ChainName): ChainMetadata | null; abstract getAddresses(): ChainMap<ChainAddresses>; getChainAddresses(chainName: ChainName): ChainAddresses | null; addChain(chain: UpdateChainParams): void; updateChain(chain: UpdateChainParams): void; removeChain(chainName: ChainName): void; getWarpRoute(routeId: string): WarpCoreConfig | null; getWarpRoutes(filter?: WarpRouteFilterParams): WarpRouteConfigMap; abstract addWarpRoute(config: WarpCoreConfig): void; protected abstract createOrUpdateChain(chain: UpdateChainParams): void; protected abstract getWarpRoutesForIds(ids: WarpRouteId[]): WarpCoreConfig[]; }