@funkit/connect 5.5.5 → 5.5.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1,10 +1,10 @@
1
1
  "use client";
2
- import {
3
- darkTheme
4
- } from "./chunk-ICCAQZHZ.js";
5
2
  import {
6
3
  lightTheme
7
4
  } from "./chunk-RN4I4Y57.js";
5
+ import {
6
+ darkTheme
7
+ } from "./chunk-ICCAQZHZ.js";
8
8
  import {
9
9
  systemFontStack
10
10
  } from "./chunk-R2UFCJL7.js";
@@ -509,7 +509,7 @@ import React256, {
509
509
  useCallback as useCallback47,
510
510
  useContext as useContext18,
511
511
  useEffect as useEffect48,
512
- useMemo as useMemo46,
512
+ useMemo as useMemo45,
513
513
  useState as useState67
514
514
  } from "react";
515
515
  import { useConfig as useConfig5, useConnect as useConnect2, useDisconnect as useDisconnect2 } from "wagmi";
@@ -1031,7 +1031,7 @@ import React255, {
1031
1031
  useCallback as useCallback46,
1032
1032
  useContext as useContext17,
1033
1033
  useEffect as useEffect47,
1034
- useMemo as useMemo45,
1034
+ useMemo as useMemo44,
1035
1035
  useState as useState66
1036
1036
  } from "react";
1037
1037
  import { useAccount as useAccount9, useAccountEffect as useAccountEffect2, useConfig as useConfig4 } from "wagmi";
@@ -3603,8 +3603,10 @@ var flagConfig = {
3603
3603
  "0x2A8Bd916E85d98d8175258De99fc0ddbcC102eF6",
3604
3604
  "0xda6b07Eb94f699F511a943e9bFC12B64B7fe3486",
3605
3605
  "0x0D6e43CA32545B3dc2FE6f93AafBD7e640F548d4",
3606
- "0x236c60C57a8B9ca563Fb0dA5199FDdCB686d91E8"
3606
+ "0x236c60C57a8B9ca563Fb0dA5199FDdCB686d91E8",
3607
3607
  // greg
3608
+ "0x4a1457fa2845bAfE8D3909cA3C5ac6107be312Dd"
3609
+ // william PM
3608
3610
  ]
3609
3611
  }
3610
3612
  ],
@@ -3623,7 +3625,13 @@ var flagConfig = {
3623
3625
  values: [POLYMARKET_API_KEY2]
3624
3626
  }
3625
3627
  ],
3626
- if_any: [],
3628
+ if_any: [
3629
+ {
3630
+ key: "userId",
3631
+ type: "pctRollout",
3632
+ pct: 0
3633
+ }
3634
+ ],
3627
3635
  value: true
3628
3636
  },
