@daimo/pay 1.17.7 → 1.18.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (35) hide show
  1. package/build/index.d.ts +2 -4
  2. package/build/package.json.js +3 -3
  3. package/build/src/components/DaimoPayModal/index.js +1 -3
  4. package/build/src/components/DaimoPayModal/index.js.map +1 -1
  5. package/build/src/components/Pages/MobileConnectors/index.js +0 -2
  6. package/build/src/components/Pages/MobileConnectors/index.js.map +1 -1
  7. package/build/src/components/Pages/SelectMethod/index.js +2 -3
  8. package/build/src/components/Pages/SelectMethod/index.js.map +1 -1
  9. package/build/src/hooks/usePaymentState.js +7 -11
  10. package/build/src/hooks/usePaymentState.js.map +1 -1
  11. package/build/src/hooks/useSolanaPaymentOptions.js +2 -4
  12. package/build/src/hooks/useSolanaPaymentOptions.js.map +1 -1
  13. package/build/src/wallets/useWallets.js +24 -27
  14. package/build/src/wallets/useWallets.js.map +1 -1
  15. package/build/src/world-mini-app/WorldPayButton.js +1 -1
  16. package/build/src/world-mini-app/WorldPayButton.js.map +1 -1
  17. package/build/src/world-mini-app/useWithdrawToWorld.js +70 -0
  18. package/build/src/world-mini-app/useWithdrawToWorld.js.map +1 -0
  19. package/build/src/world-mini-app/useWorldSignIn.js +74 -0
  20. package/build/src/world-mini-app/useWorldSignIn.js.map +1 -0
  21. package/build/src/world.js +1 -0
  22. package/build/src/world.js.map +1 -1
  23. package/build/world.d.ts +9 -2
  24. package/package.json +3 -3
  25. package/build/src/assets/coins.js +0 -43
  26. package/build/src/assets/coins.js.map +0 -1
  27. package/build/src/assets/crepe.js +0 -42
  28. package/build/src/assets/crepe.js.map +0 -1
  29. package/build/src/assets/wallet.js +0 -39
  30. package/build/src/assets/wallet.js.map +0 -1
  31. package/build/src/components/Common/CopyToClipboard/index.js +0 -33
  32. package/build/src/components/Common/CopyToClipboard/index.js.map +0 -1
  33. package/build/src/components/Pages/Connectors/styles.js +0 -267
  34. package/build/src/components/Pages/Connectors/styles.js.map +0 -1
  35. package/build/types-7ed033b6.d.ts +0 -66
