Skip to content

Conversation

@tkporter
Copy link
Collaborator

@tkporter tkporter commented Jul 24, 2025

Description

Drive-by changes

Related issues

Backward compatibility

Testing

Summary by CodeRabbit

  • New Features

    • Added support and configuration for the new Solana Devnet ("solanadevnet") testnet across infrastructure, agent, validator, owner, funding, gas price, and token price settings.
    • Introduced new program and token configuration files for Solana Devnet, including multisig and warp route support.
    • Updated chain connections and domain recognition to include Solana Devnet.
  • Configuration Updates

    • Revised gas oracle, multisig, and validator configurations for Solana Devnet and related testnets.
    • Updated multisig threshold and validator addresses for Solana Devnet.
    • Refreshed Docker image tags for agent components.
  • Bug Fixes

    • Corrected validator and network entries in multisig and validator configuration files.

@changeset-bot
Copy link

changeset-bot bot commented Jul 24, 2025

⚠️ No Changeset found

Latest commit: f53bb41

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

@codecov
Copy link

codecov bot commented Jul 24, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 0.00%. Comparing base (1f3f2f8) to head (f53bb41).

Additional details and impacted files
@@          Coverage Diff          @@
##            main   #6797   +/-   ##
=====================================
  Coverage   0.00%   0.00%           
=====================================
  Files          1       1           
  Lines         14      14           
=====================================
  Misses        14      14           
Components Coverage Δ
core ∅ <ø> (∅)
hooks ∅ <ø> (∅)
isms ∅ <ø> (∅)
token ∅ <ø> (∅)
middlewares ∅ <ø> (∅)
🚀 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.

@@ -1 +1 @@
46aa193b85107269facaa13423fb4686a5e31acb
600214faeaedbe6b1a26090e70389d7a415ba11f
Copy link
Collaborator Author

Choose a reason for hiding this comment

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

will change to a main commit once hyperlane-xyz/hyperlane-registry#1069 is merged

@tkporter tkporter marked this pull request as ready for review July 25, 2025 14:58
@coderabbitai
Copy link
Contributor

coderabbitai bot commented Jul 25, 2025

Warning

Rate limit exceeded

@tkporter has exceeded the limit for the number of commits or files that can be reviewed per hour. Please wait 0 minutes and 6 seconds before requesting another review.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

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.

📥 Commits

Reviewing files that changed from the base of the PR and between cde1439 and f53bb41.

📒 Files selected for processing (1)
  • rust/main/config/testnet_config.json (38 hunks)
📝 Walkthrough

Walkthrough

A new Solana Devnet testnet chain, solanadevnet, is introduced across the configuration, code, and deployment files. Various configs and code are updated to support this chain, including domain enums, multisig ISM settings, gas oracles, validator lists, and infrastructure scripts. Several new JSON files are added for program IDs, tokens, and warp routes.

Changes

File(s) / Path(s) Summary
.registryrc Updated a single hash value.
rust/main/config/testnet_config.json Updated interchainSecurityModule addresses for many chains; added new solanadevnet chain configuration.
rust/main/hyperlane-core/src/chain.rs Added SolanaDevnet variant to domain enum and updated related methods.
rust/sealevel/environments/testnet4/gas-oracle-configs.json Reorganized and expanded gas oracle configs; added solanadevnet and updated parameters for several networks.
rust/sealevel/environments/testnet4/multisig-ism-message-id/solanadevnet/hyperlane/multisig-config.json New file: multisig ISM config for several testnets including solanadevnet.
rust/sealevel/environments/testnet4/multisig-ism-message-id/solanatestnet/hyperlane/multisig-config.json Added/renamed entries for multiple networks, including solanadevnet, in multisig ISM config.
rust/sealevel/environments/testnet4/solanadevnet/core/program-ids.json New file: program IDs for Solana Devnet.
rust/sealevel/environments/testnet4/warp-routes/SOL-solanadevnet/program-ids.json New file: program IDs for warp routes on Solana Devnet and Testnet.
rust/sealevel/environments/testnet4/warp-routes/SOL-solanadevnet/token-config.json New file: token configs for Solana Devnet and Testnet.
typescript/infra/config/environments/testnet4/agent.ts Added solanadevnet to agent config; updated Docker image tags.
typescript/infra/config/environments/testnet4/aw-validators/hyperlane.json Added validator address for solanadevnet.
typescript/infra/config/environments/testnet4/funding.ts Added solanadevnet with zero desired balance.
typescript/infra/config/environments/testnet4/gasPrices.json Added gas price entry for solanadevnet.
typescript/infra/config/environments/testnet4/owners.ts Added owner entry for solanadevnet.
typescript/infra/config/environments/testnet4/supportedChainNames.ts Added 'solanadevnet' to supported chain names array.
typescript/infra/config/environments/testnet4/tokenPrices.json Added token price entry for solanadevnet.
typescript/infra/config/environments/testnet4/validators.ts Added validator chain config for solanadevnet.
typescript/infra/scripts/sealevel-helpers/print-gas-oracles.ts Added new chain connection pairs involving solanadevnet and solanatestnet.
typescript/sdk/src/consts/multisigIsm.ts Updated solanadevnet multisig config: reduced threshold and validator list.

