Skip to content

Commit b424794

Browse files
committed
feat(relayer): extract HyperlaneRelayer into standalone @hyperlane-xyz/relayer package
1 parent b2b795b commit b424794

50 files changed

Lines changed: 1792 additions & 421 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
---
2+
"@hyperlane-xyz/relayer": minor
3+
"@hyperlane-xyz/cli": minor
4+
"@hyperlane-xyz/sdk": minor
5+
"@hyperlane-xyz/infra": patch
6+
---
7+
8+
Extracted relayer into dedicated `@hyperlane-xyz/relayer` package
9+
10+
- Moved `HyperlaneRelayer` class from SDK to new package
11+
- Moved ISM metadata builders from SDK to relayer package
12+
- New package supports both manual CLI execution and continuous daemon mode for K8s deployments
13+
- Added Prometheus metrics support with `/metrics` endpoint (enabled by default on port 9090)
14+
- CLI and infra now import from new package
15+
- **Breaking**: The following exports were removed from `@hyperlane-xyz/sdk` and are now available from `@hyperlane-xyz/relayer`:
16+
- `HyperlaneRelayer`, `RelayerCacheSchema`, `messageMatchesWhitelist`
17+
- `BaseMetadataBuilder`, `decodeIsmMetadata`
18+
- All metadata builder classes (`AggregationMetadataBuilder`, `MultisigMetadataBuilder`, etc.)
19+
- `offchainLookupRequestMessageHash` remains exported from SDK for ccip-server compatibility
20+
- Added `randomDeployableIsmConfig` test utility to SDK for generating deployable ISM configs with custom validators

.github/actions/docker-image-comment/action.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@ runs:
5151
["rebalancer"]="♻️"
5252
["warp-monitor"]="🕵️"
5353
["key-funder"]="🔑"
54+
["ts-relayer"]="🚀"
5455
["offchain-lookup-server"]="🔍"
5556
["monorepo"]="📦"
5657
)

.github/workflows/node-services-docker.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ on:
1111
- 'typescript/warp-monitor/**'
1212
- 'typescript/ccip-server/**'
1313
- 'typescript/keyfunder/**'
14+
- 'typescript/relayer/**'
1415
- 'typescript/Dockerfile.node-service'
1516
- 'pnpm-lock.yaml'
1617
- '.github/workflows/node-services-docker.yml'
@@ -127,6 +128,7 @@ jobs:
127128
${REGISTRY}/hyperlane-rebalancer:${TAG_SHA_DATE}
128129
${REGISTRY}/hyperlane-warp-monitor:${TAG_SHA_DATE}
129130
${REGISTRY}/hyperlane-key-funder:${TAG_SHA_DATE}
131+
${REGISTRY}/hyperlane-ts-relayer:${TAG_SHA_DATE}
130132
${REGISTRY}/hyperlane-offchain-lookup-server:${TAG_SHA_DATE}
131133
EOF
132134
)
@@ -143,6 +145,7 @@ jobs:
143145
| ♻️ rebalancer | \`${TAG_SHA_DATE}\` |
144146
| 🕵️ warp-monitor | \`${TAG_SHA_DATE}\` |
145147
| 🔑 key-funder | \`${TAG_SHA_DATE}\` |
148+
| 🚀 ts-relayer | \`${TAG_SHA_DATE}\` |
146149
| 🔍 offchain-lookup-server | \`${TAG_SHA_DATE}\` |
147150
148151
**Full image paths:**

Dockerfile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ COPY typescript/keyfunder/package.json ./typescript/keyfunder/
3939
COPY typescript/provider-sdk/package.json ./typescript/provider-sdk/
4040
COPY typescript/radix-sdk/package.json ./typescript/radix-sdk/
4141
COPY typescript/rebalancer/package.json ./typescript/rebalancer/
42+
COPY typescript/relayer/package.json ./typescript/relayer/
4243
COPY typescript/sdk/package.json ./typescript/sdk/
4344
COPY typescript/tsconfig/package.json ./typescript/tsconfig/
4445
COPY typescript/utils/package.json ./typescript/utils/

pnpm-lock.yaml

Lines changed: 412 additions & 120 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

typescript/cli/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
"@hyperlane-xyz/provider-sdk": "workspace:*",
2020
"@hyperlane-xyz/radix-sdk": "workspace:*",
2121
"@hyperlane-xyz/rebalancer": "workspace:*",
22+
"@hyperlane-xyz/relayer": "workspace:*",
2223
"@hyperlane-xyz/registry": "catalog:",
2324
"@hyperlane-xyz/sdk": "workspace:*",
2425
"@hyperlane-xyz/tsconfig": "workspace:^",

typescript/cli/src/commands/relayer.ts

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,5 @@
1-
import {
2-
type ChainMap,
3-
HyperlaneCore,
4-
HyperlaneRelayer,
5-
RelayerCacheSchema,
6-
} from '@hyperlane-xyz/sdk';
1+
import { HyperlaneRelayer, RelayerCacheSchema } from '@hyperlane-xyz/relayer';
2+
import { type ChainMap, HyperlaneCore } from '@hyperlane-xyz/sdk';
73
import { type Address } from '@hyperlane-xyz/utils';
84

95
import { type CommandModuleWithContext } from '../context/types.js';

typescript/cli/src/send/message.ts

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,8 @@
11
import { stringify as yamlStringify } from 'yaml';
22

33
import { GasAction } from '@hyperlane-xyz/provider-sdk';
4-
import {
5-
type ChainName,
6-
HyperlaneCore,
7-
HyperlaneRelayer,
8-
} from '@hyperlane-xyz/sdk';
4+
import { HyperlaneRelayer } from '@hyperlane-xyz/relayer';
5+
import { type ChainName, HyperlaneCore } from '@hyperlane-xyz/sdk';
96
import { ProtocolType, addressToBytes32, timeout } from '@hyperlane-xyz/utils';
107

118
import { EXPLORER_URL } from '../consts.js';

typescript/cli/src/status/message.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
import type { TransactionReceipt } from '@ethersproject/providers';
22
import { input } from '@inquirer/prompts';
33

4+
import { HyperlaneRelayer } from '@hyperlane-xyz/relayer';
45
import {
56
type ChainName,
67
type DispatchedMessage,
78
HyperlaneCore,
8-
HyperlaneRelayer,
99
} from '@hyperlane-xyz/sdk';
1010

1111
import {

typescript/cli/src/utils/relay.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
import { type TransactionReceipt } from '@ethersproject/providers';
22

33
import { type IRegistry } from '@hyperlane-xyz/registry';
4+
import { HyperlaneRelayer } from '@hyperlane-xyz/relayer';
45
import {
56
type DispatchedMessage,
67
HookType,
78
HyperlaneCore,
8-
HyperlaneRelayer,
99
type MultiProvider,
1010
type TxSubmitterBuilder,
1111
TxSubmitterType,

0 commit comments

Comments
 (0)