gitextract_g1lr7_k9/ ├── .claude/ │ └── skills/ │ ├── claude-review/ │ │ └── SKILL.md │ ├── claude-security-review/ │ │ └── SKILL.md │ ├── commit/ │ │ └── SKILL.md │ ├── inline-pr-comments/ │ │ └── SKILL.md │ └── resolve-pr-reviews/ │ └── SKILL.md ├── .env.example ├── .github/ │ ├── CODEOWNERS │ ├── prompts/ │ │ └── security-scan.md │ └── workflows/ │ ├── ci.yml │ ├── claude-code-review.yml │ ├── create-merge-prs.yaml │ ├── e2e-smoke.yml │ ├── e2e-wallet-full.yml │ ├── e2e.yml │ └── update-hyperlane-deps.yml ├── .gitignore ├── .nvmrc ├── .oxfmtrc.json ├── .oxlintrc.json ├── .vscode/ │ ├── extensions.json │ └── settings.json ├── AGENTS.md ├── CLAUDE.md ├── CUSTOMIZE.md ├── LICENSE.md ├── README.md ├── REVIEW.md ├── next-env.d.ts ├── next.config.js ├── package.json ├── patches/ │ ├── @provablehq__sdk@0.9.15.patch │ ├── @provablehq__wasm@0.9.18.patch │ └── starknetkit@2.6.1.patch ├── playwright.config.ts ├── pnpm-workspace.yaml ├── postcss.config.js ├── public/ │ ├── .well-known/ │ │ └── radix.json │ ├── browserconfig.xml │ ├── site.webmanifest │ └── theme-init.js ├── scripts/ │ ├── README.md │ ├── fetch-fonts.mjs │ ├── link-monorepo.js │ └── unlink-monorepo.js ├── sentry.client.config.js ├── sentry.default.config.js ├── src/ │ ├── components/ │ │ ├── banner/ │ │ │ ├── FormWarningBanner.tsx │ │ │ ├── RecipientWarningBanner.tsx │ │ │ └── WarningBanner.tsx │ │ ├── buttons/ │ │ │ ├── ConnectAwareSubmitButton.tsx │ │ │ └── SolidButton.tsx │ │ ├── errors/ │ │ │ └── ErrorBoundary.tsx │ │ ├── icons/ │ │ │ ├── BookIcon.tsx │ │ │ ├── ChainLogo.tsx │ │ │ ├── ChevronLargeIcon.tsx │ │ │ ├── HamburgerIcon.tsx │ │ │ ├── HyperlaneGradientLogo.tsx │ │ │ ├── HyperlaneTransparentLogo.tsx │ │ │ ├── QuestionMarkIcon.tsx │ │ │ ├── StakeIcon.tsx │ │ │ ├── SwapIcon.tsx │ │ │ ├── TokenIcon.tsx │ │ │ ├── WebSimpleIcon.tsx │ │ │ └── XIcon.tsx │ │ ├── input/ │ │ │ ├── SearchInput.tsx │ │ │ └── TextField.tsx │ │ ├── layout/ │ │ │ ├── AppLayout.tsx │ │ │ ├── Card.tsx │ │ │ └── ModalHeader.tsx │ │ ├── nav/ │ │ │ ├── Footer.tsx │ │ │ ├── Header.tsx │ │ │ └── Nav.tsx │ │ ├── tip/ │ │ │ └── TipCard.tsx │ │ └── toast/ │ │ ├── IgpDetailsToast.tsx │ │ ├── TxSuccessToast.tsx │ │ └── useToastError.tsx │ ├── consts/ │ │ ├── app.ts │ │ ├── args.ts │ │ ├── blacklist.ts │ │ ├── chainAddresses.ts │ │ ├── chainAddresses.yaml │ │ ├── chains.ts │ │ ├── chains.yaml │ │ ├── config.ts │ │ ├── defaultMultiCollateralRoutes.ts │ │ ├── links.ts │ │ ├── warpRouteWhitelist.test.ts │ │ ├── warpRouteWhitelist.ts │ │ ├── warpRoutes.ts │ │ └── warpRoutes.yaml │ ├── features/ │ │ ├── WarpContextInitGate.tsx │ │ ├── analytics/ │ │ │ ├── intercom.ts │ │ │ ├── refiner.ts │ │ │ ├── types.ts │ │ │ ├── useWalletConnectionTracking.tsx │ │ │ └── utils.ts │ │ ├── balances/ │ │ │ ├── UsdLabel.tsx │ │ │ ├── cosmos.ts │ │ │ ├── evm.ts │ │ │ ├── feeUsdDisplay.test.ts │ │ │ ├── feeUsdDisplay.ts │ │ │ ├── hooks.ts │ │ │ ├── svm.ts │ │ │ ├── tokens.ts │ │ │ ├── useFeePrices.ts │ │ │ └── utils.ts │ │ ├── chains/ │ │ │ ├── ChainConnectionWarning.test.ts │ │ │ ├── ChainConnectionWarning.tsx │ │ │ ├── ChainEditModal.tsx │ │ │ ├── ChainFilterPanel.tsx │ │ │ ├── ChainList.tsx │ │ │ ├── ChainWalletWarning.tsx │ │ │ ├── MobileChainQuickSelect.tsx │ │ │ ├── addresses.ts │ │ │ ├── chainFilterSort.test.ts │ │ │ ├── chainFilterSort.ts │ │ │ ├── hooks.ts │ │ │ ├── metadata.ts │ │ │ └── utils.ts │ │ ├── limits/ │ │ │ ├── const.ts │ │ │ ├── types.ts │ │ │ ├── utils.test.ts │ │ │ └── utils.ts │ │ ├── messages/ │ │ │ ├── graphqlClient.ts │ │ │ ├── queries/ │ │ │ │ ├── build.ts │ │ │ │ ├── encoding.ts │ │ │ │ └── fragments.ts │ │ │ ├── types.ts │ │ │ ├── useMergedTransferHistory.test.ts │ │ │ ├── useMergedTransferHistory.ts │ │ │ ├── useMessageDeliveryStatus.ts │ │ │ ├── useMessageHistory.ts │ │ │ └── useOriginFinality.ts │ │ ├── routerAddresses.test.ts │ │ ├── sanctions/ │ │ │ └── hooks/ │ │ │ ├── useIsAccountChainalysisSanctioned.ts │ │ │ ├── useIsAccountOfacSanctioned.ts │ │ │ └── useIsAccountSanctioned.ts │ │ ├── store.ts │ │ ├── theme/ │ │ │ └── ThemeContext.tsx │ │ ├── tokens/ │ │ │ ├── ImportTokenButton.tsx │ │ │ ├── SelectOrInputTokenIds.tsx │ │ │ ├── SelectTokenIdField.tsx │ │ │ ├── TokenChainIcon.tsx │ │ │ ├── TokenList.tsx │ │ │ ├── TokenListPanel.tsx │ │ │ ├── TokenSelectField.tsx │ │ │ ├── UnifiedTokenChainModal.tsx │ │ │ ├── approval.ts │ │ │ ├── hooks.ts │ │ │ ├── types.ts │ │ │ ├── useTokenPrice.tsx │ │ │ ├── utils.test.ts │ │ │ ├── utils.ts │ │ │ ├── wrappedTokenResolver.test.ts │ │ │ └── wrappedTokenResolver.ts │ │ ├── transfer/ │ │ │ ├── FeeSectionButton.tsx │ │ │ ├── RecipientConfirmationModal.tsx │ │ │ ├── TransferFeeModal.tsx │ │ │ ├── TransferSection.tsx │ │ │ ├── TransferTokenCard.tsx │ │ │ ├── TransferTokenForm.tsx │ │ │ ├── TransfersDetailsModal.tsx │ │ │ ├── fees.test.ts │ │ │ ├── fees.ts │ │ │ ├── maxAmount.ts │ │ │ ├── predicate.ts │ │ │ ├── relayApi.ts │ │ │ ├── scaleUtils.test.ts │ │ │ ├── scaleUtils.ts │ │ │ ├── types.ts │ │ │ ├── useBalanceWatcher.ts │ │ │ ├── useFeeQuotes.test.ts │ │ │ ├── useFeeQuotes.ts │ │ │ ├── useQuotedCalls.test.ts │ │ │ ├── useQuotedCalls.ts │ │ │ ├── useTokenTransfer.ts │ │ │ ├── utils.test.ts │ │ │ └── utils.ts │ │ ├── wallet/ │ │ │ ├── ConnectWalletButton.tsx │ │ │ ├── RecipientAddressModal.tsx │ │ │ ├── SideBarMenu.tsx │ │ │ ├── WalletConnectionWarning.tsx │ │ │ ├── WalletDropdown.tsx │ │ │ ├── WalletProtocolModal.test.ts │ │ │ ├── WalletProtocolModal.tsx │ │ │ ├── _e2e/ │ │ │ │ ├── E2EAutoConnectCosmos.tsx │ │ │ │ ├── E2EAutoConnectEvm.tsx │ │ │ │ ├── E2EAutoConnectRadix.tsx │ │ │ │ ├── E2EAutoConnectSolana.tsx │ │ │ │ ├── E2EAutoConnectStarknet.tsx │ │ │ │ ├── E2EAutoConnectTron.tsx │ │ │ │ ├── MockCosmosWallet.test.fixtures.ts │ │ │ │ ├── MockCosmosWallet.test.ts │ │ │ │ ├── MockCosmosWallet.ts │ │ │ │ ├── MockSolanaAdapter.ts │ │ │ │ ├── MockStarknetConnector.test.ts │ │ │ │ ├── MockStarknetConnector.ts │ │ │ │ ├── MockTronAdapter.test.ts │ │ │ │ ├── MockTronAdapter.ts │ │ │ │ ├── constants.ts │ │ │ │ ├── isE2E.ts │ │ │ │ └── windowState.ts │ │ │ ├── context/ │ │ │ │ ├── AleoWalletContext.tsx │ │ │ │ ├── CosmosWalletContext.tsx │ │ │ │ ├── EvmWalletContext.tsx │ │ │ │ ├── RadixWalletContext.tsx │ │ │ │ ├── SolanaWalletContext.tsx │ │ │ │ ├── StarknetWalletContext.tsx │ │ │ │ └── TronWalletContext.tsx │ │ │ ├── relativeTimeTicker.test.ts │ │ │ └── relativeTimeTicker.ts │ │ └── warpCore/ │ │ ├── AddWarpConfigModal.tsx │ │ ├── warpCoreConfig.test.ts │ │ └── warpCoreConfig.ts │ ├── global.d.ts │ ├── instrumentation.ts │ ├── lib/ │ │ └── predicateClient.ts │ ├── pages/ │ │ ├── _app.tsx │ │ ├── _document.tsx │ │ ├── api/ │ │ │ ├── predicate/ │ │ │ │ └── attestation.ts │ │ │ ├── quote.test.ts │ │ │ └── quote.ts │ │ ├── blocked.tsx │ │ ├── embed.tsx │ │ └── index.tsx │ ├── proxy.ts │ ├── styles/ │ │ ├── Color.ts │ │ ├── embed-theme.css │ │ ├── embedTheme.test.ts │ │ ├── embedTheme.ts │ │ ├── globals.css │ │ └── mediaQueries.ts │ ├── utils/ │ │ ├── date.test.ts │ │ ├── date.ts │ │ ├── imageBrightness.test.ts │ │ ├── imageBrightness.ts │ │ ├── links.ts │ │ ├── logger.ts │ │ ├── pino-noop.js │ │ ├── promises.ts │ │ ├── queryParams.ts │ │ ├── test.ts │ │ └── theme.ts │ └── vendor/ │ ├── inpage-metamask.js │ └── polyfill.js ├── tailwind.config.js ├── tests/ │ ├── chain-selection/ │ │ ├── edit-chain.spec.ts │ │ ├── filter-by-protocol.spec.ts │ │ ├── filter-by-type.spec.ts │ │ └── sort-chains.spec.ts │ ├── e2e-wallet/ │ │ ├── approval/ │ │ │ └── evm.spec.ts │ │ ├── autoconnect/ │ │ │ ├── cosmos.spec.ts │ │ │ ├── evm.spec.ts │ │ │ ├── radix.spec.ts │ │ │ ├── solana.spec.ts │ │ │ ├── starknet.spec.ts │ │ │ └── tron.spec.ts │ │ ├── balance-display/ │ │ │ ├── evm.spec.ts │ │ │ └── solana.spec.ts │ │ ├── destination-router/ │ │ │ ├── evm.spec.ts │ │ │ └── solana.spec.ts │ │ ├── helpers/ │ │ │ ├── captured.ts │ │ │ ├── constants.ts │ │ │ ├── evmRpc.ts │ │ │ ├── formFlow.ts │ │ │ ├── page-setup.ts │ │ │ ├── solanaRpc.ts │ │ │ └── types.ts │ │ ├── invalid-route/ │ │ │ └── evm.spec.ts │ │ ├── same-symbol-dedup/ │ │ │ ├── cosmos.spec.ts │ │ │ ├── evm.spec.ts │ │ │ └── solana.spec.ts │ │ ├── smoke/ │ │ │ └── gate.spec.ts │ │ └── tx-payload/ │ │ └── evm.spec.ts │ ├── embed/ │ │ ├── basic-rendering.spec.ts │ │ ├── csp-headers.spec.ts │ │ ├── no-chrome.spec.ts │ │ ├── routes-param.spec.ts │ │ └── theme.spec.ts │ ├── helpers/ │ │ ├── constants.ts │ │ └── locators.ts │ ├── page-load/ │ │ ├── default-tokens.spec.ts │ │ ├── header-footer.spec.ts │ │ ├── query-param-override.spec.ts │ │ ├── tip-card.spec.ts │ │ └── transfer-form-visible.spec.ts │ ├── sidebar/ │ │ └── sidebar-content.spec.ts │ ├── token-selection/ │ │ ├── filter-chains.spec.ts │ │ ├── open-close-modal.spec.ts │ │ ├── search-tokens.spec.ts │ │ ├── select-destination-token.spec.ts │ │ └── select-origin-token.spec.ts │ ├── transfer-form/ │ │ ├── connect-wallet-prompt.spec.ts │ │ ├── enter-amount.spec.ts │ │ └── swap-tokens.spec.ts │ └── wallet-connect/ │ ├── evm-wallet-modal.spec.ts │ └── protocol-wallet-modals.spec.ts ├── tsconfig.json └── vitest.config.mts