@fuel-infrastructure/fuel-hyperlane-registry
Version:
A collection of configs, artifacts, and schemas for Hyperlane
37 lines (36 loc) • 1.87 kB
TypeScript
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;
}