Sequence Diagram(s)

sequenceDiagram
    participant User
    participant InfraConfig
    participant ChainEnum
    participant Validator
    participant GasOracle
    participant MultisigISM
    participant SolanaDevnet

    User->>InfraConfig: Deploys/updates configs
    InfraConfig->>ChainEnum: Recognizes solanadevnet domain
    InfraConfig->>Validator: Registers solanadevnet validator
    InfraConfig->>GasOracle: Sets gas/oracle params for solanadevnet
    InfraConfig->>MultisigISM: Sets ISM threshold/validators for solanadevnet
    User->>SolanaDevnet: Interacts via updated configs and infrastructure
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~18 minutes

Poem

A new chain sprouts, green as a bog,
Solanadevnet joins the log.
Validators gather, configs align,
Gas oracles tuned, all by design.
With multisigs trimmed and tokens set,
The testnet’s richer—no need to fret!
🐸✨

✨ Finishing Touches
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch trevor/solanadevnet-v3

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
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Explain this complex logic.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai explain this code block.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and explain its main purpose.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Support

Need help? Create a ticket on our support page for assistance with any issues or questions.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate docstrings to generate docstrings for this PR.
  • @coderabbitai generate sequence diagram to generate a sequence diagram of the changes in this PR.
  • @coderabbitai generate unit tests to generate unit tests for this PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

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

🧹 Nitpick comments (3)
typescript/infra/config/environments/testnet4/funding.ts (1)

84-125: Might want to consider adding solanadevnet to the other funding sections too.

I notice solanadevnet is missing from both desiredKathyBalancePerChain and igpClaimThresholdPerChain configurations. While it might not need funding, having it explicitly listed (even with '0' values) would make the configuration more complete and consistent.

Consider adding these entries for completeness:

  desiredKathyBalancePerChain: {
    // ... other entries
+   solanadevnet: '0',
    solanatestnet: '0',
    // ... rest
  },
  igpClaimThresholdPerChain: {
    // ... other entries  
+   solanadevnet: '0',
    solanatestnet: '0',
    // ... rest
  },
rust/sealevel/environments/testnet4/multisig-ism-message-id/solanatestnet/hyperlane/multisig-config.json (1)

39-65: Quick sanity pass on new validator addresses

Loads of fresh networks added in this hunk. Worth running an automated lint to ensure:

  1. Each validators[0] string is exactly 42 chars (0x + 40 hex).
  2. No duplicate addresses got pasted by accident between chains.
  3. All lower-case to keep checksum tooling happy (or use checksummed case consistently).

Tell me if ye’d like a tiny script to scan the JSON for length / duplication – happy to whip one up.

Also applies to: 76-85, 132-140

rust/sealevel/environments/testnet4/gas-oracle-configs.json (1)

68-85: Duplicate-looking overhead & gasPrice combos – intentional?

