feat: separate typescript relayer package#7671
Conversation
🦋 Changeset detectedLatest commit: 65784b4 The changes in this PR will be included in the next version bump. This PR includes changesets to release 23 packages
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
c241647 to
ca18687
Compare
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
ff012fe to
fbd13e7
Compare
626016d to
38c6939
Compare
8c6117c to
8bd15d6
Compare
7bc69d3 to
491ee77
Compare
267ad95 to
65784b4
Compare
65784b4 to
befe85e
Compare
491ee77 to
45ed7c4
Compare
2396979 to
8bd4902
Compare
f65320b to
992f37b
Compare
3033102 to
8cbe839
Compare
542cd49 to
6d88f89
Compare
f4903d2 to
1b474f5
Compare
6d88f89 to
b29a170
Compare
1b474f5 to
85523cb
Compare
85523cb to
9f52957
Compare
|
Warning Rate limit exceeded
⌛ How to resolve this issue?After the wait time has elapsed, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout. Please see our FAQ for further information. ✨ Finishing touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
⚙️ Node Service Docker Images Built Successfully
Full image paths |
🐳 Monorepo Docker Image Built Successfully
Full image paths |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #7671 +/- ##
=======================================
Coverage 77.02% 77.02%
=======================================
Files 117 117
Lines 2651 2651
Branches 244 244
=======================================
Hits 2042 2042
Misses 593 593
Partials 16 16
🚀 New features to boost your workflow:
|
Summary
Extracts
HyperlaneRelayerand ISM metadata builders from SDK into a standalone@hyperlane-xyz/relayerpackage with browser/Node.js separation.Changes
@hyperlane-xyz/relayerpackage with dual exports:@hyperlane-xyz/relayer): Browser-safe core relayer and metadata builders/fssubpath (@hyperlane-xyz/relayer/fs): Node.js daemon with file-based config, cache persistence, and metricsHyperlaneRelayer, all ISM metadata builders (BaseMetadataBuilder,MultisigMetadataBuilder, etc.)@hyperlane-xyz/metricspackage for metrics server (includes error handling)Package Exports
@hyperlane-xyz/relayer@hyperlane-xyz/relayer/fsBreaking Changes
Imports moved from
@hyperlane-xyz/sdkto@hyperlane-xyz/relayer:HyperlaneRelayer,RelayerCacheSchema,messageMatchesWhitelistBaseMetadataBuilder,MultisigMetadataBuilder,AggregationMetadataBuilder, etc.MetadataBuilder,MetadataContext,StructuredMetadataNote:
offchainLookupRequestMessageHashremains in SDK for ccip-server compatibility (also re-exported from relayer).Metrics
hyperlane_relayer_messages_totalhyperlane_relayer_retries_totalhyperlane_relayer_backlog_sizehyperlane_relayer_relay_duration_secondshyperlane_relayer_messages_skipped_totalhyperlane_relayer_messages_already_delivered_totalRecent Changes (CR: yorke)
Addressed review feedback:
RelayerEventCallbackswith discriminated unionRelayerEventtype and singleRelayerObserver.onEvent()callback - events now include fullDispatchedMessageobjectloadConfig()function, uses zod schema directlyRelayerService.create()async factory (preferred over constructor + init)relayerConfig?: RelayerConfigInputinstead of dual config objectsEnvSchemafor environment variable parsing in daemonmode: 'daemon' | 'manual'optionaddressesdefinition in examplecache.ts,events.ts,whitelist.tsmodules for cleaner separationNote: Relay duration metrics intentionally use process time (not onchain timestamps) - the scraper tracks e2e latency while these metrics measure relayer processing performance specifically.
Testing
pnpm buildpassespnpm testpasses