Skip to content

Conversation

@blasrodri
Copy link

@blasrodri blasrodri commented Sep 16, 2025

Description

Adding Celestia Arabica and Eden Testnet into the registry

Backward compatibility

Testing

Summary by CodeRabbit

  • New Features
    • Added Celestia Arabica Devnet to the chain registry
    • Added Eden Testnet to the chain registry

@changeset-bot
Copy link

changeset-bot bot commented Sep 16, 2025

🦋 Changeset detected

Latest commit: 646a305

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 1 package
Name Type
@hyperlane-xyz/registry Minor

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

@christopherbrumm
Copy link
Contributor

Mocha was added as celestiatestnet, so I'd recommend to rename to celestiadevnet to keep it consistent.

@jcstein
Copy link

jcstein commented Sep 17, 2025

agreed @christopherbrumm, see arabica devnet page

@blasrodri blasrodri marked this pull request as ready for review September 17, 2025 16:24
@coderabbitai
Copy link
Contributor

coderabbitai bot commented Sep 17, 2025

📝 Walkthrough

Walkthrough

Two new chain configurations are being registered: Celestia Arabica Devnet and Eden Testnet. A changeset entry documents the registry update as a minor version bump. The additions include full metadata for both chains with network endpoints, asset conventions, and block parameters.

Changes

Cohort / File(s) Summary
Changeset Entry
​.changeset/old-papers-rule.md
Minor version bump for '@hyperlane-xyz/registry' documenting the addition of Celestia Devnet and Eden Testnet to the registry.
New Chain Configurations
chains/celestiadevnet/metadata.yaml, chains/edentestnet/metadata.yaml
Two new chain registry entries: Celestia Arabica Devnet (chainId arabica-11, domainId 1095909698, cosmos-native protocol) and Eden Testnet (chainId 3735928814, domainId 2147483647, ethereum protocol) with complete network endpoints, asset definitions, and block parameters.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

  • Verify chain IDs and domain IDs for uniqueness and correctness
  • Confirm RPC/gRPC endpoints are valid and properly formatted
  • Check asset decimals and native token configurations match chain specifications

Poem

Like onions with their layers deep and fine,
Two new chains now blend into the shrine—
Celestia's dev and Eden's test do grow,
The registry expands with gentle flow. 🧅✨

Pre-merge checks and finishing touches

❌ Failed checks (2 warnings)
Check name Status Explanation Resolution
Description Check ⚠️ Warning The description provides a complete summary in the Description section ("Adding Celestia Arabica and Eden Testnet into the registry"), which addresses the main change. However, the Backward compatibility and Testing sections are incomplete—they contain only the template placeholder comments without any actual answers or content filled in by the author. For a registry addition, these sections are important to clarify backward compatibility status and whether the new configurations were tested with Hyperlane tooling, as specified in the template.
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. You can run @coderabbitai generate docstrings to improve docstring coverage.
✅ Passed checks (1 passed)
Check name Status Explanation
Title Check ✅ Passed The title "add celestia arabica + edentestnet" directly reflects the main changes in the pull request—two new chain configurations are being added to the registry. It's concise, clear, and avoids vague terminology or unnecessary noise. The title accurately captures what a teammate would need to know when scanning through the repository history.
✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

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: 0

🧹 Nitpick comments (7)
.changeset/old-papers-rule.md (1)

5-5: Spell out the additions for easier release notes.

Consider naming both additions explicitly, e.g., “Add Celestia Arabica Devnet (celestiadevnet) and Eden Testnet (edentestnet) to the registry,” to avoid ambiguity when scanning the changelog later.

chains/celestiadevnet/addresses.yaml (1)

1-2: Align the comment with the display name + add trailing newline.

  • Match metadata’s displayName (“Celestia Arabica Devnet”) for consistency.
  • YAML linter flags missing newline at EOF.
-# Hyperlane contract addresses for Celestia Arabica
+# Hyperlane contract addresses for Celestia Arabica Devnet
 # These will be populated once contracts are deployed