package/build/index.d.ts CHANGED
@@ -485,12 +485,11 @@ declare function useExternalPaymentOptions({ trpc, filterIds, platform, usdRequi
485
485
  };
486
486
 
487
487
  /** Wallet payment options. User picks one. */
488
- declare function useSolanaPaymentOptions({ trpc, address, usdRequired, isDepositFlow, showSolanaPaymentMethod, }: {
488
+ declare function useSolanaPaymentOptions({ trpc, address, usdRequired, isDepositFlow, }: {
489
489
  trpc: TrpcClient;
490
490
  address: string | undefined;
491
491
  usdRequired: number | undefined;
492
492
  isDepositFlow: boolean;
493
- showSolanaPaymentMethod: boolean;
494
493
  }): {
495
494
  options: WalletPaymentOption[] | null;
496
495
  isLoading: boolean;
@@ -526,14 +525,13 @@ interface PaymentState {
526
525
  resetOrder: (payParams?: Partial<PayParams>) => Promise<void>;
527
526
  buttonProps: PayButtonPaymentProps | undefined;
528
527
  setButtonProps: (props: PayButtonPaymentProps | undefined) => void;
529
- setPayId: (id: string | undefined) => void;
528
+ setPayId: (id: string | undefined) => Promise<void>;
530
529
  setPayParams: (payParams: PayParams | undefined) => Promise<void>;
531
530
  isDepositFlow: boolean;
532
531
  paymentWaitingMessage: string | undefined;
533
532
  externalPaymentOptions: ReturnType<typeof useExternalPaymentOptions>;
534
533
  selectedWallet: WalletConfigProps | undefined;
535
534
  selectedWalletDeepLink: string | undefined;
536
- showSolanaPaymentMethod: boolean;
537
535
  walletPaymentOptions: ReturnType<typeof useWalletPaymentOptions>;
538
536
  solanaPaymentOptions: ReturnType<typeof useSolanaPaymentOptions>;
539
537
  depositAddressOptions: ReturnType<typeof useDepositAddressOptions>;
@@ -1,5 +1,5 @@
1
1
  var name = "@daimo/pay";
2
- var version = "1.17.7";
2
+ var version = "1.18.1";
3
3
  var author = "Daimo";
4
4
  var homepage = "https://pay.daimo.com";
5
5
  var license = "BSD-2-Clause license";
@@ -31,7 +31,7 @@ var scripts = {
31
31
  lint: "eslint 'src/**/*.{js,jsx,ts,tsx}' --max-warnings=0"
32
32
  };
33
33
  var dependencies = {
34
- "@daimo/pay-common": "1.17.7",
34
+ "@daimo/pay-common": "1.18.1",
35
35
  "@solana/wallet-adapter-base": "^0.9.23",
36
36
  "@solana/wallet-adapter-react": "^0.15.35",
37
37
  "@solana/web3.js": "^1.95.4",
@@ -50,7 +50,7 @@ var dependencies = {
50
50
  };
51
51
  var peerDependencies = {
52
52
  "@tanstack/react-query": ">=5.0.0",
53
- "@worldcoin/minikit-js": ">=1.9.6",
53
+ "@worldcoin/minikit-js": ">=1.9.8",
54
54
  react: "18.x || 19.x",
55
55
  "react-dom": "18.x || 19.x",
56
56
  viem: ">=2.22.0",
@@ -57,7 +57,6 @@ const DaimoPayModal = ({
57
57
  const {
58
58
  generatePreviewOrder,
59
59
  isDepositFlow,
60
- showSolanaPaymentMethod,
61
60
  setPaymentWaitingMessage,
62
61
  setSelectedExternalOption,
63
62
  setSelectedTokenOption,
@@ -420,7 +419,7 @@ const DaimoPayModal = ({
420
419
  chainId: chain?.id,
421
420
  address
422
421
  });
423
- } else if ((!hasUniquePaymentOption || isWalletsUniquePaymentOption) && isSolanaConnected && !isEthConnected && showSolanaPaymentMethod && !disableMobileInjector && !isSolanaLoading && solanaOptionsCount > 0) {
422
+ } else if ((!hasUniquePaymentOption || isWalletsUniquePaymentOption) && isSolanaConnected && !isEthConnected && !disableMobileInjector && !isSolanaLoading && solanaOptionsCount > 0) {
424
423
  paymentState.setTokenMode("solana");
425
424
  context.setRoute(ROUTES.SELECT_TOKEN, {
426
425
  event: "solana_connected_on_open"
@@ -436,7 +435,6 @@ const DaimoPayModal = ({
436
435
  paymentState.externalPaymentOptions.loading,
437
436
  paymentState.depositAddressOptions.options,
438
437
  paymentState.depositAddressOptions.loading,
439
- showSolanaPaymentMethod,
440
438
  address,
441
439
  chain?.id,
442
440
  connector?.id,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../src/components/DaimoPayModal/index.tsx"],"sourcesContent":["import { useWallet } from \"@solana/wallet-adapter-react\";\nimport { useEffect } from \"react\";\nimport { useAccount } from \"wagmi\";\n\nimport {\n DepositAddressPaymentOptions,\n ExternalPaymentOptions,\n} from \"@daimo/pay-common\";\nimport { ROUTES } from \"../../constants/routes\";\nimport { getAppName } from \"../../defaultConfig\";\nimport { useChainIsSupported } from \"../../hooks/useChainIsSupported\";\nimport { useDaimoPay } from \"../../hooks/useDaimoPay\";\nimport useIsMobile from \"../../hooks/useIsMobile\";\nimport { usePayContext } from \"../../hooks/usePayContext\";\nimport { CustomTheme, Languages, Mode, Theme } from \"../../types\";\nimport Modal from \"../Common/Modal\";\nimport { DaimoPayThemeProvider } from \"../DaimoPayThemeProvider/DaimoPayThemeProvider\";\nimport About from \"../Pages/About\";\nimport Confirmation from \"../Pages/Confirmation\";\nimport Connectors from \"../Pages/Connectors\";\nimport DownloadApp from \"../Pages/DownloadApp\";\nimport ErrorPage from \"../Pages/Error\";\nimport MobileConnectors from \"../Pages/MobileConnectors\";\nimport Onboarding from \"../Pages/Onboarding\";\nimport PayWithToken from \"../Pages/PayWithToken\";\nimport SelectAmount from \"../Pages/SelectAmount\";\nimport SelectDepositAddressAmount from \"../Pages/SelectDepositAddressAmount\";\nimport SelectDepositAddressChain from \"../Pages/SelectDepositAddressChain\";\nimport SelectExchange from \"../Pages/SelectExchange\";\nimport SelectExternalAmount from \"../Pages/SelectExternalAmount\";\nimport SelectMethod from \"../Pages/SelectMethod\";\nimport SelectToken from \"../Pages/SelectToken\";\nimport SelectWalletAmount from \"../Pages/SelectWalletAmount\";\nimport SelectWalletChain from \"../Pages/SelectWalletChain\";\nimport SelectZKP from \"../Pages/SelectZKP\";\nimport ConnectorSolana from \"../Pages/Solana/ConnectorSolana\";\nimport PayWithSolanaToken from \"../Pages/Solana/PayWithSolanaToken\";\nimport SelectSolanaAmount from \"../Pages/Solana/SelectSolanaAmount\";\nimport SwitchNetworks from \"../Pages/SwitchNetworks\";\nimport WaitingDepositAddress, {\n beforeLeave as waitingDepositAddressBeforeLeave,\n} from \"../Pages/WaitingDepositAddress\";\nimport WaitingExternal from \"../Pages/WaitingExternal\";\nimport WaitingWallet from \"../Pages/WaitingWallet\";\nimport ConnectUsing from \"./ConnectUsing\";\n\nexport const DaimoPayModal: React.FC<{\n mode: Mode;\n theme: Theme;\n customTheme: CustomTheme;\n lang: Languages;\n disableMobileInjector: boolean;\n}> = ({\n mode,\n theme,\n customTheme,\n lang,\n disableMobileInjector,\n}: {\n mode: Mode;\n theme: Theme;\n customTheme: CustomTheme;\n lang: Languages;\n disableMobileInjector: boolean;\n}) => {\n const context = usePayContext();\n const {\n setMode,\n setTheme,\n setCustomTheme,\n setLang,\n setDisableMobileInjector,\n } = context;\n const paymentState = context.paymentState;\n const {\n generatePreviewOrder,\n isDepositFlow,\n showSolanaPaymentMethod,\n setPaymentWaitingMessage,\n setSelectedExternalOption,\n setSelectedTokenOption,\n setSelectedSolanaTokenOption,\n setSelectedDepositAddressOption,\n setSelectedWallet,\n } = paymentState;\n const daimo = useDaimoPay();\n const { paymentState: paymentFsmState, order } = daimo;\n\n const {\n isConnected: isEthConnected,\n connector,\n chain,\n address,\n } = useAccount();\n const { connected: isSolanaConnected } = useWallet();\n const chainIsSupported = useChainIsSupported(chain?.id);\n\n // if chain is unsupported we enforce a \"switch chain\" prompt\n // closeable is independent of the warning state; warning is handled separately below\n const closeable = !(\n context.options?.enforceSupportedChains &&\n isEthConnected &&\n !chainIsSupported\n );\n\n const showBackButton =\n closeable &&\n context.route !== context.uniquePaymentMethodPage &&\n context.route !== ROUTES.SELECT_METHOD &&\n context.route !== ROUTES.CONFIRMATION &&\n context.route !== ROUTES.SELECT_TOKEN &&\n context.route !== ROUTES.ERROR &&\n paymentFsmState !== \"error\" &&\n paymentFsmState !== \"warning\";\n\n const onBack = () => {\n const meta = { event: \"click-back\" };\n if (context.route === ROUTES.DOWNLOAD) {\n context.setRoute(ROUTES.CONNECT, meta);\n } else if (context.route === ROUTES.CONNECTORS) {\n context.setRoute(ROUTES.SELECT_METHOD, meta);\n } else if (context.route === ROUTES.SELECT_AMOUNT) {\n setSelectedTokenOption(undefined);\n context.setRoute(ROUTES.SELECT_TOKEN, meta);\n } else if (context.route === ROUTES.SELECT_EXTERNAL_AMOUNT) {\n setSelectedExternalOption(undefined);\n context.setRoute(context.uniquePaymentMethodPage, meta);\n } else if (context.route === ROUTES.SELECT_DEPOSIT_ADDRESS_AMOUNT) {\n setSelectedDepositAddressOption(undefined);\n context.setRoute(ROUTES.SELECT_DEPOSIT_ADDRESS_CHAIN, meta);\n } else if (context.route === ROUTES.WAITING_EXTERNAL) {\n setPaymentWaitingMessage(undefined);\n if (isDepositFlow) {\n generatePreviewOrder();\n context.setRoute(ROUTES.SELECT_EXTERNAL_AMOUNT, meta);\n } else {\n setSelectedExternalOption(undefined);\n context.setRoute(context.uniquePaymentMethodPage, meta);\n }\n } else if (context.route === ROUTES.PAY_WITH_TOKEN) {\n if (isDepositFlow) {\n generatePreviewOrder();\n context.setRoute(ROUTES.SELECT_AMOUNT, meta);\n } else {\n setSelectedTokenOption(undefined);\n context.setRoute(ROUTES.SELECT_TOKEN, meta);\n }\n } else if (context.route === ROUTES.ONBOARDING) {\n context.setRoute(ROUTES.CONNECTORS, meta);\n } else if (context.route === ROUTES.WAITING_DEPOSIT_ADDRESS) {\n if (isDepositFlow) {\n if (paymentState.selectedDepositAddressOption === undefined) {\n context.setRoute(ROUTES.SELECT_DEPOSIT_ADDRESS_CHAIN, meta);\n } else {\n generatePreviewOrder();\n context.setRoute(ROUTES.SELECT_DEPOSIT_ADDRESS_AMOUNT, meta);\n }\n } else {\n setSelectedDepositAddressOption(undefined);\n context.setRoute(ROUTES.SELECT_DEPOSIT_ADDRESS_CHAIN, meta);\n }\n } else if (context.route === ROUTES.WAITING_WALLET) {\n if (isDepositFlow) {\n generatePreviewOrder();\n context.setRoute(ROUTES.SELECT_WALLET_AMOUNT, meta);\n } else {\n setSelectedWallet(undefined);\n context.setRoute(ROUTES.CONNECTORS, meta);\n }\n } else if (context.route === ROUTES.SOLANA_SELECT_AMOUNT) {\n setSelectedSolanaTokenOption(undefined);\n context.setRoute(ROUTES.SELECT_TOKEN, meta);\n } else if (context.route === ROUTES.SOLANA_PAY_WITH_TOKEN) {\n if (isDepositFlow) {\n generatePreviewOrder();\n context.setRoute(ROUTES.SOLANA_SELECT_AMOUNT, meta);\n } else {\n setSelectedSolanaTokenOption(undefined);\n context.setRoute(ROUTES.SELECT_TOKEN, meta);\n }\n } else {\n context.setRoute(context.uniquePaymentMethodPage, meta);\n }\n };\n\n const pages: Record<ROUTES, React.ReactNode> = {\n [ROUTES.SELECT_METHOD]: <SelectMethod />,\n [ROUTES.SELECT_TOKEN]: <SelectToken />,\n [ROUTES.SELECT_AMOUNT]: <SelectAmount />,\n [ROUTES.SELECT_EXTERNAL_AMOUNT]: <SelectExternalAmount />,\n [ROUTES.SELECT_EXCHANGE]: <SelectExchange />,\n [ROUTES.SELECT_DEPOSIT_ADDRESS_AMOUNT]: <SelectDepositAddressAmount />,\n [ROUTES.SELECT_WALLET_AMOUNT]: <SelectWalletAmount />,\n [ROUTES.SELECT_WALLET_CHAIN]: <SelectWalletChain />,\n [ROUTES.WAITING_EXTERNAL]: <WaitingExternal />,\n [ROUTES.SELECT_DEPOSIT_ADDRESS_CHAIN]: <SelectDepositAddressChain />,\n [ROUTES.WAITING_DEPOSIT_ADDRESS]: <WaitingDepositAddress />,\n [ROUTES.SELECT_ZKP2P]: <SelectZKP />,\n [ROUTES.WAITING_WALLET]: <WaitingWallet />,\n [ROUTES.CONFIRMATION]: <Confirmation />,\n [ROUTES.ERROR]: <ErrorPage />,\n [ROUTES.PAY_WITH_TOKEN]: <PayWithToken />,\n [ROUTES.SOLANA_CONNECTOR]: <ConnectorSolana />,\n [ROUTES.SOLANA_SELECT_AMOUNT]: <SelectSolanaAmount />,\n [ROUTES.SOLANA_PAY_WITH_TOKEN]: <PayWithSolanaToken />,\n // Unused routes. Kept to minimize connectkit merge conflicts.\n [ROUTES.ONBOARDING]: <Onboarding />,\n [ROUTES.ABOUT]: <About />,\n [ROUTES.DOWNLOAD]: <DownloadApp />,\n [ROUTES.CONNECTORS]: <Connectors />,\n [ROUTES.MOBILECONNECTORS]: <MobileConnectors />,\n [ROUTES.CONNECT]: <ConnectUsing />,\n [ROUTES.SWITCHNETWORKS]: <SwitchNetworks />,\n };\n\n // Registry of page-level leave guards (hooks that run before navigation)\n // For WAITING_DEPOSIT_ADDRESS, we need to pass trpc and orderId\n const leaveGuards: Partial<Record<ROUTES, () => Promise<boolean> | boolean>> =\n {\n [ROUTES.WAITING_DEPOSIT_ADDRESS]: () =>\n waitingDepositAddressBeforeLeave(context.trpc, order?.id?.toString()),\n };\n\n // Helper to wrap navigation actions with leave guard check\n const guardedAction = async (action: () => void) => {\n const guard = leaveGuards[context.route];\n\n // If no guard exists for current page, proceed with action\n if (!guard) {\n action();\n return;\n }\n\n // Otherwise, call the guard and check if navigation is allowed\n let canProceed = false;\n try {\n canProceed = await guard();\n } catch (error) {\n console.error(\"error in leave guard:\", error);\n return;\n }\n\n if (!canProceed) return;\n\n try {\n action();\n } catch (error) {\n console.error(\"error performing guarded action:\", error);\n return;\n }\n\n // dismiss warning after navigation to avoid intermediate flash\n if (paymentFsmState === \"warning\") {\n try {\n daimo.dismissWarning();\n } catch (error) {\n console.error(\"error dismissing warning:\", error);\n }\n }\n };\n\n function hide() {\n if (isDepositFlow) {\n generatePreviewOrder();\n }\n context.setOpen(false, { event: \"click-close\" });\n }\n\n const goToManualAddressScreen = (eventSuffix: string) => {\n if (paymentState.isDepositFlow) {\n context.setUniquePaymentMethodPage(ROUTES.SELECT_DEPOSIT_ADDRESS_AMOUNT);\n context.setRoute(ROUTES.SELECT_DEPOSIT_ADDRESS_AMOUNT, {\n event: `unique_payment_option_deposit_${eventSuffix}`,\n });\n } else {\n context.setUniquePaymentMethodPage(ROUTES.SELECT_DEPOSIT_ADDRESS_CHAIN);\n context.setRoute(ROUTES.WAITING_DEPOSIT_ADDRESS, {\n event: `unique_payment_option_${eventSuffix}`,\n });\n }\n };\n const { isMobile } = useIsMobile();\n\n // Override the first screen upon opening the modal.\n // 1. If uniquePaymentOption is set, navigate to that screen directly\n // 2. If the user has a wallet already connected upon opening the modal, go\n // straight to the select token screen\n // 3. If the user has no wallet connected upon opening the modal, go to the\n // select method screen\n useEffect(() => {\n if (!context.open) return;\n if (context.route !== ROUTES.SELECT_METHOD) return;\n\n if (\n paymentState.buttonProps &&\n \"uniquePaymentOption\" in paymentState.buttonProps &&\n paymentState.buttonProps.uniquePaymentOption\n ) {\n switch (paymentState.buttonProps.uniquePaymentOption) {\n case \"Tron\":\n // Find the Tron option from available deposit address options\n const tronOption = paymentState.depositAddressOptions.options?.find(\n (option) => option.id === DepositAddressPaymentOptions.TRON_USDT,\n );\n if (tronOption) {\n setSelectedDepositAddressOption(tronOption);\n goToManualAddressScreen(\"tron\");\n } else if (!paymentState.depositAddressOptions.loading) {\n // Data loaded but option not found, fallback to chain selection\n context.setUniquePaymentMethodPage(\n ROUTES.SELECT_DEPOSIT_ADDRESS_CHAIN,\n );\n context.setRoute(ROUTES.SELECT_DEPOSIT_ADDRESS_CHAIN, {\n event: \"unique_payment_option_tron_fallback\",\n });\n }\n // If still loading, do nothing and wait for next render\n break;\n case \"AllExchanges\":\n // Open exchanges list directly\n context.setUniquePaymentMethodPage(ROUTES.SELECT_EXCHANGE);\n context.setRoute(ROUTES.SELECT_EXCHANGE, {\n event: \"unique_payment_option_all_exchanges\",\n });\n break;\n case \"ManualAddress\":\n context.setUniquePaymentMethodPage(\n ROUTES.SELECT_DEPOSIT_ADDRESS_CHAIN,\n );\n context.setRoute(ROUTES.SELECT_DEPOSIT_ADDRESS_CHAIN, {\n event: \"unique_payment_option_manual_address\",\n });\n break;\n case \"Base\":\n // Find the Base option from available deposit address options\n const baseOption = paymentState.depositAddressOptions.options?.find(\n (option) => option.id === DepositAddressPaymentOptions.BASE,\n );\n if (baseOption) {\n setSelectedDepositAddressOption(baseOption);\n goToManualAddressScreen(\"base\");\n } else if (!paymentState.depositAddressOptions.loading) {\n context.setUniquePaymentMethodPage(\n ROUTES.SELECT_DEPOSIT_ADDRESS_CHAIN,\n );\n context.setRoute(ROUTES.SELECT_DEPOSIT_ADDRESS_CHAIN, {\n event: \"unique_payment_option_base_fallback\",\n });\n }\n break;\n case \"Arbitrum\":\n // Find the Arbitrum option from available deposit address options\n const arbitrumOption =\n paymentState.depositAddressOptions.options?.find(\n (option) => option.id === DepositAddressPaymentOptions.ARBITRUM,\n );\n if (arbitrumOption) {\n setSelectedDepositAddressOption(arbitrumOption);\n goToManualAddressScreen(\"arbitrum\");\n } else if (!paymentState.depositAddressOptions.loading) {\n context.setUniquePaymentMethodPage(\n ROUTES.SELECT_DEPOSIT_ADDRESS_CHAIN,\n );\n context.setRoute(ROUTES.SELECT_DEPOSIT_ADDRESS_CHAIN, {\n event: \"unique_payment_option_arbitrum_fallback\",\n });\n }\n break;\n case \"Optimism\":\n // Find the Optimism option from available deposit address options\n const optimismOption =\n paymentState.depositAddressOptions.options?.find(\n (option) => option.id === DepositAddressPaymentOptions.OP_MAINNET,\n );\n if (optimismOption) {\n setSelectedDepositAddressOption(optimismOption);\n goToManualAddressScreen(\"optimism\");\n } else if (!paymentState.depositAddressOptions.loading) {\n context.setUniquePaymentMethodPage(\n ROUTES.SELECT_DEPOSIT_ADDRESS_CHAIN,\n );\n context.setRoute(ROUTES.SELECT_DEPOSIT_ADDRESS_CHAIN, {\n event: \"unique_payment_option_optimism_fallback\",\n });\n }\n break;\n case \"Polygon\":\n // Find the Polygon option from available deposit address options\n const polygonOption =\n paymentState.depositAddressOptions.options?.find(\n (option) => option.id === DepositAddressPaymentOptions.POLYGON,\n );\n if (polygonOption) {\n setSelectedDepositAddressOption(polygonOption);\n goToManualAddressScreen(\"polygon\");\n } else if (!paymentState.depositAddressOptions.loading) {\n context.setUniquePaymentMethodPage(\n ROUTES.SELECT_DEPOSIT_ADDRESS_CHAIN,\n );\n context.setRoute(ROUTES.SELECT_DEPOSIT_ADDRESS_CHAIN, {\n event: \"unique_payment_option_polygon_fallback\",\n });\n }\n break;\n case \"Ethereum\":\n // Find the Ethereum option from available deposit address options\n const ethereumOption =\n paymentState.depositAddressOptions.options?.find(\n (option) => option.id === DepositAddressPaymentOptions.ETH_L1,\n );\n if (ethereumOption) {\n setSelectedDepositAddressOption(ethereumOption);\n goToManualAddressScreen(\"ethereum\");\n } else if (!paymentState.depositAddressOptions.loading) {\n context.setUniquePaymentMethodPage(\n ROUTES.SELECT_DEPOSIT_ADDRESS_CHAIN,\n );\n context.setRoute(ROUTES.SELECT_DEPOSIT_ADDRESS_CHAIN, {\n event: \"unique_payment_option_ethereum_fallback\",\n });\n }\n break;\n case \"Binance\":\n // Find the Binance option from available exchange options\n const exchangeOptions =\n paymentState.externalPaymentOptions.options.get(\"exchange\");\n const binanceOption = exchangeOptions?.find(\n (option) => option.id === ExternalPaymentOptions.Binance,\n );\n if (binanceOption) {\n setSelectedExternalOption(binanceOption);\n context.setUniquePaymentMethodPage(ROUTES.WAITING_EXTERNAL);\n context.setRoute(ROUTES.WAITING_EXTERNAL, {\n event: \"unique_payment_option_binance\",\n });\n } else if (!paymentState.externalPaymentOptions.loading) {\n context.setUniquePaymentMethodPage(ROUTES.SELECT_EXCHANGE);\n context.setRoute(ROUTES.SELECT_EXCHANGE, {\n event: \"unique_payment_option_binance_fallback\",\n });\n }\n break;\n case \"Coinbase\":\n // Find the Coinbase option from available exchange options\n const coinbaseExchangeOptions =\n paymentState.externalPaymentOptions.options.get(\"exchange\");\n const coinbaseOption = coinbaseExchangeOptions?.find(\n (option) => option.id === ExternalPaymentOptions.Coinbase,\n );\n if (coinbaseOption) {\n setSelectedExternalOption(coinbaseOption);\n context.setUniquePaymentMethodPage(ROUTES.WAITING_EXTERNAL);\n context.setRoute(ROUTES.WAITING_EXTERNAL, {\n event: \"unique_payment_option_coinbase\",\n });\n } else if (!paymentState.externalPaymentOptions.loading) {\n context.setUniquePaymentMethodPage(ROUTES.SELECT_EXCHANGE);\n context.setRoute(ROUTES.SELECT_EXCHANGE, {\n event: \"unique_payment_option_coinbase_fallback\",\n });\n }\n break;\n case \"Lemon\":\n // Find the Lemon option from available external options\n const lemonExternalOptions =\n paymentState.externalPaymentOptions.options.get(\"external\");\n const lemonOption = lemonExternalOptions?.find(\n (option) => option.id === ExternalPaymentOptions.Lemon,\n );\n if (lemonOption) {\n setSelectedExternalOption(lemonOption);\n context.setUniquePaymentMethodPage(ROUTES.WAITING_EXTERNAL);\n context.setRoute(ROUTES.WAITING_EXTERNAL, {\n event: \"unique_payment_option_lemon\",\n });\n } else if (!paymentState.externalPaymentOptions.loading) {\n context.setUniquePaymentMethodPage(ROUTES.SELECT_METHOD);\n context.setRoute(ROUTES.SELECT_METHOD, {\n event: \"unique_payment_option_lemon_fallback\",\n });\n }\n break;\n case \"Wallets\":\n context.setUniquePaymentMethodPage(ROUTES.CONNECTORS);\n context.setRoute(ROUTES.CONNECTORS, {\n event: \"unique_payment_option_wallets\",\n });\n break;\n default:\n context.setUniquePaymentMethodPage(ROUTES.SELECT_METHOD);\n break;\n }\n }\n\n const hasUniquePaymentOption =\n paymentState.buttonProps &&\n \"uniquePaymentOption\" in paymentState.buttonProps &&\n paymentState.buttonProps.uniquePaymentOption;\n const isWalletsUniquePaymentOption =\n paymentState.buttonProps?.uniquePaymentOption === \"Wallets\";\n\n // Skip to token selection if exactly one wallet is connected. If both\n // wallets are connected, stay on the SELECT_METHOD screen to allow the\n // user to select which wallet to use\n // If mobile injector is disabled, don't show the connected wallets.\n // If there's a unique payment option, and the unique payment option is not\n // \"Wallets\", don't auto-connect the user's wallet.\n const evmOptionsCount =\n paymentState.walletPaymentOptions.options?.length ?? 0;\n const isEvmLoading = paymentState.walletPaymentOptions.isLoading;\n const solanaOptionsCount =\n paymentState.solanaPaymentOptions.options?.length ?? 0;\n const isSolanaLoading = paymentState.solanaPaymentOptions.isLoading;\n if (\n (!hasUniquePaymentOption || isWalletsUniquePaymentOption) &&\n isEthConnected &&\n !isSolanaConnected &&\n (!isMobile || !disableMobileInjector) &&\n !isEvmLoading &&\n evmOptionsCount > 0\n ) {\n paymentState.setTokenMode(\"evm\");\n context.setRoute(ROUTES.SELECT_TOKEN, {\n event: \"eth_connected_on_open\",\n walletId: connector?.id,\n chainId: chain?.id,\n address,\n });\n } else if (\n (!hasUniquePaymentOption || isWalletsUniquePaymentOption) &&\n isSolanaConnected &&\n !isEthConnected &&\n showSolanaPaymentMethod &&\n !disableMobileInjector &&\n !isSolanaLoading &&\n solanaOptionsCount > 0\n ) {\n paymentState.setTokenMode(\"solana\");\n context.setRoute(ROUTES.SELECT_TOKEN, {\n event: \"solana_connected_on_open\",\n });\n }\n // Don't include context.route in the dependency array otherwise the user\n // can't go back from the select token screen to the select method screen\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [\n context.open,\n paymentState.walletPaymentOptions.options,\n paymentState.walletPaymentOptions.isLoading,\n paymentState.solanaPaymentOptions.options,\n paymentState.solanaPaymentOptions.isLoading,\n paymentState.externalPaymentOptions.options,\n paymentState.externalPaymentOptions.loading,\n paymentState.depositAddressOptions.options,\n paymentState.depositAddressOptions.loading,\n showSolanaPaymentMethod,\n address,\n chain?.id,\n connector?.id,\n context.uniquePaymentMethodPage,\n ]);\n\n // If we're on the connect page and the user successfully connects their\n // wallet, go to the select token page\n useEffect(() => {\n if (\n context.route === ROUTES.CONNECT ||\n context.route === ROUTES.CONNECTORS ||\n context.route === ROUTES.MOBILECONNECTORS\n ) {\n if (isEthConnected) {\n paymentState.setTokenMode(\"evm\");\n context.setRoute(ROUTES.SELECT_TOKEN, {\n event: \"connected\",\n walletId: connector?.id,\n chainId: chain?.id,\n address,\n });\n }\n }\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isEthConnected, context.route, connector?.id, chain?.id, address]);\n\n useEffect(() => setMode(mode), [mode, setMode]);\n useEffect(() => setTheme(theme), [theme, setTheme]);\n useEffect(() => setCustomTheme(customTheme), [customTheme, setCustomTheme]);\n useEffect(() => setLang(lang), [lang, setLang]);\n useEffect(\n () => setDisableMobileInjector(disableMobileInjector),\n [disableMobileInjector, setDisableMobileInjector],\n );\n\n useEffect(() => {\n const appName = getAppName();\n if (!appName || !context.open) return;\n\n const title = document.createElement(\"meta\");\n title.setAttribute(\"property\", \"og:title\");\n title.setAttribute(\"content\", appName);\n document.head.prepend(title);\n\n return () => {\n try {\n document.head.removeChild(title);\n } catch {}\n };\n }, [context.open]);\n\n return (\n <DaimoPayThemeProvider theme={theme} customTheme={customTheme} mode={mode}>\n <Modal\n open={context.open}\n pages={pages}\n pageId={context.route}\n onClose={\n closeable && paymentFsmState !== \"warning\"\n ? () => guardedAction(hide)\n : undefined\n }\n onInfo={undefined}\n onBack={showBackButton ? () => guardedAction(onBack) : undefined}\n />\n </DaimoPayThemeProvider>\n );\n};\n"],"names":["ConnectorSolana","Onboarding","Connectors","waitingDepositAddressBeforeLeave"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8CO,MAAM,gBAMR,CAAC;AAAA,EACJ,IAAA;AAAA,EACA,KAAA;AAAA,EACA,WAAA;AAAA,EACA,IAAA;AAAA,EACA,qBAAA;AACF,CAMM,KAAA;AACJ,EAAA,MAAM,UAAU,aAAc,EAAA,CAAA;AAC9B,EAAM,MAAA;AAAA,IACJ,OAAA;AAAA,IACA,QAAA;AAAA,IACA,cAAA;AAAA,IACA,OAAA;AAAA,IACA,wBAAA;AAAA,GACE,GAAA,OAAA,CAAA;AACJ,EAAA,MAAM,eAAe,OAAQ,CAAA,YAAA,CAAA;AAC7B,EAAM,MAAA;AAAA,IACJ,oBAAA;AAAA,IACA,aAAA;AAAA,IACA,uBAAA;AAAA,IACA,wBAAA;AAAA,IACA,yBAAA;AAAA,IACA,sBAAA;AAAA,IACA,4BAAA;AAAA,IACA,+BAAA;AAAA,IACA,iBAAA;AAAA,GACE,GAAA,YAAA,CAAA;AACJ,EAAA,MAAM,QAAQ,WAAY,EAAA,CAAA;AAC1B,EAAA,MAAM,EAAE,YAAA,EAAc,eAAiB,EAAA,KAAA,EAAU,GAAA,KAAA,CAAA;AAEjD,EAAM,MAAA;AAAA,IACJ,WAAa,EAAA,cAAA;AAAA,IACb,SAAA;AAAA,IACA,KAAA;AAAA,IACA,OAAA;AAAA,MACE,UAAW,EAAA,CAAA;AACf,EAAA,MAAM,EAAE,SAAA,EAAW,iBAAkB,EAAA,GAAI,SAAU,EAAA,CAAA;AACnD,EAAM,MAAA,gBAAA,GAAmB,mBAAoB,CAAA,KAAA,EAAO,EAAE,CAAA,CAAA;AAItD,EAAA,MAAM,YAAY,EAChB,OAAA,CAAQ,OAAS,EAAA,sBAAA,IACjB,kBACA,CAAC,gBAAA,CAAA,CAAA;AAGH,EAAM,MAAA,cAAA,GACJ,SACA,IAAA,OAAA,CAAQ,KAAU,KAAA,OAAA,CAAQ,2BAC1B,OAAQ,CAAA,KAAA,KAAU,MAAO,CAAA,aAAA,IACzB,OAAQ,CAAA,KAAA,KAAU,OAAO,YACzB,IAAA,OAAA,CAAQ,KAAU,KAAA,MAAA,CAAO,YACzB,IAAA,OAAA,CAAQ,UAAU,MAAO,CAAA,KAAA,IACzB,eAAoB,KAAA,OAAA,IACpB,eAAoB,KAAA,SAAA,CAAA;AAEtB,EAAA,MAAM,SAAS,MAAM;AACnB,IAAM,MAAA,IAAA,GAAO,EAAE,KAAA,EAAO,YAAa,EAAA,CAAA;AACnC,IAAI,IAAA,OAAA,CAAQ,KAAU,KAAA,MAAA,CAAO,QAAU,EAAA;AACrC,MAAQ,OAAA,CAAA,QAAA,CAAS,MAAO,CAAA,OAAA,EAAS,IAAI,CAAA,CAAA;AAAA,KAC5B,MAAA,IAAA,OAAA,CAAQ,KAAU,KAAA,MAAA,CAAO,UAAY,EAAA;AAC9C,MAAQ,OAAA,CAAA,QAAA,CAAS,MAAO,CAAA,aAAA,EAAe,IAAI,CAAA,CAAA;AAAA,KAClC,MAAA,IAAA,OAAA,CAAQ,KAAU,KAAA,MAAA,CAAO,aAAe,EAAA;AACjD,MAAA,sBAAA,CAAuB,KAAS,CAAA,CAAA,CAAA;AAChC,MAAQ,OAAA,CAAA,QAAA,CAAS,MAAO,CAAA,YAAA,EAAc,IAAI,CAAA,CAAA;AAAA,KACjC,MAAA,IAAA,OAAA,CAAQ,KAAU,KAAA,MAAA,CAAO,sBAAwB,EAAA;AAC1D,MAAA,yBAAA,CAA0B,KAAS,CAAA,CAAA,CAAA;AACnC,MAAQ,OAAA,CAAA,QAAA,CAAS,OAAQ,CAAA,uBAAA,EAAyB,IAAI,CAAA,CAAA;AAAA,KAC7C,MAAA,IAAA,OAAA,CAAQ,KAAU,KAAA,MAAA,CAAO,6BAA+B,EAAA;AACjE,MAAA,+BAAA,CAAgC,KAAS,CAAA,CAAA,CAAA;AACzC,MAAQ,OAAA,CAAA,QAAA,CAAS,MAAO,CAAA,4BAAA,EAA8B,IAAI,CAAA,CAAA;AAAA,KACjD,MAAA,IAAA,OAAA,CAAQ,KAAU,KAAA,MAAA,CAAO,gBAAkB,EAAA;AACpD,MAAA,wBAAA,CAAyB,KAAS,CAAA,CAAA,CAAA;AAClC,MAAA,IAAI,aAAe,EAAA;AACjB,QAAqB,oBAAA,EAAA,CAAA;AACrB,QAAQ,OAAA,CAAA,QAAA,CAAS,MAAO,CAAA,sBAAA,EAAwB,IAAI,CAAA,CAAA;AAAA,OAC/C,MAAA;AACL,QAAA,yBAAA,CAA0B,KAAS,CAAA,CAAA,CAAA;AACnC,QAAQ,OAAA,CAAA,QAAA,CAAS,OAAQ,CAAA,uBAAA,EAAyB,IAAI,CAAA,CAAA;AAAA,OACxD;AAAA,KACS,MAAA,IAAA,OAAA,CAAQ,KAAU,KAAA,MAAA,CAAO,cAAgB,EAAA;AAClD,MAAA,IAAI,aAAe,EAAA;AACjB,QAAqB,oBAAA,EAAA,CAAA;AACrB,QAAQ,OAAA,CAAA,QAAA,CAAS,MAAO,CAAA,aAAA,EAAe,IAAI,CAAA,CAAA;AAAA,OACtC,MAAA;AACL,QAAA,sBAAA,CAAuB,KAAS,CAAA,CAAA,CAAA;AAChC,QAAQ,OAAA,CAAA,QAAA,CAAS,MAAO,CAAA,YAAA,EAAc,IAAI,CAAA,CAAA;AAAA,OAC5C;AAAA,KACS,MAAA,IAAA,OAAA,CAAQ,KAAU,KAAA,MAAA,CAAO,UAAY,EAAA;AAC9C,MAAQ,OAAA,CAAA,QAAA,CAAS,MAAO,CAAA,UAAA,EAAY,IAAI,CAAA,CAAA;AAAA,KAC/B,MAAA,IAAA,OAAA,CAAQ,KAAU,KAAA,MAAA,CAAO,uBAAyB,EAAA;AAC3D,MAAA,IAAI,aAAe,EAAA;AACjB,QAAI,IAAA,YAAA,CAAa,iCAAiC,KAAW,CAAA,EAAA;AAC3D,UAAQ,OAAA,CAAA,QAAA,CAAS,MAAO,CAAA,4BAAA,EAA8B,IAAI,CAAA,CAAA;AAAA,SACrD,MAAA;AACL,UAAqB,oBAAA,EAAA,CAAA;AACrB,UAAQ,OAAA,CAAA,QAAA,CAAS,MAAO,CAAA,6BAAA,EAA+B,IAAI,CAAA,CAAA;AAAA,SAC7D;AAAA,OACK,MAAA;AACL,QAAA,+BAAA,CAAgC,KAAS,CAAA,CAAA,CAAA;AACzC,QAAQ,OAAA,CAAA,QAAA,CAAS,MAAO,CAAA,4BAAA,EAA8B,IAAI,CAAA,CAAA;AAAA,OAC5D;AAAA,KACS,MAAA,IAAA,OAAA,CAAQ,KAAU,KAAA,MAAA,CAAO,cAAgB,EAAA;AAClD,MAAA,IAAI,aAAe,EAAA;AACjB,QAAqB,oBAAA,EAAA,CAAA;AACrB,QAAQ,OAAA,CAAA,QAAA,CAAS,MAAO,CAAA,oBAAA,EAAsB,IAAI,CAAA,CAAA;AAAA,OAC7C,MAAA;AACL,QAAA,iBAAA,CAAkB,KAAS,CAAA,CAAA,CAAA;AAC3B,QAAQ,OAAA,CAAA,QAAA,CAAS,MAAO,CAAA,UAAA,EAAY,IAAI,CAAA,CAAA;AAAA,OAC1C;AAAA,KACS,MAAA,IAAA,OAAA,CAAQ,KAAU,KAAA,MAAA,CAAO,oBAAsB,EAAA;AACxD,MAAA,4BAAA,CAA6B,KAAS,CAAA,CAAA,CAAA;AACtC,MAAQ,OAAA,CAAA,QAAA,CAAS,MAAO,CAAA,YAAA,EAAc,IAAI,CAAA,CAAA;AAAA,KACjC,MAAA,IAAA,OAAA,CAAQ,KAAU,KAAA,MAAA,CAAO,qBAAuB,EAAA;AACzD,MAAA,IAAI,aAAe,EAAA;AACjB,QAAqB,oBAAA,EAAA,CAAA;AACrB,QAAQ,OAAA,CAAA,QAAA,CAAS,MAAO,CAAA,oBAAA,EAAsB,IAAI,CAAA,CAAA;AAAA,OAC7C,MAAA;AACL,QAAA,4BAAA,CAA6B,KAAS,CAAA,CAAA,CAAA;AACtC,QAAQ,OAAA,CAAA,QAAA,CAAS,MAAO,CAAA,YAAA,EAAc,IAAI,CAAA,CAAA;AAAA,OAC5C;AAAA,KACK,MAAA;AACL,MAAQ,OAAA,CAAA,QAAA,CAAS,OAAQ,CAAA,uBAAA,EAAyB,IAAI,CAAA,CAAA;AAAA,KACxD;AAAA,GACF,CAAA;AAEA,EAAA,MAAM,KAAyC,GAAA;AAAA,IAC7C,CAAC,MAAA,CAAO,aAAa,uBAAI,YAAa,EAAA,EAAA,CAAA;AAAA,IACtC,CAAC,MAAA,CAAO,YAAY,uBAAI,WAAY,EAAA,EAAA,CAAA;AAAA,IACpC,CAAC,MAAA,CAAO,aAAa,uBAAI,YAAa,EAAA,EAAA,CAAA;AAAA,IACtC,CAAC,MAAA,CAAO,sBAAsB,uBAAI,oBAAqB,EAAA,EAAA,CAAA;AAAA,IACvD,CAAC,MAAA,CAAO,eAAe,uBAAI,cAAe,EAAA,EAAA,CAAA;AAAA,IAC1C,CAAC,MAAA,CAAO,6BAA6B,uBAAI,0BAA2B,EAAA,EAAA,CAAA;AAAA,IACpE,CAAC,MAAA,CAAO,oBAAoB,uBAAI,kBAAmB,EAAA,EAAA,CAAA;AAAA,IACnD,CAAC,MAAA,CAAO,mBAAmB,uBAAI,iBAAkB,EAAA,EAAA,CAAA;AAAA,IACjD,CAAC,MAAA,CAAO,gBAAgB,uBAAI,eAAgB,EAAA,EAAA,CAAA;AAAA,IAC5C,CAAC,MAAA,CAAO,4BAA4B,uBAAI,yBAA0B,EAAA,EAAA,CAAA;AAAA,IAClE,CAAC,MAAA,CAAO,uBAAuB,uBAAI,qBAAsB,EAAA,EAAA,CAAA;AAAA,IACzD,CAAC,MAAA,CAAO,YAAY,uBAAI,SAAU,EAAA,EAAA,CAAA;AAAA,IAClC,CAAC,MAAA,CAAO,cAAc,uBAAI,aAAc,EAAA,EAAA,CAAA;AAAA,IACxC,CAAC,MAAA,CAAO,YAAY,uBAAI,YAAa,EAAA,EAAA,CAAA;AAAA,IACrC,CAAC,MAAA,CAAO,KAAK,uBAAI,SAAU,EAAA,EAAA,CAAA;AAAA,IAC3B,CAAC,MAAA,CAAO,cAAc,uBAAI,YAAa,EAAA,EAAA,CAAA;AAAA,IACvC,CAAC,MAAA,CAAO,gBAAgB,uBAAIA,aAAgB,EAAA,EAAA,CAAA;AAAA,IAC5C,CAAC,MAAA,CAAO,oBAAoB,uBAAI,kBAAmB,EAAA,EAAA,CAAA;AAAA,IACnD,CAAC,MAAA,CAAO,qBAAqB,uBAAI,kBAAmB,EAAA,EAAA,CAAA;AAAA;AAAA,IAEpD,CAAC,MAAA,CAAO,UAAU,uBAAIC,YAAW,EAAA,EAAA,CAAA;AAAA,IACjC,CAAC,MAAA,CAAO,KAAK,uBAAI,KAAM,EAAA,EAAA,CAAA;AAAA,IACvB,CAAC,MAAA,CAAO,QAAQ,uBAAI,WAAY,EAAA,EAAA,CAAA;AAAA,IAChC,CAAC,MAAA,CAAO,UAAU,uBAAIC,OAAW,EAAA,EAAA,CAAA;AAAA,IACjC,CAAC,MAAA,CAAO,gBAAgB,uBAAI,gBAAiB,EAAA,EAAA,CAAA;AAAA,IAC7C,CAAC,MAAA,CAAO,OAAO,uBAAI,YAAa,EAAA,EAAA,CAAA;AAAA,IAChC,CAAC,MAAA,CAAO,cAAc,uBAAI,cAAe,EAAA,EAAA,CAAA;AAAA,GAC3C,CAAA;AAIA,EAAA,MAAM,WACJ,GAAA;AAAA,IACE,CAAC,MAAO,CAAA,uBAAuB,GAAG,MAChCC,WAAiC,CAAA,OAAA,CAAQ,IAAM,EAAA,KAAA,EAAO,EAAI,EAAA,QAAA,EAAU,CAAA;AAAA,GACxE,CAAA;AAGF,EAAM,MAAA,aAAA,GAAgB,OAAO,MAAuB,KAAA;AAClD,IAAM,MAAA,KAAA,GAAQ,WAAY,CAAA,OAAA,CAAQ,KAAK,CAAA,CAAA;AAGvC,IAAA,IAAI,CAAC,KAAO,EAAA;AACV,MAAO,MAAA,EAAA,CAAA;AACP,MAAA,OAAA;AAAA,KACF;AAGA,IAAA,IAAI,UAAa,GAAA,KAAA,CAAA;AACjB,IAAI,IAAA;AACF,MAAA,UAAA,GAAa,MAAM,KAAM,EAAA,CAAA;AAAA,aAClB,KAAO,EAAA;AACd,MAAQ,OAAA,CAAA,KAAA,CAAM,yBAAyB,KAAK,CAAA,CAAA;AAC5C,MAAA,OAAA;AAAA,KACF;AAEA,IAAA,IAAI,CAAC,UAAY,EAAA,OAAA;AAEjB,IAAI,IAAA;AACF,MAAO,MAAA,EAAA,CAAA;AAAA,aACA,KAAO,EAAA;AACd,MAAQ,OAAA,CAAA,KAAA,CAAM,oCAAoC,KAAK,CAAA,CAAA;AACvD,MAAA,OAAA;AAAA,KACF;AAGA,IAAA,IAAI,oBAAoB,SAAW,EAAA;AACjC,MAAI,IAAA;AACF,QAAA,KAAA,CAAM,cAAe,EAAA,CAAA;AAAA,eACd,KAAO,EAAA;AACd,QAAQ,OAAA,CAAA,KAAA,CAAM,6BAA6B,KAAK,CAAA,CAAA;AAAA,OAClD;AAAA,KACF;AAAA,GACF,CAAA;AAEA,EAAA,SAAS,IAAO,GAAA;AACd,IAAA,IAAI,aAAe,EAAA;AACjB,MAAqB,oBAAA,EAAA,CAAA;AAAA,KACvB;AACA,IAAA,OAAA,CAAQ,OAAQ,CAAA,KAAA,EAAO,EAAE,KAAA,EAAO,eAAe,CAAA,CAAA;AAAA,GACjD;AAEA,EAAM,MAAA,uBAAA,GAA0B,CAAC,WAAwB,KAAA;AACvD,IAAA,IAAI,aAAa,aAAe,EAAA;AAC9B,MAAQ,OAAA,CAAA,0BAAA,CAA2B,OAAO,6BAA6B,CAAA,CAAA;AACvE,MAAQ,OAAA,CAAA,QAAA,CAAS,OAAO,6BAA+B,EAAA;AAAA,QACrD,KAAA,EAAO,iCAAiC,WAAW,CAAA,CAAA;AAAA,OACpD,CAAA,CAAA;AAAA,KACI,MAAA;AACL,MAAQ,OAAA,CAAA,0BAAA,CAA2B,OAAO,4BAA4B,CAAA,CAAA;AACtE,MAAQ,OAAA,CAAA,QAAA,CAAS,OAAO,uBAAyB,EAAA;AAAA,QAC/C,KAAA,EAAO,yBAAyB,WAAW,CAAA,CAAA;AAAA,OAC5C,CAAA,CAAA;AAAA,KACH;AAAA,GACF,CAAA;AACA,EAAM,MAAA,EAAE,QAAS,EAAA,GAAI,WAAY,EAAA,CAAA;AAQjC,EAAA,SAAA,CAAU,MAAM;AACd,IAAI,IAAA,CAAC,QAAQ,IAAM,EAAA,OAAA;AACnB,IAAI,IAAA,OAAA,CAAQ,KAAU,KAAA,MAAA,CAAO,aAAe,EAAA,OAAA;AAE5C,IAAA,IACE,aAAa,WACb,IAAA,qBAAA,IAAyB,aAAa,WACtC,IAAA,YAAA,CAAa,YAAY,mBACzB,EAAA;AACA,MAAQ,QAAA,YAAA,CAAa,YAAY,mBAAqB;AAAA,QACpD,KAAK,MAAA;AAEH,UAAM,MAAA,UAAA,GAAa,YAAa,CAAA,qBAAA,CAAsB,OAAS,EAAA,IAAA;AAAA,YAC7D,CAAC,MAAA,KAAW,MAAO,CAAA,EAAA,KAAO,4BAA6B,CAAA,SAAA;AAAA,WACzD,CAAA;AACA,UAAA,IAAI,UAAY,EAAA;AACd,YAAA,+BAAA,CAAgC,UAAU,CAAA,CAAA;AAC1C,YAAA,uBAAA,CAAwB,MAAM,CAAA,CAAA;AAAA,WACrB,MAAA,IAAA,CAAC,YAAa,CAAA,qBAAA,CAAsB,OAAS,EAAA;AAEtD,YAAQ,OAAA,CAAA,0BAAA;AAAA,cACN,MAAO,CAAA,4BAAA;AAAA,aACT,CAAA;AACA,YAAQ,OAAA,CAAA,QAAA,CAAS,OAAO,4BAA8B,EAAA;AAAA,cACpD,KAAO,EAAA,qCAAA;AAAA,aACR,CAAA,CAAA;AAAA,WACH;AAEA,UAAA,MAAA;AAAA,QACF,KAAK,cAAA;AAEH,UAAQ,OAAA,CAAA,0BAAA,CAA2B,OAAO,eAAe,CAAA,CAAA;AACzD,UAAQ,OAAA,CAAA,QAAA,CAAS,OAAO,eAAiB,EAAA;AAAA,YACvC,KAAO,EAAA,qCAAA;AAAA,WACR,CAAA,CAAA;AACD,UAAA,MAAA;AAAA,QACF,KAAK,eAAA;AACH,UAAQ,OAAA,CAAA,0BAAA;AAAA,YACN,MAAO,CAAA,4BAAA;AAAA,WACT,CAAA;AACA,UAAQ,OAAA,CAAA,QAAA,CAAS,OAAO,4BAA8B,EAAA;AAAA,YACpD,KAAO,EAAA,sCAAA;AAAA,WACR,CAAA,CAAA;AACD,UAAA,MAAA;AAAA,QACF,KAAK,MAAA;AAEH,UAAM,MAAA,UAAA,GAAa,YAAa,CAAA,qBAAA,CAAsB,OAAS,EAAA,IAAA;AAAA,YAC7D,CAAC,MAAA,KAAW,MAAO,CAAA,EAAA,KAAO,4BAA6B,CAAA,IAAA;AAAA,WACzD,CAAA;AACA,UAAA,IAAI,UAAY,EAAA;AACd,YAAA,+BAAA,CAAgC,UAAU,CAAA,CAAA;AAC1C,YAAA,uBAAA,CAAwB,MAAM,CAAA,CAAA;AAAA,WACrB,MAAA,IAAA,CAAC,YAAa,CAAA,qBAAA,CAAsB,OAAS,EAAA;AACtD,YAAQ,OAAA,CAAA,0BAAA;AAAA,cACN,MAAO,CAAA,4BAAA;AAAA,aACT,CAAA;AACA,YAAQ,OAAA,CAAA,QAAA,CAAS,OAAO,4BAA8B,EAAA;AAAA,cACpD,KAAO,EAAA,qCAAA;AAAA,aACR,CAAA,CAAA;AAAA,WACH;AACA,UAAA,MAAA;AAAA,QACF,KAAK,UAAA;AAEH,UAAM,MAAA,cAAA,GACJ,YAAa,CAAA,qBAAA,CAAsB,OAAS,EAAA,IAAA;AAAA,YAC1C,CAAC,MAAA,KAAW,MAAO,CAAA,EAAA,KAAO,4BAA6B,CAAA,QAAA;AAAA,WACzD,CAAA;AACF,UAAA,IAAI,cAAgB,EAAA;AAClB,YAAA,+BAAA,CAAgC,cAAc,CAAA,CAAA;AAC9C,YAAA,uBAAA,CAAwB,UAAU,CAAA,CAAA;AAAA,WACzB,MAAA,IAAA,CAAC,YAAa,CAAA,qBAAA,CAAsB,OAAS,EAAA;AACtD,YAAQ,OAAA,CAAA,0BAAA;AAAA,cACN,MAAO,CAAA,4BAAA;AAAA,aACT,CAAA;AACA,YAAQ,OAAA,CAAA,QAAA,CAAS,OAAO,4BAA8B,EAAA;AAAA,cACpD,KAAO,EAAA,yCAAA;AAAA,aACR,CAAA,CAAA;AAAA,WACH;AACA,UAAA,MAAA;AAAA,QACF,KAAK,UAAA;AAEH,UAAM,MAAA,cAAA,GACJ,YAAa,CAAA,qBAAA,CAAsB,OAAS,EAAA,IAAA;AAAA,YAC1C,CAAC,MAAA,KAAW,MAAO,CAAA,EAAA,KAAO,4BAA6B,CAAA,UAAA;AAAA,WACzD,CAAA;AACF,UAAA,IAAI,cAAgB,EAAA;AAClB,YAAA,+BAAA,CAAgC,cAAc,CAAA,CAAA;AAC9C,YAAA,uBAAA,CAAwB,UAAU,CAAA,CAAA;AAAA,WACzB,MAAA,IAAA,CAAC,YAAa,CAAA,qBAAA,CAAsB,OAAS,EAAA;AACtD,YAAQ,OAAA,CAAA,0BAAA;AAAA,cACN,MAAO,CAAA,4BAAA;AAAA,aACT,CAAA;AACA,YAAQ,OAAA,CAAA,QAAA,CAAS,OAAO,4BAA8B,EAAA;AAAA,cACpD,KAAO,EAAA,yCAAA;AAAA,aACR,CAAA,CAAA;AAAA,WACH;AACA,UAAA,MAAA;AAAA,QACF,KAAK,SAAA;AAEH,UAAM,MAAA,aAAA,GACJ,YAAa,CAAA,qBAAA,CAAsB,OAAS,EAAA,IAAA;AAAA,YAC1C,CAAC,MAAA,KAAW,MAAO,CAAA,EAAA,KAAO,4BAA6B,CAAA,OAAA;AAAA,WACzD,CAAA;AACF,UAAA,IAAI,aAAe,EAAA;AACjB,YAAA,+BAAA,CAAgC,aAAa,CAAA,CAAA;AAC7C,YAAA,uBAAA,CAAwB,SAAS,CAAA,CAAA;AAAA,WACxB,MAAA,IAAA,CAAC,YAAa,CAAA,qBAAA,CAAsB,OAAS,EAAA;AACtD,YAAQ,OAAA,CAAA,0BAAA;AAAA,cACN,MAAO,CAAA,4BAAA;AAAA,aACT,CAAA;AACA,YAAQ,OAAA,CAAA,QAAA,CAAS,OAAO,4BAA8B,EAAA;AAAA,cACpD,KAAO,EAAA,wCAAA;AAAA,aACR,CAAA,CAAA;AAAA,WACH;AACA,UAAA,MAAA;AAAA,QACF,KAAK,UAAA;AAEH,UAAM,MAAA,cAAA,GACJ,YAAa,CAAA,qBAAA,CAAsB,OAAS,EAAA,IAAA;AAAA,YAC1C,CAAC,MAAA,KAAW,MAAO,CAAA,EAAA,KAAO,4BAA6B,CAAA,MAAA;AAAA,WACzD,CAAA;AACF,UAAA,IAAI,cAAgB,EAAA;AAClB,YAAA,+BAAA,CAAgC,cAAc,CAAA,CAAA;AAC9C,YAAA,uBAAA,CAAwB,UAAU,CAAA,CAAA;AAAA,WACzB,MAAA,IAAA,CAAC,YAAa,CAAA,qBAAA,CAAsB,OAAS,EAAA;AACtD,YAAQ,OAAA,CAAA,0BAAA;AAAA,cACN,MAAO,CAAA,4BAAA;AAAA,aACT,CAAA;AACA,YAAQ,OAAA,CAAA,QAAA,CAAS,OAAO,4BAA8B,EAAA;AAAA,cACpD,KAAO,EAAA,yCAAA;AAAA,aACR,CAAA,CAAA;AAAA,WACH;AACA,UAAA,MAAA;AAAA,QACF,KAAK,SAAA;AAEH,UAAA,MAAM,eACJ,GAAA,YAAA,CAAa,sBAAuB,CAAA,OAAA,CAAQ,IAAI,UAAU,CAAA,CAAA;AAC5D,UAAA,MAAM,gBAAgB,eAAiB,EAAA,IAAA;AAAA,YACrC,CAAC,MAAA,KAAW,MAAO,CAAA,EAAA,KAAO,sBAAuB,CAAA,OAAA;AAAA,WACnD,CAAA;AACA,UAAA,IAAI,aAAe,EAAA;AACjB,YAAA,yBAAA,CAA0B,aAAa,CAAA,CAAA;AACvC,YAAQ,OAAA,CAAA,0BAAA,CAA2B,OAAO,gBAAgB,CAAA,CAAA;AAC1D,YAAQ,OAAA,CAAA,QAAA,CAAS,OAAO,gBAAkB,EAAA;AAAA,cACxC,KAAO,EAAA,+BAAA;AAAA,aACR,CAAA,CAAA;AAAA,WACQ,MAAA,IAAA,CAAC,YAAa,CAAA,sBAAA,CAAuB,OAAS,EAAA;AACvD,YAAQ,OAAA,CAAA,0BAAA,CAA2B,OAAO,eAAe,CAAA,CAAA;AACzD,YAAQ,OAAA,CAAA,QAAA,CAAS,OAAO,eAAiB,EAAA;AAAA,cACvC,KAAO,EAAA,wCAAA;AAAA,aACR,CAAA,CAAA;AAAA,WACH;AACA,UAAA,MAAA;AAAA,QACF,KAAK,UAAA;AAEH,UAAA,MAAM,uBACJ,GAAA,YAAA,CAAa,sBAAuB,CAAA,OAAA,CAAQ,IAAI,UAAU,CAAA,CAAA;AAC5D,UAAA,MAAM,iBAAiB,uBAAyB,EAAA,IAAA;AAAA,YAC9C,CAAC,MAAA,KAAW,MAAO,CAAA,EAAA,KAAO,sBAAuB,CAAA,QAAA;AAAA,WACnD,CAAA;AACA,UAAA,IAAI,cAAgB,EAAA;AAClB,YAAA,yBAAA,CAA0B,cAAc,CAAA,CAAA;AACxC,YAAQ,OAAA,CAAA,0BAAA,CAA2B,OAAO,gBAAgB,CAAA,CAAA;AAC1D,YAAQ,OAAA,CAAA,QAAA,CAAS,OAAO,gBAAkB,EAAA;AAAA,cACxC,KAAO,EAAA,gCAAA;AAAA,aACR,CAAA,CAAA;AAAA,WACQ,MAAA,IAAA,CAAC,YAAa,CAAA,sBAAA,CAAuB,OAAS,EAAA;AACvD,YAAQ,OAAA,CAAA,0BAAA,CAA2B,OAAO,eAAe,CAAA,CAAA;AACzD,YAAQ,OAAA,CAAA,QAAA,CAAS,OAAO,eAAiB,EAAA;AAAA,cACvC,KAAO,EAAA,yCAAA;AAAA,aACR,CAAA,CAAA;AAAA,WACH;AACA,UAAA,MAAA;AAAA,QACF,KAAK,OAAA;AAEH,UAAA,MAAM,oBACJ,GAAA,YAAA,CAAa,sBAAuB,CAAA,OAAA,CAAQ,IAAI,UAAU,CAAA,CAAA;AAC5D,UAAA,MAAM,cAAc,oBAAsB,EAAA,IAAA;AAAA,YACxC,CAAC,MAAA,KAAW,MAAO,CAAA,EAAA,KAAO,sBAAuB,CAAA,KAAA;AAAA,WACnD,CAAA;AACA,UAAA,IAAI,WAAa,EAAA;AACf,YAAA,yBAAA,CAA0B,WAAW,CAAA,CAAA;AACrC,YAAQ,OAAA,CAAA,0BAAA,CAA2B,OAAO,gBAAgB,CAAA,CAAA;AAC1D,YAAQ,OAAA,CAAA,QAAA,CAAS,OAAO,gBAAkB,EAAA;AAAA,cACxC,KAAO,EAAA,6BAAA;AAAA,aACR,CAAA,CAAA;AAAA,WACQ,MAAA,IAAA,CAAC,YAAa,CAAA,sBAAA,CAAuB,OAAS,EAAA;AACvD,YAAQ,OAAA,CAAA,0BAAA,CAA2B,OAAO,aAAa,CAAA,CAAA;AACvD,YAAQ,OAAA,CAAA,QAAA,CAAS,OAAO,aAAe,EAAA;AAAA,cACrC,KAAO,EAAA,sCAAA;AAAA,aACR,CAAA,CAAA;AAAA,WACH;AACA,UAAA,MAAA;AAAA,QACF,KAAK,SAAA;AACH,UAAQ,OAAA,CAAA,0BAAA,CAA2B,OAAO,UAAU,CAAA,CAAA;AACpD,UAAQ,OAAA,CAAA,QAAA,CAAS,OAAO,UAAY,EAAA;AAAA,YAClC,KAAO,EAAA,+BAAA;AAAA,WACR,CAAA,CAAA;AACD,UAAA,MAAA;AAAA,QACF;AACE,UAAQ,OAAA,CAAA,0BAAA,CAA2B,OAAO,aAAa,CAAA,CAAA;AACvD,UAAA,MAAA;AAAA,OACJ;AAAA,KACF;AAEA,IAAA,MAAM,yBACJ,YAAa,CAAA,WAAA,IACb,yBAAyB,YAAa,CAAA,WAAA,IACtC,aAAa,WAAY,CAAA,mBAAA,CAAA;AAC3B,IAAM,MAAA,4BAAA,GACJ,YAAa,CAAA,WAAA,EAAa,mBAAwB,KAAA,SAAA,CAAA;AAQpD,IAAA,MAAM,eACJ,GAAA,YAAA,CAAa,oBAAqB,CAAA,OAAA,EAAS,MAAU,IAAA,CAAA,CAAA;AACvD,IAAM,MAAA,YAAA,GAAe,aAAa,oBAAqB,CAAA,SAAA,CAAA;AACvD,IAAA,MAAM,kBACJ,GAAA,YAAA,CAAa,oBAAqB,CAAA,OAAA,EAAS,MAAU,IAAA,CAAA,CAAA;AACvD,IAAM,MAAA,eAAA,GAAkB,aAAa,oBAAqB,CAAA,SAAA,CAAA;AAC1D,IAAA,IAAA,CACG,CAAC,sBAAA,IAA0B,4BAC5B,KAAA,cAAA,IACA,CAAC,iBAAA,KACA,CAAC,QAAA,IAAY,CAAC,qBAAA,CAAA,IACf,CAAC,YAAA,IACD,kBAAkB,CAClB,EAAA;AACA,MAAA,YAAA,CAAa,aAAa,KAAK,CAAA,CAAA;AAC/B,MAAQ,OAAA,CAAA,QAAA,CAAS,OAAO,YAAc,EAAA;AAAA,QACpC,KAAO,EAAA,uBAAA;AAAA,QACP,UAAU,SAAW,EAAA,EAAA;AAAA,QACrB,SAAS,KAAO,EAAA,EAAA;AAAA,QAChB,OAAA;AAAA,OACD,CAAA,CAAA;AAAA,KAEA,MAAA,IAAA,CAAA,CAAC,sBAA0B,IAAA,4BAAA,KAC5B,iBACA,IAAA,CAAC,cACD,IAAA,uBAAA,IACA,CAAC,qBAAA,IACD,CAAC,eAAA,IACD,qBAAqB,CACrB,EAAA;AACA,MAAA,YAAA,CAAa,aAAa,QAAQ,CAAA,CAAA;AAClC,MAAQ,OAAA,CAAA,QAAA,CAAS,OAAO,YAAc,EAAA;AAAA,QACpC,KAAO,EAAA,0BAAA;AAAA,OACR,CAAA,CAAA;AAAA,KACH;AAAA,GAIC,EAAA;AAAA,IACD,OAAQ,CAAA,IAAA;AAAA,IACR,aAAa,oBAAqB,CAAA,OAAA;AAAA,IAClC,aAAa,oBAAqB,CAAA,SAAA;AAAA,IAClC,aAAa,oBAAqB,CAAA,OAAA;AAAA,IAClC,aAAa,oBAAqB,CAAA,SAAA;AAAA,IAClC,aAAa,sBAAuB,CAAA,OAAA;AAAA,IACpC,aAAa,sBAAuB,CAAA,OAAA;AAAA,IACpC,aAAa,qBAAsB,CAAA,OAAA;AAAA,IACnC,aAAa,qBAAsB,CAAA,OAAA;AAAA,IACnC,uBAAA;AAAA,IACA,OAAA;AAAA,IACA,KAAO,EAAA,EAAA;AAAA,IACP,SAAW,EAAA,EAAA;AAAA,IACX,OAAQ,CAAA,uBAAA;AAAA,GACT,CAAA,CAAA;AAID,EAAA,SAAA,CAAU,MAAM;AACd,IACE,IAAA,OAAA,CAAQ,KAAU,KAAA,MAAA,CAAO,OACzB,IAAA,OAAA,CAAQ,KAAU,KAAA,MAAA,CAAO,UACzB,IAAA,OAAA,CAAQ,KAAU,KAAA,MAAA,CAAO,gBACzB,EAAA;AACA,MAAA,IAAI,cAAgB,EAAA;AAClB,QAAA,YAAA,CAAa,aAAa,KAAK,CAAA,CAAA;AAC/B,QAAQ,OAAA,CAAA,QAAA,CAAS,OAAO,YAAc,EAAA;AAAA,UACpC,KAAO,EAAA,WAAA;AAAA,UACP,UAAU,SAAW,EAAA,EAAA;AAAA,UACrB,SAAS,KAAO,EAAA,EAAA;AAAA,UAChB,OAAA;AAAA,SACD,CAAA,CAAA;AAAA,OACH;AAAA,KACF;AAAA,GAGF,EAAG,CAAC,cAAA,EAAgB,OAAQ,CAAA,KAAA,EAAO,WAAW,EAAI,EAAA,KAAA,EAAO,EAAI,EAAA,OAAO,CAAC,CAAA,CAAA;AAErE,EAAA,SAAA,CAAU,MAAM,OAAQ,CAAA,IAAI,GAAG,CAAC,IAAA,EAAM,OAAO,CAAC,CAAA,CAAA;AAC9C,EAAA,SAAA,CAAU,MAAM,QAAS,CAAA,KAAK,GAAG,CAAC,KAAA,EAAO,QAAQ,CAAC,CAAA,CAAA;AAClD,EAAA,SAAA,CAAU,MAAM,cAAe,CAAA,WAAW,GAAG,CAAC,WAAA,EAAa,cAAc,CAAC,CAAA,CAAA;AAC1E,EAAA,SAAA,CAAU,MAAM,OAAQ,CAAA,IAAI,GAAG,CAAC,IAAA,EAAM,OAAO,CAAC,CAAA,CAAA;AAC9C,EAAA,SAAA;AAAA,IACE,MAAM,yBAAyB,qBAAqB,CAAA;AAAA,IACpD,CAAC,uBAAuB,wBAAwB,CAAA;AAAA,GAClD,CAAA;AAEA,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,MAAM,UAAU,UAAW,EAAA,CAAA;AAC3B,IAAA,IAAI,CAAC,OAAA,IAAW,CAAC,OAAA,CAAQ,IAAM,EAAA,OAAA;AAE/B,IAAM,MAAA,KAAA,GAAQ,QAAS,CAAA,aAAA,CAAc,MAAM,CAAA,CAAA;AAC3C,IAAM,KAAA,CAAA,YAAA,CAAa,YAAY,UAAU,CAAA,CAAA;AACzC,IAAM,KAAA,CAAA,YAAA,CAAa,WAAW,OAAO,CAAA,CAAA;AACrC,IAAS,QAAA,CAAA,IAAA,CAAK,QAAQ,KAAK,CAAA,CAAA;AAE3B,IAAA,OAAO,MAAM;AACX,MAAI,IAAA;AACF,QAAS,QAAA,CAAA,IAAA,CAAK,YAAY,KAAK,CAAA,CAAA;AAAA,OACzB,CAAA,MAAA;AAAA,OAAC;AAAA,KACX,CAAA;AAAA,GACC,EAAA,CAAC,OAAQ,CAAA,IAAI,CAAC,CAAA,CAAA;AAEjB,EAAA,uBACG,GAAA,CAAA,qBAAA,EAAA,EAAsB,KAAc,EAAA,WAAA,EAA0B,IAC7D,EAAA,QAAA,kBAAA,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,MAAM,OAAQ,CAAA,IAAA;AAAA,MACd,KAAA;AAAA,MACA,QAAQ,OAAQ,CAAA,KAAA;AAAA,MAChB,SACE,SAAa,IAAA,eAAA,KAAoB,YAC7B,MAAM,aAAA,CAAc,IAAI,CACxB,GAAA,KAAA,CAAA;AAAA,MAEN,MAAQ,EAAA,KAAA,CAAA;AAAA,MACR,MAAQ,EAAA,cAAA,GAAiB,MAAM,aAAA,CAAc,MAAM,CAAI,GAAA,KAAA,CAAA;AAAA,KAAA;AAAA,GAE3D,EAAA,CAAA,CAAA;AAEJ;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../../../../src/components/DaimoPayModal/index.tsx"],"sourcesContent":["import { useWallet } from \"@solana/wallet-adapter-react\";\nimport { useEffect } from \"react\";\nimport { useAccount } from \"wagmi\";\n\nimport {\n DepositAddressPaymentOptions,\n ExternalPaymentOptions,\n} from \"@daimo/pay-common\";\nimport { ROUTES } from \"../../constants/routes\";\nimport { getAppName } from \"../../defaultConfig\";\nimport { useChainIsSupported } from \"../../hooks/useChainIsSupported\";\nimport { useDaimoPay } from \"../../hooks/useDaimoPay\";\nimport useIsMobile from \"../../hooks/useIsMobile\";\nimport { usePayContext } from \"../../hooks/usePayContext\";\nimport { CustomTheme, Languages, Mode, Theme } from \"../../types\";\nimport Modal from \"../Common/Modal\";\nimport { DaimoPayThemeProvider } from \"../DaimoPayThemeProvider/DaimoPayThemeProvider\";\nimport About from \"../Pages/About\";\nimport Confirmation from \"../Pages/Confirmation\";\nimport Connectors from \"../Pages/Connectors\";\nimport DownloadApp from \"../Pages/DownloadApp\";\nimport ErrorPage from \"../Pages/Error\";\nimport MobileConnectors from \"../Pages/MobileConnectors\";\nimport Onboarding from \"../Pages/Onboarding\";\nimport PayWithToken from \"../Pages/PayWithToken\";\nimport SelectAmount from \"../Pages/SelectAmount\";\nimport SelectDepositAddressAmount from \"../Pages/SelectDepositAddressAmount\";\nimport SelectDepositAddressChain from \"../Pages/SelectDepositAddressChain\";\nimport SelectExchange from \"../Pages/SelectExchange\";\nimport SelectExternalAmount from \"../Pages/SelectExternalAmount\";\nimport SelectMethod from \"../Pages/SelectMethod\";\nimport SelectToken from \"../Pages/SelectToken\";\nimport SelectWalletAmount from \"../Pages/SelectWalletAmount\";\nimport SelectWalletChain from \"../Pages/SelectWalletChain\";\nimport SelectZKP from \"../Pages/SelectZKP\";\nimport ConnectorSolana from \"../Pages/Solana/ConnectorSolana\";\nimport PayWithSolanaToken from \"../Pages/Solana/PayWithSolanaToken\";\nimport SelectSolanaAmount from \"../Pages/Solana/SelectSolanaAmount\";\nimport SwitchNetworks from \"../Pages/SwitchNetworks\";\nimport WaitingDepositAddress, {\n beforeLeave as waitingDepositAddressBeforeLeave,\n} from \"../Pages/WaitingDepositAddress\";\nimport WaitingExternal from \"../Pages/WaitingExternal\";\nimport WaitingWallet from \"../Pages/WaitingWallet\";\nimport ConnectUsing from \"./ConnectUsing\";\n\nexport const DaimoPayModal: React.FC<{\n mode: Mode;\n theme: Theme;\n customTheme: CustomTheme;\n lang: Languages;\n disableMobileInjector: boolean;\n}> = ({\n mode,\n theme,\n customTheme,\n lang,\n disableMobileInjector,\n}: {\n mode: Mode;\n theme: Theme;\n customTheme: CustomTheme;\n lang: Languages;\n disableMobileInjector: boolean;\n}) => {\n const context = usePayContext();\n const {\n setMode,\n setTheme,\n setCustomTheme,\n setLang,\n setDisableMobileInjector,\n } = context;\n const paymentState = context.paymentState;\n const {\n generatePreviewOrder,\n isDepositFlow,\n setPaymentWaitingMessage,\n setSelectedExternalOption,\n setSelectedTokenOption,\n setSelectedSolanaTokenOption,\n setSelectedDepositAddressOption,\n setSelectedWallet,\n } = paymentState;\n const daimo = useDaimoPay();\n const { paymentState: paymentFsmState, order } = daimo;\n\n const {\n isConnected: isEthConnected,\n connector,\n chain,\n address,\n } = useAccount();\n const { connected: isSolanaConnected } = useWallet();\n const chainIsSupported = useChainIsSupported(chain?.id);\n\n // if chain is unsupported we enforce a \"switch chain\" prompt\n // closeable is independent of the warning state; warning is handled separately below\n const closeable = !(\n context.options?.enforceSupportedChains &&\n isEthConnected &&\n !chainIsSupported\n );\n\n const showBackButton =\n closeable &&\n context.route !== context.uniquePaymentMethodPage &&\n context.route !== ROUTES.SELECT_METHOD &&\n context.route !== ROUTES.CONFIRMATION &&\n context.route !== ROUTES.SELECT_TOKEN &&\n context.route !== ROUTES.ERROR &&\n paymentFsmState !== \"error\" &&\n paymentFsmState !== \"warning\";\n\n const onBack = () => {\n const meta = { event: \"click-back\" };\n if (context.route === ROUTES.DOWNLOAD) {\n context.setRoute(ROUTES.CONNECT, meta);\n } else if (context.route === ROUTES.CONNECTORS) {\n context.setRoute(ROUTES.SELECT_METHOD, meta);\n } else if (context.route === ROUTES.SELECT_AMOUNT) {\n setSelectedTokenOption(undefined);\n context.setRoute(ROUTES.SELECT_TOKEN, meta);\n } else if (context.route === ROUTES.SELECT_EXTERNAL_AMOUNT) {\n setSelectedExternalOption(undefined);\n context.setRoute(context.uniquePaymentMethodPage, meta);\n } else if (context.route === ROUTES.SELECT_DEPOSIT_ADDRESS_AMOUNT) {\n setSelectedDepositAddressOption(undefined);\n context.setRoute(ROUTES.SELECT_DEPOSIT_ADDRESS_CHAIN, meta);\n } else if (context.route === ROUTES.WAITING_EXTERNAL) {\n setPaymentWaitingMessage(undefined);\n if (isDepositFlow) {\n generatePreviewOrder();\n context.setRoute(ROUTES.SELECT_EXTERNAL_AMOUNT, meta);\n } else {\n setSelectedExternalOption(undefined);\n context.setRoute(context.uniquePaymentMethodPage, meta);\n }\n } else if (context.route === ROUTES.PAY_WITH_TOKEN) {\n if (isDepositFlow) {\n generatePreviewOrder();\n context.setRoute(ROUTES.SELECT_AMOUNT, meta);\n } else {\n setSelectedTokenOption(undefined);\n context.setRoute(ROUTES.SELECT_TOKEN, meta);\n }\n } else if (context.route === ROUTES.ONBOARDING) {\n context.setRoute(ROUTES.CONNECTORS, meta);\n } else if (context.route === ROUTES.WAITING_DEPOSIT_ADDRESS) {\n if (isDepositFlow) {\n if (paymentState.selectedDepositAddressOption === undefined) {\n context.setRoute(ROUTES.SELECT_DEPOSIT_ADDRESS_CHAIN, meta);\n } else {\n generatePreviewOrder();\n context.setRoute(ROUTES.SELECT_DEPOSIT_ADDRESS_AMOUNT, meta);\n }\n } else {\n setSelectedDepositAddressOption(undefined);\n context.setRoute(ROUTES.SELECT_DEPOSIT_ADDRESS_CHAIN, meta);\n }\n } else if (context.route === ROUTES.WAITING_WALLET) {\n if (isDepositFlow) {\n generatePreviewOrder();\n context.setRoute(ROUTES.SELECT_WALLET_AMOUNT, meta);\n } else {\n setSelectedWallet(undefined);\n context.setRoute(ROUTES.CONNECTORS, meta);\n }\n } else if (context.route === ROUTES.SOLANA_SELECT_AMOUNT) {\n setSelectedSolanaTokenOption(undefined);\n context.setRoute(ROUTES.SELECT_TOKEN, meta);\n } else if (context.route === ROUTES.SOLANA_PAY_WITH_TOKEN) {\n if (isDepositFlow) {\n generatePreviewOrder();\n context.setRoute(ROUTES.SOLANA_SELECT_AMOUNT, meta);\n } else {\n setSelectedSolanaTokenOption(undefined);\n context.setRoute(ROUTES.SELECT_TOKEN, meta);\n }\n } else {\n context.setRoute(context.uniquePaymentMethodPage, meta);\n }\n };\n\n const pages: Record<ROUTES, React.ReactNode> = {\n [ROUTES.SELECT_METHOD]: <SelectMethod />,\n [ROUTES.SELECT_TOKEN]: <SelectToken />,\n [ROUTES.SELECT_AMOUNT]: <SelectAmount />,\n [ROUTES.SELECT_EXTERNAL_AMOUNT]: <SelectExternalAmount />,\n [ROUTES.SELECT_EXCHANGE]: <SelectExchange />,\n [ROUTES.SELECT_DEPOSIT_ADDRESS_AMOUNT]: <SelectDepositAddressAmount />,\n [ROUTES.SELECT_WALLET_AMOUNT]: <SelectWalletAmount />,\n [ROUTES.SELECT_WALLET_CHAIN]: <SelectWalletChain />,\n [ROUTES.WAITING_EXTERNAL]: <WaitingExternal />,\n [ROUTES.SELECT_DEPOSIT_ADDRESS_CHAIN]: <SelectDepositAddressChain />,\n [ROUTES.WAITING_DEPOSIT_ADDRESS]: <WaitingDepositAddress />,\n [ROUTES.SELECT_ZKP2P]: <SelectZKP />,\n [ROUTES.WAITING_WALLET]: <WaitingWallet />,\n [ROUTES.CONFIRMATION]: <Confirmation />,\n [ROUTES.ERROR]: <ErrorPage />,\n [ROUTES.PAY_WITH_TOKEN]: <PayWithToken />,\n [ROUTES.SOLANA_CONNECTOR]: <ConnectorSolana />,\n [ROUTES.SOLANA_SELECT_AMOUNT]: <SelectSolanaAmount />,\n [ROUTES.SOLANA_PAY_WITH_TOKEN]: <PayWithSolanaToken />,\n // Unused routes. Kept to minimize connectkit merge conflicts.\n [ROUTES.ONBOARDING]: <Onboarding />,\n [ROUTES.ABOUT]: <About />,\n [ROUTES.DOWNLOAD]: <DownloadApp />,\n [ROUTES.CONNECTORS]: <Connectors />,\n [ROUTES.MOBILECONNECTORS]: <MobileConnectors />,\n [ROUTES.CONNECT]: <ConnectUsing />,\n [ROUTES.SWITCHNETWORKS]: <SwitchNetworks />,\n };\n\n // Registry of page-level leave guards (hooks that run before navigation)\n // For WAITING_DEPOSIT_ADDRESS, we need to pass trpc and orderId\n const leaveGuards: Partial<Record<ROUTES, () => Promise<boolean> | boolean>> =\n {\n [ROUTES.WAITING_DEPOSIT_ADDRESS]: () =>\n waitingDepositAddressBeforeLeave(context.trpc, order?.id?.toString()),\n };\n\n // Helper to wrap navigation actions with leave guard check\n const guardedAction = async (action: () => void) => {\n const guard = leaveGuards[context.route];\n\n // If no guard exists for current page, proceed with action\n if (!guard) {\n action();\n return;\n }\n\n // Otherwise, call the guard and check if navigation is allowed\n let canProceed = false;\n try {\n canProceed = await guard();\n } catch (error) {\n console.error(\"error in leave guard:\", error);\n return;\n }\n\n if (!canProceed) return;\n\n try {\n action();\n } catch (error) {\n console.error(\"error performing guarded action:\", error);\n return;\n }\n\n // dismiss warning after navigation to avoid intermediate flash\n if (paymentFsmState === \"warning\") {\n try {\n daimo.dismissWarning();\n } catch (error) {\n console.error(\"error dismissing warning:\", error);\n }\n }\n };\n\n function hide() {\n if (isDepositFlow) {\n generatePreviewOrder();\n }\n context.setOpen(false, { event: \"click-close\" });\n }\n\n const goToManualAddressScreen = (eventSuffix: string) => {\n if (paymentState.isDepositFlow) {\n context.setUniquePaymentMethodPage(ROUTES.SELECT_DEPOSIT_ADDRESS_AMOUNT);\n context.setRoute(ROUTES.SELECT_DEPOSIT_ADDRESS_AMOUNT, {\n event: `unique_payment_option_deposit_${eventSuffix}`,\n });\n } else {\n context.setUniquePaymentMethodPage(ROUTES.SELECT_DEPOSIT_ADDRESS_CHAIN);\n context.setRoute(ROUTES.WAITING_DEPOSIT_ADDRESS, {\n event: `unique_payment_option_${eventSuffix}`,\n });\n }\n };\n const { isMobile } = useIsMobile();\n\n // Override the first screen upon opening the modal.\n // 1. If uniquePaymentOption is set, navigate to that screen directly\n // 2. If the user has a wallet already connected upon opening the modal, go\n // straight to the select token screen\n // 3. If the user has no wallet connected upon opening the modal, go to the\n // select method screen\n useEffect(() => {\n if (!context.open) return;\n if (context.route !== ROUTES.SELECT_METHOD) return;\n\n if (\n paymentState.buttonProps &&\n \"uniquePaymentOption\" in paymentState.buttonProps &&\n paymentState.buttonProps.uniquePaymentOption\n ) {\n switch (paymentState.buttonProps.uniquePaymentOption) {\n case \"Tron\":\n // Find the Tron option from available deposit address options\n const tronOption = paymentState.depositAddressOptions.options?.find(\n (option) => option.id === DepositAddressPaymentOptions.TRON_USDT,\n );\n if (tronOption) {\n setSelectedDepositAddressOption(tronOption);\n goToManualAddressScreen(\"tron\");\n } else if (!paymentState.depositAddressOptions.loading) {\n // Data loaded but option not found, fallback to chain selection\n context.setUniquePaymentMethodPage(\n ROUTES.SELECT_DEPOSIT_ADDRESS_CHAIN,\n );\n context.setRoute(ROUTES.SELECT_DEPOSIT_ADDRESS_CHAIN, {\n event: \"unique_payment_option_tron_fallback\",\n });\n }\n // If still loading, do nothing and wait for next render\n break;\n case \"AllExchanges\":\n // Open exchanges list directly\n context.setUniquePaymentMethodPage(ROUTES.SELECT_EXCHANGE);\n context.setRoute(ROUTES.SELECT_EXCHANGE, {\n event: \"unique_payment_option_all_exchanges\",\n });\n break;\n case \"ManualAddress\":\n context.setUniquePaymentMethodPage(\n ROUTES.SELECT_DEPOSIT_ADDRESS_CHAIN,\n );\n context.setRoute(ROUTES.SELECT_DEPOSIT_ADDRESS_CHAIN, {\n event: \"unique_payment_option_manual_address\",\n });\n break;\n case \"Base\":\n // Find the Base option from available deposit address options\n const baseOption = paymentState.depositAddressOptions.options?.find(\n (option) => option.id === DepositAddressPaymentOptions.BASE,\n );\n if (baseOption) {\n setSelectedDepositAddressOption(baseOption);\n goToManualAddressScreen(\"base\");\n } else if (!paymentState.depositAddressOptions.loading) {\n context.setUniquePaymentMethodPage(\n ROUTES.SELECT_DEPOSIT_ADDRESS_CHAIN,\n );\n context.setRoute(ROUTES.SELECT_DEPOSIT_ADDRESS_CHAIN, {\n event: \"unique_payment_option_base_fallback\",\n });\n }\n break;\n case \"Arbitrum\":\n // Find the Arbitrum option from available deposit address options\n const arbitrumOption =\n paymentState.depositAddressOptions.options?.find(\n (option) => option.id === DepositAddressPaymentOptions.ARBITRUM,\n );\n if (arbitrumOption) {\n setSelectedDepositAddressOption(arbitrumOption);\n goToManualAddressScreen(\"arbitrum\");\n } else if (!paymentState.depositAddressOptions.loading) {\n context.setUniquePaymentMethodPage(\n ROUTES.SELECT_DEPOSIT_ADDRESS_CHAIN,\n );\n context.setRoute(ROUTES.SELECT_DEPOSIT_ADDRESS_CHAIN, {\n event: \"unique_payment_option_arbitrum_fallback\",\n });\n }\n break;\n case \"Optimism\":\n // Find the Optimism option from available deposit address options\n const optimismOption =\n paymentState.depositAddressOptions.options?.find(\n (option) => option.id === DepositAddressPaymentOptions.OP_MAINNET,\n );\n if (optimismOption) {\n setSelectedDepositAddressOption(optimismOption);\n goToManualAddressScreen(\"optimism\");\n } else if (!paymentState.depositAddressOptions.loading) {\n context.setUniquePaymentMethodPage(\n ROUTES.SELECT_DEPOSIT_ADDRESS_CHAIN,\n );\n context.setRoute(ROUTES.SELECT_DEPOSIT_ADDRESS_CHAIN, {\n event: \"unique_payment_option_optimism_fallback\",\n });\n }\n break;\n case \"Polygon\":\n // Find the Polygon option from available deposit address options\n const polygonOption =\n paymentState.depositAddressOptions.options?.find(\n (option) => option.id === DepositAddressPaymentOptions.POLYGON,\n );\n if (polygonOption) {\n setSelectedDepositAddressOption(polygonOption);\n goToManualAddressScreen(\"polygon\");\n } else if (!paymentState.depositAddressOptions.loading) {\n context.setUniquePaymentMethodPage(\n ROUTES.SELECT_DEPOSIT_ADDRESS_CHAIN,\n );\n context.setRoute(ROUTES.SELECT_DEPOSIT_ADDRESS_CHAIN, {\n event: \"unique_payment_option_polygon_fallback\",\n });\n }\n break;\n case \"Ethereum\":\n // Find the Ethereum option from available deposit address options\n const ethereumOption =\n paymentState.depositAddressOptions.options?.find(\n (option) => option.id === DepositAddressPaymentOptions.ETH_L1,\n );\n if (ethereumOption) {\n setSelectedDepositAddressOption(ethereumOption);\n goToManualAddressScreen(\"ethereum\");\n } else if (!paymentState.depositAddressOptions.loading) {\n context.setUniquePaymentMethodPage(\n ROUTES.SELECT_DEPOSIT_ADDRESS_CHAIN,\n );\n context.setRoute(ROUTES.SELECT_DEPOSIT_ADDRESS_CHAIN, {\n event: \"unique_payment_option_ethereum_fallback\",\n });\n }\n break;\n case \"Binance\":\n // Find the Binance option from available exchange options\n const exchangeOptions =\n paymentState.externalPaymentOptions.options.get(\"exchange\");\n const binanceOption = exchangeOptions?.find(\n (option) => option.id === ExternalPaymentOptions.Binance,\n );\n if (binanceOption) {\n setSelectedExternalOption(binanceOption);\n context.setUniquePaymentMethodPage(ROUTES.WAITING_EXTERNAL);\n context.setRoute(ROUTES.WAITING_EXTERNAL, {\n event: \"unique_payment_option_binance\",\n });\n } else if (!paymentState.externalPaymentOptions.loading) {\n context.setUniquePaymentMethodPage(ROUTES.SELECT_EXCHANGE);\n context.setRoute(ROUTES.SELECT_EXCHANGE, {\n event: \"unique_payment_option_binance_fallback\",\n });\n }\n break;\n case \"Coinbase\":\n // Find the Coinbase option from available exchange options\n const coinbaseExchangeOptions =\n paymentState.externalPaymentOptions.options.get(\"exchange\");\n const coinbaseOption = coinbaseExchangeOptions?.find(\n (option) => option.id === ExternalPaymentOptions.Coinbase,\n );\n if (coinbaseOption) {\n setSelectedExternalOption(coinbaseOption);\n context.setUniquePaymentMethodPage(ROUTES.WAITING_EXTERNAL);\n context.setRoute(ROUTES.WAITING_EXTERNAL, {\n event: \"unique_payment_option_coinbase\",\n });\n } else if (!paymentState.externalPaymentOptions.loading) {\n context.setUniquePaymentMethodPage(ROUTES.SELECT_EXCHANGE);\n context.setRoute(ROUTES.SELECT_EXCHANGE, {\n event: \"unique_payment_option_coinbase_fallback\",\n });\n }\n break;\n case \"Lemon\":\n // Find the Lemon option from available external options\n const lemonExternalOptions =\n paymentState.externalPaymentOptions.options.get(\"external\");\n const lemonOption = lemonExternalOptions?.find(\n (option) => option.id === ExternalPaymentOptions.Lemon,\n );\n if (lemonOption) {\n setSelectedExternalOption(lemonOption);\n context.setUniquePaymentMethodPage(ROUTES.WAITING_EXTERNAL);\n context.setRoute(ROUTES.WAITING_EXTERNAL, {\n event: \"unique_payment_option_lemon\",\n });\n } else if (!paymentState.externalPaymentOptions.loading) {\n context.setUniquePaymentMethodPage(ROUTES.SELECT_METHOD);\n context.setRoute(ROUTES.SELECT_METHOD, {\n event: \"unique_payment_option_lemon_fallback\",\n });\n }\n break;\n case \"Wallets\":\n context.setUniquePaymentMethodPage(ROUTES.CONNECTORS);\n context.setRoute(ROUTES.CONNECTORS, {\n event: \"unique_payment_option_wallets\",\n });\n break;\n default:\n context.setUniquePaymentMethodPage(ROUTES.SELECT_METHOD);\n break;\n }\n }\n\n const hasUniquePaymentOption =\n paymentState.buttonProps &&\n \"uniquePaymentOption\" in paymentState.buttonProps &&\n paymentState.buttonProps.uniquePaymentOption;\n const isWalletsUniquePaymentOption =\n paymentState.buttonProps?.uniquePaymentOption === \"Wallets\";\n\n // Skip to token selection if exactly one wallet is connected. If both\n // wallets are connected, stay on the SELECT_METHOD screen to allow the\n // user to select which wallet to use\n // If mobile injector is disabled, don't show the connected wallets.\n // If there's a unique payment option, and the unique payment option is not\n // \"Wallets\", don't auto-connect the user's wallet.\n const evmOptionsCount =\n paymentState.walletPaymentOptions.options?.length ?? 0;\n const isEvmLoading = paymentState.walletPaymentOptions.isLoading;\n const solanaOptionsCount =\n paymentState.solanaPaymentOptions.options?.length ?? 0;\n const isSolanaLoading = paymentState.solanaPaymentOptions.isLoading;\n if (\n (!hasUniquePaymentOption || isWalletsUniquePaymentOption) &&\n isEthConnected &&\n !isSolanaConnected &&\n (!isMobile || !disableMobileInjector) &&\n !isEvmLoading &&\n evmOptionsCount > 0\n ) {\n paymentState.setTokenMode(\"evm\");\n context.setRoute(ROUTES.SELECT_TOKEN, {\n event: \"eth_connected_on_open\",\n walletId: connector?.id,\n chainId: chain?.id,\n address,\n });\n } else if (\n (!hasUniquePaymentOption || isWalletsUniquePaymentOption) &&\n isSolanaConnected &&\n !isEthConnected &&\n !disableMobileInjector &&\n !isSolanaLoading &&\n solanaOptionsCount > 0\n ) {\n paymentState.setTokenMode(\"solana\");\n context.setRoute(ROUTES.SELECT_TOKEN, {\n event: \"solana_connected_on_open\",\n });\n }\n // Don't include context.route in the dependency array otherwise the user\n // can't go back from the select token screen to the select method screen\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [\n context.open,\n paymentState.walletPaymentOptions.options,\n paymentState.walletPaymentOptions.isLoading,\n paymentState.solanaPaymentOptions.options,\n paymentState.solanaPaymentOptions.isLoading,\n paymentState.externalPaymentOptions.options,\n paymentState.externalPaymentOptions.loading,\n paymentState.depositAddressOptions.options,\n paymentState.depositAddressOptions.loading,\n address,\n chain?.id,\n connector?.id,\n context.uniquePaymentMethodPage,\n ]);\n\n // If we're on the connect page and the user successfully connects their\n // wallet, go to the select token page\n useEffect(() => {\n if (\n context.route === ROUTES.CONNECT ||\n context.route === ROUTES.CONNECTORS ||\n context.route === ROUTES.MOBILECONNECTORS\n ) {\n if (isEthConnected) {\n paymentState.setTokenMode(\"evm\");\n context.setRoute(ROUTES.SELECT_TOKEN, {\n event: \"connected\",\n walletId: connector?.id,\n chainId: chain?.id,\n address,\n });\n }\n }\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isEthConnected, context.route, connector?.id, chain?.id, address]);\n\n useEffect(() => setMode(mode), [mode, setMode]);\n useEffect(() => setTheme(theme), [theme, setTheme]);\n useEffect(() => setCustomTheme(customTheme), [customTheme, setCustomTheme]);\n useEffect(() => setLang(lang), [lang, setLang]);\n useEffect(\n () => setDisableMobileInjector(disableMobileInjector),\n [disableMobileInjector, setDisableMobileInjector],\n );\n\n useEffect(() => {\n const appName = getAppName();\n if (!appName || !context.open) return;\n\n const title = document.createElement(\"meta\");\n title.setAttribute(\"property\", \"og:title\");\n title.setAttribute(\"content\", appName);\n document.head.prepend(title);\n\n return () => {\n try {\n document.head.removeChild(title);\n } catch {}\n };\n }, [context.open]);\n\n return (\n <DaimoPayThemeProvider theme={theme} customTheme={customTheme} mode={mode}>\n <Modal\n open={context.open}\n pages={pages}\n pageId={context.route}\n onClose={\n closeable && paymentFsmState !== \"warning\"\n ? () => guardedAction(hide)\n : undefined\n }\n onInfo={undefined}\n onBack={showBackButton ? () => guardedAction(onBack) : undefined}\n />\n </DaimoPayThemeProvider>\n );\n};\n"],"names":["ConnectorSolana","Onboarding","Connectors","waitingDepositAddressBeforeLeave"],"mappings":"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"}
@@ -14,8 +14,6 @@ const MobileConnectors = () => {
14
14
  const walletsIdsToDisplay = Object.keys(walletConfigs).filter((walletId) => {
15
15
  const wallet = walletConfigs[walletId];
16
16
  if (!wallet.showInMobileConnectors) return false;
17
- if (wallet.isSolanaOnly && !context.paymentState.showSolanaPaymentMethod)
18
- return false;
19
17
  return true;
20
18
  }) ?? [];
21
19
  const goToWallet = (wallet) => {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../../src/components/Pages/MobileConnectors/index.tsx"],"sourcesContent":["import React from \"react\";\n\nimport { ROUTES } from \"../../../constants/routes\";\nimport { useConnect } from \"../../../hooks/useConnect\";\nimport { usePayContext } from \"../../../hooks/usePayContext\";\nimport {\n WalletConfigProps,\n walletConfigs,\n} from \"../../../wallets/walletConfigs\";\nimport { ModalContent, PageContent } from \"../../Common/Modal/styles\";\nimport { ScrollArea } from \"../../Common/ScrollArea\";\nimport {\n Container,\n WalletIcon,\n WalletItem,\n WalletLabel,\n WalletList,\n} from \"./styles\";\n\nconst MobileConnectors: React.FC = () => {\n const context = usePayContext();\n const { paymentState, setRoute } = context;\n const { connect, connectors } = useConnect();\n\n // filter out installed wallets\n const walletsIdsToDisplay =\n Object.keys(walletConfigs).filter((walletId) => {\n const wallet = walletConfigs[walletId];\n if (!wallet.showInMobileConnectors) return false;\n // If the mobile wallet supports solana only, don't show it if we are not supporting solana has a payment method\n if (wallet.isSolanaOnly && !context.paymentState.showSolanaPaymentMethod)\n return false;\n return true;\n }) ?? [];\n\n const goToWallet = (wallet: WalletConfigProps) => {\n if (wallet.getDaimoPayDeeplink == null) {\n console.error(`wallet ${wallet.name} has no deeplink`);\n return;\n }\n if (paymentState.isDepositFlow) {\n context.paymentState.setSelectedWallet(wallet);\n setRoute(ROUTES.SELECT_WALLET_AMOUNT);\n } else {\n paymentState.openInWalletBrowser(wallet);\n }\n };\n\n return (\n <PageContent style={{ width: 312 }}>\n <Container>\n <ModalContent style={{ paddingBottom: 0 }}>\n <ScrollArea height={340}>\n <WalletList>\n {walletsIdsToDisplay\n .sort(\n // sort by name\n (a, b) => {\n const walletA = walletConfigs[a];\n const walletB = walletConfigs[b];\n const nameA = walletA.name ?? walletA.shortName ?? a;\n const nameB = walletB.name ?? walletB.shortName ?? b;\n return nameA.localeCompare(nameB);\n },\n )\n .filter(\n (walletId) =>\n !(\n walletId === \"coinbaseWallet\" ||\n walletId === \"com.coinbase.wallet\"\n ),\n )\n .map((walletId, i) => {\n const wallet = walletConfigs[walletId];\n const { name, shortName, iconConnector, icon } = wallet;\n return (\n <WalletItem\n key={i}\n onClick={() => goToWallet(wallet)}\n style={{\n animationDelay: `${i * 50}ms`,\n }}\n >\n <WalletIcon>{iconConnector ?? icon}</WalletIcon>\n <WalletLabel>{shortName ?? name}</WalletLabel>\n </WalletItem>\n );\n })}\n </WalletList>\n </ScrollArea>\n </ModalContent>\n </Container>\n </PageContent>\n );\n};\n\nexport default MobileConnectors;\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../../../src/components/Pages/MobileConnectors/index.tsx"],"sourcesContent":["import React from \"react\";\n\nimport { ROUTES } from \"../../../constants/routes\";\nimport { useConnect } from \"../../../hooks/useConnect\";\nimport { usePayContext } from \"../../../hooks/usePayContext\";\nimport {\n WalletConfigProps,\n walletConfigs,\n} from \"../../../wallets/walletConfigs\";\nimport { ModalContent, PageContent } from \"../../Common/Modal/styles\";\nimport { ScrollArea } from \"../../Common/ScrollArea\";\nimport {\n Container,\n WalletIcon,\n WalletItem,\n WalletLabel,\n WalletList,\n} from \"./styles\";\n\nconst MobileConnectors: React.FC = () => {\n const context = usePayContext();\n const { paymentState, setRoute } = context;\n const { connect, connectors } = useConnect();\n\n // filter out installed wallets\n const walletsIdsToDisplay =\n Object.keys(walletConfigs).filter((walletId) => {\n const wallet = walletConfigs[walletId];\n if (!wallet.showInMobileConnectors) return false;\n return true;\n }) ?? [];\n\n const goToWallet = (wallet: WalletConfigProps) => {\n if (wallet.getDaimoPayDeeplink == null) {\n console.error(`wallet ${wallet.name} has no deeplink`);\n return;\n }\n if (paymentState.isDepositFlow) {\n context.paymentState.setSelectedWallet(wallet);\n setRoute(ROUTES.SELECT_WALLET_AMOUNT);\n } else {\n paymentState.openInWalletBrowser(wallet);\n }\n };\n\n return (\n <PageContent style={{ width: 312 }}>\n <Container>\n <ModalContent style={{ paddingBottom: 0 }}>\n <ScrollArea height={340}>\n <WalletList>\n {walletsIdsToDisplay\n .sort(\n // sort by name\n (a, b) => {\n const walletA = walletConfigs[a];\n const walletB = walletConfigs[b];\n const nameA = walletA.name ?? walletA.shortName ?? a;\n const nameB = walletB.name ?? walletB.shortName ?? b;\n return nameA.localeCompare(nameB);\n },\n )\n .filter(\n (walletId) =>\n !(\n walletId === \"coinbaseWallet\" ||\n walletId === \"com.coinbase.wallet\"\n ),\n )\n .map((walletId, i) => {\n const wallet = walletConfigs[walletId];\n const { name, shortName, iconConnector, icon } = wallet;\n return (\n <WalletItem\n key={i}\n onClick={() => goToWallet(wallet)}\n style={{\n animationDelay: `${i * 50}ms`,\n }}\n >\n <WalletIcon>{iconConnector ?? icon}</WalletIcon>\n <WalletLabel>{shortName ?? name}</WalletLabel>\n </WalletItem>\n );\n })}\n </WalletList>\n </ScrollArea>\n </ModalContent>\n </Container>\n </PageContent>\n );\n};\n\nexport default MobileConnectors;\n"],"names":[],"mappings":"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"}
@@ -33,13 +33,12 @@ function SelectMethod() {
33
33
  publicKey
34
34
  } = useWallet();
35
35
  const { setRoute, paymentState, log, disableMobileInjector } = usePayContext();
36
- const { showSolanaPaymentMethod } = paymentState;
37
36
  const { disconnectAsync } = useDisconnect();
38
37
  const { externalPaymentOptions, senderEnsName } = paymentState;
39
38
  const showConnectedEth = isEthConnected && (!isMobile || !disableMobileInjector);
40
39
  const showConnectedSolana = isSolanaConnected && (!isMobile || !disableMobileInjector);
41
40
  const getConnectedWalletOptions = () => {
42
- const showChainLogo = isEthConnected && isSolanaConnected && showSolanaPaymentMethod;
41
+ const showChainLogo = isEthConnected && isSolanaConnected;
43
42
  const connectedOptions = [];
44
43
  if (showConnectedEth) {
45
44
  const ethWalletDisplayName = senderEnsName ?? (address ? getAddressContraction(address) : "wallet");
@@ -83,7 +82,7 @@ function SelectMethod() {
83
82
  };
84
83
  connectedOptions.push(connectedEthWalletOption);
85
84
  }
86
- if (showConnectedSolana && showSolanaPaymentMethod) {
85
+ if (showConnectedSolana) {
87
86
  const solWalletDisplayName = getAddressContraction(
88
87
  publicKey?.toBase58() ?? ""
89
88
  );
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../../src/components/Pages/SelectMethod/index.tsx"],"sourcesContent":["import React from \"react\";\nimport { ROUTES } from \"../../../constants/routes\";\nimport { usePayContext } from \"../../../hooks/usePayContext\";\n\nimport { PageContent } from \"../../Common/Modal/styles\";\n\nimport { getAddressContraction } from \"@daimo/pay-common\";\nimport { useWallet } from \"@solana/wallet-adapter-react\";\nimport { Connector, useAccount, useDisconnect } from \"wagmi\";\nimport { Base, Ethereum, Solana, Tron } from \"../../../assets/chains\";\nimport {\n MetaMask,\n Phantom,\n Rabby,\n Rainbow,\n Trust,\n WalletIcon,\n} from \"../../../assets/logos\";\nimport useIsMobile from \"../../../hooks/useIsMobile\";\nimport useLocales from \"../../../hooks/useLocales\";\nimport { flattenChildren } from \"../../../utils\";\nimport { walletConfigs } from \"../../../wallets/walletConfigs\";\nimport { Option, OptionsList } from \"../../Common/OptionsList\";\nimport { OrderHeader } from \"../../Common/OrderHeader\";\nimport PoweredByFooter from \"../../Common/PoweredByFooter\";\nimport WalletChainLogo from \"../../Common/WalletChainLogo\";\n\nexport default function SelectMethod() {\n const locales = useLocales();\n const payWithString = flattenChildren(locales.payWith).join(\"\");\n const { isMobile, isIOS, isAndroid } = useIsMobile();\n\n const {\n address,\n chain,\n isConnected: isEthConnected,\n connector,\n } = useAccount();\n const {\n connected: isSolanaConnected,\n wallet: solanaWallet,\n disconnect: disconnectSolana,\n publicKey,\n } = useWallet();\n const { setRoute, paymentState, log, disableMobileInjector } =\n usePayContext();\n const { showSolanaPaymentMethod } = paymentState;\n const { disconnectAsync } = useDisconnect();\n\n const { externalPaymentOptions, senderEnsName } = paymentState;\n\n // Decide whether to show the connected eth account, solana account, or both.\n // Desktop: Always show connected wallets when available\n // Mobile: Only show connected wallets when mobile injector is enabled (!disableMobileInjector)\n const showConnectedEth =\n isEthConnected && (!isMobile || !disableMobileInjector);\n const showConnectedSolana =\n isSolanaConnected && (!isMobile || !disableMobileInjector);\n\n const getConnectedWalletOptions = () => {\n const showChainLogo =\n isEthConnected && isSolanaConnected && showSolanaPaymentMethod;\n\n const connectedOptions: Option[] = [];\n\n if (showConnectedEth) {\n const ethWalletDisplayName =\n senderEnsName ?? (address ? getAddressContraction(address) : \"wallet\");\n\n // Prefer icon from walletConfigs if there's a name match, otherwise fall back\n // to the connector-provided icon, and finally to the generic WalletIcon.\n let walletIcon: JSX.Element;\n\n const matchedConfig = Object.values(walletConfigs).find((cfg) => {\n if (!cfg.name || !connector?.name) return false;\n const cfgName = cfg.name.toLowerCase();\n const connName = connector.name.toLowerCase();\n return cfgName.includes(connName) || connName.includes(cfgName);\n });\n\n if (matchedConfig?.icon) {\n walletIcon =\n typeof matchedConfig.icon === \"string\" ? (\n <img src={matchedConfig.icon} alt={matchedConfig.name} />\n ) : (\n (matchedConfig.icon as JSX.Element)\n );\n } else if (connector?.icon) {\n walletIcon = (\n <div style={{ borderRadius: \"22.5%\", overflow: \"hidden\" }}>\n <img src={connector.icon} alt={connector.name} />\n </div>\n );\n } else {\n walletIcon = <WalletIcon />;\n }\n\n const connectedEthWalletOption = {\n id: \"connectedWallet\",\n title: `${payWithString} ${ethWalletDisplayName}`,\n icons: [\n <WalletChainLogo\n key=\"eth\"\n walletIcon={walletIcon}\n walletName={connector?.name || \"Wallet\"}\n chainLogo={showChainLogo ? <Ethereum /> : null}\n />,\n ],\n onClick: () => {\n paymentState.setTokenMode(\"evm\");\n setRoute(ROUTES.SELECT_TOKEN, {\n event: \"click-wallet\",\n walletId: connector?.id,\n chainId: chain?.id,\n address: address,\n });\n },\n };\n connectedOptions.push(connectedEthWalletOption);\n }\n\n if (showConnectedSolana && showSolanaPaymentMethod) {\n const solWalletDisplayName = getAddressContraction(\n publicKey?.toBase58() ?? \"\",\n );\n\n // Prefer icon from walletConfigs if available\n let solWalletIcon: React.ReactNode;\n const solMatchedConfig = Object.values(walletConfigs).find((cfg) => {\n if (!cfg.name) return false;\n const cfgName = cfg.name.toLowerCase();\n const solName = solanaWallet?.adapter.name.toLowerCase() || \"\";\n return cfgName.includes(solName) || solName.includes(cfgName);\n });\n\n if (solMatchedConfig?.icon) {\n solWalletIcon =\n typeof solMatchedConfig.icon === \"string\" ? (\n <img src={solMatchedConfig.icon} alt={solMatchedConfig.name} />\n ) : (\n (solMatchedConfig.icon as JSX.Element)\n );\n } else if (solanaWallet?.adapter.icon) {\n solWalletIcon = solanaWallet.adapter.icon;\n } else {\n solWalletIcon = <Solana />;\n }\n\n const connectedSolWalletOption = {\n id: \"connectedSolanaWallet\",\n title: `${payWithString} ${solWalletDisplayName}`,\n icons: [\n <WalletChainLogo\n key=\"sol-wallet\"\n walletIcon={solWalletIcon}\n walletName={solanaWallet?.adapter.name || \"Wallet\"}\n chainLogo={showChainLogo && <Solana />}\n />,\n ],\n onClick: () => {\n paymentState.setTokenMode(\"solana\");\n setRoute(ROUTES.SELECT_TOKEN, {\n event: \"click-wallet\",\n walletId: solanaWallet?.adapter.name,\n chainId: \"solana\",\n address: publicKey?.toBase58(),\n });\n },\n };\n\n connectedOptions.push(connectedSolWalletOption);\n }\n\n return connectedOptions;\n };\n\n const connectedWalletOptions = getConnectedWalletOptions();\n const unconnectedWalletOption = {\n id: \"unconnectedWallet\",\n title:\n isEthConnected || isSolanaConnected\n ? locales.payWithAnotherWallet\n : locales.payWithWallet,\n icons: getBestUnconnectedWalletIcons(connector, isMobile),\n onClick: async () => {\n await disconnectAsync();\n await disconnectSolana();\n setRoute(ROUTES.CONNECTORS);\n },\n };\n\n const options: {\n id: string;\n title: string;\n subtitle?: string;\n icons: (React.ReactNode | string)[];\n onClick: () => void;\n disabled?: boolean;\n }[] = [];\n options.push(...connectedWalletOptions);\n options.push(unconnectedWalletOption);\n\n log(\n `[SELECT_METHOD] loading: ${externalPaymentOptions.loading}, options: ${JSON.stringify(\n externalPaymentOptions.options,\n )}`,\n );\n\n // Pay with Exchange\n const exchangeOptions = externalPaymentOptions.options.get(\"exchange\") ?? [];\n\n const showExchangePaymentMethod = exchangeOptions.length > 0;\n if (showExchangePaymentMethod) {\n options.push({\n id: \"exchange\",\n title: locales.payWithExchange,\n icons: exchangeOptions.slice(0, 3).map((option) => option.logoURI),\n onClick: () => {\n setRoute(ROUTES.SELECT_EXCHANGE, {\n event: \"click-option\",\n option: \"exchange\",\n });\n },\n });\n }\n\n const depositAddressOption = getDepositAddressOption(setRoute, locales);\n options.push(depositAddressOption);\n\n // ZKP2P is currently only available on desktop. Check if the user is on\n // desktop and if any ZKP2P options are available.\n const zkp2pOptions = externalPaymentOptions.options.get(\"zkp2p\") ?? [];\n const showZkp2pPaymentMethod = !isMobile && zkp2pOptions.length > 0;\n if (showZkp2pPaymentMethod) {\n options.push({\n id: \"ZKP2P\",\n title: locales.payViaPaymentApp,\n icons: zkp2pOptions.slice(0, 2).map((option) => option.logoURI),\n onClick: () => {\n setRoute(ROUTES.SELECT_ZKP2P);\n },\n });\n }\n\n // Order disabled to bottom\n options.sort((a, b) => (a.disabled ? 1 : 0) - (b.disabled ? 1 : 0));\n\n return (\n <PageContent>\n <OrderHeader />\n\n <OptionsList\n requiredSkeletons={isMobile ? 3 : 4}\n isLoading={externalPaymentOptions.loading}\n options={externalPaymentOptions.loading ? [] : options}\n />\n <PoweredByFooter />\n </PageContent>\n );\n}\n\n// Get 3 icons, skipping the one that is already connected\nfunction getBestUnconnectedWalletIcons(\n connector: Connector | undefined,\n isMobile: boolean,\n) {\n const icons: JSX.Element[] = [];\n const strippedId = connector?.id.toLowerCase(); // some connector ids can have weird casing and or suffixes and prefixes\n const [isRainbow, isPhantom, isRabby, isMetaMask] = [\n strippedId?.includes(\"rainbow\"),\n strippedId?.includes(\"trust\"),\n strippedId?.includes(\"phantom\"),\n strippedId?.includes(\"coinbase\"),\n strippedId?.includes(\"metamask\"),\n strippedId?.includes(\"rabby\"),\n strippedId?.includes(\"metamask\"),\n ];\n\n if (isMobile) {\n icons.push(<MetaMask />);\n icons.push(<Trust background />);\n icons.push(<Rainbow />);\n } else {\n if (!isMetaMask) icons.push(<MetaMask />);\n if (!isRainbow) icons.push(<Rainbow />);\n if (!isPhantom) icons.push(<Phantom />);\n if (!isRabby && icons.length < 3) icons.push(<Rabby />);\n }\n\n return icons;\n}\n\nfunction getDepositAddressOption(\n setRoute: (route: ROUTES, data?: Record<string, any>) => void,\n locales: ReturnType<typeof useLocales>,\n) {\n return {\n id: \"depositAddress\",\n title: locales.payToAddress,\n icons: [<Ethereum key=\"eth\" />, <Tron key=\"tron\" />, <Base key=\"base\" />],\n onClick: () => {\n setRoute(ROUTES.SELECT_DEPOSIT_ADDRESS_CHAIN);\n },\n };\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../../../src/components/Pages/SelectMethod/index.tsx"],"sourcesContent":["import React from \"react\";\nimport { ROUTES } from \"../../../constants/routes\";\nimport { usePayContext } from \"../../../hooks/usePayContext\";\n\nimport { PageContent } from \"../../Common/Modal/styles\";\n\nimport { getAddressContraction } from \"@daimo/pay-common\";\nimport { useWallet } from \"@solana/wallet-adapter-react\";\nimport { Connector, useAccount, useDisconnect } from \"wagmi\";\nimport { Base, Ethereum, Solana, Tron } from \"../../../assets/chains\";\nimport {\n MetaMask,\n Phantom,\n Rabby,\n Rainbow,\n Trust,\n WalletIcon,\n} from \"../../../assets/logos\";\nimport useIsMobile from \"../../../hooks/useIsMobile\";\nimport useLocales from \"../../../hooks/useLocales\";\nimport { flattenChildren } from \"../../../utils\";\nimport { walletConfigs } from \"../../../wallets/walletConfigs\";\nimport { Option, OptionsList } from \"../../Common/OptionsList\";\nimport { OrderHeader } from \"../../Common/OrderHeader\";\nimport PoweredByFooter from \"../../Common/PoweredByFooter\";\nimport WalletChainLogo from \"../../Common/WalletChainLogo\";\n\nexport default function SelectMethod() {\n const locales = useLocales();\n const payWithString = flattenChildren(locales.payWith).join(\"\");\n const { isMobile, isIOS, isAndroid } = useIsMobile();\n\n const {\n address,\n chain,\n isConnected: isEthConnected,\n connector,\n } = useAccount();\n const {\n connected: isSolanaConnected,\n wallet: solanaWallet,\n disconnect: disconnectSolana,\n publicKey,\n } = useWallet();\n const { setRoute, paymentState, log, disableMobileInjector } =\n usePayContext();\n const { disconnectAsync } = useDisconnect();\n\n const { externalPaymentOptions, senderEnsName } = paymentState;\n\n // Decide whether to show the connected eth account, solana account, or both.\n // Desktop: Always show connected wallets when available\n // Mobile: Only show connected wallets when mobile injector is enabled (!disableMobileInjector)\n const showConnectedEth =\n isEthConnected && (!isMobile || !disableMobileInjector);\n const showConnectedSolana =\n isSolanaConnected && (!isMobile || !disableMobileInjector);\n\n const getConnectedWalletOptions = () => {\n const showChainLogo = isEthConnected && isSolanaConnected;\n\n const connectedOptions: Option[] = [];\n\n if (showConnectedEth) {\n const ethWalletDisplayName =\n senderEnsName ?? (address ? getAddressContraction(address) : \"wallet\");\n\n // Prefer icon from walletConfigs if there's a name match, otherwise fall back\n // to the connector-provided icon, and finally to the generic WalletIcon.\n let walletIcon: JSX.Element;\n\n const matchedConfig = Object.values(walletConfigs).find((cfg) => {\n if (!cfg.name || !connector?.name) return false;\n const cfgName = cfg.name.toLowerCase();\n const connName = connector.name.toLowerCase();\n return cfgName.includes(connName) || connName.includes(cfgName);\n });\n\n if (matchedConfig?.icon) {\n walletIcon =\n typeof matchedConfig.icon === \"string\" ? (\n <img src={matchedConfig.icon} alt={matchedConfig.name} />\n ) : (\n (matchedConfig.icon as JSX.Element)\n );\n } else if (connector?.icon) {\n walletIcon = (\n <div style={{ borderRadius: \"22.5%\", overflow: \"hidden\" }}>\n <img src={connector.icon} alt={connector.name} />\n </div>\n );\n } else {\n walletIcon = <WalletIcon />;\n }\n\n const connectedEthWalletOption = {\n id: \"connectedWallet\",\n title: `${payWithString} ${ethWalletDisplayName}`,\n icons: [\n <WalletChainLogo\n key=\"eth\"\n walletIcon={walletIcon}\n walletName={connector?.name || \"Wallet\"}\n chainLogo={showChainLogo ? <Ethereum /> : null}\n />,\n ],\n onClick: () => {\n paymentState.setTokenMode(\"evm\");\n setRoute(ROUTES.SELECT_TOKEN, {\n event: \"click-wallet\",\n walletId: connector?.id,\n chainId: chain?.id,\n address: address,\n });\n },\n };\n connectedOptions.push(connectedEthWalletOption);\n }\n\n if (showConnectedSolana) {\n const solWalletDisplayName = getAddressContraction(\n publicKey?.toBase58() ?? \"\",\n );\n\n // Prefer icon from walletConfigs if available\n let solWalletIcon: React.ReactNode;\n const solMatchedConfig = Object.values(walletConfigs).find((cfg) => {\n if (!cfg.name) return false;\n const cfgName = cfg.name.toLowerCase();\n const solName = solanaWallet?.adapter.name.toLowerCase() || \"\";\n return cfgName.includes(solName) || solName.includes(cfgName);\n });\n\n if (solMatchedConfig?.icon) {\n solWalletIcon =\n typeof solMatchedConfig.icon === \"string\" ? (\n <img src={solMatchedConfig.icon} alt={solMatchedConfig.name} />\n ) : (\n (solMatchedConfig.icon as JSX.Element)\n );\n } else if (solanaWallet?.adapter.icon) {\n solWalletIcon = solanaWallet.adapter.icon;\n } else {\n solWalletIcon = <Solana />;\n }\n\n const connectedSolWalletOption = {\n id: \"connectedSolanaWallet\",\n title: `${payWithString} ${solWalletDisplayName}`,\n icons: [\n <WalletChainLogo\n key=\"sol-wallet\"\n walletIcon={solWalletIcon}\n walletName={solanaWallet?.adapter.name || \"Wallet\"}\n chainLogo={showChainLogo && <Solana />}\n />,\n ],\n onClick: () => {\n paymentState.setTokenMode(\"solana\");\n setRoute(ROUTES.SELECT_TOKEN, {\n event: \"click-wallet\",\n walletId: solanaWallet?.adapter.name,\n chainId: \"solana\",\n address: publicKey?.toBase58(),\n });\n },\n };\n\n connectedOptions.push(connectedSolWalletOption);\n }\n\n return connectedOptions;\n };\n\n const connectedWalletOptions = getConnectedWalletOptions();\n const unconnectedWalletOption = {\n id: \"unconnectedWallet\",\n title:\n isEthConnected || isSolanaConnected\n ? locales.payWithAnotherWallet\n : locales.payWithWallet,\n icons: getBestUnconnectedWalletIcons(connector, isMobile),\n onClick: async () => {\n await disconnectAsync();\n await disconnectSolana();\n setRoute(ROUTES.CONNECTORS);\n },\n };\n\n const options: {\n id: string;\n title: string;\n subtitle?: string;\n icons: (React.ReactNode | string)[];\n onClick: () => void;\n disabled?: boolean;\n }[] = [];\n options.push(...connectedWalletOptions);\n options.push(unconnectedWalletOption);\n\n log(\n `[SELECT_METHOD] loading: ${externalPaymentOptions.loading}, options: ${JSON.stringify(\n externalPaymentOptions.options,\n )}`,\n );\n\n // Pay with Exchange\n const exchangeOptions = externalPaymentOptions.options.get(\"exchange\") ?? [];\n\n const showExchangePaymentMethod = exchangeOptions.length > 0;\n if (showExchangePaymentMethod) {\n options.push({\n id: \"exchange\",\n title: locales.payWithExchange,\n icons: exchangeOptions.slice(0, 3).map((option) => option.logoURI),\n onClick: () => {\n setRoute(ROUTES.SELECT_EXCHANGE, {\n event: \"click-option\",\n option: \"exchange\",\n });\n },\n });\n }\n\n const depositAddressOption = getDepositAddressOption(setRoute, locales);\n options.push(depositAddressOption);\n\n // ZKP2P is currently only available on desktop. Check if the user is on\n // desktop and if any ZKP2P options are available.\n const zkp2pOptions = externalPaymentOptions.options.get(\"zkp2p\") ?? [];\n const showZkp2pPaymentMethod = !isMobile && zkp2pOptions.length > 0;\n if (showZkp2pPaymentMethod) {\n options.push({\n id: \"ZKP2P\",\n title: locales.payViaPaymentApp,\n icons: zkp2pOptions.slice(0, 2).map((option) => option.logoURI),\n onClick: () => {\n setRoute(ROUTES.SELECT_ZKP2P);\n },\n });\n }\n\n // Order disabled to bottom\n options.sort((a, b) => (a.disabled ? 1 : 0) - (b.disabled ? 1 : 0));\n\n return (\n <PageContent>\n <OrderHeader />\n\n <OptionsList\n requiredSkeletons={isMobile ? 3 : 4}\n isLoading={externalPaymentOptions.loading}\n options={externalPaymentOptions.loading ? [] : options}\n />\n <PoweredByFooter />\n </PageContent>\n );\n}\n\n// Get 3 icons, skipping the one that is already connected\nfunction getBestUnconnectedWalletIcons(\n connector: Connector | undefined,\n isMobile: boolean,\n) {\n const icons: JSX.Element[] = [];\n const strippedId = connector?.id.toLowerCase(); // some connector ids can have weird casing and or suffixes and prefixes\n const [isRainbow, isPhantom, isRabby, isMetaMask] = [\n strippedId?.includes(\"rainbow\"),\n strippedId?.includes(\"trust\"),\n strippedId?.includes(\"phantom\"),\n strippedId?.includes(\"coinbase\"),\n strippedId?.includes(\"metamask\"),\n strippedId?.includes(\"rabby\"),\n strippedId?.includes(\"metamask\"),\n ];\n\n if (isMobile) {\n icons.push(<MetaMask />);\n icons.push(<Trust background />);\n icons.push(<Rainbow />);\n } else {\n if (!isMetaMask) icons.push(<MetaMask />);\n if (!isRainbow) icons.push(<Rainbow />);\n if (!isPhantom) icons.push(<Phantom />);\n if (!isRabby && icons.length < 3) icons.push(<Rabby />);\n }\n\n return icons;\n}\n\nfunction getDepositAddressOption(\n setRoute: (route: ROUTES, data?: Record<string, any>) => void,\n locales: ReturnType<typeof useLocales>,\n) {\n return {\n id: \"depositAddress\",\n title: locales.payToAddress,\n icons: [<Ethereum key=\"eth\" />, <Tron key=\"tron\" />, <Base key=\"base\" />],\n onClick: () => {\n setRoute(ROUTES.SELECT_DEPOSIT_ADDRESS_CHAIN);\n },\n };\n}\n"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { ethereum, getOrderDestChainId, isCCTPV1Chain, readDaimoPayOrderID, assert, debugJson, isNativeToken, assertNotNull, writeDaimoPayOrderID } from '@daimo/pay-common';
1
+ import { ethereum, readDaimoPayOrderID, assert, debugJson, isNativeToken, assertNotNull, writeDaimoPayOrderID } from '@daimo/pay-common';
2
2
  import { useWallet, useConnection } from '@solana/wallet-adapter-react';
3
3
  import { VersionedTransaction } from '@solana/web3.js';
4
4
  import { useState, useEffect, useCallback } from 'react';
@@ -37,8 +37,6 @@ function usePaymentState({
37
37
  const solanaWallet = useWallet();
38
38
  const { connection } = useConnection();
39
39
  const solanaPubKey = solanaWallet.publicKey?.toBase58();
40
- const destChainId = pay.order == null ? null : getOrderDestChainId(pay.order);
41
- const showSolanaPaymentMethod = destChainId != null && isCCTPV1Chain(destChainId);
42
40
  const [buttonProps, setButtonProps] = useState();
43
41
  const [currPayParams, setCurrPayParams] = useState();
44
42
  const [paymentWaitingMessage, setPaymentWaitingMessage] = useState();
@@ -68,8 +66,7 @@ function usePaymentState({
68
66
  trpc,
69
67
  address: solanaPubKey,
70
68
  usdRequired: pay.order?.destFinalCallTokenAmount.usd,
71
- isDepositFlow,
72
- showSolanaPaymentMethod
69
+ isDepositFlow
73
70
  });
74
71
  const depositAddressOptions = useDepositAddressOptions({
75
72
  trpc,
@@ -89,8 +86,8 @@ function usePaymentState({
89
86
  if (pay.order == null || chainOrderUsdLimits.loading) {
90
87
  return DEFAULT_USD_LIMIT;
91
88
  }
92
- const destChainId2 = pay.order.destFinalCallTokenAmount.token.chainId;
93
- return destChainId2 in chainOrderUsdLimits.limits ? chainOrderUsdLimits.limits[destChainId2] : DEFAULT_USD_LIMIT;
89
+ const destChainId = pay.order.destFinalCallTokenAmount.token.chainId;
90
+ return destChainId in chainOrderUsdLimits.limits ? chainOrderUsdLimits.limits[destChainId] : DEFAULT_USD_LIMIT;
94
91
  };
95
92
  const payWithToken = async (walletOption) => {
96
93
  assert(
@@ -285,16 +282,16 @@ function usePaymentState({
285
282
  };
286
283
  const setPayId = useCallback(
287
284
  async (payId) => {
288
- if (lockPayParams || payId == null) return;
285
+ if (payId == null) return;
289
286
  const id = readDaimoPayOrderID(payId).toString();
290
287
  if (pay.order?.id && BigInt(id) == pay.order.id) {
291
288
  return;
292
289
  }
293
290
  pay.reset();
294
- pay.setPayId(payId);
291
+ await pay.setPayId(payId);
295
292
  setIsDepositFlow(false);
296
293
  },
297
- [lockPayParams, pay]
294
+ [pay]
298
295
  );
299
296
  const setPayParams = async (payParams) => {
300
297
  if (lockPayParams) return;
@@ -345,7 +342,6 @@ function usePaymentState({
345
342
  selectedTokenOption,
346
343
  selectedSolanaTokenOption,
347
344
  externalPaymentOptions,
348
- showSolanaPaymentMethod,
349
345
  selectedWallet,
350
346
  selectedWalletDeepLink,
351
347
  walletPaymentOptions,