@funkit/connect 7.0.0 → 7.0.3-next.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +41 -0
- package/dist/{chunk-DN7UTQK5.js → chunk-5GV4UXWB.js} +3 -3
- package/dist/{chunk-OVMNR35O.js → chunk-IVO7KGHT.js} +3 -3
- package/dist/components/FunPoweredTagline/FunPoweredTagline.css.d.ts +1 -0
- package/dist/components/FunPoweredTagline/FunPoweredTagline.d.ts +4 -1
- package/dist/consts/customers.d.ts +2 -0
- package/dist/consts/funkit.d.ts +0 -17
- package/dist/domains/asset.d.ts +2 -1
- package/dist/domains/feeEstimate.d.ts +1 -1
- package/dist/hooks/useCheckoutDirectExecution.d.ts +1 -0
- package/dist/hooks/useCheckoutTransferInit.d.ts +1 -0
- package/dist/hooks/usePaymentSources.d.ts +1 -1
- package/dist/index.css +16 -0
- package/dist/index.d.ts +2 -3
- package/dist/index.js +1336 -800
- package/dist/locales/index.d.ts +1 -1
- package/dist/modals/CheckoutModal/ConfirmationStep/useAccountBalanceTransfer.d.ts +1 -1
- package/dist/modals/CheckoutModal/SourceChange/SourceChange.d.ts +1 -1
- package/dist/providers/FunkitConfigContext.d.ts +0 -18
- package/dist/themes/darkTheme.js +1 -1
- package/dist/themes/lightTheme.js +1 -1
- package/dist/utils/checkout.d.ts +1 -34
- package/dist/utils/flags/config.d.ts +3 -3
- package/dist/utils/lighter.d.ts +4 -0
- package/dist/wallets/walletConnectors/index.js +13 -13
- package/package.json +5 -6
package/dist/index.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import {
|
|
3
3
|
darkTheme
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-IVO7KGHT.js";
|
|
5
5
|
import {
|
|
6
6
|
lightTheme
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-5GV4UXWB.js";
|
|
8
8
|
import {
|
|
9
9
|
systemFontStack
|
|
10
10
|
} from "./chunk-RJAD5CZH.js";
|
|
@@ -417,7 +417,7 @@ function Avatar({ address, imageUrl, loading, size }) {
|
|
|
417
417
|
}
|
|
418
418
|
|
|
419
419
|
// src/components/ConnectButton/ConnectButton.tsx
|
|
420
|
-
import React236, { useEffect as
|
|
420
|
+
import React236, { useEffect as useEffect56, useState as useState75 } from "react";
|
|
421
421
|
|
|
422
422
|
// src/css/touchableStyles.css.ts
|
|
423
423
|
var active = { shrink: "_7rkubb8", shrinkSm: "_7rkubb9" };
|
|
@@ -538,284 +538,13 @@ function useFunkitTranslation() {
|
|
|
538
538
|
}
|
|
539
539
|
|
|
540
540
|
// src/providers/FunkitConnectChainContext.tsx
|
|
541
|
-
import { configureEnvironment } from "@funkit/core";
|
|
542
541
|
import React9, {
|
|
543
|
-
createContext as
|
|
544
|
-
useContext as
|
|
545
|
-
|
|
546
|
-
useMemo as useMemo4
|
|
542
|
+
createContext as createContext3,
|
|
543
|
+
useContext as useContext3,
|
|
544
|
+
useMemo as useMemo3
|
|
547
545
|
} from "react";
|
|
548
546
|
import { useConfig } from "wagmi";
|
|
549
547
|
|
|
550
|
-
// src/utils/funLogger.ts
|
|
551
|
-
import { datadogLogs } from "@datadog/browser-logs";
|
|
552
|
-
import { DEV_API_KEY } from "@funkit/api-base";
|
|
553
|
-
var DDOG_CLIENT_TOKEN = "pub4f86c6be8c792cb48dc156a8c17d9a47";
|
|
554
|
-
var FUN_DEV_API_KEYS = [
|
|
555
|
-
"hnHevQR0y394nBprGrvNx4HgoZHUwMet5mXTOBhf",
|
|
556
|
-
"MYny3w7xJh6PRlRgkJ9604sHouY2MTke6lCPpSHq",
|
|
557
|
-
DEV_API_KEY
|
|
558
|
-
];
|
|
559
|
-
function setDdogEnv(environment) {
|
|
560
|
-
datadogLogs.setGlobalContextProperty("env", environment);
|
|
561
|
-
}
|
|
562
|
-
var FunLogger = class {
|
|
563
|
-
constructor() {
|
|
564
|
-
setDdogEnv("development" /* DEVELOPMENT */);
|
|
565
|
-
this.apiKey = null;
|
|
566
|
-
this.isDebugMode = false;
|
|
567
|
-
this.userId = null;
|
|
568
|
-
this.userAddress = null;
|
|
569
|
-
this.userName = null;
|
|
570
|
-
this.userLoginType = null;
|
|
571
|
-
this.sdkVersion = null;
|
|
572
|
-
}
|
|
573
|
-
getFunLogEnv() {
|
|
574
|
-
if (!this.apiKey || FUN_DEV_API_KEYS.includes(this.apiKey)) {
|
|
575
|
-
return "development" /* DEVELOPMENT */;
|
|
576
|
-
}
|
|
577
|
-
return "production" /* PRODUCTION */;
|
|
578
|
-
}
|
|
579
|
-
logDataDog(level, title, data, error) {
|
|
580
|
-
if (typeof window === "undefined") {
|
|
581
|
-
return;
|
|
582
|
-
}
|
|
583
|
-
const datadogData = {
|
|
584
|
-
data,
|
|
585
|
-
apiKey: this.apiKey,
|
|
586
|
-
userId: this.userId,
|
|
587
|
-
userName: this.userName,
|
|
588
|
-
userAddress: this.userAddress,
|
|
589
|
-
userLoginType: this.userLoginType,
|
|
590
|
-
sdkVersion: this.sdkVersion
|
|
591
|
-
};
|
|
592
|
-
switch (level) {
|
|
593
|
-
case "info":
|
|
594
|
-
datadogLogs.logger.info(title, datadogData);
|
|
595
|
-
break;
|
|
596
|
-
case "debug":
|
|
597
|
-
datadogLogs.logger.debug(title, datadogData);
|
|
598
|
-
break;
|
|
599
|
-
case "warn":
|
|
600
|
-
datadogLogs.logger.warn(title, datadogData);
|
|
601
|
-
break;
|
|
602
|
-
case "error":
|
|
603
|
-
datadogLogs.logger.error(title, datadogData, error);
|
|
604
|
-
}
|
|
605
|
-
}
|
|
606
|
-
onDebug({ title, data }) {
|
|
607
|
-
const isProd = this.getFunLogEnv() === "production" /* PRODUCTION */;
|
|
608
|
-
if (isProd) {
|
|
609
|
-
this.logDataDog("debug", title, data);
|
|
610
|
-
}
|
|
611
|
-
if (!isProd || this.isDebugMode) {
|
|
612
|
-
console.debug(title, data || "");
|
|
613
|
-
}
|
|
614
|
-
}
|
|
615
|
-
onInfo({ title, data }) {
|
|
616
|
-
const isProd = this.getFunLogEnv() === "production" /* PRODUCTION */;
|
|
617
|
-
if (isProd) {
|
|
618
|
-
this.logDataDog("info", title, data);
|
|
619
|
-
}
|
|
620
|
-
if (!isProd || this.isDebugMode) {
|
|
621
|
-
console.log(title, data || "");
|
|
622
|
-
}
|
|
623
|
-
}
|
|
624
|
-
onWarn({ title, data }) {
|
|
625
|
-
const isProd = this.getFunLogEnv() === "production" /* PRODUCTION */;
|
|
626
|
-
if (isProd) {
|
|
627
|
-
this.logDataDog("warn", title, data);
|
|
628
|
-
}
|
|
629
|
-
if (!isProd || this.isDebugMode) {
|
|
630
|
-
console.warn(title, data || "");
|
|
631
|
-
}
|
|
632
|
-
}
|
|
633
|
-
onError({ title, error, data }) {
|
|
634
|
-
const isProd = this.getFunLogEnv() === "production" /* PRODUCTION */;
|
|
635
|
-
if (isProd) {
|
|
636
|
-
this.logDataDog("error", title, data, error);
|
|
637
|
-
}
|
|
638
|
-
if (!isProd || this.isDebugMode) {
|
|
639
|
-
console.error(title, data || "", error);
|
|
640
|
-
}
|
|
641
|
-
}
|
|
642
|
-
extractError(error) {
|
|
643
|
-
if (error instanceof Error) {
|
|
644
|
-
return error;
|
|
645
|
-
}
|
|
646
|
-
if (typeof error === "object" && error !== null && "error" in error && error.error instanceof Error) {
|
|
647
|
-
return error.error;
|
|
648
|
-
}
|
|
649
|
-
return null;
|
|
650
|
-
}
|
|
651
|
-
/**========================
|
|
652
|
-
* PUBLIC LOGGER FUNCTIONS
|
|
653
|
-
*=========================*/
|
|
654
|
-
log(title, data) {
|
|
655
|
-
this.onInfo({ title, data });
|
|
656
|
-
}
|
|
657
|
-
info(title, data) {
|
|
658
|
-
this.onInfo({ title, data });
|
|
659
|
-
}
|
|
660
|
-
debug(title, data) {
|
|
661
|
-
this.onDebug({ title, data });
|
|
662
|
-
}
|
|
663
|
-
warn(title, data) {
|
|
664
|
-
this.onWarn({ title, data });
|
|
665
|
-
}
|
|
666
|
-
/**
|
|
667
|
-
* @param errorOrData -
|
|
668
|
-
* Previously was called "error" but since in the {@link Logger} interface, error is defined as object (which is the same thing as "any"), we treat it as of unknown type here for safety.
|
|
669
|
-
* In a lot of places it's actually being used as a "data" prop, which also usually has an `.error` property representing an actual {@link Error} object.
|
|
670
|
-
*/
|
|
671
|
-
error(title, errorOrData, _data = {}) {
|
|
672
|
-
const error = this.extractError(errorOrData) ?? void 0;
|
|
673
|
-
const data = {
|
|
674
|
-
..._data,
|
|
675
|
-
...typeof errorOrData === "object" && errorOrData !== null ? errorOrData : {}
|
|
676
|
-
};
|
|
677
|
-
this.onError({ title, error, data });
|
|
678
|
-
}
|
|
679
|
-
configure(apiKey, isDebug, sdkVersion) {
|
|
680
|
-
this.apiKey = apiKey;
|
|
681
|
-
this.isDebugMode = isDebug;
|
|
682
|
-
this.sdkVersion = sdkVersion;
|
|
683
|
-
setDdogEnv(this.getFunLogEnv());
|
|
684
|
-
}
|
|
685
|
-
getUserId() {
|
|
686
|
-
return this.userId;
|
|
687
|
-
}
|
|
688
|
-
getUserAddress() {
|
|
689
|
-
return this.userAddress;
|
|
690
|
-
}
|
|
691
|
-
getUserName() {
|
|
692
|
-
return this.userName;
|
|
693
|
-
}
|
|
694
|
-
getUserLoginType() {
|
|
695
|
-
return this.userLoginType;
|
|
696
|
-
}
|
|
697
|
-
setUserInfo(userId, userAddress, userName, userLoginType) {
|
|
698
|
-
this.userId = userId;
|
|
699
|
-
this.userAddress = userAddress;
|
|
700
|
-
this.userName = userName;
|
|
701
|
-
this.userLoginType = userLoginType;
|
|
702
|
-
}
|
|
703
|
-
};
|
|
704
|
-
datadogLogs.init({
|
|
705
|
-
clientToken: DDOG_CLIENT_TOKEN,
|
|
706
|
-
site: "datadoghq.com",
|
|
707
|
-
forwardErrorsToLogs: false,
|
|
708
|
-
sessionSampleRate: 100,
|
|
709
|
-
service: "connect-sdk"
|
|
710
|
-
});
|
|
711
|
-
var logger = new FunLogger();
|
|
712
|
-
|
|
713
|
-
// src/providers/FunkitConfigContext.tsx
|
|
714
|
-
import { createContext as createContext3, useContext as useContext3, useMemo as useMemo3 } from "react";
|
|
715
|
-
var DEFAULT_TEXT_CUSTOMIZATIONS = {
|
|
716
|
-
virtualFiat: "Deposit with SEPA",
|
|
717
|
-
brokerageOrExchange: "Connect Exchange",
|
|
718
|
-
debitOrCredit: "Deposit with Card",
|
|
719
|
-
accountBalance: "Wallet",
|
|
720
|
-
selectAccount: "Select an exchange",
|
|
721
|
-
sourceMethodTitle: "Your source",
|
|
722
|
-
tokensListTitle: "Your tokens",
|
|
723
|
-
transferTokens: "Transfer Crypto",
|
|
724
|
-
receiveDropdownTitle: "",
|
|
725
|
-
// Default to empty
|
|
726
|
-
receiveDropdownLabel: "Asset to Receive",
|
|
727
|
-
confirmationScreen: {
|
|
728
|
-
payAmountLabel: "You send",
|
|
729
|
-
receiveAmountLabel: "You receive"
|
|
730
|
-
}
|
|
731
|
-
};
|
|
732
|
-
var DEFAULT_UI_CUSTOMIZATIONS = {
|
|
733
|
-
alignTitle: "center",
|
|
734
|
-
callToActionsUppercase: false,
|
|
735
|
-
confirmationScreen: {
|
|
736
|
-
preferDestinationWhenSame: false,
|
|
737
|
-
showPaymentAmountUsd: false,
|
|
738
|
-
showReceiveAmountUsd: false,
|
|
739
|
-
showTokenAmount: true,
|
|
740
|
-
showTransactionDigest: "none"
|
|
741
|
-
},
|
|
742
|
-
inputAmountScreen: {
|
|
743
|
-
allowTokenAmountInput: true
|
|
744
|
-
},
|
|
745
|
-
selectAssetScreen: {
|
|
746
|
-
showTargetAssetSelection: false
|
|
747
|
-
},
|
|
748
|
-
transferCryptoScreen: {
|
|
749
|
-
showYouSendYouReceive: false
|
|
750
|
-
}
|
|
751
|
-
};
|
|
752
|
-
var DEFAULT_FUNKIT_CONFIG = {
|
|
753
|
-
apiKey: "",
|
|
754
|
-
appName: "",
|
|
755
|
-
textCustomizations: DEFAULT_TEXT_CUSTOMIZATIONS,
|
|
756
|
-
uiCustomizations: DEFAULT_UI_CUSTOMIZATIONS
|
|
757
|
-
};
|
|
758
|
-
var FunkitConfigContext = createContext3(
|
|
759
|
-
DEFAULT_FUNKIT_CONFIG
|
|
760
|
-
);
|
|
761
|
-
function useFunkitConfig() {
|
|
762
|
-
const originalFunkitConfig = useContext3(FunkitConfigContext);
|
|
763
|
-
const { t } = useFunkitTranslation();
|
|
764
|
-
const translatedDefaults = useMemo3(() => {
|
|
765
|
-
return {
|
|
766
|
-
virtualFiat: t("textCustomizations.virtualFiat"),
|
|
767
|
-
brokerageOrExchange: t("textCustomizations.brokerageOrExchange"),
|
|
768
|
-
debitOrCredit: t("textCustomizations.debitOrCredit"),
|
|
769
|
-
accountBalance: t("textCustomizations.accountBalance"),
|
|
770
|
-
selectAccount: t("textCustomizations.selectAccount"),
|
|
771
|
-
sourceMethodTitle: t("textCustomizations.sourceMethodTitle"),
|
|
772
|
-
tokensListTitle: t("textCustomizations.tokensListTitle"),
|
|
773
|
-
transferTokens: t("textCustomizations.transferTokens"),
|
|
774
|
-
receiveDropdownTitle: t("textCustomizations.receiveDropdownTitle"),
|
|
775
|
-
receiveDropdownLabel: t("textCustomizations.receiveDropdownLabel"),
|
|
776
|
-
confirmationScreen: {
|
|
777
|
-
payAmountLabel: t("textCustomizations.payAmountLabel"),
|
|
778
|
-
receiveAmountLabel: t("textCustomizations.receiveAmountLabel")
|
|
779
|
-
}
|
|
780
|
-
};
|
|
781
|
-
}, [t]);
|
|
782
|
-
const finalFunkitConfig = useMemo3(() => {
|
|
783
|
-
return {
|
|
784
|
-
...DEFAULT_FUNKIT_CONFIG,
|
|
785
|
-
...originalFunkitConfig,
|
|
786
|
-
textCustomizations: {
|
|
787
|
-
...translatedDefaults,
|
|
788
|
-
...originalFunkitConfig.textCustomizations,
|
|
789
|
-
confirmationScreen: {
|
|
790
|
-
...translatedDefaults.confirmationScreen,
|
|
791
|
-
...originalFunkitConfig.textCustomizations?.confirmationScreen
|
|
792
|
-
}
|
|
793
|
-
},
|
|
794
|
-
uiCustomizations: {
|
|
795
|
-
...DEFAULT_FUNKIT_CONFIG.uiCustomizations,
|
|
796
|
-
...originalFunkitConfig.uiCustomizations,
|
|
797
|
-
selectAssetScreen: {
|
|
798
|
-
...DEFAULT_FUNKIT_CONFIG.uiCustomizations.selectAssetScreen,
|
|
799
|
-
...originalFunkitConfig.uiCustomizations?.selectAssetScreen
|
|
800
|
-
},
|
|
801
|
-
confirmationScreen: {
|
|
802
|
-
...DEFAULT_FUNKIT_CONFIG.uiCustomizations.confirmationScreen,
|
|
803
|
-
...originalFunkitConfig.uiCustomizations?.confirmationScreen
|
|
804
|
-
},
|
|
805
|
-
inputAmountScreen: {
|
|
806
|
-
...DEFAULT_FUNKIT_CONFIG.uiCustomizations.inputAmountScreen,
|
|
807
|
-
...originalFunkitConfig.uiCustomizations?.inputAmountScreen
|
|
808
|
-
},
|
|
809
|
-
transferCryptoScreen: {
|
|
810
|
-
...DEFAULT_FUNKIT_CONFIG.uiCustomizations.transferCryptoScreen,
|
|
811
|
-
...originalFunkitConfig.uiCustomizations?.transferCryptoScreen
|
|
812
|
-
}
|
|
813
|
-
}
|
|
814
|
-
};
|
|
815
|
-
}, [originalFunkitConfig, translatedDefaults]);
|
|
816
|
-
return finalFunkitConfig;
|
|
817
|
-
}
|
|
818
|
-
|
|
819
548
|
// src/providers/provideFunkitConnectChains.ts
|
|
820
549
|
import { chainMetadataById } from "@funkit/chains";
|
|
821
550
|
var provideFunkitConnectChains = (chains) => chains.map((chain) => {
|
|
@@ -837,7 +566,7 @@ var groupChainsById = (chains) => {
|
|
|
837
566
|
};
|
|
838
567
|
|
|
839
568
|
// src/providers/FunkitConnectChainContext.tsx
|
|
840
|
-
var FunkitConnectChainContext =
|
|
569
|
+
var FunkitConnectChainContext = createContext3(
|
|
841
570
|
{
|
|
842
571
|
chains: []
|
|
843
572
|
}
|
|
@@ -847,22 +576,11 @@ function FunkitConnectChainProvider({
|
|
|
847
576
|
initialChain
|
|
848
577
|
}) {
|
|
849
578
|
const { chains } = useConfig();
|
|
850
|
-
const { apiKey } = useFunkitConfig();
|
|
851
579
|
const initialChainFinal = initialChain || chains[0].id;
|
|
852
|
-
useEffect3(() => {
|
|
853
|
-
if (initialChainFinal) {
|
|
854
|
-
configureEnvironment({
|
|
855
|
-
chain: initialChainFinal,
|
|
856
|
-
apiKey
|
|
857
|
-
}).then(() => {
|
|
858
|
-
logger.log("Core configured");
|
|
859
|
-
});
|
|
860
|
-
}
|
|
861
|
-
}, [apiKey, initialChainFinal]);
|
|
862
580
|
return /* @__PURE__ */ React9.createElement(
|
|
863
581
|
FunkitConnectChainContext.Provider,
|
|
864
582
|
{
|
|
865
|
-
value:
|
|
583
|
+
value: useMemo3(
|
|
866
584
|
() => ({
|
|
867
585
|
chains: provideFunkitConnectChains(chains),
|
|
868
586
|
initialChainId: initialChainFinal
|
|
@@ -873,17 +591,17 @@ function FunkitConnectChainProvider({
|
|
|
873
591
|
children
|
|
874
592
|
);
|
|
875
593
|
}
|
|
876
|
-
var useFunkitConnectChains = () =>
|
|
594
|
+
var useFunkitConnectChains = () => useContext3(FunkitConnectChainContext).chains;
|
|
877
595
|
var useFunkitConnectChainsById = () => groupChainsById(useFunkitConnectChains());
|
|
878
|
-
var useInitialChainId = () =>
|
|
596
|
+
var useInitialChainId = () => useContext3(FunkitConnectChainContext).initialChainId;
|
|
879
597
|
|
|
880
598
|
// src/providers/ShowBalanceContext.tsx
|
|
881
599
|
import React10, {
|
|
882
|
-
createContext as
|
|
883
|
-
useContext as
|
|
600
|
+
createContext as createContext4,
|
|
601
|
+
useContext as useContext4,
|
|
884
602
|
useState as useState3
|
|
885
603
|
} from "react";
|
|
886
|
-
var ShowBalanceContext =
|
|
604
|
+
var ShowBalanceContext = createContext4({
|
|
887
605
|
showBalance: void 0,
|
|
888
606
|
setShowBalance: () => void 0
|
|
889
607
|
});
|
|
@@ -891,13 +609,13 @@ function ShowBalanceProvider({ children }) {
|
|
|
891
609
|
const [showBalance, setShowBalance] = useState3();
|
|
892
610
|
return /* @__PURE__ */ React10.createElement(ShowBalanceContext.Provider, { value: { showBalance, setShowBalance } }, children);
|
|
893
611
|
}
|
|
894
|
-
var useShowBalance = () =>
|
|
612
|
+
var useShowBalance = () => useContext4(ShowBalanceContext);
|
|
895
613
|
|
|
896
614
|
// src/components/AsyncImage/AsyncImage.tsx
|
|
897
|
-
import React11, { useMemo as
|
|
615
|
+
import React11, { useMemo as useMemo4, useReducer as useReducer2, useState as useState4 } from "react";
|
|
898
616
|
|
|
899
617
|
// src/components/AsyncImage/useAsyncImage.ts
|
|
900
|
-
import { useEffect as
|
|
618
|
+
import { useEffect as useEffect3, useReducer } from "react";
|
|
901
619
|
var cachedUrls = /* @__PURE__ */ new Map();
|
|
902
620
|
var cachedRequestPromises = /* @__PURE__ */ new Map();
|
|
903
621
|
async function loadAsyncImage(asyncImage) {
|
|
@@ -930,7 +648,7 @@ function useForceUpdate() {
|
|
|
930
648
|
function useAsyncImage(url) {
|
|
931
649
|
const cachedUrl = typeof url === "function" ? cachedUrls.get(url) : void 0;
|
|
932
650
|
const forceUpdate = useForceUpdate();
|
|
933
|
-
|
|
651
|
+
useEffect3(() => {
|
|
934
652
|
if (typeof url === "function" && !cachedUrl) {
|
|
935
653
|
loadAsyncImage(url).then(forceUpdate);
|
|
936
654
|
}
|
|
@@ -962,7 +680,7 @@ function AsyncImage({
|
|
|
962
680
|
const [hasError, setHasError] = useState4(
|
|
963
681
|
srcProp === void 0 && fallbackSrc === void 0
|
|
964
682
|
);
|
|
965
|
-
const { asyncStyle, imgProps } =
|
|
683
|
+
const { asyncStyle, imgProps } = useMemo4(() => {
|
|
966
684
|
const asyncStyle2 = !useAsImage ? getRemoteImageStyles(isRemoteImage, isRemoteImageLoaded, src) : {};
|
|
967
685
|
if (useAsImage || isRemoteImage) {
|
|
968
686
|
const imgProps2 = {
|
|
@@ -1066,10 +784,10 @@ import React235 from "react";
|
|
|
1066
784
|
import { useAccount as useAccount12, useBalance, useConfig as useConfig6 } from "wagmi";
|
|
1067
785
|
|
|
1068
786
|
// src/hooks/useIsMounted.ts
|
|
1069
|
-
import { useCallback as useCallback2, useEffect as
|
|
787
|
+
import { useCallback as useCallback2, useEffect as useEffect4, useState as useState5 } from "react";
|
|
1070
788
|
function useIsMounted() {
|
|
1071
789
|
const [isMounted, setIsMounted] = useState5(false);
|
|
1072
|
-
|
|
790
|
+
useEffect4(() => {
|
|
1073
791
|
setIsMounted(true);
|
|
1074
792
|
return () => {
|
|
1075
793
|
setIsMounted(false);
|
|
@@ -1133,9 +851,9 @@ import { useAccount as useAccount11 } from "wagmi";
|
|
|
1133
851
|
// src/domains/asset.ts
|
|
1134
852
|
import {
|
|
1135
853
|
FUNKIT_CONNECT_SUPPORTED_CHAINS_INFO as FUNKIT_CONNECT_SUPPORTED_CHAINS_INFO14,
|
|
1136
|
-
solanaChain as
|
|
854
|
+
solanaChain as solanaChain6
|
|
1137
855
|
} from "@funkit/chains";
|
|
1138
|
-
import { STABLECOIN_SYMBOLS } from "@funkit/
|
|
856
|
+
import { STABLECOIN_SYMBOLS } from "@funkit/utils";
|
|
1139
857
|
import {
|
|
1140
858
|
isTokenAddressEquivalent as isTokenAddressEquivalent4,
|
|
1141
859
|
isTokenEquivalent as isTokenEquivalent7,
|
|
@@ -1143,6 +861,55 @@ import {
|
|
|
1143
861
|
} from "@funkit/utils";
|
|
1144
862
|
import { arbitrum as arbitrum5, base as base7, mainnet as mainnet11, optimism, polygon as polygon6 } from "viem/chains";
|
|
1145
863
|
|
|
864
|
+
// src/consts/customers.ts
|
|
865
|
+
import {
|
|
866
|
+
AVANTIS_API_KEY,
|
|
867
|
+
BANKR_API_KEY,
|
|
868
|
+
BASED_API_KEY,
|
|
869
|
+
BSX_API_KEY,
|
|
870
|
+
ETHEREAL_API_KEY,
|
|
871
|
+
HYENA_API_KEY,
|
|
872
|
+
HYPERBEAT_API_KEY,
|
|
873
|
+
HYPERDASH_API_KEY,
|
|
874
|
+
KATANA_API_KEY,
|
|
875
|
+
LIGHTERXYZ_API_KEY,
|
|
876
|
+
MONAD_API_KEY,
|
|
877
|
+
MONKEY_TILT_API_KEY,
|
|
878
|
+
OSTIUM_API_KEY,
|
|
879
|
+
PERPL_API_KEY,
|
|
880
|
+
POLYMARKET_API_KEY
|
|
881
|
+
} from "@funkit/api-base";
|
|
882
|
+
function isPolymarketCustomer(apiKey) {
|
|
883
|
+
return apiKey === POLYMARKET_API_KEY;
|
|
884
|
+
}
|
|
885
|
+
function isOstiumCustomer(apiKey) {
|
|
886
|
+
return apiKey === OSTIUM_API_KEY;
|
|
887
|
+
}
|
|
888
|
+
function isBankrCustomer(apiKey) {
|
|
889
|
+
return apiKey === BANKR_API_KEY;
|
|
890
|
+
}
|
|
891
|
+
function isEtherealCustomer(apiKey) {
|
|
892
|
+
return apiKey === ETHEREAL_API_KEY;
|
|
893
|
+
}
|
|
894
|
+
function isKatanaCustomer(apiKey) {
|
|
895
|
+
return apiKey === KATANA_API_KEY;
|
|
896
|
+
}
|
|
897
|
+
function isMonadCustomer(apiKey) {
|
|
898
|
+
return apiKey === MONAD_API_KEY;
|
|
899
|
+
}
|
|
900
|
+
function isBasedCustomer(apiKey) {
|
|
901
|
+
return apiKey === BASED_API_KEY;
|
|
902
|
+
}
|
|
903
|
+
function isHyenaCustomer(apiKey) {
|
|
904
|
+
return apiKey === HYENA_API_KEY;
|
|
905
|
+
}
|
|
906
|
+
function isLighterxyzCustomer(apiKey) {
|
|
907
|
+
return apiKey === LIGHTERXYZ_API_KEY;
|
|
908
|
+
}
|
|
909
|
+
function isLighterEthSpot(apiKey, checkoutConfig) {
|
|
910
|
+
return checkoutConfig && isLighterxyzCustomer(apiKey) && checkoutConfig.qrcodeActionType === "LIGHTER_ETH_SPOT_DEPOSIT";
|
|
911
|
+
}
|
|
912
|
+
|
|
1146
913
|
// src/modals/CheckoutModal/InputAmount/utils.ts
|
|
1147
914
|
import { formatCurrencyAndStringify } from "@funkit/utils";
|
|
1148
915
|
|
|
@@ -1322,20 +1089,13 @@ function reformatIntegerPart(integerPart, locale, preserveLeadingZeroes) {
|
|
|
1322
1089
|
|
|
1323
1090
|
// src/utils/checkout.ts
|
|
1324
1091
|
import {
|
|
1325
|
-
CheckoutState as CheckoutState4
|
|
1326
|
-
getAssetPriceInfo as getAssetPriceInfo3
|
|
1092
|
+
CheckoutState as CheckoutState4
|
|
1327
1093
|
} from "@funkit/api-base";
|
|
1328
1094
|
import {
|
|
1329
1095
|
FUNKIT_CONNECT_CHECKOUT_NATIVE_CURRENCY_ADDRESS as FUNKIT_CONNECT_CHECKOUT_NATIVE_CURRENCY_ADDRESS4,
|
|
1330
1096
|
FUNKIT_CONNECT_SUPPORTED_CHAINS_INFO as FUNKIT_CONNECT_SUPPORTED_CHAINS_INFO13,
|
|
1331
|
-
solanaChain as
|
|
1097
|
+
solanaChain as solanaChain5
|
|
1332
1098
|
} from "@funkit/chains";
|
|
1333
|
-
import {
|
|
1334
|
-
CHECKOUT_SPONSOR_SUPPORT_CHAINS,
|
|
1335
|
-
CONTRACT_ADDRESSES,
|
|
1336
|
-
getEnvOptions,
|
|
1337
|
-
getTokenAddressBySymbolAndChainId as getTokenAddressBySymbolAndChainId2
|
|
1338
|
-
} from "@funkit/core";
|
|
1339
1099
|
import { getRelayAssetInfo } from "@funkit/fun-relay";
|
|
1340
1100
|
import {
|
|
1341
1101
|
formatCryptoAndStringify as formatCryptoAndStringify9,
|
|
@@ -1345,30 +1105,7 @@ import {
|
|
|
1345
1105
|
round as round3
|
|
1346
1106
|
} from "@funkit/utils";
|
|
1347
1107
|
import { getBalance, readContract } from "@wagmi/core";
|
|
1348
|
-
import { erc20Abi as
|
|
1349
|
-
|
|
1350
|
-
// src/consts/funkit.ts
|
|
1351
|
-
import { FUNKIT_CONNECT_CHECKOUT_NATIVE_CURRENCY_ADDRESS } from "@funkit/chains";
|
|
1352
|
-
var NATIVE_TOKEN = FUNKIT_CONNECT_CHECKOUT_NATIVE_CURRENCY_ADDRESS;
|
|
1353
|
-
var FUN_ORG_NAME = "Fun.xyz";
|
|
1354
|
-
var FUN_TERMS_URL = "https://fun.xyz/terms";
|
|
1355
|
-
var FunkitSocialLoginMethod = /* @__PURE__ */ ((FunkitSocialLoginMethod2) => {
|
|
1356
|
-
FunkitSocialLoginMethod2["GOOGLE"] = "google_oauth" /* google_oauth */;
|
|
1357
|
-
FunkitSocialLoginMethod2["TWITTER"] = "twitter_oauth" /* twitter_oauth */;
|
|
1358
|
-
FunkitSocialLoginMethod2["APPLE"] = "apple_oauth" /* apple_oauth */;
|
|
1359
|
-
FunkitSocialLoginMethod2["FARCASTER"] = "farcaster" /* farcaster */;
|
|
1360
|
-
return FunkitSocialLoginMethod2;
|
|
1361
|
-
})(FunkitSocialLoginMethod || {});
|
|
1362
|
-
var PLACEHOLDER_FUNKIT_USER_INFO = {
|
|
1363
|
-
id: "0x",
|
|
1364
|
-
address: "0x",
|
|
1365
|
-
name: "Guest",
|
|
1366
|
-
nameTruncated: "Guest",
|
|
1367
|
-
type: "unknown",
|
|
1368
|
-
typeLabel: "",
|
|
1369
|
-
iconSrc: "",
|
|
1370
|
-
isConnected: false
|
|
1371
|
-
};
|
|
1108
|
+
import { erc20Abi as erc20Abi3, isAddress as isAddress3 } from "viem";
|
|
1372
1109
|
|
|
1373
1110
|
// src/providers/FunkitCheckoutContext/index.tsx
|
|
1374
1111
|
import {
|
|
@@ -1377,12 +1114,12 @@ import {
|
|
|
1377
1114
|
initializeCheckout as postApiInitializeCheckout
|
|
1378
1115
|
} from "@funkit/api-base";
|
|
1379
1116
|
import { FUNKIT_CONNECT_SUPPORTED_CHAINS_INFO as FUNKIT_CONNECT_SUPPORTED_CHAINS_INFO12 } from "@funkit/chains";
|
|
1380
|
-
import { FlagKey as
|
|
1117
|
+
import { FlagKey as FlagKey22, isNotNullish as isNotNullish8 } from "@funkit/utils";
|
|
1381
1118
|
import React234, {
|
|
1382
1119
|
createContext as createContext17,
|
|
1383
1120
|
useCallback as useCallback49,
|
|
1384
1121
|
useContext as useContext17,
|
|
1385
|
-
useEffect as
|
|
1122
|
+
useEffect as useEffect55,
|
|
1386
1123
|
useState as useState74
|
|
1387
1124
|
} from "react";
|
|
1388
1125
|
import { flushSync } from "react-dom";
|
|
@@ -1401,7 +1138,7 @@ function getCheckoutRecipient({
|
|
|
1401
1138
|
import { exhaustiveCheck, formatAddress } from "@funkit/utils";
|
|
1402
1139
|
|
|
1403
1140
|
// src/consts/bluvo.tsx
|
|
1404
|
-
import { ETHEREAL_API_KEY } from "@funkit/api-base";
|
|
1141
|
+
import { ETHEREAL_API_KEY as ETHEREAL_API_KEY2 } from "@funkit/api-base";
|
|
1405
1142
|
import React16 from "react";
|
|
1406
1143
|
|
|
1407
1144
|
// src/components/Icons/BinanceIcon.tsx
|
|
@@ -1517,7 +1254,7 @@ var KrakenIcon = ({ size = 24 }) => {
|
|
|
1517
1254
|
|
|
1518
1255
|
// src/consts/bluvo.tsx
|
|
1519
1256
|
var BLUVO_MIN_DEPOSIT_BY_CUSTOMER = {
|
|
1520
|
-
[
|
|
1257
|
+
[ETHEREAL_API_KEY2]: 15
|
|
1521
1258
|
};
|
|
1522
1259
|
var SUPPORTED_EXCHANGES = [
|
|
1523
1260
|
{ exchange: "coinbase" /* Coinbase */, status: "live" /* Live */ },
|
|
@@ -1659,7 +1396,6 @@ function generateClientMetadataForTokenTransfer() {
|
|
|
1659
1396
|
targetAsset: "0x",
|
|
1660
1397
|
targetChain: "",
|
|
1661
1398
|
targetAssetTicker: "",
|
|
1662
|
-
expirationTimestampMs: 0,
|
|
1663
1399
|
checkoutItemTitle: ""
|
|
1664
1400
|
}
|
|
1665
1401
|
},
|
|
@@ -1684,23 +1420,186 @@ import {
|
|
|
1684
1420
|
import { useCallback as useCallback4 } from "react";
|
|
1685
1421
|
|
|
1686
1422
|
// src/providers/useFingerprint.ts
|
|
1687
|
-
import { useCallback as useCallback3, useEffect as
|
|
1423
|
+
import { useCallback as useCallback3, useEffect as useEffect5 } from "react";
|
|
1688
1424
|
var storageKey = "funkit-connect-version";
|
|
1689
1425
|
function setFunkitConnectVersion({ version }) {
|
|
1690
1426
|
localStorage.setItem(storageKey, version);
|
|
1691
1427
|
}
|
|
1692
1428
|
function getCurrentSdkVersion() {
|
|
1693
|
-
return "7.0.0";
|
|
1429
|
+
return "7.0.3-next.0";
|
|
1694
1430
|
}
|
|
1695
1431
|
function useFingerprint() {
|
|
1696
1432
|
const fingerprint = useCallback3(() => {
|
|
1697
1433
|
setFunkitConnectVersion({ version: getCurrentSdkVersion() });
|
|
1698
1434
|
}, []);
|
|
1699
|
-
|
|
1435
|
+
useEffect5(() => {
|
|
1700
1436
|
fingerprint();
|
|
1701
1437
|
}, [fingerprint]);
|
|
1702
1438
|
}
|
|
1703
1439
|
|
|
1440
|
+
// src/utils/funLogger.ts
|
|
1441
|
+
import { datadogLogs } from "@datadog/browser-logs";
|
|
1442
|
+
import { DEV_API_KEY } from "@funkit/api-base";
|
|
1443
|
+
var DDOG_CLIENT_TOKEN = "pub4f86c6be8c792cb48dc156a8c17d9a47";
|
|
1444
|
+
var FUN_DEV_API_KEYS = [
|
|
1445
|
+
"hnHevQR0y394nBprGrvNx4HgoZHUwMet5mXTOBhf",
|
|
1446
|
+
"MYny3w7xJh6PRlRgkJ9604sHouY2MTke6lCPpSHq",
|
|
1447
|
+
DEV_API_KEY
|
|
1448
|
+
];
|
|
1449
|
+
function setDdogEnv(environment) {
|
|
1450
|
+
datadogLogs.setGlobalContextProperty("env", environment);
|
|
1451
|
+
}
|
|
1452
|
+
var FunLogger = class {
|
|
1453
|
+
constructor() {
|
|
1454
|
+
setDdogEnv("development" /* DEVELOPMENT */);
|
|
1455
|
+
this.apiKey = null;
|
|
1456
|
+
this.isDebugMode = false;
|
|
1457
|
+
this.userId = null;
|
|
1458
|
+
this.userAddress = null;
|
|
1459
|
+
this.userName = null;
|
|
1460
|
+
this.userLoginType = null;
|
|
1461
|
+
this.sdkVersion = null;
|
|
1462
|
+
}
|
|
1463
|
+
getFunLogEnv() {
|
|
1464
|
+
if (!this.apiKey || FUN_DEV_API_KEYS.includes(this.apiKey)) {
|
|
1465
|
+
return "development" /* DEVELOPMENT */;
|
|
1466
|
+
}
|
|
1467
|
+
return "production" /* PRODUCTION */;
|
|
1468
|
+
}
|
|
1469
|
+
logDataDog(level, title, data, error) {
|
|
1470
|
+
if (typeof window === "undefined") {
|
|
1471
|
+
return;
|
|
1472
|
+
}
|
|
1473
|
+
const datadogData = {
|
|
1474
|
+
data,
|
|
1475
|
+
apiKey: this.apiKey,
|
|
1476
|
+
userId: this.userId,
|
|
1477
|
+
userName: this.userName,
|
|
1478
|
+
userAddress: this.userAddress,
|
|
1479
|
+
userLoginType: this.userLoginType,
|
|
1480
|
+
sdkVersion: this.sdkVersion
|
|
1481
|
+
};
|
|
1482
|
+
switch (level) {
|
|
1483
|
+
case "info":
|
|
1484
|
+
datadogLogs.logger.info(title, datadogData);
|
|
1485
|
+
break;
|
|
1486
|
+
case "debug":
|
|
1487
|
+
datadogLogs.logger.debug(title, datadogData);
|
|
1488
|
+
break;
|
|
1489
|
+
case "warn":
|
|
1490
|
+
datadogLogs.logger.warn(title, datadogData);
|
|
1491
|
+
break;
|
|
1492
|
+
case "error":
|
|
1493
|
+
datadogLogs.logger.error(title, datadogData, error);
|
|
1494
|
+
}
|
|
1495
|
+
}
|
|
1496
|
+
onDebug({ title, data }) {
|
|
1497
|
+
const isProd = this.getFunLogEnv() === "production" /* PRODUCTION */;
|
|
1498
|
+
if (isProd) {
|
|
1499
|
+
this.logDataDog("debug", title, data);
|
|
1500
|
+
}
|
|
1501
|
+
if (!isProd || this.isDebugMode) {
|
|
1502
|
+
console.debug(title, data || "");
|
|
1503
|
+
}
|
|
1504
|
+
}
|
|
1505
|
+
onInfo({ title, data }) {
|
|
1506
|
+
const isProd = this.getFunLogEnv() === "production" /* PRODUCTION */;
|
|
1507
|
+
if (isProd) {
|
|
1508
|
+
this.logDataDog("info", title, data);
|
|
1509
|
+
}
|
|
1510
|
+
if (!isProd || this.isDebugMode) {
|
|
1511
|
+
console.log(title, data || "");
|
|
1512
|
+
}
|
|
1513
|
+
}
|
|
1514
|
+
onWarn({ title, data }) {
|
|
1515
|
+
const isProd = this.getFunLogEnv() === "production" /* PRODUCTION */;
|
|
1516
|
+
if (isProd) {
|
|
1517
|
+
this.logDataDog("warn", title, data);
|
|
1518
|
+
}
|
|
1519
|
+
if (!isProd || this.isDebugMode) {
|
|
1520
|
+
console.warn(title, data || "");
|
|
1521
|
+
}
|
|
1522
|
+
}
|
|
1523
|
+
onError({ title, error, data }) {
|
|
1524
|
+
const isProd = this.getFunLogEnv() === "production" /* PRODUCTION */;
|
|
1525
|
+
if (isProd) {
|
|
1526
|
+
this.logDataDog("error", title, data, error);
|
|
1527
|
+
}
|
|
1528
|
+
if (!isProd || this.isDebugMode) {
|
|
1529
|
+
console.error(title, data || "", error);
|
|
1530
|
+
}
|
|
1531
|
+
}
|
|
1532
|
+
extractError(error) {
|
|
1533
|
+
if (error instanceof Error) {
|
|
1534
|
+
return error;
|
|
1535
|
+
}
|
|
1536
|
+
if (typeof error === "object" && error !== null && "error" in error && error.error instanceof Error) {
|
|
1537
|
+
return error.error;
|
|
1538
|
+
}
|
|
1539
|
+
return null;
|
|
1540
|
+
}
|
|
1541
|
+
/**========================
|
|
1542
|
+
* PUBLIC LOGGER FUNCTIONS
|
|
1543
|
+
*=========================*/
|
|
1544
|
+
log(title, data) {
|
|
1545
|
+
this.onInfo({ title, data });
|
|
1546
|
+
}
|
|
1547
|
+
info(title, data) {
|
|
1548
|
+
this.onInfo({ title, data });
|
|
1549
|
+
}
|
|
1550
|
+
debug(title, data) {
|
|
1551
|
+
this.onDebug({ title, data });
|
|
1552
|
+
}
|
|
1553
|
+
warn(title, data) {
|
|
1554
|
+
this.onWarn({ title, data });
|
|
1555
|
+
}
|
|
1556
|
+
/**
|
|
1557
|
+
* @param errorOrData -
|
|
1558
|
+
* Previously was called "error" but since in the {@link Logger} interface, error is defined as object (which is the same thing as "any"), we treat it as of unknown type here for safety.
|
|
1559
|
+
* In a lot of places it's actually being used as a "data" prop, which also usually has an `.error` property representing an actual {@link Error} object.
|
|
1560
|
+
*/
|
|
1561
|
+
error(title, errorOrData, _data = {}) {
|
|
1562
|
+
const error = this.extractError(errorOrData) ?? void 0;
|
|
1563
|
+
const data = {
|
|
1564
|
+
..._data,
|
|
1565
|
+
...typeof errorOrData === "object" && errorOrData !== null ? errorOrData : {}
|
|
1566
|
+
};
|
|
1567
|
+
this.onError({ title, error, data });
|
|
1568
|
+
}
|
|
1569
|
+
configure(apiKey, isDebug, sdkVersion) {
|
|
1570
|
+
this.apiKey = apiKey;
|
|
1571
|
+
this.isDebugMode = isDebug;
|
|
1572
|
+
this.sdkVersion = sdkVersion;
|
|
1573
|
+
setDdogEnv(this.getFunLogEnv());
|
|
1574
|
+
}
|
|
1575
|
+
getUserId() {
|
|
1576
|
+
return this.userId;
|
|
1577
|
+
}
|
|
1578
|
+
getUserAddress() {
|
|
1579
|
+
return this.userAddress;
|
|
1580
|
+
}
|
|
1581
|
+
getUserName() {
|
|
1582
|
+
return this.userName;
|
|
1583
|
+
}
|
|
1584
|
+
getUserLoginType() {
|
|
1585
|
+
return this.userLoginType;
|
|
1586
|
+
}
|
|
1587
|
+
setUserInfo(userId, userAddress, userName, userLoginType) {
|
|
1588
|
+
this.userId = userId;
|
|
1589
|
+
this.userAddress = userAddress;
|
|
1590
|
+
this.userName = userName;
|
|
1591
|
+
this.userLoginType = userLoginType;
|
|
1592
|
+
}
|
|
1593
|
+
};
|
|
1594
|
+
datadogLogs.init({
|
|
1595
|
+
clientToken: DDOG_CLIENT_TOKEN,
|
|
1596
|
+
site: "datadoghq.com",
|
|
1597
|
+
forwardErrorsToLogs: false,
|
|
1598
|
+
sessionSampleRate: 100,
|
|
1599
|
+
service: "connect-sdk"
|
|
1600
|
+
});
|
|
1601
|
+
var logger = new FunLogger();
|
|
1602
|
+
|
|
1704
1603
|
// src/hooks/track/useTrack.ts
|
|
1705
1604
|
var stringifyValues = (metadata) => {
|
|
1706
1605
|
const normalizedMetadata = {};
|
|
@@ -1800,13 +1699,119 @@ var getWeb3AccountBalanceMessage = (t) => ({
|
|
|
1800
1699
|
[2 /* APPROVE_TRANSFER */]: (tokenSymbol) => t("checkoutConfirmation.confirmTokenTransfer", { tokenSymbol })
|
|
1801
1700
|
});
|
|
1802
1701
|
|
|
1702
|
+
// src/providers/FunkitConfigContext.tsx
|
|
1703
|
+
import { createContext as createContext5, useContext as useContext5, useMemo as useMemo5 } from "react";
|
|
1704
|
+
var DEFAULT_TEXT_CUSTOMIZATIONS = {
|
|
1705
|
+
virtualFiat: "Deposit with SEPA",
|
|
1706
|
+
brokerageOrExchange: "Connect Exchange",
|
|
1707
|
+
debitOrCredit: "Deposit with Card",
|
|
1708
|
+
accountBalance: "Wallet",
|
|
1709
|
+
selectAccount: "Select an exchange",
|
|
1710
|
+
sourceMethodTitle: "Your source",
|
|
1711
|
+
tokensListTitle: "Your tokens",
|
|
1712
|
+
transferTokens: "Transfer Crypto",
|
|
1713
|
+
receiveDropdownTitle: "",
|
|
1714
|
+
// Default to empty
|
|
1715
|
+
receiveDropdownLabel: "Asset to Receive",
|
|
1716
|
+
confirmationScreen: {
|
|
1717
|
+
payAmountLabel: "You send",
|
|
1718
|
+
receiveAmountLabel: "You receive"
|
|
1719
|
+
}
|
|
1720
|
+
};
|
|
1721
|
+
var DEFAULT_UI_CUSTOMIZATIONS = {
|
|
1722
|
+
alignTitle: "center",
|
|
1723
|
+
callToActionsUppercase: false,
|
|
1724
|
+
confirmationScreen: {
|
|
1725
|
+
preferDestinationWhenSame: false,
|
|
1726
|
+
showPaymentAmountUsd: false,
|
|
1727
|
+
showReceiveAmountUsd: false,
|
|
1728
|
+
showTokenAmount: true,
|
|
1729
|
+
showTransactionDigest: "none"
|
|
1730
|
+
},
|
|
1731
|
+
inputAmountScreen: {
|
|
1732
|
+
allowTokenAmountInput: true
|
|
1733
|
+
},
|
|
1734
|
+
selectAssetScreen: {
|
|
1735
|
+
showTargetAssetSelection: false
|
|
1736
|
+
},
|
|
1737
|
+
transferCryptoScreen: {
|
|
1738
|
+
showYouSendYouReceive: false
|
|
1739
|
+
}
|
|
1740
|
+
};
|
|
1741
|
+
var DEFAULT_FUNKIT_CONFIG = {
|
|
1742
|
+
apiKey: "",
|
|
1743
|
+
appName: "",
|
|
1744
|
+
textCustomizations: DEFAULT_TEXT_CUSTOMIZATIONS,
|
|
1745
|
+
uiCustomizations: DEFAULT_UI_CUSTOMIZATIONS
|
|
1746
|
+
};
|
|
1747
|
+
var FunkitConfigContext = createContext5(
|
|
1748
|
+
DEFAULT_FUNKIT_CONFIG
|
|
1749
|
+
);
|
|
1750
|
+
function useFunkitConfig() {
|
|
1751
|
+
const originalFunkitConfig = useContext5(FunkitConfigContext);
|
|
1752
|
+
const { t } = useFunkitTranslation();
|
|
1753
|
+
const translatedDefaults = useMemo5(() => {
|
|
1754
|
+
return {
|
|
1755
|
+
virtualFiat: t("textCustomizations.virtualFiat"),
|
|
1756
|
+
brokerageOrExchange: t("textCustomizations.brokerageOrExchange"),
|
|
1757
|
+
debitOrCredit: t("textCustomizations.debitOrCredit"),
|
|
1758
|
+
accountBalance: t("textCustomizations.accountBalance"),
|
|
1759
|
+
selectAccount: t("textCustomizations.selectAccount"),
|
|
1760
|
+
sourceMethodTitle: t("textCustomizations.sourceMethodTitle"),
|
|
1761
|
+
tokensListTitle: t("textCustomizations.tokensListTitle"),
|
|
1762
|
+
transferTokens: t("textCustomizations.transferTokens"),
|
|
1763
|
+
receiveDropdownTitle: t("textCustomizations.receiveDropdownTitle"),
|
|
1764
|
+
receiveDropdownLabel: t("textCustomizations.receiveDropdownLabel"),
|
|
1765
|
+
confirmationScreen: {
|
|
1766
|
+
payAmountLabel: t("textCustomizations.payAmountLabel"),
|
|
1767
|
+
receiveAmountLabel: t("textCustomizations.receiveAmountLabel")
|
|
1768
|
+
}
|
|
1769
|
+
};
|
|
1770
|
+
}, [t]);
|
|
1771
|
+
const finalFunkitConfig = useMemo5(() => {
|
|
1772
|
+
return {
|
|
1773
|
+
...DEFAULT_FUNKIT_CONFIG,
|
|
1774
|
+
...originalFunkitConfig,
|
|
1775
|
+
textCustomizations: {
|
|
1776
|
+
...translatedDefaults,
|
|
1777
|
+
...originalFunkitConfig.textCustomizations,
|
|
1778
|
+
confirmationScreen: {
|
|
1779
|
+
...translatedDefaults.confirmationScreen,
|
|
1780
|
+
...originalFunkitConfig.textCustomizations?.confirmationScreen
|
|
1781
|
+
}
|
|
1782
|
+
},
|
|
1783
|
+
uiCustomizations: {
|
|
1784
|
+
...DEFAULT_FUNKIT_CONFIG.uiCustomizations,
|
|
1785
|
+
...originalFunkitConfig.uiCustomizations,
|
|
1786
|
+
selectAssetScreen: {
|
|
1787
|
+
...DEFAULT_FUNKIT_CONFIG.uiCustomizations.selectAssetScreen,
|
|
1788
|
+
...originalFunkitConfig.uiCustomizations?.selectAssetScreen
|
|
1789
|
+
},
|
|
1790
|
+
confirmationScreen: {
|
|
1791
|
+
...DEFAULT_FUNKIT_CONFIG.uiCustomizations.confirmationScreen,
|
|
1792
|
+
...originalFunkitConfig.uiCustomizations?.confirmationScreen
|
|
1793
|
+
},
|
|
1794
|
+
inputAmountScreen: {
|
|
1795
|
+
...DEFAULT_FUNKIT_CONFIG.uiCustomizations.inputAmountScreen,
|
|
1796
|
+
...originalFunkitConfig.uiCustomizations?.inputAmountScreen
|
|
1797
|
+
},
|
|
1798
|
+
transferCryptoScreen: {
|
|
1799
|
+
...DEFAULT_FUNKIT_CONFIG.uiCustomizations.transferCryptoScreen,
|
|
1800
|
+
...originalFunkitConfig.uiCustomizations?.transferCryptoScreen
|
|
1801
|
+
}
|
|
1802
|
+
}
|
|
1803
|
+
};
|
|
1804
|
+
}, [originalFunkitConfig, translatedDefaults]);
|
|
1805
|
+
return finalFunkitConfig;
|
|
1806
|
+
}
|
|
1807
|
+
|
|
1803
1808
|
// src/providers/GeneralWalletProvider.tsx
|
|
1804
1809
|
import { formatAddress as formatAddress2 } from "@funkit/utils";
|
|
1805
1810
|
import React17, {
|
|
1806
1811
|
createContext as createContext6,
|
|
1807
1812
|
useCallback as useCallback5,
|
|
1808
1813
|
useContext as useContext6,
|
|
1809
|
-
useEffect as
|
|
1814
|
+
useEffect as useEffect6,
|
|
1810
1815
|
useMemo as useMemo6,
|
|
1811
1816
|
useState as useState7
|
|
1812
1817
|
} from "react";
|
|
@@ -1906,6 +1911,22 @@ function formatENS(name) {
|
|
|
1906
1911
|
return `${parts.join(".")}.${last}`;
|
|
1907
1912
|
}
|
|
1908
1913
|
|
|
1914
|
+
// src/consts/funkit.ts
|
|
1915
|
+
import { FUNKIT_CONNECT_CHECKOUT_NATIVE_CURRENCY_ADDRESS } from "@funkit/chains";
|
|
1916
|
+
var NATIVE_TOKEN = FUNKIT_CONNECT_CHECKOUT_NATIVE_CURRENCY_ADDRESS;
|
|
1917
|
+
var FUN_ORG_NAME = "Fun.xyz";
|
|
1918
|
+
var FUN_TERMS_URL = "https://fun.xyz/terms";
|
|
1919
|
+
var PLACEHOLDER_FUNKIT_USER_INFO = {
|
|
1920
|
+
id: "0x",
|
|
1921
|
+
address: "0x",
|
|
1922
|
+
name: "Guest",
|
|
1923
|
+
nameTruncated: "Guest",
|
|
1924
|
+
type: "unknown",
|
|
1925
|
+
typeLabel: "",
|
|
1926
|
+
iconSrc: "",
|
|
1927
|
+
isConnected: false
|
|
1928
|
+
};
|
|
1929
|
+
|
|
1909
1930
|
// src/hooks/useSymbolRefresh.ts
|
|
1910
1931
|
import { useState as useState6 } from "react";
|
|
1911
1932
|
function useSymbolRefresh() {
|
|
@@ -1984,7 +2005,7 @@ function GeneralWalletProvider({ children }) {
|
|
|
1984
2005
|
apiKey,
|
|
1985
2006
|
externalUserId
|
|
1986
2007
|
]);
|
|
1987
|
-
|
|
2008
|
+
useEffect6(() => {
|
|
1988
2009
|
if (userInfo.id !== logger.getUserId() || userInfo.address !== logger.getUserAddress() || userInfo.name !== logger.getUserName() || userInfo.type !== logger.getUserLoginType()) {
|
|
1989
2010
|
logger.log("settingUserInfo", userInfo);
|
|
1990
2011
|
updateUserAsync(userInfo, apiKey).catch(
|
|
@@ -2146,63 +2167,73 @@ async function disableAtomicBatchIfSupported(wallet, chainId) {
|
|
|
2146
2167
|
});
|
|
2147
2168
|
}
|
|
2148
2169
|
|
|
2170
|
+
// src/utils/lighter.ts
|
|
2171
|
+
import { getAddress } from "viem";
|
|
2172
|
+
var LIGHTER_DEPOSIT_ABI = [
|
|
2173
|
+
{
|
|
2174
|
+
inputs: [
|
|
2175
|
+
{ internalType: "address", name: "_to", type: "address" },
|
|
2176
|
+
{ internalType: "uint16", name: "_assetIndex", type: "uint16" },
|
|
2177
|
+
{
|
|
2178
|
+
internalType: "enum TxTypes.RouteType",
|
|
2179
|
+
name: "_routeType",
|
|
2180
|
+
type: "uint8"
|
|
2181
|
+
},
|
|
2182
|
+
{ internalType: "uint256", name: "_amount", type: "uint256" }
|
|
2183
|
+
],
|
|
2184
|
+
name: "deposit",
|
|
2185
|
+
outputs: [],
|
|
2186
|
+
stateMutability: "payable",
|
|
2187
|
+
type: "function"
|
|
2188
|
+
},
|
|
2189
|
+
{
|
|
2190
|
+
inputs: [{ internalType: "address", name: "", type: "address" }],
|
|
2191
|
+
name: "addressToAccountIndex",
|
|
2192
|
+
outputs: [{ internalType: "uint256", name: "", type: "uint256" }],
|
|
2193
|
+
stateMutability: "view",
|
|
2194
|
+
type: "function"
|
|
2195
|
+
},
|
|
2196
|
+
{
|
|
2197
|
+
inputs: [{ internalType: "uint16", name: "assetIndex", type: "uint16" }],
|
|
2198
|
+
name: "assetConfigs",
|
|
2199
|
+
outputs: [
|
|
2200
|
+
{ internalType: "address", name: "tokenAddress", type: "address" },
|
|
2201
|
+
{
|
|
2202
|
+
internalType: "uint8",
|
|
2203
|
+
name: "withdrawalsEnabled",
|
|
2204
|
+
type: "uint8"
|
|
2205
|
+
},
|
|
2206
|
+
{
|
|
2207
|
+
internalType: "uint56",
|
|
2208
|
+
name: "extensionMultiplier",
|
|
2209
|
+
type: "uint56"
|
|
2210
|
+
},
|
|
2211
|
+
{ internalType: "uint128", name: "tickSize", type: "uint128" },
|
|
2212
|
+
{ internalType: "uint64", name: "depositCapTicks", type: "uint64" },
|
|
2213
|
+
{ internalType: "uint64", name: "minDepositTicks", type: "uint64" }
|
|
2214
|
+
],
|
|
2215
|
+
stateMutability: "view",
|
|
2216
|
+
type: "function"
|
|
2217
|
+
}
|
|
2218
|
+
];
|
|
2219
|
+
var LIGHTER_DEPOSIT_ADDRESS = getAddress(
|
|
2220
|
+
"0x3b4d794a66304f130a4db8f2551b0070dfcf5ca7"
|
|
2221
|
+
);
|
|
2222
|
+
var roundDownToTick = (amount, tickSize) => {
|
|
2223
|
+
return amount - amount % tickSize;
|
|
2224
|
+
};
|
|
2225
|
+
|
|
2149
2226
|
// src/hooks/useRelayBypass.ts
|
|
2150
2227
|
import { FlagKey as FlagKey3, isTokenAddressEquivalent } from "@funkit/utils";
|
|
2151
2228
|
import { useCallback as useCallback6, useMemo as useMemo10 } from "react";
|
|
2152
2229
|
|
|
2153
|
-
// src/consts/customers.ts
|
|
2154
|
-
import {
|
|
2155
|
-
AVANTIS_API_KEY,
|
|
2156
|
-
BANKR_API_KEY,
|
|
2157
|
-
BASED_API_KEY,
|
|
2158
|
-
BSX_API_KEY,
|
|
2159
|
-
ETHEREAL_API_KEY as ETHEREAL_API_KEY2,
|
|
2160
|
-
HYENA_API_KEY,
|
|
2161
|
-
HYPERBEAT_API_KEY,
|
|
2162
|
-
HYPERDASH_API_KEY,
|
|
2163
|
-
KATANA_API_KEY,
|
|
2164
|
-
LIGHTERXYZ_API_KEY,
|
|
2165
|
-
MONAD_API_KEY,
|
|
2166
|
-
MONKEY_TILT_API_KEY,
|
|
2167
|
-
OSTIUM_API_KEY,
|
|
2168
|
-
PERPL_API_KEY,
|
|
2169
|
-
POLYMARKET_API_KEY
|
|
2170
|
-
} from "@funkit/api-base";
|
|
2171
|
-
function isPolymarketCustomer(apiKey) {
|
|
2172
|
-
return apiKey === POLYMARKET_API_KEY;
|
|
2173
|
-
}
|
|
2174
|
-
function isOstiumCustomer(apiKey) {
|
|
2175
|
-
return apiKey === OSTIUM_API_KEY;
|
|
2176
|
-
}
|
|
2177
|
-
function isBankrCustomer(apiKey) {
|
|
2178
|
-
return apiKey === BANKR_API_KEY;
|
|
2179
|
-
}
|
|
2180
|
-
function isEtherealCustomer(apiKey) {
|
|
2181
|
-
return apiKey === ETHEREAL_API_KEY2;
|
|
2182
|
-
}
|
|
2183
|
-
function isKatanaCustomer(apiKey) {
|
|
2184
|
-
return apiKey === KATANA_API_KEY;
|
|
2185
|
-
}
|
|
2186
|
-
function isMonadCustomer(apiKey) {
|
|
2187
|
-
return apiKey === MONAD_API_KEY;
|
|
2188
|
-
}
|
|
2189
|
-
function isBasedCustomer(apiKey) {
|
|
2190
|
-
return apiKey === BASED_API_KEY;
|
|
2191
|
-
}
|
|
2192
|
-
function isHyenaCustomer(apiKey) {
|
|
2193
|
-
return apiKey === HYENA_API_KEY;
|
|
2194
|
-
}
|
|
2195
|
-
function isLighterxyzCustomer(apiKey) {
|
|
2196
|
-
return apiKey === LIGHTERXYZ_API_KEY;
|
|
2197
|
-
}
|
|
2198
|
-
|
|
2199
2230
|
// src/providers/FunkitFlagsProvider.tsx
|
|
2200
2231
|
import { datadogLogs as datadogLogs2 } from "@datadog/browser-logs";
|
|
2201
2232
|
import { useQuery as useQuery2 } from "@tanstack/react-query";
|
|
2202
2233
|
import React18, {
|
|
2203
2234
|
createContext as createContext7,
|
|
2204
2235
|
useContext as useContext7,
|
|
2205
|
-
useEffect as
|
|
2236
|
+
useEffect as useEffect7,
|
|
2206
2237
|
useMemo as useMemo8
|
|
2207
2238
|
} from "react";
|
|
2208
2239
|
|
|
@@ -2231,6 +2262,7 @@ import {
|
|
|
2231
2262
|
POLYMARKET_API_KEY as POLYMARKET_API_KEY2,
|
|
2232
2263
|
RAREBETSPORTS_API_KEY,
|
|
2233
2264
|
SUSHI_API_KEY,
|
|
2265
|
+
TRADEFOX_API_KEY,
|
|
2234
2266
|
VENTUALS_API_KEY
|
|
2235
2267
|
} from "@funkit/api-base";
|
|
2236
2268
|
import { MONAD_CHAIN_ID, bitcoinChain } from "@funkit/chains";
|
|
@@ -2372,12 +2404,12 @@ var flagConfig = {
|
|
|
2372
2404
|
POLYMARKET_API_KEY2,
|
|
2373
2405
|
KATANA_API_KEY2,
|
|
2374
2406
|
HYPERBEAT_API_KEY2,
|
|
2375
|
-
HYPERDASH_API_KEY2
|
|
2407
|
+
HYPERDASH_API_KEY2,
|
|
2408
|
+
FELIX_API_KEY
|
|
2376
2409
|
]
|
|
2377
2410
|
}
|
|
2378
2411
|
],
|
|
2379
|
-
// Turn off
|
|
2380
|
-
// These clients will handle the conditional display of the Deposit button.
|
|
2412
|
+
// Turn off geoblocks for client who will be handling the conditional display of the Deposit button.
|
|
2381
2413
|
value: ""
|
|
2382
2414
|
}
|
|
2383
2415
|
]
|
|
@@ -2466,7 +2498,8 @@ var flagConfig = {
|
|
|
2466
2498
|
POLYMARKET_API_KEY2,
|
|
2467
2499
|
RAREBETSPORTS_API_KEY,
|
|
2468
2500
|
SUSHI_API_KEY,
|
|
2469
|
-
VENTUALS_API_KEY
|
|
2501
|
+
VENTUALS_API_KEY,
|
|
2502
|
+
TRADEFOX_API_KEY
|
|
2470
2503
|
]
|
|
2471
2504
|
}
|
|
2472
2505
|
],
|
|
@@ -2547,7 +2580,7 @@ var flagConfig = {
|
|
|
2547
2580
|
{
|
|
2548
2581
|
key: "apiKey",
|
|
2549
2582
|
type: "isAnyOf",
|
|
2550
|
-
values: [POLYMARKET_API_KEY2]
|
|
2583
|
+
values: [POLYMARKET_API_KEY2, BASED_API_KEY2, HYENA_API_KEY2]
|
|
2551
2584
|
}
|
|
2552
2585
|
],
|
|
2553
2586
|
value: JSON.stringify(QR_CODE_WITH_MONAD)
|
|
@@ -2967,10 +3000,10 @@ var flagConfig = {
|
|
|
2967
3000
|
type: "string",
|
|
2968
3001
|
default_value: JSON.stringify({
|
|
2969
3002
|
// EXAMPLE:
|
|
2970
|
-
// [
|
|
3003
|
+
// [solanaChain.id]: [
|
|
2971
3004
|
// {
|
|
2972
3005
|
// message:
|
|
2973
|
-
// '
|
|
3006
|
+
// 'Solana deposits are taking longer than usual to process. Your funds are safe.',
|
|
2974
3007
|
// type: 'alert',
|
|
2975
3008
|
// },
|
|
2976
3009
|
// ],
|
|
@@ -3253,12 +3286,12 @@ function FunkitFlagsProvider({ children }) {
|
|
|
3253
3286
|
isLoading
|
|
3254
3287
|
};
|
|
3255
3288
|
}, [error, flags, isLoading]);
|
|
3256
|
-
|
|
3289
|
+
useEffect7(() => {
|
|
3257
3290
|
if (!isLoading) {
|
|
3258
3291
|
datadogLogs2.setGlobalContextProperty("flags", flags);
|
|
3259
3292
|
}
|
|
3260
3293
|
}, [flags, isLoading]);
|
|
3261
|
-
|
|
3294
|
+
useEffect7(() => {
|
|
3262
3295
|
if (error) {
|
|
3263
3296
|
logger.error("flag_initError", error);
|
|
3264
3297
|
}
|
|
@@ -3432,16 +3465,22 @@ function useCheckoutDirectExecution() {
|
|
|
3432
3465
|
if (params.isExactIn) {
|
|
3433
3466
|
const { fromTokenDecimals, fromTokenAmount } = params;
|
|
3434
3467
|
const multiplier2 = 10 ** fromTokenDecimals;
|
|
3468
|
+
const fromAmountBaseUnit = BigInt(
|
|
3469
|
+
Math.floor(fromTokenAmount * multiplier2)
|
|
3470
|
+
);
|
|
3471
|
+
const roundedFromAmountBaseUnit = params.tickSize ? roundDownToTick(fromAmountBaseUnit, params.tickSize) : fromAmountBaseUnit;
|
|
3435
3472
|
return await getCheckoutQuoteV2({
|
|
3436
3473
|
...getCheckoutQuoteParams,
|
|
3437
|
-
fromAmountBaseUnit:
|
|
3474
|
+
fromAmountBaseUnit: roundedFromAmountBaseUnit
|
|
3438
3475
|
});
|
|
3439
3476
|
}
|
|
3440
3477
|
const { toTokenAmount, toTokenDecimals } = params;
|
|
3441
3478
|
const multiplier = 10 ** toTokenDecimals;
|
|
3479
|
+
const toAmountBaseUnit = BigInt(Math.floor(toTokenAmount * multiplier));
|
|
3480
|
+
const roundedToAmountBaseUnit = params.tickSize ? roundDownToTick(toAmountBaseUnit, params.tickSize) : toAmountBaseUnit;
|
|
3442
3481
|
return await getCheckoutQuoteV2({
|
|
3443
3482
|
...getCheckoutQuoteParams,
|
|
3444
|
-
toAmountBaseUnit:
|
|
3483
|
+
toAmountBaseUnit: roundedToAmountBaseUnit
|
|
3445
3484
|
});
|
|
3446
3485
|
},
|
|
3447
3486
|
[address, apiKey]
|
|
@@ -3672,12 +3711,19 @@ function getCheckoutTokenTransferParams({
|
|
|
3672
3711
|
toTokenAddress: checkoutConfig.targetAsset
|
|
3673
3712
|
};
|
|
3674
3713
|
}
|
|
3714
|
+
function useIsQRCodeTransferEnabled() {
|
|
3715
|
+
const { checkoutItem } = useCheckoutContext();
|
|
3716
|
+
const checkoutConfig = checkoutItem?.initSettings.config;
|
|
3717
|
+
const isQrCodeEnabled = useFlag(FlagKey4.EnableTokenTransfer, false);
|
|
3718
|
+
const { apiKey } = useFunkitConfig();
|
|
3719
|
+
return isQrCodeEnabled && !isLighterEthSpot(apiKey, checkoutConfig);
|
|
3720
|
+
}
|
|
3675
3721
|
var useCheckoutTransferInit = (enabled = true) => {
|
|
3676
3722
|
const { checkoutItem } = useCheckoutContext();
|
|
3677
3723
|
const checkoutConfig = checkoutItem?.initSettings.config;
|
|
3724
|
+
const isQrCodeEnabled = useIsQRCodeTransferEnabled();
|
|
3678
3725
|
const { walletAddress, userInfo } = useGeneralWallet();
|
|
3679
3726
|
const { apiKey } = useFunkitConfig();
|
|
3680
|
-
const isQrCodeEnabled = useFlag(FlagKey4.EnableTokenTransfer, false);
|
|
3681
3727
|
const recipientAddr = checkoutConfig?.customRecipient || walletAddress || "0x";
|
|
3682
3728
|
const userId = userInfo.id || "";
|
|
3683
3729
|
const queryKey = getCheckoutTokenTransferParams({
|
|
@@ -3753,7 +3799,7 @@ import React19, {
|
|
|
3753
3799
|
createContext as createContext8,
|
|
3754
3800
|
useCallback as useCallback9,
|
|
3755
3801
|
useContext as useContext8,
|
|
3756
|
-
useEffect as
|
|
3802
|
+
useEffect as useEffect8,
|
|
3757
3803
|
useRef as useRef2,
|
|
3758
3804
|
useState as useState8
|
|
3759
3805
|
} from "react";
|
|
@@ -4006,12 +4052,12 @@ function FunkitCheckoutHistoryProvider({
|
|
|
4006
4052
|
isUserLoggedIn,
|
|
4007
4053
|
userInfo
|
|
4008
4054
|
]);
|
|
4009
|
-
|
|
4055
|
+
useEffect8(() => {
|
|
4010
4056
|
if (isListening && (isUserLoggedIn || isGuestUserOnCheckoutHistory)) {
|
|
4011
4057
|
_refreshCheckoutHistory();
|
|
4012
4058
|
}
|
|
4013
4059
|
}, [refreshSymbol, isUserLoggedIn]);
|
|
4014
|
-
|
|
4060
|
+
useEffect8(() => {
|
|
4015
4061
|
if (isNotNullish(logoutSymbol) && isInited) {
|
|
4016
4062
|
setIsInited(false);
|
|
4017
4063
|
setCheckoutHistoryList([]);
|
|
@@ -4127,7 +4173,7 @@ var useFunkitPostCheckoutInternal = (checkoutId) => {
|
|
|
4127
4173
|
if (!checkoutId || !isHex(checkoutId)) {
|
|
4128
4174
|
throw new Error("Invalid checkout ID");
|
|
4129
4175
|
}
|
|
4130
|
-
|
|
4176
|
+
useEffect8(() => {
|
|
4131
4177
|
const setupCheckoutHistory = async () => {
|
|
4132
4178
|
if (checkoutId === "0x") {
|
|
4133
4179
|
return;
|
|
@@ -4193,7 +4239,7 @@ import React233, {
|
|
|
4193
4239
|
createContext as createContext16,
|
|
4194
4240
|
useCallback as useCallback48,
|
|
4195
4241
|
useContext as useContext16,
|
|
4196
|
-
useEffect as
|
|
4242
|
+
useEffect as useEffect54,
|
|
4197
4243
|
useMemo as useMemo46,
|
|
4198
4244
|
useState as useState73
|
|
4199
4245
|
} from "react";
|
|
@@ -4274,7 +4320,7 @@ function getCheckoutStateBooleans(checkoutState, refundState) {
|
|
|
4274
4320
|
}
|
|
4275
4321
|
|
|
4276
4322
|
// src/components/FunCheckoutHistory/FunCheckoutStatus.tsx
|
|
4277
|
-
import React27, { useEffect as
|
|
4323
|
+
import React27, { useEffect as useEffect11, useMemo as useMemo12, useState as useState11 } from "react";
|
|
4278
4324
|
|
|
4279
4325
|
// src/components/TransactionStatus/TransactionStatus.tsx
|
|
4280
4326
|
import {
|
|
@@ -4284,7 +4330,7 @@ import {
|
|
|
4284
4330
|
} from "motion/react";
|
|
4285
4331
|
import React26, {
|
|
4286
4332
|
useCallback as useCallback10,
|
|
4287
|
-
useEffect as
|
|
4333
|
+
useEffect as useEffect10,
|
|
4288
4334
|
useMemo as useMemo11,
|
|
4289
4335
|
useRef as useRef3,
|
|
4290
4336
|
useState as useState10
|
|
@@ -4292,7 +4338,7 @@ import React26, {
|
|
|
4292
4338
|
import { Trans } from "react-i18next";
|
|
4293
4339
|
|
|
4294
4340
|
// src/providers/FunkitThemeProvider.tsx
|
|
4295
|
-
import React20, { createContext as createContext9, useContext as useContext9, useEffect as
|
|
4341
|
+
import React20, { createContext as createContext9, useContext as useContext9, useEffect as useEffect9, useState as useState9 } from "react";
|
|
4296
4342
|
var FUNKIT_THEME_CACHE_KEY = "funkit-connect-is-light";
|
|
4297
4343
|
var DEFAULT_THEME_SET = {
|
|
4298
4344
|
lightTheme: lightTheme(),
|
|
@@ -4375,7 +4421,7 @@ var FunkitThemeProvider = ({
|
|
|
4375
4421
|
const [activeTheme, setActiveTheme] = useState9(
|
|
4376
4422
|
getConfigTheme(themeOrThemeSet, systemColorScheme)
|
|
4377
4423
|
);
|
|
4378
|
-
|
|
4424
|
+
useEffect9(() => {
|
|
4379
4425
|
const handler = (e) => {
|
|
4380
4426
|
const colorScheme = e.matches ? "light" : "dark";
|
|
4381
4427
|
setSystemColorScheme(colorScheme);
|
|
@@ -4392,7 +4438,7 @@ var FunkitThemeProvider = ({
|
|
|
4392
4438
|
};
|
|
4393
4439
|
}
|
|
4394
4440
|
}, []);
|
|
4395
|
-
|
|
4441
|
+
useEffect9(() => {
|
|
4396
4442
|
setActiveTheme(getConfigTheme(themeOrThemeSet, systemColorScheme));
|
|
4397
4443
|
}, [systemColorScheme, themeOrThemeSet]);
|
|
4398
4444
|
const isFullThemeSet = isThemeSet(themeOrThemeSet);
|
|
@@ -5112,12 +5158,12 @@ function TransactionStatus({
|
|
|
5112
5158
|
},
|
|
5113
5159
|
[animate]
|
|
5114
5160
|
);
|
|
5115
|
-
|
|
5161
|
+
useEffect10(() => {
|
|
5116
5162
|
if (initialStatus === "progress") {
|
|
5117
5163
|
startSpinning(initialStep);
|
|
5118
5164
|
}
|
|
5119
5165
|
}, [initialStatus, initialStep, startSpinning]);
|
|
5120
|
-
|
|
5166
|
+
useEffect10(() => {
|
|
5121
5167
|
if (transitioningToStatus !== currentStatus || transitioningToStep !== currentStep) {
|
|
5122
5168
|
return;
|
|
5123
5169
|
}
|
|
@@ -5487,14 +5533,14 @@ function FunCheckoutStatusLoaded({
|
|
|
5487
5533
|
[activeCheckoutItem, checkoutHistoryItem]
|
|
5488
5534
|
);
|
|
5489
5535
|
const [currentTimeMs, setCurrentTimeMs] = useState11(Date.now());
|
|
5490
|
-
|
|
5536
|
+
useEffect11(() => {
|
|
5491
5537
|
const interval = setInterval(() => setCurrentTimeMs(Date.now()), 1e3);
|
|
5492
5538
|
return () => clearInterval(interval);
|
|
5493
5539
|
}, []);
|
|
5494
5540
|
const onOrderDelayedEvent = useEffectEvent(() => onOrderDelayed?.());
|
|
5495
5541
|
const elapsedSeconds = (currentTimeMs - startTimeMs) / 1e3;
|
|
5496
5542
|
const isNewlyDelayed = isProcessing && elapsedSeconds >= 60;
|
|
5497
|
-
|
|
5543
|
+
useEffect11(() => {
|
|
5498
5544
|
if (isNewlyDelayed) {
|
|
5499
5545
|
onOrderDelayedEvent();
|
|
5500
5546
|
}
|
|
@@ -5526,7 +5572,7 @@ function extractStartTimeMs(historyCheckoutItemId, activeCheckoutItem, { created
|
|
|
5526
5572
|
}
|
|
5527
5573
|
|
|
5528
5574
|
// src/components/FunCheckoutHistory/FunDirectExecutionStatus.tsx
|
|
5529
|
-
import React28, { useEffect as
|
|
5575
|
+
import React28, { useEffect as useEffect12, useState as useState12 } from "react";
|
|
5530
5576
|
|
|
5531
5577
|
// src/hooks/useCheckoutTimeEstimate.ts
|
|
5532
5578
|
import { FlagKey as FlagKey5 } from "@funkit/utils";
|
|
@@ -5609,7 +5655,7 @@ function FunDirectExecutionStatusLoaded({
|
|
|
5609
5655
|
const progress = getCheckoutProgress(directExecution.clientMetadata.id);
|
|
5610
5656
|
const startTimeMs = directExecution.createdTimeMs;
|
|
5611
5657
|
const [currentTimeMs, setCurrentTimeMs] = useState12(Date.now());
|
|
5612
|
-
|
|
5658
|
+
useEffect12(() => {
|
|
5613
5659
|
const interval = setInterval(() => setCurrentTimeMs(Date.now()), 1e3);
|
|
5614
5660
|
return () => clearInterval(interval);
|
|
5615
5661
|
}, []);
|
|
@@ -5868,7 +5914,7 @@ import clsx7 from "clsx";
|
|
|
5868
5914
|
import React45, {
|
|
5869
5915
|
useCallback as useCallback12,
|
|
5870
5916
|
useContext as useContext10,
|
|
5871
|
-
useEffect as
|
|
5917
|
+
useEffect as useEffect17,
|
|
5872
5918
|
useRef as useRef7
|
|
5873
5919
|
} from "react";
|
|
5874
5920
|
import { createPortal } from "react-dom";
|
|
@@ -5876,13 +5922,13 @@ import { RemoveScroll } from "react-remove-scroll";
|
|
|
5876
5922
|
import { AnimatePresence as AnimatePresence2, motion as motion3 } from "motion/react";
|
|
5877
5923
|
|
|
5878
5924
|
// src/hooks/useScrollDivider.ts
|
|
5879
|
-
import { useEffect as
|
|
5925
|
+
import { useEffect as useEffect13, useRef as useRef5, useState as useState14 } from "react";
|
|
5880
5926
|
var useScrollDivider = () => {
|
|
5881
5927
|
const ref = useRef5(null);
|
|
5882
5928
|
const [isTop, setIsTop] = useState14(true);
|
|
5883
5929
|
const [isScrollable, setIsScrollable] = useState14(false);
|
|
5884
5930
|
const [isScrolling, setIsScrolling] = useState14(false);
|
|
5885
|
-
|
|
5931
|
+
useEffect13(() => {
|
|
5886
5932
|
const content2 = ref.current;
|
|
5887
5933
|
if (!content2 || !window.ResizeObserver) {
|
|
5888
5934
|
return;
|
|
@@ -5936,7 +5982,9 @@ var ModalSizeOptions = {
|
|
|
5936
5982
|
MEDIUM: "medium",
|
|
5937
5983
|
WIDE: "wide"
|
|
5938
5984
|
};
|
|
5939
|
-
var ModalSizeContext = createContext10(
|
|
5985
|
+
var ModalSizeContext = createContext10(
|
|
5986
|
+
ModalSizeOptions.MEDIUM
|
|
5987
|
+
);
|
|
5940
5988
|
function ModalSizeProvider({
|
|
5941
5989
|
children,
|
|
5942
5990
|
modalSize
|
|
@@ -6195,9 +6243,75 @@ var ErrorBoundary = class extends Component {
|
|
|
6195
6243
|
var ErrorBoundary_default = ErrorBoundary;
|
|
6196
6244
|
|
|
6197
6245
|
// src/components/FunBottomBar/FunBottomBar.tsx
|
|
6198
|
-
import {
|
|
6246
|
+
import { isMobile as isMobile2 } from "@funkit/utils";
|
|
6199
6247
|
import React40 from "react";
|
|
6200
6248
|
|
|
6249
|
+
// src/hooks/statsig/useDynamicConfig.ts
|
|
6250
|
+
import { useDynamicConfig as useStatsigDynamicConfig } from "@statsig/react-bindings";
|
|
6251
|
+
|
|
6252
|
+
// src/__generated__/default_configs.ts
|
|
6253
|
+
var default_configs_default = {
|
|
6254
|
+
addressblacklist: {
|
|
6255
|
+
value: [
|
|
6256
|
+
"0x7b97b46D35a28B561d47F50CFB9a2735E506e59d",
|
|
6257
|
+
"0x409ad08cc6CA757f69Fb80250a424B9eFeB99807",
|
|
6258
|
+
"0x02A86f51aA7B8b1c17c30364748d5Ae4a0727E23",
|
|
6259
|
+
"0x64131b60502C01362639CC5cfE1a1efB6Be1165A",
|
|
6260
|
+
"0xb84440Ee8BAD69c14755bBb7093f861c3512E3D1"
|
|
6261
|
+
]
|
|
6262
|
+
},
|
|
6263
|
+
array_of_strings: {
|
|
6264
|
+
value: []
|
|
6265
|
+
},
|
|
6266
|
+
blockedcountries: {
|
|
6267
|
+
value: [
|
|
6268
|
+
"AF",
|
|
6269
|
+
"BY",
|
|
6270
|
+
"MM",
|
|
6271
|
+
"CF",
|
|
6272
|
+
"CU",
|
|
6273
|
+
"CD",
|
|
6274
|
+
"IR",
|
|
6275
|
+
"LB",
|
|
6276
|
+
"LY",
|
|
6277
|
+
"NI",
|
|
6278
|
+
"KP",
|
|
6279
|
+
"UA",
|
|
6280
|
+
"SO",
|
|
6281
|
+
"SS",
|
|
6282
|
+
"SY",
|
|
6283
|
+
"VE"
|
|
6284
|
+
]
|
|
6285
|
+
},
|
|
6286
|
+
boolean: {
|
|
6287
|
+
value: false
|
|
6288
|
+
},
|
|
6289
|
+
brokerage_hide_you_receive: {
|
|
6290
|
+
value: false
|
|
6291
|
+
},
|
|
6292
|
+
showinfobanner: {
|
|
6293
|
+
value: {
|
|
6294
|
+
message: "",
|
|
6295
|
+
expireAtMs: 1,
|
|
6296
|
+
type: "announcement"
|
|
6297
|
+
}
|
|
6298
|
+
},
|
|
6299
|
+
showpoweredtagline: {
|
|
6300
|
+
value: false
|
|
6301
|
+
},
|
|
6302
|
+
supportedexchangesv2: {
|
|
6303
|
+
value: []
|
|
6304
|
+
}
|
|
6305
|
+
};
|
|
6306
|
+
|
|
6307
|
+
// src/hooks/statsig/useDynamicConfig.ts
|
|
6308
|
+
var useDynamicConfig = (name) => {
|
|
6309
|
+
const config = useStatsigDynamicConfig(name);
|
|
6310
|
+
const fallback2 = default_configs_default[name];
|
|
6311
|
+
const value = config.get("value", fallback2.value);
|
|
6312
|
+
return value;
|
|
6313
|
+
};
|
|
6314
|
+
|
|
6201
6315
|
// src/components/FunButton/FunButton.tsx
|
|
6202
6316
|
import clsx6 from "clsx";
|
|
6203
6317
|
import React37 from "react";
|
|
@@ -6495,11 +6609,17 @@ var FunTechnologyLogo = () => {
|
|
|
6495
6609
|
);
|
|
6496
6610
|
};
|
|
6497
6611
|
|
|
6612
|
+
// src/components/FunPoweredTagline/FunPoweredTagline.css.ts
|
|
6613
|
+
var taglineBorderTop = "_1wdgk6i0";
|
|
6614
|
+
|
|
6498
6615
|
// src/components/FunPoweredTagline/FunPoweredTagline.tsx
|
|
6499
|
-
function FunPoweredTagline(
|
|
6616
|
+
function FunPoweredTagline({
|
|
6617
|
+
enableBorderTop = true
|
|
6618
|
+
}) {
|
|
6500
6619
|
return /* @__PURE__ */ React39.createElement(
|
|
6501
6620
|
Box,
|
|
6502
6621
|
{
|
|
6622
|
+
className: enableBorderTop ? taglineBorderTop : void 0,
|
|
6503
6623
|
display: "flex",
|
|
6504
6624
|
flexDirection: "row",
|
|
6505
6625
|
justifyContent: "center",
|
|
@@ -6531,7 +6651,7 @@ var FunBottomBar = ({
|
|
|
6531
6651
|
}) => {
|
|
6532
6652
|
const { t } = useFunkitTranslation();
|
|
6533
6653
|
const { uiCustomizations } = useFunkitConfig();
|
|
6534
|
-
const showTagline =
|
|
6654
|
+
const showTagline = useDynamicConfig("showpoweredtagline");
|
|
6535
6655
|
const powerTagline = showTagline ? /* @__PURE__ */ React40.createElement(FunPoweredTagline, null) : void 0;
|
|
6536
6656
|
const hasMultipleButtons = !!actionButtonProps && !!onClose;
|
|
6537
6657
|
const customButtonRadius = showTagline || hasMultipleButtons ? void 0 : isMobile2() ? "modalActionButtonMobile" : "modalActionButton";
|
|
@@ -6677,7 +6797,7 @@ function FunDivider({
|
|
|
6677
6797
|
}
|
|
6678
6798
|
|
|
6679
6799
|
// src/components/Dialog/FocusTrap.tsx
|
|
6680
|
-
import React44, { useCallback as useCallback11, useEffect as
|
|
6800
|
+
import React44, { useCallback as useCallback11, useEffect as useEffect14, useRef as useRef6 } from "react";
|
|
6681
6801
|
var moveFocusWithin = (element2, position) => {
|
|
6682
6802
|
const focusableElements = element2.querySelectorAll(
|
|
6683
6803
|
"button:not(:disabled), a[href]"
|
|
@@ -6689,14 +6809,14 @@ var moveFocusWithin = (element2, position) => {
|
|
|
6689
6809
|
};
|
|
6690
6810
|
function FocusTrap(props) {
|
|
6691
6811
|
const contentRef = useRef6(null);
|
|
6692
|
-
|
|
6812
|
+
useEffect14(() => {
|
|
6693
6813
|
const previouslyActiveElement = document.activeElement;
|
|
6694
6814
|
return () => {
|
|
6695
6815
|
;
|
|
6696
6816
|
previouslyActiveElement.focus?.();
|
|
6697
6817
|
};
|
|
6698
6818
|
}, []);
|
|
6699
|
-
|
|
6819
|
+
useEffect14(() => {
|
|
6700
6820
|
if (contentRef.current) {
|
|
6701
6821
|
const elementToFocus = contentRef.current.querySelector("[data-auto-focus]");
|
|
6702
6822
|
if (elementToFocus) {
|
|
@@ -6737,11 +6857,11 @@ function FocusTrap(props) {
|
|
|
6737
6857
|
}
|
|
6738
6858
|
|
|
6739
6859
|
// src/components/Dialog/hooks.ts
|
|
6740
|
-
import { useEffect as
|
|
6860
|
+
import { useEffect as useEffect16, useState as useState15 } from "react";
|
|
6741
6861
|
|
|
6742
6862
|
// src/hooks/useIsomorphicEffect.ts
|
|
6743
|
-
import { useEffect as
|
|
6744
|
-
var useIsomorphicLayoutEffect = typeof window !== "undefined" ? useLayoutEffect :
|
|
6863
|
+
import { useEffect as useEffect15, useLayoutEffect } from "react";
|
|
6864
|
+
var useIsomorphicLayoutEffect = typeof window !== "undefined" ? useLayoutEffect : useEffect15;
|
|
6745
6865
|
|
|
6746
6866
|
// src/components/Dialog/hooks.ts
|
|
6747
6867
|
var MODAL_BOTTOM_BAR_WRAPPER_ID = "fun-modal-bottom-bar-wrapper";
|
|
@@ -6818,7 +6938,7 @@ function useBottomBarHasNoChildren() {
|
|
|
6818
6938
|
const withdrawalBottomBarElement = useWithdrawalBottomBarElement();
|
|
6819
6939
|
const connectWalletBottomBarElement = useConnectWalletBottomBarElement();
|
|
6820
6940
|
const [hasNoChildren, setHasNoChildren] = useState15(false);
|
|
6821
|
-
|
|
6941
|
+
useEffect16(() => {
|
|
6822
6942
|
const node = connectWalletBottomBarElement || checkoutBottomBarElement || withdrawalBottomBarElement || generalBottomBarElement;
|
|
6823
6943
|
if (!node) {
|
|
6824
6944
|
return;
|
|
@@ -6869,7 +6989,7 @@ function Dialog({
|
|
|
6869
6989
|
withTransition = true,
|
|
6870
6990
|
testId
|
|
6871
6991
|
}) {
|
|
6872
|
-
|
|
6992
|
+
useEffect17(() => {
|
|
6873
6993
|
const handleEscape = (event) => open && event.key === "Escape" && onClose();
|
|
6874
6994
|
if (isSmartCloseable) {
|
|
6875
6995
|
document.addEventListener("keydown", handleEscape);
|
|
@@ -7221,13 +7341,16 @@ Dialog.BottomBar = FunBottomBar;
|
|
|
7221
7341
|
|
|
7222
7342
|
// src/modals/WithdrwalModal/WithdrawalContent.tsx
|
|
7223
7343
|
import { RelayQuoteError } from "@funkit/api-base";
|
|
7224
|
-
import { FUNKIT_CONNECT_SUPPORTED_CHAINS_INFO as FUNKIT_CONNECT_SUPPORTED_CHAINS_INFO5 } from "@funkit/chains";
|
|
7225
7344
|
import {
|
|
7226
|
-
|
|
7345
|
+
FUNKIT_CONNECT_SUPPORTED_CHAINS_INFO as FUNKIT_CONNECT_SUPPORTED_CHAINS_INFO5,
|
|
7346
|
+
solanaChain as solanaChain4
|
|
7347
|
+
} from "@funkit/chains";
|
|
7348
|
+
import {
|
|
7349
|
+
FlagKey as FlagKey11,
|
|
7227
7350
|
formatCryptoAndStringify as formatCryptoAndStringify2,
|
|
7228
7351
|
formatCurrencyAndStringify as formatCurrencyAndStringify3
|
|
7229
7352
|
} from "@funkit/utils";
|
|
7230
|
-
import React72, { useEffect as
|
|
7353
|
+
import React72, { useEffect as useEffect28, useMemo as useMemo19, useRef as useRef14, useState as useState27 } from "react";
|
|
7231
7354
|
import { createPortal as createPortal2 } from "react-dom";
|
|
7232
7355
|
import { useDebounce } from "use-debounce";
|
|
7233
7356
|
import { useAccount as useAccount4 } from "wagmi";
|
|
@@ -7236,13 +7359,13 @@ import { useAccount as useAccount4 } from "wagmi";
|
|
|
7236
7359
|
import React62 from "react";
|
|
7237
7360
|
|
|
7238
7361
|
// src/components/Dropdown/ChainDropdown.tsx
|
|
7239
|
-
import { FlagKey as
|
|
7362
|
+
import { FlagKey as FlagKey6 } from "@funkit/utils";
|
|
7240
7363
|
import React59 from "react";
|
|
7241
7364
|
|
|
7242
7365
|
// src/components/FunTooltip/FunTooltip.tsx
|
|
7243
7366
|
import React47, {
|
|
7244
7367
|
useCallback as useCallback13,
|
|
7245
|
-
useEffect as
|
|
7368
|
+
useEffect as useEffect18,
|
|
7246
7369
|
useRef as useRef8,
|
|
7247
7370
|
useState as useState16
|
|
7248
7371
|
} from "react";
|
|
@@ -7348,13 +7471,13 @@ var FunTooltip = ({
|
|
|
7348
7471
|
setIsDisplayed(false);
|
|
7349
7472
|
}, hideDelay);
|
|
7350
7473
|
}, [hideDelay]);
|
|
7351
|
-
|
|
7474
|
+
useEffect18(() => {
|
|
7352
7475
|
return () => {
|
|
7353
7476
|
clearTimeout(delayRef.current);
|
|
7354
7477
|
clearTimeout(startDelayRef.current);
|
|
7355
7478
|
};
|
|
7356
7479
|
}, []);
|
|
7357
|
-
|
|
7480
|
+
useEffect18(() => {
|
|
7358
7481
|
if (!wrapperElementRef?.current || !tooltipRef.current || !enableDynamicPositioning) {
|
|
7359
7482
|
return;
|
|
7360
7483
|
}
|
|
@@ -7423,7 +7546,7 @@ var FunTooltip = ({
|
|
|
7423
7546
|
// src/components/Dropdown/BaseDropdown.tsx
|
|
7424
7547
|
import { isMobile as isMobile4, noop as noop2 } from "@funkit/utils";
|
|
7425
7548
|
import { AnimatePresence as AnimatePresence4, motion as motion5 } from "motion/react";
|
|
7426
|
-
import React56, { useCallback as useCallback14, useEffect as
|
|
7549
|
+
import React56, { useCallback as useCallback14, useEffect as useEffect21, useMemo as useMemo13, useRef as useRef10, useState as useState18 } from "react";
|
|
7427
7550
|
|
|
7428
7551
|
// src/consts/layout.ts
|
|
7429
7552
|
var VERTICAL_SECTION_GAP = "18";
|
|
@@ -7437,7 +7560,7 @@ var DROPDOWN_Z_INDEX = 10;
|
|
|
7437
7560
|
// src/components/FunInput/FunInput.tsx
|
|
7438
7561
|
import React49, {
|
|
7439
7562
|
forwardRef as forwardRef3,
|
|
7440
|
-
useEffect as
|
|
7563
|
+
useEffect as useEffect19,
|
|
7441
7564
|
useState as useState17
|
|
7442
7565
|
} from "react";
|
|
7443
7566
|
import clsx9 from "clsx";
|
|
@@ -7540,7 +7663,7 @@ var FunInput = forwardRef3(function FunInputWithRef({
|
|
|
7540
7663
|
};
|
|
7541
7664
|
};
|
|
7542
7665
|
const textareaRef = React49.useRef(null);
|
|
7543
|
-
|
|
7666
|
+
useEffect19(() => {
|
|
7544
7667
|
if (allowMultiline) {
|
|
7545
7668
|
adjustTextareaHeight(textareaRef.current);
|
|
7546
7669
|
}
|
|
@@ -7850,13 +7973,13 @@ var FunNoResults = ({
|
|
|
7850
7973
|
|
|
7851
7974
|
// src/components/FunSelect/FunClickOutside.tsx
|
|
7852
7975
|
import React53 from "react";
|
|
7853
|
-
import { useEffect as
|
|
7976
|
+
import { useEffect as useEffect20, useRef as useRef9 } from "react";
|
|
7854
7977
|
function FunClickOutside({
|
|
7855
7978
|
children,
|
|
7856
7979
|
onClick
|
|
7857
7980
|
}) {
|
|
7858
7981
|
const wrapperRef = useRef9(null);
|
|
7859
|
-
|
|
7982
|
+
useEffect20(() => {
|
|
7860
7983
|
const handleClickListener = (event) => {
|
|
7861
7984
|
const clickedInside = wrapperRef.current?.contains(
|
|
7862
7985
|
event.target
|
|
@@ -8071,7 +8194,7 @@ function BaseDropdown({
|
|
|
8071
8194
|
setIsOpened(true);
|
|
8072
8195
|
onOpen?.();
|
|
8073
8196
|
};
|
|
8074
|
-
|
|
8197
|
+
useEffect21(() => {
|
|
8075
8198
|
if (isOpened && !prevIsOpenedRef.current) {
|
|
8076
8199
|
prevIsOpenedRef.current = true;
|
|
8077
8200
|
if (selectedOption) {
|
|
@@ -8330,9 +8453,9 @@ var ChainDropdown = ({
|
|
|
8330
8453
|
testId
|
|
8331
8454
|
}) => {
|
|
8332
8455
|
const { t } = useFunkitTranslation();
|
|
8333
|
-
const defaultChainIdJson = useFlag(
|
|
8456
|
+
const defaultChainIdJson = useFlag(FlagKey6.TokenTransferDefaultChainId);
|
|
8334
8457
|
const defaultChainId = safeJSONParse(defaultChainIdJson);
|
|
8335
|
-
const chainSortOrderJson = useFlag(
|
|
8458
|
+
const chainSortOrderJson = useFlag(FlagKey6.ChainIdSortOrder);
|
|
8336
8459
|
const chainSortOrder = safeJSONParse(chainSortOrderJson) || [];
|
|
8337
8460
|
const chainIds = getSortedChainIds();
|
|
8338
8461
|
const options = allowUnselect ? [DEFAULT_VALUE, ...chainIds] : chainIds;
|
|
@@ -8442,7 +8565,7 @@ var ChainDropdown = ({
|
|
|
8442
8565
|
};
|
|
8443
8566
|
|
|
8444
8567
|
// src/components/Dropdown/TokenDropdown.tsx
|
|
8445
|
-
import { FlagKey as
|
|
8568
|
+
import { FlagKey as FlagKey7 } from "@funkit/utils";
|
|
8446
8569
|
import React61, { useState as useState19 } from "react";
|
|
8447
8570
|
|
|
8448
8571
|
// src/utils/flags/patches/enable-bitcoin-patch.ts
|
|
@@ -8587,12 +8710,12 @@ var NewTokenBadge = ({ iconSymbol }) => {
|
|
|
8587
8710
|
// src/components/Dropdown/TokenDropdown.tsx
|
|
8588
8711
|
var TOKEN_ICON_SIZE = 16;
|
|
8589
8712
|
var useNewTokens = () => {
|
|
8590
|
-
const enableBitcoin = useFlag(
|
|
8591
|
-
const bannerJson = useFlag(
|
|
8713
|
+
const enableBitcoin = useFlag(FlagKey7.EnableBitcoin);
|
|
8714
|
+
const bannerJson = useFlag(FlagKey7.NewTokenAssetSelectionBanner);
|
|
8592
8715
|
const bannerData = useSafeJSONParse(bannerJson);
|
|
8593
8716
|
const addBitcoinToNewTokensMiddleware = enableBitcoin ? addBitcoinToNewTokens : void 0;
|
|
8594
8717
|
const newBadgeTokensJson = useFlag(
|
|
8595
|
-
|
|
8718
|
+
FlagKey7.TokenTransferNewTokens,
|
|
8596
8719
|
void 0,
|
|
8597
8720
|
addBitcoinToNewTokensMiddleware
|
|
8598
8721
|
);
|
|
@@ -8613,7 +8736,7 @@ var TokenDropdown = ({
|
|
|
8613
8736
|
hideNewTokenBadge,
|
|
8614
8737
|
testId
|
|
8615
8738
|
}) => {
|
|
8616
|
-
const defaultTokensJson = useFlag(
|
|
8739
|
+
const defaultTokensJson = useFlag(FlagKey7.TokenTransferDefaultTokens);
|
|
8617
8740
|
const defaultTokens = safeJSONParse(defaultTokensJson);
|
|
8618
8741
|
const enabledTokens = assets[selectedChainId];
|
|
8619
8742
|
const allTokens = getSortedTokens();
|
|
@@ -9035,7 +9158,7 @@ import {
|
|
|
9035
9158
|
formatPercent,
|
|
9036
9159
|
noop as noop4
|
|
9037
9160
|
} from "@funkit/utils";
|
|
9038
|
-
import React67, { useEffect as
|
|
9161
|
+
import React67, { useEffect as useEffect22, useMemo as useMemo15, useState as useState20 } from "react";
|
|
9039
9162
|
import clsx14 from "clsx";
|
|
9040
9163
|
import { motion as motion6, useAnimationControls } from "motion/react";
|
|
9041
9164
|
import { mainnet as mainnet4 } from "viem/chains";
|
|
@@ -9516,7 +9639,7 @@ function PaymentFeesSummary({
|
|
|
9516
9639
|
}
|
|
9517
9640
|
}
|
|
9518
9641
|
};
|
|
9519
|
-
|
|
9642
|
+
useEffect22(() => {
|
|
9520
9643
|
if (valuesNotAvailable && isExpanded) {
|
|
9521
9644
|
setIsExpanded(false);
|
|
9522
9645
|
}
|
|
@@ -9839,9 +9962,11 @@ async function getCheckoutBaseQuote(checkoutItem, userId, walletAddress, apiKey,
|
|
|
9839
9962
|
const toTokenAddress = config.targetAsset;
|
|
9840
9963
|
const fromChainId = selectedSourceAssetInfo.chainId;
|
|
9841
9964
|
const fromTokenAddress = selectedSourceAssetInfo.address;
|
|
9842
|
-
const
|
|
9965
|
+
const isLighterSpot = isLighterEthSpot(apiKey, config);
|
|
9966
|
+
const [toTokenDecimals, fromTokenDecimals, lighterTickSize] = await Promise.all([
|
|
9843
9967
|
getTokenDecimals(wagmiConfig, toChainId, toTokenAddress),
|
|
9844
|
-
getTokenDecimals(wagmiConfig, fromChainId, fromTokenAddress)
|
|
9968
|
+
getTokenDecimals(wagmiConfig, fromChainId, fromTokenAddress),
|
|
9969
|
+
isLighterSpot ? getLighterTickSize(wagmiConfig, toChainId, 1) : Promise.resolve(void 0)
|
|
9845
9970
|
]);
|
|
9846
9971
|
const toTokenAmount = config.targetAssetAmount ?? 0;
|
|
9847
9972
|
const fromTokenAmount = checkoutItem.sourceAssetAmount ?? 0;
|
|
@@ -9861,7 +9986,8 @@ async function getCheckoutBaseQuote(checkoutItem, userId, walletAddress, apiKey,
|
|
|
9861
9986
|
senderAddress,
|
|
9862
9987
|
fromTokenAmount,
|
|
9863
9988
|
fromTokenDecimals,
|
|
9864
|
-
isExactIn: isWithdrawal
|
|
9989
|
+
isExactIn: isWithdrawal,
|
|
9990
|
+
tickSize: lighterTickSize
|
|
9865
9991
|
}) : await getApiCheckoutQuote({
|
|
9866
9992
|
userId,
|
|
9867
9993
|
fromChainId,
|
|
@@ -9875,12 +10001,6 @@ async function getCheckoutBaseQuote(checkoutItem, userId, walletAddress, apiKey,
|
|
|
9875
10001
|
config: checkoutItem.initSettings.config,
|
|
9876
10002
|
walletAddress
|
|
9877
10003
|
}),
|
|
9878
|
-
// Ensure we are sending in a number
|
|
9879
|
-
expirationTimestampMs: Number.parseInt(
|
|
9880
|
-
String(
|
|
9881
|
-
checkoutItem.initSettings.config.expirationTimestampMs || 15 * 60 * 1e3
|
|
9882
|
-
)
|
|
9883
|
-
),
|
|
9884
10004
|
// as part of deprecating funWallet, we set sponsorInitialTransferGasLimit to 0
|
|
9885
10005
|
sponsorInitialTransferGasLimit: "0",
|
|
9886
10006
|
apiKey,
|
|
@@ -10218,7 +10338,7 @@ function useWithdrawalQuote({
|
|
|
10218
10338
|
|
|
10219
10339
|
// src/hooks/queries/useWithdrawalRisk.ts
|
|
10220
10340
|
import { useQuery as useQuery7 } from "@tanstack/react-query";
|
|
10221
|
-
import { useEffect as
|
|
10341
|
+
import { useEffect as useEffect23, useRef as useRef11 } from "react";
|
|
10222
10342
|
import { isAddress as isAddress2 } from "viem";
|
|
10223
10343
|
var useWithdrawalRisk = (apiKey, receiveAddress) => {
|
|
10224
10344
|
const lastRiskyAddressRef = useRef11(null);
|
|
@@ -10240,7 +10360,7 @@ var useWithdrawalRisk = (apiKey, receiveAddress) => {
|
|
|
10240
10360
|
refetchOnReconnect: false,
|
|
10241
10361
|
refetchOnWindowFocus: false
|
|
10242
10362
|
});
|
|
10243
|
-
|
|
10363
|
+
useEffect23(() => {
|
|
10244
10364
|
if (query.data !== true) {
|
|
10245
10365
|
return;
|
|
10246
10366
|
}
|
|
@@ -10382,13 +10502,13 @@ var useAssetSymbolPrice = ({
|
|
|
10382
10502
|
};
|
|
10383
10503
|
|
|
10384
10504
|
// src/hooks/useTokenChain.ts
|
|
10385
|
-
import { FlagKey as
|
|
10386
|
-
import { useEffect as
|
|
10505
|
+
import { FlagKey as FlagKey9 } from "@funkit/utils";
|
|
10506
|
+
import { useEffect as useEffect24, useState as useState21 } from "react";
|
|
10387
10507
|
import { polygon as polygon2 } from "viem/chains";
|
|
10388
10508
|
|
|
10389
10509
|
// src/hooks/useEnabledTokenTransferChainTokens.ts
|
|
10390
10510
|
import { bitcoinChain as bitcoinChain2, solanaChain as solanaChain2 } from "@funkit/chains";
|
|
10391
|
-
import { FlagKey as
|
|
10511
|
+
import { FlagKey as FlagKey8 } from "@funkit/utils";
|
|
10392
10512
|
import { base as base4 } from "viem/chains";
|
|
10393
10513
|
|
|
10394
10514
|
// src/hooks/useIsUsUser.ts
|
|
@@ -10405,14 +10525,14 @@ function useIsUsBankrUser() {
|
|
|
10405
10525
|
// src/hooks/useEnabledTokenTransferChainTokens.ts
|
|
10406
10526
|
function useEnabledTokenTransferChainTokens(transferInit, isWithdrawal) {
|
|
10407
10527
|
const isBankrUsUser = useIsUsBankrUser();
|
|
10408
|
-
const enableBitcoin = useFlag(
|
|
10528
|
+
const enableBitcoin = useFlag(FlagKey8.EnableBitcoin);
|
|
10409
10529
|
const addBitcoinToSourceChainsAndAssetsMiddleware = enableBitcoin ? addBitcoinToSourceChainsAndAssets : void 0;
|
|
10410
10530
|
const depositAssets = useFlag(
|
|
10411
|
-
|
|
10531
|
+
FlagKey8.TokenTransferSourceChainsAndAssets,
|
|
10412
10532
|
void 0,
|
|
10413
10533
|
addBitcoinToSourceChainsAndAssetsMiddleware
|
|
10414
10534
|
);
|
|
10415
|
-
const withdrawalAssets = useFlag(
|
|
10535
|
+
const withdrawalAssets = useFlag(FlagKey8.WithdrawalChainsAndAssets);
|
|
10416
10536
|
const assetsJsonString = isWithdrawal ? withdrawalAssets : depositAssets;
|
|
10417
10537
|
const assets = safeJSONParse(assetsJsonString);
|
|
10418
10538
|
if (!assets) {
|
|
@@ -10449,14 +10569,14 @@ var useTokenAndChainSelection = (transferInit, defaultValues, isWithdrawal) => {
|
|
|
10449
10569
|
transferInit ?? null,
|
|
10450
10570
|
isWithdrawal
|
|
10451
10571
|
);
|
|
10452
|
-
const defaultChainIdFlag = useFlag(
|
|
10572
|
+
const defaultChainIdFlag = useFlag(FlagKey9.TokenTransferDefaultChainId);
|
|
10453
10573
|
const defaultChainId = defaultValues?.chainId ?? Number(defaultChainIdFlag);
|
|
10454
10574
|
const validDefaultChainId = filteredAssets[defaultChainId] !== void 0 ? defaultChainId : polygon2.id;
|
|
10455
10575
|
const [selectedChainId, setSelectedChainId] = useState21(validDefaultChainId);
|
|
10456
10576
|
const selectedChainName = chainMetadataById[selectedChainId]?.name ?? "";
|
|
10457
10577
|
const defaultSelectedToken = defaultValues?.token ?? filteredAssets?.[selectedChainId]?.[0] ?? "";
|
|
10458
10578
|
const [selectedToken, setSelectedToken] = useState21(defaultSelectedToken);
|
|
10459
|
-
|
|
10579
|
+
useEffect24(
|
|
10460
10580
|
() => setSelectedChainId(validDefaultChainId),
|
|
10461
10581
|
[validDefaultChainId]
|
|
10462
10582
|
);
|
|
@@ -10748,11 +10868,11 @@ function usePreparedWalletConnectors() {
|
|
|
10748
10868
|
import { useState as useState26 } from "react";
|
|
10749
10869
|
|
|
10750
10870
|
// src/hooks/useAutoClearState.ts
|
|
10751
|
-
import { useCallback as useCallback15, useEffect as
|
|
10871
|
+
import { useCallback as useCallback15, useEffect as useEffect25, useRef as useRef12, useState as useState22 } from "react";
|
|
10752
10872
|
function useAutoClearState(initialValue = null) {
|
|
10753
10873
|
const [state, setState] = useState22(initialValue);
|
|
10754
10874
|
const timeoutRef = useRef12();
|
|
10755
|
-
|
|
10875
|
+
useEffect25(() => {
|
|
10756
10876
|
return () => {
|
|
10757
10877
|
if (timeoutRef.current !== void 0) {
|
|
10758
10878
|
clearTimeout(timeoutRef.current);
|
|
@@ -10778,72 +10898,6 @@ function useAutoClearState(initialValue = null) {
|
|
|
10778
10898
|
import { ClientError as ClientError2 } from "@funkit/utils";
|
|
10779
10899
|
import { useState as useState25 } from "react";
|
|
10780
10900
|
|
|
10781
|
-
// src/hooks/statsig/useDynamicConfig.ts
|
|
10782
|
-
import { useDynamicConfig as useStatsigDynamicConfig } from "@statsig/react-bindings";
|
|
10783
|
-
|
|
10784
|
-
// src/__generated__/default_configs.ts
|
|
10785
|
-
var default_configs_default = {
|
|
10786
|
-
addressblacklist: {
|
|
10787
|
-
value: [
|
|
10788
|
-
"0x7b97b46D35a28B561d47F50CFB9a2735E506e59d",
|
|
10789
|
-
"0x409ad08cc6CA757f69Fb80250a424B9eFeB99807",
|
|
10790
|
-
"0x02A86f51aA7B8b1c17c30364748d5Ae4a0727E23",
|
|
10791
|
-
"0x64131b60502C01362639CC5cfE1a1efB6Be1165A",
|
|
10792
|
-
"0xb84440Ee8BAD69c14755bBb7093f861c3512E3D1"
|
|
10793
|
-
]
|
|
10794
|
-
},
|
|
10795
|
-
array_of_strings: {
|
|
10796
|
-
value: []
|
|
10797
|
-
},
|
|
10798
|
-
blockedcountries: {
|
|
10799
|
-
value: [
|
|
10800
|
-
"AF",
|
|
10801
|
-
"BY",
|
|
10802
|
-
"MM",
|
|
10803
|
-
"CF",
|
|
10804
|
-
"CU",
|
|
10805
|
-
"CD",
|
|
10806
|
-
"IR",
|
|
10807
|
-
"LB",
|
|
10808
|
-
"LY",
|
|
10809
|
-
"NI",
|
|
10810
|
-
"KP",
|
|
10811
|
-
"UA",
|
|
10812
|
-
"SO",
|
|
10813
|
-
"SS",
|
|
10814
|
-
"SY",
|
|
10815
|
-
"VE"
|
|
10816
|
-
]
|
|
10817
|
-
},
|
|
10818
|
-
boolean: {
|
|
10819
|
-
value: false
|
|
10820
|
-
},
|
|
10821
|
-
brokerage_hide_you_receive: {
|
|
10822
|
-
value: false
|
|
10823
|
-
},
|
|
10824
|
-
showinfobanner: {
|
|
10825
|
-
value: {
|
|
10826
|
-
message: "",
|
|
10827
|
-
expireAtMs: 1,
|
|
10828
|
-
type: "announcement"
|
|
10829
|
-
}
|
|
10830
|
-
},
|
|
10831
|
-
showpoweredtagline: {
|
|
10832
|
-
value: false
|
|
10833
|
-
},
|
|
10834
|
-
supportedexchangesv2: {
|
|
10835
|
-
value: []
|
|
10836
|
-
}
|
|
10837
|
-
};
|
|
10838
|
-
|
|
10839
|
-
// src/hooks/statsig/useDynamicConfig.ts
|
|
10840
|
-
var useDynamicConfig = (name) => {
|
|
10841
|
-
const config = useStatsigDynamicConfig(name);
|
|
10842
|
-
const fallback2 = default_configs_default[name];
|
|
10843
|
-
const value = config.get("value", fallback2.value);
|
|
10844
|
-
return value;
|
|
10845
|
-
};
|
|
10846
|
-
|
|
10847
10901
|
// src/hooks/useIsBlacklisted.ts
|
|
10848
10902
|
var useIsBlacklisted = (walletAddress, customRecipient) => {
|
|
10849
10903
|
const addressblacklist = useDynamicConfig("addressblacklist");
|
|
@@ -10860,7 +10914,7 @@ import React70, {
|
|
|
10860
10914
|
createContext as createContext13,
|
|
10861
10915
|
useCallback as useCallback17,
|
|
10862
10916
|
useContext as useContext13,
|
|
10863
|
-
useEffect as
|
|
10917
|
+
useEffect as useEffect27,
|
|
10864
10918
|
useState as useState24
|
|
10865
10919
|
} from "react";
|
|
10866
10920
|
import { useConfig as useConfig3 } from "wagmi";
|
|
@@ -10925,7 +10979,7 @@ import {
|
|
|
10925
10979
|
monadChain,
|
|
10926
10980
|
solanaChain as solanaChain3
|
|
10927
10981
|
} from "@funkit/chains";
|
|
10928
|
-
import { FlagKey as
|
|
10982
|
+
import { FlagKey as FlagKey10 } from "@funkit/utils";
|
|
10929
10983
|
import { useMemo as useMemo16 } from "react";
|
|
10930
10984
|
import { arbitrum as arbitrum2, mainnet as mainnet6, polygon as polygon4 } from "viem/chains";
|
|
10931
10985
|
|
|
@@ -10950,7 +11004,7 @@ var useTokenTransfer = (selectedChainId, selectedToken, chainIds) => {
|
|
|
10950
11004
|
const { apiKey } = useFunkitConfig();
|
|
10951
11005
|
const { checkoutItem } = useCheckoutContext();
|
|
10952
11006
|
const enableUniversal = useFlag(
|
|
10953
|
-
|
|
11007
|
+
FlagKey10.EnableTokenTransferUniversalDepositAddress,
|
|
10954
11008
|
false
|
|
10955
11009
|
);
|
|
10956
11010
|
const estPriceImpact = usePriceImpactEstimation(
|
|
@@ -11004,7 +11058,7 @@ var useTokenTransfer = (selectedChainId, selectedToken, chainIds) => {
|
|
|
11004
11058
|
};
|
|
11005
11059
|
var useMinTransferLimits = () => {
|
|
11006
11060
|
const { userIpInfo } = useFunkitUserIp();
|
|
11007
|
-
const minTransferValueJsonString = useFlag(
|
|
11061
|
+
const minTransferValueJsonString = useFlag(FlagKey10.MinTokenTransferValue);
|
|
11008
11062
|
const minTransferValue = safeJSONParse(
|
|
11009
11063
|
minTransferValueJsonString
|
|
11010
11064
|
);
|
|
@@ -11304,7 +11358,7 @@ import {
|
|
|
11304
11358
|
import { safeParseJson as safeParseJson3 } from "@funkit/utils";
|
|
11305
11359
|
import React69, {
|
|
11306
11360
|
useContext as useContext12,
|
|
11307
|
-
useEffect as
|
|
11361
|
+
useEffect as useEffect26,
|
|
11308
11362
|
useMemo as useMemo17,
|
|
11309
11363
|
useRef as useRef13,
|
|
11310
11364
|
useState as useState23
|
|
@@ -11356,11 +11410,11 @@ var FunkitBrokerageProvider = ({
|
|
|
11356
11410
|
const [isConnected, setIsConnected] = useState23(
|
|
11357
11411
|
() => initialIsConnected
|
|
11358
11412
|
);
|
|
11359
|
-
|
|
11413
|
+
useEffect26(() => {
|
|
11360
11414
|
const initialConnections = getAuthConnectedExchanges();
|
|
11361
11415
|
setAuthConnections(initialConnections);
|
|
11362
11416
|
}, []);
|
|
11363
|
-
|
|
11417
|
+
useEffect26(() => {
|
|
11364
11418
|
if (bluvoClient.withdrawal?.status === "completed") {
|
|
11365
11419
|
setSelectedBrokerageAsset(null);
|
|
11366
11420
|
}
|
|
@@ -11692,7 +11746,7 @@ function FunkitQuoteProvider({ children }) {
|
|
|
11692
11746
|
const [quoteErrorMessage, setQuoteErrorMessage] = useState24("");
|
|
11693
11747
|
const { getBluvoCheckoutQuote } = useBluvoCheckoutQuote();
|
|
11694
11748
|
const { selectedBrokerageAsset } = useFunkitBrokerageContext();
|
|
11695
|
-
|
|
11749
|
+
useEffect27(() => {
|
|
11696
11750
|
if (isNotNullish3(logoutSymbol)) {
|
|
11697
11751
|
setLatestQuote(null);
|
|
11698
11752
|
setQuoteProgress({
|
|
@@ -12244,7 +12298,7 @@ function useWithdrawalAssets(config) {
|
|
|
12244
12298
|
},
|
|
12245
12299
|
true
|
|
12246
12300
|
);
|
|
12247
|
-
const excludedTokenStr = useFlag(
|
|
12301
|
+
const excludedTokenStr = useFlag(FlagKey11.WithdrawalExcludeTokens);
|
|
12248
12302
|
const excludedTokens = safeJSONParse(excludedTokenStr);
|
|
12249
12303
|
if (excludedTokens) {
|
|
12250
12304
|
for (const chainIdStr of Object.keys(excludedTokens)) {
|
|
@@ -12350,7 +12404,7 @@ function useShowConnectWallet({
|
|
|
12350
12404
|
const withdrawalWalletAddress = "wallet" in config ? config.wallet.address() : "0x";
|
|
12351
12405
|
const { isConnected, address: connectedWalletAddress } = useAccount4();
|
|
12352
12406
|
const showUseConnected = !config.disableConnectedWallet && isConnected && connectedWalletAddress && withdrawalWalletAddress.toLowerCase() !== connectedWalletAddress.toLowerCase();
|
|
12353
|
-
|
|
12407
|
+
useEffect28(() => {
|
|
12354
12408
|
logger.debug("withdrawalContent:showUseConnected", {
|
|
12355
12409
|
isConnected,
|
|
12356
12410
|
connectedWalletAddress,
|
|
@@ -12417,12 +12471,12 @@ var WithdrawContent = ({
|
|
|
12417
12471
|
refetchInterval: PRICE_REFRESH_INTERVAL
|
|
12418
12472
|
});
|
|
12419
12473
|
const targetAssetAmount = targetUnitPrice ? Number(debouncedUSD) / targetUnitPrice : void 0;
|
|
12420
|
-
|
|
12474
|
+
useEffect28(() => {
|
|
12421
12475
|
setTimeout(() => {
|
|
12422
12476
|
updateTargetAssetAmount(targetAssetAmount ?? 0);
|
|
12423
12477
|
}, 0);
|
|
12424
12478
|
}, [targetAssetAmount, updateTargetAssetAmount]);
|
|
12425
|
-
|
|
12479
|
+
useEffect28(() => {
|
|
12426
12480
|
if (!targetAssetInfo) {
|
|
12427
12481
|
return;
|
|
12428
12482
|
}
|
|
@@ -12456,7 +12510,7 @@ var WithdrawContent = ({
|
|
|
12456
12510
|
onContinue(withdrawal, txHash);
|
|
12457
12511
|
}
|
|
12458
12512
|
});
|
|
12459
|
-
|
|
12513
|
+
useEffect28(() => {
|
|
12460
12514
|
if (!isPlaceholderData && !isQuoteLoading && isInstantQuoting && confirmingQuote) {
|
|
12461
12515
|
setTimeout(() => {
|
|
12462
12516
|
setConfirmingQuote(false);
|
|
@@ -12540,7 +12594,7 @@ var WithdrawContent = ({
|
|
|
12540
12594
|
const lastQuoteErrorRef = useRef14(null);
|
|
12541
12595
|
const lastRiskyRecipientRef = useRef14(null);
|
|
12542
12596
|
const lastBlacklistedRecipientRef = useRef14(null);
|
|
12543
|
-
|
|
12597
|
+
useEffect28(() => {
|
|
12544
12598
|
if (!targetAssetFetchError) {
|
|
12545
12599
|
return;
|
|
12546
12600
|
}
|
|
@@ -12555,7 +12609,7 @@ var WithdrawContent = ({
|
|
|
12555
12609
|
});
|
|
12556
12610
|
lastTargetAssetErrorRef.current = errorKey;
|
|
12557
12611
|
}, [targetAssetFetchError, selectedChainId, selectedToken]);
|
|
12558
|
-
|
|
12612
|
+
useEffect28(() => {
|
|
12559
12613
|
if (!quoteErrorObject) {
|
|
12560
12614
|
return;
|
|
12561
12615
|
}
|
|
@@ -12581,7 +12635,7 @@ var WithdrawContent = ({
|
|
|
12581
12635
|
recipientAddress,
|
|
12582
12636
|
debouncedUSD
|
|
12583
12637
|
]);
|
|
12584
|
-
|
|
12638
|
+
useEffect28(() => {
|
|
12585
12639
|
if (!isRisky) {
|
|
12586
12640
|
return;
|
|
12587
12641
|
}
|
|
@@ -12596,7 +12650,7 @@ var WithdrawContent = ({
|
|
|
12596
12650
|
});
|
|
12597
12651
|
lastRiskyRecipientRef.current = warningKey;
|
|
12598
12652
|
}, [isRisky, recipientAddress, selectedChainId, selectedToken]);
|
|
12599
|
-
|
|
12653
|
+
useEffect28(() => {
|
|
12600
12654
|
if (!isReceipentBlacklisted) {
|
|
12601
12655
|
return;
|
|
12602
12656
|
}
|
|
@@ -12645,6 +12699,8 @@ var WithdrawContent = ({
|
|
|
12645
12699
|
[quoteErrorObject, targetAssetFetchError, withdrawalError, t]
|
|
12646
12700
|
);
|
|
12647
12701
|
const isRiskyAddress = !!isRisky && !isCheckingAddressRisk;
|
|
12702
|
+
const isSolanaChain = selectedChainId === solanaChain4.id;
|
|
12703
|
+
const recipientAddressPlaceholder = isSolanaChain ? t("withdrawal.enterRecipientAddress")[0] + t("withdrawal.enterRecipientAddress").slice(1).toLowerCase() : "0x...";
|
|
12648
12704
|
return /* @__PURE__ */ React72.createElement(Box, { id: "withdrawal-flow", display: "flex", flexDirection: "column", gap: "18" }, /* @__PURE__ */ React72.createElement(
|
|
12649
12705
|
WithdrawRecipientAddress,
|
|
12650
12706
|
{
|
|
@@ -12653,7 +12709,8 @@ var WithdrawContent = ({
|
|
|
12653
12709
|
setRecipientAddress,
|
|
12654
12710
|
selectedToken,
|
|
12655
12711
|
selectedChainId,
|
|
12656
|
-
isRiskyAddress
|
|
12712
|
+
isRiskyAddress,
|
|
12713
|
+
placeholder: recipientAddressPlaceholder
|
|
12657
12714
|
}
|
|
12658
12715
|
), /* @__PURE__ */ React72.createElement(
|
|
12659
12716
|
WithdrawAmountInput,
|
|
@@ -12730,7 +12787,8 @@ function WithdrawRecipientAddress({
|
|
|
12730
12787
|
setRecipientAddress,
|
|
12731
12788
|
selectedChainId,
|
|
12732
12789
|
selectedToken,
|
|
12733
|
-
isRiskyAddress
|
|
12790
|
+
isRiskyAddress,
|
|
12791
|
+
placeholder = "0x..."
|
|
12734
12792
|
}) {
|
|
12735
12793
|
const { t } = useFunkitTranslation();
|
|
12736
12794
|
const isValidAddress = isAddressSupported(recipientAddress);
|
|
@@ -12771,7 +12829,7 @@ function WithdrawRecipientAddress({
|
|
|
12771
12829
|
value: recipientAddress,
|
|
12772
12830
|
onChange: handleAddressChange,
|
|
12773
12831
|
onBlur: handleAddressBlur,
|
|
12774
|
-
placeholder
|
|
12832
|
+
placeholder,
|
|
12775
12833
|
error: showAddressError ? t("withdrawal.invalidWalletAddress") : void 0,
|
|
12776
12834
|
suffix: showUseConnected ? /* @__PURE__ */ React72.createElement(
|
|
12777
12835
|
Box,
|
|
@@ -12962,8 +13020,8 @@ import { useAccount as useAccount5 } from "wagmi";
|
|
|
12962
13020
|
|
|
12963
13021
|
// src/components/FunPayments/FunPaymentMethods.tsx
|
|
12964
13022
|
import { BridgeCustomerStatus as BridgeCustomerStatus3 } from "@funkit/api-base";
|
|
12965
|
-
import { FlagKey as
|
|
12966
|
-
import React79, { useEffect as
|
|
13023
|
+
import { FlagKey as FlagKey13, formatCurrencyAndStringify as formatCurrencyAndStringify4 } from "@funkit/utils";
|
|
13024
|
+
import React79, { useEffect as useEffect29 } from "react";
|
|
12967
13025
|
|
|
12968
13026
|
// src/domains/bridge.ts
|
|
12969
13027
|
import {
|
|
@@ -13063,7 +13121,7 @@ import {
|
|
|
13063
13121
|
createBridgeBankAccount,
|
|
13064
13122
|
getBridgeKycLink
|
|
13065
13123
|
} from "@funkit/api-base";
|
|
13066
|
-
import { FlagKey as
|
|
13124
|
+
import { FlagKey as FlagKey12 } from "@funkit/utils";
|
|
13067
13125
|
import { useQuery as useQuery11, useQueryClient } from "@tanstack/react-query";
|
|
13068
13126
|
import { useCallback as useCallback18 } from "react";
|
|
13069
13127
|
var sepaCountryCode = [
|
|
@@ -13143,8 +13201,8 @@ function useFiatEnabled() {
|
|
|
13143
13201
|
const isEuSepaUser = sepaCountryCode.includes(
|
|
13144
13202
|
userIpInfo?.alpha2 || "PLACEHOLDER"
|
|
13145
13203
|
);
|
|
13146
|
-
const isTokenTransferEnabled =
|
|
13147
|
-
const isFiatEnabled = useFlag(
|
|
13204
|
+
const isTokenTransferEnabled = useIsQRCodeTransferEnabled();
|
|
13205
|
+
const isFiatEnabled = useFlag(FlagKey12.EnableFiatDeposit);
|
|
13148
13206
|
return isEuSepaUser && isTokenTransferEnabled && isFiatEnabled;
|
|
13149
13207
|
}
|
|
13150
13208
|
function useFrogAccounts() {
|
|
@@ -13317,6 +13375,10 @@ var processWalletAssets = (walletAssets, targetChain) => {
|
|
|
13317
13375
|
if (!isCheckoutOnMainnet && targetChain !== asset.chainId) {
|
|
13318
13376
|
return result;
|
|
13319
13377
|
}
|
|
13378
|
+
const MAINNET_WETH_ADDRESS = "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2";
|
|
13379
|
+
if (asset.contractAddress.toLowerCase() === MAINNET_WETH_ADDRESS && asset.chainId === "1") {
|
|
13380
|
+
asset.symbol = "WETH";
|
|
13381
|
+
}
|
|
13320
13382
|
const chainSymbol = combineChainSymbolOrAddress({
|
|
13321
13383
|
chainId: asset.chainId,
|
|
13322
13384
|
symbolOrAddress: asset.symbol
|
|
@@ -14550,7 +14612,7 @@ var ConnectedMeshPaymentMethodItem = ({
|
|
|
14550
14612
|
const hasLowBalance = !isPending && sourceBalance < getUsdMinAmount();
|
|
14551
14613
|
const isDisabled = isPending || !!isBalanceError || hasLowBalance;
|
|
14552
14614
|
const icon = isPending ? /* @__PURE__ */ React79.createElement(SpinnerIcon, { size: 20 }) : label.icon;
|
|
14553
|
-
|
|
14615
|
+
useEffect29(() => {
|
|
14554
14616
|
if (isPending) {
|
|
14555
14617
|
return;
|
|
14556
14618
|
}
|
|
@@ -14654,12 +14716,12 @@ var TransferPaymentMethodItem = ({
|
|
|
14654
14716
|
}) => {
|
|
14655
14717
|
const { t } = useFunkitTranslation();
|
|
14656
14718
|
const { textCustomizations } = useFunkitConfig();
|
|
14657
|
-
const enableBitcoin = useFlag(
|
|
14658
|
-
const bannerJson = useFlag(
|
|
14719
|
+
const enableBitcoin = useFlag(FlagKey13.EnableBitcoin);
|
|
14720
|
+
const bannerJson = useFlag(FlagKey13.NewTokenAssetSelectionBanner);
|
|
14659
14721
|
const bannerData = useSafeJSONParse(bannerJson);
|
|
14660
14722
|
const addBitcoinToSourceChainsAndAssetsMiddleware = enableBitcoin ? addBitcoinToSourceChainsAndAssets : void 0;
|
|
14661
14723
|
const depositAssetsJson = useFlag(
|
|
14662
|
-
|
|
14724
|
+
FlagKey13.TokenTransferSourceChainsAndAssets,
|
|
14663
14725
|
void 0,
|
|
14664
14726
|
addBitcoinToSourceChainsAndAssetsMiddleware
|
|
14665
14727
|
);
|
|
@@ -15208,7 +15270,7 @@ var HelpAlert = ({ onHelp: onHelp2 }) => {
|
|
|
15208
15270
|
|
|
15209
15271
|
// src/modals/CheckoutModal/TransferToken/CheckoutNotifications.tsx
|
|
15210
15272
|
import clsx18 from "clsx";
|
|
15211
|
-
import React98, { useCallback as useCallback21, useEffect as
|
|
15273
|
+
import React98, { useCallback as useCallback21, useEffect as useEffect33, useMemo as useMemo23, useState as useState31 } from "react";
|
|
15212
15274
|
|
|
15213
15275
|
// src/components/FunNotificationBanner/FunNotificationShowMoreButton.tsx
|
|
15214
15276
|
import React88 from "react";
|
|
@@ -15260,13 +15322,13 @@ var selectWrapperStyle = "_163ehmk1";
|
|
|
15260
15322
|
import {
|
|
15261
15323
|
getCheckoutsByUserId as getCheckoutsByUserId2
|
|
15262
15324
|
} from "@funkit/api-base";
|
|
15263
|
-
import { FlagKey as
|
|
15325
|
+
import { FlagKey as FlagKey14 } from "@funkit/utils";
|
|
15264
15326
|
import { useQuery as useQuery12 } from "@tanstack/react-query";
|
|
15265
15327
|
var hasCorrectPaymentMethod = (checkout, paymentMethod) => !paymentMethod || checkout.clientMetadata.selectedPaymentMethodInfo?.paymentMethod === paymentMethod;
|
|
15266
15328
|
var isRecent = (checkout, timestampCutoff) => checkout.createdTimeMs > timestampCutoff;
|
|
15267
15329
|
var DEFAULT_NOTIF_CUTOFF = 7 * 24 * 60 * 60 * 1e3;
|
|
15268
15330
|
function useCheckoutRefreshInterval() {
|
|
15269
|
-
const str = useFlag(
|
|
15331
|
+
const str = useFlag(FlagKey14.CheckoutNotificationsRefreshInterval);
|
|
15270
15332
|
return safeJSONParse(str) || { listRefresh: 50 * 1e3, itemRefresh: 5 * 1e3 };
|
|
15271
15333
|
}
|
|
15272
15334
|
var useRecentCheckouts = ({
|
|
@@ -15376,10 +15438,10 @@ var useRecentDirectExecutions = ({
|
|
|
15376
15438
|
|
|
15377
15439
|
// src/hooks/useOnNewNotification.ts
|
|
15378
15440
|
import { safeParseJson as safeParseJson4 } from "@funkit/utils";
|
|
15379
|
-
import { useEffect as
|
|
15441
|
+
import { useEffect as useEffect30 } from "react";
|
|
15380
15442
|
var storageKey3 = "fkc-processed-notifications";
|
|
15381
15443
|
var useOnNewNotification = (combinedNotifications, cb) => {
|
|
15382
|
-
|
|
15444
|
+
useEffect30(() => {
|
|
15383
15445
|
const alreadyProcessed = safeParseJsonObject(
|
|
15384
15446
|
sessionStorage.getItem(storageKey3)
|
|
15385
15447
|
);
|
|
@@ -15429,7 +15491,7 @@ import { Trans as Trans3 } from "react-i18next";
|
|
|
15429
15491
|
import { CheckoutState as CheckoutState3 } from "@funkit/api-base";
|
|
15430
15492
|
import { SOLANA_MAINNET_CHAIN_ID } from "@funkit/chains";
|
|
15431
15493
|
import { formatAddress as formatAddress4, formatTimestamp } from "@funkit/utils";
|
|
15432
|
-
import React92, { useState as useState28, useRef as useRef16, useEffect as
|
|
15494
|
+
import React92, { useState as useState28, useRef as useRef16, useEffect as useEffect31 } from "react";
|
|
15433
15495
|
|
|
15434
15496
|
// src/utils/checkoutHistory.ts
|
|
15435
15497
|
var storageKey4 = "fkc-last-report-submit-time";
|
|
@@ -15582,7 +15644,7 @@ function StatusTag({ state, refundState, isDelayed: isDelayed2 }) {
|
|
|
15582
15644
|
const checkoutState = getCheckoutStateBooleans(state, refundState);
|
|
15583
15645
|
const [delayedCheckoutState, setDelayedCheckoutState] = useState28(checkoutState);
|
|
15584
15646
|
const { status, isCompleted, isRefundProceeded } = delayedCheckoutState;
|
|
15585
|
-
|
|
15647
|
+
useEffect31(() => {
|
|
15586
15648
|
const timeout = setTimeout(
|
|
15587
15649
|
() => {
|
|
15588
15650
|
setDelayedCheckoutState(getCheckoutStateBooleans(state, refundState));
|
|
@@ -15731,7 +15793,7 @@ var showMoreButtonStyle = "_4yitd93 _1rsrm2f12m _1rsrm2f1f _1rsrm2f1c _1rsrm2fm4
|
|
|
15731
15793
|
// src/components/FunNotificationBanner/FunNotificationBannerIcon.tsx
|
|
15732
15794
|
import clsx16 from "clsx";
|
|
15733
15795
|
import { motion as motion7, useAnimate as useAnimate2 } from "motion/react";
|
|
15734
|
-
import React93, { useCallback as useCallback19, useEffect as
|
|
15796
|
+
import React93, { useCallback as useCallback19, useEffect as useEffect32, useRef as useRef17 } from "react";
|
|
15735
15797
|
|
|
15736
15798
|
// src/components/FunNotificationBanner/FunNotificationBannerIcon.css.ts
|
|
15737
15799
|
var STATUS_SPINNER_BOTTOM_POSITION = -5;
|
|
@@ -16181,7 +16243,7 @@ var FunNotificationBannerIcon = ({
|
|
|
16181
16243
|
]);
|
|
16182
16244
|
}, [animate]);
|
|
16183
16245
|
const statusRef = useRef17(status);
|
|
16184
|
-
|
|
16246
|
+
useEffect32(() => {
|
|
16185
16247
|
if (statusRef.current !== status) {
|
|
16186
16248
|
if (statusRef.current === "processing" && status === "completed") {
|
|
16187
16249
|
triggerAnimationProcessingToCompleted();
|
|
@@ -17071,13 +17133,13 @@ var CheckoutNotifications = ({
|
|
|
17071
17133
|
isVisible,
|
|
17072
17134
|
memoizedFilterFunc: filterFunc
|
|
17073
17135
|
});
|
|
17074
|
-
|
|
17136
|
+
useEffect33(() => {
|
|
17075
17137
|
if (initialCheckouts || !checkouts) {
|
|
17076
17138
|
return;
|
|
17077
17139
|
}
|
|
17078
17140
|
setInitialCheckouts(checkouts);
|
|
17079
17141
|
}, [initialCheckouts, checkouts]);
|
|
17080
|
-
|
|
17142
|
+
useEffect33(() => {
|
|
17081
17143
|
if (initialDirectExecutions || !directExecutions) {
|
|
17082
17144
|
return;
|
|
17083
17145
|
}
|
|
@@ -17266,11 +17328,11 @@ import React100, { useCallback as useCallback22, useMemo as useMemo24, useState
|
|
|
17266
17328
|
import { createPortal as createPortal5 } from "react-dom";
|
|
17267
17329
|
|
|
17268
17330
|
// src/hooks/useFunListeners.ts
|
|
17269
|
-
import { useEffect as
|
|
17331
|
+
import { useEffect as useEffect34, useRef as useRef19 } from "react";
|
|
17270
17332
|
function useCheckoutHistoryListener(activate = true, singleDepositAddr) {
|
|
17271
17333
|
const activeIntervalRef = useRef19();
|
|
17272
17334
|
const { startCheckoutHistoryListener, stopCheckoutHistoryListener } = useCheckoutHistoryContext();
|
|
17273
|
-
|
|
17335
|
+
useEffect34(() => {
|
|
17274
17336
|
if (activate) {
|
|
17275
17337
|
const createdIntervalId = startCheckoutHistoryListener(
|
|
17276
17338
|
/* singleDepositAddr */
|
|
@@ -17416,7 +17478,7 @@ var CheckoutAlert = ({ state, refundState, onHelp: onHelp2 }) => {
|
|
|
17416
17478
|
|
|
17417
17479
|
// src/components/FunCheckoutHistory/FunCheckoutHistoryHelp.tsx
|
|
17418
17480
|
import { sendSupportMessage } from "@funkit/api-base";
|
|
17419
|
-
import React104, { useEffect as
|
|
17481
|
+
import React104, { useEffect as useEffect35, useMemo as useMemo25, useRef as useRef20, useState as useState33 } from "react";
|
|
17420
17482
|
import { createPortal as createPortal6 } from "react-dom";
|
|
17421
17483
|
|
|
17422
17484
|
// src/components/FunInput/FunTextAreaInput.tsx
|
|
@@ -17607,7 +17669,7 @@ function FunCheckoutHistoryHelp({
|
|
|
17607
17669
|
0 /* INPUT */
|
|
17608
17670
|
);
|
|
17609
17671
|
const wrapperRef = useRef20(null);
|
|
17610
|
-
|
|
17672
|
+
useEffect35(() => wrapperRef.current?.scrollIntoView(), []);
|
|
17611
17673
|
const handleShowErrorMessage = (message, timeMs = FIVE_SECONDS_MS) => {
|
|
17612
17674
|
setErrorMessage(message);
|
|
17613
17675
|
if (timeMs !== void 0) {
|
|
@@ -18068,7 +18130,7 @@ import React217, { useCallback as useCallback46, useState as useState69 } from "
|
|
|
18068
18130
|
|
|
18069
18131
|
// src/components/FunCheckoutModalHeightAnimationWrapper/FunCheckoutModalHeightAnimationWrapper.tsx
|
|
18070
18132
|
import { motion as motion15 } from "motion/react";
|
|
18071
|
-
import React204, { useEffect as
|
|
18133
|
+
import React204, { useEffect as useEffect51, useRef as useRef27, useState as useState66 } from "react";
|
|
18072
18134
|
|
|
18073
18135
|
// src/modals/CheckoutModal/stepTransition.ts
|
|
18074
18136
|
import {
|
|
@@ -19586,7 +19648,7 @@ import {
|
|
|
19586
19648
|
DirectExecutionType as DirectExecutionType2,
|
|
19587
19649
|
RelayExecutionStatus as RelayExecutionStatus3
|
|
19588
19650
|
} from "@funkit/api-base";
|
|
19589
|
-
import React130, { useCallback as useCallback27, useEffect as
|
|
19651
|
+
import React130, { useCallback as useCallback27, useEffect as useEffect36, useMemo as useMemo28, useState as useState39 } from "react";
|
|
19590
19652
|
var overrideAssetsData = (de, checkoutItem) => {
|
|
19591
19653
|
return {
|
|
19592
19654
|
...de,
|
|
@@ -19684,7 +19746,7 @@ var BrokerageSuccess = ({
|
|
|
19684
19746
|
const latestDirectExecution = useMemo28(() => {
|
|
19685
19747
|
return directExecutions?.[0];
|
|
19686
19748
|
}, [directExecutions?.[0]?.txHash]);
|
|
19687
|
-
|
|
19749
|
+
useEffect36(() => {
|
|
19688
19750
|
if (!latestDirectExecution) {
|
|
19689
19751
|
return;
|
|
19690
19752
|
}
|
|
@@ -20353,7 +20415,7 @@ var TwoFactorInput = ({
|
|
|
20353
20415
|
};
|
|
20354
20416
|
|
|
20355
20417
|
// src/modals/CheckoutModal/Brokerage/ConnectExchange.tsx
|
|
20356
|
-
import React137, { useCallback as useCallback28, useEffect as
|
|
20418
|
+
import React137, { useCallback as useCallback28, useEffect as useEffect37, useState as useState41 } from "react";
|
|
20357
20419
|
import { createPortal as createPortal11 } from "react-dom";
|
|
20358
20420
|
|
|
20359
20421
|
// src/components/Icons/HandIcon.tsx
|
|
@@ -20458,7 +20520,7 @@ function ConnectExchange({
|
|
|
20458
20520
|
setAuthError(errorMessage);
|
|
20459
20521
|
setIsLoadingMeshModal(false);
|
|
20460
20522
|
});
|
|
20461
|
-
|
|
20523
|
+
useEffect37(() => {
|
|
20462
20524
|
if (isConnected) {
|
|
20463
20525
|
navigateToBrokerage();
|
|
20464
20526
|
}
|
|
@@ -20793,11 +20855,11 @@ function CheckoutHelp({
|
|
|
20793
20855
|
}
|
|
20794
20856
|
|
|
20795
20857
|
// src/modals/CheckoutModal/ConfirmationStep/ConfirmationStep.tsx
|
|
20796
|
-
import React156, { useEffect as
|
|
20858
|
+
import React156, { useEffect as useEffect43, useMemo as useMemo34, useState as useState51 } from "react";
|
|
20797
20859
|
import { createPortal as createPortal14 } from "react-dom";
|
|
20798
20860
|
|
|
20799
20861
|
// src/providers/UserPresenceContext.tsx
|
|
20800
|
-
import React143, { useEffect as
|
|
20862
|
+
import React143, { useEffect as useEffect38 } from "react";
|
|
20801
20863
|
import {
|
|
20802
20864
|
createContext as createContext15,
|
|
20803
20865
|
useContext as useContext15,
|
|
@@ -20809,7 +20871,7 @@ var UserPresenceContext = createContext15({
|
|
|
20809
20871
|
});
|
|
20810
20872
|
var UserPresenceProvider = ({ children }) => {
|
|
20811
20873
|
const [isAway, setIsAway] = useState43(false);
|
|
20812
|
-
|
|
20874
|
+
useEffect38(() => {
|
|
20813
20875
|
let timeoutId;
|
|
20814
20876
|
const handleVisibilityChange = () => {
|
|
20815
20877
|
if (document.visibilityState === "visible") {
|
|
@@ -20839,13 +20901,13 @@ import React145 from "react";
|
|
|
20839
20901
|
import React144, { useState as useState44 } from "react";
|
|
20840
20902
|
|
|
20841
20903
|
// src/hooks/useInterval.ts
|
|
20842
|
-
import { useEffect as
|
|
20904
|
+
import { useEffect as useEffect39, useRef as useRef21 } from "react";
|
|
20843
20905
|
function useInterval(callback, delay) {
|
|
20844
20906
|
const savedCallback = useRef21(callback);
|
|
20845
20907
|
useIsomorphicLayoutEffect(() => {
|
|
20846
20908
|
savedCallback.current = callback;
|
|
20847
20909
|
}, [callback]);
|
|
20848
|
-
|
|
20910
|
+
useEffect39(() => {
|
|
20849
20911
|
const id = setInterval(() => {
|
|
20850
20912
|
savedCallback.current();
|
|
20851
20913
|
}, delay);
|
|
@@ -21486,7 +21548,7 @@ function KatanaBridgeAlert() {
|
|
|
21486
21548
|
import { useState as useState46 } from "react";
|
|
21487
21549
|
|
|
21488
21550
|
// src/modals/CheckoutModal/useSourceAssetConfirm.tsx
|
|
21489
|
-
import { useEffect as
|
|
21551
|
+
import { useEffect as useEffect40, useState as useState45 } from "react";
|
|
21490
21552
|
function preparePaymentMethodInfo(selectedPaymentMethodInfo) {
|
|
21491
21553
|
switch (selectedPaymentMethodInfo?.paymentMethod) {
|
|
21492
21554
|
case "balance" /* ACCOUNT_BALANCE */:
|
|
@@ -21547,7 +21609,7 @@ function useHackyTriggerWorkaroundReactDevBrainExplode() {
|
|
|
21547
21609
|
function useTriggerQuoteAndOtherStuffsWithExtremeCaution(onResult, setPreloadedQuoteData) {
|
|
21548
21610
|
const [assetRefresh, triggerAssetConfirm] = useHackyTriggerWorkaroundReactDevBrainExplode();
|
|
21549
21611
|
const { isSourceAssetConfirming, onSourceAssetConfirmed } = useSourceAssetConfirm(setPreloadedQuoteData);
|
|
21550
|
-
|
|
21612
|
+
useEffect40(() => {
|
|
21551
21613
|
if (assetRefresh === 0) {
|
|
21552
21614
|
return;
|
|
21553
21615
|
}
|
|
@@ -21625,8 +21687,9 @@ import React153, { useState as useState47 } from "react";
|
|
|
21625
21687
|
import { Trans as Trans10 } from "react-i18next";
|
|
21626
21688
|
|
|
21627
21689
|
// src/modals/CheckoutModal/ConfirmationStep/useAccountBalanceTransfer.ts
|
|
21628
|
-
import {
|
|
21690
|
+
import { USDT_ABI } from "@funkit/utils";
|
|
21629
21691
|
import { useCallback as useCallback31 } from "react";
|
|
21692
|
+
import { erc20Abi as erc20Abi2 } from "viem";
|
|
21630
21693
|
import { useAccount as useAccount6, useSendTransaction, useWriteContract } from "wagmi";
|
|
21631
21694
|
|
|
21632
21695
|
// src/utils/isMainnetUsdt.ts
|
|
@@ -21708,7 +21771,7 @@ function useWeb3AccountBalancePostCheckout(setPostCheckoutStepMessage) {
|
|
|
21708
21771
|
chainId: Number.parseInt(sourceAssetChainId),
|
|
21709
21772
|
address: sourceAssetAddress,
|
|
21710
21773
|
// USDT on mainnet has a different ABI
|
|
21711
|
-
abi: isTokenMainnetUsdt ? USDT_ABI :
|
|
21774
|
+
abi: isTokenMainnetUsdt ? USDT_ABI : erc20Abi2,
|
|
21712
21775
|
functionName: "transfer",
|
|
21713
21776
|
args: [depositAddress, sourceAssetAmountBaseUnit]
|
|
21714
21777
|
};
|
|
@@ -21911,7 +21974,7 @@ function usePostCheckout({
|
|
|
21911
21974
|
}
|
|
21912
21975
|
|
|
21913
21976
|
// src/modals/CheckoutModal/ConfirmationStep/useQuoteRefresh.ts
|
|
21914
|
-
import { useCallback as useCallback34, useEffect as
|
|
21977
|
+
import { useCallback as useCallback34, useEffect as useEffect42, useMemo as useMemo33, useRef as useRef22, useState as useState50 } from "react";
|
|
21915
21978
|
|
|
21916
21979
|
// src/hooks/useCountdown.tsx
|
|
21917
21980
|
import React155 from "react";
|
|
@@ -21919,7 +21982,7 @@ import { useCallback as useCallback33, useState as useState49 } from "react";
|
|
|
21919
21982
|
|
|
21920
21983
|
// src/components/FunCountdown/FunCountdown.tsx
|
|
21921
21984
|
import { noop as noop8 } from "@funkit/utils";
|
|
21922
|
-
import React154, { useCallback as useCallback32, useEffect as
|
|
21985
|
+
import React154, { useCallback as useCallback32, useEffect as useEffect41, useState as useState48 } from "react";
|
|
21923
21986
|
|
|
21924
21987
|
// src/components/FunCountdown/FunCountdown.css.ts
|
|
21925
21988
|
var backgroundRing = "_1t0bc111 _1rsrm2f1os";
|
|
@@ -21962,7 +22025,7 @@ var FunCountdown = ({
|
|
|
21962
22025
|
setRemainingSeconds((prev) => prev > 0 ? prev - 1 : prev);
|
|
21963
22026
|
}, [isPaused]);
|
|
21964
22027
|
useInterval(handleInterval, 1e3);
|
|
21965
|
-
|
|
22028
|
+
useEffect41(() => {
|
|
21966
22029
|
if (remainingSeconds === onBeforeCountdownEndsSeconds) {
|
|
21967
22030
|
onBeforeCountdownEndsOnce();
|
|
21968
22031
|
}
|
|
@@ -22183,7 +22246,7 @@ function useQuoteRefresh({
|
|
|
22183
22246
|
}
|
|
22184
22247
|
return null;
|
|
22185
22248
|
}, [isQuoting, quoteErrorMessage]);
|
|
22186
|
-
|
|
22249
|
+
useEffect42(() => {
|
|
22187
22250
|
if (isPendingRefresh && !isOnHold) {
|
|
22188
22251
|
setIsPendingRefresh(false);
|
|
22189
22252
|
refreshQuote();
|
|
@@ -22299,7 +22362,7 @@ function ConfirmationStep({
|
|
|
22299
22362
|
}
|
|
22300
22363
|
}
|
|
22301
22364
|
});
|
|
22302
|
-
|
|
22365
|
+
useEffect43(() => {
|
|
22303
22366
|
triggerNewQuote({ maxRetries: 1 });
|
|
22304
22367
|
}, []);
|
|
22305
22368
|
const isContinuing = isConfirming || isPostCheckoutLoading;
|
|
@@ -22597,7 +22660,7 @@ function DirectExecutionNotifCenter({
|
|
|
22597
22660
|
|
|
22598
22661
|
// src/modals/CheckoutModal/InputAmount/InputAmount.tsx
|
|
22599
22662
|
import { isMobile as isMobile7 } from "@funkit/utils";
|
|
22600
|
-
import React173, { useEffect as
|
|
22663
|
+
import React173, { useEffect as useEffect45 } from "react";
|
|
22601
22664
|
|
|
22602
22665
|
// src/hooks/queries/useMeldCurrencies.ts
|
|
22603
22666
|
import { getMeldSupportedFiat } from "@funkit/api-base";
|
|
@@ -22642,7 +22705,7 @@ import { getMeldDefaultFiat } from "@funkit/api-base";
|
|
|
22642
22705
|
import { useQuery as useQuery16 } from "@tanstack/react-query";
|
|
22643
22706
|
|
|
22644
22707
|
// src/hooks/queries/useMeldCryptoCurrencyCode.ts
|
|
22645
|
-
import { FlagKey as
|
|
22708
|
+
import { FlagKey as FlagKey15 } from "@funkit/utils";
|
|
22646
22709
|
import { arbitrum as arbitrum4, base as base6, polygon as polygon5 } from "viem/chains";
|
|
22647
22710
|
var ARB_USDC = "0xaf88d065e77c8cC2239327C5EDb3A432268e5831".toLowerCase();
|
|
22648
22711
|
var POLYGON_USDC = "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359".toLowerCase();
|
|
@@ -22675,7 +22738,7 @@ function useMeldCryptoCurrencyCode() {
|
|
|
22675
22738
|
return mappedCurrency;
|
|
22676
22739
|
}
|
|
22677
22740
|
function useIsMeldEnabled() {
|
|
22678
|
-
const meldEnabled = useFlag(
|
|
22741
|
+
const meldEnabled = useFlag(FlagKey15.EnableMeldPayment);
|
|
22679
22742
|
const meldCurrencyCode = useMeldCryptoCurrencyCode();
|
|
22680
22743
|
return meldEnabled && !!meldCurrencyCode;
|
|
22681
22744
|
}
|
|
@@ -22872,7 +22935,7 @@ var useMeldLimitError = (amount, fiatCurrency) => {
|
|
|
22872
22935
|
|
|
22873
22936
|
// src/modals/CheckoutModal/InputAmount/InputAmountLoaded.tsx
|
|
22874
22937
|
import {
|
|
22875
|
-
FlagKey as
|
|
22938
|
+
FlagKey as FlagKey18,
|
|
22876
22939
|
formatCryptoAndStringify as formatCryptoAndStringify5,
|
|
22877
22940
|
formatCurrencyAndStringify as formatCurrencyAndStringify9,
|
|
22878
22941
|
isTokenEquivalent as isTokenEquivalent4,
|
|
@@ -22884,13 +22947,13 @@ import React171, { useMemo as useMemo36 } from "react";
|
|
|
22884
22947
|
// src/components/AnimatedWidthWrapper/AnimatedWidthWrapper.tsx
|
|
22885
22948
|
import { motion as motion10 } from "motion/react";
|
|
22886
22949
|
import React159 from "react";
|
|
22887
|
-
import { useEffect as
|
|
22950
|
+
import { useEffect as useEffect44, useRef as useRef23, useState as useState52 } from "react";
|
|
22888
22951
|
function AnimatedWidthWrapper({ children }) {
|
|
22889
22952
|
const containerRef = useRef23(null);
|
|
22890
22953
|
const animationFrameRef = useRef23(null);
|
|
22891
22954
|
const resizeObserverRef = useRef23(null);
|
|
22892
22955
|
const [width, setWidth] = useState52("auto");
|
|
22893
|
-
|
|
22956
|
+
useEffect44(() => {
|
|
22894
22957
|
if (containerRef.current) {
|
|
22895
22958
|
resizeObserverRef.current = new ResizeObserver((entries) => {
|
|
22896
22959
|
animationFrameRef.current = requestAnimationFrame(() => {
|
|
@@ -22961,7 +23024,7 @@ var CurrencySelector = ({
|
|
|
22961
23024
|
};
|
|
22962
23025
|
|
|
22963
23026
|
// src/components/SourcePaymentMethodItem/SourcePaymentMethodItem.tsx
|
|
22964
|
-
import { FlagKey as
|
|
23027
|
+
import { FlagKey as FlagKey16 } from "@funkit/utils";
|
|
22965
23028
|
import clsx21 from "clsx";
|
|
22966
23029
|
import { useAnimate as useAnimate3 } from "motion/react";
|
|
22967
23030
|
import React162 from "react";
|
|
@@ -23567,8 +23630,8 @@ var SourcePaymentMethodItem = ({
|
|
|
23567
23630
|
icon: /* @__PURE__ */ React162.createElement(MasterCardPillIcon, { key: "mastercard", backdropColor })
|
|
23568
23631
|
}
|
|
23569
23632
|
];
|
|
23570
|
-
const isMeldEnabled =
|
|
23571
|
-
const isBrokerageEnabled = useFlag(
|
|
23633
|
+
const isMeldEnabled = useIsMeldEnabled();
|
|
23634
|
+
const isBrokerageEnabled = useFlag(FlagKey16.EnableBluvoBrokerage);
|
|
23572
23635
|
const usableAlternativeIcons = icons.filter(({ paymentMethod }) => {
|
|
23573
23636
|
if (paymentMethod === type || paymentMethod === "card" /* CARD */ && !isMeldEnabled || paymentMethod === "brokerage" /* BROKERAGE */ && !isBrokerageEnabled) {
|
|
23574
23637
|
return false;
|
|
@@ -23925,7 +23988,7 @@ function InputAmountLayout({
|
|
|
23925
23988
|
}
|
|
23926
23989
|
|
|
23927
23990
|
// src/modals/CheckoutModal/InputAmount/QuickOptions.tsx
|
|
23928
|
-
import { FlagKey as
|
|
23991
|
+
import { FlagKey as FlagKey17, clamp as clamp2, formatCurrencyAndStringify as formatCurrencyAndStringify7 } from "@funkit/utils";
|
|
23929
23992
|
import React167 from "react";
|
|
23930
23993
|
var USD_AMOUNT_OPTIONS_PCT = [25, 50, 75, 100];
|
|
23931
23994
|
function deduplicateArray(arr) {
|
|
@@ -23933,7 +23996,7 @@ function deduplicateArray(arr) {
|
|
|
23933
23996
|
}
|
|
23934
23997
|
function useFiatAmountOptions(currency) {
|
|
23935
23998
|
const isMeldEnabled = useIsMeldEnabled();
|
|
23936
|
-
const currencyQuickOptionStr = useFlag(
|
|
23999
|
+
const currencyQuickOptionStr = useFlag(FlagKey17.MeldQuickOptions);
|
|
23937
24000
|
const currencyQuickOption = safeJSONParse(
|
|
23938
24001
|
currencyQuickOptionStr
|
|
23939
24002
|
);
|
|
@@ -24987,10 +25050,10 @@ import {
|
|
|
24987
25050
|
hyperEvmChain as hyperEvmChain4,
|
|
24988
25051
|
katanaChain
|
|
24989
25052
|
} from "@funkit/chains";
|
|
24990
|
-
import { getTokenAddressBySymbolAndChainId } from "@funkit/core";
|
|
24991
25053
|
import { useCallback as useCallback37, useState as useState55 } from "react";
|
|
24992
25054
|
import { mainnet as mainnet8, mantle, zksync as zksync2 } from "viem/chains";
|
|
24993
|
-
|
|
25055
|
+
import { getAssetErc20ByChainAndSymbol as getAssetErc20ByChainAndSymbol2 } from "@funkit/api-base";
|
|
25056
|
+
var pickSourceAssetForCard = async (checkoutItem, userIpInfo, apiKey) => {
|
|
24994
25057
|
if (!checkoutItem?.initSettings.config.targetChain) {
|
|
24995
25058
|
throw new Error("pickSourceAssetForCard: Missing targetChain");
|
|
24996
25059
|
}
|
|
@@ -25006,7 +25069,11 @@ var pickSourceAssetForCard = async (checkoutItem, userIpInfo) => {
|
|
|
25006
25069
|
hyperEvmChain4.id.toString()
|
|
25007
25070
|
]
|
|
25008
25071
|
);
|
|
25009
|
-
const wethAddrOnTargetChain = (await
|
|
25072
|
+
const wethAddrOnTargetChain = (await getAssetErc20ByChainAndSymbol2({
|
|
25073
|
+
chainId: moonpayChainId,
|
|
25074
|
+
symbol: "weth",
|
|
25075
|
+
apiKey
|
|
25076
|
+
})).address.toLowerCase();
|
|
25010
25077
|
const isTargetAssetEthOrWeth = [NATIVE_TOKEN, wethAddrOnTargetChain].includes(
|
|
25011
25078
|
checkoutItem.initSettings.config.targetAsset
|
|
25012
25079
|
) && FUNKIT_CONNECT_SUPPORTED_CHAINS_INFO10[moonpayChainId]?.nativeCurrency.symbol === "ETH" /* ETH */;
|
|
@@ -25024,10 +25091,11 @@ var pickSourceAssetForCard = async (checkoutItem, userIpInfo) => {
|
|
|
25024
25091
|
sourceTokenAddress = NATIVE_TOKEN;
|
|
25025
25092
|
} else {
|
|
25026
25093
|
sourceTokenTicker = "USDC" /* USDC */;
|
|
25027
|
-
sourceTokenAddress = await
|
|
25028
|
-
|
|
25029
|
-
|
|
25030
|
-
|
|
25094
|
+
sourceTokenAddress = (await getAssetErc20ByChainAndSymbol2({
|
|
25095
|
+
chainId: sourceTokenChainId,
|
|
25096
|
+
symbol: "USDC" /* USDC */,
|
|
25097
|
+
apiKey
|
|
25098
|
+
})).address;
|
|
25031
25099
|
}
|
|
25032
25100
|
}
|
|
25033
25101
|
logger.log("pickSourceAssetForCard:result", {
|
|
@@ -25048,11 +25116,16 @@ var pickSourceAssetForCard = async (checkoutItem, userIpInfo) => {
|
|
|
25048
25116
|
function useUpdateCardSourceAsset() {
|
|
25049
25117
|
const { checkoutItem, updateSourceAsset } = useCheckoutContext();
|
|
25050
25118
|
const { userIpInfo } = useFunkitUserIp();
|
|
25119
|
+
const { apiKey } = useFunkitConfig();
|
|
25051
25120
|
const [isUpdating, setIsUpdating] = useState55(false);
|
|
25052
25121
|
const onSelectCard = useCallback37(async () => {
|
|
25053
25122
|
setIsUpdating(true);
|
|
25054
25123
|
try {
|
|
25055
|
-
const source = await pickSourceAssetForCard(
|
|
25124
|
+
const source = await pickSourceAssetForCard(
|
|
25125
|
+
checkoutItem,
|
|
25126
|
+
userIpInfo,
|
|
25127
|
+
apiKey
|
|
25128
|
+
);
|
|
25056
25129
|
updateSourceAsset({
|
|
25057
25130
|
tokenAddress: source.sourceTokenAddress,
|
|
25058
25131
|
symbol: source.sourceTokenTicker,
|
|
@@ -25062,7 +25135,7 @@ function useUpdateCardSourceAsset() {
|
|
|
25062
25135
|
} finally {
|
|
25063
25136
|
setIsUpdating(false);
|
|
25064
25137
|
}
|
|
25065
|
-
}, [checkoutItem, updateSourceAsset, userIpInfo]);
|
|
25138
|
+
}, [checkoutItem, updateSourceAsset, userIpInfo, apiKey]);
|
|
25066
25139
|
return { onSelectCard, isUpdating };
|
|
25067
25140
|
}
|
|
25068
25141
|
|
|
@@ -25226,7 +25299,7 @@ function InputAmountLoaded({
|
|
|
25226
25299
|
textCustomizations
|
|
25227
25300
|
}) {
|
|
25228
25301
|
const { t } = useFunkitTranslation();
|
|
25229
|
-
const maxCheckoutUsdString = useFlag(
|
|
25302
|
+
const maxCheckoutUsdString = useFlag(FlagKey18.MaxCheckoutUsd);
|
|
25230
25303
|
const isSourceNavWidgetEnabled = modalState.startingStep === "select_asset" /* SELECT_ASSET */;
|
|
25231
25304
|
const paymentMethodInfo = modalState.paymentMethodInfo;
|
|
25232
25305
|
const { quote: manuallySelectedQuote } = modalState;
|
|
@@ -25714,14 +25787,14 @@ function InputAmountLoading({
|
|
|
25714
25787
|
};
|
|
25715
25788
|
}
|
|
25716
25789
|
}, [sourceHoldingError, unitPriceError, t]);
|
|
25717
|
-
const
|
|
25718
|
-
const isMeldCheckout =
|
|
25790
|
+
const isMeldPaymentMethod = paymentMethodInfo.paymentMethod === "card" /* CARD */;
|
|
25791
|
+
const isMeldCheckout = isMeldPaymentMethod && meldEnabled;
|
|
25719
25792
|
return /* @__PURE__ */ React172.createElement(
|
|
25720
25793
|
InputAmountLayout,
|
|
25721
25794
|
{
|
|
25722
25795
|
actionButtonProps: { title: t("common.continue"), isDisabled: true },
|
|
25723
25796
|
fiatCurrencySelector: isMeldCheckout && /* @__PURE__ */ React172.createElement(CurrencySelector, { isLoading: true }),
|
|
25724
|
-
header:
|
|
25797
|
+
header: isMeldPaymentMethod && isSourceNavWidgetEnabled && /* @__PURE__ */ React172.createElement(Box, { width: "full" }, /* @__PURE__ */ React172.createElement(
|
|
25725
25798
|
SourcePaymentMethodItem,
|
|
25726
25799
|
{
|
|
25727
25800
|
type: "card" /* CARD */,
|
|
@@ -25763,7 +25836,7 @@ function InputAmountLoading({
|
|
|
25763
25836
|
)
|
|
25764
25837
|
)
|
|
25765
25838
|
),
|
|
25766
|
-
amountOptions: !
|
|
25839
|
+
amountOptions: !isMeldPaymentMethod && /* @__PURE__ */ React172.createElement(QuickOptions, { disabled: true, options: USD_AMOUNT_OPTIONS_PCT, percentMode: true }),
|
|
25767
25840
|
footer: isMeldCheckout ? /* @__PURE__ */ React172.createElement(Box, { paddingX: "6" }, /* @__PURE__ */ React172.createElement(SourceMeldQuoteItem, { isLoading: true })) : /* @__PURE__ */ React172.createElement(YouPayYouReceiveBottomBarLayoutWrapper, null, /* @__PURE__ */ React172.createElement(
|
|
25768
25841
|
FunSkeletonBlock,
|
|
25769
25842
|
{
|
|
@@ -25893,7 +25966,7 @@ function InputAmount(props) {
|
|
|
25893
25966
|
const skipExchangeRates = paymentMethodInfo.paymentMethod !== "card" /* CARD */ || !isDefiMode;
|
|
25894
25967
|
const exchangeRatesLoaded = !isCurrencyExchangeRatesLoading && !!currencyExchangeRates;
|
|
25895
25968
|
const isLoaded = !!(checkoutItem && unitPrice && !sourceHoldingError && !isLoadingSourceHolding && !isMeldDefaultCurrencyLoading && (skipExchangeRates || exchangeRatesLoaded));
|
|
25896
|
-
|
|
25969
|
+
useEffect45(() => setCheckoutQuote(null), []);
|
|
25897
25970
|
if (isLoaded) {
|
|
25898
25971
|
return /* @__PURE__ */ React173.createElement(
|
|
25899
25972
|
InputAmountLoaded,
|
|
@@ -25919,27 +25992,27 @@ function InputAmount(props) {
|
|
|
25919
25992
|
}
|
|
25920
25993
|
|
|
25921
25994
|
// src/modals/CheckoutModal/LoadingAccount.tsx
|
|
25922
|
-
import React176, { useEffect as
|
|
25995
|
+
import React176, { useEffect as useEffect46 } from "react";
|
|
25923
25996
|
|
|
25924
25997
|
// src/hooks/usePaymentSources.ts
|
|
25925
|
-
import { FlagKey as
|
|
25998
|
+
import { FlagKey as FlagKey19, isNotNullish as isNotNullish5 } from "@funkit/utils";
|
|
25926
25999
|
function usePaymentMethodEnablement({
|
|
25927
26000
|
checkoutConfig
|
|
25928
26001
|
}) {
|
|
25929
26002
|
const { apiKey } = useFunkitConfig();
|
|
25930
|
-
const isTokenTransferFlagEnabled =
|
|
26003
|
+
const isTokenTransferFlagEnabled = useIsQRCodeTransferEnabled();
|
|
25931
26004
|
const isFiatFlagEnabled = useFiatEnabled();
|
|
25932
|
-
const
|
|
25933
|
-
const isBrokerageFlagEnabled = useFlag(
|
|
26005
|
+
const isMeldFlagEnabled = useIsMeldEnabled();
|
|
26006
|
+
const isBrokerageFlagEnabled = useFlag(FlagKey19.EnableBluvoBrokerage);
|
|
25934
26007
|
const isKatanaEarnFlowAction = isKatanaEarnFlow({ apiKey, checkoutConfig });
|
|
25935
26008
|
const isFiatEnabled = isFiatFlagEnabled && !isKatanaEarnFlowAction;
|
|
25936
26009
|
const isTokenTransferEnabled = isTokenTransferFlagEnabled && !isKatanaEarnFlowAction;
|
|
25937
|
-
const
|
|
26010
|
+
const isMeldEnabled = isMeldFlagEnabled && !isKatanaEarnFlowAction;
|
|
25938
26011
|
const isBrokerageEnabled = isBrokerageFlagEnabled && isTokenTransferEnabled;
|
|
25939
26012
|
return {
|
|
25940
26013
|
isFiatEnabled,
|
|
25941
26014
|
isTokenTransferEnabled,
|
|
25942
|
-
|
|
26015
|
+
isMeldEnabled,
|
|
25943
26016
|
isBrokerageEnabled
|
|
25944
26017
|
};
|
|
25945
26018
|
}
|
|
@@ -25962,7 +26035,7 @@ var usePaymentSources = (paymentMethodInfo, targetChainId, checkoutConfig) => {
|
|
|
25962
26035
|
const {
|
|
25963
26036
|
isFiatEnabled,
|
|
25964
26037
|
isTokenTransferEnabled,
|
|
25965
|
-
|
|
26038
|
+
isMeldEnabled,
|
|
25966
26039
|
isBrokerageEnabled
|
|
25967
26040
|
} = usePaymentMethodEnablement({ checkoutConfig });
|
|
25968
26041
|
const accountPaymentMethodInfo = createPaymentMethodInfo({
|
|
@@ -25983,13 +26056,13 @@ var usePaymentSources = (paymentMethodInfo, targetChainId, checkoutConfig) => {
|
|
|
25983
26056
|
virtualBankPaymentMethodInfo
|
|
25984
26057
|
].filter(isNotNullish5);
|
|
25985
26058
|
const ignoreFallback = isConnected && !hasUsableBalance;
|
|
25986
|
-
const fallback2 = connected.length === 0 && !ignoreFallback ? isTokenTransferEnabled ? ["token_transfer" /* TOKEN_TRANSFER */] :
|
|
26059
|
+
const fallback2 = connected.length === 0 && !ignoreFallback ? isTokenTransferEnabled ? ["token_transfer" /* TOKEN_TRANSFER */] : isMeldEnabled ? ["card" /* CARD */] : ["balance" /* ACCOUNT_BALANCE */] : [];
|
|
25987
26060
|
const isTokenInNewSources = !fallback2.includes("token_transfer" /* TOKEN_TRANSFER */) && isTokenTransferEnabled;
|
|
25988
26061
|
const isWalletInNewSources = !isConnected && !fallback2.includes("balance" /* ACCOUNT_BALANCE */);
|
|
25989
26062
|
const isBankInNewSources = !matchingFiatAccount && isUserLoggedIn && isFiatEnabled;
|
|
25990
26063
|
const newSources = [
|
|
25991
26064
|
isTokenInNewSources && "token_transfer" /* TOKEN_TRANSFER */,
|
|
25992
|
-
!fallback2.includes("card" /* CARD */) &&
|
|
26065
|
+
!fallback2.includes("card" /* CARD */) && isMeldEnabled && "card" /* CARD */,
|
|
25993
26066
|
isBankInNewSources && "virtual_bank" /* VIRTUAL_BANK */,
|
|
25994
26067
|
isWalletInNewSources && "balance" /* ACCOUNT_BALANCE */,
|
|
25995
26068
|
isBrokerageEnabled && "brokerage" /* BROKERAGE */
|
|
@@ -26263,7 +26336,7 @@ function LoadingAccount({
|
|
|
26263
26336
|
const hasCustomStartingStep = !!checkoutConfig?.startingStep;
|
|
26264
26337
|
const startsOnConfirmationStep = checkoutConfig?.startingStep === "confirmation" /* CONFIRMATION */;
|
|
26265
26338
|
const startsOnSelectAssetStep = checkoutConfig?.startingStep === "select_asset" /* SELECT_ASSET */;
|
|
26266
|
-
|
|
26339
|
+
useEffect46(() => {
|
|
26267
26340
|
if (isLoadingFlags || isLoadingFiat || !checkoutConfig) {
|
|
26268
26341
|
return;
|
|
26269
26342
|
}
|
|
@@ -26605,7 +26678,7 @@ import {
|
|
|
26605
26678
|
hyperEvmChain as hyperEvmChain5
|
|
26606
26679
|
} from "@funkit/chains";
|
|
26607
26680
|
import { formatCurrencyAndStringify as formatCurrencyAndStringify11, isTokenEquivalent as isTokenEquivalent5 } from "@funkit/utils";
|
|
26608
|
-
import React182, { useEffect as
|
|
26681
|
+
import React182, { useEffect as useEffect47, useMemo as useMemo41, useState as useState57 } from "react";
|
|
26609
26682
|
import { createPortal as createPortal18 } from "react-dom";
|
|
26610
26683
|
import { mainnet as mainnet9 } from "viem/chains";
|
|
26611
26684
|
|
|
@@ -26703,7 +26776,7 @@ var ReceiveTokenDropdown = ({
|
|
|
26703
26776
|
// src/components/NewTokenDepositAlert/NewTokenDepositAlert.tsx
|
|
26704
26777
|
import React181 from "react";
|
|
26705
26778
|
import { Trans as Trans11 } from "react-i18next";
|
|
26706
|
-
import { FlagKey as
|
|
26779
|
+
import { FlagKey as FlagKey20 } from "@funkit/utils";
|
|
26707
26780
|
var FunLinkButtonComponent2 = ({
|
|
26708
26781
|
children,
|
|
26709
26782
|
onClick,
|
|
@@ -26723,9 +26796,9 @@ var NewTokenDepositAlert = ({
|
|
|
26723
26796
|
onClick
|
|
26724
26797
|
}) => {
|
|
26725
26798
|
const { t } = useFunkitTranslation();
|
|
26726
|
-
const alertJson = useFlag(
|
|
26799
|
+
const alertJson = useFlag(FlagKey20.NewTokenAssetSelectionBanner);
|
|
26727
26800
|
const alertData = useSafeJSONParse(alertJson);
|
|
26728
|
-
const isTokenTransferEnabled =
|
|
26801
|
+
const isTokenTransferEnabled = useIsQRCodeTransferEnabled();
|
|
26729
26802
|
if (!alertData || !isTokenTransferEnabled) {
|
|
26730
26803
|
return null;
|
|
26731
26804
|
}
|
|
@@ -26850,6 +26923,7 @@ function useEnrichedAccountHoldings({
|
|
|
26850
26923
|
accountHoldings,
|
|
26851
26924
|
targetAssetInfo
|
|
26852
26925
|
}) {
|
|
26926
|
+
const { apiKey } = useFunkitConfig();
|
|
26853
26927
|
const { t } = useFunkitTranslation();
|
|
26854
26928
|
const { isAllowed, isLoading } = useAllowedAssets();
|
|
26855
26929
|
const { walletAddress } = useGeneralWallet();
|
|
@@ -26866,6 +26940,7 @@ function useEnrichedAccountHoldings({
|
|
|
26866
26940
|
minUsdRequired = minUsd;
|
|
26867
26941
|
}
|
|
26868
26942
|
const usableForCheckout = isAssetUsableToPayForCheckout({
|
|
26943
|
+
apiKey,
|
|
26869
26944
|
config: checkoutConfig,
|
|
26870
26945
|
targetTokenAddress: targetAssetInfo.tokenAddress,
|
|
26871
26946
|
targetChainId: targetAssetInfo.tokenChainId,
|
|
@@ -26884,6 +26959,7 @@ function useEnrichedAccountHoldings({
|
|
|
26884
26959
|
return { asset, usableForCheckout };
|
|
26885
26960
|
});
|
|
26886
26961
|
}, [
|
|
26962
|
+
apiKey,
|
|
26887
26963
|
accountHoldings,
|
|
26888
26964
|
checkoutConfig,
|
|
26889
26965
|
isAllowed,
|
|
@@ -26959,7 +27035,7 @@ function useAssetOptions({
|
|
|
26959
27035
|
return assetOptions;
|
|
26960
27036
|
}
|
|
26961
27037
|
function useScrollToSelectedAsset(selectedChainTokenSymbol) {
|
|
26962
|
-
|
|
27038
|
+
useEffect47(() => {
|
|
26963
27039
|
const optionEl = document.getElementById(
|
|
26964
27040
|
`option-${selectedChainTokenSymbol}`
|
|
26965
27041
|
);
|
|
@@ -27103,11 +27179,32 @@ function AccountSelectAsset({
|
|
|
27103
27179
|
const isAssetsEmpty = assetOptions.length === 0;
|
|
27104
27180
|
const isDisabled = isAssetsEmpty || !selectedChainTokenSymbol || isLoading;
|
|
27105
27181
|
const onBalanceTopUpSwitch = checkoutItem?.initSettings.onBalanceTopUpSwitch;
|
|
27182
|
+
const showLighterEthMessage = isLighterEthSpot(apiKey, checkoutConfig) && assetOptions.every((asset) => asset.isDisabled);
|
|
27106
27183
|
const assetList = isLoading ? /* @__PURE__ */ React182.createElement(FunAssetLoading, { count: 5 }) : isAssetsEmpty ? /* @__PURE__ */ React182.createElement(
|
|
27107
27184
|
FunNoResults,
|
|
27108
27185
|
{
|
|
27109
|
-
text: t("checkout.noAvailableTokensMessage"),
|
|
27110
27186
|
title: t("checkout.noAvailableTokens"),
|
|
27187
|
+
text: t("checkout.noAvailableTokensMessage"),
|
|
27188
|
+
variant: "actionable",
|
|
27189
|
+
actionButton: onBalanceTopUpSwitch ? /* @__PURE__ */ React182.createElement(
|
|
27190
|
+
FunButton,
|
|
27191
|
+
{
|
|
27192
|
+
type: "tertiary",
|
|
27193
|
+
onClick: () => {
|
|
27194
|
+
if (onBalanceTopUpSwitch) {
|
|
27195
|
+
onBalanceTopUpSwitch();
|
|
27196
|
+
}
|
|
27197
|
+
onClose?.();
|
|
27198
|
+
},
|
|
27199
|
+
title: t("checkout.topUpWallet")
|
|
27200
|
+
}
|
|
27201
|
+
) : void 0
|
|
27202
|
+
}
|
|
27203
|
+
) : showLighterEthMessage ? /* @__PURE__ */ React182.createElement(
|
|
27204
|
+
FunNoResults,
|
|
27205
|
+
{
|
|
27206
|
+
title: t("checkout.insufficientEth"),
|
|
27207
|
+
text: t("checkout.insufficientEthMessage"),
|
|
27111
27208
|
variant: "actionable",
|
|
27112
27209
|
actionButton: onBalanceTopUpSwitch ? /* @__PURE__ */ React182.createElement(
|
|
27113
27210
|
FunButton,
|
|
@@ -27378,7 +27475,7 @@ function showsNativeTokensOnTop(apiKey) {
|
|
|
27378
27475
|
|
|
27379
27476
|
// src/modals/CheckoutModal/SourceChange/SourceChange.tsx
|
|
27380
27477
|
import { BridgeCustomerStatus as BridgeCustomerStatus6, MeldServiceProvider as MeldServiceProvider4 } from "@funkit/api-base";
|
|
27381
|
-
import React184, { useCallback as useCallback40, useEffect as
|
|
27478
|
+
import React184, { useCallback as useCallback40, useEffect as useEffect48, useState as useState58 } from "react";
|
|
27382
27479
|
import { createPortal as createPortal19 } from "react-dom";
|
|
27383
27480
|
|
|
27384
27481
|
// src/modals/CheckoutModal/SourceChange/DefiPurchaseSection.tsx
|
|
@@ -27565,7 +27662,6 @@ function PayPal() {
|
|
|
27565
27662
|
function SourceChange({
|
|
27566
27663
|
modalState,
|
|
27567
27664
|
onNext,
|
|
27568
|
-
onClose,
|
|
27569
27665
|
setModalState
|
|
27570
27666
|
}) {
|
|
27571
27667
|
const { paymentMethodInfo, targetChainId } = modalState;
|
|
@@ -27576,16 +27672,14 @@ function SourceChange({
|
|
|
27576
27672
|
const { data: fiatAccounts } = useVirtualFiatAccounts();
|
|
27577
27673
|
const matchingFiatAccount = useMatchingVirtualFiatAccount(fiatAccounts);
|
|
27578
27674
|
const { apiKey, textCustomizations } = useFunkitConfig();
|
|
27579
|
-
const enableMeldPayment = useIsMeldEnabled();
|
|
27580
27675
|
const isDefiMode = checkoutItem?.initSettings.config.isDefiMode;
|
|
27581
27676
|
const hasAutoContinue = !isOstiumCustomer(apiKey) && !isDefiMode;
|
|
27582
|
-
|
|
27677
|
+
useEffect48(() => {
|
|
27583
27678
|
if (!paymentMethodInfo) {
|
|
27584
27679
|
return;
|
|
27585
27680
|
}
|
|
27586
27681
|
updateSelectedPaymentMethodInfo(paymentMethodInfo);
|
|
27587
27682
|
}, [paymentMethodInfo, updateSelectedPaymentMethodInfo]);
|
|
27588
|
-
const { onSelectCard } = useUpdateCardSourceAsset();
|
|
27589
27683
|
const bluvo = useBluvo();
|
|
27590
27684
|
const handleConnectedSourceContinue = (source, isConfirmed = false) => {
|
|
27591
27685
|
setConnectedSource(source);
|
|
@@ -27625,19 +27719,11 @@ function SourceChange({
|
|
|
27625
27719
|
return;
|
|
27626
27720
|
}
|
|
27627
27721
|
if (newSource2 === "card" /* CARD */) {
|
|
27628
|
-
if (isPolymarketCustomer(apiKey) && !enableMeldPayment) {
|
|
27629
|
-
checkoutItem?.initSettings.onPolymarketCardSwitch?.({});
|
|
27630
|
-
onClose();
|
|
27631
|
-
return;
|
|
27632
|
-
}
|
|
27633
27722
|
const paymentMethodInfo2 = createPaymentMethodInfo({
|
|
27634
27723
|
paymentMethod: "card" /* CARD */,
|
|
27635
27724
|
titleCustomization: textCustomizations.debitOrCredit
|
|
27636
27725
|
});
|
|
27637
27726
|
updateSelectedPaymentMethodInfo(paymentMethodInfo2);
|
|
27638
|
-
if (!enableMeldPayment) {
|
|
27639
|
-
await onSelectCard();
|
|
27640
|
-
}
|
|
27641
27727
|
onNext({
|
|
27642
27728
|
connectNew: true,
|
|
27643
27729
|
reverseAnimation: true,
|
|
@@ -27685,7 +27771,7 @@ function SourceChange({
|
|
|
27685
27771
|
});
|
|
27686
27772
|
}
|
|
27687
27773
|
};
|
|
27688
|
-
|
|
27774
|
+
useEffect48(() => {
|
|
27689
27775
|
if (connectionStatus !== "disconnected" && connectionStatus !== "loading") {
|
|
27690
27776
|
onCloseConnectModal();
|
|
27691
27777
|
}
|
|
@@ -27780,7 +27866,7 @@ import { truncateMiddleOfAddress } from "@funkit/utils";
|
|
|
27780
27866
|
import React185, { useCallback as useCallback42, useState as useState60 } from "react";
|
|
27781
27867
|
|
|
27782
27868
|
// src/hooks/useCopyToClipboard.ts
|
|
27783
|
-
import { useCallback as useCallback41, useEffect as
|
|
27869
|
+
import { useCallback as useCallback41, useEffect as useEffect49, useState as useState59 } from "react";
|
|
27784
27870
|
var useCopyToClipboard = (text, delay = 1500) => {
|
|
27785
27871
|
const [isCopied, setCopied] = useState59(false);
|
|
27786
27872
|
const handleCopy = useCallback41(() => {
|
|
@@ -27790,7 +27876,7 @@ var useCopyToClipboard = (text, delay = 1500) => {
|
|
|
27790
27876
|
navigator.clipboard.writeText(text);
|
|
27791
27877
|
setCopied(true);
|
|
27792
27878
|
}, [text]);
|
|
27793
|
-
|
|
27879
|
+
useEffect49(() => {
|
|
27794
27880
|
if (!isCopied) {
|
|
27795
27881
|
return;
|
|
27796
27882
|
}
|
|
@@ -27889,12 +27975,12 @@ function CopyInputDisplayedAddress(props) {
|
|
|
27889
27975
|
}
|
|
27890
27976
|
|
|
27891
27977
|
// src/components/FunInfoBanner/ChainInfoBanners.tsx
|
|
27892
|
-
import { FlagKey as
|
|
27978
|
+
import { FlagKey as FlagKey21 } from "@funkit/utils";
|
|
27893
27979
|
import React186 from "react";
|
|
27894
27980
|
var ChainInfoBanners = ({
|
|
27895
27981
|
chainId
|
|
27896
27982
|
}) => {
|
|
27897
|
-
const chainInfoBanners = useFlag(
|
|
27983
|
+
const chainInfoBanners = useFlag(FlagKey21.ChainInfoBanners);
|
|
27898
27984
|
const chainInfoBannersData = useSafeJSONParse(chainInfoBanners) ?? {};
|
|
27899
27985
|
try {
|
|
27900
27986
|
const chainBanners = chainInfoBannersData[chainId] ?? [];
|
|
@@ -29178,7 +29264,7 @@ var FiatAccountDetail = {
|
|
|
29178
29264
|
|
|
29179
29265
|
// src/modals/CheckoutModal/VirtualFiatAccount/KycIframe.tsx
|
|
29180
29266
|
import { BridgeCustomerStatus as BridgeCustomerStatus7 } from "@funkit/api-base";
|
|
29181
|
-
import React203, { useCallback as useCallback43, useEffect as
|
|
29267
|
+
import React203, { useCallback as useCallback43, useEffect as useEffect50, useMemo as useMemo43, useState as useState64 } from "react";
|
|
29182
29268
|
function useIframeListener(listeners) {
|
|
29183
29269
|
const handleMessage = useCallback43(
|
|
29184
29270
|
(event) => {
|
|
@@ -29202,7 +29288,7 @@ function useIframeListener(listeners) {
|
|
|
29202
29288
|
},
|
|
29203
29289
|
[listeners]
|
|
29204
29290
|
);
|
|
29205
|
-
|
|
29291
|
+
useEffect50(() => {
|
|
29206
29292
|
window.addEventListener("message", handleMessage);
|
|
29207
29293
|
return () => {
|
|
29208
29294
|
window.removeEventListener("message", handleMessage);
|
|
@@ -29591,7 +29677,7 @@ function FunCheckoutModalHeightAnimationWrapper({
|
|
|
29591
29677
|
const animationFrameRef = useRef27(null);
|
|
29592
29678
|
const resizeObserverRef = useRef27(null);
|
|
29593
29679
|
const [height, setHeight] = useState66("auto");
|
|
29594
|
-
|
|
29680
|
+
useEffect51(() => {
|
|
29595
29681
|
if (containerRef.current) {
|
|
29596
29682
|
resizeObserverRef.current = new ResizeObserver((entries) => {
|
|
29597
29683
|
animationFrameRef.current = requestAnimationFrame(() => {
|
|
@@ -29649,7 +29735,7 @@ function useCheckoutModalTitle(depositAddress, defaultTitle) {
|
|
|
29649
29735
|
import { IN_PROGRESS_CHECKOUT_STATES as IN_PROGRESS_CHECKOUT_STATES2 } from "@funkit/api-base";
|
|
29650
29736
|
import { formatTimestampToDate, fullMonthNames } from "@funkit/utils";
|
|
29651
29737
|
import clsx24 from "clsx";
|
|
29652
|
-
import React213, { useEffect as
|
|
29738
|
+
import React213, { useEffect as useEffect52, useMemo as useMemo44, useRef as useRef28, useState as useState68 } from "react";
|
|
29653
29739
|
import { Virtuoso } from "react-virtuoso";
|
|
29654
29740
|
import { useAccount as useAccount7 } from "wagmi";
|
|
29655
29741
|
|
|
@@ -30192,7 +30278,7 @@ function Home({
|
|
|
30192
30278
|
const { checkoutHistoryList, isCheckoutHistoryInited } = useCheckoutHistoryContext();
|
|
30193
30279
|
const { returnViewPresets } = useActivityTraversal();
|
|
30194
30280
|
const { animation: tabAnimation, navigateTo } = useAnimatedNavigation(setSelectedView);
|
|
30195
|
-
|
|
30281
|
+
useEffect52(() => {
|
|
30196
30282
|
const virtuosoDiv = virtuosoParentRef.current?.firstChild;
|
|
30197
30283
|
virtuosoDiv?.classList.add(animateVirtuosoInClass);
|
|
30198
30284
|
}, []);
|
|
@@ -30949,7 +31035,7 @@ import React231, { useRef as useRef29 } from "react";
|
|
|
30949
31035
|
import React229, { useCallback as useCallback47, useMemo as useMemo45, useState as useState72 } from "react";
|
|
30950
31036
|
|
|
30951
31037
|
// src/components/FunConnectOptions/FunConnectResultStep.tsx
|
|
30952
|
-
import React224, { useEffect as
|
|
31038
|
+
import React224, { useEffect as useEffect53 } from "react";
|
|
30953
31039
|
var AUTO_CLOSE = 2e3;
|
|
30954
31040
|
var messageMap = (hasQrCode) => ({
|
|
30955
31041
|
error: {
|
|
@@ -30968,7 +31054,7 @@ var FunConnectResultStep = ({
|
|
|
30968
31054
|
qrCodeUri
|
|
30969
31055
|
}) => {
|
|
30970
31056
|
const hasAutoclose = type === "success";
|
|
30971
|
-
|
|
31057
|
+
useEffect53(() => {
|
|
30972
31058
|
if (!hasAutoclose) {
|
|
30973
31059
|
return;
|
|
30974
31060
|
}
|
|
@@ -31787,7 +31873,7 @@ function ModalProvider({ children }) {
|
|
|
31787
31873
|
onConnect: () => closeModals(isUnauthenticated),
|
|
31788
31874
|
onDisconnect: closeModals
|
|
31789
31875
|
});
|
|
31790
|
-
|
|
31876
|
+
useEffect54(() => {
|
|
31791
31877
|
if (isUnauthenticated) {
|
|
31792
31878
|
closeModals();
|
|
31793
31879
|
}
|
|
@@ -31883,7 +31969,7 @@ function useConnectModal(onClose) {
|
|
|
31883
31969
|
const { connectModalOpen, openConnectModal } = useContext16(ModalContext);
|
|
31884
31970
|
const { isWalletConnectModalOpen } = useWalletConnectOpenState();
|
|
31885
31971
|
const effectiveConnectModalOpen = connectModalOpen || isWalletConnectModalOpen;
|
|
31886
|
-
|
|
31972
|
+
useEffect54(() => {
|
|
31887
31973
|
if (!effectiveConnectModalOpen && onClose) {
|
|
31888
31974
|
onClose();
|
|
31889
31975
|
}
|
|
@@ -31958,7 +32044,7 @@ function FunkitCheckoutProvider({ children }) {
|
|
|
31958
32044
|
},
|
|
31959
32045
|
[]
|
|
31960
32046
|
);
|
|
31961
|
-
|
|
32047
|
+
useEffect55(() => {
|
|
31962
32048
|
if (isNotNullish8(logoutSymbol)) {
|
|
31963
32049
|
setActiveCheckout(null);
|
|
31964
32050
|
}
|
|
@@ -32458,7 +32544,7 @@ function useFunkitCheckout(props) {
|
|
|
32458
32544
|
const { openWithdrawalModal } = useWithdrawalModal();
|
|
32459
32545
|
const { connectModalOpen, openConnectModal } = useConnectModal();
|
|
32460
32546
|
const { isUserLoggedIn } = useGeneralWallet();
|
|
32461
|
-
const isCheckoutActivated = useFlag(
|
|
32547
|
+
const isCheckoutActivated = useFlag(FlagKey22.IsCheckoutActivated);
|
|
32462
32548
|
const onErrorWrapper = useCallback49(
|
|
32463
32549
|
(payload) => {
|
|
32464
32550
|
logger.warn(payload.message, payload);
|
|
@@ -32564,13 +32650,13 @@ function useFunkitCheckout(props) {
|
|
|
32564
32650
|
});
|
|
32565
32651
|
openWithdrawalModal?.({ withdrawalId, ...config });
|
|
32566
32652
|
});
|
|
32567
|
-
|
|
32653
|
+
useEffect55(() => {
|
|
32568
32654
|
if (isUserLoggedIn && pendingCheckoutConfig) {
|
|
32569
32655
|
setPendingCheckoutConfig(void 0);
|
|
32570
32656
|
beginCheckout(pendingCheckoutConfig);
|
|
32571
32657
|
}
|
|
32572
32658
|
}, [beginCheckout, isUserLoggedIn, pendingCheckoutConfig]);
|
|
32573
|
-
|
|
32659
|
+
useEffect55(() => {
|
|
32574
32660
|
if (pendingCheckoutConfig && !isUserLoggedIn && !connectModalOpen) {
|
|
32575
32661
|
setPendingCheckoutConfig(void 0);
|
|
32576
32662
|
}
|
|
@@ -32782,12 +32868,12 @@ async function getTokenDecimals(wagmiConfig, chainId, tokenAddress) {
|
|
|
32782
32868
|
if (isNativeTokenAddress(tokenAddress)) {
|
|
32783
32869
|
return FUNKIT_CONNECT_SUPPORTED_CHAINS_INFO13[chainId]?.nativeCurrency?.decimals || 18;
|
|
32784
32870
|
}
|
|
32785
|
-
if (chainId ===
|
|
32786
|
-
return
|
|
32871
|
+
if (chainId === solanaChain5.id.toString()) {
|
|
32872
|
+
return solanaChain5.nativeCurrency.decimals;
|
|
32787
32873
|
}
|
|
32788
32874
|
const decimals = await readContract(wagmiConfig, {
|
|
32789
32875
|
address: tokenAddress,
|
|
32790
|
-
abi:
|
|
32876
|
+
abi: erc20Abi3,
|
|
32791
32877
|
chainId: Number.parseInt(chainId),
|
|
32792
32878
|
functionName: "decimals"
|
|
32793
32879
|
});
|
|
@@ -32806,6 +32892,16 @@ async function getTokenDecimals(wagmiConfig, chainId, tokenAddress) {
|
|
|
32806
32892
|
}
|
|
32807
32893
|
}
|
|
32808
32894
|
}
|
|
32895
|
+
async function getLighterTickSize(wagmiConfig, chainId, assetIndex) {
|
|
32896
|
+
const assetConfig = await readContract(wagmiConfig, {
|
|
32897
|
+
address: LIGHTER_DEPOSIT_ADDRESS,
|
|
32898
|
+
abi: LIGHTER_DEPOSIT_ABI,
|
|
32899
|
+
functionName: "assetConfigs",
|
|
32900
|
+
args: [assetIndex],
|
|
32901
|
+
chainId: Number.parseInt(chainId)
|
|
32902
|
+
});
|
|
32903
|
+
return assetConfig[3];
|
|
32904
|
+
}
|
|
32809
32905
|
async function evaluateCheckoutGenerateActionsParams(config) {
|
|
32810
32906
|
if (!config.generateActionsParams) {
|
|
32811
32907
|
return [];
|
|
@@ -32893,7 +32989,7 @@ function computeDisplayDestinationToken(checkoutConfig, displayAssetAmount) {
|
|
|
32893
32989
|
|
|
32894
32990
|
// src/domains/feeEstimate.ts
|
|
32895
32991
|
import { mainnet as mainnet10 } from "viem/chains";
|
|
32896
|
-
var L1_FEES_ESTIMATE =
|
|
32992
|
+
var L1_FEES_ESTIMATE = 1;
|
|
32897
32993
|
var L2_FEES_ESTIMATE = 1;
|
|
32898
32994
|
var BROKERAGE_FEES_ESTIMATE = 0;
|
|
32899
32995
|
var getBaseFeeUsdEstimate = (targetChainId, assetChainId) => {
|
|
@@ -32918,7 +33014,7 @@ function isPreferredChain(chainId, additionalChains = []) {
|
|
|
32918
33014
|
base7.id,
|
|
32919
33015
|
arbitrum5.id,
|
|
32920
33016
|
optimism.id,
|
|
32921
|
-
|
|
33017
|
+
solanaChain6.id,
|
|
32922
33018
|
...additionalChains
|
|
32923
33019
|
]);
|
|
32924
33020
|
return chains.has(chainId);
|
|
@@ -32931,6 +33027,7 @@ function isNativeTokenAddress(address) {
|
|
|
32931
33027
|
}
|
|
32932
33028
|
var isPolygonEcosystemToken = (chainId, tokenAddress) => chainId === polygon6.id.toString() && tokenAddress === "0x0000000000000000000000000000000000001010";
|
|
32933
33029
|
var isAssetUsableToPayForCheckout = ({
|
|
33030
|
+
apiKey,
|
|
32934
33031
|
config,
|
|
32935
33032
|
payerAddress,
|
|
32936
33033
|
paymentMethod,
|
|
@@ -32995,7 +33092,16 @@ var isAssetUsableToPayForCheckout = ({
|
|
|
32995
33092
|
minUsdRequired: minValueThreshold + feeEstimate
|
|
32996
33093
|
};
|
|
32997
33094
|
}
|
|
32998
|
-
|
|
33095
|
+
let isSupported = isAllowedForCheckout && FUNKIT_CONNECT_SUPPORTED_CHAINS_INFO14[assetChainId]?.isCheckoutSupported;
|
|
33096
|
+
const isLighterEth = isLighterEthSpot(apiKey, config);
|
|
33097
|
+
if (isSupported && isLighterEth) {
|
|
33098
|
+
isSupported = isTokenEquivalent7({
|
|
33099
|
+
firstTokenChainId: assetChainId,
|
|
33100
|
+
firstTokenAddress: assetTokenAddress,
|
|
33101
|
+
secondTokenChainId: mainnet11.id.toString(),
|
|
33102
|
+
secondTokenAddress: NATIVE_TOKEN
|
|
33103
|
+
});
|
|
33104
|
+
}
|
|
32999
33105
|
return {
|
|
33000
33106
|
isUsable: !!isSupported,
|
|
33001
33107
|
reason: !isSupported ? t("payment.unsupported") : ""
|
|
@@ -33422,7 +33528,7 @@ function ConnectButton({
|
|
|
33422
33528
|
const connectionStatus = useConnectionStatus();
|
|
33423
33529
|
const { setShowBalance } = useShowBalance();
|
|
33424
33530
|
const [ready, setReady] = useState75(false);
|
|
33425
|
-
|
|
33531
|
+
useEffect56(() => {
|
|
33426
33532
|
setShowBalance(showBalance);
|
|
33427
33533
|
if (!ready) {
|
|
33428
33534
|
setReady(true);
|
|
@@ -33925,9 +34031,9 @@ function cssStringFromTheme(theme, options = {}) {
|
|
|
33925
34031
|
}
|
|
33926
34032
|
|
|
33927
34033
|
// src/hooks/useFunkitMaxCheckoutUsdInfo.ts
|
|
33928
|
-
import { FlagKey as
|
|
34034
|
+
import { FlagKey as FlagKey23, formatCurrencyAndStringify as formatCurrencyAndStringify16 } from "@funkit/utils";
|
|
33929
34035
|
var useFunkitMaxCheckoutUsdInfo = () => {
|
|
33930
|
-
const maxCheckoutUsd = Number(useFlag(
|
|
34036
|
+
const maxCheckoutUsd = Number(useFlag(FlagKey23.MaxCheckoutUsd));
|
|
33931
34037
|
const limitText = maxCheckoutUsd === Number.MAX_VALUE ? "no" : formatCurrencyAndStringify16(maxCheckoutUsd, {
|
|
33932
34038
|
decimalPrecisionForSuffix: 0,
|
|
33933
34039
|
minimumSignificantDigits: 0,
|
|
@@ -34044,6 +34150,8 @@ var en_default = {
|
|
|
34044
34150
|
checkout: {
|
|
34045
34151
|
noAvailableTokens: "No available tokens",
|
|
34046
34152
|
noAvailableTokensMessage: "You don't have any crypto tokens in your wallet. Top up or transfer crypto to your wallet to continue.",
|
|
34153
|
+
insufficientEth: "Insufficient ETH",
|
|
34154
|
+
insufficientEthMessage: "You don't have enough mainnet ETH in your wallet. You need at least 0.001 ETH to continue.",
|
|
34047
34155
|
topUpWallet: "Top up wallet",
|
|
34048
34156
|
refundProcessing: "Funds were withdrawn, but the transaction didn't complete. A refund is being processed.",
|
|
34049
34157
|
orderRefunded: "Your order was refunded.",
|
|
@@ -34117,7 +34225,6 @@ var en_default = {
|
|
|
34117
34225
|
fiveMinutes: "5 min"
|
|
34118
34226
|
},
|
|
34119
34227
|
common: {
|
|
34120
|
-
privyIframeTitle: "Privy",
|
|
34121
34228
|
haveQuestions: "Have questions?",
|
|
34122
34229
|
getHelp: "Get help",
|
|
34123
34230
|
depositsLive: "{{tokenName}} deposits are live!",
|
|
@@ -34148,16 +34255,11 @@ var en_default = {
|
|
|
34148
34255
|
tryAgain: "Try again",
|
|
34149
34256
|
getStarted: "Get started",
|
|
34150
34257
|
back: "Back",
|
|
34151
|
-
accountTypeEmail: "Email",
|
|
34152
|
-
accountTypeTwitter: "Twitter ID",
|
|
34153
|
-
accountTypeApple: "Apple ID",
|
|
34154
|
-
accountTypeFarcaster: "Farcaster ID",
|
|
34155
34258
|
close: "Close",
|
|
34156
34259
|
copyAddress: "Copy address",
|
|
34157
34260
|
copied: "Copied",
|
|
34158
34261
|
auto: "Auto",
|
|
34159
|
-
comingSoon: "Coming Soon"
|
|
34160
|
-
or: "or"
|
|
34262
|
+
comingSoon: "Coming Soon"
|
|
34161
34263
|
},
|
|
34162
34264
|
disclaimer: {
|
|
34163
34265
|
terms: "terms",
|
|
@@ -34170,13 +34272,7 @@ var en_default = {
|
|
|
34170
34272
|
},
|
|
34171
34273
|
connect: {
|
|
34172
34274
|
confirmWalletOwnership: "Click sign in to confirm you own this wallet.",
|
|
34173
|
-
connectWallet: "Connect wallet"
|
|
34174
|
-
enterConfirmationCode: "Enter confirmation code",
|
|
34175
|
-
checkEmailForCode: "Please check {{email}} for an email from {{authProvider}} and enter your code below.",
|
|
34176
|
-
enterYourEmail: "Enter your email",
|
|
34177
|
-
submit: "Submit",
|
|
34178
|
-
openWarpcast: "Open Warpcast",
|
|
34179
|
-
warpcastLink: "Warpcast Link"
|
|
34275
|
+
connectWallet: "Connect wallet"
|
|
34180
34276
|
},
|
|
34181
34277
|
selectAsset: {
|
|
34182
34278
|
yourTokens: "Your tokens",
|
|
@@ -34554,6 +34650,8 @@ var es_default = {
|
|
|
34554
34650
|
checkout: {
|
|
34555
34651
|
noAvailableTokens: "No hay tokens disponibles",
|
|
34556
34652
|
noAvailableTokensMessage: "No tienes ning\xFAn token cripto en tu billetera. Recarga o transfiere cripto a tu billetera para continuar.",
|
|
34653
|
+
insufficientEth: "ETH insuficiente",
|
|
34654
|
+
insufficientEthMessage: "No tienes suficiente ETH de mainnet en tu billetera. Necesitas al menos 0.001 ETH para continuar.",
|
|
34557
34655
|
topUpWallet: "Recargar billetera",
|
|
34558
34656
|
refundProcessing: "Los fondos fueron retirados, pero la transacci\xF3n no se complet\xF3. Se est\xE1 procesando un reembolso.",
|
|
34559
34657
|
orderRefunded: "Tu pedido fue reembolsado.",
|
|
@@ -34627,7 +34725,6 @@ var es_default = {
|
|
|
34627
34725
|
fiveMinutes: "5 min"
|
|
34628
34726
|
},
|
|
34629
34727
|
common: {
|
|
34630
|
-
privyIframeTitle: "Privy",
|
|
34631
34728
|
haveQuestions: "\xBFTienes preguntas?",
|
|
34632
34729
|
getHelp: "Obtener ayuda",
|
|
34633
34730
|
depositsLive: "\xA1Los dep\xF3sitos de {{tokenName}} est\xE1n activos!",
|
|
@@ -34658,16 +34755,11 @@ var es_default = {
|
|
|
34658
34755
|
tryAgain: "Intentar nuevamente",
|
|
34659
34756
|
getStarted: "Comenzar",
|
|
34660
34757
|
back: "Atr\xE1s",
|
|
34661
|
-
accountTypeEmail: "Email",
|
|
34662
|
-
accountTypeTwitter: "ID de Twitter",
|
|
34663
|
-
accountTypeApple: "ID de Apple",
|
|
34664
|
-
accountTypeFarcaster: "ID de Farcaster",
|
|
34665
34758
|
close: "Cerrar",
|
|
34666
34759
|
copyAddress: "Copiar direcci\xF3n",
|
|
34667
34760
|
copied: "Copiado",
|
|
34668
34761
|
auto: "Auto",
|
|
34669
|
-
comingSoon: "Pr\xF3ximamente"
|
|
34670
|
-
or: "o"
|
|
34762
|
+
comingSoon: "Pr\xF3ximamente"
|
|
34671
34763
|
},
|
|
34672
34764
|
disclaimer: {
|
|
34673
34765
|
terms: "t\xE9rminos",
|
|
@@ -34680,13 +34772,7 @@ var es_default = {
|
|
|
34680
34772
|
},
|
|
34681
34773
|
connect: {
|
|
34682
34774
|
confirmWalletOwnership: "Haz clic en iniciar sesi\xF3n para confirmar que eres due\xF1o de esta billetera.",
|
|
34683
|
-
connectWallet: "Conectar billetera"
|
|
34684
|
-
enterConfirmationCode: "Ingresa el c\xF3digo de confirmaci\xF3n",
|
|
34685
|
-
checkEmailForCode: "Por favor revisa {{email}} para un correo de {{authProvider}} e ingresa tu c\xF3digo a continuaci\xF3n.",
|
|
34686
|
-
enterYourEmail: "Ingresa tu email",
|
|
34687
|
-
submit: "Enviar",
|
|
34688
|
-
openWarpcast: "Abrir Warpcast",
|
|
34689
|
-
warpcastLink: "Enlace de Warpcast"
|
|
34775
|
+
connectWallet: "Conectar billetera"
|
|
34690
34776
|
},
|
|
34691
34777
|
selectAsset: {
|
|
34692
34778
|
yourTokens: "Tus tokens",
|
|
@@ -35059,11 +35145,513 @@ var es_default = {
|
|
|
35059
35145
|
}
|
|
35060
35146
|
};
|
|
35061
35147
|
|
|
35148
|
+
// src/locales/translations/fr.json
|
|
35149
|
+
var fr_default = {
|
|
35150
|
+
checkout: {
|
|
35151
|
+
noAvailableTokens: "Aucun actif disponible",
|
|
35152
|
+
noAvailableTokensMessage: "Vous n'avez aucun actif dans votre portefeuille. Approvisionnez ou transf\xE9rez des cryptomonnaies vers votre portefeuille pour continuer.",
|
|
35153
|
+
insufficientEth: "ETH insuffisant",
|
|
35154
|
+
insufficientEthMessage: "Vous n'avez pas assez d'ETH mainnet dans votre portefeuille. Vous avez besoin d'au moins 0,001 ETH pour continuer.",
|
|
35155
|
+
topUpWallet: "Approvisionner le portefeuille",
|
|
35156
|
+
refundProcessing: "Les fonds ont \xE9t\xE9 d\xE9bit\xE9s, mais la transaction n'a pas abouti. Un remboursement est en cours.",
|
|
35157
|
+
orderRefunded: "Votre commande a \xE9t\xE9 rembours\xE9e.",
|
|
35158
|
+
walletLabelTemplate: "{{walletLabel}} ({{formattedAddress}})",
|
|
35159
|
+
connectWalletLabelTemplate: "Connecter {{walletLabel}}"
|
|
35160
|
+
},
|
|
35161
|
+
inputAmount: {
|
|
35162
|
+
availableBalanceTooltip: "Votre solde disponible apr\xE8s frais",
|
|
35163
|
+
availableBalance: "{{amount}} disponibles\xA0\xA0\u24D8",
|
|
35164
|
+
insufficientBalanceSelectAnother: "Solde insuffisant. Veuillez s\xE9lectionner un autre actif.",
|
|
35165
|
+
depositMaxBalance: "D\xE9poser le solde maximum",
|
|
35166
|
+
updateOrder: "Mettre \xE0 jour la commande",
|
|
35167
|
+
insufficientBalance: "Solde insuffisant",
|
|
35168
|
+
maximumDeposit: "D\xE9p\xF4t maximum de {{amount}}",
|
|
35169
|
+
minimumDeposit: "D\xE9p\xF4t minimum de {{amount}}",
|
|
35170
|
+
amountBelowMinimum: "Montant inf\xE9rieur au minimum",
|
|
35171
|
+
amountAboveMaximum: "Montant sup\xE9rieur au maximum",
|
|
35172
|
+
inputAmountGreaterThan: "Saisissez un montant sup\xE9rieur \xE0 {{limit}}.",
|
|
35173
|
+
inputAmountLowerThan: "Saisissez un montant inf\xE9rieur \xE0 {{limit}}.",
|
|
35174
|
+
unableToRetrieveBalance: "Impossible d'obtenir le solde de votre compte. Essayez de reconnecter votre compte.",
|
|
35175
|
+
unableFetchPrice: "Impossible d'obtenir le prix de l'actif. Veuillez r\xE9essayer.",
|
|
35176
|
+
quickOptionsPercent: "{{percent}}%",
|
|
35177
|
+
quickOptionsMax: "Max"
|
|
35178
|
+
},
|
|
35179
|
+
postCheckout: {
|
|
35180
|
+
signatureDeclined: "Signature refus\xE9e. Veuillez confirmer \xE0 nouveau la commande pour r\xE9essayer.",
|
|
35181
|
+
unableToSwitchChains: "Impossible de changer de cha\xEEne. Assurez-vous que votre portefeuille prend en charge cette cha\xEEne.",
|
|
35182
|
+
errorFundingCheckout: "Une erreur s'est produite lors du financement du paiement.",
|
|
35183
|
+
insufficientBalance: "Solde insuffisant.",
|
|
35184
|
+
insufficientAmount: "Montant insuffisant.",
|
|
35185
|
+
errorFundingCheckoutMessage: "Une erreur s'est produite lors du financement du paiement.<br />Veuillez r\xE9essayer ou <ContactSupportLink>contacter le support</ContactSupportLink> pour obtenir de l'aide.",
|
|
35186
|
+
genericErrorMessage: "Une erreur s'est produite. Veuillez r\xE9essayer."
|
|
35187
|
+
},
|
|
35188
|
+
checkoutConfirmation: {
|
|
35189
|
+
quoteExpired: "Cotation expir\xE9e. Veuillez confirmer la nouvelle cotation.",
|
|
35190
|
+
riskErrorMessage: "D\xE9sol\xE9, le paiement {{orgName}} ne peut pas continuer pour des raisons de s\xE9curit\xE9.",
|
|
35191
|
+
signatureDeclined: "Signature refus\xE9e. Veuillez confirmer \xE0 nouveau la commande pour r\xE9essayer.",
|
|
35192
|
+
unableToSwitchChains: "Impossible de changer de cha\xEEne. Assurez-vous que votre portefeuille prend en charge cette cha\xEEne.",
|
|
35193
|
+
walletClientUndefined: "La connexion de votre portefeuille n'a pas r\xE9ussi. Veuillez r\xE9essayer.",
|
|
35194
|
+
genericErrorMessage: "Une erreur s'est produite lors du paiement. Veuillez r\xE9essayer.",
|
|
35195
|
+
confirmOrder: "Confirmer la commande",
|
|
35196
|
+
regeneratingQuote: "R\xE9g\xE9n\xE9ration de la cotation...",
|
|
35197
|
+
depositMaxBalance: "D\xE9poser le montant maximum",
|
|
35198
|
+
retry: "R\xE9essayer",
|
|
35199
|
+
preparingOrderData: "Pr\xE9paration des donn\xE9es de commande...",
|
|
35200
|
+
confirmingOrder: "Confirmation de la commande",
|
|
35201
|
+
confirmNetworkSwitch: "Confirmer le changement de r\xE9seau",
|
|
35202
|
+
waitingForSignature: "En attente de signature",
|
|
35203
|
+
waitingForConfirmation: "En attente de confirmation",
|
|
35204
|
+
signMessage: "Signer le message",
|
|
35205
|
+
confirmTokenTransfer: "Confirmer le transfert de {{tokenSymbol}}",
|
|
35206
|
+
estimateDisclaimer: "Le montant que vous recevrez est une estimation bas\xE9e sur l'heure actuelle et peut diff\xE9rer lors du traitement de la transaction."
|
|
35207
|
+
},
|
|
35208
|
+
funCheckoutBlocked: {
|
|
35209
|
+
geoblock: "D\xE9sol\xE9, le paiement {{orgName}} n'est pas disponible dans votre r\xE9gion.",
|
|
35210
|
+
security: 'D\xE9sol\xE9, le paiement {{orgName}} ne peut pas continuer pour des raisons de s\xE9curit\xE9. Si vous pensez avoir re\xE7u ce message par erreur, veuillez <ContactSupportLink text="contacter le support" />.'
|
|
35211
|
+
},
|
|
35212
|
+
payment: {
|
|
35213
|
+
depositWithPayPal: "D\xE9poser avec PayPal",
|
|
35214
|
+
depositWithCard: "D\xE9poser avec carte",
|
|
35215
|
+
fetchingBalance: "Lecture du solde...",
|
|
35216
|
+
couldntFetchBalance: "Impossible d'obtenir le solde",
|
|
35217
|
+
lowBalance: "Solde insuffisant",
|
|
35218
|
+
notApplicable: "Non applicable",
|
|
35219
|
+
unsupported: "Non pris en charge",
|
|
35220
|
+
disclaimerText: "{{limit}} \u2022 {{time}}",
|
|
35221
|
+
instant: "Instantan\xE9",
|
|
35222
|
+
noLimit: "Pas de limite",
|
|
35223
|
+
fiftyThousandDollars: "$50,000",
|
|
35224
|
+
tenThousandDollars: "$10,000",
|
|
35225
|
+
fiveMinutes: "5 min"
|
|
35226
|
+
},
|
|
35227
|
+
common: {
|
|
35228
|
+
haveQuestions: "Vous avez des questions ?",
|
|
35229
|
+
getHelp: "Obtenir de l'aide",
|
|
35230
|
+
depositsLive: "Les d\xE9p\xF4ts {{tokenName}} sont disponibles !",
|
|
35231
|
+
tryNow: "Essayer maintenant",
|
|
35232
|
+
experiencingProblemsFull: "Vous rencontrez des probl\xE8mes ? <HelpLink>Obtenir de l'aide.</HelpLink>",
|
|
35233
|
+
estimatedTime: "Temps estim\xE9",
|
|
35234
|
+
somethingWentWrong: "Une erreur s'est produite.",
|
|
35235
|
+
allChains: "Toutes les cha\xEEnes",
|
|
35236
|
+
token: "Actif",
|
|
35237
|
+
tokenNotSupportedOnChain: "{{tokenName}} n'est pas pris en charge sur cette cha\xEEne",
|
|
35238
|
+
searchTokens: "Rechercher des actifs",
|
|
35239
|
+
noResultsFound: "Aucun r\xE9sultat trouv\xE9",
|
|
35240
|
+
button: "Bouton",
|
|
35241
|
+
recent: "R\xE9cent",
|
|
35242
|
+
connected: "Connect\xE9",
|
|
35243
|
+
switching: "Changement en cours",
|
|
35244
|
+
confirmInWallet: "Confirmer dans le portefeuille",
|
|
35245
|
+
haveQuestionsGetHelp: "Vous avez des questions ? <GetHelpLink>Obtenir de l'aide</GetHelpLink>",
|
|
35246
|
+
depositsLiveTryNow: "Les d\xE9p\xF4ts {{tokenName}} sont disponibles ! <TryNowLink>Essayer maintenant</TryNowLink>",
|
|
35247
|
+
estimatedGas: "Gaz estim\xE9",
|
|
35248
|
+
processingTime: "Temps de traitement :",
|
|
35249
|
+
learnMore: "En savoir plus",
|
|
35250
|
+
continue: "Continuer",
|
|
35251
|
+
pleaseTryAgainLater: "Veuillez r\xE9essayer plus tard.",
|
|
35252
|
+
noOptionsFound: "Aucune option trouv\xE9e.",
|
|
35253
|
+
seeLess: "Voir moins",
|
|
35254
|
+
moreDetails: "Plus de d\xE9tails",
|
|
35255
|
+
tryAgain: "R\xE9essayer",
|
|
35256
|
+
getStarted: "Commencer",
|
|
35257
|
+
back: "Retour",
|
|
35258
|
+
close: "Fermer",
|
|
35259
|
+
copyAddress: "Copier l'adresse",
|
|
35260
|
+
copied: "Copi\xE9e",
|
|
35261
|
+
auto: "Auto",
|
|
35262
|
+
comingSoon: "Prochainement"
|
|
35263
|
+
},
|
|
35264
|
+
disclaimer: {
|
|
35265
|
+
terms: "conditions",
|
|
35266
|
+
cardDisclaimer: "Cette transaction se d\xE9roule en deux \xE9tapes. MoonPay alimente uniquement votre achat de {{depositToken}} ({{sourceChainName}}) que {{orgName}} {{tokenActionDescription}} ensuite.",
|
|
35267
|
+
tokenActionProcesses: "traite pour votre paiement",
|
|
35268
|
+
tokenActionConverts: "convertit en {{finalConvertedAssetName}} ({{toChainName}})",
|
|
35269
|
+
katanaEarn: "{{cardDisclaimer}}En cliquant sur {{continueText}}, vous acceptez les <TermsLink>conditions</TermsLink> de {{orgName}}, les <KatanaTermsLink>conditions</KatanaTermsLink> de Katana et les <YearnTermsLink>conditions</YearnTermsLink> applicables aux vaults tiers Yearn.",
|
|
35270
|
+
katana: "{{cardDisclaimer}}En cliquant sur {{continueText}}, vous acceptez les <TermsLink>conditions</TermsLink> de {{orgName}}, les <KatanaTermsLink>conditions</KatanaTermsLink> de Katana et Vaultbridge et les <MorphoTermsLink>conditions</MorphoTermsLink> applicables aux vaults tiers Morpho.",
|
|
35271
|
+
default: "{{cardDisclaimer}}En cliquant sur {{continueText}}, vous acceptez nos <TermsLink>conditions</TermsLink>."
|
|
35272
|
+
},
|
|
35273
|
+
connect: {
|
|
35274
|
+
confirmWalletOwnership: "Cliquez sur se connecter pour confirmer que vous \xEAtes propri\xE9taire de ce portefeuille.",
|
|
35275
|
+
connectWallet: "Connecter le portefeuille"
|
|
35276
|
+
},
|
|
35277
|
+
selectAsset: {
|
|
35278
|
+
yourTokens: "Vos actifs",
|
|
35279
|
+
lowBalanceTooltip: "Minimum requis : {{amount}}"
|
|
35280
|
+
},
|
|
35281
|
+
transferToken: {
|
|
35282
|
+
noLimit: "Pas de limite",
|
|
35283
|
+
receiveToken: "Devise re\xE7ue",
|
|
35284
|
+
supportedToken: "Devise prise en charge",
|
|
35285
|
+
supportedChain: "Cha\xEEne compatible",
|
|
35286
|
+
min: "Min",
|
|
35287
|
+
minAmount: "Min {{currency}}{{amount}}",
|
|
35288
|
+
minDepositAmountTooltip: "Montant de d\xE9p\xF4t minimum requis pour la cha\xEEne s\xE9lectionn\xE9e.",
|
|
35289
|
+
yourDepositAddress: "Votre adresse de d\xE9p\xF4t",
|
|
35290
|
+
termsApply: "Conditions applicables",
|
|
35291
|
+
depositAddressOriginalRecipient: "Envoyez n'importe quelle devise prise en charge \xE0 cette adresse",
|
|
35292
|
+
depositAddressUniversal: "Envoyez n'importe quelle devise prise en charge \xE0 cette adresse et elle sera automatiquement \xE9chang\xE9e contre {{targetToken}} dans votre compte"
|
|
35293
|
+
},
|
|
35294
|
+
transaction: {
|
|
35295
|
+
delayed: "Transaction lente",
|
|
35296
|
+
delayedDescription: "La transaction prend un peu plus de temps que pr\xE9vu.<br /><ContactSupportLink>Contactez-nous</ContactSupportLink> pour plus de d\xE9tails.",
|
|
35297
|
+
error: "Erreur de transaction",
|
|
35298
|
+
failedDescription: "Veuillez r\xE9essayer ou <ContactSupportLink>contacter le support</ContactSupportLink> si le probl\xE8me persiste.",
|
|
35299
|
+
pending: "Transaction en attente...",
|
|
35300
|
+
withdrawalSuccessful: "Retrait r\xE9ussi",
|
|
35301
|
+
withdrawalSuccessfulDescription: "Vos fonds ont \xE9t\xE9 retir\xE9s avec succ\xE8s.",
|
|
35302
|
+
depositSuccessful: "D\xE9p\xF4t r\xE9ussi",
|
|
35303
|
+
depositSuccessfulDescription: "Vos fonds ont \xE9t\xE9 d\xE9pos\xE9s avec succ\xE8s.",
|
|
35304
|
+
depositReceivedPending: "D\xE9p\xF4t re\xE7u et en attente...",
|
|
35305
|
+
depositCompleted: "D\xE9p\xF4t termin\xE9",
|
|
35306
|
+
didntComplete: "Non termin\xE9",
|
|
35307
|
+
depositReceivedProcessing: "D\xE9p\xF4t re\xE7u et en cours de traitement...",
|
|
35308
|
+
depositWillBeCredited: "Votre d\xE9p\xF4t sera cr\xE9dit\xE9 sur votre compte sous peu.",
|
|
35309
|
+
depositHasBeenCredited: "Votre d\xE9p\xF4t a \xE9t\xE9 cr\xE9dit\xE9 sur votre compte.",
|
|
35310
|
+
depositRefundedOrReprocessed: "Votre d\xE9p\xF4t a \xE9t\xE9 rembours\xE9 ou trait\xE9 \xE0 nouveau. N'h\xE9sitez pas \xE0 nous contacter pour une mise \xE0 jour.",
|
|
35311
|
+
issueOccurredWithDeposit: "Un probl\xE8me est survenu lors de votre d\xE9p\xF4t. Veuillez r\xE9essayer.",
|
|
35312
|
+
depositDidntCompleteFull: `Votre d\xE9p\xF4t n'a pas abouti. <ContactSupportLink text="Contactez-nous" /> pour plus d'informations.`,
|
|
35313
|
+
depositDelayedFundsSafeFull: `Votre d\xE9p\xF4t est retard\xE9 mais les fonds sont en s\xE9curit\xE9. <ContactSupportLink text="Contactez-nous" /> pour plus d'informations.`,
|
|
35314
|
+
depositExpired: "D\xE9p\xF4t expir\xE9",
|
|
35315
|
+
depositDidntCompleteError: "Votre d\xE9p\xF4t n'a pas abouti en raison d'une erreur.",
|
|
35316
|
+
depositDidntCompleteFundsSafe: "Votre d\xE9p\xF4t n'a pas abouti. Vos fonds sont en s\xE9curit\xE9 et votre commande sera trait\xE9e sous peu. N'h\xE9sitez pas \xE0 nous contacter pour une mise \xE0 jour.",
|
|
35317
|
+
depositBeingProcessedFull: `Votre d\xE9p\xF4t est en cours de traitement. <ContactSupportLink text="Contactez-nous" /> pour plus d'informations.`,
|
|
35318
|
+
transactionDelayedFundsSafeFull: `La transaction a \xE9t\xE9 retard\xE9e mais vos fonds sont en s\xE9curit\xE9. <ContactSupportLink text="Contactez-nous" /> pour plus d'informations.`,
|
|
35319
|
+
submittingTransaction: "Soumission de la transaction...",
|
|
35320
|
+
fillingTransactionOnBlockchain: "Ex\xE9cution de votre transaction sur la blockchain.",
|
|
35321
|
+
withdrawingFromAccount: "Retrait de votre compte...",
|
|
35322
|
+
fundsWillArriveInDuration: "Vos fonds arriveront dans quelques {{durationUnits}}.",
|
|
35323
|
+
depositingIntoAccount: "D\xE9p\xF4t sur votre compte...",
|
|
35324
|
+
willTakeDurationToFinalize: "Il faudra quelques {{durationUnits}} pour {{finalizeVerb}}.",
|
|
35325
|
+
waitingForExchangeToSendFunds: "En attente de l'envoi des fonds par {{exchangeName}}...",
|
|
35326
|
+
fundsAreSafeCanClose: "Vos fonds sont en s\xE9curit\xE9. Vous pouvez fermer cette fen\xEAtre.",
|
|
35327
|
+
contactUs: "Nous contacter",
|
|
35328
|
+
minutes: "minutes",
|
|
35329
|
+
seconds: "secondes",
|
|
35330
|
+
finalize: "finaliser",
|
|
35331
|
+
credit: "cr\xE9diter"
|
|
35332
|
+
},
|
|
35333
|
+
katanaBridge: {
|
|
35334
|
+
highCostsMessage: "Co\xFBts \xE9lev\xE9s ? Essayez <KatanaBridgeLink></KatanaBridgeLink>, plus lent mais moins cher pour le m\xEAme actif.",
|
|
35335
|
+
katanaNativeBridge: "Pont natif de Katana"
|
|
35336
|
+
},
|
|
35337
|
+
badge: {
|
|
35338
|
+
unsuccessful: "\xC9chou\xE9",
|
|
35339
|
+
approved: "Approuv\xE9",
|
|
35340
|
+
incomplete: "Incomplet",
|
|
35341
|
+
pending: "En attente",
|
|
35342
|
+
disabled: "D\xE9sactiv\xE9",
|
|
35343
|
+
failed: "\xC9chou\xE9",
|
|
35344
|
+
unknown: "Inconnu",
|
|
35345
|
+
native: "Natif",
|
|
35346
|
+
sameAsset: "M\xEAme actif",
|
|
35347
|
+
new: "NOUVEAU",
|
|
35348
|
+
icon: "ic\xF4ne de badge"
|
|
35349
|
+
},
|
|
35350
|
+
checkoutHistory: {
|
|
35351
|
+
processing: "En cours",
|
|
35352
|
+
incomplete: "Incomplet",
|
|
35353
|
+
expired: "Expir\xE9",
|
|
35354
|
+
successful: "R\xE9ussi",
|
|
35355
|
+
refunded: "Rembours\xE9",
|
|
35356
|
+
pending: "En attente",
|
|
35357
|
+
fillStatus: "Statut d'ex\xE9cution",
|
|
35358
|
+
totalTime: "Temps total",
|
|
35359
|
+
youReceive: "Vous recevez",
|
|
35360
|
+
moreDetails: "Plus de d\xE9tails",
|
|
35361
|
+
depositAddress: "Adresse de d\xE9p\xF4t",
|
|
35362
|
+
orderSubmitted: "Commande soumise",
|
|
35363
|
+
orderReceived: "Commande re\xE7ue",
|
|
35364
|
+
orderFilled: "Commande ex\xE9cut\xE9e",
|
|
35365
|
+
orderFailed: "Commande \xE9chou\xE9e",
|
|
35366
|
+
orderExpired: "Commande expir\xE9e",
|
|
35367
|
+
newDeposit: "Nouveau d\xE9p\xF4t",
|
|
35368
|
+
newWithdrawal: "Nouveau retrait",
|
|
35369
|
+
orderDelayedTechnicalIssues: "Votre commande a \xE9t\xE9 retard\xE9e en raison de probl\xE8mes techniques. {{orgName}} vous tiendra inform\xE9.",
|
|
35370
|
+
completed: "Termin\xE9",
|
|
35371
|
+
failed: "\xC9chou\xE9"
|
|
35372
|
+
},
|
|
35373
|
+
profile: {
|
|
35374
|
+
executeFirstCheckout: "Effectuez votre premier paiement sur {{appName}}",
|
|
35375
|
+
tokensTab: "Actifs",
|
|
35376
|
+
checkoutsTab: "Paiements",
|
|
35377
|
+
getHelp: "Obtenir de l'aide",
|
|
35378
|
+
address: "Adresse",
|
|
35379
|
+
disconnect: "D\xE9connecter"
|
|
35380
|
+
},
|
|
35381
|
+
withdrawal: {
|
|
35382
|
+
signatureDenied: "Signature refus\xE9e. Veuillez retirer pour r\xE9essayer",
|
|
35383
|
+
quoteError: "\xC9chec de la g\xE9n\xE9ration de la cotation. Veuillez r\xE9essayer.",
|
|
35384
|
+
amountTooLow: "Montant trop faible. Minimum de $1 requis.",
|
|
35385
|
+
chainDisabled: "R\xE9seau indisponible. Changez de r\xE9seau ou r\xE9essayez plus tard.",
|
|
35386
|
+
forbidden: "Acc\xE8s restreint. Compl\xE9tez la v\xE9rification pour continuer.",
|
|
35387
|
+
insufficientFunds: "Fonds insuffisants. R\xE9duisez le montant et r\xE9essayez.",
|
|
35388
|
+
insufficientLiquidity: "Liquidit\xE9 de l'actif faible. R\xE9duisez le montant ou essayez avec un autre actif.",
|
|
35389
|
+
invalidAddress: "Adresse de portefeuille invalide. V\xE9rifiez l'adresse et r\xE9essayez.",
|
|
35390
|
+
invalidInputCurrency: "Actif d'entr\xE9e non pris en charge. V\xE9rifiez l'adresse et r\xE9essayez.",
|
|
35391
|
+
invalidOutputCurrency: "Actif de sortie non pris en charge. V\xE9rifiez l'adresse et r\xE9essayez.",
|
|
35392
|
+
invalidSlippageTolerance: "Valeur de slippage invalide. Doit \xEAtre un nombre entier.",
|
|
35393
|
+
noInternalSwapRoutesFound: "Route indisponible. Essayez avec une autre paire d'actifs.",
|
|
35394
|
+
noQuotes: "Cotation indisponible. R\xE9essayez avec un montant ou actif diff\xE9rent.",
|
|
35395
|
+
noSwapRoutesFound: "Route indisponible. R\xE9essayez avec un montant ou actif diff\xE9rent.",
|
|
35396
|
+
routeTemporarilyRestricted: "Route temporairement indisponible. R\xE9essayez plus tard.",
|
|
35397
|
+
sanctionedCurrency: "Devise restreinte. S\xE9lectionnez un autre actif.",
|
|
35398
|
+
sanctionedWalletAddress: "Adresse bloqu\xE9e. Contactez le support pour examen.",
|
|
35399
|
+
swapImpactTooHigh: "Impact de l'\xE9change \xE9lev\xE9. Choisissez un autre actif ou r\xE9duisez le montant.",
|
|
35400
|
+
unauthorized: "Connectez le portefeuille pour continuer.",
|
|
35401
|
+
unsupportedChain: "Cha\xEEne non prise en charge. Changez de cha\xEEne et r\xE9essayez.",
|
|
35402
|
+
unsupportedCurrency: "Devise non prise en charge. Changez de devise et r\xE9essayez.",
|
|
35403
|
+
unsupportedExecutionType: "M\xE9thode de transaction non prise en charge. S\xE9lectionnez une autre m\xE9thode.",
|
|
35404
|
+
unsupportedRoute: "Paire d'actifs non prises en charge. Essayez des actifs diff\xE9rents.",
|
|
35405
|
+
userRecipientMismatch: "L'exp\xE9diteur et le destinataire doivent correspondre. V\xE9rifiez les adresses.",
|
|
35406
|
+
destinationTxFailed: "Transaction \xE9chou\xE9e. R\xE9essayez ou contactez le support.",
|
|
35407
|
+
erc20RouterAddressNotFound: "Une erreur s'est produite. Essayez une devise diff\xE9rente ou contactez le support.",
|
|
35408
|
+
unknownError: "Une erreur s'est produite. R\xE9essayez ou contactez le support.",
|
|
35409
|
+
swapQuoteFailed: "\xC9chec de la cotation. R\xE9essayez ou contactez le support.",
|
|
35410
|
+
permitFailed: "\xC9chec de la signature. Essayez de signer \xE0 nouveau ou reconnectez le portefeuille.",
|
|
35411
|
+
confirmingQuote: "Confirmation de la commande",
|
|
35412
|
+
processing: "Traitement en cours",
|
|
35413
|
+
enterRecipientAddress: "Entrez l'adresse du destinataire",
|
|
35414
|
+
unsupportedRecipientAddress: "Adresse du destinataire non prise en charge",
|
|
35415
|
+
enterWithdrawAmount: "Entrez le montant du retrait",
|
|
35416
|
+
enterValidAddress: "Entrez une adresse {{chainName}} valide",
|
|
35417
|
+
withdraw: "Retirer",
|
|
35418
|
+
ensureAddressSupportsToken: "Assurez-vous que l'adresse prend en charge la r\xE9ception de {{token}} sur {{chainName}}.",
|
|
35419
|
+
ensureAddressSupportsTokenNoChain: "Assurez-vous que l'adresse prend en charge la r\xE9ception de {{token}}.",
|
|
35420
|
+
failedToFetchAssetPrice: "Impossible d'obtenir le prix de l'actif",
|
|
35421
|
+
receiveToken: "Devise re\xE7ue",
|
|
35422
|
+
receiveChain: "Cha\xEEne de r\xE9ception",
|
|
35423
|
+
youWillReceive: "Vous recevrez",
|
|
35424
|
+
usdceWarning: "<strong>USDCe n'est pas pris en charge par la plupart des exchanges.</strong><br />L'envoi d'USDCe vers une plateforme ne le prenant pas en charge peut entra\xEEner une perte permanente de fonds. V\xE9rifiez toujours la compatibilit\xE9 des cryptomonnaies avant de transf\xE9rer.",
|
|
35425
|
+
recipientAddress: "Adresse du destinataire",
|
|
35426
|
+
invalidWalletAddress: "Adresse de portefeuille invalide",
|
|
35427
|
+
useConnected: "Utiliser connect\xE9",
|
|
35428
|
+
walletAddressRestricted: "Cette adresse de portefeuille ne peut pas \xEAtre utilis\xE9e en raison de restrictions.",
|
|
35429
|
+
amount: "Montant",
|
|
35430
|
+
insufficientBalance: "Solde insuffisant",
|
|
35431
|
+
minimumWithdrawAmount: "Le montant minimum de retrait est de {{amount}}",
|
|
35432
|
+
max: "Max",
|
|
35433
|
+
balance: "Solde : {{amount}} {{symbol}}"
|
|
35434
|
+
},
|
|
35435
|
+
directExecution: {
|
|
35436
|
+
fillStatus: "Statut d'ex\xE9cution",
|
|
35437
|
+
totalTime: "Temps total",
|
|
35438
|
+
moreDetails: "Plus de d\xE9tails",
|
|
35439
|
+
withdrawalTx: "Transaction de retrait",
|
|
35440
|
+
depositTx: "Transaction de d\xE9p\xF4t",
|
|
35441
|
+
completionTx: "Transaction de finalisation",
|
|
35442
|
+
orderSubmitted: "Commande soumise",
|
|
35443
|
+
orderStatus: "Commande {{status}}",
|
|
35444
|
+
statusFailed: "\xE9chou\xE9e",
|
|
35445
|
+
statusRefunded: "rembours\xE9e",
|
|
35446
|
+
statusFilled: "ex\xE9cut\xE9e"
|
|
35447
|
+
},
|
|
35448
|
+
directExecutionNotif: {
|
|
35449
|
+
depositTransactionInitiated: "Transaction de d\xE9p\xF4t initi\xE9e",
|
|
35450
|
+
depositCompletedNotification: "Vous recevrez une notification ici une fois le d\xE9p\xF4t termin\xE9.",
|
|
35451
|
+
withdrawalTransactionInitiated: "Transaction de retrait initi\xE9e",
|
|
35452
|
+
withdrawalCompletedNotification: "Vous recevrez une notification ici une fois le retrait termin\xE9."
|
|
35453
|
+
},
|
|
35454
|
+
fees: {
|
|
35455
|
+
cardProcessingFee: "Frais de traitement de carte",
|
|
35456
|
+
cardProcessingFeeTooltip: "Frais factur\xE9s par le fournisseur de carte pour le traitement de votre transaction.",
|
|
35457
|
+
moonpayCost: "Co\xFBt MoonPay",
|
|
35458
|
+
moonpayCostTooltip: "Frais factur\xE9s par MoonPay pour le traitement de votre transaction.",
|
|
35459
|
+
exchangeProcessingFee: "Frais de traitement d'exchange",
|
|
35460
|
+
exchangeProcessingFeeTooltip: "Frais factur\xE9s par l'exchange pour le traitement de votre transaction.",
|
|
35461
|
+
receiveAtLeast: "Vous recevrez au moins",
|
|
35462
|
+
exchangeRate: "Taux de change",
|
|
35463
|
+
networkCost: "Frais de r\xE9seau",
|
|
35464
|
+
totalCost: "Co\xFBt total",
|
|
35465
|
+
sourceChainGas: "Gaz de la cha\xEEne source",
|
|
35466
|
+
destinationChainGas: "Gaz de la cha\xEEne de destination",
|
|
35467
|
+
priceImpact: "Impact sur le prix",
|
|
35468
|
+
totalImpact: "Impact total",
|
|
35469
|
+
swapImpact: "Impact de l'\xE9change",
|
|
35470
|
+
funxyzFee: "Frais Fun.xyz",
|
|
35471
|
+
swapFee: "Frais d'\xE9change",
|
|
35472
|
+
instantLiquidityCost: "Co\xFBt de liquidit\xE9 instantan\xE9e",
|
|
35473
|
+
maxSlippage: "Slippage maximum",
|
|
35474
|
+
autoSlippageValue: "Auto \u2022 {{value}}",
|
|
35475
|
+
slippageTooltip: "Le slippage se produit en raison des changements de prix pendant l'ex\xE9cution de la transaction.",
|
|
35476
|
+
slippageTooltipWithMin: "Le slippage se produit en raison des changements de prix pendant l'ex\xE9cution de la transaction. Minimum re\xE7u : {{minReceived}}",
|
|
35477
|
+
marketMakerGasCosts: "Co\xFBts de gaz du teneur de march\xE9",
|
|
35478
|
+
marketMakerGasCostsTooltip: "Co\xFBt du traitement de la commande sur la blockchain, incluant le gaz et le routage requis.",
|
|
35479
|
+
lpCost: "Co\xFBt LP",
|
|
35480
|
+
lpCostTooltip: "Factur\xE9 pour couvrir les co\xFBts de fourniture de liquidit\xE9 sur la blockchain.",
|
|
35481
|
+
yourGasCosts: "Vos frais de gaz",
|
|
35482
|
+
yourGasCostsTooltip: "Montant pay\xE9 pour envoyer des actifs \xE0 votre adresse de d\xE9p\xF4t.",
|
|
35483
|
+
transactionBreakdown: "D\xE9tail de la transaction",
|
|
35484
|
+
priceImpactTooltip: "L'impact sur le prix est la diff\xE9rence entre le prix attendu et le prix d'ex\xE9cution, due \xE0 la taille de la transaction et \xE0 la liquidit\xE9.<br /><br />Le co\xFBt final peut varier en fonction des conditions du r\xE9seau. Les co\xFBts sont r\xE9duits pour les montants plus \xE9lev\xE9s. <LearnMoreLink>En savoir plus</LearnMoreLink> sur la r\xE9partition des prix.",
|
|
35485
|
+
slippageTooltipFull: "Le slippage tient compte des changements de prix pendant l'ex\xE9cution. Le slippage est ajust\xE9 par paire pour garantir une ex\xE9cution fiable.<br /><br />Le co\xFBt final peut varier en fonction des conditions du r\xE9seau. Les co\xFBts sont r\xE9duits pour les montants plus \xE9lev\xE9s. <LearnMoreLink>En savoir plus</LearnMoreLink> sur la r\xE9partition des prix."
|
|
35486
|
+
},
|
|
35487
|
+
paymentRoute: {
|
|
35488
|
+
wallet: "Portefeuille",
|
|
35489
|
+
source: "Source",
|
|
35490
|
+
destination: "Destination"
|
|
35491
|
+
},
|
|
35492
|
+
virtualFiatAccount: {
|
|
35493
|
+
walletAddressNotAvailable: "L'adresse du portefeuille n'est pas disponible",
|
|
35494
|
+
incorrectEmailFormat: "Format d'email incorrect",
|
|
35495
|
+
emailAlreadyInUse: "L'adresse email est d\xE9j\xE0 utilis\xE9e",
|
|
35496
|
+
firstName: "Pr\xE9nom",
|
|
35497
|
+
firstNamePlaceholder: "Jean",
|
|
35498
|
+
lastName: "Nom",
|
|
35499
|
+
lastNamePlaceholder: "Dupont",
|
|
35500
|
+
email: "Email",
|
|
35501
|
+
emailPlaceholder: "nom@email.com",
|
|
35502
|
+
consentText: 'Cette application utilise Bridge pour connecter des comptes de mani\xE8re s\xE9curis\xE9e et d\xE9placer des fonds. En cliquant sur "Accepter", vous acceptez les <TosLink></TosLink> et la <PrivacyLink></PrivacyLink> de Bridge',
|
|
35503
|
+
continue: "Continuer",
|
|
35504
|
+
accountNumber: "Num\xE9ro de compte",
|
|
35505
|
+
routingNumber: "Num\xE9ro de routage",
|
|
35506
|
+
iban: "IBAN",
|
|
35507
|
+
swiftBic: "SWIFT / BIC",
|
|
35508
|
+
accountHolderName: "Nom du titulaire du compte",
|
|
35509
|
+
beneficiaryName: "Nom du b\xE9n\xE9ficiaire",
|
|
35510
|
+
bankName: "Nom de la banque",
|
|
35511
|
+
bankAddress: "Adresse de la banque",
|
|
35512
|
+
currency: "Devise",
|
|
35513
|
+
loadingVerificationStatus: "Chargement du statut de v\xE9rification...",
|
|
35514
|
+
verificationUnsuccessfulTitle: "V\xE9rification \xE9chou\xE9e",
|
|
35515
|
+
verificationUnsuccessfulDescription: "Votre v\xE9rification KYC a \xE9chou\xE9. Veuillez v\xE9rifier les informations soumises et r\xE9essayer. Si le probl\xE8me persiste, <ContactSupportLink>contactez le support</ContactSupportLink> pour obtenir de l'aide.",
|
|
35516
|
+
verificationSuccessfulTitle: "V\xE9rification r\xE9ussie",
|
|
35517
|
+
verificationSuccessfulDescription: "Votre v\xE9rification KYC a \xE9t\xE9 compl\xE9t\xE9e avec succ\xE8s ! Vous \xEAtes maintenant v\xE9rifi\xE9 et pouvez continuer \xE0 utiliser nos services.",
|
|
35518
|
+
verifyYourIdentityTitle: "V\xE9rifiez votre identit\xE9",
|
|
35519
|
+
verifyYourIdentityDescription: "Avant d'utiliser les services fiat, vous devez compl\xE9ter la v\xE9rification d'identit\xE9 pour confirmer votre identit\xE9. Nous sommes l\xE9galement tenus de collecter ces informations.",
|
|
35520
|
+
accountPausedTitle: "Compte suspendu",
|
|
35521
|
+
accountPausedDescription: "Votre compte est temporairement suspendu en raison d'une activit\xE9 sur la plateforme. Si vous avez des questions ou besoin d'une assistance suppl\xE9mentaire, veuillez <ContactSupportLink>contacter notre support</ContactSupportLink> pour plus d'informations.",
|
|
35522
|
+
verificationPendingTitle: "V\xE9rification en attente",
|
|
35523
|
+
verificationPendingDescription: "Votre v\xE9rification KYC est actuellement en cours. Ce processus prend g\xE9n\xE9ralement quelques minutes, mais dans certains cas, cela peut prendre plus de temps. Merci de votre patience.",
|
|
35524
|
+
accountDisabledTitle: "Compte d\xE9sactiv\xE9",
|
|
35525
|
+
accountDisabledDescription: "Votre compte a \xE9t\xE9 d\xE9sactiv\xE9 en raison d'exigences de conformit\xE9 l\xE9gale. Si vous avez des questions ou besoin d'une assistance suppl\xE9mentaire, veuillez <ContactSupportLink>contacter notre support</ContactSupportLink> pour plus d'informations.",
|
|
35526
|
+
verificationFailedTitle: "V\xE9rification \xE9chou\xE9e",
|
|
35527
|
+
verificationFailedDescription: "Votre v\xE9rification KYC a \xE9chou\xE9. Pour plus d'informations, veuillez <ContactSupportLink>contacter le support</ContactSupportLink> pour obtenir de l'aide.",
|
|
35528
|
+
proofOfAddress: "Justificatif de domicile",
|
|
35529
|
+
governmentId: "Pi\xE8ce d'identit\xE9 gouvernementale",
|
|
35530
|
+
creatingVirtualAccount: "Cr\xE9ation du compte virtuel...",
|
|
35531
|
+
kycVerification: "V\xE9rification KYC",
|
|
35532
|
+
createVirtualAccount: "Cr\xE9ez votre compte fiat virtuel EUR",
|
|
35533
|
+
transferDetails: "Les d\xE9tails de transfert pour les paiements SEPA vous seront fournis. Une fois trait\xE9s, les fonds que vous enverrez au compte seront automatiquement d\xE9pos\xE9s sur votre compte {{appName}}.",
|
|
35534
|
+
takeLessThan3Mins: "Devrait prendre moins de 3 minutes"
|
|
35535
|
+
},
|
|
35536
|
+
brokerage: {
|
|
35537
|
+
verificationRequired: "V\xE9rification requise",
|
|
35538
|
+
enter2FACode: "Entrez votre code 2FA {{brokerName}}",
|
|
35539
|
+
enter2FADescription: "Entrez votre code d'authentification \xE0 deux facteurs. Ce code peut se trouver dans votre application d'authentification, email, PIN de trading ou SMS.",
|
|
35540
|
+
twoFASetupRequired: "Configuration 2FA requise",
|
|
35541
|
+
twoFASetupDescription: "Veuillez activer SMS ou l'application d'authentification comme m\xE9thode 2FA sur votre compte {{brokerName}} et r\xE9essayer.",
|
|
35542
|
+
kycRequired: "KYC requis",
|
|
35543
|
+
kycRequiredDescription: "{{brokerName}} exige que vous compl\xE9tiez la v\xE9rification KYC avant de pouvoir retirer. Veuillez v\xE9rifier votre identit\xE9 et r\xE9essayer.",
|
|
35544
|
+
somethingWentWrong: "Une erreur s'est produite. Veuillez r\xE9essayer.",
|
|
35545
|
+
invalid2FACode: "Code 2FA invalide. Veuillez r\xE9essayer.",
|
|
35546
|
+
withdrawalError: "Une erreur s'est produite lors du retrait. Veuillez r\xE9essayer.",
|
|
35547
|
+
meshExecutionError: "Une erreur s'est produite lors de l'ex\xE9cution Mesh.",
|
|
35548
|
+
meshExecutionErrorFull: "Une erreur s'est produite lors de l'ex\xE9cution Mesh.<br />Veuillez r\xE9essayer ou <ContactSupportLink></ContactSupportLink> pour obtenir de l'aide.",
|
|
35549
|
+
executingBrokerageTransfer: "Ex\xE9cution du transfert de courtage",
|
|
35550
|
+
goBack: "Retour",
|
|
35551
|
+
continue: "Continuer",
|
|
35552
|
+
credentialsNeverStored: "Vos identifiants de connexion ne sont jamais stock\xE9s",
|
|
35553
|
+
dataEncrypted: "Toutes les donn\xE9es sont chiffr\xE9es entre {{appName}} et {{exchangeName}}.",
|
|
35554
|
+
twoFaAlwaysRequired: "2FA toujours requis",
|
|
35555
|
+
transfersRequireApproval: "Les transferts ne peuvent pas \xEAtre effectu\xE9s sans votre approbation.",
|
|
35556
|
+
meshConnectionError: "Un probl\xE8me est survenu lors de la connexion \xE0 Mesh. Veuillez r\xE9essayer.",
|
|
35557
|
+
thirdPartyConnectionMessage: "{{appName}} utilisera un tiers pour connecter votre compte {{exchangeName}}."
|
|
35558
|
+
},
|
|
35559
|
+
sourceChange: {
|
|
35560
|
+
selectPaymentMethod: "S\xE9lectionnez le mode de paiement",
|
|
35561
|
+
moreOptions: "Plus d'options",
|
|
35562
|
+
more: "plus",
|
|
35563
|
+
walletDisplayLabel: "{{walletLabel}}",
|
|
35564
|
+
brokerageDisplayLabel: "{{brokerageLabel}}",
|
|
35565
|
+
virtualFiatDisplayLabel: "{{virtualFiatLabel}}"
|
|
35566
|
+
},
|
|
35567
|
+
quote: {
|
|
35568
|
+
preparingYourQuote: "Pr\xE9paration de votre cotation...",
|
|
35569
|
+
verifyingWithProvider: "V\xE9rification avec le fournisseur {{provider}}...",
|
|
35570
|
+
estimatingGas: "Estimation du gaz...",
|
|
35571
|
+
finalizingYourQuote: "Finalisation de votre cotation...",
|
|
35572
|
+
defaultError: "Une erreur s'est produite lors de la g\xE9n\xE9ration de la cotation. Veuillez r\xE9essayer.",
|
|
35573
|
+
noRoutesFound: "Aucune route trouv\xE9e.",
|
|
35574
|
+
checkoutAmountTooLow: "Le montant du paiement est trop bas. Veuillez r\xE9essayer.",
|
|
35575
|
+
insufficientBalance: "Solde insuffisant pour effectuer le paiement avec les frais. Veuillez r\xE9essayer."
|
|
35576
|
+
},
|
|
35577
|
+
relay: {
|
|
35578
|
+
confirmTransaction: "Confirmez la transaction dans votre portefeuille",
|
|
35579
|
+
waitingForConfirmation: "En attente de confirmation de la transaction",
|
|
35580
|
+
transactionConfirmed: "Transaction confirm\xE9e"
|
|
35581
|
+
},
|
|
35582
|
+
textCustomizations: {
|
|
35583
|
+
virtualFiat: "D\xE9poser avec SEPA",
|
|
35584
|
+
brokerageOrExchange: "Connecter un exchange",
|
|
35585
|
+
debitOrCredit: "D\xE9poser avec carte",
|
|
35586
|
+
accountBalance: "Portefeuille",
|
|
35587
|
+
selectAccount: "S\xE9lectionner un exchange",
|
|
35588
|
+
sourceMethodTitle: "Votre source",
|
|
35589
|
+
tokensListTitle: "Vos actifs",
|
|
35590
|
+
transferTokens: "Transf\xE9rer des cryptos",
|
|
35591
|
+
receiveDropdownTitle: "",
|
|
35592
|
+
receiveDropdownLabel: "Actif \xE0 recevoir",
|
|
35593
|
+
payAmountLabel: "Vous envoyez",
|
|
35594
|
+
receiveAmountLabel: "Vous recevez"
|
|
35595
|
+
},
|
|
35596
|
+
time: {
|
|
35597
|
+
oneSecond: "1 seconde",
|
|
35598
|
+
lessThanOneMin: "< 1 min",
|
|
35599
|
+
seconds: "{{count}} secondes",
|
|
35600
|
+
minutes: "{{count}} min",
|
|
35601
|
+
hours: "{{count}} h",
|
|
35602
|
+
secondsShort: "{{count}} s"
|
|
35603
|
+
},
|
|
35604
|
+
meld: {
|
|
35605
|
+
provider: "Fournisseur",
|
|
35606
|
+
autoPickedForYou: "S\xE9lectionn\xE9 automatiquement pour vous",
|
|
35607
|
+
buyMore: "Acheter plus",
|
|
35608
|
+
noDocumentUpload: "Pas de documents requis",
|
|
35609
|
+
bestPrice: "Le meilleur prix",
|
|
35610
|
+
fastest: "Le plus rapide",
|
|
35611
|
+
bestPriceFastest: "Le meilleur prix, Le plus rapide",
|
|
35612
|
+
noQuotesFoundForProvider: "Aucune cotation trouv\xE9e pour le fournisseur et le montant s\xE9lectionn\xE9s.",
|
|
35613
|
+
errorNotified: "Il semble qu'une erreur est survenue. Notre \xE9quipe a \xE9t\xE9 notifi\xE9e du probl\xE8me",
|
|
35614
|
+
noQuotesFound: "Aucune cotation trouv\xE9e"
|
|
35615
|
+
},
|
|
35616
|
+
chainModal: {
|
|
35617
|
+
switchNetworks: "Changer de r\xE9seaux",
|
|
35618
|
+
wrongNetworkDetected: "Mauvais r\xE9seau d\xE9tect\xE9, changez ou d\xE9connectez-vous pour continuer.",
|
|
35619
|
+
disconnect: "Se d\xE9connecter",
|
|
35620
|
+
chainSelector: "S\xE9lecteur de cha\xEEne",
|
|
35621
|
+
wrongNetwork: "Mauvais r\xE9seau"
|
|
35622
|
+
},
|
|
35623
|
+
meldCurrencySelect: {
|
|
35624
|
+
searchCurrency: "Rechercher une devise",
|
|
35625
|
+
noResultsFound: "Aucun r\xE9sultat trouv\xE9"
|
|
35626
|
+
},
|
|
35627
|
+
meldRedirect: {
|
|
35628
|
+
completeTransactionWith: "Compl\xE9tez la transaction avec {{providerLabel}}",
|
|
35629
|
+
canCloseModal: "Vous pouvez fermer cette fen\xEAtre.",
|
|
35630
|
+
youBuy: "Vous achetez",
|
|
35631
|
+
intentAddressWarning: "L'adresse de destination affich\xE9e dans l'on-ramp est une adresse d'intention - pas votre adresse de compte personnel."
|
|
35632
|
+
},
|
|
35633
|
+
dev: {
|
|
35634
|
+
devEmbed: "Dev Embed"
|
|
35635
|
+
},
|
|
35636
|
+
support: {
|
|
35637
|
+
requestSent: "Demande envoy\xE9e",
|
|
35638
|
+
requestSentDescription: "Notre \xE9quipe a re\xE7u votre demande et vous contactera bient\xF4t. Nous appr\xE9cions votre patience.",
|
|
35639
|
+
tellUsMore: "Dites-nous en plus",
|
|
35640
|
+
tellUsMoreDescription: "Si vous rencontrez un probl\xE8me ou avez une question, veuillez remplir le formulaire ci-dessous et notre \xE9quipe de support vous r\xE9pondra d\xE8s que possible.",
|
|
35641
|
+
email: "Email*",
|
|
35642
|
+
subject: "Sujet*",
|
|
35643
|
+
description: "Description*",
|
|
35644
|
+
resolutionPreference: "Pr\xE9f\xE9rence de r\xE9solution*"
|
|
35645
|
+
}
|
|
35646
|
+
};
|
|
35647
|
+
|
|
35062
35648
|
// src/locales/translations/ja.json
|
|
35063
35649
|
var ja_default = {
|
|
35064
35650
|
checkout: {
|
|
35065
35651
|
noAvailableTokens: "\u5229\u7528\u53EF\u80FD\u306A\u30C8\u30FC\u30AF\u30F3\u304C\u3042\u308A\u307E\u305B\u3093",
|
|
35066
35652
|
noAvailableTokensMessage: "\u30A6\u30A9\u30EC\u30C3\u30C8\u306B\u6697\u53F7\u8CC7\u7523\u30C8\u30FC\u30AF\u30F3\u304C\u3042\u308A\u307E\u305B\u3093\u3002\u7D9A\u884C\u3059\u308B\u306B\u306F\u3001\u30A6\u30A9\u30EC\u30C3\u30C8\u306B\u6697\u53F7\u8CC7\u7523\u3092\u30C1\u30E3\u30FC\u30B8\u307E\u305F\u306F\u9001\u91D1\u3057\u3066\u304F\u3060\u3055\u3044\u3002",
|
|
35653
|
+
insufficientEth: "ETH\u6B8B\u9AD8\u4E0D\u8DB3",
|
|
35654
|
+
insufficientEthMessage: "\u30A6\u30A9\u30EC\u30C3\u30C8\u306B\u30E1\u30A4\u30F3\u30CD\u30C3\u30C8ETH\u304C\u4E0D\u8DB3\u3057\u3066\u3044\u307E\u3059\u3002\u7D9A\u884C\u3059\u308B\u306B\u306F\u5C11\u306A\u304F\u3068\u30820.001 ETH\u304C\u5FC5\u8981\u3067\u3059\u3002",
|
|
35067
35655
|
topUpWallet: "\u30A6\u30A9\u30EC\u30C3\u30C8\u306B\u30C1\u30E3\u30FC\u30B8",
|
|
35068
35656
|
refundProcessing: "\u8CC7\u91D1\u306F\u5F15\u304D\u51FA\u3055\u308C\u307E\u3057\u305F\u304C\u3001\u53D6\u5F15\u306F\u5B8C\u4E86\u3057\u307E\u305B\u3093\u3067\u3057\u305F\u3002\u8FD4\u91D1\u51E6\u7406\u4E2D\u3067\u3059\u3002",
|
|
35069
35657
|
orderRefunded: "\u3054\u6CE8\u6587\u306F\u8FD4\u91D1\u3055\u308C\u307E\u3057\u305F\u3002",
|
|
@@ -35137,7 +35725,6 @@ var ja_default = {
|
|
|
35137
35725
|
fiveMinutes: "5\u5206"
|
|
35138
35726
|
},
|
|
35139
35727
|
common: {
|
|
35140
|
-
privyIframeTitle: "Privy",
|
|
35141
35728
|
haveQuestions: "\u3054\u8CEA\u554F\u304C\u3042\u308A\u307E\u3059\u304B\uFF1F",
|
|
35142
35729
|
getHelp: "\u30D8\u30EB\u30D7\u3092\u898B\u308B",
|
|
35143
35730
|
depositsLive: "{{tokenName}}\u306E\u5165\u91D1\u304C\u5229\u7528\u53EF\u80FD\u306B\u306A\u308A\u307E\u3057\u305F\uFF01",
|
|
@@ -35168,16 +35755,11 @@ var ja_default = {
|
|
|
35168
35755
|
tryAgain: "\u518D\u8A66\u884C",
|
|
35169
35756
|
getStarted: "\u59CB\u3081\u308B",
|
|
35170
35757
|
back: "\u623B\u308B",
|
|
35171
|
-
accountTypeEmail: "\u30E1\u30FC\u30EB",
|
|
35172
|
-
accountTypeTwitter: "Twitter ID",
|
|
35173
|
-
accountTypeApple: "Apple ID",
|
|
35174
|
-
accountTypeFarcaster: "Farcaster ID",
|
|
35175
35758
|
close: "\u9589\u3058\u308B",
|
|
35176
35759
|
copyAddress: "\u30A2\u30C9\u30EC\u30B9\u3092\u30B3\u30D4\u30FC",
|
|
35177
35760
|
copied: "\u30B3\u30D4\u30FC\u3057\u307E\u3057\u305F",
|
|
35178
35761
|
auto: "\u81EA\u52D5",
|
|
35179
|
-
comingSoon: "\u8FD1\u65E5\u516C\u958B"
|
|
35180
|
-
or: "\u307E\u305F\u306F"
|
|
35762
|
+
comingSoon: "\u8FD1\u65E5\u516C\u958B"
|
|
35181
35763
|
},
|
|
35182
35764
|
disclaimer: {
|
|
35183
35765
|
terms: "\u5229\u7528\u898F\u7D04",
|
|
@@ -35190,13 +35772,7 @@ var ja_default = {
|
|
|
35190
35772
|
},
|
|
35191
35773
|
connect: {
|
|
35192
35774
|
confirmWalletOwnership: "\u3053\u306E\u30A6\u30A9\u30EC\u30C3\u30C8\u304C\u3042\u306A\u305F\u306E\u3082\u306E\u3067\u3042\u308B\u3053\u3068\u3092\u78BA\u8A8D\u3059\u308B\u305F\u3081\u306B\u30B5\u30A4\u30F3\u30A4\u30F3\u3092\u30AF\u30EA\u30C3\u30AF\u3057\u3066\u304F\u3060\u3055\u3044\u3002",
|
|
35193
|
-
connectWallet: "\u30A6\u30A9\u30EC\u30C3\u30C8\u3092\u63A5\u7D9A"
|
|
35194
|
-
enterConfirmationCode: "\u78BA\u8A8D\u30B3\u30FC\u30C9\u3092\u5165\u529B",
|
|
35195
|
-
checkEmailForCode: "{{authProvider}}\u304B\u3089{{email}}\u306B\u9001\u4FE1\u3055\u308C\u305F\u78BA\u8A8D\u30B3\u30FC\u30C9\u3092\u4EE5\u4E0B\u306B\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044\u3002",
|
|
35196
|
-
enterYourEmail: "\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9\u3092\u5165\u529B",
|
|
35197
|
-
submit: "\u9001\u4FE1",
|
|
35198
|
-
openWarpcast: "Warpcast\u3092\u958B\u304F",
|
|
35199
|
-
warpcastLink: "Warpcast\u30EA\u30F3\u30AF"
|
|
35775
|
+
connectWallet: "\u30A6\u30A9\u30EC\u30C3\u30C8\u3092\u63A5\u7D9A"
|
|
35200
35776
|
},
|
|
35201
35777
|
selectAsset: {
|
|
35202
35778
|
yourTokens: "\u3042\u306A\u305F\u306E\u30C8\u30FC\u30AF\u30F3",
|
|
@@ -35574,6 +36150,8 @@ var ko_default = {
|
|
|
35574
36150
|
checkout: {
|
|
35575
36151
|
noAvailableTokens: "\uC0AC\uC6A9 \uAC00\uB2A5\uD55C \uD1A0\uD070\uC774 \uC5C6\uC2B5\uB2C8\uB2E4",
|
|
35576
36152
|
noAvailableTokensMessage: "\uC9C0\uAC11\uC5D0 \uC554\uD638\uD654\uD3D0 \uD1A0\uD070\uC774 \uC5C6\uC2B5\uB2C8\uB2E4. \uACC4\uC18D\uD558\uB824\uBA74 \uC9C0\uAC11\uC5D0 \uC554\uD638\uD654\uD3D0\uB97C \uCDA9\uC804\uD558\uAC70\uB098 \uC804\uC1A1\uD558\uC138\uC694.",
|
|
36153
|
+
insufficientEth: "ETH \uBD80\uC871",
|
|
36154
|
+
insufficientEthMessage: "\uC9C0\uAC11\uC5D0 \uBA54\uC778\uB137 ETH\uAC00 \uCDA9\uBD84\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4. \uACC4\uC18D\uD558\uB824\uBA74 \uCD5C\uC18C 0.001 ETH\uAC00 \uD544\uC694\uD569\uB2C8\uB2E4.",
|
|
35577
36155
|
topUpWallet: "\uC9C0\uAC11 \uCDA9\uC804",
|
|
35578
36156
|
refundProcessing: "\uC790\uAE08\uC774 \uCD9C\uAE08\uB418\uC5C8\uC9C0\uB9CC \uAC70\uB798\uAC00 \uC644\uB8CC\uB418\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4. \uD658\uBD88\uC774 \uCC98\uB9AC\uB418\uACE0 \uC788\uC2B5\uB2C8\uB2E4.",
|
|
35579
36157
|
orderRefunded: "\uC8FC\uBB38\uC774 \uD658\uBD88\uB418\uC5C8\uC2B5\uB2C8\uB2E4.",
|
|
@@ -35647,7 +36225,6 @@ var ko_default = {
|
|
|
35647
36225
|
fiveMinutes: "5\uBD84"
|
|
35648
36226
|
},
|
|
35649
36227
|
common: {
|
|
35650
|
-
privyIframeTitle: "Privy",
|
|
35651
36228
|
haveQuestions: "\uC9C8\uBB38\uC774 \uC788\uC73C\uC2E0\uAC00\uC694?",
|
|
35652
36229
|
getHelp: "\uB3C4\uC6C0\uBC1B\uAE30",
|
|
35653
36230
|
depositsLive: "{{tokenName}} \uC785\uAE08\uC774 \uD65C\uC131\uD654\uB418\uC5C8\uC2B5\uB2C8\uB2E4!",
|
|
@@ -35678,16 +36255,11 @@ var ko_default = {
|
|
|
35678
36255
|
tryAgain: "\uB2E4\uC2DC \uC2DC\uB3C4",
|
|
35679
36256
|
getStarted: "\uC2DC\uC791\uD558\uAE30",
|
|
35680
36257
|
back: "\uB4A4\uB85C",
|
|
35681
|
-
accountTypeEmail: "\uC774\uBA54\uC77C",
|
|
35682
|
-
accountTypeTwitter: "Twitter ID",
|
|
35683
|
-
accountTypeApple: "Apple ID",
|
|
35684
|
-
accountTypeFarcaster: "Farcaster ID",
|
|
35685
36258
|
close: "\uB2EB\uAE30",
|
|
35686
36259
|
copyAddress: "\uC8FC\uC18C \uBCF5\uC0AC",
|
|
35687
36260
|
copied: "\uBCF5\uC0AC\uB428",
|
|
35688
36261
|
auto: "\uC790\uB3D9",
|
|
35689
|
-
comingSoon: "\uACE7 \uCD9C\uC2DC"
|
|
35690
|
-
or: "\uB610\uB294"
|
|
36262
|
+
comingSoon: "\uACE7 \uCD9C\uC2DC"
|
|
35691
36263
|
},
|
|
35692
36264
|
disclaimer: {
|
|
35693
36265
|
terms: "\uC57D\uAD00",
|
|
@@ -35700,13 +36272,7 @@ var ko_default = {
|
|
|
35700
36272
|
},
|
|
35701
36273
|
connect: {
|
|
35702
36274
|
confirmWalletOwnership: "\uC774 \uC9C0\uAC11\uC744 \uC18C\uC720\uD558\uACE0 \uC788\uC74C\uC744 \uD655\uC778\uD558\uB824\uBA74 \uB85C\uADF8\uC778\uC744 \uD074\uB9AD\uD558\uC138\uC694.",
|
|
35703
|
-
connectWallet: "\uC9C0\uAC11 \uC5F0\uACB0"
|
|
35704
|
-
enterConfirmationCode: "\uD655\uC778 \uCF54\uB4DC \uC785\uB825",
|
|
35705
|
-
checkEmailForCode: "{{authProvider}}\uC5D0\uC11C {{email}}(\uC73C)\uB85C \uBCF4\uB0B8 \uC774\uBA54\uC77C\uC744 \uD655\uC778\uD558\uACE0 \uC544\uB798\uC5D0 \uCF54\uB4DC\uB97C \uC785\uB825\uD558\uC138\uC694.",
|
|
35706
|
-
enterYourEmail: "\uC774\uBA54\uC77C \uC785\uB825",
|
|
35707
|
-
submit: "\uC81C\uCD9C",
|
|
35708
|
-
openWarpcast: "Warpcast \uC5F4\uAE30",
|
|
35709
|
-
warpcastLink: "Warpcast \uB9C1\uD06C"
|
|
36275
|
+
connectWallet: "\uC9C0\uAC11 \uC5F0\uACB0"
|
|
35710
36276
|
},
|
|
35711
36277
|
selectAsset: {
|
|
35712
36278
|
yourTokens: "\uB0B4 \uD1A0\uD070",
|
|
@@ -36084,6 +36650,8 @@ var ru_default = {
|
|
|
36084
36650
|
checkout: {
|
|
36085
36651
|
noAvailableTokens: "\u041D\u0435\u0442 \u0434\u043E\u0441\u0442\u0443\u043F\u043D\u044B\u0445 \u0442\u043E\u043A\u0435\u043D\u043E\u0432",
|
|
36086
36652
|
noAvailableTokensMessage: "\u0423 \u0432\u0430\u0441 \u043D\u0435\u0442 \u043A\u0440\u0438\u043F\u0442\u043E\u0432\u0430\u043B\u044E\u0442\u043D\u044B\u0445 \u0442\u043E\u043A\u0435\u043D\u043E\u0432 \u0432 \u043A\u043E\u0448\u0435\u043B\u044C\u043A\u0435. \u041F\u043E\u043F\u043E\u043B\u043D\u0438\u0442\u0435 \u0438\u043B\u0438 \u043F\u0435\u0440\u0435\u0432\u0435\u0434\u0438\u0442\u0435 \u043A\u0440\u0438\u043F\u0442\u043E\u0432\u0430\u043B\u044E\u0442\u0443 \u0432 \u043A\u043E\u0448\u0435\u043B\u0451\u043A \u0434\u043B\u044F \u043F\u0440\u043E\u0434\u043E\u043B\u0436\u0435\u043D\u0438\u044F.",
|
|
36653
|
+
insufficientEth: "\u041D\u0435\u0434\u043E\u0441\u0442\u0430\u0442\u043E\u0447\u043D\u043E ETH",
|
|
36654
|
+
insufficientEthMessage: "\u0412 \u0432\u0430\u0448\u0435\u043C \u043A\u043E\u0448\u0435\u043B\u044C\u043A\u0435 \u043D\u0435\u0434\u043E\u0441\u0442\u0430\u0442\u043E\u0447\u043D\u043E ETH \u0432 \u043E\u0441\u043D\u043E\u0432\u043D\u043E\u0439 \u0441\u0435\u0442\u0438. \u0414\u043B\u044F \u043F\u0440\u043E\u0434\u043E\u043B\u0436\u0435\u043D\u0438\u044F \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044F \u043D\u0435 \u043C\u0435\u043D\u0435\u0435 0.001 ETH.",
|
|
36087
36655
|
topUpWallet: "\u041F\u043E\u043F\u043E\u043B\u043D\u0438\u0442\u044C \u043A\u043E\u0448\u0435\u043B\u0451\u043A",
|
|
36088
36656
|
refundProcessing: "\u0421\u0440\u0435\u0434\u0441\u0442\u0432\u0430 \u0431\u044B\u043B\u0438 \u0432\u044B\u0432\u0435\u0434\u0435\u043D\u044B, \u043D\u043E \u0442\u0440\u0430\u043D\u0437\u0430\u043A\u0446\u0438\u044F \u043D\u0435 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u0430. \u041E\u0431\u0440\u0430\u0431\u0430\u0442\u044B\u0432\u0430\u0435\u0442\u0441\u044F \u0432\u043E\u0437\u0432\u0440\u0430\u0442.",
|
|
36089
36657
|
orderRefunded: "\u0412\u0430\u0448 \u0437\u0430\u043A\u0430\u0437 \u0431\u044B\u043B \u0432\u043E\u0437\u0432\u0440\u0430\u0449\u0451\u043D.",
|
|
@@ -36157,7 +36725,6 @@ var ru_default = {
|
|
|
36157
36725
|
fiveMinutes: "5 \u043C\u0438\u043D"
|
|
36158
36726
|
},
|
|
36159
36727
|
common: {
|
|
36160
|
-
privyIframeTitle: "Privy",
|
|
36161
36728
|
haveQuestions: "\u0415\u0441\u0442\u044C \u0432\u043E\u043F\u0440\u043E\u0441\u044B?",
|
|
36162
36729
|
getHelp: "\u041F\u043E\u043B\u0443\u0447\u0438\u0442\u044C \u043F\u043E\u043C\u043E\u0449\u044C",
|
|
36163
36730
|
depositsLive: "\u0414\u0435\u043F\u043E\u0437\u0438\u0442\u044B {{tokenName}} \u0434\u043E\u0441\u0442\u0443\u043F\u043D\u044B!",
|
|
@@ -36188,16 +36755,11 @@ var ru_default = {
|
|
|
36188
36755
|
tryAgain: "\u041F\u043E\u043F\u0440\u043E\u0431\u043E\u0432\u0430\u0442\u044C \u0441\u043D\u043E\u0432\u0430",
|
|
36189
36756
|
getStarted: "\u041D\u0430\u0447\u0430\u0442\u044C",
|
|
36190
36757
|
back: "\u041D\u0430\u0437\u0430\u0434",
|
|
36191
|
-
accountTypeEmail: "Email",
|
|
36192
|
-
accountTypeTwitter: "Twitter ID",
|
|
36193
|
-
accountTypeApple: "Apple ID",
|
|
36194
|
-
accountTypeFarcaster: "Farcaster ID",
|
|
36195
36758
|
close: "\u0417\u0430\u043A\u0440\u044B\u0442\u044C",
|
|
36196
36759
|
copyAddress: "\u0421\u043A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0430\u0434\u0440\u0435\u0441",
|
|
36197
36760
|
copied: "\u0421\u043A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u043D\u043E",
|
|
36198
36761
|
auto: "\u0410\u0432\u0442\u043E",
|
|
36199
|
-
comingSoon: "\u0421\u043A\u043E\u0440\u043E"
|
|
36200
|
-
or: "\u0438\u043B\u0438"
|
|
36762
|
+
comingSoon: "\u0421\u043A\u043E\u0440\u043E"
|
|
36201
36763
|
},
|
|
36202
36764
|
disclaimer: {
|
|
36203
36765
|
terms: "\u0443\u0441\u043B\u043E\u0432\u0438\u044F",
|
|
@@ -36210,13 +36772,7 @@ var ru_default = {
|
|
|
36210
36772
|
},
|
|
36211
36773
|
connect: {
|
|
36212
36774
|
confirmWalletOwnership: "\u041D\u0430\u0436\u043C\u0438\u0442\u0435 \u0432\u043E\u0439\u0442\u0438, \u0447\u0442\u043E\u0431\u044B \u043F\u043E\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u044C, \u0447\u0442\u043E \u0432\u044B \u0432\u043B\u0430\u0434\u0435\u0435\u0442\u0435 \u044D\u0442\u0438\u043C \u043A\u043E\u0448\u0435\u043B\u044C\u043A\u043E\u043C.",
|
|
36213
|
-
connectWallet: "\u041F\u043E\u0434\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u043A\u043E\u0448\u0435\u043B\u0451\u043A"
|
|
36214
|
-
enterConfirmationCode: "\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u043A\u043E\u0434 \u043F\u043E\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043D\u0438\u044F",
|
|
36215
|
-
checkEmailForCode: "\u041F\u043E\u0436\u0430\u043B\u0443\u0439\u0441\u0442\u0430, \u043F\u0440\u043E\u0432\u0435\u0440\u044C\u0442\u0435 {{email}} \u0434\u043B\u044F email \u043E\u0442 {{authProvider}} \u0438 \u0432\u0432\u0435\u0434\u0438\u0442\u0435 \u0432\u0430\u0448 \u043A\u043E\u0434 \u043D\u0438\u0436\u0435.",
|
|
36216
|
-
enterYourEmail: "\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u0432\u0430\u0448 email",
|
|
36217
|
-
submit: "\u041E\u0442\u043F\u0440\u0430\u0432\u0438\u0442\u044C",
|
|
36218
|
-
openWarpcast: "\u041E\u0442\u043A\u0440\u044B\u0442\u044C Warpcast",
|
|
36219
|
-
warpcastLink: "\u0421\u0441\u044B\u043B\u043A\u0430 Warpcast"
|
|
36775
|
+
connectWallet: "\u041F\u043E\u0434\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u043A\u043E\u0448\u0435\u043B\u0451\u043A"
|
|
36220
36776
|
},
|
|
36221
36777
|
selectAsset: {
|
|
36222
36778
|
yourTokens: "\u0412\u0430\u0448\u0438 \u0442\u043E\u043A\u0435\u043D\u044B",
|
|
@@ -36594,6 +37150,8 @@ var tr_default = {
|
|
|
36594
37150
|
checkout: {
|
|
36595
37151
|
noAvailableTokens: "Kullan\u0131labilir token yok",
|
|
36596
37152
|
noAvailableTokensMessage: "C\xFCzdan\u0131n\u0131zda kripto token bulunmamaktad\u0131r. Devam etmek i\xE7in c\xFCzdan\u0131n\u0131za para yat\u0131r\u0131n veya kripto transfer edin.",
|
|
37153
|
+
insufficientEth: "Yetersiz ETH",
|
|
37154
|
+
insufficientEthMessage: "C\xFCzdan\u0131n\u0131zda yeterli mainnet ETH bulunmuyor. Devam etmek i\xE7in en az 0.001 ETH gereklidir.",
|
|
36597
37155
|
topUpWallet: "C\xFCzdana para y\xFCkle",
|
|
36598
37156
|
refundProcessing: "\u0130ade edilecek fonlar haz\u0131rland\u0131, ancak i\u015Flem tamamlanmad\u0131. \u0130ade i\u015Flemi yap\u0131l\u0131yor.",
|
|
36599
37157
|
orderRefunded: "Sipari\u015Finiz iade edildi.",
|
|
@@ -36667,7 +37225,6 @@ var tr_default = {
|
|
|
36667
37225
|
fiveMinutes: "5 dk"
|
|
36668
37226
|
},
|
|
36669
37227
|
common: {
|
|
36670
|
-
privyIframeTitle: "Privy",
|
|
36671
37228
|
haveQuestions: "Sorular\u0131n\u0131z m\u0131 var?",
|
|
36672
37229
|
getHelp: "Yard\u0131m al\u0131n",
|
|
36673
37230
|
depositsLive: "{{tokenName}} yat\u0131r\u0131mlar\u0131 aktif!",
|
|
@@ -36698,16 +37255,11 @@ var tr_default = {
|
|
|
36698
37255
|
tryAgain: "Tekrar dene",
|
|
36699
37256
|
getStarted: "Ba\u015Flay\u0131n",
|
|
36700
37257
|
back: "Geri",
|
|
36701
|
-
accountTypeEmail: "E-posta",
|
|
36702
|
-
accountTypeTwitter: "Twitter ID",
|
|
36703
|
-
accountTypeApple: "Apple ID",
|
|
36704
|
-
accountTypeFarcaster: "Farcaster ID",
|
|
36705
37258
|
close: "Kapat",
|
|
36706
37259
|
copyAddress: "Adresi kopyala",
|
|
36707
37260
|
copied: "Kopyaland\u0131",
|
|
36708
37261
|
auto: "Otomatik",
|
|
36709
|
-
comingSoon: "\xC7ok Yak\u0131nda"
|
|
36710
|
-
or: "veya"
|
|
37262
|
+
comingSoon: "\xC7ok Yak\u0131nda"
|
|
36711
37263
|
},
|
|
36712
37264
|
disclaimer: {
|
|
36713
37265
|
terms: "\u015Fartlar",
|
|
@@ -36720,13 +37272,7 @@ var tr_default = {
|
|
|
36720
37272
|
},
|
|
36721
37273
|
connect: {
|
|
36722
37274
|
confirmWalletOwnership: "Bu c\xFCzdan\u0131n sahibi oldu\u011Funuzu onaylamak i\xE7in giri\u015F yap\u0131n.",
|
|
36723
|
-
connectWallet: "C\xFCzdan ba\u011Fla"
|
|
36724
|
-
enterConfirmationCode: "Onay kodunu girin",
|
|
36725
|
-
checkEmailForCode: "L\xFCtfen {{authProvider}} taraf\u0131ndan g\xF6nderilen e-postay\u0131 {{email}} adresinde kontrol edin ve kodunuzu a\u015Fa\u011F\u0131ya girin.",
|
|
36726
|
-
enterYourEmail: "E-postan\u0131z\u0131 girin",
|
|
36727
|
-
submit: "G\xF6nder",
|
|
36728
|
-
openWarpcast: "Warpcast'i A\xE7",
|
|
36729
|
-
warpcastLink: "Warpcast Ba\u011Flant\u0131s\u0131"
|
|
37275
|
+
connectWallet: "C\xFCzdan ba\u011Fla"
|
|
36730
37276
|
},
|
|
36731
37277
|
selectAsset: {
|
|
36732
37278
|
yourTokens: "Token'lar\u0131n\u0131z",
|
|
@@ -37104,6 +37650,8 @@ var zh_default = {
|
|
|
37104
37650
|
checkout: {
|
|
37105
37651
|
noAvailableTokens: "\u6CA1\u6709\u53EF\u7528\u4EE3\u5E01",
|
|
37106
37652
|
noAvailableTokensMessage: "\u60A8\u7684\u94B1\u5305\u4E2D\u6CA1\u6709\u4EFB\u4F55\u52A0\u5BC6\u4EE3\u5E01\u3002\u5145\u503C\u6216\u8F6C\u8D26\u52A0\u5BC6\u8D27\u5E01\u5230\u60A8\u7684\u94B1\u5305\u4EE5\u7EE7\u7EED\u3002",
|
|
37653
|
+
insufficientEth: "ETH \u4E0D\u8DB3",
|
|
37654
|
+
insufficientEthMessage: "\u60A8\u7684\u94B1\u5305\u4E2D\u6CA1\u6709\u8DB3\u591F\u7684\u4E3B\u7F51 ETH\u3002\u60A8\u81F3\u5C11\u9700\u8981 0.001 ETH \u624D\u80FD\u7EE7\u7EED\u3002",
|
|
37107
37655
|
topUpWallet: "\u5145\u503C\u94B1\u5305",
|
|
37108
37656
|
refundProcessing: "\u8D44\u91D1\u5DF2\u63D0\u53D6\uFF0C\u4F46\u4EA4\u6613\u672A\u5B8C\u6210\u3002\u6B63\u5728\u5904\u7406\u9000\u6B3E\u3002",
|
|
37109
37657
|
orderRefunded: "\u60A8\u7684\u8BA2\u5355\u5DF2\u9000\u6B3E\u3002",
|
|
@@ -37177,7 +37725,6 @@ var zh_default = {
|
|
|
37177
37725
|
fiveMinutes: "5\u5206\u949F"
|
|
37178
37726
|
},
|
|
37179
37727
|
common: {
|
|
37180
|
-
privyIframeTitle: "Privy",
|
|
37181
37728
|
haveQuestions: "\u6709\u7591\u95EE\uFF1F",
|
|
37182
37729
|
getHelp: "\u83B7\u53D6\u5E2E\u52A9",
|
|
37183
37730
|
depositsLive: "{{tokenName}} \u5B58\u6B3E\u5DF2\u4E0A\u7EBF\uFF01",
|
|
@@ -37208,16 +37755,11 @@ var zh_default = {
|
|
|
37208
37755
|
tryAgain: "\u91CD\u8BD5",
|
|
37209
37756
|
getStarted: "\u5F00\u59CB",
|
|
37210
37757
|
back: "\u8FD4\u56DE",
|
|
37211
|
-
accountTypeEmail: "\u7535\u5B50\u90AE\u4EF6",
|
|
37212
|
-
accountTypeTwitter: "Twitter ID",
|
|
37213
|
-
accountTypeApple: "Apple ID",
|
|
37214
|
-
accountTypeFarcaster: "Farcaster ID",
|
|
37215
37758
|
close: "\u5173\u95ED",
|
|
37216
37759
|
copyAddress: "\u590D\u5236\u5730\u5740",
|
|
37217
37760
|
copied: "\u5DF2\u590D\u5236",
|
|
37218
37761
|
auto: "\u81EA\u52A8",
|
|
37219
|
-
comingSoon: "\u5373\u5C06\u63A8\u51FA"
|
|
37220
|
-
or: "\u6216"
|
|
37762
|
+
comingSoon: "\u5373\u5C06\u63A8\u51FA"
|
|
37221
37763
|
},
|
|
37222
37764
|
disclaimer: {
|
|
37223
37765
|
terms: "\u6761\u6B3E",
|
|
@@ -37230,13 +37772,7 @@ var zh_default = {
|
|
|
37230
37772
|
},
|
|
37231
37773
|
connect: {
|
|
37232
37774
|
confirmWalletOwnership: "\u70B9\u51FB\u767B\u5F55\u4EE5\u786E\u8BA4\u60A8\u62E5\u6709\u6B64\u94B1\u5305\u3002",
|
|
37233
|
-
connectWallet: "\u8FDE\u63A5\u94B1\u5305"
|
|
37234
|
-
enterConfirmationCode: "\u8F93\u5165\u786E\u8BA4\u7801",
|
|
37235
|
-
checkEmailForCode: "\u8BF7\u68C0\u67E5 {{email}} \u7684\u7535\u5B50\u90AE\u4EF6\uFF0C\u67E5\u770B\u6765\u81EA {{authProvider}} \u7684\u90AE\u4EF6\uFF0C\u5E76\u5728\u4E0B\u65B9\u8F93\u5165\u60A8\u7684\u9A8C\u8BC1\u7801\u3002",
|
|
37236
|
-
enterYourEmail: "\u8F93\u5165\u60A8\u7684\u7535\u5B50\u90AE\u4EF6",
|
|
37237
|
-
submit: "\u63D0\u4EA4",
|
|
37238
|
-
openWarpcast: "\u6253\u5F00 Warpcast",
|
|
37239
|
-
warpcastLink: "Warpcast \u94FE\u63A5"
|
|
37775
|
+
connectWallet: "\u8FDE\u63A5\u94B1\u5305"
|
|
37240
37776
|
},
|
|
37241
37777
|
selectAsset: {
|
|
37242
37778
|
yourTokens: "\u60A8\u7684\u4EE3\u5E01",
|
|
@@ -37606,8 +38142,7 @@ var zh_default = {
|
|
|
37606
38142
|
subject: "\u4E3B\u9898*",
|
|
37607
38143
|
description: "\u63CF\u8FF0*",
|
|
37608
38144
|
resolutionPreference: "\u89E3\u51B3\u504F\u597D*"
|
|
37609
|
-
}
|
|
37610
|
-
errors: {}
|
|
38145
|
+
}
|
|
37611
38146
|
};
|
|
37612
38147
|
|
|
37613
38148
|
// src/locales/i18n.ts
|
|
@@ -37619,6 +38154,7 @@ var localeMapping = {
|
|
|
37619
38154
|
tr: "tr",
|
|
37620
38155
|
es: "es",
|
|
37621
38156
|
ru: "ru",
|
|
38157
|
+
fr: "fr",
|
|
37622
38158
|
buy_en: "buy_en"
|
|
37623
38159
|
};
|
|
37624
38160
|
var resources = {
|
|
@@ -37631,6 +38167,7 @@ var resources = {
|
|
|
37631
38167
|
tr: { translation: tr_default },
|
|
37632
38168
|
es: { translation: es_default },
|
|
37633
38169
|
ru: { translation: ru_default },
|
|
38170
|
+
fr: { translation: fr_default },
|
|
37634
38171
|
buy_en: { translation: buy_en_default }
|
|
37635
38172
|
};
|
|
37636
38173
|
i18n.use(initReactI18next).init({
|
|
@@ -37657,19 +38194,19 @@ import { QueryClientProvider } from "@tanstack/react-query";
|
|
|
37657
38194
|
import React240, {
|
|
37658
38195
|
createContext as createContext18,
|
|
37659
38196
|
useContext as useContext18,
|
|
37660
|
-
useEffect as
|
|
38197
|
+
useEffect as useEffect59,
|
|
37661
38198
|
useMemo as useMemo47
|
|
37662
38199
|
} from "react";
|
|
37663
38200
|
import { WagmiProvider, useAccountEffect as useAccountEffect3 } from "wagmi";
|
|
37664
38201
|
|
|
37665
38202
|
// src/providers/FunkitI18nProvider.tsx
|
|
37666
|
-
import React238, { useEffect as
|
|
38203
|
+
import React238, { useEffect as useEffect57 } from "react";
|
|
37667
38204
|
import { I18nextProvider } from "react-i18next";
|
|
37668
38205
|
function FunkitI18nProvider({
|
|
37669
38206
|
children,
|
|
37670
38207
|
locale = "en"
|
|
37671
38208
|
}) {
|
|
37672
|
-
|
|
38209
|
+
useEffect57(() => {
|
|
37673
38210
|
const targetLanguage = localeMapping[locale];
|
|
37674
38211
|
if (i18n_default.language !== targetLanguage) {
|
|
37675
38212
|
i18n_default.changeLanguage(targetLanguage);
|
|
@@ -37716,7 +38253,7 @@ function FunkitStatsigProvider({
|
|
|
37716
38253
|
|
|
37717
38254
|
// src/providers/usePreloadImages.ts
|
|
37718
38255
|
import { isNotNullish as isNotNullish9 } from "@funkit/utils";
|
|
37719
|
-
import { useCallback as useCallback50, useEffect as
|
|
38256
|
+
import { useCallback as useCallback50, useEffect as useEffect58 } from "react";
|
|
37720
38257
|
function usePreloadImages() {
|
|
37721
38258
|
const funkitConnectChains = useFunkitConnectChains();
|
|
37722
38259
|
const walletConnectors = useWalletConnectors();
|
|
@@ -37726,7 +38263,7 @@ function usePreloadImages() {
|
|
|
37726
38263
|
...funkitConnectChains.map((chain) => chain.iconUrl).filter(isNotNullish9)
|
|
37727
38264
|
);
|
|
37728
38265
|
}, [walletConnectors, funkitConnectChains]);
|
|
37729
|
-
|
|
38266
|
+
useEffect58(() => {
|
|
37730
38267
|
preloadImages();
|
|
37731
38268
|
}, [preloadImages]);
|
|
37732
38269
|
}
|
|
@@ -37755,7 +38292,7 @@ function FunkitProvider(props) {
|
|
|
37755
38292
|
}, [initialChainId, props.wagmiConfig, props.funkitConfig.appName]);
|
|
37756
38293
|
const finalQueryClient = props.queryClient;
|
|
37757
38294
|
const sdkVersion = useMemo47(() => getCurrentSdkVersion(), []);
|
|
37758
|
-
|
|
38295
|
+
useEffect59(() => {
|
|
37759
38296
|
logger.configure(props.funkitConfig.apiKey, !!props.debug, sdkVersion);
|
|
37760
38297
|
}, [props.funkitConfig.apiKey, props.debug, sdkVersion]);
|
|
37761
38298
|
const MainChild = /* @__PURE__ */ React240.createElement(FunkitThemeProvider, { theme: props.theme }, /* @__PURE__ */ React240.createElement(
|
|
@@ -37799,7 +38336,7 @@ function FunkitProviderInner({
|
|
|
37799
38336
|
}, [activeTheme, selector]);
|
|
37800
38337
|
const avatarContext = avatar ?? defaultAvatar;
|
|
37801
38338
|
const isSandboxMode = !!sandbox;
|
|
37802
|
-
const modalSizeFinal = modalSize || ModalSizeOptions.
|
|
38339
|
+
const modalSizeFinal = modalSize || ModalSizeOptions.MEDIUM;
|
|
37803
38340
|
return /* @__PURE__ */ React240.createElement(FunkitI18nProvider, { locale }, /* @__PURE__ */ React240.createElement(FunkitStatsigProvider, { isDevelopment: debug }, /* @__PURE__ */ React240.createElement(FunkitConfigContext.Provider, { value: funkitConfig }, /* @__PURE__ */ React240.createElement(FunkitConnectChainProvider, { initialChain }, /* @__PURE__ */ React240.createElement(ModalSizeProvider, { modalSize: modalSizeFinal }, /* @__PURE__ */ React240.createElement(GeneralWalletProvider, null, /* @__PURE__ */ React240.createElement(FunkitFlagsProvider, null, /* @__PURE__ */ React240.createElement(FunkitCheckoutHistoryProvider, null, /* @__PURE__ */ React240.createElement(FunkitCheckoutProvider, null, /* @__PURE__ */ React240.createElement(FunkitSandboxContext.Provider, { value: isSandboxMode }, /* @__PURE__ */ React240.createElement(FunkitBrokerageProvider, null, /* @__PURE__ */ React240.createElement(FunkitQuoteProvider, null, /* @__PURE__ */ React240.createElement(AvatarContext.Provider, { value: avatarContext }, /* @__PURE__ */ React240.createElement(ThemeIdContext2.Provider, { value: id }, /* @__PURE__ */ React240.createElement(ShowBalanceProvider, null, /* @__PURE__ */ React240.createElement(UserPresenceProvider, null, /* @__PURE__ */ React240.createElement(ModalProvider, null, activeTheme ? /* @__PURE__ */ React240.createElement(
|
|
37804
38341
|
"div",
|
|
37805
38342
|
{
|
|
@@ -37855,7 +38392,6 @@ export {
|
|
|
37855
38392
|
FunkitConnectAuthenticationProvider,
|
|
37856
38393
|
FunkitPaymentsIconLine,
|
|
37857
38394
|
FunkitProvider,
|
|
37858
|
-
FunkitSocialLoginMethod,
|
|
37859
38395
|
NATIVE_TOKEN,
|
|
37860
38396
|
PaymentMethod,
|
|
37861
38397
|
SelectedHomeTab,
|