Skip to content

feat(sUSD): add stableswap-pool-config.yaml with EvmHypStableSwap ada…#1374

Open
nambrot wants to merge 2 commits intomainfrom
nambrot/stableswap-extension-deploy
Open

feat(sUSD): add stableswap-pool-config.yaml with EvmHypStableSwap ada…#1374
nambrot wants to merge 2 commits intomainfrom
nambrot/stableswap-extension-deploy

Conversation

@nambrot
Copy link
Copy Markdown
Contributor

@nambrot nambrot commented Feb 2, 2026

…pters

Adds the full EvmHypStableSwap configuration for all 8 tokens in the stableswap pool (USDC/USDT on arb+base, USDSC soneium, USDH hyperevm, mUSD linea, mantraUSD mantra). This config includes helperAddress, sUSDAddress, and adapterAddress fields needed by the warp UI.

Description

Backward compatibility

Testing

Summary by CodeRabbit

  • Chores
    • Added stableswap configuration and deployment support for USDC, USDH, USDSC, USDT, mUSD, mantraUSD, and sUSD across multiple networks.
    • Added comprehensive stable-swap pool mappings and cross-chain connections to enable multi-network liquidity and swaps.
    • Registered collateral adapter and synthetic token deployments and related metadata for seamless multi-chain operations.

…pters

Adds the full EvmHypStableSwap configuration for all 8 tokens in the
stableswap pool (USDC/USDT on arb+base, USDSC soneium, USDH hyperevm,
mUSD linea, mantraUSD mantra). This config includes helperAddress,
sUSDAddress, and adapterAddress fields needed by the warp UI.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai bot commented Feb 2, 2026

📝 Walkthrough

Walkthrough

This PR adds many stableswap token configuration and deployment YAMLs (USDC, USDT, USDH, USDSC, mUSD, mantraUSD, sUSD), expands warpRouteConfigs.yaml with those token mappings, and updates the JSON schema to support EvmHypStableSwap and richer connection/stable-swap fields.

Changes

Cohort / File(s) Summary
USDC Stableswap
deployments/warp_routes/USDC/stableswap-config.yaml, deployments/warp_routes/USDC/stableswap-deploy.yaml
Add USDC token entries and collateralAdapter deployments for Arbitrum and Base (addresses, mailbox, owner).
USDT Stableswap
deployments/warp_routes/USDT/stableswap-config.yaml, deployments/warp_routes/USDT/stableswap-deploy.yaml
Add USDT token entries and collateralAdapter deployments for Arbitrum and Base (chain-specific token & collateral addresses).
USDH Stableswap
deployments/warp_routes/USDH/stableswap-config.yaml, deployments/warp_routes/USDH/stableswap-deploy.yaml
Add USDH token entry and collateralAdapter deployment for Hyperevm (token, collateral, mailbox, owner).
USDSC Stableswap
deployments/warp_routes/USDSC/stableswap-config.yaml, deployments/warp_routes/USDSC/stableswap-deploy.yaml
Add USDSC token entry and collateralAdapter deployment for Soneium.
mUSD Stableswap
deployments/warp_routes/mUSD/stableswap-config.yaml, deployments/warp_routes/mUSD/stableswap-deploy.yaml
Add mUSD token entry and collateralAdapter deployment for Linea.
mantraUSD Stableswap
deployments/warp_routes/mantraUSD/stableswap-config.yaml, deployments/warp_routes/mantraUSD/stableswap-deploy.yaml
Add mantraUSD token entry and collateralAdapter deployment for Mantra.
sUSD Stableswap & Pools
deployments/warp_routes/sUSD/stableswap-config.yaml, deployments/warp_routes/sUSD/stableswap-deploy.yaml, deployments/warp_routes/sUSD/stableswap-pool-config.yaml
Add comprehensive sUSD synthetic and pool configs across Arbitrum, Base, Soneium, Mantra, Linea, Hyperevm (token metadata, connections, pool/helper/adapter addresses).
Global routes
deployments/warp_routes/warpRouteConfigs.yaml
Add many new stableswap entries and cross-chain token mappings for the added stablecoins and pools (extensive data additions).
Schema
deployments/warp_routes/schema.json
Add enum EvmHypStableSwap; broaden/reshape connections anyOf branches (add ibc and stableswap branches), introduce token-level stableSwapPool, helperAddress, sUSDAddress, adapterAddress, and update related $ref paths and required fields (validation tightening).

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~45 minutes

Possibly related PRs

Suggested reviewers

  • ltyu
  • paulbalaji

Poem

In the swamp of configs, tokens stroll and meet,
Chains linked like bridges beneath my feet,
Pools and adapters tucked in neat rows,
Addresses lined up where the cold wind blows,
A muddy chorus of stablecoins—aye, that’s a treat.