Top-level solanadevnet repeats some links already present under solanatestnet, but gas/overhead values differ (e.g. overhead: 600000 vs 151966). Make sure the agent picking which entry to read (local vs remote direction) grabs the right numbers, else fee estimates could swing wildly.

A small comment block in the file explaining directionality would stop future heads-scratching.

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 1f3f2f8 and cde1439.

📒 Files selected for processing (19)
  • .registryrc (1 hunks)
  • rust/main/config/testnet_config.json (38 hunks)
  • rust/main/hyperlane-core/src/chain.rs (3 hunks)
  • rust/sealevel/environments/testnet4/gas-oracle-configs.json (3 hunks)
  • rust/sealevel/environments/testnet4/multisig-ism-message-id/solanadevnet/hyperlane/multisig-config.json (1 hunks)
  • rust/sealevel/environments/testnet4/multisig-ism-message-id/solanatestnet/hyperlane/multisig-config.json (8 hunks)
  • rust/sealevel/environments/testnet4/solanadevnet/core/program-ids.json (1 hunks)
  • rust/sealevel/environments/testnet4/warp-routes/SOL-solanadevnet/program-ids.json (1 hunks)
  • rust/sealevel/environments/testnet4/warp-routes/SOL-solanadevnet/token-config.json (1 hunks)
  • typescript/infra/config/environments/testnet4/agent.ts (6 hunks)
  • typescript/infra/config/environments/testnet4/aw-validators/hyperlane.json (1 hunks)
  • typescript/infra/config/environments/testnet4/funding.ts (1 hunks)
  • typescript/infra/config/environments/testnet4/gasPrices.json (1 hunks)
  • typescript/infra/config/environments/testnet4/owners.ts (1 hunks)
  • typescript/infra/config/environments/testnet4/supportedChainNames.ts (1 hunks)
  • typescript/infra/config/environments/testnet4/tokenPrices.json (1 hunks)
  • typescript/infra/config/environments/testnet4/validators.ts (1 hunks)
  • typescript/infra/scripts/sealevel-helpers/print-gas-oracles.ts (1 hunks)
  • typescript/sdk/src/consts/multisigIsm.ts (1 hunks)
