@funkit/connect 9.26.0 → 9.27.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (48) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/dist/clients/mallard.js +1 -1
  3. package/dist/clients/rolly.js +1 -1
  4. package/dist/components/FunPayments/FunPaymentMethods.d.ts +3 -1
  5. package/dist/hooks/queries/useWithdrawFops.d.ts +8 -0
  6. package/dist/index.js +95 -38
  7. package/dist/modals/CheckoutModal/InputAmount/useNadoDirectTransfer.d.ts +17 -15
  8. package/dist/modals/CheckoutModal/SourceChange/FormOfPaymentsList.d.ts +8 -1
  9. package/dist/modals/WithdrawalModal/WithdrawalMethodSelect.d.ts +7 -1
  10. package/dist/utils/withdrawal.d.ts +6 -0
  11. package/dist/wallets/walletConnectors/bifrostWallet/bifrostWallet.js +2 -2
  12. package/dist/wallets/walletConnectors/bitgetWallet/bitgetWallet.js +2 -2
  13. package/dist/wallets/walletConnectors/bybitWallet/bybitWallet.js +2 -2
  14. package/dist/wallets/walletConnectors/clvWallet/clvWallet.js +2 -2
  15. package/dist/wallets/walletConnectors/coin98Wallet/coin98Wallet.js +2 -2
  16. package/dist/wallets/walletConnectors/coreWallet/coreWallet.js +2 -2
  17. package/dist/wallets/walletConnectors/foxWallet/foxWallet.js +2 -2
  18. package/dist/wallets/walletConnectors/frontierWallet/frontierWallet.js +2 -2
  19. package/dist/wallets/walletConnectors/gateWallet/gateWallet.js +2 -2
  20. package/dist/wallets/walletConnectors/index.js +49 -49
  21. package/dist/wallets/walletConnectors/metaMaskWallet/metaMaskWallet.js +2 -2
  22. package/dist/wallets/walletConnectors/okxWallet/okxWallet.js +2 -2
  23. package/dist/wallets/walletConnectors/rainbowWallet/rainbowWallet.js +2 -2
  24. package/dist/wallets/walletConnectors/roninWallet/roninWallet.js +2 -2
  25. package/dist/wallets/walletConnectors/safepalWallet/safepalWallet.js +2 -2
  26. package/dist/wallets/walletConnectors/subWallet/subWallet.js +2 -2
  27. package/dist/wallets/walletConnectors/tokenPocketWallet/tokenPocketWallet.js +2 -2
  28. package/dist/wallets/walletConnectors/trustWallet/trustWallet.js +2 -2
  29. package/dist/wallets/walletConnectors/zerionWallet/zerionWallet.js +2 -2
  30. package/package.json +4 -4
  31. package/dist/wallets/walletConnectors/{chunk-RB3HR4R2.js → chunk-4NV5BYRP.js} +3 -3
  32. package/dist/wallets/walletConnectors/{chunk-YEZM4CK4.js → chunk-AVDUNQUW.js} +3 -3
  33. package/dist/wallets/walletConnectors/{chunk-MIQTHJ6X.js → chunk-GUQM4QSL.js} +3 -3
  34. package/dist/wallets/walletConnectors/{chunk-4T6ZSRJF.js → chunk-IULPZP2Q.js} +3 -3
  35. package/dist/wallets/walletConnectors/{chunk-HNRB7KJU.js → chunk-JPN6TWIT.js} +3 -3
  36. package/dist/wallets/walletConnectors/{chunk-ZNX4EMPB.js → chunk-KCRO2AGO.js} +3 -3
  37. package/dist/wallets/walletConnectors/{chunk-STVVP43G.js → chunk-KI5Y2BBF.js} +3 -3
  38. package/dist/wallets/walletConnectors/{chunk-X6CGV36L.js → chunk-NR2OGDHQ.js} +3 -3
  39. package/dist/wallets/walletConnectors/{chunk-UK7C2JXW.js → chunk-OEEGYENV.js} +3 -3
  40. package/dist/wallets/walletConnectors/{chunk-F5XEEVG6.js → chunk-OX37G4YT.js} +3 -3
  41. package/dist/wallets/walletConnectors/{chunk-RVOY537T.js → chunk-SWFF3TWJ.js} +3 -3
  42. package/dist/wallets/walletConnectors/{chunk-CPI4TD43.js → chunk-TKB2OY6G.js} +3 -3
  43. package/dist/wallets/walletConnectors/{chunk-2VP2F6EK.js → chunk-W2LCLDPX.js} +3 -3
  44. package/dist/wallets/walletConnectors/{chunk-6BW3HLBG.js → chunk-WAHGI5L7.js} +3 -3
  45. package/dist/wallets/walletConnectors/{chunk-HTHAK6XB.js → chunk-WKNQMP4A.js} +3 -3
  46. package/dist/wallets/walletConnectors/{chunk-VTM6EECM.js → chunk-XCNHV3HS.js} +3 -3
  47. package/dist/wallets/walletConnectors/{chunk-CCQV2ZET.js → chunk-YO2K4MBH.js} +3 -3
  48. package/dist/wallets/walletConnectors/{chunk-VAPGUPHO.js → chunk-YQFGVZGR.js} +3 -3
package/CHANGELOG.md CHANGED
@@ -1,5 +1,31 @@
1
1
  # @funkit/connect
2
2
 
3
+ ## 9.27.0
4
+
5
+ ### Minor Changes
6
+
7
+ - 6e4aa57: Disable Swapped withdrawal cash methods with a "Low Balance" badge when the withdrawal balance is below the sell minimum.
8
+ - 394a46c: Cap the Swapped withdrawal iframe input via a FOP `defaultMaxAmount` (EUR) derived from the user's source-token balance
9
+
10
+ ### Patch Changes
11
+
12
+ - df21fd3: chore: update final rolly contract
13
+ - 3e22665: patch(connect): fix ostium source change top spacing
14
+ - cf7af7d: fix(connect): scope Nado direct-transfer fast-path to xStock targets
15
+ - 78a888c: fix(connect): update Mallard deposit contract address
16
+ - Updated dependencies [42aafd9]
17
+ - Updated dependencies [394a46c]
18
+ - @funkit/fun-relay@2.8.7
19
+ - @funkit/api-base@5.1.0
20
+ - @funkit/connect-core@1.4.1
21
+
22
+ ## 9.26.1
23
+
24
+ ### Patch Changes
25
+
26
+ - Updated dependencies [0a13c0c]
27
+ - @funkit/fun-relay@2.8.6
28
+
3
29
  ## 9.26.0
4
30
 
5
31
  ### Minor Changes