🚥 Pre-merge checks | ✅ 2 | ❌ 1
❌ Failed checks (1 inconclusive)
Check name Status Explanation Resolution
Description check ❓ Inconclusive The description provides details about the stableswap configuration changes and tokens included, but lacks completion of the template's backward compatibility and testing sections. Complete the backward compatibility and testing sections of the description template to clarify whether changes are backward compatible and if configs were tested with Hyperlane tooling.
✅ Passed checks (2 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly references the main addition of stableswap-pool-config.yaml with EvmHypStableSwap adapters, matching the core changes in the changeset.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ 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 nambrot/stableswap-extension-deploy

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
Copy Markdown
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: 7

🤖 Fix all issues with AI agents
In `@deployments/warp_routes/sUSD/stableswap-pool-config.yaml`:
- Around line 1-168: CI failed Prettier on the stableswap config: run prettier
--write against deployments/warp_routes/sUSD/stableswap-pool-config.yaml (the
document starting with the top-level tokens key and entries like chainName:
arbitrum / symbol: USDC) to fix formatting; ensure your repo has a Prettier
config (or use the project package.json prettier script) and commit the
reformatted file so the pipeline passes.

In `@deployments/warp_routes/USDC/stableswap-config.yaml`:
- Around line 1-17: The YAML token mappings have keys out of alphabetical order
causing the linter to fail; for each entry under the tokens list (the two
mappings with chainName: arbitrum and chainName: base) reorder the mapping keys
alphabetically so each token object uses the key order: addressOrDenom,
chainName, collateralAddressOrDenom, connections, decimals, name, standard,
symbol; update both token entries accordingly to satisfy the sort-keys rule.

In `@deployments/warp_routes/USDC/stableswap-deploy.yaml`:
- Around line 2-14: Reorder the keys inside each chain mapping (e.g., the
arbitrum and base blocks) so they are alphabetized: mailbox, owner, sUSD, token,
type; update both the arbitrum and base mappings to that order while preserving
the existing values and quoting.

In `@deployments/warp_routes/USDH/stableswap-config.yaml`:
- Around line 2-9: The YAML object for the USDH token has keys out of
alphabetical order; reorder the keys (addressOrDenom, chainName,
collateralAddressOrDenom, connections, decimals, name, standard, symbol) into
alphabetical order so the keys are consistently sorted for the USDH entry (look
for the USDH token block and its keys such as chainName, standard, decimals,
symbol, name, addressOrDenom, collateralAddressOrDenom, connections and
rearrange them alphabetically).

In `@deployments/warp_routes/USDH/stableswap-deploy.yaml`:
- Around line 1-6: The YAML mapping under the hyperevm deployment must have its
keys sorted alphabetically; reorder the keys (for the mapping that includes
type, token, sUSD, mailbox, owner) so they follow alphabetical order (mailbox,
owner, sUSD, token, type) to comply with the `**/*.yaml` key-sorting guideline.

In `@deployments/warp_routes/USDSC/stableswap-config.yaml`:
- Around line 1-9: The token mapping under the tokens array is not
alphabetically ordered; reorder the keys inside the token object (chainName,
standard, decimals, symbol, name, addressOrDenom, collateralAddressOrDenom,
connections) into strict alphabetical order (addressOrDenom, chainName,
collateralAddressOrDenom, connections, decimals, name, standard, symbol) so the
entry for the USDSC token matches the repository YAML key-sorting guideline;
update the existing token object (the map containing these keys) accordingly
without changing values.

In `@deployments/warp_routes/USDSC/stableswap-deploy.yaml`:
- Around line 2-7: The keys under the soneium mapping are not alphabetized;
reorder the properties within the soneium block (the mapping that contains type,
token, sUSD, mailbox, owner) into alphabetical order by key name (mailbox,
owner, sUSD, token, type) so the YAML follows the project's sorted-keys
guideline and remains consistent.
🧹 Nitpick comments (9)
deployments/warp_routes/mUSD/stableswap-config.yaml (1)

1-9: Keys need to be sorted alphabetically, if ye don't mind.

Look, I know organising things ain't the most exciting part of anyone's day - believe me, I get it. But the coding guidelines say YAML keys gotta be in alphabetical order. Right now they're a wee bit all over the place, like onions scattered across the swamp floor.

♻️ Proposed fix for alphabetical ordering
 tokens:
-  - chainName: linea
-    standard: EvmHypCollateralAdapter
-    decimals: 6
-    symbol: mUSD
-    name: MetaMask USD
-    addressOrDenom: "0xb9Fc2748D7f4d81cfc2ca78a52f52b4ADf1C4895"
-    collateralAddressOrDenom: "0xaca92e438df0b2401ff60da7e4337b687a2435da"
-    connections: []
+  - addressOrDenom: "0xb9Fc2748D7f4d81cfc2ca78a52f52b4ADf1C4895"
+    chainName: linea
+    collateralAddressOrDenom: "0xaca92e438df0b2401ff60da7e4337b687a2435da"
+    connections: []
+    decimals: 6
+    name: MetaMask USD
+    standard: EvmHypCollateralAdapter
+    symbol: mUSD

As per coding guidelines: "YAML files must have keys sorted alphabetically"

deployments/warp_routes/mUSD/stableswap-deploy.yaml (1)

1-6: Same deal here - alphabetical sorting for the keys, please.

The keys under linea need a bit of tidying up. And before ye ask - that Gitleaks warning about line 3 being an "API key"? That's just a blockchain address doin' its thing. Public as daylight, nothing to worry about there. Static analysis tools sometimes get a bit jumpy around hex strings, y'know?

♻️ Proposed fix for alphabetical ordering
 linea:
-  type: collateralAdapter
-  token: "0xaca92e438df0b2401ff60da7e4337b687a2435da"
-  sUSD: "0x38E8720EBE02e7c5254F9De9F81440C7a770a9c6"
-  mailbox: "0x02d16BC51af6BfD153d67CA61754cF912E82C4d9"
-  owner: "0xEA2117b24F7947647Bec60527B68f4244AE40c01"
+  mailbox: "0x02d16BC51af6BfD153d67CA61754cF912E82C4d9"
+  owner: "0xEA2117b24F7947647Bec60527B68f4244AE40c01"
+  sUSD: "0x38E8720EBE02e7c5254F9De9F81440C7a770a9c6"
+  token: "0xaca92e438df0b2401ff60da7e4337b687a2435da"
+  type: collateralAdapter

As per coding guidelines: "YAML files must have keys sorted alphabetically"

deployments/warp_routes/USDT/stableswap-config.yaml (1)

2-9: Keys aren't sorted alphabetically, and that's gonna bother me like a donkey that won't stop talkin'.

Per the coding guidelines for YAML files, keys need to be in alphabetical order. Right now they're all over the swamp.

🧅 Proposed fix for key ordering
 tokens:
   - chainName: arbitrum
-    standard: EvmHypCollateralAdapter
-    decimals: 6
-    symbol: USDT
-    name: Tether USD
     addressOrDenom: "0x6BEC839292A36372882Cb850E93FB5aC2A9BA4Af"
     collateralAddressOrDenom: "0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9"
     connections: []
+    decimals: 6
+    name: Tether USD
+    standard: EvmHypCollateralAdapter
+    symbol: USDT
   - chainName: base
-    standard: EvmHypCollateralAdapter
-    decimals: 6
-    symbol: USDT
-    name: Tether USD
     addressOrDenom: "0x23c51024b19303F1315DbFFA055666aE9B7A0B2c"
     collateralAddressOrDenom: "0xfde4C96c8593536E31F229EA8f37b2ADa2699bb2"
     connections: []
+    decimals: 6
+    name: Tether USD
+    standard: EvmHypCollateralAdapter
+    symbol: USDT

As per coding guidelines: "YAML files must have keys sorted alphabetically".

deployments/warp_routes/USDT/stableswap-deploy.yaml (1)

2-7: Same deal here - keys need to be sorted like onions have layers.

The keys under each chain section should be in alphabetical order. Also, just so we're clear, that static analysis warning about an "API key" at line 3 is a false positive - type: collateralAdapter is just a configuration value, not a secret. Nothing to lose sleep over in the swamp tonight.

🧅 Proposed fix for key ordering
 # Imputed deploy config for USDT CollateralAdapters on Arbitrum and Base
 arbitrum:
-  type: collateralAdapter
-  token: "0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9"
-  sUSD: "0x38E8720EBE02e7c5254F9De9F81440C7a770a9c6"
   mailbox: "0x979Ca5202784112f4738403dBec5D0F3B9daabB9"
   owner: "0xEA2117b24F7947647Bec60527B68f4244AE40c01"
+  sUSD: "0x38E8720EBE02e7c5254F9De9F81440C7a770a9c6"
+  token: "0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9"
+  type: collateralAdapter

 base:
-  type: collateralAdapter
-  token: "0xfde4C96c8593536E31F229EA8f37b2ADa2699bb2"
-  sUSD: "0x38E8720EBE02e7c5254F9De9F81440C7a770a9c6"
   mailbox: "0xeA87ae93Fa0019a82A727bfd3eBd1cFCa8f64f1D"
   owner: "0xEA2117b24F7947647Bec60527B68f4244AE40c01"
+  sUSD: "0x38E8720EBE02e7c5254F9De9F81440C7a770a9c6"
+  token: "0xfde4C96c8593536E31F229EA8f37b2ADa2699bb2"
+  type: collateralAdapter

As per coding guidelines: "YAML files must have keys sorted alphabetically".

deployments/warp_routes/mantraUSD/stableswap-deploy.yaml (1)

1-6: Keys need to be sorted alphabetically, mate.

Look, I know it seems like a small thing, but the swamp has rules. These keys need to be in alphabetical order per the coding guidelines.

🔧 Suggested fix for alphabetical ordering
 mantra:
-  type: collateralAdapter
-  token: "0xd2b95283011E47257917770D28Bb3EE44c849f6F"
-  sUSD: "0x38E8720EBE02e7c5254F9De9F81440C7a770a9c6"
   mailbox: "0x3a464f746D23Ab22155710f44dB16dcA53e0775E"
   owner: "0xEA2117b24F7947647Bec60527B68f4244AE40c01"
+  sUSD: "0x38E8720EBE02e7c5254F9De9F81440C7a770a9c6"
+  token: "0xd2b95283011E47257917770D28Bb3EE44c849f6F"
+  type: collateralAdapter

As per coding guidelines: **/*.yaml: YAML files must have keys sorted alphabetically.

deployments/warp_routes/mantraUSD/stableswap-config.yaml (1)

1-9: Sort those keys alphabetically, will ya?

The token entry keys are scattered like onions in the wind. They need to be in alphabetical order.

🔧 Suggested fix for alphabetical ordering
 tokens:
-  - chainName: mantra
-    standard: EvmHypCollateralAdapter
-    decimals: 6
-    symbol: mantraUSD
-    name: MANTRA USD
-    addressOrDenom: "0xb9Fc2748D7f4d81cfc2ca78a52f52b4ADf1C4895"
+  - addressOrDenom: "0xb9Fc2748D7f4d81cfc2ca78a52f52b4ADf1C4895"
+    chainName: mantra
     collateralAddressOrDenom: "0xd2b95283011E47257917770D28Bb3EE44c849f6F"
     connections: []
+    decimals: 6
+    name: MANTRA USD
+    standard: EvmHypCollateralAdapter
+    symbol: mantraUSD

As per coding guidelines: **/*.yaml: YAML files must have keys sorted alphabetically.

deployments/warp_routes/sUSD/stableswap-deploy.yaml (1)

1-53: This whole thing needs a good re-sorting, donkey.

The top-level chain keys aren't in alphabetical order (should be: arbitrum, base, hyperevm, linea, mantra, soneium). Also, the keys under each chain entry need sorting too.

🔧 Example fix for the first entry (apply pattern to all)
 arbitrum:
-  type: syntheticWithMinters
-  name: "StableSwap USD"
-  symbol: "sUSD"
+  authorizedMinters: []
   decimals: 6
   mailbox: "0x979Ca5202784112f4738403dBec5D0F3B9daabB9"
+  name: "StableSwap USD"
   owner: "0xEA2117b24F7947647Bec60527B68f4244AE40c01"
-  authorizedMinters: []
+  symbol: "sUSD"
+  type: syntheticWithMinters

And reorder top-level keys to: arbitrum, base, hyperevm, linea, mantra, soneium

As per coding guidelines: **/*.yaml: YAML files must have keys sorted alphabetically.

deployments/warp_routes/sUSD/stableswap-pool-config.yaml (1)

2-21: Keys need alphabetical sorting throughout this file.

Every token entry has keys all over the place. They should be sorted alphabetically: adapterAddress, addressOrDenom, chainName, collateralAddressOrDenom, connections, decimals, helperAddress, name, sUSDAddress, stableSwapPool, standard, symbol.

🔧 Example fix for the Arbitrum USDC entry (apply pattern to all)
   # Arbitrum USDC
-  - chainName: arbitrum
+  - adapterAddress: '0x94C62e7958738B65737a0Db8A5077def3AED84AA'
+    addressOrDenom: '0x94C62e7958738B65737a0Db8A5077def3AED84AA'
+    chainName: arbitrum
+    collateralAddressOrDenom: '0xaf88d065e77c8cC2239327C5EDb3A432268e5831'
+    connections:
+      - token: ethereum|arbitrum|0x6BEC839292A36372882Cb850E93FB5aC2A9BA4Af
+      - token: ethereum|base|0x73Ef899fDa87213e26501707ab585028BFB297c8
+      - token: ethereum|base|0x23c51024b19303F1315DbFFA055666aE9B7A0B2c
+      - token: ethereum|soneium|0x867D428B8FbE196EA4e997e7980623E75ED219a7
+      - token: ethereum|hyperevm|0xc7d07C8acFC66852BAad9Afb49E8A3AA7F6D3575
+      - token: ethereum|linea|0xb9Fc2748D7f4d81cfc2ca78a52f52b4ADf1C4895
+      - token: ethereum|mantra|0xb9Fc2748D7f4d81cfc2ca78a52f52b4ADf1C4895
+    decimals: 6
+    helperAddress: '0x56db6AF01e03E31695F847633F0F15eF857D4179'
+    name: USD Coin
+    sUSDAddress: '0x38E8720EBE02e7c5254F9De9F81440C7a770a9c6'
+    stableSwapPool: mainnet-stableswap-pool
     standard: EvmHypStableSwap
-    decimals: 6
     symbol: USDC
-    name: USD Coin
-    addressOrDenom: '0x94C62e7958738B65737a0Db8A5077def3AED84AA'
-    collateralAddressOrDenom: '0xaf88d065e77c8cC2239327C5EDb3A432268e5831'
-    stableSwapPool: mainnet-stableswap-pool
-    helperAddress: '0x56db6AF01e03E31695F847633F0F15eF857D4179'
-    sUSDAddress: '0x38E8720EBE02e7c5254F9De9F81440C7a770a9c6'
-    adapterAddress: '0x94C62e7958738B65737a0Db8A5077def3AED84AA'
-    connections:
-      - token: ethereum|arbitrum|0x6BEC839292A36372882Cb850E93FB5aC2A9BA4Af
-      ...

As per coding guidelines: **/*.yaml: YAML files must have keys sorted alphabetically.

deployments/warp_routes/sUSD/stableswap-config.yaml (1)

1-73: Same story here - keys need alphabetical sorting.

All the token entries need their keys sorted. Right now they're as organized as a swamp after a rainstorm.

🔧 Example fix for the arbitrum entry (apply pattern to all)
 tokens:
-  - chainName: arbitrum
-    standard: EvmHypSyntheticWithMinters
-    decimals: 6
-    symbol: sUSD
-    name: StableSwap USD
-    addressOrDenom: "0x38E8720EBE02e7c5254F9De9F81440C7a770a9c6"
+  - addressOrDenom: "0x38E8720EBE02e7c5254F9De9F81440C7a770a9c6"
+    chainName: arbitrum
     connections:
       - token: ethereum|base|0x38E8720EBE02e7c5254F9De9F81440C7a770a9c6
       - token: ethereum|soneium|0x38E8720EBE02e7c5254F9De9F81440C7a770a9c6
       - token: ethereum|mantra|0x38E8720EBE02e7c5254F9De9F81440C7a770a9c6
       - token: ethereum|linea|0x38E8720EBE02e7c5254F9De9F81440C7a770a9c6
       - token: ethereum|hyperevm|0x0a089A151228Fd8CdfB1082a12b030D4C064F497
+    decimals: 6
+    name: StableSwap USD
+    standard: EvmHypSyntheticWithMinters
+    symbol: sUSD

As per coding guidelines: **/*.yaml: YAML files must have keys sorted alphabetically.

Comment on lines +1 to +168
tokens:
# Arbitrum USDC
- chainName: arbitrum
standard: EvmHypStableSwap
decimals: 6
symbol: USDC
name: USD Coin
addressOrDenom: '0x94C62e7958738B65737a0Db8A5077def3AED84AA'
collateralAddressOrDenom: '0xaf88d065e77c8cC2239327C5EDb3A432268e5831'
stableSwapPool: mainnet-stableswap-pool
helperAddress: '0x56db6AF01e03E31695F847633F0F15eF857D4179'
sUSDAddress: '0x38E8720EBE02e7c5254F9De9F81440C7a770a9c6'
adapterAddress: '0x94C62e7958738B65737a0Db8A5077def3AED84AA'
connections:
- token: ethereum|arbitrum|0x6BEC839292A36372882Cb850E93FB5aC2A9BA4Af
- token: ethereum|base|0x73Ef899fDa87213e26501707ab585028BFB297c8
- token: ethereum|base|0x23c51024b19303F1315DbFFA055666aE9B7A0B2c
- token: ethereum|soneium|0x867D428B8FbE196EA4e997e7980623E75ED219a7
- token: ethereum|hyperevm|0xc7d07C8acFC66852BAad9Afb49E8A3AA7F6D3575
- token: ethereum|linea|0xb9Fc2748D7f4d81cfc2ca78a52f52b4ADf1C4895
- token: ethereum|mantra|0xb9Fc2748D7f4d81cfc2ca78a52f52b4ADf1C4895

# Arbitrum USDT
- chainName: arbitrum
standard: EvmHypStableSwap
decimals: 6
symbol: USDT
name: Tether USD
addressOrDenom: '0x6BEC839292A36372882Cb850E93FB5aC2A9BA4Af'
collateralAddressOrDenom: '0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9'
stableSwapPool: mainnet-stableswap-pool
helperAddress: '0x56db6AF01e03E31695F847633F0F15eF857D4179'
sUSDAddress: '0x38E8720EBE02e7c5254F9De9F81440C7a770a9c6'
adapterAddress: '0x6BEC839292A36372882Cb850E93FB5aC2A9BA4Af'
connections:
- token: ethereum|arbitrum|0x94C62e7958738B65737a0Db8A5077def3AED84AA
- token: ethereum|base|0x73Ef899fDa87213e26501707ab585028BFB297c8
- token: ethereum|base|0x23c51024b19303F1315DbFFA055666aE9B7A0B2c
- token: ethereum|soneium|0x867D428B8FbE196EA4e997e7980623E75ED219a7
- token: ethereum|hyperevm|0xc7d07C8acFC66852BAad9Afb49E8A3AA7F6D3575
- token: ethereum|linea|0xb9Fc2748D7f4d81cfc2ca78a52f52b4ADf1C4895
- token: ethereum|mantra|0xb9Fc2748D7f4d81cfc2ca78a52f52b4ADf1C4895

# Base USDC
- chainName: base
standard: EvmHypStableSwap
decimals: 6
symbol: USDC
name: USD Coin
addressOrDenom: '0x73Ef899fDa87213e26501707ab585028BFB297c8'
collateralAddressOrDenom: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913'
stableSwapPool: mainnet-stableswap-pool
helperAddress: '0x9650deA331801F944335669a8569ed39f7AEf342'
sUSDAddress: '0x38E8720EBE02e7c5254F9De9F81440C7a770a9c6'
adapterAddress: '0x73Ef899fDa87213e26501707ab585028BFB297c8'
connections:
- token: ethereum|base|0x23c51024b19303F1315DbFFA055666aE9B7A0B2c
- token: ethereum|arbitrum|0x94C62e7958738B65737a0Db8A5077def3AED84AA
- token: ethereum|arbitrum|0x6BEC839292A36372882Cb850E93FB5aC2A9BA4Af
- token: ethereum|soneium|0x867D428B8FbE196EA4e997e7980623E75ED219a7
- token: ethereum|hyperevm|0xc7d07C8acFC66852BAad9Afb49E8A3AA7F6D3575
- token: ethereum|linea|0xb9Fc2748D7f4d81cfc2ca78a52f52b4ADf1C4895
- token: ethereum|mantra|0xb9Fc2748D7f4d81cfc2ca78a52f52b4ADf1C4895

# Base USDT
- chainName: base
standard: EvmHypStableSwap
decimals: 6
symbol: USDT
name: Tether USD
addressOrDenom: '0x23c51024b19303F1315DbFFA055666aE9B7A0B2c'
collateralAddressOrDenom: '0xfde4C96c8593536E31F229EA8f37b2ADa2699bb2'
stableSwapPool: mainnet-stableswap-pool
helperAddress: '0x9650deA331801F944335669a8569ed39f7AEf342'
sUSDAddress: '0x38E8720EBE02e7c5254F9De9F81440C7a770a9c6'
adapterAddress: '0x23c51024b19303F1315DbFFA055666aE9B7A0B2c'
connections:
- token: ethereum|base|0x73Ef899fDa87213e26501707ab585028BFB297c8
- token: ethereum|arbitrum|0x94C62e7958738B65737a0Db8A5077def3AED84AA
- token: ethereum|arbitrum|0x6BEC839292A36372882Cb850E93FB5aC2A9BA4Af
- token: ethereum|soneium|0x867D428B8FbE196EA4e997e7980623E75ED219a7
- token: ethereum|hyperevm|0xc7d07C8acFC66852BAad9Afb49E8A3AA7F6D3575
- token: ethereum|linea|0xb9Fc2748D7f4d81cfc2ca78a52f52b4ADf1C4895
- token: ethereum|mantra|0xb9Fc2748D7f4d81cfc2ca78a52f52b4ADf1C4895

# Soneium Startale USD (USDSC)
- chainName: soneium
standard: EvmHypStableSwap
decimals: 6
symbol: USDSC
name: Startale USD
addressOrDenom: '0x867D428B8FbE196EA4e997e7980623E75ED219a7'
collateralAddressOrDenom: '0x3f99231dD03a9F0E7e3421c92B7b90fbe012985a'
stableSwapPool: mainnet-stableswap-pool
helperAddress: '0xcA45246445A047670B67F87c5AC75A4DbE5134F1'
sUSDAddress: '0x38E8720EBE02e7c5254F9De9F81440C7a770a9c6'
adapterAddress: '0x867D428B8FbE196EA4e997e7980623E75ED219a7'
connections:
- token: ethereum|arbitrum|0x94C62e7958738B65737a0Db8A5077def3AED84AA
- token: ethereum|arbitrum|0x6BEC839292A36372882Cb850E93FB5aC2A9BA4Af
- token: ethereum|base|0x73Ef899fDa87213e26501707ab585028BFB297c8
- token: ethereum|base|0x23c51024b19303F1315DbFFA055666aE9B7A0B2c
- token: ethereum|hyperevm|0xc7d07C8acFC66852BAad9Afb49E8A3AA7F6D3575
- token: ethereum|linea|0xb9Fc2748D7f4d81cfc2ca78a52f52b4ADf1C4895
- token: ethereum|mantra|0xb9Fc2748D7f4d81cfc2ca78a52f52b4ADf1C4895

# HyperEVM USDH
- chainName: hyperevm
standard: EvmHypStableSwap
decimals: 6
symbol: USDH
name: USD Hyperliquid
addressOrDenom: '0xc7d07C8acFC66852BAad9Afb49E8A3AA7F6D3575'
collateralAddressOrDenom: '0x111111a1a0667d36bd57c0a9f569b98057111111'
stableSwapPool: mainnet-stableswap-pool
helperAddress: '0x7e97865321a4a16B7DDc4ea5387E63ED1999b6d7'
sUSDAddress: '0x0a089A151228Fd8CdfB1082a12b030D4C064F497'
adapterAddress: '0xc7d07C8acFC66852BAad9Afb49E8A3AA7F6D3575'
connections:
- token: ethereum|arbitrum|0x94C62e7958738B65737a0Db8A5077def3AED84AA
- token: ethereum|arbitrum|0x6BEC839292A36372882Cb850E93FB5aC2A9BA4Af
- token: ethereum|base|0x73Ef899fDa87213e26501707ab585028BFB297c8
- token: ethereum|base|0x23c51024b19303F1315DbFFA055666aE9B7A0B2c
- token: ethereum|soneium|0x867D428B8FbE196EA4e997e7980623E75ED219a7
- token: ethereum|linea|0xb9Fc2748D7f4d81cfc2ca78a52f52b4ADf1C4895
- token: ethereum|mantra|0xb9Fc2748D7f4d81cfc2ca78a52f52b4ADf1C4895

# Linea mUSD
- chainName: linea
standard: EvmHypStableSwap
decimals: 6
symbol: mUSD
name: MetaMask USD
addressOrDenom: '0xb9Fc2748D7f4d81cfc2ca78a52f52b4ADf1C4895'
collateralAddressOrDenom: '0xaca92e438df0b2401ff60da7e4337b687a2435da'
stableSwapPool: mainnet-stableswap-pool
helperAddress: '0x3856c8A14cf1D1da69237B8e79aDb4E3eE44fba2'
sUSDAddress: '0x38E8720EBE02e7c5254F9De9F81440C7a770a9c6'
adapterAddress: '0xb9Fc2748D7f4d81cfc2ca78a52f52b4ADf1C4895'
connections:
- token: ethereum|arbitrum|0x94C62e7958738B65737a0Db8A5077def3AED84AA
- token: ethereum|arbitrum|0x6BEC839292A36372882Cb850E93FB5aC2A9BA4Af
- token: ethereum|base|0x73Ef899fDa87213e26501707ab585028BFB297c8
- token: ethereum|base|0x23c51024b19303F1315DbFFA055666aE9B7A0B2c
- token: ethereum|soneium|0x867D428B8FbE196EA4e997e7980623E75ED219a7
- token: ethereum|hyperevm|0xc7d07C8acFC66852BAad9Afb49E8A3AA7F6D3575
- token: ethereum|mantra|0xb9Fc2748D7f4d81cfc2ca78a52f52b4ADf1C4895

# MANTRA mantraUSD
- chainName: mantra
standard: EvmHypStableSwap
decimals: 6
symbol: mantraUSD
name: MANTRA USD
addressOrDenom: '0xb9Fc2748D7f4d81cfc2ca78a52f52b4ADf1C4895'
collateralAddressOrDenom: '0xd2b95283011E47257917770D28Bb3EE44c849f6F'
stableSwapPool: mainnet-stableswap-pool
helperAddress: '0xF0d9D232141dF68DD3CE272dd216C8D71645F25A'
sUSDAddress: '0x38E8720EBE02e7c5254F9De9F81440C7a770a9c6'
adapterAddress: '0xb9Fc2748D7f4d81cfc2ca78a52f52b4ADf1C4895'
connections:
- token: ethereum|arbitrum|0x94C62e7958738B65737a0Db8A5077def3AED84AA
- token: ethereum|arbitrum|0x6BEC839292A36372882Cb850E93FB5aC2A9BA4Af
- token: ethereum|base|0x73Ef899fDa87213e26501707ab585028BFB297c8
- token: ethereum|base|0x23c51024b19303F1315DbFFA055666aE9B7A0B2c
- token: ethereum|soneium|0x867D428B8FbE196EA4e997e7980623E75ED219a7
- token: ethereum|hyperevm|0xc7d07C8acFC66852BAad9Afb49E8A3AA7F6D3575
- token: ethereum|linea|0xb9Fc2748D7f4d81cfc2ca78a52f52b4ADf1C4895
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

CI's giving you grief about Prettier formatting.

The pipeline's complaining that this file needs a prettier --write to fix the formatting. Better do that before this goes anywhere.

#!/bin/bash
# Check if prettier config exists and what formatting issues are present
fd -t f "prettier" -d 2
cat package.json 2>/dev/null | jq '.scripts | keys[] | select(contains("prettier") or contains("format"))'
🧰 Tools
🪛 GitHub Actions: ci

[error] 1-1: Prettier formatting check failed. Run 'prettier --write' to fix code style issues in this file.

🤖 Prompt for AI Agents
In `@deployments/warp_routes/sUSD/stableswap-pool-config.yaml` around lines 1 -
168, CI failed Prettier on the stableswap config: run prettier --write against
deployments/warp_routes/sUSD/stableswap-pool-config.yaml (the document starting
with the top-level tokens key and entries like chainName: arbitrum / symbol:
USDC) to fix formatting; ensure your repo has a Prettier config (or use the
project package.json prettier script) and commit the reformatted file so the
pipeline passes.

Comment on lines +1 to +17
tokens:
- chainName: arbitrum
standard: EvmHypCollateralAdapter
decimals: 6
symbol: USDC
name: USD Coin
addressOrDenom: "0x94C62e7958738B65737a0Db8A5077def3AED84AA"
collateralAddressOrDenom: "0xaf88d065e77c8cC2239327C5EDb3A432268e5831"
connections: []
- chainName: base
standard: EvmHypCollateralAdapter
decimals: 6
symbol: USDC
name: USD Coin
addressOrDenom: "0x73Ef899fDa87213e26501707ab585028BFB297c8"
collateralAddressOrDenom: "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"
connections: []
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major

Sort token mapping keys alphabetically to fix lint.

Right now the key order trips the YAML sort-keys check. Reordering the keys inside each token entry will clear the lint failure.

✅ Suggested reorder
 tokens:
-  - chainName: arbitrum
-    standard: EvmHypCollateralAdapter
-    decimals: 6
-    symbol: USDC
-    name: USD Coin
-    addressOrDenom: "0x94C62e7958738B65737a0Db8A5077def3AED84AA"
-    collateralAddressOrDenom: "0xaf88d065e77c8cC2239327C5EDb3A432268e5831"
-    connections: []
+  - addressOrDenom: "0x94C62e7958738B65737a0Db8A5077def3AED84AA"
+    chainName: arbitrum
+    collateralAddressOrDenom: "0xaf88d065e77c8cC2239327C5EDb3A432268e5831"
+    connections: []
+    decimals: 6
+    name: USD Coin
+    standard: EvmHypCollateralAdapter
+    symbol: USDC
   - chainName: base
-    standard: EvmHypCollateralAdapter
-    decimals: 6
-    symbol: USDC
-    name: USD Coin
-    addressOrDenom: "0x73Ef899fDa87213e26501707ab585028BFB297c8"
-    collateralAddressOrDenom: "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"
-    connections: []
+  - addressOrDenom: "0x73Ef899fDa87213e26501707ab585028BFB297c8"
+    chainName: base
+    collateralAddressOrDenom: "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"
+    connections: []
+    decimals: 6
+    name: USD Coin
+    standard: EvmHypCollateralAdapter
+    symbol: USDC

As per coding guidelines: **/*.yaml: YAML files must have keys sorted alphabetically.

📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
tokens:
- chainName: arbitrum
standard: EvmHypCollateralAdapter
decimals: 6
symbol: USDC
name: USD Coin
addressOrDenom: "0x94C62e7958738B65737a0Db8A5077def3AED84AA"
collateralAddressOrDenom: "0xaf88d065e77c8cC2239327C5EDb3A432268e5831"
connections: []
- chainName: base
standard: EvmHypCollateralAdapter
decimals: 6
symbol: USDC
name: USD Coin
addressOrDenom: "0x73Ef899fDa87213e26501707ab585028BFB297c8"
collateralAddressOrDenom: "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"
connections: []
tokens:
- addressOrDenom: "0x94C62e7958738B65737a0Db8A5077def3AED84AA"
chainName: arbitrum
collateralAddressOrDenom: "0xaf88d065e77c8cC2239327C5EDb3A432268e5831"
connections: []
decimals: 6
name: USD Coin
standard: EvmHypCollateralAdapter
symbol: USDC
- addressOrDenom: "0x73Ef899fDa87213e26501707ab585028BFB297c8"
chainName: base
collateralAddressOrDenom: "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"
connections: []
decimals: 6
name: USD Coin
standard: EvmHypCollateralAdapter
symbol: USDC
🧰 Tools
🪛 GitHub Actions: ci

[error] 4-4: ESLint: YAML sort-keys. Expected mapping keys to be in ascending order. 'decimals' should be before 'standard'.

🪛 GitHub Check: lint

[failure] 15-15:
Expected mapping keys to be in ascending order. 'addressOrDenom' should be before 'name'


[failure] 14-14:
Expected mapping keys to be in ascending order. 'name' should be before 'symbol'


[failure] 12-12:
Expected mapping keys to be in ascending order. 'decimals' should be before 'standard'


[failure] 7-7:
Expected mapping keys to be in ascending order. 'addressOrDenom' should be before 'name'


[failure] 6-6:
Expected mapping keys to be in ascending order. 'name' should be before 'symbol'


[failure] 4-4:
Expected mapping keys to be in ascending order. 'decimals' should be before 'standard'

🤖 Prompt for AI Agents
In `@deployments/warp_routes/USDC/stableswap-config.yaml` around lines 1 - 17, The
YAML token mappings have keys out of alphabetical order causing the linter to
fail; for each entry under the tokens list (the two mappings with chainName:
arbitrum and chainName: base) reorder the mapping keys alphabetically so each
token object uses the key order: addressOrDenom, chainName,
collateralAddressOrDenom, connections, decimals, name, standard, symbol; update
both token entries accordingly to satisfy the sort-keys rule.

Comment on lines +2 to +14
arbitrum:
type: collateralAdapter
token: "0xaf88d065e77c8cC2239327C5EDb3A432268e5831"
sUSD: "0x38E8720EBE02e7c5254F9De9F81440C7a770a9c6"
mailbox: "0x979Ca5202784112f4738403dBec5D0F3B9daabB9"
owner: "0xEA2117b24F7947647Bec60527B68f4244AE40c01"

base:
type: collateralAdapter
token: "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"
sUSD: "0x38E8720EBE02e7c5254F9De9F81440C7a770a9c6"
mailbox: "0xeA87ae93Fa0019a82A727bfd3eBd1cFCa8f64f1D"
owner: "0xEA2117b24F7947647Bec60527B68f4244AE40c01"
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major

Alphabetize keys inside each chain mapping.

Let’s keep it tidy so the YAML lint stops grumbling.

✅ Suggested reorder
 arbitrum:
-  type: collateralAdapter
-  token: "0xaf88d065e77c8cC2239327C5EDb3A432268e5831"
-  sUSD: "0x38E8720EBE02e7c5254F9De9F81440C7a770a9c6"
-  mailbox: "0x979Ca5202784112f4738403dBec5D0F3B9daabB9"
-  owner: "0xEA2117b24F7947647Bec60527B68f4244AE40c01"
+  mailbox: "0x979Ca5202784112f4738403dBec5D0F3B9daabB9"
+  owner: "0xEA2117b24F7947647Bec60527B68f4244AE40c01"
+  sUSD: "0x38E8720EBE02e7c5254F9De9F81440C7a770a9c6"
+  token: "0xaf88d065e77c8cC2239327C5EDb3A432268e5831"
+  type: collateralAdapter

 base:
-  type: collateralAdapter
-  token: "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"
-  sUSD: "0x38E8720EBE02e7c5254F9De9F81440C7a770a9c6"
-  mailbox: "0xeA87ae93Fa0019a82A727bfd3eBd1cFCa8f64f1D"
-  owner: "0xEA2117b24F7947647Bec60527B68f4244AE40c01"
+  mailbox: "0xeA87ae93Fa0019a82A727bfd3eBd1cFCa8f64f1D"
+  owner: "0xEA2117b24F7947647Bec60527B68f4244AE40c01"
+  sUSD: "0x38E8720EBE02e7c5254F9De9F81440C7a770a9c6"
+  token: "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"
+  type: collateralAdapter

As per coding guidelines: **/*.yaml: YAML files must have keys sorted alphabetically.

🧰 Tools
🪛 GitHub Check: lint

[failure] 11-11:
Expected mapping keys to be in ascending order. 'token' should be before 'type'


[failure] 6-6:
Expected mapping keys to be in ascending order. 'mailbox' should be before 'sUSD'


[failure] 5-5:
Expected mapping keys to be in ascending order. 'sUSD' should be before 'token'


[failure] 4-4:
Expected mapping keys to be in ascending order. 'token' should be before 'type'

🪛 Gitleaks (8.30.0)

[high] 4-4: Detected a Generic API Key, potentially exposing access to various services and sensitive operations.

(generic-api-key)


[high] 11-11: Detected a Generic API Key, potentially exposing access to various services and sensitive operations.

(generic-api-key)

🤖 Prompt for AI Agents
In `@deployments/warp_routes/USDC/stableswap-deploy.yaml` around lines 2 - 14,
Reorder the keys inside each chain mapping (e.g., the arbitrum and base blocks)
so they are alphabetized: mailbox, owner, sUSD, token, type; update both the
arbitrum and base mappings to that order while preserving the existing values
and quoting.

Comment on lines +2 to +9
- chainName: hyperevm
standard: EvmHypCollateralAdapter
decimals: 6
symbol: USDH
name: USD Hyperliquid
addressOrDenom: "0xc7d07C8acFC66852BAad9Afb49E8A3AA7F6D3575"
collateralAddressOrDenom: "0x111111a1a0667d36bd57c0a9f569b98057111111"
connections: []
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

Sort token keys alphabetically.

Key order isn’t alphabetical; please reorder for consistency.
As per coding guidelines: **/*.yaml: YAML files must have keys sorted alphabetically.

💡 Suggested reorder
   - chainName: hyperevm
-    standard: EvmHypCollateralAdapter
-    decimals: 6
-    symbol: USDH
-    name: USD Hyperliquid
     addressOrDenom: "0xc7d07C8acFC66852BAad9Afb49E8A3AA7F6D3575"
+    chainName: hyperevm
     collateralAddressOrDenom: "0x111111a1a0667d36bd57c0a9f569b98057111111"
     connections: []
+    decimals: 6
+    name: USD Hyperliquid
+    standard: EvmHypCollateralAdapter
+    symbol: USDH
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
- chainName: hyperevm
standard: EvmHypCollateralAdapter
decimals: 6
symbol: USDH
name: USD Hyperliquid
addressOrDenom: "0xc7d07C8acFC66852BAad9Afb49E8A3AA7F6D3575"
collateralAddressOrDenom: "0x111111a1a0667d36bd57c0a9f569b98057111111"
connections: []
- addressOrDenom: "0xc7d07C8acFC66852BAad9Afb49E8A3AA7F6D3575"
chainName: hyperevm
collateralAddressOrDenom: "0x111111a1a0667d36bd57c0a9f569b98057111111"
connections: []
decimals: 6
name: USD Hyperliquid
standard: EvmHypCollateralAdapter
symbol: USDH
🤖 Prompt for AI Agents
In `@deployments/warp_routes/USDH/stableswap-config.yaml` around lines 2 - 9, The
YAML object for the USDH token has keys out of alphabetical order; reorder the
keys (addressOrDenom, chainName, collateralAddressOrDenom, connections,
decimals, name, standard, symbol) into alphabetical order so the keys are
consistently sorted for the USDH entry (look for the USDH token block and its
keys such as chainName, standard, decimals, symbol, name, addressOrDenom,
collateralAddressOrDenom, connections and rearrange them alphabetically).

Comment on lines +1 to +6
hyperevm:
type: collateralAdapter
token: "0x111111a1a0667d36bd57c0a9f569b98057111111"
sUSD: "0x0a089A151228Fd8CdfB1082a12b030D4C064F497"
mailbox: "0x3a464f746D23Ab22155710f44dB16dcA53e0775E"
owner: "0xEA2117b24F7947647Bec60527B68f4244AE40c01"
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

Sort deployment keys alphabetically.

Key order isn’t alphabetical; please reorder for consistency.
As per coding guidelines: **/*.yaml: YAML files must have keys sorted alphabetically.

💡 Suggested reorder
 hyperevm:
-  type: collateralAdapter
-  token: "0x111111a1a0667d36bd57c0a9f569b98057111111"
-  sUSD: "0x0a089A151228Fd8CdfB1082a12b030D4C064F497"
   mailbox: "0x3a464f746D23Ab22155710f44dB16dcA53e0775E"
   owner: "0xEA2117b24F7947647Bec60527B68f4244AE40c01"
+  sUSD: "0x0a089A151228Fd8CdfB1082a12b030D4C064F497"
+  token: "0x111111a1a0667d36bd57c0a9f569b98057111111"
+  type: collateralAdapter
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
hyperevm:
type: collateralAdapter
token: "0x111111a1a0667d36bd57c0a9f569b98057111111"
sUSD: "0x0a089A151228Fd8CdfB1082a12b030D4C064F497"
mailbox: "0x3a464f746D23Ab22155710f44dB16dcA53e0775E"
owner: "0xEA2117b24F7947647Bec60527B68f4244AE40c01"
hyperevm:
mailbox: "0x3a464f746D23Ab22155710f44dB16dcA53e0775E"
owner: "0xEA2117b24F7947647Bec60527B68f4244AE40c01"
sUSD: "0x0a089A151228Fd8CdfB1082a12b030D4C064F497"
token: "0x111111a1a0667d36bd57c0a9f569b98057111111"
type: collateralAdapter
🤖 Prompt for AI Agents
In `@deployments/warp_routes/USDH/stableswap-deploy.yaml` around lines 1 - 6, The
YAML mapping under the hyperevm deployment must have its keys sorted
alphabetically; reorder the keys (for the mapping that includes type, token,
sUSD, mailbox, owner) so they follow alphabetical order (mailbox, owner, sUSD,
token, type) to comply with the `**/*.yaml` key-sorting guideline.

Comment on lines +1 to +9
tokens:
- chainName: soneium
standard: EvmHypCollateralAdapter
decimals: 6
symbol: USDSC
name: Startale USD
addressOrDenom: "0x867D428B8FbE196EA4e997e7980623E75ED219a7"
collateralAddressOrDenom: "0x3f99231dD03a9F0E7e3421c92B7b90fbe012985a"
connections: []
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

Sort YAML keys alphabetically in the token entry.

Right now the keys inside the token map aren’t in alpha order. Please reorder them to match the YAML guideline so it stays consistent with the rest of the registry.
As per coding guidelines, YAML files must have keys sorted alphabetically.

Proposed fix
 tokens:
-  - chainName: soneium
-    standard: EvmHypCollateralAdapter
-    decimals: 6
-    symbol: USDSC
-    name: Startale USD
-    addressOrDenom: "0x867D428B8FbE196EA4e997e7980623E75ED219a7"
-    collateralAddressOrDenom: "0x3f99231dD03a9F0E7e3421c92B7b90fbe012985a"
-    connections: []
+  - addressOrDenom: "0x867D428B8FbE196EA4e997e7980623E75ED219a7"
+    chainName: soneium
+    collateralAddressOrDenom: "0x3f99231dD03a9F0E7e3421c92B7b90fbe012985a"
+    connections: []
+    decimals: 6
+    name: Startale USD
+    standard: EvmHypCollateralAdapter
+    symbol: USDSC
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
tokens:
- chainName: soneium
standard: EvmHypCollateralAdapter
decimals: 6
symbol: USDSC
name: Startale USD
addressOrDenom: "0x867D428B8FbE196EA4e997e7980623E75ED219a7"
collateralAddressOrDenom: "0x3f99231dD03a9F0E7e3421c92B7b90fbe012985a"
connections: []
tokens:
- addressOrDenom: "0x867D428B8FbE196EA4e997e7980623E75ED219a7"
chainName: soneium
collateralAddressOrDenom: "0x3f99231dD03a9F0E7e3421c92B7b90fbe012985a"
connections: []
decimals: 6
name: Startale USD
standard: EvmHypCollateralAdapter
symbol: USDSC
🤖 Prompt for AI Agents
In `@deployments/warp_routes/USDSC/stableswap-config.yaml` around lines 1 - 9, The
token mapping under the tokens array is not alphabetically ordered; reorder the
keys inside the token object (chainName, standard, decimals, symbol, name,
addressOrDenom, collateralAddressOrDenom, connections) into strict alphabetical
order (addressOrDenom, chainName, collateralAddressOrDenom, connections,
decimals, name, standard, symbol) so the entry for the USDSC token matches the
repository YAML key-sorting guideline; update the existing token object (the map
containing these keys) accordingly without changing values.

Comment on lines +2 to +7
soneium:
type: collateralAdapter
token: "0x3f99231dD03a9F0E7e3421c92B7b90fbe012985a"
sUSD: "0x38E8720EBE02e7c5254F9De9F81440C7a770a9c6"
mailbox: "0x3a464f746D23Ab22155710f44dB16dcA53e0775E"
owner: "0xEA2117b24F7947647Bec60527B68f4244AE40c01"
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

Alphabetize the keys under soneium.

The nested fields aren’t in alpha order. Let’s sort them so the YAML stays tidy and consistent.
As per coding guidelines, YAML files must have keys sorted alphabetically.

Proposed fix
 soneium:
-  type: collateralAdapter
-  token: "0x3f99231dD03a9F0E7e3421c92B7b90fbe012985a"
-  sUSD: "0x38E8720EBE02e7c5254F9De9F81440C7a770a9c6"
   mailbox: "0x3a464f746D23Ab22155710f44dB16dcA53e0775E"
   owner: "0xEA2117b24F7947647Bec60527B68f4244AE40c01"
+  sUSD: "0x38E8720EBE02e7c5254F9De9F81440C7a770a9c6"
+  token: "0x3f99231dD03a9F0E7e3421c92B7b90fbe012985a"
+  type: collateralAdapter
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
soneium:
type: collateralAdapter
token: "0x3f99231dD03a9F0E7e3421c92B7b90fbe012985a"
sUSD: "0x38E8720EBE02e7c5254F9De9F81440C7a770a9c6"
mailbox: "0x3a464f746D23Ab22155710f44dB16dcA53e0775E"
owner: "0xEA2117b24F7947647Bec60527B68f4244AE40c01"
soneium:
mailbox: "0x3a464f746D23Ab22155710f44dB16dcA53e0775E"
owner: "0xEA2117b24F7947647Bec60527B68f4244AE40c01"
sUSD: "0x38E8720EBE02e7c5254F9De9F81440C7a770a9c6"
token: "0x3f99231dD03a9F0E7e3421c92B7b90fbe012985a"
type: collateralAdapter
🤖 Prompt for AI Agents
In `@deployments/warp_routes/USDSC/stableswap-deploy.yaml` around lines 2 - 7, The
keys under the soneium mapping are not alphabetized; reorder the properties
within the soneium block (the mapping that contains type, token, sUSD, mailbox,
owner) into alphabetical order by key name (mailbox, owner, sUSD, token, type)
so the YAML follows the project's sorted-keys guideline and remains consistent.

@hyper-gonk
Copy link
Copy Markdown
Contributor

hyper-gonk bot commented Feb 2, 2026

Check Warp Deploy Summary

Warp Route ID On-Chain Config Sync
USDC/stableswap
USDH/stableswap
USDSC/stableswap
USDT/stableswap
mUSD/stableswap
mantraUSD/stableswap
sUSD/stableswap
sUSD/stableswap-pool N/A

Last updated: 2026-02-02 17:50:08 UTC

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Copy link
Copy Markdown
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

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
deployments/warp_routes/schema.json (1)

119-216: ⚠️ Potential issue | 🟠 Major

All four token ID regex patterns need escaping—they're too loose.

The pipe characters aren't being treated as literals, they're acting as alternation operators. What you've got now is basically ^(.+) OR (.+) OR (.+)$, which matches nearly everything: single words, two segments, random strings, you name it. Not what we're after.

The pattern shows up at lines 129, 146, 174, and 215—tighten them all to ^[^|]+\|[^|]+\|[^|]+$ to enforce the <protocol>|<chain>|<address> format properly. That way, only valid three-segment token IDs get through.

Fix for all four occurrences
-                                  "pattern": "^(.+)|(.+)|(.+)$"
+                                  "pattern": "^[^|]+\\|[^|]+\\|[^|]+$"
🤖 Fix all issues with AI agents
In `@deployments/warp_routes/schema.json`:
- Around line 245-261: The schema currently leaves stableSwapPool,
helperAddress, sUSDAddress, and adapterAddress as optional, allowing
EvmHypStableSwap tokens to validate without required addresses; add a
conditional schema rule using an allOf with an if/then that checks when
"standard" equals "EvmHypStableSwap" and in the then clause sets "required":
["stableSwapPool","helperAddress","sUSDAddress","adapterAddress"] so those
properties become mandatory only for that token standard; target the JSON Schema
where those properties are defined and reference the "standard" discriminator
used in your token objects.

Comment on lines +245 to 261
},
"stableSwapPool": {
"type": "string",
"description": "Identifier for the stableswap pool (e.g., \"susd-m0\")"
},
"helperAddress": {
"type": "string",
"description": "Address of the StableSwapHelper contract"
},
"sUSDAddress": {
"type": "string",
"description": "Address of the sUSD token (HypERC20WithMinters)"
},
"adapterAddress": {
"type": "string",
"description": "Address of the CollateralAdapter for this token"
}
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major

🧩 Analysis chain

🏁 Script executed:

# First, let's look at the schema.json file around the specified lines
wc -l deployments/warp_routes/schema.json

Repository: hyperlane-xyz/hyperlane-registry

Length of output: 115


🏁 Script executed:

# Read the schema file around lines 245-261 with broader context
sed -n '220,280p' deployments/warp_routes/schema.json

Repository: hyperlane-xyz/hyperlane-registry

Length of output: 2150


🏁 Script executed:

# Let's also search for EvmHypStableSwap references to understand the token standard definition
rg "EvmHypStableSwap" --max-count 20

Repository: hyperlane-xyz/hyperlane-registry

Length of output: 1485


🏁 Script executed:

# Get broader context around the token definition
sed -n '180,300p' deployments/warp_routes/schema.json | cat -n

Repository: hyperlane-xyz/hyperlane-registry

Length of output: 5464


🏁 Script executed:

# Search for if/then or allOf patterns in the schema
rg "if|then|allOf" deployments/warp_routes/schema.json -A 2 -B 2

Repository: hyperlane-xyz/hyperlane-registry

Length of output: 281


🏁 Script executed:

# Check actual configs to see if EvmHypStableSwap tokens include these fields
grep -A 20 "standard: EvmHypStableSwap" deployments/warp_routes/sUSD/stableswap-pool-config.yaml | head -50

Repository: hyperlane-xyz/hyperlane-registry

Length of output: 2472


🏁 Script executed:

# Search for any validation or UI code that references these fields
rg "stableSwapPool|helperAddress|sUSDAddress|adapterAddress" --type js --type ts --type tsx --max-count 30

Repository: hyperlane-xyz/hyperlane-registry

Length of output: 103


🏁 Script executed:

# Also check for any type definitions or interfaces related to EvmHypStableSwap
rg "EvmHypStableSwap" -A 5 -B 5 | head -100

Repository: hyperlane-xyz/hyperlane-registry

Length of output: 8403


🏁 Script executed:

# Get the full context around where the adapterAddress ends and required array
sed -n '230,295p' deployments/warp_routes/schema.json | cat -n

Repository: hyperlane-xyz/hyperlane-registry

Length of output: 2983


EvmHypStableSwap tokens can pass schema validation without required addresses.

The fields stableSwapPool, helperAddress, sUSDAddress, and adapterAddress are optional in the schema, but every EvmHypStableSwap token in the actual configs includes all four. This lets invalid configs slip through schema validation. Adding an allOf with an if/then guard keyed on standard: EvmHypStableSwap would enforce these as required only for that token standard.

🛠️ Suggested conditional requirement
             "adapterAddress": {
               "type": "string",
               "description": "Address of the CollateralAdapter for this token"
             }
           },
+          "allOf": [
+            {
+              "if": {
+                "properties": {
+                  "standard": { "const": "EvmHypStableSwap" }
+                }
+              },
+              "then": {
+                "required": [
+                  "stableSwapPool",
+                  "helperAddress",
+                  "sUSDAddress",
+                  "adapterAddress"
+                ]
+              }
+            }
+          ],
           "required": [
🤖 Prompt for AI Agents
In `@deployments/warp_routes/schema.json` around lines 245 - 261, The schema
currently leaves stableSwapPool, helperAddress, sUSDAddress, and adapterAddress
as optional, allowing EvmHypStableSwap tokens to validate without required
addresses; add a conditional schema rule using an allOf with an if/then that
checks when "standard" equals "EvmHypStableSwap" and in the then clause sets
"required": ["stableSwapPool","helperAddress","sUSDAddress","adapterAddress"] so
those properties become mandatory only for that token standard; target the JSON
Schema where those properties are defined and reference the "standard"
discriminator used in your token objects.

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.

1 participant