-
Notifications
You must be signed in to change notification settings - Fork 215
feat: add nym chain metadata, addresses and warp route #1096
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: 03afdf0 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 Nym chain metadata and addresses, plus warp-route token and deployment configs for BSC↔NYM, and a changeset bumping Changes
Sequence Diagram(s)sequenceDiagram
autonumber
participant Client
participant Registry
participant NymChain as Nym (RPC/REST/GRPC)
participant BSC as BSC Network
Client->>Registry: Request chain list / metadata for "nym"
Registry-->>Client: Return metadata, endpoints, addresses (mailbox, ISM, IGP, hook, announce)
alt Cross-chain warp-route flow
Client->>BSC: Initiate warp-route action (mint/burn) for NYM
BSC->>Registry: Resolve token mapping (bsc ↔ nym)
BSC->>NymChain: Relay via warp-route foreignDeployment / mailbox / ISM
NymChain-->>BSC: Confirm cross-chain result
BSC-->>Client: Finalize action
end
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes Suggested reviewers
Poem
Tip 🔌 Remote MCP (Model Context Protocol) integration is now available!Pro plan users can now connect to remote MCP servers from the Integrations page. Connect with popular remote MCPs such as Notion and Linear to add more context to your reviews and chats. 📜 Recent review detailsConfiguration used: CodeRabbit UI 💡 Knowledge Base configuration:
You can enable these sources in your CodeRabbit configuration. ⛔ Files ignored due to path filters (1)
📒 Files selected for processing (3)
✅ Files skipped from review due to trivial changes (1)
🚧 Files skipped from review as they are similar to previous changes (2)
✨ 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. 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
SupportNeed help? Create a ticket on our support page for assistance with any issues or questions. CodeRabbit Commands (Invoked using PR/Issue comments)Type Other keywords and placeholders
CodeRabbit Configuration File (
|
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: 2
🧹 Nitpick comments (1)
chains/nym/addresses.yaml (1)
1-5
: Minor: add short comments explaining the address derivationsThese look like deterministic module IDs (e.g., 'router_ism', 'hyperlane', 'router_post_dispatch', etc.) padded to 32 bytes. A tiny breadcrumb helps the next ogre through the swamp.
Example:
-interchainGasPaymaster: "0x726f757465725f706f73745f6469737061746368000000040000000000000001" +interchainGasPaymaster: "0x726f757465725f706f73745f6469737061746368000000040000000000000001" # "router_post_dispatch" v1
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
💡 Knowledge Base configuration:
- MCP integration is disabled by default for public repositories
- Jira integration is disabled by default for public repositories
- Linear integration is disabled by default for public repositories
You can enable these sources in your CodeRabbit configuration.
⛔ Files ignored due to path filters (1)
chains/nym/logo.svg
is excluded by!**/*.svg
📒 Files selected for processing (3)
.changeset/fresh-sloths-tan.md
(1 hunks)chains/nym/addresses.yaml
(1 hunks)chains/nym/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/fresh-sloths-tan.md
🔇 Additional comments (7)
.changeset/fresh-sloths-tan.md (1)
1-5
: Changeset looks good for a minor bumpScope and description match the PR intent. No blockers here.
chains/nym/metadata.yaml (5)
23-24
: Domain ID derivation matches 'NYM' ASCIIThe comment and value line up (0x4e594d → 5134669). Looks tidy.
31-34
: Confirm index.from heightStarting at 19,500,000 is fine if that’s at/before first Hyperlane activity on Nyx. Worth a quick check to avoid missing earlier events.
If you have an events height handy (mailbox/validator announce), confirm it’s <= 19,500,000. I can script a scan against your REST/RPC if you want.
41-41
: Protocol/stack fields look consistentcosmosnative + other is acceptable here. No action needed.
18-18
: Contract address length setting aligns with 32-byte valuesMatches the 32-byte hex in addresses.yaml. All good.
29-47
: All endpoints healthy and reporting “nyx” chain-idNice one—every REST and RPC endpoint replied with network
"nyx"
. No swampy surprises here, we’re good to go.chains/nym/addresses.yaml (1)
3-5
: Mailbox and ValidatorAnnounce share the same address — intentional?Both resolve to the same 32-byte value. If the Nym router intentionally multiplexes these under one module/account, all good; otherwise this smells off.
Can you confirm they should be identical on Nyx? If not, please provide the distinct values and I’ll suggest the patch.
Can you also please help update the default ISM on BSC to support NYM? |
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 (3)
deployments/warp_routes/NYM/bsc-nym-config.yaml (1)
3-11
: Align token name casing and verify decimals on BSC tokenLooks good overall. Two small bits to keep our boots clean:
- The display name should likely be "Nym" (proper noun) while symbol stays "NYM".
- Please confirm the BSC token at 0x31d0E332... is indeed 6 decimals on-chain.
Apply this tiny casing tweak:
- name: NYM + name: NymAnd give a quick thumbs-up that the ERC-20 reports 6 decimals; mismatch here will lead to UI confusion and cross-chain rounding headaches.
deployments/warp_routes/NYM/bsc-nym-deploy.yaml (2)
7-21
: Aggregation ISM threshold: confirm intent (1-of-2 vs 2-of-2)The staticAggregationIsm uses two modules and
threshold: 1
, which accepts either module. If the security policy expects both Merkle root and message ID proofs to pass, bump threshold to 2. If 1-of-2 is intentional (to accept either prover), we’re all good.Proposed change if you want both modules required:
- threshold: 1 + threshold: 2
7-18
: Optional DRY: reuse the validator list with YAML anchorsSame validator set listed twice; anchors keep things tidy if you expect updates later.
Example refactor:
bsc: interchainSecurityModule: domains: nym: + validators: &nym_validators + - "0x14588d90308e801564f7b222b78309154004ce22" + - "0x390757ed58f94b57fdc59ebd72d939280af2d0d9" + - "0xc7bc176dc2e8d1ee298f8cda962d7de711b11097" modules: - threshold: 2 type: merkleRootMultisigIsm - validators: - - "0x14588d90308e801564f7b222b78309154004ce22" - - "0x390757ed58f94b57fdc59ebd72d939280af2d0d9" - - "0xc7bc176dc2e8d1ee298f8cda962d7de711b11097" + validators: *nym_validators - threshold: 2 type: messageIdMultisigIsm - validators: - - "0x14588d90308e801564f7b222b78309154004ce22" - - "0x390757ed58f94b57fdc59ebd72d939280af2d0d9" - - "0xc7bc176dc2e8d1ee298f8cda962d7de711b11097" + validators: *nym_validators
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
💡 Knowledge Base configuration:
- MCP integration is disabled by default for public repositories
- Jira integration is disabled by default for public repositories
- Linear integration is disabled by default for public repositories
You can enable these sources in your CodeRabbit configuration.
⛔ Files ignored due to path filters (1)
deployments/warp_routes/NYM/logo.svg
is excluded by!**/*.svg
📒 Files selected for processing (2)
deployments/warp_routes/NYM/bsc-nym-config.yaml
(1 hunks)deployments/warp_routes/NYM/bsc-nym-deploy.yaml
(1 hunks)
🔇 Additional comments (6)
deployments/warp_routes/NYM/bsc-nym-config.yaml (3)
8-8
: Logo asset verification passedThe file
deployments/warp_routes/NYM/logo.svg
is present in the repository, so there’s no risk of a missing-asset puddle at runtime. All references on lines 8 and 18 are valid.
10-10
: Standards enum validated
Aye, bothEvmHypSynthetic
andCosmosNativeHypCollateral
show up in deployments/warp_routes/schema.json (lines 28 & 50). No schema grumbles ahead—good to go.
5-6
: Token namespace prefix consistency confirmedAll clear—no
evm|
lurking in the swamp, andethereum|
is used consistently (2,523 hits) as the token prefix. No action needed.deployments/warp_routes/NYM/bsc-nym-deploy.yaml (3)
29-29
: Owner bech32 prefix aligns with chain metadata
- chains/nym/metadata.yaml (line 2):
bech32Prefix: n
- deployments/warp_routes/NYM/bsc-nym-deploy.yaml (line 29):
owner: n1gqrycg899c6hq7upy6508tcnp4j0rfvxcyjmtn
The owner address starts with
n1
, matching the HRPn
. No changes needed here—all good!
10-12
: Validators match Nym ISM endpointAll three addresses declared in deployments/warp_routes/NYM/bsc-nym-deploy.yaml (lines 10–12 & 16–18) line up exactly with the Nym ISM response—none got lost in the swamp. Good to go!
- File: deployments/warp_routes/NYM/bsc-nym-deploy.yaml
Lines: 10–12, 16–18
3-23
: Update BSC Default ISM to Support NYMI scanned the repo and didn’t find any chain-level
defaultFallbackRoutingIsm
for BSC that listsnym
under itsdomains
. Without that, other routes relying on the BSC default ISM won’t pick up NYM.Please double-check and update your global BSC ISM config (for example, in
chains/addresses.yaml
or wherever the chain-level defaultFallbackRoutingIsm is defined) by adding anym
entry underdomains
, mirroring what you’ve done indeployments/warp_routes/NYM/bsc-nym-deploy.yaml
.
That will ensure all apps using the BSC default ISM will automatically route NYM.
Description
This PR adds the chain metadata, addresses and warp route for Nym.
Backward compatibility
Yes
Testing
hyperlane warp check
reported no violationsSummary by CodeRabbit
New Features
Chores