-
Notifications
You must be signed in to change notification settings - Fork 216
feat: nobledevnet metadata and addresses #1146
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
🦋 Changeset detectedLatest commit: 7c43cab The changes in this PR will be included in the next version bump. This PR includes changesets to release 1 package
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 |
📝 WalkthroughWalkthroughAdds Noble Devnet to the registry by adding chain metadata and address files, plus a minor release changeset entry for @hyperlane-xyz/registry. Changes
Sequence Diagram(s)sequenceDiagram
autonumber
actor Client
participant Registry
participant ConfigLoader
participant NobleEndpoints
Client->>Registry: request chain "nobledevnet"
Registry->>ConfigLoader: load metadata.yaml & addresses.yaml
Note right of ConfigLoader #d5f5e3: parse identifiers, endpoints, token, addresses
ConfigLoader-->>Registry: return chain config object
Registry-->>Client: provide config
Client->>NobleEndpoints: interact via RPC/REST/gRPC per config
Note over Client,NobleEndpoints #fef5e6: transactions and indexing follow configured params
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes Suggested reviewers
Poem
Pre-merge checks and finishing touches✅ Passed checks (3 passed)
✨ Finishing touches
🧪 Generate unit tests
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 |
There was a problem hiding this 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 (4)
chains/nobledevnet/addresses.yaml (2)
1-5
: Addresses format LGTM; confirm zero IGP is intentional.All entries are 32‑byte, lowercase hex—nice. Is
interchainGasPaymaster
set to the zero value to indicate “absent”? If that’s the convention in this repo for Cosmos chains, all good; otherwise considernull
or a comment to make intent clear.Apply this small doc tweak if helpful:
+ # Zeroed to indicate no IGP on nobledevnet interchainGasPaymaster: "0x0000000000000000000000000000000000000000000000000000000000000000"
2-5
: Tiny clarity boost: note these are module IDs (ASCII‑padded).Mailboxes/ISM values look like padded ASCII (e.g., “hyperlane”, “router_ism”). A brief hint helps future readers avoid head‑scratching.
You could sprinkle comments like:
- mailbox: "0x68797065726c616e650000000000000000000000000000000000000000000000" + # bytes32("hyperlane") padded + mailbox: "0x68797065726c616e650000000000000000000000000000000000000000000000"chains/nobledevnet/metadata.yaml (2)
25-25
: gRPC endpoint uses http:// on port 443—verify TLS.Port 443 usually implies TLS. If the endpoint expects TLS, switch to https://; if it’s plaintext, consider using 80 or keep as‑is knowingly. Let’s avoid a soggy footgun.
Proposed tweak (if TLS):
- - http: http://grpc.core.devnet.noble.xyz:443 + - http: https://grpc.core.devnet.noble.xyz:443
21-23
: Gas price typing: keep it consistent.
gasPrice.amount
is a string, whiletransactionOverrides.gasPrice
is a number. Aligning types can save a muddy parse later.Proposed tweak:
-transactionOverrides: - gasPrice: 0.1 +transactionOverrides: + gasPrice: "0.1"If the schema requires a number, flip the top‑level
amount
to numeric instead.Also applies to: 42-43
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
⛔ Files ignored due to path filters (1)
chains/nobledevnet/logo.svg
is excluded by!**/*.svg
📒 Files selected for processing (3)
.changeset/three-knives-repair.md
(1 hunks)chains/nobledevnet/addresses.yaml
(1 hunks)chains/nobledevnet/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:
.changeset/three-knives-repair.md
🔇 Additional comments (5)
.changeset/three-knives-repair.md (2)
1-3
: Changeset scope looks right.Package bump and type are sensible for adding a new chain.
5-5
: Name mismatch between PR text and changeset.PR description says “nobletestnet”, but the changeset (and files) use “nobledevnet”. Let’s pick one so folks don’t wander the swamp. I’d align everything to “nobledevnet.”
chains/nobledevnet/metadata.yaml (3)
26-28
: Indexing start height—sanity check.Starting from 5215 is fine if that’s where relevant events begin. Just confirm we’re not skipping anything important.
35-41
: Schema nits: technicalStack and explorer family.
technicalStack: other
—should this be a Cosmos‑specific value if allowed?blockExplorers[*].family: other
—if there’s a “cosmos” or similar family in schema, use it.
12-20
: Core identifiers look solid.bech32 prefix, chainId “duke-1”, domainId derived from “DUKE”, and native token (uusdc, 6 decimals) all line up nicely for Noble Devnet.
Also applies to: 30-35
There was a problem hiding this 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 (4)
chains/nobledevnet/metadata.yaml (4)
42-43
: Drop transactionOverrides.gasPrice for cosmosnative (or justify).Overrides are usually for EVM senders; Cosmos SDK chains read the gasPrice/denom above. Keeping both risks confusion.
Apply this diff:
transactionOverrides: - gasPrice: 0.1 + # Intentionally omitted for cosmosnative chains; uses gasPrice above.
4-7
: Ping.Pub apiUrl likely points to UI, not the API.If Ping.Pub exposes an /api route, wire apiUrl to that; otherwise drop apiUrl and keep url.
Possible tweak:
- - apiUrl: https://explorer.core.devnet.noble.xyz/noble + - apiUrl: https://explorer.core.devnet.noble.xyz/api family: other name: Ping.Pub url: https://explorer.core.devnet.noble.xyz/noble
5-5
: Use explorer family "cosmos" if schema allows.It’s a Cosmos explorer; “other” works but is a wee vague.
- family: other + family: cosmos
41-41
: technicalStack: consider aligning with existing cosmos entries.If peers use “cosmos” or “cosmos-sdk”, mirror that for tidy filtering.
-technicalStack: other +technicalStack: cosmos(Adjust to whatever the schema enum supports.)
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (1)
chains/nobledevnet/metadata.yaml
(1 hunks)
🔇 Additional comments (7)
chains/nobledevnet/metadata.yaml (7)
29-35
: Native token details LGTM.USDC, 6 decimals, denom uusdc — fits Noble’s model.
36-39
: REST/RPC endpoints look tidy.Using https on 443 is what we like to see. Match this on gRPC and we’re golden.
19-21
: Domain ID math looks good — uniqueness confirmed.
Nice touch documenting DUKE→0x44554b45→1146440517; only instance found at chains/nobledevnet/metadata.yaml:20.
26-28
: Index allocation: verify uniqueness offrom: 138
Automated search returned no matches; cannot confirm collisions. File: chains/nobledevnet/metadata.yaml (lines 26–28):
index: chunk: 10 from: 138 # E83D9FC876D91063509E5D91B3FAAC7F6D388B4F6E81F4F30C2C33FBC0ABCE62
- Check other chains/*/metadata.yaml for index.from values to ensure this start (138) doesn't overlap neighboring ranges — don't want chunks bumping into each other.
21-23
: Min gas price confirmed — no change required0.1 uusdc per gas is the recommended minimum; keep the gasPrice block in chains/nobledevnet/metadata.yaml (lines 21–23) as-is.
14-14
: Confirm contractAddressBytes for cosmosnative chainsMost cosmosnative entries are 32; found an outlier: chains/metadata.yaml:3725 -> contractAddressBytes: 20. chains/nobledevnet/metadata.yaml:14 -> contractAddressBytes: 32 — confirm nobledevnet should stay 32 or be changed to 20.
9-11
: Sanity-check 1s block time & reorgPeriod against explorerchains/nobledevnet/metadata.yaml (lines 9–11) set confirmations: 1, estimateBlockTime: 1, reorgPeriod: 1 — verify the average block time on Noble devnet (duke-1) via the explorer; if actual block time is higher, increase these values so confirmations/timeouts don't get swampy.
Description
Add
nobledevnet
metadata and addresses.Backward compatibility
Yes
Testing
N/A
Summary by CodeRabbit
New Features
Chores