+
chains/edentestnet/addresses.yaml (1)

1-2: Add trailing newline to keep linters happy.

Nothing else to tweak here.

 # Hyperlane contract addresses for Eden Testnet
 # These will be populated once contracts are deployed
+
chains/edentestnet/metadata.yaml (1)

14-14: Add trailing newline.

Tiny paper cut, keeps lint green.

chains/celestiadevnet/metadata.yaml (3)

16-19: Avoid conflicting gas price settings.

You set a base gasPrice of 0.1 utia, then override to 0.0. That can lead to underpriced txs on some Cosmos validators.

Pick one; simplest is to drop the override:

 gasPrice:
   amount: "0.1"
   denom: utia
@@
-transactionOverrides:
-  gasPrice: "0.0"

Also applies to: 38-39


32-35: Endpoints look good; consider redundancy.

If another RPC/REST mirror exists, adding it improves resilience.


1-39: Add trailing newline.

Keeps YAML linters from grumbling.

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between e057dfa and 965ec53.

⛔ Files ignored due to path filters (2)
  • chains/celestiadevnet/logo.svg is excluded by !**/*.svg
  • chains/edentestnet/logo.svg is excluded by !**/*.svg
📒 Files selected for processing (5)
  • .changeset/old-papers-rule.md (1 hunks)
  • chains/celestiadevnet/addresses.yaml (1 hunks)
  • chains/celestiadevnet/metadata.yaml (1 hunks)
  • chains/edentestnet/addresses.yaml (1 hunks)
  • chains/edentestnet/metadata.yaml (1 hunks)
