thirdweb 5.88.7 → 5.88.8-nightly-1fa36c1d56758788a8f9053f8929497bacb2b115-20250224233959

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (191) hide show
  1. package/dist/cjs/contract/deployment/utils/create-2-factory.js +4 -0
  2. package/dist/cjs/contract/deployment/utils/create-2-factory.js.map +1 -1
  3. package/dist/cjs/pay/buyWithFiat/getQuote.js +1 -0
  4. package/dist/cjs/pay/buyWithFiat/getQuote.js.map +1 -1
  5. package/dist/cjs/pay/buyWithFiat/isSwapRequiredPostOnramp.js +44 -0
  6. package/dist/cjs/pay/buyWithFiat/isSwapRequiredPostOnramp.js.map +1 -1
  7. package/dist/cjs/pay/convert/type.js +30 -1
  8. package/dist/cjs/pay/convert/type.js.map +1 -1
  9. package/dist/cjs/react/core/hooks/pay/useBuyWithFiatStatus.js +1 -0
  10. package/dist/cjs/react/core/hooks/pay/useBuyWithFiatStatus.js.map +1 -1
  11. package/dist/cjs/react/core/hooks/wallets/useSendToken.js +18 -2
  12. package/dist/cjs/react/core/hooks/wallets/useSendToken.js.map +1 -1
  13. package/dist/cjs/react/core/providers/invalidateWalletBalance.js +6 -1
  14. package/dist/cjs/react/core/providers/invalidateWalletBalance.js.map +1 -1
  15. package/dist/cjs/react/core/utils/account.js +2 -7
  16. package/dist/cjs/react/core/utils/account.js.map +1 -1
  17. package/dist/cjs/react/web/ui/ConnectWallet/NetworkSelector.js +1 -1
  18. package/dist/cjs/react/web/ui/ConnectWallet/NetworkSelector.js.map +1 -1
  19. package/dist/cjs/react/web/ui/ConnectWallet/icons/currencies/JPYIcon.js +1 -1
  20. package/dist/cjs/react/web/ui/ConnectWallet/icons/currencies/JPYIcon.js.map +1 -1
  21. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.js +5 -3
  22. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.js.map +1 -1
  23. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/PayWIthCreditCard.js +2 -1
  24. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/PayWIthCreditCard.js.map +1 -1
  25. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/fiat/CurrencySelection.js +1 -1
  26. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/fiat/CurrencySelection.js.map +1 -1
  27. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatScreenContent.js +0 -13
  28. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatScreenContent.js.map +1 -1
  29. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatSteps.js +6 -26
  30. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatSteps.js.map +1 -1
  31. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatTxDetailsTable.js +1 -1
  32. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatTxDetailsTable.js.map +1 -1
  33. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/fiat/OnRampScreen.js +541 -0
  34. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/fiat/OnRampScreen.js.map +1 -0
  35. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/fiat/currencies.js +23 -0
  36. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/fiat/currencies.js.map +1 -1
  37. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/main/useUISelectionStates.js +8 -0
  38. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/main/useUISelectionStates.js.map +1 -1
  39. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/StepConnector.js +21 -0
  40. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/StepConnector.js.map +1 -0
  41. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/SwapSummary.js +4 -9
  42. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/SwapSummary.js.map +1 -1
  43. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/WalletRow.js +2 -1
  44. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/WalletRow.js.map +1 -1
  45. package/dist/cjs/rpc/rpc.js +1 -1
  46. package/dist/cjs/storage/upload/mobile.js +1 -1
  47. package/dist/cjs/storage/upload/mobile.js.map +1 -1
  48. package/dist/cjs/storage/upload/web-node.js +1 -0
  49. package/dist/cjs/storage/upload/web-node.js.map +1 -1
  50. package/dist/cjs/version.js +1 -1
  51. package/dist/cjs/version.js.map +1 -1
  52. package/dist/cjs/wallets/in-app/web/ecosystem.js +1 -1
  53. package/dist/cjs/wallets/in-app/web/lib/iframe-wallet.js +1 -1
  54. package/dist/cjs/wallets/in-app/web/lib/iframe-wallet.js.map +1 -1
  55. package/dist/esm/contract/deployment/utils/create-2-factory.js +4 -0
  56. package/dist/esm/contract/deployment/utils/create-2-factory.js.map +1 -1
  57. package/dist/esm/pay/buyWithFiat/getQuote.js +1 -0
  58. package/dist/esm/pay/buyWithFiat/getQuote.js.map +1 -1
  59. package/dist/esm/pay/buyWithFiat/isSwapRequiredPostOnramp.js +43 -0
  60. package/dist/esm/pay/buyWithFiat/isSwapRequiredPostOnramp.js.map +1 -1
  61. package/dist/esm/pay/convert/type.js +29 -2
  62. package/dist/esm/pay/convert/type.js.map +1 -1
  63. package/dist/esm/react/core/hooks/pay/useBuyWithFiatStatus.js +1 -0
  64. package/dist/esm/react/core/hooks/pay/useBuyWithFiatStatus.js.map +1 -1
  65. package/dist/esm/react/core/hooks/wallets/useSendToken.js +19 -3
  66. package/dist/esm/react/core/hooks/wallets/useSendToken.js.map +1 -1
  67. package/dist/esm/react/core/providers/invalidateWalletBalance.js +6 -1
  68. package/dist/esm/react/core/providers/invalidateWalletBalance.js.map +1 -1
  69. package/dist/esm/react/core/utils/account.js +1 -6
  70. package/dist/esm/react/core/utils/account.js.map +1 -1
  71. package/dist/esm/react/web/ui/ConnectWallet/NetworkSelector.js +1 -1
  72. package/dist/esm/react/web/ui/ConnectWallet/NetworkSelector.js.map +1 -1
  73. package/dist/esm/react/web/ui/ConnectWallet/icons/currencies/JPYIcon.js +1 -1
  74. package/dist/esm/react/web/ui/ConnectWallet/icons/currencies/JPYIcon.js.map +1 -1
  75. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.js +5 -3
  76. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.js.map +1 -1
  77. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/PayWIthCreditCard.js +2 -1
  78. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/PayWIthCreditCard.js.map +1 -1
  79. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/fiat/CurrencySelection.js +3 -3
  80. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/fiat/CurrencySelection.js.map +1 -1
  81. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatScreenContent.js +0 -13
  82. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatScreenContent.js.map +1 -1
  83. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatSteps.js +7 -27
  84. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatSteps.js.map +1 -1
  85. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatTxDetailsTable.js +2 -2
  86. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatTxDetailsTable.js.map +1 -1
  87. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/fiat/OnRampScreen.js +538 -0
  88. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/fiat/OnRampScreen.js.map +1 -0
  89. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/fiat/currencies.js +22 -0
  90. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/fiat/currencies.js.map +1 -1
  91. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/main/useUISelectionStates.js +8 -0
  92. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/main/useUISelectionStates.js.map +1 -1
  93. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/StepConnector.js +18 -0
  94. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/StepConnector.js.map +1 -0
  95. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/SwapSummary.js +5 -10
  96. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/SwapSummary.js.map +1 -1
  97. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/WalletRow.js +2 -1
  98. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/WalletRow.js.map +1 -1
  99. package/dist/esm/rpc/rpc.js +1 -1
  100. package/dist/esm/storage/upload/mobile.js +1 -1
  101. package/dist/esm/storage/upload/mobile.js.map +1 -1
  102. package/dist/esm/storage/upload/web-node.js +1 -0
  103. package/dist/esm/storage/upload/web-node.js.map +1 -1
  104. package/dist/esm/version.js +1 -1
  105. package/dist/esm/version.js.map +1 -1
  106. package/dist/esm/wallets/in-app/web/ecosystem.js +1 -1
  107. package/dist/esm/wallets/in-app/web/lib/iframe-wallet.js +1 -1
  108. package/dist/esm/wallets/in-app/web/lib/iframe-wallet.js.map +1 -1
  109. package/dist/types/pay/buyWithFiat/getQuote.d.ts +8 -32
  110. package/dist/types/pay/buyWithFiat/getQuote.d.ts.map +1 -1
  111. package/dist/types/pay/buyWithFiat/isSwapRequiredPostOnramp.d.ts +7 -0
  112. package/dist/types/pay/buyWithFiat/isSwapRequiredPostOnramp.d.ts.map +1 -1
  113. package/dist/types/pay/convert/type.d.ts +2 -1
  114. package/dist/types/pay/convert/type.d.ts.map +1 -1
  115. package/dist/types/react/core/hooks/connection/ConnectButtonProps.d.ts +2 -1
  116. package/dist/types/react/core/hooks/connection/ConnectButtonProps.d.ts.map +1 -1
  117. package/dist/types/react/core/hooks/pay/useBuyWithFiatStatus.d.ts +2 -1
  118. package/dist/types/react/core/hooks/pay/useBuyWithFiatStatus.d.ts.map +1 -1
  119. package/dist/types/react/core/hooks/wallets/useSendToken.d.ts +6 -1
  120. package/dist/types/react/core/hooks/wallets/useSendToken.d.ts.map +1 -1
  121. package/dist/types/react/core/providers/invalidateWalletBalance.d.ts +1 -1
  122. package/dist/types/react/core/providers/invalidateWalletBalance.d.ts.map +1 -1
  123. package/dist/types/react/core/utils/account.d.ts +1 -1
  124. package/dist/types/react/core/utils/account.d.ts.map +1 -1
  125. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/PayWIthCreditCard.d.ts +1 -1
  126. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/PayWIthCreditCard.d.ts.map +1 -1
  127. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/fiat/CurrencySelection.d.ts.map +1 -1
  128. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatScreenContent.d.ts.map +1 -1
  129. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatSteps.d.ts +7 -2
  130. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatSteps.d.ts.map +1 -1
  131. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/fiat/{FiatFlow.d.ts → OnRampScreen.d.ts} +4 -4
  132. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/fiat/OnRampScreen.d.ts.map +1 -0
  133. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/fiat/currencies.d.ts +6 -2
  134. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/fiat/currencies.d.ts.map +1 -1
  135. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/main/types.d.ts +0 -1
  136. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/main/types.d.ts.map +1 -1
  137. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/swap/StepConnector.d.ts +4 -0
  138. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/swap/StepConnector.d.ts.map +1 -0
  139. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/swap/SwapSummary.d.ts.map +1 -1
  140. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/swap/WalletRow.d.ts +1 -0
  141. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/swap/WalletRow.d.ts.map +1 -1
  142. package/dist/types/react/web/ui/MediaRenderer/MediaRenderer.d.ts +2 -2
  143. package/dist/types/react/web/ui/MediaRenderer/ModelViewer.d.ts +1 -1
  144. package/dist/types/storage/upload/web-node.d.ts.map +1 -1
  145. package/dist/types/version.d.ts +1 -1
  146. package/dist/types/version.d.ts.map +1 -1
  147. package/dist/types/wallets/in-app/web/ecosystem.d.ts +1 -1
  148. package/package.json +1 -1
  149. package/src/contract/deployment/utils/create-2-factory.ts +4 -0
  150. package/src/pay/buyWithFiat/getQuote.ts +9 -33
  151. package/src/pay/buyWithFiat/isSwapRequiredPostOnramp.ts +56 -0
  152. package/src/pay/convert/type.ts +30 -1
  153. package/src/react/core/hooks/connection/ConnectButtonProps.ts +2 -1
  154. package/src/react/core/hooks/pay/useBuyWithFiatStatus.ts +3 -1
  155. package/src/react/core/hooks/wallets/useSendToken.ts +19 -3
  156. package/src/react/core/providers/invalidateWalletBalance.ts +6 -1
  157. package/src/react/core/utils/account.ts +4 -8
  158. package/src/react/web/ui/ConnectWallet/NetworkSelector.tsx +1 -1
  159. package/src/react/web/ui/ConnectWallet/icons/currencies/JPYIcon.tsx +1 -1
  160. package/src/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.tsx +7 -3
  161. package/src/react/web/ui/ConnectWallet/screens/Buy/PayWIthCreditCard.tsx +2 -2
  162. package/src/react/web/ui/ConnectWallet/screens/Buy/fiat/CurrencySelection.tsx +3 -6
  163. package/src/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatScreenContent.tsx +0 -19
  164. package/src/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatSteps.tsx +9 -32
  165. package/src/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatTxDetailsTable.tsx +2 -2
  166. package/src/react/web/ui/ConnectWallet/screens/Buy/fiat/OnRampScreen.tsx +790 -0
  167. package/src/react/web/ui/ConnectWallet/screens/Buy/fiat/currencies.tsx +38 -2
  168. package/src/react/web/ui/ConnectWallet/screens/Buy/main/types.ts +0 -1
  169. package/src/react/web/ui/ConnectWallet/screens/Buy/main/useUISelectionStates.ts +10 -0
  170. package/src/react/web/ui/ConnectWallet/screens/Buy/swap/StepConnector.tsx +55 -0
  171. package/src/react/web/ui/ConnectWallet/screens/Buy/swap/SwapSummary.tsx +18 -41
  172. package/src/react/web/ui/ConnectWallet/screens/Buy/swap/WalletRow.tsx +10 -1
  173. package/src/rpc/rpc.ts +1 -1
  174. package/src/storage/upload/mobile.ts +1 -1
  175. package/src/storage/upload/web-node.ts +1 -0
  176. package/src/version.ts +1 -1
  177. package/src/wallets/in-app/web/ecosystem.ts +1 -1
  178. package/src/wallets/in-app/web/lib/iframe-wallet.ts +1 -1
  179. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatFlow.js +0 -63
  180. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatFlow.js.map +0 -1
  181. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatStatusScreen.js +0 -116
  182. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatStatusScreen.js.map +0 -1
  183. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatFlow.js +0 -60
  184. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatFlow.js.map +0 -1
  185. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatStatusScreen.js +0 -113
  186. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatStatusScreen.js.map +0 -1
  187. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatFlow.d.ts.map +0 -1
  188. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatStatusScreen.d.ts +0 -24
  189. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatStatusScreen.d.ts.map +0 -1
  190. package/src/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatFlow.tsx +0 -152
  191. package/src/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatStatusScreen.tsx +0 -258
@@ -0,0 +1,538 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useMutation, useQueryClient } from "@tanstack/react-query";
3
+ import { useCallback, useEffect, useRef, useState } from "react";
4
+ import { trackPayEvent } from "../../../../../../../analytics/track/pay.js";
5
+ import { getCachedChain } from "../../../../../../../chains/utils.js";
6
+ import { getContract } from "../../../../../../../contract/contract.js";
7
+ import { allowance } from "../../../../../../../extensions/erc20/__generated__/IERC20/read/allowance.js";
8
+ import { approve } from "../../../../../../../extensions/erc20/write/approve.js";
9
+ import { getBuyWithFiatStatus, } from "../../../../../../../pay/buyWithFiat/getStatus.js";
10
+ import { getOnRampSteps, } from "../../../../../../../pay/buyWithFiat/isSwapRequiredPostOnramp.js";
11
+ import { sendBatchTransaction } from "../../../../../../../transaction/actions/send-batch-transaction.js";
12
+ import { sendTransaction } from "../../../../../../../transaction/actions/send-transaction.js";
13
+ import { waitForReceipt } from "../../../../../../../transaction/actions/wait-for-tx-receipt.js";
14
+ import { formatNumber } from "../../../../../../../utils/formatNumber.js";
15
+ import { isEcosystemWallet } from "../../../../../../../wallets/ecosystem/is-ecosystem-wallet.js";
16
+ import { isInAppWallet } from "../../../../../../../wallets/in-app/core/wallet/index.js";
17
+ import { isSmartWallet } from "../../../../../../../wallets/smart/is-smart-wallet.js";
18
+ import { spacing } from "../../../../../../core/design-system/index.js";
19
+ import { useChainName } from "../../../../../../core/hooks/others/useChainQuery.js";
20
+ import { useBuyWithCryptoQuote } from "../../../../../../core/hooks/pay/useBuyWithCryptoQuote.js";
21
+ import { useBuyWithCryptoStatus } from "../../../../../../core/hooks/pay/useBuyWithCryptoStatus.js";
22
+ import { useBuyWithFiatStatus } from "../../../../../../core/hooks/pay/useBuyWithFiatStatus.js";
23
+ import { useConnectedWallets } from "../../../../../../core/hooks/wallets/useConnectedWallets.js";
24
+ import { invalidateWalletBalance } from "../../../../../../core/providers/invalidateWalletBalance.js";
25
+ import { Spacer } from "../../../../components/Spacer.js";
26
+ import { Spinner } from "../../../../components/Spinner.js";
27
+ import { SwitchNetworkButton } from "../../../../components/SwitchNetwork.js";
28
+ import { Container, ModalHeader } from "../../../../components/basic.js";
29
+ import { Button } from "../../../../components/buttons.js";
30
+ import { Text } from "../../../../components/text.js";
31
+ import { TokenSymbol } from "../../../../components/token/TokenSymbol.js";
32
+ import { PayTokenIcon } from "../PayTokenIcon.js";
33
+ import { openOnrampPopup } from "../openOnRamppopup.js";
34
+ import { StepConnectorArrow } from "../swap/StepConnector.js";
35
+ import { WalletRow } from "../swap/WalletRow.js";
36
+ import { addPendingTx } from "../swap/pendingSwapTx.js";
37
+ import { StepContainer } from "./FiatSteps.js";
38
+ export function OnRampScreen(props) {
39
+ const connectedWallets = useConnectedWallets();
40
+ const isAutoMode = isInAppSigner({
41
+ wallet: props.payer.wallet,
42
+ connectedWallets,
43
+ });
44
+ const state = useOnRampScreenState({
45
+ quote: props.quote,
46
+ client: props.client,
47
+ onSuccess: props.onSuccess,
48
+ onDone: props.onDone,
49
+ payer: props.payer,
50
+ theme: props.theme,
51
+ isAutoMode,
52
+ });
53
+ const firstStepChainId = state.steps[0]?.step.token.chainId;
54
+ const currentStepIndex = state.steps.findIndex((step) => step.status === "pending" || step.status === "actionRequired");
55
+ return (_jsxs(Container, { p: "lg", children: [_jsx(ModalHeader, { title: props.title, onBack: props.onBack }), _jsx(Spacer, { y: "xl" }), _jsx(Container, { flex: "column", gap: "xs", center: "y", style: {
56
+ paddingLeft: spacing.md,
57
+ }, children: _jsx(WalletRow, { client: props.client, address: props.receiverAddress, iconSize: "md", textSize: "sm", label: "Recipient wallet" }) }), _jsx(Spacer, { y: "md" }), _jsx(Container, { flex: "column", children: state.steps.map(({ step, status }, index) => (_jsxs(Container, { flex: "column", children: [_jsx(StepContainer, { state: status, index: index, style: {
58
+ flex: "1",
59
+ }, children: _jsx(StepUI, { step: step, client: props.client, payer: props.payer, index: index }) }), index < state.steps.length - 1 && (_jsx(StepConnectorArrow, { active: index === currentStepIndex }))] }, step.action))) }), _jsx(Spacer, { y: "md" }), _jsx(Text, { size: "xs", color: "secondaryText", center: true, style: { padding: `0 ${spacing.xl}` }, children: "Keep this window open until all transactions are complete." }), _jsx(Spacer, { y: "lg" }), _jsx(Container, { flex: "column", gap: "md", children: !state.isDone &&
60
+ firstStepChainId &&
61
+ firstStepChainId !== props.payer.chain.id ? (_jsx(SwitchNetworkButton, { fullWidth: true, variant: "accent", switchChain: async () => {
62
+ await props.payer.wallet.switchChain(getCachedChain(firstStepChainId));
63
+ } })) : (_jsxs(Button, { variant: "accent", gap: "sm", fullWidth: true, onClick: state.handleContinue, disabled: state.isLoading, children: [state.isLoading
64
+ ? "Processing"
65
+ : state.isDone
66
+ ? props.transactionMode
67
+ ? "Continue Transaction"
68
+ : "Done"
69
+ : state.isFailed
70
+ ? "Retry"
71
+ : "Continue", state.isLoading && _jsx(Spinner, { size: "sm", color: "primaryText" })] })) })] }));
72
+ }
73
+ function StepUI(props) {
74
+ const { step, client } = props;
75
+ const chain = useChainName(getCachedChain(step.token.chainId));
76
+ return (_jsx(Container, { flex: "column", gap: "xs", py: "3xs", children: _jsxs(Container, { flex: "row", center: "y", gap: "sm", style: {
77
+ display: "flex",
78
+ justifyContent: "space-between",
79
+ flexWrap: "nowrap",
80
+ }, children: [_jsx(PayTokenIcon, { chain: getCachedChain(step.token.chainId), client: client, size: "md", token: {
81
+ address: step.token.tokenAddress,
82
+ } }), _jsxs(Container, { flex: "column", gap: "3xs", center: "y", style: { flex: "1" }, children: [_jsx(Text, { size: "sm", color: "primaryText", children: step.action.charAt(0).toUpperCase() + step.action.slice(1) }), _jsxs(Container, { flex: "row", gap: "xs", center: "y", style: {
83
+ display: "flex",
84
+ justifyContent: "space-between",
85
+ flexWrap: "nowrap",
86
+ }, children: [_jsxs(Container, { flex: "row", gap: "xxs", center: "y", style: {
87
+ flex: "1 1 60%",
88
+ minWidth: 0,
89
+ maxWidth: "60%",
90
+ overflow: "hidden",
91
+ flexWrap: "nowrap",
92
+ }, children: [_jsx(Text, { size: "sm", color: "primaryText", children: formatNumber(Number(step.amount), 5) }), _jsx(TokenSymbol, { token: {
93
+ address: step.token.tokenAddress,
94
+ name: step.token.name || "",
95
+ symbol: step.token.symbol || "",
96
+ }, chain: getCachedChain(step.token.chainId), size: "sm", color: "secondaryText" })] }), _jsx(Container, { flex: "row", gap: "xs", center: "y", style: {
97
+ flex: "1 1 40%",
98
+ maxWidth: "40%",
99
+ minWidth: 0,
100
+ justifyContent: "flex-end",
101
+ flexWrap: "nowrap",
102
+ }, children: _jsx(Text, { size: "xs", style: {
103
+ overflow: "hidden",
104
+ textOverflow: "ellipsis",
105
+ whiteSpace: "nowrap",
106
+ }, children: chain.name }) })] })] })] }) }));
107
+ }
108
+ function useOnRampScreenState(props) {
109
+ const onRampSteps = getOnRampSteps(props.quote);
110
+ const [currentStepIndex, setCurrentStepIndex] = useState(0);
111
+ const [swapTxHash, setSwapTxHash] = useState();
112
+ const [popupWindow, setPopupWindow] = useState(null);
113
+ // Track onramp status
114
+ const { uiStatus: fiatOnrampStatus } = useOnRampStatus({
115
+ intentId: props.quote.intentId,
116
+ client: props.client,
117
+ onSuccess: (status) => {
118
+ if (onRampSteps.length === 1) {
119
+ // If only one step, this is the final success
120
+ props.onSuccess(status);
121
+ }
122
+ else {
123
+ // Move to next step (swap)
124
+ setCurrentStepIndex((prev) => prev + 1);
125
+ }
126
+ },
127
+ openedWindow: popupWindow,
128
+ });
129
+ // Get quote for current swap/bridge step if needed
130
+ const previousStep = onRampSteps[currentStepIndex - 1];
131
+ const currentStep = onRampSteps[currentStepIndex];
132
+ const swapQuoteQuery = useBuyWithCryptoQuote(previousStep && currentStep
133
+ ? {
134
+ fromChainId: previousStep.token.chainId,
135
+ fromTokenAddress: previousStep.token.tokenAddress,
136
+ toAmount: currentStep.amount,
137
+ toChainId: currentStep.token.chainId,
138
+ toTokenAddress: currentStep.token.tokenAddress,
139
+ fromAddress: props.payer.account.address,
140
+ toAddress: props.payer.account.address,
141
+ client: props.client,
142
+ }
143
+ : undefined);
144
+ // Handle swap execution
145
+ const swapMutation = useSwapMutation({
146
+ client: props.client,
147
+ payer: props.payer,
148
+ isFiatFlow: true,
149
+ });
150
+ // Track swap status
151
+ const { uiStatus: swapStatus } = useSwapStatus({
152
+ client: props.client,
153
+ transactionHash: swapTxHash?.hash,
154
+ chainId: swapTxHash?.chainId,
155
+ onSuccess: () => {
156
+ if (currentStepIndex === onRampSteps.length - 1) {
157
+ // Last step completed - call final success
158
+ getBuyWithFiatStatus({
159
+ intentId: props.quote.intentId,
160
+ client: props.client,
161
+ }).then(props.onSuccess);
162
+ }
163
+ else {
164
+ // Reset swap state before moving to next step
165
+ setSwapTxHash(undefined);
166
+ swapMutation.reset();
167
+ // Move to next step
168
+ setCurrentStepIndex((prev) => prev + 1);
169
+ }
170
+ },
171
+ });
172
+ // Map steps to their current status
173
+ const steps = onRampSteps.map((step, index) => {
174
+ let status = "unknown";
175
+ if (index === 0) {
176
+ // First step (onramp) status
177
+ status = fiatOnrampStatus;
178
+ }
179
+ else if (index < currentStepIndex) {
180
+ // Previous steps are completed
181
+ status = "completed";
182
+ }
183
+ else if (index === currentStepIndex) {
184
+ // Current step - could be swap or bridge
185
+ if (swapQuoteQuery.isLoading || swapMutation.isPending) {
186
+ status = "pending";
187
+ }
188
+ else if (swapQuoteQuery.error || swapMutation.error) {
189
+ status = "failed";
190
+ }
191
+ else if (swapTxHash) {
192
+ status = swapStatus;
193
+ }
194
+ else {
195
+ status = "actionRequired";
196
+ }
197
+ }
198
+ return {
199
+ index,
200
+ step,
201
+ status,
202
+ };
203
+ });
204
+ const isLoading = steps.some((step) => step.status === "pending");
205
+ const isDone = steps.every((step) => step.status === "completed");
206
+ const isFailed = steps.some((step) => step.status === "failed");
207
+ // Update handleContinue to handle done state
208
+ const handleContinue = useCallback(async () => {
209
+ if (isDone) {
210
+ props.onDone();
211
+ return;
212
+ }
213
+ if (currentStepIndex === 0) {
214
+ // First step - open onramp popup
215
+ const popup = openOnrampPopup(props.quote.onRampLink, props.theme);
216
+ trackPayEvent({
217
+ event: "open_onramp_popup",
218
+ client: props.client,
219
+ walletAddress: props.payer.account.address,
220
+ walletType: props.payer.wallet.id,
221
+ });
222
+ setPopupWindow(popup);
223
+ addPendingTx({
224
+ type: "fiat",
225
+ intentId: props.quote.intentId,
226
+ });
227
+ }
228
+ else if (swapQuoteQuery.data && !swapTxHash) {
229
+ // Execute swap/bridge
230
+ try {
231
+ const result = await swapMutation.mutateAsync({
232
+ quote: swapQuoteQuery.data,
233
+ });
234
+ setSwapTxHash({
235
+ hash: result.transactionHash,
236
+ chainId: result.chainId,
237
+ });
238
+ }
239
+ catch (e) {
240
+ console.error("Failed to execute swap:", e);
241
+ }
242
+ }
243
+ else if (isFailed) {
244
+ // retry the quote step
245
+ setSwapTxHash(undefined);
246
+ swapMutation.reset();
247
+ swapQuoteQuery.refetch();
248
+ }
249
+ }, [
250
+ isDone,
251
+ currentStepIndex,
252
+ swapQuoteQuery.data,
253
+ swapTxHash,
254
+ props.quote,
255
+ props.onDone,
256
+ swapMutation,
257
+ props.theme,
258
+ isFailed,
259
+ swapQuoteQuery.refetch,
260
+ swapMutation.reset,
261
+ props.client,
262
+ props.payer.account.address,
263
+ props.payer.wallet.id,
264
+ ]);
265
+ // Auto-progress effect
266
+ useEffect(() => {
267
+ if (!props.isAutoMode) {
268
+ return;
269
+ }
270
+ // Auto-start next swap step when previous step completes
271
+ if (!isLoading &&
272
+ !isDone &&
273
+ !isFailed &&
274
+ currentStepIndex > 0 &&
275
+ currentStepIndex < onRampSteps.length &&
276
+ swapQuoteQuery.data &&
277
+ !swapTxHash) {
278
+ handleContinue();
279
+ }
280
+ }, [
281
+ props.isAutoMode,
282
+ currentStepIndex,
283
+ swapQuoteQuery.data,
284
+ swapTxHash,
285
+ onRampSteps.length,
286
+ handleContinue,
287
+ isDone,
288
+ isFailed,
289
+ isLoading,
290
+ ]);
291
+ return {
292
+ steps,
293
+ handleContinue,
294
+ isLoading,
295
+ isDone,
296
+ isFailed,
297
+ };
298
+ }
299
+ function useOnRampStatus(props) {
300
+ const queryClient = useQueryClient();
301
+ const statusQuery = useBuyWithFiatStatus({
302
+ intentId: props.intentId,
303
+ client: props.client,
304
+ queryOptions: {
305
+ enabled: !!props.openedWindow,
306
+ },
307
+ });
308
+ let uiStatus = "actionRequired";
309
+ switch (statusQuery.data?.status) {
310
+ case "ON_RAMP_TRANSFER_COMPLETED":
311
+ case "CRYPTO_SWAP_COMPLETED":
312
+ case "CRYPTO_SWAP_REQUIRED":
313
+ uiStatus = "completed";
314
+ break;
315
+ case "CRYPTO_SWAP_FALLBACK":
316
+ uiStatus = "partialSuccess";
317
+ break;
318
+ case "ON_RAMP_TRANSFER_FAILED":
319
+ case "PAYMENT_FAILED":
320
+ uiStatus = "failed";
321
+ break;
322
+ case "PENDING_PAYMENT":
323
+ case "ON_RAMP_TRANSFER_IN_PROGRESS":
324
+ uiStatus = "pending";
325
+ break;
326
+ default:
327
+ uiStatus = "actionRequired";
328
+ break;
329
+ }
330
+ const purchaseCbCalled = useRef(false);
331
+ useEffect(() => {
332
+ if (purchaseCbCalled.current || !props.onSuccess) {
333
+ return;
334
+ }
335
+ if (statusQuery.data &&
336
+ (uiStatus === "completed" || uiStatus === "partialSuccess")) {
337
+ purchaseCbCalled.current = true;
338
+ props.onSuccess(statusQuery.data);
339
+ }
340
+ }, [props.onSuccess, statusQuery.data, uiStatus]);
341
+ // close the onramp popup if onramp is completed
342
+ useEffect(() => {
343
+ if (!props.openedWindow) {
344
+ return;
345
+ }
346
+ if (uiStatus === "completed" || uiStatus === "partialSuccess") {
347
+ try {
348
+ if (props.openedWindow && !props.openedWindow.closed) {
349
+ props.openedWindow.close();
350
+ }
351
+ }
352
+ catch (e) {
353
+ console.warn("Failed to close payment window:", e);
354
+ }
355
+ }
356
+ }, [props.openedWindow, uiStatus]);
357
+ // invalidate wallet balance when onramp is completed
358
+ const invalidatedBalance = useRef(false);
359
+ useEffect(() => {
360
+ if (!invalidatedBalance.current && uiStatus === "completed") {
361
+ invalidatedBalance.current = true;
362
+ invalidateWalletBalance(queryClient);
363
+ }
364
+ }, [uiStatus, queryClient]);
365
+ return { uiStatus };
366
+ }
367
+ function useSwapStatus(props) {
368
+ const swapStatus = useBuyWithCryptoStatus(props.transactionHash && props.chainId
369
+ ? {
370
+ client: props.client,
371
+ transactionHash: props.transactionHash,
372
+ chainId: props.chainId,
373
+ }
374
+ : undefined);
375
+ let uiStatus = "unknown";
376
+ switch (swapStatus.data?.status) {
377
+ case "COMPLETED":
378
+ uiStatus = "completed";
379
+ break;
380
+ case "FAILED":
381
+ case "NOT_FOUND":
382
+ uiStatus = "failed";
383
+ break;
384
+ case "PENDING":
385
+ uiStatus = "pending";
386
+ break;
387
+ case "NONE":
388
+ uiStatus = "unknown";
389
+ break;
390
+ default:
391
+ uiStatus = "unknown";
392
+ break;
393
+ }
394
+ const purchaseCbCalled = useRef(false);
395
+ useEffect(() => {
396
+ if (purchaseCbCalled.current || !props.onSuccess) {
397
+ return;
398
+ }
399
+ if (swapStatus.data?.status === "COMPLETED") {
400
+ purchaseCbCalled.current = true;
401
+ props.onSuccess(swapStatus.data);
402
+ }
403
+ }, [props.onSuccess, swapStatus]);
404
+ const queryClient = useQueryClient();
405
+ const balanceInvalidated = useRef(false);
406
+ useEffect(() => {
407
+ if (uiStatus === "completed" && !balanceInvalidated.current) {
408
+ balanceInvalidated.current = true;
409
+ invalidateWalletBalance(queryClient);
410
+ }
411
+ }, [queryClient, uiStatus]);
412
+ return { uiStatus };
413
+ }
414
+ function useSwapMutation(props) {
415
+ const queryClient = useQueryClient();
416
+ return useMutation({
417
+ mutationFn: async (input) => {
418
+ const { quote } = input;
419
+ const canBatch = props.payer.account.sendBatchTransaction;
420
+ const tokenContract = getContract({
421
+ client: props.client,
422
+ address: quote.swapDetails.fromToken.tokenAddress,
423
+ chain: getCachedChain(quote.swapDetails.fromToken.chainId),
424
+ });
425
+ const approveTxRequired = quote.approvalData &&
426
+ (await allowance({
427
+ contract: tokenContract,
428
+ owner: props.payer.account.address,
429
+ spender: quote.approvalData.spenderAddress,
430
+ })) < BigInt(quote.approvalData.amountWei);
431
+ if (approveTxRequired && quote.approvalData && !canBatch) {
432
+ trackPayEvent({
433
+ event: "prompt_swap_approval",
434
+ client: props.client,
435
+ walletAddress: props.payer.account.address,
436
+ walletType: props.payer.wallet.id,
437
+ fromToken: quote.swapDetails.fromToken.tokenAddress,
438
+ fromAmount: quote.swapDetails.fromAmountWei,
439
+ toToken: quote.swapDetails.toToken.tokenAddress,
440
+ toAmount: quote.swapDetails.toAmountWei,
441
+ chainId: quote.swapDetails.fromToken.chainId,
442
+ dstChainId: quote.swapDetails.toToken.chainId,
443
+ });
444
+ const transaction = approve({
445
+ contract: tokenContract,
446
+ spender: quote.approvalData.spenderAddress,
447
+ amountWei: BigInt(quote.approvalData.amountWei),
448
+ });
449
+ const tx = await sendTransaction({
450
+ account: props.payer.account,
451
+ transaction,
452
+ });
453
+ await waitForReceipt({ ...tx, maxBlocksWaitTime: 50 });
454
+ trackPayEvent({
455
+ event: "swap_approval_success",
456
+ client: props.client,
457
+ walletAddress: props.payer.account.address,
458
+ walletType: props.payer.wallet.id,
459
+ fromToken: quote.swapDetails.fromToken.tokenAddress,
460
+ fromAmount: quote.swapDetails.fromAmountWei,
461
+ toToken: quote.swapDetails.toToken.tokenAddress,
462
+ toAmount: quote.swapDetails.toAmountWei,
463
+ chainId: quote.swapDetails.fromToken.chainId,
464
+ dstChainId: quote.swapDetails.toToken.chainId,
465
+ });
466
+ }
467
+ trackPayEvent({
468
+ event: "prompt_swap_execution",
469
+ client: props.client,
470
+ walletAddress: props.payer.account.address,
471
+ walletType: props.payer.wallet.id,
472
+ fromToken: quote.swapDetails.fromToken.tokenAddress,
473
+ fromAmount: quote.swapDetails.fromAmountWei,
474
+ toToken: quote.swapDetails.toToken.tokenAddress,
475
+ toAmount: quote.swapDetails.toAmountWei,
476
+ chainId: quote.swapDetails.fromToken.chainId,
477
+ dstChainId: quote.swapDetails.toToken.chainId,
478
+ });
479
+ const tx = quote.transactionRequest;
480
+ let _swapTx;
481
+ // check if we can batch approval and swap
482
+ if (canBatch && quote.approvalData && approveTxRequired) {
483
+ const approveTx = approve({
484
+ contract: tokenContract,
485
+ spender: quote.approvalData.spenderAddress,
486
+ amountWei: BigInt(quote.approvalData.amountWei),
487
+ });
488
+ _swapTx = await sendBatchTransaction({
489
+ account: props.payer.account,
490
+ transactions: [approveTx, tx],
491
+ });
492
+ }
493
+ else {
494
+ _swapTx = await sendTransaction({
495
+ account: props.payer.account,
496
+ transaction: tx,
497
+ });
498
+ }
499
+ await waitForReceipt({ ..._swapTx, maxBlocksWaitTime: 50 });
500
+ trackPayEvent({
501
+ event: "swap_execution_success",
502
+ client: props.client,
503
+ walletAddress: props.payer.account.address,
504
+ walletType: props.payer.wallet.id,
505
+ fromToken: quote.swapDetails.fromToken.tokenAddress,
506
+ fromAmount: quote.swapDetails.fromAmountWei,
507
+ toToken: quote.swapDetails.toToken.tokenAddress,
508
+ toAmount: quote.swapDetails.toAmountWei,
509
+ chainId: quote.swapDetails.fromToken.chainId,
510
+ dstChainId: quote.swapDetails.toToken.chainId,
511
+ });
512
+ // do not add pending tx if the swap is part of fiat flow
513
+ if (!props.isFiatFlow) {
514
+ addPendingTx({
515
+ type: "swap",
516
+ txHash: _swapTx.transactionHash,
517
+ chainId: _swapTx.chain.id,
518
+ });
519
+ }
520
+ return {
521
+ transactionHash: _swapTx.transactionHash,
522
+ chainId: _swapTx.chain.id,
523
+ };
524
+ },
525
+ onSuccess: () => {
526
+ invalidateWalletBalance(queryClient);
527
+ },
528
+ });
529
+ }
530
+ function isInAppSigner(options) {
531
+ const isInAppOrEcosystem = (w) => isInAppWallet(w) || isEcosystemWallet(w);
532
+ const isSmartWalletWithAdmin = isSmartWallet(options.wallet) &&
533
+ options.connectedWallets.some((w) => isInAppOrEcosystem(w) &&
534
+ w.getAccount()?.address?.toLowerCase() ===
535
+ options.wallet.getAdminAccount?.()?.address?.toLowerCase());
536
+ return isInAppOrEcosystem(options.wallet) || isSmartWalletWithAdmin;
537
+ }
538
+ //# sourceMappingURL=OnRampScreen.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OnRampScreen.js","sourceRoot":"","sources":["../../../../../../../../../src/react/web/ui/ConnectWallet/screens/Buy/fiat/OnRampScreen.tsx"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { RadiobuttonIcon } from "@radix-ui/react-icons";
3
+ import { iconSize } from "../../../../../../core/design-system/index.js";
3
4
  import { CADIcon } from "../../../icons/currencies/CADIcon.js";
4
5
  import { EURIcon } from "../../../icons/currencies/EURIcon.js";
5
6
  import { GBPIcon } from "../../../icons/currencies/GBPIcon.js";
@@ -7,6 +8,7 @@ import { JPYIcon } from "../../../icons/currencies/JPYIcon.js";
7
8
  import { USDIcon } from "../../../icons/currencies/USDIcon.js";
8
9
  export const usdCurrency = {
9
10
  shorthand: "USD",
11
+ countryCode: "US",
10
12
  name: "US Dollar",
11
13
  symbol: "$",
12
14
  icon: USDIcon,
@@ -15,38 +17,58 @@ export const currencies = [
15
17
  usdCurrency,
16
18
  {
17
19
  shorthand: "CAD",
20
+ countryCode: "CA",
18
21
  name: "Canadian Dollar",
19
22
  symbol: "$",
20
23
  icon: CADIcon,
21
24
  },
22
25
  {
23
26
  shorthand: "GBP",
27
+ countryCode: "GB",
24
28
  name: "British Pound",
25
29
  symbol: "£",
26
30
  icon: GBPIcon,
27
31
  },
28
32
  {
29
33
  shorthand: "EUR",
34
+ countryCode: "EU",
30
35
  name: "Euro",
31
36
  symbol: "€",
32
37
  icon: EURIcon,
33
38
  },
34
39
  {
35
40
  shorthand: "JPY",
41
+ countryCode: "JP",
36
42
  name: "Japanese Yen",
37
43
  symbol: "¥",
38
44
  icon: JPYIcon,
39
45
  },
46
+ {
47
+ shorthand: "AUD",
48
+ countryCode: "AU",
49
+ name: "Australian Dollar",
50
+ symbol: "$",
51
+ },
52
+ {
53
+ shorthand: "NZD",
54
+ countryCode: "NZ",
55
+ name: "New Zealand Dollar",
56
+ symbol: "$",
57
+ },
40
58
  ];
41
59
  export function getCurrencyMeta(shorthand) {
42
60
  return (currencies.find((currency) => currency.shorthand.toLowerCase() === shorthand.toLowerCase()) ?? {
43
61
  // This should never happen
44
62
  icon: UnknownCurrencyIcon,
63
+ countryCode: "US",
45
64
  name: shorthand,
46
65
  symbol: "$",
47
66
  shorthand: shorthand,
48
67
  });
49
68
  }
69
+ export function getFiatIcon(currency, size) {
70
+ return currency.icon ? (_jsx(currency.icon, { size: iconSize[size] })) : (_jsx("img", { src: `https://flagsapi.com/${currency.countryCode.toUpperCase()}/flat/64.png`, alt: currency.shorthand, width: iconSize[size], height: iconSize[size] }));
71
+ }
50
72
  const UnknownCurrencyIcon = (props) => {
51
73
  return _jsx(RadiobuttonIcon, { width: props.size, height: props.size });
52
74
  };
@@ -1 +1 @@
1
- {"version":3,"file":"currencies.js","sourceRoot":"","sources":["../../../../../../../../../src/react/web/ui/ConnectWallet/screens/Buy/fiat/currencies.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,OAAO,EAAE,MAAM,sCAAsC,CAAC;AAC/D,OAAO,EAAE,OAAO,EAAE,MAAM,sCAAsC,CAAC;AAC/D,OAAO,EAAE,OAAO,EAAE,MAAM,sCAAsC,CAAC;AAC/D,OAAO,EAAE,OAAO,EAAE,MAAM,sCAAsC,CAAC;AAC/D,OAAO,EAAE,OAAO,EAAE,MAAM,sCAAsC,CAAC;AAU/D,MAAM,CAAC,MAAM,WAAW,GAAiB;IACvC,SAAS,EAAE,KAAK;IAChB,IAAI,EAAE,WAAW;IACjB,MAAM,EAAE,GAAG;IACX,IAAI,EAAE,OAAO;CACd,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAAmB;IACxC,WAAW;IACX;QACE,SAAS,EAAE,KAAK;QAChB,IAAI,EAAE,iBAAiB;QACvB,MAAM,EAAE,GAAG;QACX,IAAI,EAAE,OAAO;KACd;IACD;QACE,SAAS,EAAE,KAAK;QAChB,IAAI,EAAE,eAAe;QACrB,MAAM,EAAE,GAAG;QACX,IAAI,EAAE,OAAO;KACd;IACD;QACE,SAAS,EAAE,KAAK;QAChB,IAAI,EAAE,MAAM;QACZ,MAAM,EAAE,GAAG;QACX,IAAI,EAAE,OAAO;KACd;IACD;QACE,SAAS,EAAE,KAAK;QAChB,IAAI,EAAE,cAAc;QACpB,MAAM,EAAE,GAAG;QACX,IAAI,EAAE,OAAO;KACd;CACF,CAAC;AAEF,MAAM,UAAU,eAAe,CAAC,SAAiB;IAC/C,OAAO,CACL,UAAU,CAAC,IAAI,CACb,CAAC,QAAQ,EAAE,EAAE,CACX,QAAQ,CAAC,SAAS,CAAC,WAAW,EAAE,KAAK,SAAS,CAAC,WAAW,EAAE,CAC/D,IAAI;QACH,2BAA2B;QAC3B,IAAI,EAAE,mBAAmB;QACzB,IAAI,EAAE,SAAS;QACf,MAAM,EAAE,GAAG;QACX,SAAS,EAAE,SAAsC;KAClD,CACF,CAAC;AACJ,CAAC;AAED,MAAM,mBAAmB,GAAW,CAAC,KAAK,EAAE,EAAE;IAC5C,OAAO,KAAC,eAAe,IAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,IAAI,GAAI,CAAC;AACpE,CAAC,CAAC"}
1
+ {"version":3,"file":"currencies.js","sourceRoot":"","sources":["../../../../../../../../../src/react/web/ui/ConnectWallet/screens/Buy/fiat/currencies.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,OAAO,EAAE,QAAQ,EAAE,MAAM,+CAA+C,CAAC;AACzE,OAAO,EAAE,OAAO,EAAE,MAAM,sCAAsC,CAAC;AAC/D,OAAO,EAAE,OAAO,EAAE,MAAM,sCAAsC,CAAC;AAC/D,OAAO,EAAE,OAAO,EAAE,MAAM,sCAAsC,CAAC;AAC/D,OAAO,EAAE,OAAO,EAAE,MAAM,sCAAsC,CAAC;AAC/D,OAAO,EAAE,OAAO,EAAE,MAAM,sCAAsC,CAAC;AAW/D,MAAM,CAAC,MAAM,WAAW,GAAiB;IACvC,SAAS,EAAE,KAAK;IAChB,WAAW,EAAE,IAAI;IACjB,IAAI,EAAE,WAAW;IACjB,MAAM,EAAE,GAAG;IACX,IAAI,EAAE,OAAO;CACd,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAAmB;IACxC,WAAW;IACX;QACE,SAAS,EAAE,KAAK;QAChB,WAAW,EAAE,IAAI;QACjB,IAAI,EAAE,iBAAiB;QACvB,MAAM,EAAE,GAAG;QACX,IAAI,EAAE,OAAO;KACd;IACD;QACE,SAAS,EAAE,KAAK;QAChB,WAAW,EAAE,IAAI;QACjB,IAAI,EAAE,eAAe;QACrB,MAAM,EAAE,GAAG;QACX,IAAI,EAAE,OAAO;KACd;IACD;QACE,SAAS,EAAE,KAAK;QAChB,WAAW,EAAE,IAAI;QACjB,IAAI,EAAE,MAAM;QACZ,MAAM,EAAE,GAAG;QACX,IAAI,EAAE,OAAO;KACd;IACD;QACE,SAAS,EAAE,KAAK;QAChB,WAAW,EAAE,IAAI;QACjB,IAAI,EAAE,cAAc;QACpB,MAAM,EAAE,GAAG;QACX,IAAI,EAAE,OAAO;KACd;IACD;QACE,SAAS,EAAE,KAAK;QAChB,WAAW,EAAE,IAAI;QACjB,IAAI,EAAE,mBAAmB;QACzB,MAAM,EAAE,GAAG;KACZ;IACD;QACE,SAAS,EAAE,KAAK;QAChB,WAAW,EAAE,IAAI;QACjB,IAAI,EAAE,oBAAoB;QAC1B,MAAM,EAAE,GAAG;KACZ;CACF,CAAC;AAEF,MAAM,UAAU,eAAe,CAAC,SAAiB;IAC/C,OAAO,CACL,UAAU,CAAC,IAAI,CACb,CAAC,QAAQ,EAAE,EAAE,CACX,QAAQ,CAAC,SAAS,CAAC,WAAW,EAAE,KAAK,SAAS,CAAC,WAAW,EAAE,CAC/D,IAAI;QACH,2BAA2B;QAC3B,IAAI,EAAE,mBAAmB;QACzB,WAAW,EAAE,IAAI;QACjB,IAAI,EAAE,SAAS;QACf,MAAM,EAAE,GAAG;QACX,SAAS,EAAE,SAAsC;KAClD,CACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,WAAW,CACzB,QAAsB,EACtB,IAA2B;IAE3B,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CACrB,KAAC,QAAQ,CAAC,IAAI,IAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAI,CACxC,CAAC,CAAC,CAAC,CACF,cACE,GAAG,EAAE,wBAAwB,QAAQ,CAAC,WAAW,CAAC,WAAW,EAAE,cAAc,EAC7E,GAAG,EAAE,QAAQ,CAAC,SAAS,EACvB,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,EACrB,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,GACtB,CACH,CAAC;AACJ,CAAC;AACD,MAAM,mBAAmB,GAAW,CAAC,KAAK,EAAE,EAAE;IAC5C,OAAO,KAAC,eAAe,IAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,IAAI,GAAI,CAAC;AACpE,CAAC,CAAC"}