🧰 Additional context used
🧬 Code Graph Analysis (1)
typescript/infra/config/environments/testnet4/validators.ts (1)
typescript/infra/config/registry.ts (1)
  • getReorgPeriod (94-97)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (64)
  • GitHub Check: infra-test
  • GitHub Check: cli-e2e-matrix (cosmosnative, warp-rebalancer)
  • GitHub Check: cli-e2e-matrix (cosmosnative, warp-check)
  • GitHub Check: cli-e2e-matrix (cosmosnative, warp-send)
  • GitHub Check: cli-e2e-matrix (cosmosnative, warp-extend-recovery)
  • GitHub Check: cli-e2e-matrix (cosmosnative, warp-bridge-1)
  • GitHub Check: cli-e2e-matrix (cosmosnative, warp-extend-config)
  • GitHub Check: cli-e2e-matrix (cosmosnative, warp-deploy)
  • GitHub Check: cli-e2e-matrix (cosmosnative, warp-read)
  • GitHub Check: cli-e2e-matrix (ethereum, warp-init)
  • GitHub Check: cli-e2e-matrix (cosmosnative, warp-apply)
  • GitHub Check: cli-e2e-matrix (cosmosnative, warp-extend-basic)
  • GitHub Check: cli-e2e-matrix (cosmosnative, warp-init)
  • GitHub Check: cli-e2e-matrix (cosmosnative, relay)
  • GitHub Check: cli-e2e-matrix (cosmosnative, core-deploy)
  • GitHub Check: cli-e2e-matrix (cosmosnative, core-apply)
  • GitHub Check: cli-e2e-matrix (ethereum, warp-send)
  • GitHub Check: cli-e2e-matrix (cosmosnative, warp-bridge-2)
  • GitHub Check: cli-e2e-matrix (cosmosnative, core-read)
  • GitHub Check: cli-e2e-matrix (cosmosnative, core-init)
  • GitHub Check: cli-e2e-matrix (ethereum, warp-rebalancer)
  • GitHub Check: cli-e2e-matrix (cosmosnative, warp-apply-submitters)
  • GitHub Check: cli-e2e-matrix (ethereum, warp-read)
  • GitHub Check: cli-e2e-matrix (ethereum, warp-extend-recovery)
  • GitHub Check: cli-e2e-matrix (ethereum, warp-bridge-1)
  • GitHub Check: cli-e2e-matrix (cosmosnative, core-check)
  • GitHub Check: cli-e2e-matrix (ethereum, warp-extend-config)
  • GitHub Check: cli-e2e-matrix (ethereum, warp-check)
  • GitHub Check: cli-e2e-matrix (ethereum, warp-extend-basic)
  • GitHub Check: cli-e2e-matrix (ethereum, warp-apply)
  • GitHub Check: cli-e2e-matrix (ethereum, warp-apply-submitters)
  • GitHub Check: cli-e2e-matrix (ethereum, warp-bridge-2)
  • GitHub Check: cli-e2e-matrix (ethereum, warp-deploy)
  • GitHub Check: cli-e2e-matrix (ethereum, core-read)
  • GitHub Check: cli-e2e-matrix (ethereum, relay)
  • GitHub Check: cli-e2e-matrix (ethereum, core-deploy)
  • GitHub Check: cli-e2e-matrix (ethereum, core-apply)
  • GitHub Check: cli-e2e-matrix (ethereum, core-init)
  • GitHub Check: cli-e2e-matrix (ethereum, core-check)
  • GitHub Check: env-test-matrix (mainnet3, optimism, core)
  • GitHub Check: env-test-matrix (mainnet3, inevm, core)
  • GitHub Check: env-test-matrix (mainnet3, ethereum, core)
  • GitHub Check: env-test-matrix (mainnet3, arbitrum, core)
  • GitHub Check: env-test-matrix (mainnet3, optimism, igp)
  • GitHub Check: env-test-matrix (testnet4, sepolia, core)
  • GitHub Check: env-test-matrix (mainnet3, inevm, igp)
  • GitHub Check: env-test-matrix (mainnet3, arbitrum, igp)
  • GitHub Check: env-test-matrix (mainnet3, ethereum, igp)
  • GitHub Check: coverage-run
  • GitHub Check: cosmos-sdk-e2e-run
  • GitHub Check: cli-install-test-run
  • GitHub Check: yarn-test-run
  • GitHub Check: build-and-push-to-gcr
  • GitHub Check: build-and-push-to-gcr
  • GitHub Check: e2e-matrix (starknet)
  • GitHub Check: e2e-matrix (cosmosnative)
  • GitHub Check: e2e-matrix (evm)
  • GitHub Check: e2e-matrix (sealevel)
  • GitHub Check: e2e-matrix (cosmwasm)
  • GitHub Check: agent-configs (mainnet3)
  • GitHub Check: agent-configs (testnet4)
  • GitHub Check: lint-rs
  • GitHub Check: test-rs
  • GitHub Check: lander-coverage
🔇 Additional comments (21)
.registryrc (1)

1-1: Mind the registry commit while it’s still greener than a swamp.

The new hash looks fine in isolation, but please double-check that the referenced commit in hyperlane-registry is already merged on main; otherwise the infra scripts may fetch a dangling state once this PR lands.
If PR #1069 is still in flight, consider holding or bumping the hash again after it merges.

typescript/infra/config/environments/testnet4/tokenPrices.json (1)

41-42: Looks good – price table keeps its onions in order.

solanadevnet slots neatly between sepolia and solanatestnet, value mirrors its sibling nets, and no duplicates appear. No action needed.

typescript/infra/config/environments/testnet4/aw-validators/hyperlane.json (1)

133-135: Confirm validator address ties into multisig threshold, aye?

We’re adding a single validator for solanadevnet. Make sure:

  1. The same address shows up in the multisig-ISM config with a matching threshold of 1.
  2. Any agent or relayer allow-lists include this key.

A quick grep across multisig-config.json and the TS constants should do.

