@artela-network/registry
Version:
A collection of configs, artifacts, and schemas for Hyperlane
26 lines (25 loc) • 1.53 kB
TypeScript
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[];
}