@funkit/connect 5.4.0 → 5.4.1

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 (51) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/dist/components/FunCheckoutHistory/FunDirectExecutionHistoryDetail.d.ts +4 -0
  3. package/dist/hooks/queries/useClientId.d.ts +3 -0
  4. package/dist/hooks/queries/useRecentCheckouts.d.ts +1 -0
  5. package/dist/hooks/useCheckoutDirectExecutionHistory.d.ts +4 -4
  6. package/dist/hooks/useDirectExecutionInfoPolling.d.ts +4 -4
  7. package/dist/hooks/usePaymentSources.d.ts +2 -2
  8. package/dist/index.js +445 -154
  9. package/dist/modals/CheckoutModal/TransferToken/DirectExecutionNotification.d.ts +10 -0
  10. package/dist/providers/FunkitConfigContext.d.ts +2 -0
  11. package/dist/utils/customer.d.ts +6 -0
  12. package/dist/utils/directExecution.d.ts +4 -0
  13. package/dist/utils/purifyCheckoutHistoryItem.d.ts +3 -1
  14. package/dist/wallets/walletConnectors/bifrostWallet/bifrostWallet.js +2 -2
  15. package/dist/wallets/walletConnectors/bitgetWallet/bitgetWallet.js +2 -2
  16. package/dist/wallets/walletConnectors/bybitWallet/bybitWallet.js +2 -2
  17. package/dist/wallets/walletConnectors/chunk-25VW5TZP.js +92 -0
  18. package/dist/wallets/walletConnectors/chunk-3NC26XLM.js +92 -0
  19. package/dist/wallets/walletConnectors/chunk-3U3BMEH5.js +94 -0
  20. package/dist/wallets/walletConnectors/chunk-4UM4GTKZ.js +103 -0
  21. package/dist/wallets/walletConnectors/chunk-545L7Y4M.js +69 -0
  22. package/dist/wallets/walletConnectors/chunk-6LPM6LUQ.js +110 -0
  23. package/dist/wallets/walletConnectors/chunk-7GSNBOD3.js +99 -0
  24. package/dist/wallets/walletConnectors/chunk-ETTNDQQG.js +100 -0
  25. package/dist/wallets/walletConnectors/chunk-FRGSRLTS.js +93 -0
  26. package/dist/wallets/walletConnectors/chunk-HKV7EMYZ.js +96 -0
  27. package/dist/wallets/walletConnectors/chunk-IPOC2VJX.js +106 -0
  28. package/dist/wallets/walletConnectors/chunk-JXP2QPW7.js +95 -0
  29. package/dist/wallets/walletConnectors/chunk-KFFJPS5R.js +96 -0
  30. package/dist/wallets/walletConnectors/chunk-LEXSM5KI.js +87 -0
  31. package/dist/wallets/walletConnectors/chunk-MOOBCMMB.js +70 -0
  32. package/dist/wallets/walletConnectors/chunk-N2NIIUW6.js +146 -0
  33. package/dist/wallets/walletConnectors/chunk-W5O4YSZN.js +98 -0
  34. package/dist/wallets/walletConnectors/chunk-XYBEMO3C.js +66 -0
  35. package/dist/wallets/walletConnectors/clvWallet/clvWallet.js +2 -2
  36. package/dist/wallets/walletConnectors/coin98Wallet/coin98Wallet.js +2 -2
  37. package/dist/wallets/walletConnectors/coreWallet/coreWallet.js +2 -2
  38. package/dist/wallets/walletConnectors/foxWallet/foxWallet.js +2 -2
  39. package/dist/wallets/walletConnectors/frontierWallet/frontierWallet.js +2 -2
  40. package/dist/wallets/walletConnectors/gateWallet/gateWallet.js +2 -2
  41. package/dist/wallets/walletConnectors/index.js +62 -62
  42. package/dist/wallets/walletConnectors/metaMaskWallet/metaMaskWallet.js +2 -2
  43. package/dist/wallets/walletConnectors/okxWallet/okxWallet.js +2 -2
  44. package/dist/wallets/walletConnectors/rainbowWallet/rainbowWallet.js +2 -2
  45. package/dist/wallets/walletConnectors/roninWallet/roninWallet.js +2 -2
  46. package/dist/wallets/walletConnectors/safepalWallet/safepalWallet.js +2 -2
  47. package/dist/wallets/walletConnectors/subWallet/subWallet.js +2 -2
  48. package/dist/wallets/walletConnectors/tokenPocketWallet/tokenPocketWallet.js +2 -2
  49. package/dist/wallets/walletConnectors/trustWallet/trustWallet.js +2 -2
  50. package/dist/wallets/walletConnectors/zerionWallet/zerionWallet.js +2 -2
  51. package/package.json +5 -5
package/dist/index.js CHANGED
@@ -400,7 +400,7 @@ function Avatar({ address, imageUrl, loading, size }) {
400
400
  }
401
401
 
402
402
  // src/components/ConnectButton/ConnectButton.tsx
403
- import React251, { useEffect as useEffect49, useState as useState69 } from "react";
403
+ import React252, { useEffect as useEffect49, useState as useState69 } from "react";
404
404
 
405
405
  // src/css/touchableStyles.css.ts
406
406
  var active = { shrink: "_7rkubb8", shrinkSm: "_7rkubb9" };
@@ -504,7 +504,7 @@ import PrivyJS, {
504
504
  getUserEmbeddedWallet,
505
505
  LocalStorage
506
506
  } from "@privy-io/js-sdk-core";
507
- import React248, {
507
+ import React249, {
508
508
  createContext as createContext18,
509
509
  useCallback as useCallback47,
510
510
  useContext as useContext18,
@@ -1023,7 +1023,7 @@ var useFunkitConnectChainsById = () => groupChainsById(useFunkitConnectChains())
1023
1023
  var useInitialChainId = () => useContext4(FunkitConnectChainContext).initialChainId;
1024
1024
 
1025
1025
  // src/providers/ModalContext.tsx
1026
- import React247, {
1026
+ import React248, {
1027
1027
  createContext as createContext17,
1028
1028
  useCallback as useCallback46,
1029
1029
  useContext as useContext17,
@@ -3141,10 +3141,10 @@ var flagConfig = {
3141
3141
  {
3142
3142
  key: "apiKey",
3143
3143
  type: "isAnyOf",
3144
- values: [POLYMARKET_API_KEY2]
3144
+ values: [POLYMARKET_API_KEY2, KATANA_API_KEY2]
3145
3145
  }
3146
3146
  ],
3147
- // Turn off geoblock for PM on our end. PM will handle the conditional display of the Deposit button.
3147
+ // Turn off geoblock for PM & Katana on our end. PM & Katana will handle the conditional display of the Deposit button.
3148
3148
  value: ""
3149
3149
  }
3150
3150
  ]
@@ -3167,7 +3167,7 @@ var flagConfig = {
3167
3167
  {
3168
3168
  key: "apiKey",
3169
3169
  type: "isAnyOf",
3170
- values: [DYDX_API_KEY2]
3170
+ values: [DYDX_API_KEY2, KATANA_API_KEY2]
3171
3171
  }
3172
3172
  ],
3173
3173
  value: true
@@ -3441,7 +3441,8 @@ var flagConfig = {
3441
3441
  8453: ["*"],
3442
3442
  42161: ["*"],
3443
3443
  10: ["*"],
3444
- 56: ["*"]
3444
+ 56: ["*"],
3445
+ 747474: ["*"]
3445
3446
  })
3446
3447
  },
