@artela-network/registry
Version:
A collection of configs, artifacts, and schemas for Hyperlane
34 lines (33 loc) • 1.61 kB
TypeScript
import type { Logger } from 'pino';
import type { ChainMap, ChainMetadata, ChainName, WarpCoreConfig } 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>>;
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>>;
constructor({ chainMetadata, chainAddresses, warpRoutes, logger }: PartialRegistryOptions);
listRegistryContent(): RegistryContent;
getMetadata(): ChainMap<ChainMetadata>;
getAddresses(): ChainMap<ChainAddresses>;
removeChain(chainName: ChainName): void;
addWarpRoute(_config: WarpCoreConfig): void;
protected getWarpRoutesForIds(ids: WarpRouteId[]): WarpCoreConfig[];
protected createOrUpdateChain(chain: {
chainName: ChainName;
metadata?: ChainMetadata;
addresses?: ChainAddresses;
}): void;
}