@daimo/pay 1.16.0 → 1.16.2
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 +628 -15
- package/build/package.json.js +6 -4
- package/build/package.json.js.map +1 -1
- package/build/src/assets/MobileWithLogos.js +320 -1
- package/build/src/assets/MobileWithLogos.js.map +1 -1
- package/build/src/assets/ScanIconWithLogos.js +216 -10
- package/build/src/assets/ScanIconWithLogos.js.map +1 -1
- package/build/src/assets/browsers.js +963 -7
- package/build/src/assets/browsers.js.map +1 -1
- package/build/src/assets/chains.js +633 -103
- package/build/src/assets/chains.js.map +1 -1
- package/build/src/assets/coins.js +38 -1
- package/build/src/assets/coins.js.map +1 -1
- package/build/src/assets/crepe.js +35 -1
- package/build/src/assets/crepe.js.map +1 -1
- package/build/src/assets/icons.js +258 -15
- package/build/src/assets/icons.js.map +1 -1
- package/build/src/assets/logos.js +1510 -140
- package/build/src/assets/logos.js.map +1 -1
- package/build/src/assets/wallet.js +32 -1
- package/build/src/assets/wallet.js.map +1 -1
- package/build/src/assets/wave.js +41 -1
- package/build/src/assets/wave.js.map +1 -1
- package/build/src/components/Common/Alert/index.js +4 -1
- package/build/src/components/Common/Alert/index.js.map +1 -1
- package/build/src/components/Common/Alert/styles.js +4 -4
- package/build/src/components/Common/Alert/styles.js.map +1 -1
- package/build/src/components/Common/AmountInput/AmountInputField.js +29 -18
- package/build/src/components/Common/AmountInput/AmountInputField.js.map +1 -1
- package/build/src/components/Common/AmountInput/index.js +112 -99
- package/build/src/components/Common/AmountInput/index.js.map +1 -1
- package/build/src/components/Common/Avatar/index.js +63 -51
- package/build/src/components/Common/Avatar/index.js.map +1 -1
- package/build/src/components/Common/Avatar/styles.js +9 -14
- package/build/src/components/Common/Avatar/styles.js.map +1 -1
- package/build/src/components/Common/BrowserIcon/index.js +15 -14
- package/build/src/components/Common/BrowserIcon/index.js.map +1 -1
- package/build/src/components/Common/BrowserIcon/styles.js +1 -1
- package/build/src/components/Common/BrowserIcon/styles.js.map +1 -1
- package/build/src/components/Common/Button/index.js +131 -25
- package/build/src/components/Common/Button/index.js.map +1 -1
- package/build/src/components/Common/Button/styles.js +20 -24
- package/build/src/components/Common/Button/styles.js.map +1 -1
- package/build/src/components/Common/Chain/index.js +130 -14
- package/build/src/components/Common/Chain/index.js.map +1 -1
- package/build/src/components/Common/Chain/styles.js +9 -13
- package/build/src/components/Common/Chain/styles.js.map +1 -1
- package/build/src/components/Common/ChainSelectList/index.js +232 -89
- package/build/src/components/Common/ChainSelectList/index.js.map +1 -1
- package/build/src/components/Common/ChainSelectList/styles.js +11 -13
- package/build/src/components/Common/ChainSelectList/styles.js.map +1 -1
- package/build/src/components/Common/CircleTimer.js +85 -41
- package/build/src/components/Common/CircleTimer.js.map +1 -1
- package/build/src/components/Common/ConnectorList/index.js +106 -80
- package/build/src/components/Common/ConnectorList/index.js.map +1 -1
- package/build/src/components/Common/ConnectorList/styles.js +28 -36
- package/build/src/components/Common/ConnectorList/styles.js.map +1 -1
- package/build/src/components/Common/CopyToClipboard/CopyToClipboardIcon.js +16 -9
- package/build/src/components/Common/CopyToClipboard/CopyToClipboardIcon.js.map +1 -1
- package/build/src/components/Common/CopyToClipboard/index.js +3 -5
- package/build/src/components/Common/CopyToClipboard/index.js.map +1 -1
- package/build/src/components/Common/CustomQRCode/QRCode.js +120 -57
- package/build/src/components/Common/CustomQRCode/QRCode.js.map +1 -1
- package/build/src/components/Common/CustomQRCode/index.js +60 -10
- package/build/src/components/Common/CustomQRCode/index.js.map +1 -1
- package/build/src/components/Common/CustomQRCode/styles.js +6 -6
- package/build/src/components/Common/CustomQRCode/styles.js.map +1 -1
- package/build/src/components/Common/FitText/index.js +24 -17
- package/build/src/components/Common/FitText/index.js.map +1 -1
- package/build/src/components/Common/Modal/index.js +481 -267
- package/build/src/components/Common/Modal/index.js.map +1 -1
- package/build/src/components/Common/Modal/styles.js +44 -48
- package/build/src/components/Common/Modal/styles.js.map +1 -1
- package/build/src/components/Common/OptionsList/index.js +75 -33
- package/build/src/components/Common/OptionsList/index.js.map +1 -1
- package/build/src/components/Common/OptionsList/styles.js +7 -8
- package/build/src/components/Common/OptionsList/styles.js.map +1 -1
- package/build/src/components/Common/OrderHeader/index.js +109 -65
- package/build/src/components/Common/OrderHeader/index.js.map +1 -1
- package/build/src/components/Common/PaymentBreakdown/index.js +29 -7
- package/build/src/components/Common/PaymentBreakdown/index.js.map +1 -1
- package/build/src/components/Common/Portal/index.js +21 -22
- package/build/src/components/Common/Portal/index.js.map +1 -1
- package/build/src/components/Common/PoweredByFooter/index.js +39 -21
- package/build/src/components/Common/PoweredByFooter/index.js.map +1 -1
- package/build/src/components/Common/ScrollArea/index.js +107 -52
- package/build/src/components/Common/ScrollArea/index.js.map +1 -1
- package/build/src/components/Common/ScrollArea/styles.js +7 -11
- package/build/src/components/Common/ScrollArea/styles.js.map +1 -1
- package/build/src/components/Common/SelectAnotherMethodButton/index.js +80 -56
- package/build/src/components/Common/SelectAnotherMethodButton/index.js.map +1 -1
- package/build/src/components/Common/Spinner/index.js +56 -16
- package/build/src/components/Common/Spinner/index.js.map +1 -1
- package/build/src/components/Common/Spinner/styles.js +2 -2
- package/build/src/components/Common/Spinner/styles.js.map +1 -1
- package/build/src/components/Common/SwitchButton/index.js +18 -15
- package/build/src/components/Common/SwitchButton/index.js.map +1 -1
- package/build/src/components/Common/ThemedButton/index.js +37 -16
- package/build/src/components/Common/ThemedButton/index.js.map +1 -1
- package/build/src/components/Common/ThemedButton/styles.js +2 -2
- package/build/src/components/Common/ThemedButton/styles.js.map +1 -1
- package/build/src/components/Common/TokenChainLogo/index.js +14 -8
- package/build/src/components/Common/TokenChainLogo/index.js.map +1 -1
- package/build/src/components/Common/Tooltip/index.js +115 -83
- package/build/src/components/Common/Tooltip/index.js.map +1 -1
- package/build/src/components/Common/Tooltip/styles.js +8 -8
- package/build/src/components/Common/Tooltip/styles.js.map +1 -1
- package/build/src/components/Common/WalletChainLogo/index.js +13 -6
- package/build/src/components/Common/WalletChainLogo/index.js.map +1 -1
- package/build/src/components/DaimoPayButton/index.js +171 -180
- package/build/src/components/DaimoPayButton/index.js.map +1 -1
- package/build/src/components/DaimoPayButton/styles.js +4 -4
- package/build/src/components/DaimoPayButton/styles.js.map +1 -1
- package/build/src/components/DaimoPayModal/ConnectUsing.js +50 -24
- package/build/src/components/DaimoPayModal/ConnectUsing.js.map +1 -1
- package/build/src/components/DaimoPayModal/ConnectWithInjector/index.js +303 -163
- package/build/src/components/DaimoPayModal/ConnectWithInjector/index.js.map +1 -1
- package/build/src/components/DaimoPayModal/ConnectWithInjector/styles.js +10 -12
- package/build/src/components/DaimoPayModal/ConnectWithInjector/styles.js.map +1 -1
- package/build/src/components/DaimoPayModal/ConnectWithQRCode.js +69 -39
- package/build/src/components/DaimoPayModal/ConnectWithQRCode.js.map +1 -1
- package/build/src/components/DaimoPayModal/index.js +409 -416
- package/build/src/components/DaimoPayModal/index.js.map +1 -1
- package/build/src/components/DaimoPayThemeProvider/DaimoPayThemeProvider.js +15 -11
- package/build/src/components/DaimoPayThemeProvider/DaimoPayThemeProvider.js.map +1 -1
- package/build/src/components/Pages/About/graphics.js +796 -130
- package/build/src/components/Pages/About/graphics.js.map +1 -1
- package/build/src/components/Pages/About/index.js +203 -110
- package/build/src/components/Pages/About/index.js.map +1 -1
- package/build/src/components/Pages/About/styles.js +11 -15
- package/build/src/components/Pages/About/styles.js.map +1 -1
- package/build/src/components/Pages/Confirmation/index.js +71 -48
- package/build/src/components/Pages/Confirmation/index.js.map +1 -1
- package/build/src/components/Pages/Connectors/index.js +50 -16
- package/build/src/components/Pages/Connectors/index.js.map +1 -1
- package/build/src/components/Pages/Connectors/styles.js +10 -10
- package/build/src/components/Pages/Connectors/styles.js.map +1 -1
- package/build/src/components/Pages/DownloadApp/index.js +23 -18
- package/build/src/components/Pages/DownloadApp/index.js.map +1 -1
- package/build/src/components/Pages/Error/index.js +27 -15
- package/build/src/components/Pages/Error/index.js.map +1 -1
- package/build/src/components/Pages/MobileConnectors/index.js +50 -44
- package/build/src/components/Pages/MobileConnectors/index.js.map +1 -1
- package/build/src/components/Pages/MobileConnectors/styles.js +9 -11
- package/build/src/components/Pages/MobileConnectors/styles.js.map +1 -1
- package/build/src/components/Pages/Onboarding/index.js +20 -4
- package/build/src/components/Pages/Onboarding/index.js.map +1 -1
- package/build/src/components/Pages/Onboarding/styles.js +13 -13
- package/build/src/components/Pages/Onboarding/styles.js.map +1 -1
- package/build/src/components/Pages/PayWithToken/index.js +133 -122
- package/build/src/components/Pages/PayWithToken/index.js.map +1 -1
- package/build/src/components/Pages/SelectAmount/index.js +12 -5
- package/build/src/components/Pages/SelectAmount/index.js.map +1 -1
- package/build/src/components/Pages/SelectDepositAddressAmount/index.js +56 -38
- package/build/src/components/Pages/SelectDepositAddressAmount/index.js.map +1 -1
- package/build/src/components/Pages/SelectDepositAddressChain/index.js +57 -40
- package/build/src/components/Pages/SelectDepositAddressChain/index.js.map +1 -1
- package/build/src/components/Pages/SelectExchange/index.js +29 -24
- package/build/src/components/Pages/SelectExchange/index.js.map +1 -1
- package/build/src/components/Pages/SelectExternalAmount/index.js +57 -41
- package/build/src/components/Pages/SelectExternalAmount/index.js.map +1 -1
- package/build/src/components/Pages/SelectMethod/index.js +200 -183
- package/build/src/components/Pages/SelectMethod/index.js.map +1 -1
- package/build/src/components/Pages/SelectToken/index.js +72 -46
- package/build/src/components/Pages/SelectToken/index.js.map +1 -1
- package/build/src/components/Pages/SelectWalletAmount/index.js +40 -32
- package/build/src/components/Pages/SelectWalletAmount/index.js.map +1 -1
- package/build/src/components/Pages/SelectWalletChain/index.js +40 -36
- package/build/src/components/Pages/SelectWalletChain/index.js.map +1 -1
- package/build/src/components/Pages/SelectZKP/index.js +29 -24
- package/build/src/components/Pages/SelectZKP/index.js.map +1 -1
- package/build/src/components/Pages/Solana/ConnectorSolana/index.js +60 -45
- package/build/src/components/Pages/Solana/ConnectorSolana/index.js.map +1 -1
- package/build/src/components/Pages/Solana/PayWithSolanaToken/index.js +73 -61
- package/build/src/components/Pages/Solana/PayWithSolanaToken/index.js.map +1 -1
- package/build/src/components/Pages/Solana/SelectSolanaAmount/index.js +12 -5
- package/build/src/components/Pages/Solana/SelectSolanaAmount/index.js.map +1 -1
- package/build/src/components/Pages/SwitchNetworks/index.js +29 -10
- package/build/src/components/Pages/SwitchNetworks/index.js.map +1 -1
- package/build/src/components/Pages/WaitingDepositAddress/index.js +332 -184
- package/build/src/components/Pages/WaitingDepositAddress/index.js.map +1 -1
- package/build/src/components/Pages/WaitingExternal/index.js +69 -46
- package/build/src/components/Pages/WaitingExternal/index.js.map +1 -1
- package/build/src/components/Pages/WaitingWallet/index.js +37 -16
- package/build/src/components/Pages/WaitingWallet/index.js.map +1 -1
- package/build/src/components/Spinners/CircleSpinner/index.js +96 -7
- package/build/src/components/Spinners/CircleSpinner/index.js.map +1 -1
- package/build/src/components/Spinners/CircleSpinner/styles.js +6 -7
- package/build/src/components/Spinners/CircleSpinner/styles.js.map +1 -1
- package/build/src/components/Spinners/ExternalPaymentSpinner/index.js +18 -9
- package/build/src/components/Spinners/ExternalPaymentSpinner/index.js.map +1 -1
- package/build/src/components/Spinners/SquircleSpinner/index.js +60 -7
- package/build/src/components/Spinners/SquircleSpinner/index.js.map +1 -1
- package/build/src/components/Spinners/SquircleSpinner/styles.js +4 -4
- package/build/src/components/Spinners/SquircleSpinner/styles.js.map +1 -1
- package/build/src/components/Spinners/TokenLogoSpinner/index.js +12 -1
- package/build/src/components/Spinners/TokenLogoSpinner/index.js.map +1 -1
- package/build/src/components/Spinners/TokenLogoSpinner/styles.js +1 -1
- package/build/src/components/Spinners/TokenLogoSpinner/styles.js.map +1 -1
- package/build/src/components/Spinners/WalletPaymentSpinner/index.js +27 -20
- package/build/src/components/Spinners/WalletPaymentSpinner/index.js.map +1 -1
- package/build/src/components/Spinners/styles.js +3 -4
- package/build/src/components/Spinners/styles.js.map +1 -1
- package/build/src/constants/defaultTheme.js +1 -1
- package/build/src/constants/defaultTheme.js.map +1 -1
- package/build/src/constants/routes.js +29 -30
- package/build/src/constants/routes.js.map +1 -1
- package/build/src/defaultConfig.js +49 -46
- package/build/src/defaultConfig.js.map +1 -1
- package/build/src/defaultConnectors.js +32 -19
- package/build/src/defaultConnectors.js.map +1 -1
- package/build/src/hooks/useChainIsSupported.js +3 -5
- package/build/src/hooks/useChainIsSupported.js.map +1 -1
- package/build/src/hooks/useChains.js +3 -4
- package/build/src/hooks/useChains.js.map +1 -1
- package/build/src/hooks/useConnect.js +51 -39
- package/build/src/hooks/useConnect.js.map +1 -1
- package/build/src/hooks/useConnectCallback.js +15 -12
- package/build/src/hooks/useConnectCallback.js.map +1 -1
- package/build/src/hooks/useConnectors.js +2 -2
- package/build/src/hooks/useConnectors.js.map +1 -1
- package/build/src/hooks/useDaimoPay.js +98 -82
- package/build/src/hooks/useDaimoPay.js.map +1 -1
- package/build/src/hooks/useDaimoPayStatus.js +4 -15
- package/build/src/hooks/useDaimoPayStatus.js.map +1 -1
- package/build/src/hooks/useDaimoPayUI.js +7 -7
- package/build/src/hooks/useDaimoPayUI.js.map +1 -1
- package/build/src/hooks/useDepositAddressOptions.js +29 -25
- package/build/src/hooks/useDepositAddressOptions.js.map +1 -1
- package/build/src/hooks/useEnsFallbackConfig.js +5 -5
- package/build/src/hooks/useEnsFallbackConfig.js.map +1 -1
- package/build/src/hooks/useExternalPaymentOptions.js +57 -52
- package/build/src/hooks/useExternalPaymentOptions.js.map +1 -1
- package/build/src/hooks/useFitText.js +120 -135
- package/build/src/hooks/useFitText.js.map +1 -1
- package/build/src/hooks/useFocusTrap.js +33 -37
- package/build/src/hooks/useFocusTrap.js.map +1 -1
- package/build/src/hooks/useIsMobile.js +3 -3
- package/build/src/hooks/useIsMobile.js.map +1 -1
- package/build/src/hooks/useIsMounted.js +3 -5
- package/build/src/hooks/useIsMounted.js.map +1 -1
- package/build/src/hooks/useLastConnector.js +15 -15
- package/build/src/hooks/useLastConnector.js.map +1 -1
- package/build/src/hooks/useLocales.js +44 -42
- package/build/src/hooks/useLocales.js.map +1 -1
- package/build/src/hooks/useLockBodyScroll.js +38 -44
- package/build/src/hooks/useLockBodyScroll.js.map +1 -1
- package/build/src/hooks/useOrderUsdLimits.js +17 -19
- package/build/src/hooks/useOrderUsdLimits.js.map +1 -1
- package/build/src/hooks/usePayContext.js +3 -5
- package/build/src/hooks/usePayContext.js.map +1 -1
- package/build/src/hooks/usePaymentState.js +351 -324
- package/build/src/hooks/usePaymentState.js.map +1 -1
- package/build/src/hooks/usePrevious.js +6 -7
- package/build/src/hooks/usePrevious.js.map +1 -1
- package/build/src/hooks/useSolanaPaymentOptions.js +33 -33
- package/build/src/hooks/useSolanaPaymentOptions.js.map +1 -1
- package/build/src/hooks/useTokenOptions.js +129 -112
- package/build/src/hooks/useTokenOptions.js.map +1 -1
- package/build/src/hooks/useUntronAvailability.js +26 -34
- package/build/src/hooks/useUntronAvailability.js.map +1 -1
- package/build/src/hooks/useWalletPaymentOptions.js +83 -78
- package/build/src/hooks/useWalletPaymentOptions.js.map +1 -1
- package/build/src/hooks/useWindowSize.js +16 -16
- package/build/src/hooks/useWindowSize.js.map +1 -1
- package/build/src/localizations/index.js +28 -31
- package/build/src/localizations/index.js.map +1 -1
- package/build/src/localizations/locales/ar-AE.js +88 -88
- package/build/src/localizations/locales/ar-AE.js.map +1 -1
- package/build/src/localizations/locales/ca-AD.js +88 -88
- package/build/src/localizations/locales/ca-AD.js.map +1 -1
- package/build/src/localizations/locales/ee-EE.js +96 -88
- package/build/src/localizations/locales/ee-EE.js.map +1 -1
- package/build/src/localizations/locales/en-US.js +134 -126
- package/build/src/localizations/locales/en-US.js.map +1 -1
- package/build/src/localizations/locales/es-ES.js +126 -126
- package/build/src/localizations/locales/es-ES.js.map +1 -1
- package/build/src/localizations/locales/fa-IR.js +88 -88
- package/build/src/localizations/locales/fa-IR.js.map +1 -1
- package/build/src/localizations/locales/fr-FR.js +88 -88
- package/build/src/localizations/locales/fr-FR.js.map +1 -1
- package/build/src/localizations/locales/ja-JP.js +88 -88
- package/build/src/localizations/locales/ja-JP.js.map +1 -1
- package/build/src/localizations/locales/pt-BR.js +96 -88
- package/build/src/localizations/locales/pt-BR.js.map +1 -1
- package/build/src/localizations/locales/ru-RU.js +92 -88
- package/build/src/localizations/locales/ru-RU.js.map +1 -1
- package/build/src/localizations/locales/tr-TR.js +96 -88
- package/build/src/localizations/locales/tr-TR.js.map +1 -1
- package/build/src/localizations/locales/vi-VN.js +96 -88
- package/build/src/localizations/locales/vi-VN.js.map +1 -1
- package/build/src/localizations/locales/zh-CN.js +88 -88
- package/build/src/localizations/locales/zh-CN.js.map +1 -1
- package/build/src/payment/paymentEffects.js +237 -265
- package/build/src/payment/paymentEffects.js.map +1 -1
- package/build/src/payment/paymentFsm.js +165 -186
- package/build/src/payment/paymentFsm.js.map +1 -1
- package/build/src/payment/paymentStore.js +8 -10
- package/build/src/payment/paymentStore.js.map +1 -1
- package/build/src/payment/paymentUtils.js +5 -9
- package/build/src/payment/paymentUtils.js.map +1 -1
- package/build/src/provider/DaimoPayProvider.js +258 -249
- package/build/src/provider/DaimoPayProvider.js.map +1 -1
- package/build/src/provider/PayContext.js +0 -1
- package/build/src/provider/PayContext.js.map +1 -1
- package/build/src/provider/PaymentProvider.js +18 -17
- package/build/src/provider/PaymentProvider.js.map +1 -1
- package/build/src/provider/SolanaContextProvider.js +6 -3
- package/build/src/provider/SolanaContextProvider.js.map +1 -1
- package/build/src/provider/Web3ContextProvider.js +23 -23
- package/build/src/provider/Web3ContextProvider.js.map +1 -1
- package/build/src/stateStore.js +28 -74
- package/build/src/stateStore.js.map +1 -1
- package/build/src/styles/defaultTheme.js +64 -73
- package/build/src/styles/defaultTheme.js.map +1 -1
- package/build/src/styles/index.js +202 -217
- package/build/src/styles/index.js.map +1 -1
- package/build/src/styles/styled/index.js +0 -10
- package/build/src/styles/styled/index.js.map +1 -1
- package/build/src/styles/themes/base.js +136 -136
- package/build/src/styles/themes/base.js.map +1 -1
- package/build/src/styles/themes/index.js.map +1 -1
- package/build/src/styles/themes/midnight.js +71 -71
- package/build/src/styles/themes/midnight.js.map +1 -1
- package/build/src/styles/themes/minimal.js +75 -75
- package/build/src/styles/themes/minimal.js.map +1 -1
- package/build/src/styles/themes/nouns.js +76 -76
- package/build/src/styles/themes/nouns.js.map +1 -1
- package/build/src/styles/themes/retro.js +88 -88
- package/build/src/styles/themes/retro.js.map +1 -1
- package/build/src/styles/themes/rounded.js +84 -84
- package/build/src/styles/themes/rounded.js.map +1 -1
- package/build/src/styles/themes/soft.js +66 -66
- package/build/src/styles/themes/soft.js.map +1 -1
- package/build/src/styles/themes/web95.js +95 -95
- package/build/src/styles/themes/web95.js.map +1 -1
- package/build/src/utils/exports.js +0 -1
- package/build/src/utils/exports.js.map +1 -1
- package/build/src/utils/format.js +25 -63
- package/build/src/utils/format.js.map +1 -1
- package/build/src/utils/index.js +23 -20
- package/build/src/utils/index.js.map +1 -1
- package/build/src/utils/p3.js +8 -9
- package/build/src/utils/p3.js.map +1 -1
- package/build/src/utils/platform.js +6 -8
- package/build/src/utils/platform.js.map +1 -1
- package/build/src/utils/polling.js +31 -31
- package/build/src/utils/polling.js.map +1 -1
- package/build/src/utils/supportUrl.js +9 -9
- package/build/src/utils/supportUrl.js.map +1 -1
- package/build/src/utils/trpc.js +11 -11
- package/build/src/utils/trpc.js.map +1 -1
- package/build/src/utils/validateInput.js +9 -29
- package/build/src/utils/validateInput.js.map +1 -1
- package/build/src/wallets/index.js +13 -22
- package/build/src/wallets/index.js.map +1 -1
- package/build/src/wallets/useWallets.js +183 -181
- package/build/src/wallets/useWallets.js.map +1 -1
- package/build/src/wallets/walletConfigs.js +230 -235
- package/build/src/wallets/walletConfigs.js.map +1 -1
- package/build/src/world-mini-app/WorldPayButton.js +113 -118
- package/build/src/world-mini-app/WorldPayButton.js.map +1 -1
- package/build/src/world-mini-app/promptWorldPayment.js +49 -47
- package/build/src/world-mini-app/promptWorldPayment.js.map +1 -1
- package/build/{types.d.ts → types-7ed033b6.d.ts} +31 -11
- package/build/world.d.ts +89 -1
- package/package.json +7 -5
- package/build/assets/MobileWithLogos.d.ts +0 -2
- package/build/assets/ScanIconWithLogos.d.ts +0 -6
- package/build/assets/browsers.d.ts +0 -10
- package/build/assets/chains.d.ts +0 -28
- package/build/assets/coins.d.ts +0 -2
- package/build/assets/crepe.d.ts +0 -3
- package/build/assets/icons.d.ts +0 -35
- package/build/assets/logos.d.ts +0 -207
- package/build/assets/wallet.d.ts +0 -3
- package/build/assets/wave.d.ts +0 -2
- package/build/components/Common/Alert/index.d.ts +0 -6
- package/build/components/Common/Alert/styles.d.ts +0 -2
- package/build/components/Common/Alert/types.d.ts +0 -5
- package/build/components/Common/AmountInput/AmountInputField.d.ts +0 -8
- package/build/components/Common/AmountInput/index.d.ts +0 -9
- package/build/components/Common/Avatar/index.d.ts +0 -17
- package/build/components/Common/Avatar/styles.d.ts +0 -2
- package/build/components/Common/BrowserIcon/index.d.ts +0 -4
- package/build/components/Common/BrowserIcon/styles.d.ts +0 -1
- package/build/components/Common/BrowserIcon/types.d.ts +0 -3
- package/build/components/Common/Button/index.d.ts +0 -4
- package/build/components/Common/Button/styles.d.ts +0 -10
- package/build/components/Common/Button/types.d.ts +0 -15
- package/build/components/Common/Chain/index.d.ts +0 -9
- package/build/components/Common/Chain/styles.d.ts +0 -4
- package/build/components/Common/ChainSelectList/index.d.ts +0 -4
- package/build/components/Common/ChainSelectList/styles.d.ts +0 -9
- package/build/components/Common/CircleTimer.d.ts +0 -17
- package/build/components/Common/ConnectorList/index.d.ts +0 -2
- package/build/components/Common/ConnectorList/styles.d.ts +0 -8
- package/build/components/Common/CopyToClipboard/CopyToClipboardIcon.d.ts +0 -6
- package/build/components/Common/CopyToClipboard/index.d.ts +0 -7
- package/build/components/Common/CustomQRCode/QRCode.d.ts +0 -12
- package/build/components/Common/CustomQRCode/index.d.ts +0 -6
- package/build/components/Common/CustomQRCode/styles.d.ts +0 -6
- package/build/components/Common/CustomQRCode/types.d.ts +0 -11
- package/build/components/Common/DynamicContainer/index.d.ts +0 -7
- package/build/components/Common/FitText/index.d.ts +0 -8
- package/build/components/Common/LazyImage/index.d.ts +0 -8
- package/build/components/Common/Logo/index.d.ts +0 -8
- package/build/components/Common/Logo/styles.d.ts +0 -3
- package/build/components/Common/Modal/index.d.ts +0 -25
- package/build/components/Common/Modal/styles.d.ts +0 -25
- package/build/components/Common/OptionsList/index.d.ts +0 -17
- package/build/components/Common/OptionsList/styles.d.ts +0 -5
- package/build/components/Common/OrderHeader/index.d.ts +0 -5
- package/build/components/Common/PaymentBreakdown/index.d.ts +0 -6
- package/build/components/Common/Portal/index.d.ts +0 -2
- package/build/components/Common/PoweredByFooter/index.d.ts +0 -5
- package/build/components/Common/ScrollArea/index.d.ts +0 -9
- package/build/components/Common/ScrollArea/styles.d.ts +0 -3
- package/build/components/Common/SelectAnotherMethodButton/index.d.ts +0 -1
- package/build/components/Common/Spinner/index.d.ts +0 -1
- package/build/components/Common/Spinner/styles.d.ts +0 -1
- package/build/components/Common/SquareTimer.d.ts +0 -19
- package/build/components/Common/SwitchButton/index.d.ts +0 -6
- package/build/components/Common/ThemedButton/index.d.ts +0 -15
- package/build/components/Common/ThemedButton/styles.d.ts +0 -2
- package/build/components/Common/TokenChainLogo/index.d.ts +0 -7
- package/build/components/Common/Tooltip/index.d.ts +0 -4
- package/build/components/Common/Tooltip/styles.d.ts +0 -3
- package/build/components/Common/Tooltip/types.d.ts +0 -9
- package/build/components/Common/WalletChainLogo/index.d.ts +0 -6
- package/build/components/DaimoPayButton/index.d.ts +0 -149
- package/build/components/DaimoPayButton/styles.d.ts +0 -4
- package/build/components/DaimoPayModal/ConnectUsing.d.ts +0 -2
- package/build/components/DaimoPayModal/ConnectWithInjector/index.d.ts +0 -15
- package/build/components/DaimoPayModal/ConnectWithInjector/styles.d.ts +0 -6
- package/build/components/DaimoPayModal/ConnectWithQRCode.d.ts +0 -12
- package/build/components/DaimoPayModal/index.d.ts +0 -8
- package/build/components/DaimoPayThemeProvider/DaimoPayThemeProvider.d.ts +0 -16
- package/build/components/Pages/About/graphics.d.ts +0 -11
- package/build/components/Pages/About/index.d.ts +0 -3
- package/build/components/Pages/About/styles.d.ts +0 -8
- package/build/components/Pages/Confirmation/index.d.ts +0 -3
- package/build/components/Pages/Connectors/index.d.ts +0 -3
- package/build/components/Pages/Connectors/styles.d.ts +0 -9
- package/build/components/Pages/DownloadApp/index.d.ts +0 -2
- package/build/components/Pages/Error/index.d.ts +0 -1
- package/build/components/Pages/MobileConnectors/index.d.ts +0 -3
- package/build/components/Pages/MobileConnectors/styles.d.ts +0 -5
- package/build/components/Pages/Onboarding/index.d.ts +0 -3
- package/build/components/Pages/Onboarding/styles.d.ts +0 -9
- package/build/components/Pages/PayWithToken/index.d.ts +0 -3
- package/build/components/Pages/SelectAmount/index.d.ts +0 -3
- package/build/components/Pages/SelectDepositAddressAmount/index.d.ts +0 -3
- package/build/components/Pages/SelectDepositAddressChain/index.d.ts +0 -3
- package/build/components/Pages/SelectExchange/index.d.ts +0 -3
- package/build/components/Pages/SelectExternalAmount/index.d.ts +0 -3
- package/build/components/Pages/SelectMethod/index.d.ts +0 -1
- package/build/components/Pages/SelectMethod/styles.d.ts +0 -9
- package/build/components/Pages/SelectToken/index.d.ts +0 -1
- package/build/components/Pages/SelectWalletAmount/index.d.ts +0 -3
- package/build/components/Pages/SelectWalletChain/index.d.ts +0 -3
- package/build/components/Pages/SelectZKP/index.d.ts +0 -3
- package/build/components/Pages/Solana/ConnectorSolana/index.d.ts +0 -4
- package/build/components/Pages/Solana/PayWithSolanaToken/index.d.ts +0 -3
- package/build/components/Pages/Solana/SelectSolanaAmount/index.d.ts +0 -3
- package/build/components/Pages/SwitchNetworks/index.d.ts +0 -3
- package/build/components/Pages/WaitingDepositAddress/index.d.ts +0 -1
- package/build/components/Pages/WaitingExternal/index.d.ts +0 -3
- package/build/components/Pages/WaitingWallet/index.d.ts +0 -3
- package/build/components/Spinners/CircleSpinner/index.d.ts +0 -9
- package/build/components/Spinners/CircleSpinner/styles.d.ts +0 -5
- package/build/components/Spinners/ExternalPaymentSpinner/index.d.ts +0 -5
- package/build/components/Spinners/SquircleSpinner/index.d.ts +0 -5
- package/build/components/Spinners/SquircleSpinner/styles.d.ts +0 -4
- package/build/components/Spinners/TokenLogoSpinner/index.d.ts +0 -5
- package/build/components/Spinners/TokenLogoSpinner/styles.d.ts +0 -1
- package/build/components/Spinners/WalletPaymentSpinner/index.d.ts +0 -5
- package/build/components/Spinners/styles.d.ts +0 -2
- package/build/constants/defaultTheme.d.ts +0 -4
- package/build/constants/routes.d.ts +0 -28
- package/build/defaultConfig.d.ts +0 -17
- package/build/defaultConnectors.d.ts +0 -14
- package/build/hooks/useChainIsSupported.d.ts +0 -2
- package/build/hooks/useChains.d.ts +0 -3
- package/build/hooks/useConnect.d.ts +0 -110
- package/build/hooks/useConnectCallback.d.ts +0 -8
- package/build/hooks/useConnectors.d.ts +0 -3
- package/build/hooks/useDaimoPay.d.ts +0 -94
- package/build/hooks/useDaimoPayStatus.d.ts +0 -15
- package/build/hooks/useDaimoPayUI.d.ts +0 -6
- package/build/hooks/useDepositAddressOptions.d.ts +0 -10
- package/build/hooks/useEnsFallbackConfig.d.ts +0 -2
- package/build/hooks/useExternalPaymentOptions.d.ts +0 -12
- package/build/hooks/useFitText.d.ts +0 -14
- package/build/hooks/useFocusTrap.d.ts +0 -1
- package/build/hooks/useGoogleFont.d.ts +0 -3
- package/build/hooks/useIsMobile.d.ts +0 -5
- package/build/hooks/useIsMounted.d.ts +0 -3
- package/build/hooks/useLastConnector.d.ts +0 -4
- package/build/hooks/useLocalStorage.d.ts +0 -7
- package/build/hooks/useLocales.d.ts +0 -2
- package/build/hooks/useLockBodyScroll.d.ts +0 -1
- package/build/hooks/useModal.d.ts +0 -8
- package/build/hooks/useOrderUsdLimits.d.ts +0 -7
- package/build/hooks/usePayContext.d.ts +0 -2
- package/build/hooks/usePaymentState.d.ts +0 -67
- package/build/hooks/usePrevious.d.ts +0 -1
- package/build/hooks/useSolanaPaymentOptions.d.ts +0 -13
- package/build/hooks/useTokenOptions.d.ts +0 -5
- package/build/hooks/useUntronAvailability.d.ts +0 -14
- package/build/hooks/useWalletPaymentOptions.d.ts +0 -31
- package/build/hooks/useWindowSize.d.ts +0 -4
- package/build/localizations/index.d.ts +0 -2
- package/build/localizations/locales/ar-AE.d.ts +0 -3
- package/build/localizations/locales/ca-AD.d.ts +0 -3
- package/build/localizations/locales/ee-EE.d.ts +0 -3
- package/build/localizations/locales/en-US.d.ts +0 -128
- package/build/localizations/locales/es-ES.d.ts +0 -3
- package/build/localizations/locales/fa-IR.d.ts +0 -3
- package/build/localizations/locales/fr-FR.d.ts +0 -3
- package/build/localizations/locales/index.d.ts +0 -3
- package/build/localizations/locales/ja-JP.d.ts +0 -91
- package/build/localizations/locales/pt-BR.d.ts +0 -3
- package/build/localizations/locales/ru-RU.d.ts +0 -3
- package/build/localizations/locales/tr-TR.d.ts +0 -3
- package/build/localizations/locales/vi-VN.d.ts +0 -3
- package/build/localizations/locales/zh-CN.d.ts +0 -3
- package/build/payment/paymentEffects.d.ts +0 -12
- package/build/payment/paymentFsm.d.ts +0 -131
- package/build/payment/paymentStore.d.ts +0 -14
- package/build/payment/paymentUtils.d.ts +0 -6
- package/build/provider/DaimoPayProvider.d.ts +0 -24
- package/build/provider/PayContext.d.ts +0 -66
- package/build/provider/PaymentProvider.d.ts +0 -8
- package/build/provider/SolanaContextProvider.d.ts +0 -6
- package/build/provider/Web3ContextProvider.d.ts +0 -24
- package/build/stateStore.d.ts +0 -66
- package/build/styles/defaultTheme.d.ts +0 -3
- package/build/styles/index.d.ts +0 -1
- package/build/styles/styled/index.d.ts +0 -12
- package/build/styles/themes/base.d.ts +0 -129
- package/build/styles/themes/index.d.ts +0 -673
- package/build/styles/themes/midnight.d.ts +0 -74
- package/build/styles/themes/minimal.d.ts +0 -94
- package/build/styles/themes/nouns.d.ts +0 -79
- package/build/styles/themes/retro.d.ts +0 -89
- package/build/styles/themes/rounded.d.ts +0 -86
- package/build/styles/themes/soft.d.ts +0 -69
- package/build/styles/themes/web95.d.ts +0 -91
- package/build/styles/types.d.ts +0 -80
- package/build/utils/exports.d.ts +0 -1
- package/build/utils/format.d.ts +0 -49
- package/build/utils/index.d.ts +0 -17
- package/build/utils/localstorage.d.ts +0 -9
- package/build/utils/p3.d.ts +0 -2
- package/build/utils/platform.d.ts +0 -2
- package/build/utils/polling.d.ts +0 -13
- package/build/utils/supportUrl.d.ts +0 -2
- package/build/utils/trpc.d.ts +0 -4
- package/build/utils/validateInput.d.ts +0 -16
- package/build/utils/wallets.d.ts +0 -24
- package/build/wallets/index.d.ts +0 -5
- package/build/wallets/useWallets.d.ts +0 -16
- package/build/wallets/walletConfigs.d.ts +0 -29
- package/build/world-mini-app/WorldPayButton.d.ts +0 -84
- package/build/world-mini-app/promptWorldPayment.d.ts +0 -9
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defaultConnectors.js","sources":["../../src/defaultConnectors.ts"],"sourcesContent":[
|
|
1
|
+
{"version":3,"file":"defaultConnectors.js","sources":["../../src/defaultConnectors.ts"],"sourcesContent":["import { baseAccount, gemini, safe } from \"@wagmi/connectors\";\nimport { CreateConnectorFn } from \"wagmi\";\n\ntype DefaultConnectorsProps = {\n app: {\n name: string;\n icon?: string;\n description?: string;\n url?: string;\n };\n additionalConnectors?: CreateConnectorFn[];\n};\n\nconst defaultConnectors = ({\n app,\n additionalConnectors,\n}: DefaultConnectorsProps): CreateConnectorFn[] => {\n const shouldUseSafeConnector =\n !(typeof window === \"undefined\") && window?.parent !== window;\n\n const connectors: CreateConnectorFn[] = additionalConnectors ?? [];\n\n // If we're in an iframe, include the SafeConnector\n if (shouldUseSafeConnector) {\n connectors.push(\n safe({\n allowedDomains: [/gnosis-safe.io$/, /app.safe.global$/],\n }),\n );\n }\n // Add the rest of the connectors\n connectors.push(\n baseAccount({\n appName: app.name,\n // Use the default Daimo Pay logo if the app does not provide an icon\n appLogoUrl: app.icon ?? \"https://pay.daimo.com/daimo-pay-logo.svg\",\n }),\n );\n connectors.push(\n gemini({\n appMetadata: {\n name: app.name,\n url: app.url,\n // Use the default Daimo Pay logo if the app does not provide an icon\n appLogoUrl: app.icon ?? \"https://pay.daimo.com/daimo-pay-logo.svg\",\n },\n }),\n );\n\n return connectors;\n};\n\nexport default defaultConnectors;\n"],"names":[],"mappings":";;AAaA,MAAM,oBAAoB,CAAC;AAAA,EACzB,GAAA;AAAA,EACA,oBAAA;AACF,CAAmD,KAAA;AACjD,EAAA,MAAM,yBACJ,EAAE,OAAO,MAAW,KAAA,WAAA,CAAA,IAAgB,QAAQ,MAAW,KAAA,MAAA,CAAA;AAEzD,EAAM,MAAA,UAAA,GAAkC,wBAAwB,EAAC,CAAA;AAGjE,EAAA,IAAI,sBAAwB,EAAA;AAC1B,IAAW,UAAA,CAAA,IAAA;AAAA,MACT,IAAK,CAAA;AAAA,QACH,cAAA,EAAgB,CAAC,iBAAA,EAAmB,kBAAkB,CAAA;AAAA,OACvD,CAAA;AAAA,KACH,CAAA;AAAA,GACF;AAEA,EAAW,UAAA,CAAA,IAAA;AAAA,IACT,WAAY,CAAA;AAAA,MACV,SAAS,GAAI,CAAA,IAAA;AAAA;AAAA,MAEb,UAAA,EAAY,IAAI,IAAQ,IAAA,0CAAA;AAAA,KACzB,CAAA;AAAA,GACH,CAAA;AACA,EAAW,UAAA,CAAA,IAAA;AAAA,IACT,MAAO,CAAA;AAAA,MACL,WAAa,EAAA;AAAA,QACX,MAAM,GAAI,CAAA,IAAA;AAAA,QACV,KAAK,GAAI,CAAA,GAAA;AAAA;AAAA,QAET,UAAA,EAAY,IAAI,IAAQ,IAAA,0CAAA;AAAA,OAC1B;AAAA,KACD,CAAA;AAAA,GACH,CAAA;AAEA,EAAO,OAAA,UAAA,CAAA;AACT;;;;"}
|
|
@@ -1,11 +1,9 @@
|
|
|
1
1
|
import { useConfig } from 'wagmi';
|
|
2
2
|
|
|
3
|
-
/** Determines whether the current wagmi configuration supports a given chain. */
|
|
4
3
|
function useChainIsSupported(chainId) {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
return chains.some((x) => x.id === chainId);
|
|
4
|
+
const { chains } = useConfig();
|
|
5
|
+
if (!chainId) return false;
|
|
6
|
+
return chains.some((x) => x.id === chainId);
|
|
9
7
|
}
|
|
10
8
|
|
|
11
9
|
export { useChainIsSupported };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useChainIsSupported.js","sources":["../../../src/hooks/useChainIsSupported.ts"],"sourcesContent":[null],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"useChainIsSupported.js","sources":["../../../src/hooks/useChainIsSupported.ts"],"sourcesContent":["import { useConfig } from \"wagmi\";\n\n/** Determines whether the current wagmi configuration supports a given chain. */\nexport function useChainIsSupported(chainId?: number): boolean | null {\n const { chains } = useConfig();\n if (!chainId) return false;\n return chains.some((x) => x.id === chainId);\n}\n"],"names":[],"mappings":";;AAGO,SAAS,oBAAoB,OAAkC,EAAA;AACpE,EAAM,MAAA,EAAE,MAAO,EAAA,GAAI,SAAU,EAAA,CAAA;AAC7B,EAAI,IAAA,CAAC,SAAgB,OAAA,KAAA,CAAA;AACrB,EAAA,OAAO,OAAO,IAAK,CAAA,CAAC,CAAM,KAAA,CAAA,CAAE,OAAO,OAAO,CAAA,CAAA;AAC5C;;;;"}
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
import { useConfig } from 'wagmi';
|
|
2
2
|
|
|
3
|
-
/** Returns currently configured wagmi chains. */
|
|
4
3
|
function useChains() {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
4
|
+
const wagmi = useConfig();
|
|
5
|
+
const chains = wagmi?.chains ?? [];
|
|
6
|
+
return chains.map((c) => c);
|
|
8
7
|
}
|
|
9
8
|
|
|
10
9
|
export { useChains };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useChains.js","sources":["../../../src/hooks/useChains.ts"],"sourcesContent":[
|
|
1
|
+
{"version":3,"file":"useChains.js","sources":["../../../src/hooks/useChains.ts"],"sourcesContent":["import { Chain } from \"viem\";\nimport { useConfig } from \"wagmi\";\n\n/** Returns currently configured wagmi chains. */\nexport function useChains() {\n const wagmi = useConfig();\n const chains = wagmi?.chains ?? [];\n return chains.map((c) => c) as Chain[];\n}\n"],"names":[],"mappings":";;AAIO,SAAS,SAAY,GAAA;AAC1B,EAAA,MAAM,QAAQ,SAAU,EAAA,CAAA;AACxB,EAAM,MAAA,MAAA,GAAS,KAAO,EAAA,MAAA,IAAU,EAAC,CAAA;AACjC,EAAA,OAAO,MAAO,CAAA,GAAA,CAAI,CAAC,CAAA,KAAM,CAAC,CAAA,CAAA;AAC5B;;;;"}
|
|
@@ -1,48 +1,60 @@
|
|
|
1
1
|
import { useConnect as useConnect$1 } from 'wagmi';
|
|
2
2
|
import { usePayContext } from './usePayContext.js';
|
|
3
3
|
|
|
4
|
-
/**
|
|
5
|
-
* This is a wrapper around wagmi's useConnect hook that adds some
|
|
6
|
-
* additional functionality.
|
|
7
|
-
*/
|
|
8
4
|
function useConnect({ ...props } = {}) {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
5
|
+
const context = usePayContext();
|
|
6
|
+
const { connect, connectAsync, connectors, ...rest } = useConnect$1({
|
|
7
|
+
...props,
|
|
8
|
+
mutation: {
|
|
9
|
+
...props.mutation,
|
|
10
|
+
onError(err) {
|
|
11
|
+
if (err.message) {
|
|
12
|
+
if (err.message === "Proposal expired") {
|
|
13
|
+
context.log(
|
|
14
|
+
"[CONNECT] Connection request timed out. Please try again.",
|
|
15
|
+
err
|
|
16
|
+
);
|
|
17
|
+
return;
|
|
18
|
+
}
|
|
19
|
+
if (err.message !== "User rejected request") {
|
|
20
|
+
context.log(`[CONNECT] ${err.message}`, err);
|
|
21
|
+
}
|
|
22
|
+
} else {
|
|
23
|
+
context.log(`[CONNECT] Could not connect.`, err);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
});
|
|
28
|
+
return {
|
|
29
|
+
connect: ({
|
|
30
|
+
connector,
|
|
31
|
+
chainId,
|
|
32
|
+
mutation
|
|
33
|
+
}) => {
|
|
34
|
+
return connect(
|
|
35
|
+
{
|
|
36
|
+
connector,
|
|
37
|
+
chainId: chainId ?? context.options?.initialChainId
|
|
28
38
|
},
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
39
|
+
mutation
|
|
40
|
+
);
|
|
41
|
+
},
|
|
42
|
+
connectAsync: async ({
|
|
43
|
+
connector,
|
|
44
|
+
chainId,
|
|
45
|
+
mutation
|
|
46
|
+
}) => {
|
|
47
|
+
return connectAsync(
|
|
48
|
+
{
|
|
49
|
+
connector,
|
|
50
|
+
chainId: chainId ?? context.options?.initialChainId
|
|
36
51
|
},
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
connectors,
|
|
44
|
-
...rest,
|
|
45
|
-
};
|
|
52
|
+
mutation
|
|
53
|
+
);
|
|
54
|
+
},
|
|
55
|
+
connectors,
|
|
56
|
+
...rest
|
|
57
|
+
};
|
|
46
58
|
}
|
|
47
59
|
|
|
48
60
|
export { useConnect };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useConnect.js","sources":["../../../src/hooks/useConnect.tsx"],"sourcesContent":[
|
|
1
|
+
{"version":3,"file":"useConnect.js","sources":["../../../src/hooks/useConnect.tsx"],"sourcesContent":["/**\n * This is a wrapper around wagmi's useConnect hook that adds some\n * additional functionality.\n */\n\nimport {\n Connector,\n CreateConnectorFn,\n type UseConnectParameters,\n useConnect as wagmiUseConnect,\n} from \"wagmi\";\nimport { usePayContext } from \"./usePayContext\";\n\nexport function useConnect({ ...props }: UseConnectParameters = {}) {\n const context = usePayContext();\n\n const { connect, connectAsync, connectors, ...rest } = wagmiUseConnect({\n ...props,\n mutation: {\n ...props.mutation,\n onError(err) {\n if (err.message) {\n if (err.message === \"Proposal expired\") {\n context.log(\n \"[CONNECT] Connection request timed out. Please try again.\",\n err,\n );\n return;\n }\n if (err.message !== \"User rejected request\") {\n context.log(`[CONNECT] ${err.message}`, err);\n }\n } else {\n context.log(`[CONNECT] Could not connect.`, err);\n }\n },\n },\n });\n\n return {\n connect: ({\n connector,\n chainId,\n mutation,\n }: {\n connector: CreateConnectorFn | Connector;\n chainId?: number;\n mutation?: UseConnectParameters[\"mutation\"];\n }) => {\n return connect(\n {\n connector,\n chainId: chainId ?? context.options?.initialChainId,\n },\n mutation,\n );\n },\n connectAsync: async ({\n connector,\n chainId,\n mutation,\n }: {\n connector: CreateConnectorFn | Connector;\n chainId?: number;\n mutation?: UseConnectParameters[\"mutation\"];\n }) => {\n return connectAsync(\n {\n connector,\n chainId: chainId ?? context.options?.initialChainId,\n },\n mutation,\n );\n },\n connectors,\n ...rest,\n };\n}\n"],"names":["wagmiUseConnect"],"mappings":";;;AAaO,SAAS,WAAW,EAAE,GAAG,KAAM,EAAA,GAA0B,EAAI,EAAA;AAClE,EAAA,MAAM,UAAU,aAAc,EAAA,CAAA;AAE9B,EAAA,MAAM,EAAE,OAAS,EAAA,YAAA,EAAc,YAAY,GAAG,IAAA,KAASA,YAAgB,CAAA;AAAA,IACrE,GAAG,KAAA;AAAA,IACH,QAAU,EAAA;AAAA,MACR,GAAG,KAAM,CAAA,QAAA;AAAA,MACT,QAAQ,GAAK,EAAA;AACX,QAAA,IAAI,IAAI,OAAS,EAAA;AACf,UAAI,IAAA,GAAA,CAAI,YAAY,kBAAoB,EAAA;AACtC,YAAQ,OAAA,CAAA,GAAA;AAAA,cACN,2DAAA;AAAA,cACA,GAAA;AAAA,aACF,CAAA;AACA,YAAA,OAAA;AAAA,WACF;AACA,UAAI,IAAA,GAAA,CAAI,YAAY,uBAAyB,EAAA;AAC3C,YAAA,OAAA,CAAQ,GAAI,CAAA,CAAA,UAAA,EAAa,GAAI,CAAA,OAAO,IAAI,GAAG,CAAA,CAAA;AAAA,WAC7C;AAAA,SACK,MAAA;AACL,UAAQ,OAAA,CAAA,GAAA,CAAI,gCAAgC,GAAG,CAAA,CAAA;AAAA,SACjD;AAAA,OACF;AAAA,KACF;AAAA,GACD,CAAA,CAAA;AAED,EAAO,OAAA;AAAA,IACL,SAAS,CAAC;AAAA,MACR,SAAA;AAAA,MACA,OAAA;AAAA,MACA,QAAA;AAAA,KAKI,KAAA;AACJ,MAAO,OAAA,OAAA;AAAA,QACL;AAAA,UACE,SAAA;AAAA,UACA,OAAA,EAAS,OAAW,IAAA,OAAA,CAAQ,OAAS,EAAA,cAAA;AAAA,SACvC;AAAA,QACA,QAAA;AAAA,OACF,CAAA;AAAA,KACF;AAAA,IACA,cAAc,OAAO;AAAA,MACnB,SAAA;AAAA,MACA,OAAA;AAAA,MACA,QAAA;AAAA,KAKI,KAAA;AACJ,MAAO,OAAA,YAAA;AAAA,QACL;AAAA,UACE,SAAA;AAAA,UACA,OAAA,EAAS,OAAW,IAAA,OAAA,CAAQ,OAAS,EAAA,cAAA;AAAA,SACvC;AAAA,QACA,QAAA;AAAA,OACF,CAAA;AAAA,KACF;AAAA,IACA,UAAA;AAAA,IACA,GAAG,IAAA;AAAA,GACL,CAAA;AACF;;;;"}
|
|
@@ -1,17 +1,20 @@
|
|
|
1
1
|
import { useAccountEffect } from 'wagmi';
|
|
2
2
|
|
|
3
|
-
const useConnectCallback = ({
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
3
|
+
const useConnectCallback = ({
|
|
4
|
+
onConnect,
|
|
5
|
+
onDisconnect
|
|
6
|
+
}) => {
|
|
7
|
+
useAccountEffect({
|
|
8
|
+
onConnect: ({ address, connector, isReconnected }) => {
|
|
9
|
+
if (!isReconnected) {
|
|
10
|
+
onConnect?.({
|
|
11
|
+
address,
|
|
12
|
+
connectorId: connector?.id
|
|
13
|
+
});
|
|
14
|
+
}
|
|
15
|
+
},
|
|
16
|
+
onDisconnect: () => onDisconnect?.()
|
|
17
|
+
});
|
|
15
18
|
};
|
|
16
19
|
|
|
17
20
|
export { useConnectCallback };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useConnectCallback.js","sources":["../../../src/hooks/useConnectCallback.ts"],"sourcesContent":[
|
|
1
|
+
{"version":3,"file":"useConnectCallback.js","sources":["../../../src/hooks/useConnectCallback.ts"],"sourcesContent":["import { useAccountEffect } from \"wagmi\";\n\nexport type useConnectCallbackProps = {\n onConnect?: ({\n address,\n connectorId,\n }: {\n address?: string;\n connectorId?: string;\n }) => void;\n onDisconnect?: () => void;\n};\n\nexport const useConnectCallback = ({\n onConnect,\n onDisconnect,\n}: useConnectCallbackProps) => {\n useAccountEffect({\n onConnect: ({ address, connector, isReconnected }) => {\n if (!isReconnected) {\n onConnect?.({\n address: address,\n connectorId: connector?.id,\n });\n }\n },\n onDisconnect: () => onDisconnect?.(),\n });\n};\n"],"names":[],"mappings":";;AAaO,MAAM,qBAAqB,CAAC;AAAA,EACjC,SAAA;AAAA,EACA,YAAA;AACF,CAA+B,KAAA;AAC7B,EAAiB,gBAAA,CAAA;AAAA,IACf,WAAW,CAAC,EAAE,OAAS,EAAA,SAAA,EAAW,eAAoB,KAAA;AACpD,MAAA,IAAI,CAAC,aAAe,EAAA;AAClB,QAAY,SAAA,GAAA;AAAA,UACV,OAAA;AAAA,UACA,aAAa,SAAW,EAAA,EAAA;AAAA,SACzB,CAAA,CAAA;AAAA,OACH;AAAA,KACF;AAAA,IACA,YAAA,EAAc,MAAM,YAAe,IAAA;AAAA,GACpC,CAAA,CAAA;AACH;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useConnectors.js","sources":["../../../src/hooks/useConnectors.ts"],"sourcesContent":[
|
|
1
|
+
{"version":3,"file":"useConnectors.js","sources":["../../../src/hooks/useConnectors.ts"],"sourcesContent":["import { type Connector, useConnectors as useWagmiConnectors } from \"wagmi\";\n\nexport function useConnectors() {\n const connectors = useWagmiConnectors();\n return connectors ?? [];\n}\n\nexport function useConnector(id: string, uuid?: string) {\n const connectors = useConnectors();\n if (id === \"injected\" && uuid) {\n return connectors.find((c) => c.id === id && c.name === uuid) as Connector;\n } else if (id === \"injected\") {\n return connectors.find(\n (c) => c.id === id && c.name.includes(\"Injected\"),\n ) as Connector;\n }\n return connectors.find((c) => c.id === id) as Connector;\n}\n"],"names":["useWagmiConnectors"],"mappings":";;AAEO,SAAS,aAAgB,GAAA;AAC9B,EAAA,MAAM,aAAaA,eAAmB,EAAA,CAAA;AACtC,EAAA,OAAO,cAAc,EAAC,CAAA;AACxB;;;;"}
|
|
@@ -2,89 +2,105 @@ import { useContext, useSyncExternalStore, useMemo, useCallback } from 'react';
|
|
|
2
2
|
import { waitForPaymentState } from '../payment/paymentStore.js';
|
|
3
3
|
import { PaymentContext } from '../provider/PaymentProvider.js';
|
|
4
4
|
|
|
5
|
-
/**
|
|
6
|
-
* React hook for interacting with Daimo Pay orders and payments. Use this hook
|
|
7
|
-
* to manage the lifecycle of a Daimo Pay payment in your application.
|
|
8
|
-
*
|
|
9
|
-
* This hook provides a simple interface to create, hydrate, pay, and reset
|
|
10
|
-
* Daimo Pay orders.
|
|
11
|
-
*
|
|
12
|
-
* @returns {UseDaimoPay} An object with current payment state and methods to
|
|
13
|
-
* manage Daimo Pay orders and payments.
|
|
14
|
-
*/
|
|
15
5
|
function useDaimoPay() {
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
},
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
6
|
+
const store = useContext(PaymentContext);
|
|
7
|
+
if (!store) {
|
|
8
|
+
throw new Error("useDaimoPay must be used within <PaymentProvider>");
|
|
9
|
+
}
|
|
10
|
+
const paymentFsmState = useSyncExternalStore(
|
|
11
|
+
store.subscribe,
|
|
12
|
+
store.getState,
|
|
13
|
+
store.getState
|
|
14
|
+
);
|
|
15
|
+
const order = useMemo(() => {
|
|
16
|
+
if (paymentFsmState.type === "idle") return null;
|
|
17
|
+
return paymentFsmState.order ?? null;
|
|
18
|
+
}, [paymentFsmState]);
|
|
19
|
+
const paymentState = paymentFsmState.type;
|
|
20
|
+
const paymentErrorMessage = paymentFsmState.type === "error" ? paymentFsmState.message : null;
|
|
21
|
+
const dispatch = useCallback((e) => store.dispatch(e), [store]);
|
|
22
|
+
const createPreviewOrder = useCallback(
|
|
23
|
+
async (payParams) => {
|
|
24
|
+
dispatch({ type: "set_pay_params", payParams });
|
|
25
|
+
const previewOrderState = await waitForPaymentState(store, "preview");
|
|
26
|
+
return previewOrderState;
|
|
27
|
+
},
|
|
28
|
+
[dispatch, store]
|
|
29
|
+
);
|
|
30
|
+
const setPayId = useCallback(
|
|
31
|
+
async (payId) => {
|
|
32
|
+
dispatch({ type: "set_pay_id", payId });
|
|
33
|
+
const previewOrderState = await waitForPaymentState(
|
|
34
|
+
store,
|
|
35
|
+
"unhydrated",
|
|
36
|
+
"payment_unpaid",
|
|
37
|
+
"payment_started",
|
|
38
|
+
"payment_completed",
|
|
39
|
+
"payment_bounced"
|
|
40
|
+
);
|
|
41
|
+
return previewOrderState;
|
|
42
|
+
},
|
|
43
|
+
[dispatch, store]
|
|
44
|
+
);
|
|
45
|
+
const hydrateOrder = useCallback(
|
|
46
|
+
async (refundAddress) => {
|
|
47
|
+
dispatch({ type: "hydrate_order", refundAddress });
|
|
48
|
+
const hydratedOrderState = await waitForPaymentState(
|
|
49
|
+
store,
|
|
50
|
+
"payment_unpaid"
|
|
51
|
+
);
|
|
52
|
+
return hydratedOrderState;
|
|
53
|
+
},
|
|
54
|
+
[dispatch, store]
|
|
55
|
+
);
|
|
56
|
+
const paySource = useCallback(
|
|
57
|
+
() => dispatch({ type: "pay_source" }),
|
|
58
|
+
[dispatch]
|
|
59
|
+
);
|
|
60
|
+
const payEthSource = useCallback(
|
|
61
|
+
async (args) => {
|
|
62
|
+
dispatch({ type: "pay_ethereum_source", ...args });
|
|
63
|
+
const paidState = await waitForPaymentState(
|
|
64
|
+
store,
|
|
65
|
+
"payment_started",
|
|
66
|
+
"payment_completed",
|
|
67
|
+
"payment_bounced"
|
|
68
|
+
);
|
|
69
|
+
return paidState;
|
|
70
|
+
},
|
|
71
|
+
[dispatch, store]
|
|
72
|
+
);
|
|
73
|
+
const paySolanaSource = useCallback(
|
|
74
|
+
async (args) => {
|
|
75
|
+
dispatch({ type: "pay_solana_source", ...args });
|
|
76
|
+
const paidState = await waitForPaymentState(
|
|
77
|
+
store,
|
|
78
|
+
"payment_started",
|
|
79
|
+
"payment_completed",
|
|
80
|
+
"payment_bounced"
|
|
81
|
+
);
|
|
82
|
+
return paidState;
|
|
83
|
+
},
|
|
84
|
+
[dispatch, store]
|
|
85
|
+
);
|
|
86
|
+
const reset = useCallback(() => dispatch({ type: "reset" }), [dispatch]);
|
|
87
|
+
const setChosenUsd = useCallback(
|
|
88
|
+
(usd) => dispatch({ type: "set_chosen_usd", usd }),
|
|
89
|
+
[dispatch]
|
|
90
|
+
);
|
|
91
|
+
return {
|
|
92
|
+
order,
|
|
93
|
+
paymentState,
|
|
94
|
+
paymentErrorMessage,
|
|
95
|
+
createPreviewOrder,
|
|
96
|
+
hydrateOrder,
|
|
97
|
+
setPayId,
|
|
98
|
+
paySource,
|
|
99
|
+
payEthSource,
|
|
100
|
+
paySolanaSource,
|
|
101
|
+
reset,
|
|
102
|
+
setChosenUsd
|
|
103
|
+
};
|
|
88
104
|
}
|
|
89
105
|
|
|
90
106
|
export { useDaimoPay };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useDaimoPay.js","sources":["../../../src/hooks/useDaimoPay.tsx"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"useDaimoPay.js","sources":["../../../src/hooks/useDaimoPay.tsx"],"sourcesContent":["// hooks/useDaimoPay.ts\nimport { DaimoPayOrderID, SolanaPublicKey } from \"@daimo/pay-common\";\nimport { useCallback, useContext, useMemo, useSyncExternalStore } from \"react\";\nimport { Address, Hex } from \"viem\";\nimport { PaymentEvent, PaymentState, PayParams } from \"../payment/paymentFsm\";\nimport { waitForPaymentState } from \"../payment/paymentStore\";\nimport { PaymentContext } from \"../provider/PaymentProvider\";\n\ntype DaimoPayFunctions = {\n /**\n * Create a new Daimo Pay order preview with the given parameters.\n * Call this to start a new payment flow.\n *\n * @param params - Parameters describing the payment to be created.\n */\n createPreviewOrder: (\n params: PayParams,\n ) => Promise<Extract<PaymentState, { type: \"preview\" }>>;\n\n /**\n * Set the order ID to fetch and manage an existing Daimo Pay order.\n * Useful for resuming or referencing a previously created order.\n *\n * @param id - The Daimo Pay order ID to set.\n */\n setPayId: (id: DaimoPayOrderID) => Promise<\n Extract<\n PaymentState,\n {\n type:\n | \"unhydrated\"\n | \"payment_unpaid\"\n | \"payment_started\"\n | \"payment_completed\"\n | \"payment_bounced\";\n }\n >\n >;\n\n /**\n * Hydrate the current order, locking in the payment intent details and\n * token swap prices.\n */\n hydrateOrder: (\n refundAddress?: Address,\n ) => Promise<Extract<PaymentState, { type: \"payment_unpaid\" }>>;\n\n /** Trigger search for payment on the current order. */\n paySource: () => void;\n\n /**\n * Register an Ethereum payment source for the current order.\n * Call this after the user has submitted an Ethereum payment transaction.\n *\n * @param args - Details about the Ethereum payment transaction.\n */\n payEthSource: (args: {\n paymentTxHash: Hex;\n sourceChainId: number;\n payerAddress: Address;\n sourceToken: Address;\n sourceAmount: bigint;\n }) => Promise<\n Extract<\n PaymentState,\n { type: \"payment_started\" | \"payment_completed\" | \"payment_bounced\" }\n >\n >;\n\n /**\n * Register a Solana payment source for the current order.\n * Call this after the user has submitted a Solana payment transaction.\n *\n * @param args - Details about the Solana payment transaction.\n */\n paySolanaSource: (args: {\n paymentTxHash: string;\n sourceToken: SolanaPublicKey;\n }) => Promise<\n Extract<\n PaymentState,\n { type: \"payment_started\" | \"payment_completed\" | \"payment_bounced\" }\n >\n >;\n\n /**\n * Reset the current payment state and clear the active order.\n * Call this to start a new payment flow.\n */\n reset: () => void;\n\n /**\n * Update the user's chosen amount in USD. Applies only to deposit flow.\n *\n * @deprecated\n */\n setChosenUsd: (usd: number) => void;\n};\n\n// Enforce that order is typed correctly based on paymentState.\n// E.g. if paymentState is \"payment_completed\", then order must be hydrated.\ntype DaimoPayState = {\n [S in PaymentState as S[\"type\"]]: {\n paymentState: S[\"type\"];\n order: S extends { order: infer O } ? O : null;\n paymentErrorMessage: S extends { message: infer M } ? M : null;\n };\n}[PaymentState[\"type\"]];\n\nexport type UseDaimoPay = DaimoPayFunctions & DaimoPayState;\n\n/**\n * React hook for interacting with Daimo Pay orders and payments. Use this hook\n * to manage the lifecycle of a Daimo Pay payment in your application.\n *\n * This hook provides a simple interface to create, hydrate, pay, and reset\n * Daimo Pay orders.\n *\n * @returns {UseDaimoPay} An object with current payment state and methods to\n * manage Daimo Pay orders and payments.\n */\nexport function useDaimoPay(): UseDaimoPay {\n const store = useContext(PaymentContext);\n if (!store) {\n throw new Error(\"useDaimoPay must be used within <PaymentProvider>\");\n }\n\n /* --------------------------------------------------\n Order state\n ---------------------------------------------------*/\n\n // Subscribe to the store and keep an up-to-date copy of the payment.\n const paymentFsmState = useSyncExternalStore(\n store.subscribe,\n store.getState,\n store.getState,\n );\n\n // Wrap `order` in `useMemo` for reference stability. This allows downstream\n // components to use `order` as a dependency to avoid unnecessary re-renders.\n const order = useMemo(() => {\n if (paymentFsmState.type === \"idle\") return null;\n return paymentFsmState.order ?? null;\n }, [paymentFsmState]);\n\n const paymentState = paymentFsmState.type;\n const paymentErrorMessage =\n paymentFsmState.type === \"error\" ? paymentFsmState.message : null;\n\n /* --------------------------------------------------\n Order event dispatch helpers\n ---------------------------------------------------*/\n\n // Internal helper to dispatch events to the store.\n const dispatch = useCallback((e: PaymentEvent) => store.dispatch(e), [store]);\n\n const createPreviewOrder = useCallback(\n async (payParams: PayParams) => {\n dispatch({ type: \"set_pay_params\", payParams });\n\n // Wait for the order to enter the \"preview\" state, which means it\n // has been successfully created.\n const previewOrderState = await waitForPaymentState(store, \"preview\");\n\n return previewOrderState;\n },\n [dispatch, store],\n );\n\n const setPayId = useCallback(\n async (payId: DaimoPayOrderID) => {\n dispatch({ type: \"set_pay_id\", payId });\n\n // Wait for the order to be queried from the API. Using payId could\n // result in the order being in any state.\n const previewOrderState = await waitForPaymentState(\n store,\n \"unhydrated\",\n \"payment_unpaid\",\n \"payment_started\",\n \"payment_completed\",\n \"payment_bounced\",\n );\n\n return previewOrderState;\n },\n [dispatch, store],\n );\n\n const hydrateOrder = useCallback(\n async (refundAddress?: Address) => {\n dispatch({ type: \"hydrate_order\", refundAddress });\n\n // Wait for the order to enter the \"payment_unpaid\" state, which means it\n // has been successfully hydrated.\n const hydratedOrderState = await waitForPaymentState(\n store,\n \"payment_unpaid\",\n );\n\n return hydratedOrderState;\n },\n [dispatch, store],\n );\n\n const paySource = useCallback(\n () => dispatch({ type: \"pay_source\" }),\n [dispatch],\n );\n\n const payEthSource = useCallback(\n async (args: {\n paymentTxHash: Hex;\n sourceChainId: number;\n payerAddress: Address;\n sourceToken: Address;\n sourceAmount: bigint;\n }) => {\n dispatch({ type: \"pay_ethereum_source\", ...args });\n\n // Will throw if the payment is not verified by the server.\n const paidState = await waitForPaymentState(\n store,\n \"payment_started\",\n \"payment_completed\",\n \"payment_bounced\",\n );\n\n return paidState;\n },\n [dispatch, store],\n );\n\n const paySolanaSource = useCallback(\n async (args: { paymentTxHash: string; sourceToken: SolanaPublicKey }) => {\n dispatch({ type: \"pay_solana_source\", ...args });\n\n // Will throw if the payment is not verified by the server.\n const paidState = await waitForPaymentState(\n store,\n \"payment_started\",\n \"payment_completed\",\n \"payment_bounced\",\n );\n\n return paidState;\n },\n [dispatch, store],\n );\n\n const reset = useCallback(() => dispatch({ type: \"reset\" }), [dispatch]);\n\n const setChosenUsd = useCallback(\n (usd: number) => dispatch({ type: \"set_chosen_usd\", usd }),\n [dispatch],\n );\n\n return {\n order,\n paymentState,\n paymentErrorMessage,\n createPreviewOrder,\n hydrateOrder,\n setPayId,\n paySource,\n payEthSource,\n paySolanaSource,\n reset,\n setChosenUsd,\n } as UseDaimoPay;\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -1,22 +1,11 @@
|
|
|
1
1
|
import { writeDaimoPayOrderID } from '@daimo/pay-common';
|
|
2
2
|
import { useDaimoPay } from './useDaimoPay.js';
|
|
3
3
|
|
|
4
|
-
/** Returns the current payment, or undefined if there is none.
|
|
5
|
-
*
|
|
6
|
-
* Status values:
|
|
7
|
-
* - `payment_unpaid` - the user has not paid yet
|
|
8
|
-
* - `payment_started` - the user has paid & payment is in progress. This status
|
|
9
|
-
* typically lasts a few seconds.
|
|
10
|
-
* - `payment_completed` - the final call or transfer succeeded
|
|
11
|
-
* - `payment_bounced` - the final call or transfer reverted. Funds were sent
|
|
12
|
-
* to the payment's configured refund address on the destination chain.
|
|
13
|
-
*/
|
|
14
4
|
function useDaimoPayStatus() {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
return { paymentId, status: order.intentStatus };
|
|
5
|
+
const { order } = useDaimoPay();
|
|
6
|
+
if (order == null) return void 0;
|
|
7
|
+
const paymentId = writeDaimoPayOrderID(order.id);
|
|
8
|
+
return { paymentId, status: order.intentStatus };
|
|
20
9
|
}
|
|
21
10
|
|
|
22
11
|
export { useDaimoPayStatus };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useDaimoPayStatus.js","sources":["../../../src/hooks/useDaimoPayStatus.ts"],"sourcesContent":[null],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"useDaimoPayStatus.js","sources":["../../../src/hooks/useDaimoPayStatus.ts"],"sourcesContent":["import { DaimoPayIntentStatus, writeDaimoPayOrderID } from \"@daimo/pay-common\";\nimport { useDaimoPay } from \"./useDaimoPay\";\n\n/** Returns the current payment, or undefined if there is none.\n *\n * Status values:\n * - `payment_unpaid` - the user has not paid yet\n * - `payment_started` - the user has paid & payment is in progress. This status\n * typically lasts a few seconds.\n * - `payment_completed` - the final call or transfer succeeded\n * - `payment_bounced` - the final call or transfer reverted. Funds were sent\n * to the payment's configured refund address on the destination chain.\n */\nexport function useDaimoPayStatus():\n | { paymentId: string; status: DaimoPayIntentStatus }\n | undefined {\n const { order } = useDaimoPay();\n if (order == null) return undefined;\n\n const paymentId = writeDaimoPayOrderID(order.id);\n\n return { paymentId, status: order.intentStatus };\n}\n"],"names":[],"mappings":";;;AAaO,SAAS,iBAEF,GAAA;AACZ,EAAM,MAAA,EAAE,KAAM,EAAA,GAAI,WAAY,EAAA,CAAA;AAC9B,EAAI,IAAA,KAAA,IAAS,MAAa,OAAA,KAAA,CAAA,CAAA;AAE1B,EAAM,MAAA,SAAA,GAAY,oBAAqB,CAAA,KAAA,CAAM,EAAE,CAAA,CAAA;AAE/C,EAAA,OAAO,EAAE,SAAA,EAAW,MAAQ,EAAA,KAAA,CAAM,YAAa,EAAA,CAAA;AACjD;;;;"}
|
|
@@ -2,13 +2,13 @@ import { useContext } from 'react';
|
|
|
2
2
|
import { PayContext } from '../provider/PayContext.js';
|
|
3
3
|
|
|
4
4
|
function useDaimoPayUI() {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
5
|
+
const context = useContext(PayContext);
|
|
6
|
+
if (!context) {
|
|
7
|
+
throw new Error("useDaimoPayUI must be used within a DaimoPayUIProvider");
|
|
8
|
+
}
|
|
9
|
+
return {
|
|
10
|
+
resetPayment: context.paymentState.resetOrder
|
|
11
|
+
};
|
|
12
12
|
}
|
|
13
13
|
|
|
14
14
|
export { useDaimoPayUI };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useDaimoPayUI.js","sources":["../../../src/hooks/useDaimoPayUI.tsx"],"sourcesContent":[
|
|
1
|
+
{"version":3,"file":"useDaimoPayUI.js","sources":["../../../src/hooks/useDaimoPayUI.tsx"],"sourcesContent":["import { useContext } from \"react\";\nimport { PayParams } from \"../payment/paymentFsm\";\nimport { PayContext } from \"../provider/PayContext\";\n\ntype UseDaimoPayUI = {\n resetPayment: (payParams?: Partial<PayParams>) => Promise<void>;\n};\n\nexport function useDaimoPayUI(): UseDaimoPayUI {\n const context = useContext(PayContext);\n if (!context) {\n throw new Error(\"useDaimoPayUI must be used within a DaimoPayUIProvider\");\n }\n\n return {\n resetPayment: context.paymentState.resetOrder,\n };\n}\n"],"names":[],"mappings":";;;AAQO,SAAS,aAA+B,GAAA;AAC7C,EAAM,MAAA,OAAA,GAAU,WAAW,UAAU,CAAA,CAAA;AACrC,EAAA,IAAI,CAAC,OAAS,EAAA;AACZ,IAAM,MAAA,IAAI,MAAM,wDAAwD,CAAA,CAAA;AAAA,GAC1E;AAEA,EAAO,OAAA;AAAA,IACL,YAAA,EAAc,QAAQ,YAAa,CAAA,UAAA;AAAA,GACrC,CAAA;AACF;;;;"}
|
|
@@ -1,30 +1,34 @@
|
|
|
1
1
|
import { useState, useEffect } from 'react';
|
|
2
2
|
|
|
3
|
-
function useDepositAddressOptions({
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
}
|
|
27
|
-
|
|
3
|
+
function useDepositAddressOptions({
|
|
4
|
+
trpc,
|
|
5
|
+
usdRequired,
|
|
6
|
+
mode
|
|
7
|
+
}) {
|
|
8
|
+
const [options, setOptions] = useState(
|
|
9
|
+
[]
|
|
10
|
+
);
|
|
11
|
+
const [loading, setLoading] = useState(false);
|
|
12
|
+
useEffect(() => {
|
|
13
|
+
const refreshDepositAddressOptions = async (usd, mode2) => {
|
|
14
|
+
setLoading(true);
|
|
15
|
+
try {
|
|
16
|
+
const options2 = await trpc.getDepositAddressOptions.query({
|
|
17
|
+
usdRequired: usd,
|
|
18
|
+
mode: mode2
|
|
19
|
+
});
|
|
20
|
+
setOptions(options2);
|
|
21
|
+
} catch (e) {
|
|
22
|
+
console.error(e);
|
|
23
|
+
} finally {
|
|
24
|
+
setLoading(false);
|
|
25
|
+
}
|
|
26
|
+
};
|
|
27
|
+
if (usdRequired != null && mode != null) {
|
|
28
|
+
refreshDepositAddressOptions(usdRequired, mode);
|
|
29
|
+
}
|
|
30
|
+
}, [usdRequired, mode]);
|
|
31
|
+
return { options, loading };
|
|
28
32
|
}
|
|
29
33
|
|
|
30
34
|
export { useDepositAddressOptions };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useDepositAddressOptions.js","sources":["../../../src/hooks/useDepositAddressOptions.ts"],"sourcesContent":[null],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"useDepositAddressOptions.js","sources":["../../../src/hooks/useDepositAddressOptions.ts"],"sourcesContent":["import {\n DaimoPayOrderMode,\n DepositAddressPaymentOptionMetadata,\n} from \"@daimo/pay-common\";\nimport { useEffect, useState } from \"react\";\nimport { TrpcClient } from \"../utils/trpc\";\n\nexport function useDepositAddressOptions({\n trpc,\n usdRequired,\n mode,\n}: {\n trpc: TrpcClient;\n usdRequired: number | undefined;\n mode: DaimoPayOrderMode | undefined;\n}) {\n const [options, setOptions] = useState<DepositAddressPaymentOptionMetadata[]>(\n [],\n );\n const [loading, setLoading] = useState(false);\n\n useEffect(() => {\n const refreshDepositAddressOptions = async (\n usd: number,\n mode: DaimoPayOrderMode,\n ) => {\n setLoading(true);\n try {\n const options = await trpc.getDepositAddressOptions.query({\n usdRequired: usd,\n mode,\n });\n setOptions(options);\n } catch (e) {\n console.error(e);\n } finally {\n setLoading(false);\n }\n };\n\n if (usdRequired != null && mode != null) {\n refreshDepositAddressOptions(usdRequired, mode);\n }\n }, [usdRequired, mode]); // eslint-disable-line react-hooks/exhaustive-deps\n\n return { options, loading };\n}\n"],"names":["mode","options"],"mappings":";;AAOO,SAAS,wBAAyB,CAAA;AAAA,EACvC,IAAA;AAAA,EACA,WAAA;AAAA,EACA,IAAA;AACF,CAIG,EAAA;AACD,EAAM,MAAA,CAAC,OAAS,EAAA,UAAU,CAAI,GAAA,QAAA;AAAA,IAC5B,EAAC;AAAA,GACH,CAAA;AACA,EAAA,MAAM,CAAC,OAAA,EAAS,UAAU,CAAA,GAAI,SAAS,KAAK,CAAA,CAAA;AAE5C,EAAA,SAAA,CAAU,MAAM;AACd,IAAM,MAAA,4BAAA,GAA+B,OACnC,GAAA,EACAA,KACG,KAAA;AACH,MAAA,UAAA,CAAW,IAAI,CAAA,CAAA;AACf,MAAI,IAAA;AACF,QAAA,MAAMC,QAAU,GAAA,MAAM,IAAK,CAAA,wBAAA,CAAyB,KAAM,CAAA;AAAA,UACxD,WAAa,EAAA,GAAA;AAAA,UACb,IAAAD,EAAAA,KAAAA;AAAA,SACD,CAAA,CAAA;AACD,QAAA,UAAA,CAAWC,QAAO,CAAA,CAAA;AAAA,eACX,CAAG,EAAA;AACV,QAAA,OAAA,CAAQ,MAAM,CAAC,CAAA,CAAA;AAAA,OACf,SAAA;AACA,QAAA,UAAA,CAAW,KAAK,CAAA,CAAA;AAAA,OAClB;AAAA,KACF,CAAA;AAEA,IAAI,IAAA,WAAA,IAAe,IAAQ,IAAA,IAAA,IAAQ,IAAM,EAAA;AACvC,MAAA,4BAAA,CAA6B,aAAa,IAAI,CAAA,CAAA;AAAA,KAChD;AAAA,GACC,EAAA,CAAC,WAAa,EAAA,IAAI,CAAC,CAAA,CAAA;AAEtB,EAAO,OAAA,EAAE,SAAS,OAAQ,EAAA,CAAA;AAC5B;;;;"}
|