chore: merge main into injective#857
Draft
hyper-gonk[bot] wants to merge 100 commits intoinjectivefrom
Draft
Conversation
This PR bump registry to v16. The goal is to enable REZ (uniswap) but also update import to use BaseRegistry
This PR bumps registry to 16.1
uppercase `warpRouteIds` and `whiteList` ids to fix discrepancy --------- Co-authored-by: Le Yu <6251863+ltyu@users.noreply.github.com>
- Bump hyperlane packages to v13.2.1 - Bump registry to v17.0.0 - Bump ethers to ^5.8.0 Tested transfers with Metamask signing: https://explorer.hyperlane.xyz/message/0x36a5e56722f8d9d9b31a2a9e1e35a61bcc9c2fbcc74d5fa0a46743fc423cec60 https://explorer.hyperlane.xyz/message/0x77b53a16cd59d0a120234d0c61711872df3af5ff7ca404505e25c082008ff54e
This PR features an initial setup for Multi-Collateral tokens for transfers fixes [ENG-1683](https://linear.app/hyperlane-xyz/issue/ENG-1683/warp-ui-should-handle-multiple-available-routes-for-a) - Filter out tokens with the same collateral address in origin and destination and only show one of them - A map containing the collateral address of origin and destination with an array of the same tokens is added, but not used yet - When submitting, it will check for the same logic and then return the highest balance token represented by the state `routeOverrideToken` - Transfers will be done with this state otherwise uses the one in the form - Tests for `isValidMultiCollateralToken` You can test this by using `Arbitrum` <> `Optimism` with `USDC` and easy way to test this is by navigating to the development server and using the temporal warp route, ex: http://localhost:3000/?origin=arbitrum&destination=optimism&token=0x296B0c551c65CB83452f10EA3922824E7b9b3F4C
<!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **Chores** - Updated the "@hyperlane-xyz/registry" dependency to version 17.4.0. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
This PR Bumps registry to 17.6.0
Bump registry to 17.7.0
- This PR change the warp ui from using `PartialRegistry` to `GithubRegistry` - Now will fetch warp routes and chain metadata if `config.registryUrl` is defined - Fix token image size scaling This means that if an update is done to main, then it will also reflect for the warp UI closes [ENG-1740](https://linear.app/hyperlane-xyz/issue/ENG-1740/use-githubregistry-in-warp-ui) related [registry PR](hyperlane-xyz/hyperlane-registry#903) <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **Style** - Improved layout and responsiveness of token icons by updating image sizing to use CSS classes instead of fixed attributes. - **Chores** - Enhanced debug log messages for chain metadata loading for greater clarity. - Updated registry implementation to use a GitHub-backed registry with configurable parameters, affecting how data is sourced and initialized. - Improved error handling and fallback logic when loading warp route configurations, with clearer debug messages. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
…637) Now instead of only relying on published warp routes, it will first attempt to fetch warp routes from the registry for the warp route white list test
This PR adds limit to certain multi-collateral routes fixes [ENG-1699](https://linear.app/hyperlane-xyz/issue/ENG-1699/limit-transfer-size-of-a-route-on-the-ui) - Sets limit to multi-collateral tokens that matches symbol, origin and destination with the array `multiCollateralTokenLimits` - Create tests for this - Form validation now includes a message if this limit is exceeded - Pressing Max button will instead now set the given limits if it exists and exceeds the account current balance - Move mocks creation functions to its own file You can currently test this by sending USDC from Arbitrum <> Optimism, the max transfer amount is 1 USDC as a test, will remove before merging <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Introduced multi-collateral transfer limits for certain tokens (e.g., USDC) on supported chains, preventing transfers that exceed these limits. - **Bug Fixes** - Improved validation to block transfers exceeding multi-collateral limits directly in the transfer form. - **Refactor** - Updated internal logic to consistently enforce multi-collateral limits when calculating maximum transferable amounts. - Enhanced token validation to support multiple token standards for collateralized tokens. - **Tests** - Added comprehensive tests for multi-collateral limit utilities. - Centralized and reused token mock utilities in test files for consistency. - **Chores** - Added new test utilities for creating mock tokens and token connections. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
Registry to v18 and other hyperlane packages to v14
Remove disabled chains from being selectable when `shouldDisableChains` flag is on - Now disabled chain will not show as default even when set in url params - Disabled chains will not show up for unsupported route tokens
This enables users to connect Starknet wallets and parse Hyperlane message IDs Important: Merging available after adding at lease one starknet chain to registry! <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Added support for Starknet wallets and protocols, enabling users to interact with Starknet alongside existing wallet options. - Introduced dynamic support for multiple Starknet chains and wallet connectors (Braavos and Argent X). - Enabled batch sending of multiple transactions for Starknet transfers, improving transfer efficiency. - **Enhancements** - Upgraded key dependencies to their latest versions for improved stability and compatibility. - Added a new wallet protocol to the configuration to expand supported networks. <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Co-authored-by: -f <kunalarora1729@gmail.com> Co-authored-by: Xaroz <jasonguo2013jg@gmail.com> Co-authored-by: Troy Kessler <43882936+troykessler@users.noreply.github.com> Co-authored-by: Jason Guo <33064781+Xaroz@users.noreply.github.com>
- Add keplr, metamask snap and OKX wallet connectors to starknet - Include `https://snaps.consensys.io` to script src - Add `WalletConnectionWarning`
Now shows Ready Wallet (formerly Argent) properly with the patch update for starknekit <img width="445" height="492" alt="image" src="https://github.com/user-attachments/assets/def840ec-4062-48f9-ac48-25d1a2b327fe" /> <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Chores** * Updated dependency versions for Hyperlane packages. * Integrated a patched version of "starknetkit" for improved stability. * **New Features** * Added a new icon for the Ready Wallet (formerly Argent) to enhance wallet identification. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
Now at review step user will be shown a received amount if the tokens have scaling fixes [ENG-1946](https://linear.app/hyperlane-xyz/issue/ENG-1946/include-scaled-token-amount-to-warp-ui) <img width="585" height="648" alt="Screenshot 2025-07-16 at 1 17 56 PM" src="https://github.com/user-attachments/assets/c4e1ae3c-a625-4ea5-8950-b25990c6b71b" /> <img width="583" height="760" alt="Screenshot 2025-07-16 at 1 17 39 PM" src="https://github.com/user-attachments/assets/f730bf87-00e9-4818-85c1-fea2aa0eeb8d" /> <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **New Features** * Added a display of the received token amount adjusted for differing token scales during transfer review, providing clearer information when origin and destination token scales differ. * **Style** * Improved alignment of transaction detail labels for better readability. * **Chores** * Updated several dependencies to their latest versions. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
Bump registry to 19.4.0
- Update sdk, utils and widgets to 16.0.0 - Update registry to 20.0.0 WIth the new update limits checks are included for `EvmHypCollateralFiat` tokens
- Wrap `listRegistryContent` in a try catch for `GithubRegistry` - When `listRegistryContent` fails, it will use `PartialRegistry` instead - Now if warp routes are empty it will use published routes
fixes [ENG-1965](https://linear.app/hyperlane-xyz/issue/ENG-1965/add-token-to-wallet-button) Implement feature to request to add a token/asset to an user wallet. Currently only works for EVM - New button under chains to add token - Wallet must be connected or be a supported protocol (currently only EVM) for the button to show <img width="552" height="351" alt="image" src="https://github.com/user-attachments/assets/01941829-52c7-4adf-a79d-b277be8ba4a4" /> <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit ## Summary by CodeRabbit * **New Features** * Added support for users to add tokens directly from the chain selection interface when supported by the protocol and account readiness. * Introduced a new "Add token" button in the chain selection UI for eligible tokens. * Users can now add assets to their wallet for supported protocols (Ethereum) via an integrated workflow. * **Chores** * Updated several dependencies to newer versions for improved stability and compatibility. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
Remove tokens that have no connections from the warp core config tokens, with these chains with no connection will not be shown from `assembleChainMetadata` <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **New Features** * Improved token list by removing tokens without any connections, ensuring only connected tokens are displayed. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
This PR addresses an issue where users are automatically prompted to switch to the Base Mainnet when connecting with their wallet on the Hyperlane Warp bridge UI. ## 📋 Context When attempting to connect a wallet, users were forced to switch to the Base network regardless of the chain selected, or the previous chain selected in their wallet. This is due to the fact that the code of the Hyperlane UI fetches the list of available warp routes, and pass the first origin chain of the first warp route as initial chain to rainbow kit configuration in the wallet connector. Although Metamask performs the chain switch in the background in the wallet, this still causes confusion for users expecting to use the origin chain from the selected dropdown. For instance when using the Universal Profile browser extension, the user gets automatically prompted to switch network, which leads to confusion. <img width="3012" height="1646" alt="image" src="https://github.com/user-attachments/assets/b5f95982-8df3-4df1-ad51-620f847ef692" /> https://github.com/user-attachments/assets/114d703d-1cd3-4316-bab8-b51027970a0a ## ✅ Fix Removed the logic that enforced a network switch to Base on wallet connection. The code now does not provide an initial chain to switch to when connecting. The last network selected in the wallet is now used. Wallets now connect without triggering an automatic network change <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Refactor** * Removed logic related to deriving and passing an initial chain based on Ethereum protocol tokens in wallet context setup. No visible changes to the user experience. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
Bump `@types/nodes` because of upcoming Vercel node v18 deprecation
3a818b7 to
80ca495
Compare
## Summary Adds Claude-powered code review to this repository, adapted from hyperlane-monorepo. ## Changes ### Workflow (`.github/workflows/claude-code-review.yml`) 3 jobs with fork security guards: - **code-review**: Triggered by `@claude review` comment or `claude-review` label (claude-opus-4-5) - **security-review**: Auto-runs on non-draft PRs from same repo (claude-opus-4-5) - **interactive**: Responds to `@claude` mentions in PR comments (claude-sonnet-4-5) Security features: - `author_association` check (MEMBER/OWNER/COLLABORATOR only) for comment triggers - Same-repo check (`github.event.pull_request.head.repo.full_name == github.repository`) for auto-triggered jobs - Same-repo check for label triggers - `actions/checkout@v6` ### Prompts (`.github/prompts/`) - **code-review.md**: Frontend-specific TypeScript review (chain-aware addresses, useQuery patterns, CSP) - **security-scan.md**: Frontend/Web3 security (XSS, wallet security, blind signatures, CSP headers) ### Skills (`.claude/skills/`) - `/claude-review` → `.github/prompts/code-review.md` - `/claude-security-review` → `.github/prompts/security-scan.md` ### Other - **CLAUDE.md**: Added engineering philosophy, tips, and verification guidelines - **.gitignore**: Added `.opencode` and `.sisyphus` ## Setup Required⚠️ **Before merging**, configure the `ANTHROPIC_API_KEY` secret: 1. Go to Settings → Secrets and variables → Actions 2. Add repository secret: `ANTHROPIC_API_KEY` ## Usage | Trigger | Action | |---------|--------| | `@claude review` comment | Full code review | | `claude-review` label | Full code review | | `@claude security` comment | Security review | | `@claude <question>` comment | Interactive help | | Non-draft PR (same repo) | Auto security review |
80ca495 to
15b9b54
Compare
## Summary - Adds AGENTS.md as a duplicate of CLAUDE.md for compatibility with other AI coding tools 🤖 Generated with [Claude Code](https://claude.com/claude-code) --------- Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
15b9b54 to
5e4aab9
Compare
- Update CSP directive to allow Web Assemble execution - Upgrade Hyperlane packages
5e4aab9 to
090e45d
Compare
Prevent white screen flashing when page loads by using main bg color as the base color
090e45d to
c8248b7
Compare
## Summary - Update `claude-opus-4-5` to `claude-opus-4-6` in the Claude code review workflow (code review + security review jobs) ## Test plan - [ ] Verify workflow triggers correctly on next PR 🤖 Generated with [Claude Code](https://claude.com/claude-code) --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
c8248b7 to
76a39db
Compare
…928) ## Summary - Adds `sourcemaps: { disable: true }` to Sentry config in `next.config.js` ## Context Vercel builds randomly hang 45+ minutes, getting stuck on "sending sentry telemetry info" during source map upload. The Sentry API has variable response times with no timeout configured, causing indefinite waits. ## What this changes Disables Sentry source map upload during build. Error tracking via the tunnel route (`/monitoring-tunnel`) and all other Sentry configuration remain intact. ## Verification - `pnpm build` completes successfully - Tunnel route confirmed present in build output - All other Sentry config preserved (org, project, authToken, hideSourceMaps, tunnelRoute, bundleSizeOptimizations) <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Chores** * Updated error tracking configuration settings. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
76a39db to
3d83d83
Compare
## Summary
- Skip ESLint and TypeScript checking during `next build` (Vercel)
- Disable Sentry build telemetry (Sentry SDK phoning home to Sentry Inc.
— unrelated to your error tracking)
- Add dedicated `typecheck` CI job (so `typescript.ignoreBuildErrors` is
safe)
- Parallelize all CI jobs — remove `install` gate, no serial
dependencies
## Vercel build results
| | Before | After | Savings |
|---|--------|-------|---------|
| **Total build** | 9 min | **5 min** | **~4 min (44%)** |
| Lint + typecheck | ~4 min | Skipped | -4 min |
## CI changes
**Before:**
```
install ─┬─ build ─── test (serial)
├─ prettier
└─ lint
```
**After:**
```
build, typecheck, test, prettier, lint — all parallel, no gates
```
- Removed `install` gate job — every job already does its own `pnpm
install`, the gate just added ~30s of serial delay
- `typecheck` added — catches type errors that
`typescript.ignoreBuildErrors` skips in Vercel build
- `test` no longer depends on `build` — Vitest runs against source,
doesn't need Next.js build output
- Lockfile drift check moved into `build` job's install step
## Changes
- `next.config.js`: `eslint.ignoreDuringBuilds`,
`typescript.ignoreBuildErrors`, `sentryOptions.telemetry: false`
- `.github/workflows/ci.yml`: Remove `install` gate, add `typecheck`,
parallelize `test`
## Verification
- `pnpm build` ✅ on Vercel (5 min, down from 9 min)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
* **Chores**
* Optimized CI/CD pipeline with improved job separation and caching
strategies
* Updated build configuration for enhanced development workflow
efficiency
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
3d83d83 to
00e7628
Compare
## Summary - Add `/inline-pr-comments` skill for posting inline PR review comments - Update `/claude-review` and `/claude-security-review` to reference inline-pr-comments - Simplify workflow to call skills directly instead of reading prompt files - Add PR Review Comment Format section to AGENTS.md Mirrors hyperlane-xyz/hyperlane-monorepo#8040 for this repo.
00e7628 to
6e2aba5
Compare
## Automated Dependency Update This PR updates the Hyperlane dependencies to their latest versions. **Updated versions:** - `@hyperlane-xyz/sdk`: `25.0.0` - `@hyperlane-xyz/utils`: `25.0.0` - `@hyperlane-xyz/registry`: `23.14.0` - `@hyperlane-xyz/widgets`: `25.0.0` **Changes include:** - Updated `package.json` with latest Hyperlane package versions - Updated `pnpm-lock.yaml` via `pnpm install` --- 🤖 This PR was automatically generated by the [update-hyperlane-deps workflow](.github/workflows/update-hyperlane-deps.yml) Co-authored-by: hyper-gonk[bot] <246310972+hyper-gonk[bot]@users.noreply.github.com>
# Conflicts: # .github/workflows/ci.yml # next.config.js # package.json # pnpm-lock.yaml # src/components/layout/AppLayout.tsx # src/components/nav/Footer.tsx # src/consts/chains.ts # src/consts/config.ts # src/consts/links.ts # src/features/analytics/utils.ts # src/features/tokens/types.ts # src/features/tokens/utils.test.ts # src/features/tokens/utils.ts # src/features/transfer/TransferTokenForm.tsx # src/features/transfer/fees.test.ts # src/features/transfer/fees.ts # src/features/transfer/maxAmount.ts # src/features/transfer/useFeeQuotes.ts # src/features/transfer/useTokenTransfer.ts
6e2aba5 to
2395d1d
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR was automatically created to merge changes from
mainintoinjective.