@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.
- package/build/index.d.ts +2 -4
- package/build/package.json.js +3 -3
- package/build/src/components/DaimoPayModal/index.js +1 -3
- package/build/src/components/DaimoPayModal/index.js.map +1 -1
- package/build/src/components/Pages/MobileConnectors/index.js +0 -2
- package/build/src/components/Pages/MobileConnectors/index.js.map +1 -1
- package/build/src/components/Pages/SelectMethod/index.js +2 -3
- package/build/src/components/Pages/SelectMethod/index.js.map +1 -1
- package/build/src/hooks/usePaymentState.js +7 -11
- package/build/src/hooks/usePaymentState.js.map +1 -1
- package/build/src/hooks/useSolanaPaymentOptions.js +2 -4
- package/build/src/hooks/useSolanaPaymentOptions.js.map +1 -1
- package/build/src/wallets/useWallets.js +24 -27
- package/build/src/wallets/useWallets.js.map +1 -1
- package/build/src/world-mini-app/WorldPayButton.js +1 -1
- package/build/src/world-mini-app/WorldPayButton.js.map +1 -1
- package/build/src/world-mini-app/useWithdrawToWorld.js +70 -0
- package/build/src/world-mini-app/useWithdrawToWorld.js.map +1 -0
- package/build/src/world-mini-app/useWorldSignIn.js +74 -0
- package/build/src/world-mini-app/useWorldSignIn.js.map +1 -0
- package/build/src/world.js +1 -0
- package/build/src/world.js.map +1 -1
- package/build/world.d.ts +9 -2
- package/package.json +3 -3
- package/build/src/assets/coins.js +0 -43
- package/build/src/assets/coins.js.map +0 -1
- package/build/src/assets/crepe.js +0 -42
- package/build/src/assets/crepe.js.map +0 -1
- package/build/src/assets/wallet.js +0 -39
- package/build/src/assets/wallet.js.map +0 -1
- package/build/src/components/Common/CopyToClipboard/index.js +0 -33
- package/build/src/components/Common/CopyToClipboard/index.js.map +0 -1
- package/build/src/components/Pages/Connectors/styles.js +0 -267
- package/build/src/components/Pages/Connectors/styles.js.map +0 -1
- 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,
|
|
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>;
|
package/build/package.json.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
var name = "@daimo/pay";
|
|
2
|
-
var version = "1.
|
|
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.
|
|
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.
|
|
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 &&
|
|
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":"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"}
|
|
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
|
|
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
|
|
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
|
|
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,
|
|
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
|
|
93
|
-
return
|
|
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 (
|
|
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
|
-
[
|
|
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,
|