@hyperlane-xyz/registry
Version:
A collection of configs, artifacts, and schemas for Hyperlane
41 lines (40 loc) • 2.18 kB
TypeScript
import type { ChainMetadata } from '@hyperlane-xyz/sdk/metadata/chainMetadataTypes';
import type { WarpRouteDeployConfig } from '@hyperlane-xyz/sdk/token/types';
import type { ChainMap, ChainName } from '@hyperlane-xyz/sdk/types';
import type { WarpCoreConfig } from '@hyperlane-xyz/sdk/warp/types';
import type { Logger } from 'pino';
import { AddWarpRouteConfigOptions, 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;
addWarpRouteConfig(_config: WarpRouteDeployConfig, _options: AddWarpRouteConfigOptions): void;
protected getWarpRoutesForIds(ids: WarpRouteId[]): WarpCoreConfig[];
protected getWarpDeployConfigForIds(_ids: WarpRouteId[]): WarpRouteDeployConfig[];
protected createOrUpdateChain(chain: {
chainName: ChainName;
metadata?: ChainMetadata;
addresses?: ChainAddresses;
}): void;
}