@daimo/pay 1.19.10 → 2.0.0
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/README.md +5 -70
- package/index.js +1 -0
- package/package.json +5 -94
- package/LICENSE +0 -26
- package/build/index.d.ts +0 -619
- package/build/package.json.js +0 -118
- package/build/package.json.js.map +0 -1
- package/build/src/assets/MobileWithLogos.js +0 -329
- package/build/src/assets/MobileWithLogos.js.map +0 -1
- package/build/src/assets/ScanIconWithLogos.js +0 -243
- package/build/src/assets/ScanIconWithLogos.js.map +0 -1
- package/build/src/assets/browsers.js +0 -969
- package/build/src/assets/browsers.js.map +0 -1
- package/build/src/assets/chains.js +0 -683
- package/build/src/assets/chains.js.map +0 -1
- package/build/src/assets/icons.js +0 -273
- package/build/src/assets/icons.js.map +0 -1
- package/build/src/assets/logos.js +0 -1694
- package/build/src/assets/logos.js.map +0 -1
- package/build/src/assets/wave.js +0 -46
- package/build/src/assets/wave.js.map +0 -1
- package/build/src/components/Common/Alert/index.js +0 -13
- package/build/src/components/Common/Alert/index.js.map +0 -1
- package/build/src/components/Common/Alert/styles.js +0 -55
- package/build/src/components/Common/Alert/styles.js.map +0 -1
- package/build/src/components/Common/AmountInput/AmountInputField.js +0 -62
- package/build/src/components/Common/AmountInput/AmountInputField.js.map +0 -1
- package/build/src/components/Common/AmountInput/index.js +0 -166
- package/build/src/components/Common/AmountInput/index.js.map +0 -1
- package/build/src/components/Common/Avatar/index.js +0 -78
- package/build/src/components/Common/Avatar/index.js.map +0 -1
- package/build/src/components/Common/Avatar/styles.js +0 -54
- package/build/src/components/Common/Avatar/styles.js.map +0 -1
- package/build/src/components/Common/BrowserIcon/index.js +0 -29
- package/build/src/components/Common/BrowserIcon/index.js.map +0 -1
- package/build/src/components/Common/BrowserIcon/styles.js +0 -20
- package/build/src/components/Common/BrowserIcon/styles.js.map +0 -1
- package/build/src/components/Common/Button/index.js +0 -144
- package/build/src/components/Common/Button/index.js.map +0 -1
- package/build/src/components/Common/Button/styles.js +0 -287
- package/build/src/components/Common/Button/styles.js.map +0 -1
- package/build/src/components/Common/Chain/index.js +0 -141
- package/build/src/components/Common/Chain/index.js.map +0 -1
- package/build/src/components/Common/Chain/styles.js +0 -90
- package/build/src/components/Common/Chain/styles.js.map +0 -1
- package/build/src/components/Common/ChainSelectList/index.js +0 -250
- package/build/src/components/Common/ChainSelectList/index.js.map +0 -1
- package/build/src/components/Common/ChainSelectList/styles.js +0 -226
- package/build/src/components/Common/ChainSelectList/styles.js.map +0 -1
- package/build/src/components/Common/CircleTimer.js +0 -92
- package/build/src/components/Common/CircleTimer.js.map +0 -1
- package/build/src/components/Common/ConnectorList/index.js +0 -121
- package/build/src/components/Common/ConnectorList/index.js.map +0 -1
- package/build/src/components/Common/ConnectorList/styles.js +0 -344
- package/build/src/components/Common/ConnectorList/styles.js.map +0 -1
- package/build/src/components/Common/CopyToClipboard/CopyToClipboardIcon.js +0 -78
- package/build/src/components/Common/CopyToClipboard/CopyToClipboardIcon.js.map +0 -1
- package/build/src/components/Common/CustomQRCode/QRCode.js +0 -132
- package/build/src/components/Common/CustomQRCode/QRCode.js.map +0 -1
- package/build/src/components/Common/CustomQRCode/index.js +0 -89
- package/build/src/components/Common/CustomQRCode/index.js.map +0 -1
- package/build/src/components/Common/CustomQRCode/styles.js +0 -142
- package/build/src/components/Common/CustomQRCode/styles.js.map +0 -1
- package/build/src/components/Common/FitText/index.js +0 -34
- package/build/src/components/Common/FitText/index.js.map +0 -1
- package/build/src/components/Common/Modal/index.js +0 -558
- package/build/src/components/Common/Modal/index.js.map +0 -1
- package/build/src/components/Common/Modal/styles.js +0 -665
- package/build/src/components/Common/Modal/styles.js.map +0 -1
- package/build/src/components/Common/OptionsList/index.js +0 -145
- package/build/src/components/Common/OptionsList/index.js.map +0 -1
- package/build/src/components/Common/OptionsList/styles.js +0 -138
- package/build/src/components/Common/OptionsList/styles.js.map +0 -1
- package/build/src/components/Common/OrderHeader/index.js +0 -148
- package/build/src/components/Common/OrderHeader/index.js.map +0 -1
- package/build/src/components/Common/PaymentBreakdown/index.js +0 -70
- package/build/src/components/Common/PaymentBreakdown/index.js.map +0 -1
- package/build/src/components/Common/Portal/index.js +0 -30
- package/build/src/components/Common/Portal/index.js.map +0 -1
- package/build/src/components/Common/PoweredByFooter/index.js +0 -39
- package/build/src/components/Common/PoweredByFooter/index.js.map +0 -1
- package/build/src/components/Common/ScrollArea/index.js +0 -120
- package/build/src/components/Common/ScrollArea/index.js.map +0 -1
- package/build/src/components/Common/ScrollArea/styles.js +0 -169
- package/build/src/components/Common/ScrollArea/styles.js.map +0 -1
- package/build/src/components/Common/SelectAnotherMethodButton/index.js +0 -96
- package/build/src/components/Common/SelectAnotherMethodButton/index.js.map +0 -1
- package/build/src/components/Common/Spinner/index.js +0 -64
- package/build/src/components/Common/Spinner/index.js.map +0 -1
- package/build/src/components/Common/Spinner/styles.js +0 -22
- package/build/src/components/Common/Spinner/styles.js.map +0 -1
- package/build/src/components/Common/SwitchButton/index.js +0 -43
- package/build/src/components/Common/SwitchButton/index.js.map +0 -1
- package/build/src/components/Common/ThemedButton/index.js +0 -46
- package/build/src/components/Common/ThemedButton/index.js.map +0 -1
- package/build/src/components/Common/ThemedButton/styles.js +0 -152
- package/build/src/components/Common/ThemedButton/styles.js.map +0 -1
- package/build/src/components/Common/TokenChainLogo/index.js +0 -62
- package/build/src/components/Common/TokenChainLogo/index.js.map +0 -1
- package/build/src/components/Common/Tooltip/index.js +0 -129
- package/build/src/components/Common/Tooltip/index.js.map +0 -1
- package/build/src/components/Common/Tooltip/styles.js +0 -81
- package/build/src/components/Common/Tooltip/styles.js.map +0 -1
- package/build/src/components/Common/WalletChainLogo/index.js +0 -31
- package/build/src/components/Common/WalletChainLogo/index.js.map +0 -1
- package/build/src/components/DaimoPayButton/index.js +0 -196
- package/build/src/components/DaimoPayButton/index.js.map +0 -1
- package/build/src/components/DaimoPayButton/styles.js +0 -50
- package/build/src/components/DaimoPayButton/styles.js.map +0 -1
- package/build/src/components/DaimoPayModal/ConnectUsing.js +0 -70
- package/build/src/components/DaimoPayModal/ConnectUsing.js.map +0 -1
- package/build/src/components/DaimoPayModal/ConnectWithInjector/index.js +0 -339
- package/build/src/components/DaimoPayModal/ConnectWithInjector/index.js.map +0 -1
- package/build/src/components/DaimoPayModal/ConnectWithInjector/styles.js +0 -131
- package/build/src/components/DaimoPayModal/ConnectWithInjector/styles.js.map +0 -1
- package/build/src/components/DaimoPayModal/ConnectWithQRCode.js +0 -89
- package/build/src/components/DaimoPayModal/ConnectWithQRCode.js.map +0 -1
- package/build/src/components/DaimoPayModal/index.js +0 -605
- package/build/src/components/DaimoPayModal/index.js.map +0 -1
- package/build/src/components/DaimoPayThemeProvider/DaimoPayThemeProvider.js +0 -25
- package/build/src/components/DaimoPayThemeProvider/DaimoPayThemeProvider.js.map +0 -1
- package/build/src/components/Pages/About/graphics.js +0 -853
- package/build/src/components/Pages/About/graphics.js.map +0 -1
- package/build/src/components/Pages/About/index.js +0 -222
- package/build/src/components/Pages/About/index.js.map +0 -1
- package/build/src/components/Pages/About/styles.js +0 -140
- package/build/src/components/Pages/About/styles.js.map +0 -1
- package/build/src/components/Pages/Confirmation/index.js +0 -126
- package/build/src/components/Pages/Confirmation/index.js.map +0 -1
- package/build/src/components/Pages/Connectors/index.js +0 -26
- package/build/src/components/Pages/Connectors/index.js.map +0 -1
- package/build/src/components/Pages/Error/index.js +0 -57
- package/build/src/components/Pages/Error/index.js.map +0 -1
- package/build/src/components/Pages/MobileConnectors/index.js +0 -108
- package/build/src/components/Pages/MobileConnectors/index.js.map +0 -1
- package/build/src/components/Pages/MobileConnectors/styles.js +0 -64
- package/build/src/components/Pages/MobileConnectors/styles.js.map +0 -1
- package/build/src/components/Pages/Onboarding/index.js +0 -34
- package/build/src/components/Pages/Onboarding/index.js.map +0 -1
- package/build/src/components/Pages/Onboarding/styles.js +0 -229
- package/build/src/components/Pages/Onboarding/styles.js.map +0 -1
- package/build/src/components/Pages/PayWithToken/index.js +0 -157
- package/build/src/components/Pages/PayWithToken/index.js.map +0 -1
- package/build/src/components/Pages/SelectAmount/index.js +0 -24
- package/build/src/components/Pages/SelectAmount/index.js.map +0 -1
- package/build/src/components/Pages/SelectDepositAddressAmount/index.js +0 -79
- package/build/src/components/Pages/SelectDepositAddressAmount/index.js.map +0 -1
- package/build/src/components/Pages/SelectDepositAddressChain/index.js +0 -80
- package/build/src/components/Pages/SelectDepositAddressChain/index.js.map +0 -1
- package/build/src/components/Pages/SelectExchange/index.js +0 -62
- package/build/src/components/Pages/SelectExchange/index.js.map +0 -1
- package/build/src/components/Pages/SelectExternalAmount/index.js +0 -80
- package/build/src/components/Pages/SelectExternalAmount/index.js.map +0 -1
- package/build/src/components/Pages/SelectMethod/index.js +0 -315
- package/build/src/components/Pages/SelectMethod/index.js.map +0 -1
- package/build/src/components/Pages/SelectToken/index.js +0 -99
- package/build/src/components/Pages/SelectToken/index.js.map +0 -1
- package/build/src/components/Pages/SelectWalletAmount/index.js +0 -71
- package/build/src/components/Pages/SelectWalletAmount/index.js.map +0 -1
- package/build/src/components/Pages/SelectWalletChain/index.js +0 -55
- package/build/src/components/Pages/SelectWalletChain/index.js.map +0 -1
- package/build/src/components/Pages/SelectZKP/index.js +0 -41
- package/build/src/components/Pages/SelectZKP/index.js.map +0 -1
- package/build/src/components/Pages/Solana/ConnectorSolana/index.js +0 -94
- package/build/src/components/Pages/Solana/ConnectorSolana/index.js.map +0 -1
- package/build/src/components/Pages/Solana/PayWithSolanaToken/index.js +0 -92
- package/build/src/components/Pages/Solana/PayWithSolanaToken/index.js.map +0 -1
- package/build/src/components/Pages/Solana/SelectSolanaAmount/index.js +0 -24
- package/build/src/components/Pages/Solana/SelectSolanaAmount/index.js.map +0 -1
- package/build/src/components/Pages/SwitchNetworks/index.js +0 -45
- package/build/src/components/Pages/SwitchNetworks/index.js.map +0 -1
- package/build/src/components/Pages/WaitingDepositAddress/index.js +0 -586
- package/build/src/components/Pages/WaitingDepositAddress/index.js.map +0 -1
- package/build/src/components/Pages/WaitingExternal/index.js +0 -174
- package/build/src/components/Pages/WaitingExternal/index.js.map +0 -1
- package/build/src/components/Pages/WaitingWallet/index.js +0 -49
- package/build/src/components/Pages/WaitingWallet/index.js.map +0 -1
- package/build/src/components/Pages/Warning/index.js +0 -56
- package/build/src/components/Pages/Warning/index.js.map +0 -1
- package/build/src/components/Spinners/CircleSpinner/index.js +0 -104
- package/build/src/components/Spinners/CircleSpinner/index.js.map +0 -1
- package/build/src/components/Spinners/CircleSpinner/styles.js +0 -117
- package/build/src/components/Spinners/CircleSpinner/styles.js.map +0 -1
- package/build/src/components/Spinners/ExternalPaymentSpinner/index.js +0 -29
- package/build/src/components/Spinners/ExternalPaymentSpinner/index.js.map +0 -1
- package/build/src/components/Spinners/SquircleSpinner/index.js +0 -68
- package/build/src/components/Spinners/SquircleSpinner/index.js.map +0 -1
- package/build/src/components/Spinners/SquircleSpinner/styles.js +0 -66
- package/build/src/components/Spinners/SquircleSpinner/styles.js.map +0 -1
- package/build/src/components/Spinners/TokenLogoSpinner/index.js +0 -24
- package/build/src/components/Spinners/TokenLogoSpinner/index.js.map +0 -1
- package/build/src/components/Spinners/TokenLogoSpinner/styles.js +0 -40
- package/build/src/components/Spinners/TokenLogoSpinner/styles.js.map +0 -1
- package/build/src/components/Spinners/WalletPaymentSpinner/index.js +0 -37
- package/build/src/components/Spinners/WalletPaymentSpinner/index.js.map +0 -1
- package/build/src/components/Spinners/styles.js +0 -32
- package/build/src/components/Spinners/styles.js.map +0 -1
- package/build/src/constants/defaultTheme.js +0 -6
- package/build/src/constants/defaultTheme.js.map +0 -1
- package/build/src/constants/limits.js +0 -4
- package/build/src/constants/limits.js.map +0 -1
- package/build/src/constants/paymentOptions.js +0 -61
- package/build/src/constants/paymentOptions.js.map +0 -1
- package/build/src/constants/routes.js +0 -31
- package/build/src/constants/routes.js.map +0 -1
- package/build/src/constants/wallets.js +0 -7
- package/build/src/constants/wallets.js.map +0 -1
- package/build/src/defaultConfig.js +0 -66
- package/build/src/defaultConfig.js.map +0 -1
- package/build/src/defaultConnectors.js +0 -37
- package/build/src/defaultConnectors.js.map +0 -1
- package/build/src/hooks/useChainIsSupported.js +0 -10
- package/build/src/hooks/useChainIsSupported.js.map +0 -1
- package/build/src/hooks/useChains.js +0 -10
- package/build/src/hooks/useChains.js.map +0 -1
- package/build/src/hooks/useConnect.js +0 -61
- package/build/src/hooks/useConnect.js.map +0 -1
- package/build/src/hooks/useConnectCallback.js +0 -21
- package/build/src/hooks/useConnectCallback.js.map +0 -1
- package/build/src/hooks/useConnectors.js +0 -20
- package/build/src/hooks/useConnectors.js.map +0 -1
- package/build/src/hooks/useDaimoPay.js +0 -131
- package/build/src/hooks/useDaimoPay.js.map +0 -1
- package/build/src/hooks/useDaimoPayStatus.js +0 -12
- package/build/src/hooks/useDaimoPayStatus.js.map +0 -1
- package/build/src/hooks/useDaimoPayUI.js +0 -15
- package/build/src/hooks/useDaimoPayUI.js.map +0 -1
- package/build/src/hooks/useEnsFallbackConfig.js +0 -16
- package/build/src/hooks/useEnsFallbackConfig.js.map +0 -1
- package/build/src/hooks/useFitText.js +0 -133
- package/build/src/hooks/useFitText.js.map +0 -1
- package/build/src/hooks/useFocusTrap.js +0 -53
- package/build/src/hooks/useFocusTrap.js.map +0 -1
- package/build/src/hooks/useIsMobile.js +0 -11
- package/build/src/hooks/useIsMobile.js.map +0 -1
- package/build/src/hooks/useIsMounted.js +0 -10
- package/build/src/hooks/useIsMounted.js.map +0 -1
- package/build/src/hooks/useLastConnector.js +0 -24
- package/build/src/hooks/useLastConnector.js.map +0 -1
- package/build/src/hooks/useLocales.js +0 -60
- package/build/src/hooks/useLocales.js.map +0 -1
- package/build/src/hooks/useLockBodyScroll.js +0 -47
- package/build/src/hooks/useLockBodyScroll.js.map +0 -1
- package/build/src/hooks/useOrderUsdLimits.js +0 -24
- package/build/src/hooks/useOrderUsdLimits.js.map +0 -1
- package/build/src/hooks/usePayContext.js +0 -11
- package/build/src/hooks/usePayContext.js.map +0 -1
- package/build/src/hooks/usePaymentOptions.js +0 -185
- package/build/src/hooks/usePaymentOptions.js.map +0 -1
- package/build/src/hooks/usePaymentState.js +0 -399
- package/build/src/hooks/usePaymentState.js.map +0 -1
- package/build/src/hooks/usePrevious.js +0 -13
- package/build/src/hooks/usePrevious.js.map +0 -1
- package/build/src/hooks/useTokenOptions.js +0 -156
- package/build/src/hooks/useTokenOptions.js.map +0 -1
- package/build/src/hooks/useUntronAvailability.js +0 -32
- package/build/src/hooks/useUntronAvailability.js.map +0 -1
- package/build/src/hooks/useWindowSize.js +0 -23
- package/build/src/hooks/useWindowSize.js.map +0 -1
- package/build/src/index.js +0 -14
- package/build/src/index.js.map +0 -1
- package/build/src/localizations/index.js +0 -48
- package/build/src/localizations/index.js.map +0 -1
- package/build/src/localizations/locales/ar-AE.js +0 -95
- package/build/src/localizations/locales/ar-AE.js.map +0 -1
- package/build/src/localizations/locales/ca-AD.js +0 -93
- package/build/src/localizations/locales/ca-AD.js.map +0 -1
- package/build/src/localizations/locales/ee-EE.js +0 -101
- package/build/src/localizations/locales/ee-EE.js.map +0 -1
- package/build/src/localizations/locales/en-US.js +0 -145
- package/build/src/localizations/locales/en-US.js.map +0 -1
- package/build/src/localizations/locales/es-ES.js +0 -138
- package/build/src/localizations/locales/es-ES.js.map +0 -1
- package/build/src/localizations/locales/fa-IR.js +0 -93
- package/build/src/localizations/locales/fa-IR.js.map +0 -1
- package/build/src/localizations/locales/fr-FR.js +0 -93
- package/build/src/localizations/locales/fr-FR.js.map +0 -1
- package/build/src/localizations/locales/ja-JP.js +0 -93
- package/build/src/localizations/locales/ja-JP.js.map +0 -1
- package/build/src/localizations/locales/pt-BR.js +0 -145
- package/build/src/localizations/locales/pt-BR.js.map +0 -1
- package/build/src/localizations/locales/ru-RU.js +0 -97
- package/build/src/localizations/locales/ru-RU.js.map +0 -1
- package/build/src/localizations/locales/tr-TR.js +0 -101
- package/build/src/localizations/locales/tr-TR.js.map +0 -1
- package/build/src/localizations/locales/vi-VN.js +0 -101
- package/build/src/localizations/locales/vi-VN.js.map +0 -1
- package/build/src/localizations/locales/zh-CN.js +0 -93
- package/build/src/localizations/locales/zh-CN.js.map +0 -1
- package/build/src/payment/paymentEffects.js +0 -270
- package/build/src/payment/paymentEffects.js.map +0 -1
- package/build/src/payment/paymentFsm.js +0 -234
- package/build/src/payment/paymentFsm.js.map +0 -1
- package/build/src/payment/paymentStore.js +0 -18
- package/build/src/payment/paymentStore.js.map +0 -1
- package/build/src/payment/paymentUtils.js +0 -10
- package/build/src/payment/paymentUtils.js.map +0 -1
- package/build/src/provider/DaimoPayProvider.js +0 -300
- package/build/src/provider/DaimoPayProvider.js.map +0 -1
- package/build/src/provider/PayContext.js +0 -6
- package/build/src/provider/PayContext.js.map +0 -1
- package/build/src/provider/PaymentProvider.js +0 -35
- package/build/src/provider/PaymentProvider.js.map +0 -1
- package/build/src/provider/SolanaContextProvider.js +0 -14
- package/build/src/provider/SolanaContextProvider.js.map +0 -1
- package/build/src/provider/Web3ContextProvider.js +0 -36
- package/build/src/provider/Web3ContextProvider.js.map +0 -1
- package/build/src/stateStore.js +0 -36
- package/build/src/stateStore.js.map +0 -1
- package/build/src/styles/defaultTheme.js +0 -80
- package/build/src/styles/defaultTheme.js.map +0 -1
- package/build/src/styles/index.js +0 -313
- package/build/src/styles/index.js.map +0 -1
- package/build/src/styles/styled/index.js +0 -6
- package/build/src/styles/styled/index.js.map +0 -1
- package/build/src/styles/themes/base.js +0 -141
- package/build/src/styles/themes/base.js.map +0 -1
- package/build/src/styles/themes/index.js +0 -13
- package/build/src/styles/themes/index.js.map +0 -1
- package/build/src/styles/themes/midnight.js +0 -76
- package/build/src/styles/themes/midnight.js.map +0 -1
- package/build/src/styles/themes/minimal.js +0 -96
- package/build/src/styles/themes/minimal.js.map +0 -1
- package/build/src/styles/themes/nouns.js +0 -81
- package/build/src/styles/themes/nouns.js.map +0 -1
- package/build/src/styles/themes/retro.js +0 -106
- package/build/src/styles/themes/retro.js.map +0 -1
- package/build/src/styles/themes/rounded.js +0 -106
- package/build/src/styles/themes/rounded.js.map +0 -1
- package/build/src/styles/themes/soft.js +0 -71
- package/build/src/styles/themes/soft.js.map +0 -1
- package/build/src/styles/themes/web95.js +0 -132
- package/build/src/styles/themes/web95.js.map +0 -1
- package/build/src/utils/exports.js +0 -6
- package/build/src/utils/exports.js.map +0 -1
- package/build/src/utils/format.js +0 -48
- package/build/src/utils/format.js.map +0 -1
- package/build/src/utils/index.js +0 -42
- package/build/src/utils/index.js.map +0 -1
- package/build/src/utils/p3.js +0 -15
- package/build/src/utils/p3.js.map +0 -1
- package/build/src/utils/platform.js +0 -11
- package/build/src/utils/platform.js.map +0 -1
- package/build/src/utils/polling.js +0 -44
- package/build/src/utils/polling.js.map +0 -1
- package/build/src/utils/supportUrl.js +0 -16
- package/build/src/utils/supportUrl.js.map +0 -1
- package/build/src/utils/trpc.js +0 -19
- package/build/src/utils/trpc.js.map +0 -1
- package/build/src/utils/validateInput.js +0 -16
- package/build/src/utils/validateInput.js.map +0 -1
- package/build/src/wallets/index.js +0 -21
- package/build/src/wallets/index.js.map +0 -1
- package/build/src/wallets/useWallets.js +0 -278
- package/build/src/wallets/useWallets.js.map +0 -1
- package/build/src/wallets/walletConfigs.js +0 -190
- package/build/src/wallets/walletConfigs.js.map +0 -1
- package/build/src/world-mini-app/WorldPayButton.js +0 -165
- package/build/src/world-mini-app/WorldPayButton.js.map +0 -1
- package/build/src/world-mini-app/promptWorldPayment.js +0 -59
- package/build/src/world-mini-app/promptWorldPayment.js.map +0 -1
- package/build/src/world-mini-app/useWithdrawToWorld.js +0 -76
- package/build/src/world-mini-app/useWithdrawToWorld.js.map +0 -1
- package/build/src/world-mini-app/useWorldSignIn.js +0 -74
- package/build/src/world-mini-app/useWorldSignIn.js.map +0 -1
- package/build/src/world.js +0 -4
- package/build/src/world.js.map +0 -1
- package/build/types-26343050.d.ts +0 -65
- package/build/world.d.ts +0 -108
|
@@ -1,101 +0,0 @@
|
|
|
1
|
-
const viVN = {
|
|
2
|
-
connectWallet: "K\u1EBFt n\u1ED1i v\xED",
|
|
3
|
-
disconnect: "Ng\u1EAFt k\u1EBFt n\u1ED1i",
|
|
4
|
-
connected: "\u0110\xE3 k\u1EBFt n\u1ED1i",
|
|
5
|
-
wrongNetwork: "M\u1EA1ng kh\xF4ng h\u1ED7 tr\u1EE3",
|
|
6
|
-
switchNetworks: "\u0110\u1ED5i m\u1EA1ng",
|
|
7
|
-
chainNetwork: "M\u1EA1ng {{ CHAIN }}",
|
|
8
|
-
copyToClipboard: "Sao ch\xE9p",
|
|
9
|
-
copyCode: "Sao ch\xE9p m\xE3",
|
|
10
|
-
moreInformation: "Th\xEAm th\xF4ng tin",
|
|
11
|
-
back: "Quay l\u1EA1i",
|
|
12
|
-
close: "\u0110\xF3ng",
|
|
13
|
-
or: "ho\u1EB7c",
|
|
14
|
-
more: "Th\xEAm",
|
|
15
|
-
tryAgain: "Th\u1EED l\u1EA1i",
|
|
16
|
-
tryAgainQuestion: "Th\u1EED l\u1EA1i?",
|
|
17
|
-
dontHaveTheApp: "Kh\xF4ng c\xF3 app?",
|
|
18
|
-
scanTheQRCode: "Qu\xE9t m\xE3 QR",
|
|
19
|
-
useModal: "D\xF9ng Modal",
|
|
20
|
-
installTheExtension: "C\xE0i ti\u1EC7n \xEDch",
|
|
21
|
-
getWalletName: "L\u1EA5y {{ CONNECTORNAME }}",
|
|
22
|
-
otherWallets: "C\xE1c v\xED kh\xE1c",
|
|
23
|
-
learnMore: "Xem th\xEAm",
|
|
24
|
-
getWallet: "T\u1EA1o m\u1ED9t v\xED",
|
|
25
|
-
approveInWallet: "C\u1EA5p quy\u1EC1n trong v\xED",
|
|
26
|
-
confirmInWallet: "X\xE1c nh\u1EADn trong v\xED",
|
|
27
|
-
awaitingConfirmation: "\u0110ang ch\u1EDD x\xE1c nh\u1EADn",
|
|
28
|
-
signIn: "\u0110\u0103ng nh\u1EADp",
|
|
29
|
-
signOut: "\u0110\u0103ng xu\u1EA5t",
|
|
30
|
-
signedIn: "\u0110\xE3 \u0111\u0103ng nh\u1EADp",
|
|
31
|
-
signedOut: "\u0110\xE3 \u0111\u0103ng xu\u1EA5t",
|
|
32
|
-
walletNotConnected: "Ch\u01B0a k\u1EBFt n\u1ED1i v\xED",
|
|
33
|
-
warnings_walletSwitchingUnsupported: `V\xED c\u1EE7a b\u1EA1n kh\xF4ng h\u1ED7 tr\u1EE3 \u0111\u1ED5i m\u1EA1ng t\u1EEB \u1EE9ng d\u1EE5ng.`,
|
|
34
|
-
warnings_walletSwitchingUnsupportedResolve: `H\xE3y th\u1EED \u0111\u1ED5i m\u1EA1ng t\u1EEB ph\xEDa v\xED c\u1EE7a b\u1EA1n.`,
|
|
35
|
-
warnings_chainUnsupported: `\u1EE8ng d\u1EE5ng n\xE0y kh\xF4ng h\u1ED7 tr\u1EE3 m\u1EA1ng hi\u1EC7n t\u1EA1i.`,
|
|
36
|
-
warnings_chainUnsupportedResolve: `\u0110\u1ED5i ho\u1EB7c ng\u1EAFt k\u1EBFt n\u1ED1i \u0111\u1EC3 ti\u1EBFp t\u1EE5c.`,
|
|
37
|
-
onboardingScreen_heading: `T\u1EA1o m\u1ED9t v\xED`,
|
|
38
|
-
onboardingScreen_h1: `B\u1EAFt \u0111\u1EA7u kh\xE1m kh\xE1 Web3`,
|
|
39
|
-
onboardingScreen_p: `V\xED c\u1EE7a b\u1EA1n l\xE0 c\u1ED5ng giao ti\u1EBFp m\u1ECDi th\u1EE9 tr\xEAn Ethereum, c\xF4ng ngh\u1EC7 tuy\u1EC7t v\u1EDDi gi\xFAp kh\xE1m ph\xE1 Web3.`,
|
|
40
|
-
onboardingScreen_ctaText: `Ch\u1ECDn v\xED \u0111\u1EA7u ti\xEAn c\u1EE7a b\u1EA1n`,
|
|
41
|
-
onboardingScreen_ctaUrl: `https://ethereum.org/en/wallets/find-wallet/`,
|
|
42
|
-
aboutScreen_heading: `Gi\u1EDBi thi\u1EC7u c\xE1c v\xED`,
|
|
43
|
-
aboutScreen_a_h1: `Cho t\xE0i s\u1EA3n s\u1ED1 c\u1EE7a b\u1EA1n`,
|
|
44
|
-
aboutScreen_a_p: `C\xE1c v\xED \u0111\u1EC3 b\u1EA1n g\u1EEDi, nh\u1EADn, l\u01B0u tr\u1EEF, v\xE0 t\u01B0\u01A1ng t\xE1c v\u1EDBi c\xE1c t\xE0i s\u1EA3n \u0111i\u1EC7n t\u1EED nh\u01B0 NFTs v\xE0 c\xE1c lo\u1EA1i ti\u1EC1n Ethereum kh\xE1c.`,
|
|
45
|
-
aboutScreen_b_h1: `M\u1ED9t c\xE1ch t\u1ED1t h\u01A1n \u0111\u1EC3 \u0111\u0103ng nh\u1EADp`,
|
|
46
|
-
aboutScreen_b_p: `V\u1EDBi c\xE1c \u1EE9ng d\u1EE5ng hi\u1EC7n \u0111\u1EA1i, v\xED c\u1EE7a b\u1EA1n c\xF3 th\u1EC3 d\xF9ng \u0111\u1EC3 \u0111\u0103ng nh\u1EADp d\u1EC5 d\xE0ng thay v\xEC ph\u1EA3i nh\u1EDB t\xE0i kho\u1EA3n v\xE0 m\u1EADt kh\u1EA9u.`,
|
|
47
|
-
aboutScreen_c_h1: `Kh\xE1m ph\xE1 th\u1EBF gi\u1EDBi Web3`,
|
|
48
|
-
aboutScreen_c_p: `V\xED c\u1EE7a b\u1EA1n l\xE0 m\u1ED9t ti\u1EC7n \xEDch thi\u1EBFt y\u1EBFu cho ph\xE9p b\u1EA1n kh\xE1m ph\xE1 v\xE0 tham gia v\xE0o th\u1EBF gi\u1EDBi web3 \u0111ang ph\xE1t tri\u1EC3n nhanh ch\xF3ng.`,
|
|
49
|
-
aboutScreen_ctaText: `T\xECm hi\u1EC3u th\xEAm`,
|
|
50
|
-
aboutScreen_ctaUrl: `https://ethereum.org/en/wallets/`,
|
|
51
|
-
connectorsScreen_heading: `K\u1EBFt n\u1ED1i V\xED`,
|
|
52
|
-
connectorsScreen_newcomer: `T\xF4i ch\u01B0a c\xF3 v\xED`,
|
|
53
|
-
connectorsScreen_h1: `V\xED l\xE0 g\xEC?`,
|
|
54
|
-
connectorsScreen_p: `V\xED d\xF9ng \u0111\u1EC3 g\u1EEDi, nh\u1EADn, v\xE0 l\u01B0u tr\u1EEF c\xE1c t\xE0i s\u1EA3n \u0111i\u1EC7n t\u1EED. K\u1EBFt n\u1ED1i v\u1EDBi m\u1ED9t v\xED gi\xFAp b\u1EA1n t\u01B0\u01A1ng t\xE1c v\u1EDBi c\xE1c \u1EE9ng d\u1EE5ng.`,
|
|
55
|
-
mobileConnectorsScreen_heading: `Ch\u1ECDn v\xED`,
|
|
56
|
-
scanScreen_heading: `Scan b\u1EB1ng \u0111i\u1EC7n tho\u1EA1i`,
|
|
57
|
-
scanScreen_heading_withConnector: `Qu\xE9t v\u1EDBi {{ CONNECTORNAME }}`,
|
|
58
|
-
scanScreen_tooltip_default: `M\u1EDF {{ CONNECTORNAME }} trong
|
|
59
|
-
\u0111i\u1EC7n tho\u1EA1i c\u1EE7a b\u1EA1n \u0111\u1EC3 qu\xE9t`,
|
|
60
|
-
downloadAppScreen_heading: `L\u1EA5y {{ CONNECTORNAME }}`,
|
|
61
|
-
downloadAppScreen_iosAndroid: `Qu\xE9t b\u1EB1ng camera tr\xEAn \u0111i\u1EC7n tho\u1EA1i c\u1EE7a b\u1EA1n \u0111\u1EC3 t\u1EA3i v\u1EC1 cho iOS ho\u1EB7c Android.`,
|
|
62
|
-
downloadAppScreen_ios: `Qu\xE9t b\u1EB1ng camera tr\xEAn \u0111i\u1EC7n tho\u1EA1i \u1EE7a b\u1EA1n \u0111\u1EC3 t\u1EA3i v\u1EC1 cho iOS.`,
|
|
63
|
-
downloadAppScreen_android: `Qu\xE9t b\u1EB1ng camera tr\xEAn \u0111i\u1EC7n tho\u1EA1i \u1EE7a b\u1EA1n \u0111\u1EC3 t\u1EA3i v\u1EC1 cho Android.`,
|
|
64
|
-
injectionScreen_unavailable_h1: `Tr\xECnh duy\u1EC7t kh\xF4ng \u0111\u01B0\u1EE3c h\u1ED7 tr\u1EE3`,
|
|
65
|
-
injectionScreen_unavailable_p: `\u0110\u1EC3 k\u1EBFt n\u1ED1i v\xED {{ CONNECTORSHORTNAME }} c\u1EE7a b\u1EA1n,
|
|
66
|
-
c\xE0i \u0111\u1EB7t ti\u1EC7n \xEDch tr\xEAn {{ SUGGESTEDEXTENSIONBROWSER }}.`,
|
|
67
|
-
injectionScreen_install_h1: `C\xE0i {{ CONNECTORNAME }}`,
|
|
68
|
-
injectionScreen_install_p: `\u0110\u1EC3 k\u1EBFt n\u1ED1i v\xED {{ CONNECTORSHORTNAME }},
|
|
69
|
-
c\xE0i \u0111\u1EB7t ti\u1EC7n \xEDch tr\xEAn tr\xECnh duy\u1EC7t.`,
|
|
70
|
-
injectionScreen_connecting_h1: `\u0110ang y\xEAu c\u1EA7u k\u1EBFt n\u1ED1i`,
|
|
71
|
-
injectionScreen_connecting_p: `M\u1EDF ti\u1EC7n \xEDch {{ CONNECTORSHORTNAME }}
|
|
72
|
-
tr\xEAn tr\xECnh duy\u1EC7t \u0111\u1EC3 k\u1EBFt n\u1ED1i.`,
|
|
73
|
-
injectionScreen_connecting_injected_h1: `\u0110ang y\xEAu c\u1EA7u k\u1EBFt n\u1ED1i`,
|
|
74
|
-
injectionScreen_connecting_injected_p: `\u0110\u1ED3ng \xFD y\xEAu c\u1EA7u t\u1EEB ph\xEDa v\xED c\u1EE7a b\u1EA1n \u0111\u1EC3 k\u1EBFt n\u1ED1i \u1EE9ng d\u1EE5ng n\xE0y.`,
|
|
75
|
-
injectionScreen_connected_h1: `\u0110\xE3 k\u1EBFt n\u1ED1i`,
|
|
76
|
-
injectionScreen_connected_p: `\u0110\xE3 c\xF3 th\u1EC3 \u0111\xF3ng popup`,
|
|
77
|
-
injectionScreen_rejected_h1: `\u0110\xE3 h\u1EE7y y\xEAu c\u1EA7u`,
|
|
78
|
-
injectionScreen_rejected_p: `B\u1EA1n v\u1EEBa h\u1EE7y y\xEAu c\u1EA7u.
|
|
79
|
-
Nh\u1EA5n ph\xEDa tr\xEAn \u0111\u1EC3 th\u1EED l\u1EA1i.`,
|
|
80
|
-
injectionScreen_failed_h1: `K\u1EBFt n\u1ED1i kh\xF4ng th\xE0nh c\xF4ng`,
|
|
81
|
-
injectionScreen_failed_p: `Xin l\u1ED7i, c\xF3 g\xEC \u0111\xF3 kh\xF4ng \u0111\xFAng.
|
|
82
|
-
Vui l\xF2ng th\u1EED l\u1EA1i.`,
|
|
83
|
-
injectionScreen_notconnected_h1: `\u0110\u0103ng nh\u1EADp v\xE0o {{ CONNECTORNAME }}`,
|
|
84
|
-
injectionScreen_notconnected_p: `\u0110\u1EC3 ti\u1EBFp t\u1EE5c, vui l\xF2ng \u0111\u0103ng nh\u1EADp b\u1EB1ng ti\u1EC7n \xEDch {{ CONNECTORNAME }}.`,
|
|
85
|
-
profileScreen_heading: "\u0110\xE3 k\u1EBFt n\u1ED1i",
|
|
86
|
-
switchNetworkScreen_heading: "\u0110\u1ED5i m\u1EA1ng",
|
|
87
|
-
signInWithEthereumScreen_tooltip: "B\u1EA1n ch\u01B0a \u0111\u0103ng nh\u1EADp v\xE0o \u1EE9ng d\u1EE5ng.\n**\u0110\u0103ng nh\u1EADp qua Ethereum** \u0111\u1EC3 ti\u1EBFp t\u1EE5c.",
|
|
88
|
-
signInWithEthereumScreen_signedOut_heading: "\u0110\u0103ng nh\u1EADp qua Ethereum",
|
|
89
|
-
signInWithEthereumScreen_signedOut_h1: "\u1EE8ng d\u1EE5ng n\xE0y mu\u1ED1n x\xE1c nh\u1EADn b\u1EA1n \n l\xE0 ch\u1EE7 s\u1EDF h\u1EEFu c\u1EE7a v\xED.",
|
|
90
|
-
signInWithEthereumScreen_signedOut_p: `Vui l\xF2ng k\xFD tin nh\u1EAFn y\xEAu c\u1EA7u
|
|
91
|
-
tr\xEAn v\xED c\u1EE7a b\u1EA1n \u0111\u1EC3 ti\u1EBFp t\u1EE5c.`,
|
|
92
|
-
signInWithEthereumScreen_signedOut_button: "\u0110\u0103ng nh\u1EADp",
|
|
93
|
-
signInWithEthereumScreen_signedIn_heading: "\u0110\u0103ng nh\u1EADp qua Ethereum",
|
|
94
|
-
signInWithEthereumScreen_signedIn_h1: "B\u1EA1n \u0111\xE3 x\xE1c nh\u1EADn th\xE0nh c\xF4ng.",
|
|
95
|
-
signInWithEthereumScreen_signedIn_p: `Sau khi \u0110\u0103ng xu\u1EA5t b\u1EA1n s\u1EBD c\u1EA7n
|
|
96
|
-
x\xE1c nh\u1EADn l\u1EA1i trong l\xE0n ti\u1EBFp theo.`,
|
|
97
|
-
signInWithEthereumScreen_signedIn_button: "\u0110\u0103ng xu\u1EA5t"
|
|
98
|
-
};
|
|
99
|
-
|
|
100
|
-
export { viVN as default };
|
|
101
|
-
//# sourceMappingURL=vi-VN.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"vi-VN.js","sources":["../../../../src/localizations/locales/vi-VN.ts"],"sourcesContent":["import { LocaleProps } from \"./\";\n\nconst viVN: LocaleProps = {\n connectWallet: \"Kết nối ví\",\n disconnect: \"Ngắt kết nối\",\n connected: \"Đã kết nối\",\n wrongNetwork: \"Mạng không hỗ trợ\",\n switchNetworks: \"Đổi mạng\",\n chainNetwork: \"Mạng {{ CHAIN }}\",\n copyToClipboard: \"Sao chép\",\n copyCode: \"Sao chép mã\",\n moreInformation: \"Thêm thông tin\",\n back: \"Quay lại\",\n close: \"Đóng\",\n or: \"hoặc\",\n more: \"Thêm\",\n tryAgain: \"Thử lại\",\n tryAgainQuestion: \"Thử lại?\",\n dontHaveTheApp: \"Không có app?\",\n scanTheQRCode: \"Quét mã QR\",\n useModal: \"Dùng Modal\",\n installTheExtension: \"Cài tiện ích\",\n getWalletName: \"Lấy {{ CONNECTORNAME }}\",\n otherWallets: \"Các ví khác\",\n learnMore: \"Xem thêm\",\n getWallet: \"Tạo một ví\",\n approveInWallet: \"Cấp quyền trong ví\",\n confirmInWallet: \"Xác nhận trong ví\",\n awaitingConfirmation: \"Đang chờ xác nhận\",\n signIn: \"Đăng nhập\",\n signOut: \"Đăng xuất\",\n signedIn: \"Đã đăng nhập\",\n signedOut: \"Đã đăng xuất\",\n walletNotConnected: \"Chưa kết nối ví\",\n\n warnings_walletSwitchingUnsupported: `Ví của bạn không hỗ trợ đổi mạng từ ứng dụng.`,\n warnings_walletSwitchingUnsupportedResolve: `Hãy thử đổi mạng từ phía ví của bạn.`,\n warnings_chainUnsupported: `Ứng dụng này không hỗ trợ mạng hiện tại.`,\n warnings_chainUnsupportedResolve: `Đổi hoặc ngắt kết nối để tiếp tục.`,\n\n onboardingScreen_heading: `Tạo một ví`,\n onboardingScreen_h1: `Bắt đầu khám khá Web3`,\n onboardingScreen_p: `Ví của bạn là cổng giao tiếp mọi thứ trên Ethereum, công nghệ tuyệt vời giúp khám phá Web3.`,\n onboardingScreen_ctaText: `Chọn ví đầu tiên của bạn`,\n onboardingScreen_ctaUrl: `https://ethereum.org/en/wallets/find-wallet/`,\n\n aboutScreen_heading: `Giới thiệu các ví`,\n aboutScreen_a_h1: `Cho tài sản số của bạn`,\n aboutScreen_a_p: `Các ví để bạn gửi, nhận, lưu trữ, và tương tác với các tài sản điện tử như NFTs và các loại tiền Ethereum khác.`,\n aboutScreen_b_h1: `Một cách tốt hơn để đăng nhập`,\n aboutScreen_b_p: `Với các ứng dụng hiện đại, ví của bạn có thể dùng để đăng nhập dễ dàng thay vì phải nhớ tài khoản và mật khẩu.`,\n aboutScreen_c_h1: `Khám phá thế giới Web3`,\n aboutScreen_c_p: `Ví của bạn là một tiện ích thiết yếu cho phép bạn khám phá và tham gia vào thế giới web3 đang phát triển nhanh chóng.`,\n aboutScreen_ctaText: `Tìm hiểu thêm`,\n aboutScreen_ctaUrl: `https://ethereum.org/en/wallets/`,\n\n connectorsScreen_heading: `Kết nối Ví`,\n connectorsScreen_newcomer: `Tôi chưa có ví`,\n connectorsScreen_h1: `Ví là gì?`,\n connectorsScreen_p: `Ví dùng để gửi, nhận, và lưu trữ các tài sản điện tử. Kết nối với một ví giúp bạn tương tác với các ứng dụng.`,\n\n mobileConnectorsScreen_heading: `Chọn ví`,\n\n scanScreen_heading: `Scan bằng điện thoại`,\n scanScreen_heading_withConnector: `Quét với {{ CONNECTORNAME }}`,\n scanScreen_tooltip_default: `Mở {{ CONNECTORNAME }} trong \\nđiện thoại của bạn để quét`,\n\n downloadAppScreen_heading: `Lấy {{ CONNECTORNAME }}`,\n downloadAppScreen_iosAndroid: `Quét bằng camera trên điện thoại của bạn để tải về cho iOS hoặc Android.`,\n downloadAppScreen_ios: `Quét bằng camera trên điện thoại ủa bạn để tải về cho iOS.`,\n downloadAppScreen_android: `Quét bằng camera trên điện thoại ủa bạn để tải về cho Android.`,\n\n injectionScreen_unavailable_h1: `Trình duyệt không được hỗ trợ`,\n injectionScreen_unavailable_p: `Để kết nối ví {{ CONNECTORSHORTNAME }} của bạn,\\ncài đặt tiện ích trên {{ SUGGESTEDEXTENSIONBROWSER }}.`,\n\n injectionScreen_install_h1: `Cài {{ CONNECTORNAME }}`,\n injectionScreen_install_p: `Để kết nối ví {{ CONNECTORSHORTNAME }},\\ncài đặt tiện ích trên trình duyệt.`,\n\n injectionScreen_connecting_h1: `Đang yêu cầu kết nối`,\n injectionScreen_connecting_p: `Mở tiện ích {{ CONNECTORSHORTNAME }} \\n trên trình duyệt để kết nối.`,\n injectionScreen_connecting_injected_h1: `Đang yêu cầu kết nối`,\n injectionScreen_connecting_injected_p: `Đồng ý yêu cầu từ phía ví của bạn để kết nối ứng dụng này.`,\n\n injectionScreen_connected_h1: `Đã kết nối`,\n injectionScreen_connected_p: `Đã có thể đóng popup`,\n\n injectionScreen_rejected_h1: `Đã hủy yêu cầu`,\n injectionScreen_rejected_p: `Bạn vừa hủy yêu cầu.\\nNhấn phía trên để thử lại.`,\n\n injectionScreen_failed_h1: `Kết nối không thành công`,\n injectionScreen_failed_p: `Xin lỗi, có gì đó không đúng.\\nVui lòng thử lại.`,\n\n injectionScreen_notconnected_h1: `Đăng nhập vào {{ CONNECTORNAME }}`,\n injectionScreen_notconnected_p: `Để tiếp tục, vui lòng đăng nhập bằng tiện ích {{ CONNECTORNAME }}.`,\n\n profileScreen_heading: \"Đã kết nối\",\n\n switchNetworkScreen_heading: \"Đổi mạng\",\n\n signInWithEthereumScreen_tooltip:\n \"Bạn chưa đăng nhập vào ứng dụng.\\n**Đăng nhập qua Ethereum** để tiếp tục.\",\n\n signInWithEthereumScreen_signedOut_heading: \"Đăng nhập qua Ethereum\",\n signInWithEthereumScreen_signedOut_h1:\n \"Ứng dụng này muốn xác nhận bạn \\n là chủ sở hữu của ví.\",\n signInWithEthereumScreen_signedOut_p: `Vui lòng ký tin nhắn yêu cầu \\n trên ví của bạn để tiếp tục.`,\n signInWithEthereumScreen_signedOut_button: \"Đăng nhập\",\n\n signInWithEthereumScreen_signedIn_heading: \"Đăng nhập qua Ethereum\",\n signInWithEthereumScreen_signedIn_h1: \"Bạn đã xác nhận thành công.\",\n signInWithEthereumScreen_signedIn_p: `Sau khi Đăng xuất bạn sẽ cần \\n xác nhận lại trong làn tiếp theo.`,\n signInWithEthereumScreen_signedIn_button: \"Đăng xuất\",\n};\n\nexport default viVN;\n"],"names":[],"mappings":"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"}
|
|
@@ -1,93 +0,0 @@
|
|
|
1
|
-
const zhCN = {
|
|
2
|
-
connectWallet: "\u7ED1\u5B9A\u94B1\u5305",
|
|
3
|
-
disconnect: "\u89E3\u9664\u7ED1\u5B9A",
|
|
4
|
-
connected: "\u5DF2\u7ED1\u5B9A",
|
|
5
|
-
wrongNetwork: "\u9519\u8BEF\u7F51\u7EDC",
|
|
6
|
-
switchNetworks: "\u5207\u6362\u7F51\u7EDC",
|
|
7
|
-
chainNetwork: "{{ CHAIN }}\u7F51\u7EDC",
|
|
8
|
-
copyToClipboard: "\u590D\u5236\u5230\u526A\u8D34\u677F",
|
|
9
|
-
copyCode: "\u590D\u5236\u4EE3\u7801",
|
|
10
|
-
moreInformation: "\u66F4\u591A\u4FE1\u606F",
|
|
11
|
-
back: "\u8FD4\u56DE",
|
|
12
|
-
close: "\u5173\u95ED",
|
|
13
|
-
or: "\u6216",
|
|
14
|
-
more: "\u66F4\u591A",
|
|
15
|
-
tryAgain: "\u91CD\u8BD5",
|
|
16
|
-
tryAgainQuestion: "\u91CD\u8BD5\uFF1F",
|
|
17
|
-
dontHaveTheApp: "\u6CA1\u6709\u8BE5\u5E94\u7528\uFF1F",
|
|
18
|
-
scanTheQRCode: "\u626B\u63CF\u4E8C\u7EF4\u7801",
|
|
19
|
-
useModal: "\u4F7F\u7528\u6A21\u6001\u7A97",
|
|
20
|
-
installTheExtension: "\u5B89\u88C5\u6269\u5C55\u7A0B\u5E8F",
|
|
21
|
-
getWalletName: "\u83B7\u53D6{{ CONNECTORNAME }}",
|
|
22
|
-
otherWallets: "\u5176\u4ED6\u94B1\u5305",
|
|
23
|
-
learnMore: "\u4E86\u89E3\u66F4\u591A",
|
|
24
|
-
getWallet: "\u83B7\u53D6\u94B1\u5305",
|
|
25
|
-
approveInWallet: "\u5728\u94B1\u5305\u4E2D\u6279\u51C6",
|
|
26
|
-
confirmInWallet: "\u5728\u94B1\u5305\u4E2D\u786E\u8BA4",
|
|
27
|
-
awaitingConfirmation: "\u7B49\u5F85\u786E\u8BA4",
|
|
28
|
-
signIn: "\u767B\u5F55",
|
|
29
|
-
signOut: "\u767B\u51FA",
|
|
30
|
-
signedIn: "\u5DF2\u767B\u5F55",
|
|
31
|
-
signedOut: "\u5DF2\u767B\u51FA",
|
|
32
|
-
walletNotConnected: "\u94B1\u5305\u672A\u7ED1\u5B9A",
|
|
33
|
-
warnings_walletSwitchingUnsupported: `\u60A8\u7684\u94B1\u5305\u4E0D\u652F\u6301\u4ECE\u6B64\u5E94\u7528\u5207\u6362\u7F51\u7EDC\u3002`,
|
|
34
|
-
warnings_walletSwitchingUnsupportedResolve: `\u8BF7\u5C1D\u8BD5\u4ECE\u94B1\u5305\u4E2D\u5207\u6362\u7F51\u7EDC\u3002`,
|
|
35
|
-
warnings_chainUnsupported: `\u6B64\u5E94\u7528\u4E0D\u652F\u6301\u5F53\u524D\u8FDE\u63A5\u7684\u7F51\u7EDC\u3002`,
|
|
36
|
-
warnings_chainUnsupportedResolve: `\u8BF7\u5207\u6362\u7F51\u7EDC\u6216\u65AD\u5F00\u8FDE\u63A5\u4EE5\u7EE7\u7EED\u3002`,
|
|
37
|
-
onboardingScreen_heading: `\u83B7\u53D6\u94B1\u5305`,
|
|
38
|
-
onboardingScreen_h1: `\u5F00\u59CB\u63A2\u7D22 Web3`,
|
|
39
|
-
onboardingScreen_p: `\u60A8\u7684\u94B1\u5305\u662F\u901A\u5F80\u4EE5\u592A\u574A\u7684\u4E00\u6247\u5927\u95E8\uFF0C\u800C\u4EE5\u592A\u574A\u662F\u63A2\u7D22 Web3 \u7684\u4E00\u9879\u795E\u5947\u6280\u672F\u3002`,
|
|
40
|
-
onboardingScreen_ctaText: `\u9009\u62E9\u60A8\u7684\u7B2C\u4E00\u94B1\u5305`,
|
|
41
|
-
onboardingScreen_ctaUrl: `https://ethereum.org/zh/wallets/find-wallet/`,
|
|
42
|
-
aboutScreen_heading: `\u5173\u4E8E\u94B1\u5305`,
|
|
43
|
-
aboutScreen_a_h1: `\u5BF9\u4E8E\u60A8\u7684\u6570\u5B57\u8D44\u4EA7`,
|
|
44
|
-
aboutScreen_a_p: `\u6709\u4E86\u94B1\u5305\uFF0C\u60A8\u53EF\u4EE5\u53D1\u9001\u3001\u63A5\u6536\u3001\u5B58\u50A8\u6570\u5B57\u8D44\u4EA7\u53CA\u4F7F\u7528\u6570\u5B57\u8D44\u4EA7\u8FDB\u884C\u4EA4\u4E92\uFF0C\u4F8B\u5982 NFT \u548C\u5176\u4ED6\u4EE5\u592A\u574A\u901A\u8BC1\u7B49\u3002`,
|
|
45
|
-
aboutScreen_b_h1: `\u66F4\u597D\u7684\u767B\u5F55\u65B9\u5F0F`,
|
|
46
|
-
aboutScreen_b_p: `\u4F7F\u7528\u73B0\u4EE3\u5E94\u7528\uFF0C\u60A8\u7684\u94B1\u5305\u53EF\u4EE5\u7528\u4F5C\u7B80\u4FBF\u7684\u767B\u5F55\u65B9\u6CD5\uFF0C\u800C\u4E0D\u5FC5\u8BB0\u4F4F\u5BC6\u7801\u3002`,
|
|
47
|
-
aboutScreen_c_h1: `\u63A2\u7D22 Web3 \u4E16\u754C`,
|
|
48
|
-
aboutScreen_c_p: `\u60A8\u7684\u94B1\u5305\u662F\u4E00\u4E2A\u91CD\u8981\u7684\u5DE5\u5177\uFF0C\u53EF\u4EE5\u8BA9\u60A8\u63A2\u7D22\u5E76\u53C2\u4E0E\u5230\u5FEB\u901F\u53D1\u5C55\u7684 Web3 \u4E16\u754C\u3002`,
|
|
49
|
-
aboutScreen_ctaText: `\u4E86\u89E3\u66F4\u591A`,
|
|
50
|
-
aboutScreen_ctaUrl: `https://ethereum.org/zh/wallets/`,
|
|
51
|
-
connectorsScreen_heading: `\u7ED1\u5B9A\u94B1\u5305`,
|
|
52
|
-
connectorsScreen_newcomer: `\u6211\u6CA1\u6709\u94B1\u5305`,
|
|
53
|
-
connectorsScreen_h1: `\u4EC0\u4E48\u662F\u94B1\u5305\uFF1F`,
|
|
54
|
-
connectorsScreen_p: `\u94B1\u5305\u53EF\u7528\u4E8E\u53D1\u9001\u3001\u63A5\u6536\u548C\u5B58\u50A8\u6570\u5B57\u8D44\u4EA7\u3002\u901A\u8FC7\u7ED1\u5B9A\u94B1\u5305\uFF0C\u60A8\u53EF\u4EE5\u4E0E\u5E94\u7528\u8FDB\u884C\u4EA4\u4E92\u3002`,
|
|
55
|
-
mobileConnectorsScreen_heading: `\u9009\u62E9\u94B1\u5305`,
|
|
56
|
-
scanScreen_heading: `\u624B\u673A\u626B\u63CF`,
|
|
57
|
-
scanScreen_heading_withConnector: `\u624B\u673A\u626B\u63CF{{ CONNECTORNAME }}`,
|
|
58
|
-
scanScreen_tooltip_default: `\u6253\u5F00\u60A8\u624B\u673A\u4E0A\u7684{{ CONNECTORNAME }} \u8FDB\u884C\u626B\u63CF`,
|
|
59
|
-
downloadAppScreen_heading: `\u83B7\u53D6{{ CONNECTORNAME }}`,
|
|
60
|
-
downloadAppScreen_iosAndroid: `\u4F7F\u7528\u624B\u673A\u76F8\u673A\u626B\u63CF\u4EE5\u4E0B\u8F7D iOS \u6216 Android \u5E94\u7528\u3002`,
|
|
61
|
-
downloadAppScreen_ios: `\u4F7F\u7528\u624B\u673A\u76F8\u673A\u626B\u63CF\u4EE5\u4E0B\u8F7D iOS \u5E94\u7528\u3002`,
|
|
62
|
-
downloadAppScreen_android: `\u4F7F\u7528\u624B\u673A\u76F8\u673A\u626B\u63CF\u4EE5\u4E0B\u8F7D Android \u5E94\u7528\u3002`,
|
|
63
|
-
injectionScreen_unavailable_h1: `\u4E0D\u652F\u6301\u7684\u6D4F\u89C8\u5668`,
|
|
64
|
-
injectionScreen_unavailable_p: `\u8981\u7ED1\u5B9A\u60A8\u7684{{ CONNECTORSHORTNAME }}\u94B1\u5305\uFF0C\u8BF7\u5728{{ SUGGESTEDEXTENSIONBROWSER }}\u4E0A\u5B89\u88C5\u6B64\u6269\u5C55\u7A0B\u5E8F\u3002`,
|
|
65
|
-
injectionScreen_install_h1: `\u5B89\u88C5{{ CONNECTORNAME }}`,
|
|
66
|
-
injectionScreen_install_p: `\u8981\u7ED1\u5B9A\u60A8\u7684{{ CONNECTORSHORTNAME }}\u94B1\u5305\uFF0C\u8BF7\u5B89\u88C5\u6B64\u6D4F\u89C8\u5668\u6269\u5C55\u7A0B\u5E8F\u3002`,
|
|
67
|
-
injectionScreen_connecting_h1: `\u8BF7\u6C42\u7ED1\u5B9A`,
|
|
68
|
-
injectionScreen_connecting_p: `\u6253\u5F00{{ CONNECTORSHORTNAME }}\u6D4F\u89C8\u5668 \u6269\u5C55\u7A0B\u5E8F\u4EE5\u7ED1\u5B9A\u60A8\u7684\u94B1\u5305\u3002`,
|
|
69
|
-
injectionScreen_connecting_injected_h1: `\u8BF7\u6C42\u7ED1\u5B9A`,
|
|
70
|
-
injectionScreen_connecting_injected_p: `\u901A\u8FC7\u60A8\u7684\u94B1\u5305\u63A5\u53D7\u8BF7\u6C42\uFF0C\u4EE5\u7ED1\u5B9A\u5230\u6B64\u5E94\u7528\u3002`,
|
|
71
|
-
injectionScreen_connected_h1: `\u5DF2\u7ED1\u5B9A`,
|
|
72
|
-
injectionScreen_connected_p: `\u73B0\u5728\u53EF\u4EE5\u5173\u95ED\u6B64\u5F39\u7A97`,
|
|
73
|
-
injectionScreen_rejected_h1: `\u8BF7\u6C42\u5DF2\u53D6\u6D88`,
|
|
74
|
-
injectionScreen_rejected_p: `\u60A8\u5DF2\u53D6\u6D88\u8BF7\u6C42\u3002\u70B9\u51FB\u4E0A\u9762\u53EF\u91CD\u8BD5\u3002`,
|
|
75
|
-
injectionScreen_failed_h1: `\u7ED1\u5B9A\u5931\u8D25`,
|
|
76
|
-
injectionScreen_failed_p: `\u62B1\u6B49\uFF0C\u53D1\u751F\u9519\u8BEF\u3002\u8BF7\u5C1D\u8BD5\u91CD\u65B0\u7ED1\u5B9A\u3002`,
|
|
77
|
-
injectionScreen_notconnected_h1: `\u767B\u5F55{{ CONNECTORNAME }}`,
|
|
78
|
-
injectionScreen_notconnected_p: `\u8981\u7EE7\u7EED\uFF0C\u8BF7\u767B\u5F55\u5230\u60A8\u7684{{ CONNECTORNAME }}\u6269\u5C55\u7A0B\u5E8F\u3002`,
|
|
79
|
-
profileScreen_heading: "\u5DF2\u7ED1\u5B9A",
|
|
80
|
-
switchNetworkScreen_heading: "\u5207\u6362\u7F51\u7EDC",
|
|
81
|
-
signInWithEthereumScreen_tooltip: "\u60A8\u5C1A\u672A\u767B\u5F55\u5230\u6B64\u5E94\u7528\u3002\n\u8BF7\u9009\u62E9**\u4F7F\u7528\u4EE5\u592A\u574A\u767B\u5F55**\u4EE5\u7EE7\u7EED\u3002",
|
|
82
|
-
signInWithEthereumScreen_signedOut_heading: "\u4F7F\u7528\u4EE5\u592A\u574A\u767B\u5F55",
|
|
83
|
-
signInWithEthereumScreen_signedOut_h1: "\u6B64\u5E94\u7528\u5E0C\u671B\u9A8C\u8BC1\u60A8\u662F \u6B64\u94B1\u5305\u7684\u6240\u6709\u8005\u3002",
|
|
84
|
-
signInWithEthereumScreen_signedOut_p: `\u8BF7\u7B7E\u7F72\u94B1\u5305\u4E2D\u7684\u6D88\u606F\u8BF7\u6C42 \u4EE5\u7EE7\u7EED\u3002`,
|
|
85
|
-
signInWithEthereumScreen_signedOut_button: "\u767B\u5F55",
|
|
86
|
-
signInWithEthereumScreen_signedIn_heading: "\u5DF2\u4F7F\u7528\u4EE5\u592A\u574A\u767B\u5F55",
|
|
87
|
-
signInWithEthereumScreen_signedIn_h1: "\u60A8\u5DF2\u6210\u529F\u9A8C\u8BC1\u81EA\u5DF1 \u662F\u6B64\u94B1\u5305\u7684\u6240\u6709\u8005\u3002",
|
|
88
|
-
signInWithEthereumScreen_signedIn_p: `\u767B\u51FA\u540E\uFF0C\u5C06\u6765\u60A8\u8FD8\u9700\u8981 \u518D\u6B21\u8FDB\u884C\u8EAB\u4EFD\u9A8C\u8BC1\u3002`,
|
|
89
|
-
signInWithEthereumScreen_signedIn_button: "\u767B\u51FA"
|
|
90
|
-
};
|
|
91
|
-
|
|
92
|
-
export { zhCN as default };
|
|
93
|
-
//# sourceMappingURL=zh-CN.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"zh-CN.js","sources":["../../../../src/localizations/locales/zh-CN.ts"],"sourcesContent":["import { LocaleProps } from \"./\";\n\nconst zhCN: LocaleProps = {\n connectWallet: \"绑定钱包\",\n disconnect: \"解除绑定\",\n connected: \"已绑定\",\n wrongNetwork: \"错误网络\",\n switchNetworks: \"切换网络\",\n chainNetwork: \"{{ CHAIN }}网络\",\n copyToClipboard: \"复制到剪贴板\",\n copyCode: \"复制代码\",\n moreInformation: \"更多信息\",\n back: \"返回\",\n close: \"关闭\",\n or: \"或\",\n more: \"更多\",\n tryAgain: \"重试\",\n tryAgainQuestion: \"重试?\",\n dontHaveTheApp: \"没有该应用?\",\n scanTheQRCode: \"扫描二维码\",\n useModal: \"使用模态窗\",\n installTheExtension: \"安装扩展程序\",\n getWalletName: \"获取{{ CONNECTORNAME }}\",\n otherWallets: \"其他钱包\",\n learnMore: \"了解更多\",\n getWallet: \"获取钱包\",\n approveInWallet: \"在钱包中批准\",\n confirmInWallet: \"在钱包中确认\",\n awaitingConfirmation: \"等待确认\",\n signIn: \"登录\",\n signOut: \"登出\",\n signedIn: \"已登录\",\n signedOut: \"已登出\",\n walletNotConnected: \"钱包未绑定\",\n\n warnings_walletSwitchingUnsupported: `您的钱包不支持从此应用切换网络。`,\n warnings_walletSwitchingUnsupportedResolve: `请尝试从钱包中切换网络。`,\n warnings_chainUnsupported: `此应用不支持当前连接的网络。`,\n warnings_chainUnsupportedResolve: `请切换网络或断开连接以继续。`,\n\n onboardingScreen_heading: `获取钱包`,\n onboardingScreen_h1: `开始探索 Web3`,\n onboardingScreen_p: `您的钱包是通往以太坊的一扇大门,而以太坊是探索 Web3 的一项神奇技术。`,\n onboardingScreen_ctaText: `选择您的第一钱包`,\n onboardingScreen_ctaUrl: `https://ethereum.org/zh/wallets/find-wallet/`,\n\n aboutScreen_heading: `关于钱包`,\n aboutScreen_a_h1: `对于您的数字资产`,\n aboutScreen_a_p: `有了钱包,您可以发送、接收、存储数字资产及使用数字资产进行交互,例如 NFT 和其他以太坊通证等。`,\n aboutScreen_b_h1: `更好的登录方式`,\n aboutScreen_b_p: `使用现代应用,您的钱包可以用作简便的登录方法,而不必记住密码。`,\n aboutScreen_c_h1: `探索 Web3 世界`,\n aboutScreen_c_p: `您的钱包是一个重要的工具,可以让您探索并参与到快速发展的 Web3 世界。`,\n aboutScreen_ctaText: `了解更多`,\n aboutScreen_ctaUrl: `https://ethereum.org/zh/wallets/`,\n\n connectorsScreen_heading: `绑定钱包`,\n connectorsScreen_newcomer: `我没有钱包`,\n connectorsScreen_h1: `什么是钱包?`,\n connectorsScreen_p: `钱包可用于发送、接收和存储数字资产。通过绑定钱包,您可以与应用进行交互。`,\n\n mobileConnectorsScreen_heading: `选择钱包`,\n\n scanScreen_heading: `手机扫描`,\n scanScreen_heading_withConnector: `手机扫描{{ CONNECTORNAME }}`,\n scanScreen_tooltip_default: `打开您手机上的{{ CONNECTORNAME }} 进行扫描`,\n\n downloadAppScreen_heading: `获取{{ CONNECTORNAME }}`,\n downloadAppScreen_iosAndroid: `使用手机相机扫描以下载 iOS 或 Android 应用。`,\n downloadAppScreen_ios: `使用手机相机扫描以下载 iOS 应用。`,\n downloadAppScreen_android: `使用手机相机扫描以下载 Android 应用。`,\n\n injectionScreen_unavailable_h1: `不支持的浏览器`,\n injectionScreen_unavailable_p: `要绑定您的{{ CONNECTORSHORTNAME }}钱包,请在{{ SUGGESTEDEXTENSIONBROWSER }}上安装此扩展程序。`,\n\n injectionScreen_install_h1: `安装{{ CONNECTORNAME }}`,\n injectionScreen_install_p: `要绑定您的{{ CONNECTORSHORTNAME }}钱包,请安装此浏览器扩展程序。`,\n\n injectionScreen_connecting_h1: `请求绑定`,\n injectionScreen_connecting_p: `打开{{ CONNECTORSHORTNAME }}浏览器 扩展程序以绑定您的钱包。`,\n injectionScreen_connecting_injected_h1: `请求绑定`,\n injectionScreen_connecting_injected_p: `通过您的钱包接受请求,以绑定到此应用。`,\n\n injectionScreen_connected_h1: `已绑定`,\n injectionScreen_connected_p: `现在可以关闭此弹窗`,\n\n injectionScreen_rejected_h1: `请求已取消`,\n injectionScreen_rejected_p: `您已取消请求。点击上面可重试。`,\n\n injectionScreen_failed_h1: `绑定失败`,\n injectionScreen_failed_p: `抱歉,发生错误。请尝试重新绑定。`,\n\n injectionScreen_notconnected_h1: `登录{{ CONNECTORNAME }}`,\n injectionScreen_notconnected_p: `要继续,请登录到您的{{ CONNECTORNAME }}扩展程序。`,\n\n profileScreen_heading: \"已绑定\",\n\n switchNetworkScreen_heading: \"切换网络\",\n\n signInWithEthereumScreen_tooltip:\n \"您尚未登录到此应用。\\n请选择**使用以太坊登录**以继续。\",\n signInWithEthereumScreen_signedOut_heading: \"使用以太坊登录\",\n signInWithEthereumScreen_signedOut_h1: \"此应用希望验证您是 此钱包的所有者。\",\n signInWithEthereumScreen_signedOut_p: `请签署钱包中的消息请求 以继续。`,\n signInWithEthereumScreen_signedOut_button: \"登录\",\n\n signInWithEthereumScreen_signedIn_heading: \"已使用以太坊登录\",\n signInWithEthereumScreen_signedIn_h1: \"您已成功验证自己 是此钱包的所有者。\",\n signInWithEthereumScreen_signedIn_p: `登出后,将来您还需要 再次进行身份验证。`,\n signInWithEthereumScreen_signedIn_button: \"登出\",\n};\n\nexport default zhCN;\n"],"names":[],"mappings":"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"}
|
|
@@ -1,270 +0,0 @@
|
|
|
1
|
-
import { assert, readDaimoPayOrderID, getOrderDestChainId, DaimoPayOrderMode } from '@daimo/pay-common';
|
|
2
|
-
import { formatUnits, getAddress } from 'viem';
|
|
3
|
-
import { startPolling } from '../utils/polling.js';
|
|
4
|
-
|
|
5
|
-
const pollers = /* @__PURE__ */ new Map();
|
|
6
|
-
function stopPoller(key) {
|
|
7
|
-
pollers.get(key)?.();
|
|
8
|
-
pollers.delete(key);
|
|
9
|
-
}
|
|
10
|
-
function attachPaymentEffectHandlers(store, trpc, log, debugMode) {
|
|
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, debugMode);
|
|
18
|
-
}
|
|
19
|
-
if (next.type === "payment_started") {
|
|
20
|
-
pollRefreshOrder(store, trpc, next.order.id, debugMode);
|
|
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}`);
|
|
28
|
-
}
|
|
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}`);
|
|
45
|
-
}
|
|
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;
|
|
79
|
-
}
|
|
80
|
-
async function pollFindPayments(store, trpc, orderId, debugMode) {
|
|
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
|
-
debugMode
|
|
97
|
-
});
|
|
98
|
-
pollers.set(key, stopPolling);
|
|
99
|
-
}
|
|
100
|
-
async function pollRefreshOrder(store, trpc, orderId, debugMode) {
|
|
101
|
-
const key = `${"refresh_order" /* REFRESH_ORDER */}:${orderId}`;
|
|
102
|
-
const stopPolling = startPolling({
|
|
103
|
-
key,
|
|
104
|
-
intervalMs: 300,
|
|
105
|
-
pollFn: () => trpc.getOrder.query({ id: orderId.toString() }),
|
|
106
|
-
onResult: (res) => {
|
|
107
|
-
const state = store.getState();
|
|
108
|
-
if (state.type !== "payment_started") {
|
|
109
|
-
stopPolling();
|
|
110
|
-
return;
|
|
111
|
-
}
|
|
112
|
-
const order = res.order;
|
|
113
|
-
store.dispatch({ type: "order_refreshed", order });
|
|
114
|
-
},
|
|
115
|
-
onError: () => {
|
|
116
|
-
},
|
|
117
|
-
debugMode
|
|
118
|
-
});
|
|
119
|
-
pollers.set(key, stopPolling);
|
|
120
|
-
}
|
|
121
|
-
async function runSetPayParamsEffects(store, trpc, event) {
|
|
122
|
-
const payParams = event.payParams;
|
|
123
|
-
const toUnits = payParams.toUnits == null ? "0" : payParams.toUnits;
|
|
124
|
-
assert(payParams.appId.length > 0, "PayParams: appId required");
|
|
125
|
-
const isDepositFlow = payParams.toUnits == null;
|
|
126
|
-
assert(
|
|
127
|
-
!isDepositFlow || payParams.externalId == null,
|
|
128
|
-
"PayParams: externalId unsupported in deposit mode"
|
|
129
|
-
);
|
|
130
|
-
try {
|
|
131
|
-
const orderPreview = await trpc.previewOrder.query({
|
|
132
|
-
appId: payParams.appId,
|
|
133
|
-
toChain: payParams.toChain,
|
|
134
|
-
toToken: payParams.toToken,
|
|
135
|
-
toUnits,
|
|
136
|
-
toAddress: payParams.toAddress,
|
|
137
|
-
toCallData: payParams.toCallData,
|
|
138
|
-
isAmountEditable: payParams.toUnits == null,
|
|
139
|
-
metadata: {
|
|
140
|
-
intent: payParams.intent ?? "Pay",
|
|
141
|
-
items: [],
|
|
142
|
-
payer: {
|
|
143
|
-
paymentOptions: payParams.paymentOptions,
|
|
144
|
-
preferredChains: payParams.preferredChains,
|
|
145
|
-
preferredTokens: payParams.preferredTokens,
|
|
146
|
-
evmChains: payParams.evmChains,
|
|
147
|
-
passthroughTokens: payParams.passthroughTokens
|
|
148
|
-
}
|
|
149
|
-
},
|
|
150
|
-
externalId: payParams.externalId,
|
|
151
|
-
userMetadata: payParams.metadata,
|
|
152
|
-
refundAddress: payParams.refundAddress
|
|
153
|
-
});
|
|
154
|
-
store.dispatch({
|
|
155
|
-
type: "preview_generated",
|
|
156
|
-
// TODO: Properly type this and fix hacky type casting
|
|
157
|
-
order: orderPreview,
|
|
158
|
-
payParamsData: {
|
|
159
|
-
appId: payParams.appId
|
|
160
|
-
}
|
|
161
|
-
});
|
|
162
|
-
} catch (e) {
|
|
163
|
-
store.dispatch({ type: "error", order: void 0, message: e.message });
|
|
164
|
-
}
|
|
165
|
-
}
|
|
166
|
-
async function runSetPayIdEffects(store, trpc, event) {
|
|
167
|
-
try {
|
|
168
|
-
const { order } = await trpc.getOrder.query({
|
|
169
|
-
id: readDaimoPayOrderID(event.payId).toString()
|
|
170
|
-
});
|
|
171
|
-
store.dispatch({
|
|
172
|
-
type: "order_loaded",
|
|
173
|
-
order
|
|
174
|
-
});
|
|
175
|
-
} catch (e) {
|
|
176
|
-
store.dispatch({ type: "error", order: void 0, message: e.message });
|
|
177
|
-
}
|
|
178
|
-
}
|
|
179
|
-
async function runHydratePayParamsEffects(store, trpc, prev, event) {
|
|
180
|
-
const order = prev.order;
|
|
181
|
-
const toUnits = formatUnits(
|
|
182
|
-
BigInt(order.destFinalCallTokenAmount.amount),
|
|
183
|
-
order.destFinalCallTokenAmount.token.decimals
|
|
184
|
-
);
|
|
185
|
-
try {
|
|
186
|
-
const { hydratedOrder } = await trpc.createOrder.mutate({
|
|
187
|
-
appId: prev.payParamsData.appId,
|
|
188
|
-
paymentInput: {
|
|
189
|
-
id: order.id.toString(),
|
|
190
|
-
toChain: getOrderDestChainId(order),
|
|
191
|
-
toToken: getAddress(order.destFinalCallTokenAmount.token.token),
|
|
192
|
-
toUnits,
|
|
193
|
-
toAddress: getAddress(order.destFinalCall.to),
|
|
194
|
-
toCallData: order.destFinalCall.data,
|
|
195
|
-
isAmountEditable: order.mode === DaimoPayOrderMode.CHOOSE_AMOUNT,
|
|
196
|
-
metadata: order.metadata,
|
|
197
|
-
userMetadata: order.userMetadata,
|
|
198
|
-
externalId: order.externalId ?? void 0
|
|
199
|
-
},
|
|
200
|
-
// Prefer the refund address passed to this function, if specified. This
|
|
201
|
-
// is for cases where the user pays from an EOA. Otherwise, use the refund
|
|
202
|
-
// address specified by the dev.
|
|
203
|
-
refundAddress: event.refundAddress ?? prev.order.refundAddr ?? void 0
|
|
204
|
-
});
|
|
205
|
-
store.dispatch({
|
|
206
|
-
type: "order_hydrated",
|
|
207
|
-
order: hydratedOrder
|
|
208
|
-
});
|
|
209
|
-
} catch (e) {
|
|
210
|
-
store.dispatch({ type: "error", order: prev.order, message: e.message });
|
|
211
|
-
}
|
|
212
|
-
}
|
|
213
|
-
async function runHydratePayIdEffects(store, trpc, prev, event) {
|
|
214
|
-
const order = prev.order;
|
|
215
|
-
try {
|
|
216
|
-
const { hydratedOrder } = await trpc.hydrateOrder.query({
|
|
217
|
-
id: order.id.toString(),
|
|
218
|
-
refundAddress: event.refundAddress
|
|
219
|
-
});
|
|
220
|
-
store.dispatch({
|
|
221
|
-
type: "order_hydrated",
|
|
222
|
-
order: hydratedOrder
|
|
223
|
-
});
|
|
224
|
-
} catch (e) {
|
|
225
|
-
store.dispatch({ type: "error", order: prev.order, message: e.message });
|
|
226
|
-
}
|
|
227
|
-
}
|
|
228
|
-
async function runPaySourceEffects(store, trpc, prev) {
|
|
229
|
-
const orderId = prev.order.id;
|
|
230
|
-
try {
|
|
231
|
-
const order = await trpc.findOrderPayments.query({
|
|
232
|
-
orderId: orderId.toString()
|
|
233
|
-
});
|
|
234
|
-
store.dispatch({ type: "order_refreshed", order });
|
|
235
|
-
} catch (e) {
|
|
236
|
-
store.dispatch({ type: "error", order: prev.order, message: e.message });
|
|
237
|
-
}
|
|
238
|
-
}
|
|
239
|
-
async function runPayEthereumSourceEffects(store, trpc, prev, event) {
|
|
240
|
-
const orderId = prev.order.id;
|
|
241
|
-
try {
|
|
242
|
-
const order = await trpc.processSourcePayment.mutate({
|
|
243
|
-
orderId: orderId.toString(),
|
|
244
|
-
sourceInitiateTxHash: event.paymentTxHash,
|
|
245
|
-
sourceChainId: event.sourceChainId,
|
|
246
|
-
sourceFulfillerAddr: event.payerAddress,
|
|
247
|
-
sourceToken: event.sourceToken,
|
|
248
|
-
sourceAmount: event.sourceAmount.toString()
|
|
249
|
-
});
|
|
250
|
-
store.dispatch({ type: "payment_verified", order });
|
|
251
|
-
} catch (e) {
|
|
252
|
-
store.dispatch({ type: "error", order: prev.order, message: e.message });
|
|
253
|
-
}
|
|
254
|
-
}
|
|
255
|
-
async function runPaySolanaSourceEffects(store, trpc, prev, event) {
|
|
256
|
-
const orderId = prev.order.id;
|
|
257
|
-
try {
|
|
258
|
-
const order = await trpc.processSolanaSourcePayment.mutate({
|
|
259
|
-
orderId: orderId.toString(),
|
|
260
|
-
startIntentTxHash: event.paymentTxHash,
|
|
261
|
-
token: event.sourceToken
|
|
262
|
-
});
|
|
263
|
-
store.dispatch({ type: "payment_verified", order });
|
|
264
|
-
} catch (e) {
|
|
265
|
-
store.dispatch({ type: "error", order: prev.order, message: e.message });
|
|
266
|
-
}
|
|
267
|
-
}
|
|
268
|
-
|
|
269
|
-
export { attachPaymentEffectHandlers };
|
|
270
|
-
//# sourceMappingURL=paymentEffects.js.map
|
|
@@ -1 +0,0 @@
|
|
|
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 * @param debugMode Whether to enable debug mode to log polling activity.\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 debugMode: boolean,\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, debugMode);\n }\n\n // Refresh the order to watch for destination processing\n if (next.type === \"payment_started\") {\n pollRefreshOrder(store, trpc, next.order.id, debugMode);\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 debugMode: boolean,\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 debugMode,\n });\n\n pollers.set(key, stopPolling);\n}\n\nasync function pollRefreshOrder(\n store: PaymentStore,\n trpc: TrpcClient,\n orderId: bigint,\n debugMode: boolean,\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 debugMode,\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":"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"}
|