typescript/infra/config/environments/testnet4/gasPrices.json (1)

158-161: Double-check gas price decimals – only one digit?

solanadevnet is set to decimals: 1 while most Solana-flavoured entries stick with 1 or 9. Confirm this matches the unit expected by downstream funding scripts; otherwise folks might end up short on lamports faster than a donkey on ice.

typescript/infra/config/environments/testnet4/owners.ts (1)

23-25: Ownership stanza keeps parity with sibling Solana nets.

solanadevnet flagged as “SVM not supported here” just like solanatestnet. Consistent and tidy – no further swamp-stirring required.

typescript/infra/config/environments/testnet4/funding.ts (1)

72-72: Well, look what we got here - another SVM chain joining the party!

The addition looks good and follows the same pattern as other Solana chains. Setting the balance to '0' is consistent with the "no funding for SVM chains" approach.

typescript/infra/config/environments/testnet4/supportedChainNames.ts (1)

42-42: Nice and tidy addition there!

Adding solanadevnet to the supported chain names list is spot on. Good job keeping it in alphabetical order between sepolia and solanatestnet - that's the kind of attention to detail that keeps things organized.

typescript/infra/scripts/sealevel-helpers/print-gas-oracles.ts (1)

140-146: Please verify the Solanatestnet warp-route directory and configs

I confirmed the new Solanadevnet routes exist under
rust/sealevel/environments/testnet4/warp-routes/SOL-solanadevnet/token-config.json
and the multisig files under testnet4 look good.

However, I didn’t find a plain SOL-solanatestnet folder—only
SOL-solanatestnet-sonicsvmtestnet/. Make sure your new connections for
starknetsepolia, sepolia, and paradexsepolia are actually defined in that directory (or update it as needed).

– Verify that token-config.json in SOL-solanatestnet-sonicsvmtestnet/ includes entries for those three chains.
– Confirm the directory name aligns with what your script expects.

rust/sealevel/environments/testnet4/warp-routes/SOL-solanadevnet/program-ids.json (1)

1-10: Program IDs look solid—JSON can be merged

Ran a quick length check on both base58 entries (44 chars each) and confirmed the hex strings are 32-byte public keys. Everything’s formatted properly and there are no red flags.

rust/sealevel/environments/testnet4/solanadevnet/core/program-ids.json (1)

1-8: Verified Solana Program ID Format

All six program IDs are 44 characters long—so they’re properly formatted Base58 Solana addresses.

Next steps:

  • Run a quick RPC check to ensure each program is actually deployed on your solanadevnet cluster. For example:
    solana account 5MhSYXV2wZPLv21h1xiaG8R9Ddq9Nw5n1sfwDxVaErDt --url https://api.devnet.solana.com
  • Repeat for the other IDs to confirm they exist and are owned by an executable account.
typescript/infra/config/environments/testnet4/agent.ts (1)

88-88: Well, well, looks like we got ourselves a new swamp resident!

The solanadevnet additions across all agent roles are consistent and follow the established pattern. Good to see it's enabled for Validator, Relayer, and Scraper - that's what ya need for a proper testnet deployment.

Also applies to: 140-140, 192-192

typescript/infra/config/environments/testnet4/validators.ts (1)

610-619: Now that's a proper validator setup for the new chain!

The solanadevnet validator configuration looks solid - follows all the right patterns with the 5-second interval, proper reorg period handling, and a single validator address for the Hyperlane context. Perfect for getting this testnet up and running.

rust/sealevel/environments/testnet4/warp-routes/SOL-solanadevnet/token-config.json (1)

1-14: Double-check the InterchainGasPaymaster addresses

Configuration looks solid—native vs synthetic is correct, 9 decimals on point, and metadata is in place. I tried an automated base58 decode but the sandbox didn’t have the base58 module, so I couldn’t verify those keys. Please confirm these are valid Solana base58 public keys:

• File: rust/sealevel/environments/testnet4/warp-routes/SOL-solanadevnet/token-config.json (lines 1–14)
– hBHAApi5ZoeCYHqDdCKkCzVKmBdwywdT3hMqe327eZB (solanatestnet)
– 254Aisi2cNsehJkfagbxrdvPEUbojJPsU5FfmrEFF41C (solanadevnet)

