@daimo/pay 1.15.0 → 1.16.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/components/DaimoPayButton/index.d.ts +13 -0
- package/build/hooks/useConnect.d.ts +8 -8
- package/build/hooks/useLocales.d.ts +2 -1
- package/build/hooks/useWalletPaymentOptions.d.ts +12 -1
- package/build/index.d.ts +626 -15
- package/build/localizations/locales/en-US.d.ts +2 -0
- package/build/localizations/locales/index.d.ts +1 -0
- package/build/package.json.js +6 -4
- package/build/package.json.js.map +1 -1
- package/build/payment/paymentFsm.d.ts +5 -0
- package/build/payment/paymentUtils.d.ts +6 -0
- 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 +67 -55
- 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 +170 -176
- 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 +72 -41
- 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 +201 -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 +339 -178
- 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 -321
- 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 +131 -95
- 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 +86 -61
- 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 -124
- package/build/src/localizations/locales/en-US.js.map +1 -1
- package/build/src/localizations/locales/es-ES.js +126 -124
- 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 -264
- package/build/src/payment/paymentEffects.js.map +1 -1
- package/build/src/payment/paymentFsm.js +167 -187
- 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 +10 -0
- package/build/src/payment/paymentUtils.js.map +1 -0
- package/build/src/provider/DaimoPayProvider.js +258 -245
- 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-7ed033b6.d.ts +66 -0
- package/build/world.d.ts +89 -1
- package/package.json +6 -4
|
@@ -2,293 +2,266 @@ import { assert, readDaimoPayOrderID, getOrderDestChainId, DaimoPayOrderMode } f
|
|
|
2
2
|
import { formatUnits, getAddress } from 'viem';
|
|
3
3
|
import { startPolling } from '../utils/polling.js';
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
// key = `${type}:${orderId}`
|
|
7
|
-
const pollers = new Map();
|
|
8
|
-
var PollerType;
|
|
9
|
-
(function (PollerType) {
|
|
10
|
-
PollerType["FIND_SOURCE_PAYMENT"] = "find_source_payment";
|
|
11
|
-
PollerType["REFRESH_ORDER"] = "refresh_order";
|
|
12
|
-
})(PollerType || (PollerType = {}));
|
|
5
|
+
const pollers = /* @__PURE__ */ new Map();
|
|
13
6
|
function stopPoller(key) {
|
|
14
|
-
|
|
15
|
-
|
|
7
|
+
pollers.get(key)?.();
|
|
8
|
+
pollers.delete(key);
|
|
16
9
|
}
|
|
17
|
-
/**
|
|
18
|
-
* Add a subscriber to the payment store that runs side effects in response to
|
|
19
|
-
* events.
|
|
20
|
-
*
|
|
21
|
-
* @param store The payment store to subscribe to.
|
|
22
|
-
* @param trpc TRPC client pointing to the Daimo Pay API.
|
|
23
|
-
* @param log The logger to use for logging.
|
|
24
|
-
* @returns A function that can be used to unsubscribe from the store.
|
|
25
|
-
*/
|
|
26
10
|
function attachPaymentEffectHandlers(store, trpc, log) {
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
stopPoller(`${PollerType.FIND_SOURCE_PAYMENT}:${prev.order.id}`);
|
|
45
|
-
stopPoller(`${PollerType.REFRESH_ORDER}:${prev.order.id}`);
|
|
46
|
-
}
|
|
47
|
-
}
|
|
11
|
+
const unsubscribe = store.subscribe(({ prev, next, event }) => {
|
|
12
|
+
log(
|
|
13
|
+
`[EFFECT] processing effects for event ${event.type} on state transition ${prev.type} -> ${next.type}`
|
|
14
|
+
);
|
|
15
|
+
if (prev.type !== next.type) {
|
|
16
|
+
if (next.type === "payment_unpaid") {
|
|
17
|
+
pollFindPayments(store, trpc, next.order.id);
|
|
18
|
+
}
|
|
19
|
+
if (next.type === "payment_started") {
|
|
20
|
+
pollRefreshOrder(store, trpc, next.order.id);
|
|
21
|
+
}
|
|
22
|
+
if (["payment_completed", "payment_bounced", "error", "idle"].includes(
|
|
23
|
+
next.type
|
|
24
|
+
)) {
|
|
25
|
+
if ("order" in prev && prev.order) {
|
|
26
|
+
stopPoller(`${"find_source_payment" /* FIND_SOURCE_PAYMENT */}:${prev.order.id}`);
|
|
27
|
+
stopPoller(`${"refresh_order" /* REFRESH_ORDER */}:${prev.order.id}`);
|
|
48
28
|
}
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
}
|
|
66
|
-
else {
|
|
67
|
-
log(`[EFFECT] invalid event ${event.type} on state ${prev.type}`);
|
|
68
|
-
}
|
|
69
|
-
break;
|
|
70
|
-
}
|
|
71
|
-
case "pay_source": {
|
|
72
|
-
if (prev.type === "payment_unpaid") {
|
|
73
|
-
runPaySourceEffects(store, trpc, prev);
|
|
74
|
-
}
|
|
75
|
-
else {
|
|
76
|
-
log(`[EFFECT] invalid event ${event.type} on state ${prev.type}`);
|
|
77
|
-
}
|
|
78
|
-
break;
|
|
79
|
-
}
|
|
80
|
-
case "pay_ethereum_source": {
|
|
81
|
-
if (prev.type === "payment_unpaid") {
|
|
82
|
-
runPayEthereumSourceEffects(store, trpc, prev, event);
|
|
83
|
-
}
|
|
84
|
-
else {
|
|
85
|
-
log(`[EFFECT] invalid event ${event.type} on state ${prev.type}`);
|
|
86
|
-
}
|
|
87
|
-
break;
|
|
88
|
-
}
|
|
89
|
-
case "pay_solana_source": {
|
|
90
|
-
if (prev.type === "payment_unpaid") {
|
|
91
|
-
runPaySolanaSourceEffects(store, trpc, prev, event);
|
|
92
|
-
}
|
|
93
|
-
log(`[EFFECT] invalid event ${event.type} on state ${prev.type}`);
|
|
94
|
-
break;
|
|
95
|
-
}
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
switch (event.type) {
|
|
32
|
+
case "set_pay_params":
|
|
33
|
+
runSetPayParamsEffects(store, trpc, event);
|
|
34
|
+
break;
|
|
35
|
+
case "set_pay_id":
|
|
36
|
+
runSetPayIdEffects(store, trpc, event);
|
|
37
|
+
break;
|
|
38
|
+
case "hydrate_order": {
|
|
39
|
+
if (prev.type === "preview") {
|
|
40
|
+
runHydratePayParamsEffects(store, trpc, prev, event);
|
|
41
|
+
} else if (prev.type === "unhydrated") {
|
|
42
|
+
runHydratePayIdEffects(store, trpc, prev, event);
|
|
43
|
+
} else {
|
|
44
|
+
log(`[EFFECT] invalid event ${event.type} on state ${prev.type}`);
|
|
96
45
|
}
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
46
|
+
break;
|
|
47
|
+
}
|
|
48
|
+
case "pay_source": {
|
|
49
|
+
if (prev.type === "payment_unpaid") {
|
|
50
|
+
runPaySourceEffects(store, trpc, prev);
|
|
51
|
+
} else {
|
|
52
|
+
log(`[EFFECT] invalid event ${event.type} on state ${prev.type}`);
|
|
53
|
+
}
|
|
54
|
+
break;
|
|
55
|
+
}
|
|
56
|
+
case "pay_ethereum_source": {
|
|
57
|
+
if (prev.type === "payment_unpaid") {
|
|
58
|
+
runPayEthereumSourceEffects(store, trpc, prev, event);
|
|
59
|
+
} else {
|
|
60
|
+
log(`[EFFECT] invalid event ${event.type} on state ${prev.type}`);
|
|
61
|
+
}
|
|
62
|
+
break;
|
|
63
|
+
}
|
|
64
|
+
case "pay_solana_source": {
|
|
65
|
+
if (prev.type === "payment_unpaid") {
|
|
66
|
+
runPaySolanaSourceEffects(store, trpc, prev, event);
|
|
67
|
+
}
|
|
68
|
+
log(`[EFFECT] invalid event ${event.type} on state ${prev.type}`);
|
|
69
|
+
break;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
});
|
|
73
|
+
const cleanup = () => {
|
|
74
|
+
unsubscribe();
|
|
75
|
+
pollers.forEach((_, key) => stopPoller(key));
|
|
76
|
+
log("[EFFECT] unsubscribed from payment store and stopped all pollers");
|
|
77
|
+
};
|
|
78
|
+
return cleanup;
|
|
104
79
|
}
|
|
105
80
|
async function pollFindPayments(store, trpc, orderId) {
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
}
|
|
121
|
-
|
|
81
|
+
const key = `${"find_source_payment" /* FIND_SOURCE_PAYMENT */}:${orderId}`;
|
|
82
|
+
const stopPolling = startPolling({
|
|
83
|
+
key,
|
|
84
|
+
intervalMs: 1e3,
|
|
85
|
+
pollFn: () => trpc.findOrderPayments.query({ orderId: orderId.toString() }),
|
|
86
|
+
onResult: (order) => {
|
|
87
|
+
const state = store.getState();
|
|
88
|
+
if (state.type !== "payment_unpaid") {
|
|
89
|
+
stopPolling();
|
|
90
|
+
return;
|
|
91
|
+
}
|
|
92
|
+
store.dispatch({ type: "order_refreshed", order });
|
|
93
|
+
},
|
|
94
|
+
onError: () => {
|
|
95
|
+
}
|
|
96
|
+
});
|
|
97
|
+
pollers.set(key, stopPolling);
|
|
122
98
|
}
|
|
123
99
|
async function pollRefreshOrder(store, trpc, orderId) {
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
100
|
+
const key = `${"refresh_order" /* REFRESH_ORDER */}:${orderId}`;
|
|
101
|
+
const stopPolling = startPolling({
|
|
102
|
+
key,
|
|
103
|
+
intervalMs: 300,
|
|
104
|
+
pollFn: () => trpc.getOrder.query({ id: orderId.toString() }),
|
|
105
|
+
onResult: (res) => {
|
|
106
|
+
const state = store.getState();
|
|
107
|
+
if (state.type !== "payment_started") {
|
|
108
|
+
stopPolling();
|
|
109
|
+
return;
|
|
110
|
+
}
|
|
111
|
+
const order = res.order;
|
|
112
|
+
store.dispatch({ type: "order_refreshed", order });
|
|
113
|
+
},
|
|
114
|
+
onError: () => {
|
|
115
|
+
}
|
|
116
|
+
});
|
|
117
|
+
pollers.set(key, stopPolling);
|
|
142
118
|
}
|
|
143
119
|
async function runSetPayParamsEffects(store, trpc, event) {
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
}
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
120
|
+
const payParams = event.payParams;
|
|
121
|
+
const toUnits = payParams.toUnits == null ? "0" : payParams.toUnits;
|
|
122
|
+
assert(payParams.appId.length > 0, "PayParams: appId required");
|
|
123
|
+
const isDepositFlow = payParams.toUnits == null;
|
|
124
|
+
assert(
|
|
125
|
+
!isDepositFlow || payParams.externalId == null,
|
|
126
|
+
"PayParams: externalId unsupported in deposit mode"
|
|
127
|
+
);
|
|
128
|
+
try {
|
|
129
|
+
const orderPreview = await trpc.previewOrder.query({
|
|
130
|
+
appId: payParams.appId,
|
|
131
|
+
toChain: payParams.toChain,
|
|
132
|
+
toToken: payParams.toToken,
|
|
133
|
+
toUnits,
|
|
134
|
+
toAddress: payParams.toAddress,
|
|
135
|
+
toCallData: payParams.toCallData,
|
|
136
|
+
isAmountEditable: payParams.toUnits == null,
|
|
137
|
+
metadata: {
|
|
138
|
+
intent: payParams.intent ?? "Pay",
|
|
139
|
+
items: [],
|
|
140
|
+
payer: {
|
|
141
|
+
paymentOptions: payParams.paymentOptions,
|
|
142
|
+
preferredChains: payParams.preferredChains,
|
|
143
|
+
preferredTokens: payParams.preferredTokens,
|
|
144
|
+
evmChains: payParams.evmChains,
|
|
145
|
+
passthroughTokens: payParams.passthroughTokens
|
|
146
|
+
}
|
|
147
|
+
},
|
|
148
|
+
externalId: payParams.externalId,
|
|
149
|
+
userMetadata: payParams.metadata,
|
|
150
|
+
refundAddress: payParams.refundAddress
|
|
151
|
+
});
|
|
152
|
+
store.dispatch({
|
|
153
|
+
type: "preview_generated",
|
|
154
|
+
// TODO: Properly type this and fix hacky type casting
|
|
155
|
+
order: orderPreview,
|
|
156
|
+
payParamsData: {
|
|
157
|
+
appId: payParams.appId
|
|
158
|
+
}
|
|
159
|
+
});
|
|
160
|
+
} catch (e) {
|
|
161
|
+
store.dispatch({ type: "error", order: void 0, message: e.message });
|
|
162
|
+
}
|
|
187
163
|
}
|
|
188
164
|
async function runSetPayIdEffects(store, trpc, event) {
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
}
|
|
165
|
+
try {
|
|
166
|
+
const { order } = await trpc.getOrder.query({
|
|
167
|
+
id: readDaimoPayOrderID(event.payId).toString()
|
|
168
|
+
});
|
|
169
|
+
store.dispatch({
|
|
170
|
+
type: "order_loaded",
|
|
171
|
+
order
|
|
172
|
+
});
|
|
173
|
+
} catch (e) {
|
|
174
|
+
store.dispatch({ type: "error", order: void 0, message: e.message });
|
|
175
|
+
}
|
|
201
176
|
}
|
|
202
177
|
async function runHydratePayParamsEffects(store, trpc, prev, event) {
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
178
|
+
const order = prev.order;
|
|
179
|
+
const toUnits = formatUnits(
|
|
180
|
+
BigInt(order.destFinalCallTokenAmount.amount),
|
|
181
|
+
order.destFinalCallTokenAmount.token.decimals
|
|
182
|
+
);
|
|
183
|
+
try {
|
|
184
|
+
const { hydratedOrder } = await trpc.createOrder.mutate({
|
|
185
|
+
appId: prev.payParamsData.appId,
|
|
186
|
+
paymentInput: {
|
|
187
|
+
id: order.id.toString(),
|
|
188
|
+
toChain: getOrderDestChainId(order),
|
|
189
|
+
toToken: getAddress(order.destFinalCallTokenAmount.token.token),
|
|
190
|
+
toUnits,
|
|
191
|
+
toAddress: getAddress(order.destFinalCall.to),
|
|
192
|
+
toCallData: order.destFinalCall.data,
|
|
193
|
+
isAmountEditable: order.mode === DaimoPayOrderMode.CHOOSE_AMOUNT,
|
|
194
|
+
metadata: order.metadata,
|
|
195
|
+
userMetadata: order.userMetadata,
|
|
196
|
+
externalId: order.externalId ?? void 0
|
|
197
|
+
},
|
|
198
|
+
// Prefer the refund address passed to this function, if specified. This
|
|
199
|
+
// is for cases where the user pays from an EOA. Otherwise, use the refund
|
|
200
|
+
// address specified by the dev.
|
|
201
|
+
refundAddress: event.refundAddress ?? prev.order.refundAddr ?? void 0
|
|
202
|
+
});
|
|
203
|
+
store.dispatch({
|
|
204
|
+
type: "order_hydrated",
|
|
205
|
+
order: hydratedOrder
|
|
206
|
+
});
|
|
207
|
+
} catch (e) {
|
|
208
|
+
store.dispatch({ type: "error", order: prev.order, message: e.message });
|
|
209
|
+
}
|
|
233
210
|
}
|
|
234
211
|
async function runHydratePayIdEffects(store, trpc, prev, event) {
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
}
|
|
212
|
+
const order = prev.order;
|
|
213
|
+
try {
|
|
214
|
+
const { hydratedOrder } = await trpc.hydrateOrder.query({
|
|
215
|
+
id: order.id.toString(),
|
|
216
|
+
refundAddress: event.refundAddress
|
|
217
|
+
});
|
|
218
|
+
store.dispatch({
|
|
219
|
+
type: "order_hydrated",
|
|
220
|
+
order: hydratedOrder
|
|
221
|
+
});
|
|
222
|
+
} catch (e) {
|
|
223
|
+
store.dispatch({ type: "error", order: prev.order, message: e.message });
|
|
224
|
+
}
|
|
249
225
|
}
|
|
250
226
|
async function runPaySourceEffects(store, trpc, prev) {
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
}
|
|
227
|
+
const orderId = prev.order.id;
|
|
228
|
+
try {
|
|
229
|
+
const order = await trpc.findOrderPayments.query({
|
|
230
|
+
orderId: orderId.toString()
|
|
231
|
+
});
|
|
232
|
+
store.dispatch({ type: "order_refreshed", order });
|
|
233
|
+
} catch (e) {
|
|
234
|
+
store.dispatch({ type: "error", order: prev.order, message: e.message });
|
|
235
|
+
}
|
|
261
236
|
}
|
|
262
237
|
async function runPayEthereumSourceEffects(store, trpc, prev, event) {
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
}
|
|
238
|
+
const orderId = prev.order.id;
|
|
239
|
+
try {
|
|
240
|
+
const order = await trpc.processSourcePayment.mutate({
|
|
241
|
+
orderId: orderId.toString(),
|
|
242
|
+
sourceInitiateTxHash: event.paymentTxHash,
|
|
243
|
+
sourceChainId: event.sourceChainId,
|
|
244
|
+
sourceFulfillerAddr: event.payerAddress,
|
|
245
|
+
sourceToken: event.sourceToken,
|
|
246
|
+
sourceAmount: event.sourceAmount.toString()
|
|
247
|
+
});
|
|
248
|
+
store.dispatch({ type: "payment_verified", order });
|
|
249
|
+
} catch (e) {
|
|
250
|
+
store.dispatch({ type: "error", order: prev.order, message: e.message });
|
|
251
|
+
}
|
|
278
252
|
}
|
|
279
253
|
async function runPaySolanaSourceEffects(store, trpc, prev, event) {
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
}
|
|
254
|
+
const orderId = prev.order.id;
|
|
255
|
+
try {
|
|
256
|
+
const order = await trpc.processSolanaSourcePayment.mutate({
|
|
257
|
+
orderId: orderId.toString(),
|
|
258
|
+
startIntentTxHash: event.paymentTxHash,
|
|
259
|
+
token: event.sourceToken
|
|
260
|
+
});
|
|
261
|
+
store.dispatch({ type: "payment_verified", order });
|
|
262
|
+
} catch (e) {
|
|
263
|
+
store.dispatch({ type: "error", order: prev.order, message: e.message });
|
|
264
|
+
}
|
|
292
265
|
}
|
|
293
266
|
|
|
294
267
|
export { attachPaymentEffectHandlers };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"paymentEffects.js","sources":["../../../src/payment/paymentEffects.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;AAaA;AACA;AACA,MAAM,OAAO,GAAG,IAAI,GAAG,EAAsB,CAAC;AAE9C,IAAK,UAGJ,CAAA;AAHD,CAAA,UAAK,UAAU,EAAA;AACb,IAAA,UAAA,CAAA,qBAAA,CAAA,GAAA,qBAA2C,CAAA;AAC3C,IAAA,UAAA,CAAA,eAAA,CAAA,GAAA,eAA+B,CAAA;AACjC,CAAC,EAHI,UAAU,KAAV,UAAU,GAGd,EAAA,CAAA,CAAA,CAAA;AAED,SAAS,UAAU,CAAC,GAAW,EAAA;AAC7B,IAAA,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC;AACrB,IAAA,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AACtB,CAAC;AAED;;;;;;;;AAQG;SACa,2BAA2B,CACzC,KAAmB,EACnB,IAAgB,EAChB,GAA0B,EAAA;AAE1B,IAAA,MAAM,WAAW,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAI;AAC5D,QAAA,GAAG,CACD,CAAA,sCAAA,EAAyC,KAAK,CAAC,IAAI,CAAwB,qBAAA,EAAA,IAAI,CAAC,IAAI,OAAO,IAAI,CAAC,IAAI,CAAA,CAAE,CACvG,CAAC;AACF;;AAEwD;QACxD,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE;;AAE3B,YAAA,IAAI,IAAI,CAAC,IAAI,KAAK,gBAAgB,EAAE;gBAClC,gBAAgB,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;aAC9C;;AAGD,YAAA,IAAI,IAAI,CAAC,IAAI,KAAK,iBAAiB,EAAE;gBACnC,gBAAgB,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;aAC9C;;AAGD,YAAA,IACE,CAAC,mBAAmB,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,QAAQ,CAChE,IAAI,CAAC,IAAI,CACV,EACD;gBACA,IAAI,OAAO,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE;AACjC,oBAAA,UAAU,CAAC,CAAA,EAAG,UAAU,CAAC,mBAAmB,CAAA,CAAA,EAAI,IAAI,CAAC,KAAK,CAAC,EAAE,CAAA,CAAE,CAAC,CAAC;AACjE,oBAAA,UAAU,CAAC,CAAA,EAAG,UAAU,CAAC,aAAa,CAAA,CAAA,EAAI,IAAI,CAAC,KAAK,CAAC,EAAE,CAAA,CAAE,CAAC,CAAC;iBAC5D;aACF;SACF;AAED;;AAEwD;AACxD,QAAA,QAAQ,KAAK,CAAC,IAAI;AAChB,YAAA,KAAK,gBAAgB;AACnB,gBAAA,sBAAsB,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;gBAC3C,MAAM;AACR,YAAA,KAAK,YAAY;AACf,gBAAA,kBAAkB,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;gBACvC,MAAM;YACR,KAAK,eAAe,EAAE;AACpB,gBAAA,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;oBAC3B,0BAA0B,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;iBACtD;AAAM,qBAAA,IAAI,IAAI,CAAC,IAAI,KAAK,YAAY,EAAE;oBACrC,sBAAsB,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;iBAClD;qBAAM;oBACL,GAAG,CAAC,CAA0B,uBAAA,EAAA,KAAK,CAAC,IAAI,CAAa,UAAA,EAAA,IAAI,CAAC,IAAI,CAAE,CAAA,CAAC,CAAC;iBACnE;gBACD,MAAM;aACP;YACD,KAAK,YAAY,EAAE;AACjB,gBAAA,IAAI,IAAI,CAAC,IAAI,KAAK,gBAAgB,EAAE;AAClC,oBAAA,mBAAmB,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;iBACxC;qBAAM;oBACL,GAAG,CAAC,CAA0B,uBAAA,EAAA,KAAK,CAAC,IAAI,CAAa,UAAA,EAAA,IAAI,CAAC,IAAI,CAAE,CAAA,CAAC,CAAC;iBACnE;gBACD,MAAM;aACP;YACD,KAAK,qBAAqB,EAAE;AAC1B,gBAAA,IAAI,IAAI,CAAC,IAAI,KAAK,gBAAgB,EAAE;oBAClC,2BAA2B,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;iBACvD;qBAAM;oBACL,GAAG,CAAC,CAA0B,uBAAA,EAAA,KAAK,CAAC,IAAI,CAAa,UAAA,EAAA,IAAI,CAAC,IAAI,CAAE,CAAA,CAAC,CAAC;iBACnE;gBACD,MAAM;aACP;YACD,KAAK,mBAAmB,EAAE;AACxB,gBAAA,IAAI,IAAI,CAAC,IAAI,KAAK,gBAAgB,EAAE;oBAClC,yBAAyB,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;iBACrD;gBACD,GAAG,CAAC,CAA0B,uBAAA,EAAA,KAAK,CAAC,IAAI,CAAa,UAAA,EAAA,IAAI,CAAC,IAAI,CAAE,CAAA,CAAC,CAAC;gBAClE,MAAM;aACP;SAGF;AACH,KAAC,CAAC,CAAC;IAEH,MAAM,OAAO,GAAG,MAAK;AACnB,QAAA,WAAW,EAAE,CAAC;AACd,QAAA,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;QAC7C,GAAG,CAAC,kEAAkE,CAAC,CAAC;AAC1E,KAAC,CAAC;AAEF,IAAA,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,eAAe,gBAAgB,CAC7B,KAAmB,EACnB,IAAgB,EAChB,OAAe,EAAA;IAEf,MAAM,GAAG,GAAG,CAAG,EAAA,UAAU,CAAC,mBAAmB,CAAA,CAAA,EAAI,OAAO,CAAA,CAAE,CAAC;IAE3D,MAAM,WAAW,GAAG,YAAY,CAAC;QAC/B,GAAG;AACH,QAAA,UAAU,EAAE,KAAK;AACjB,QAAA,MAAM,EAAE,MAAM,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC;AAC3E,QAAA,QAAQ,EAAE,CAAC,KAAK,KAAI;AAClB,YAAA,MAAM,KAAK,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;AAC/B,YAAA,IAAI,KAAK,CAAC,IAAI,KAAK,gBAAgB,EAAE;AACnC,gBAAA,WAAW,EAAE,CAAC;gBACd,OAAO;aACR;YACD,KAAK,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,KAAK,EAAE,CAAC,CAAC;SACpD;AACD,QAAA,OAAO,EAAE,MAAK,GAAG;AAClB,KAAA,CAAC,CAAC;AAEH,IAAA,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;AAChC,CAAC;AAED,eAAe,gBAAgB,CAC7B,KAAmB,EACnB,IAAgB,EAChB,OAAe,EAAA;IAEf,MAAM,GAAG,GAAG,CAAG,EAAA,UAAU,CAAC,aAAa,CAAA,CAAA,EAAI,OAAO,CAAA,CAAE,CAAC;IAErD,MAAM,WAAW,GAAG,YAAY,CAAC;QAC/B,GAAG;AACH,QAAA,UAAU,EAAE,GAAG;AACf,QAAA,MAAM,EAAE,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC;AAC7D,QAAA,QAAQ,EAAE,CAAC,GAAG,KAAI;AAChB,YAAA,MAAM,KAAK,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;;AAE/B,YAAA,IAAI,KAAK,CAAC,IAAI,KAAK,iBAAiB,EAAE;AACpC,gBAAA,WAAW,EAAE,CAAC;gBACd,OAAO;aACR;AAED,YAAA,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC;YACxB,KAAK,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,KAAK,EAAE,CAAC,CAAC;SACpD;AACD,QAAA,OAAO,EAAE,MAAK,GAAG;AAClB,KAAA,CAAC,CAAC;AAEH,IAAA,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;AAChC,CAAC;AAED,eAAe,sBAAsB,CACnC,KAAmB,EACnB,IAAgB,EAChB,KAAwD,EAAA;AAExD,IAAA,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;;;AAGlC,IAAA,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,IAAI,IAAI,GAAG,GAAG,GAAG,SAAS,CAAC,OAAO,CAAC;;IAGpE,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,2BAA2B,CAAC,CAAC;AAChE,IAAA,MAAM,aAAa,GAAG,SAAS,CAAC,OAAO,IAAI,IAAI,CAAC;AAChD,IAAA,MAAM,CACJ,CAAC,aAAa,IAAI,SAAS,CAAC,UAAU,IAAI,IAAI,EAC9C,mDAAmD,CACpD,CAAC;AAEF,IAAA,IAAI;QACF,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC;YACjD,KAAK,EAAE,SAAS,CAAC,KAAK;YACtB,OAAO,EAAE,SAAS,CAAC,OAAO;YAC1B,OAAO,EAAE,SAAS,CAAC,OAAO;YAC1B,OAAO;YACP,SAAS,EAAE,SAAS,CAAC,SAAS;YAC9B,UAAU,EAAE,SAAS,CAAC,UAAU;AAChC,YAAA,gBAAgB,EAAE,SAAS,CAAC,OAAO,IAAI,IAAI;AAC3C,YAAA,QAAQ,EAAE;AACR,gBAAA,MAAM,EAAE,SAAS,CAAC,MAAM,IAAI,KAAK;AACjC,gBAAA,KAAK,EAAE,EAAE;AACT,gBAAA,KAAK,EAAE;oBACL,cAAc,EAAE,SAAS,CAAC,cAAc;oBACxC,eAAe,EAAE,SAAS,CAAC,eAAe;oBAC1C,eAAe,EAAE,SAAS,CAAC,eAAe;oBAC1C,SAAS,EAAE,SAAS,CAAC,SAAS;AAC/B,iBAAA;AACF,aAAA;YACD,UAAU,EAAE,SAAS,CAAC,UAAU;YAChC,YAAY,EAAE,SAAS,CAAC,QAAQ;YAChC,aAAa,EAAE,SAAS,CAAC,aAAa;AACvC,SAAA,CAAC,CAAC;QAEH,KAAK,CAAC,QAAQ,CAAC;AACb,YAAA,IAAI,EAAE,mBAAmB;;AAEzB,YAAA,KAAK,EAAE,YAA+C;AACtD,YAAA,aAAa,EAAE;gBACb,KAAK,EAAE,SAAS,CAAC,KAAK;AACvB,aAAA;AACF,SAAA,CAAC,CAAC;KACJ;IAAC,OAAO,CAAM,EAAE;AACf,QAAA,KAAK,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;KACzE;AACH,CAAC;AAED,eAAe,kBAAkB,CAC/B,KAAmB,EACnB,IAAgB,EAChB,KAAoD,EAAA;AAEpD,IAAA,IAAI;QACF,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;YAC1C,EAAE,EAAE,mBAAmB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE;AAChD,SAAA,CAAC,CAAC;QAEH,KAAK,CAAC,QAAQ,CAAC;AACb,YAAA,IAAI,EAAE,cAAc;YACpB,KAAK;AACN,SAAA,CAAC,CAAC;KACJ;IAAC,OAAO,CAAM,EAAE;AACf,QAAA,KAAK,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;KACzE;AACH,CAAC;AAED,eAAe,0BAA0B,CACvC,KAAmB,EACnB,IAAgB,EAChB,IAAgD,EAChD,KAAuD,EAAA;AAEvD,IAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;IAEzB,MAAM,OAAO,GAAG,WAAW,CACzB,MAAM,CAAC,KAAK,CAAC,wBAAwB,CAAC,MAAM,CAAC,EAC7C,KAAK,CAAC,wBAAwB,CAAC,KAAK,CAAC,QAAQ,CAC9C,CAAC;AACF,IAAA,IAAI;QACF,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;AACtD,YAAA,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,KAAK;AAC/B,YAAA,YAAY,EAAE;AACZ,gBAAA,EAAE,EAAE,KAAK,CAAC,EAAE,CAAC,QAAQ,EAAE;AACvB,gBAAA,OAAO,EAAE,mBAAmB,CAAC,KAAK,CAAC;gBACnC,OAAO,EAAE,UAAU,CAAC,KAAK,CAAC,wBAAwB,CAAC,KAAK,CAAC,KAAK,CAAC;gBAC/D,OAAO;gBACP,SAAS,EAAE,UAAU,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE,CAAC;AAC7C,gBAAA,UAAU,EAAE,KAAK,CAAC,aAAa,CAAC,IAAI;AACpC,gBAAA,gBAAgB,EAAE,KAAK,CAAC,IAAI,KAAK,iBAAiB,CAAC,aAAa;gBAChE,QAAQ,EAAE,KAAK,CAAC,QAAQ;gBACxB,YAAY,EAAE,KAAK,CAAC,YAAY;AAChC,gBAAA,UAAU,EAAE,KAAK,CAAC,UAAU,IAAI,SAAS;AAC1C,aAAA;;;;YAID,aAAa,EAAE,KAAK,CAAC,aAAa,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,IAAI,SAAS;AACzE,SAAA,CAAC,CAAC;QAEH,KAAK,CAAC,QAAQ,CAAC;AACb,YAAA,IAAI,EAAE,gBAAgB;AACtB,YAAA,KAAK,EAAE,aAAa;AACrB,SAAA,CAAC,CAAC;KACJ;IAAC,OAAO,CAAM,EAAE;QACf,KAAK,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;KAC1E;AACH,CAAC;AAED,eAAe,sBAAsB,CACnC,KAAmB,EACnB,IAAgB,EAChB,IAAmD,EACnD,KAAuD,EAAA;AAEvD,IAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;AAEzB,IAAA,IAAI;QACF,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC;AACtD,YAAA,EAAE,EAAE,KAAK,CAAC,EAAE,CAAC,QAAQ,EAAE;YACvB,aAAa,EAAE,KAAK,CAAC,aAAa;AACnC,SAAA,CAAC,CAAC;QAEH,KAAK,CAAC,QAAQ,CAAC;AACb,YAAA,IAAI,EAAE,gBAAgB;AACtB,YAAA,KAAK,EAAE,aAAa;AACrB,SAAA,CAAC,CAAC;KACJ;IAAC,OAAO,CAAM,EAAE;QACf,KAAK,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;KAC1E;AACH,CAAC;AAED,eAAe,mBAAmB,CAChC,KAAmB,EACnB,IAAgB,EAChB,IAAuD,EAAA;AAEvD,IAAA,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;AAE9B,IAAA,IAAI;QACF,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC;AAC/C,YAAA,OAAO,EAAE,OAAO,CAAC,QAAQ,EAAE;AAC5B,SAAA,CAAC,CAAC;QACH,KAAK,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,KAAK,EAAE,CAAC,CAAC;KACpD;IAAC,OAAO,CAAM,EAAE;QACf,KAAK,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;KAC1E;AACH,CAAC;AAED,eAAe,2BAA2B,CACxC,KAAmB,EACnB,IAAgB,EAChB,IAAuD,EACvD,KAA6D,EAAA;AAE7D,IAAA,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;AAE9B,IAAA,IAAI;QACF,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC;AACnD,YAAA,OAAO,EAAE,OAAO,CAAC,QAAQ,EAAE;YAC3B,oBAAoB,EAAE,KAAK,CAAC,aAAa;YACzC,aAAa,EAAE,KAAK,CAAC,aAAa;YAClC,mBAAmB,EAAE,KAAK,CAAC,YAAY;YACvC,WAAW,EAAE,KAAK,CAAC,WAAW;AAC9B,YAAA,YAAY,EAAE,KAAK,CAAC,YAAY,CAAC,QAAQ,EAAE;AAC5C,SAAA,CAAC,CAAC;QACH,KAAK,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,kBAAkB,EAAE,KAAK,EAAE,CAAC,CAAC;KACrD;IAAC,OAAO,CAAM,EAAE;QACf,KAAK,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;KAC1E;AACH,CAAC;AAED,eAAe,yBAAyB,CACtC,KAAmB,EACnB,IAAgB,EAChB,IAAuD,EACvD,KAA2D,EAAA;AAE3D,IAAA,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;AAE9B,IAAA,IAAI;QACF,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,0BAA0B,CAAC,MAAM,CAAC;AACzD,YAAA,OAAO,EAAE,OAAO,CAAC,QAAQ,EAAE;YAC3B,iBAAiB,EAAE,KAAK,CAAC,aAAa;YACtC,KAAK,EAAE,KAAK,CAAC,WAAW;AACzB,SAAA,CAAC,CAAC;QACH,KAAK,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,kBAAkB,EAAE,KAAK,EAAE,CAAC,CAAC;KACrD;IAAC,OAAO,CAAM,EAAE;QACf,KAAK,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;KAC1E;AACH;;;;"}
|
|
1
|
+
{"version":3,"file":"paymentEffects.js","sources":["../../../src/payment/paymentEffects.ts"],"sourcesContent":["import {\n assert,\n DaimoPayOrderMode,\n DaimoPayOrderWithOrg,\n getOrderDestChainId,\n readDaimoPayOrderID,\n} from \"@daimo/pay-common\";\nimport { formatUnits, getAddress } from \"viem\";\nimport { PollHandle, startPolling } from \"../utils/polling\";\nimport { TrpcClient } from \"../utils/trpc\";\nimport { PaymentEvent, PaymentState } from \"./paymentFsm\";\nimport { PaymentStore } from \"./paymentStore\";\n\n// Maps poller identifier to poll handle which terminates the poller\n// key = `${type}:${orderId}`\nconst pollers = new Map<string, PollHandle>();\n\nenum PollerType {\n FIND_SOURCE_PAYMENT = \"find_source_payment\",\n REFRESH_ORDER = \"refresh_order\",\n}\n\nfunction stopPoller(key: string) {\n pollers.get(key)?.();\n pollers.delete(key);\n}\n\n/**\n * Add a subscriber to the payment store that runs side effects in response to\n * events.\n *\n * @param store The payment store to subscribe to.\n * @param trpc TRPC client pointing to the Daimo Pay API.\n * @param log The logger to use for logging.\n * @returns A function that can be used to unsubscribe from the store.\n */\nexport function attachPaymentEffectHandlers(\n store: PaymentStore,\n trpc: TrpcClient,\n log: (msg: string) => void,\n): () => void {\n const unsubscribe = store.subscribe(({ prev, next, event }) => {\n log(\n `[EFFECT] processing effects for event ${event.type} on state transition ${prev.type} -> ${next.type}`,\n );\n /* --------------------------------------------------\n * State-driven effects\n * -------------------------------------------------- */\n if (prev.type !== next.type) {\n // Start watching for source payment\n if (next.type === \"payment_unpaid\") {\n pollFindPayments(store, trpc, next.order.id);\n }\n\n // Refresh the order to watch for destination processing\n if (next.type === \"payment_started\") {\n pollRefreshOrder(store, trpc, next.order.id);\n }\n\n // Stop all pollers when the payment flow is completed or reset\n if (\n [\"payment_completed\", \"payment_bounced\", \"error\", \"idle\"].includes(\n next.type,\n )\n ) {\n if (\"order\" in prev && prev.order) {\n stopPoller(`${PollerType.FIND_SOURCE_PAYMENT}:${prev.order.id}`);\n stopPoller(`${PollerType.REFRESH_ORDER}:${prev.order.id}`);\n }\n }\n }\n\n /* --------------------------------------------------\n * Event-driven effects\n * -------------------------------------------------- */\n switch (event.type) {\n case \"set_pay_params\":\n runSetPayParamsEffects(store, trpc, event);\n break;\n case \"set_pay_id\":\n runSetPayIdEffects(store, trpc, event);\n break;\n case \"hydrate_order\": {\n if (prev.type === \"preview\") {\n runHydratePayParamsEffects(store, trpc, prev, event);\n } else if (prev.type === \"unhydrated\") {\n runHydratePayIdEffects(store, trpc, prev, event);\n } else {\n log(`[EFFECT] invalid event ${event.type} on state ${prev.type}`);\n }\n break;\n }\n case \"pay_source\": {\n if (prev.type === \"payment_unpaid\") {\n runPaySourceEffects(store, trpc, prev);\n } else {\n log(`[EFFECT] invalid event ${event.type} on state ${prev.type}`);\n }\n break;\n }\n case \"pay_ethereum_source\": {\n if (prev.type === \"payment_unpaid\") {\n runPayEthereumSourceEffects(store, trpc, prev, event);\n } else {\n log(`[EFFECT] invalid event ${event.type} on state ${prev.type}`);\n }\n break;\n }\n case \"pay_solana_source\": {\n if (prev.type === \"payment_unpaid\") {\n runPaySolanaSourceEffects(store, trpc, prev, event);\n }\n log(`[EFFECT] invalid event ${event.type} on state ${prev.type}`);\n break;\n }\n default:\n break;\n }\n });\n\n const cleanup = () => {\n unsubscribe();\n pollers.forEach((_, key) => stopPoller(key));\n log(\"[EFFECT] unsubscribed from payment store and stopped all pollers\");\n };\n\n return cleanup;\n}\n\nasync function pollFindPayments(\n store: PaymentStore,\n trpc: TrpcClient,\n orderId: bigint,\n) {\n const key = `${PollerType.FIND_SOURCE_PAYMENT}:${orderId}`;\n\n const stopPolling = startPolling({\n key,\n intervalMs: 1_000,\n pollFn: () => trpc.findOrderPayments.query({ orderId: orderId.toString() }),\n onResult: (order) => {\n const state = store.getState();\n if (state.type !== \"payment_unpaid\") {\n stopPolling();\n return;\n }\n store.dispatch({ type: \"order_refreshed\", order });\n },\n onError: () => {},\n });\n\n pollers.set(key, stopPolling);\n}\n\nasync function pollRefreshOrder(\n store: PaymentStore,\n trpc: TrpcClient,\n orderId: bigint,\n) {\n const key = `${PollerType.REFRESH_ORDER}:${orderId}`;\n\n const stopPolling = startPolling({\n key,\n intervalMs: 300,\n pollFn: () => trpc.getOrder.query({ id: orderId.toString() }),\n onResult: (res) => {\n const state = store.getState();\n // Check that we're still in the payment_started state\n if (state.type !== \"payment_started\") {\n stopPolling();\n return;\n }\n\n const order = res.order;\n store.dispatch({ type: \"order_refreshed\", order });\n },\n onError: () => {},\n });\n\n pollers.set(key, stopPolling);\n}\n\nasync function runSetPayParamsEffects(\n store: PaymentStore,\n trpc: TrpcClient,\n event: Extract<PaymentEvent, { type: \"set_pay_params\" }>,\n) {\n const payParams = event.payParams;\n // toUnits is undefined if and only if we're in deposit flow.\n // Set dummy value for deposit flow, since user can edit the amount.\n const toUnits = payParams.toUnits == null ? \"0\" : payParams.toUnits;\n\n // Validate payParams.\n assert(payParams.appId.length > 0, \"PayParams: appId required\");\n const isDepositFlow = payParams.toUnits == null;\n assert(\n !isDepositFlow || payParams.externalId == null,\n \"PayParams: externalId unsupported in deposit mode\",\n );\n\n try {\n const orderPreview = await trpc.previewOrder.query({\n appId: payParams.appId,\n toChain: payParams.toChain,\n toToken: payParams.toToken,\n toUnits,\n toAddress: payParams.toAddress,\n toCallData: payParams.toCallData,\n isAmountEditable: payParams.toUnits == null,\n metadata: {\n intent: payParams.intent ?? \"Pay\",\n items: [],\n payer: {\n paymentOptions: payParams.paymentOptions,\n preferredChains: payParams.preferredChains,\n preferredTokens: payParams.preferredTokens,\n evmChains: payParams.evmChains,\n passthroughTokens: payParams.passthroughTokens,\n },\n },\n externalId: payParams.externalId,\n userMetadata: payParams.metadata,\n refundAddress: payParams.refundAddress,\n });\n\n store.dispatch({\n type: \"preview_generated\",\n // TODO: Properly type this and fix hacky type casting\n order: orderPreview as unknown as DaimoPayOrderWithOrg,\n payParamsData: {\n appId: payParams.appId,\n },\n });\n } catch (e: any) {\n store.dispatch({ type: \"error\", order: undefined, message: e.message });\n }\n}\n\nasync function runSetPayIdEffects(\n store: PaymentStore,\n trpc: TrpcClient,\n event: Extract<PaymentEvent, { type: \"set_pay_id\" }>,\n) {\n try {\n const { order } = await trpc.getOrder.query({\n id: readDaimoPayOrderID(event.payId).toString(),\n });\n\n store.dispatch({\n type: \"order_loaded\",\n order,\n });\n } catch (e: any) {\n store.dispatch({ type: \"error\", order: undefined, message: e.message });\n }\n}\n\nasync function runHydratePayParamsEffects(\n store: PaymentStore,\n trpc: TrpcClient,\n prev: Extract<PaymentState, { type: \"preview\" }>,\n event: Extract<PaymentEvent, { type: \"hydrate_order\" }>,\n) {\n const order = prev.order;\n\n const toUnits = formatUnits(\n BigInt(order.destFinalCallTokenAmount.amount),\n order.destFinalCallTokenAmount.token.decimals,\n );\n try {\n const { hydratedOrder } = await trpc.createOrder.mutate({\n appId: prev.payParamsData.appId,\n paymentInput: {\n id: order.id.toString(),\n toChain: getOrderDestChainId(order),\n toToken: getAddress(order.destFinalCallTokenAmount.token.token),\n toUnits,\n toAddress: getAddress(order.destFinalCall.to),\n toCallData: order.destFinalCall.data,\n isAmountEditable: order.mode === DaimoPayOrderMode.CHOOSE_AMOUNT,\n metadata: order.metadata,\n userMetadata: order.userMetadata,\n externalId: order.externalId ?? undefined,\n },\n // Prefer the refund address passed to this function, if specified. This\n // is for cases where the user pays from an EOA. Otherwise, use the refund\n // address specified by the dev.\n refundAddress: event.refundAddress ?? prev.order.refundAddr ?? undefined,\n });\n\n store.dispatch({\n type: \"order_hydrated\",\n order: hydratedOrder,\n });\n } catch (e: any) {\n store.dispatch({ type: \"error\", order: prev.order, message: e.message });\n }\n}\n\nasync function runHydratePayIdEffects(\n store: PaymentStore,\n trpc: TrpcClient,\n prev: Extract<PaymentState, { type: \"unhydrated\" }>,\n event: Extract<PaymentEvent, { type: \"hydrate_order\" }>,\n) {\n const order = prev.order;\n\n try {\n const { hydratedOrder } = await trpc.hydrateOrder.query({\n id: order.id.toString(),\n refundAddress: event.refundAddress,\n });\n\n store.dispatch({\n type: \"order_hydrated\",\n order: hydratedOrder,\n });\n } catch (e: any) {\n store.dispatch({ type: \"error\", order: prev.order, message: e.message });\n }\n}\n\nasync function runPaySourceEffects(\n store: PaymentStore,\n trpc: TrpcClient,\n prev: Extract<PaymentState, { type: \"payment_unpaid\" }>,\n) {\n const orderId = prev.order.id;\n\n try {\n const order = await trpc.findOrderPayments.query({\n orderId: orderId.toString(),\n });\n store.dispatch({ type: \"order_refreshed\", order });\n } catch (e: any) {\n store.dispatch({ type: \"error\", order: prev.order, message: e.message });\n }\n}\n\nasync function runPayEthereumSourceEffects(\n store: PaymentStore,\n trpc: TrpcClient,\n prev: Extract<PaymentState, { type: \"payment_unpaid\" }>,\n event: Extract<PaymentEvent, { type: \"pay_ethereum_source\" }>,\n) {\n const orderId = prev.order.id;\n\n try {\n const order = await trpc.processSourcePayment.mutate({\n orderId: orderId.toString(),\n sourceInitiateTxHash: event.paymentTxHash,\n sourceChainId: event.sourceChainId,\n sourceFulfillerAddr: event.payerAddress,\n sourceToken: event.sourceToken,\n sourceAmount: event.sourceAmount.toString(),\n });\n store.dispatch({ type: \"payment_verified\", order });\n } catch (e: any) {\n store.dispatch({ type: \"error\", order: prev.order, message: e.message });\n }\n}\n\nasync function runPaySolanaSourceEffects(\n store: PaymentStore,\n trpc: TrpcClient,\n prev: Extract<PaymentState, { type: \"payment_unpaid\" }>,\n event: Extract<PaymentEvent, { type: \"pay_solana_source\" }>,\n) {\n const orderId = prev.order.id;\n\n try {\n const order = await trpc.processSolanaSourcePayment.mutate({\n orderId: orderId.toString(),\n startIntentTxHash: event.paymentTxHash,\n token: event.sourceToken,\n });\n store.dispatch({ type: \"payment_verified\", order });\n } catch (e: any) {\n store.dispatch({ type: \"error\", order: prev.order, message: e.message });\n }\n}\n"],"names":[],"mappings":";;;;AAeA,MAAM,OAAA,uBAAc,GAAwB,EAAA,CAAA;AAO5C,SAAS,WAAW,GAAa,EAAA;AAC/B,EAAQ,OAAA,CAAA,GAAA,CAAI,GAAG,CAAI,IAAA,CAAA;AACnB,EAAA,OAAA,CAAQ,OAAO,GAAG,CAAA,CAAA;AACpB,CAAA;AAWgB,SAAA,2BAAA,CACd,KACA,EAAA,IAAA,EACA,GACY,EAAA;AACZ,EAAM,MAAA,WAAA,GAAc,MAAM,SAAU,CAAA,CAAC,EAAE,IAAM,EAAA,IAAA,EAAM,OAAY,KAAA;AAC7D,IAAA,GAAA;AAAA,MACE,CAAA,sCAAA,EAAyC,MAAM,IAAI,CAAA,qBAAA,EAAwB,KAAK,IAAI,CAAA,IAAA,EAAO,KAAK,IAAI,CAAA,CAAA;AAAA,KACtG,CAAA;AAIA,IAAI,IAAA,IAAA,CAAK,IAAS,KAAA,IAAA,CAAK,IAAM,EAAA;AAE3B,MAAI,IAAA,IAAA,CAAK,SAAS,gBAAkB,EAAA;AAClC,QAAA,gBAAA,CAAiB,KAAO,EAAA,IAAA,EAAM,IAAK,CAAA,KAAA,CAAM,EAAE,CAAA,CAAA;AAAA,OAC7C;AAGA,MAAI,IAAA,IAAA,CAAK,SAAS,iBAAmB,EAAA;AACnC,QAAA,gBAAA,CAAiB,KAAO,EAAA,IAAA,EAAM,IAAK,CAAA,KAAA,CAAM,EAAE,CAAA,CAAA;AAAA,OAC7C;AAGA,MAAA,IACE,CAAC,mBAAA,EAAqB,iBAAmB,EAAA,OAAA,EAAS,MAAM,CAAE,CAAA,QAAA;AAAA,QACxD,IAAK,CAAA,IAAA;AAAA,OAEP,EAAA;AACA,QAAI,IAAA,OAAA,IAAW,IAAQ,IAAA,IAAA,CAAK,KAAO,EAAA;AACjC,UAAA,UAAA,CAAW,GAAG,qBAA8B,2BAAA,CAAA,EAAI,IAAK,CAAA,KAAA,CAAM,EAAE,CAAE,CAAA,CAAA,CAAA;AAC/D,UAAA,UAAA,CAAW,GAAG,eAAwB,qBAAA,CAAA,EAAI,IAAK,CAAA,KAAA,CAAM,EAAE,CAAE,CAAA,CAAA,CAAA;AAAA,SAC3D;AAAA,OACF;AAAA,KACF;AAKA,IAAA,QAAQ,MAAM,IAAM;AAAA,MAClB,KAAK,gBAAA;AACH,QAAuB,sBAAA,CAAA,KAAA,EAAO,MAAM,KAAK,CAAA,CAAA;AACzC,QAAA,MAAA;AAAA,MACF,KAAK,YAAA;AACH,QAAmB,kBAAA,CAAA,KAAA,EAAO,MAAM,KAAK,CAAA,CAAA;AACrC,QAAA,MAAA;AAAA,MACF,KAAK,eAAiB,EAAA;AACpB,QAAI,IAAA,IAAA,CAAK,SAAS,SAAW,EAAA;AAC3B,UAA2B,0BAAA,CAAA,KAAA,EAAO,IAAM,EAAA,IAAA,EAAM,KAAK,CAAA,CAAA;AAAA,SACrD,MAAA,IAAW,IAAK,CAAA,IAAA,KAAS,YAAc,EAAA;AACrC,UAAuB,sBAAA,CAAA,KAAA,EAAO,IAAM,EAAA,IAAA,EAAM,KAAK,CAAA,CAAA;AAAA,SAC1C,MAAA;AACL,UAAA,GAAA,CAAI,0BAA0B,KAAM,CAAA,IAAI,CAAa,UAAA,EAAA,IAAA,CAAK,IAAI,CAAE,CAAA,CAAA,CAAA;AAAA,SAClE;AACA,QAAA,MAAA;AAAA,OACF;AAAA,MACA,KAAK,YAAc,EAAA;AACjB,QAAI,IAAA,IAAA,CAAK,SAAS,gBAAkB,EAAA;AAClC,UAAoB,mBAAA,CAAA,KAAA,EAAO,MAAM,IAAI,CAAA,CAAA;AAAA,SAChC,MAAA;AACL,UAAA,GAAA,CAAI,0BAA0B,KAAM,CAAA,IAAI,CAAa,UAAA,EAAA,IAAA,CAAK,IAAI,CAAE,CAAA,CAAA,CAAA;AAAA,SAClE;AACA,QAAA,MAAA;AAAA,OACF;AAAA,MACA,KAAK,qBAAuB,EAAA;AAC1B,QAAI,IAAA,IAAA,CAAK,SAAS,gBAAkB,EAAA;AAClC,UAA4B,2BAAA,CAAA,KAAA,EAAO,IAAM,EAAA,IAAA,EAAM,KAAK,CAAA,CAAA;AAAA,SAC/C,MAAA;AACL,UAAA,GAAA,CAAI,0BAA0B,KAAM,CAAA,IAAI,CAAa,UAAA,EAAA,IAAA,CAAK,IAAI,CAAE,CAAA,CAAA,CAAA;AAAA,SAClE;AACA,QAAA,MAAA;AAAA,OACF;AAAA,MACA,KAAK,mBAAqB,EAAA;AACxB,QAAI,IAAA,IAAA,CAAK,SAAS,gBAAkB,EAAA;AAClC,UAA0B,yBAAA,CAAA,KAAA,EAAO,IAAM,EAAA,IAAA,EAAM,KAAK,CAAA,CAAA;AAAA,SACpD;AACA,QAAA,GAAA,CAAI,0BAA0B,KAAM,CAAA,IAAI,CAAa,UAAA,EAAA,IAAA,CAAK,IAAI,CAAE,CAAA,CAAA,CAAA;AAChE,QAAA,MAAA;AAAA,OACF;AAEE,KACJ;AAAA,GACD,CAAA,CAAA;AAED,EAAA,MAAM,UAAU,MAAM;AACpB,IAAY,WAAA,EAAA,CAAA;AACZ,IAAA,OAAA,CAAQ,QAAQ,CAAC,CAAA,EAAG,GAAQ,KAAA,UAAA,CAAW,GAAG,CAAC,CAAA,CAAA;AAC3C,IAAA,GAAA,CAAI,kEAAkE,CAAA,CAAA;AAAA,GACxE,CAAA;AAEA,EAAO,OAAA,OAAA,CAAA;AACT,CAAA;AAEA,eAAe,gBAAA,CACb,KACA,EAAA,IAAA,EACA,OACA,EAAA;AACA,EAAA,MAAM,GAAM,GAAA,CAAA,EAAG,qBAA8B,2BAAA,CAAA,EAAI,OAAO,CAAA,CAAA,CAAA;AAExD,EAAA,MAAM,cAAc,YAAa,CAAA;AAAA,IAC/B,GAAA;AAAA,IACA,UAAY,EAAA,GAAA;AAAA,IACZ,MAAA,EAAQ,MAAM,IAAA,CAAK,iBAAkB,CAAA,KAAA,CAAM,EAAE,OAAS,EAAA,OAAA,CAAQ,QAAS,EAAA,EAAG,CAAA;AAAA,IAC1E,QAAA,EAAU,CAAC,KAAU,KAAA;AACnB,MAAM,MAAA,KAAA,GAAQ,MAAM,QAAS,EAAA,CAAA;AAC7B,MAAI,IAAA,KAAA,CAAM,SAAS,gBAAkB,EAAA;AACnC,QAAY,WAAA,EAAA,CAAA;AACZ,QAAA,OAAA;AAAA,OACF;AACA,MAAA,KAAA,CAAM,QAAS,CAAA,EAAE,IAAM,EAAA,iBAAA,EAAmB,OAAO,CAAA,CAAA;AAAA,KACnD;AAAA,IACA,SAAS,MAAM;AAAA,KAAC;AAAA,GACjB,CAAA,CAAA;AAED,EAAQ,OAAA,CAAA,GAAA,CAAI,KAAK,WAAW,CAAA,CAAA;AAC9B,CAAA;AAEA,eAAe,gBAAA,CACb,KACA,EAAA,IAAA,EACA,OACA,EAAA;AACA,EAAA,MAAM,GAAM,GAAA,CAAA,EAAG,eAAwB,qBAAA,CAAA,EAAI,OAAO,CAAA,CAAA,CAAA;AAElD,EAAA,MAAM,cAAc,YAAa,CAAA;AAAA,IAC/B,GAAA;AAAA,IACA,UAAY,EAAA,GAAA;AAAA,IACZ,MAAA,EAAQ,MAAM,IAAA,CAAK,QAAS,CAAA,KAAA,CAAM,EAAE,EAAI,EAAA,OAAA,CAAQ,QAAS,EAAA,EAAG,CAAA;AAAA,IAC5D,QAAA,EAAU,CAAC,GAAQ,KAAA;AACjB,MAAM,MAAA,KAAA,GAAQ,MAAM,QAAS,EAAA,CAAA;AAE7B,MAAI,IAAA,KAAA,CAAM,SAAS,iBAAmB,EAAA;AACpC,QAAY,WAAA,EAAA,CAAA;AACZ,QAAA,OAAA;AAAA,OACF;AAEA,MAAA,MAAM,QAAQ,GAAI,CAAA,KAAA,CAAA;AAClB,MAAA,KAAA,CAAM,QAAS,CAAA,EAAE,IAAM,EAAA,iBAAA,EAAmB,OAAO,CAAA,CAAA;AAAA,KACnD;AAAA,IACA,SAAS,MAAM;AAAA,KAAC;AAAA,GACjB,CAAA,CAAA;AAED,EAAQ,OAAA,CAAA,GAAA,CAAI,KAAK,WAAW,CAAA,CAAA;AAC9B,CAAA;AAEA,eAAe,sBAAA,CACb,KACA,EAAA,IAAA,EACA,KACA,EAAA;AACA,EAAA,MAAM,YAAY,KAAM,CAAA,SAAA,CAAA;AAGxB,EAAA,MAAM,OAAU,GAAA,SAAA,CAAU,OAAW,IAAA,IAAA,GAAO,MAAM,SAAU,CAAA,OAAA,CAAA;AAG5D,EAAA,MAAA,CAAO,SAAU,CAAA,KAAA,CAAM,MAAS,GAAA,CAAA,EAAG,2BAA2B,CAAA,CAAA;AAC9D,EAAM,MAAA,aAAA,GAAgB,UAAU,OAAW,IAAA,IAAA,CAAA;AAC3C,EAAA,MAAA;AAAA,IACE,CAAC,aAAiB,IAAA,SAAA,CAAU,UAAc,IAAA,IAAA;AAAA,IAC1C,mDAAA;AAAA,GACF,CAAA;AAEA,EAAI,IAAA;AACF,IAAA,MAAM,YAAe,GAAA,MAAM,IAAK,CAAA,YAAA,CAAa,KAAM,CAAA;AAAA,MACjD,OAAO,SAAU,CAAA,KAAA;AAAA,MACjB,SAAS,SAAU,CAAA,OAAA;AAAA,MACnB,SAAS,SAAU,CAAA,OAAA;AAAA,MACnB,OAAA;AAAA,MACA,WAAW,SAAU,CAAA,SAAA;AAAA,MACrB,YAAY,SAAU,CAAA,UAAA;AAAA,MACtB,gBAAA,EAAkB,UAAU,OAAW,IAAA,IAAA;AAAA,MACvC,QAAU,EAAA;AAAA,QACR,MAAA,EAAQ,UAAU,MAAU,IAAA,KAAA;AAAA,QAC5B,OAAO,EAAC;AAAA,QACR,KAAO,EAAA;AAAA,UACL,gBAAgB,SAAU,CAAA,cAAA;AAAA,UAC1B,iBAAiB,SAAU,CAAA,eAAA;AAAA,UAC3B,iBAAiB,SAAU,CAAA,eAAA;AAAA,UAC3B,WAAW,SAAU,CAAA,SAAA;AAAA,UACrB,mBAAmB,SAAU,CAAA,iBAAA;AAAA,SAC/B;AAAA,OACF;AAAA,MACA,YAAY,SAAU,CAAA,UAAA;AAAA,MACtB,cAAc,SAAU,CAAA,QAAA;AAAA,MACxB,eAAe,SAAU,CAAA,aAAA;AAAA,KAC1B,CAAA,CAAA;AAED,IAAA,KAAA,CAAM,QAAS,CAAA;AAAA,MACb,IAAM,EAAA,mBAAA;AAAA;AAAA,MAEN,KAAO,EAAA,YAAA;AAAA,MACP,aAAe,EAAA;AAAA,QACb,OAAO,SAAU,CAAA,KAAA;AAAA,OACnB;AAAA,KACD,CAAA,CAAA;AAAA,WACM,CAAQ,EAAA;AACf,IAAM,KAAA,CAAA,QAAA,CAAS,EAAE,IAAM,EAAA,OAAA,EAAS,OAAO,KAAW,CAAA,EAAA,OAAA,EAAS,CAAE,CAAA,OAAA,EAAS,CAAA,CAAA;AAAA,GACxE;AACF,CAAA;AAEA,eAAe,kBAAA,CACb,KACA,EAAA,IAAA,EACA,KACA,EAAA;AACA,EAAI,IAAA;AACF,IAAA,MAAM,EAAE,KAAM,EAAA,GAAI,MAAM,IAAA,CAAK,SAAS,KAAM,CAAA;AAAA,MAC1C,EAAI,EAAA,mBAAA,CAAoB,KAAM,CAAA,KAAK,EAAE,QAAS,EAAA;AAAA,KAC/C,CAAA,CAAA;AAED,IAAA,KAAA,CAAM,QAAS,CAAA;AAAA,MACb,IAAM,EAAA,cAAA;AAAA,MACN,KAAA;AAAA,KACD,CAAA,CAAA;AAAA,WACM,CAAQ,EAAA;AACf,IAAM,KAAA,CAAA,QAAA,CAAS,EAAE,IAAM,EAAA,OAAA,EAAS,OAAO,KAAW,CAAA,EAAA,OAAA,EAAS,CAAE,CAAA,OAAA,EAAS,CAAA,CAAA;AAAA,GACxE;AACF,CAAA;AAEA,eAAe,0BACb,CAAA,KAAA,EACA,IACA,EAAA,IAAA,EACA,KACA,EAAA;AACA,EAAA,MAAM,QAAQ,IAAK,CAAA,KAAA,CAAA;AAEnB,EAAA,MAAM,OAAU,GAAA,WAAA;AAAA,IACd,MAAA,CAAO,KAAM,CAAA,wBAAA,CAAyB,MAAM,CAAA;AAAA,IAC5C,KAAA,CAAM,yBAAyB,KAAM,CAAA,QAAA;AAAA,GACvC,CAAA;AACA,EAAI,IAAA;AACF,IAAA,MAAM,EAAE,aAAc,EAAA,GAAI,MAAM,IAAA,CAAK,YAAY,MAAO,CAAA;AAAA,MACtD,KAAA,EAAO,KAAK,aAAc,CAAA,KAAA;AAAA,MAC1B,YAAc,EAAA;AAAA,QACZ,EAAA,EAAI,KAAM,CAAA,EAAA,CAAG,QAAS,EAAA;AAAA,QACtB,OAAA,EAAS,oBAAoB,KAAK,CAAA;AAAA,QAClC,OAAS,EAAA,UAAA,CAAW,KAAM,CAAA,wBAAA,CAAyB,MAAM,KAAK,CAAA;AAAA,QAC9D,OAAA;AAAA,QACA,SAAW,EAAA,UAAA,CAAW,KAAM,CAAA,aAAA,CAAc,EAAE,CAAA;AAAA,QAC5C,UAAA,EAAY,MAAM,aAAc,CAAA,IAAA;AAAA,QAChC,gBAAA,EAAkB,KAAM,CAAA,IAAA,KAAS,iBAAkB,CAAA,aAAA;AAAA,QACnD,UAAU,KAAM,CAAA,QAAA;AAAA,QAChB,cAAc,KAAM,CAAA,YAAA;AAAA,QACpB,UAAA,EAAY,MAAM,UAAc,IAAA,KAAA,CAAA;AAAA,OAClC;AAAA;AAAA;AAAA;AAAA,MAIA,aAAe,EAAA,KAAA,CAAM,aAAiB,IAAA,IAAA,CAAK,MAAM,UAAc,IAAA,KAAA,CAAA;AAAA,KAChE,CAAA,CAAA;AAED,IAAA,KAAA,CAAM,QAAS,CAAA;AAAA,MACb,IAAM,EAAA,gBAAA;AAAA,MACN,KAAO,EAAA,aAAA;AAAA,KACR,CAAA,CAAA;AAAA,WACM,CAAQ,EAAA;AACf,IAAM,KAAA,CAAA,QAAA,CAAS,EAAE,IAAA,EAAM,OAAS,EAAA,KAAA,EAAO,KAAK,KAAO,EAAA,OAAA,EAAS,CAAE,CAAA,OAAA,EAAS,CAAA,CAAA;AAAA,GACzE;AACF,CAAA;AAEA,eAAe,sBACb,CAAA,KAAA,EACA,IACA,EAAA,IAAA,EACA,KACA,EAAA;AACA,EAAA,MAAM,QAAQ,IAAK,CAAA,KAAA,CAAA;AAEnB,EAAI,IAAA;AACF,IAAA,MAAM,EAAE,aAAc,EAAA,GAAI,MAAM,IAAA,CAAK,aAAa,KAAM,CAAA;AAAA,MACtD,EAAA,EAAI,KAAM,CAAA,EAAA,CAAG,QAAS,EAAA;AAAA,MACtB,eAAe,KAAM,CAAA,aAAA;AAAA,KACtB,CAAA,CAAA;AAED,IAAA,KAAA,CAAM,QAAS,CAAA;AAAA,MACb,IAAM,EAAA,gBAAA;AAAA,MACN,KAAO,EAAA,aAAA;AAAA,KACR,CAAA,CAAA;AAAA,WACM,CAAQ,EAAA;AACf,IAAM,KAAA,CAAA,QAAA,CAAS,EAAE,IAAA,EAAM,OAAS,EAAA,KAAA,EAAO,KAAK,KAAO,EAAA,OAAA,EAAS,CAAE,CAAA,OAAA,EAAS,CAAA,CAAA;AAAA,GACzE;AACF,CAAA;AAEA,eAAe,mBAAA,CACb,KACA,EAAA,IAAA,EACA,IACA,EAAA;AACA,EAAM,MAAA,OAAA,GAAU,KAAK,KAAM,CAAA,EAAA,CAAA;AAE3B,EAAI,IAAA;AACF,IAAA,MAAM,KAAQ,GAAA,MAAM,IAAK,CAAA,iBAAA,CAAkB,KAAM,CAAA;AAAA,MAC/C,OAAA,EAAS,QAAQ,QAAS,EAAA;AAAA,KAC3B,CAAA,CAAA;AACD,IAAA,KAAA,CAAM,QAAS,CAAA,EAAE,IAAM,EAAA,iBAAA,EAAmB,OAAO,CAAA,CAAA;AAAA,WAC1C,CAAQ,EAAA;AACf,IAAM,KAAA,CAAA,QAAA,CAAS,EAAE,IAAA,EAAM,OAAS,EAAA,KAAA,EAAO,KAAK,KAAO,EAAA,OAAA,EAAS,CAAE,CAAA,OAAA,EAAS,CAAA,CAAA;AAAA,GACzE;AACF,CAAA;AAEA,eAAe,2BACb,CAAA,KAAA,EACA,IACA,EAAA,IAAA,EACA,KACA,EAAA;AACA,EAAM,MAAA,OAAA,GAAU,KAAK,KAAM,CAAA,EAAA,CAAA;AAE3B,EAAI,IAAA;AACF,IAAA,MAAM,KAAQ,GAAA,MAAM,IAAK,CAAA,oBAAA,CAAqB,MAAO,CAAA;AAAA,MACnD,OAAA,EAAS,QAAQ,QAAS,EAAA;AAAA,MAC1B,sBAAsB,KAAM,CAAA,aAAA;AAAA,MAC5B,eAAe,KAAM,CAAA,aAAA;AAAA,MACrB,qBAAqB,KAAM,CAAA,YAAA;AAAA,MAC3B,aAAa,KAAM,CAAA,WAAA;AAAA,MACnB,YAAA,EAAc,KAAM,CAAA,YAAA,CAAa,QAAS,EAAA;AAAA,KAC3C,CAAA,CAAA;AACD,IAAA,KAAA,CAAM,QAAS,CAAA,EAAE,IAAM,EAAA,kBAAA,EAAoB,OAAO,CAAA,CAAA;AAAA,WAC3C,CAAQ,EAAA;AACf,IAAM,KAAA,CAAA,QAAA,CAAS,EAAE,IAAA,EAAM,OAAS,EAAA,KAAA,EAAO,KAAK,KAAO,EAAA,OAAA,EAAS,CAAE,CAAA,OAAA,EAAS,CAAA,CAAA;AAAA,GACzE;AACF,CAAA;AAEA,eAAe,yBACb,CAAA,KAAA,EACA,IACA,EAAA,IAAA,EACA,KACA,EAAA;AACA,EAAM,MAAA,OAAA,GAAU,KAAK,KAAM,CAAA,EAAA,CAAA;AAE3B,EAAI,IAAA;AACF,IAAA,MAAM,KAAQ,GAAA,MAAM,IAAK,CAAA,0BAAA,CAA2B,MAAO,CAAA;AAAA,MACzD,OAAA,EAAS,QAAQ,QAAS,EAAA;AAAA,MAC1B,mBAAmB,KAAM,CAAA,aAAA;AAAA,MACzB,OAAO,KAAM,CAAA,WAAA;AAAA,KACd,CAAA,CAAA;AACD,IAAA,KAAA,CAAM,QAAS,CAAA,EAAE,IAAM,EAAA,kBAAA,EAAoB,OAAO,CAAA,CAAA;AAAA,WAC3C,CAAQ,EAAA;AACf,IAAM,KAAA,CAAA,QAAA,CAAS,EAAE,IAAA,EAAM,OAAS,EAAA,KAAA,EAAO,KAAK,KAAO,EAAA,OAAA,EAAS,CAAE,CAAA,OAAA,EAAS,CAAA,CAAA;AAAA,GACzE;AACF;;;;"}
|