@fuel-infrastructure/fuel-hyperlane-registry
Version:
A collection of configs, artifacts, and schemas for Hyperlane
35 lines (34 loc) • 2.03 kB
TypeScript
import type { ChainMap, ChainMetadata, ChainName, WarpCoreConfig, WarpRouteDeployConfig } from '@hyperlane-xyz/sdk';
import { ChainAddresses, WarpDeployConfigMap, WarpRouteConfigMap, WarpRouteId } from '../types.js';
import { BaseRegistry } from './BaseRegistry.js';
import { AddWarpRouteOptions, 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;
getWarpDeployConfig(routeId: string): WarpRouteDeployConfig | null;
/**
* Retrieves a filtered map of the warp routes configs
*/
getWarpRoutes(filter?: WarpRouteFilterParams): WarpRouteConfigMap;
/**
* Retrieves a map of all the warp routes deployment configs
*/
getWarpDeployConfigs(filter?: WarpRouteFilterParams): WarpDeployConfigMap;
abstract addWarpRoute(config: WarpCoreConfig, options?: AddWarpRouteOptions): void;
protected abstract createOrUpdateChain(chain: UpdateChainParams): void;
protected abstract getWarpRoutesForIds(ids: WarpRouteId[]): WarpCoreConfig[];
protected abstract getWarpDeployConfigForIds(ids: WarpRouteId[]): WarpRouteDeployConfig[];
}