3629
3637
  {
@@ -7022,7 +7030,7 @@ function getCheckoutCompletionTime(checkout) {
7022
7030
  }
7023
7031
 
7024
7032
  // src/components/FunCheckoutHistory/FunCheckoutHistoryDetail.tsx
7025
- import React221, { useCallback as useCallback40, useMemo as useMemo39, useState as useState57 } from "react";
7033
+ import React221, { useCallback as useCallback40, useMemo as useMemo38, useState as useState57 } from "react";
7026
7034
  import { createPortal as createPortal14 } from "react-dom";
7027
7035
 
7028
7036
  // src/components/HelpAlert/HelpAlert.tsx
@@ -8513,6 +8521,8 @@ var isCountryBlocked = (blockedList, userIpInfo) => {
8513
8521
  function useFunkitUserIp() {
8514
8522
  const { moonpayApiKey } = useContext14(FunkitMoonpayContext);
8515
8523
  const { getFlag, isLoading: isLoadingFlags } = useFlags();
8524
+ const { apiKey } = useFunkitConfig();
8525
+ const isPolymarket = isPolymarketCustomer(apiKey);
8516
8526
  const { data: userIpInfo, isLoading: isLoadingGeoCheck } = useQuery6({
8517
8527
  queryKey: ["getUserIpInfo"],
8518
8528
  queryFn: async () => {
@@ -8535,7 +8545,7 @@ function useFunkitUserIp() {
8535
8545
  refetchOnWindowFocus: false
8536
8546
  });
8537
8547
  const isUserGeoblocked = useMemo9(() => {
8538
- if (isLoadingFlags || isLoadingGeoCheck) {
8548
+ if (isLoadingFlags || isLoadingGeoCheck || isPolymarket) {
8539
8549
  return false;
8540
8550
  }
8541
8551
  if (!userIpInfo) {
@@ -8543,7 +8553,7 @@ function useFunkitUserIp() {
8543
8553
  }
8544
8554
  const blockedList = getFlag(FlagKey7.BlockedCountries, ALL_MATCH).split(",");
8545
8555
  return isCountryBlocked(blockedList, userIpInfo);
8546
- }, [getFlag, isLoadingFlags, isLoadingGeoCheck, userIpInfo]);
8556
+ }, [getFlag, isLoadingFlags, isLoadingGeoCheck, userIpInfo, isPolymarket]);
8547
8557
  return {
8548
8558
  isLoadingGeoCheck: isLoadingFlags || isLoadingGeoCheck,
8549
8559
  isUserGeoblocked,
@@ -10695,7 +10705,7 @@ var BankIconActive = ({ size = 20 }) => {
10695
10705
 
10696
10706
  // src/components/FunConnectOptions/FunSignInStep.tsx
10697
10707
  import { groupBy, isMobile as isMobile8, isSafari as isSafari3, redirectInMobile as redirectInMobile2 } from "@funkit/utils";
10698
- import React214, { Fragment as Fragment3, useCallback as useCallback39, useMemo as useMemo37, useState as useState55 } from "react";
10708
+ import React214, { Fragment as Fragment3, useCallback as useCallback39, useMemo as useMemo36, useState as useState55 } from "react";
10699
10709
 
10700
10710
  // src/providers/walletConnectDeepLink.ts
10701
10711
  var storageKey2 = "WALLETCONNECT_DEEPLINK_CHOICE";
@@ -11292,7 +11302,7 @@ var SocialsIcon = () => {
11292
11302
  };
11293
11303
 
11294
11304
  // src/components/FunConnectOptions/FunConnectOptions.tsx
11295
- import React213, { useCallback as useCallback38, useMemo as useMemo36, useState as useState54 } from "react";
11305
+ import React213, { useCallback as useCallback38, useMemo as useMemo35, useState as useState54 } from "react";
11296
11306
 
11297
11307
  // src/hooks/useAnimatedNavigation.ts
11298
11308
  import { useCallback as useCallback16, useState as useState17 } from "react";
@@ -11537,6 +11547,7 @@ async function evaluateAccountWalletFees({
11537
11547
  loginType,
11538
11548
  apiKey
11539
11549
  }) {
11550
+ const relayQuote = baseQuote.metadata?.relayQuote;
11540
11551
  const nativeCurrencySymbol = FUNKIT_CONNECT_SUPPORTED_CHAINS_INFO13[selectedSourceAssetInfo.chainId]?.nativeCurrency.symbol || "";
11541
11552
  const walletCheckoutFees = {
11542
11553
  paymentMethod: "balance" /* ACCOUNT_BALANCE */,
@@ -11545,7 +11556,8 @@ async function evaluateAccountWalletFees({
11545
11556
  eoaWalletFeeUsd: 0,
11546
11557
  totalFeesUsd: baseQuote.estFeesUsd,
11547
11558
  totalFeesTokenWithoutGas: Number(baseQuote.estFeesFromAmount),
11548
- nativeCurrencySymbol
11559
+ nativeCurrencySymbol,
11560
+ relayQuote
11549
11561
  };
11550
11562
  if (loginType !== "web3" /* Web3 */ || selectedSourceAssetInfo.chainId === zkSync.id.toString()) {
11551
11563
  return { fees: walletCheckoutFees };
@@ -13613,7 +13625,7 @@ function CheckoutHelp({
13613
13625
  }
13614
13626
 
13615
13627
  // src/modals/CheckoutModal/ConfirmationStep/ConfirmationStep.tsx
13616
- import React132, { useEffect as useEffect25, useMemo as useMemo22, useState as useState32 } from "react";
13628
+ import React132, { useEffect as useEffect25, useMemo as useMemo21, useState as useState32 } from "react";
13617
13629
  import { createPortal as createPortal5 } from "react-dom";
13618
13630
 
13619
13631
  // src/providers/UserPresenceContext.tsx
@@ -13650,7 +13662,7 @@ var UserPresenceProvider = ({ children }) => {
13650
13662
  var useUserPresence = () => useContext16(UserPresenceContext);
13651
13663
 
13652
13664
  // src/modals/CheckoutModal/ConfirmationStep/ConfirmationStep.tsx
13653
- import { DirectExecutionType as DirectExecutionType3 } from "@funkit/api-base";
13665
+ import { DirectExecutionType as DirectExecutionType2 } from "@funkit/api-base";
13654
13666
  import { FlagKey as FlagKey17 } from "@funkit/utils";
13655
13667
 
13656
13668
  // src/components/FunInfoBanner/FunInfoBanner.tsx
@@ -13945,7 +13957,7 @@ import {
13945
13957
  } from "@funkit/utils";
13946
13958
  import NumberFlow from "@number-flow/react";
13947
13959
  import { motion as motion3 } from "motion/react";
13948
- import React122, { useMemo as useMemo17 } from "react";
13960
+ import React122, { useMemo as useMemo16 } from "react";
13949
13961
 
13950
13962
  // src/consts/design.ts
13951
13963
  var mapFontLineHeightToNumberFlowHeight = {
@@ -13955,23 +13967,15 @@ var mapFontLineHeightToNumberFlowHeight = {
13955
13967
  };
13956
13968
 
13957
13969
  // src/hooks/useReceiveAmountLabel.ts
13958
- import { DirectExecutionType as DirectExecutionType2 } from "@funkit/api-base";
13959
- import { useMemo as useMemo15 } from "react";
13960
- function useReceiveAmountLabel({
13961
- directExecutionType,
13962
- isSameToken
13963
- }) {
13970
+ function useReceiveAmountLabel(_) {
13964
13971
  const { textCustomizations } = useFunkitConfig();
13965
- return useMemo15(() => {
13966
- const showAtLeast = directExecutionType === DirectExecutionType2.RELAY && !isSameToken;
13967
- return `${textCustomizations.confirmationScreen.receiveAmountLabel}${showAtLeast ? " at least" : ""}`;
13968
- }, [textCustomizations, directExecutionType, isSameToken]);
13972
+ return textCustomizations.confirmationScreen.receiveAmountLabel;
13969
13973
  }
13970
13974
 
13971
13975
  // src/components/FunAssetAvatar/FunAssetAvatar.tsx
13972
13976
  import { isNotNullish as isNotNullish7 } from "@funkit/utils";
13973
13977
  import clsx12 from "clsx";
13974
- import React121, { useMemo as useMemo16 } from "react";
13978
+ import React121, { useMemo as useMemo15 } from "react";
13975
13979
 
13976
13980
  // src/components/FunAssetAvatar/FunAssetAvatar.css.ts
13977
13981
  var chainContainerStyle = "uwrdc22 _1rsrm2f18 _1rsrm2fa _1rsrm2f4 _1rsrm2f41";
@@ -13991,7 +13995,7 @@ function FunAssetAvatar({
13991
13995
  largeChainIcon = false
13992
13996
  }) {
13993
13997
  const chainMetadata = chainMetadataById[Number.parseInt((chainId || "").toString())] || null;
13994
- const finalAssetSrc = useMemo16(() => {
13998
+ const finalAssetSrc = useMemo15(() => {
13995
13999
  const normalizedTicker = assetTicker?.toUpperCase() || "";
13996
14000
  const defaultSrc = ASSET_LOGO_SRCS[normalizedTicker];
13997
14001
  if (prioritizeDefaults) {
@@ -14089,13 +14093,13 @@ function PaymentAmountSummary({
14089
14093
  })
14090
14094
  });
14091
14095
  const sourceTokenAmount = quote?.finalPaymentTokenAmount ? Number.parseFloat(quote.finalPaymentTokenAmount) : void 0;
14092
- const paymentTokenUsdAmount = useMemo17(() => {
14096
+ const paymentTokenUsdAmount = useMemo16(() => {
14093
14097
  if (!quote) return void 0;
14094
14098
  return formatCurrencyAndStringify3(
14095
14099
  quote.baseQuote.estSubtotalUsd + Number.parseFloat(quote.finalPaymentFeeUsd) - Number.parseFloat(quote.finalSpreadUsd)
14096
14100
  );
14097
14101
  }, [quote]);
14098
- const receiveTokenUsdAmount = useMemo17(() => {
14102
+ const receiveTokenUsdAmount = useMemo16(() => {
14099
14103
  if (!quote) return void 0;
14100
14104
  return formatCurrencyAndStringify3(
14101
14105
  Number.parseFloat(quote.finalTotalUsd) - Number.parseFloat(quote.finalPaymentFeeUsd) - Number.parseFloat(quote.finalSpreadUsd)
@@ -14215,9 +14219,10 @@ function PaymentAmountSummaryItem({
14215
14219
  import {
14216
14220
  formatCurrencyAndStringify as formatCurrencyAndStringify4,
14217
14221
  formatDynamicFeeUsd,
14222
+ formatPercent,
14218
14223
  noop as noop4
14219
14224
  } from "@funkit/utils";
14220
- import React124, { useMemo as useMemo18, useState as useState23 } from "react";
14225
+ import React124, { useMemo as useMemo17, useState as useState23 } from "react";
14221
14226
  import clsx13 from "clsx";
14222
14227
  import { motion as motion4, useAnimationControls } from "motion/react";
14223
14228
 
@@ -14254,6 +14259,106 @@ var NO_DATA = {
14254
14259
  collapsed: null,
14255
14260
  expanded: []
14256
14261
  };
14262
+ function renderRelayFee(relayQuote) {
14263
+ const { details, fees } = relayQuote;
14264
+ const gasUsd = Number.parseFloat(fees?.gas?.amountUsd || "0");
14265
+ const totalImpactStr = (details?.totalImpact?.percent || "0").replace("-", "");
14266
+ const totalImpact = Number.parseFloat(totalImpactStr);
14267
+ const swapImpactStr = (details?.swapImpact?.percent || "0").replace("-", "");
14268
+ const swapImpact = Number.parseFloat(swapImpactStr);
14269
+ const relayGas = Number.parseFloat(fees?.relayer?.amountUsd || "0");
14270
+ const totalUsd = Number.parseFloat(details?.currencyIn?.amountUsd || "0");
14271
+ const appFeePercent = Number.parseFloat(fees?.app?.amountUsd || "0") / totalUsd * 100;
14272
+ const maxSlippage = Number.parseFloat(
14273
+ details?.slippageTolerance?.destination?.percent || "0"
14274
+ );
14275
+ return {
14276
+ collapsed: {
14277
+ value: formatCurrencyAndStringify4(gasUsd),
14278
+ valueIcon: /* @__PURE__ */ React124.createElement(GasIcon, null)
14279
+ },
14280
+ expanded: [
14281
+ // {
14282
+ // label: 'Rate',
14283
+ // value: `1.000 ${details?.currencyIn?.currency?.symbol} = ${ratePretty} ${details?.currencyOut?.currency?.symbol}`,
14284
+ // tooltipText:
14285
+ // 'The conversion rate between ETH on Arbitrum and USDCe on Polygon.',
14286
+ // },
14287
+ {
14288
+ label: "Network cost",
14289
+ valueIcon: /* @__PURE__ */ React124.createElement(GasIcon, null),
14290
+ value: formatCurrencyAndStringify4(gasUsd),
14291
+ tooltipText: /* @__PURE__ */ React124.createElement(React124.Fragment, null, "Estimated gas cost for completing your transaction, including the network fee and routing gas fees. The final cost may vary based on network conditions.", /* @__PURE__ */ React124.createElement("br", null), /* @__PURE__ */ React124.createElement(
14292
+ FunLinkButton,
14293
+ {
14294
+ href: "https://docs.polymarket.com/docs/price-impact",
14295
+ text: "Learn more"
14296
+ }
14297
+ ))
14298
+ },
14299
+ {
14300
+ label: "Price impact",
14301
+ value: formatPercent(totalImpact),
14302
+ tooltipText: /* @__PURE__ */ React124.createElement(Box, { display: "flex", flexDirection: "column", gap: "4" }, /* @__PURE__ */ React124.createElement(Box, { display: "flex", flexDirection: "column", gap: "2" }, /* @__PURE__ */ React124.createElement(
14303
+ Box,
14304
+ {
14305
+ alignItems: "center",
14306
+ display: "flex",
14307
+ justifyContent: "space-between"
14308
+ },
14309
+ /* @__PURE__ */ React124.createElement(Text, { size: "10", weight: "medium" }, "Total impact"),
14310
+ /* @__PURE__ */ React124.createElement(Text, { size: "10", weight: "medium" }, formatPercent(totalImpact))
14311
+ ), /* @__PURE__ */ React124.createElement(
14312
+ Box,
14313
+ {
14314
+ alignItems: "center",
14315
+ display: "flex",
14316
+ justifyContent: "space-between"
14317
+ },
14318
+ /* @__PURE__ */ React124.createElement(Text, { size: "10" }, "Swap impact"),
14319
+ /* @__PURE__ */ React124.createElement(Text, { size: "10", weight: "medium" }, formatPercent(swapImpact))
14320
+ ), /* @__PURE__ */ React124.createElement(
14321
+ Box,
14322
+ {
14323
+ alignItems: "center",
14324
+ display: "flex",
14325
+ justifyContent: "space-between"
14326
+ },
14327
+ /* @__PURE__ */ React124.createElement(Text, { size: "10" }, "Fill gas (Ethereum)"),
14328
+ /* @__PURE__ */ React124.createElement(Text, { size: "10", weight: "medium" }, formatCurrencyAndStringify4(relayGas))
14329
+ ), /* @__PURE__ */ React124.createElement(
14330
+ Box,
14331
+ {
14332
+ alignItems: "center",
14333
+ display: "flex",
14334
+ justifyContent: "space-between"
14335
+ },
14336
+ /* @__PURE__ */ React124.createElement(Text, { size: "10" }, "Fun.xyz fee"),
14337
+ /* @__PURE__ */ React124.createElement(Text, { size: "10", weight: "medium" }, formatPercent(appFeePercent))
14338
+ )), /* @__PURE__ */ React124.createElement(FunDivider, null), /* @__PURE__ */ React124.createElement(Box, null, "Price impact is the difference between the expected and executed price.", /* @__PURE__ */ React124.createElement("br", null), /* @__PURE__ */ React124.createElement("br", null), "Final cost may vary based on network conditions.", " ", /* @__PURE__ */ React124.createElement(
14339
+ FunLinkButton,
14340
+ {
14341
+ inline: true,
14342
+ href: "https://docs.polymarket.com/docs/price-impact",
14343
+ text: "Learn more"
14344
+ }
14345
+ )))
14346
+ },
14347
+ {
14348
+ label: "Max slippage",
14349
+ value: formatPercent(maxSlippage),
14350
+ tooltipText: /* @__PURE__ */ React124.createElement(React124.Fragment, null, "Slippage occurs due to price changes during trade execution. Slippage limits are adjusted based on your asset to ensure a reliable, timely execution.", /* @__PURE__ */ React124.createElement("br", null), /* @__PURE__ */ React124.createElement("br", null), "The slippage is set as low as possible. If it is required to be higher than 1.50% during execution, Fun.xyz will cover the difference.", " ", /* @__PURE__ */ React124.createElement(
14351
+ FunLinkButton,
14352
+ {
14353
+ inline: true,
14354
+ href: "https://docs.polymarket.com/docs/price-impact",
14355
+ text: "Learn more"
14356
+ }
14357
+ ))
14358
+ }
14359
+ ]
14360
+ };
14361
+ }
14257
14362
  var extractFeeItems = (fees, totalUsd, isDydx) => {
14258
14363
  const marketMakerFee = {
14259
14364
  label: "Market maker gas costs",
@@ -14268,6 +14373,9 @@ var extractFeeItems = (fees, totalUsd, isDydx) => {
14268
14373
  }),
14269
14374
  tooltipText: "Charged to cover the costs of providing on-chain liquidity."
14270
14375
  };
14376
+ if (fees.paymentMethod === "balance" /* ACCOUNT_BALANCE */ && fees.relayQuote) {
14377
+ return renderRelayFee(fees.relayQuote);
14378
+ }
14271
14379
  if (fees.paymentMethod === "balance" /* ACCOUNT_BALANCE */) {
14272
14380
  const { eoaWalletFeeUsd, marketMakerFeeUsd } = fees;
14273
14381
  const fillGasCost = formatDynamicFeeUsd(eoaWalletFeeUsd, totalUsd, {
@@ -14352,7 +14460,7 @@ function PaymentFeesSummary({
14352
14460
  }
14353
14461
  };
14354
14462
  const isDydx = isDydxCustomer(apiKey);
14355
- const { collapsed: collapsedItem, expanded: expandedItems } = useMemo18(() => {
14463
+ const { collapsed: collapsedItem, expanded: expandedItems } = useMemo17(() => {
14356
14464
  if (!quote) return NO_DATA;
14357
14465
  const fees = quote.finalFeesBreakdown;
14358
14466
  const totalUsd = Number(quote.finalTotalUsd);
@@ -14570,7 +14678,7 @@ function CheckoutPrimaryInfo({
14570
14678
  }
14571
14679
 
14572
14680
  // src/modals/CheckoutModal/ConfirmationStep/DisclaimerText.tsx
14573
- import React128, { useMemo as useMemo19 } from "react";
14681
+ import React128, { useMemo as useMemo18 } from "react";
14574
14682
 
14575
14683
  // src/utils/customer.ts
14576
14684
  function isKatanaEarnFlow({
@@ -14611,21 +14719,21 @@ var DisclaimerText = ({
14611
14719
  ), ".") : isKatana && isKatanaEarn ? /* @__PURE__ */ React128.createElement(React128.Fragment, null, showCardDisclaimer && `${cardDisclaimer} `, "By clicking on ", continueText, ", you agree to ", FUN_ORG_NAME, "'s", " ", /* @__PURE__ */ React128.createElement(FunLinkButton, { href: FUN_TERMS_URL, inline: true, text: "terms" }), ", Katana's ", /* @__PURE__ */ React128.createElement(
14612
14720
  FunLinkButton,
14613
14721
  {
14614
- href: "https://katana.network/legal/terms-and-conditions",
14722
+ href: "https://app.katana.network/legal/terms-and-conditions",
14615
14723
  inline: true,
14616
14724
  text: "terms"
14617
14725
  }
14618
14726
  ), ", and the ", /* @__PURE__ */ React128.createElement(FunLinkButton, { href: "https://yearn.fi/", inline: true, text: "terms" }), " applicable to third-party Yearn vaults", ".") : isKatana && !isKatanaEarn ? /* @__PURE__ */ React128.createElement(React128.Fragment, null, showCardDisclaimer && `${cardDisclaimer} `, "By clicking on ", continueText, ", you agree to ", FUN_ORG_NAME, "'s", " ", /* @__PURE__ */ React128.createElement(FunLinkButton, { href: FUN_TERMS_URL, inline: true, text: "terms" }), ", Katana's and Vaultbridge's ", /* @__PURE__ */ React128.createElement(
14619
14727
  FunLinkButton,
14620
14728
  {
14621
- href: "https://katana.network/legal/terms-and-conditions",
14729
+ href: "https://app.katana.network/legal/terms-and-conditions",
14622
14730
  inline: true,
14623
14731
  text: "terms"
14624
14732
  }
14625
14733
  ), ", and the ", /* @__PURE__ */ React128.createElement(FunLinkButton, { href: "https://morpho.org/", inline: true, text: "terms" }), " applicable to third-party Morpho vaults", ".") : /* @__PURE__ */ React128.createElement(React128.Fragment, null, isVertex && vertexText ? `${vertexText} ` : showCardDisclaimer && `${cardDisclaimer} `, "By clicking on ", continueText, ", you agree to our", " ", /* @__PURE__ */ React128.createElement(FunLinkButton, { href: FUN_TERMS_URL, inline: true, text: "terms" }), ".");
14626
14734
  };
14627
14735
  function useCardDisclaimer(checkoutItem, finalConvertedAssetName) {
14628
- const cardDisclaimer = useMemo19(() => {
14736
+ const cardDisclaimer = useMemo18(() => {
14629
14737
  if (!checkoutItem || !finalConvertedAssetName) {
14630
14738
  return null;
14631
14739
  }
@@ -14707,10 +14815,10 @@ function useAutoClearState(initialValue = null) {
14707
14815
 
14708
14816
  // src/hooks/useIsBlacklisted.ts
14709
14817
  import { FlagKey as FlagKey15 } from "@funkit/utils";
14710
- import { useMemo as useMemo20 } from "react";
14818
+ import { useMemo as useMemo19 } from "react";
14711
14819
  var useIsBlacklisted = (walletAddress, customRecipient) => {
14712
14820
  const flagStr = useFlag(FlagKey15.AddressBlacklist);
14713
- const blacklist = useMemo20(
14821
+ const blacklist = useMemo19(
14714
14822
  () => safeJSONParse(flagStr)?.map((addr) => addr.toLowerCase()) || [],
14715
14823
  [flagStr]
14716
14824
  );
@@ -15530,7 +15638,7 @@ function usePostCheckout({
15530
15638
  }
15531
15639
 
15532
15640
  // src/modals/CheckoutModal/ConfirmationStep/useQuoteRefresh.ts
15533
- import { useCallback as useCallback25, useEffect as useEffect24, useMemo as useMemo21, useRef as useRef10, useState as useState31 } from "react";
15641
+ import { useCallback as useCallback25, useEffect as useEffect24, useMemo as useMemo20, useRef as useRef10, useState as useState31 } from "react";
15534
15642
 
15535
15643
  // src/hooks/useCountdown.tsx
15536
15644
  import React131 from "react";
@@ -15799,7 +15907,7 @@ function useQuoteRefresh({
15799
15907
  },
15800
15908
  [isOnHold, restartCountdown, setCheckoutQuote, triggerAssetConfirm]
15801
15909
  );
15802
- const quoteError = useMemo21(() => {
15910
+ const quoteError = useMemo20(() => {
15803
15911
  if (quoteErrorMessage && !isQuoting) {
15804
15912
  return {
15805
15913
  message: quoteErrorMessage,
@@ -15932,10 +16040,10 @@ function ConfirmationStep({
15932
16040
  // Block updates to the current quote during confirmation, post-checkout, and if its a direct execution
15933
16041
  useQuoteRefresh({
15934
16042
  isOnHold: isInitialQuoting || isContinuing || isAway,
15935
- refreshIntervalSeconds: directExecutionType === DirectExecutionType3.RELAY ? RELAY_ESTIMATE_REFRESH_INTERVAL_SEC : DEFAULT_ESTIMATE_REFRESH_INTERVAL_SEC
16043
+ refreshIntervalSeconds: directExecutionType === DirectExecutionType2.RELAY ? RELAY_ESTIMATE_REFRESH_INTERVAL_SEC : DEFAULT_ESTIMATE_REFRESH_INTERVAL_SEC
15936
16044
  })
15937
16045
  );
15938
- const error = useMemo22(() => {
16046
+ const error = useMemo21(() => {
15939
16047
  if (!isInitialQuoting && moonpayAmountCheck?.isInvalid) {
15940
16048
  return {
15941
16049
  message: moonpayAmountCheck.message,
@@ -15950,7 +16058,7 @@ function ConfirmationStep({
15950
16058
  quoteError,
15951
16059
  isInitialQuoting
15952
16060
  ]);
15953
- const stepMessage = useMemo22(() => {
16061
+ const stepMessage = useMemo21(() => {
15954
16062
  if (initialQuoteStep) return initialQuoteStep;
15955
16063
  if (postCheckoutStepMessage) return postCheckoutStepMessage;
15956
16064
  if (confirmationStepMessage) return confirmationStepMessage;
@@ -16388,13 +16496,13 @@ var useMeldDefaultCurrency = (paymentMethod) => {
16388
16496
 
16389
16497
  // src/modals/CheckoutModal/InputAmount/InputAmountLoaded.tsx
16390
16498
  import {
16391
- FlagKey as FlagKey20,
16499
+ FlagKey as FlagKey21,
16392
16500
  formatCryptoAndStringify as formatCryptoAndStringify4,
16393
16501
  formatCurrencyAndStringify as formatCurrencyAndStringify9,
16394
16502
  isTokenEquivalent as isTokenEquivalent6,
16395
16503
  round as round3
16396
16504
  } from "@funkit/utils";
16397
- import React150, { useMemo as useMemo25 } from "react";
16505
+ import React150, { useMemo as useMemo24 } from "react";
16398
16506
 
16399
16507
  // src/components/CurrencySelector/CurrencySelector.tsx
16400
16508
  import React139 from "react";
@@ -16647,6 +16755,7 @@ var MeldProviderLabel = ({
16647
16755
  };
16648
16756
 
16649
16757
  // src/components/SourcePaymentMethodItem/SourcePaymentMethodItem.tsx
16758
+ import { FlagKey as FlagKey19 } from "@funkit/utils";
16650
16759
  import clsx14 from "clsx";
16651
16760
  import { useAnimate } from "motion/react";
16652
16761
  import React144 from "react";
@@ -17225,6 +17334,40 @@ var SourcePaymentMethodItem = ({
17225
17334
  );
17226
17335
  };
17227
17336
  const backdropColor = themeVars.colors.offBackground;
17337
+ const icons = [
17338
+ {
17339
+ paymentMethod: "balance" /* ACCOUNT_BALANCE */,
17340
+ icon: /* @__PURE__ */ React144.createElement(MetamaskPillIcon, { key: "metamask", backdropColor })
17341
+ },
17342
+ {
17343
+ paymentMethod: "brokerage" /* BROKERAGE */,
17344
+ icon: /* @__PURE__ */ React144.createElement(BinancePillIcon, { key: "binance", backdropColor })
17345
+ },
17346
+ {
17347
+ paymentMethod: "card" /* CARD */,
17348
+ icon: /* @__PURE__ */ React144.createElement(VisaPillIcon, { key: "visa", backdropColor })
17349
+ },
17350
+ {
17351
+ paymentMethod: "brokerage" /* BROKERAGE */,
17352
+ icon: /* @__PURE__ */ React144.createElement(CoinbasePillIcon, { key: "coinbase", backdropColor })
17353
+ },
17354
+ {
17355
+ paymentMethod: "balance" /* ACCOUNT_BALANCE */,
17356
+ icon: /* @__PURE__ */ React144.createElement(RainbowPillIcon, { key: "rainbow", backdropColor })
17357
+ },
17358
+ {
17359
+ paymentMethod: "card" /* CARD */,
17360
+ icon: /* @__PURE__ */ React144.createElement(MasterCardPillIcon, { key: "mastercard", backdropColor })
17361
+ }
17362
+ ];
17363
+ const isCardEnabled = useFlag(FlagKey19.EnableCard);
17364
+ const isBrokerageEnabled = useFlag(FlagKey19.EnableBrokerage);
17365
+ const usableAlternativeIcons = icons.filter(({ paymentMethod }) => {
17366
+ if (paymentMethod === type || paymentMethod === "card" /* CARD */ && !isCardEnabled || paymentMethod === "brokerage" /* BROKERAGE */ && !isBrokerageEnabled) {
17367
+ return false;
17368
+ }
17369
+ return true;
17370
+ });
17228
17371
  return /* @__PURE__ */ React144.createElement(
17229
17372
  Box,
17230
17373
  {
@@ -17279,7 +17422,7 @@ var SourcePaymentMethodItem = ({
17279
17422
  className: "framer-spmi-animated-logos",
17280
17423
  color: "primaryText"
17281
17424
  },
17282
- type === "balance" /* ACCOUNT_BALANCE */ ? /* @__PURE__ */ React144.createElement(React144.Fragment, null, /* @__PURE__ */ React144.createElement(CoinbasePillIcon, { backdropColor }), /* @__PURE__ */ React144.createElement(BinancePillIcon, { backdropColor }), /* @__PURE__ */ React144.createElement(VisaPillIcon, { backdropColor })) : type === "brokerage" /* BROKERAGE */ ? /* @__PURE__ */ React144.createElement(React144.Fragment, null, /* @__PURE__ */ React144.createElement(MetamaskPillIcon, { backdropColor }), /* @__PURE__ */ React144.createElement(RainbowPillIcon, { backdropColor }), /* @__PURE__ */ React144.createElement(VisaPillIcon, { backdropColor })) : type === "virtual_bank" /* VIRTUAL_BANK */ ? /* @__PURE__ */ React144.createElement(React144.Fragment, null, /* @__PURE__ */ React144.createElement(CoinbasePillIcon, { backdropColor }), /* @__PURE__ */ React144.createElement(BinancePillIcon, { backdropColor }), /* @__PURE__ */ React144.createElement(MetamaskPillIcon, { backdropColor })) : /* @__PURE__ */ React144.createElement(React144.Fragment, null, /* @__PURE__ */ React144.createElement(BinancePillIcon, { backdropColor }), /* @__PURE__ */ React144.createElement(CoinbasePillIcon, { backdropColor }), /* @__PURE__ */ React144.createElement(MasterCardPillIcon, { backdropColor }))
17425
+ usableAlternativeIcons.slice(0, 3).map(({ icon }) => icon)
17283
17426
  )
17284
17427
  ), /* @__PURE__ */ React144.createElement(ArrowIcon, { direction: "right", size: 20 }))
17285
17428
  )
@@ -17411,7 +17554,7 @@ var YouPayYouReceiveBottomBarLayoutWrapper = ({
17411
17554
  import { getMeldFiatLimits } from "@funkit/api-base";
17412
17555
  import { formatCurrencyAndStringify as formatCurrencyAndStringify6 } from "@funkit/utils";
17413
17556
  import { useQuery as useQuery13 } from "@tanstack/react-query";
17414
- import { useMemo as useMemo23 } from "react";
17557
+ import { useMemo as useMemo22 } from "react";
17415
17558
 
17416
17559
  // src/hooks/queries/useMeldCryptoCurrencyCode.ts
17417
17560
  function useMeldCryptoCurrencyCode() {
@@ -17453,7 +17596,7 @@ var useMeldLimits = (fiatCurrency) => {
17453
17596
  };
17454
17597
  var useMeldLimitError = (amount, fiatCurrency) => {
17455
17598
  const { data } = useMeldLimits(fiatCurrency);
17456
- const meldLimit = useMemo23(
17599
+ const meldLimit = useMemo22(
17457
17600
  () => data?.find((lim) => lim.currencyCode === fiatCurrency),
17458
17601
  [data, fiatCurrency]
17459
17602
  );
@@ -17742,20 +17885,20 @@ function InputAmountLayout({
17742
17885
  }
17743
17886
 
17744
17887
  // src/modals/CheckoutModal/InputAmount/QuickOptions.tsx
17745
- import { FlagKey as FlagKey19, clamp, formatCurrencyAndStringify as formatCurrencyAndStringify7 } from "@funkit/utils";
17746
- import React149, { useMemo as useMemo24 } from "react";
17888
+ import { FlagKey as FlagKey20, clamp, formatCurrencyAndStringify as formatCurrencyAndStringify7 } from "@funkit/utils";
17889
+ import React149, { useMemo as useMemo23 } from "react";
17747
17890
  var USD_AMOUNT_OPTIONS_PCT = [25, 50, 75, 100];
17748
17891
  var USD_AMOUNT_OPTIONS = [100, 500, 1e3];
17749
17892
  function deduplicateArray(arr) {
17750
17893
  return Array.from(new Set(arr));
17751
17894
  }
17752
17895
  function useFiatAmountOptions(percentMode, currency) {
17753
- const currencyQuickOptionStr = useFlag(FlagKey19.MeldQuickOptions);
17896
+ const currencyQuickOptionStr = useFlag(FlagKey20.MeldQuickOptions);
17754
17897
  const currencyQuickOption = safeJSONParse(
17755
17898
  currencyQuickOptionStr
17756
17899
  );
17757
17900
  const { data: limits, isPending } = useMeldLimits(currency);
17758
- const meldLimit = useMemo24(
17901
+ const meldLimit = useMemo23(
17759
17902
  () => limits?.find((lim) => lim.currencyCode === currency),
17760
17903
  [limits, currency]
17761
17904
  );
@@ -18083,12 +18226,12 @@ function InputAmountLoaded({
18083
18226
  defaultFiatCurrency,
18084
18227
  textCustomizations
18085
18228
  }) {
18086
- const maxCheckoutUsdString = useFlag(FlagKey20.MaxCheckoutUsd);
18229
+ const maxCheckoutUsdString = useFlag(FlagKey21.MaxCheckoutUsd);
18087
18230
  const { apiKey } = useFunkitConfig();
18088
18231
  const { paymentMethod } = modalState.paymentMethodInfo;
18089
18232
  const { quote: manuallySelectedQuote } = modalState;
18090
18233
  const isCardCheckout = paymentMethod === "card" /* CARD */;
18091
- const meldEnabled = useFlag(FlagKey20.EnableMeldPayment) && isCardCheckout;
18234
+ const meldEnabled = useFlag(FlagKey21.EnableMeldPayment) && isCardCheckout;
18092
18235
  const { targetAssetTicker, targetAssetMinAmount } = checkoutConfig;
18093
18236
  const { updateTargetAssetAmount } = useCheckoutContext();
18094
18237
  const minUsd = targetAssetMinAmount && unitPrice ? Math.ceil(targetAssetMinAmount * unitPrice * 100) / 100 : void 0;
@@ -18126,7 +18269,7 @@ function InputAmountLoaded({
18126
18269
  selectedQuote,
18127
18270
  isSelectedQuoteUnavailable
18128
18271
  } = useMeld(manuallySelectedQuote, usdAmount, fiatCurrency);
18129
- const error = useMemo25(() => {
18272
+ const error = useMemo24(() => {
18130
18273
  if (isCardCheckout) {
18131
18274
  if (isSelectedQuoteUnavailable) {
18132
18275
  return {
@@ -18369,8 +18512,8 @@ function YouPayYouReceiveWrapper({
18369
18512
  }
18370
18513
 
18371
18514
  // src/modals/CheckoutModal/InputAmount/InputAmountLoading.tsx
18372
- import { FlagKey as FlagKey21, formatCryptoAndStringify as formatCryptoAndStringify5 } from "@funkit/utils";
18373
- import React151, { useMemo as useMemo26 } from "react";
18515
+ import { FlagKey as FlagKey22, formatCryptoAndStringify as formatCryptoAndStringify5 } from "@funkit/utils";
18516
+ import React151, { useMemo as useMemo25 } from "react";
18374
18517
  function InputAmountLoading({
18375
18518
  modalState,
18376
18519
  onBack,
@@ -18380,10 +18523,10 @@ function InputAmountLoading({
18380
18523
  const { paymentMethodInfo } = modalState;
18381
18524
  const { checkoutItem } = useCheckoutContext();
18382
18525
  const { unlinkBrokerage } = useFunkitMesh();
18383
- const meldEnabled = useFlag(FlagKey21.EnableMeldPayment);
18526
+ const meldEnabled = useFlag(FlagKey22.EnableMeldPayment);
18384
18527
  const targetAssetAmount = checkoutItem?.initSettings.config.targetAssetAmount;
18385
18528
  const targetAssetTicker = checkoutItem?.initSettings.config.targetAssetTicker;
18386
- const error = useMemo26(() => {
18529
+ const error = useMemo25(() => {
18387
18530
  if (sourceHoldingError) {
18388
18531
  return {
18389
18532
  message: /* @__PURE__ */ React151.createElement("div", null, "Unable to retrieve your account balance. Please try re-linking your account.", " ", paymentMethodInfo.paymentMethod === "brokerage" /* BROKERAGE */ && /* @__PURE__ */ React151.createElement(
@@ -18551,7 +18694,7 @@ function useAssetPrice({
18551
18694
  }
18552
18695
 
18553
18696
  // src/modals/CheckoutModal/InputAmount/useAvailableBalanceForCheckout.ts
18554
- import { useMemo as useMemo27 } from "react";
18697
+ import { useMemo as useMemo26 } from "react";
18555
18698
  function useAvailableBalanceForCheckout(paymentMethodInfo, targetChainId, assetChainId, assetSymbol) {
18556
18699
  const {
18557
18700
  data: meshAssetHoldings,
@@ -18569,7 +18712,7 @@ function useAvailableBalanceForCheckout(paymentMethodInfo, targetChainId, assetC
18569
18712
  ["token_transfer" /* TOKEN_TRANSFER */]: null,
18570
18713
  ["virtual_bank" /* VIRTUAL_BANK */]: null
18571
18714
  }[paymentMethodInfo.paymentMethod];
18572
- const holdingItem = useMemo27(() => {
18715
+ const holdingItem = useMemo26(() => {
18573
18716
  if (!assetSymbol || !holdings) {
18574
18717
  return;
18575
18718
  }
@@ -18679,7 +18822,7 @@ function InputAmount(props) {
18679
18822
  import React155, { useEffect as useEffect29 } from "react";
18680
18823
 
18681
18824
  // src/hooks/usePaymentSources.ts
18682
- import { FlagKey as FlagKey22, isNotNullish as isNotNullish8 } from "@funkit/utils";
18825
+ import { FlagKey as FlagKey23, isNotNullish as isNotNullish8 } from "@funkit/utils";
18683
18826
  function useRemainingMeshExchangeConnections(selected) {
18684
18827
  const { getActiveConnection } = useFunkitMesh();
18685
18828
  const supportedExchanges = useSupportedExchanges();
@@ -18708,10 +18851,10 @@ function usePaymentMethodEnablement({
18708
18851
  checkoutConfig
18709
18852
  }) {
18710
18853
  const { apiKey, uiCustomizations } = useFunkitConfig();
18711
- const isTokenTransferFlagEnabled = useFlag(FlagKey22.EnableTokenTransfer);
18854
+ const isTokenTransferFlagEnabled = useFlag(FlagKey23.EnableTokenTransfer);
18712
18855
  const isFiatFlagEnabled = useFiatEnabled();
18713
- const isCardFlagEnabled = useFlag(FlagKey22.EnableCard);
18714
- const isBrokerageFlagEnabled = useFlag(FlagKey22.EnableBrokerage);
18856
+ const isCardFlagEnabled = useFlag(FlagKey23.EnableCard);
18857
+ const isBrokerageFlagEnabled = useFlag(FlagKey23.EnableBrokerage);
18715
18858
  const isKatanaEarnFlowAction = isKatanaEarnFlow({ apiKey, checkoutConfig });
18716
18859
  const isUsKatanaUser = useIsUsKatanaUser();
18717
18860
  const isFiatEnabled = isFiatFlagEnabled && !isKatanaEarnFlowAction;
@@ -19070,7 +19213,7 @@ function LoadingAccount({
19070
19213
  // src/modals/CheckoutModal/MeldCurrencySelect/MeldCurrencySelect.tsx
19071
19214
  import { clamp as clamp2 } from "@funkit/utils";
19072
19215
  import clsx15 from "clsx";
19073
- import React159, { useMemo as useMemo28, useState as useState35 } from "react";
19216
+ import React159, { useMemo as useMemo27, useState as useState35 } from "react";
19074
19217
 
19075
19218
  // src/components/FunNoResults/FunNoResults.tsx
19076
19219
  import React158 from "react";
@@ -19260,7 +19403,7 @@ function MeldCurrencySelect({
19260
19403
  const [selectedCurrency, setSelectedCurrency] = useState35(
19261
19404
  defaultCurrency
19262
19405
  );
19263
- const filteredOptions = useMemo28(() => {
19406
+ const filteredOptions = useMemo27(() => {
19264
19407
  const newOptions = data?.filter(
19265
19408
  ({ name, currencyCode }) => currencyCode.toLowerCase().includes(query.toLowerCase()) || name.toLowerCase().includes(query.toLowerCase())
19266
19409
  ) ?? [];
@@ -19380,8 +19523,8 @@ import {
19380
19523
  meshExecuteTransfer,
19381
19524
  meshExecuteTransferProxy
19382
19525
  } from "@funkit/api-base";
19383
- import { ClientError as ClientError4, FlagKey as FlagKey23, formatAddress as formatAddress4 } from "@funkit/utils";
19384
- import React172, { useMemo as useMemo29, useState as useState38 } from "react";
19526
+ import { ClientError as ClientError4, FlagKey as FlagKey24, formatAddress as formatAddress4 } from "@funkit/utils";
19527
+ import React172, { useMemo as useMemo28, useState as useState38 } from "react";
19385
19528
  import { createPortal as createPortal9 } from "react-dom";
19386
19529
 
19387
19530
  // src/components/CopyAddress/CopyAddressButton.tsx
@@ -19878,7 +20021,7 @@ function MeshVerification({
19878
20021
  const executionStatus = executionContent?.status;
19879
20022
  const { checkoutItem } = useCheckoutContext();
19880
20023
  const bottomSectionRef = useBottomSectionRef();
19881
- const enableFrogProxyServer = useFlag(FlagKey23.EnableFrogProxyServer);
20024
+ const enableFrogProxyServer = useFlag(FlagKey24.EnableFrogProxyServer);
19882
20025
  const handleCompletion = useEffectEvent(async (finalOtpInput) => {
19883
20026
  try {
19884
20027
  setIsExecuting(true);
@@ -19961,7 +20104,7 @@ function MeshVerification({
19961
20104
  return () => setScreen(0 /* INITIAL */);
19962
20105
  });
19963
20106
  const brokerName = getExchangeName(brokerType);
19964
- const verificationTitle = useMemo29(() => {
20107
+ const verificationTitle = useMemo28(() => {
19965
20108
  switch (executionStatus) {
19966
20109
  case MeshExecuteTransferStatus.secondMfaRequired:
19967
20110
  return `Additional ${brokerName} 2FA required`;
@@ -19988,7 +20131,7 @@ function MeshVerification({
19988
20131
  executionContent?.verificationSteps?.length,
19989
20132
  isSecond2fa
19990
20133
  ]);
19991
- const verificationDescription = useMemo29(() => {
20134
+ const verificationDescription = useMemo28(() => {
19992
20135
  switch (executionStatus) {
19993
20136
  case MeshExecuteTransferStatus.secondMfaRequired:
19994
20137
  return `Please enable at least two 2FA methods on your ${brokerName} account. Once enabled, you will have to reconnect your account.`;
@@ -20133,7 +20276,7 @@ var VerificationPopup = ({
20133
20276
  };
20134
20277
 
20135
20278
  // src/modals/CheckoutModal/MoonpaySetup.tsx
20136
- import React174, { useCallback as useCallback31, useMemo as useMemo31, useState as useState40 } from "react";
20279
+ import React174, { useCallback as useCallback31, useMemo as useMemo30, useState as useState40 } from "react";
20137
20280
 
20138
20281
  // src/components/FunPayments/FunPaymentMoonpayType.css.ts
20139
20282
  var mpClass = "_1kmpeyf0";
@@ -20142,7 +20285,7 @@ var stretchStyle = "_1kmpeyf1";
20142
20285
  // src/components/FunPayments/FunPaymentMoonpayType.tsx
20143
20286
  import { getMoonpayUrlSignature } from "@funkit/api-base";
20144
20287
  import { colorToHex } from "@funkit/utils";
20145
- import React173, { Fragment as Fragment2, useEffect as useEffect33, useMemo as useMemo30, useState as useState39 } from "react";
20288
+ import React173, { Fragment as Fragment2, useEffect as useEffect33, useMemo as useMemo29, useState as useState39 } from "react";
20146
20289
  var LazyMoonPayBuyWidget = (props) => {
20147
20290
  const [MoonPayBuyWidget, setMoonPayBuyWidget] = useState39(null);
20148
20291
  useEffect33(() => {
@@ -20173,7 +20316,7 @@ function FunPaymentMoonpayType({
20173
20316
  const isSandboxMode = useIsFunkitSandboxMode();
20174
20317
  const funkitConfig = useFunkitConfig();
20175
20318
  const { userInfo } = useGeneralWallet();
20176
- const currencyCode = useMemo30(() => {
20319
+ const currencyCode = useMemo29(() => {
20177
20320
  return generateMoonpayCurrencyCode(depositToken, depositTokenChainId);
20178
20321
  }, [depositToken, depositTokenChainId]);
20179
20322
  const depositTokenAmountStringFormatted = formatTokenAmountForMoonpay(
@@ -20196,7 +20339,7 @@ function FunPaymentMoonpayType({
20196
20339
  });
20197
20340
  return signature || "";
20198
20341
  };
20199
- const moonpayButtonColor = useMemo30(() => {
20342
+ const moonpayButtonColor = useMemo29(() => {
20200
20343
  const primaryButtonHex = colorToHex(activeTheme.colors.buttonPrimary);
20201
20344
  if (["#FFF", "#FFFF", "#FFFFFF", "#FFFFFFFF"].includes(primaryButtonHex)) {
20202
20345
  return void 0;
@@ -20251,7 +20394,7 @@ function MoonpaySetup({
20251
20394
  depositAddress: paymentAddress
20252
20395
  });
20253
20396
  }, [onNext, paymentAddress]);
20254
- const MoonpayWidget = useMemo31(() => {
20397
+ const MoonpayWidget = useMemo30(() => {
20255
20398
  return /* @__PURE__ */ React174.createElement(
20256
20399
  FunPaymentMoonpayType,
20257
20400
  {
@@ -20282,7 +20425,7 @@ function MoonpaySetup({
20282
20425
  // src/modals/CheckoutModal/SelectAsset.tsx
20283
20426
  import { FUNKIT_CONNECT_SUPPORTED_CHECKOUT_CHAINS_INFO_LIST as FUNKIT_CONNECT_SUPPORTED_CHECKOUT_CHAINS_INFO_LIST2 } from "@funkit/chains";
20284
20427
  import { formatCurrencyAndStringify as formatCurrencyAndStringify11, isTokenEquivalent as isTokenEquivalent7 } from "@funkit/utils";
20285
- import React183, { useEffect as useEffect35, useMemo as useMemo33, useState as useState42 } from "react";
20428
+ import React183, { useEffect as useEffect35, useMemo as useMemo32, useState as useState42 } from "react";
20286
20429
  import { createPortal as createPortal10 } from "react-dom";
20287
20430
 
20288
20431
  // src/components/Dropdown/ChainDropdown.tsx
@@ -20291,7 +20434,7 @@ import React180 from "react";
20291
20434
  // src/components/Dropdown/BaseDropdown.tsx
20292
20435
  import { isMobile as isMobile6, noop as noop6 } from "@funkit/utils";
20293
20436
  import { AnimatePresence as AnimatePresence4, motion as motion6 } from "motion/react";
20294
- import React178, { useCallback as useCallback32, useMemo as useMemo32, useState as useState41 } from "react";
20437
+ import React178, { useCallback as useCallback32, useMemo as useMemo31, useState as useState41 } from "react";
20295
20438
 
20296
20439
  // src/components/FunSelect/FunClickOutside.tsx
20297
20440
  import React175 from "react";
@@ -20497,7 +20640,7 @@ function BaseDropdown({
20497
20640
  const handleSearch = (event) => {
20498
20641
  setSearchInput(event.target.value);
20499
20642
  };
20500
- const filteredOptions = useMemo32(
20643
+ const filteredOptions = useMemo31(
20501
20644
  () => options.filter(
20502
20645
  (singleOption) => singleOption.label.toLowerCase().includes(searchInput?.toLowerCase())
20503
20646
  ),
@@ -20906,13 +21049,13 @@ var ReceiveTokenDropdown = ({
20906
21049
 
20907
21050
  // src/components/NewTokenDepositAlert/NewTokenDepositAlert.tsx
20908
21051
  import React182 from "react";
20909
- import { FlagKey as FlagKey24, safeParseJson as safeParseJson4 } from "@funkit/utils";
21052
+ import { FlagKey as FlagKey25, safeParseJson as safeParseJson4 } from "@funkit/utils";
20910
21053
  var NewTokenDepositAlert = ({
20911
21054
  onClick
20912
21055
  }) => {
20913
- const alertJson = useFlag(FlagKey24.NewTokenAssetSelectionBanner);
21056
+ const alertJson = useFlag(FlagKey25.NewTokenAssetSelectionBanner);
20914
21057
  const alertData = safeParseJson4(alertJson);
20915
- const isTokenTransferEnabled = useFlag(FlagKey24.EnableTokenTransfer);
21058
+ const isTokenTransferEnabled = useFlag(FlagKey25.EnableTokenTransfer);
20916
21059
  if (!alertData || !isTokenTransferEnabled) return null;
20917
21060
  return /* @__PURE__ */ React182.createElement(
20918
21061
  FunAlert,
@@ -20980,7 +21123,7 @@ function useEnrichedAccountHoldings({
20980
21123
  const { apiKey } = useFunkitConfig();
20981
21124
  const { isAllowed, isLoading } = useAllowedAssets();
20982
21125
  const { loginType, walletAddress } = useGeneralWallet();
20983
- const enrichedAccountHoldings = useMemo33(() => {
21126
+ const enrichedAccountHoldings = useMemo32(() => {
20984
21127
  if (!checkoutConfig) return [];
20985
21128
  return Object.values(accountHoldings).map((asset) => {
20986
21129
  const usableForCheckout = isAssetUsableToPayForCheckout({
@@ -21022,7 +21165,7 @@ function useAssetOptions({
21022
21165
  userSelectedTargetAsset,
21023
21166
  chainId
21024
21167
  }) {
21025
- const assetOptions = useMemo33(() => {
21168
+ const assetOptions = useMemo32(() => {
21026
21169
  return enrichedAccountHoldings.filter(
21027
21170
  ({ asset }) => chainId !== void 0 ? asset.pickedChainId === chainId.toString() : true
21028
21171
  ).map(({ asset, usableForCheckout }) => {
@@ -21093,7 +21236,7 @@ function MeshOrAccountSelectAsset({
21093
21236
  targetAssetMinAmount: 0
21094
21237
  };
21095
21238
  const [selectedTargetAsset, setSelectedTargetAsset] = useState42(defaultTargetAsset);
21096
- const defaultTokenSymbols = useMemo33(() => {
21239
+ const defaultTokenSymbols = useMemo32(() => {
21097
21240
  if (!checkoutConfig) {
21098
21241
  return [];
21099
21242
  }
@@ -21157,7 +21300,7 @@ function MeshOrAccountSelectAsset({
21157
21300
  handleTargetAssetUpdate(tokenItem);
21158
21301
  onFinish();
21159
21302
  });
21160
- const selectedChainTokenSymbol = useMemo33(() => {
21303
+ const selectedChainTokenSymbol = useMemo32(() => {
21161
21304
  if (explicitlySelectedChainTokenSymbol) {
21162
21305
  const assetExists = assetOptions.find(
21163
21306
  ({ asset }) => asset.chainSymbolKey === explicitlySelectedChainTokenSymbol
@@ -21569,7 +21712,7 @@ function SelectBrokerage({
21569
21712
 
21570
21713
  // src/modals/CheckoutModal/SourceChange/SourceChange.tsx
21571
21714
  import { BridgeCustomerStatus as BridgeCustomerStatus6 } from "@funkit/api-base";
21572
- import { FlagKey as FlagKey25 } from "@funkit/utils";
21715
+ import { FlagKey as FlagKey26 } from "@funkit/utils";
21573
21716
  import React186, { useEffect as useEffect36, useState as useState45 } from "react";
21574
21717
  import { createPortal as createPortal12 } from "react-dom";
21575
21718
 
@@ -21786,7 +21929,7 @@ function SourceChange({
21786
21929
  const { data: fiatAccounts } = useVirtualFiatAccounts();
21787
21930
  const matchingFiatAccount = useMatchingVirtualFiatAccount(fiatAccounts);
21788
21931
  const { apiKey, textCustomizations } = useFunkitConfig();
21789
- const enableMeldPayment = useFlag(FlagKey25.EnableMeldPayment);
21932
+ const enableMeldPayment = useFlag(FlagKey26.EnableMeldPayment);
21790
21933
  const hasAutoContinue = !isOstiumCustomer(apiKey);
21791
21934
  useEffect36(() => {
21792
21935
  if (!paymentMethodInfo) return;
@@ -21957,7 +22100,7 @@ function SourceChange({
21957
22100
  }
21958
22101
 
21959
22102
  // src/modals/CheckoutModal/TransferToken/TransferToken.tsx
21960
- import { FlagKey as FlagKey28 } from "@funkit/utils";
22103
+ import { FlagKey as FlagKey29 } from "@funkit/utils";
21961
22104
  import { motion as motion8, useAnimationControls as useAnimationControls3 } from "motion/react";
21962
22105
  import React200, { useEffect as useEffect37, useRef as useRef15, useState as useState48 } from "react";
21963
22106
  import { createPortal as createPortal13 } from "react-dom";
@@ -22019,13 +22162,13 @@ function CopyInputDisplayedAddress({
22019
22162
  }
22020
22163
 
22021
22164
  // src/components/Dropdown/TokenDropdown.tsx
22022
- import { FlagKey as FlagKey26, safeParseJson as safeParseJson5 } from "@funkit/utils";
22165
+ import { FlagKey as FlagKey27, safeParseJson as safeParseJson5 } from "@funkit/utils";
22023
22166
  import React189, { useState as useState46 } from "react";
22024
22167
  var TOKEN_ICON_SIZE2 = 16;
22025
22168
  var useNewTokens = () => {
22026
- const bannerJson = useFlag(FlagKey26.NewTokenAssetSelectionBanner);
22169
+ const bannerJson = useFlag(FlagKey27.NewTokenAssetSelectionBanner);
22027
22170
  const bannerData = safeParseJson5(bannerJson);
22028
- const newBadgeTokensJson = useFlag(FlagKey26.TokenTransferNewTokens);
22171
+ const newBadgeTokensJson = useFlag(FlagKey27.TokenTransferNewTokens);
22029
22172
  const newBadgeData = safeParseJson5(newBadgeTokensJson);
22030
22173
  const newTokens = newBadgeData && Object.values(newBadgeData).flat();
22031
22174
  const newUniqueTokens = new Set(newTokens);
@@ -22141,7 +22284,7 @@ var LightningBoltIcon = ({ size = 16 }) => /* @__PURE__ */ React190.createElemen
22141
22284
 
22142
22285
  // src/components/QRCode/QRCode.tsx
22143
22286
  import QRCodeUtil from "qrcode";
22144
- import React191, { useMemo as useMemo34 } from "react";
22287
+ import React191, { useMemo as useMemo33 } from "react";
22145
22288
  var generateMatrix = (value, errorCorrectionLevel) => {
22146
22289
  const { data } = QRCodeUtil.create(value, { errorCorrectionLevel }).modules;
22147
22290
  const sqrt = Math.sqrt(data.length);
@@ -22169,7 +22312,7 @@ function QRCode({
22169
22312
  }) {
22170
22313
  const { activeTheme } = useActiveTheme();
22171
22314
  const size = sizeProp - Number.parseInt(outsidePadding, 10) * 2;
22172
- const dots = useMemo34(() => {
22315
+ const dots = useMemo33(() => {
22173
22316
  const dots2 = [];
22174
22317
  const matrix = generateMatrix(uri, ecl);
22175
22318
  const cellSize = size / matrix.length;
@@ -22716,12 +22859,12 @@ var TransferTokenDetails = ({
22716
22859
 
22717
22860
  // src/hooks/useTokenTransfer.ts
22718
22861
  import { solanaChain as solanaChain2 } from "@funkit/chains";
22719
- import { FlagKey as FlagKey27 } from "@funkit/utils";
22862
+ import { FlagKey as FlagKey28 } from "@funkit/utils";
22720
22863
  import { mainnet as mainnet8, polygon as polygon5 } from "viem/chains";
22721
22864
  var useTokenTransfer = (selectedChainId, selectedToken) => {
22722
22865
  const { checkoutItem } = useCheckoutContext();
22723
22866
  const enableUniversal = useFlag(
22724
- FlagKey27.EnableTokenTransferUniversalDepositAddress,
22867
+ FlagKey28.EnableTokenTransferUniversalDepositAddress,
22725
22868
  false
22726
22869
  );
22727
22870
  const estPriceImpact = usePriceImpactEstimation(selectedToken);
@@ -22807,7 +22950,7 @@ function TransferToken({
22807
22950
  const filteredAssets = useEnabledTokenTransferChainTokens(
22808
22951
  transferInit ?? null
22809
22952
  );
22810
- const defaultChainIdFlag = useFlag(FlagKey28.TokenTransferDefaultChainId);
22953
+ const defaultChainIdFlag = useFlag(FlagKey29.TokenTransferDefaultChainId);
22811
22954
  const defaultChainId = defaultValues?.chainId ?? Number(defaultChainIdFlag);
22812
22955
  const validDefaultChainId = filteredAssets[defaultChainId] !== void 0 ? defaultChainId : polygon6.id;
22813
22956
  const [selectedChainId, setSelectedChainId] = useState48(validDefaultChainId);
@@ -23340,7 +23483,7 @@ var FiatAccountDetail = {
23340
23483
 
23341
23484
  // src/modals/CheckoutModal/VirtualFiatAccount/KycIframe.tsx
23342
23485
  import { BridgeCustomerStatus as BridgeCustomerStatus7 } from "@funkit/api-base";
23343
- import React205, { useCallback as useCallback34, useEffect as useEffect38, useMemo as useMemo35, useState as useState50 } from "react";
23486
+ import React205, { useCallback as useCallback34, useEffect as useEffect38, useMemo as useMemo34, useState as useState50 } from "react";
23344
23487
  function useIframeListener(listeners) {
23345
23488
  const handleMessage = useCallback34(
23346
23489
  (event) => {
@@ -23393,7 +23536,7 @@ function KycIframe({
23393
23536
  const { clearVirtualFiatAccounts } = useClearFrogAccountsCache();
23394
23537
  const { data: kycLink, isLoading: isLinkLoading } = useLoadKycLink(modalState);
23395
23538
  const [iframeLoading, setIframeLoading] = useState50(true);
23396
- const listeners = useMemo35(
23539
+ const listeners = useMemo34(
23397
23540
  () => ({
23398
23541
  load: () => {
23399
23542
  logger.info("KYC iframe loaded");
@@ -24113,7 +24256,7 @@ function FunConnectOptions({
24113
24256
  }
24114
24257
  }
24115
24258
  };
24116
- const stepComponent = useMemo36(() => {
24259
+ const stepComponent = useMemo35(() => {
24117
24260
  switch (step) {
24118
24261
  case 0 /* SIGNIN_PRIMARY */:
24119
24262
  case 1 /* SIGNIN_SECONDARY */:
@@ -24222,7 +24365,7 @@ var FULL_SOCIAL_LOGIN_OPTIONS = [
24222
24365
  function useEnabledSocialLogins() {
24223
24366
  const funkitConfig = useFunkitConfig();
24224
24367
  const { web2SocialLogins } = funkitConfig.loginConfig;
24225
- const enabledSocialItems = useMemo37(() => {
24368
+ const enabledSocialItems = useMemo36(() => {
24226
24369
  return FULL_SOCIAL_LOGIN_OPTIONS.filter(
24227
24370
  (oAuthItem) => !!web2SocialLogins[oAuthItem.funkitKey]
24228
24371
  );
@@ -24251,7 +24394,7 @@ function FunSignInStep({
24251
24394
  handleOauthRedirect,
24252
24395
  handleGenerateFcUri
24253
24396
  } = useFunkitWeb2Login();
24254
- const isEmailInputValid = useMemo37(() => {
24397
+ const isEmailInputValid = useMemo36(() => {
24255
24398
  return validateEmailString(emailInput);
24256
24399
  }, [emailInput]);
24257
24400
  const [emailError, setEmailError] = useState55();
@@ -24790,7 +24933,7 @@ var getTimestamp = (timestampMs) => formatTimestamp(new Date(timestampMs), {
24790
24933
  // src/components/FunCheckoutHistory/FunCheckoutStatus.tsx
24791
24934
  import { formatSecondsToCountdownForm } from "@funkit/utils";
24792
24935
  import { motion as motion11 } from "motion/react";
24793
- import React220, { useMemo as useMemo38 } from "react";
24936
+ import React220, { useMemo as useMemo37 } from "react";
24794
24937
 
24795
24938
  // src/components/FunCheckoutHistory/FunCheckoutStatus.css.ts
24796
24939
  var GradientLoadingBox = "_101aujm0";
@@ -24851,7 +24994,7 @@ function PendingCheckoutStatus({
24851
24994
  checkoutItem.latestQuote?.finalTimeEstimationMs,
24852
24995
  checkoutItem.selectedPaymentMethodInfo?.paymentMethod
24853
24996
  );
24854
- const estimatedRemainingSeconds = useMemo38(() => {
24997
+ const estimatedRemainingSeconds = useMemo37(() => {
24855
24998
  const startTimeMs = extractStartTimeMs(
24856
24999
  checkoutItem.id,
24857
25000
  activeCheckoutItem,
@@ -24977,7 +25120,7 @@ function FunCheckoutHistoryDetail({
24977
25120
  includeGenerateActionsParams
24978
25121
  ]
24979
25122
  );
24980
- const buttonProps = useMemo39(() => {
25123
+ const buttonProps = useMemo38(() => {
24981
25124
  if (!isCheckoutLoaded) {
24982
25125
  return { title: "", isDisabled: true, isLoading: true };
24983
25126
  }
@@ -25059,7 +25202,7 @@ var CheckoutAlert = ({ state, refundState, onHelp }) => {
25059
25202
 
25060
25203
  // src/components/FunCheckoutHistory/FunCheckoutHistoryHelp.tsx
25061
25204
  import { sendSupportMessage } from "@funkit/api-base";
25062
- import React224, { useEffect as useEffect43, useMemo as useMemo40, useRef as useRef19, useState as useState58 } from "react";
25205
+ import React224, { useEffect as useEffect43, useMemo as useMemo39, useRef as useRef19, useState as useState58 } from "react";
25063
25206
  import { createPortal as createPortal15 } from "react-dom";
25064
25207
 
25065
25208
  // src/components/FunInput/FunTextAreaInput.tsx
@@ -25206,7 +25349,7 @@ function FunCheckoutHistoryHelp({
25206
25349
  );
25207
25350
  const [descriptionInput, setDescriptionInput] = useState58("");
25208
25351
  const [errorMessage, setErrorMessage] = useState58();
25209
- const isEmailInputValid = useMemo40(() => {
25352
+ const isEmailInputValid = useMemo39(() => {
25210
25353
  return validateEmailString(emailInput);
25211
25354
  }, [emailInput]);
25212
25355
  const [processStage, setProcessStage] = useState58(
@@ -25395,11 +25538,11 @@ import {
25395
25538
  formatTimestamp as formatTimestamp2,
25396
25539
  isTokenEquivalent as isTokenEquivalent8
25397
25540
  } from "@funkit/utils";
25398
- import React226, { useCallback as useCallback41, useMemo as useMemo42, useRef as useRef20, useState as useState59 } from "react";
25541
+ import React226, { useCallback as useCallback41, useMemo as useMemo41, useRef as useRef20, useState as useState59 } from "react";
25399
25542
  import { createPortal as createPortal16 } from "react-dom";
25400
25543
 
25401
25544
  // src/components/FunCheckoutHistory/FunDirectExecutionStatus.tsx
25402
- import React225, { useMemo as useMemo41 } from "react";
25545
+ import React225, { useMemo as useMemo40 } from "react";
25403
25546
  function FunDirectExecutionStatus({
25404
25547
  directExecution
25405
25548
  }) {
@@ -25421,11 +25564,11 @@ function FunDirectExecutionStatus({
25421
25564
  function PendingDirectExecutionStatus({
25422
25565
  directExecution
25423
25566
  }) {
25424
- const totalSeconds = useMemo41(() => {
25567
+ const totalSeconds = useMemo40(() => {
25425
25568
  const timeEstimation = directExecution.clientMetadata.latestQuote?.finalTimeEstimationMs || 0;
25426
25569
  return Math.ceil(timeEstimation / 1e3);
25427
25570
  }, [directExecution]);
25428
- const estimatedRemainingSeconds = useMemo41(() => {
25571
+ const estimatedRemainingSeconds = useMemo40(() => {
25429
25572
  const startTimeMs = directExecution.createdTimeMs;
25430
25573
  return getTimeFromNowSeconds(startTimeMs, totalSeconds * 1e3);
25431
25574
  }, [totalSeconds, directExecution]);
@@ -25477,7 +25620,7 @@ function FunDirectExecutionHistoryDetail({
25477
25620
  includeGenerateActionsParams
25478
25621
  ]
25479
25622
  );
25480
- const buttonProps = useMemo42(() => {
25623
+ const buttonProps = useMemo41(() => {
25481
25624
  if (!isLoaded) {
25482
25625
  return void 0;
25483
25626
  }
@@ -25773,7 +25916,7 @@ function useCheckoutModalTitle(depositAddress, defaultTitle) {
25773
25916
  import { IN_PROGRESS_CHECKOUT_STATES as IN_PROGRESS_CHECKOUT_STATES2 } from "@funkit/api-base";
25774
25917
  import { formatTimestampToDate, fullMonthNames } from "@funkit/utils";
25775
25918
  import clsx20 from "clsx";
25776
- import React237, { useEffect as useEffect44, useMemo as useMemo43, useRef as useRef22, useState as useState62 } from "react";
25919
+ import React237, { useEffect as useEffect44, useMemo as useMemo42, useRef as useRef22, useState as useState62 } from "react";
25777
25920
  import { Virtuoso } from "react-virtuoso";
25778
25921
  import { useAccount as useAccount6 } from "wagmi";
25779
25922
 
@@ -26321,7 +26464,7 @@ function Home({
26321
26464
  const virtuosoDiv = virtuosoParentRef.current?.firstChild;
26322
26465
  virtuosoDiv?.classList.add(animateVirtuosoInClass);
26323
26466
  }, []);
26324
- const AssetsList = useMemo43(() => {
26467
+ const AssetsList = useMemo42(() => {
26325
26468
  if (walletAssets && !Object.keys(walletAssets).length) {
26326
26469
  return /* @__PURE__ */ React237.createElement(EmptyTabAlert, null);
26327
26470
  }
@@ -26348,7 +26491,7 @@ function Home({
26348
26491
  }
26349
26492
  ));
26350
26493
  }, [walletAssets]);
26351
- const CheckoutsList = useMemo43(() => {
26494
+ const CheckoutsList = useMemo42(() => {
26352
26495
  if (checkoutHistoryList.length === 0 && isCheckoutHistoryInited) {
26353
26496
  return /* @__PURE__ */ React237.createElement(EmptyTabAlert, null);
26354
26497
  }
@@ -26952,16 +27095,16 @@ function ChainModal({ onClose, open }) {
26952
27095
  // src/modals/CheckoutModal/FunCheckoutModal.tsx
26953
27096
  import { FUNKIT_CONNECT_SUPPORTED_CHECKOUT_CHAINS_INFO_LIST as FUNKIT_CONNECT_SUPPORTED_CHECKOUT_CHAINS_INFO_LIST3 } from "@funkit/chains";
26954
27097
  import { LogLevel, initializeRelayClient } from "@funkit/fun-relay";
26955
- import { FlagKey as FlagKey31 } from "@funkit/utils";
27098
+ import { FlagKey as FlagKey32 } from "@funkit/utils";
26956
27099
  import React253, { useRef as useRef24 } from "react";
26957
27100
 
26958
27101
  // src/components/DydxSwitchModalTab/DydxSwitchModalTab.tsx
26959
27102
  import React245, { useCallback as useCallback44 } from "react";
26960
27103
 
26961
27104
  // src/hooks/useFunkitMaxCheckoutUsdInfo.ts
26962
- import { FlagKey as FlagKey29, formatCurrencyAndStringify as formatCurrencyAndStringify15 } from "@funkit/utils";
27105
+ import { FlagKey as FlagKey30, formatCurrencyAndStringify as formatCurrencyAndStringify15 } from "@funkit/utils";
26963
27106
  var useFunkitMaxCheckoutUsdInfo = () => {
26964
- const maxCheckoutUsd = Number(useFlag(FlagKey29.MaxCheckoutUsd));
27107
+ const maxCheckoutUsd = Number(useFlag(FlagKey30.MaxCheckoutUsd));
26965
27108
  const limitText = maxCheckoutUsd === Number.MAX_VALUE ? "no" : formatCurrencyAndStringify15(maxCheckoutUsd, {
26966
27109
  decimalPrecisionForSuffix: 0,
26967
27110
  minimumSignificantDigits: 0,
@@ -27101,7 +27244,7 @@ var FunCheckoutBlocked = ({ reason }) => {
27101
27244
 
27102
27245
  // src/modals/CheckoutModal/TransferToken/CheckoutNotifications.tsx
27103
27246
  import clsx23 from "clsx";
27104
- import React252, { useEffect as useEffect46, useMemo as useMemo44, useState as useState65 } from "react";
27247
+ import React252, { useEffect as useEffect46, useMemo as useMemo43, useState as useState65 } from "react";
27105
27248
 
27106
27249
  // src/components/FunNotificationBanner/FunNotificationShowMoreButton.tsx
27107
27250
  import React247 from "react";
@@ -27149,13 +27292,13 @@ var FunNotificationShowMoreButton = ({
27149
27292
  import {
27150
27293
  getCheckoutsByUserId as getCheckoutsByUserId2
27151
27294
  } from "@funkit/api-base";
27152
- import { FlagKey as FlagKey30 } from "@funkit/utils";
27295
+ import { FlagKey as FlagKey31 } from "@funkit/utils";
27153
27296
  import { useQuery as useQuery16 } from "@tanstack/react-query";
27154
27297
  var hasCorrectPaymentMethod = (checkout, paymentMethod) => !paymentMethod || checkout.clientMetadata.selectedPaymentMethodInfo?.paymentMethod === paymentMethod;
27155
27298
  var isRecent = (checkout, timestampCutoff) => checkout.createdTimeMs > timestampCutoff;
27156
27299
  var DEFAULT_NOTIF_CUTOFF = 7 * 24 * 60 * 60 * 1e3;
27157
27300
  function useCheckoutRefreshInterval() {
27158
- const str = useFlag(FlagKey30.CheckoutNotificationsRefreshInterval);
27301
+ const str = useFlag(FlagKey31.CheckoutNotificationsRefreshInterval);
27159
27302
  return safeJSONParse(str) || { listRefresh: 50 * 1e3, itemRefresh: 5 * 1e3 };
27160
27303
  }
27161
27304
  var useRecentCheckouts = ({
@@ -28142,15 +28285,15 @@ var CheckoutNotifications = ({
28142
28285
  if (initialDirectExecutions || !directExecutions) return;
28143
28286
  setInitialDirectExecutions(directExecutions);
28144
28287
  }, [initialDirectExecutions, directExecutions]);
28145
- const displayedDirectExecutions = useMemo44(() => {
28288
+ const displayedDirectExecutions = useMemo43(() => {
28146
28289
  if (!directExecutions) return [];
28147
28290
  return getUpdatedDirectExecutions(directExecutions, initialDirectExecutions).filter(({ txHash }) => !closedNotifications.includes(txHash)).slice(0, MAX_COUNT);
28148
28291
  }, [initialDirectExecutions, directExecutions, closedNotifications]);
28149
- const displayedCheckouts = useMemo44(() => {
28292
+ const displayedCheckouts = useMemo43(() => {
28150
28293
  if (!checkouts) return [];
28151
28294
  return getUpdatedCheckouts(checkouts, initialCheckouts).filter(({ depositAddr }) => !closedNotifications.includes(depositAddr)).slice(0, MAX_COUNT);
28152
28295
  }, [initialCheckouts, checkouts, closedNotifications]);
28153
- const combinedNotifications = useMemo44(() => {
28296
+ const combinedNotifications = useMemo43(() => {
28154
28297
  return [
28155
28298
  ...displayedDirectExecutions.map(
28156
28299
  (item) => ({ ...item, isDirectExecution: true })
@@ -28160,7 +28303,7 @@ var CheckoutNotifications = ({
28160
28303
  )
28161
28304
  ].sort((a, b) => b.createdTimeMs - a.createdTimeMs);
28162
28305
  }, [displayedDirectExecutions, displayedCheckouts]);
28163
- const displayedNotifications = useMemo44(() => {
28306
+ const displayedNotifications = useMemo43(() => {
28164
28307
  return isExpanded ? combinedNotifications : combinedNotifications.slice(0, COLLAPSED_COUNT);
28165
28308
  }, [isExpanded, combinedNotifications]);
28166
28309
  const handleNotificationClose = (id) => setClosedNotifications((prev) => [...prev, id]);
@@ -28286,7 +28429,7 @@ function FunCheckoutModalInner({
28286
28429
  const hasBack = hasHistoryEntry && !disableBack;
28287
28430
  const checkoutConfig = checkoutItem.initSettings.config;
28288
28431
  const showDydxSwitch = !hasBack && modalState.step !== "checkout_complete" /* CHECKOUT_COMPLETE */;
28289
- const helpButtonUrl = useFlag(FlagKey31.HelpTutorialUrl);
28432
+ const helpButtonUrl = useFlag(FlagKey32.HelpTutorialUrl);
28290
28433
  const { onScroll, topbar, withTopDivider } = useCustomStatusAnimationAboveTopbar({
28291
28434
  depositAddress: checkoutItem.depositAddress ?? void 0,
28292
28435
  isCheckoutDetailView: modalState.step === "checkout_complete" /* CHECKOUT_COMPLETE */,
@@ -28485,7 +28628,7 @@ function ModalProvider({ children }) {
28485
28628
  return /* @__PURE__ */ React255.createElement(
28486
28629
  ModalContext.Provider,
28487
28630
  {
28488
- value: useMemo45(
28631
+ value: useMemo44(
28489
28632
  () => ({
28490
28633
  accountModalOpen,
28491
28634
  accountModalTab,
@@ -29211,7 +29354,7 @@ var FunkitWeb2Provider = ({
29211
29354
  },
29212
29355
  [privy]
29213
29356
  );
29214
- const web2UserInfo = useMemo46(() => {
29357
+ const web2UserInfo = useMemo45(() => {
29215
29358
  if (!loggedInUser || !loggedInUser?.linked_accounts || !loggedInUser?.linked_accounts?.length) {
29216
29359
  return PLACEHOLDER_FUNKIT_USER_INFO;
29217
29360
  }
@@ -30119,9 +30262,9 @@ function cssStringFromTheme(theme, options = {}) {
30119
30262
  }
30120
30263
 
30121
30264
  // src/hooks/useIsFunkitCheckoutActivated.ts
30122
- import { FlagKey as FlagKey32 } from "@funkit/utils";
30265
+ import { FlagKey as FlagKey33 } from "@funkit/utils";
30123
30266
  var useIsFunkitCheckoutActivated = () => {
30124
- const isCheckoutActivated = useFlag(FlagKey32.IsCheckoutActivated);
30267
+ const isCheckoutActivated = useFlag(FlagKey33.IsCheckoutActivated);
30125
30268
  return {
30126
30269
  isActivated: isCheckoutActivated
30127
30270
  };
@@ -30226,7 +30369,7 @@ function setFunkitConnectVersion({ version }) {
30226
30369
  localStorage.setItem(storageKey5, version);
30227
30370
  }
30228
30371
  function getCurrentSdkVersion() {
30229
- return "5.5.5";
30372
+ return "5.5.7";
30230
30373
  }
30231
30374
  function useFingerprint() {
30232
30375
  const fingerprint = useCallback49(() => {