3447
3448
  [FlagKey.RelayBypassTargetChainsAndAssets]: {
@@ -6430,23 +6431,25 @@ import {
6430
6431
  import { useMemo as useMemo7 } from "react";
6431
6432
 
6432
6433
  // src/hooks/useDirectExecutionInfoPolling.ts
6433
- import { getDirectExecutionByTxHash } from "@funkit/api-base";
6434
+ import {
6435
+ getDirectExecutionByTxHash
6436
+ } from "@funkit/api-base";
6434
6437
  import { RELAY_TERMINAL_STATUSES } from "@funkit/fun-relay";
6435
6438
  import { useQuery as useQuery2 } from "@tanstack/react-query";
6436
6439
  var RELAY_FETCH_INTERVAL = 1500;
6437
6440
  var logPrefix = "useDirectExecutionInfoPolling";
6438
6441
  function useDirectExecutionInfoPolling({
6439
- txHash
6442
+ initDirectExecution
6440
6443
  }) {
6441
6444
  const { apiKey } = useFunkitConfig();
6442
6445
  const { data: directExecution, isLoading } = useQuery2({
6443
- queryKey: [logPrefix, txHash],
6446
+ queryKey: [logPrefix, initDirectExecution?.txHash],
6444
6447
  queryFn: async () => {
6445
6448
  try {
6446
6449
  const data = await getDirectExecutionByTxHash({
6447
6450
  apiKey,
6448
6451
  logger,
6449
- txHash
6452
+ txHash: initDirectExecution?.txHash
6450
6453
  // query is disabled if txHash not present
6451
6454
  });
6452
6455
  logger.log(`${logPrefix}:response`, data);
@@ -6467,7 +6470,8 @@ function useDirectExecutionInfoPolling({
6467
6470
  }
6468
6471
  return RELAY_FETCH_INTERVAL;
6469
6472
  },
6470
- enabled: !!txHash
6473
+ initialData: initDirectExecution,
6474
+ enabled: !!initDirectExecution?.txHash
6471
6475
  });
6472
6476
  return {
6473
6477
  directExecution,
@@ -6488,9 +6492,11 @@ function mapRelayExecutionStatusToCheckoutState(status) {
6488
6492
  }
6489
6493
  }
6490
6494
  function useCheckoutDirectExecutionHistory({
6491
- txHash
6495
+ initDirectExecution
6492
6496
  }) {
6493
- const { directExecution } = useDirectExecutionInfoPolling({ txHash });
6497
+ const { directExecution } = useDirectExecutionInfoPolling({
6498
+ initDirectExecution
6499
+ });
6494
6500
  const status = directExecution?.listenerInfo?.status ?? RelayExecutionStatus.PENDING;
6495
6501
  const state = useMemo7(() => {
6496
6502
  return mapRelayExecutionStatusToCheckoutState(status);
@@ -6510,17 +6516,27 @@ function useCheckoutDirectExecutionHistory({
6510
6516
  isRefunded: refundState === CheckoutRefundState.REFUNDED,
6511
6517
  isCompleted: state === CheckoutState2.COMPLETED,
6512
6518
  isFailed: state === CheckoutState2.CHECKOUT_ERROR,
6513
- isDelayed: isDelayed2
6519
+ isDelayed: isDelayed2,
6520
+ isProcessing: state === CheckoutState2.PENDING_RECEIVAL
6514
6521
  };
6515
6522
  }
6516
6523
 
6524
+ // src/utils/directExecution.ts
6525
+ function getDirectExecutionUpdatedTimeMs({
6526
+ directExecution
6527
+ }) {
6528
+ const updatedAt = directExecution?.listenerInfo?.relayExecutionRequestDetails?.updatedAt || directExecution?.listenerInfo?.time || // Fallback to 0 if updatedAt is not defined. Not ideal but should really not happen unless its a really old test direct execution record
6529
+ directExecution?.updatedTimeMs || 0;
6530
+ return new Date(updatedAt).getTime();
6531
+ }
6532
+
6517
6533
  // src/utils/purifyCheckoutHistoryItem.ts
6518
6534
  var purifyCheckoutHistoryItem = (item) => {
6519
6535
  if ("depositAddr" in item) {
6520
6536
  return {
6521
- depositAddr: item.depositAddr,
6522
6537
  directExecution: false,
6523
6538
  id: item.depositAddr,
6539
+ depositAddr: item.depositAddr,
6524
6540
  fromAmountBaseUnit: item.fromAmountBaseUnit,
6525
6541
  fromChainId: item.fromChainId,
6526
6542
  fromTokenAddress: item.fromTokenAddress,
@@ -6528,7 +6544,9 @@ var purifyCheckoutHistoryItem = (item) => {
6528
6544
  toChainId: item.toChainId,
6529
6545
  toTokenAddress: item.toTokenAddress,
6530
6546
  toAmountBaseUnit: item.toAmountBaseUnit,
6531
- createdTimeMs: item.createdTimeMs
6547
+ createdTimeMs: item.createdTimeMs,
6548
+ updatedTimeMs: item.lastUpdatedTimeMs,
6549
+ additionalActions: item?.clientMetadata?.evaluatedActionsParams ?? []
6532
6550
  };
6533
6551
  }
6534
6552
  return {
@@ -6544,7 +6562,9 @@ var purifyCheckoutHistoryItem = (item) => {
6544
6562
  toTokenAddress: item.toTokenAddress,
6545
6563
  toAmountBaseUnit: item.toAmountBaseUnit,
6546
6564
  txHash: item.txHash,
6547
- createdTimeMs: item.createdTimeMs
6565
+ createdTimeMs: item.createdTimeMs,
6566
+ updatedTimeMs: getDirectExecutionUpdatedTimeMs({ directExecution: item }),
6567
+ additionalActions: item?.clientMetadata?.evaluatedActionsParams ?? []
6548
6568
  };
6549
6569
  };
6550
6570
 
@@ -6809,7 +6829,7 @@ function getCheckoutCompletionTime(checkout) {
6809
6829
 
6810
6830
  // src/components/FunCheckoutHistory/FunCheckoutHistoryDetail.tsx
6811
6831
  import React214, { useCallback as useCallback40, useMemo as useMemo36, useState as useState57 } from "react";
6812
- import { createPortal as createPortal11 } from "react-dom";
6832
+ import { createPortal as createPortal13 } from "react-dom";
6813
6833
 
6814
6834
  // src/components/HelpAlert/HelpAlert.tsx
6815
6835
  import React64 from "react";
@@ -13819,6 +13839,12 @@ function PaymentAmountSummary({
13819
13839
  quote.baseQuote.estSubtotalUsd + Number.parseFloat(quote.finalPaymentFeeUsd) - Number.parseFloat(quote.finalSpreadUsd)
13820
13840
  );
13821
13841
  }, [quote]);
13842
+ const receiveTokenUsdAmount = useMemo17(() => {
13843
+ if (!quote) return void 0;
13844
+ return formatCurrencyAndStringify2(
13845
+ Number.parseFloat(quote.finalTotalUsd) - Number.parseFloat(quote.finalPaymentFeeUsd) - Number.parseFloat(quote.finalSpreadUsd)
13846
+ );
13847
+ }, [quote]);
13822
13848
  const targetAssetTicker = checkoutConfig?.targetAssetTicker;
13823
13849
  const targetTokenAmount = checkoutConfig?.targetAssetAmount ?? 0;
13824
13850
  const targetItemName = (targetAssetTicker || checkoutConfig?.checkoutItemTitle) ?? "";
@@ -13869,6 +13895,7 @@ function PaymentAmountSummary({
13869
13895
  label: receiveAmountLabel,
13870
13896
  paymentTokenAmount: targetTokenAmount,
13871
13897
  valueSymbol: targetItemName,
13898
+ paymentUsdAmount: uiCustomizations?.confirmationScreen?.showReceiveAmountUsd ? receiveTokenUsdAmount : void 0,
13872
13899
  icon: /* @__PURE__ */ React122.createElement(
13873
13900
  FunAssetAvatar,
13874
13901
  {
@@ -13880,7 +13907,7 @@ function PaymentAmountSummary({
13880
13907
  assetName: "checkout-asset"
13881
13908
  }
13882
13909
  ),
13883
- isLoading: false
13910
+ isLoading: uiCustomizations?.confirmationScreen?.showReceiveAmountUsd ? isLoading : false
13884
13911
  }
13885
13912
  ));
13886
13913
  }
@@ -20140,6 +20167,7 @@ function FunSelectBrokerage({
20140
20167
  }
20141
20168
 
20142
20169
  // src/modals/CheckoutModal/SelectBrokerage.tsx
20170
+ import { createPortal as createPortal10 } from "react-dom";
20143
20171
  var SelectBrokerageInfo = {
20144
20172
  Component: SelectBrokerage,
20145
20173
  onNext(state, payload) {
@@ -20198,7 +20226,8 @@ function SelectBrokerage({
20198
20226
  });
20199
20227
  }
20200
20228
  };
20201
- return /* @__PURE__ */ React178.createElement(Box, { display: "flex", flexDirection: "column", gap: VERTICAL_SECTION_GAP }, /* @__PURE__ */ React178.createElement(
20229
+ const bottomSectionRef = useBottomSectionRef();
20230
+ return /* @__PURE__ */ React178.createElement(React178.Fragment, null, /* @__PURE__ */ React178.createElement(Box, { display: "flex", flexDirection: "column", gap: VERTICAL_SECTION_GAP }, /* @__PURE__ */ React178.createElement(
20202
20231
  FunInput,
20203
20232
  {
20204
20233
  placeholder: "Search exchanges",
@@ -20213,16 +20242,26 @@ function SelectBrokerage({
20213
20242
  options: filteredOptions,
20214
20243
  selectedValue: selectedExchange ?? ""
20215
20244
  }
20216
- )));
20245
+ ))), bottomSectionRef && createPortal10(/* @__PURE__ */ React178.createElement(Dialog.BottomBar, null), bottomSectionRef));
20217
20246
  }
20218
20247
 
20219
20248
  // src/modals/CheckoutModal/SourceChange/SourceChange.tsx
20220
20249
  import { BridgeCustomerStatus as BridgeCustomerStatus6 } from "@funkit/api-base";
20221
20250
  import React179, { useEffect as useEffect35, useState as useState45 } from "react";
20222
- import { createPortal as createPortal10 } from "react-dom";
20251
+ import { createPortal as createPortal11 } from "react-dom";
20223
20252
 
20224
20253
  // src/hooks/usePaymentSources.ts
20225
20254
  import { FlagKey as FlagKey22, isNotNullish as isNotNullish9 } from "@funkit/utils";
20255
+
20256
+ // src/utils/customer.ts
20257
+ function isKatanaEarnFlow({
20258
+ apiKey,
20259
+ checkoutConfig
20260
+ }) {
20261
+ return isKatanaCustomer(apiKey) && !!checkoutConfig && isCheckoutPostActionRequired(checkoutConfig);
20262
+ }
20263
+
20264
+ // src/hooks/usePaymentSources.ts
20226
20265
  function useRemainingMeshExchangeConnections(selected) {
20227
20266
  const { getActiveConnection } = useFunkitMesh();
20228
20267
  const supportedExchanges = useSupportedExchanges();
@@ -20247,17 +20286,39 @@ function useRemainingMeshExchangeConnections(selected) {
20247
20286
  )
20248
20287
  };
20249
20288
  }
20250
- var usePaymentSources = (paymentMethodInfo, targetChainId) => {
20289
+ function usePaymentMethodEnablement({
20290
+ checkoutConfig
20291
+ }) {
20292
+ const { apiKey, uiCustomizations } = useFunkitConfig();
20293
+ const isTokenTransferFlagEnabled = useFlag(FlagKey22.EnableTokenTransfer);
20294
+ const isFiatFlagEnabled = useFiatEnabled();
20295
+ const isCardFlagEnabled = useFlag(FlagKey22.EnableCard);
20296
+ const isBrokerageFlagEnabled = useFlag(FlagKey22.EnableBrokerage);
20297
+ const isKatanaEarnFlowAction = isKatanaEarnFlow({ apiKey, checkoutConfig });
20298
+ const isFiatEnabled = isFiatFlagEnabled && !isKatanaEarnFlowAction;
20299
+ const isTokenTransferEnabled = isTokenTransferFlagEnabled && !isKatanaEarnFlowAction;
20300
+ const isBrokerageEnabled = isBrokerageFlagEnabled && !isKatanaEarnFlowAction;
20301
+ const isCardEnabled = isCardFlagEnabled && !isKatanaEarnFlowAction && (uiCustomizations?.paymentMethods?.isCardEnabled ?? true);
20302
+ return {
20303
+ isFiatEnabled,
20304
+ isTokenTransferEnabled,
20305
+ isBrokerageEnabled,
20306
+ isCardEnabled
20307
+ };
20308
+ }
20309
+ var usePaymentSources = (paymentMethodInfo, targetChainId, checkoutConfig) => {
20251
20310
  const { activeConnections } = useRemainingMeshExchangeConnections(paymentMethodInfo);
20252
20311
  const { isUserLoggedIn, walletAddress } = useGeneralWallet();
20253
20312
  const { data: allFiatAccounts } = useVirtualFiatAccounts();
20254
20313
  const matchingFiatAccount = useMatchingVirtualFiatAccount(allFiatAccounts);
20255
20314
  const { hasUsableBalance } = useWalletAssetHoldings(targetChainId);
20256
- const { apiKey, uiCustomizations } = useFunkitConfig();
20257
- const isTokenTransferEnabled = useFlag(FlagKey22.EnableTokenTransfer);
20258
- const isFiatEnabled = useFiatEnabled();
20259
- const isCardFlagEnabled = useFlag(FlagKey22.EnableCard);
20260
- const isBrokerageEnabled = useFlag(FlagKey22.EnableBrokerage);
20315
+ const { apiKey } = useFunkitConfig();
20316
+ const {
20317
+ isBrokerageEnabled,
20318
+ isFiatEnabled,
20319
+ isTokenTransferEnabled,
20320
+ isCardEnabled
20321
+ } = usePaymentMethodEnablement({ checkoutConfig });
20261
20322
  const accountPaymentMethodInfo = createPaymentMethodInfo({
20262
20323
  paymentMethod: "balance" /* ACCOUNT_BALANCE */,
20263
20324
  walletAddress
@@ -20274,7 +20335,6 @@ var usePaymentSources = (paymentMethodInfo, targetChainId) => {
20274
20335
  ...isBrokerageEnabled ? activeConnections : [],
20275
20336
  virtualBankPaymentMethodInfo
20276
20337
  ].filter(isNotNullish9);
20277
- const isCardEnabled = isCardFlagEnabled && (uiCustomizations?.paymentMethods?.isCardEnabled ?? true);
20278
20338
  const ignoreFallback = isUserLoggedIn && !hasUsableBalance;
20279
20339
  const fallback2 = connected.length === 0 && !ignoreFallback ? isTokenTransferEnabled ? ["token_transfer" /* TOKEN_TRANSFER */] : isCardEnabled ? ["card" /* CARD */] : isDydxCustomer(apiKey) ? [] : ["balance" /* ACCOUNT_BALANCE */] : [];
20280
20340
  const isTokenInNewSources = !fallback2.includes("token_transfer" /* TOKEN_TRANSFER */) && isTokenTransferEnabled;
@@ -20618,7 +20678,8 @@ function SourceChange({
20618
20678
  };
20619
20679
  const { preferred, moreSources } = usePaymentSources(
20620
20680
  paymentMethodInfo,
20621
- targetChainId
20681
+ targetChainId,
20682
+ checkoutItem?.initSettings.config
20622
20683
  );
20623
20684
  function renderSource(source) {
20624
20685
  if (typeof source === "object") {
@@ -20654,11 +20715,11 @@ function SourceChange({
20654
20715
  marginBottom: "8",
20655
20716
  borderColor: "selectedOptionBorder"
20656
20717
  }
20657
- ), moreSources.map(renderSource)), bottomSectionRef && !hasAutoContinue && createPortal10(
20718
+ ), moreSources.map(renderSource)), bottomSectionRef && createPortal11(
20658
20719
  /* @__PURE__ */ React179.createElement(
20659
20720
  Dialog.BottomBar,
20660
20721
  {
20661
- actionButtonProps: {
20722
+ actionButtonProps: hasAutoContinue ? void 0 : {
20662
20723
  title: "Continue",
20663
20724
  onClick: () => {
20664
20725
  if (connectedSource === null && !!newSource) {
@@ -20679,6 +20740,7 @@ function SourceChange({
20679
20740
  import { FlagKey as FlagKey25 } from "@funkit/utils";
20680
20741
  import { motion as motion8, useAnimationControls as useAnimationControls3 } from "motion/react";
20681
20742
  import React193, { useEffect as useEffect36, useRef as useRef15, useState as useState48 } from "react";
20743
+ import { createPortal as createPortal12 } from "react-dom";
20682
20744
  import { polygon as polygon6 } from "viem/chains";
20683
20745
 
20684
20746
  // src/components/CopyAddress/CopyInputDisplayedAddress.tsx
@@ -21555,9 +21617,13 @@ function TransferToken({
21555
21617
  }
21556
21618
  };
21557
21619
  const isLoadingDepositAddress = depositAddress === void 0;
21620
+ const defaultCandidate = checkoutConfig?.dynamicTargetAssetCandidates?.find(
21621
+ (candidate) => candidate.isDefault
21622
+ );
21623
+ const bottomSectionRef = useBottomSectionRef();
21558
21624
  return (
21559
21625
  // This ID is used in the DialogContent css to set the height of the modal
21560
- /* @__PURE__ */ React193.createElement(Box, { id: "token-transfer-page" }, /* @__PURE__ */ React193.createElement(
21626
+ /* @__PURE__ */ React193.createElement(React193.Fragment, null, /* @__PURE__ */ React193.createElement(Box, { id: "token-transfer-page" }, /* @__PURE__ */ React193.createElement(
21561
21627
  Box,
21562
21628
  {
21563
21629
  display: "flex",
@@ -21576,6 +21642,32 @@ function TransferToken({
21576
21642
  onClick: () => onNext({})
21577
21643
  }
21578
21644
  )),
21645
+ defaultCandidate && /* @__PURE__ */ React193.createElement(
21646
+ Box,
21647
+ {
21648
+ display: "flex",
21649
+ alignItems: "center",
21650
+ justifyContent: "space-between",
21651
+ width: "full",
21652
+ borderColor: "mediumStroke",
21653
+ borderWidth: "1",
21654
+ borderRadius: BORDER_RADIUS,
21655
+ borderStyle: "solid",
21656
+ paddingY: "8",
21657
+ paddingX: HORIZONTAL_OUTER_PADDING_X
21658
+ },
21659
+ /* @__PURE__ */ React193.createElement(Text, { size: "12", color: "secondaryText" }, "Receive token"),
21660
+ /* @__PURE__ */ React193.createElement(Box, { display: "flex", alignItems: "center", gap: "8" }, /* @__PURE__ */ React193.createElement(
21661
+ FunAssetAvatar,
21662
+ {
21663
+ assetIconSize: "16",
21664
+ assetName: "receive-token-asset",
21665
+ assetSrc: getTokenIconUrl(defaultCandidate.tokenSymbol),
21666
+ chainId: defaultCandidate.tokenChainId,
21667
+ largeChainIcon: true
21668
+ }
21669
+ ), /* @__PURE__ */ React193.createElement(Text, { size: "12", weight: "medium" }, defaultCandidate.tokenSymbol))
21670
+ ),
21579
21671
  /* @__PURE__ */ React193.createElement(Box, { width: "full", display: "flex", gap: "12" }, /* @__PURE__ */ React193.createElement(Box, { width: "full", display: "flex", flexDirection: "column", gap: "4" }, /* @__PURE__ */ React193.createElement(Text, { size: "12", weight: "medium" }, "Supported token"), /* @__PURE__ */ React193.createElement(
21580
21672
  TokenDropdown,
21581
21673
  {
@@ -21716,7 +21808,7 @@ function TransferToken({
21716
21808
  maxSlippage
21717
21809
  }
21718
21810
  ))
21719
- ))
21811
+ )), bottomSectionRef && createPortal12(/* @__PURE__ */ React193.createElement(Dialog.BottomBar, null), bottomSectionRef))
21720
21812
  );
21721
21813
  }
21722
21814
 
@@ -23698,7 +23790,7 @@ function FunCheckoutHistoryDetail({
23698
23790
  refundState: checkoutHistoryInfo.refundState,
23699
23791
  onHelp
23700
23792
  }
23701
- )), bottomSectionRef && createPortal11(
23793
+ )), bottomSectionRef && createPortal13(
23702
23794
  /* @__PURE__ */ React214.createElement(
23703
23795
  Dialog.BottomBar,
23704
23796
  {
@@ -23739,7 +23831,7 @@ var CheckoutAlert = ({ state, refundState, onHelp }) => {
23739
23831
  // src/components/FunCheckoutHistory/FunCheckoutHistoryHelp.tsx
23740
23832
  import { sendSupportMessage } from "@funkit/api-base";
23741
23833
  import React217, { useEffect as useEffect42, useMemo as useMemo37, useRef as useRef19, useState as useState58 } from "react";
23742
- import { createPortal as createPortal12 } from "react-dom";
23834
+ import { createPortal as createPortal14 } from "react-dom";
23743
23835
 
23744
23836
  // src/components/FunInput/FunTextAreaInput.tsx
23745
23837
  import React215 from "react";
@@ -24043,7 +24135,7 @@ function FunCheckoutHistoryHelp({
24043
24135
  },
24044
24136
  openDropdownBackgroundColor: "inputBackground"
24045
24137
  }
24046
- ))), bottomSectionRef && createPortal12(
24138
+ ))), bottomSectionRef && createPortal14(
24047
24139
  /* @__PURE__ */ React217.createElement(
24048
24140
  Dialog.BottomBar,
24049
24141
  {
@@ -24071,17 +24163,18 @@ import { DirectExecutionType as DirectExecutionType4 } from "@funkit/api-base";
24071
24163
  import {
24072
24164
  formatAddress as formatAddress7,
24073
24165
  formatCryptoAndStringify as formatCryptoAndStringify5,
24166
+ formatTimestamp as formatTimestamp2,
24074
24167
  isTokenEquivalent as isTokenEquivalent8
24075
24168
  } from "@funkit/utils";
24076
24169
  import React219, { useCallback as useCallback41, useMemo as useMemo39 } from "react";
24077
- import { createPortal as createPortal13 } from "react-dom";
24170
+ import { createPortal as createPortal15 } from "react-dom";
24078
24171
 
24079
24172
  // src/components/FunCheckoutHistory/FunDirectExecutionStatus.tsx
24080
24173
  import React218, { useMemo as useMemo38 } from "react";
24081
24174
  function FunDirectExecutionStatus({
24082
24175
  directExecution
24083
24176
  }) {
24084
- const { isCompleted, isDelayed: isDelayed2, isFailed, isRefunded } = useCheckoutDirectExecutionHistory({ txHash: directExecution?.txHash });
24177
+ const { isCompleted, isDelayed: isDelayed2, isFailed, isRefunded } = useCheckoutDirectExecutionHistory({ initDirectExecution: directExecution });
24085
24178
  if (directExecution === void 0) {
24086
24179
  return /* @__PURE__ */ React218.createElement(Box, { className: GradientLoadingBox }, /* @__PURE__ */ React218.createElement(FunSkeletonCircle, { size: "40" }));
24087
24180
  }
@@ -24122,7 +24215,7 @@ function FunDirectExecutionStatusTagLoaded({
24122
24215
  directExecution
24123
24216
  }) {
24124
24217
  const { state, refundState, isDelayed: isDelayed2 } = useCheckoutDirectExecutionHistory({
24125
- txHash: directExecution.txHash
24218
+ initDirectExecution: directExecution
24126
24219
  });
24127
24220
  return /* @__PURE__ */ React219.createElement(StatusTag, { state, refundState, isDelayed: isDelayed2 });
24128
24221
  }
@@ -24220,7 +24313,7 @@ function FunDirectExecutionHistoryDetail({
24220
24313
  {
24221
24314
  onHelp: () => window.open(CONTACT_US_LINK, "_blank", "noopener")
24222
24315
  }
24223
- )), bottomSectionRef && createPortal13(
24316
+ )), bottomSectionRef && createPortal15(
24224
24317
  /* @__PURE__ */ React219.createElement(
24225
24318
  Dialog.BottomBar,
24226
24319
  {
@@ -24231,6 +24324,27 @@ function FunDirectExecutionHistoryDetail({
24231
24324
  bottomSectionRef
24232
24325
  ));
24233
24326
  }
24327
+ var getTimestamp2 = (timestamp) => formatTimestamp2(new Date(timestamp), {
24328
+ hours: "24hr",
24329
+ year: "none",
24330
+ month: "short"
24331
+ });
24332
+ function DirectExecutionOrderDetailSection({
24333
+ directExecution,
24334
+ showRelayLink
24335
+ }) {
24336
+ const { isProcessing, isFailed, isRefunded } = useCheckoutDirectExecutionHistory({ initDirectExecution: directExecution });
24337
+ const { txHash, createdTimeMs, fromChainId } = directExecution;
24338
+ const updateTime = getDirectExecutionUpdatedTimeMs({ directExecution });
24339
+ return /* @__PURE__ */ React219.createElement(Box, { display: "flex", flexDirection: "column", gap: "12" }, /* @__PURE__ */ React219.createElement(FunTxSummaryLineItem, null, /* @__PURE__ */ React219.createElement(Text, { color: "tertiaryText", size: "12" }, "Deposit tx"), /* @__PURE__ */ React219.createElement(Box, { display: "flex", alignItems: "center", gap: "4" }, /* @__PURE__ */ React219.createElement(Text, { color: "tertiaryText", size: "12" }, formatAddress7(txHash)), /* @__PURE__ */ React219.createElement(
24340
+ TransactionRedirectButton,
24341
+ {
24342
+ chainId: fromChainId,
24343
+ txHash,
24344
+ customRedirectUrl: showRelayLink ? `${RELAY_TRANSACTION_PAGE_URL}${txHash}` : void 0
24345
+ }
24346
+ ))), /* @__PURE__ */ React219.createElement(FunTxSummaryLineItem, null, /* @__PURE__ */ React219.createElement(Text, { color: "tertiaryText", size: "12" }, "Order submitted"), /* @__PURE__ */ React219.createElement(Text, { color: "tertiaryText", size: "12" }, getTimestamp2(createdTimeMs))), !isProcessing && updateTime && /* @__PURE__ */ React219.createElement(FunTxSummaryLineItem, null, /* @__PURE__ */ React219.createElement(Text, { color: "tertiaryText", size: "12" }, `Order ${isFailed ? "failed" : isRefunded ? "refunded" : "filled"}`), /* @__PURE__ */ React219.createElement(Text, { color: "tertiaryText", size: "12" }, getTimestamp2(updateTime))));
24347
+ }
24234
24348
 
24235
24349
  // src/components/FunCheckoutHistory/FunCheckoutHistoryContent.tsx
24236
24350
  function FunCheckoutHistoryContent({
@@ -24403,7 +24517,7 @@ var animateVirtuosoInClass = "_26hmws5";
24403
24517
  var tabLabelStyles = "_26hmws6";
24404
24518
 
24405
24519
  // src/modals/ProfileDetails/FunProfileViews/Home/HomeCheckoutDisplayRow.tsx
24406
- import { formatTimestamp as formatTimestamp2 } from "@funkit/utils";
24520
+ import { formatTimestamp as formatTimestamp3 } from "@funkit/utils";
24407
24521
  import {
24408
24522
  formatCurrencyAndStringify as formatCurrencyAndStringify8,
24409
24523
  isMobile as isMobile9,
@@ -24565,7 +24679,7 @@ var HomeCheckoutDisplayRow = ({
24565
24679
  /* @__PURE__ */ React225.createElement(Text, { size: TEXT_SIZE_MEDIUM2, weight: "medium", color: "primaryText" }, `${formatCurrencyAndStringify8(
24566
24680
  checkoutClientMetadata?.finalDollarValue || 0
24567
24681
  )} USD`)
24568
- ), /* @__PURE__ */ React225.createElement(Box, { display: "flex", justifyContent: "space-between", gap: "16" }, /* @__PURE__ */ React225.createElement(Text, { size: TEXT_SIZE_SMALL2, color: "secondaryText" }, formatTimestamp2(new Date(checkoutHistoryItem.createdTimeMs), {
24682
+ ), /* @__PURE__ */ React225.createElement(Box, { display: "flex", justifyContent: "space-between", gap: "16" }, /* @__PURE__ */ React225.createElement(Text, { size: TEXT_SIZE_SMALL2, color: "secondaryText" }, formatTimestamp3(new Date(checkoutHistoryItem.createdTimeMs), {
24569
24683
  year: "none",
24570
24684
  seconds: "none",
24571
24685
  month: "short"
@@ -25541,7 +25655,7 @@ function ChainModal({ onClose, open }) {
25541
25655
  import { FUNKIT_CONNECT_SUPPORTED_CHECKOUT_CHAINS_INFO_LIST as FUNKIT_CONNECT_SUPPORTED_CHECKOUT_CHAINS_INFO_LIST3 } from "@funkit/chains";
25542
25656
  import { LogLevel, initializeRelayClient } from "@funkit/fun-relay";
25543
25657
  import { FlagKey as FlagKey28 } from "@funkit/utils";
25544
- import React245 from "react";
25658
+ import React246 from "react";
25545
25659
 
25546
25660
  // src/components/DydxSwitchModalTab/DydxSwitchModalTab.tsx
25547
25661
  import React238, { useCallback as useCallback44 } from "react";
@@ -25689,7 +25803,7 @@ var FunCheckoutBlocked = ({ reason }) => {
25689
25803
 
25690
25804
  // src/modals/CheckoutModal/TransferToken/CheckoutNotifications.tsx
25691
25805
  import clsx22 from "clsx";
25692
- import React244, { useEffect as useEffect45, useMemo as useMemo41, useState as useState64 } from "react";
25806
+ import React245, { useEffect as useEffect45, useMemo as useMemo41, useState as useState64 } from "react";
25693
25807
 
25694
25808
  // src/components/FunNotificationBanner/FunNotificationShowMoreButton.tsx
25695
25809
  import React240 from "react";
@@ -25741,7 +25855,7 @@ import { FlagKey as FlagKey27 } from "@funkit/utils";
25741
25855
  import { useQuery as useQuery11 } from "@tanstack/react-query";
25742
25856
  var hasCorrectPaymentMethod = (checkout, paymentMethod) => !paymentMethod || checkout.clientMetadata.selectedPaymentMethodInfo?.paymentMethod === paymentMethod;
25743
25857
  var isRecent = (checkout, timestampCutoff) => checkout.createdTimeMs > timestampCutoff;
25744
- var DEFAULT_CUTOFF = 7 * 24 * 60 * 60 * 1e3;
25858
+ var DEFAULT_NOTIF_CUTOFF = 7 * 24 * 60 * 60 * 1e3;
25745
25859
  function useCheckoutRefreshInterval() {
25746
25860
  const str = useFlag(FlagKey27.CheckoutNotificationsRefreshInterval);
25747
25861
  return safeJSONParse(str) || { listRefresh: 50 * 1e3, itemRefresh: 5 * 1e3 };
@@ -25760,7 +25874,7 @@ var useRecentCheckouts = ({
25760
25874
  userId: userInfo.id,
25761
25875
  apiKey
25762
25876
  });
25763
- const defaultTimestampCutoff = Date.now() - DEFAULT_CUTOFF;
25877
+ const defaultTimestampCutoff = Date.now() - DEFAULT_NOTIF_CUTOFF;
25764
25878
  return checkouts.filter(
25765
25879
  (checkout) => isCheckoutValid(checkout) && isRecent(checkout, defaultTimestampCutoff) && hasCorrectPaymentMethod(checkout, paymentMethod)
25766
25880
  ).sort((a, b) => b.createdTimeMs - a.createdTimeMs);
@@ -25771,6 +25885,34 @@ var useRecentCheckouts = ({
25771
25885
  return query;
25772
25886
  };
25773
25887
 
25888
+ // src/hooks/queries/useRecentDirectExecutions.ts
25889
+ import {
25890
+ getDirectExecutionsByUserId as getDirectExecutionsByUserId2
25891
+ } from "@funkit/api-base";
25892
+ import { useQuery as useQuery12 } from "@tanstack/react-query";
25893
+ var isRecent2 = (de, timestampCutoff) => de.createdTimeMs > timestampCutoff;
25894
+ var useRecentDirectExecutions = ({
25895
+ isVisible
25896
+ }) => {
25897
+ const { isUserLoggedIn, userInfo } = useGeneralWallet();
25898
+ const { apiKey } = useFunkitConfig();
25899
+ const { listRefresh } = useCheckoutRefreshInterval();
25900
+ const query = useQuery12({
25901
+ queryKey: ["directExecutions", userInfo.id],
25902
+ queryFn: async () => {
25903
+ const directExecutions = await getDirectExecutionsByUserId2({
25904
+ userId: userInfo.id,
25905
+ apiKey
25906
+ });
25907
+ const defaultTimestampCutoff = Date.now() - DEFAULT_NOTIF_CUTOFF;
25908
+ return directExecutions.filter((de) => isRecent2(de, defaultTimestampCutoff)).sort((a, b) => b.createdTimeMs - a.createdTimeMs);
25909
+ },
25910
+ refetchInterval: listRefresh,
25911
+ enabled: !!userInfo.id && isUserLoggedIn && isVisible
25912
+ });
25913
+ return query;
25914
+ };
25915
+
25774
25916
  // src/modals/CheckoutModal/TransferToken/CheckoutNotification.tsx
25775
25917
  import React243 from "react";
25776
25918
 
@@ -26467,11 +26609,11 @@ var FunNotificationBanner = ({
26467
26609
  import {
26468
26610
  getCheckoutByDepositAddress as getCheckoutByDepositAddress2
26469
26611
  } from "@funkit/api-base";
26470
- import { useQuery as useQuery12 } from "@tanstack/react-query";
26612
+ import { useQuery as useQuery13 } from "@tanstack/react-query";
26471
26613
  var useCheckout = (depositAddress, initial) => {
26472
26614
  const { apiKey } = useFunkitConfig();
26473
26615
  const { itemRefresh } = useCheckoutRefreshInterval();
26474
- const query = useQuery12({
26616
+ const query = useQuery13({
26475
26617
  queryKey: ["checkouts", "checkout", depositAddress],
26476
26618
  queryFn: () => (
26477
26619
  // biome-ignore lint/style/noNonNullAssertion: already checked for null
@@ -26490,7 +26632,7 @@ var CheckoutNotification = ({
26490
26632
  onClose,
26491
26633
  onHelp
26492
26634
  }) => {
26493
- const { initSettings, id } = defaultCheckout.clientMetadata;
26635
+ const { initSettings } = defaultCheckout.clientMetadata;
26494
26636
  const depositAddress = defaultCheckout.depositAddr;
26495
26637
  const { data: checkout } = useCheckout(depositAddress, defaultCheckout);
26496
26638
  if (!checkout) return null;
@@ -26505,7 +26647,7 @@ var CheckoutNotification = ({
26505
26647
  disclaimer: parseDisclaimer(checkout, () => onHelp(depositAddress)),
26506
26648
  iconUrl: initSettings.config.iconSrc ?? ASSET_LOGO_SRCS[normalizedTicker],
26507
26649
  status: notificationStatus,
26508
- onClosed: () => onClose(id)
26650
+ onClosed: () => onClose(depositAddress)
26509
26651
  },
26510
26652
  /* @__PURE__ */ React243.createElement(
26511
26653
  Box,
@@ -26574,6 +26716,112 @@ var parseDisclaimer = (checkout, onHelp) => {
26574
26716
  }
26575
26717
  };
26576
26718
 
26719
+ // src/modals/CheckoutModal/TransferToken/DirectExecutionNotification.tsx
26720
+ import React244 from "react";
26721
+ var mapDirectExecutionStateToNotificationStatus = (isDelayed2, isRefunded, isCompleted, isFailed) => {
26722
+ if (isDelayed2) return "delayed";
26723
+ if (isCompleted) return "completed";
26724
+ if (isRefunded) return "expired";
26725
+ if (isFailed) return "failed";
26726
+ return "completed";
26727
+ };
26728
+ var DirectExecutionNotification = ({
26729
+ directExecution,
26730
+ onClose,
26731
+ onHelp
26732
+ }) => {
26733
+ const { initSettings } = directExecution.clientMetadata;
26734
+ const { isDelayed: isDelayed2, isRefunded, isCompleted, isFailed } = useCheckoutDirectExecutionHistory({
26735
+ initDirectExecution: directExecution
26736
+ });
26737
+ const notificationStatus = mapDirectExecutionStateToNotificationStatus(
26738
+ isDelayed2,
26739
+ isRefunded,
26740
+ isCompleted,
26741
+ isFailed
26742
+ );
26743
+ const normalizedTicker = initSettings.config.targetAssetTicker?.toUpperCase();
26744
+ return /* @__PURE__ */ React244.createElement(
26745
+ FunNotificationBanner,
26746
+ {
26747
+ description: parseDescription2(
26748
+ isDelayed2,
26749
+ isRefunded,
26750
+ isCompleted,
26751
+ isFailed
26752
+ ),
26753
+ title: parseTitle(isDelayed2, isRefunded, isCompleted, isFailed),
26754
+ disclaimer: parseDisclaimer2(
26755
+ isRefunded,
26756
+ isDelayed2,
26757
+ isFailed,
26758
+ () => onHelp(directExecution.txHash)
26759
+ ),
26760
+ iconUrl: ASSET_LOGO_SRCS[normalizedTicker],
26761
+ status: notificationStatus,
26762
+ onClosed: () => onClose(directExecution.txHash)
26763
+ },
26764
+ /* @__PURE__ */ React244.createElement(
26765
+ Box,
26766
+ {
26767
+ paddingY: "8",
26768
+ paddingX: "10",
26769
+ background: "modalBackground",
26770
+ borderRadius: "8",
26771
+ borderColor: "mediumStroke",
26772
+ borderWidth: "1",
26773
+ borderStyle: "solid"
26774
+ },
26775
+ /* @__PURE__ */ React244.createElement(
26776
+ DirectExecutionOrderDetailSection,
26777
+ {
26778
+ directExecution,
26779
+ showRelayLink: true
26780
+ }
26781
+ )
26782
+ )
26783
+ );
26784
+ };
26785
+ var parseTitle = (isDelayed2, isRefunded, isCompleted, isFailed) => {
26786
+ if (isDelayed2) return "Deposit received and pending...";
26787
+ if (isCompleted) return "Deposit completed";
26788
+ if (isFailed || isRefunded) return "Didn't complete";
26789
+ return "Deposit received and processing...";
26790
+ };
26791
+ var parseDescription2 = (isDelayed2, isRefunded, isCompleted, isFailed) => {
26792
+ if (isDelayed2) {
26793
+ return "Your deposit will be credited to your account shortly.";
26794
+ }
26795
+ if (isCompleted) {
26796
+ return "Your deposit has been credited to your account.";
26797
+ }
26798
+ if (isRefunded) {
26799
+ return "Your deposit has been refunded or reprocessed. Feel free to reach out for an update.";
26800
+ }
26801
+ if (isFailed) {
26802
+ return "An issue occurred with your deposit. Please try again.";
26803
+ }
26804
+ return "";
26805
+ };
26806
+ var parseDisclaimer2 = (isRefunded, isDelayed2, isFailed, onHelp) => {
26807
+ const contactLink = /* @__PURE__ */ React244.createElement(
26808
+ FunLinkButton,
26809
+ {
26810
+ text: "Contact us",
26811
+ onClick: onHelp,
26812
+ inline: true,
26813
+ size: "12",
26814
+ weight: "regular"
26815
+ }
26816
+ );
26817
+ if (isFailed || isRefunded) {
26818
+ return /* @__PURE__ */ React244.createElement(React244.Fragment, null, "Your deposit didn't complete. ", contactLink, " for more info.");
26819
+ }
26820
+ if (isDelayed2) {
26821
+ return /* @__PURE__ */ React244.createElement(React244.Fragment, null, "Your deposit is delayed but funds are safe. ", contactLink, " for more info.");
26822
+ }
26823
+ };
26824
+
26577
26825
  // src/modals/CheckoutModal/TransferToken/CheckoutNotifications.tsx
26578
26826
  var COLLAPSED_COUNT = 2;
26579
26827
  var MAX_COUNT = 5;
@@ -26583,24 +26831,44 @@ var CheckoutNotifications = ({
26583
26831
  }) => {
26584
26832
  const [isExpanded, setIsExpanded] = useState64(false);
26585
26833
  const [initialCheckouts, setInitialCheckouts] = useState64();
26834
+ const [initialDirectExecutions, setInitialDirectExecutions] = useState64();
26586
26835
  const [closedNotifications, setClosedNotifications] = useState64([]);
26587
26836
  const { data: checkouts } = useRecentCheckouts({ isVisible });
26837
+ const { data: directExecutions } = useRecentDirectExecutions({
26838
+ isVisible
26839
+ });
26588
26840
  useEffect45(() => {
26589
26841
  if (initialCheckouts || !checkouts) return;
26590
26842
  setInitialCheckouts(checkouts);
26591
26843
  }, [initialCheckouts, checkouts]);
26844
+ useEffect45(() => {
26845
+ if (initialDirectExecutions || !directExecutions) return;
26846
+ setInitialDirectExecutions(directExecutions);
26847
+ }, [initialDirectExecutions, directExecutions]);
26848
+ const displayedDirectExecutions = useMemo41(() => {
26849
+ if (!directExecutions) return [];
26850
+ return getUpdatedDirectExecutions(directExecutions, initialDirectExecutions).filter(({ txHash }) => !closedNotifications.includes(txHash)).slice(0, MAX_COUNT);
26851
+ }, [initialDirectExecutions, directExecutions, closedNotifications]);
26592
26852
  const displayedCheckouts = useMemo41(() => {
26593
26853
  if (!checkouts) return [];
26594
- return getUpdatedCheckouts(checkouts, initialCheckouts).filter(
26595
- ({ clientMetadata }) => !closedNotifications.includes(
26596
- clientMetadata.id
26597
- )
26598
- ).slice(0, MAX_COUNT);
26854
+ return getUpdatedCheckouts(checkouts, initialCheckouts).filter(({ depositAddr }) => !closedNotifications.includes(depositAddr)).slice(0, MAX_COUNT);
26599
26855
  }, [initialCheckouts, checkouts, closedNotifications]);
26600
- const displayedNotifications = isExpanded ? displayedCheckouts : displayedCheckouts.slice(0, COLLAPSED_COUNT);
26856
+ const combinedNotifications = useMemo41(() => {
26857
+ return [
26858
+ ...displayedDirectExecutions.map(
26859
+ (item) => ({ ...item, isDirectExecution: true })
26860
+ ),
26861
+ ...displayedCheckouts.map(
26862
+ (item) => ({ ...item, isDirectExecution: false })
26863
+ )
26864
+ ].sort((a, b) => b.createdTimeMs - a.createdTimeMs);
26865
+ }, [displayedDirectExecutions, displayedCheckouts]);
26866
+ const displayedNotifications = useMemo41(() => {
26867
+ return isExpanded ? combinedNotifications : combinedNotifications.slice(0, COLLAPSED_COUNT);
26868
+ }, [isExpanded, combinedNotifications]);
26601
26869
  const handleNotificationClose = (id) => setClosedNotifications((prev) => [...prev, id]);
26602
26870
  if (!isVisible) return null;
26603
- return /* @__PURE__ */ React244.createElement(
26871
+ return /* @__PURE__ */ React245.createElement(
26604
26872
  Box,
26605
26873
  {
26606
26874
  position: "absolute",
@@ -26608,19 +26876,32 @@ var CheckoutNotifications = ({
26608
26876
  maxHeight: "full",
26609
26877
  style: { bottom: 0, left: 0, right: 0, zIndex: OVERLAY_Z_INDEX }
26610
26878
  },
26611
- /* @__PURE__ */ React244.createElement(Box, { display: "flex", flexDirection: "column", gap: "8", padding: "8" }, displayedNotifications.map((checkout) => /* @__PURE__ */ React244.createElement(
26612
- CheckoutNotification,
26613
- {
26614
- key: checkout.clientMetadata.id,
26615
- checkout,
26616
- onClose: handleNotificationClose,
26617
- onHelp
26879
+ /* @__PURE__ */ React245.createElement(Box, { display: "flex", flexDirection: "column", gap: "8", padding: "8" }, displayedNotifications.map((item) => {
26880
+ if (item.isDirectExecution) {
26881
+ return /* @__PURE__ */ React245.createElement(
26882
+ DirectExecutionNotification,
26883
+ {
26884
+ key: item.txHash,
26885
+ directExecution: item,
26886
+ onClose: handleNotificationClose,
26887
+ onHelp
26888
+ }
26889
+ );
26618
26890
  }
26619
- )), displayedCheckouts.length > COLLAPSED_COUNT && /* @__PURE__ */ React244.createElement(
26891
+ return /* @__PURE__ */ React245.createElement(
26892
+ CheckoutNotification,
26893
+ {
26894
+ key: item.depositAddr,
26895
+ checkout: item,
26896
+ onClose: handleNotificationClose,
26897
+ onHelp
26898
+ }
26899
+ );
26900
+ }), combinedNotifications.length > COLLAPSED_COUNT && /* @__PURE__ */ React245.createElement(
26620
26901
  FunNotificationShowMoreButton,
26621
26902
  {
26622
26903
  isExpanded,
26623
- numberOfNotifications: displayedCheckouts.length - COLLAPSED_COUNT,
26904
+ numberOfNotifications: combinedNotifications.length - COLLAPSED_COUNT,
26624
26905
  onClick: () => setIsExpanded((value) => !value)
26625
26906
  }
26626
26907
  ))
@@ -26629,11 +26910,21 @@ var CheckoutNotifications = ({
26629
26910
  var getUpdatedCheckouts = (checkouts, initialCheckouts) => {
26630
26911
  return checkouts.filter((checkout) => {
26631
26912
  const initialCheckout = initialCheckouts?.find(
26632
- (initialCheckout2) => initialCheckout2.clientMetadata.id === checkout.clientMetadata.id
26913
+ (initialCheckout2) => initialCheckout2.depositAddr === checkout.depositAddr
26633
26914
  );
26634
26915
  return !initialCheckout || initialCheckout.lastUpdatedTimeMs !== checkout.lastUpdatedTimeMs;
26635
26916
  });
26636
26917
  };
26918
+ var getUpdatedDirectExecutions = (directExecutions, initialDirectExecutions) => {
26919
+ return directExecutions.filter((directExecution) => {
26920
+ const initialDirectExecution = initialDirectExecutions?.find(
26921
+ (initialDirectExecution2) => initialDirectExecution2.txHash === directExecution.txHash
26922
+ );
26923
+ return !initialDirectExecution || getDirectExecutionUpdatedTimeMs({
26924
+ directExecution: initialDirectExecution
26925
+ }) !== getDirectExecutionUpdatedTimeMs({ directExecution });
26926
+ });
26927
+ };
26637
26928
 
26638
26929
  // src/modals/CheckoutModal/FunCheckoutModal.tsx
26639
26930
  initializeRelayClient({
@@ -26645,7 +26936,7 @@ initializeRelayClient({
26645
26936
  var CHECKOUT_DIALOG_CONTENT_ID = "checkout-dialog-content";
26646
26937
  function FunCheckoutModalStepComponent(props) {
26647
26938
  const { Component: Component2 } = CheckoutModalSteps[props.modalState.step];
26648
- return /* @__PURE__ */ React245.createElement(Component2, { ...props });
26939
+ return /* @__PURE__ */ React246.createElement(Component2, { ...props });
26649
26940
  }
26650
26941
  function FunCheckoutModalInner({
26651
26942
  checkoutItem,
@@ -26692,7 +26983,7 @@ function FunCheckoutModalInner({
26692
26983
  depositAddress: checkoutItem.depositAddress ?? void 0,
26693
26984
  isCheckoutDetailView: modalState.step === "checkout_complete" /* CHECKOUT_COMPLETE */,
26694
26985
  paddingTop: 0,
26695
- topbar: /* @__PURE__ */ React245.createElement(
26986
+ topbar: /* @__PURE__ */ React246.createElement(
26696
26987
  Dialog.Title,
26697
26988
  {
26698
26989
  hasBackButton: hasBack && !isBlocked,
@@ -26708,7 +26999,7 @@ function FunCheckoutModalInner({
26708
26999
  withTopDivider: checkoutConfig.modalTitleMeta ? "always" : "scroll",
26709
27000
  scrollableContent: CHECKOUT_DIALOG_CONTENT_ID
26710
27001
  });
26711
- return /* @__PURE__ */ React245.createElement(
27002
+ return /* @__PURE__ */ React246.createElement(
26712
27003
  Dialog,
26713
27004
  {
26714
27005
  open,
@@ -26716,7 +27007,7 @@ function FunCheckoutModalInner({
26716
27007
  titleId: "fun-checkout-modal",
26717
27008
  isHidden: modalState.isSoftHidden
26718
27009
  },
26719
- /* @__PURE__ */ React245.createElement(FunCheckoutModalHeightAnimationWrapper, { checkoutStep: modalState.step }, topbar, /* @__PURE__ */ React245.createElement(
27010
+ /* @__PURE__ */ React246.createElement(FunCheckoutModalHeightAnimationWrapper, { checkoutStep: modalState.step }, topbar, /* @__PURE__ */ React246.createElement(
26720
27011
  Dialog.Content,
26721
27012
  {
26722
27013
  fullHeight: showFullHeight,
@@ -26726,20 +27017,20 @@ function FunCheckoutModalInner({
26726
27017
  withBottomDivider: modalState.step === "transfer_token" /* TRANSFER_TOKEN */ || modalState.step === "fiat_account_detail" /* FIAT_ACCOUNT_DETAIL */ ? "never" : "scroll",
26727
27018
  id: CHECKOUT_DIALOG_CONTENT_ID
26728
27019
  },
26729
- isBlocked ? /* @__PURE__ */ React245.createElement(
27020
+ isBlocked ? /* @__PURE__ */ React246.createElement(
26730
27021
  FunCheckoutBlocked,
26731
27022
  {
26732
27023
  reason: isUserGeoblocked ? "geoblock" : "security"
26733
27024
  }
26734
- ) : /* @__PURE__ */ React245.createElement(React245.Fragment, null, /* @__PURE__ */ React245.createElement(
27025
+ ) : /* @__PURE__ */ React246.createElement(React246.Fragment, null, /* @__PURE__ */ React246.createElement(
26735
27026
  DydxSwitchTab,
26736
27027
  {
26737
27028
  onSwitch: checkoutItem.initSettings.onDydxSwitch,
26738
27029
  showSwitch: showDydxSwitch,
26739
27030
  onClose: onCloseWrapper
26740
27031
  }
26741
- ), /* @__PURE__ */ React245.createElement(FunCheckoutModalStepComponent, { ...modalProps }))
26742
- ), /* @__PURE__ */ React245.createElement(Dialog.BottomSection, { id: CHECKOUT_MODAL_BOTTOM_BAR_ID }), !isBlocked && /* @__PURE__ */ React245.createElement(
27032
+ ), /* @__PURE__ */ React246.createElement(FunCheckoutModalStepComponent, { ...modalProps }))
27033
+ ), /* @__PURE__ */ React246.createElement(Dialog.BottomSection, { id: CHECKOUT_MODAL_BOTTOM_BAR_ID }), !isBlocked && /* @__PURE__ */ React246.createElement(
26743
27034
  CheckoutNotifications,
26744
27035
  {
26745
27036
  onHelp: handleCheckoutHelp,
@@ -26753,7 +27044,7 @@ function FunCheckoutModal({ onClose, open }) {
26753
27044
  if (!checkoutItem) {
26754
27045
  return null;
26755
27046
  }
26756
- return /* @__PURE__ */ React245.createElement(
27047
+ return /* @__PURE__ */ React246.createElement(
26757
27048
  FunCheckoutModalInner,
26758
27049
  {
26759
27050
  checkoutItem,
@@ -26764,7 +27055,7 @@ function FunCheckoutModal({ onClose, open }) {
26764
27055
  }
26765
27056
 
26766
27057
  // src/modals/ConnectModal/ConnectModal.tsx
26767
- import React246 from "react";
27058
+ import React247 from "react";
26768
27059
  import { useAccount as useAccount8 } from "wagmi";
26769
27060
  var TITLE_ID2 = "rk_connect_title";
26770
27061
  function ConnectModal({
@@ -26775,12 +27066,12 @@ function ConnectModal({
26775
27066
  const connectionStatus = useConnectionStatus();
26776
27067
  const { disconnect } = useFunkitDisconnect();
26777
27068
  const { isConnecting } = useAccount8();
26778
- const onConnectModalCancel = React246.useCallback(() => {
27069
+ const onConnectModalCancel = React247.useCallback(() => {
26779
27070
  if (isConnecting) disconnect();
26780
27071
  onClose();
26781
27072
  }, [onClose, disconnect, isConnecting]);
26782
27073
  if (connectionStatus === "disconnected" || connectionStatus === "loading") {
26783
- return /* @__PURE__ */ React246.createElement(
27074
+ return /* @__PURE__ */ React247.createElement(
26784
27075
  Dialog,
26785
27076
  {
26786
27077
  onClose: onConnectModalCancel,
@@ -26788,7 +27079,7 @@ function ConnectModal({
26788
27079
  titleId: TITLE_ID2,
26789
27080
  isSmartCloseable: true
26790
27081
  },
26791
- /* @__PURE__ */ React246.createElement(
27082
+ /* @__PURE__ */ React247.createElement(
26792
27083
  FunConnectOptions,
26793
27084
  {
26794
27085
  onClose: onConnectModalCancel,
@@ -26879,7 +27170,7 @@ function ModalProvider({ children }) {
26879
27170
  useEffect46(() => {
26880
27171
  if (isUnauthenticated) closeModals();
26881
27172
  }, [isUnauthenticated]);
26882
- return /* @__PURE__ */ React247.createElement(
27173
+ return /* @__PURE__ */ React248.createElement(
26883
27174
  ModalContext.Provider,
26884
27175
  {
26885
27176
  value: useMemo42(
@@ -26917,7 +27208,7 @@ function ModalProvider({ children }) {
26917
27208
  )
26918
27209
  },
26919
27210
  children,
26920
- /* @__PURE__ */ React247.createElement(
27211
+ /* @__PURE__ */ React248.createElement(
26921
27212
  ConnectModal,
26922
27213
  {
26923
27214
  onClose: closeConnectModal,
@@ -26925,7 +27216,7 @@ function ModalProvider({ children }) {
26925
27216
  walletsOnly: !!walletsOnly
26926
27217
  }
26927
27218
  ),
26928
- /* @__PURE__ */ React247.createElement(
27219
+ /* @__PURE__ */ React248.createElement(
26929
27220
  AccountModal,
26930
27221
  {
26931
27222
  onClose: closeAccountModal,
@@ -26933,8 +27224,8 @@ function ModalProvider({ children }) {
26933
27224
  defaultTab: accountModalTab
26934
27225
  }
26935
27226
  ),
26936
- /* @__PURE__ */ React247.createElement(ChainModal, { onClose: closeChainModal, open: chainModalOpen }),
26937
- /* @__PURE__ */ React247.createElement(
27227
+ /* @__PURE__ */ React248.createElement(ChainModal, { onClose: closeChainModal, open: chainModalOpen }),
27228
+ /* @__PURE__ */ React248.createElement(
26938
27229
  FunCheckoutModal,
26939
27230
  {
26940
27231
  onClose: closeFunCheckoutModal,
@@ -27675,7 +27966,7 @@ var FunkitWeb2Provider = ({
27675
27966
  handleFunkitWeb2Logout,
27676
27967
  web2UserInfo
27677
27968
  };
27678
- return /* @__PURE__ */ React248.createElement(FunkitWeb2Context.Provider, { value: contextValue }, privyIframeUrl ? /* @__PURE__ */ React248.createElement(
27969
+ return /* @__PURE__ */ React249.createElement(FunkitWeb2Context.Provider, { value: contextValue }, privyIframeUrl ? /* @__PURE__ */ React249.createElement(
27679
27970
  "iframe",
27680
27971
  {
27681
27972
  id: PRIVY_IFRAME_ID,
@@ -27708,7 +27999,7 @@ function useConnectionStatus() {
27708
27999
  }
27709
28000
 
27710
28001
  // src/providers/ShowBalanceContext.tsx
27711
- import React249, {
28002
+ import React250, {
27712
28003
  createContext as createContext19,
27713
28004
  useContext as useContext19,
27714
28005
  useState as useState67
@@ -27719,13 +28010,13 @@ var ShowBalanceContext = createContext19({
27719
28010
  });
27720
28011
  function ShowBalanceProvider({ children }) {
27721
28012
  const [showBalance, setShowBalance] = useState67();
27722
- return /* @__PURE__ */ React249.createElement(ShowBalanceContext.Provider, { value: { showBalance, setShowBalance } }, children);
28013
+ return /* @__PURE__ */ React250.createElement(ShowBalanceContext.Provider, { value: { showBalance, setShowBalance } }, children);
27723
28014
  }
27724
28015
  var useShowBalance = () => useContext19(ShowBalanceContext);
27725
28016
 
27726
28017
  // src/components/ConnectButton/ConnectButtonRenderer.tsx
27727
28018
  import { formatCurrencyAndStringify as formatCurrencyAndStringify11, isMobile as isMobile14, noop as noop8 } from "@funkit/utils";
27728
- import React250 from "react";
28019
+ import React251 from "react";
27729
28020
  import { useAccount as useAccount11, useBalance, useConfig as useConfig6 } from "wagmi";
27730
28021
 
27731
28022
  // src/hooks/useIsMounted.ts
@@ -27816,7 +28107,7 @@ function ConnectButtonRenderer({
27816
28107
  const { openChainModal } = useChainModal();
27817
28108
  const { openAccountModal } = useAccountModal();
27818
28109
  const { accountModalOpen, chainModalOpen, connectModalOpen } = useModalState();
27819
- return /* @__PURE__ */ React250.createElement(React250.Fragment, null, children({
28110
+ return /* @__PURE__ */ React251.createElement(React251.Fragment, null, children({
27820
28111
  account: address ? {
27821
28112
  address,
27822
28113
  balanceDecimals: balanceData?.decimals,
@@ -27872,7 +28163,7 @@ function ChainSelectorButton({
27872
28163
  openChainModal,
27873
28164
  chain
27874
28165
  }) {
27875
- return /* @__PURE__ */ React251.createElement(
28166
+ return /* @__PURE__ */ React252.createElement(
27876
28167
  Box,
27877
28168
  {
27878
28169
  alignItems: "center",
@@ -27900,7 +28191,7 @@ function ChainSelectorButton({
27900
28191
  type: "button",
27901
28192
  ...connectButtonStyles
27902
28193
  },
27903
- unsupportedChain ? /* @__PURE__ */ React251.createElement(Box, { alignItems: "center", display: "flex", height: "24", paddingX: "4" }, "Wrong network") : /* @__PURE__ */ React251.createElement(Box, { alignItems: "center", display: "flex", gap: "6" }, chain.hasIcon ? /* @__PURE__ */ React251.createElement(
28194
+ unsupportedChain ? /* @__PURE__ */ React252.createElement(Box, { alignItems: "center", display: "flex", height: "24", paddingX: "4" }, "Wrong network") : /* @__PURE__ */ React252.createElement(Box, { alignItems: "center", display: "flex", gap: "6" }, chain.hasIcon ? /* @__PURE__ */ React252.createElement(
27904
28195
  Box,
27905
28196
  {
27906
28197
  display: mapResponsiveValue(
@@ -27910,7 +28201,7 @@ function ChainSelectorButton({
27910
28201
  height: "12",
27911
28202
  width: "12"
27912
28203
  },
27913
- /* @__PURE__ */ React251.createElement(
28204
+ /* @__PURE__ */ React252.createElement(
27914
28205
  AsyncImage,
27915
28206
  {
27916
28207
  alt: chain.name ?? "Chain icon",
@@ -27921,7 +28212,7 @@ function ChainSelectorButton({
27921
28212
  src: chain.iconUrl
27922
28213
  }
27923
28214
  )
27924
- ) : null, /* @__PURE__ */ React251.createElement(
28215
+ ) : null, /* @__PURE__ */ React252.createElement(
27925
28216
  Box,
27926
28217
  {
27927
28218
  display: mapResponsiveValue(chainStatus, (value) => {
@@ -27941,7 +28232,7 @@ function AccountButton({
27941
28232
  showBalance,
27942
28233
  accountStatus
27943
28234
  }) {
27944
- return /* @__PURE__ */ React251.createElement(
28235
+ return /* @__PURE__ */ React252.createElement(
27945
28236
  Box,
27946
28237
  {
27947
28238
  alignItems: "center",
@@ -27961,7 +28252,7 @@ function AccountButton({
27961
28252
  gap: "16",
27962
28253
  ...connectButtonStyles
27963
28254
  },
27964
- account.displayBalance && /* @__PURE__ */ React251.createElement(
28255
+ account.displayBalance && /* @__PURE__ */ React252.createElement(
27965
28256
  Box,
27966
28257
  {
27967
28258
  display: mapResponsiveValue(
@@ -27971,7 +28262,7 @@ function AccountButton({
27971
28262
  },
27972
28263
  account.displayBalance
27973
28264
  ),
27974
- /* @__PURE__ */ React251.createElement(Box, { alignItems: "center", display: "flex", gap: "6" }, /* @__PURE__ */ React251.createElement(
28265
+ /* @__PURE__ */ React252.createElement(Box, { alignItems: "center", display: "flex", gap: "6" }, /* @__PURE__ */ React252.createElement(
27975
28266
  Box,
27976
28267
  {
27977
28268
  display: mapResponsiveValue(
@@ -27979,7 +28270,7 @@ function AccountButton({
27979
28270
  (value) => value === "full" || value === "avatar" ? "block" : "none"
27980
28271
  )
27981
28272
  },
27982
- /* @__PURE__ */ React251.createElement(
28273
+ /* @__PURE__ */ React252.createElement(
27983
28274
  Avatar,
27984
28275
  {
27985
28276
  address: account.address,
@@ -27988,7 +28279,7 @@ function AccountButton({
27988
28279
  size: 12
27989
28280
  }
27990
28281
  )
27991
- ), /* @__PURE__ */ React251.createElement(
28282
+ ), /* @__PURE__ */ React252.createElement(
27992
28283
  Box,
27993
28284
  {
27994
28285
  display: mapResponsiveValue(
@@ -28019,7 +28310,7 @@ function ConnectButton({
28019
28310
  setShowBalance(showBalance);
28020
28311
  if (!ready) setReady(true);
28021
28312
  }, [showBalance, setShowBalance, ready]);
28022
- return ready ? /* @__PURE__ */ React251.createElement(ConnectButtonRenderer, null, ({
28313
+ return ready ? /* @__PURE__ */ React252.createElement(ConnectButtonRenderer, null, ({
28023
28314
  account,
28024
28315
  chain,
28025
28316
  mounted,
@@ -28029,7 +28320,7 @@ function ConnectButton({
28029
28320
  }) => {
28030
28321
  const ready2 = mounted && connectionStatus !== "loading";
28031
28322
  const unsupportedChain = chain?.unsupported ?? false;
28032
- return /* @__PURE__ */ React251.createElement(
28323
+ return /* @__PURE__ */ React252.createElement(
28033
28324
  Box,
28034
28325
  {
28035
28326
  display: "flex",
@@ -28045,7 +28336,7 @@ function ConnectButton({
28045
28336
  },
28046
28337
  ready2 && account && connectionStatus === "connected" ? (
28047
28338
  // Logged in: Chain Button & Account Button
28048
- /* @__PURE__ */ React251.createElement(React251.Fragment, null, showChainSelector && chain && (chains.length > 1 || unsupportedChain) && /* @__PURE__ */ React251.createElement(
28339
+ /* @__PURE__ */ React252.createElement(React252.Fragment, null, showChainSelector && chain && (chains.length > 1 || unsupportedChain) && /* @__PURE__ */ React252.createElement(
28049
28340
  ChainSelectorButton,
28050
28341
  {
28051
28342
  unsupportedChain,
@@ -28053,7 +28344,7 @@ function ConnectButton({
28053
28344
  openChainModal,
28054
28345
  chain
28055
28346
  }
28056
- ), !unsupportedChain && /* @__PURE__ */ React251.createElement(
28347
+ ), !unsupportedChain && /* @__PURE__ */ React252.createElement(
28057
28348
  AccountButton,
28058
28349
  {
28059
28350
  openAccountModal,
@@ -28064,7 +28355,7 @@ function ConnectButton({
28064
28355
  ))
28065
28356
  ) : (
28066
28357
  // Not logged in: Connect Button
28067
- /* @__PURE__ */ React251.createElement(
28358
+ /* @__PURE__ */ React252.createElement(
28068
28359
  Box,
28069
28360
  {
28070
28361
  as: "button",
@@ -28082,19 +28373,19 @@ function ConnectButton({
28082
28373
  type: "button",
28083
28374
  ...connectButtonStyles
28084
28375
  },
28085
- /* @__PURE__ */ React251.createElement(Box, { display: "flex", gap: "8", alignItems: "center" }, mounted && label, suffixIcon)
28376
+ /* @__PURE__ */ React252.createElement(Box, { display: "flex", gap: "8", alignItems: "center" }, mounted && label, suffixIcon)
28086
28377
  )
28087
28378
  )
28088
28379
  );
28089
- }) : /* @__PURE__ */ React251.createElement(React251.Fragment, null);
28380
+ }) : /* @__PURE__ */ React252.createElement(React252.Fragment, null);
28090
28381
  }
28091
28382
  ConnectButton.__defaultProps = defaultProps;
28092
28383
  ConnectButton.Custom = ConnectButtonRenderer;
28093
28384
 
28094
28385
  // src/components/Icons/FunkitPaymentsIconLine.tsx
28095
- import React252 from "react";
28386
+ import React253 from "react";
28096
28387
  function MetaMaskPaymentIcon({ size = 16 }) {
28097
- return /* @__PURE__ */ React252.createElement(
28388
+ return /* @__PURE__ */ React253.createElement(
28098
28389
  "svg",
28099
28390
  {
28100
28391
  width: size,
@@ -28103,7 +28394,7 @@ function MetaMaskPaymentIcon({ size = 16 }) {
28103
28394
  fill: "none",
28104
28395
  xmlns: "http://www.w3.org/2000/svg"
28105
28396
  },
28106
- /* @__PURE__ */ React252.createElement(
28397
+ /* @__PURE__ */ React253.createElement(
28107
28398
  "path",
28108
28399
  {
28109
28400
  d: "M24.0891 3.1199L15.3446 9.61456L16.9617 5.7828L24.0891 3.1199Z",
@@ -28114,7 +28405,7 @@ function MetaMaskPaymentIcon({ size = 16 }) {
28114
28405
  strokeLinejoin: "round"
28115
28406
  }
28116
28407
  ),
28117
- /* @__PURE__ */ React252.createElement(
28408
+ /* @__PURE__ */ React253.createElement(
28118
28409
  "path",
28119
28410
  {
28120
28411
  d: "M3.90207 3.1199L12.5763 9.67608L11.0383 5.7828L3.90207 3.1199Z",
@@ -28125,7 +28416,7 @@ function MetaMaskPaymentIcon({ size = 16 }) {
28125
28416
  strokeLinejoin: "round"
28126
28417
  }
28127
28418
  ),
28128
- /* @__PURE__ */ React252.createElement(
28419
+ /* @__PURE__ */ React253.createElement(
28129
28420
  "path",
28130
28421
  {
28131
28422
  d: "M20.9429 18.1745L18.6139 21.7426L23.597 23.1136L25.0295 18.2536L20.9429 18.1745Z",
@@ -28136,7 +28427,7 @@ function MetaMaskPaymentIcon({ size = 16 }) {
28136
28427
  strokeLinejoin: "round"
28137
28428
  }
28138
28429
  ),
28139
- /* @__PURE__ */ React252.createElement(
28430
+ /* @__PURE__ */ React253.createElement(
28140
28431
  "path",
28141
28432
  {
28142
28433
  d: "M2.97929 18.2536L4.40301 23.1136L9.38607 21.7426L7.05713 18.1745L2.97929 18.2536Z",
@@ -28147,7 +28438,7 @@ function MetaMaskPaymentIcon({ size = 16 }) {
28147
28438
  strokeLinejoin: "round"
28148
28439
  }
28149
28440
  ),
28150
- /* @__PURE__ */ React252.createElement(
28441
+ /* @__PURE__ */ React253.createElement(
28151
28442
  "path",
28152
28443
  {
28153
28444
  d: "M9.10483 12.1456L7.71626 14.2461L12.6642 14.4658L12.4884 9.14877L9.10483 12.1456Z",
@@ -28158,7 +28449,7 @@ function MetaMaskPaymentIcon({ size = 16 }) {
28158
28449
  strokeLinejoin: "round"
28159
28450
  }
28160
28451
  ),
28161
- /* @__PURE__ */ React252.createElement(
28452
+ /* @__PURE__ */ React253.createElement(
28162
28453
  "path",
28163
28454
  {
28164
28455
  d: "M18.8864 12.1456L15.4589 9.08725L15.3446 14.4658L20.2837 14.2461L18.8864 12.1456Z",
@@ -28169,7 +28460,7 @@ function MetaMaskPaymentIcon({ size = 16 }) {
28169
28460
  strokeLinejoin: "round"
28170
28461
  }
28171
28462
  ),
28172
- /* @__PURE__ */ React252.createElement(
28463
+ /* @__PURE__ */ React253.createElement(
28173
28464
  "path",
28174
28465
  {
28175
28466
  d: "M9.38606 21.7426L12.3566 20.2925L9.79033 18.2888L9.38606 21.7426Z",
@@ -28180,7 +28471,7 @@ function MetaMaskPaymentIcon({ size = 16 }) {
28180
28471
  strokeLinejoin: "round"
28181
28472
  }
28182
28473
  ),
28183
- /* @__PURE__ */ React252.createElement(
28474
+ /* @__PURE__ */ React253.createElement(
28184
28475
  "path",
28185
28476
  {
28186
28477
  d: "M15.6347 20.2925L18.6139 21.7426L18.2009 18.2888L15.6347 20.2925Z",
@@ -28191,7 +28482,7 @@ function MetaMaskPaymentIcon({ size = 16 }) {
28191
28482
  strokeLinejoin: "round"
28192
28483
  }
28193
28484
  ),
28194
- /* @__PURE__ */ React252.createElement(
28485
+ /* @__PURE__ */ React253.createElement(
28195
28486
  "path",
28196
28487
  {
28197
28488
  d: "M18.6139 21.7426L15.6347 20.2925L15.8719 22.2348L15.8456 23.0521L18.6139 21.7426Z",
@@ -28202,7 +28493,7 @@ function MetaMaskPaymentIcon({ size = 16 }) {
28202
28493
  strokeLinejoin: "round"
28203
28494
  }
28204
28495
  ),
28205
- /* @__PURE__ */ React252.createElement(
28496
+ /* @__PURE__ */ React253.createElement(
28206
28497
  "path",
28207
28498
  {
28208
28499
  d: "M9.38606 21.7426L12.1544 23.0521L12.1368 22.2348L12.3566 20.2925L9.38606 21.7426Z",
@@ -28213,7 +28504,7 @@ function MetaMaskPaymentIcon({ size = 16 }) {
28213
28504
  strokeLinejoin: "round"
28214
28505
  }
28215
28506
  ),
28216
- /* @__PURE__ */ React252.createElement(
28507
+ /* @__PURE__ */ React253.createElement(
28217
28508
  "path",
28218
28509
  {
28219
28510
  d: "M12.1984 17.0056L9.72002 16.2762L11.4689 15.4765L12.1984 17.0056Z",
@@ -28224,7 +28515,7 @@ function MetaMaskPaymentIcon({ size = 16 }) {
28224
28515
  strokeLinejoin: "round"
28225
28516
  }
28226
28517
  ),
28227
- /* @__PURE__ */ React252.createElement(
28518
+ /* @__PURE__ */ React253.createElement(
28228
28519
  "path",
28229
28520
  {
28230
28521
  d: "M15.7928 17.0056L16.5223 15.4765L18.28 16.2762L15.7928 17.0056Z",
@@ -28235,7 +28526,7 @@ function MetaMaskPaymentIcon({ size = 16 }) {
28235
28526
  strokeLinejoin: "round"
28236
28527
  }
28237
28528
  ),
28238
- /* @__PURE__ */ React252.createElement(
28529
+ /* @__PURE__ */ React253.createElement(
28239
28530
  "path",
28240
28531
  {
28241
28532
  d: "M9.38606 21.7426L9.80791 18.1745L7.05712 18.2536L9.38606 21.7426Z",
@@ -28246,7 +28537,7 @@ function MetaMaskPaymentIcon({ size = 16 }) {
28246
28537
  strokeLinejoin: "round"
28247
28538
  }
28248
28539
  ),
28249
- /* @__PURE__ */ React252.createElement(
28540
+ /* @__PURE__ */ React253.createElement(
28250
28541
  "path",
28251
28542
  {
28252
28543
  d: "M18.1921 18.1745L18.6139 21.7426L20.9429 18.2536L18.1921 18.1745Z",
@@ -28257,7 +28548,7 @@ function MetaMaskPaymentIcon({ size = 16 }) {
28257
28548
  strokeLinejoin: "round"
28258
28549
  }
28259
28550
  ),
28260
- /* @__PURE__ */ React252.createElement(
28551
+ /* @__PURE__ */ React253.createElement(
28261
28552
  "path",
28262
28553
  {
28263
28554
  d: "M20.2837 14.2461L15.3446 14.4658L15.8016 17.0057L16.5311 15.4765L18.2888 16.2762L20.2837 14.2461Z",
@@ -28268,7 +28559,7 @@ function MetaMaskPaymentIcon({ size = 16 }) {
28268
28559
  strokeLinejoin: "round"
28269
28560
  }
28270
28561
  ),
28271
- /* @__PURE__ */ React252.createElement(
28562
+ /* @__PURE__ */ React253.createElement(
28272
28563
  "path",
28273
28564
  {
28274
28565
  d: "M9.72002 16.2762L11.4777 15.4765L12.1984 17.0057L12.6642 14.4658L7.71626 14.2461L9.72002 16.2762Z",
@@ -28279,7 +28570,7 @@ function MetaMaskPaymentIcon({ size = 16 }) {
28279
28570
  strokeLinejoin: "round"
28280
28571
  }
28281
28572
  ),
28282
- /* @__PURE__ */ React252.createElement(
28573
+ /* @__PURE__ */ React253.createElement(
28283
28574
  "path",
28284
28575
  {
28285
28576
  d: "M7.71626 14.2461L9.79033 18.2888L9.72002 16.2762L7.71626 14.2461Z",
@@ -28290,7 +28581,7 @@ function MetaMaskPaymentIcon({ size = 16 }) {
28290
28581
  strokeLinejoin: "round"
28291
28582
  }
28292
28583
  ),
28293
- /* @__PURE__ */ React252.createElement(
28584
+ /* @__PURE__ */ React253.createElement(
28294
28585
  "path",
28295
28586
  {
28296
28587
  d: "M18.2888 16.2762L18.2009 18.2888L20.2837 14.2461L18.2888 16.2762Z",
@@ -28301,7 +28592,7 @@ function MetaMaskPaymentIcon({ size = 16 }) {
28301
28592
  strokeLinejoin: "round"
28302
28593
  }
28303
28594
  ),
28304
- /* @__PURE__ */ React252.createElement(
28595
+ /* @__PURE__ */ React253.createElement(
28305
28596
  "path",
28306
28597
  {
28307
28598
  d: "M12.6642 14.4658L12.1984 17.0057L12.7784 20.0025L12.9102 16.0565L12.6642 14.4658Z",
@@ -28312,7 +28603,7 @@ function MetaMaskPaymentIcon({ size = 16 }) {
28312
28603
  strokeLinejoin: "round"
28313
28604
  }
28314
28605
  ),
28315
- /* @__PURE__ */ React252.createElement(
28606
+ /* @__PURE__ */ React253.createElement(
28316
28607
  "path",
28317
28608
  {
28318
28609
  d: "M15.3446 14.4658L15.1073 16.0477L15.2128 20.0025L15.8016 17.0057L15.3446 14.4658Z",
@@ -28323,7 +28614,7 @@ function MetaMaskPaymentIcon({ size = 16 }) {
28323
28614
  strokeLinejoin: "round"
28324
28615
  }
28325
28616
  ),
28326
- /* @__PURE__ */ React252.createElement(
28617
+ /* @__PURE__ */ React253.createElement(
28327
28618
  "path",
28328
28619
  {
28329
28620
  d: "M15.8016 17.0056L15.2128 20.0025L15.6347 20.2925L18.2009 18.2888L18.2888 16.2762L15.8016 17.0056Z",
@@ -28334,7 +28625,7 @@ function MetaMaskPaymentIcon({ size = 16 }) {
28334
28625
  strokeLinejoin: "round"
28335
28626
  }
28336
28627
  ),
28337
- /* @__PURE__ */ React252.createElement(
28628
+ /* @__PURE__ */ React253.createElement(
28338
28629
  "path",
28339
28630
  {
28340
28631
  d: "M9.72002 16.2762L9.79033 18.2888L12.3566 20.2925L12.7784 20.0025L12.1984 17.0056L9.72002 16.2762Z",
@@ -28345,7 +28636,7 @@ function MetaMaskPaymentIcon({ size = 16 }) {
28345
28636
  strokeLinejoin: "round"
28346
28637
  }
28347
28638
  ),
28348
- /* @__PURE__ */ React252.createElement(
28639
+ /* @__PURE__ */ React253.createElement(
28349
28640
  "path",
28350
28641
  {
28351
28642
  d: "M15.8456 23.0521L15.8719 22.2348L15.6522 22.0414H12.339L12.1368 22.2348L12.1544 23.0521L9.38606 21.7426L10.3528 22.5336L12.3126 23.8958H15.6786L17.6472 22.5336L18.6139 21.7426L15.8456 23.0521Z",
@@ -28356,7 +28647,7 @@ function MetaMaskPaymentIcon({ size = 16 }) {
28356
28647
  strokeLinejoin: "round"
28357
28648
  }
28358
28649
  ),
28359
- /* @__PURE__ */ React252.createElement(
28650
+ /* @__PURE__ */ React253.createElement(
28360
28651
  "path",
28361
28652
  {
28362
28653
  d: "M15.6347 20.2925L15.2128 20.0025H12.7784L12.3566 20.2925L12.1368 22.2348L12.339 22.0414H15.6522L15.8719 22.2348L15.6347 20.2925Z",
@@ -28367,7 +28658,7 @@ function MetaMaskPaymentIcon({ size = 16 }) {
28367
28658
  strokeLinejoin: "round"
28368
28659
  }
28369
28660
  ),
28370
- /* @__PURE__ */ React252.createElement(
28661
+ /* @__PURE__ */ React253.createElement(
28371
28662
  "path",
28372
28663
  {
28373
28664
  d: "M24.4583 10.0364L25.2053 6.45072L24.0891 3.1199L15.6347 9.39485L18.8864 12.1456L23.4827 13.4903L24.5022 12.3038L24.0628 11.9874L24.7658 11.3459L24.221 10.924L24.924 10.3879L24.4583 10.0364Z",
@@ -28378,7 +28669,7 @@ function MetaMaskPaymentIcon({ size = 16 }) {
28378
28669
  strokeLinejoin: "round"
28379
28670
  }
28380
28671
  ),
28381
- /* @__PURE__ */ React252.createElement(
28672
+ /* @__PURE__ */ React253.createElement(
28382
28673
  "path",
28383
28674
  {
28384
28675
  d: "M2.79472 6.45072L3.54174 10.0364L3.06717 10.3879L3.77024 10.924L3.23415 11.3459L3.93722 11.9874L3.4978 12.3038L4.50847 13.4903L9.10483 12.1456L12.3566 9.39485L3.90207 3.1199L2.79472 6.45072Z",
@@ -28389,7 +28680,7 @@ function MetaMaskPaymentIcon({ size = 16 }) {
28389
28680
  strokeLinejoin: "round"
28390
28681
  }
28391
28682
  ),
28392
- /* @__PURE__ */ React252.createElement(
28683
+ /* @__PURE__ */ React253.createElement(
28393
28684
  "path",
28394
28685
  {
28395
28686
  d: "M23.4827 13.4903L18.8864 12.1456L20.2837 14.2461L18.2009 18.2888L20.9429 18.2536H25.0295L23.4827 13.4903Z",
@@ -28400,7 +28691,7 @@ function MetaMaskPaymentIcon({ size = 16 }) {
28400
28691
  strokeLinejoin: "round"
28401
28692
  }
28402
28693
  ),
28403
- /* @__PURE__ */ React252.createElement(
28694
+ /* @__PURE__ */ React253.createElement(
28404
28695
  "path",
28405
28696
  {
28406
28697
  d: "M9.10484 12.1456L4.50848 13.4903L2.97929 18.2536H7.05713L9.79033 18.2888L7.71626 14.2461L9.10484 12.1456Z",
@@ -28411,7 +28702,7 @@ function MetaMaskPaymentIcon({ size = 16 }) {
28411
28702
  strokeLinejoin: "round"
28412
28703
  }
28413
28704
  ),
28414
- /* @__PURE__ */ React252.createElement(
28705
+ /* @__PURE__ */ React253.createElement(
28415
28706
  "path",
28416
28707
  {
28417
28708
  d: "M15.3446 14.4658L15.6347 9.39485L16.9705 5.7828H11.0383L12.3566 9.39485L12.6642 14.4658L12.7696 16.0653L12.7784 20.0025H15.2128L15.2304 16.0653L15.3446 14.4658Z",
@@ -28425,14 +28716,14 @@ function MetaMaskPaymentIcon({ size = 16 }) {
28425
28716
  );
28426
28717
  }
28427
28718
  function MastercardPaymentIcon({ size = 16 }) {
28428
- return /* @__PURE__ */ React252.createElement(
28719
+ return /* @__PURE__ */ React253.createElement(
28429
28720
  "svg",
28430
28721
  {
28431
28722
  xmlns: "http://www.w3.org/2000/svg",
28432
28723
  height: size,
28433
28724
  viewBox: "0 0 152.407 108"
28434
28725
  },
28435
- /* @__PURE__ */ React252.createElement("g", null, /* @__PURE__ */ React252.createElement("rect", { width: "152.407", height: "108", fill: "transparent" }), /* @__PURE__ */ React252.createElement("g", null, /* @__PURE__ */ React252.createElement(
28726
+ /* @__PURE__ */ React253.createElement("g", null, /* @__PURE__ */ React253.createElement("rect", { width: "152.407", height: "108", fill: "transparent" }), /* @__PURE__ */ React253.createElement("g", null, /* @__PURE__ */ React253.createElement(
28436
28727
  "rect",
28437
28728
  {
28438
28729
  x: "60.4117",
@@ -28441,21 +28732,21 @@ function MastercardPaymentIcon({ size = 16 }) {
28441
28732
  height: "56.6064",
28442
28733
  fill: "#ff5f00"
28443
28734
  }
28444
- ), /* @__PURE__ */ React252.createElement(
28735
+ ), /* @__PURE__ */ React253.createElement(
28445
28736
  "path",
28446
28737
  {
28447
28738
  d: "M382.20839,306a35.9375,35.9375,0,0,1,13.7499-28.3032,36,36,0,1,0,0,56.6064A35.938,35.938,0,0,1,382.20839,306Z",
28448
28739
  transform: "translate(-319.79649 -252)",
28449
28740
  fill: "#eb001b"
28450
28741
  }
28451
- ), /* @__PURE__ */ React252.createElement(
28742
+ ), /* @__PURE__ */ React253.createElement(
28452
28743
  "path",
28453
28744
  {
28454
28745
  d: "M454.20349,306a35.99867,35.99867,0,0,1-58.2452,28.3032,36.00518,36.00518,0,0,0,0-56.6064A35.99867,35.99867,0,0,1,454.20349,306Z",
28455
28746
  transform: "translate(-319.79649 -252)",
28456
28747
  fill: "#f79e1b"
28457
28748
  }
28458
- ), /* @__PURE__ */ React252.createElement(
28749
+ ), /* @__PURE__ */ React253.createElement(
28459
28750
  "path",
28460
28751
  {
28461
28752
  d: "M450.76889,328.3077v-1.1589h.4673v-.2361h-1.1901v.2361h.4675v1.1589Zm2.3105,0v-1.3973h-.3648l-.41959.9611-.41971-.9611h-.365v1.3973h.2576v-1.054l.3935.9087h.2671l.39351-.911v1.0563Z",
@@ -28469,7 +28760,7 @@ function FunkitPaymentsIconLine({
28469
28760
  size = 16,
28470
28761
  gap = "2"
28471
28762
  }) {
28472
- return /* @__PURE__ */ React252.createElement(
28763
+ return /* @__PURE__ */ React253.createElement(
28473
28764
  Box,
28474
28765
  {
28475
28766
  display: "flex",
@@ -28478,9 +28769,9 @@ function FunkitPaymentsIconLine({
28478
28769
  alignItems: "center",
28479
28770
  justifyContent: "center"
28480
28771
  },
28481
- /* @__PURE__ */ React252.createElement(MetaMaskPaymentIcon, { size }),
28482
- /* @__PURE__ */ React252.createElement(MastercardPaymentIcon, { size }),
28483
- /* @__PURE__ */ React252.createElement(CoinbaseIcon, { size })
28772
+ /* @__PURE__ */ React253.createElement(MetaMaskPaymentIcon, { size }),
28773
+ /* @__PURE__ */ React253.createElement(MastercardPaymentIcon, { size }),
28774
+ /* @__PURE__ */ React253.createElement(CoinbaseIcon, { size })
28484
28775
  );
28485
28776
  }
28486
28777
 
@@ -28539,7 +28830,7 @@ var useUpdateActiveFunkitCheckout = () => {
28539
28830
 
28540
28831
  // src/providers/FunkitProvider.tsx
28541
28832
  import { QueryClientProvider } from "@tanstack/react-query";
28542
- import React253, { createContext as createContext20, useContext as useContext20 } from "react";
28833
+ import React254, { createContext as createContext20, useContext as useContext20 } from "react";
28543
28834
  import { WagmiProvider, useAccountEffect as useAccountEffect3 } from "wagmi";
28544
28835
 
28545
28836
  // src/utils/funkitProvider.ts
@@ -28623,7 +28914,7 @@ function setFunkitConnectVersion({ version }) {
28623
28914
  localStorage.setItem(storageKey5, version);
28624
28915
  }
28625
28916
  function getCurrentSdkVersion() {
28626
- return "5.4.0";
28917
+ return "5.4.1";
28627
28918
  }
28628
28919
  function useFingerprint() {
28629
28920
  const fingerprint = useCallback49(() => {
@@ -28674,7 +28965,7 @@ function FunkitProvider(props) {
28674
28965
  !!props.debug,
28675
28966
  getCurrentSdkVersion()
28676
28967
  );
28677
- const MainChild = /* @__PURE__ */ React253.createElement(FunkitThemeProvider, { theme: props.theme }, /* @__PURE__ */ React253.createElement(
28968
+ const MainChild = /* @__PURE__ */ React254.createElement(FunkitThemeProvider, { theme: props.theme }, /* @__PURE__ */ React254.createElement(
28678
28969
  FunkitProviderInner,
28679
28970
  {
28680
28971
  avatar: props.avatar,
@@ -28687,7 +28978,7 @@ function FunkitProvider(props) {
28687
28978
  },
28688
28979
  props.children
28689
28980
  ));
28690
- return finalWagmiConfig && finalQueryClient ? /* @__PURE__ */ React253.createElement(WagmiProvider, { config: finalWagmiConfig }, /* @__PURE__ */ React253.createElement(QueryClientProvider, { client: finalQueryClient }, MainChild)) : MainChild;
28981
+ return finalWagmiConfig && finalQueryClient ? /* @__PURE__ */ React254.createElement(WagmiProvider, { config: finalWagmiConfig }, /* @__PURE__ */ React254.createElement(QueryClientProvider, { client: finalQueryClient }, MainChild)) : MainChild;
28691
28982
  }
28692
28983
  function FunkitProviderInner({
28693
28984
  avatar,
@@ -28707,7 +28998,7 @@ function FunkitProviderInner({
28707
28998
  const avatarContext = avatar ?? defaultAvatar;
28708
28999
  const isSandboxMode = !!sandbox;
28709
29000
  const modalSizeFinal = modalSize || ModalSizeOptions.COMPACT;
28710
- return /* @__PURE__ */ React253.createElement(FunkitConfigContext.Provider, { value: funkitConfig }, /* @__PURE__ */ React253.createElement(FunkitConnectChainProvider, { initialChain }, /* @__PURE__ */ React253.createElement(ModalSizeProvider, { modalSize: modalSizeFinal }, /* @__PURE__ */ React253.createElement(FunkitWeb2Provider, null, /* @__PURE__ */ React253.createElement(GeneralWalletProvider, null, /* @__PURE__ */ React253.createElement(FunkitFlagsProvider, null, /* @__PURE__ */ React253.createElement(FunkitCheckoutHistoryProvider, null, /* @__PURE__ */ React253.createElement(FunkitCheckoutProvider, null, /* @__PURE__ */ React253.createElement(FunkitQuoteProvider, null, /* @__PURE__ */ React253.createElement(FunkitSandboxContext.Provider, { value: isSandboxMode }, /* @__PURE__ */ React253.createElement(FunkitMeshProvider, null, /* @__PURE__ */ React253.createElement(AvatarContext.Provider, { value: avatarContext }, /* @__PURE__ */ React253.createElement(ThemeIdContext2.Provider, { value: id }, /* @__PURE__ */ React253.createElement(ShowBalanceProvider, null, /* @__PURE__ */ React253.createElement(FunkitMoonpayProvider, { debug: !!debug }, /* @__PURE__ */ React253.createElement(UserPresenceProvider, null, /* @__PURE__ */ React253.createElement(ModalProvider, null, activeTheme ? /* @__PURE__ */ React253.createElement(
29001
+ return /* @__PURE__ */ React254.createElement(FunkitConfigContext.Provider, { value: funkitConfig }, /* @__PURE__ */ React254.createElement(FunkitConnectChainProvider, { initialChain }, /* @__PURE__ */ React254.createElement(ModalSizeProvider, { modalSize: modalSizeFinal }, /* @__PURE__ */ React254.createElement(FunkitWeb2Provider, null, /* @__PURE__ */ React254.createElement(GeneralWalletProvider, null, /* @__PURE__ */ React254.createElement(FunkitFlagsProvider, null, /* @__PURE__ */ React254.createElement(FunkitCheckoutHistoryProvider, null, /* @__PURE__ */ React254.createElement(FunkitCheckoutProvider, null, /* @__PURE__ */ React254.createElement(FunkitQuoteProvider, null, /* @__PURE__ */ React254.createElement(FunkitSandboxContext.Provider, { value: isSandboxMode }, /* @__PURE__ */ React254.createElement(FunkitMeshProvider, null, /* @__PURE__ */ React254.createElement(AvatarContext.Provider, { value: avatarContext }, /* @__PURE__ */ React254.createElement(ThemeIdContext2.Provider, { value: id }, /* @__PURE__ */ React254.createElement(ShowBalanceProvider, null, /* @__PURE__ */ React254.createElement(FunkitMoonpayProvider, { debug: !!debug }, /* @__PURE__ */ React254.createElement(UserPresenceProvider, null, /* @__PURE__ */ React254.createElement(ModalProvider, null, activeTheme ? /* @__PURE__ */ React254.createElement(
28711
29002
  "div",
28712
29003
  {
28713
29004
  ...createThemeRootProps2(id),
@@ -28716,7 +29007,7 @@ function FunkitProviderInner({
28716
29007
  height: "100%"
28717
29008
  }
28718
29009
  },
28719
- /* @__PURE__ */ React253.createElement(
29010
+ /* @__PURE__ */ React254.createElement(
28720
29011
  "style",
28721
29012
  {
28722
29013
  dangerouslySetInnerHTML: {