@funkit/connect 6.15.7 → 6.15.9

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/CHANGELOG.md CHANGED
@@ -1,5 +1,25 @@
1
1
  # @funkit/connect
2
2
 
3
+ ## 6.15.9
4
+
5
+ ### Patch Changes
6
+
7
+ - Updated dependencies [d63acb4]
8
+ - @funkit/chains@0.4.8
9
+ - @funkit/core@2.3.65
10
+ - @funkit/wagmi-tools@3.0.88
11
+
12
+ ## 6.15.8
13
+
14
+ ### Patch Changes
15
+
16
+ - 4d90219: feat(connect): display min amount required in badge tooltip
17
+ - da63888: fix check of isSameDestination
18
+ - 284c405: add ethereal to layerZero dest chain mapping
19
+ - d3ed26d: always show funxyz bottom line if enabled
20
+ - adc84ec: add first dynamic target asset as default
21
+ - 9769dd5: feat(connect): added contact support to security banner
22
+
3
23
  ## 6.15.7
4
24
 
5
25
  ### Patch Changes
@@ -1,6 +1,6 @@
1
1
  declare const _default: {
2
2
  readonly addressblacklist: {
3
- readonly value: readonly ["0x7b97b46D35a28B561d47F50CFB9a2735E506e59d", "0x409ad08cc6CA757f69Fb80250a424B9eFeB99807", "0x02A86f51aA7B8b1c17c30364748d5Ae4a0727E23", "0x64131b60502C01362639CC5cfE1a1efB6Be1165A"];
3
+ readonly value: readonly ["0x7b97b46D35a28B561d47F50CFB9a2735E506e59d", "0x409ad08cc6CA757f69Fb80250a424B9eFeB99807", "0x02A86f51aA7B8b1c17c30364748d5Ae4a0727E23", "0x64131b60502C01362639CC5cfE1a1efB6Be1165A", "0xb84440Ee8BAD69c14755bBb7093f861c3512E3D1"];
4
4
  };
5
5
  readonly array_of_strings: {
6
6
  readonly value: readonly [];
@@ -11,6 +11,9 @@ declare const _default: {
11
11
  readonly boolean: {
12
12
  readonly value: false;
13
13
  };
14
+ readonly brokerage_hide_you_receive: {
15
+ readonly value: false;
16
+ };
14
17
  readonly showinfobanner: {
15
18
  readonly value: {
16
19
  readonly message: "";
@@ -28,7 +28,7 @@ export declare namespace Dialog {
28
28
  var Title: ({ title, titleMeta, hasCloseButton: hasCloseButtonProp, isCloseDisabled, onClose, hasBackButton: hasBackButtonProp, isBackDisabled, onBack, className, }: DialogTitleProps) => React.JSX.Element;
29
29
  var Content: ({ children, fullHeight, paddingLeft, paddingBottom, paddingTop, className, withTopDivider, withBottomDivider, id, withoutInternalPadding, ...boxProps }: DialogContentProps) => React.JSX.Element;
30
30
  var BottomSection: ({ paddingX, children, ...boxProps }: BoxProps) => React.JSX.Element;
31
- var BottomBar: ({ topSection, actionButtonProps, bottomSection, onClose, }: import("../FunBottomBar/FunBottomBar").FunBottomBarProps) => React.JSX.Element | null;
31
+ var BottomBar: ({ topSection, actionButtonProps, onClose, }: import("../FunBottomBar/FunBottomBar").FunBottomBarProps) => React.JSX.Element | null;
32
32
  }
33
33
  interface DialogContentProps extends BoxProps {
34
34
  children: ReactNode;
@@ -5,10 +5,11 @@ interface FunAssetItemProps {
5
5
  isActive?: boolean;
6
6
  isDisabled?: boolean;
7
7
  badgeText: string | null;
8
+ badgeTooltip?: string;
8
9
  onClick: () => void;
9
10
  testId?: string;
10
11
  isChainIconHidden?: boolean;
11
12
  }
12
- export declare const FunAssetItem: ({ asset, isActive, isDisabled, isChainIconHidden, badgeText, onClick, testId, }: FunAssetItemProps) => React.JSX.Element;
13
+ export declare const FunAssetItem: ({ asset, isActive, isDisabled, isChainIconHidden, badgeText, badgeTooltip, onClick, testId, }: FunAssetItemProps) => React.JSX.Element;
13
14
  export declare function FunAssetItemSkeleton(): React.JSX.Element;
14
15
  export {};
@@ -3,7 +3,6 @@ import { type FunButtonProps } from '../FunButton/FunButton';
3
3
  export interface FunBottomBarProps {
4
4
  topSection?: React.ReactNode;
5
5
  actionButtonProps?: FunButtonProps;
6
- bottomSection?: React.ReactNode;
7
6
  onClose?: () => void;
8
7
  }
9
- export declare const FunBottomBar: ({ topSection, actionButtonProps, bottomSection, onClose, }: FunBottomBarProps) => React.JSX.Element | null;
8
+ export declare const FunBottomBar: ({ topSection, actionButtonProps, onClose, }: FunBottomBarProps) => React.JSX.Element | null;
@@ -26,6 +26,7 @@ interface AssetUsableToPayParms {
26
26
  export declare const isAssetUsableToPayForCheckout: ({ config, payerAddress, paymentMethod, targetChainId, targetTokenAddress, assetChainId, assetTokenAddress, assetUsdAmount, loginType, isAllowedForCheckout, minUsdRequired, t, }: AssetUsableToPayParms) => {
27
27
  isUsable: boolean;
28
28
  reason: string;
29
+ minUsdRequired?: number;
29
30
  };
30
31
  export declare function getUsdAvailableAmount(targetChainId: string, assetChainId: string | undefined, assetUsdAmount: number | null | undefined, paymentMethod: PaymentMethod | undefined): number | null;
31
32
  /**
package/dist/index.js CHANGED
@@ -1514,7 +1514,7 @@ function setFunkitConnectVersion({ version }) {
1514
1514
  localStorage.setItem(storageKey, version);
1515
1515
  }
1516
1516
  function getCurrentSdkVersion() {
1517
- return "6.15.7";
1517
+ return "6.15.9";
1518
1518
  }
1519
1519
  function useFingerprint() {
1520
1520
  const fingerprint = useCallback2(() => {
@@ -2245,8 +2245,18 @@ var isAssetUsableToPayForCheckout = ({
2245
2245
  assetUsdAmount,
2246
2246
  paymentMethod
2247
2247
  );
2248
+ const feeEstimate = getFeesUsdEstimate(
2249
+ targetChainId,
2250
+ assetChainId,
2251
+ paymentMethod
2252
+ );
2248
2253
  if (usableAmountEstimation !== null && usableAmountEstimation < minValueThreshold) {
2249
- return { isUsable: false, reason: t("payment.lowBalance") };
2254
+ return {
2255
+ isUsable: false,
2256
+ reason: t("payment.lowBalance"),
2257
+ // surface minimum requirement for low balance tooltip
2258
+ minUsdRequired: minValueThreshold + feeEstimate
2259
+ };
2250
2260
  }
2251
2261
  const isConnectedAccountSupported = loginType !== "web2" /* Web2 */ || FUNKIT_CONNECT_SUPPORTED_CHAINS_INFO[assetChainId]?.isFunWalletSupported;
2252
2262
  const isSupported = isAllowedForCheckout && isConnectedAccountSupported && FUNKIT_CONNECT_SUPPORTED_CHAINS_INFO[assetChainId]?.isCheckoutSupported;
@@ -2476,7 +2486,7 @@ import {
2476
2486
  SUSHI_API_KEY,
2477
2487
  VENTUALS_API_KEY
2478
2488
  } from "@funkit/api-base";
2479
- import { bitcoinChain } from "@funkit/chains";
2489
+ import { MONAD_CHAIN_ID as MONAD_CHAIN_ID2, bitcoinChain } from "@funkit/chains";
2480
2490
  import { FlagKey } from "@funkit/utils";
2481
2491
  import { arbitrum as arbitrum2, base as base4, polygon as polygon2 } from "viem/chains";
2482
2492
  var FUN_INTERNAL_USERS = [
@@ -2577,6 +2587,14 @@ var QR_CODE_WITH_SOLANA = {
2577
2587
  // solana - only enable once customers are on v5.0.11, anything prior will break
2578
2588
  1151111081099710: ["SOL", "USDC", "USDT", "TRUMP", "USDe"]
2579
2589
  };
2590
+ var QR_CODE_WITH_BITCOIN = {
2591
+ ...QR_CODE_WITH_SOLANA,
2592
+ [bitcoinChain.id]: ["BTC"]
2593
+ };
2594
+ var QR_CODE_WITH_MONAD = {
2595
+ ...QR_CODE_WITH_BITCOIN,
2596
+ [MONAD_CHAIN_ID2]: ["MON", "USDC"]
2597
+ };
2580
2598
  var WITHDRAWAL_CHAINS_AND_ASSETS = {
2581
2599
  ...COMMON_SUPPORT_CHAINS_AND_ASSETS,
2582
2600
  // solana
@@ -2639,7 +2657,7 @@ var flagConfig = {
2639
2657
  {
2640
2658
  key: "apiKey",
2641
2659
  type: "isAnyOf",
2642
- values: [KATANA_API_KEY2]
2660
+ values: [KATANA_API_KEY2, MONAD_API_KEY]
2643
2661
  }
2644
2662
  ],
2645
2663
  value: true
@@ -2752,6 +2770,37 @@ var flagConfig = {
2752
2770
  ...QR_CODE_WITH_SOLANA[42161].filter((token) => token !== "USDe")
2753
2771
  ]
2754
2772
  })
2773
+ },
2774
+ // Omit MON as a source asset for Monad
2775
+ {
2776
+ if_any: [
2777
+ {
2778
+ key: "apiKey",
2779
+ type: "isAnyOf",
2780
+ values: [MONAD_API_KEY]
2781
+ }
2782
+ ],
2783
+ value: JSON.stringify({
2784
+ ...QR_CODE_WITH_MONAD,
2785
+ [MONAD_CHAIN_ID2]: [
2786
+ ...QR_CODE_WITH_MONAD[MONAD_CHAIN_ID2].filter(
2787
+ (token) => token !== "MON"
2788
+ )
2789
+ ]
2790
+ })
2791
+ },
2792
+ {
2793
+ if_any: [
2794
+ {
2795
+ key: "apiKey",
2796
+ type: "isAnyOf",
2797
+ values: [POLYMARKET_API_KEY2]
2798
+ }
2799
+ ],
2800
+ value: JSON.stringify(QR_CODE_WITH_BITCOIN)
2801
+ // TODO: uncomment when Polymarket will bump their package version
2802
+ // Otherwise it will break their modal!!
2803
+ // value: JSON.stringify(QR_CODE_WITH_MONAD),
2755
2804
  }
2756
2805
  ]
2757
2806
  },
@@ -2867,7 +2916,34 @@ var flagConfig = {
2867
2916
  },
2868
2917
  [FlagKey.TokenTransferNewTokens]: {
2869
2918
  type: "string",
2870
- default_value: ""
2919
+ default_value: "",
2920
+ overrides: [
2921
+ // To make sure we will not display new token badges for Monad
2922
+ {
2923
+ if_any: [
2924
+ {
2925
+ key: "apiKey",
2926
+ type: "isAnyOf",
2927
+ values: [MONAD_API_KEY]
2928
+ }
2929
+ ],
2930
+ value: ""
2931
+ }
2932
+ // TODO: uncomment when Polymarket will bump their package version
2933
+ // otherwise it will break their modal!!
2934
+ // {
2935
+ // if_any: [
2936
+ // {
2937
+ // key: 'apiKey',
2938
+ // type: 'isAnyOf',
2939
+ // values: [POLYMARKET_API_KEY],
2940
+ // },
2941
+ // ],
2942
+ // value: JSON.stringify({
2943
+ // [MONAD_CHAIN_ID]: ['MON'],
2944
+ // }),
2945
+ // },
2946
+ ]
2871
2947
  },
2872
2948
  [FlagKey.NewTokenAssetSelectionBanner]: {
2873
2949
  type: "string",
@@ -3190,6 +3266,7 @@ var flagConfig = {
3190
3266
  type: "boolean",
3191
3267
  default_value: true,
3192
3268
  overrides: [
3269
+ // Actually disable bitcoin for Ethereal
3193
3270
  {
3194
3271
  if_any: [
3195
3272
  {
@@ -3199,6 +3276,17 @@ var flagConfig = {
3199
3276
  }
3200
3277
  ],
3201
3278
  value: false
3279
+ },
3280
+ // Disable bitcoin for Monad and Polymarket to explicitly enable it.
3281
+ {
3282
+ if_any: [
3283
+ {
3284
+ key: "apiKey",
3285
+ type: "isAnyOf",
3286
+ values: [MONAD_API_KEY, POLYMARKET_API_KEY2]
3287
+ }
3288
+ ],
3289
+ value: false
3202
3290
  }
3203
3291
  ]
3204
3292
  },
@@ -3888,19 +3976,7 @@ function getCheckoutTokenTransferParams({
3888
3976
  };
3889
3977
  const dynamicTargetAssetCandidates = checkoutConfig.dynamicTargetAssetCandidates;
3890
3978
  if (dynamicTargetAssetCandidates?.[0]) {
3891
- const defaultCandidate = dynamicTargetAssetCandidates.find(
3892
- (candidate) => candidate.isDefault
3893
- );
3894
- if (!defaultCandidate) {
3895
- logger.error(
3896
- "No default candidate found for dynamic target asset candidates",
3897
- void 0,
3898
- {
3899
- checkoutConfig
3900
- }
3901
- );
3902
- return;
3903
- }
3979
+ const defaultCandidate = dynamicTargetAssetCandidates.find((candidate) => candidate.isDefault) || dynamicTargetAssetCandidates[0];
3904
3980
  return {
3905
3981
  ...commonParams,
3906
3982
  toChainId: defaultCandidate.tokenChainId,
@@ -7706,20 +7782,18 @@ var topSectionDynamicPadding = "n5qwi1 _1rsrm2fgz";
7706
7782
  var FunBottomBar = ({
7707
7783
  topSection = null,
7708
7784
  actionButtonProps,
7709
- bottomSection,
7710
7785
  onClose
7711
7786
  }) => {
7712
7787
  const { t } = useFunkitTranslation();
7713
7788
  const { uiCustomizations } = useFunkitConfig();
7714
7789
  const showTagline = useFlag(FlagKey7.ShowPoweredTagline);
7715
- const defaultBottomSection = showTagline ? /* @__PURE__ */ React39.createElement(FunPoweredTagline, null) : void 0;
7716
- const bottomSectionComponent = bottomSection ?? defaultBottomSection;
7790
+ const powerTagline = showTagline ? /* @__PURE__ */ React39.createElement(FunPoweredTagline, null) : void 0;
7717
7791
  const hasMultipleButtons = !!onClose;
7718
7792
  const customButtonRadius = showTagline || hasMultipleButtons ? void 0 : isMobile2() ? "modalActionButtonMobile" : "modalActionButton";
7719
- if (!topSection && !bottomSection && !actionButtonProps && !onClose) {
7793
+ if (!topSection && !actionButtonProps && !onClose && !powerTagline) {
7720
7794
  return null;
7721
7795
  }
7722
- return /* @__PURE__ */ React39.createElement(Box, null, /* @__PURE__ */ React39.createElement(Box, { className: topSectionDynamicPadding }, topSection), /* @__PURE__ */ React39.createElement(Box, { display: "flex", gap: "8" }, onClose && /* @__PURE__ */ React39.createElement(
7796
+ return /* @__PURE__ */ React39.createElement(Box, null, (topSection || !powerTagline) && /* @__PURE__ */ React39.createElement(Box, { className: topSectionDynamicPadding }, topSection), /* @__PURE__ */ React39.createElement(Box, { display: "flex", gap: "8" }, onClose && /* @__PURE__ */ React39.createElement(
7723
7797
  FunButton,
7724
7798
  {
7725
7799
  onClick: onClose,
@@ -7743,7 +7817,7 @@ var FunBottomBar = ({
7743
7817
  uppercase: uiCustomizations?.callToActionsUppercase,
7744
7818
  testId: "bottom-bar-action-button"
7745
7819
  }
7746
- )), bottomSectionComponent && /* @__PURE__ */ React39.createElement(Box, { paddingTop: "10" }, bottomSectionComponent));
7820
+ )), powerTagline && /* @__PURE__ */ React39.createElement(Box, { paddingTop: "10" }, powerTagline));
7747
7821
  };
7748
7822
 
7749
7823
  // src/components/FunButton/FunBackButton.tsx
@@ -8708,7 +8782,7 @@ var FunTooltip = ({
8708
8782
  ref: tooltipRef,
8709
8783
  width
8710
8784
  },
8711
- /* @__PURE__ */ React47.createElement(AnimatePresence3, null, isDisplayed && /* @__PURE__ */ React47.createElement(
8785
+ /* @__PURE__ */ React47.createElement(AnimatePresence3, null, isDisplayed && content2 && /* @__PURE__ */ React47.createElement(
8712
8786
  motion4.div,
8713
8787
  {
8714
8788
  initial: { opacity: 0 },
@@ -11838,7 +11912,8 @@ var default_configs_default = {
11838
11912
  "0x7b97b46D35a28B561d47F50CFB9a2735E506e59d",
11839
11913
  "0x409ad08cc6CA757f69Fb80250a424B9eFeB99807",
11840
11914
  "0x02A86f51aA7B8b1c17c30364748d5Ae4a0727E23",
11841
- "0x64131b60502C01362639CC5cfE1a1efB6Be1165A"
11915
+ "0x64131b60502C01362639CC5cfE1a1efB6Be1165A",
11916
+ "0xb84440Ee8BAD69c14755bBb7093f861c3512E3D1"
11842
11917
  ]
11843
11918
  },
11844
11919
  array_of_strings: {
@@ -11867,6 +11942,9 @@ var default_configs_default = {
11867
11942
  boolean: {
11868
11943
  value: false
11869
11944
  },
11945
+ brokerage_hide_you_receive: {
11946
+ value: false
11947
+ },
11870
11948
  showinfobanner: {
11871
11949
  value: {
11872
11950
  message: "",
@@ -18055,7 +18133,7 @@ import {
18055
18133
  import React114, { useCallback as useCallback22, useEffect as useEffect32, useMemo as useMemo24, useState as useState33 } from "react";
18056
18134
 
18057
18135
  // src/components/FunCheckoutHistory/FunDirectExecutionHistoryDetail.tsx
18058
- import { hyperEvmChain as hyperEvmChain2 } from "@funkit/chains";
18136
+ import { ETHEREAL_CHAIN_ID as ETHEREAL_CHAIN_ID2, hyperEvmChain as hyperEvmChain2 } from "@funkit/chains";
18059
18137
  import {
18060
18138
  formatAddress as formatAddress4,
18061
18139
  formatTimestamp as formatTimestamp2,
@@ -18665,7 +18743,8 @@ function DirectExecutionOrderDetailSection({
18665
18743
  })), /* @__PURE__ */ React113.createElement(Text, { color: "tertiaryText", size: "12" }, getTimestamp2(updatedTime))));
18666
18744
  }
18667
18745
  var lzOftChainEnumToChainId = {
18668
- hyperliquid: hyperEvmChain2.id
18746
+ hyperliquid: hyperEvmChain2.id,
18747
+ ethereal: ETHEREAL_CHAIN_ID2
18669
18748
  };
18670
18749
  function getLzOftDestinationChain(de) {
18671
18750
  const lzData = de.listenerInfo?.layerzeroExecutionStatusResponse?.data?.[0];
@@ -25885,6 +25964,7 @@ var FunAssetItem = ({
25885
25964
  isDisabled = false,
25886
25965
  isChainIconHidden = false,
25887
25966
  badgeText,
25967
+ badgeTooltip,
25888
25968
  onClick,
25889
25969
  testId
25890
25970
  }) => {
@@ -25962,7 +26042,7 @@ var FunAssetItem = ({
25962
26042
  justifyContent: "flex-end",
25963
26043
  gap: "12"
25964
26044
  },
25965
- badgeText && /* @__PURE__ */ React165.createElement(FunBadge, { borderColor: "generalBorder" }, badgeText),
26045
+ badgeText && /* @__PURE__ */ React165.createElement(FunTooltip, { content: badgeTooltip, startDelay: 150 }, /* @__PURE__ */ React165.createElement(FunBadge, { borderColor: "generalBorder" }, badgeText)),
25966
26046
  /* @__PURE__ */ React165.createElement(Box, { fontSize: TEXT_SIZE_MEDIUM, fontWeight: "medium" }, formatCurrencyAndStringify10(asset.usdAmount || 0))
25967
26047
  )
25968
26048
  )
@@ -26802,7 +26882,8 @@ function useAssetOptions({
26802
26882
  isDefault,
26803
26883
  isDisabled,
26804
26884
  isUserSelected,
26805
- priority
26885
+ priority,
26886
+ minUsdRequired: usableForCheckout.minUsdRequired
26806
26887
  };
26807
26888
  }).sort(
26808
26889
  (a, b) => (
@@ -27008,7 +27089,7 @@ function AccountSelectAsset({
27008
27089
  }
27009
27090
  ) : void 0
27010
27091
  }
27011
- ) : /* @__PURE__ */ React173.createElement(Box, { display: "flex", flexDirection: "column", gap: "4" }, assetOptions.map(({ asset, isDisabled: isDisabled2, badgeText }) => /* @__PURE__ */ React173.createElement(
27092
+ ) : /* @__PURE__ */ React173.createElement(Box, { display: "flex", flexDirection: "column", gap: "4" }, assetOptions.map(({ asset, isDisabled: isDisabled2, badgeText, minUsdRequired }) => /* @__PURE__ */ React173.createElement(
27012
27093
  FunAssetItem,
27013
27094
  {
27014
27095
  key: asset.chainSymbolKey,
@@ -27017,6 +27098,9 @@ function AccountSelectAsset({
27017
27098
  isDisabled: isDisabled2,
27018
27099
  isChainIconHidden: paymentMethodInfo.paymentMethod === "brokerage" /* BROKERAGE */,
27019
27100
  badgeText: isPolymarketCustomer(apiKey) && badgeText === t("badge.sameAsset") ? "" : badgeText,
27101
+ badgeTooltip: minUsdRequired ? t("selectAsset.lowBalanceTooltip", {
27102
+ amount: formatCurrencyAndStringify11(minUsdRequired)
27103
+ }) : void 0,
27020
27104
  onClick: () => setSelectedChainTokenSymbol(asset.chainSymbolKey)
27021
27105
  }
27022
27106
  )));
@@ -30723,7 +30807,7 @@ var PaymentRouteSummary = ({
30723
30807
  const { uiCustomizations } = useFunkitConfig();
30724
30808
  const customDestinationConfig = uiCustomizations?.confirmationScreen?.destinationConfig;
30725
30809
  const isAccountPayment = paymentMethodInfo?.paymentMethod === "balance" /* ACCOUNT_BALANCE */;
30726
- const isSameDestination = isAccountPayment && !customRecipient;
30810
+ const isSameDestination = isAccountPayment && !customRecipient && !customDestinationConfig;
30727
30811
  const sourceComponent = paymentMethodInfo && /* @__PURE__ */ React210.createElement(
30728
30812
  PaymentSource,
30729
30813
  {
@@ -30733,7 +30817,7 @@ var PaymentRouteSummary = ({
30733
30817
  isWithdrawal
30734
30818
  }
30735
30819
  );
30736
- const destinationComponent = (!isSameDestination || customDestinationConfig) && /* @__PURE__ */ React210.createElement(
30820
+ const destinationComponent = !isSameDestination && /* @__PURE__ */ React210.createElement(
30737
30821
  PaymentDestination,
30738
30822
  {
30739
30823
  destinationConfig: customDestinationConfig,
@@ -33624,6 +33708,7 @@ import React240, { useRef as useRef30 } from "react";
33624
33708
 
33625
33709
  // src/components/FunCheckoutBlocked/FunCheckoutBlocked.tsx
33626
33710
  import React239 from "react";
33711
+ import { Trans as Trans13 } from "react-i18next";
33627
33712
 
33628
33713
  // src/components/FunCheckoutBlocked/FunCheckoutBlocked.css.ts
33629
33714
  var funCheckoutBlockedStyle = "hkjz5k0";
@@ -33633,10 +33718,29 @@ var FunCheckoutBlocked = ({ reason }) => {
33633
33718
  const { t } = useFunkitTranslation();
33634
33719
  const blockedReasonToDescription = {
33635
33720
  geoblock: t("funCheckoutBlocked.geoblock", { orgName: FUN_ORG_NAME }),
33636
- security: t("funCheckoutBlocked.security", { orgName: FUN_ORG_NAME })
33721
+ security: /* @__PURE__ */ React239.createElement(
33722
+ Trans13,
33723
+ {
33724
+ t,
33725
+ i18nKey: "funCheckoutBlocked.security",
33726
+ components: {
33727
+ ContactSupportLink: /* @__PURE__ */ React239.createElement(ContactSupportLink, { size: "10" })
33728
+ },
33729
+ values: {
33730
+ orgName: FUN_ORG_NAME
33731
+ }
33732
+ }
33733
+ )
33637
33734
  };
33638
33735
  const description = blockedReasonToDescription[reason];
33639
- return /* @__PURE__ */ React239.createElement(Box, { className: funCheckoutBlockedStyle }, /* @__PURE__ */ React239.createElement(FunAlert, { icon: /* @__PURE__ */ React239.createElement(FunInfoIcon, null), description }));
33736
+ return /* @__PURE__ */ React239.createElement(Box, { className: funCheckoutBlockedStyle }, /* @__PURE__ */ React239.createElement(
33737
+ FunAlert,
33738
+ {
33739
+ icon: /* @__PURE__ */ React239.createElement(FunInfoIcon, null),
33740
+ description,
33741
+ verticalAlignment: "top"
33742
+ }
33743
+ ));
33640
33744
  };
33641
33745
 
33642
33746
  // src/modals/CheckoutModal/FunCheckoutModal.tsx
@@ -35801,7 +35905,7 @@ var en_default = {
35801
35905
  },
35802
35906
  funCheckoutBlocked: {
35803
35907
  geoblock: "Sorry, {{orgName}} Checkout is not available in your region.",
35804
- security: "Sorry, {{orgName}} Checkout is unable to proceed for security reasons."
35908
+ security: `Sorry, {{orgName}} Checkout is unable to proceed for security reasons. If you feel you've received this message in error, please <ContactSupportLink text="contact support" />.`
35805
35909
  },
35806
35910
  payment: {
35807
35911
  depositWithPayPal: "Deposit with PayPal",
@@ -35881,7 +35985,8 @@ var en_default = {
35881
35985
  warpcastLink: "Warpcast Link"
35882
35986
  },
35883
35987
  selectAsset: {
35884
- yourTokens: "Your tokens"
35988
+ yourTokens: "Your tokens",
35989
+ lowBalanceTooltip: "Minimum required: {{amount}}"
35885
35990
  },
35886
35991
  transferToken: {
35887
35992
  noLimit: "No limit",
@@ -36310,7 +36415,7 @@ var es_default = {
36310
36415
  },
36311
36416
  funCheckoutBlocked: {
36312
36417
  geoblock: "Lo sentimos, {{orgName}} Checkout no est\xE1 disponible en tu regi\xF3n.",
36313
- security: "Lo sentimos, {{orgName}} Checkout no puede continuar por razones de seguridad."
36418
+ security: 'Lo sentimos, {{orgName}} Checkout no puede continuar por razones de seguridad. Si crees que has recibido este mensaje por error, por favor <ContactSupportLink text="contacta a soporte" />.'
36314
36419
  },
36315
36420
  payment: {
36316
36421
  depositWithPayPal: "Depositar con PayPal",
@@ -36390,7 +36495,8 @@ var es_default = {
36390
36495
  warpcastLink: "Enlace de Warpcast"
36391
36496
  },
36392
36497
  selectAsset: {
36393
- yourTokens: "Tus tokens"
36498
+ yourTokens: "Tus tokens",
36499
+ lowBalanceTooltip: "M\xEDnimo requerido: {{amount}}"
36394
36500
  },
36395
36501
  transferToken: {
36396
36502
  noLimit: "Sin l\xEDmite",
@@ -36819,7 +36925,7 @@ var ja_default = {
36819
36925
  },
36820
36926
  funCheckoutBlocked: {
36821
36927
  geoblock: "\u7533\u3057\u8A33\u3054\u3056\u3044\u307E\u305B\u3093\u3002\u304A\u4F4F\u307E\u3044\u306E\u5730\u57DF\u3067\u306F{{orgName}}\u306E\u30C1\u30A7\u30C3\u30AF\u30A2\u30A6\u30C8\u3092\u3054\u5229\u7528\u3044\u305F\u3060\u3051\u307E\u305B\u3093\u3002",
36822
- security: "\u7533\u3057\u8A33\u3054\u3056\u3044\u307E\u305B\u3093\u3002\u30BB\u30AD\u30E5\u30EA\u30C6\u30A3\u4E0A\u306E\u7406\u7531\u306B\u3088\u308A\u3001{{orgName}}\u306E\u30C1\u30A7\u30C3\u30AF\u30A2\u30A6\u30C8\u3092\u7D9A\u884C\u3067\u304D\u307E\u305B\u3093\u3002"
36928
+ security: '\u7533\u3057\u8A33\u3054\u3056\u3044\u307E\u305B\u3093\u3002\u30BB\u30AD\u30E5\u30EA\u30C6\u30A3\u4E0A\u306E\u7406\u7531\u306B\u3088\u308A\u3001{{orgName}}\u306E\u30C1\u30A7\u30C3\u30AF\u30A2\u30A6\u30C8\u3092\u7D9A\u884C\u3067\u304D\u307E\u305B\u3093\u3002\u8AA4\u3063\u3066\u3053\u306E\u30E1\u30C3\u30BB\u30FC\u30B8\u3092\u53D7\u3051\u53D6\u3063\u305F\u3068\u601D\u308F\u308C\u308B\u5834\u5408\u306F\u3001<ContactSupportLink text="\u30B5\u30DD\u30FC\u30C8\u306B\u304A\u554F\u3044\u5408\u308F\u305B\u304F\u3060\u3055\u3044" />\u3002'
36823
36929
  },
36824
36930
  payment: {
36825
36931
  depositWithPayPal: "PayPal\u3067\u5165\u91D1",
@@ -36899,7 +37005,8 @@ var ja_default = {
36899
37005
  warpcastLink: "Warpcast\u30EA\u30F3\u30AF"
36900
37006
  },
36901
37007
  selectAsset: {
36902
- yourTokens: "\u3042\u306A\u305F\u306E\u30C8\u30FC\u30AF\u30F3"
37008
+ yourTokens: "\u3042\u306A\u305F\u306E\u30C8\u30FC\u30AF\u30F3",
37009
+ lowBalanceTooltip: "\u6700\u4F4E\u5FC5\u8981\u984D: {{amount}}"
36903
37010
  },
36904
37011
  transferToken: {
36905
37012
  noLimit: "\u5236\u9650\u306A\u3057",
@@ -37328,7 +37435,7 @@ var ko_default = {
37328
37435
  },
37329
37436
  funCheckoutBlocked: {
37330
37437
  geoblock: "\uC8C4\uC1A1\uD569\uB2C8\uB2E4. {{orgName}} \uACB0\uC81C\uB294 \uADC0\uD558\uC758 \uC9C0\uC5ED\uC5D0\uC11C \uC0AC\uC6A9\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4.",
37331
- security: "\uC8C4\uC1A1\uD569\uB2C8\uB2E4. {{orgName}} \uACB0\uC81C\uB294 \uBCF4\uC548\uC0C1\uC758 \uC774\uC720\uB85C \uC9C4\uD589\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4."
37438
+ security: '\uC8C4\uC1A1\uD569\uB2C8\uB2E4. {{orgName}} \uACB0\uC81C\uB294 \uBCF4\uC548\uC0C1\uC758 \uC774\uC720\uB85C \uC9C4\uD589\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4. \uC774 \uBA54\uC2DC\uC9C0\uB97C \uC798\uBABB \uBC1B\uC73C\uC168\uB2E4\uACE0 \uC0DD\uAC01\uB418\uBA74 <ContactSupportLink text="\uACE0\uAC1D \uC9C0\uC6D0\uD300\uC5D0 \uBB38\uC758" />\uD558\uC138\uC694.'
37332
37439
  },
37333
37440
  payment: {
37334
37441
  depositWithPayPal: "PayPal\uB85C \uC785\uAE08",
@@ -37408,7 +37515,8 @@ var ko_default = {
37408
37515
  warpcastLink: "Warpcast \uB9C1\uD06C"
37409
37516
  },
37410
37517
  selectAsset: {
37411
- yourTokens: "\uB0B4 \uD1A0\uD070"
37518
+ yourTokens: "\uB0B4 \uD1A0\uD070",
37519
+ lowBalanceTooltip: "\uCD5C\uC18C \uD544\uC694 \uAE08\uC561: {{amount}}"
37412
37520
  },
37413
37521
  transferToken: {
37414
37522
  noLimit: "\uC81C\uD55C \uC5C6\uC74C",
@@ -37837,7 +37945,7 @@ var ru_default = {
37837
37945
  },
37838
37946
  funCheckoutBlocked: {
37839
37947
  geoblock: "\u041A \u0441\u043E\u0436\u0430\u043B\u0435\u043D\u0438\u044E, \u043E\u043F\u043B\u0430\u0442\u0430 \u0447\u0435\u0440\u0435\u0437 {{orgName}} \u043D\u0435\u0434\u043E\u0441\u0442\u0443\u043F\u043D\u0430 \u0432 \u0432\u0430\u0448\u0435\u043C \u0440\u0435\u0433\u0438\u043E\u043D\u0435.",
37840
- security: "\u041A \u0441\u043E\u0436\u0430\u043B\u0435\u043D\u0438\u044E, \u043E\u043F\u043B\u0430\u0442\u0430 \u0447\u0435\u0440\u0435\u0437 {{orgName}} \u043D\u0435 \u043C\u043E\u0436\u0435\u0442 \u0431\u044B\u0442\u044C \u043F\u0440\u043E\u0434\u043E\u043B\u0436\u0435\u043D\u0430 \u043F\u043E \u0441\u043E\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u044F\u043C \u0431\u0435\u0437\u043E\u043F\u0430\u0441\u043D\u043E\u0441\u0442\u0438."
37948
+ security: '\u041A \u0441\u043E\u0436\u0430\u043B\u0435\u043D\u0438\u044E, \u043E\u043F\u043B\u0430\u0442\u0430 \u0447\u0435\u0440\u0435\u0437 {{orgName}} \u043D\u0435 \u043C\u043E\u0436\u0435\u0442 \u0431\u044B\u0442\u044C \u043F\u0440\u043E\u0434\u043E\u043B\u0436\u0435\u043D\u0430 \u043F\u043E \u0441\u043E\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u044F\u043C \u0431\u0435\u0437\u043E\u043F\u0430\u0441\u043D\u043E\u0441\u0442\u0438. \u0415\u0441\u043B\u0438 \u0432\u044B \u0441\u0447\u0438\u0442\u0430\u0435\u0442\u0435, \u0447\u0442\u043E \u043F\u043E\u043B\u0443\u0447\u0438\u043B\u0438 \u044D\u0442\u043E \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0435 \u043F\u043E \u043E\u0448\u0438\u0431\u043A\u0435, \u043F\u043E\u0436\u0430\u043B\u0443\u0439\u0441\u0442\u0430, <ContactSupportLink text="\u0441\u0432\u044F\u0436\u0438\u0442\u0435\u0441\u044C \u0441\u043E \u0441\u043B\u0443\u0436\u0431\u043E\u0439 \u043F\u043E\u0434\u0434\u0435\u0440\u0436\u043A\u0438" />.'
37841
37949
  },
37842
37950
  payment: {
37843
37951
  depositWithPayPal: "\u0414\u0435\u043F\u043E\u0437\u0438\u0442 \u0447\u0435\u0440\u0435\u0437 PayPal",
@@ -37917,7 +38025,8 @@ var ru_default = {
37917
38025
  warpcastLink: "\u0421\u0441\u044B\u043B\u043A\u0430 Warpcast"
37918
38026
  },
37919
38027
  selectAsset: {
37920
- yourTokens: "\u0412\u0430\u0448\u0438 \u0442\u043E\u043A\u0435\u043D\u044B"
38028
+ yourTokens: "\u0412\u0430\u0448\u0438 \u0442\u043E\u043A\u0435\u043D\u044B",
38029
+ lowBalanceTooltip: "\u041C\u0438\u043D\u0438\u043C\u0443\u043C \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044F: {{amount}}"
37921
38030
  },
37922
38031
  transferToken: {
37923
38032
  noLimit: "\u0411\u0435\u0437 \u043B\u0438\u043C\u0438\u0442\u0430",
@@ -38346,7 +38455,7 @@ var tr_default = {
38346
38455
  },
38347
38456
  funCheckoutBlocked: {
38348
38457
  geoblock: "\xDCzg\xFCn\xFCz, {{orgName}} Checkout b\xF6lgenizde kullan\u0131lam\u0131yor.",
38349
- security: "\xDCzg\xFCn\xFCz, {{orgName}} Checkout g\xFCvenlik nedenleriyle devam edemiyor."
38458
+ security: '\xDCzg\xFCn\xFCz, {{orgName}} Checkout g\xFCvenlik nedenleriyle devam edemiyor. Bu mesaj\u0131 yanl\u0131\u015Fl\u0131kla ald\u0131\u011F\u0131n\u0131z\u0131 d\xFC\u015F\xFCn\xFCyorsan\u0131z, l\xFCtfen <ContactSupportLink text="destek ile ileti\u015Fime ge\xE7in" />.'
38350
38459
  },
38351
38460
  payment: {
38352
38461
  depositWithPayPal: "PayPal ile Yat\u0131r",
@@ -38426,7 +38535,8 @@ var tr_default = {
38426
38535
  warpcastLink: "Warpcast Ba\u011Flant\u0131s\u0131"
38427
38536
  },
38428
38537
  selectAsset: {
38429
- yourTokens: "Token'lar\u0131n\u0131z"
38538
+ yourTokens: "Token'lar\u0131n\u0131z",
38539
+ lowBalanceTooltip: "Minimum gerekli: {{amount}}"
38430
38540
  },
38431
38541
  transferToken: {
38432
38542
  noLimit: "Limit yok",
@@ -38855,7 +38965,7 @@ var zh_default = {
38855
38965
  },
38856
38966
  funCheckoutBlocked: {
38857
38967
  geoblock: "\u62B1\u6B49\uFF0C{{orgName}} \u7ED3\u8D26\u5728\u60A8\u6240\u5728\u7684\u5730\u533A\u4E0D\u53EF\u7528\u3002",
38858
- security: "\u62B1\u6B49\uFF0C\u51FA\u4E8E\u5B89\u5168\u539F\u56E0\uFF0C{{orgName}} \u7ED3\u8D26\u65E0\u6CD5\u7EE7\u7EED\u3002"
38968
+ security: '\u62B1\u6B49\uFF0C\u51FA\u4E8E\u5B89\u5168\u539F\u56E0\uFF0C{{orgName}} \u7ED3\u8D26\u65E0\u6CD5\u7EE7\u7EED\u3002\u5982\u679C\u60A8\u8BA4\u4E3A\u6536\u5230\u6B64\u6D88\u606F\u6709\u8BEF\uFF0C\u8BF7<ContactSupportLink text="\u8054\u7CFB\u652F\u6301" />\u3002'
38859
38969
  },
38860
38970
  payment: {
38861
38971
  depositWithPayPal: "\u901A\u8FC7PayPal\u5B58\u6B3E",
@@ -38935,7 +39045,8 @@ var zh_default = {
38935
39045
  warpcastLink: "Warpcast \u94FE\u63A5"
38936
39046
  },
38937
39047
  selectAsset: {
38938
- yourTokens: "\u60A8\u7684\u4EE3\u5E01"
39048
+ yourTokens: "\u60A8\u7684\u4EE3\u5E01",
39049
+ lowBalanceTooltip: "\u6700\u4F4E\u8981\u6C42\uFF1A{{amount}}"
38939
39050
  },
38940
39051
  transferToken: {
38941
39052
  noLimit: "\u65E0\u9650\u989D",
@@ -23,7 +23,7 @@ export declare const flagConfig: {
23
23
  readonly if_any: [{
24
24
  readonly key: "apiKey";
25
25
  readonly type: "isAnyOf";
26
- readonly values: ["OXLUmejkh9PlNDS4gSvi9gcEWacOpTz2KUVepVf4"];
26
+ readonly values: ["OXLUmejkh9PlNDS4gSvi9gcEWacOpTz2KUVepVf4", "2hicPxo2vy2NMHcg2cEU9crOeKtDpc14NEfMCthc"];
27
27
  }];
28
28
  readonly value: true;
29
29
  }];
@@ -83,6 +83,20 @@ export declare const flagConfig: {
83
83
  readonly values: ["M3uox3cw0u8YCPV9cIREA6AugUMvPFTk6qOpm4um"];
84
84
  }];
85
85
  readonly value: string;
86
+ }, {
87
+ readonly if_any: [{
88
+ readonly key: "apiKey";
89
+ readonly type: "isAnyOf";
90
+ readonly values: ["2hicPxo2vy2NMHcg2cEU9crOeKtDpc14NEfMCthc"];
91
+ }];
92
+ readonly value: string;
93
+ }, {
94
+ readonly if_any: [{
95
+ readonly key: "apiKey";
96
+ readonly type: "isAnyOf";
97
+ readonly values: ["Y53dikxXdT4E3afI1l8BMBSWgyhKvf65k6Dut1k6"];
98
+ }];
99
+ readonly value: string;
86
100
  }];
87
101
  };
88
102
  readonly withdrawal_chains_and_assets: {
@@ -158,6 +172,14 @@ export declare const flagConfig: {
158
172
  readonly token_transfer_new_tokens: {
159
173
  readonly type: "string";
160
174
  readonly default_value: string;
175
+ readonly overrides: [{
176
+ readonly if_any: [{
177
+ readonly key: "apiKey";
178
+ readonly type: "isAnyOf";
179
+ readonly values: ["2hicPxo2vy2NMHcg2cEU9crOeKtDpc14NEfMCthc"];
180
+ }];
181
+ readonly value: "";
182
+ }];
161
183
  };
162
184
  readonly new_token_asset_selection_banner: {
163
185
  readonly type: "string";
@@ -302,6 +324,13 @@ export declare const flagConfig: {
302
324
  readonly values: ["M3uox3cw0u8YCPV9cIREA6AugUMvPFTk6qOpm4um"];
303
325
  }];
304
326
  readonly value: false;
327
+ }, {
328
+ readonly if_any: [{
329
+ readonly key: "apiKey";
330
+ readonly type: "isAnyOf";
331
+ readonly values: ["2hicPxo2vy2NMHcg2cEU9crOeKtDpc14NEfMCthc", "Y53dikxXdT4E3afI1l8BMBSWgyhKvf65k6Dut1k6"];
332
+ }];
333
+ readonly value: false;
305
334
  }];
306
335
  };
307
336
  readonly chain_info_banners: {
@@ -20,15 +20,15 @@ import {
20
20
  import {
21
21
  tokenPocketWallet
22
22
  } from "./chunk-2L43XSW3.js";
23
+ import {
24
+ tokenaryWallet
25
+ } from "./chunk-D6AOOO5F.js";
23
26
  import {
24
27
  trustWallet
25
28
  } from "./chunk-VYBAYMP3.js";
26
29
  import {
27
30
  uniswapWallet
28
31
  } from "./chunk-LH7BMNFZ.js";
29
- import {
30
- tokenaryWallet
31
- } from "./chunk-D6AOOO5F.js";
32
32
  import {
33
33
  walletConnectWallet
34
34
  } from "./chunk-NP5QGWNL.js";
@@ -47,24 +47,24 @@ import {
47
47
  import {
48
48
  roninWallet
49
49
  } from "./chunk-NWIQNBJU.js";
50
- import {
51
- safeWallet
52
- } from "./chunk-BQQQL6UD.js";
53
50
  import {
54
51
  safeheronWallet
55
52
  } from "./chunk-RZIO5TFF.js";
53
+ import {
54
+ safeWallet
55
+ } from "./chunk-BQQQL6UD.js";
56
56
  import {
57
57
  safepalWallet
58
58
  } from "./chunk-NT2HYJKW.js";
59
59
  import {
60
60
  ledgerWallet
61
61
  } from "./chunk-BRBKM4PW.js";
62
- import {
63
- metaMaskWallet
64
- } from "./chunk-2HYNUNAS.js";
65
62
  import {
66
63
  mewWallet
67
64
  } from "./chunk-OL5ZO7E4.js";
65
+ import {
66
+ metaMaskWallet
67
+ } from "./chunk-2HYNUNAS.js";
68
68
  import {
69
69
  oktoWallet
70
70
  } from "./chunk-ADIXAKUL.js";
@@ -81,8 +81,8 @@ import {
81
81
  oneKeyWallet
82
82
  } from "./chunk-SHBUZ7U7.js";
83
83
  import {
84
- foxWallet
85
- } from "./chunk-7QONTUXT.js";
84
+ enkryptWallet
85
+ } from "./chunk-OLOIXTYS.js";
86
86
  import {
87
87
  frameWallet
88
88
  } from "./chunk-IFON7E6U.js";
@@ -110,12 +110,12 @@ import {
110
110
  import {
111
111
  coin98Wallet
112
112
  } from "./chunk-OBOVHCEI.js";
113
- import {
114
- coinbaseWallet
115
- } from "./chunk-H4IRCEZN.js";
116
113
  import {
117
114
  coreWallet
118
115
  } from "./chunk-VR4TBQ6S.js";
116
+ import {
117
+ coinbaseWallet
118
+ } from "./chunk-H4IRCEZN.js";
119
119
  import {
120
120
  dawnWallet
121
121
  } from "./chunk-HWPKCIBE.js";
@@ -123,14 +123,14 @@ import {
123
123
  desigWallet
124
124
  } from "./chunk-OPAZMNA7.js";
125
125
  import {
126
- enkryptWallet
127
- } from "./chunk-OLOIXTYS.js";
128
- import {
129
- argentWallet
130
- } from "./chunk-WSQ2YJO2.js";
126
+ foxWallet
127
+ } from "./chunk-7QONTUXT.js";
131
128
  import {
132
129
  bifrostWallet
133
130
  } from "./chunk-A5N6B5UW.js";
131
+ import {
132
+ argentWallet
133
+ } from "./chunk-WSQ2YJO2.js";
134
134
  import {
135
135
  bitgetWallet
136
136
  } from "./chunk-TDAVGY5F.js";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@funkit/connect",
3
- "version": "6.15.7",
3
+ "version": "6.15.9",
4
4
  "description": "Funkit Connect SDK elevates DeFi apps via web2 sign-ins and one-click checkouts.",
5
5
  "files": [
6
6
  "dist",
@@ -101,12 +101,12 @@
101
101
  "ua-parser-js": "^1.0.37",
102
102
  "use-debounce": "^10.0.5",
103
103
  "uuid": "^9.0.1",
104
+ "@funkit/chains": "0.4.8",
104
105
  "@funkit/api-base": "1.12.18",
105
- "@funkit/chains": "0.4.7",
106
- "@funkit/core": "2.3.64",
106
+ "@funkit/core": "2.3.65",
107
107
  "@funkit/fun-relay": "2.1.13",
108
108
  "@funkit/utils": "1.1.19",
109
- "@funkit/wagmi-tools": "3.0.87"
109
+ "@funkit/wagmi-tools": "3.0.88"
110
110
  },
111
111
  "repository": {
112
112
  "type": "git",