-
-
Notifications
You must be signed in to change notification settings - Fork 1.5k
chore(runway): cherry-pick fix: cp-7.60.0 Generate correct blockchain explorer urls on bridge txs #23311
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
chore(runway): cherry-pick fix: cp-7.60.0 Generate correct blockchain explorer urls on bridge txs #23311
Conversation
… explorer urls on bridge txs (#23273) <!-- Please submit this PR as a draft initially. Do not mark it as "Ready for review" until the template has been completely filled out, and PR status checks have passed at least once. --> ## **Description** Fix an issue where the blockchain explorer urls were not generated successfully when bridging assets. <!-- Write a short description of the changes included in this pull request, also include relevant motivation and context. Have in mind the following questions: 1. What is the reason for the change? 2. What is the improvement/solution? --> ## **Changelog** <!-- If this PR is not End-User-Facing and should not show up in the CHANGELOG, you can choose to either: 1. Write `CHANGELOG entry: null` 2. Label with `no-changelog` If this PR is End-User-Facing, please write a short User-Facing description in the past tense like: `CHANGELOG entry: Added a new tab for users to see their NFTs` `CHANGELOG entry: Fixed a bug that was causing some NFTs to flicker` (This helps the Release Engineer do their job more quickly and accurately) --> CHANGELOG entry: Generate correct blockchain explorer URLs when bridging assets ## **Related issues** Fixes: #23171 ## **Manual testing steps** ```gherkin Ensure that the correct blockchain URLs are generated when visiting the transaction details screen after bridging/swapping assets. Also ensure that the correct URLs are also generated for old bridge/swaps transactions (no regressions). ``` ## **Screenshots/Recordings** <!-- If applicable, add screenshots and/or recordings to visualize the before and after of your change. --> ### **Before** <!-- [screenshots/recordings] --> ### **After** <!-- [screenshots/recordings] --> ## **Pre-merge author checklist** - [x] I’ve followed [MetaMask Contributor Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask Mobile Coding Standards](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/CODING_GUIDELINES.md). - [x] I've completed the PR template to the best of my ability - [x] I’ve included tests if applicable - [x] I’ve documented my code using [JSDoc](https://jsdoc.app/) format if applicable - [x] I’ve applied the right labels on the PR (see [labeling guidelines](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/LABELING_GUIDELINES.md)). Not required for external contributors. ## **Pre-merge reviewer checklist** - [ ] I've manually tested the PR (e.g. pull and build branch, run the app, test code being changed). - [ ] I confirm that this PR addresses all acceptance criteria described in the ticket it closes and includes the necessary testing evidence such as recordings and or screenshots. <!-- CURSOR_SUMMARY --> --- > [!NOTE] > Corrects multichain block explorer URL generation for bridge transactions with proper EVM/non-EVM handling and comprehensive tests. > > - **Bridge Hook (`useMultichainBlockExplorerTxUrl`)**: > - Uses `useBlockExplorer` to resolve EVM explorer base URLs via `getEvmBlockExplorerUrl` with fallback to `getEtherscanBaseUrl`. > - Builds EVM tx links with `etherscan-link.createCustomExplorerLink`. > - Keeps non-EVM (e.g., Solana) URLs via `getTransactionUrl`; derives explorer name from URL or `useBlockExplorer`. > - Derives `explorerName`, `chainName`, and `networkImageSource` consistently (EVM via CAIP/hex; non-EVM via config). > - **Hook Tests** (`useMultichainBlockExplorerTxUrl.test.tsx`): > - Add extensive coverage for parameter validation, EVM/non-EVM paths, fallback logic, explorer name resolution, network image sourcing, and custom network configs. > - Mocks external utilities (`etherscan-link`, `useBlockExplorer`, `getEtherscanBaseUrl`, network utils). > - **Block Explorer Modal Test** (`BlockExplorersModal.test.tsx`): > - Adjust expectations to show one `Etherscan` and one `Optimistic` button instead of two `Etherscan`. > - **`useBlockExplorer`**: > - Exposes `getEvmBlockExplorerUrl` in the returned API. > > <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit fe97a35. This will update automatically on new commits. Configure [here](https://cursor.com/dashboard?tab=bugbot).</sup> <!-- /CURSOR_SUMMARY -->
|
CLA Signature Action: All authors have signed the CLA. You may need to manually re-run the blocking PR check if it doesn't pass in a few minutes. |
🔍 Smart E2E Test Selection
click to see 🤖 AI reasoning detailsFallback: AI analysis did not complete successfully. Running all tests. |
|
|
No release label on PR. Adding release label release-7.60.0 on PR, as PR was cherry-picked in branch 7.60.0. |



Description
Fix an issue where the blockchain explorer urls were not generated
successfully when bridging assets.
Changelog
CHANGELOG entry: Generate correct blockchain explorer URLs when bridging
assets
Related issues
Fixes: #23171
Manual testing steps
Screenshots/Recordings
Before
After
Pre-merge author checklist
Docs and MetaMask Mobile
Coding
Standards.
if applicable
guidelines).
Not required for external contributors.
Pre-merge reviewer checklist
app, test code being changed).
in the ticket it closes and includes the necessary testing evidence such
as recordings and or screenshots.
Note
Fixes bridge transaction explorer URL generation across EVM and non‑EVM chains with proper fallbacks and updates tests accordingly.
useMultichainBlockExplorerTxUrl):useBlockExplorerfromapp/components/hooksand usesgetEvmBlockExplorerUrlto derive EVM explorer base URLs.getEtherscanBaseUrland builds links via@metamask/etherscan-linkwhen custom explorer is unavailable.blockExplorer.getBlockExplorerNamefor EVM.useMultichainBlockExplorerTxUrl.test.tsx):BlockExplorersModal.test.tsx):Etherscanand oneOptimisticbutton.useBlockExplorer.ts):getEvmBlockExplorerUrlin returned API.Written by Cursor Bugbot for commit 4b8a441. This will update automatically on new commits. Configure here.
f93f627