refactor(bridge): remove CCTP initiation - #428
Open
chrstph-dvx wants to merge 1 commit into
Open
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Contributor
There was a problem hiding this comment.
Pull request overview
Refactors the Bridge UI to remove CCTP transfer initiation (route selection + transfer starter + UI-driver flow), while keeping legacy CCTP claim/history support and updating test coverage to focus on claims.
Changes:
- Removes CCTP route initiation across the UI, SDK, dialogs, and routing logic; keeps CCTP utilities for legacy claims.
- Reworks USDC token handling by introducing canonical token overrides and curated LiFi token metadata (notably for L2-native USDC).
- Updates E2E coverage/config to run only “legacy CCTP claim” tests and adjusts CI workflow wiring accordingly.
Reviewed changes
Copilot reviewed 74 out of 74 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| packages/arb-token-bridge-ui/tests/support/commands.ts | Updates Cypress helpers to reflect removed CCTP route selection and improves rejected-claim assertion. |
| packages/arb-token-bridge-ui/tests/e2e/specs/withdrawCctp.cy.ts | Removes CCTP withdrawal initiation E2E coverage. |
| packages/arb-token-bridge-ui/tests/e2e/specs/depositCctp.cy.ts | Removes CCTP deposit initiation E2E coverage. |
| packages/arb-token-bridge-ui/tests/e2e/specs/cctpClaims.cy.ts | Adds E2E suite focused on legacy CCTP claims + transaction history behavior. |
| packages/arb-token-bridge-ui/tests/e2e/cctp.json | Removes legacy CCTP initiation specfile config. |
| packages/arb-token-bridge-ui/tests/e2e/cctp-claims.json | Adds specfile config for legacy CCTP claim tests. |
| packages/arb-token-bridge-ui/synpress.cctp-claims.config.ts | Switches Synpress config to legacy claim suite and seeds legacy CCTP fixtures. |
| packages/arb-token-bridge-ui/src/util/WithdrawOnlyUtils.ts | Replaces USDC.e token checks with direct address comparisons after removing helpers. |
| packages/arb-token-bridge-ui/src/util/TokenUtils.ts | Removes USDC/CCTP-specific token predicate helpers; inlines address checks where needed. |
| packages/arb-token-bridge-ui/src/util/curatedLifiTokens.ts | Introduces curated LiFi token entries (notably L2-native USDC) keyed by chain. |
| packages/arb-token-bridge-ui/src/util/CommonAddressUtils.ts | Removes CCTP token messenger addresses from common address registry. |
| packages/arb-token-bridge-ui/src/util/cctp/TokenMinterAbi.ts | Removes unused CCTP TokenMinter ABI. |
| packages/arb-token-bridge-ui/src/util/cctp/TokenMessengerAbi.ts | Removes unused CCTP TokenMessenger ABI. |
| packages/arb-token-bridge-ui/src/util/canonicalTokenOverrides.ts | Adds canonical L1→L2 token override mappings (USDC → USDC.e). |
| packages/arb-token-bridge-ui/src/util/canonicalTokenOverrides.test.ts | Adds unit tests validating canonical override mappings. |
| packages/arb-token-bridge-ui/src/util/AnalyticsUtils.ts | Removes “Use CCTP Click” event and adjusts simplified route typing to retain legacy CCTP classification. |
| packages/arb-token-bridge-ui/src/ui-driver/UiDriverTestUtils.ts | Removes UI-driver test helpers previously used only by CCTP UI-driver tests. |
| packages/arb-token-bridge-ui/src/ui-driver/UiDriverCommon.ts | Removes shared UI-driver utilities no longer needed after removing CCTP UI-driver. |
| packages/arb-token-bridge-ui/src/ui-driver/UiDriverCctp.ts | Removes CCTP UI-driver step generator. |
| packages/arb-token-bridge-ui/src/ui-driver/UiDriverCctp.test.ts | Removes CCTP UI-driver test suite. |
| packages/arb-token-bridge-ui/src/ui-driver/UiDriver.ts | Removes generic UI-driver implementation after CCTP flow removal. |
| packages/arb-token-bridge-ui/src/ui-driver/UiDriver.test.ts | Removes UI-driver unit tests. |
| packages/arb-token-bridge-ui/src/token-bridge-sdk/CctpTransferStarter.ts | Removes CCTP transfer starter implementation. |
| packages/arb-token-bridge-ui/src/token-bridge-sdk/CctpTransferStarter.test.ts | Removes CCTP transfer starter unit tests. |
| packages/arb-token-bridge-ui/src/token-bridge-sdk/cctp.ts | Strips initiation-related contract config and burn-limit reads; keeps receiveMessage + attestation helpers. |
| packages/arb-token-bridge-ui/src/token-bridge-sdk/BridgeTransferStarter.ts | Removes CCTP transfer type and unused prepare-tx request helpers. |
| packages/arb-token-bridge-ui/src/state/cctpState.ts | Simplifies USDC-address lookup helper to a single function. |
| packages/arb-token-bridge-ui/src/hooks/useSelectedToken.ts | Replaces dynamic USDC resolution with curated LiFi token lookup + normalized address selection. |
| packages/arb-token-bridge-ui/src/hooks/useBalanceOnSourceChain.ts | Removes native-USDC special casing tied to prior CCTP logic. |
| packages/arb-token-bridge-ui/src/hooks/useBalanceOnDestinationChain.ts | Removes native-USDC special casing tied to prior CCTP logic. |
| packages/arb-token-bridge-ui/src/hooks/useArbTokenBridge.ts | Adds canonical token overrides and curated LiFi tokens into bridge token registry + balance updates. |
| packages/arb-token-bridge-ui/src/hooks/TransferPanel/useSelectedTokenBalances.ts | Removes USDC special casing tied to prior native/cctp handling. |
| packages/arb-token-bridge-ui/src/hooks/TransferPanel/useIsBatchTransferSupported.ts | Removes native-USDC batch-transfer exclusion (CCTP no longer applies). |
| packages/arb-token-bridge-ui/src/hooks/TransferPanel/useGasSummary.ts | Simplifies gas-summary logic by removing native-USDC/CCTP unavailable states. |
| packages/arb-token-bridge-ui/src/hooks/tests/useUpdateUsdcBalances.test.ts | Removes tests for deleted CCTP balance updater hook. |
| packages/arb-token-bridge-ui/src/hooks/tests/useSelectedToken.test.ts | Updates selected-token tests for canonical override + curated token selection behavior. |
| packages/arb-token-bridge-ui/src/hooks/tests/useGasSummary.test.tsx | Updates gas-summary tests after removing native-USDC unavailable cases. |
| packages/arb-token-bridge-ui/src/constants.ts | Removes CCTP documentation constant (CCTP initiation UI removed). |
| packages/arb-token-bridge-ui/src/components/TransferPanel/useTransferReadiness.ts | Removes CCTP-specific fee sanitization and native-USDC L2-address handling. |
| packages/arb-token-bridge-ui/src/components/TransferPanel/USDCWithdrawal/UsdcWithdrawalConfirmationDialogCheckbox.tsx | Removes CCTP withdrawal confirmation checkbox component. |
| packages/arb-token-bridge-ui/src/components/TransferPanel/USDCWithdrawal/CctpUsdcWithdrawalConfirmationDialog.tsx | Removes CCTP withdrawal confirmation dialog. |
| packages/arb-token-bridge-ui/src/components/TransferPanel/USDCDeposit/UsdcDepositConfirmationDialogCheckbox.tsx | Simplifies checkbox UI now that CCTP initiation confirmations are removed. |
| packages/arb-token-bridge-ui/src/components/TransferPanel/USDCDeposit/CctpUsdcDepositConfirmationDialog.tsx | Removes CCTP deposit confirmation dialog. |
| packages/arb-token-bridge-ui/src/components/TransferPanel/TransferPanelMain/SourceNetworkBox.tsx | Removes CCTP-related helper messaging and imports. |
| packages/arb-token-bridge-ui/src/components/TransferPanel/TransferPanelMain/DestinationNetworkBox.tsx | Removes destination balance row special-casing for CCTP display. |
| packages/arb-token-bridge-ui/src/components/TransferPanel/TransferPanelMain.tsx | Removes CCTP balance updater hook usage and USDC special casing. |
| packages/arb-token-bridge-ui/src/components/TransferPanel/TransferPanel.tsx | Removes CCTP transfer path and updates selection/confirmation logic for USDC.e canonical deposits. |
| packages/arb-token-bridge-ui/src/components/TransferPanel/TokenSearch.tsx | Switches USDC handling to curated tokens; removes SWR-based USDC resolution logic. |
| packages/arb-token-bridge-ui/src/components/TransferPanel/TokenRow.tsx | Uses isL2Native to label curated native tokens; removes CCTP/native-USDC special casing. |
| packages/arb-token-bridge-ui/src/components/TransferPanel/TokenInfo.tsx | Simplifies logo fallback by preferring token-provided metadata (works with curated tokens). |
| packages/arb-token-bridge-ui/src/components/TransferPanel/TokenApprovalDialog.tsx | Removes CCTP-specific approval gas estimation and contract address selection. |
| packages/arb-token-bridge-ui/src/components/TransferPanel/Routes/Routes.tsx | Removes CCTP route option and simplifies route-tag selection logic. |
| packages/arb-token-bridge-ui/src/components/TransferPanel/Routes/CctpRoute.tsx | Removes CCTP route UI component. |
| packages/arb-token-bridge-ui/src/components/TransferPanel/Routes/ArbitrumCanonicalRoute.tsx | Updates “USDC transfer” detection after removing isTokenNativeUSDC. |
| packages/arb-token-bridge-ui/src/components/TransferPanel/hooks/useRoutesUpdater.ts | Removes CCTP from eligible-route logic and default selection; exports helpers for testing. |
| packages/arb-token-bridge-ui/src/components/TransferPanel/hooks/useRoutesUpdater.test.ts | Adds unit tests covering updated eligible-route behavior after CCTP removal. |
| packages/arb-token-bridge-ui/src/components/TransferPanel/hooks/useRouteStore.ts | Removes CCTP route type/data from route store typings. |
| packages/arb-token-bridge-ui/src/components/TransferPanel/hooks/useIsCctpTransfer.ts | Removes hook used to detect CCTP initiation. |
| packages/arb-token-bridge-ui/src/components/TransferPanel/hooks/useIsCctpTransfer.test.ts | Removes tests for deleted CCTP initiation hook. |
| packages/arb-token-bridge-ui/src/components/TransferPanel/hooks/useIsCanonicalTransfer.ts | Disables canonical route for L2-native tokens and updates SWR keying. |
| packages/arb-token-bridge-ui/src/components/TransferPanel/hooks/useIsCanonicalTransfer.test.ts | Adds regression coverage ensuring canonical route is not offered for L2-native tokens. |
| packages/arb-token-bridge-ui/src/components/TransferPanel/DestinationTokenSearch.tsx | Removes destination token sort priority that explicitly elevated USDC. |
| packages/arb-token-bridge-ui/src/components/TransferPanel/CustomFeeTokenApprovalDialog.tsx | Updates comment to remove outdated CCTP mention. |
| packages/arb-token-bridge-ui/src/components/TransferPanel/CctpTabContent.tsx | Removes CCTP tab content component (blocked-jurisdiction messaging no longer needed). |
| packages/arb-token-bridge-ui/src/components/syncers/useBalanceUpdater.tsx | Replaces USDC balance updater with direct child-balance refresh for curated L2-native tokens. |
| packages/arb-token-bridge-ui/src/components/common/Dialog2.tsx | Removes CCTP dialog types and dialog routing. |
| packages/arb-token-bridge-ui/src/components/App/App.tsx | Removes eager CCTP blocked-status prefetch. |
| package.json | Points test:e2e:cctp to the new legacy-claims Synpress config. |
| DEVELOPMENT.md | Updates docs wording to reflect claim-only CCTP E2E suite. |
| .github/workflows/run-cctp-claim-tests.yml | Renames workflow/jobs and updates to new cctp-claims test type. |
| .github/workflows/formatSpecfiles.js | Updates workflow matrix generation for sequential cctp-claims runs. |
| .github/workflows/e2e-tests.yml | Updates CI to run legacy claim suite under cctp-claims and adjusts dependencies/artifacts. |
Comments suppressed due to low confidence (1)
packages/arb-token-bridge-ui/synpress.cctp-claims.config.ts:206
- The legacy-claim suite always seeds 4 CCTP transfers (2 on Sepolia + 2 on Arb Sepolia), but
fundWallets()only funds the user wallet when the spec filename containsdeposit/withdraw. With the newcctpClaimsspec pattern, neither condition matches, so the wallet may not have enough ETH/USDC for the seeding transactions and the run will fail duringcreateCctpTxapprovals/deposits.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
chrstph-dvx
force-pushed
the
cdeveaux/remove-cctp-initiation
branch
from
July 27, 2026 17:29
18b1d41 to
5b06603
Compare
chrstph-dvx
force-pushed
the
cdeveaux/remove-cctp-initiation
branch
from
July 27, 2026 17:41
5b06603 to
1d46b7e
Compare
chrstph-dvx
force-pushed
the
cdeveaux/remove-cctp-initiation
branch
from
July 28, 2026 09:26
1d46b7e to
5d184a5
Compare
chrstph-dvx
force-pushed
the
cdeveaux/remove-cctp-initiation
branch
from
July 28, 2026 09:51
5d184a5 to
428c87c
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.
No description provided.