Skip to content

refactor: Update WarpRouteDeployConfig type to WarpRouteDeployConfigW… #540

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions src/registry/BaseRegistry.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import type { Logger } from 'pino';

import type { ChainMap, ChainMetadata, ChainName, WarpCoreConfig, WarpRouteDeployConfig } from '@hyperlane-xyz/sdk';
import type { ChainMap, ChainMetadata, ChainName, WarpCoreConfig, WarpRouteDeployConfigWithoutMailbox } from '@hyperlane-xyz/sdk';
import type { ChainAddresses, MaybePromise, WarpDeployConfigMap } from '../types.js';
import { WarpRouteConfigMap } from '../types.js';
import { stripLeadingSlash } from '../utils.js';
Expand Down Expand Up @@ -87,7 +87,7 @@ export abstract class BaseRegistry implements IRegistry {
abstract getWarpRoutes(filter?: WarpRouteFilterParams): MaybePromise<WarpRouteConfigMap>;
abstract addWarpRoute(config: WarpCoreConfig): MaybePromise<void>;

abstract getWarpDeployConfig(routeId: string): MaybePromise<WarpRouteDeployConfig | null>;
abstract getWarpDeployConfig(routeId: string): MaybePromise<WarpRouteDeployConfigWithoutMailbox | null>;
abstract getWarpDeployConfigs(filter?: WarpRouteFilterParams): MaybePromise<WarpDeployConfigMap>;

merge(otherRegistry: IRegistry): IRegistry {
Expand Down
6 changes: 3 additions & 3 deletions src/registry/FileSystemRegistry.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import path from 'path';
import type { Logger } from 'pino';
import { parse as yamlParse } from 'yaml';

import type { ChainMap, ChainMetadata, ChainName, WarpCoreConfig, WarpRouteDeployConfig } from '@hyperlane-xyz/sdk';
import type { ChainMap, ChainMetadata, ChainName, WarpCoreConfig, WarpRouteDeployConfigWithoutMailbox } from '@hyperlane-xyz/sdk';

import { CHAIN_FILE_REGEX, SCHEMA_REF, WARP_ROUTE_CONFIG_FILE_REGEX, WARP_ROUTE_DEPLOY_FILE_REGEX, } from '../consts.js';
import { ChainAddresses, ChainAddressesSchema, WarpRouteId } from '../types.js';
Expand Down Expand Up @@ -118,7 +118,7 @@ export class FileSystemRegistry extends SynchronousRegistry implements IRegistry
this.createFile({ filePath: addressesPath, data: toYamlString(addresses) });
}

addWarpRouteConfig(warpConfig: WarpRouteDeployConfig, fileName: string): void {
addWarpRouteConfig(warpConfig: WarpRouteDeployConfigWithoutMailbox, fileName: string): void {
const filePath = path.join(this.uri, this.getWarpRoutesPath(), fileName);
this.createFile({ filePath, data: toYamlString(warpConfig)})
}
Expand Down Expand Up @@ -197,7 +197,7 @@ export class FileSystemRegistry extends SynchronousRegistry implements IRegistry
return this.readConfigsForIds(ids, warpRoutes);
}

protected getWarpDeployConfigForIds(ids: WarpRouteId[]): WarpRouteDeployConfig[] {
protected getWarpDeployConfigForIds(ids: WarpRouteId[]): WarpRouteDeployConfigWithoutMailbox[] {
const warpDeployConfig = this.listRegistryContent().deployments.warpDeployConfig;
return this.readConfigsForIds(ids, warpDeployConfig);
}
Expand Down
4 changes: 2 additions & 2 deletions src/registry/GithubRegistry.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import type { Logger } from 'pino';
import { parse as yamlParse } from 'yaml';

import type { ChainMap, ChainMetadata, ChainName, WarpCoreConfig, WarpRouteDeployConfig } from '@hyperlane-xyz/sdk';
import type { ChainMap, ChainMetadata, ChainName, WarpCoreConfig, WarpRouteDeployConfigWithoutMailbox } from '@hyperlane-xyz/sdk';

import {
CHAIN_FILE_REGEX,
Expand Down Expand Up @@ -172,7 +172,7 @@ export class GithubRegistry extends BaseRegistry implements IRegistry {
return this.fetchYamlFile(routeConfigUrl);
}

async getWarpDeployConfig(routeId: string): Promise<WarpRouteDeployConfig | null> {
async getWarpDeployConfig(routeId: string): Promise<WarpRouteDeployConfigWithoutMailbox | null> {
const repoContents = await this.listRegistryContent();
const routeConfigUrl = repoContents.deployments.warpDeployConfig[routeId];
if (!routeConfigUrl) return null;
Expand Down
4 changes: 2 additions & 2 deletions src/registry/IRegistry.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import type { ChainMap, ChainMetadata, ChainName, WarpCoreConfig, WarpRouteDeployConfig } from '@hyperlane-xyz/sdk';
import type { ChainMap, ChainMetadata, ChainName, WarpCoreConfig, WarpRouteDeployConfigWithoutMailbox } from '@hyperlane-xyz/sdk';
import { ChainAddresses, MaybePromise, WarpDeployConfigMap, WarpRouteConfigMap, WarpRouteId } from '../types.js';

export interface ChainFiles {
Expand Down Expand Up @@ -67,7 +67,7 @@ export interface IRegistry {
getWarpRoutes(filter?: WarpRouteFilterParams): MaybePromise<WarpRouteConfigMap>;
addWarpRoute(config: WarpCoreConfig, options?: AddWarpRouteOptions): MaybePromise<void>;

getWarpDeployConfig(routeId: string): MaybePromise<WarpRouteDeployConfig | null>;
getWarpDeployConfig(routeId: string): MaybePromise<WarpRouteDeployConfigWithoutMailbox | null>;
getWarpDeployConfigs(filter?: WarpRouteFilterParams): MaybePromise<WarpDeployConfigMap>;

// TODO define more deployment artifact related methods
Expand Down
4 changes: 2 additions & 2 deletions src/registry/MergedRegistry.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import type { Logger } from 'pino';

import type { ChainMap, ChainMetadata, ChainName, WarpCoreConfig, WarpRouteDeployConfig } from '@hyperlane-xyz/sdk';
import type { ChainMap, ChainMetadata, ChainName, WarpCoreConfig, WarpRouteDeployConfigWithoutMailbox } from '@hyperlane-xyz/sdk';
import { ChainAddresses, WarpDeployConfigMap, WarpRouteConfigMap, WarpRouteId } from '../types.js';
import { objMerge } from '../utils.js';
import {
Expand Down Expand Up @@ -104,7 +104,7 @@ export class MergedRegistry implements IRegistry {
return results.find((r) => !!r) || null;
}

async getWarpDeployConfig(id: WarpRouteId): Promise<WarpRouteDeployConfig | null> {
async getWarpDeployConfig(id: WarpRouteId): Promise<WarpRouteDeployConfigWithoutMailbox | null> {
const results = await this.multiRegistryRead((r) => r.getWarpDeployConfig(id));
return results.find((r) => !!r) || null;
}
Expand Down
10 changes: 5 additions & 5 deletions src/registry/PartialRegistry.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import type { Logger } from 'pino';

import type { ChainMap, ChainMetadata, ChainName, WarpCoreConfig, WarpRouteDeployConfig } from '@hyperlane-xyz/sdk';
import type { ChainMap, ChainMetadata, ChainName, WarpCoreConfig, WarpRouteDeployConfigWithoutMailbox } from '@hyperlane-xyz/sdk';
import { ChainAddresses, DeepPartial, WarpRouteId } from '../types.js';
import { ChainFiles, IRegistry, RegistryContent, RegistryType } from './IRegistry.js';
import { SynchronousRegistry } from './SynchronousRegistry.js';
Expand All @@ -16,7 +16,7 @@ export interface PartialRegistryOptions {
chainMetadata?: ChainMap<DeepPartial<ChainMetadata>>;
chainAddresses?: ChainMap<DeepPartial<ChainAddresses>>;
warpRoutes?: Array<DeepPartial<WarpCoreConfig>>;
warpDeployConfigs?: Array<DeepPartial<WarpRouteDeployConfig>>;
warpDeployConfigs?: Array<DeepPartial<WarpRouteDeployConfigWithoutMailbox>>;
// TODO add more fields here as needed
logger?: Logger;
}
Expand All @@ -26,7 +26,7 @@ export class PartialRegistry extends SynchronousRegistry implements IRegistry {
public chainMetadata: ChainMap<DeepPartial<ChainMetadata>>;
public chainAddresses: ChainMap<DeepPartial<ChainAddresses>>;
public warpRoutes: Array<DeepPartial<WarpCoreConfig>>;
public warpDeployConfigs: Array<DeepPartial<WarpRouteDeployConfig>>;
public warpDeployConfigs: Array<DeepPartial<WarpRouteDeployConfigWithoutMailbox>>;

constructor({ chainMetadata, chainAddresses, warpRoutes, warpDeployConfigs, logger }: PartialRegistryOptions) {
super({ uri: PARTIAL_URI_PLACEHOLDER, logger });
Expand Down Expand Up @@ -91,11 +91,11 @@ export class PartialRegistry extends SynchronousRegistry implements IRegistry {
}) as WarpCoreConfig[];
}

protected getWarpDeployConfigForIds(_ids: WarpRouteId[]): WarpRouteDeployConfig[] {
protected getWarpDeployConfigForIds(_ids: WarpRouteId[]): WarpRouteDeployConfigWithoutMailbox[] {
// TODO: Right now this returns an empty array
// This cannot be implemented without deriving the token symbol from config.token
// We will revisit once we merge the configs
return this.warpDeployConfigs as WarpRouteDeployConfig[];
return this.warpDeployConfigs as WarpRouteDeployConfigWithoutMailbox[];
}

protected createOrUpdateChain(chain: {
Expand Down
8 changes: 4 additions & 4 deletions src/registry/SynchronousRegistry.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import type { ChainMap, ChainMetadata, ChainName, WarpCoreConfig, WarpRouteDeployConfig } from '@hyperlane-xyz/sdk';
import type { ChainMap, ChainMetadata, ChainName, WarpCoreConfig, WarpRouteDeployConfigWithoutMailbox } from '@hyperlane-xyz/sdk';

import { ChainAddresses, WarpDeployConfigMap, WarpRouteConfigMap, WarpRouteId } from '../types.js';
import { BaseRegistry } from './BaseRegistry.js';
Expand Down Expand Up @@ -64,7 +64,7 @@ export abstract class SynchronousRegistry extends BaseRegistry implements IRegis
return this.getWarpRoutesForIds([routeId])[0] || null;
}

getWarpDeployConfig(routeId: string): WarpRouteDeployConfig | null {
getWarpDeployConfig(routeId: string): WarpRouteDeployConfigWithoutMailbox | null {
return this.getWarpDeployConfigForIds([routeId])[0] || null;
}

Expand All @@ -86,7 +86,7 @@ export abstract class SynchronousRegistry extends BaseRegistry implements IRegis
const warpDeployConfig = this.listRegistryContent().deployments.warpDeployConfig;
const { ids: routeIds } = filterWarpRoutesIds(warpDeployConfig, filter);
const configs = this.getWarpDeployConfigForIds(routeIds);
const idsWithConfigs = routeIds.map((id, i): [WarpRouteId, WarpRouteDeployConfig] => [id, configs[i]])
const idsWithConfigs = routeIds.map((id, i): [WarpRouteId, WarpRouteDeployConfigWithoutMailbox] => [id, configs[i]])
return Object.fromEntries(idsWithConfigs);
}

Expand All @@ -95,5 +95,5 @@ export abstract class SynchronousRegistry extends BaseRegistry implements IRegis
protected abstract createOrUpdateChain(chain: UpdateChainParams): void;

protected abstract getWarpRoutesForIds(ids: WarpRouteId[]): WarpCoreConfig[];
protected abstract getWarpDeployConfigForIds(ids: WarpRouteId[]): WarpRouteDeployConfig[];
protected abstract getWarpDeployConfigForIds(ids: WarpRouteId[]): WarpRouteDeployConfigWithoutMailbox[];
}
4 changes: 2 additions & 2 deletions src/types.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import type { WarpCoreConfig, WarpRouteDeployConfig } from '@hyperlane-xyz/sdk';
import type { WarpCoreConfig, WarpRouteDeployConfigWithoutMailbox } from '@hyperlane-xyz/sdk';
import { z } from 'zod';

// https://www.typescriptlang.org/docs/handbook/release-notes/typescript-4-5.html#the-awaited-type-and-promise-improvements
Expand All @@ -9,7 +9,7 @@ export type ChainAddresses = z.infer<typeof ChainAddressesSchema>;

export type WarpRouteId = string;
export type WarpRouteConfigMap = Record<WarpRouteId, WarpCoreConfig>;
export type WarpDeployConfigMap = Record<WarpRouteId, WarpRouteDeployConfig>;
export type WarpDeployConfigMap = Record<WarpRouteId, WarpRouteDeployConfigWithoutMailbox>;

export type DeepPartial<T> = T extends object
? {
Expand Down