Skip to content
Merged
Show file tree
Hide file tree
Changes from 5 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
48 changes: 48 additions & 0 deletions typescript/infra/config/docker.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
export const DockerImageRepos = {
AGENT: 'gcr.io/abacus-labs-dev/hyperlane-agent',
MONOREPO: 'gcr.io/abacus-labs-dev/hyperlane-monorepo',
WARP_MONITOR: 'gcr.io/abacus-labs-dev/hyperlane-warp-monitor',
REBALANCER: 'gcr.io/abacus-labs-dev/hyperlane-rebalancer',
} as const;

interface AgentDockerTags {
relayer: string;
relayerRC: string;
validator: string;
validatorRC: string;
scraper: string;
}

interface BaseDockerTags extends AgentDockerTags {
keyFunder: string;
kathy: string;
}

interface MainnetDockerTags extends BaseDockerTags {
checkWarpDeploy: string;
warpMonitor: string;
rebalancer: string;
}

export const mainnetDockerTags: MainnetDockerTags = {
relayer: '28f67ad-20260103-234517',
relayerRC: '28f67ad-20260103-234517',
validator: '28f67ad-20260103-234517',
validatorRC: '28f67ad-20260103-234517',
scraper: '28f67ad-20260103-234517',
keyFunder: 'ff24bc3-20260104-175430',
kathy: '8da6852-20251215-172511',
checkWarpDeploy: '8da6852-20251215-172511',
warpMonitor: 'eda7b03-20251230-135200',
rebalancer: 'be84fc0-20251229-194426',
};

