Skip to content

feat: eden mainnet deployment#7863

Merged
paulbalaji merged 11 commits intomainfrom
pb/eden
Jan 22, 2026
Merged

feat: eden mainnet deployment#7863
paulbalaji merged 11 commits intomainfrom
pb/eden

Conversation

@paulbalaji
Copy link
Collaborator

@paulbalaji paulbalaji commented Jan 22, 2026

Description

feat: deploy to eden

Drive-by changes

Related issues

Backward compatibility

Testing

Summary by CodeRabbit

  • New Features

    • Added first-class support for the Eden network across infrastructure, validators, gas/pricing, verification, and tooling (multisig, routing, and account/middleware entries).
  • Chores

    • Updated Base and HyperEVM RPC/explorer endpoints and refreshed mainnet service container versions.
    • Added Eden balances, token price, and gas price entries; updated various mainnet address mappings.
  • Tests

    • Adjusted tests to exclude Eden where connectivity is limited.

✏️ Tip: You can customize this high-level summary in your review settings.

@changeset-bot
Copy link

changeset-bot bot commented Jan 22, 2026

⚠️ No Changeset found

Latest commit: baa3915

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

Copy link
Contributor

@xeno097 xeno097 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think that maybe in the future we could refactor this a bit in case we have another chain with specific requirements so that we can reuse the same function that build core confgis normally but parametrizing the chains to connect as comparing the getEdenCoreConfig with the function used by default for generating the config, the only thing that really changes is that one uses supportedChainNames while the other uses EDEN_CONNECTED_CHAINS

@paulbalaji paulbalaji changed the title feat: deploy to eden feat: eden mainnet deployment Jan 22, 2026
@paulbalaji
Copy link
Collaborator Author

I think that maybe in the future we could refactor this a bit in case we have another chain with specific requirements so that we can reuse the same function that build core confgis normally but parametrizing the chains to connect as comparing the getEdenCoreConfig with the function used by default for generating the config, the only thing that really changes is that one uses supportedChainNames while the other uses EDEN_CONNECTED_CHAINS

agreed! one day i'd like to take on these two and do a little config refactoring but alas for the future:

@paulbalaji paulbalaji marked this pull request as ready for review January 22, 2026 18:00
@coderabbitai
Copy link
Contributor

coderabbitai bot commented Jan 22, 2026

📝 Walkthrough

Walkthrough

Adds full support for a new mainnet chain "eden": chain registry entries, verification artifacts, IGP/Core composition, agent/validator flags, balances/gas/token prices, Docker tag bump, and address updates in Rust configs. Tests adjusted to exclude eden where appropriate.

Changes