@@ -42,7 +42,7 @@ import {
42
42
 
43
43
  // src/clients/mallard.tsx
44
44
  var MALLARD_DEPOSIT_ADDRESS = getAddress(
45
- "0xb272c91D84d6538C8F31ab092A53Bfe8916B5449"
45
+ "0xD42c46c7BaD6A54b38395F846b09981CE75fb8e2"
46
46
  );
47
47
  var VAULT_DEPOSITOR_ZORRO = getAddress(
48
48
  "0xec70919c52e56a197d2e13b78cb8511db54f3ca2"
@@ -9,7 +9,7 @@ import {
9
9
  maxUint256
10
10
  } from "viem";
11
11
  var ROLLY_VAULT_ADDRESS = getAddress(
12
- "0x57d05CfC7bCAc9E7Ebf4D35a2b1725a83ADA771C"
12
+ "0xd40373CC943f32BAd15bF42d1580363f4D52739D"
13
13
  );
14
14
  var ARBITRUM_USDT0 = getAddress(
15
15
  "0xfd086bc7cd5c481dcc9c85ebe478a1c0b69fcbb9"
@@ -86,9 +86,11 @@ export declare function PaymentMethodDisabledBadge(props: {
86
86
  /**
87
87
  * Payment method item for a Form of Payment from the fops API (Swapped providers)
88
88
  */
89
- export declare function FopPaymentMethodItem({ fop, isActive, onClick, testId, disclaimerLimit, disabled, }: BasePaymentMethodItemProps & {
89
+ export declare function FopPaymentMethodItem({ fop, isActive, onClick, testId, disclaimerLimit, disabled, isBelowMinimum, }: BasePaymentMethodItemProps & {
90
90
  fop: SwappedFormOfPayment;
91
91
  disclaimerLimit: string;
92
92
  disabled?: boolean;
93
+ /** Withdrawal off-ramp only: balance can't meet the cash sell minimum. */
94
+ isBelowMinimum?: boolean;
93
95
  }): React.JSX.Element;
94
96
  export {};
@@ -1,4 +1,5 @@
1
1
  import { type GetFopsResponse } from '@funkit/api-base';
2
+ export declare const SWAPPED_MIN_SELL_EUR = 7;
2
3
  /**
3
4
  * Hook to fetch available withdrawal (off-ramp) forms of payment from /fops.
4
5
  * Sends a CRYPTO_TO_FIAT rail config to get sell/payout methods.
@@ -6,6 +7,13 @@ import { type GetFopsResponse } from '@funkit/api-base';
6
7
  export declare const useWithdrawFops: (params: {
7
8
  sourceChainId: string;
8
9
  sourceTokenAddress: string;
10
+ /** Best-effort max sell amount in EUR; capped to the user's source balance. */
11
+ defaultMaxAmount?: number;
12
+ /**
13
+ * Gate the fetch. Default true. Pass false to hold the request until the cap
14
+ * is resolved, so the first /fops call never goes out uncapped.
15
+ */
16
+ enabled?: boolean;
9
17
  }) => {
10
18
  data: GetFopsResponse | undefined;
11
19
  isLoading: boolean;
package/dist/index.js CHANGED
@@ -1683,7 +1683,7 @@ function setFunkitConnectVersion({ version }) {
1683
1683
  localStorage.setItem(storageKey, version);
1684
1684
  }
1685
1685
  function getCurrentSdkVersion() {
1686
- return "9.26.0";
1686
+ return "9.27.0";
1687
1687
  }
1688
1688
  function useFingerprint() {
1689
1689
  const fingerprint = useCallback3(() => {
@@ -5177,6 +5177,18 @@ import {
5177
5177
 
5178
5178
  // src/utils/withdrawal.ts
5179
5179
  import { parseUnits } from "viem";
5180
+ function safeEvaluateWithdrawalSourceTokenBalance(fn) {
5181
+ const raw = fn?.();
5182
+ if (raw == null) {
5183
+ return "0";
5184
+ }
5185
+ const str = String(raw);
5186
+ if (str === "" || Number.isNaN(Number(str)) || Number(str) < 0) {
5187
+ logger.warn("withdrawal:invalidSourceTokenBalance", { raw });
5188
+ return "0";
5189
+ }
5190
+ return str;
5191
+ }
5180
5192
  function isWalletWithdrawalConfig(config) {
5181
5193
  return "wallet" in config;
5182
5194
  }
@@ -22087,18 +22099,40 @@ function PaymentMethodDisabledBadge(props) {
22087
22099
  return null;
22088
22100
  }
22089
22101
  }
22102
+ function getFopDisabledBadgeReason({
22103
+ isDisabled,
22104
+ isGeoblocked,
22105
+ isBelowMinimum
22106
+ }) {
22107
+ if (!isDisabled) {
22108
+ return null;
22109
+ }
22110
+ if (isGeoblocked) {
22111
+ return "geoblocked";
22112
+ }
22113
+ if (isBelowMinimum) {
22114
+ return "lowBalance";
22115
+ }
22116
+ return "comingSoon";
22117
+ }
22090
22118
  function FopPaymentMethodItem({
22091
22119
  fop,
22092
22120
  isActive,
22093
22121
  onClick,
22094
22122
  testId,
22095
22123
  disclaimerLimit,
22096
- disabled
22124
+ disabled,
22125
+ isBelowMinimum
22097
22126
  }) {
22098
22127
  const { isUserGeoblocked } = useFunkitUserIp();
22099
22128
  const { geoblocked: isQrCodeGeoblocked } = useIsQRCodeTransferEnabled();
22100
22129
  const isGeoblocked = isQrCodeGeoblocked || isUserGeoblocked;
22101
- const isDisabled = disabled || isGeoblocked || !fop.embeddedFlowUrl;
22130
+ const isDisabled = disabled || isGeoblocked || isBelowMinimum || !fop.embeddedFlowUrl;
22131
+ const disabledBadgeReason = getFopDisabledBadgeReason({
22132
+ isDisabled,
22133
+ isGeoblocked,
22134
+ isBelowMinimum
22135
+ });
22102
22136
  const { activeTheme, darkTheme: darkTheme2 } = useActiveTheme();
22103
22137
  const { t } = useFunkitTranslation();
22104
22138
  const isDarkMode = activeTheme === darkTheme2;
@@ -22127,12 +22161,7 @@ function FopPaymentMethodItem({
22127
22161
  time: isBankTransfer ? FIAT_PROCESSING_TIME : t("payment.instant")
22128
22162
  }),
22129
22163
  testId: testId || `fop-${labelText.toLowerCase().replace(/\s+/g, "-")}`,
22130
- valueIcon: isDisabled ? /* @__PURE__ */ React92.createElement(
22131
- PaymentMethodDisabledBadge,
22132
- {
22133
- reason: isGeoblocked ? "geoblocked" : "comingSoon"
22134
- }
22135
- ) : void 0
22164
+ valueIcon: disabledBadgeReason ? /* @__PURE__ */ React92.createElement(PaymentMethodDisabledBadge, { reason: disabledBadgeReason }) : void 0
22136
22165
  }
22137
22166
  );
22138
22167
  }
@@ -26661,18 +26690,6 @@ var FALLBACK_FEES = {
26661
26690
  totalFeesUsd: 0,
26662
26691
  totalFeesTokenWithoutGas: 0
26663
26692
  };
26664
- function safeEvaluateWithdrawalSourceTokenBalance(fn) {
26665
- const raw = fn?.();
26666
- if (raw == null) {
26667
- return "0";
26668
- }
26669
- const str = String(raw);
26670
- if (str === "" || Number.isNaN(Number(str)) || Number(str) < 0) {
26671
- logger.warn("withdrawal:invalidSourceTokenBalance", { raw });
26672
- return "0";
26673
- }
26674
- return str;
26675
- }
26676
26693
  function useWithdrawalAssets(config) {
26677
26694
  const enableEmptyWithdrawalSelection = useFeatureGate(
26678
26695
  "enable-empty-withdrawal-selection"
@@ -27401,6 +27418,7 @@ function findSwappedSourceOverride(overrides, source) {
27401
27418
  }
27402
27419
 
27403
27420
  // src/hooks/queries/useWithdrawFops.ts
27421
+ var SWAPPED_MIN_SELL_EUR = 7;
27404
27422
  var useWithdrawFops = (params) => {
27405
27423
  const { apiKey } = useFunkitConfig();
27406
27424
  const { userInfo } = useGeneralWallet();
@@ -27430,7 +27448,7 @@ var useWithdrawFops = (params) => {
27430
27448
  );
27431
27449
  const userId = userInfo.id;
27432
27450
  const countryCode = userIpInfo?.alpha2;
27433
- const isEnabled = !!apiKey && !!userId && !!userInfo.address && !!countryCode && !!params.sourceChainId && !!params.sourceTokenAddress && !isSwappedCurrencyCodeLoading;
27451
+ const isEnabled = (params.enabled ?? true) && !!apiKey && !!userId && !!userInfo.address && !!countryCode && !!params.sourceChainId && !!params.sourceTokenAddress && !isSwappedCurrencyCodeLoading;
27434
27452
  const query = useQuery21({
27435
27453
  // `prefillFiatEmail` is intentionally NOT in the queryKey: it's read inside
27436
27454
  // `queryFn` and captured at fetch time, so post-mount changes don't trigger a refetch
@@ -27445,7 +27463,8 @@ var useWithdrawFops = (params) => {
27445
27463
  params.sourceChainId,
27446
27464
  params.sourceTokenAddress,
27447
27465
  acceptedToken.chainId,
27448
- acceptedToken.address
27466
+ acceptedToken.address,
27467
+ params.defaultMaxAmount
27449
27468
  ],
27450
27469
  queryFn: async () => {
27451
27470
  if (!isEnabled) {
@@ -27464,6 +27483,14 @@ var useWithdrawFops = (params) => {
27464
27483
  themeConfig,
27465
27484
  "useWithdrawFops"
27466
27485
  );
27486
+ logger.info("withdrawFops:sellLimits", {
27487
+ sourceChainId: params.sourceChainId,
27488
+ sourceTokenAddress: params.sourceTokenAddress,
27489
+ swappedCurrencyCode,
27490
+ defaultMinAmountEur: SWAPPED_MIN_SELL_EUR,
27491
+ defaultMaxAmountEur: params.defaultMaxAmount,
27492
+ capApplied: params.defaultMaxAmount != null && params.defaultMaxAmount > SWAPPED_MIN_SELL_EUR
27493
+ });
27467
27494
  const response = await getFops3({
27468
27495
  apiKey,
27469
27496
  logger,
@@ -27484,8 +27511,14 @@ var useWithdrawFops = (params) => {
27484
27511
  fiatCurrencyCode: swappedCurrencyCode,
27485
27512
  sourceToken: acceptedToken,
27486
27513
  thirdPartyPaymentConfigs,
27487
- checkoutLimitsCriteria: { defaultMinAmount: 7 }
27488
- // EUR — Swapped's hard minimum sell amount
27514
+ checkoutLimitsCriteria: {
27515
+ defaultMinAmount: SWAPPED_MIN_SELL_EUR,
27516
+ // Only cap when the balance clears the minimum — a max at/below
27517
+ // the min is a contradictory range for Swapped's iframe.
27518
+ ...params.defaultMaxAmount != null && params.defaultMaxAmount > SWAPPED_MIN_SELL_EUR && {
27519
+ defaultMaxAmount: params.defaultMaxAmount
27520
+ }
27521
+ }
27489
27522
  }
27490
27523
  ]
27491
27524
  }
@@ -27710,7 +27743,8 @@ function FormOfPaymentsContent({
27710
27743
  exchangeRatesData,
27711
27744
  defaultMaxItems,
27712
27745
  enableSourceGroupLabels,
27713
- isDisabled
27746
+ isDisabled,
27747
+ isBelowMinimumBalance
27714
27748
  }) {
27715
27749
  const { t } = useFunkitTranslation();
27716
27750
  const [isExpanded, setIsExpanded] = useState42(false);
@@ -27760,7 +27794,8 @@ function FormOfPaymentsContent({
27760
27794
  disclaimerLimit: getFopsLimit(fop, exchangeRatesData),
27761
27795
  isActive: selectedFop?.embeddedFlowUrl === fop.embeddedFlowUrl,
27762
27796
  onClick: () => onFopSelect(fop),
27763
- disabled: isDisabled
27797
+ disabled: isDisabled,
27798
+ isBelowMinimum: isBelowMinimumBalance
27764
27799
  }
27765
27800
  );
27766
27801
  if (!enableSourceGroupLabels) {
@@ -27792,7 +27827,8 @@ function FormOfPaymentsList({
27792
27827
  onFopSelect,
27793
27828
  exchangeRatesData,
27794
27829
  enableSourceGroupLabels,
27795
- isDisabled
27830
+ isDisabled,
27831
+ isBelowMinimumBalance
27796
27832
  }) {
27797
27833
  const { uiCustomizations } = useFunkitConfig();
27798
27834
  const boxClassName = uiCustomizations.enableCompactList ? sourceListCompactBoxStyles : sourceListBoxStyles;
@@ -27823,7 +27859,8 @@ function FormOfPaymentsList({
27823
27859
  exchangeRatesData,
27824
27860
  defaultMaxItems,
27825
27861
  enableSourceGroupLabels,
27826
- isDisabled
27862
+ isDisabled,
27863
+ isBelowMinimumBalance
27827
27864
  }
27828
27865
  );
27829
27866
  }
@@ -27874,11 +27911,22 @@ function WithdrawalMethodSelect({
27874
27911
  onCryptoSelect,
27875
27912
  onCashFopSelect,
27876
27913
  sourceChainId,
27877
- sourceTokenAddress
27914
+ sourceTokenAddress,
27915
+ usdBalance = 0
27878
27916
  }) {
27879
27917
  const { t } = useFunkitTranslation();
27880
- const withdrawFops = useWithdrawFops({ sourceChainId, sourceTokenAddress });
27881
27918
  const exchangeRates = useFiatExchangeRates();
27919
+ const eurRate = getExchangeRate("EUR", exchangeRates.data, 0);
27920
+ const eurMax = eurRate && usdBalance > 0 ? Math.floor(usdBalance * eurRate) : void 0;
27921
+ const cashMinUsd = eurRate ? SWAPPED_MIN_SELL_EUR / eurRate : void 0;
27922
+ const isBelowMinimumBalance = cashMinUsd != null && usdBalance < cashMinUsd;
27923
+ const isAwaitingCap = usdBalance > 0 && exchangeRates.isLoading;
27924
+ const withdrawFops = useWithdrawFops({
27925
+ sourceChainId,
27926
+ sourceTokenAddress,
27927
+ defaultMaxAmount: eurMax,
27928
+ enabled: !isAwaitingCap
27929
+ });
27882
27930
  useSwappedPreload(withdrawFops.data);
27883
27931
  return /* @__PURE__ */ React139.createElement(Box, { display: "flex", flexDirection: "column", gap: "8" }, /* @__PURE__ */ React139.createElement(
27884
27932
  Text,
@@ -27915,7 +27963,8 @@ function WithdrawalMethodSelect({
27915
27963
  isLoading: withdrawFops.isLoading || exchangeRates.isLoading,
27916
27964
  onFopSelect: onCashFopSelect,
27917
27965
  exchangeRatesData: exchangeRates.data,
27918
- enableSourceGroupLabels: false
27966
+ enableSourceGroupLabels: false,
27967
+ isBelowMinimumBalance
27919
27968
  }
27920
27969
  ));
27921
27970
  }
@@ -28893,6 +28942,11 @@ function WithdrawalModal({
28893
28942
  {
28894
28943
  sourceChainId: activeConfig.sourceChainId,
28895
28944
  sourceTokenAddress: activeConfig.sourceTokenAddress,
28945
+ usdBalance: Number(
28946
+ safeEvaluateWithdrawalSourceTokenBalance(
28947
+ withdrawalItem?.withdrawalSourceTokenBalance
28948
+ )
28949
+ ),
28896
28950
  onCryptoSelect: () => {
28897
28951
  logEvent({
28898
28952
  eventName: "fw::crypto_address_selected" /* CRYPTO_ADDRESS_SELECTED */,
@@ -33486,12 +33540,10 @@ function isNadoDirectTransferContext({
33486
33540
  apiKey,
33487
33541
  sourceAsset,
33488
33542
  checkoutConfig,
33543
+ isXstockTarget,
33489
33544
  wrappedTokenAddress
33490
33545
  }) {
33491
- if (!isNadoCustomer(apiKey)) {
33492
- return false;
33493
- }
33494
- if (!checkoutConfig.customRecipient) {
33546
+ if (!isNadoCustomer(apiKey) || !checkoutConfig.customRecipient || !isXstockTarget) {
33495
33547
  return false;
33496
33548
  }
33497
33549
  const matchesTarget = isTokenEquivalent9({
@@ -33518,14 +33570,18 @@ function useIsNadoDirectTransferSource() {
33518
33570
  const { checkoutItem } = useCheckoutContext();
33519
33571
  const { data: wrappedTokenAddress } = useXstocksWrappedTokenAddress();
33520
33572
  const config = checkoutItem?.initSettings.config;
33573
+ const isXstockTarget = isXStockTargetAsset(
33574
+ getActiveDynamicTargetAsset(config)
33575
+ );
33521
33576
  return useCallback37(
33522
33577
  (source) => config != null && isNadoDirectTransferContext({
33523
33578
  apiKey,
33524
33579
  sourceAsset: source,
33525
33580
  checkoutConfig: config,
33581
+ isXstockTarget,
33526
33582
  wrappedTokenAddress
33527
33583
  }),
33528
- [apiKey, config, wrappedTokenAddress]
33584
+ [apiKey, config, isXstockTarget, wrappedTokenAddress]
33529
33585
  );
33530
33586
  }
33531
33587
  function useNadoDirectTransfer() {
@@ -40107,10 +40163,11 @@ function useSourceChangeLayout() {
40107
40163
  customTopComponent,
40108
40164
  showCustomTopComponentDivider
40109
40165
  } = uiCustomizations.sourceChangeScreen;
40166
+ const { alwaysShowTopDivider } = uiCustomizations;
40110
40167
  const dynamicTargetAssets = checkoutItem?.initSettings.config?.dynamicTargetAssetCandidates;
40111
40168
  const isTargetAssetSelectable = !!(showTargetAssetSelection && dynamicTargetAssets && dynamicTargetAssets.length > 1);
40112
40169
  const showContentDivider = !!customTopComponent && !!showCustomTopComponentDivider || isTargetAssetSelectable && isSwappedEnabled;
40113
- const cryptoCashToggleMarginTop = customTopComponent && !showContentDivider ? "24" : "0";
40170
+ const cryptoCashToggleMarginTop = customTopComponent && !showContentDivider ? "24" : !customTopComponent && !isTargetAssetSelectable && alwaysShowTopDivider ? "16" : "0";
40114
40171
  return {
40115
40172
  isTargetAssetSelectable,
40116
40173
  showContentDivider,
@@ -21,11 +21,9 @@ interface UseNadoDirectTransferResult {
21
21
  isPending: boolean;
22
22
  error: CheckoutConfirmationError | null;
23
23
  /**
24
- * Whether this checkout takes the direct-transfer fast-path. True when all
25
- * hold: the customer is Nado, `customRecipient` is set, and the selected
26
- * source token (`checkoutItem.selectedSourceAssetInfo`) is the target token
27
- * or its wrapper on the same chain. False until a source is selected and,
28
- * for a wrapper source, until the wrapper address resolves.
24
+ * Whether this checkout takes the direct-transfer fast-path see
25
+ * `isNadoDirectTransferContext`. False until a source is selected and, for a
26
+ * wrapper source, until the wrapper address resolves.
29
27
  */
30
28
  isApplicable: boolean;
31
29
  }
@@ -37,22 +35,26 @@ interface NadoDirectTransferContextArgs {
37
35
  };
38
36
  checkoutConfig: Pick<FunkitCheckoutConfig, 'targetChain' | 'targetAsset' | 'customRecipient'>;
39
37
  /**
40
- * The target token's wrapped version (xStocks `wrapperAddressV2`) on the target
41
- * chain. A held wrapped-token balance (e.g. wSPYx for SPYx) is an equivalent
42
- * direct-transfer source. Resolved by `useXstocksWrappedTokenAddress`; omit
43
- * when there's none.
38
+ * Whether the target is an xStock asset (`assetClass === 'xstock'`). Gates the
39
+ * fast-path to xStocks so a same-token route like USDT USDT keeps using Relay.
40
+ */
41
+ isXstockTarget: boolean;
42
+ /**
43
+ * Target token's wrapped version (xStocks `wrapperAddressV2`) on the target
44
+ * chain — a held balance (e.g. wSPYx for SPYx) is an equivalent source. From
45
+ * `useXstocksWrappedTokenAddress`; omit when there's none.
44
46
  */
45
47
  wrappedTokenAddress?: string;
46
48
  }
47
49
  /**
48
- * True when: the customer is Nado, the checkout has an explicit recipient (the
49
- * subaccount DDA), and the source matches the target token or its wrapper (same
50
- * chain). When true the deposit is a direct ERC-20 transfer, not a Relay swap.
50
+ * True when the customer is Nado, the target is an xStock, the checkout has an
51
+ * explicit recipient (the subaccount DDA), and the source matches the target
52
+ * token or its wrapper (same chain) a direct ERC-20 transfer, not a Relay swap.
51
53
  *
52
- * Kept customer-gated (not purely config-driven) to bound blast radius only
53
- * Nado should route through the direct-transfer path until it's proven out.
54
+ * - Customer-gated (not config-driven) to bound blast radius to Nado.
55
+ * - xStocks-gated so a same-token route (USDT USDT) keeps using Relay.
54
56
  */
55
- export declare function isNadoDirectTransferContext({ apiKey, sourceAsset, checkoutConfig, wrappedTokenAddress, }: NadoDirectTransferContextArgs): boolean;
57
+ export declare function isNadoDirectTransferContext({ apiKey, sourceAsset, checkoutConfig, isXstockTarget, wrappedTokenAddress, }: NadoDirectTransferContextArgs): boolean;
56
58
  /**
57
59
  * Predicate over a source asset: does it qualify for the Nado direct-transfer fast-path?
58
60
  */
@@ -8,6 +8,13 @@ interface FormOfPaymentsListProps {
8
8
  exchangeRatesData?: ExchangeRates;
9
9
  enableSourceGroupLabels: boolean;
10
10
  isDisabled?: boolean;
11
+ /**
12
+ * Withdrawal off-ramp only: balance is below the cash sell minimum, so every
13
+ * cash method is disabled with a "Low Balance" badge. A single flag is enough
14
+ * while all providers share one minimum — switch to a `(fop) => boolean`
15
+ * predicate if per-provider minimums ever diverge.
16
+ */
17
+ isBelowMinimumBalance?: boolean;
11
18
  }
12
19
  interface FormOfPaymentSection {
13
20
  items: SwappedFormOfPayment[];
@@ -17,5 +24,5 @@ export declare function getFormOfPaymentSections(fopsData: GetFopsResponse, fopP
17
24
  primary: FormOfPaymentSection;
18
25
  secondary: FormOfPaymentSection;
19
26
  };
20
- export declare function FormOfPaymentsList({ fopsData, isLoading, selectedFop, onFopSelect, exchangeRatesData, enableSourceGroupLabels, isDisabled, }: FormOfPaymentsListProps): React.JSX.Element;
27
+ export declare function FormOfPaymentsList({ fopsData, isLoading, selectedFop, onFopSelect, exchangeRatesData, enableSourceGroupLabels, isDisabled, isBelowMinimumBalance, }: FormOfPaymentsListProps): React.JSX.Element;
21
28
  export {};
@@ -5,6 +5,12 @@ interface WithdrawalMethodSelectProps {
5
5
  onCashFopSelect: (fop: SwappedFormOfPayment) => void;
6
6
  sourceChainId: string;
7
7
  sourceTokenAddress: string;
8
+ /**
9
+ * Source-token balance in USD. MVP source is USDG (≈ $1) so the token balance
10
+ * ≈ USD; non-stable sources (e.g. ETH) would need `balance × USD price`.
11
+ * Omit/0 when unknown — no cap is sent and the iframe stays uncapped.
12
+ */
13
+ usdBalance?: number;
8
14
  }
9
- export declare function WithdrawalMethodSelect({ onCryptoSelect, onCashFopSelect, sourceChainId, sourceTokenAddress, }: WithdrawalMethodSelectProps): React.JSX.Element;
15
+ export declare function WithdrawalMethodSelect({ onCryptoSelect, onCashFopSelect, sourceChainId, sourceTokenAddress, usdBalance, }: WithdrawalMethodSelectProps): React.JSX.Element;
10
16
  export {};
@@ -1,4 +1,10 @@
1
1
  import type { CustomWithdrawalConfig, FunkitWithdrawalConfig, MultiMethodWithdrawalConfig, WalletWithdrawalConfig } from '../providers/FunkitCheckoutContext';
2
+ /**
3
+ * Evaluates the integrator's `withdrawalSourceTokenBalance` callback to a safe
4
+ * numeric string. Returns `'0'` (with a warn) for missing/empty/NaN/negative
5
+ * values. Shared by the withdrawal amount screen and the Swapped cash cap.
6
+ */
7
+ export declare function safeEvaluateWithdrawalSourceTokenBalance(fn: (() => string | number) | undefined): string;
2
8
  /**
3
9
  * Type guard to check if withdrawal config uses wallet-based flow
4
10
  */
@@ -1,9 +1,9 @@
1
1
  "use client";
2
2
  import {
3
3
  bifrostWallet
4
- } from "../chunk-4T6ZSRJF.js";
5
- import "../chunk-OLZ7626J.js";
4
+ } from "../chunk-IULPZP2Q.js";
6
5
  import "../chunk-N4IJLYFY.js";
6
+ import "../chunk-OLZ7626J.js";
7
7
  import "../chunk-IGKXZBTA.js";
8
8
  export {
9
9
  bifrostWallet
@@ -1,9 +1,9 @@
1
1
  "use client";
2
2
  import {
3
3
  bitgetWallet
4
- } from "../chunk-CPI4TD43.js";
5
- import "../chunk-OLZ7626J.js";
4
+ } from "../chunk-TKB2OY6G.js";
6
5
  import "../chunk-N4IJLYFY.js";
6
+ import "../chunk-OLZ7626J.js";
7
7
  import "../chunk-IGKXZBTA.js";
8
8
  export {
9
9
  bitgetWallet
@@ -1,9 +1,9 @@
1
1
  "use client";
2
2
  import {
3
3
  bybitWallet
4
- } from "../chunk-F5XEEVG6.js";
5
- import "../chunk-OLZ7626J.js";
4
+ } from "../chunk-OX37G4YT.js";
6
5
  import "../chunk-N4IJLYFY.js";
6
+ import "../chunk-OLZ7626J.js";
7
7
  import "../chunk-IGKXZBTA.js";
8
8
  export {
9
9
  bybitWallet
@@ -1,9 +1,9 @@
1
1
  "use client";
2
2
  import {
3
3
  clvWallet
4
- } from "../chunk-UK7C2JXW.js";
5
- import "../chunk-OLZ7626J.js";
4
+ } from "../chunk-OEEGYENV.js";
6
5
  import "../chunk-N4IJLYFY.js";
6
+ import "../chunk-OLZ7626J.js";
7
7
  import "../chunk-IGKXZBTA.js";
8
8
  export {
9
9
  clvWallet
@@ -1,9 +1,9 @@
1
1
  "use client";
2
2
  import {
3
3
  coin98Wallet
4
- } from "../chunk-6BW3HLBG.js";
5
- import "../chunk-OLZ7626J.js";
4
+ } from "../chunk-WAHGI5L7.js";
6
5
  import "../chunk-N4IJLYFY.js";
6
+ import "../chunk-OLZ7626J.js";
7
7
  import "../chunk-IGKXZBTA.js";
8
8
  export {
9
9
  coin98Wallet
@@ -1,9 +1,9 @@
1
1
  "use client";
2
2
  import {
3
3
  coreWallet
4
- } from "../chunk-RB3HR4R2.js";
5
- import "../chunk-OLZ7626J.js";
4
+ } from "../chunk-4NV5BYRP.js";
6
5
  import "../chunk-N4IJLYFY.js";
6
+ import "../chunk-OLZ7626J.js";
7
7
  import "../chunk-IGKXZBTA.js";
8
8
  export {
9
9
  coreWallet
@@ -1,9 +1,9 @@
1
1
  "use client";
2
2
  import {
3
3
  foxWallet
4
- } from "../chunk-MIQTHJ6X.js";
5
- import "../chunk-OLZ7626J.js";
4
+ } from "../chunk-GUQM4QSL.js";
6
5
  import "../chunk-N4IJLYFY.js";
6
+ import "../chunk-OLZ7626J.js";
7
7
  import "../chunk-IGKXZBTA.js";
8
8
  export {
9
9
  foxWallet
@@ -1,9 +1,9 @@
1
1
  "use client";
2
2
  import {
3
3
  frontierWallet
4
- } from "../chunk-YEZM4CK4.js";
5
- import "../chunk-OLZ7626J.js";
4
+ } from "../chunk-AVDUNQUW.js";
6
5
  import "../chunk-N4IJLYFY.js";
6
+ import "../chunk-OLZ7626J.js";
7
7
  import "../chunk-IGKXZBTA.js";
8
8
  export {
9
9
  frontierWallet
@@ -1,9 +1,9 @@
1
1
  "use client";
2
2
  import {
3
3
  gateWallet
4
- } from "../chunk-HNRB7KJU.js";
5
- import "../chunk-OLZ7626J.js";
4
+ } from "../chunk-JPN6TWIT.js";
6
5
  import "../chunk-N4IJLYFY.js";
6
+ import "../chunk-OLZ7626J.js";
7
7
  import "../chunk-IGKXZBTA.js";
8
8
  export {
9
9
  gateWallet
@@ -1,25 +1,22 @@
1
1
  "use client";
2
- import {
3
- zealWallet
4
- } from "./chunk-52QXXLDS.js";
5
2
  import {
6
3
  zerionWallet
7
- } from "./chunk-RVOY537T.js";
4
+ } from "./chunk-SWFF3TWJ.js";
8
5
  import {
9
- tahoWallet
10
- } from "./chunk-7ZYCBDQ4.js";
6
+ kresusWallet
7
+ } from "./chunk-RICTB3FA.js";
11
8
  import {
12
9
  talismanWallet
13
10
  } from "./chunk-4DCO3TGL.js";
14
11
  import {
15
12
  tokenPocketWallet
16
- } from "./chunk-HTHAK6XB.js";
13
+ } from "./chunk-WKNQMP4A.js";
17
14
  import {
18
15
  tokenaryWallet
19
16
  } from "./chunk-VH3THHJY.js";
20
17
  import {
21
18
  trustWallet
22
- } from "./chunk-ZNX4EMPB.js";
19
+ } from "./chunk-KCRO2AGO.js";
23
20
  import {
24
21
  uniswapWallet
25
22
  } from "./chunk-Z3PPW6NC.js";
@@ -30,41 +27,38 @@ import {
30
27
  xdefiWallet
31
28
  } from "./chunk-JN5I3DNC.js";
32
29
  import {
33
- rabbyWallet
34
- } from "./chunk-RB66PKPA.js";
35
- import {
36
- rainbowWallet
37
- } from "./chunk-2VP2F6EK.js";
30
+ zealWallet
31
+ } from "./chunk-52QXXLDS.js";
38
32
  import {
39
33
  ramperWallet
40
34
  } from "./chunk-OQB55QXP.js";
41
35
  import {
42
36
  roninWallet
43
- } from "./chunk-VAPGUPHO.js";
37
+ } from "./chunk-YQFGVZGR.js";
44
38
  import {
45
39
  safeWallet
46
40
  } from "./chunk-RCY66YHF.js";
47
- import {
48
- safepalWallet
49
- } from "./chunk-VTM6EECM.js";
50
41
  import {
51
42
  safeheronWallet
52
43
  } from "./chunk-76S7R2ND.js";
53
44
  import {
54
- subWallet
55
- } from "./chunk-X6CGV36L.js";
45
+ safepalWallet
46
+ } from "./chunk-XCNHV3HS.js";
56
47
  import {
57
- metaMaskWallet
58
- } from "./chunk-CCQV2ZET.js";
48
+ coin98Wallet
49
+ } from "./chunk-WAHGI5L7.js";
59
50
  import {
60
- mewWallet
61
- } from "./chunk-MQM45ADF.js";
51
+ subWallet
52
+ } from "./chunk-NR2OGDHQ.js";
53
+ import {
54
+ tahoWallet
55
+ } from "./chunk-7ZYCBDQ4.js";
62
56
  import {
63
57
  oktoWallet
64
58
  } from "./chunk-YWOVAU6O.js";
65
59
  import {
66
60
  okxWallet
67
- } from "./chunk-STVVP43G.js";
61
+ } from "./chunk-KI5Y2BBF.js";
68
62
  import {
69
63
  omniWallet
70
64
  } from "./chunk-2CX7LX4J.js";
@@ -78,62 +72,68 @@ import {
78
72
  phantomWallet
79
73
  } from "./chunk-QY53O7WG.js";
80
74
  import {
81
- foxWallet
82
- } from "./chunk-MIQTHJ6X.js";
75
+ rabbyWallet
76
+ } from "./chunk-RB66PKPA.js";
83
77
  import {
84
- frameWallet
85
- } from "./chunk-BU3ZAT5X.js";
78
+ rainbowWallet
79
+ } from "./chunk-W2LCLDPX.js";
86
80
  import {
87
81
  frontierWallet
88
- } from "./chunk-YEZM4CK4.js";
82
+ } from "./chunk-AVDUNQUW.js";
89
83
  import {
90
84
  gateWallet
91
- } from "./chunk-HNRB7KJU.js";
85
+ } from "./chunk-JPN6TWIT.js";
92
86
  import {
93
87
  imTokenWallet
94
88
  } from "./chunk-WNAGGFMG.js";
89
+ import {
90
+ frameWallet
91
+ } from "./chunk-BU3ZAT5X.js";
95
92
  import {
96
93
  injectedWallet
97
94
  } from "./chunk-T6LGKC3F.js";
98
- import {
99
- kresusWallet
100
- } from "./chunk-RICTB3FA.js";
101
95
  import {
102
96
  ledgerWallet
103
97
  } from "./chunk-RPV27V2Y.js";
104
98
  import {
105
- clvWallet
106
- } from "./chunk-UK7C2JXW.js";
99
+ metaMaskWallet
100
+ } from "./chunk-YO2K4MBH.js";
107
101
  import {
108
- coin98Wallet
109
- } from "./chunk-6BW3HLBG.js";
102
+ mewWallet
103
+ } from "./chunk-MQM45ADF.js";
104
+ import {
105
+ bybitWallet
106
+ } from "./chunk-OX37G4YT.js";
110
107
  import {
111
108
  coinbaseWallet
112
109
  } from "./chunk-2DLDAZRH.js";
113
- import {
114
- braveWallet
115
- } from "./chunk-DS73TZ6O.js";
116
- import {
117
- dawnWallet
118
- } from "./chunk-G2PHTVL6.js";
119
110
  import {
120
111
  coreWallet
121
- } from "./chunk-RB3HR4R2.js";
112
+ } from "./chunk-4NV5BYRP.js";
113
+ import {
114
+ clvWallet
115
+ } from "./chunk-OEEGYENV.js";
122
116
  import {
123
117
  desigWallet
124
118
  } from "./chunk-FW3WZETT.js";
119
+ import {
120
+ foxWallet
121
+ } from "./chunk-GUQM4QSL.js";
122
+ import {
123
+ dawnWallet
124
+ } from "./chunk-G2PHTVL6.js";
125
125
  import {
126
126
  enkryptWallet
127
127
  } from "./chunk-HBQK5RD5.js";
128
128
  import {
129
129
  bifrostWallet
130
- } from "./chunk-4T6ZSRJF.js";
130
+ } from "./chunk-IULPZP2Q.js";
131
131
  import {
132
132
  argentWallet
133
133
  } from "./chunk-NTMBEOR2.js";
134
134
  import {
135
135
  bitgetWallet
136
- } from "./chunk-CPI4TD43.js";
136
+ } from "./chunk-TKB2OY6G.js";
137
137
  import {
138
138
  bitskiWallet
139
139
  } from "./chunk-7HRFUZFX.js";
@@ -143,11 +143,11 @@ import {
143
143
  import {
144
144
  bloomWallet
145
145
  } from "./chunk-PJ7Y57EH.js";
146
+ import "./chunk-N4IJLYFY.js";
146
147
  import {
147
- bybitWallet
148
- } from "./chunk-F5XEEVG6.js";
148
+ braveWallet
149
+ } from "./chunk-DS73TZ6O.js";
149
150
  import "./chunk-OLZ7626J.js";
150
- import "./chunk-N4IJLYFY.js";
151
151
  import "./chunk-IGKXZBTA.js";
152
152
  export {
153
153
  argentWallet,
@@ -1,9 +1,9 @@
1
1
  "use client";
2
2
  import {
3
3
  metaMaskWallet
4
- } from "../chunk-CCQV2ZET.js";
5
- import "../chunk-OLZ7626J.js";
4
+ } from "../chunk-YO2K4MBH.js";
6
5
  import "../chunk-N4IJLYFY.js";
6
+ import "../chunk-OLZ7626J.js";
7
7
  import "../chunk-IGKXZBTA.js";
8
8
  export {
9
9
  metaMaskWallet
@@ -1,9 +1,9 @@
1
1
  "use client";
2
2
  import {
3
3
  okxWallet
4
- } from "../chunk-STVVP43G.js";
5
- import "../chunk-OLZ7626J.js";
4
+ } from "../chunk-KI5Y2BBF.js";
6
5
  import "../chunk-N4IJLYFY.js";
6
+ import "../chunk-OLZ7626J.js";
7
7
  import "../chunk-IGKXZBTA.js";
8
8
  export {
9
9
  okxWallet
@@ -1,9 +1,9 @@
1
1
  "use client";
2
2
  import {
3
3
  rainbowWallet
4
- } from "../chunk-2VP2F6EK.js";
5
- import "../chunk-OLZ7626J.js";
4
+ } from "../chunk-W2LCLDPX.js";
6
5
  import "../chunk-N4IJLYFY.js";
6
+ import "../chunk-OLZ7626J.js";
7
7
  import "../chunk-IGKXZBTA.js";
8
8
  export {
9
9
  rainbowWallet
@@ -1,9 +1,9 @@
1
1
  "use client";
2
2
  import {
3
3
  roninWallet
4
- } from "../chunk-VAPGUPHO.js";
5
- import "../chunk-OLZ7626J.js";
4
+ } from "../chunk-YQFGVZGR.js";
6
5
  import "../chunk-N4IJLYFY.js";
6
+ import "../chunk-OLZ7626J.js";
7
7
  import "../chunk-IGKXZBTA.js";
8
8
  export {
9
9
  roninWallet
@@ -1,9 +1,9 @@
1
1
  "use client";
2
2
  import {
3
3
  safepalWallet
4
- } from "../chunk-VTM6EECM.js";
5
- import "../chunk-OLZ7626J.js";
4
+ } from "../chunk-XCNHV3HS.js";
6
5
  import "../chunk-N4IJLYFY.js";
6
+ import "../chunk-OLZ7626J.js";
7
7
  import "../chunk-IGKXZBTA.js";
8
8
  export {
9
9
  safepalWallet
@@ -1,9 +1,9 @@
1
1
  "use client";
2
2
  import {
3
3
  subWallet
4
- } from "../chunk-X6CGV36L.js";
5
- import "../chunk-OLZ7626J.js";
4
+ } from "../chunk-NR2OGDHQ.js";
6
5
  import "../chunk-N4IJLYFY.js";
6
+ import "../chunk-OLZ7626J.js";
7
7
  import "../chunk-IGKXZBTA.js";
8
8
  export {
9
9
  subWallet
@@ -1,9 +1,9 @@
1
1
  "use client";
2
2
  import {
3
3
  tokenPocketWallet
4
- } from "../chunk-HTHAK6XB.js";
5
- import "../chunk-OLZ7626J.js";
4
+ } from "../chunk-WKNQMP4A.js";
6
5
  import "../chunk-N4IJLYFY.js";
6
+ import "../chunk-OLZ7626J.js";
7
7
  import "../chunk-IGKXZBTA.js";
8
8
  export {
9
9
  tokenPocketWallet
@@ -1,9 +1,9 @@
1
1
  "use client";
2
2
  import {
3
3
  trustWallet
4
- } from "../chunk-ZNX4EMPB.js";
5
- import "../chunk-OLZ7626J.js";
4
+ } from "../chunk-KCRO2AGO.js";
6
5
  import "../chunk-N4IJLYFY.js";
6
+ import "../chunk-OLZ7626J.js";
7
7
  import "../chunk-IGKXZBTA.js";
8
8
  export {
9
9
  trustWallet
@@ -1,9 +1,9 @@
1
1
  "use client";
2
2
  import {
3
3
  zerionWallet
4
- } from "../chunk-RVOY537T.js";
5
- import "../chunk-OLZ7626J.js";
4
+ } from "../chunk-SWFF3TWJ.js";
6
5
  import "../chunk-N4IJLYFY.js";
6
+ import "../chunk-OLZ7626J.js";
7
7
  import "../chunk-IGKXZBTA.js";
8
8
  export {
9
9
  zerionWallet
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@funkit/connect",
3
- "version": "9.26.0",
3
+ "version": "9.27.0",
4
4
  "description": "Funkit Connect SDK elevates DeFi apps via web2 sign-ins and one-click checkouts.",
5
5
  "files": [
6
6
  "dist",
@@ -111,10 +111,10 @@
111
111
  "ua-parser-js": "^1.0.37",
112
112
  "use-debounce": "^10.0.5",
113
113
  "uuid": "^11.1.1",
114
- "@funkit/api-base": "5.0.0",
114
+ "@funkit/api-base": "5.1.0",
115
115
  "@funkit/chains": "2.1.1",
116
- "@funkit/connect-core": "1.4.0",
117
- "@funkit/fun-relay": "2.8.5",
116
+ "@funkit/connect-core": "1.4.1",
117
+ "@funkit/fun-relay": "2.8.7",
118
118
  "@funkit/utils": "3.1.0"
119
119
  },
120
120
  "repository": {
@@ -1,11 +1,11 @@
1
1
  "use client";
2
+ import {
3
+ getWalletConnectConnector
4
+ } from "./chunk-N4IJLYFY.js";
2
5
  import {
3
6
  getInjectedConnector,
4
7
  hasInjectedProvider
5
8
  } from "./chunk-OLZ7626J.js";
6
- import {
7
- getWalletConnectConnector
8
- } from "./chunk-N4IJLYFY.js";
9
9
 
10
10
  // src/wallets/walletConnectors/coreWallet/coreWallet.ts
11
11
  var coreWallet = ({
@@ -1,11 +1,11 @@
1
1
  "use client";
2
+ import {
3
+ getWalletConnectConnector
4
+ } from "./chunk-N4IJLYFY.js";
2
5
  import {
3
6
  getInjectedConnector,
4
7
  hasInjectedProvider
5
8
  } from "./chunk-OLZ7626J.js";
6
- import {
7
- getWalletConnectConnector
8
- } from "./chunk-N4IJLYFY.js";
9
9
 
10
10
  // src/wallets/walletConnectors/frontierWallet/frontierWallet.ts
11
11
  import { isAndroid } from "@funkit/utils";
@@ -1,11 +1,11 @@
1
1
  "use client";
2
+ import {
3
+ getWalletConnectConnector
4
+ } from "./chunk-N4IJLYFY.js";
2
5
  import {
3
6
  getInjectedConnector,
4
7
  hasInjectedProvider
5
8
  } from "./chunk-OLZ7626J.js";
6
- import {
7
- getWalletConnectConnector
8
- } from "./chunk-N4IJLYFY.js";
9
9
 
10
10
  // src/wallets/walletConnectors/foxWallet/foxWallet.ts
11
11
  var foxWallet = ({
@@ -1,11 +1,11 @@
1
1
  "use client";
2
+ import {
3
+ getWalletConnectConnector
4
+ } from "./chunk-N4IJLYFY.js";
2
5
  import {
3
6
  getInjectedConnector,
4
7
  hasInjectedProvider
5
8
  } from "./chunk-OLZ7626J.js";
6
- import {
7
- getWalletConnectConnector
8
- } from "./chunk-N4IJLYFY.js";
9
9
 
10
10
  // src/wallets/walletConnectors/bifrostWallet/bifrostWallet.ts
11
11
  import { isAndroid } from "@funkit/utils";
@@ -1,11 +1,11 @@
1
1
  "use client";
2
+ import {
3
+ getWalletConnectConnector
4
+ } from "./chunk-N4IJLYFY.js";
2
5
  import {
3
6
  getInjectedConnector,
4
7
  hasInjectedProvider
5
8
  } from "./chunk-OLZ7626J.js";
6
- import {
7
- getWalletConnectConnector
8
- } from "./chunk-N4IJLYFY.js";
9
9
 
10
10
  // src/wallets/walletConnectors/gateWallet/gateWallet.ts
11
11
  import { isAndroid } from "@funkit/utils";
@@ -1,11 +1,11 @@
1
1
  "use client";
2
+ import {
3
+ getWalletConnectConnector
4
+ } from "./chunk-N4IJLYFY.js";
2
5
  import {
3
6
  getInjectedConnector,
4
7
  hasInjectedProvider
5
8
  } from "./chunk-OLZ7626J.js";
6
- import {
7
- getWalletConnectConnector
8
- } from "./chunk-N4IJLYFY.js";
9
9
 
10
10
  // src/wallets/walletConnectors/trustWallet/trustWallet.ts
11
11
  import { isMobile } from "@funkit/utils";
@@ -1,11 +1,11 @@
1
1
  "use client";
2
+ import {
3
+ getWalletConnectConnector
4
+ } from "./chunk-N4IJLYFY.js";
2
5
  import {
3
6
  getInjectedConnector,
4
7
  hasInjectedProvider
5
8
  } from "./chunk-OLZ7626J.js";
6
- import {
7
- getWalletConnectConnector
8
- } from "./chunk-N4IJLYFY.js";
9
9
 
10
10
  // src/wallets/walletConnectors/okxWallet/okxWallet.ts
11
11
  import { isAndroid } from "@funkit/utils";
@@ -1,11 +1,11 @@
1
1
  "use client";
2
+ import {
3
+ getWalletConnectConnector
4
+ } from "./chunk-N4IJLYFY.js";
2
5
  import {
3
6
  getInjectedConnector,
4
7
  hasInjectedProvider
5
8
  } from "./chunk-OLZ7626J.js";
6
- import {
7
- getWalletConnectConnector
8
- } from "./chunk-N4IJLYFY.js";
9
9
 
10
10
  // src/wallets/walletConnectors/subWallet/subWallet.ts
11
11
  var subWallet = ({
@@ -1,11 +1,11 @@
1
1
  "use client";
2
+ import {
3
+ getWalletConnectConnector
4
+ } from "./chunk-N4IJLYFY.js";
2
5
  import {
3
6
  getInjectedConnector,
4
7
  hasInjectedProvider
5
8
  } from "./chunk-OLZ7626J.js";
6
- import {
7
- getWalletConnectConnector
8
- } from "./chunk-N4IJLYFY.js";
9
9
 
10
10
  // src/wallets/walletConnectors/clvWallet/clvWallet.ts
11
11
  var clvWallet = ({
@@ -1,11 +1,11 @@
1
1
  "use client";
2
+ import {
3
+ getWalletConnectConnector
4
+ } from "./chunk-N4IJLYFY.js";
2
5
  import {
3
6
  getInjectedConnector,
4
7
  hasInjectedProvider
5
8
  } from "./chunk-OLZ7626J.js";
6
- import {
7
- getWalletConnectConnector
8
- } from "./chunk-N4IJLYFY.js";
9
9
 
10
10
  // src/wallets/walletConnectors/bybitWallet/bybitWallet.ts
11
11
  var bybitWallet = ({
@@ -1,11 +1,11 @@
1
1
  "use client";
2
+ import {
3
+ getWalletConnectConnector
4
+ } from "./chunk-N4IJLYFY.js";
2
5
  import {
3
6
  getInjectedConnector,
4
7
  hasInjectedProvider
5
8
  } from "./chunk-OLZ7626J.js";
6
- import {
7
- getWalletConnectConnector
8
- } from "./chunk-N4IJLYFY.js";
9
9
 
10
10
  // src/wallets/walletConnectors/zerionWallet/zerionWallet.ts
11
11
  import { isIOS } from "@funkit/utils";
@@ -1,11 +1,11 @@
1
1
  "use client";
2
+ import {
3
+ getWalletConnectConnector
4
+ } from "./chunk-N4IJLYFY.js";
2
5
  import {
3
6
  getInjectedConnector,
4
7
  hasInjectedProvider
5
8
  } from "./chunk-OLZ7626J.js";
6
- import {
7
- getWalletConnectConnector
8
- } from "./chunk-N4IJLYFY.js";
9
9
 
10
10
  // src/wallets/walletConnectors/bitgetWallet/bitgetWallet.ts
11
11
  import { isAndroid } from "@funkit/utils";
@@ -1,11 +1,11 @@
1
1
  "use client";
2
+ import {
3
+ getWalletConnectConnector
4
+ } from "./chunk-N4IJLYFY.js";
2
5
  import {
3
6
  getInjectedConnector,
4
7
  hasInjectedProvider
5
8
  } from "./chunk-OLZ7626J.js";
6
- import {
7
- getWalletConnectConnector
8
- } from "./chunk-N4IJLYFY.js";
9
9
 
10
10
  // src/wallets/walletConnectors/rainbowWallet/rainbowWallet.ts
11
11
  import { isAndroid, isIOS } from "@funkit/utils";
@@ -1,11 +1,11 @@
1
1
  "use client";
2
+ import {
3
+ getWalletConnectConnector
4
+ } from "./chunk-N4IJLYFY.js";
2
5
  import {
3
6
  getInjectedConnector,
4
7
  hasInjectedProvider
5
8
  } from "./chunk-OLZ7626J.js";
6
- import {
7
- getWalletConnectConnector
8
- } from "./chunk-N4IJLYFY.js";
9
9
 
10
10
  // src/wallets/walletConnectors/coin98Wallet/coin98Wallet.ts
11
11
  var coin98Wallet = ({
@@ -1,11 +1,11 @@
1
1
  "use client";
2
+ import {
3
+ getWalletConnectConnector
4
+ } from "./chunk-N4IJLYFY.js";
2
5
  import {
3
6
  getInjectedConnector,
4
7
  hasInjectedProvider
5
8
  } from "./chunk-OLZ7626J.js";
6
- import {
7
- getWalletConnectConnector
8
- } from "./chunk-N4IJLYFY.js";
9
9
 
10
10
  // src/wallets/walletConnectors/tokenPocketWallet/tokenPocketWallet.ts
11
11
  import { isMobile } from "@funkit/utils";
@@ -1,11 +1,11 @@
1
1
  "use client";
2
+ import {
3
+ getWalletConnectConnector
4
+ } from "./chunk-N4IJLYFY.js";
2
5
  import {
3
6
  getInjectedConnector,
4
7
  hasInjectedProvider
5
8
  } from "./chunk-OLZ7626J.js";
6
- import {
7
- getWalletConnectConnector
8
- } from "./chunk-N4IJLYFY.js";
9
9
 
10
10
  // src/wallets/walletConnectors/safepalWallet/safepalWallet.ts
11
11
  var safepalWallet = ({
@@ -1,11 +1,11 @@
1
1
  "use client";
2
+ import {
3
+ getWalletConnectConnector
4
+ } from "./chunk-N4IJLYFY.js";
2
5
  import {
3
6
  getInjectedConnector,
4
7
  hasInjectedProvider
5
8
  } from "./chunk-OLZ7626J.js";
6
- import {
7
- getWalletConnectConnector
8
- } from "./chunk-N4IJLYFY.js";
9
9
 
10
10
  // src/wallets/walletConnectors/metaMaskWallet/metaMaskWallet.ts
11
11
  import { isAndroid, isIOS } from "@funkit/utils";
@@ -1,11 +1,11 @@
1
1
  "use client";
2
+ import {
3
+ getWalletConnectConnector
4
+ } from "./chunk-N4IJLYFY.js";
2
5
  import {
3
6
  getInjectedConnector,
4
7
  hasInjectedProvider
5
8
  } from "./chunk-OLZ7626J.js";
6
- import {
7
- getWalletConnectConnector
8
- } from "./chunk-N4IJLYFY.js";
9
9
 
10
10
  // src/wallets/walletConnectors/roninWallet/roninWallet.ts
11
11
  var roninWallet = ({