export const testnetDockerTags: BaseDockerTags = {
relayer: 'cd94774-20251217-100437',
relayerRC: 'cd94774-20251217-100437',
validator: 'cd94774-20251217-100437',
validatorRC: 'cd94774-20251217-100437',
scraper: 'f50feaa-20251219-084739',
keyFunder: '8da6852-20251215-172511',
kathy: '8da6852-20251215-172511',
};
27 changes: 13 additions & 14 deletions typescript/infra/config/environments/mainnet3/agent.ts
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ import {
import { BaseScraperConfig } from '../../../src/config/agent/scraper.js';
import { ALL_KEY_ROLES, Role } from '../../../src/roles.js';
import { Contexts } from '../../contexts.js';
import { DockerImageRepos, mainnetDockerTags } from '../../docker.js';
import { getDomainId, getWarpAddresses } from '../../registry.js';

import { environment, ethereumChainNames } from './chains.js';
Expand All @@ -58,8 +59,6 @@ import { WarpRouteIds } from './warp/warpIds.js';
// helloWorld[Contexts.ReleaseCandidate].addresses,
// );

const repo = 'gcr.io/abacus-labs-dev/hyperlane-agent';

// The chains here must be consistent with the environment's supportedChainNames, which is
// checked / enforced at runtime & in the CI pipeline.
//
Expand Down Expand Up @@ -894,8 +893,8 @@ const hyperlane: RootAgentConfig = {
relayer: {
rpcConsensusType: RpcConsensusType.Fallback,
docker: {
repo,
tag: '28f67ad-20260103-234517',
repo: DockerImageRepos.AGENT,
tag: mainnetDockerTags.relayer,
},
blacklist,
gasPaymentEnforcement: gasPaymentEnforcement,
Expand All @@ -914,8 +913,8 @@ const hyperlane: RootAgentConfig = {
},
validators: {
docker: {
repo,
tag: '28f67ad-20260103-234517',
repo: DockerImageRepos.AGENT,
tag: mainnetDockerTags.validator,
},
rpcConsensusType: RpcConsensusType.Quorum,
chains: validatorChainConfig(Contexts.Hyperlane),
Expand All @@ -925,8 +924,8 @@ const hyperlane: RootAgentConfig = {
scraperOnlyChains,
rpcConsensusType: RpcConsensusType.Fallback,
docker: {
repo,
tag: '28f67ad-20260103-234517',
repo: DockerImageRepos.AGENT,
tag: mainnetDockerTags.scraper,
},
resources: scraperResources,
},
Expand All @@ -940,8 +939,8 @@ const releaseCandidate: RootAgentConfig = {
relayer: {
rpcConsensusType: RpcConsensusType.Fallback,
docker: {
repo,
tag: '28f67ad-20260103-234517',
repo: DockerImageRepos.AGENT,
tag: mainnetDockerTags.relayerRC,
},
blacklist,
// We're temporarily (ab)using the RC relayer as a way to increase
Expand All @@ -963,8 +962,8 @@ const releaseCandidate: RootAgentConfig = {
},
validators: {
docker: {
repo,
tag: '28f67ad-20260103-234517',
repo: DockerImageRepos.AGENT,
tag: mainnetDockerTags.validatorRC,
},
rpcConsensusType: RpcConsensusType.Quorum,
chains: validatorChainConfig(Contexts.ReleaseCandidate),
Expand All @@ -984,8 +983,8 @@ const neutron: RootAgentConfig = {
relayer: {
rpcConsensusType: RpcConsensusType.Fallback,
docker: {
repo,
tag: 'cd94774-20251217-100437',
repo: DockerImageRepos.AGENT,
tag: mainnetDockerTags.relayerRC,
},
blacklist,
gasPaymentEnforcement,
Expand Down
5 changes: 3 additions & 2 deletions typescript/infra/config/environments/mainnet3/funding.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ import { objMap } from '@hyperlane-xyz/utils';
import { KeyFunderConfig } from '../../../src/config/funding.js';
import { Role } from '../../../src/roles.js';
import { Contexts } from '../../contexts.js';
import { DockerImageRepos, mainnetDockerTags } from '../../docker.js';

import desiredRebalancerBalances from './balances/desiredRebalancerBalances.json' with { type: 'json' };
import desiredRelayerBalances from './balances/desiredRelayerBalances.json' with { type: 'json' };
Expand Down Expand Up @@ -35,8 +36,8 @@ export const keyFunderConfig: KeyFunderConfig<
typeof mainnet3SupportedChainNames
> = {
docker: {
repo: 'gcr.io/abacus-labs-dev/hyperlane-monorepo',
tag: 'ff24bc3-20260104-175430',
repo: DockerImageRepos.MONOREPO,
tag: mainnetDockerTags.keyFunder,
},
// We're currently using the same deployer/key funder key as mainnet2.
// To minimize nonce clobbering we offset the key funder cron
Expand Down
9 changes: 5 additions & 4 deletions typescript/infra/config/environments/mainnet3/helloworld.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ import {
HelloWorldKathyRunMode,
} from '../../../src/config/helloworld/types.js';
import { Contexts } from '../../contexts.js';
import { DockerImageRepos, mainnetDockerTags } from '../../docker.js';

import { environment } from './chains.js';
import hyperlaneAddresses from './helloworld/hyperlane/addresses.json' with { type: 'json' };
Expand All @@ -12,8 +13,8 @@ export const hyperlane: HelloWorldConfig = {
addresses: hyperlaneAddresses,
kathy: {
docker: {
repo: 'gcr.io/abacus-labs-dev/hyperlane-monorepo',
tag: '8da6852-20251215-172511',
repo: DockerImageRepos.MONOREPO,
tag: mainnetDockerTags.kathy,
},
chainsToSkip: [],
runEnv: environment,
Expand All @@ -32,8 +33,8 @@ export const releaseCandidate: HelloWorldConfig = {
addresses: rcAddresses,
kathy: {
docker: {
repo: 'gcr.io/abacus-labs-dev/hyperlane-monorepo',
tag: '8da6852-20251215-172511',
repo: DockerImageRepos.MONOREPO,
tag: mainnetDockerTags.kathy,
},
chainsToSkip: [],
runEnv: environment,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
import { CheckWarpDeployConfig } from '../../../../src/config/funding.js';
import { DockerImageRepos, mainnetDockerTags } from '../../../docker.js';
import { environment } from '../chains.js';

export const checkWarpDeployConfig: CheckWarpDeployConfig = {
docker: {
repo: 'gcr.io/abacus-labs-dev/hyperlane-monorepo',
tag: '8da6852-20251215-172511',
repo: DockerImageRepos.MONOREPO,
tag: mainnetDockerTags.checkWarpDeploy!,
},
namespace: environment,
cronSchedule: '0 15 * * *', // set to 3pm utc every day
Expand Down
31 changes: 15 additions & 16 deletions typescript/infra/config/environments/testnet4/agent.ts
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ import {
} from '../../../src/config/agent/relayer.js';
import { ALL_KEY_ROLES, Role } from '../../../src/roles.js';
import { Contexts } from '../../contexts.js';
import { DockerImageRepos, testnetDockerTags } from '../../docker.js';
import { getDomainId } from '../../registry.js';

import { environment, ethereumChainNames } from './chains.js';
Expand All @@ -35,8 +36,6 @@ const releaseCandidateHelloworldMatchingList = routerMatchingList(
helloWorld[Contexts.ReleaseCandidate].addresses,
);

const repo = 'gcr.io/abacus-labs-dev/hyperlane-agent';

// The chains here must be consistent with the environment's supportedChainNames, which is
// checked / enforced at runtime & in the CI pipeline.
//
Expand Down Expand Up @@ -345,8 +344,8 @@ const hyperlane: RootAgentConfig = {
relayer: {
rpcConsensusType: RpcConsensusType.Fallback,
docker: {
repo,
tag: 'cd94774-20251217-100437',
repo: DockerImageRepos.AGENT,
tag: testnetDockerTags.relayer,
},
blacklist: [...releaseCandidateHelloworldMatchingList, ...relayBlacklist],
gasPaymentEnforcement,
Expand All @@ -366,17 +365,17 @@ const hyperlane: RootAgentConfig = {
validators: {
rpcConsensusType: RpcConsensusType.Fallback,
docker: {
repo,
tag: 'cd94774-20251217-100437',
repo: DockerImageRepos.AGENT,
tag: testnetDockerTags.validator,
},
chains: validatorChainConfig(Contexts.Hyperlane),
resources: validatorResources,
},
scraper: {
rpcConsensusType: RpcConsensusType.Fallback,
docker: {
repo,
tag: 'f50feaa-20251219-084739',
repo: DockerImageRepos.AGENT,
tag: testnetDockerTags.scraper,
},
resources: scraperResources,
},
Expand All @@ -390,8 +389,8 @@ const releaseCandidate: RootAgentConfig = {
relayer: {
rpcConsensusType: RpcConsensusType.Fallback,
docker: {
repo,
tag: 'cd94774-20251217-100437',
repo: DockerImageRepos.AGENT,
tag: testnetDockerTags.relayerRC,
},
blacklist: relayBlacklist,
gasPaymentEnforcement,
Expand All @@ -411,8 +410,8 @@ const releaseCandidate: RootAgentConfig = {
validators: {
rpcConsensusType: RpcConsensusType.Fallback,
docker: {
repo,
tag: 'cd94774-20251217-100437',
repo: DockerImageRepos.AGENT,
tag: testnetDockerTags.validatorRC,
},
chains: validatorChainConfig(Contexts.ReleaseCandidate),
resources: validatorResources,
Expand All @@ -438,8 +437,8 @@ const neutron: RootAgentConfig = {
relayer: {
rpcConsensusType: RpcConsensusType.Fallback,
docker: {
repo,
tag: 'cd94774-20251217-100437',
repo: DockerImageRepos.AGENT,
tag: testnetDockerTags.relayerRC,
},
blacklist: relayBlacklist,
gasPaymentEnforcement,
Expand All @@ -459,8 +458,8 @@ const neutron: RootAgentConfig = {
validators: {
rpcConsensusType: RpcConsensusType.Fallback,
docker: {
repo,
tag: 'cd94774-20251217-100437',
repo: DockerImageRepos.AGENT,
tag: testnetDockerTags.validatorRC,
},
chains: validatorChainConfig(Contexts.ReleaseCandidate),
resources: validatorResources,
Expand Down
5 changes: 3 additions & 2 deletions typescript/infra/config/environments/testnet4/funding.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import { KeyFunderConfig } from '../../../src/config/funding.js';
import { Role } from '../../../src/roles.js';
import { Contexts } from '../../contexts.js';
import { DockerImageRepos, testnetDockerTags } from '../../docker.js';

import { environment } from './chains.js';
import { testnet4SupportedChainNames } from './supportedChainNames.js';
Expand All @@ -9,8 +10,8 @@ export const keyFunderConfig: KeyFunderConfig<
typeof testnet4SupportedChainNames
> = {
docker: {
repo: 'gcr.io/abacus-labs-dev/hyperlane-monorepo',
tag: '8da6852-20251215-172511',
repo: DockerImageRepos.MONOREPO,
tag: testnetDockerTags.keyFunder,
},
// We're currently using the same deployer key as testnet2.
// To minimize nonce clobbering we offset the key funder cron
Expand Down
9 changes: 5 additions & 4 deletions typescript/infra/config/environments/testnet4/helloworld.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ import {
HelloWorldKathyRunMode,
} from '../../../src/config/helloworld/types.js';
import { Contexts } from '../../contexts.js';
import { DockerImageRepos, testnetDockerTags } from '../../docker.js';

import { environment } from './chains.js';
import hyperlaneAddresses from './helloworld/hyperlane/addresses.json' with { type: 'json' };
Expand All @@ -12,8 +13,8 @@ export const hyperlaneHelloworld: HelloWorldConfig = {
addresses: hyperlaneAddresses,
kathy: {
docker: {
repo: 'gcr.io/abacus-labs-dev/hyperlane-monorepo',
tag: '8da6852-20251215-172511',
repo: DockerImageRepos.MONOREPO,
tag: testnetDockerTags.kathy,
},
chainsToSkip: [],
runEnv: environment,
Expand All @@ -31,8 +32,8 @@ export const releaseCandidateHelloworld: HelloWorldConfig = {
addresses: rcAddresses,
kathy: {
docker: {
repo: 'gcr.io/abacus-labs-dev/hyperlane-monorepo',
tag: '8da6852-20251215-172511',
repo: DockerImageRepos.MONOREPO,
tag: testnetDockerTags.kathy,
},
chainsToSkip: [],
runEnv: environment,
Expand Down
6 changes: 3 additions & 3 deletions typescript/infra/src/rebalancer/helm.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ import { DEFAULT_GITHUB_REGISTRY } from '@hyperlane-xyz/registry';
import { isObjEmpty } from '@hyperlane-xyz/utils';
import { readYaml } from '@hyperlane-xyz/utils/fs';

import { DockerImageRepos, mainnetDockerTags } from '../../config/docker.js';
import { getWarpCoreConfig } from '../../config/registry.js';
import { DeployEnvironment } from '../config/environment.js';
import { WARP_ROUTE_MONITOR_HELM_RELEASE_PREFIX } from '../utils/consts.js';
Expand Down Expand Up @@ -83,13 +84,12 @@ export class RebalancerHelmManager extends HelmManager {
}

async helmValues() {
// Build registry URI with commit embedded in /tree/{commit} format
const registryUri = `${DEFAULT_GITHUB_REGISTRY}/tree/${this.registryCommit}`;

return {
image: {
repository: 'gcr.io/abacus-labs-dev/hyperlane-rebalancer',
tag: 'be84fc0-20251229-194426',
repository: DockerImageRepos.REBALANCER,
tag: mainnetDockerTags.rebalancer,
},
withMetrics: this.withMetrics,
fullnameOverride: this.helmReleaseName,
Expand Down
5 changes: 3 additions & 2 deletions typescript/infra/src/warp/helm.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ import {
} from '@hyperlane-xyz/sdk';
import { difference, rootLogger } from '@hyperlane-xyz/utils';

import { DockerImageRepos, mainnetDockerTags } from '../../config/docker.js';
import {
DEFAULT_REGISTRY_URI,
getRegistry,
Expand Down Expand Up @@ -101,8 +102,8 @@ export class WarpRouteMonitorHelmManager extends HelmManager {
async helmValues() {
return {
image: {
repository: 'gcr.io/abacus-labs-dev/hyperlane-warp-monitor',
tag: 'eda7b03-20251230-135200',
repository: DockerImageRepos.WARP_MONITOR,
tag: mainnetDockerTags.warpMonitor,
},
warpRouteId: this.warpRouteId,
fullnameOverride: this.helmReleaseName,
Expand Down
Loading