Cohort / File(s) Summary
Registry & CI
\.registryrc, typescript/infra/config/docker.ts
Updated registry hash and bumped mainnet Docker image tags for agents/keyFunder to a52b9e6-20260122 builds.
Mainnet chain registry
rust/main/config/mainnet_config.json, rust/main/app-contexts/mainnet_config.json
Added Eden chain block (chainId 714, RPC, tokens, many contract addresses); updated Base RPC and HyperEVM explorer URLs; swapped many sender/recipient addresses in app-contexts JSON.
Agent / Validator flags
typescript/infra/config/environments/mainnet3/agent.ts, .../aw-validators/hyperlane.json, .../validators.ts
Added eden flags for roles (validator true, relayer/scraper false); added eden validator entry and replaced zeronetwork entry.
Eden config & wiring
typescript/infra/config/environments/mainnet3/eden.ts, .../core.ts, .../igp.ts
New eden.ts exports EDEN_CONNECTED_CHAINS, getEdenIgpConfig, getEdenCoreConfig; core.ts and igp.ts special-case eden to use these builders and exclude eden from origin multisig generation.
Verification / ISM / Hooks / Middleware
.../core/verification.json, .../ism/verification.json, .../middleware/accounts/verification.json
Added eden verification blocks: proxy and contract addresses for ProxyAdmin, Mailbox, Hooks, ISM factories, InterchainAccountRouter, and related entries.
Balances, gas & token prices
typescript/infra/config/environments/mainnet3/balances/*, .../gasPrices.json, .../tokenPrices.json
Added eden entries across dailyRelayerBurn (6.79), desired/desiredOverrides (0.05), urgency balances, gasPrices (amount "1", decimals 9) and tokenPrices (0.460417).
Supported chains & SDK
typescript/infra/config/environments/mainnet3/supportedChainNames.ts, typescript/sdk/src/consts/multisigIsm.ts
Registered 'eden' in supportedChainNames; added defaultMultisigConfigs.eden with threshold 1 and AW validator.
Tests
typescript/infra/test/environment.test.ts
Excluded eden from specific core/routing verification tests (skip/filter adjustments).

Sequence Diagram(s)

sequenceDiagram
  participant Owner
  participant EdenModule as eden.ts
  participant IGP as InterchainGasPaymaster
  participant Core as CoreConfig
  participant Agents as Agents/Validators

  Owner->>EdenModule: getEdenIgpConfig(owner, storageGasOracleConfig)
  EdenModule-->>IGP: build per-chain oracle & overhead config
  Owner->>EdenModule: getEdenCoreConfig(owner, igpConfig)
  EdenModule-->>Core: assemble ISMs, hooks, routing (merkle, messageId, routing)
  Core-->>Agents: export core config for validator/relayer/scraper wiring
  Agents->>IGP: wire beneficiary/overrides (runtime)
Loading

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~45 minutes

Possibly related PRs

Suggested reviewers

  • ameten
  • Mo-Hussain
  • antigremlin

Poem

A new chain wakes in swampy light, Eden rises, neat and bright 🌿
Configs stacked like stone and peat, validators stand ready — not too tight.
Hooks and ISMs stitched in place, gas and balance find their space.
Docker tags refreshed, addresses set — now go on, run the race.

🚥 Pre-merge checks | ✅ 1 | ❌ 2
❌ Failed checks (2 warnings)
Check name Status Explanation Resolution
Description check ⚠️ Warning The description is incomplete. While it contains the required section headings from the template, most sections (drive-by changes, related issues, backward compatibility, testing) are left unfilled with only placeholder comments remaining. Fill out all template sections with concrete details: describe any drive-by changes, link related issues, clarify backward compatibility implications, and document testing approach (unit tests, manual testing, etc.).
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (1 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly summarizes the main feature: adding Eden mainnet deployment configuration across multiple infrastructure and configuration files.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch pb/eden

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🤖 Fix all issues with AI agents
In `@typescript/infra/config/environments/mainnet3/core.ts`:
- Around line 43-51: The current originMultisigs creation filters out 'eden'
globally which prevents Celestia from receiving Eden entries; update the filter
chain so 'eden' is only excluded when local !== 'celestia' (i.e., allow 'eden'
when local === 'celestia') while keeping the other filters (no reflexivity and
excluding 'forma'); modify the predicate in the supportedChainNames .filter that
references 'eden' (used when building originMultisigs and relying on
defaultMultisigConfigs) to check local and include eden only for celestia.

In `@typescript/infra/config/environments/mainnet3/eden.ts`:
- Around line 125-127: The thrown error message doesn't match the checked
property: update the error text to reflect the actual validation of owner.owner
(e.g., "owner.owner must be a string" or "owner must be a string") so it's
accurate and unambiguous; modify the throw in the block that contains the
owner.owner type check to use the corrected message.
♻️ Duplicate comments (2)
.registryrc (1)

1-1: Confirm the registry hash points to the Eden update.
Just make sure this commit hash lines up with the registry change you expect for Eden metadata.

typescript/infra/config/environments/mainnet3/eden.ts (1)

62-71: Add validation for the celestia multisig config existence.

Right now ye just reach into defaultMultisigConfigs['celestia'] like it's guaranteed to be there. But if that config goes missin' for some reason, ye'll end up with undefined passin' through and causin' trouble downstream - nobody wants that kind of ogre-sized headache.

Also, 'celestia' is hardcoded here while EDEN_CONNECTED_CHAINS exists separately. If more chains get added to that array, this logic won't automatically pick 'em up.

🛠️ Suggested fix
 export function getEdenCoreConfig(
   owner: OwnableConfig,
   igpConfig: IgpConfig,
 ): CoreConfig {
   const celestiaMultisig = defaultMultisigConfigs['celestia'];
+  assert(celestiaMultisig, 'Missing multisig config for celestia');
 
   const merkleRoot = multisigConfigToIsmConfig(
🧹 Nitpick comments (1)
typescript/infra/config/environments/mainnet3/eden.ts (1)

28-31: Replace weak any typing with the proper AllStorageGasOracleConfigs type.

The Record<string, any> parameter is a bit of a swamp—it's wide open and anything can slip through. The codebase already has a proper type for this, AllStorageGasOracleConfigs, defined right there in the gas-oracle config. Your neighbor igp.ts in the same folder is using it already.

Import it alongside getOverhead and give the parameter proper type coverage. Ye'll get better compile-time guarantees that way.

@paulbalaji paulbalaji enabled auto-merge January 22, 2026 18:31
@hyper-gonk
Copy link
Contributor

hyper-gonk bot commented Jan 22, 2026

🐳 Monorepo Docker Image Built Successfully

Image Tags:

gcr.io/abacus-labs-dev/hyperlane-monorepo:pr-7863
gcr.io/abacus-labs-dev/hyperlane-monorepo:baa3915-20260122-183134

@hyper-gonk
Copy link
Contributor

hyper-gonk bot commented Jan 22, 2026

🦀 Rust Agent Docker Image Built Successfully

Image Tags:

gcr.io/abacus-labs-dev/hyperlane-agent:pr-7863
gcr.io/abacus-labs-dev/hyperlane-agent:baa3915-20260122-183133

@paulbalaji paulbalaji added this pull request to the merge queue Jan 22, 2026
@github-merge-queue github-merge-queue bot removed this pull request from the merge queue due to failed status checks Jan 22, 2026
@paulbalaji paulbalaji added this pull request to the merge queue Jan 22, 2026
Merged via the queue into main with commit 64f4b84 Jan 22, 2026
103 checks passed
@paulbalaji paulbalaji deleted the pb/eden branch January 22, 2026 19:01
@github-project-automation github-project-automation bot moved this from In Review to Done in Hyperlane Tasks Jan 22, 2026
@codecov
Copy link

codecov bot commented Jan 22, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 77.02%. Comparing base (7c75993) to head (baa3915).
⚠️ Report is 3 commits behind head on main.

Additional details and impacted files
@@           Coverage Diff           @@
##             main    #7863   +/-   ##
=======================================
  Coverage   77.02%   77.02%           
=======================================
  Files         117      117           
  Lines        2651     2651           
  Branches      244      244           
=======================================
  Hits         2042     2042           
  Misses        593      593           
  Partials       16       16           
Components Coverage Δ
core 87.80% <ø> (ø)
hooks 71.86% <ø> (ø)
isms 81.10% <ø> (ø)
token 86.67% <ø> (ø)
middlewares 84.98% <ø> (ø)
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

2 participants