🧰 Additional context used
🧠 Learnings (1)
📚 Learning: 2025-07-23T21:28:47.407Z
Learnt from: xeno097
PR: hyperlane-xyz/hyperlane-registry#788
File: chains/unichain/metadata.yaml:3-4
Timestamp: 2025-07-23T21:28:47.407Z
Learning: In the hyperlane-registry repository, API keys in chain metadata YAML files (like in chains/*/metadata.yaml) are intended for public usage and are not sensitive credentials that need to be hidden.

Applied to files:

  • chains/celestiadevnet/metadata.yaml
🪛 YAMLlint (1.37.1)
chains/celestiadevnet/addresses.yaml

[error] 2-2: no new line character at the end of file

(new-line-at-end-of-file)

chains/celestiadevnet/metadata.yaml

[error] 39-39: no new line character at the end of file

(new-line-at-end-of-file)

chains/edentestnet/metadata.yaml

[error] 14-14: no new line character at the end of file

(new-line-at-end-of-file)

chains/edentestnet/addresses.yaml

[error] 2-2: no new line character at the end of file

(new-line-at-end-of-file)

🔇 Additional comments (5)
chains/celestiadevnet/metadata.yaml (3)

24-26: Name matches guidance; good call using “celestiadevnet.”

This lines up with the team’s preference for Arabica “devnet” naming. No changes needed.

If Mocha appears elsewhere as “celestiatestnet,” consider a follow-up PR to align naming across the board.


21-23: Sanity‑check the index.from height.

Starting at 8,214,286—confirm this is a safe height with finalized data and that downstream indexers won’t miss prior events.


14-15: All green — domainId derivation verified.
Confirmed: parseInt('0x'+Buffer.from('ARAB').toString('hex')) % 4294967295 === 1095909698, so the metadata value is correct.

chains/edentestnet/metadata.yaml (2)

12-14: Prefer HTTPS if available — RPC host reachable (HEAD -> 405)

File: chains/edentestnet/metadata.yaml (lines 12–14). Probed http://rpc-evreth-sequencer-edennet-1-testnet.binary.builders:8545/ and received "HTTP/1.1 405 Method Not Allowed" (HEAD), so the host is reachable but rejects HEAD. Action: switch rpcUrls to an HTTPS endpoint if one exists; otherwise confirm the HTTP URL is intentional and validate the JSON‑RPC with a POST (e.g. curl -sS -X POST -H 'Content-Type: application/json' --data '{"jsonrpc":"2.0","method":"eth_chainId","params":[],"id":1}' http://rpc-evreth-sequencer-edennet-1-testnet.binary.builders:8545/).


2-6: No collisions found — confirm chainId/domainId 3735928814 is intentional.

All clean: 3735928814 appears only in chains/edentestnet/metadata.yaml (chainId and domainId); name "edentestnet" is unique. Confirm both IDs are intended as-is or change to a different unused ID in chains/edentestnet/metadata.yaml.

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: 1

🧹 Nitpick comments (1)
chains/edentestnet/metadata.yaml (1)

14-14: Technical stack "other" may be too vague.

Most chains specify a more concrete technical stack (e.g., "cosmos", "ethereum", "solana"). Marking it as "other" might not be descriptive enough. What's the actual stack Eden Testnet uses? Even an ogre's got layers—so should this metadata.

Consider specifying the actual technical stack, or confirm with maintainers whether "other" is the appropriate value for this testnet.

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 965ec53 and 646a305.

📒 Files selected for processing (2)
  • chains/celestiadevnet/metadata.yaml (1 hunks)
  • chains/edentestnet/metadata.yaml (1 hunks)
🚧 Files skipped from review as they are similar to previous changes (1)
  • chains/celestiadevnet/metadata.yaml
🔇 Additional comments (1)
chains/edentestnet/metadata.yaml (1)

12-13: No changes needed—structure is consistent with all other chains.

The http: nested key you flagged is actually the standard format used throughout the entire registry. I checked multiple chains (zora, zksync, zklink, zircuit, zeronetwork, zetachain, and others), and they all follow the same pattern: a list entry with an http: key pointing to the RPC URL. The edentestnet file is spot-on.

# yaml-language-server: $schema=../schema.json
chainId: 3735928814
displayName: Eden Testnet
domainId: 2147483647
Copy link
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🔴 Critical

🧩 Analysis chain

The domainId value looks like a placeholder—it's the maximum 32-bit signed integer.

The value 2147483647 (exactly 2^31 - 1) seems suspect. This typically signals either a placeholder that didn't get replaced with the real domain ID, or a value that could cause integer overflow in systems expecting sequential domain IDs. Layer by layer, every piece needs to fit right, aye?

Please verify:

  • Is this the actual domain ID for Eden Testnet, or should it be a different value?
  • How does this compare to domain IDs used by other chains in the registry?

Run the following to compare domain IDs across the registry:


🏁 Script executed:

#!/bin/bash
# Description: Find all domainId values in the registry to identify patterns and anomalies.

rg -n 'domainId:' chains/ | grep -oP 'domainId:\s*\K[0-9]+' | sort -n | uniq -c | sort -rn

Length of output: 4561



Replace domainId with the actual value for Eden Testnet—2147483647 is INT32_MAX, a classic placeholder.

This value sticks out like a sore thumb. It's the maximum 32-bit signed integer and the only domainId in the entire registry that appears just once; every other chain ID pairs up in the system. All the others show up twice, but this one's flying solo.

2147483647 is what developers stick in when they're holding a spot for the real value. You'll need to reach out to the chain operators and get the proper domainId for Eden Testnet to replace it with.

For reference, here's how the domainIds pattern breaks down—everything else in the registry shows a count of 2, except this one standing alone. That's yer tell right there.

🤖 Prompt for AI Agents
In chains/edentestnet/metadata.yaml around line 4, domainId is set to the
INT32_MAX placeholder 2147483647; contact the Eden Testnet operators to obtain
the correct domainId, replace the placeholder with the real numeric domainId,
and ensure the registry reflects the same domainId entry count/format as other
chains (i.e., add or update the matching duplicate entry if the registry
convention requires pairs).

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants