@unifold/connect-react 0.1.81 → 0.1.82

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 (3) hide show
  1. package/dist/index.js +737 -121
  2. package/dist/index.mjs +661 -45
  3. package/package.json +6 -6
package/dist/index.js CHANGED
@@ -1152,66 +1152,66 @@ ${new this._window.XMLSerializer().serializeToString(e3)}`;
1152
1152
  // src/index.ts
1153
1153
  var index_exports = {};
1154
1154
  __export(index_exports, {
1155
- ActionType: () => import_core62.ActionType,
1155
+ ActionType: () => import_core63.ActionType,
1156
1156
  Button: () => Button,
1157
- CheckoutEventType: () => import_core62.CheckoutEventType,
1157
+ CheckoutEventType: () => import_core63.CheckoutEventType,
1158
1158
  ConfirmingView: () => ConfirmingView,
1159
- DepositEventType: () => import_core62.DepositEventType,
1160
- ExecutionStatus: () => import_core62.ExecutionStatus,
1159
+ DepositEventType: () => import_core63.DepositEventType,
1160
+ ExecutionStatus: () => import_core63.ExecutionStatus,
1161
1161
  I18nProvider: () => I18nProvider,
1162
- SOLANA_USDC_ADDRESS: () => import_core62.SOLANA_USDC_ADDRESS,
1162
+ SOLANA_USDC_ADDRESS: () => import_core63.SOLANA_USDC_ADDRESS,
1163
1163
  SUPPORTED_LOCALES: () => SUPPORTED_LOCALES,
1164
1164
  UnifoldProvider: () => UnifoldProvider,
1165
- WithdrawEventType: () => import_core62.WithdrawEventType,
1166
- createDepositAddress: () => import_core62.createDepositAddress,
1167
- createOnrampSession: () => import_core62.createOnrampSession,
1165
+ WithdrawEventType: () => import_core63.WithdrawEventType,
1166
+ createDepositAddress: () => import_core63.createDepositAddress,
1167
+ createOnrampSession: () => import_core63.createOnrampSession,
1168
1168
  detectBrowserLocale: () => detectBrowserLocale,
1169
- generatePrefixedKSUID: () => import_core62.generatePrefixedKSUID,
1170
- getApiBaseUrl: () => import_core62.getApiBaseUrl,
1171
- getChainName: () => import_core62.getChainName,
1172
- getDefaultOnrampToken: () => import_core62.getDefaultOnrampToken,
1173
- getDepositQuote: () => import_core62.getDepositQuote,
1174
- getFiatCurrencies: () => import_core62.getFiatCurrencies,
1175
- getIconUrl: () => import_core62.getIconUrl,
1176
- getIconUrlWithCdn: () => import_core62.getIconUrlWithCdn,
1177
- getIpAddress: () => import_core62.getIpAddress,
1178
- getOnrampQuotes: () => import_core62.getOnrampQuotes,
1179
- getPreferredIconUrl: () => import_core62.getPreferredIconUrl,
1180
- getProjectConfig: () => import_core62.getProjectConfig,
1181
- getSupportedDepositTokens: () => import_core62.getSupportedDepositTokens,
1182
- getSupportedDestinationTokens: () => import_core62.getSupportedDestinationTokens,
1183
- getTokenChains: () => import_core62.getTokenChains,
1184
- getWalletByChainType: () => import_core62.getWalletByChainType,
1185
- i18n: () => import_core62.i18n,
1169
+ generatePrefixedKSUID: () => import_core63.generatePrefixedKSUID,
1170
+ getApiBaseUrl: () => import_core63.getApiBaseUrl,
1171
+ getChainName: () => import_core63.getChainName,
1172
+ getDefaultOnrampToken: () => import_core63.getDefaultOnrampToken,
1173
+ getDepositQuote: () => import_core63.getDepositQuote,
1174
+ getFiatCurrencies: () => import_core63.getFiatCurrencies,
1175
+ getIconUrl: () => import_core63.getIconUrl,
1176
+ getIconUrlWithCdn: () => import_core63.getIconUrlWithCdn,
1177
+ getIpAddress: () => import_core63.getIpAddress,
1178
+ getOnrampQuotes: () => import_core63.getOnrampQuotes,
1179
+ getPreferredIconUrl: () => import_core63.getPreferredIconUrl,
1180
+ getProjectConfig: () => import_core63.getProjectConfig,
1181
+ getSupportedDepositTokens: () => import_core63.getSupportedDepositTokens,
1182
+ getSupportedDestinationTokens: () => import_core63.getSupportedDestinationTokens,
1183
+ getTokenChains: () => import_core63.getTokenChains,
1184
+ getWalletByChainType: () => import_core63.getWalletByChainType,
1185
+ i18n: () => import_core63.i18n,
1186
1186
  interpolate: () => interpolate,
1187
1187
  normalizeLocale: () => normalizeLocale,
1188
- queryExecutions: () => import_core62.queryExecutions,
1189
- retrievePaymentIntent: () => import_core62.retrievePaymentIntent,
1190
- sendSolanaTransaction: () => import_core62.sendSolanaTransaction,
1191
- setApiConfig: () => import_core62.setApiConfig,
1192
- stripeConfirmSession: () => import_core62.stripeConfirmSession,
1193
- stripeCreateAuthIntent: () => import_core62.stripeCreateAuthIntent,
1194
- stripeCreateSession: () => import_core62.stripeCreateSession,
1195
- stripeExchangeTokens: () => import_core62.stripeExchangeTokens,
1196
- stripeGetConfig: () => import_core62.stripeGetConfig,
1197
- stripeGetCustomer: () => import_core62.stripeGetCustomer,
1198
- stripeGetDefaultToken: () => import_core62.stripeGetDefaultToken,
1199
- stripeGetQuotes: () => import_core62.stripeGetQuotes,
1200
- stripeGetSession: () => import_core62.stripeGetSession,
1201
- stripeListPaymentTokens: () => import_core62.stripeListPaymentTokens,
1202
- stripeListWallets: () => import_core62.stripeListWallets,
1203
- stripeRefreshQuote: () => import_core62.stripeRefreshQuote,
1204
- stripeRefreshToken: () => import_core62.stripeRefreshToken,
1188
+ queryExecutions: () => import_core63.queryExecutions,
1189
+ retrievePaymentIntent: () => import_core63.retrievePaymentIntent,
1190
+ sendSolanaTransaction: () => import_core63.sendSolanaTransaction,
1191
+ setApiConfig: () => import_core63.setApiConfig,
1192
+ stripeConfirmSession: () => import_core63.stripeConfirmSession,
1193
+ stripeCreateAuthIntent: () => import_core63.stripeCreateAuthIntent,
1194
+ stripeCreateSession: () => import_core63.stripeCreateSession,
1195
+ stripeExchangeTokens: () => import_core63.stripeExchangeTokens,
1196
+ stripeGetConfig: () => import_core63.stripeGetConfig,
1197
+ stripeGetCustomer: () => import_core63.stripeGetCustomer,
1198
+ stripeGetDefaultToken: () => import_core63.stripeGetDefaultToken,
1199
+ stripeGetQuotes: () => import_core63.stripeGetQuotes,
1200
+ stripeGetSession: () => import_core63.stripeGetSession,
1201
+ stripeListPaymentTokens: () => import_core63.stripeListPaymentTokens,
1202
+ stripeListWallets: () => import_core63.stripeListWallets,
1203
+ stripeRefreshQuote: () => import_core63.stripeRefreshQuote,
1204
+ stripeRefreshToken: () => import_core63.stripeRefreshToken,
1205
1205
  useAllowedCountry: () => useAllowedCountry2,
1206
1206
  useI18n: () => useI18n,
1207
1207
  useSupportedDepositTokens: () => useSupportedDepositTokens,
1208
1208
  useUnifold: () => useUnifold,
1209
- useUserIp: () => import_core62.useUserIp
1209
+ useUserIp: () => import_core63.useUserIp
1210
1210
  });
1211
1211
  module.exports = __toCommonJS(index_exports);
1212
1212
 
1213
1213
  // src/provider.tsx
1214
- var import_react47 = __toESM(require("react"));
1214
+ var import_react48 = __toESM(require("react"));
1215
1215
  var import_react_provider = require("@unifold/react-provider");
1216
1216
 
1217
1217
  // ../ui-react/dist/index.mjs
@@ -6584,7 +6584,7 @@ function generateKSUID() {
6584
6584
  function generatePrefixedKSUID(prefix) {
6585
6585
  return `${prefix}_${generateKSUID()}`;
6586
6586
  }
6587
- var PACKAGE_VERSION = "0.1.81";
6587
+ var PACKAGE_VERSION = "0.1.82";
6588
6588
  var LIBRARY_NAME = "@unifold/analytics";
6589
6589
  var DEFAULT_DEDUP_MS = 500;
6590
6590
  var SESSION_PREFIX = "asess";
@@ -12917,11 +12917,20 @@ var import_core60 = require("@unifold/core");
12917
12917
  var import_jsx_runtime98 = require("react/jsx-runtime");
12918
12918
  var import_react46 = require("react");
12919
12919
  var import_jsx_runtime99 = require("react/jsx-runtime");
12920
+ var import_core61 = require("@unifold/core");
12921
+ var import_jsx_runtime100 = require("react/jsx-runtime");
12922
+ var import_react47 = require("react");
12923
+ var import_react_dom3 = require("react-dom");
12924
+ var import_jsx_runtime101 = require("react/jsx-runtime");
12925
+ var import_jsx_runtime102 = require("react/jsx-runtime");
12920
12926
  var en_default = {
12921
12927
  common: {
12922
12928
  loading: "Loading...",
12923
12929
  search: "Search",
12924
12930
  close: "Close",
12931
+ noResults: "No matches found",
12932
+ selectCountry: "Select country",
12933
+ selectState: "Select state",
12925
12934
  review: "Review",
12926
12935
  tryAgain: "Try Again",
12927
12936
  somethingWentWrong: "Something went wrong",
@@ -13144,6 +13153,7 @@ var en_default = {
13144
13153
  not_opted_in: "Please make sure you opt-in {{token_symbol}}({{chain_name}}) before receiving funds",
13145
13154
  insufficient_balance: "Recipient account does not meet the minimum balance requirement",
13146
13155
  account_not_found: "Recipient account does not exist on {{chain_name}}",
13156
+ destination_tag_required: "This {{chain_name}} address requires a memo tag. Please provide your memo tag as well, in the format address:memotag",
13147
13157
  validation_error: "Unable to verify recipient address on {{chain_name}}"
13148
13158
  },
13149
13159
  defaultError: "The recipient address cannot receive funds for the selected token"
@@ -13722,12 +13732,18 @@ var en_default = {
13722
13732
  receiveChain: "Receive chain",
13723
13733
  recipientAddress: "Recipient address",
13724
13734
  recipientAddressPlaceholder: "Enter wallet address",
13735
+ recipientAddressPlaceholderXrpl: "Enter wallet address, or address:memotag",
13725
13736
  amount: "Amount",
13726
13737
  amountPlaceholder: "0.00",
13727
13738
  balance: "Balance",
13728
13739
  minimum: "min",
13729
13740
  withdraw: "Withdraw",
13730
13741
  invalidAddress: "Please enter a valid address",
13742
+ invalidXrplAddress: "Please enter a valid {{chain_name}} address. If your recipient requires a memo tag, please provide it as well, in the format address:memotag",
13743
+ memoTag: "Memo tag",
13744
+ memoTagPlaceholder: "e.g. 12345",
13745
+ memoTagRequiredHint: "This {{chain_name}} address requires a memo tag before it can receive funds",
13746
+ invalidMemoTag: "Memo tag must be a whole number between 0 and 4294967295",
13731
13747
  invalidAmount: "Please enter a valid amount",
13732
13748
  verifyingAddress: "Verifying address...",
13733
13749
  loading: "Loading...",
@@ -13775,6 +13791,9 @@ var zh_default = {
13775
13791
  loading: "\u52A0\u8F7D\u4E2D...",
13776
13792
  search: "\u641C\u7D22",
13777
13793
  close: "\u5173\u95ED",
13794
+ noResults: "\u6CA1\u6709\u5339\u914D\u7684\u7ED3\u679C",
13795
+ selectCountry: "\u9009\u62E9\u56FD\u5BB6",
13796
+ selectState: "\u9009\u62E9\u5DDE",
13778
13797
  review: "\u786E\u8BA4\u4FE1\u606F",
13779
13798
  tryAgain: "\u91CD\u8BD5",
13780
13799
  somethingWentWrong: "\u51FA\u73B0\u9519\u8BEF",
@@ -13997,6 +14016,7 @@ var zh_default = {
13997
14016
  not_opted_in: "\u8BF7\u5148\u5728 {{chain_name}} \u4E0A\u5F00\u901A {{token_symbol}}\uFF0C\u7136\u540E\u518D\u63A5\u6536\u8D44\u91D1",
13998
14017
  insufficient_balance: "\u6536\u6B3E\u8D26\u6237\u672A\u6EE1\u8DB3\u6700\u4F4E\u4F59\u989D\u8981\u6C42",
13999
14018
  account_not_found: "\u6536\u6B3E\u8D26\u6237\u5728 {{chain_name}} \u4E0A\u4E0D\u5B58\u5728",
14019
+ destination_tag_required: "\u8BE5 {{chain_name}} \u5730\u5740\u9700\u8981\u76EE\u6807\u6807\u7B7E\uFF08Destination Tag\uFF09\uFF0C\u8BF7\u4E00\u5E76\u586B\u5199\u6807\u7B7E\uFF0C\u683C\u5F0F\u4E3A \u5730\u5740:\u6807\u7B7E",
14000
14020
  validation_error: "\u65E0\u6CD5\u5728 {{chain_name}} \u4E0A\u9A8C\u8BC1\u6536\u6B3E\u5730\u5740"
14001
14021
  },
14002
14022
  defaultError: "\u8BE5\u6536\u6B3E\u5730\u5740\u65E0\u6CD5\u63A5\u6536\u6240\u9009\u4EE3\u5E01\u7684\u8D44\u91D1"
@@ -14575,12 +14595,18 @@ var zh_default = {
14575
14595
  receiveChain: "\u63A5\u6536\u7F51\u7EDC",
14576
14596
  recipientAddress: "\u6536\u6B3E\u5730\u5740",
14577
14597
  recipientAddressPlaceholder: "\u8F93\u5165\u94B1\u5305\u5730\u5740",
14598
+ recipientAddressPlaceholderXrpl: "\u8F93\u5165\u5730\u5740\uFF0C\u6216 \u5730\u5740:\u6807\u7B7E",
14578
14599
  amount: "\u91D1\u989D",
14579
14600
  amountPlaceholder: "0.00",
14580
14601
  balance: "\u4F59\u989D",
14581
14602
  minimum: "\u6700\u4F4E",
14582
14603
  withdraw: "\u63D0\u73B0",
14583
14604
  invalidAddress: "\u8BF7\u8F93\u5165\u6709\u6548\u5730\u5740",
14605
+ invalidXrplAddress: "\u8BF7\u8F93\u5165\u6709\u6548\u7684 {{chain_name}} \u5730\u5740\u3002\u5982\u679C\u6536\u6B3E\u65B9\u9700\u8981\u76EE\u6807\u6807\u7B7E\uFF0C\u8BF7\u4E00\u5E76\u586B\u5199\uFF0C\u683C\u5F0F\u4E3A \u5730\u5740:\u6807\u7B7E",
14606
+ memoTag: "\u76EE\u6807\u6807\u7B7E",
14607
+ memoTagPlaceholder: "\u4F8B\u5982 12345",
14608
+ memoTagRequiredHint: "\u8BE5 {{chain_name}} \u5730\u5740\u9700\u8981\u586B\u5199\u76EE\u6807\u6807\u7B7E\u624D\u80FD\u6536\u6B3E",
14609
+ invalidMemoTag: "\u76EE\u6807\u6807\u7B7E\u5FC5\u987B\u662F 0 \u5230 4294967295 \u4E4B\u95F4\u7684\u6574\u6570",
14584
14610
  invalidAmount: "\u8BF7\u8F93\u5165\u6709\u6548\u91D1\u989D",
14585
14611
  verifyingAddress: "\u6B63\u5728\u9A8C\u8BC1\u5730\u5740...",
14586
14612
  loading: "\u52A0\u8F7D\u4E2D...",
@@ -14628,6 +14654,9 @@ var zh_TW_default = {
14628
14654
  loading: "\u8F09\u5165\u4E2D...",
14629
14655
  search: "\u641C\u5C0B",
14630
14656
  close: "\u95DC\u9589",
14657
+ noResults: "\u6C92\u6709\u7B26\u5408\u7684\u7D50\u679C",
14658
+ selectCountry: "\u9078\u64C7\u570B\u5BB6",
14659
+ selectState: "\u9078\u64C7\u5DDE",
14631
14660
  review: "\u78BA\u8A8D\u8CC7\u8A0A",
14632
14661
  tryAgain: "\u91CD\u8A66",
14633
14662
  somethingWentWrong: "\u767C\u751F\u932F\u8AA4",
@@ -14850,6 +14879,7 @@ var zh_TW_default = {
14850
14879
  not_opted_in: "\u8ACB\u5148\u5728 {{chain_name}} \u4E0A\u958B\u901A {{token_symbol}}\uFF0C\u7136\u5F8C\u518D\u63A5\u6536\u8CC7\u91D1",
14851
14880
  insufficient_balance: "\u6536\u6B3E\u5E33\u6236\u672A\u9054\u6700\u4F4E\u9918\u984D\u8981\u6C42",
14852
14881
  account_not_found: "\u6536\u6B3E\u5E33\u6236\u5728 {{chain_name}} \u4E0A\u4E0D\u5B58\u5728",
14882
+ destination_tag_required: "\u8A72 {{chain_name}} \u5730\u5740\u9700\u8981\u76EE\u7684\u5730\u6A19\u7C64\uFF08Destination Tag\uFF09\uFF0C\u8ACB\u4E00\u4F75\u586B\u5BEB\u6A19\u7C64\uFF0C\u683C\u5F0F\u70BA \u5730\u5740:\u6A19\u7C64",
14853
14883
  validation_error: "\u7121\u6CD5\u5728 {{chain_name}} \u4E0A\u9A57\u8B49\u6536\u6B3E\u5730\u5740"
14854
14884
  },
14855
14885
  defaultError: "\u8A72\u6536\u6B3E\u5730\u5740\u7121\u6CD5\u63A5\u6536\u6240\u9078\u4EE3\u5E63\u7684\u8CC7\u91D1"
@@ -15428,12 +15458,18 @@ var zh_TW_default = {
15428
15458
  receiveChain: "\u63A5\u6536\u7DB2\u8DEF",
15429
15459
  recipientAddress: "\u6536\u6B3E\u5730\u5740",
15430
15460
  recipientAddressPlaceholder: "\u8F38\u5165\u9322\u5305\u5730\u5740",
15461
+ recipientAddressPlaceholderXrpl: "\u8F38\u5165\u5730\u5740\uFF0C\u6216 \u5730\u5740:\u6A19\u7C64",
15431
15462
  amount: "\u91D1\u984D",
15432
15463
  amountPlaceholder: "0.00",
15433
15464
  balance: "\u9918\u984D",
15434
15465
  minimum: "\u6700\u4F4E",
15435
15466
  withdraw: "\u63D0\u9818",
15436
15467
  invalidAddress: "\u8ACB\u8F38\u5165\u6709\u6548\u5730\u5740",
15468
+ invalidXrplAddress: "\u8ACB\u8F38\u5165\u6709\u6548\u7684 {{chain_name}} \u5730\u5740\u3002\u82E5\u6536\u6B3E\u65B9\u9700\u8981\u76EE\u7684\u5730\u6A19\u7C64\uFF0C\u8ACB\u4E00\u4F75\u586B\u5BEB\uFF0C\u683C\u5F0F\u70BA \u5730\u5740:\u6A19\u7C64",
15469
+ memoTag: "\u76EE\u7684\u5730\u6A19\u7C64",
15470
+ memoTagPlaceholder: "\u4F8B\u5982 12345",
15471
+ memoTagRequiredHint: "\u8A72 {{chain_name}} \u5730\u5740\u9700\u8981\u586B\u5BEB\u76EE\u7684\u5730\u6A19\u7C64\u624D\u80FD\u6536\u6B3E",
15472
+ invalidMemoTag: "\u76EE\u7684\u5730\u6A19\u7C64\u5FC5\u9808\u662F 0 \u5230 4294967295 \u4E4B\u9593\u7684\u6574\u6578",
15437
15473
  invalidAmount: "\u8ACB\u8F38\u5165\u6709\u6548\u91D1\u984D",
15438
15474
  verifyingAddress: "\u6B63\u5728\u9A57\u8B49\u5730\u5740...",
15439
15475
  loading: "\u8F09\u5165\u4E2D...",
@@ -15481,6 +15517,9 @@ var fr_default = {
15481
15517
  loading: "Chargement...",
15482
15518
  search: "Rechercher",
15483
15519
  close: "Fermer",
15520
+ noResults: "Aucun r\xE9sultat",
15521
+ selectCountry: "S\xE9lectionner un pays",
15522
+ selectState: "S\xE9lectionner un \xC9tat",
15484
15523
  review: "V\xE9rifier",
15485
15524
  tryAgain: "R\xE9essayer",
15486
15525
  somethingWentWrong: "Une erreur s'est produite",
@@ -15703,6 +15742,7 @@ var fr_default = {
15703
15742
  not_opted_in: "Veuillez d'abord activer {{token_symbol}} ({{chain_name}}) avant de recevoir des fonds",
15704
15743
  insufficient_balance: "Le compte destinataire ne respecte pas le solde minimum requis",
15705
15744
  account_not_found: "Le compte destinataire n'existe pas sur {{chain_name}}",
15745
+ destination_tag_required: "Cette adresse {{chain_name}} n\xE9cessite un tag de destination. Veuillez \xE9galement indiquer votre tag, au format adresse:tag",
15706
15746
  validation_error: "Impossible de v\xE9rifier l'adresse du destinataire sur {{chain_name}}"
15707
15747
  },
15708
15748
  defaultError: "L'adresse du destinataire ne peut pas recevoir de fonds pour le jeton s\xE9lectionn\xE9"
@@ -16281,12 +16321,18 @@ var fr_default = {
16281
16321
  receiveChain: "R\xE9seau de r\xE9ception",
16282
16322
  recipientAddress: "Adresse du destinataire",
16283
16323
  recipientAddressPlaceholder: "Saisir l'adresse du portefeuille",
16324
+ recipientAddressPlaceholderXrpl: "Saisir l'adresse, ou adresse:tag",
16284
16325
  amount: "Montant",
16285
16326
  amountPlaceholder: "0,00",
16286
16327
  balance: "Solde",
16287
16328
  minimum: "min.",
16288
16329
  withdraw: "Retirer",
16289
16330
  invalidAddress: "Veuillez saisir une adresse valide",
16331
+ invalidXrplAddress: "Veuillez saisir une adresse {{chain_name}} valide. Si votre destinataire n\xE9cessite un tag de destination, indiquez-le \xE9galement, au format adresse:tag",
16332
+ memoTag: "Tag de destination",
16333
+ memoTagPlaceholder: "ex. 12345",
16334
+ memoTagRequiredHint: "Cette adresse {{chain_name}} n\xE9cessite un tag de destination pour recevoir des fonds",
16335
+ invalidMemoTag: "Le tag de destination doit \xEAtre un nombre entier entre 0 et 4294967295",
16290
16336
  invalidAmount: "Veuillez saisir un montant valide",
16291
16337
  verifyingAddress: "V\xE9rification de l'adresse...",
16292
16338
  loading: "Chargement...",
@@ -16334,6 +16380,9 @@ var th_default = {
16334
16380
  loading: "\u0E01\u0E33\u0E25\u0E31\u0E07\u0E42\u0E2B\u0E25\u0E14...",
16335
16381
  search: "\u0E04\u0E49\u0E19\u0E2B\u0E32",
16336
16382
  close: "\u0E1B\u0E34\u0E14",
16383
+ noResults: "\u0E44\u0E21\u0E48\u0E1E\u0E1A\u0E23\u0E32\u0E22\u0E01\u0E32\u0E23\u0E17\u0E35\u0E48\u0E15\u0E23\u0E07\u0E01\u0E31\u0E19",
16384
+ selectCountry: "\u0E40\u0E25\u0E37\u0E2D\u0E01\u0E1B\u0E23\u0E30\u0E40\u0E17\u0E28",
16385
+ selectState: "\u0E40\u0E25\u0E37\u0E2D\u0E01\u0E23\u0E31\u0E10",
16337
16386
  review: "\u0E15\u0E23\u0E27\u0E08\u0E2A\u0E2D\u0E1A",
16338
16387
  tryAgain: "\u0E25\u0E2D\u0E07\u0E2D\u0E35\u0E01\u0E04\u0E23\u0E31\u0E49\u0E07",
16339
16388
  somethingWentWrong: "\u0E40\u0E01\u0E34\u0E14\u0E02\u0E49\u0E2D\u0E1C\u0E34\u0E14\u0E1E\u0E25\u0E32\u0E14",
@@ -16556,6 +16605,7 @@ var th_default = {
16556
16605
  not_opted_in: "\u0E42\u0E1B\u0E23\u0E14\u0E40\u0E1B\u0E34\u0E14\u0E43\u0E0A\u0E49 {{token_symbol}} ({{chain_name}}) \u0E01\u0E48\u0E2D\u0E19\u0E23\u0E31\u0E1A\u0E40\u0E07\u0E34\u0E19",
16557
16606
  insufficient_balance: "\u0E1A\u0E31\u0E0D\u0E0A\u0E35\u0E1C\u0E39\u0E49\u0E23\u0E31\u0E1A\u0E44\u0E21\u0E48\u0E21\u0E35\u0E22\u0E2D\u0E14\u0E04\u0E07\u0E40\u0E2B\u0E25\u0E37\u0E2D\u0E02\u0E31\u0E49\u0E19\u0E15\u0E48\u0E33\u0E15\u0E32\u0E21\u0E17\u0E35\u0E48\u0E01\u0E33\u0E2B\u0E19\u0E14",
16558
16607
  account_not_found: "\u0E44\u0E21\u0E48\u0E21\u0E35\u0E1A\u0E31\u0E0D\u0E0A\u0E35\u0E1C\u0E39\u0E49\u0E23\u0E31\u0E1A\u0E1A\u0E19 {{chain_name}}",
16608
+ destination_tag_required: "\u0E17\u0E35\u0E48\u0E2D\u0E22\u0E39\u0E48 {{chain_name}} \u0E19\u0E35\u0E49\u0E15\u0E49\u0E2D\u0E07\u0E21\u0E35 destination tag \u0E01\u0E23\u0E38\u0E13\u0E32\u0E23\u0E30\u0E1A\u0E38\u0E41\u0E17\u0E47\u0E01\u0E02\u0E2D\u0E07\u0E04\u0E38\u0E13\u0E14\u0E49\u0E27\u0E22 \u0E43\u0E19\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A \u0E17\u0E35\u0E48\u0E2D\u0E22\u0E39\u0E48:\u0E41\u0E17\u0E47\u0E01",
16559
16609
  validation_error: "\u0E44\u0E21\u0E48\u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16\u0E15\u0E23\u0E27\u0E08\u0E2A\u0E2D\u0E1A\u0E17\u0E35\u0E48\u0E2D\u0E22\u0E39\u0E48\u0E1C\u0E39\u0E49\u0E23\u0E31\u0E1A\u0E1A\u0E19 {{chain_name}} \u0E44\u0E14\u0E49"
16560
16610
  },
16561
16611
  defaultError: "\u0E17\u0E35\u0E48\u0E2D\u0E22\u0E39\u0E48\u0E1C\u0E39\u0E49\u0E23\u0E31\u0E1A\u0E44\u0E21\u0E48\u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16\u0E23\u0E31\u0E1A\u0E40\u0E07\u0E34\u0E19\u0E2A\u0E33\u0E2B\u0E23\u0E31\u0E1A\u0E42\u0E17\u0E40\u0E04\u0E19\u0E17\u0E35\u0E48\u0E40\u0E25\u0E37\u0E2D\u0E01\u0E44\u0E14\u0E49"
@@ -17134,12 +17184,18 @@ var th_default = {
17134
17184
  receiveChain: "\u0E40\u0E04\u0E23\u0E37\u0E2D\u0E02\u0E48\u0E32\u0E22\u0E17\u0E35\u0E48\u0E44\u0E14\u0E49\u0E23\u0E31\u0E1A",
17135
17185
  recipientAddress: "\u0E17\u0E35\u0E48\u0E2D\u0E22\u0E39\u0E48\u0E1C\u0E39\u0E49\u0E23\u0E31\u0E1A",
17136
17186
  recipientAddressPlaceholder: "\u0E01\u0E23\u0E2D\u0E01\u0E17\u0E35\u0E48\u0E2D\u0E22\u0E39\u0E48\u0E01\u0E23\u0E30\u0E40\u0E1B\u0E4B\u0E32\u0E40\u0E07\u0E34\u0E19",
17187
+ recipientAddressPlaceholderXrpl: "\u0E01\u0E23\u0E2D\u0E01\u0E17\u0E35\u0E48\u0E2D\u0E22\u0E39\u0E48 \u0E2B\u0E23\u0E37\u0E2D \u0E17\u0E35\u0E48\u0E2D\u0E22\u0E39\u0E48:\u0E41\u0E17\u0E47\u0E01",
17137
17188
  amount: "\u0E08\u0E33\u0E19\u0E27\u0E19",
17138
17189
  amountPlaceholder: "0.00",
17139
17190
  balance: "\u0E22\u0E2D\u0E14\u0E04\u0E07\u0E40\u0E2B\u0E25\u0E37\u0E2D",
17140
17191
  minimum: "\u0E02\u0E31\u0E49\u0E19\u0E15\u0E48\u0E33",
17141
17192
  withdraw: "\u0E16\u0E2D\u0E19",
17142
17193
  invalidAddress: "\u0E42\u0E1B\u0E23\u0E14\u0E01\u0E23\u0E2D\u0E01\u0E17\u0E35\u0E48\u0E2D\u0E22\u0E39\u0E48\u0E17\u0E35\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07",
17194
+ invalidXrplAddress: "\u0E42\u0E1B\u0E23\u0E14\u0E01\u0E23\u0E2D\u0E01\u0E17\u0E35\u0E48\u0E2D\u0E22\u0E39\u0E48 {{chain_name}} \u0E17\u0E35\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07 \u0E2B\u0E32\u0E01\u0E1C\u0E39\u0E49\u0E23\u0E31\u0E1A\u0E15\u0E49\u0E2D\u0E07\u0E43\u0E0A\u0E49 destination tag \u0E01\u0E23\u0E38\u0E13\u0E32\u0E23\u0E30\u0E1A\u0E38\u0E14\u0E49\u0E27\u0E22\u0E43\u0E19\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A \u0E17\u0E35\u0E48\u0E2D\u0E22\u0E39\u0E48:\u0E41\u0E17\u0E47\u0E01",
17195
+ memoTag: "Destination tag",
17196
+ memoTagPlaceholder: "\u0E40\u0E0A\u0E48\u0E19 12345",
17197
+ memoTagRequiredHint: "\u0E17\u0E35\u0E48\u0E2D\u0E22\u0E39\u0E48 {{chain_name}} \u0E19\u0E35\u0E49\u0E15\u0E49\u0E2D\u0E07\u0E21\u0E35 destination tag \u0E08\u0E36\u0E07\u0E08\u0E30\u0E23\u0E31\u0E1A\u0E40\u0E07\u0E34\u0E19\u0E44\u0E14\u0E49",
17198
+ invalidMemoTag: "Destination tag \u0E15\u0E49\u0E2D\u0E07\u0E40\u0E1B\u0E47\u0E19\u0E08\u0E33\u0E19\u0E27\u0E19\u0E40\u0E15\u0E47\u0E21\u0E23\u0E30\u0E2B\u0E27\u0E48\u0E32\u0E07 0 \u0E16\u0E36\u0E07 4294967295",
17143
17199
  invalidAmount: "\u0E42\u0E1B\u0E23\u0E14\u0E01\u0E23\u0E2D\u0E01\u0E08\u0E33\u0E19\u0E27\u0E19\u0E17\u0E35\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07",
17144
17200
  verifyingAddress: "\u0E01\u0E33\u0E25\u0E31\u0E07\u0E15\u0E23\u0E27\u0E08\u0E2A\u0E2D\u0E1A\u0E17\u0E35\u0E48\u0E2D\u0E22\u0E39\u0E48...",
17145
17201
  loading: "\u0E01\u0E33\u0E25\u0E31\u0E07\u0E42\u0E2B\u0E25\u0E14...",
@@ -17187,6 +17243,9 @@ var ja_default = {
17187
17243
  loading: "\u8AAD\u307F\u8FBC\u307F\u4E2D...",
17188
17244
  search: "\u691C\u7D22",
17189
17245
  close: "\u9589\u3058\u308B",
17246
+ noResults: "\u4E00\u81F4\u3059\u308B\u9805\u76EE\u304C\u3042\u308A\u307E\u305B\u3093",
17247
+ selectCountry: "\u56FD\u3092\u9078\u629E",
17248
+ selectState: "\u5DDE\u3092\u9078\u629E",
17190
17249
  review: "\u78BA\u8A8D",
17191
17250
  tryAgain: "\u518D\u8A66\u884C",
17192
17251
  somethingWentWrong: "\u554F\u984C\u304C\u767A\u751F\u3057\u307E\u3057\u305F",
@@ -17409,6 +17468,7 @@ var ja_default = {
17409
17468
  not_opted_in: "\u8CC7\u91D1\u3092\u53D7\u3051\u53D6\u308B\u524D\u306B\u3001{{chain_name}}\u3067{{token_symbol}}\u3092\u30AA\u30D7\u30C8\u30A4\u30F3\u3057\u3066\u304F\u3060\u3055\u3044",
17410
17469
  insufficient_balance: "\u53D7\u53D6\u53E3\u5EA7\u304C\u6700\u4F4E\u6B8B\u9AD8\u306E\u8981\u4EF6\u3092\u6E80\u305F\u3057\u3066\u3044\u307E\u305B\u3093",
17411
17470
  account_not_found: "{{chain_name}}\u4E0A\u306B\u53D7\u53D6\u53E3\u5EA7\u304C\u5B58\u5728\u3057\u307E\u305B\u3093",
17471
+ destination_tag_required: "\u3053\u306E{{chain_name}}\u30A2\u30C9\u30EC\u30B9\u306B\u306F\u5B9B\u5148\u30BF\u30B0\u304C\u5FC5\u8981\u3067\u3059\u3002\u5B9B\u5148\u30BF\u30B0\u3082\u300C\u30A2\u30C9\u30EC\u30B9:\u30BF\u30B0\u300D\u306E\u5F62\u5F0F\u3067\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044",
17412
17472
  validation_error: "{{chain_name}}\u4E0A\u306E\u53D7\u53D6\u30A2\u30C9\u30EC\u30B9\u3092\u78BA\u8A8D\u3067\u304D\u307E\u305B\u3093"
17413
17473
  },
17414
17474
  defaultError: "\u9078\u629E\u3057\u305F\u30C8\u30FC\u30AF\u30F3\u3067\u306F\u3001\u3053\u306E\u53D7\u53D6\u30A2\u30C9\u30EC\u30B9\u306B\u8CC7\u91D1\u3092\u9001\u308C\u307E\u305B\u3093"
@@ -17987,12 +18047,18 @@ var ja_default = {
17987
18047
  receiveChain: "\u53D7\u53D6\u30C1\u30A7\u30FC\u30F3",
17988
18048
  recipientAddress: "\u53D7\u53D6\u30A2\u30C9\u30EC\u30B9",
17989
18049
  recipientAddressPlaceholder: "\u30A6\u30A9\u30EC\u30C3\u30C8\u30A2\u30C9\u30EC\u30B9\u3092\u5165\u529B",
18050
+ recipientAddressPlaceholderXrpl: "\u30A2\u30C9\u30EC\u30B9\u3001\u307E\u305F\u306F \u30A2\u30C9\u30EC\u30B9:\u30BF\u30B0 \u3092\u5165\u529B",
17990
18051
  amount: "\u91D1\u984D",
17991
18052
  amountPlaceholder: "0.00",
17992
18053
  balance: "\u6B8B\u9AD8",
17993
18054
  minimum: "\u6700\u4F4E",
17994
18055
  withdraw: "\u51FA\u91D1",
17995
18056
  invalidAddress: "\u6709\u52B9\u306A\u30A2\u30C9\u30EC\u30B9\u3092\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044",
18057
+ invalidXrplAddress: "\u6709\u52B9\u306A{{chain_name}}\u30A2\u30C9\u30EC\u30B9\u3092\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044\u3002\u53D7\u53D6\u5148\u3067\u5B9B\u5148\u30BF\u30B0\u304C\u5FC5\u8981\u306A\u5834\u5408\u306F\u3001\u300C\u30A2\u30C9\u30EC\u30B9:\u30BF\u30B0\u300D\u306E\u5F62\u5F0F\u3067\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044",
18058
+ memoTag: "\u5B9B\u5148\u30BF\u30B0",
18059
+ memoTagPlaceholder: "\u4F8B: 12345",
18060
+ memoTagRequiredHint: "\u3053\u306E{{chain_name}}\u30A2\u30C9\u30EC\u30B9\u306F\u3001\u8CC7\u91D1\u3092\u53D7\u3051\u53D6\u308B\u305F\u3081\u306B\u5B9B\u5148\u30BF\u30B0\u304C\u5FC5\u8981\u3067\u3059",
18061
+ invalidMemoTag: "\u5B9B\u5148\u30BF\u30B0\u306F 0\u301C4294967295 \u306E\u6574\u6570\u3067\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044",
17996
18062
  invalidAmount: "\u6709\u52B9\u306A\u91D1\u984D\u3092\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044",
17997
18063
  verifyingAddress: "\u30A2\u30C9\u30EC\u30B9\u3092\u78BA\u8A8D\u3057\u3066\u3044\u307E\u3059...",
17998
18064
  loading: "\u8AAD\u307F\u8FBC\u307F\u4E2D...",
@@ -18040,6 +18106,9 @@ var ko_default = {
18040
18106
  loading: "\uB85C\uB529 \uC911...",
18041
18107
  search: "\uAC80\uC0C9",
18042
18108
  close: "\uB2EB\uAE30",
18109
+ noResults: "\uC77C\uCE58\uD558\uB294 \uD56D\uBAA9\uC774 \uC5C6\uC2B5\uB2C8\uB2E4",
18110
+ selectCountry: "\uAD6D\uAC00 \uC120\uD0DD",
18111
+ selectState: "\uC8FC \uC120\uD0DD",
18043
18112
  review: "\uD655\uC778",
18044
18113
  tryAgain: "\uB2E4\uC2DC \uC2DC\uB3C4",
18045
18114
  somethingWentWrong: "\uBB38\uC81C\uAC00 \uBC1C\uC0DD\uD588\uC2B5\uB2C8\uB2E4",
@@ -18262,6 +18331,7 @@ var ko_default = {
18262
18331
  not_opted_in: "\uC790\uAE08\uC744 \uBC1B\uAE30 \uC804\uC5D0 {{chain_name}}\uC5D0\uC11C {{token_symbol}}\uC744(\uB97C) \uC635\uD2B8\uC778\uD558\uC138\uC694",
18263
18332
  insufficient_balance: "\uBC1B\uB294 \uACC4\uC815\uC774 \uCD5C\uC18C \uC794\uC561 \uC694\uAC74\uC744 \uCDA9\uC871\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4",
18264
18333
  account_not_found: "{{chain_name}}\uC5D0 \uBC1B\uB294 \uACC4\uC815\uC774 \uC5C6\uC2B5\uB2C8\uB2E4",
18334
+ destination_tag_required: "\uC774 {{chain_name}} \uC8FC\uC18C\uC5D0\uB294 \uB370\uC2A4\uD2F0\uB124\uC774\uC158 \uD0DC\uADF8\uAC00 \uD544\uC694\uD569\uB2C8\uB2E4. \uD0DC\uADF8\uB3C4 \uD568\uAED8 \uC8FC\uC18C:\uD0DC\uADF8 \uD615\uC2DD\uC73C\uB85C \uC785\uB825\uD558\uC138\uC694",
18265
18335
  validation_error: "{{chain_name}}\uC5D0\uC11C \uBC1B\uB294 \uC8FC\uC18C\uB97C \uD655\uC778\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4"
18266
18336
  },
18267
18337
  defaultError: "\uC120\uD0DD\uD55C \uD1A0\uD070\uC73C\uB85C\uB294 \uC774 \uBC1B\uB294 \uC8FC\uC18C\uC5D0 \uC790\uAE08\uC744 \uBCF4\uB0BC \uC218 \uC5C6\uC2B5\uB2C8\uB2E4"
@@ -18840,12 +18910,18 @@ var ko_default = {
18840
18910
  receiveChain: "\uBC1B\uC744 \uCCB4\uC778",
18841
18911
  recipientAddress: "\uBC1B\uB294 \uC8FC\uC18C",
18842
18912
  recipientAddressPlaceholder: "\uC9C0\uAC11 \uC8FC\uC18C\uB97C \uC785\uB825\uD558\uC138\uC694",
18913
+ recipientAddressPlaceholderXrpl: "\uC8FC\uC18C \uB610\uB294 \uC8FC\uC18C:\uD0DC\uADF8 \uB97C \uC785\uB825\uD558\uC138\uC694",
18843
18914
  amount: "\uAE08\uC561",
18844
18915
  amountPlaceholder: "0.00",
18845
18916
  balance: "\uC794\uC561",
18846
18917
  minimum: "\uCD5C\uC18C",
18847
18918
  withdraw: "\uCD9C\uAE08",
18848
18919
  invalidAddress: "\uC720\uD6A8\uD55C \uC8FC\uC18C\uB97C \uC785\uB825\uD574 \uC8FC\uC138\uC694",
18920
+ invalidXrplAddress: "\uC720\uD6A8\uD55C {{chain_name}} \uC8FC\uC18C\uB97C \uC785\uB825\uD574 \uC8FC\uC138\uC694. \uC218\uCDE8\uC778\uC774 \uB370\uC2A4\uD2F0\uB124\uC774\uC158 \uD0DC\uADF8\uB97C \uC694\uAD6C\uD558\uB294 \uACBD\uC6B0 \uC8FC\uC18C:\uD0DC\uADF8 \uD615\uC2DD\uC73C\uB85C \uD568\uAED8 \uC785\uB825\uD558\uC138\uC694",
18921
+ memoTag: "\uB370\uC2A4\uD2F0\uB124\uC774\uC158 \uD0DC\uADF8",
18922
+ memoTagPlaceholder: "\uC608: 12345",
18923
+ memoTagRequiredHint: "\uC774 {{chain_name}} \uC8FC\uC18C\uB294 \uC790\uAE08\uC744 \uBC1B\uAE30 \uC704\uD574 \uB370\uC2A4\uD2F0\uB124\uC774\uC158 \uD0DC\uADF8\uAC00 \uD544\uC694\uD569\uB2C8\uB2E4",
18924
+ invalidMemoTag: "\uB370\uC2A4\uD2F0\uB124\uC774\uC158 \uD0DC\uADF8\uB294 0\uC5D0\uC11C 4294967295 \uC0AC\uC774\uC758 \uC815\uC218\uC5EC\uC57C \uD569\uB2C8\uB2E4",
18849
18925
  invalidAmount: "\uC720\uD6A8\uD55C \uAE08\uC561\uC744 \uC785\uB825\uD574 \uC8FC\uC138\uC694",
18850
18926
  verifyingAddress: "\uC8FC\uC18C\uB97C \uD655\uC778\uD558\uB294 \uC911...",
18851
18927
  loading: "\uB85C\uB529 \uC911...",
@@ -21698,6 +21774,17 @@ function DepositPollingToasts({
21698
21774
  }
21699
21775
  );
21700
21776
  }
21777
+ var initialCardOnrampSessionState = {
21778
+ active: null,
21779
+ started: false
21780
+ };
21781
+ function startCardOnrampSession(session) {
21782
+ return { active: session, started: true };
21783
+ }
21784
+ function cardOnrampSessionForView(state, view) {
21785
+ if (view === "review" || state.active === null) return state;
21786
+ return { active: null, started: state.started };
21787
+ }
21701
21788
  function formatFiatAmount(value, symbol) {
21702
21789
  return `${symbol}${value.toLocaleString(void 0, {
21703
21790
  minimumFractionDigits: 2,
@@ -21776,10 +21863,13 @@ function BuyWithCard({
21776
21863
  const [defaultToken, setDefaultToken] = (0, import_react8.useState)(null);
21777
21864
  const [defaultTokenLoading, setDefaultTokenLoading] = (0, import_react8.useState)(false);
21778
21865
  const { userIpInfo, isLoading: isLoadingIp } = useUserIp();
21779
- const [onrampSession, setOnrampSession] = (0, import_react8.useState)(null);
21866
+ const [onrampSession, setOnrampSession] = (0, import_react8.useState)(initialCardOnrampSessionState);
21780
21867
  const currentView = externalView ?? internalView;
21781
21868
  const showQuotesView = currentView === "quotes";
21782
21869
  const showReviewView = currentView === "review";
21870
+ (0, import_react8.useEffect)(() => {
21871
+ setOnrampSession((prev) => cardOnrampSessionForView(prev, currentView));
21872
+ }, [currentView]);
21783
21873
  (0, import_react8.useEffect)(() => {
21784
21874
  if (externalView) {
21785
21875
  setInternalView(externalView);
@@ -21931,7 +22021,7 @@ function BuyWithCard({
21931
22021
  const { executions, isPolling } = useDepositPolling({
21932
22022
  userId,
21933
22023
  publishableKey,
21934
- enabled: !!onrampSession,
22024
+ enabled: onrampSession.started,
21935
22025
  depositWalletId,
21936
22026
  onDepositSuccess,
21937
22027
  onDepositError
@@ -22224,13 +22314,15 @@ function BuyWithCard({
22224
22314
  ...isDestinationMode ? { destination_amount: destinationAmount } : { source_amount: amount }
22225
22315
  };
22226
22316
  const sessionStartUrl = (0, import_core2.getOnrampSessionStartUrl)(sessionRequest, publishableKey);
22227
- setOnrampSession({
22228
- provider: selectedProvider,
22229
- sourceCurrency: currency,
22230
- sourceAmount: amount,
22231
- sessionUrl: sessionStartUrl,
22232
- externalId
22233
- });
22317
+ setOnrampSession(
22318
+ startCardOnrampSession({
22319
+ provider: selectedProvider,
22320
+ sourceCurrency: currency,
22321
+ sourceAmount: amount,
22322
+ sessionUrl: sessionStartUrl,
22323
+ externalId
22324
+ })
22325
+ );
22234
22326
  track("flow_started", {
22235
22327
  method: "card",
22236
22328
  flow_type: "deposit",
@@ -22686,8 +22778,8 @@ function BuyWithCard({
22686
22778
  onToggleDetails: () => setShowReviewDetails((prev) => !prev),
22687
22779
  onContinue: handleStartOnramp,
22688
22780
  continueLabel: strings.common.confirm,
22689
- continueDisabled: !selectedProvider || !!onrampSession,
22690
- checking: !!onrampSession,
22781
+ continueDisabled: !selectedProvider || !!onrampSession.active,
22782
+ checking: !!onrampSession.active,
22691
22783
  disclaimer: strings.common.intentAddressDisclaimer
22692
22784
  }
22693
22785
  )
@@ -31398,6 +31490,9 @@ function useStripeOnramp(stripePublishableKey, isDark = false) {
31398
31490
  }, []);
31399
31491
  return { coordinator, isLoading, error, initialize };
31400
31492
  }
31493
+ function normalizeStripeStateCode(raw) {
31494
+ return raw.replace(/[^a-zA-Z]/g, "").slice(0, 2).toUpperCase();
31495
+ }
31401
31496
  var STORAGE_PREFIX = "unifold:stripe-link:session";
31402
31497
  function storageKey(externalUserId) {
31403
31498
  return `${STORAGE_PREFIX}:${externalUserId}`;
@@ -32464,7 +32559,7 @@ function PayWithStripeLink({
32464
32559
  setKycFormMode("name");
32465
32560
  return;
32466
32561
  }
32467
- if (!kycForm.addressLine1.trim() || !kycForm.addressCity.trim() || !kycForm.addressState.trim() || !kycForm.addressPostalCode.trim()) {
32562
+ if (!kycForm.addressLine1.trim() || !kycForm.addressCity.trim() || normalizeStripeStateCode(kycForm.addressState).length !== 2 || !kycForm.addressPostalCode.trim()) {
32468
32563
  setError(t.formErrors.enterFullAddress);
32469
32564
  return;
32470
32565
  }
@@ -32475,7 +32570,8 @@ function PayWithStripeLink({
32475
32570
  line1: kycForm.addressLine1,
32476
32571
  ...kycForm.addressLine2.trim() && { line2: kycForm.addressLine2 },
32477
32572
  city: kycForm.addressCity,
32478
- state: kycForm.addressState,
32573
+ // Stripe requires a 2-letter uppercase code for US/CA (`TX`, not `Tx`).
32574
+ state: normalizeStripeStateCode(kycForm.addressState),
32479
32575
  postal_code: kycForm.addressPostalCode,
32480
32576
  country: kycForm.addressCountry
32481
32577
  }
@@ -33739,9 +33835,14 @@ function PayWithStripeLink({
33739
33835
  ...NO_AUTOFILL,
33740
33836
  type: "text",
33741
33837
  value: kycForm.addressState,
33742
- onChange: (e) => setKycForm((f) => ({ ...f, addressState: e.target.value })),
33838
+ onChange: (e) => setKycForm((f) => ({
33839
+ ...f,
33840
+ addressState: normalizeStripeStateCode(e.target.value)
33841
+ })),
33743
33842
  placeholder: "CA",
33744
33843
  maxLength: 2,
33844
+ autoCapitalize: "characters",
33845
+ spellCheck: false,
33745
33846
  className: "uf-w-full uf-py-2.5 uf-px-3 uf-bg-transparent uf-outline-none uf-text-sm",
33746
33847
  style: inputStyle
33747
33848
  }
@@ -33847,7 +33948,7 @@ function PayWithStripeLink({
33847
33948
  DepositFooterButton,
33848
33949
  {
33849
33950
  onClick: kycFormMode === "name" ? handleNameNext : handleKycSubmit,
33850
- disabled: loading || (kycFormMode === "name" ? !kycForm.givenName || !kycForm.surname : kycFormMode === "address" ? !kycForm.addressLine1 || !kycForm.addressCity || !kycForm.addressState || !kycForm.addressPostalCode : !kycForm.ssn || !kycForm.dob.day || !kycForm.dob.month || !kycForm.dob.year),
33951
+ disabled: loading || (kycFormMode === "name" ? !kycForm.givenName || !kycForm.surname : kycFormMode === "address" ? !kycForm.addressLine1 || !kycForm.addressCity || kycForm.addressState.length !== 2 || !kycForm.addressPostalCode : !kycForm.ssn || !kycForm.dob.day || !kycForm.dob.month || !kycForm.dob.year),
33851
33952
  loading,
33852
33953
  className: "uf-flex-1",
33853
33954
  children: loading ? t.submitting : strings.common.review
@@ -47368,6 +47469,30 @@ function useVerifyRecipientAddress(params) {
47368
47469
  refetchOnWindowFocus: false
47369
47470
  });
47370
47471
  }
47472
+ var XRPL_BASE58 = "rpshnaf39wBUDNEGHJKLM4PQRST7VWXYZ2bcdeCg65jkm8oFqi1tuvAxyz";
47473
+ var CLASSIC_ADDRESS = new RegExp(`^r[${XRPL_BASE58}]{24,34}$`);
47474
+ var X_ADDRESS = new RegExp(`^[XT][${XRPL_BASE58}]{40,50}$`);
47475
+ var MAX_DESTINATION_TAG = 4294967295;
47476
+ function isXrplRecipientShapeValid(input) {
47477
+ const trimmed = input.trim();
47478
+ if (trimmed.length === 0) {
47479
+ return false;
47480
+ }
47481
+ const separatorIndex = trimmed.indexOf(":");
47482
+ if (separatorIndex === -1) {
47483
+ return CLASSIC_ADDRESS.test(trimmed) || X_ADDRESS.test(trimmed);
47484
+ }
47485
+ const address = trimmed.slice(0, separatorIndex);
47486
+ const tag = trimmed.slice(separatorIndex + 1);
47487
+ return isDestinationTagValid(tag) && (CLASSIC_ADDRESS.test(address) || X_ADDRESS.test(address));
47488
+ }
47489
+ function isDestinationTagValid(tag) {
47490
+ if (!/^\d+$/.test(tag)) {
47491
+ return false;
47492
+ }
47493
+ const parsed = Number(tag);
47494
+ return parsed <= MAX_DESTINATION_TAG;
47495
+ }
47371
47496
  function useGetDepositAddress(params) {
47372
47497
  const {
47373
47498
  userId,
@@ -47530,6 +47655,8 @@ function WithdrawForm({
47530
47655
  const t = strings.withdrawModal;
47531
47656
  const tCrypto = strings.transferCrypto;
47532
47657
  const [recipientAddress, setRecipientAddress] = (0, import_react43.useState)(recipientAddressProp || "");
47658
+ const [memoTag, setMemoTag] = (0, import_react43.useState)("");
47659
+ const [memoTagRequiredFor, setMemoTagRequiredFor] = (0, import_react43.useState)(null);
47533
47660
  const [amount, setAmount] = (0, import_react43.useState)("");
47534
47661
  const [inputUnit, setInputUnit] = (0, import_react43.useState)("fiat");
47535
47662
  const [isSubmitting, setIsSubmitting] = (0, import_react43.useState)(false);
@@ -47548,7 +47675,16 @@ function WithdrawForm({
47548
47675
  setIsMaxed(false);
47549
47676
  }, [balanceData?.balanceBaseUnit]);
47550
47677
  const trimmedAddress = recipientAddress.trim();
47551
- const debouncedAddress = useDebounce(trimmedAddress, 500);
47678
+ const trimmedMemoTag = memoTag.trim();
47679
+ const isMemoTagValid = isDestinationTagValid(trimmedMemoTag);
47680
+ const destinationKey = `${selectedChain?.chain_type ?? ""}:${selectedChain?.chain_id ?? ""}:${selectedChain?.token_address ?? ""}`;
47681
+ const recipientKey = `${destinationKey}:${trimmedAddress}`;
47682
+ const memoTagRequired = trimmedAddress.length > 0 && memoTagRequiredFor === recipientKey;
47683
+ const effectiveRecipient = memoTagRequired && isMemoTagValid ? `${trimmedAddress}:${trimmedMemoTag}` : trimmedAddress;
47684
+ const debouncedRecipient = useDebounce(effectiveRecipient, 500);
47685
+ const isXrplDestination = selectedChain?.chain_type === "xrpl";
47686
+ const isXrplRecipientMalformed = isXrplDestination && trimmedAddress.length > 5 && !isXrplRecipientShapeValid(effectiveRecipient);
47687
+ const canVerifyXrplRecipient = !isXrplDestination || isXrplRecipientShapeValid(debouncedRecipient);
47552
47688
  const {
47553
47689
  data: addressVerification,
47554
47690
  isLoading: isVerifyingAddress,
@@ -47557,16 +47693,36 @@ function WithdrawForm({
47557
47693
  chainType: selectedChain?.chain_type,
47558
47694
  chainId: selectedChain?.chain_id,
47559
47695
  tokenAddress: selectedChain?.token_address,
47560
- recipientAddress: debouncedAddress,
47696
+ recipientAddress: debouncedRecipient,
47561
47697
  publishableKey,
47562
- enabled: debouncedAddress.length > 5 && !!selectedChain
47698
+ enabled: debouncedRecipient.length > 5 && !!selectedChain && canVerifyXrplRecipient
47563
47699
  });
47564
- const isDebouncing = trimmedAddress !== debouncedAddress;
47700
+ const isDebouncing = effectiveRecipient !== debouncedRecipient;
47701
+ const verifiedRecipientKey = `${destinationKey}:${debouncedRecipient}`;
47702
+ (0, import_react43.useEffect)(() => {
47703
+ if (addressVerification?.failure_code === "destination_tag_required") {
47704
+ setMemoTagRequiredFor(verifiedRecipientKey);
47705
+ }
47706
+ }, [addressVerification, verifiedRecipientKey]);
47707
+ (0, import_react43.useEffect)(() => {
47708
+ setMemoTag("");
47709
+ }, [recipientKey]);
47710
+ const xrplFormatHint = (0, import_react43.useMemo)(
47711
+ () => interpolate(t.invalidXrplAddress, {
47712
+ chain_name: selectedChain?.chain_name ?? "XRP Ledger"
47713
+ }),
47714
+ [t, selectedChain]
47715
+ );
47565
47716
  const addressError = (0, import_react43.useMemo)(() => {
47566
47717
  if (!trimmedAddress || trimmedAddress.length <= 5) return null;
47718
+ if (isXrplRecipientMalformed) return xrplFormatHint;
47567
47719
  if (isDebouncing || isVerifyingAddress) return null;
47568
- if (verifyError) return t.invalidAddress;
47720
+ if (verifyError) return isXrplDestination ? xrplFormatHint : t.invalidAddress;
47569
47721
  if (addressVerification && !addressVerification.valid) {
47722
+ if (addressVerification.failure_code === "destination_tag_required")
47723
+ return memoTagRequired ? null : interpolate(tCrypto.addressValidation.errors.destination_tag_required, {
47724
+ chain_name: selectedChain?.chain_name ?? ""
47725
+ });
47570
47726
  if (addressVerification.message && addressVerification.message.trim().length > 0) {
47571
47727
  return addressVerification.message;
47572
47728
  }
@@ -47579,13 +47735,17 @@ function WithdrawForm({
47579
47735
  token_symbol: selectedToken?.symbol ?? "",
47580
47736
  chain_name: selectedChain?.chain_name ?? ""
47581
47737
  });
47582
- return t.invalidAddress;
47738
+ return isXrplDestination ? xrplFormatHint : t.invalidAddress;
47583
47739
  }
47584
47740
  return null;
47585
47741
  }, [
47586
47742
  trimmedAddress,
47587
47743
  isDebouncing,
47588
47744
  isVerifyingAddress,
47745
+ isXrplDestination,
47746
+ isXrplRecipientMalformed,
47747
+ memoTagRequired,
47748
+ xrplFormatHint,
47589
47749
  verifyError,
47590
47750
  addressVerification,
47591
47751
  selectedChain,
@@ -47593,6 +47753,7 @@ function WithdrawForm({
47593
47753
  t,
47594
47754
  tCrypto
47595
47755
  ]);
47756
+ const memoTagError = memoTagRequired && trimmedMemoTag.length > 0 && !isMemoTagValid ? t.invalidMemoTag : null;
47596
47757
  const isAddressValid = !isDebouncing && !!addressVerification?.valid && !addressError;
47597
47758
  const { showWarning: showActivationWarning, activationFee: effectiveActivationFee } = useHypercoreWithdrawActivation({
47598
47759
  userId: externalUserId,
@@ -47600,7 +47761,7 @@ function WithdrawForm({
47600
47761
  senderAddress,
47601
47762
  sourceChainId,
47602
47763
  sourceChainType,
47603
- recipientAddress: debouncedAddress,
47764
+ recipientAddress: debouncedRecipient,
47604
47765
  destinationChainType: selectedChain?.chain_type,
47605
47766
  destinationChainId: selectedChain?.chain_id,
47606
47767
  destinationTokenAddress: selectedChain?.token_address,
@@ -47714,7 +47875,7 @@ function WithdrawForm({
47714
47875
  const isBalanceBelowMinimum = !isLoadingBalance && minimumWithdrawAmountUsd !== null && Math.round(balanceUsdNum * 100) / 100 < minimumWithdrawAmountUsd;
47715
47876
  const isBelowMinimum = minimumWithdrawAmountUsd !== null && fiatAmountFromInput > 0 && Math.round(fiatAmountFromInput * 100) / 100 < minimumWithdrawAmountUsd;
47716
47877
  const isOverBalance = inputUnit === "crypto" ? cryptoAmountFromInput > 0 && balanceCrypto > 0 && cryptoAmountFromInput > balanceCrypto : fiatAmountFromInput > 0 && balanceUsdNum > 0 && Math.round(fiatAmountFromInput * 100) / 100 > Math.round(balanceUsdNum * 100) / 100;
47717
- const isFormValid = trimmedAddress.length > 0 && amount.trim().length > 0 && cryptoAmountFromInput > 0 && isAddressValid && !isBelowMinimum && !isOverBalance && !isBalanceBelowMinimum && !!balanceData;
47878
+ const isFormValid = trimmedAddress.length > 0 && amount.trim().length > 0 && cryptoAmountFromInput > 0 && isAddressValid && !(memoTagRequired && !isMemoTagValid) && !isBelowMinimum && !isOverBalance && !isBalanceBelowMinimum && !!balanceData;
47718
47879
  const handleWithdraw = (0, import_react43.useCallback)(async () => {
47719
47880
  if (!selectedToken || !selectedChain) return;
47720
47881
  if (!isFormValid) return;
@@ -47728,7 +47889,7 @@ function WithdrawForm({
47728
47889
  destinationChainType: selectedChain.chain_type,
47729
47890
  destinationChainId: selectedChain.chain_id,
47730
47891
  destinationTokenAddress: selectedChain.token_address,
47731
- recipientAddress: trimmedAddress
47892
+ recipientAddress: effectiveRecipient
47732
47893
  });
47733
47894
  let amountBaseUnit = isMaxed ? balanceData.balanceBaseUnit : computeBaseUnit(
47734
47895
  balanceData.balanceBaseUnit,
@@ -47777,7 +47938,7 @@ function WithdrawForm({
47777
47938
  amount: humanAmount,
47778
47939
  amountBaseUnit,
47779
47940
  withdrawIntentAddress: depositWallet.address,
47780
- recipientAddress: trimmedAddress
47941
+ recipientAddress: effectiveRecipient
47781
47942
  };
47782
47943
  const usdValue = isMaxed ? balanceUsdNum : fiatAmountFromInput;
47783
47944
  onWithdrawStarted?.({
@@ -47814,7 +47975,7 @@ function WithdrawForm({
47814
47975
  isFormValid,
47815
47976
  cryptoAmountFromInput,
47816
47977
  sourceDecimals,
47817
- trimmedAddress,
47978
+ effectiveRecipient,
47818
47979
  publishableKey,
47819
47980
  onWithdraw,
47820
47981
  sourceChainType,
@@ -47865,7 +48026,7 @@ function WithdrawForm({
47865
48026
  "input",
47866
48027
  {
47867
48028
  type: "text",
47868
- placeholder: t.recipientAddressPlaceholder,
48029
+ placeholder: isXrplDestination ? t.recipientAddressPlaceholderXrpl : t.recipientAddressPlaceholder,
47869
48030
  value: recipientAddress,
47870
48031
  onChange: (e) => {
47871
48032
  setRecipientAddress(e.target.value);
@@ -47901,7 +48062,7 @@ function WithdrawForm({
47901
48062
  ]
47902
48063
  }
47903
48064
  ),
47904
- (isDebouncing || isVerifyingAddress) && trimmedAddress.length > 5 && /* @__PURE__ */ (0, import_jsx_runtime95.jsxs)("div", { className: "uf-flex uf-items-center uf-gap-1.5 uf-mt-1.5", children: [
48065
+ (isDebouncing || isVerifyingAddress) && trimmedAddress.length > 5 && !addressError && /* @__PURE__ */ (0, import_jsx_runtime95.jsxs)("div", { className: "uf-flex uf-items-center uf-gap-1.5 uf-mt-1.5", children: [
47905
48066
  /* @__PURE__ */ (0, import_jsx_runtime95.jsx)(
47906
48067
  LoaderCircle,
47907
48068
  {
@@ -47923,6 +48084,61 @@ function WithdrawForm({
47923
48084
  /* @__PURE__ */ (0, import_jsx_runtime95.jsx)("span", { className: "uf-text-xs", style: { color: colors2.error, fontFamily: fonts.regular }, children: addressError })
47924
48085
  ] })
47925
48086
  ] }),
48087
+ memoTagRequired && /* @__PURE__ */ (0, import_jsx_runtime95.jsxs)("div", { children: [
48088
+ /* @__PURE__ */ (0, import_jsx_runtime95.jsx)(
48089
+ "div",
48090
+ {
48091
+ className: "uf-text-xs uf-mb-1.5",
48092
+ style: { color: components.card.labelColor, fontFamily: fonts.medium },
48093
+ children: t.memoTag
48094
+ }
48095
+ ),
48096
+ /* @__PURE__ */ (0, import_jsx_runtime95.jsx)(
48097
+ "style",
48098
+ {
48099
+ dangerouslySetInnerHTML: {
48100
+ __html: `.uf-withdraw-memo::placeholder { color: ${components.search.placeholderColor}; }`
48101
+ }
48102
+ }
48103
+ ),
48104
+ /* @__PURE__ */ (0, import_jsx_runtime95.jsx)(
48105
+ "input",
48106
+ {
48107
+ type: "text",
48108
+ inputMode: "numeric",
48109
+ placeholder: t.memoTagPlaceholder,
48110
+ value: memoTag,
48111
+ onChange: (e) => {
48112
+ setMemoTag(e.target.value);
48113
+ setSubmitError(null);
48114
+ },
48115
+ className: "uf-withdraw-memo uf-w-full uf-px-3 uf-py-2.5 uf-text-sm uf-outline-none",
48116
+ style: {
48117
+ backgroundColor: components.search.backgroundColor,
48118
+ borderRadius: components.input.borderRadius,
48119
+ border: `${components.input.borderWidth}px solid ${memoTagError ? colors2.error : components.input.borderColor}`,
48120
+ color: components.search.inputColor,
48121
+ fontFamily: fonts.regular
48122
+ }
48123
+ }
48124
+ ),
48125
+ /* @__PURE__ */ (0, import_jsx_runtime95.jsxs)("div", { className: "uf-flex uf-items-center uf-gap-1.5 uf-mt-1.5", children: [
48126
+ memoTagError && /* @__PURE__ */ (0, import_jsx_runtime95.jsx)(TriangleAlert, { className: "uf-w-3 uf-h-3", style: { color: colors2.error } }),
48127
+ /* @__PURE__ */ (0, import_jsx_runtime95.jsx)(
48128
+ "span",
48129
+ {
48130
+ className: "uf-text-xs",
48131
+ style: {
48132
+ color: memoTagError ? colors2.error : colors2.foregroundMuted,
48133
+ fontFamily: fonts.regular
48134
+ },
48135
+ children: memoTagError ?? interpolate(t.memoTagRequiredHint, {
48136
+ chain_name: selectedChain?.chain_name ?? "XRP Ledger"
48137
+ })
48138
+ }
48139
+ )
48140
+ ] })
48141
+ ] }),
47926
48142
  /* @__PURE__ */ (0, import_jsx_runtime95.jsxs)("div", { children: [
47927
48143
  /* @__PURE__ */ (0, import_jsx_runtime95.jsxs)(
47928
48144
  "div",
@@ -49016,45 +49232,445 @@ function WithdrawModal({
49016
49232
  }
49017
49233
  ) });
49018
49234
  }
49235
+ var COUNTRIES = [
49236
+ { alpha2: "AD", name: "Andorra", dialCode: "376" },
49237
+ { alpha2: "AE", name: "United Arab Emirates", dialCode: "971" },
49238
+ { alpha2: "AF", name: "Afghanistan", dialCode: "93" },
49239
+ { alpha2: "AG", name: "Antigua and Barbuda", dialCode: "1" },
49240
+ { alpha2: "AI", name: "Anguilla", dialCode: "1" },
49241
+ { alpha2: "AL", name: "Albania", dialCode: "355" },
49242
+ { alpha2: "AM", name: "Armenia", dialCode: "374" },
49243
+ { alpha2: "AO", name: "Angola", dialCode: "244" },
49244
+ { alpha2: "AQ", name: "Antarctica" },
49245
+ { alpha2: "AR", name: "Argentina", dialCode: "54" },
49246
+ { alpha2: "AS", name: "American Samoa", dialCode: "1" },
49247
+ { alpha2: "AT", name: "Austria", dialCode: "43" },
49248
+ { alpha2: "AU", name: "Australia", dialCode: "61" },
49249
+ { alpha2: "AW", name: "Aruba", dialCode: "297" },
49250
+ { alpha2: "AX", name: "\xC5land Islands", dialCode: "358" },
49251
+ { alpha2: "AZ", name: "Azerbaijan", dialCode: "994" },
49252
+ { alpha2: "BA", name: "Bosnia and Herzegovina", dialCode: "387" },
49253
+ { alpha2: "BB", name: "Barbados", dialCode: "1" },
49254
+ { alpha2: "BD", name: "Bangladesh", dialCode: "880" },
49255
+ { alpha2: "BE", name: "Belgium", dialCode: "32" },
49256
+ { alpha2: "BF", name: "Burkina Faso", dialCode: "226" },
49257
+ { alpha2: "BG", name: "Bulgaria", dialCode: "359" },
49258
+ { alpha2: "BH", name: "Bahrain", dialCode: "973" },
49259
+ { alpha2: "BI", name: "Burundi", dialCode: "257" },
49260
+ { alpha2: "BJ", name: "Benin", dialCode: "229" },
49261
+ { alpha2: "BL", name: "Saint Barth\xE9lemy", dialCode: "590" },
49262
+ { alpha2: "BM", name: "Bermuda", dialCode: "1" },
49263
+ { alpha2: "BN", name: "Brunei", dialCode: "673" },
49264
+ { alpha2: "BO", name: "Bolivia", dialCode: "591" },
49265
+ { alpha2: "BQ", name: "Bonaire, Sint Eustatius and Saba", dialCode: "599" },
49266
+ { alpha2: "BR", name: "Brazil", dialCode: "55" },
49267
+ { alpha2: "BS", name: "Bahamas", dialCode: "1" },
49268
+ { alpha2: "BT", name: "Bhutan", dialCode: "975" },
49269
+ { alpha2: "BV", name: "Bouvet Island" },
49270
+ { alpha2: "BW", name: "Botswana", dialCode: "267" },
49271
+ { alpha2: "BY", name: "Belarus", dialCode: "375" },
49272
+ { alpha2: "BZ", name: "Belize", dialCode: "501" },
49273
+ { alpha2: "CA", name: "Canada", dialCode: "1" },
49274
+ { alpha2: "CC", name: "Cocos (Keeling) Islands", dialCode: "61" },
49275
+ { alpha2: "CD", name: "Congo (Democratic Republic)", dialCode: "243" },
49276
+ { alpha2: "CF", name: "Central African Republic", dialCode: "236" },
49277
+ { alpha2: "CG", name: "Congo (Republic)", dialCode: "242" },
49278
+ { alpha2: "CH", name: "Switzerland", dialCode: "41" },
49279
+ { alpha2: "CI", name: "C\xF4te d'Ivoire", dialCode: "225" },
49280
+ { alpha2: "CK", name: "Cook Islands", dialCode: "682" },
49281
+ { alpha2: "CL", name: "Chile", dialCode: "56" },
49282
+ { alpha2: "CM", name: "Cameroon", dialCode: "237" },
49283
+ { alpha2: "CN", name: "China", dialCode: "86" },
49284
+ { alpha2: "CO", name: "Colombia", dialCode: "57" },
49285
+ { alpha2: "CR", name: "Costa Rica", dialCode: "506" },
49286
+ { alpha2: "CU", name: "Cuba", dialCode: "53" },
49287
+ { alpha2: "CV", name: "Cabo Verde", dialCode: "238" },
49288
+ { alpha2: "CW", name: "Cura\xE7ao", dialCode: "599" },
49289
+ { alpha2: "CX", name: "Christmas Island", dialCode: "61" },
49290
+ { alpha2: "CY", name: "Cyprus", dialCode: "357" },
49291
+ { alpha2: "CZ", name: "Czech Republic", dialCode: "420" },
49292
+ { alpha2: "DE", name: "Germany", dialCode: "49" },
49293
+ { alpha2: "DJ", name: "Djibouti", dialCode: "253" },
49294
+ { alpha2: "DK", name: "Denmark", dialCode: "45" },
49295
+ { alpha2: "DM", name: "Dominica", dialCode: "1" },
49296
+ { alpha2: "DO", name: "Dominican Republic", dialCode: "1" },
49297
+ { alpha2: "DZ", name: "Algeria", dialCode: "213" },
49298
+ { alpha2: "EC", name: "Ecuador", dialCode: "593" },
49299
+ { alpha2: "EE", name: "Estonia", dialCode: "372" },
49300
+ { alpha2: "EG", name: "Egypt", dialCode: "20" },
49301
+ { alpha2: "EH", name: "Western Sahara", dialCode: "212" },
49302
+ { alpha2: "ER", name: "Eritrea", dialCode: "291" },
49303
+ { alpha2: "ES", name: "Spain", dialCode: "34" },
49304
+ { alpha2: "ET", name: "Ethiopia", dialCode: "251" },
49305
+ { alpha2: "FI", name: "Finland", dialCode: "358" },
49306
+ { alpha2: "FJ", name: "Fiji", dialCode: "679" },
49307
+ { alpha2: "FK", name: "Falkland Islands", dialCode: "500" },
49308
+ { alpha2: "FM", name: "Micronesia", dialCode: "691" },
49309
+ { alpha2: "FO", name: "Faroe Islands", dialCode: "298" },
49310
+ { alpha2: "FR", name: "France", dialCode: "33" },
49311
+ { alpha2: "GA", name: "Gabon", dialCode: "241" },
49312
+ { alpha2: "GB", name: "United Kingdom", dialCode: "44" },
49313
+ { alpha2: "GD", name: "Grenada", dialCode: "1" },
49314
+ { alpha2: "GE", name: "Georgia", dialCode: "995" },
49315
+ { alpha2: "GF", name: "French Guiana", dialCode: "594" },
49316
+ { alpha2: "GG", name: "Guernsey", dialCode: "44" },
49317
+ { alpha2: "GH", name: "Ghana", dialCode: "233" },
49318
+ { alpha2: "GI", name: "Gibraltar", dialCode: "350" },
49319
+ { alpha2: "GL", name: "Greenland", dialCode: "299" },
49320
+ { alpha2: "GM", name: "Gambia", dialCode: "220" },
49321
+ { alpha2: "GN", name: "Guinea", dialCode: "224" },
49322
+ { alpha2: "GP", name: "Guadeloupe", dialCode: "590" },
49323
+ { alpha2: "GQ", name: "Equatorial Guinea", dialCode: "240" },
49324
+ { alpha2: "GR", name: "Greece", dialCode: "30" },
49325
+ { alpha2: "GS", name: "South Georgia and the South Sandwich Islands" },
49326
+ { alpha2: "GT", name: "Guatemala", dialCode: "502" },
49327
+ { alpha2: "GU", name: "Guam", dialCode: "1" },
49328
+ { alpha2: "GW", name: "Guinea-Bissau", dialCode: "245" },
49329
+ { alpha2: "GY", name: "Guyana", dialCode: "592" },
49330
+ { alpha2: "HK", name: "Hong Kong", dialCode: "852" },
49331
+ { alpha2: "HM", name: "Heard Island and McDonald Islands" },
49332
+ { alpha2: "HN", name: "Honduras", dialCode: "504" },
49333
+ { alpha2: "HR", name: "Croatia", dialCode: "385" },
49334
+ { alpha2: "HT", name: "Haiti", dialCode: "509" },
49335
+ { alpha2: "HU", name: "Hungary", dialCode: "36" },
49336
+ { alpha2: "ID", name: "Indonesia", dialCode: "62" },
49337
+ { alpha2: "IE", name: "Ireland", dialCode: "353" },
49338
+ { alpha2: "IL", name: "Israel", dialCode: "972" },
49339
+ { alpha2: "IM", name: "Isle of Man", dialCode: "44" },
49340
+ { alpha2: "IN", name: "India", dialCode: "91" },
49341
+ { alpha2: "IO", name: "British Indian Ocean Territory", dialCode: "246" },
49342
+ { alpha2: "IQ", name: "Iraq", dialCode: "964" },
49343
+ { alpha2: "IR", name: "Iran", dialCode: "98" },
49344
+ { alpha2: "IS", name: "Iceland", dialCode: "354" },
49345
+ { alpha2: "IT", name: "Italy", dialCode: "39" },
49346
+ { alpha2: "JE", name: "Jersey", dialCode: "44" },
49347
+ { alpha2: "JM", name: "Jamaica", dialCode: "1" },
49348
+ { alpha2: "JO", name: "Jordan", dialCode: "962" },
49349
+ { alpha2: "JP", name: "Japan", dialCode: "81" },
49350
+ { alpha2: "KE", name: "Kenya", dialCode: "254" },
49351
+ { alpha2: "KG", name: "Kyrgyzstan", dialCode: "996" },
49352
+ { alpha2: "KH", name: "Cambodia", dialCode: "855" },
49353
+ { alpha2: "KI", name: "Kiribati", dialCode: "686" },
49354
+ { alpha2: "KM", name: "Comoros", dialCode: "269" },
49355
+ { alpha2: "KN", name: "Saint Kitts and Nevis", dialCode: "1" },
49356
+ { alpha2: "KP", name: "North Korea", dialCode: "850" },
49357
+ { alpha2: "KR", name: "South Korea", dialCode: "82" },
49358
+ { alpha2: "KW", name: "Kuwait", dialCode: "965" },
49359
+ { alpha2: "KY", name: "Cayman Islands", dialCode: "1" },
49360
+ { alpha2: "KZ", name: "Kazakhstan", dialCode: "7" },
49361
+ { alpha2: "LA", name: "Laos", dialCode: "856" },
49362
+ { alpha2: "LB", name: "Lebanon", dialCode: "961" },
49363
+ { alpha2: "LC", name: "Saint Lucia", dialCode: "1" },
49364
+ { alpha2: "LI", name: "Liechtenstein", dialCode: "423" },
49365
+ { alpha2: "LK", name: "Sri Lanka", dialCode: "94" },
49366
+ { alpha2: "LR", name: "Liberia", dialCode: "231" },
49367
+ { alpha2: "LS", name: "Lesotho", dialCode: "266" },
49368
+ { alpha2: "LT", name: "Lithuania", dialCode: "370" },
49369
+ { alpha2: "LU", name: "Luxembourg", dialCode: "352" },
49370
+ { alpha2: "LV", name: "Latvia", dialCode: "371" },
49371
+ { alpha2: "LY", name: "Libya", dialCode: "218" },
49372
+ { alpha2: "MA", name: "Morocco", dialCode: "212" },
49373
+ { alpha2: "MC", name: "Monaco", dialCode: "377" },
49374
+ { alpha2: "MD", name: "Moldova", dialCode: "373" },
49375
+ { alpha2: "ME", name: "Montenegro", dialCode: "382" },
49376
+ { alpha2: "MF", name: "Saint Martin (French part)", dialCode: "590" },
49377
+ { alpha2: "MG", name: "Madagascar", dialCode: "261" },
49378
+ { alpha2: "MH", name: "Marshall Islands", dialCode: "692" },
49379
+ { alpha2: "MK", name: "North Macedonia", dialCode: "389" },
49380
+ { alpha2: "ML", name: "Mali", dialCode: "223" },
49381
+ { alpha2: "MM", name: "Myanmar", dialCode: "95" },
49382
+ { alpha2: "MN", name: "Mongolia", dialCode: "976" },
49383
+ { alpha2: "MO", name: "Macao", dialCode: "853" },
49384
+ { alpha2: "MP", name: "Northern Mariana Islands", dialCode: "1" },
49385
+ { alpha2: "MQ", name: "Martinique", dialCode: "596" },
49386
+ { alpha2: "MR", name: "Mauritania", dialCode: "222" },
49387
+ { alpha2: "MS", name: "Montserrat", dialCode: "1" },
49388
+ { alpha2: "MT", name: "Malta", dialCode: "356" },
49389
+ { alpha2: "MU", name: "Mauritius", dialCode: "230" },
49390
+ { alpha2: "MV", name: "Maldives", dialCode: "960" },
49391
+ { alpha2: "MW", name: "Malawi", dialCode: "265" },
49392
+ { alpha2: "MX", name: "Mexico", dialCode: "52" },
49393
+ { alpha2: "MY", name: "Malaysia", dialCode: "60" },
49394
+ { alpha2: "MZ", name: "Mozambique", dialCode: "258" },
49395
+ { alpha2: "NA", name: "Namibia", dialCode: "264" },
49396
+ { alpha2: "NC", name: "New Caledonia", dialCode: "687" },
49397
+ { alpha2: "NE", name: "Niger", dialCode: "227" },
49398
+ { alpha2: "NF", name: "Norfolk Island", dialCode: "672" },
49399
+ { alpha2: "NG", name: "Nigeria", dialCode: "234" },
49400
+ { alpha2: "NI", name: "Nicaragua", dialCode: "505" },
49401
+ { alpha2: "NL", name: "Netherlands", dialCode: "31" },
49402
+ { alpha2: "NO", name: "Norway", dialCode: "47" },
49403
+ { alpha2: "NP", name: "Nepal", dialCode: "977" },
49404
+ { alpha2: "NR", name: "Nauru", dialCode: "674" },
49405
+ { alpha2: "NU", name: "Niue", dialCode: "683" },
49406
+ { alpha2: "NZ", name: "New Zealand", dialCode: "64" },
49407
+ { alpha2: "OM", name: "Oman", dialCode: "968" },
49408
+ { alpha2: "PA", name: "Panama", dialCode: "507" },
49409
+ { alpha2: "PE", name: "Peru", dialCode: "51" },
49410
+ { alpha2: "PF", name: "French Polynesia", dialCode: "689" },
49411
+ { alpha2: "PG", name: "Papua New Guinea", dialCode: "675" },
49412
+ { alpha2: "PH", name: "Philippines", dialCode: "63" },
49413
+ { alpha2: "PK", name: "Pakistan", dialCode: "92" },
49414
+ { alpha2: "PL", name: "Poland", dialCode: "48" },
49415
+ { alpha2: "PM", name: "Saint Pierre and Miquelon", dialCode: "508" },
49416
+ { alpha2: "PN", name: "Pitcairn", dialCode: "64" },
49417
+ { alpha2: "PR", name: "Puerto Rico", dialCode: "1" },
49418
+ { alpha2: "PS", name: "Palestine", dialCode: "970" },
49419
+ { alpha2: "PT", name: "Portugal", dialCode: "351" },
49420
+ { alpha2: "PW", name: "Palau", dialCode: "680" },
49421
+ { alpha2: "PY", name: "Paraguay", dialCode: "595" },
49422
+ { alpha2: "QA", name: "Qatar", dialCode: "974" },
49423
+ { alpha2: "RE", name: "R\xE9union", dialCode: "262" },
49424
+ { alpha2: "RO", name: "Romania", dialCode: "40" },
49425
+ { alpha2: "RS", name: "Serbia", dialCode: "381" },
49426
+ { alpha2: "RU", name: "Russia", dialCode: "7" },
49427
+ { alpha2: "RW", name: "Rwanda", dialCode: "250" },
49428
+ { alpha2: "SA", name: "Saudi Arabia", dialCode: "966" },
49429
+ { alpha2: "SB", name: "Solomon Islands", dialCode: "677" },
49430
+ { alpha2: "SC", name: "Seychelles", dialCode: "248" },
49431
+ { alpha2: "SD", name: "Sudan", dialCode: "249" },
49432
+ { alpha2: "SE", name: "Sweden", dialCode: "46" },
49433
+ { alpha2: "SG", name: "Singapore", dialCode: "65" },
49434
+ { alpha2: "SH", name: "Saint Helena, Ascension and Tristan da Cunha", dialCode: "290" },
49435
+ { alpha2: "SI", name: "Slovenia", dialCode: "386" },
49436
+ { alpha2: "SJ", name: "Svalbard and Jan Mayen", dialCode: "47" },
49437
+ { alpha2: "SK", name: "Slovakia", dialCode: "421" },
49438
+ { alpha2: "SL", name: "Sierra Leone", dialCode: "232" },
49439
+ { alpha2: "SM", name: "San Marino", dialCode: "378" },
49440
+ { alpha2: "SN", name: "Senegal", dialCode: "221" },
49441
+ { alpha2: "SO", name: "Somalia", dialCode: "252" },
49442
+ { alpha2: "SR", name: "Suriname", dialCode: "597" },
49443
+ { alpha2: "SS", name: "South Sudan", dialCode: "211" },
49444
+ { alpha2: "ST", name: "Sao Tome and Principe", dialCode: "239" },
49445
+ { alpha2: "SV", name: "El Salvador", dialCode: "503" },
49446
+ { alpha2: "SX", name: "Sint Maarten (Dutch part)", dialCode: "1" },
49447
+ { alpha2: "SY", name: "Syria", dialCode: "963" },
49448
+ { alpha2: "SZ", name: "Eswatini", dialCode: "268" },
49449
+ { alpha2: "TC", name: "Turks and Caicos Islands", dialCode: "1" },
49450
+ { alpha2: "TD", name: "Chad", dialCode: "235" },
49451
+ { alpha2: "TF", name: "French Southern Territories" },
49452
+ { alpha2: "TG", name: "Togo", dialCode: "228" },
49453
+ { alpha2: "TH", name: "Thailand", dialCode: "66" },
49454
+ { alpha2: "TJ", name: "Tajikistan", dialCode: "992" },
49455
+ { alpha2: "TK", name: "Tokelau", dialCode: "690" },
49456
+ { alpha2: "TL", name: "Timor-Leste", dialCode: "670" },
49457
+ { alpha2: "TM", name: "Turkmenistan", dialCode: "993" },
49458
+ { alpha2: "TN", name: "Tunisia", dialCode: "216" },
49459
+ { alpha2: "TO", name: "Tonga", dialCode: "676" },
49460
+ { alpha2: "TR", name: "T\xFCrkiye", dialCode: "90" },
49461
+ { alpha2: "TT", name: "Trinidad and Tobago", dialCode: "1" },
49462
+ { alpha2: "TV", name: "Tuvalu", dialCode: "688" },
49463
+ { alpha2: "TW", name: "Taiwan", dialCode: "886" },
49464
+ { alpha2: "TZ", name: "Tanzania", dialCode: "255" },
49465
+ { alpha2: "UA", name: "Ukraine", dialCode: "380" },
49466
+ { alpha2: "UG", name: "Uganda", dialCode: "256" },
49467
+ { alpha2: "UM", name: "U.S. Minor Outlying Islands" },
49468
+ { alpha2: "US", name: "United States", dialCode: "1" },
49469
+ { alpha2: "UY", name: "Uruguay", dialCode: "598" },
49470
+ { alpha2: "UZ", name: "Uzbekistan", dialCode: "998" },
49471
+ { alpha2: "VA", name: "Vatican City", dialCode: "39" },
49472
+ { alpha2: "VC", name: "Saint Vincent and the Grenadines", dialCode: "1" },
49473
+ { alpha2: "VE", name: "Venezuela", dialCode: "58" },
49474
+ { alpha2: "VG", name: "British Virgin Islands", dialCode: "1" },
49475
+ { alpha2: "VI", name: "U.S. Virgin Islands", dialCode: "1" },
49476
+ { alpha2: "VN", name: "Vietnam", dialCode: "84" },
49477
+ { alpha2: "VU", name: "Vanuatu", dialCode: "678" },
49478
+ { alpha2: "WF", name: "Wallis and Futuna", dialCode: "681" },
49479
+ { alpha2: "WS", name: "Samoa", dialCode: "685" },
49480
+ { alpha2: "YE", name: "Yemen", dialCode: "967" },
49481
+ { alpha2: "YT", name: "Mayotte", dialCode: "262" },
49482
+ { alpha2: "ZA", name: "South Africa", dialCode: "27" },
49483
+ { alpha2: "ZM", name: "Zambia", dialCode: "260" },
49484
+ { alpha2: "ZW", name: "Zimbabwe", dialCode: "263" }
49485
+ ];
49486
+ var BY_ALPHA2 = new Map(COUNTRIES.map((c) => [c.alpha2, c]));
49487
+ var ALL_COUNTRIES = [...COUNTRIES].sort(
49488
+ (a, b) => a.name.localeCompare(b.name)
49489
+ );
49490
+ var UK = ["GB"];
49491
+ var EU = [
49492
+ "AT",
49493
+ "BE",
49494
+ "BG",
49495
+ "HR",
49496
+ "CY",
49497
+ "CZ",
49498
+ "DK",
49499
+ "EE",
49500
+ "FI",
49501
+ "FR",
49502
+ "DE",
49503
+ "GR",
49504
+ "HU",
49505
+ "IE",
49506
+ "IT",
49507
+ "LV",
49508
+ "LT",
49509
+ "LU",
49510
+ "MT",
49511
+ "NL",
49512
+ "PL",
49513
+ "PT",
49514
+ "RO",
49515
+ "SK",
49516
+ "SI",
49517
+ "ES",
49518
+ "SE"
49519
+ ];
49520
+ var EEA = [...EU, "IS", "LI", "NO"];
49521
+ var EUROPE = [
49522
+ ...EEA,
49523
+ ...UK,
49524
+ "CH",
49525
+ "AD",
49526
+ "MC",
49527
+ "SM",
49528
+ "VA",
49529
+ "GI",
49530
+ "GG",
49531
+ "JE",
49532
+ "IM",
49533
+ "FO",
49534
+ "AX",
49535
+ "SJ",
49536
+ "GL",
49537
+ "PM",
49538
+ "AL",
49539
+ "BA",
49540
+ "ME",
49541
+ "MK",
49542
+ "RS",
49543
+ "MD",
49544
+ "UA",
49545
+ "BY",
49546
+ "RU",
49547
+ "GE",
49548
+ "AM",
49549
+ "AZ",
49550
+ "TR"
49551
+ ];
49552
+ var INDIA = ["IN"];
49553
+ var SEA = ["BN", "KH", "ID", "LA", "MY", "MM", "PH", "SG", "TH", "VN", "TL"];
49554
+ var ASIA = [
49555
+ ...SEA,
49556
+ ...INDIA,
49557
+ "CN",
49558
+ "HK",
49559
+ "MO",
49560
+ "TW",
49561
+ "JP",
49562
+ "KR",
49563
+ "KP",
49564
+ "MN",
49565
+ "PK",
49566
+ "BD",
49567
+ "LK",
49568
+ "NP",
49569
+ "BT",
49570
+ "MV",
49571
+ "AF",
49572
+ "KZ",
49573
+ "KG",
49574
+ "TJ",
49575
+ "TM",
49576
+ "UZ"
49577
+ ];
49578
+ var CARIBBEAN = [
49579
+ "AI",
49580
+ "AG",
49581
+ "AW",
49582
+ "BS",
49583
+ "BB",
49584
+ "BM",
49585
+ "BQ",
49586
+ "VG",
49587
+ "KY",
49588
+ "CU",
49589
+ "CW",
49590
+ "DM",
49591
+ "DO",
49592
+ "GD",
49593
+ "GP",
49594
+ "HT",
49595
+ "JM",
49596
+ "MQ",
49597
+ "MS",
49598
+ "PR",
49599
+ "BL",
49600
+ "KN",
49601
+ "LC",
49602
+ "MF",
49603
+ "VC",
49604
+ "SX",
49605
+ "TT",
49606
+ "TC",
49607
+ "VI"
49608
+ ];
49609
+ var LATAM = [
49610
+ ...CARIBBEAN,
49611
+ "MX",
49612
+ "BZ",
49613
+ "CR",
49614
+ "SV",
49615
+ "GT",
49616
+ "HN",
49617
+ "NI",
49618
+ "PA",
49619
+ "AR",
49620
+ "BO",
49621
+ "BR",
49622
+ "CL",
49623
+ "CO",
49624
+ "EC",
49625
+ "FK",
49626
+ "GF",
49627
+ "GY",
49628
+ "PY",
49629
+ "PE",
49630
+ "GS",
49631
+ "SR",
49632
+ "UY",
49633
+ "VE"
49634
+ ];
49019
49635
 
49020
49636
  // src/provider.tsx
49021
- var import_core61 = require("@unifold/core");
49022
- var import_jsx_runtime100 = require("react/jsx-runtime");
49637
+ var import_core62 = require("@unifold/core");
49638
+ var import_jsx_runtime103 = require("react/jsx-runtime");
49023
49639
  function UnifoldProvider({
49024
49640
  children,
49025
49641
  publishableKey,
49026
49642
  queryClient,
49027
49643
  config
49028
49644
  }) {
49029
- const [isOpen, setIsOpen] = (0, import_react47.useState)(false);
49030
- const [depositConfig, setDepositConfig] = (0, import_react47.useState)(null);
49031
- const [isCheckoutOpen, setIsCheckoutOpen] = (0, import_react47.useState)(false);
49032
- const [checkoutConfig, setCheckoutConfig] = (0, import_react47.useState)(null);
49033
- const [isWithdrawOpen, setIsWithdrawOpen] = (0, import_react47.useState)(false);
49034
- const [withdrawConfig, setWithdrawConfig] = (0, import_react47.useState)(null);
49035
- const [resolvedTheme, setResolvedTheme] = import_react47.default.useState("dark");
49645
+ const [isOpen, setIsOpen] = (0, import_react48.useState)(false);
49646
+ const [depositConfig, setDepositConfig] = (0, import_react48.useState)(null);
49647
+ const [isCheckoutOpen, setIsCheckoutOpen] = (0, import_react48.useState)(false);
49648
+ const [checkoutConfig, setCheckoutConfig] = (0, import_react48.useState)(null);
49649
+ const [isWithdrawOpen, setIsWithdrawOpen] = (0, import_react48.useState)(false);
49650
+ const [withdrawConfig, setWithdrawConfig] = (0, import_react48.useState)(null);
49651
+ const [resolvedTheme, setResolvedTheme] = import_react48.default.useState("dark");
49036
49652
  const incidentBannerEnabled = config?.notifications?.incidentBanner;
49037
- const tracker = (0, import_react47.useMemo)(
49653
+ const tracker = (0, import_react48.useMemo)(
49038
49654
  () => createEventTracker({
49039
49655
  publishableKey,
49040
- endpoint: `${(0, import_core61.getApiBaseUrl)()}/v1/public/events`
49656
+ endpoint: `${(0, import_core62.getApiBaseUrl)()}/v1/public/events`
49041
49657
  }),
49042
49658
  [publishableKey]
49043
49659
  );
49044
- (0, import_react47.useEffect)(() => {
49660
+ (0, import_react48.useEffect)(() => {
49045
49661
  return () => {
49046
49662
  tracker?.destroy();
49047
49663
  };
49048
49664
  }, [tracker]);
49049
- (0, import_react47.useEffect)(() => {
49665
+ (0, import_react48.useEffect)(() => {
49050
49666
  if (publishableKey) {
49051
- (0, import_core61.setApiConfig)({ publishableKey });
49667
+ (0, import_core62.setApiConfig)({ publishableKey });
49052
49668
  }
49053
49669
  }, [publishableKey]);
49054
- (0, import_react47.useEffect)(() => {
49670
+ (0, import_react48.useEffect)(() => {
49055
49671
  startBrowserWalletDiscovery();
49056
49672
  }, []);
49057
- import_react47.default.useEffect(() => {
49673
+ import_react48.default.useEffect(() => {
49058
49674
  const appearance = config?.appearance || "dark";
49059
49675
  if (appearance === "auto") {
49060
49676
  const prefersDark = window.matchMedia("(prefers-color-scheme: dark)").matches;
@@ -49069,17 +49685,17 @@ function UnifoldProvider({
49069
49685
  setResolvedTheme(appearance);
49070
49686
  }
49071
49687
  }, [config?.appearance]);
49072
- const depositPromiseRef = import_react47.default.useRef(null);
49073
- const depositConfigRef = import_react47.default.useRef(null);
49688
+ const depositPromiseRef = import_react48.default.useRef(null);
49689
+ const depositConfigRef = import_react48.default.useRef(null);
49074
49690
  depositConfigRef.current = depositConfig;
49075
- const closeTimeoutRef = import_react47.default.useRef(null);
49076
- const closeGuardRef = import_react47.default.useRef(false);
49077
- const withdrawPromiseRef = import_react47.default.useRef(null);
49078
- const withdrawConfigRef = import_react47.default.useRef(null);
49691
+ const closeTimeoutRef = import_react48.default.useRef(null);
49692
+ const closeGuardRef = import_react48.default.useRef(false);
49693
+ const withdrawPromiseRef = import_react48.default.useRef(null);
49694
+ const withdrawConfigRef = import_react48.default.useRef(null);
49079
49695
  withdrawConfigRef.current = withdrawConfig;
49080
- const withdrawCloseTimeoutRef = import_react47.default.useRef(null);
49081
- const withdrawCloseGuardRef = import_react47.default.useRef(false);
49082
- const beginDeposit = (0, import_react47.useCallback)((config2) => {
49696
+ const withdrawCloseTimeoutRef = import_react48.default.useRef(null);
49697
+ const withdrawCloseGuardRef = import_react48.default.useRef(false);
49698
+ const beginDeposit = (0, import_react48.useCallback)((config2) => {
49083
49699
  if (closeTimeoutRef.current) {
49084
49700
  clearTimeout(closeTimeoutRef.current);
49085
49701
  closeTimeoutRef.current = null;
@@ -49114,7 +49730,7 @@ function UnifoldProvider({
49114
49730
  setIsOpen(true);
49115
49731
  return promise;
49116
49732
  }, []);
49117
- const closeDeposit = (0, import_react47.useCallback)(() => {
49733
+ const closeDeposit = (0, import_react48.useCallback)(() => {
49118
49734
  if (closeGuardRef.current) {
49119
49735
  return;
49120
49736
  }
@@ -49136,7 +49752,7 @@ function UnifoldProvider({
49136
49752
  closeTimeoutRef.current = null;
49137
49753
  }, 200);
49138
49754
  }, []);
49139
- const handleDepositSuccess = (0, import_react47.useCallback)(
49755
+ const handleDepositSuccess = (0, import_react48.useCallback)(
49140
49756
  (data) => {
49141
49757
  if (depositConfig?.onSuccess) {
49142
49758
  depositConfig.onSuccess(data);
@@ -49148,7 +49764,7 @@ function UnifoldProvider({
49148
49764
  },
49149
49765
  [depositConfig]
49150
49766
  );
49151
- const handleDepositError = (0, import_react47.useCallback)(
49767
+ const handleDepositError = (0, import_react48.useCallback)(
49152
49768
  (error) => {
49153
49769
  console.error("[UnifoldProvider] Deposit error:", error);
49154
49770
  if (depositConfig?.onError) {
@@ -49161,12 +49777,12 @@ function UnifoldProvider({
49161
49777
  },
49162
49778
  [depositConfig]
49163
49779
  );
49164
- const checkoutPromiseRef = import_react47.default.useRef(null);
49165
- const checkoutConfigRef = import_react47.default.useRef(null);
49780
+ const checkoutPromiseRef = import_react48.default.useRef(null);
49781
+ const checkoutConfigRef = import_react48.default.useRef(null);
49166
49782
  checkoutConfigRef.current = checkoutConfig;
49167
- const checkoutCloseTimeoutRef = import_react47.default.useRef(null);
49168
- const checkoutCloseGuardRef = import_react47.default.useRef(false);
49169
- const beginCheckout = (0, import_react47.useCallback)((config2) => {
49783
+ const checkoutCloseTimeoutRef = import_react48.default.useRef(null);
49784
+ const checkoutCloseGuardRef = import_react48.default.useRef(false);
49785
+ const beginCheckout = (0, import_react48.useCallback)((config2) => {
49170
49786
  if (checkoutCloseTimeoutRef.current) {
49171
49787
  clearTimeout(checkoutCloseTimeoutRef.current);
49172
49788
  checkoutCloseTimeoutRef.current = null;
@@ -49191,7 +49807,7 @@ function UnifoldProvider({
49191
49807
  setIsCheckoutOpen(true);
49192
49808
  return promise;
49193
49809
  }, []);
49194
- const closeCheckout = (0, import_react47.useCallback)(() => {
49810
+ const closeCheckout = (0, import_react48.useCallback)(() => {
49195
49811
  if (checkoutCloseGuardRef.current) {
49196
49812
  return;
49197
49813
  }
@@ -49213,7 +49829,7 @@ function UnifoldProvider({
49213
49829
  checkoutCloseTimeoutRef.current = null;
49214
49830
  }, 200);
49215
49831
  }, []);
49216
- const handleCheckoutSuccess = (0, import_react47.useCallback)(
49832
+ const handleCheckoutSuccess = (0, import_react48.useCallback)(
49217
49833
  (data) => {
49218
49834
  if (checkoutConfig?.onSuccess) {
49219
49835
  checkoutConfig.onSuccess(data);
@@ -49225,7 +49841,7 @@ function UnifoldProvider({
49225
49841
  },
49226
49842
  [checkoutConfig]
49227
49843
  );
49228
- const handleCheckoutError = (0, import_react47.useCallback)(
49844
+ const handleCheckoutError = (0, import_react48.useCallback)(
49229
49845
  (error) => {
49230
49846
  console.error("[UnifoldProvider] Checkout error:", error);
49231
49847
  if (checkoutConfig?.onError) {
@@ -49238,7 +49854,7 @@ function UnifoldProvider({
49238
49854
  },
49239
49855
  [checkoutConfig]
49240
49856
  );
49241
- const beginWithdraw = (0, import_react47.useCallback)((config2) => {
49857
+ const beginWithdraw = (0, import_react48.useCallback)((config2) => {
49242
49858
  if (withdrawCloseTimeoutRef.current) {
49243
49859
  clearTimeout(withdrawCloseTimeoutRef.current);
49244
49860
  withdrawCloseTimeoutRef.current = null;
@@ -49263,7 +49879,7 @@ function UnifoldProvider({
49263
49879
  setIsWithdrawOpen(true);
49264
49880
  return promise;
49265
49881
  }, []);
49266
- const closeWithdraw = (0, import_react47.useCallback)(() => {
49882
+ const closeWithdraw = (0, import_react48.useCallback)(() => {
49267
49883
  if (withdrawCloseGuardRef.current) {
49268
49884
  return;
49269
49885
  }
@@ -49285,7 +49901,7 @@ function UnifoldProvider({
49285
49901
  withdrawCloseTimeoutRef.current = null;
49286
49902
  }, 200);
49287
49903
  }, []);
49288
- const handleWithdrawSuccess = (0, import_react47.useCallback)((data) => {
49904
+ const handleWithdrawSuccess = (0, import_react48.useCallback)((data) => {
49289
49905
  if (withdrawConfigRef.current?.onSuccess) {
49290
49906
  withdrawConfigRef.current.onSuccess(data);
49291
49907
  }
@@ -49294,7 +49910,7 @@ function UnifoldProvider({
49294
49910
  withdrawPromiseRef.current = null;
49295
49911
  }
49296
49912
  }, []);
49297
- const handleWithdrawError = (0, import_react47.useCallback)((error) => {
49913
+ const handleWithdrawError = (0, import_react48.useCallback)((error) => {
49298
49914
  console.error("[UnifoldProvider] Withdraw error:", error);
49299
49915
  if (withdrawConfigRef.current?.onError) {
49300
49916
  withdrawConfigRef.current.onError(error);
@@ -49304,7 +49920,7 @@ function UnifoldProvider({
49304
49920
  withdrawPromiseRef.current = null;
49305
49921
  }
49306
49922
  }, []);
49307
- const contextValue = (0, import_react47.useMemo)(
49923
+ const contextValue = (0, import_react48.useMemo)(
49308
49924
  () => ({
49309
49925
  beginDeposit,
49310
49926
  closeDeposit,
@@ -49326,7 +49942,7 @@ function UnifoldProvider({
49326
49942
  handleWithdrawError
49327
49943
  ]
49328
49944
  );
49329
- return /* @__PURE__ */ (0, import_jsx_runtime100.jsx)(import_react_provider.UnifoldProvider, { publishableKey, queryClient, children: /* @__PURE__ */ (0, import_jsx_runtime100.jsx)(ConnectContext.Provider, { value: contextValue, children: /* @__PURE__ */ (0, import_jsx_runtime100.jsx)(AnalyticsProvider, { tracker, children: /* @__PURE__ */ (0, import_jsx_runtime100.jsx)(I18nProvider, { locale: config?.locale, children: /* @__PURE__ */ (0, import_jsx_runtime100.jsxs)(
49945
+ return /* @__PURE__ */ (0, import_jsx_runtime103.jsx)(import_react_provider.UnifoldProvider, { publishableKey, queryClient, children: /* @__PURE__ */ (0, import_jsx_runtime103.jsx)(ConnectContext.Provider, { value: contextValue, children: /* @__PURE__ */ (0, import_jsx_runtime103.jsx)(AnalyticsProvider, { tracker, children: /* @__PURE__ */ (0, import_jsx_runtime103.jsx)(I18nProvider, { locale: config?.locale, children: /* @__PURE__ */ (0, import_jsx_runtime103.jsxs)(
49330
49946
  ThemeProvider,
49331
49947
  {
49332
49948
  mode: resolvedTheme,
@@ -49337,7 +49953,7 @@ function UnifoldProvider({
49337
49953
  components: config?.components,
49338
49954
  children: [
49339
49955
  children,
49340
- checkoutConfig && /* @__PURE__ */ (0, import_jsx_runtime100.jsx)(
49956
+ checkoutConfig && /* @__PURE__ */ (0, import_jsx_runtime103.jsx)(
49341
49957
  CheckoutModal,
49342
49958
  {
49343
49959
  open: isCheckoutOpen,
@@ -49359,7 +49975,7 @@ function UnifoldProvider({
49359
49975
  onEvent: checkoutConfig.onEvent
49360
49976
  }
49361
49977
  ),
49362
- withdrawConfig && /* @__PURE__ */ (0, import_jsx_runtime100.jsx)(
49978
+ withdrawConfig && /* @__PURE__ */ (0, import_jsx_runtime103.jsx)(
49363
49979
  WithdrawModal,
49364
49980
  {
49365
49981
  open: isWithdrawOpen,
@@ -49387,7 +50003,7 @@ function UnifoldProvider({
49387
50003
  theme: resolvedTheme
49388
50004
  }
49389
50005
  ),
49390
- depositConfig && /* @__PURE__ */ (0, import_jsx_runtime100.jsx)(
50006
+ depositConfig && /* @__PURE__ */ (0, import_jsx_runtime103.jsx)(
49391
50007
  DepositModal,
49392
50008
  {
49393
50009
  open: isOpen,
@@ -49448,10 +50064,10 @@ function UnifoldProvider({
49448
50064
  }
49449
50065
  ) }) }) }) });
49450
50066
  }
49451
- var ConnectContext = import_react47.default.createContext(null);
50067
+ var ConnectContext = import_react48.default.createContext(null);
49452
50068
  function useUnifold() {
49453
50069
  const baseContext = (0, import_react_provider.useUnifold)();
49454
- const connectContext = import_react47.default.useContext(ConnectContext);
50070
+ const connectContext = import_react48.default.useContext(ConnectContext);
49455
50071
  if (typeof window === "undefined") {
49456
50072
  return {
49457
50073
  publishableKey: "",
@@ -49485,7 +50101,7 @@ function useAllowedCountry2() {
49485
50101
  }
49486
50102
 
49487
50103
  // src/index.ts
49488
- var import_core62 = require("@unifold/core");
50104
+ var import_core63 = require("@unifold/core");
49489
50105
  // Annotate the CommonJS export names for ESM import in node:
49490
50106
  0 && (module.exports = {
49491
50107
  ActionType,