Once you’ve verified them, we’re good to roll!

rust/main/config/testnet_config.json (1)

30-36: No duplicate interchainSecurityModule addresses detected – manual deployment check still needed

I ran the uniqueness check against rust/main/config/testnet_config.json and found no duplicates. That said, you’ll still want to confirm each address truly points at the live testnet ISM (e.g. verify code-hash or version tag) before we push this to prod—one mistyped hex and the whole lane’s borked.

Please double-check the following ranges in testnet_config.json:

  • Lines 30–36
  • Lines 96–100
  • Lines 168–172
  • Lines 238–242
  • Lines 306–311
rust/sealevel/environments/testnet4/multisig-ism-message-id/solanadevnet/hyperlane/multisig-config.json (1)

1-355: Well-structured multisig configuration, looks good to me!

This configuration file covers a comprehensive range of testnet environments with sensible threshold settings. The consistent structure across all 72 testnet configs makes it easy to maintain, and the threshold choices (1 for single validators, 2 for multi-validator setups) strike the right balance for testnet security without over-complicating things.

typescript/sdk/src/consts/multisigIsm.ts (1)

2112-2120: Solid config for the new development network!

The solanadevnet multisig setup looks just right for a dev environment - threshold of 1 with a single Abacus Works validator keeps things simple while maintaining the multisig structure. This matches the pattern you've got for other development networks and should work well for testing and development purposes.

rust/main/hyperlane-core/src/chain.rs (3)

332-332: Nice domain ID choice there!

The SolanaDevnet domain ID (1399811151) follows the logical sequence after SolanaMainnet (1399811149) and SolanaTestnet (1399811150). Clean and consistent - just how we like our domain numbering.


515-515: Right where it belongs!

Adding SolanaDevnet to the testnet classification makes perfect sense for a development network. Keeps everything organized and properly categorized.


557-557: Proper protocol grouping!

Placing SolanaDevnet with the other Sealevel protocol domains is spot on. It keeps all the Solana-based networks together where they belong in the protocol classification.

rust/sealevel/environments/testnet4/multisig-ism-message-id/solanatestnet/hyperlane/multisig-config.json (1)

285-291: Threshold 1 leaves the gate wide-open – double-check security assumptions

Yer entry for solanadevnet sets threshold to 1, meaning a single validator can sign off on every message. That’s fine if the validator address is rock-solid and under tight control, but it’s a big risk if decentralisation or fault-tolerance is desired.
Give this a once-over with the security folk: do ye really want single-sig authority here, or should the threshold bump to 2+ like the heavier-used chains?

rust/sealevel/environments/testnet4/gas-oracle-configs.json (1)

44-50: Token decimals mismatch might bite

For solanatestnet → solanadevnet you’ve set:

tokenExchangeRate: "1500000000000000"  # 1.5 × 10¹⁵
tokenDecimals: 9

While that lines up (1 unit == 1.5 SOL lamports), most other chains use 18-decimals and a 1.5 × 10¹⁹ exchange rate. Just double-check any maths downstream isn’t assuming 18-decimals everywhere, else conversions will ogre-smash balances.

@@ -1 +1 @@
7c3439aa17ec03d064732d3d3e6bdae73dd6f98a
600214faeaedbe6b1a26090e70389d7a415ba11f
Copy link
Collaborator

Choose a reason for hiding this comment

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

},
{
address: '0x967c5ecdf2625ae86580bd203b630abaaf85cd62',
address: '0x6424142536c9e40b61076571cba83a255835b799',
Copy link
Collaborator

Choose a reason for hiding this comment

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

how come this changed?

PragmaDevnet = 6363709,
ScrollSepolia = 534351,
Sepolia = 11155111,
SolanaDevnet = 1399811151,
Copy link
Collaborator

Choose a reason for hiding this comment

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

why does this need to be added this time?

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

Labels

None yet

Projects

Status: In Review

Development

Successfully merging this pull request may close these issues.

4 participants