@embarkai/ui-kit 0.4.113 → 0.4.115
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/iframe/index.html +1 -1
- package/dist/iframe/main.js +1 -1
- package/dist/index.cjs +527 -426
- package/dist/index.d.cts +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +224 -125
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -11640,12 +11640,6 @@ var init_AuthMenu = __esm({
|
|
|
11640
11640
|
setAlert(null);
|
|
11641
11641
|
};
|
|
11642
11642
|
}, []);
|
|
11643
|
-
if (!isIframeReady) {
|
|
11644
|
-
return /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(Expandable, { isExpanded: true, className: "w-full p-8 flex flex-col justify-center items-center gap-[var(--ui-kit-gap)]", children: [
|
|
11645
|
-
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_lucide_react11.Loader, { className: "w-4 h-4 animate-spin" }),
|
|
11646
|
-
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)("span", { className: "text-sm text-[var(--ui-kit-fg-muted)]", children: "Initializing wallet..." })
|
|
11647
|
-
] });
|
|
11648
|
-
}
|
|
11649
11643
|
const stepContent = (0, import_react25.useMemo)(
|
|
11650
11644
|
() => ({
|
|
11651
11645
|
"loading": /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(LoadingStep, {}),
|
|
@@ -11663,6 +11657,12 @@ var init_AuthMenu = __esm({
|
|
|
11663
11657
|
}),
|
|
11664
11658
|
[onAuthSuccess, goBackToSignIn]
|
|
11665
11659
|
);
|
|
11660
|
+
if (!isIframeReady) {
|
|
11661
|
+
return /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(Expandable, { isExpanded: true, className: "w-full p-8 flex flex-col justify-center items-center gap-[var(--ui-kit-gap)]", children: [
|
|
11662
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_lucide_react11.Loader, { className: "w-4 h-4 animate-spin" }),
|
|
11663
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)("span", { className: "text-sm text-[var(--ui-kit-fg-muted)]", children: "Initializing wallet..." })
|
|
11664
|
+
] });
|
|
11665
|
+
}
|
|
11666
11666
|
return /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(Expandable, { isExpanded: true, contentClassName: "w-full flex flex-col gap-[var(--ui-kit-gap)]", children: [
|
|
11667
11667
|
stepContent[step],
|
|
11668
11668
|
alert2 && /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(Highlight, { type: "error", children: [
|
|
@@ -15735,6 +15735,68 @@ var init_wallets = __esm({
|
|
|
15735
15735
|
}
|
|
15736
15736
|
});
|
|
15737
15737
|
|
|
15738
|
+
// src/internal/lib/disconnect-guard.ts
|
|
15739
|
+
function waitForReconnect(config) {
|
|
15740
|
+
if (config.state.status !== "reconnecting") return Promise.resolve();
|
|
15741
|
+
return new Promise((resolve) => {
|
|
15742
|
+
const unsubscribe = config.subscribe(
|
|
15743
|
+
(state) => state.status,
|
|
15744
|
+
(status) => {
|
|
15745
|
+
if (status === "reconnecting") return;
|
|
15746
|
+
unsubscribe();
|
|
15747
|
+
resolve();
|
|
15748
|
+
}
|
|
15749
|
+
);
|
|
15750
|
+
});
|
|
15751
|
+
}
|
|
15752
|
+
function hasUnusableCurrentConnector(config) {
|
|
15753
|
+
const { current, connections } = config.state;
|
|
15754
|
+
if (!current) return false;
|
|
15755
|
+
const connector = connections.get(current)?.connector;
|
|
15756
|
+
return !!connector && typeof connector.disconnect !== "function";
|
|
15757
|
+
}
|
|
15758
|
+
var init_disconnect_guard = __esm({
|
|
15759
|
+
"src/internal/lib/disconnect-guard.ts"() {
|
|
15760
|
+
}
|
|
15761
|
+
});
|
|
15762
|
+
|
|
15763
|
+
// src/internal/hooks/useSafeDisconnect.ts
|
|
15764
|
+
function useSafeDisconnect(options) {
|
|
15765
|
+
const config = (0, import_wagmi.useConfig)();
|
|
15766
|
+
const mutation = (0, import_wagmi.useDisconnect)(options);
|
|
15767
|
+
const { mutateAsync } = mutation;
|
|
15768
|
+
const disconnectAsync = (0, import_react40.useCallback)(
|
|
15769
|
+
async (parameters) => {
|
|
15770
|
+
await waitForReconnect(config);
|
|
15771
|
+
if (!parameters?.connector && hasUnusableCurrentConnector(config)) return;
|
|
15772
|
+
await mutateAsync(parameters);
|
|
15773
|
+
},
|
|
15774
|
+
[config, mutateAsync]
|
|
15775
|
+
);
|
|
15776
|
+
const disconnect = (0, import_react40.useCallback)(
|
|
15777
|
+
(parameters) => {
|
|
15778
|
+
disconnectAsync(parameters).catch(() => {
|
|
15779
|
+
});
|
|
15780
|
+
},
|
|
15781
|
+
[disconnectAsync]
|
|
15782
|
+
);
|
|
15783
|
+
return {
|
|
15784
|
+
...mutation,
|
|
15785
|
+
mutate: disconnect,
|
|
15786
|
+
mutateAsync: disconnectAsync,
|
|
15787
|
+
disconnect,
|
|
15788
|
+
disconnectAsync
|
|
15789
|
+
};
|
|
15790
|
+
}
|
|
15791
|
+
var import_react40, import_wagmi;
|
|
15792
|
+
var init_useSafeDisconnect = __esm({
|
|
15793
|
+
"src/internal/hooks/useSafeDisconnect.ts"() {
|
|
15794
|
+
import_react40 = require("react");
|
|
15795
|
+
import_wagmi = require("wagmi");
|
|
15796
|
+
init_disconnect_guard();
|
|
15797
|
+
}
|
|
15798
|
+
});
|
|
15799
|
+
|
|
15738
15800
|
// src/internal/lib/connect-errors.ts
|
|
15739
15801
|
function someInErrorChain(error, predicate) {
|
|
15740
15802
|
let current = error;
|
|
@@ -15866,16 +15928,16 @@ function useLinkedProfiles() {
|
|
|
15866
15928
|
}
|
|
15867
15929
|
});
|
|
15868
15930
|
const { profiles = [], avatar = null } = data || {};
|
|
15869
|
-
const refresh = (0,
|
|
15931
|
+
const refresh = (0, import_react41.useCallback)(async () => {
|
|
15870
15932
|
await qc.invalidateQueries({ queryKey: [LINKED_PROFILES_QUERY_KEY, address] });
|
|
15871
15933
|
}, [qc, address]);
|
|
15872
15934
|
return { profiles, avatar, isLoading, isFetching, error, refresh };
|
|
15873
15935
|
}
|
|
15874
|
-
var import_react_query17,
|
|
15936
|
+
var import_react_query17, import_react41, LINKED_PROFILES_QUERY_KEY;
|
|
15875
15937
|
var init_linkedProfiles = __esm({
|
|
15876
15938
|
"src/modules/linkedProfiles.ts"() {
|
|
15877
15939
|
import_react_query17 = require("@tanstack/react-query");
|
|
15878
|
-
|
|
15940
|
+
import_react41 = require("react");
|
|
15879
15941
|
init_SessionContext();
|
|
15880
15942
|
init_auth();
|
|
15881
15943
|
init_common();
|
|
@@ -16613,7 +16675,7 @@ function useLinkSocial() {
|
|
|
16613
16675
|
} = useProviderConfig();
|
|
16614
16676
|
const setPage = useLayoutDataStore((st) => st.setPage);
|
|
16615
16677
|
const { providerType, linkIsLoading, setProviderType, setAlert, setLinkIsLoading } = useManageWalletStore();
|
|
16616
|
-
const handleLinkSocialProvider =
|
|
16678
|
+
const handleLinkSocialProvider = import_react42.default.useCallback(
|
|
16617
16679
|
async (providerIdRaw) => {
|
|
16618
16680
|
const providerKey = providerIdRaw.toLowerCase();
|
|
16619
16681
|
const normalizedKey = providerKey === "twitter" ? "x" : providerKey;
|
|
@@ -16671,8 +16733,8 @@ function useLinkSocial() {
|
|
|
16671
16733
|
},
|
|
16672
16734
|
[config.social?.providers]
|
|
16673
16735
|
);
|
|
16674
|
-
const [socialLinkStarted, setSocialLinkStarted] =
|
|
16675
|
-
(0,
|
|
16736
|
+
const [socialLinkStarted, setSocialLinkStarted] = import_react42.default.useState(false);
|
|
16737
|
+
(0, import_react42.useEffect)(() => {
|
|
16676
16738
|
const key = providerType?.toLowerCase();
|
|
16677
16739
|
console.log("[useLinkSocial] Effect triggered:", { key, linkIsLoading, socialLinkStarted });
|
|
16678
16740
|
if (key && key !== "telegram" && key !== "email" && key !== "passkey" && key !== "wallet") {
|
|
@@ -16686,7 +16748,7 @@ function useLinkSocial() {
|
|
|
16686
16748
|
}
|
|
16687
16749
|
}, [providerType, linkIsLoading, socialLinkStarted, handleLinkSocialProvider]);
|
|
16688
16750
|
}
|
|
16689
|
-
var import_react_query22,
|
|
16751
|
+
var import_react_query22, import_react42;
|
|
16690
16752
|
var init_useLinkSocial = __esm({
|
|
16691
16753
|
"src/internal/components/ManageWalletMenu/hooks/useLinkSocial.ts"() {
|
|
16692
16754
|
init_useLayoutDataStore();
|
|
@@ -16694,7 +16756,7 @@ var init_useLinkSocial = __esm({
|
|
|
16694
16756
|
init_SessionContext();
|
|
16695
16757
|
init_linkedProfiles();
|
|
16696
16758
|
import_react_query22 = require("@tanstack/react-query");
|
|
16697
|
-
|
|
16759
|
+
import_react42 = __toESM(require("react"), 1);
|
|
16698
16760
|
init_auth();
|
|
16699
16761
|
init_telegramBrowser();
|
|
16700
16762
|
init_useProvidersList();
|
|
@@ -16762,7 +16824,7 @@ function useLinkTelegram() {
|
|
|
16762
16824
|
const address = useSession((st) => st.address);
|
|
16763
16825
|
const { providerType, linkIsLoading, setLinkIsLoading, setProviderType, setAlert } = useManageWalletStore();
|
|
16764
16826
|
const setPage = useLayoutDataStore((st) => st.setPage);
|
|
16765
|
-
const handleLinkTelegram = (0,
|
|
16827
|
+
const handleLinkTelegram = (0, import_react43.useCallback)(async () => {
|
|
16766
16828
|
try {
|
|
16767
16829
|
if (shouldBlockSocialAuthInTelegram("telegram")) {
|
|
16768
16830
|
setAlert(buildTelegramBrowserRestriction("Telegram", "linking"));
|
|
@@ -16809,8 +16871,8 @@ function useLinkTelegram() {
|
|
|
16809
16871
|
setLinkIsLoading(false);
|
|
16810
16872
|
}
|
|
16811
16873
|
}, [config.social?.providers]);
|
|
16812
|
-
const [telegramLinkStarted, setTelegramLinkStarted] = (0,
|
|
16813
|
-
(0,
|
|
16874
|
+
const [telegramLinkStarted, setTelegramLinkStarted] = (0, import_react43.useState)(false);
|
|
16875
|
+
(0, import_react43.useEffect)(() => {
|
|
16814
16876
|
console.log("[useLinkTelegram] Effect triggered:", { providerType, linkIsLoading, telegramLinkStarted });
|
|
16815
16877
|
if (providerType === "telegram" && !linkIsLoading && !telegramLinkStarted) {
|
|
16816
16878
|
console.log("[useLinkTelegram] Starting Telegram link flow");
|
|
@@ -16818,20 +16880,20 @@ function useLinkTelegram() {
|
|
|
16818
16880
|
handleLinkTelegram();
|
|
16819
16881
|
}
|
|
16820
16882
|
}, [providerType, handleLinkTelegram, linkIsLoading, telegramLinkStarted]);
|
|
16821
|
-
(0,
|
|
16883
|
+
(0, import_react43.useEffect)(() => {
|
|
16822
16884
|
if (providerType !== "telegram") {
|
|
16823
16885
|
setTelegramLinkStarted(false);
|
|
16824
16886
|
}
|
|
16825
16887
|
}, [providerType]);
|
|
16826
16888
|
}
|
|
16827
|
-
var import_react_query23,
|
|
16889
|
+
var import_react_query23, import_react43;
|
|
16828
16890
|
var init_useLinkTelegram = __esm({
|
|
16829
16891
|
"src/internal/components/ManageWalletMenu/hooks/useLinkTelegram.ts"() {
|
|
16830
16892
|
init_ProviderContext();
|
|
16831
16893
|
init_SessionContext();
|
|
16832
16894
|
init_linkedProfiles();
|
|
16833
16895
|
import_react_query23 = require("@tanstack/react-query");
|
|
16834
|
-
|
|
16896
|
+
import_react43 = require("react");
|
|
16835
16897
|
init_telegram2();
|
|
16836
16898
|
init_useLayoutDataStore();
|
|
16837
16899
|
init_telegramBrowser();
|
|
@@ -16862,7 +16924,7 @@ function getProviderCaption(provider) {
|
|
|
16862
16924
|
function ProviderCard(props) {
|
|
16863
16925
|
const { provider, meta, externalId, disabled } = props;
|
|
16864
16926
|
const { t } = useT();
|
|
16865
|
-
const connections = (0,
|
|
16927
|
+
const connections = (0, import_wagmi2.useConnections)();
|
|
16866
16928
|
const {
|
|
16867
16929
|
mutate: connectExternalWallet,
|
|
16868
16930
|
disconnect: disconnectExternalWallet,
|
|
@@ -16974,14 +17036,14 @@ function ProviderCard(props) {
|
|
|
16974
17036
|
] })
|
|
16975
17037
|
] });
|
|
16976
17038
|
}
|
|
16977
|
-
var import_lucide_react30,
|
|
17039
|
+
var import_lucide_react30, import_wagmi2, import_jsx_runtime71;
|
|
16978
17040
|
var init_ProviderCard = __esm({
|
|
16979
17041
|
"src/internal/components/ManageWalletMenu/ProviderCard.tsx"() {
|
|
16980
17042
|
init_useLayoutDataStore();
|
|
16981
17043
|
init_useT();
|
|
16982
17044
|
init_wallets();
|
|
16983
17045
|
import_lucide_react30 = require("lucide-react");
|
|
16984
|
-
|
|
17046
|
+
import_wagmi2 = require("wagmi");
|
|
16985
17047
|
init_types();
|
|
16986
17048
|
init_cn();
|
|
16987
17049
|
init_ConnectExternalWalletMenu2();
|
|
@@ -17031,7 +17093,7 @@ function ManageWalletMenu() {
|
|
|
17031
17093
|
} = useManageWalletStore();
|
|
17032
17094
|
const configuredProviders = getConfiguredProviders(config.current);
|
|
17033
17095
|
const { data: providers = [], isLoading: isProvidersLoading, error: providersError } = useProvidersList();
|
|
17034
|
-
const renderProviders = (0,
|
|
17096
|
+
const renderProviders = (0, import_react44.useMemo)(() => {
|
|
17035
17097
|
const normalizeProviderName = (name) => {
|
|
17036
17098
|
if (name === "x") return "twitter";
|
|
17037
17099
|
return name;
|
|
@@ -17156,7 +17218,7 @@ function ManageWalletMenu() {
|
|
|
17156
17218
|
] })
|
|
17157
17219
|
] });
|
|
17158
17220
|
}
|
|
17159
|
-
var import_lodash_es11, import_lucide_react31,
|
|
17221
|
+
var import_lodash_es11, import_lucide_react31, import_react44, import_jsx_runtime72, POSSIBLE_PROVIDERS, MULTI_PROVIDERS;
|
|
17160
17222
|
var init_ManageWallet = __esm({
|
|
17161
17223
|
"src/internal/components/ManageWalletMenu/ManageWallet.tsx"() {
|
|
17162
17224
|
init_useLayoutDataStore();
|
|
@@ -17165,7 +17227,7 @@ var init_ManageWallet = __esm({
|
|
|
17165
17227
|
init_i18n();
|
|
17166
17228
|
import_lodash_es11 = require("lodash-es");
|
|
17167
17229
|
import_lucide_react31 = require("lucide-react");
|
|
17168
|
-
|
|
17230
|
+
import_react44 = require("react");
|
|
17169
17231
|
init_constants();
|
|
17170
17232
|
init_telegramBrowser();
|
|
17171
17233
|
init_Expandable2();
|
|
@@ -17198,12 +17260,12 @@ function UnlinkProviderMenu() {
|
|
|
17198
17260
|
const qc = (0, import_react_query24.useQueryClient)();
|
|
17199
17261
|
const address = useSession((st) => st.address);
|
|
17200
17262
|
const { callbacksRef } = useProviderConfig();
|
|
17201
|
-
const { disconnect: disconnectExternalWallet } = (
|
|
17263
|
+
const { disconnect: disconnectExternalWallet } = useSafeDisconnect();
|
|
17202
17264
|
const isExternalConnected = useExternalWalletStore((st) => st.isExternalConnected);
|
|
17203
17265
|
const { t } = useT();
|
|
17204
17266
|
const setPage = useLayoutDataStore((st) => st.setPage);
|
|
17205
17267
|
const { confirmUnlink, setConfirmUnlink, setAlert } = useManageWalletStore();
|
|
17206
|
-
const [confirmInput, setConfirmInput] = (0,
|
|
17268
|
+
const [confirmInput, setConfirmInput] = (0, import_react45.useState)("");
|
|
17207
17269
|
const { mutate: handleUnlinkProvider, isPending: isProviderUnlinking } = (0, import_react_query24.useMutation)({
|
|
17208
17270
|
mutationFn: async () => {
|
|
17209
17271
|
if (!confirmUnlink) {
|
|
@@ -17285,18 +17347,18 @@ function UnlinkProviderMenu() {
|
|
|
17285
17347
|
] })
|
|
17286
17348
|
] });
|
|
17287
17349
|
}
|
|
17288
|
-
var import_react_query24, import_lucide_react32,
|
|
17350
|
+
var import_react_query24, import_lucide_react32, import_react45, import_jsx_runtime73;
|
|
17289
17351
|
var init_UnlinkProviderMenu = __esm({
|
|
17290
17352
|
"src/internal/components/ManageWalletMenu/UnlinkProviderMenu.tsx"() {
|
|
17291
17353
|
init_useLayoutDataStore();
|
|
17292
17354
|
init_ProviderContext();
|
|
17293
17355
|
init_SessionContext();
|
|
17294
17356
|
init_useT();
|
|
17357
|
+
init_useSafeDisconnect();
|
|
17295
17358
|
init_linkedProfiles();
|
|
17296
17359
|
import_react_query24 = require("@tanstack/react-query");
|
|
17297
17360
|
import_lucide_react32 = require("lucide-react");
|
|
17298
|
-
|
|
17299
|
-
import_wagmi2 = require("wagmi");
|
|
17361
|
+
import_react45 = require("react");
|
|
17300
17362
|
init_auth();
|
|
17301
17363
|
init_useExternalWalletStore();
|
|
17302
17364
|
init_button();
|
|
@@ -17336,8 +17398,8 @@ var init_ManageWalletMenu = __esm({
|
|
|
17336
17398
|
|
|
17337
17399
|
// src/internal/components/ConnectExternalWalletMenu/useConnectExternalWalletMenuParams.ts
|
|
17338
17400
|
function useConnectExternalWalletMenuParams() {
|
|
17339
|
-
const paramsRef = (0,
|
|
17340
|
-
(0,
|
|
17401
|
+
const paramsRef = (0, import_react46.useRef)(null);
|
|
17402
|
+
(0, import_react46.useEffect)(() => {
|
|
17341
17403
|
const { pageParams, setPageParams } = useLayoutDataStore.getState();
|
|
17342
17404
|
if (!pageParams || !(0, import_lodash_es12.keys)(pageParams).length) return;
|
|
17343
17405
|
paramsRef.current = pageParams;
|
|
@@ -17345,11 +17407,11 @@ function useConnectExternalWalletMenuParams() {
|
|
|
17345
17407
|
}, []);
|
|
17346
17408
|
return paramsRef;
|
|
17347
17409
|
}
|
|
17348
|
-
var import_lodash_es12,
|
|
17410
|
+
var import_lodash_es12, import_react46;
|
|
17349
17411
|
var init_useConnectExternalWalletMenuParams = __esm({
|
|
17350
17412
|
"src/internal/components/ConnectExternalWalletMenu/useConnectExternalWalletMenuParams.ts"() {
|
|
17351
17413
|
import_lodash_es12 = require("lodash-es");
|
|
17352
|
-
|
|
17414
|
+
import_react46 = require("react");
|
|
17353
17415
|
init_useLayoutDataStore();
|
|
17354
17416
|
}
|
|
17355
17417
|
});
|
|
@@ -17360,18 +17422,18 @@ function hasInjectedWallet() {
|
|
|
17360
17422
|
return mipdStore.getProviders().length > 0 || !!window.ethereum;
|
|
17361
17423
|
}
|
|
17362
17424
|
function useHasInjectedWallet() {
|
|
17363
|
-
return (0,
|
|
17425
|
+
return (0, import_react47.useSyncExternalStore)(
|
|
17364
17426
|
(onStoreChange) => mipdStore?.subscribe(onStoreChange) ?? (() => {
|
|
17365
17427
|
}),
|
|
17366
17428
|
hasInjectedWallet,
|
|
17367
17429
|
() => false
|
|
17368
17430
|
);
|
|
17369
17431
|
}
|
|
17370
|
-
var import_mipd,
|
|
17432
|
+
var import_mipd, import_react47, mipdStore;
|
|
17371
17433
|
var init_useHasInjectedWallet = __esm({
|
|
17372
17434
|
"src/internal/components/ConnectExternalWalletMenu/useHasInjectedWallet.ts"() {
|
|
17373
17435
|
import_mipd = require("mipd");
|
|
17374
|
-
|
|
17436
|
+
import_react47 = require("react");
|
|
17375
17437
|
mipdStore = typeof window !== "undefined" ? (0, import_mipd.createStore)() : void 0;
|
|
17376
17438
|
}
|
|
17377
17439
|
});
|
|
@@ -17394,17 +17456,19 @@ function ConnectExternalWalletMenu() {
|
|
|
17394
17456
|
const connectors = (0, import_wagmi3.useConnectors)();
|
|
17395
17457
|
const hasInjectedWallet2 = useHasInjectedWallet();
|
|
17396
17458
|
const wagmiConfig3 = (0, import_wagmi3.useConfig)();
|
|
17459
|
+
const chains = (0, import_wagmi3.useChains)();
|
|
17397
17460
|
const connections = (0, import_wagmi3.useConnections)();
|
|
17398
|
-
const { mutate: disconnect, mutateAsync: disconnectAsync } = (
|
|
17461
|
+
const { mutate: disconnect, mutateAsync: disconnectAsync } = useSafeDisconnect();
|
|
17399
17462
|
const { mutateAsync: signMessageAsync } = (0, import_wagmi3.useSignMessage)();
|
|
17400
17463
|
const { mutateAsync: switchChainAsync } = (0, import_wagmi3.useSwitchChain)();
|
|
17401
17464
|
const { mutateAsync: switchConnectionAsync } = (0, import_wagmi3.useSwitchConnection)();
|
|
17402
|
-
const [isPreparingConnect, setIsPreparingConnect] = (0,
|
|
17465
|
+
const [isPreparingConnect, setIsPreparingConnect] = (0, import_react48.useState)(false);
|
|
17403
17466
|
const signOnSupportedChain = async (params) => {
|
|
17404
17467
|
const { connector, account, message } = params;
|
|
17405
17468
|
const signOnce = async (viaFallback = false) => {
|
|
17406
17469
|
let chainId = await connector.getChainId();
|
|
17407
|
-
|
|
17470
|
+
const isUnsupportedMetaMaskChain = connector.type === "metaMask" && !chains.some((chain) => chain.id === chainId);
|
|
17471
|
+
if (viaFallback || isUnsupportedMetaMaskChain) {
|
|
17408
17472
|
await switchChainAsync({ connector, chainId: SIGN_FALLBACK_CHAIN_ID });
|
|
17409
17473
|
chainId = SIGN_FALLBACK_CHAIN_ID;
|
|
17410
17474
|
}
|
|
@@ -17425,7 +17489,7 @@ function ConnectExternalWalletMenu() {
|
|
|
17425
17489
|
queryKey: [PROVIDERS_QUERY_KEY, embarkAiAddress],
|
|
17426
17490
|
queryFn: async () => getLinkedProviders()
|
|
17427
17491
|
});
|
|
17428
|
-
const [connectError, setConnectError] = (0,
|
|
17492
|
+
const [connectError, setConnectError] = (0, import_react48.useState)(null);
|
|
17429
17493
|
const { mutateAsync: onLinkingComplete } = (0, import_react_query25.useMutation)({
|
|
17430
17494
|
mutationFn: async (success) => {
|
|
17431
17495
|
useManageWalletStore.getState().setProviderType(null);
|
|
@@ -17579,7 +17643,7 @@ function ConnectExternalWalletMenu() {
|
|
|
17579
17643
|
}, 100);
|
|
17580
17644
|
await dropFailedConnectorSession(error, connector, wagmiConfig3);
|
|
17581
17645
|
}
|
|
17582
|
-
const visibleConnectors = (0,
|
|
17646
|
+
const visibleConnectors = (0, import_react48.useMemo)(() => {
|
|
17583
17647
|
const seen = /* @__PURE__ */ new Set();
|
|
17584
17648
|
const unique = connectors.filter((connector) => {
|
|
17585
17649
|
const skipConnector = seen.has(connector.uid);
|
|
@@ -17597,7 +17661,7 @@ function ConnectExternalWalletMenu() {
|
|
|
17597
17661
|
(connector) => allowed.includes(connector.id.toLowerCase()) || allowed.includes(connector.name.toLowerCase())
|
|
17598
17662
|
);
|
|
17599
17663
|
}, [connectors, allowedWallets, hasInjectedWallet2]);
|
|
17600
|
-
const getInstructionSteps = (0,
|
|
17664
|
+
const getInstructionSteps = (0, import_react48.useCallback)(() => {
|
|
17601
17665
|
const connectFlowType = getConnectFlowType({
|
|
17602
17666
|
isEmbarkAI: !!embarkAiAddress,
|
|
17603
17667
|
connectFlow: menuParams.current?.connectFlowType || "auth"
|
|
@@ -17705,7 +17769,7 @@ function ConnectExternalWalletMenu() {
|
|
|
17705
17769
|
] })
|
|
17706
17770
|
] });
|
|
17707
17771
|
}
|
|
17708
|
-
var import_react_query25, import_lucide_react33,
|
|
17772
|
+
var import_react_query25, import_lucide_react33, import_react48, import_wagmi3, import_chains, import_jsx_runtime74, SIGN_FALLBACK_CHAIN_ID;
|
|
17709
17773
|
var init_ConnectExternalWalletMenu = __esm({
|
|
17710
17774
|
"src/internal/components/ConnectExternalWalletMenu/ConnectExternalWalletMenu.tsx"() {
|
|
17711
17775
|
init_ProviderContext();
|
|
@@ -17713,11 +17777,12 @@ var init_ConnectExternalWalletMenu = __esm({
|
|
|
17713
17777
|
init_useOpenPage();
|
|
17714
17778
|
init_i18n();
|
|
17715
17779
|
init_wallets();
|
|
17780
|
+
init_useSafeDisconnect();
|
|
17716
17781
|
init_connect_errors();
|
|
17717
17782
|
init_linkedProfiles();
|
|
17718
17783
|
import_react_query25 = require("@tanstack/react-query");
|
|
17719
17784
|
import_lucide_react33 = require("lucide-react");
|
|
17720
|
-
|
|
17785
|
+
import_react48 = require("react");
|
|
17721
17786
|
import_wagmi3 = require("wagmi");
|
|
17722
17787
|
import_chains = require("wagmi/chains");
|
|
17723
17788
|
init_common();
|
|
@@ -17745,13 +17810,13 @@ function useExternalWalletConnnect(options) {
|
|
|
17745
17810
|
const connectors = (0, import_wagmi4.useConnectors)();
|
|
17746
17811
|
const connections = (0, import_wagmi4.useConnections)();
|
|
17747
17812
|
const { mutate: connect, mutateAsync: connectAsync, ...restUseConnect } = (0, import_wagmi4.useConnect)();
|
|
17748
|
-
const { mutateAsync: disconnectAsync } = (
|
|
17749
|
-
const disconnectExternalWallet = (0,
|
|
17813
|
+
const { mutateAsync: disconnectAsync } = useSafeDisconnect();
|
|
17814
|
+
const disconnectExternalWallet = (0, import_react49.useCallback)(async () => {
|
|
17750
17815
|
await disconnectAsync();
|
|
17751
17816
|
const { externalAddress, clearExternalWallet } = useExternalWalletStore.getState();
|
|
17752
17817
|
if (!!externalAddress) clearExternalWallet();
|
|
17753
17818
|
}, [disconnectAsync]);
|
|
17754
|
-
const connectExternalWallet = (0,
|
|
17819
|
+
const connectExternalWallet = (0, import_react49.useCallback)(
|
|
17755
17820
|
async (walletConnectorType) => {
|
|
17756
17821
|
const connector = connectors.find((c) => c.id === walletConnectorType);
|
|
17757
17822
|
if (!connector) {
|
|
@@ -17805,12 +17870,13 @@ function useExternalWalletConnnect(options) {
|
|
|
17805
17870
|
...(0, import_lodash_es13.omit)(restUseConnect, ["mutate", "mutateAsync"])
|
|
17806
17871
|
};
|
|
17807
17872
|
}
|
|
17808
|
-
var import_lodash_es13,
|
|
17873
|
+
var import_lodash_es13, import_react49, import_wagmi4;
|
|
17809
17874
|
var init_useExternalWalletConnect = __esm({
|
|
17810
17875
|
"src/internal/components/ConnectExternalWalletMenu/useExternalWalletConnect.ts"() {
|
|
17811
17876
|
init_ProviderContext();
|
|
17877
|
+
init_useSafeDisconnect();
|
|
17812
17878
|
import_lodash_es13 = require("lodash-es");
|
|
17813
|
-
|
|
17879
|
+
import_react49 = require("react");
|
|
17814
17880
|
import_wagmi4 = require("wagmi");
|
|
17815
17881
|
init_useLayoutStore();
|
|
17816
17882
|
init_connect_errors();
|
|
@@ -17903,8 +17969,8 @@ function getErrorMessage(err) {
|
|
|
17903
17969
|
function DeviceLinkScreen() {
|
|
17904
17970
|
const setPage = useLayoutDataStore((s) => s.setPage);
|
|
17905
17971
|
const { mutate: link, isPending } = useLinkDevice();
|
|
17906
|
-
const [code, setCode] = (0,
|
|
17907
|
-
const [error, setError] = (0,
|
|
17972
|
+
const [code, setCode] = (0, import_react50.useState)("");
|
|
17973
|
+
const [error, setError] = (0, import_react50.useState)(null);
|
|
17908
17974
|
const isValid = code.length === 6 && VALID_CHARS.test(code);
|
|
17909
17975
|
function handleCodeChange(value) {
|
|
17910
17976
|
const upper = value.toUpperCase().slice(0, 6);
|
|
@@ -17946,11 +18012,11 @@ function DeviceLinkScreen() {
|
|
|
17946
18012
|
/* @__PURE__ */ (0, import_jsx_runtime75.jsx)(Button, { variant: "default", size: "large", className: "w-full", disabled: !isValid || isPending, onClick: handleLink, children: isPending ? /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(import_lucide_react34.Loader2, { className: "w-4 h-4 animate-spin" }) : "Link" })
|
|
17947
18013
|
] });
|
|
17948
18014
|
}
|
|
17949
|
-
var import_lucide_react34,
|
|
18015
|
+
var import_lucide_react34, import_react50, import_jsx_runtime75, VALID_CHARS;
|
|
17950
18016
|
var init_DeviceLinkScreen = __esm({
|
|
17951
18017
|
"src/internal/components/DevicesMenu/DeviceLinkScreen.tsx"() {
|
|
17952
18018
|
import_lucide_react34 = require("lucide-react");
|
|
17953
|
-
|
|
18019
|
+
import_react50 = require("react");
|
|
17954
18020
|
init_devices();
|
|
17955
18021
|
init_useLayoutDataStore();
|
|
17956
18022
|
init_Expandable2();
|
|
@@ -18489,19 +18555,19 @@ function DeviceManageScreen() {
|
|
|
18489
18555
|
const userId = session?.mpcUserId || "";
|
|
18490
18556
|
const deviceId = pageParams?.deviceId;
|
|
18491
18557
|
const deviceName = pageParams?.deviceName;
|
|
18492
|
-
const guardianRef = (0,
|
|
18493
|
-
const [screen, setScreen] = (0,
|
|
18494
|
-
const [actionState, setActionState] = (0,
|
|
18495
|
-
const [password, setPassword] = (0,
|
|
18496
|
-
const [statusMessage, setStatusMessage] = (0,
|
|
18497
|
-
const [errorMessage, setErrorMessage] = (0,
|
|
18498
|
-
const [waitingConfirm, setWaitingConfirm] = (0,
|
|
18499
|
-
(0,
|
|
18558
|
+
const guardianRef = (0, import_react51.useRef)(null);
|
|
18559
|
+
const [screen, setScreen] = (0, import_react51.useState)({ step: "connecting" });
|
|
18560
|
+
const [actionState, setActionState] = (0, import_react51.useState)(null);
|
|
18561
|
+
const [password, setPassword] = (0, import_react51.useState)("");
|
|
18562
|
+
const [statusMessage, setStatusMessage] = (0, import_react51.useState)(null);
|
|
18563
|
+
const [errorMessage, setErrorMessage] = (0, import_react51.useState)(null);
|
|
18564
|
+
const [waitingConfirm, setWaitingConfirm] = (0, import_react51.useState)(false);
|
|
18565
|
+
(0, import_react51.useEffect)(() => {
|
|
18500
18566
|
if (!statusMessage) return;
|
|
18501
18567
|
const t = setTimeout(() => setStatusMessage(null), 3e3);
|
|
18502
18568
|
return () => clearTimeout(t);
|
|
18503
18569
|
}, [statusMessage]);
|
|
18504
|
-
(0,
|
|
18570
|
+
(0, import_react51.useEffect)(() => {
|
|
18505
18571
|
if (!deviceId || !isWebSerialAvailable()) {
|
|
18506
18572
|
setScreen({ step: "error", message: "WebSerial not available" });
|
|
18507
18573
|
return;
|
|
@@ -18533,7 +18599,7 @@ function DeviceManageScreen() {
|
|
|
18533
18599
|
guardianRef.current?.close();
|
|
18534
18600
|
};
|
|
18535
18601
|
}, [deviceId]);
|
|
18536
|
-
const refreshList = (0,
|
|
18602
|
+
const refreshList = (0, import_react51.useCallback)(async () => {
|
|
18537
18603
|
const guardian = guardianRef.current;
|
|
18538
18604
|
if (!guardian || screen.step !== "connected") return;
|
|
18539
18605
|
try {
|
|
@@ -18542,7 +18608,7 @@ function DeviceManageScreen() {
|
|
|
18542
18608
|
} catch {
|
|
18543
18609
|
}
|
|
18544
18610
|
}, [screen]);
|
|
18545
|
-
const handleBackup = (0,
|
|
18611
|
+
const handleBackup = (0, import_react51.useCallback)(async () => {
|
|
18546
18612
|
const guardian = guardianRef.current;
|
|
18547
18613
|
const iframe6 = getIframeManager();
|
|
18548
18614
|
if (!guardian || !iframe6 || !userId) return;
|
|
@@ -18566,7 +18632,7 @@ function DeviceManageScreen() {
|
|
|
18566
18632
|
setActionState(null);
|
|
18567
18633
|
}
|
|
18568
18634
|
}, [password, userId, refreshList]);
|
|
18569
|
-
const handleOverwrite = (0,
|
|
18635
|
+
const handleOverwrite = (0, import_react51.useCallback)(async () => {
|
|
18570
18636
|
const guardian = guardianRef.current;
|
|
18571
18637
|
const iframe6 = getIframeManager();
|
|
18572
18638
|
if (!guardian || !iframe6 || !userId) return;
|
|
@@ -18586,7 +18652,7 @@ function DeviceManageScreen() {
|
|
|
18586
18652
|
setActionState(null);
|
|
18587
18653
|
}
|
|
18588
18654
|
}, [password, userId, refreshList]);
|
|
18589
|
-
const handleDelete = (0,
|
|
18655
|
+
const handleDelete = (0, import_react51.useCallback)(
|
|
18590
18656
|
async (keyshareId) => {
|
|
18591
18657
|
const guardian = guardianRef.current;
|
|
18592
18658
|
if (!guardian) return;
|
|
@@ -18773,12 +18839,12 @@ function DeviceManageScreen() {
|
|
|
18773
18839
|
] })
|
|
18774
18840
|
] });
|
|
18775
18841
|
}
|
|
18776
|
-
var import_lucide_react35,
|
|
18842
|
+
var import_lucide_react35, import_react51, import_jsx_runtime76;
|
|
18777
18843
|
var init_DeviceManageScreen = __esm({
|
|
18778
18844
|
"src/internal/components/DevicesMenu/DeviceManageScreen.tsx"() {
|
|
18779
18845
|
init_SessionContext();
|
|
18780
18846
|
import_lucide_react35 = require("lucide-react");
|
|
18781
|
-
|
|
18847
|
+
import_react51 = require("react");
|
|
18782
18848
|
init_guardian_backup();
|
|
18783
18849
|
init_useLayoutDataStore();
|
|
18784
18850
|
init_iframe_manager();
|
|
@@ -18797,11 +18863,11 @@ function DeviceRestoreScreen() {
|
|
|
18797
18863
|
const keyshareId = pageParams?.keyshareId;
|
|
18798
18864
|
const deviceId = pageParams?.deviceId;
|
|
18799
18865
|
const deviceName = pageParams?.deviceName;
|
|
18800
|
-
const [password, setPassword] = (0,
|
|
18801
|
-
const [isWorking, setIsWorking] = (0,
|
|
18802
|
-
const [statusMessage, setStatusMessage] = (0,
|
|
18803
|
-
const [errorMessage, setErrorMessage] = (0,
|
|
18804
|
-
const handleRestore = (0,
|
|
18866
|
+
const [password, setPassword] = (0, import_react52.useState)("");
|
|
18867
|
+
const [isWorking, setIsWorking] = (0, import_react52.useState)(false);
|
|
18868
|
+
const [statusMessage, setStatusMessage] = (0, import_react52.useState)(null);
|
|
18869
|
+
const [errorMessage, setErrorMessage] = (0, import_react52.useState)(null);
|
|
18870
|
+
const handleRestore = (0, import_react52.useCallback)(async () => {
|
|
18805
18871
|
if (!password || !keyshareId || !userId) return;
|
|
18806
18872
|
const iframe6 = getIframeManager();
|
|
18807
18873
|
if (!iframe6) {
|
|
@@ -18881,12 +18947,12 @@ function DeviceRestoreScreen() {
|
|
|
18881
18947
|
errorMessage && /* @__PURE__ */ (0, import_jsx_runtime77.jsx)("div", { className: "text-sm text-[var(--ui-kit-bg-error)] p-2 text-center", children: errorMessage })
|
|
18882
18948
|
] });
|
|
18883
18949
|
}
|
|
18884
|
-
var import_lucide_react36,
|
|
18950
|
+
var import_lucide_react36, import_react52, import_jsx_runtime77;
|
|
18885
18951
|
var init_DeviceRestoreScreen = __esm({
|
|
18886
18952
|
"src/internal/components/DevicesMenu/DeviceRestoreScreen.tsx"() {
|
|
18887
18953
|
init_SessionContext();
|
|
18888
18954
|
import_lucide_react36 = require("lucide-react");
|
|
18889
|
-
|
|
18955
|
+
import_react52 = require("react");
|
|
18890
18956
|
init_guardian_backup();
|
|
18891
18957
|
init_useLayoutDataStore();
|
|
18892
18958
|
init_iframe_manager();
|
|
@@ -18906,8 +18972,8 @@ function truncateAddress(address) {
|
|
|
18906
18972
|
return `${address.slice(0, 6)}...${address.slice(-4)}`;
|
|
18907
18973
|
}
|
|
18908
18974
|
function DeviceRow({ device }) {
|
|
18909
|
-
const [confirmingUnlink, setConfirmingUnlink] = (0,
|
|
18910
|
-
const [unlinkError, setUnlinkError] = (0,
|
|
18975
|
+
const [confirmingUnlink, setConfirmingUnlink] = (0, import_react53.useState)(false);
|
|
18976
|
+
const [unlinkError, setUnlinkError] = (0, import_react53.useState)(null);
|
|
18911
18977
|
const { mutate: unlink, isPending } = useUnlinkDevice();
|
|
18912
18978
|
if (confirmingUnlink) {
|
|
18913
18979
|
return /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)("div", { className: "flex flex-col gap-2 p-3 rounded-lg bg-[var(--ui-kit-bg)]", children: [
|
|
@@ -19008,11 +19074,11 @@ function DevicesMenu() {
|
|
|
19008
19074
|
] })
|
|
19009
19075
|
] });
|
|
19010
19076
|
}
|
|
19011
|
-
var import_lucide_react37,
|
|
19077
|
+
var import_lucide_react37, import_react53, import_jsx_runtime78;
|
|
19012
19078
|
var init_DevicesMenu = __esm({
|
|
19013
19079
|
"src/internal/components/DevicesMenu/DevicesMenu.tsx"() {
|
|
19014
19080
|
import_lucide_react37 = require("lucide-react");
|
|
19015
|
-
|
|
19081
|
+
import_react53 = require("react");
|
|
19016
19082
|
init_devices();
|
|
19017
19083
|
init_guardian_backup();
|
|
19018
19084
|
init_useLayoutDataStore();
|
|
@@ -19072,7 +19138,7 @@ function useOnRestoreSuccess() {
|
|
|
19072
19138
|
setStatus
|
|
19073
19139
|
} = useSession();
|
|
19074
19140
|
const { setError, setSuccess } = useRestoreStore();
|
|
19075
|
-
const createSessionWithKeyshare = (0,
|
|
19141
|
+
const createSessionWithKeyshare = (0, import_react54.useCallback)(
|
|
19076
19142
|
async (userId, hasServerKeyshare, isNewUser) => {
|
|
19077
19143
|
try {
|
|
19078
19144
|
try {
|
|
@@ -19113,7 +19179,7 @@ function useOnRestoreSuccess() {
|
|
|
19113
19179
|
},
|
|
19114
19180
|
[setStatus, usePaymaster, activeChainId, publicClient]
|
|
19115
19181
|
);
|
|
19116
|
-
const onRestoreSuccess = (0,
|
|
19182
|
+
const onRestoreSuccess = (0, import_react54.useCallback)(async () => {
|
|
19117
19183
|
const { verifyToken: verifyToken2, jwtTokenManager: jwtTokenManager4 } = await Promise.resolve().then(() => (init_auth(), auth_exports));
|
|
19118
19184
|
const verify = await verifyToken2();
|
|
19119
19185
|
const hasServerKeyshare = verify?.hasKeyshare ?? jwtTokenManager4.getHasKeyshare() ?? false;
|
|
@@ -19179,12 +19245,12 @@ function useOnRestoreSuccess() {
|
|
|
19179
19245
|
]);
|
|
19180
19246
|
return { onRestoreSuccess };
|
|
19181
19247
|
}
|
|
19182
|
-
var
|
|
19248
|
+
var import_react54;
|
|
19183
19249
|
var init_useOnRestoreSuccess = __esm({
|
|
19184
19250
|
"src/internal/components/KeyshareRestoreMenu/hooks/useOnRestoreSuccess.ts"() {
|
|
19185
19251
|
init_ProviderContext();
|
|
19186
19252
|
init_SessionContext();
|
|
19187
|
-
|
|
19253
|
+
import_react54 = require("react");
|
|
19188
19254
|
init_useLayoutDataStore();
|
|
19189
19255
|
init_useLayoutStore();
|
|
19190
19256
|
init_useRestoreStore();
|
|
@@ -19447,7 +19513,7 @@ function useCreateBackup() {
|
|
|
19447
19513
|
const usePasskey = useRestoreStore((st) => st.usePasskey);
|
|
19448
19514
|
const restorePassword = useRestoreStore((st) => st.restorePassword);
|
|
19449
19515
|
const selectedCloudProvider = useRestoreStore((st) => st.selectedCloudProvider);
|
|
19450
|
-
(0,
|
|
19516
|
+
(0, import_react55.useEffect)(() => {
|
|
19451
19517
|
if (!hasServerVault) {
|
|
19452
19518
|
useRestoreStore.getState().setMethod("server");
|
|
19453
19519
|
useLayoutStore.getState().setIsDialogForced(true);
|
|
@@ -19455,7 +19521,7 @@ function useCreateBackup() {
|
|
|
19455
19521
|
}, [hasServerVault]);
|
|
19456
19522
|
const recoveryUserId = useSession((st) => st.recoveryUserId);
|
|
19457
19523
|
const passportUserId = session?.mpcUserId || recoveryUserId || "";
|
|
19458
|
-
const onBackupSuccess = (0,
|
|
19524
|
+
const onBackupSuccess = (0, import_react55.useCallback)((method) => {
|
|
19459
19525
|
console.log(`[EMBARKAI BACKUP] ${method} backup created successfully`);
|
|
19460
19526
|
if (method !== "server") return;
|
|
19461
19527
|
const { setIsDialogForced } = useLayoutStore.getState();
|
|
@@ -19628,12 +19694,12 @@ function useCreateBackup() {
|
|
|
19628
19694
|
createPasskey
|
|
19629
19695
|
};
|
|
19630
19696
|
}
|
|
19631
|
-
var import_react_query27,
|
|
19697
|
+
var import_react_query27, import_react55;
|
|
19632
19698
|
var init_useCreateBackup = __esm({
|
|
19633
19699
|
"src/internal/components/KeyshareRestoreMenu/hooks/useCreateBackup.ts"() {
|
|
19634
19700
|
init_SessionContext();
|
|
19635
19701
|
import_react_query27 = require("@tanstack/react-query");
|
|
19636
|
-
|
|
19702
|
+
import_react55 = require("react");
|
|
19637
19703
|
init_auth();
|
|
19638
19704
|
init_useLayoutDataStore();
|
|
19639
19705
|
init_useLayoutStore();
|
|
@@ -19770,7 +19836,7 @@ function useValidateFileBackup() {
|
|
|
19770
19836
|
const restoreFile = useRestoreStore((st) => st.restoreFile);
|
|
19771
19837
|
const setError = useRestoreStore((st) => st.setError);
|
|
19772
19838
|
const setUsePasskey = useRestoreStore((st) => st.setUsePasskey);
|
|
19773
|
-
(0,
|
|
19839
|
+
(0, import_react56.useEffect)(() => {
|
|
19774
19840
|
if (!restoreFile) {
|
|
19775
19841
|
return;
|
|
19776
19842
|
}
|
|
@@ -19791,10 +19857,10 @@ function useValidateFileBackup() {
|
|
|
19791
19857
|
reader.readAsText(restoreFile);
|
|
19792
19858
|
}, [restoreFile]);
|
|
19793
19859
|
}
|
|
19794
|
-
var
|
|
19860
|
+
var import_react56;
|
|
19795
19861
|
var init_useValidateFileBackup = __esm({
|
|
19796
19862
|
"src/internal/components/KeyshareRestoreMenu/hooks/useValidateFileBackup.ts"() {
|
|
19797
|
-
|
|
19863
|
+
import_react56 = require("react");
|
|
19798
19864
|
init_useRestoreStore();
|
|
19799
19865
|
}
|
|
19800
19866
|
});
|
|
@@ -19822,7 +19888,7 @@ function MethodSelector(props) {
|
|
|
19822
19888
|
setError,
|
|
19823
19889
|
setSuccess
|
|
19824
19890
|
} = useRestoreStore();
|
|
19825
|
-
const recoveryRenderMethods = (0,
|
|
19891
|
+
const recoveryRenderMethods = (0, import_react57.useMemo)(() => {
|
|
19826
19892
|
const methodsWithBackupData = getRecoveryRenderMethods(mode).map((mt) => {
|
|
19827
19893
|
let data = null;
|
|
19828
19894
|
switch (true) {
|
|
@@ -19837,7 +19903,7 @@ function MethodSelector(props) {
|
|
|
19837
19903
|
return methodsWithBackupData;
|
|
19838
19904
|
}, [mode, serverRecoveryStatus]);
|
|
19839
19905
|
if (!!selectedRecoveryMethod) return null;
|
|
19840
|
-
return /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(
|
|
19906
|
+
return /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(import_react57.Fragment, { children: /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(
|
|
19841
19907
|
"div",
|
|
19842
19908
|
{
|
|
19843
19909
|
style: { gridTemplateColumns: `repeat(${recoveryRenderMethods.length}, minmax(0, 1fr))` },
|
|
@@ -19871,12 +19937,12 @@ function MethodSelector(props) {
|
|
|
19871
19937
|
}
|
|
19872
19938
|
) });
|
|
19873
19939
|
}
|
|
19874
|
-
var import_lucide_react38,
|
|
19940
|
+
var import_lucide_react38, import_react57, import_jsx_runtime79, getRecoveryRenderMethods;
|
|
19875
19941
|
var init_MethodSelector = __esm({
|
|
19876
19942
|
"src/internal/components/KeyshareRestoreMenu/components/MethodSelector.tsx"() {
|
|
19877
19943
|
init_useT();
|
|
19878
19944
|
import_lucide_react38 = require("lucide-react");
|
|
19879
|
-
|
|
19945
|
+
import_react57 = require("react");
|
|
19880
19946
|
init_icons();
|
|
19881
19947
|
init_guardian_backup();
|
|
19882
19948
|
init_button();
|
|
@@ -20012,7 +20078,7 @@ function PasswordPasskey(props) {
|
|
|
20012
20078
|
onCreatePasskey
|
|
20013
20079
|
} = props;
|
|
20014
20080
|
const hasServerVault = useSession((st) => st.hasServerVault);
|
|
20015
|
-
const actionRef = (0,
|
|
20081
|
+
const actionRef = (0, import_react58.useRef)(null);
|
|
20016
20082
|
const {
|
|
20017
20083
|
showPassword,
|
|
20018
20084
|
restorePassword,
|
|
@@ -20026,7 +20092,7 @@ function PasswordPasskey(props) {
|
|
|
20026
20092
|
} = useRestoreStore();
|
|
20027
20093
|
const { config } = useProviderConfig();
|
|
20028
20094
|
const isPasskeyEnabled = config.current.passkey.enabled;
|
|
20029
|
-
(0,
|
|
20095
|
+
(0, import_react58.useEffect)(() => {
|
|
20030
20096
|
if (!isPasskeyEnabled && usePasskey) setUsePasskey(false);
|
|
20031
20097
|
}, [isPasskeyEnabled, usePasskey]);
|
|
20032
20098
|
return /* @__PURE__ */ (0, import_jsx_runtime80.jsxs)(import_jsx_runtime80.Fragment, { children: [
|
|
@@ -20190,7 +20256,7 @@ function PasswordPasskey(props) {
|
|
|
20190
20256
|
] })
|
|
20191
20257
|
] });
|
|
20192
20258
|
}
|
|
20193
|
-
var import_lucide_react39,
|
|
20259
|
+
var import_lucide_react39, import_react58, import_jsx_runtime80;
|
|
20194
20260
|
var init_PasswordPasskey = __esm({
|
|
20195
20261
|
"src/internal/components/KeyshareRestoreMenu/components/PasswordPasskey.tsx"() {
|
|
20196
20262
|
init_ProviderContext();
|
|
@@ -20198,7 +20264,7 @@ var init_PasswordPasskey = __esm({
|
|
|
20198
20264
|
init_i18n();
|
|
20199
20265
|
init_utils();
|
|
20200
20266
|
import_lucide_react39 = require("lucide-react");
|
|
20201
|
-
|
|
20267
|
+
import_react58 = require("react");
|
|
20202
20268
|
init_icons();
|
|
20203
20269
|
init_Onboarding();
|
|
20204
20270
|
init_button();
|
|
@@ -20375,7 +20441,7 @@ function Server(props) {
|
|
|
20375
20441
|
const usePasskey = useRestoreStore((st) => st.usePasskey);
|
|
20376
20442
|
const setUsePasskey = useRestoreStore((st) => st.setUsePasskey);
|
|
20377
20443
|
const serverRecoveryStatus = qc.getQueryData([CHECK_BACKUP_QUERY_KEY, address]);
|
|
20378
|
-
(0,
|
|
20444
|
+
(0, import_react59.useEffect)(() => {
|
|
20379
20445
|
if (mode === "backup" || !serverRecoveryStatus?.created?.encryptionMethod) return;
|
|
20380
20446
|
setUsePasskey(serverRecoveryStatus.created.encryptionMethod === "passkey");
|
|
20381
20447
|
}, [mode, serverRecoveryStatus, setUsePasskey]);
|
|
@@ -20418,7 +20484,7 @@ function Server(props) {
|
|
|
20418
20484
|
)
|
|
20419
20485
|
] });
|
|
20420
20486
|
}
|
|
20421
|
-
var import_react_query29, import_dayjs4, import_lucide_react42,
|
|
20487
|
+
var import_react_query29, import_dayjs4, import_lucide_react42, import_react59, import_jsx_runtime83;
|
|
20422
20488
|
var init_Server = __esm({
|
|
20423
20489
|
"src/internal/components/KeyshareRestoreMenu/methods/Server.tsx"() {
|
|
20424
20490
|
init_SessionContext();
|
|
@@ -20427,7 +20493,7 @@ var init_Server = __esm({
|
|
|
20427
20493
|
import_react_query29 = require("@tanstack/react-query");
|
|
20428
20494
|
import_dayjs4 = __toESM(require("dayjs"), 1);
|
|
20429
20495
|
import_lucide_react42 = require("lucide-react");
|
|
20430
|
-
|
|
20496
|
+
import_react59 = require("react");
|
|
20431
20497
|
init_Onboarding();
|
|
20432
20498
|
init_highlight();
|
|
20433
20499
|
init_PasswordPasskey();
|
|
@@ -20591,7 +20657,7 @@ function Cloud2(props) {
|
|
|
20591
20657
|
return availableProviders.map((p) => ({ id: p.id, name: p.name, available: p.isAvailable() }));
|
|
20592
20658
|
}
|
|
20593
20659
|
});
|
|
20594
|
-
(0,
|
|
20660
|
+
(0, import_react60.useEffect)(() => {
|
|
20595
20661
|
if (isCloudProvidersLoading) return;
|
|
20596
20662
|
if (!!cloudProvidersError) {
|
|
20597
20663
|
console.error("[KeyshareBackup] Failed to load cloud providers:", cloudProvidersError);
|
|
@@ -20655,13 +20721,13 @@ function Cloud2(props) {
|
|
|
20655
20721
|
)
|
|
20656
20722
|
] });
|
|
20657
20723
|
}
|
|
20658
|
-
var import_react_query30, import_lucide_react44,
|
|
20724
|
+
var import_react_query30, import_lucide_react44, import_react60, import_jsx_runtime85;
|
|
20659
20725
|
var init_Cloud = __esm({
|
|
20660
20726
|
"src/internal/components/KeyshareRestoreMenu/methods/Cloud.tsx"() {
|
|
20661
20727
|
init_SessionContext();
|
|
20662
20728
|
import_react_query30 = require("@tanstack/react-query");
|
|
20663
20729
|
import_lucide_react44 = require("lucide-react");
|
|
20664
|
-
|
|
20730
|
+
import_react60 = require("react");
|
|
20665
20731
|
init_button();
|
|
20666
20732
|
init_select();
|
|
20667
20733
|
init_PasswordPasskey();
|
|
@@ -20678,8 +20744,8 @@ function Guardian(props) {
|
|
|
20678
20744
|
const session = useSession((st) => st.session);
|
|
20679
20745
|
const recoveryUserId = useSession((st) => st.recoveryUserId);
|
|
20680
20746
|
const { onRestoreSuccess } = useOnRestoreSuccess();
|
|
20681
|
-
const [isWorking, setIsWorking] = (0,
|
|
20682
|
-
const [step, setStep] = (0,
|
|
20747
|
+
const [isWorking, setIsWorking] = (0, import_react61.useState)(false);
|
|
20748
|
+
const [step, setStep] = (0, import_react61.useState)("idle");
|
|
20683
20749
|
const handleGuardianBackup = async () => {
|
|
20684
20750
|
if (!restorePassword) {
|
|
20685
20751
|
setError("Please enter a password");
|
|
@@ -20808,11 +20874,11 @@ function Guardian(props) {
|
|
|
20808
20874
|
] })
|
|
20809
20875
|
] });
|
|
20810
20876
|
}
|
|
20811
|
-
var
|
|
20877
|
+
var import_react61, import_lucide_react45, import_jsx_runtime86;
|
|
20812
20878
|
var init_Guardian = __esm({
|
|
20813
20879
|
"src/internal/components/KeyshareRestoreMenu/methods/Guardian.tsx"() {
|
|
20814
20880
|
init_SessionContext();
|
|
20815
|
-
|
|
20881
|
+
import_react61 = require("react");
|
|
20816
20882
|
import_lucide_react45 = require("lucide-react");
|
|
20817
20883
|
init_iframe_manager();
|
|
20818
20884
|
init_guardian_backup();
|
|
@@ -20835,16 +20901,16 @@ var init_methods = __esm({
|
|
|
20835
20901
|
});
|
|
20836
20902
|
|
|
20837
20903
|
// src/internal/components/KeyshareRestoreMenu/KeyshareRestoreMenu.tsx
|
|
20838
|
-
var import_react_query31, import_lucide_react46,
|
|
20904
|
+
var import_react_query31, import_lucide_react46, import_react62, import_jsx_runtime87, RESTORE_COMPONENTS, KeyshareRestoreMenu;
|
|
20839
20905
|
var init_KeyshareRestoreMenu = __esm({
|
|
20840
20906
|
"src/internal/components/KeyshareRestoreMenu/KeyshareRestoreMenu.tsx"() {
|
|
20841
20907
|
init_ProviderContext();
|
|
20842
20908
|
init_SessionContext();
|
|
20843
20909
|
init_i18n();
|
|
20910
|
+
init_useSafeDisconnect();
|
|
20844
20911
|
import_react_query31 = require("@tanstack/react-query");
|
|
20845
20912
|
import_lucide_react46 = require("lucide-react");
|
|
20846
|
-
|
|
20847
|
-
import_wagmi5 = require("wagmi");
|
|
20913
|
+
import_react62 = require("react");
|
|
20848
20914
|
init_useLayoutDataStore();
|
|
20849
20915
|
init_useLayoutStore();
|
|
20850
20916
|
init_useExternalWalletStore();
|
|
@@ -20873,7 +20939,7 @@ var init_KeyshareRestoreMenu = __esm({
|
|
|
20873
20939
|
const error = useRestoreStore((st) => st.error);
|
|
20874
20940
|
const success = useRestoreStore((st) => st.success);
|
|
20875
20941
|
const currentRestoreMethod = useRestoreStore((st) => st.method);
|
|
20876
|
-
(0,
|
|
20942
|
+
(0, import_react62.useEffect)(() => {
|
|
20877
20943
|
const { setIsDialogForced } = useLayoutStore.getState();
|
|
20878
20944
|
const { setRestorePassword, setRestoreFile, setShowPassword, setUsePasskey, setMethod } = useRestoreStore.getState();
|
|
20879
20945
|
setIsDialogForced(true);
|
|
@@ -20886,7 +20952,7 @@ var init_KeyshareRestoreMenu = __esm({
|
|
|
20886
20952
|
setIsDialogForced(false);
|
|
20887
20953
|
};
|
|
20888
20954
|
}, []);
|
|
20889
|
-
const { mutate: wagmiDisconnect } = (
|
|
20955
|
+
const { mutate: wagmiDisconnect } = useSafeDisconnect({
|
|
20890
20956
|
mutation: {
|
|
20891
20957
|
onSuccess: () => {
|
|
20892
20958
|
useExternalWalletStore.getState().clearExternalWallet();
|
|
@@ -20912,7 +20978,7 @@ var init_KeyshareRestoreMenu = __esm({
|
|
|
20912
20978
|
queryFn: async () => await getShareRecoveryStats()
|
|
20913
20979
|
});
|
|
20914
20980
|
const hasServerBackup = serverRecoveryStatus?.created || serverRecoveryStatus?.devices?.length > 0;
|
|
20915
|
-
(0,
|
|
20981
|
+
(0, import_react62.useEffect)(() => {
|
|
20916
20982
|
if (!!hasServerBackup) useRestoreStore.getState().setMethod("server");
|
|
20917
20983
|
}, [hasServerBackup]);
|
|
20918
20984
|
const { mutate: disconnect, isPending: isDisconnecting } = (0, import_react_query31.useMutation)({
|
|
@@ -21059,7 +21125,7 @@ function KeyshareBackupMenu() {
|
|
|
21059
21125
|
const usePasskey = useRestoreStore((st) => st.usePasskey);
|
|
21060
21126
|
const error = useRestoreStore((st) => st.error);
|
|
21061
21127
|
const success = useRestoreStore((st) => st.success);
|
|
21062
|
-
(0,
|
|
21128
|
+
(0, import_react63.useEffect)(() => {
|
|
21063
21129
|
const { setSuccess, setError, setRestorePassword, setRestoreFile, setShowPassword, setUsePasskey, setMethod } = useRestoreStore.getState();
|
|
21064
21130
|
return () => {
|
|
21065
21131
|
setSuccess(null);
|
|
@@ -21079,7 +21145,7 @@ function KeyshareBackupMenu() {
|
|
|
21079
21145
|
});
|
|
21080
21146
|
useOnboardingTourAvailable(!isRecoveryLoading && currentBackupMethod === "server" && !usePasskey);
|
|
21081
21147
|
const hasRecoveryData2 = serverRecoveryStatus?.created || serverRecoveryStatus?.devices?.length > 0;
|
|
21082
|
-
(0,
|
|
21148
|
+
(0, import_react63.useEffect)(() => {
|
|
21083
21149
|
if (!!hasRecoveryData2) useRestoreStore.getState().setMethod("server");
|
|
21084
21150
|
}, [hasRecoveryData2]);
|
|
21085
21151
|
const {
|
|
@@ -21198,14 +21264,14 @@ function KeyshareBackupMenu() {
|
|
|
21198
21264
|
] })
|
|
21199
21265
|
] });
|
|
21200
21266
|
}
|
|
21201
|
-
var import_react_query32, import_lucide_react47,
|
|
21267
|
+
var import_react_query32, import_lucide_react47, import_react63, import_jsx_runtime88, COMPONENTS;
|
|
21202
21268
|
var init_KeyshareBackupMenu = __esm({
|
|
21203
21269
|
"src/internal/components/KeyshareRestoreMenu/KeyshareBackupMenu.tsx"() {
|
|
21204
21270
|
init_SessionContext();
|
|
21205
21271
|
init_i18n();
|
|
21206
21272
|
import_react_query32 = require("@tanstack/react-query");
|
|
21207
21273
|
import_lucide_react47 = require("lucide-react");
|
|
21208
|
-
|
|
21274
|
+
import_react63 = require("react");
|
|
21209
21275
|
init_useLayoutDataStore();
|
|
21210
21276
|
init_vaultClient();
|
|
21211
21277
|
init_Expandable2();
|
|
@@ -21333,13 +21399,13 @@ var init_SumsubIframeManager = __esm({
|
|
|
21333
21399
|
function useSumsubIframe({ iframeUrl }) {
|
|
21334
21400
|
const config = useProviderConfig().config;
|
|
21335
21401
|
const { colorMode } = useColorMode();
|
|
21336
|
-
const iframeRef = (0,
|
|
21337
|
-
const [isLoading, setIsLoading] = (0,
|
|
21338
|
-
const [error, setError] = (0,
|
|
21339
|
-
const [height, setHeight] = (0,
|
|
21340
|
-
const [status, setStatus] = (0,
|
|
21402
|
+
const iframeRef = (0, import_react64.useRef)(null);
|
|
21403
|
+
const [isLoading, setIsLoading] = (0, import_react64.useState)(true);
|
|
21404
|
+
const [error, setError] = (0, import_react64.useState)(null);
|
|
21405
|
+
const [height, setHeight] = (0, import_react64.useState)(0);
|
|
21406
|
+
const [status, setStatus] = (0, import_react64.useState)("");
|
|
21341
21407
|
const levelName = config.current?.kyc?.options?.levelName;
|
|
21342
|
-
(0,
|
|
21408
|
+
(0, import_react64.useEffect)(() => {
|
|
21343
21409
|
setError(null);
|
|
21344
21410
|
setIsLoading(true);
|
|
21345
21411
|
setStatus("Preparing verification...");
|
|
@@ -21380,12 +21446,12 @@ function useSumsubIframe({ iframeUrl }) {
|
|
|
21380
21446
|
status
|
|
21381
21447
|
};
|
|
21382
21448
|
}
|
|
21383
|
-
var
|
|
21449
|
+
var import_react64;
|
|
21384
21450
|
var init_useSumsubIframe = __esm({
|
|
21385
21451
|
"src/internal/components/KYC/useSumsubIframe.ts"() {
|
|
21386
21452
|
init_ProviderContext();
|
|
21387
21453
|
init_useColorMode();
|
|
21388
|
-
|
|
21454
|
+
import_react64 = require("react");
|
|
21389
21455
|
init_sumsub();
|
|
21390
21456
|
init_SumsubIframeManager();
|
|
21391
21457
|
}
|
|
@@ -21593,11 +21659,11 @@ function useResolvedPublicClient(chainId, logScope = "useResolvedPublicClient")
|
|
|
21593
21659
|
const activeChainConfig = useSession((st) => st.chainConfig);
|
|
21594
21660
|
const resolvedChainId = chainId ?? activeChainId;
|
|
21595
21661
|
const shouldUseActiveClient = !chainId || chainId === activeChainId;
|
|
21596
|
-
const chainConfig = (0,
|
|
21662
|
+
const chainConfig = (0, import_react65.useMemo)(() => {
|
|
21597
21663
|
if (shouldUseActiveClient) return activeChainConfig;
|
|
21598
21664
|
return (0, import_read16.getChainConfig)(chainId);
|
|
21599
21665
|
}, [activeChainConfig, chainId, shouldUseActiveClient]);
|
|
21600
|
-
const publicClient = (0,
|
|
21666
|
+
const publicClient = (0, import_react65.useMemo)(() => {
|
|
21601
21667
|
if (shouldUseActiveClient) return activePublicClient;
|
|
21602
21668
|
if (!chainId) return activePublicClient;
|
|
21603
21669
|
try {
|
|
@@ -21614,12 +21680,12 @@ function useResolvedPublicClient(chainId, logScope = "useResolvedPublicClient")
|
|
|
21614
21680
|
resolvedChainId
|
|
21615
21681
|
};
|
|
21616
21682
|
}
|
|
21617
|
-
var import_read16,
|
|
21683
|
+
var import_read16, import_react65, publicClientByChainId;
|
|
21618
21684
|
var init_useResolvedPublicClient = __esm({
|
|
21619
21685
|
"src/internal/hooks/useResolvedPublicClient.ts"() {
|
|
21620
21686
|
init_SessionContext();
|
|
21621
21687
|
import_read16 = require("@embarkai/core/read");
|
|
21622
|
-
|
|
21688
|
+
import_react65 = require("react");
|
|
21623
21689
|
publicClientByChainId = /* @__PURE__ */ new Map();
|
|
21624
21690
|
}
|
|
21625
21691
|
});
|
|
@@ -21683,7 +21749,7 @@ var init_useNativeBalance = __esm({
|
|
|
21683
21749
|
function useWatchTokens(options) {
|
|
21684
21750
|
const { address, chainId, enabled, publicClient } = options;
|
|
21685
21751
|
const { config } = useProviderConfig();
|
|
21686
|
-
const watchTokens = (0,
|
|
21752
|
+
const watchTokens = (0, import_react66.useMemo)(() => {
|
|
21687
21753
|
const allWatchTokens = config.current.watchTokens;
|
|
21688
21754
|
const tokensForChain = chainId ? allWatchTokens?.[chainId] || [] : [];
|
|
21689
21755
|
return tokensForChain;
|
|
@@ -21751,12 +21817,12 @@ function useWatchTokens(options) {
|
|
|
21751
21817
|
}
|
|
21752
21818
|
});
|
|
21753
21819
|
}
|
|
21754
|
-
var import_react_query35,
|
|
21820
|
+
var import_react_query35, import_react66, import_viem8;
|
|
21755
21821
|
var init_useWatchTokens = __esm({
|
|
21756
21822
|
"src/internal/hooks/useBlockscoutAssets/useWatchTokens.ts"() {
|
|
21757
21823
|
init_ProviderContext();
|
|
21758
21824
|
import_react_query35 = require("@tanstack/react-query");
|
|
21759
|
-
|
|
21825
|
+
import_react66 = require("react");
|
|
21760
21826
|
import_viem8 = require("viem");
|
|
21761
21827
|
init_constants6();
|
|
21762
21828
|
}
|
|
@@ -21905,11 +21971,11 @@ function useBlockscoutAssets(options) {
|
|
|
21905
21971
|
tokenBalancesQueryKey: customTokenBalancesQueryKey
|
|
21906
21972
|
} = useProviderConfig().config?.current?.portfolio || {};
|
|
21907
21973
|
const blockscoutApiUrl = getBlockscoutApiUrl(chainConfig);
|
|
21908
|
-
const blockscoutClient = (0,
|
|
21974
|
+
const blockscoutClient = (0, import_react67.useMemo)(
|
|
21909
21975
|
() => blockscoutApiUrl ? (0, import_core4.createBlockscoutClient)({ baseUrl: blockscoutApiUrl }) : null,
|
|
21910
21976
|
[blockscoutApiUrl]
|
|
21911
21977
|
);
|
|
21912
|
-
const lastRefreshRef = (0,
|
|
21978
|
+
const lastRefreshRef = (0, import_react67.useRef)(0);
|
|
21913
21979
|
const {
|
|
21914
21980
|
data: watchTokenAssets = [],
|
|
21915
21981
|
isLoading: watchTokensLoading,
|
|
@@ -21981,7 +22047,7 @@ function useBlockscoutAssets(options) {
|
|
|
21981
22047
|
queryKey: [BLOCKSCOUT_QUERY_KEY, "nfts", resolvedChainId, blockscoutApiUrl, address],
|
|
21982
22048
|
queryFn: () => blockscoutClient.getNfts(address)
|
|
21983
22049
|
});
|
|
21984
|
-
const erc20TokenAddresses = (0,
|
|
22050
|
+
const erc20TokenAddresses = (0, import_react67.useMemo)(() => {
|
|
21985
22051
|
if (!blockscoutItems) return [];
|
|
21986
22052
|
return blockscoutItems.filter((tb) => tb.token.type === "ERC-20").map((tb) => tb.token.address_hash);
|
|
21987
22053
|
}, [blockscoutItems]);
|
|
@@ -22026,7 +22092,7 @@ function useBlockscoutAssets(options) {
|
|
|
22026
22092
|
// 1 minute
|
|
22027
22093
|
// gcTime: BLOCKSCOUT_QUERY_GC_TIME,
|
|
22028
22094
|
});
|
|
22029
|
-
const assets = (0,
|
|
22095
|
+
const assets = (0, import_react67.useMemo)(() => {
|
|
22030
22096
|
const result = [];
|
|
22031
22097
|
const addedAddresses = /* @__PURE__ */ new Set();
|
|
22032
22098
|
if (nativeBalanceData) {
|
|
@@ -22120,7 +22186,7 @@ function useBlockscoutAssets(options) {
|
|
|
22120
22186
|
watchTokenAssets,
|
|
22121
22187
|
chainConfig
|
|
22122
22188
|
]);
|
|
22123
|
-
const nativeBalance = (0,
|
|
22189
|
+
const nativeBalance = (0, import_react67.useMemo)(() => {
|
|
22124
22190
|
if (!nativeBalanceData) return null;
|
|
22125
22191
|
return {
|
|
22126
22192
|
value: nativeBalanceData.value,
|
|
@@ -22128,11 +22194,11 @@ function useBlockscoutAssets(options) {
|
|
|
22128
22194
|
symbol: nativeBalanceData.symbol
|
|
22129
22195
|
};
|
|
22130
22196
|
}, [nativeBalanceData]);
|
|
22131
|
-
const error = (0,
|
|
22197
|
+
const error = (0, import_react67.useMemo)(() => {
|
|
22132
22198
|
if (!blockscoutError) return null;
|
|
22133
22199
|
return createError(blockscoutError);
|
|
22134
22200
|
}, [blockscoutError]);
|
|
22135
|
-
const refreshBalances = (0,
|
|
22201
|
+
const refreshBalances = (0, import_react67.useCallback)(async () => {
|
|
22136
22202
|
const now = Date.now();
|
|
22137
22203
|
if (now - lastRefreshRef.current < BLOCKSCOUT_REFRESH_DEBOUNCE) {
|
|
22138
22204
|
return;
|
|
@@ -22148,7 +22214,7 @@ function useBlockscoutAssets(options) {
|
|
|
22148
22214
|
qc.invalidateQueries({ queryKey: [WATCH_TOKENS_QUERY_KEY] })
|
|
22149
22215
|
]);
|
|
22150
22216
|
}, [qc, customTokenBalancesQueryKey]);
|
|
22151
|
-
const getTokenBalance = (0,
|
|
22217
|
+
const getTokenBalance = (0, import_react67.useCallback)(
|
|
22152
22218
|
(tokenAddress) => {
|
|
22153
22219
|
return assets.find((a) => a.address?.toLowerCase() === tokenAddress.toLowerCase()) || null;
|
|
22154
22220
|
},
|
|
@@ -22167,13 +22233,13 @@ function useBlockscoutAssets(options) {
|
|
|
22167
22233
|
lastUpdated: dataUpdatedAt || null
|
|
22168
22234
|
};
|
|
22169
22235
|
}
|
|
22170
|
-
var import_core4, import_react_query36,
|
|
22236
|
+
var import_core4, import_react_query36, import_react67;
|
|
22171
22237
|
var init_useBlockscoutAssets = __esm({
|
|
22172
22238
|
"src/internal/hooks/useBlockscoutAssets/useBlockscoutAssets.ts"() {
|
|
22173
22239
|
init_ProviderContext();
|
|
22174
22240
|
import_core4 = require("@embarkai/core");
|
|
22175
22241
|
import_react_query36 = require("@tanstack/react-query");
|
|
22176
|
-
|
|
22242
|
+
import_react67 = require("react");
|
|
22177
22243
|
init_initial();
|
|
22178
22244
|
init_constants();
|
|
22179
22245
|
init_useResolvedPublicClient();
|
|
@@ -22293,9 +22359,9 @@ function SecurityTokenBadge() {
|
|
|
22293
22359
|
}
|
|
22294
22360
|
function PortfolioItemImage(props) {
|
|
22295
22361
|
const { asset } = props;
|
|
22296
|
-
const [logoError, setLogoError] = (0,
|
|
22297
|
-
const [nftImageError, setNftImageError] = (0,
|
|
22298
|
-
const resolvedImage = (0,
|
|
22362
|
+
const [logoError, setLogoError] = (0, import_react68.useState)(false);
|
|
22363
|
+
const [nftImageError, setNftImageError] = (0, import_react68.useState)(false);
|
|
22364
|
+
const resolvedImage = (0, import_react68.useMemo)(() => {
|
|
22299
22365
|
const isNft = isNftAsset(asset);
|
|
22300
22366
|
const nftImage = getNftImage(asset);
|
|
22301
22367
|
const isSecurity = isSecurityToken(asset);
|
|
@@ -22450,13 +22516,13 @@ function PortfolioItem(props) {
|
|
|
22450
22516
|
}
|
|
22451
22517
|
);
|
|
22452
22518
|
}
|
|
22453
|
-
var import_react_query37, import_lucide_react51,
|
|
22519
|
+
var import_react_query37, import_lucide_react51, import_react68, import_viem11, import_jsx_runtime94, PORTFOLIO_ASSET_RATE_QUERY_KEY;
|
|
22454
22520
|
var init_PortfolioItem = __esm({
|
|
22455
22521
|
"src/internal/components/PortfolioMenu/PortfolioItem.tsx"() {
|
|
22456
22522
|
init_ProviderContext();
|
|
22457
22523
|
import_react_query37 = require("@tanstack/react-query");
|
|
22458
22524
|
import_lucide_react51 = require("lucide-react");
|
|
22459
|
-
|
|
22525
|
+
import_react68 = require("react");
|
|
22460
22526
|
import_viem11 = require("viem");
|
|
22461
22527
|
init_tokens();
|
|
22462
22528
|
init_base3();
|
|
@@ -22488,7 +22554,7 @@ function PortfolioMenu() {
|
|
|
22488
22554
|
enabled: !!address
|
|
22489
22555
|
});
|
|
22490
22556
|
const shownProjectAssets = projectAssets.filter((asset) => !asset.hideInPortfolio);
|
|
22491
|
-
const refreshAllAssetsBalances = (0,
|
|
22557
|
+
const refreshAllAssetsBalances = (0, import_react69.useCallback)(() => {
|
|
22492
22558
|
Promise.all(shownProjectAssets.map((asset) => qc.invalidateQueries({ queryKey: asset.balanceQueryKey })));
|
|
22493
22559
|
refreshBlockscoutBalances();
|
|
22494
22560
|
}, [qc, shownProjectAssets, refreshBlockscoutBalances]);
|
|
@@ -22534,7 +22600,7 @@ function PortfolioMenu() {
|
|
|
22534
22600
|
blockscoutError && /* @__PURE__ */ (0, import_jsx_runtime95.jsx)(Highlight, { type: "error", children: blockscoutError?.message })
|
|
22535
22601
|
] });
|
|
22536
22602
|
}
|
|
22537
|
-
var import_react_query38, import_lucide_react52,
|
|
22603
|
+
var import_react_query38, import_lucide_react52, import_react69, import_jsx_runtime95;
|
|
22538
22604
|
var init_PortfolioMenu = __esm({
|
|
22539
22605
|
"src/internal/components/PortfolioMenu/PortfolioMenu.tsx"() {
|
|
22540
22606
|
init_ProviderContext();
|
|
@@ -22542,7 +22608,7 @@ var init_PortfolioMenu = __esm({
|
|
|
22542
22608
|
init_i18n();
|
|
22543
22609
|
import_react_query38 = require("@tanstack/react-query");
|
|
22544
22610
|
import_lucide_react52 = require("lucide-react");
|
|
22545
|
-
|
|
22611
|
+
import_react69 = require("react");
|
|
22546
22612
|
init_useBlockscoutAssets2();
|
|
22547
22613
|
init_useLayoutDataStore();
|
|
22548
22614
|
init_Expandable2();
|
|
@@ -22853,7 +22919,7 @@ var init_useNicknameStore = __esm({
|
|
|
22853
22919
|
function useNicknameAvailability(currentNickname) {
|
|
22854
22920
|
const { t } = useT();
|
|
22855
22921
|
const nicknameValue = useNicknameStore((st) => st.nicknameValue);
|
|
22856
|
-
(0,
|
|
22922
|
+
(0, import_react70.useEffect)(() => {
|
|
22857
22923
|
if (!currentNickname) return;
|
|
22858
22924
|
useNicknameStore.getState().setNicknameValue(currentNickname);
|
|
22859
22925
|
}, [currentNickname]);
|
|
@@ -22874,8 +22940,8 @@ function useNicknameAvailability(currentNickname) {
|
|
|
22874
22940
|
useNicknameStore.getState().setError(error?.message || "Failed to check nickname availability");
|
|
22875
22941
|
}
|
|
22876
22942
|
});
|
|
22877
|
-
const debouncedCheckAvailability = (0,
|
|
22878
|
-
(0,
|
|
22943
|
+
const debouncedCheckAvailability = (0, import_react70.useCallback)((0, import_lodash_es14.debounce)(checkAvailability, DEBOUNCE_MS), [checkAvailability]);
|
|
22944
|
+
(0, import_react70.useEffect)(() => {
|
|
22879
22945
|
if (!currentNickname) return;
|
|
22880
22946
|
const normalizedInputValue = normalizeNickname(nicknameValue);
|
|
22881
22947
|
const { valid: isNicknameValid } = validateNickname(nicknameValue);
|
|
@@ -22889,13 +22955,13 @@ function useNicknameAvailability(currentNickname) {
|
|
|
22889
22955
|
}, [nicknameValue, currentNickname, debouncedCheckAvailability]);
|
|
22890
22956
|
return { isCheckingAvailability };
|
|
22891
22957
|
}
|
|
22892
|
-
var import_react_query39, import_lodash_es14,
|
|
22958
|
+
var import_react_query39, import_lodash_es14, import_react70, DEBOUNCE_MS;
|
|
22893
22959
|
var init_useNicknameAvailability = __esm({
|
|
22894
22960
|
"src/internal/components/NicknameMenu/useNicknameAvailability.ts"() {
|
|
22895
22961
|
init_i18n();
|
|
22896
22962
|
import_react_query39 = require("@tanstack/react-query");
|
|
22897
22963
|
import_lodash_es14 = require("lodash-es");
|
|
22898
|
-
|
|
22964
|
+
import_react70 = require("react");
|
|
22899
22965
|
init_nickname();
|
|
22900
22966
|
init_nickname_errors();
|
|
22901
22967
|
init_nickname_validation();
|
|
@@ -22916,9 +22982,9 @@ function NicknameEditForm(props) {
|
|
|
22916
22982
|
const nicknameValue = useNicknameStore((st) => st.nicknameValue);
|
|
22917
22983
|
const nicknameAvailability = useNicknameStore((st) => st.availability);
|
|
22918
22984
|
const { isCheckingAvailability } = useNicknameAvailability(nicknameInfo ? nicknameInfo.handle : "");
|
|
22919
|
-
const [isNicknameCopied, setIsNicknameCopied] = (0,
|
|
22920
|
-
const exitTimerRef = (0,
|
|
22921
|
-
(0,
|
|
22985
|
+
const [isNicknameCopied, setIsNicknameCopied] = (0, import_react71.useState)(false);
|
|
22986
|
+
const exitTimerRef = (0, import_react71.useRef)(null);
|
|
22987
|
+
(0, import_react71.useEffect)(() => () => {
|
|
22922
22988
|
if (exitTimerRef.current) clearTimeout(exitTimerRef.current);
|
|
22923
22989
|
}, []);
|
|
22924
22990
|
const { mutate: changeNickname2, isPending: isNicknameChanging } = (0, import_react_query40.useMutation)({
|
|
@@ -22952,7 +23018,7 @@ function NicknameEditForm(props) {
|
|
|
22952
23018
|
);
|
|
22953
23019
|
}
|
|
22954
23020
|
});
|
|
22955
|
-
const handleNicknameInputChange = (0,
|
|
23021
|
+
const handleNicknameInputChange = (0, import_react71.useCallback)(
|
|
22956
23022
|
(e) => {
|
|
22957
23023
|
const { error, setError, setNicknameValue } = useNicknameStore.getState();
|
|
22958
23024
|
const nextInputValue = e.target.value;
|
|
@@ -22966,7 +23032,7 @@ function NicknameEditForm(props) {
|
|
|
22966
23032
|
},
|
|
22967
23033
|
[t]
|
|
22968
23034
|
);
|
|
22969
|
-
const handleSubmit = (0,
|
|
23035
|
+
const handleSubmit = (0, import_react71.useCallback)(
|
|
22970
23036
|
(e) => {
|
|
22971
23037
|
const { nicknameValue: nicknameValue2, setError } = useNicknameStore.getState();
|
|
22972
23038
|
if (!canChange) {
|
|
@@ -23058,7 +23124,7 @@ function NicknameEditForm(props) {
|
|
|
23058
23124
|
!!canChange && /* @__PURE__ */ (0, import_jsx_runtime98.jsx)("span", { className: "w-full flex items-center leadding-4 text-[10px] text-[var(--ui-kit-fg-muted)]", children: t("passport:nicknameMenu.hint") })
|
|
23059
23125
|
] });
|
|
23060
23126
|
}
|
|
23061
|
-
var import_react_query40, import_lucide_react55,
|
|
23127
|
+
var import_react_query40, import_lucide_react55, import_react71, import_jsx_runtime98;
|
|
23062
23128
|
var init_NicknameEditForm = __esm({
|
|
23063
23129
|
"src/internal/components/NicknameMenu/NicknameEditForm.tsx"() {
|
|
23064
23130
|
init_ProviderContext();
|
|
@@ -23066,7 +23132,7 @@ var init_NicknameEditForm = __esm({
|
|
|
23066
23132
|
init_i18n();
|
|
23067
23133
|
import_react_query40 = require("@tanstack/react-query");
|
|
23068
23134
|
import_lucide_react55 = require("lucide-react");
|
|
23069
|
-
|
|
23135
|
+
import_react71 = require("react");
|
|
23070
23136
|
init_icons();
|
|
23071
23137
|
init_nickname();
|
|
23072
23138
|
init_profile();
|
|
@@ -23102,7 +23168,7 @@ function NicknameMenu() {
|
|
|
23102
23168
|
queryFn: async () => await getNicknameInfo()
|
|
23103
23169
|
});
|
|
23104
23170
|
const resolvedError = nicknameError || nicknameInfoError?.message || null;
|
|
23105
|
-
(0,
|
|
23171
|
+
(0, import_react72.useEffect)(() => () => useNicknameStore.getState().reset(), []);
|
|
23106
23172
|
return /* @__PURE__ */ (0, import_jsx_runtime99.jsxs)(Expandable, { isExpanded: true, contentClassName: "w-full flex flex-col gap-[var(--ui-kit-gap)]", children: [
|
|
23107
23173
|
/* @__PURE__ */ (0, import_jsx_runtime99.jsxs)("div", { className: "flex items-center gap-[var(--ui-kit-gap)] ", children: [
|
|
23108
23174
|
/* @__PURE__ */ (0, import_jsx_runtime99.jsx)(
|
|
@@ -23169,7 +23235,7 @@ function NicknameMenu() {
|
|
|
23169
23235
|
!!resolvedError?.length && /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(Highlight, { type: "error", children: resolvedError })
|
|
23170
23236
|
] });
|
|
23171
23237
|
}
|
|
23172
|
-
var import_react_query41, import_dayjs5, import_lucide_react56,
|
|
23238
|
+
var import_react_query41, import_dayjs5, import_lucide_react56, import_react72, import_jsx_runtime99;
|
|
23173
23239
|
var init_NicknameMenu = __esm({
|
|
23174
23240
|
"src/internal/components/NicknameMenu/NicknameMenu.tsx"() {
|
|
23175
23241
|
init_SessionContext();
|
|
@@ -23178,7 +23244,7 @@ var init_NicknameMenu = __esm({
|
|
|
23178
23244
|
import_react_query41 = require("@tanstack/react-query");
|
|
23179
23245
|
import_dayjs5 = __toESM(require("dayjs"), 1);
|
|
23180
23246
|
import_lucide_react56 = require("lucide-react");
|
|
23181
|
-
|
|
23247
|
+
import_react72 = require("react");
|
|
23182
23248
|
init_nickname();
|
|
23183
23249
|
init_profile();
|
|
23184
23250
|
init_useLayoutDataStore();
|
|
@@ -23308,12 +23374,12 @@ function ReceiveMenu() {
|
|
|
23308
23374
|
queryKey: [QUERY_KEYS.nicknameInfo, address],
|
|
23309
23375
|
queryFn: async () => await getNicknameInfo()
|
|
23310
23376
|
});
|
|
23311
|
-
const [qrCodeUrl, setQrCodeUrl] = (0,
|
|
23312
|
-
const [isAddressCopied, setAddressCopied] = (0,
|
|
23313
|
-
const [isNicknameCopied, setNicknameCopied] = (0,
|
|
23314
|
-
const [fingerprintCopied, setFingerprintCopied] = (0,
|
|
23377
|
+
const [qrCodeUrl, setQrCodeUrl] = (0, import_react73.useState)("");
|
|
23378
|
+
const [isAddressCopied, setAddressCopied] = (0, import_react73.useState)(false);
|
|
23379
|
+
const [isNicknameCopied, setNicknameCopied] = (0, import_react73.useState)(false);
|
|
23380
|
+
const [fingerprintCopied, setFingerprintCopied] = (0, import_react73.useState)(false);
|
|
23315
23381
|
useOnboardingTourAvailable(true);
|
|
23316
|
-
const fingerprint = (0,
|
|
23382
|
+
const fingerprint = (0, import_react73.useMemo)(() => {
|
|
23317
23383
|
if (!session?.ownerAddress) return null;
|
|
23318
23384
|
try {
|
|
23319
23385
|
return generateFingerprint(session.ownerAddress);
|
|
@@ -23321,7 +23387,7 @@ function ReceiveMenu() {
|
|
|
23321
23387
|
return null;
|
|
23322
23388
|
}
|
|
23323
23389
|
}, [session?.ownerAddress]);
|
|
23324
|
-
(0,
|
|
23390
|
+
(0, import_react73.useEffect)(() => {
|
|
23325
23391
|
if (!address) return;
|
|
23326
23392
|
import_qrcode.default.toDataURL(address, {
|
|
23327
23393
|
width: 200,
|
|
@@ -23420,7 +23486,7 @@ function ReceiveMenu() {
|
|
|
23420
23486
|
] })
|
|
23421
23487
|
] });
|
|
23422
23488
|
}
|
|
23423
|
-
var import_react_query42, import_lucide_react57, import_qrcode,
|
|
23489
|
+
var import_react_query42, import_lucide_react57, import_qrcode, import_react73, import_jsx_runtime100;
|
|
23424
23490
|
var init_ReceiveMenu = __esm({
|
|
23425
23491
|
"src/internal/components/ReceiveMenu/ReceiveMenu.tsx"() {
|
|
23426
23492
|
init_SessionContext();
|
|
@@ -23428,7 +23494,7 @@ var init_ReceiveMenu = __esm({
|
|
|
23428
23494
|
import_react_query42 = require("@tanstack/react-query");
|
|
23429
23495
|
import_lucide_react57 = require("lucide-react");
|
|
23430
23496
|
import_qrcode = __toESM(require("qrcode"), 1);
|
|
23431
|
-
|
|
23497
|
+
import_react73 = require("react");
|
|
23432
23498
|
init_nickname();
|
|
23433
23499
|
init_profile();
|
|
23434
23500
|
init_useLayoutDataStore();
|
|
@@ -23808,14 +23874,14 @@ var init_ConnectedApps2 = __esm({
|
|
|
23808
23874
|
});
|
|
23809
23875
|
|
|
23810
23876
|
// src/internal/components/SecurityMenu/Keyshare/KeyshareStatus.tsx
|
|
23811
|
-
var import_lucide_react60,
|
|
23877
|
+
var import_lucide_react60, import_react74, import_jsx_runtime103, KeyshareStatus;
|
|
23812
23878
|
var init_KeyshareStatus = __esm({
|
|
23813
23879
|
"src/internal/components/SecurityMenu/Keyshare/KeyshareStatus.tsx"() {
|
|
23814
23880
|
import_lucide_react60 = require("lucide-react");
|
|
23815
|
-
|
|
23881
|
+
import_react74 = require("react");
|
|
23816
23882
|
init_utils();
|
|
23817
23883
|
import_jsx_runtime103 = require("react/jsx-runtime");
|
|
23818
|
-
KeyshareStatus = (0,
|
|
23884
|
+
KeyshareStatus = (0, import_react74.forwardRef)((props, ref) => {
|
|
23819
23885
|
const { isLoading, content, icon: Icon2, children } = props;
|
|
23820
23886
|
if (isLoading) return /* @__PURE__ */ (0, import_jsx_runtime103.jsx)(import_lucide_react60.Loader, { className: "w-4 h-4 animate-spin" });
|
|
23821
23887
|
return /* @__PURE__ */ (0, import_jsx_runtime103.jsxs)("div", { ref, className: "group relative w-full h-full", children: [
|
|
@@ -24142,10 +24208,10 @@ function updateLimits(patch) {
|
|
|
24142
24208
|
usePolicyForm.setState((st) => ({ ...st, limits: { ...st?.limits, ...patch } }));
|
|
24143
24209
|
}
|
|
24144
24210
|
function useWatchFormData() {
|
|
24145
|
-
const [showFormErrors, setShowFormErrors] = (0,
|
|
24211
|
+
const [showFormErrors, setShowFormErrors] = (0, import_react75.useState)(false);
|
|
24146
24212
|
const formData = usePolicyForm();
|
|
24147
24213
|
const formState = usePolicyFormValidation();
|
|
24148
|
-
(0,
|
|
24214
|
+
(0, import_react75.useEffect)(() => {
|
|
24149
24215
|
if (!formData) return;
|
|
24150
24216
|
setShowFormErrors(false);
|
|
24151
24217
|
const errors = {};
|
|
@@ -24172,7 +24238,7 @@ function useWatchFormData() {
|
|
|
24172
24238
|
}
|
|
24173
24239
|
usePolicyFormValidation.setState(errors, true);
|
|
24174
24240
|
}, [formData]);
|
|
24175
|
-
(0,
|
|
24241
|
+
(0, import_react75.useEffect)(() => () => usePolicyFormValidation.setState({}, true), []);
|
|
24176
24242
|
const formErrorItem = Object.entries(formState).find(([_, value]) => value?.error);
|
|
24177
24243
|
const formErrorMessage = formErrorItem ? `${formErrorItem[0].toUpperCase()}: ${formErrorItem[1]?.error}` : "";
|
|
24178
24244
|
return {
|
|
@@ -24183,10 +24249,10 @@ function useWatchFormData() {
|
|
|
24183
24249
|
setShowFormErrors
|
|
24184
24250
|
};
|
|
24185
24251
|
}
|
|
24186
|
-
var
|
|
24252
|
+
var import_react75, import_zustand14, usePolicyForm, usePolicyFormValidation;
|
|
24187
24253
|
var init_usePolicyForm = __esm({
|
|
24188
24254
|
"src/internal/components/SecurityMenu/UserPolicies/usePolicyForm.ts"() {
|
|
24189
|
-
|
|
24255
|
+
import_react75 = require("react");
|
|
24190
24256
|
import_zustand14 = require("zustand");
|
|
24191
24257
|
init_utils10();
|
|
24192
24258
|
usePolicyForm = (0, import_zustand14.create)(() => null);
|
|
@@ -24217,10 +24283,10 @@ var init_useUserAssetsPolicies = __esm({
|
|
|
24217
24283
|
// src/internal/components/SecurityMenu/UserPolicies/PolicyForm.tsx
|
|
24218
24284
|
function AddressListEditor(props) {
|
|
24219
24285
|
const { label, assets = [], addresses, onChange } = props;
|
|
24220
|
-
const [isAssetSelector, setIsAssetSelector] = (0,
|
|
24221
|
-
const [customAddress, setCustomAddress] = (0,
|
|
24222
|
-
const [customAddressError, setCustomAddressError] = (0,
|
|
24223
|
-
const handleAddress = (0,
|
|
24286
|
+
const [isAssetSelector, setIsAssetSelector] = (0, import_react76.useState)(false);
|
|
24287
|
+
const [customAddress, setCustomAddress] = (0, import_react76.useState)("");
|
|
24288
|
+
const [customAddressError, setCustomAddressError] = (0, import_react76.useState)(null);
|
|
24289
|
+
const handleAddress = (0, import_react76.useCallback)(
|
|
24224
24290
|
(addressToAdd) => {
|
|
24225
24291
|
if (!isValidAddress(addressToAdd)) {
|
|
24226
24292
|
setCustomAddressError("Bad address");
|
|
@@ -24447,14 +24513,14 @@ function PolicyForm() {
|
|
|
24447
24513
|
showFormErrors && formErrorMessage && /* @__PURE__ */ (0, import_jsx_runtime106.jsx)(Highlight, { type: "error", children: formErrorMessage })
|
|
24448
24514
|
] });
|
|
24449
24515
|
}
|
|
24450
|
-
var import_react_query47, import_lucide_react63,
|
|
24516
|
+
var import_react_query47, import_lucide_react63, import_react76, import_jsx_runtime106;
|
|
24451
24517
|
var init_PolicyForm = __esm({
|
|
24452
24518
|
"src/internal/components/SecurityMenu/UserPolicies/PolicyForm.tsx"() {
|
|
24453
24519
|
init_SessionContext();
|
|
24454
24520
|
init_useT();
|
|
24455
24521
|
import_react_query47 = require("@tanstack/react-query");
|
|
24456
24522
|
import_lucide_react63 = require("lucide-react");
|
|
24457
|
-
|
|
24523
|
+
import_react76 = require("react");
|
|
24458
24524
|
init_button();
|
|
24459
24525
|
init_highlight();
|
|
24460
24526
|
init_input();
|
|
@@ -24536,7 +24602,7 @@ function UserPolicies() {
|
|
|
24536
24602
|
const config = useProviderConfig().config;
|
|
24537
24603
|
const mpcUserId = useSession((st) => st.session?.mpcUserId);
|
|
24538
24604
|
const activeChainId = useSession((st) => st.activeChainId);
|
|
24539
|
-
const [isConfirmingDelete, setIsConfirmingDelete] = (0,
|
|
24605
|
+
const [isConfirmingDelete, setIsConfirmingDelete] = (0, import_react77.useState)(false);
|
|
24540
24606
|
const { data: policyView, isLoading: isPolicyLoading } = useUserAssetsPolicies(activeChainId);
|
|
24541
24607
|
const { mutate: cancelPending, isPending: isCancellingPending } = (0, import_react_query48.useMutation)({
|
|
24542
24608
|
mutationFn: async () => {
|
|
@@ -24649,7 +24715,7 @@ function UserPolicies() {
|
|
|
24649
24715
|
] })
|
|
24650
24716
|
] });
|
|
24651
24717
|
}
|
|
24652
|
-
var import_react_query48, import_clsx3, import_lucide_react64,
|
|
24718
|
+
var import_react_query48, import_clsx3, import_lucide_react64, import_react77, import_jsx_runtime107;
|
|
24653
24719
|
var init_UserPolicies = __esm({
|
|
24654
24720
|
"src/internal/components/SecurityMenu/UserPolicies/UserPolicies.tsx"() {
|
|
24655
24721
|
init_ProviderContext();
|
|
@@ -24658,7 +24724,7 @@ var init_UserPolicies = __esm({
|
|
|
24658
24724
|
import_react_query48 = require("@tanstack/react-query");
|
|
24659
24725
|
import_clsx3 = __toESM(require("clsx"), 1);
|
|
24660
24726
|
import_lucide_react64 = require("lucide-react");
|
|
24661
|
-
|
|
24727
|
+
import_react77 = require("react");
|
|
24662
24728
|
init_button();
|
|
24663
24729
|
init_highlight();
|
|
24664
24730
|
init_api4();
|
|
@@ -24683,7 +24749,7 @@ var init_UserPolicies2 = __esm({
|
|
|
24683
24749
|
|
|
24684
24750
|
// src/internal/components/SecurityMenu/useSecurityMenuParams.ts
|
|
24685
24751
|
function useSecurityMenuParams() {
|
|
24686
|
-
(0,
|
|
24752
|
+
(0, import_react78.useEffect)(() => {
|
|
24687
24753
|
const { pageParams, setPageParams } = useLayoutDataStore.getState();
|
|
24688
24754
|
if (!pageParams || !(0, import_lodash_es15.keys)(pageParams).length) return;
|
|
24689
24755
|
const { submenu } = pageParams;
|
|
@@ -24707,11 +24773,11 @@ function useSecurityMenuParams() {
|
|
|
24707
24773
|
setPageParams(null);
|
|
24708
24774
|
}, []);
|
|
24709
24775
|
}
|
|
24710
|
-
var import_lodash_es15,
|
|
24776
|
+
var import_lodash_es15, import_react78;
|
|
24711
24777
|
var init_useSecurityMenuParams = __esm({
|
|
24712
24778
|
"src/internal/components/SecurityMenu/useSecurityMenuParams.ts"() {
|
|
24713
24779
|
import_lodash_es15 = require("lodash-es");
|
|
24714
|
-
|
|
24780
|
+
import_react78 = require("react");
|
|
24715
24781
|
init_useLayoutDataStore();
|
|
24716
24782
|
init_UserPolicies2();
|
|
24717
24783
|
init_useSecurityStore();
|
|
@@ -24726,7 +24792,7 @@ function SecurityMenuContent() {
|
|
|
24726
24792
|
const { appToUntrust, showConnectedApps, showAssetsPolicies } = useSecurityStore();
|
|
24727
24793
|
const policyForm = usePolicyForm();
|
|
24728
24794
|
useOnboardingTourAvailable(!showConnectedApps && !showAssetsPolicies);
|
|
24729
|
-
(0,
|
|
24795
|
+
(0, import_react79.useEffect)(() => {
|
|
24730
24796
|
let securityTitle = "";
|
|
24731
24797
|
switch (true) {
|
|
24732
24798
|
case showConnectedApps:
|
|
@@ -24747,7 +24813,7 @@ function SecurityMenuContent() {
|
|
|
24747
24813
|
return () => {
|
|
24748
24814
|
};
|
|
24749
24815
|
}, [t, showConnectedApps, showAssetsPolicies, policyForm]);
|
|
24750
|
-
(0,
|
|
24816
|
+
(0, import_react79.useEffect)(
|
|
24751
24817
|
() => () => {
|
|
24752
24818
|
usePolicyForm.setState(null, true);
|
|
24753
24819
|
useSecurityStore.setState(
|
|
@@ -24841,13 +24907,13 @@ function SecurityMenu() {
|
|
|
24841
24907
|
/* @__PURE__ */ (0, import_jsx_runtime108.jsx)(SecurityMenuContent, {})
|
|
24842
24908
|
] });
|
|
24843
24909
|
}
|
|
24844
|
-
var import_lucide_react65,
|
|
24910
|
+
var import_lucide_react65, import_react79, import_jsx_runtime108;
|
|
24845
24911
|
var init_SecurityMenu = __esm({
|
|
24846
24912
|
"src/internal/components/SecurityMenu/SecurityMenu.tsx"() {
|
|
24847
24913
|
init_ProviderContext();
|
|
24848
24914
|
init_i18n();
|
|
24849
24915
|
import_lucide_react65 = require("lucide-react");
|
|
24850
|
-
|
|
24916
|
+
import_react79 = require("react");
|
|
24851
24917
|
init_useLayoutDataStore();
|
|
24852
24918
|
init_Expandable2();
|
|
24853
24919
|
init_Onboarding();
|
|
@@ -25051,8 +25117,8 @@ var init_SenderSelector = __esm({
|
|
|
25051
25117
|
function useAvailableSenders() {
|
|
25052
25118
|
const address = useSession((st) => st.address);
|
|
25053
25119
|
const { profiles } = useLinkedProfiles();
|
|
25054
|
-
const lastCalcedSenders = (0,
|
|
25055
|
-
(0,
|
|
25120
|
+
const lastCalcedSenders = (0, import_react80.useRef)([]);
|
|
25121
|
+
(0, import_react80.useEffect)(() => {
|
|
25056
25122
|
const sendersAccumulator = [
|
|
25057
25123
|
{
|
|
25058
25124
|
type: "embarkai-wallet",
|
|
@@ -25086,13 +25152,13 @@ function useAvailableSenders() {
|
|
|
25086
25152
|
directWalletProfiles: profiles.filter((p) => p.provider === "wallet")
|
|
25087
25153
|
};
|
|
25088
25154
|
}
|
|
25089
|
-
var
|
|
25155
|
+
var import_react80;
|
|
25090
25156
|
var init_useAvailableSenders = __esm({
|
|
25091
25157
|
"src/internal/components/SendMenu/hyperbridge/hooks/useAvailableSenders.ts"() {
|
|
25092
25158
|
init_SessionContext();
|
|
25093
25159
|
init_tokens();
|
|
25094
25160
|
init_linkedProfiles();
|
|
25095
|
-
|
|
25161
|
+
import_react80 = require("react");
|
|
25096
25162
|
init_wallets();
|
|
25097
25163
|
init_useBridgeStore();
|
|
25098
25164
|
}
|
|
@@ -25507,18 +25573,18 @@ function useHyperlaneHistory() {
|
|
|
25507
25573
|
getNextPageParam: (lastPage) => lastPage.page < lastPage.pageCount ? lastPage.page + 1 : void 0,
|
|
25508
25574
|
queryFn: async ({ pageParam }) => await getHyperlaneBridgeHistory({ page: pageParam, pageSize: TX_HISTORY_PAGE_SIZE })
|
|
25509
25575
|
});
|
|
25510
|
-
const txList = (0,
|
|
25576
|
+
const txList = (0, import_react81.useMemo)(
|
|
25511
25577
|
() => query?.data?.pages?.map((p) => p.data).flat(Infinity) || [],
|
|
25512
25578
|
[query?.data]
|
|
25513
25579
|
);
|
|
25514
25580
|
return { query, txList };
|
|
25515
25581
|
}
|
|
25516
|
-
var import_react_query49,
|
|
25582
|
+
var import_react_query49, import_react81, HYPERLANE_HISTORY_QUERY_KEY, TX_HISTORY_PAGE_SIZE, TX_HISTORY_POLLING_INTERVAL;
|
|
25517
25583
|
var init_useHyperlaneHistory = __esm({
|
|
25518
25584
|
"src/internal/components/SendMenu/hyperbridge/hooks/useHyperlaneHistory.ts"() {
|
|
25519
25585
|
init_SessionContext();
|
|
25520
25586
|
import_react_query49 = require("@tanstack/react-query");
|
|
25521
|
-
|
|
25587
|
+
import_react81 = require("react");
|
|
25522
25588
|
init_useLayoutDataStore();
|
|
25523
25589
|
init_useFlowSelector();
|
|
25524
25590
|
init_api5();
|
|
@@ -25548,9 +25614,9 @@ function useBridge() {
|
|
|
25548
25614
|
const qc = (0, import_react_query50.useQueryClient)();
|
|
25549
25615
|
const { t } = useT();
|
|
25550
25616
|
const address = useSession((st) => st.address);
|
|
25551
|
-
const { data: walletClient } = (0,
|
|
25552
|
-
const { mutateAsync: switchChainAsync } = (0,
|
|
25553
|
-
const swapDirection = (0,
|
|
25617
|
+
const { data: walletClient } = (0, import_wagmi5.useWalletClient)();
|
|
25618
|
+
const { mutateAsync: switchChainAsync } = (0, import_wagmi5.useSwitchChain)();
|
|
25619
|
+
const swapDirection = (0, import_react82.useCallback)(() => {
|
|
25554
25620
|
const {
|
|
25555
25621
|
// bridgeStep,
|
|
25556
25622
|
originChain,
|
|
@@ -25601,7 +25667,7 @@ function useBridge() {
|
|
|
25601
25667
|
useFlowSelectorStore.getState().setError(error instanceof Error ? error.message : String(error));
|
|
25602
25668
|
}
|
|
25603
25669
|
});
|
|
25604
|
-
const handleQuoteEstimation = (0,
|
|
25670
|
+
const handleQuoteEstimation = (0, import_react82.useCallback)((amnt) => {
|
|
25605
25671
|
const { originChain, destinationChain, bridgeSender } = useBridgeStore.getState();
|
|
25606
25672
|
if (!amnt || !Number(amnt)) {
|
|
25607
25673
|
useBridgeStore.getState().setQuote(null);
|
|
@@ -25736,14 +25802,14 @@ function useBridge() {
|
|
|
25736
25802
|
isAssetBridging
|
|
25737
25803
|
};
|
|
25738
25804
|
}
|
|
25739
|
-
var import_react_query50,
|
|
25805
|
+
var import_react_query50, import_react82, import_wagmi5;
|
|
25740
25806
|
var init_useBridge = __esm({
|
|
25741
25807
|
"src/internal/components/SendMenu/hyperbridge/hooks/useBridge.ts"() {
|
|
25742
25808
|
init_SessionContext();
|
|
25743
25809
|
init_i18n();
|
|
25744
25810
|
import_react_query50 = require("@tanstack/react-query");
|
|
25745
|
-
|
|
25746
|
-
|
|
25811
|
+
import_react82 = require("react");
|
|
25812
|
+
import_wagmi5 = require("wagmi");
|
|
25747
25813
|
init_useLayoutStore();
|
|
25748
25814
|
init_useExternalWalletStore();
|
|
25749
25815
|
init_useFlowSelector();
|
|
@@ -25773,7 +25839,7 @@ function useHyperlaneRoutes() {
|
|
|
25773
25839
|
queryKey: [HYPERLANE_WARP_ROUTES_QUERY_KEY, address],
|
|
25774
25840
|
queryFn: async () => await getHyperlaneWarpRoutes()
|
|
25775
25841
|
});
|
|
25776
|
-
(0,
|
|
25842
|
+
(0, import_react83.useEffect)(() => {
|
|
25777
25843
|
if (!errorWarpRoutes) return;
|
|
25778
25844
|
useFlowSelectorStore.getState().setError(errorWarpRoutes.message);
|
|
25779
25845
|
const { resetSelections, setRecipient, setOriginChain, setDestinationChain } = useBridgeStore.getState();
|
|
@@ -25782,7 +25848,7 @@ function useHyperlaneRoutes() {
|
|
|
25782
25848
|
setOriginChain(null);
|
|
25783
25849
|
setDestinationChain(null);
|
|
25784
25850
|
}, [errorWarpRoutes]);
|
|
25785
|
-
(0,
|
|
25851
|
+
(0, import_react83.useEffect)(() => {
|
|
25786
25852
|
if (!!hyperRoute || !hyperlaneWarpRoutes.length) return;
|
|
25787
25853
|
let targetHyperRouteToSelect = hyperlaneWarpRoutes.find((route) => route.routeId === hyperRoute);
|
|
25788
25854
|
if (!targetHyperRouteToSelect) {
|
|
@@ -25807,12 +25873,12 @@ function useHyperlaneRoutes() {
|
|
|
25807
25873
|
}, [hyperRoute, hyperlaneWarpRoutes]);
|
|
25808
25874
|
return { hyperlaneWarpRoutes, isLoadingWarpRoutes };
|
|
25809
25875
|
}
|
|
25810
|
-
var import_react_query51,
|
|
25876
|
+
var import_react_query51, import_react83, HYPERLANE_WARP_ROUTES_QUERY_KEY;
|
|
25811
25877
|
var init_useHyperlaneRoutes = __esm({
|
|
25812
25878
|
"src/internal/components/SendMenu/hyperbridge/hooks/useHyperlaneRoutes.ts"() {
|
|
25813
25879
|
init_SessionContext();
|
|
25814
25880
|
import_react_query51 = require("@tanstack/react-query");
|
|
25815
|
-
|
|
25881
|
+
import_react83 = require("react");
|
|
25816
25882
|
init_useLayoutDataStore();
|
|
25817
25883
|
init_useFlowSelector();
|
|
25818
25884
|
init_api5();
|
|
@@ -25828,7 +25894,7 @@ function useMenuTitle(warpRoutes) {
|
|
|
25828
25894
|
const bridgeStep = useBridgeStore((st) => st.bridgeStep);
|
|
25829
25895
|
const hyperRoute = useBridgeStore((st) => st.hyperRoute);
|
|
25830
25896
|
const hyperRouteMeta = warpRoutes?.length ? warpRoutes.find((route) => route.routeId === hyperRoute) : null;
|
|
25831
|
-
(0,
|
|
25897
|
+
(0, import_react84.useEffect)(() => {
|
|
25832
25898
|
const updateMenuTitle = useFlowSelectorStore.getState().setMenuTitle;
|
|
25833
25899
|
switch (true) {
|
|
25834
25900
|
case bridgeStep === "sender-selector":
|
|
@@ -25856,11 +25922,11 @@ function useMenuTitle(warpRoutes) {
|
|
|
25856
25922
|
}
|
|
25857
25923
|
}, [bridgeStep, hyperRouteMeta, t]);
|
|
25858
25924
|
}
|
|
25859
|
-
var
|
|
25925
|
+
var import_react84;
|
|
25860
25926
|
var init_useMenuTitle = __esm({
|
|
25861
25927
|
"src/internal/components/SendMenu/hyperbridge/hooks/useMenuTitle.ts"() {
|
|
25862
25928
|
init_i18n();
|
|
25863
|
-
|
|
25929
|
+
import_react84 = require("react");
|
|
25864
25930
|
init_useFlowSelector();
|
|
25865
25931
|
init_useBridgeStore();
|
|
25866
25932
|
}
|
|
@@ -26030,7 +26096,7 @@ function useBridgeBalance(isLoadingWarpRoutes, hyperlaneWarpRoutes) {
|
|
|
26030
26096
|
const activeChainId = useSession((st) => st.activeChainId);
|
|
26031
26097
|
const directWalletAddress = useExternalWalletStore((st) => st.externalAddress);
|
|
26032
26098
|
const directWalletChainId = useExternalWalletStore((st) => st.externalChainId);
|
|
26033
|
-
const { mutateAsync: switchChainAsync } = (0,
|
|
26099
|
+
const { mutateAsync: switchChainAsync } = (0, import_wagmi6.useSwitchChain)();
|
|
26034
26100
|
const hyperRoute = useBridgeStore((st) => st.hyperRoute);
|
|
26035
26101
|
const bridgeSender = useBridgeStore((st) => st.bridgeSender);
|
|
26036
26102
|
const originChain = useBridgeStore((st) => st.originChain);
|
|
@@ -26110,7 +26176,7 @@ function useBridgeBalance(isLoadingWarpRoutes, hyperlaneWarpRoutes) {
|
|
|
26110
26176
|
};
|
|
26111
26177
|
}
|
|
26112
26178
|
});
|
|
26113
|
-
const refreshRouteTokenBalance = (0,
|
|
26179
|
+
const refreshRouteTokenBalance = (0, import_react85.useCallback)(
|
|
26114
26180
|
(senderWallet) => {
|
|
26115
26181
|
switch (true) {
|
|
26116
26182
|
case senderWallet === "embarkai-wallet":
|
|
@@ -26126,7 +26192,7 @@ function useBridgeBalance(isLoadingWarpRoutes, hyperlaneWarpRoutes) {
|
|
|
26126
26192
|
},
|
|
26127
26193
|
[refreshBalances, qc]
|
|
26128
26194
|
);
|
|
26129
|
-
(0,
|
|
26195
|
+
(0, import_react85.useEffect)(() => {
|
|
26130
26196
|
if (!!isLoadingWarpRoutes || !bridgeSender || !originChain) return;
|
|
26131
26197
|
switch (bridgeSender) {
|
|
26132
26198
|
case "embarkai-wallet":
|
|
@@ -26157,16 +26223,16 @@ function useBridgeBalance(isLoadingWarpRoutes, hyperlaneWarpRoutes) {
|
|
|
26157
26223
|
isRouteTokenBalanceLoading: isAssetsLoading || isExternalBalanceLoading || isExternalNativeBalanceLoading
|
|
26158
26224
|
};
|
|
26159
26225
|
}
|
|
26160
|
-
var import_core8, import_react_query52,
|
|
26226
|
+
var import_core8, import_react_query52, import_react85, import_viem15, import_wagmi6, EXTERNAL_WALLET_BRIDGING_BALANCE_QUERY, EXTERNAL_WALLET_BRIDGING_NATIVE_BALANCE_QUERY;
|
|
26161
26227
|
var init_useBridgeBalance = __esm({
|
|
26162
26228
|
"src/internal/components/SendMenu/hyperbridge/hooks/useBridgeBalance.ts"() {
|
|
26163
26229
|
init_SessionContext();
|
|
26164
26230
|
init_i18n();
|
|
26165
26231
|
import_core8 = require("@embarkai/core");
|
|
26166
26232
|
import_react_query52 = require("@tanstack/react-query");
|
|
26167
|
-
|
|
26233
|
+
import_react85 = require("react");
|
|
26168
26234
|
import_viem15 = require("viem");
|
|
26169
|
-
|
|
26235
|
+
import_wagmi6 = require("wagmi");
|
|
26170
26236
|
init_useBlockscoutAssets2();
|
|
26171
26237
|
init_useExternalWalletStore();
|
|
26172
26238
|
init_BalanceFeedProvider2();
|
|
@@ -26293,7 +26359,7 @@ function SelectStep(props) {
|
|
|
26293
26359
|
variant: "outline",
|
|
26294
26360
|
size: "medium",
|
|
26295
26361
|
className: "bg-[var(--ui-kit-bg)] flex items-center gap-[var(--ui-kit-gap)]",
|
|
26296
|
-
children: selectedWarpRoute.chainPair.map((chain, chIdx) => /* @__PURE__ */ (0, import_jsx_runtime111.jsxs)(
|
|
26362
|
+
children: selectedWarpRoute.chainPair.map((chain, chIdx) => /* @__PURE__ */ (0, import_jsx_runtime111.jsxs)(import_react86.Fragment, { children: [
|
|
26297
26363
|
chIdx > 0 && /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(import_lucide_react67.ArrowLeftRightIcon, { className: "w-4 h-4 " }),
|
|
26298
26364
|
/* @__PURE__ */ (0, import_jsx_runtime111.jsx)(ResolveChainIcon, { chainName: chain.chainName, className: "w-4 h-4" })
|
|
26299
26365
|
] }, `${selectedWarpRoute.id}-icon-${chain.chainID}-${chIdx}`))
|
|
@@ -26437,13 +26503,13 @@ function SelectStep(props) {
|
|
|
26437
26503
|
)
|
|
26438
26504
|
] });
|
|
26439
26505
|
}
|
|
26440
|
-
var import_lucide_react67,
|
|
26506
|
+
var import_lucide_react67, import_react86, import_jsx_runtime111;
|
|
26441
26507
|
var init_SelectStep = __esm({
|
|
26442
26508
|
"src/internal/components/SendMenu/hyperbridge/steps/SelectStep.tsx"() {
|
|
26443
26509
|
init_tokens();
|
|
26444
26510
|
init_i18n();
|
|
26445
26511
|
import_lucide_react67 = require("lucide-react");
|
|
26446
|
-
|
|
26512
|
+
import_react86 = require("react");
|
|
26447
26513
|
init_priceFormatter();
|
|
26448
26514
|
init_utils();
|
|
26449
26515
|
init_useExternalWalletStore();
|
|
@@ -26494,7 +26560,7 @@ var init_checkbox = __esm({
|
|
|
26494
26560
|
// src/internal/components/SendMenu/hyperbridge/steps/ConfirmStep.tsx
|
|
26495
26561
|
function ConfirmStep(props) {
|
|
26496
26562
|
const { isAssetBridging, bridgeAsset, hyperlaneWarpRoutes } = props;
|
|
26497
|
-
const [userConsent, setUserConsent] = (0,
|
|
26563
|
+
const [userConsent, setUserConsent] = (0, import_react87.useState)(false);
|
|
26498
26564
|
const { t } = useT();
|
|
26499
26565
|
const address = useSession((st) => st.address);
|
|
26500
26566
|
const bridgeSender = useBridgeStore((st) => st.bridgeSenders.find((s) => s.type === st.bridgeSender));
|
|
@@ -26610,13 +26676,13 @@ function ConfirmStep(props) {
|
|
|
26610
26676
|
}
|
|
26611
26677
|
);
|
|
26612
26678
|
}
|
|
26613
|
-
var import_lucide_react69,
|
|
26679
|
+
var import_lucide_react69, import_react87, import_jsx_runtime113, P_CN;
|
|
26614
26680
|
var init_ConfirmStep = __esm({
|
|
26615
26681
|
"src/internal/components/SendMenu/hyperbridge/steps/ConfirmStep.tsx"() {
|
|
26616
26682
|
init_SessionContext();
|
|
26617
26683
|
init_i18n();
|
|
26618
26684
|
import_lucide_react69 = require("lucide-react");
|
|
26619
|
-
|
|
26685
|
+
import_react87 = require("react");
|
|
26620
26686
|
init_priceFormatter();
|
|
26621
26687
|
init_utils();
|
|
26622
26688
|
init_Onboarding();
|
|
@@ -26993,7 +27059,7 @@ function SelectAssetRoute(props) {
|
|
|
26993
27059
|
const { hyperlaneWarpRoutes } = props;
|
|
26994
27060
|
const { t } = useT();
|
|
26995
27061
|
const selectedAssetSymbol = useBridgeStore((st) => st.bridgeAssetSymbol);
|
|
26996
|
-
const tokenList = (0,
|
|
27062
|
+
const tokenList = (0, import_react88.useMemo)(() => {
|
|
26997
27063
|
const tokens = hyperlaneWarpRoutes.map((route) => route.symbol);
|
|
26998
27064
|
const uniqueTokens = Array.from(new Set(tokens));
|
|
26999
27065
|
return uniqueTokens.map((symbol) => ({
|
|
@@ -27070,13 +27136,13 @@ function SelectAssetRoute(props) {
|
|
|
27070
27136
|
] })
|
|
27071
27137
|
] });
|
|
27072
27138
|
}
|
|
27073
|
-
var import_lucide_react71,
|
|
27139
|
+
var import_lucide_react71, import_react88, import_jsx_runtime116;
|
|
27074
27140
|
var init_SelectAssetRoute = __esm({
|
|
27075
27141
|
"src/internal/components/SendMenu/hyperbridge/steps/SelectAssetRoute.tsx"() {
|
|
27076
27142
|
init_tokens();
|
|
27077
27143
|
init_i18n();
|
|
27078
27144
|
import_lucide_react71 = require("lucide-react");
|
|
27079
|
-
|
|
27145
|
+
import_react88 = require("react");
|
|
27080
27146
|
init_button();
|
|
27081
27147
|
init_ResolveChainIcon();
|
|
27082
27148
|
init_useBridgeStore();
|
|
@@ -27103,7 +27169,7 @@ function HyperlaneBridge() {
|
|
|
27103
27169
|
const { hyperlaneWarpRoutes, isLoadingWarpRoutes } = useHyperlaneRoutes();
|
|
27104
27170
|
const { directWalletProfiles } = useAvailableSenders();
|
|
27105
27171
|
useMenuTitle(hyperlaneWarpRoutes);
|
|
27106
|
-
(0,
|
|
27172
|
+
(0, import_react89.useEffect)(() => {
|
|
27107
27173
|
return () => {
|
|
27108
27174
|
useBridgeStore.getState().resetSelections();
|
|
27109
27175
|
};
|
|
@@ -27136,10 +27202,10 @@ function HyperlaneBridge() {
|
|
|
27136
27202
|
bridgeStep === "tx-history-details" && /* @__PURE__ */ (0, import_jsx_runtime117.jsx)(HistoryDetailsStep, {})
|
|
27137
27203
|
] });
|
|
27138
27204
|
}
|
|
27139
|
-
var
|
|
27205
|
+
var import_react89, import_jsx_runtime117;
|
|
27140
27206
|
var init_HyperlaneBridge = __esm({
|
|
27141
27207
|
"src/internal/components/SendMenu/hyperbridge/HyperlaneBridge.tsx"() {
|
|
27142
|
-
|
|
27208
|
+
import_react89 = require("react");
|
|
27143
27209
|
init_SenderSelector();
|
|
27144
27210
|
init_useAvailableSenders();
|
|
27145
27211
|
init_useBridge();
|
|
@@ -27157,7 +27223,7 @@ function BridgeHistorySwitch(props) {
|
|
|
27157
27223
|
const selectorFlow = useFlowSelectorStore((st) => st.flow);
|
|
27158
27224
|
const isUiLocked = useFlowSelectorStore((st) => st.isUiLocked);
|
|
27159
27225
|
const bridgeStep = useBridgeStore((st) => st.bridgeStep);
|
|
27160
|
-
const lastBridgeStepRef = (0,
|
|
27226
|
+
const lastBridgeStepRef = (0, import_react90.useRef)(null);
|
|
27161
27227
|
if (selectorFlow !== "bridge" || bridgeStep === "confirm" || bridgeStep === "success" || bridgeStep === "sender-selector" || bridgeStep === "select-token" || bridgeStep === "tx-history-details") {
|
|
27162
27228
|
return null;
|
|
27163
27229
|
}
|
|
@@ -27176,10 +27242,10 @@ function BridgeHistorySwitch(props) {
|
|
|
27176
27242
|
}
|
|
27177
27243
|
);
|
|
27178
27244
|
}
|
|
27179
|
-
var
|
|
27245
|
+
var import_react90, import_jsx_runtime118;
|
|
27180
27246
|
var init_HistorySwitch = __esm({
|
|
27181
27247
|
"src/internal/components/SendMenu/hyperbridge/components/HistorySwitch.tsx"() {
|
|
27182
|
-
|
|
27248
|
+
import_react90 = require("react");
|
|
27183
27249
|
init_switch();
|
|
27184
27250
|
init_useFlowSelector();
|
|
27185
27251
|
init_useBridgeStore();
|
|
@@ -27205,7 +27271,7 @@ function useErc3643Compliance(options) {
|
|
|
27205
27271
|
isLoading,
|
|
27206
27272
|
error: queryError,
|
|
27207
27273
|
refetch
|
|
27208
|
-
} = (0,
|
|
27274
|
+
} = (0, import_wagmi7.useReadContract)({
|
|
27209
27275
|
address: tokenAddress,
|
|
27210
27276
|
abi: ERC3643_CAN_TRANSFER_ABI,
|
|
27211
27277
|
functionName: "canTransfer",
|
|
@@ -27242,10 +27308,10 @@ function useErc3643Compliance(options) {
|
|
|
27242
27308
|
refetch
|
|
27243
27309
|
};
|
|
27244
27310
|
}
|
|
27245
|
-
var
|
|
27311
|
+
var import_wagmi7, ERC3643_CAN_TRANSFER_ABI;
|
|
27246
27312
|
var init_useErc3643Compliance = __esm({
|
|
27247
27313
|
"src/hooks/useErc3643Compliance.ts"() {
|
|
27248
|
-
|
|
27314
|
+
import_wagmi7 = require("wagmi");
|
|
27249
27315
|
ERC3643_CAN_TRANSFER_ABI = [
|
|
27250
27316
|
{
|
|
27251
27317
|
type: "function",
|
|
@@ -27270,11 +27336,11 @@ function looksLikeNickname(input) {
|
|
|
27270
27336
|
}
|
|
27271
27337
|
function useNicknameResolve(input, options) {
|
|
27272
27338
|
const { enabled = true, chainId } = options;
|
|
27273
|
-
const [debouncedInput, setDebouncedInput] = (0,
|
|
27274
|
-
const [isDebouncing, setIsDebouncing] = (0,
|
|
27339
|
+
const [debouncedInput, setDebouncedInput] = (0, import_react91.useState)("");
|
|
27340
|
+
const [isDebouncing, setIsDebouncing] = (0, import_react91.useState)(false);
|
|
27275
27341
|
const normalized = normalizeNickname(input);
|
|
27276
27342
|
const isNicknameInput = looksLikeNickname(input) && normalized.length >= 3;
|
|
27277
|
-
(0,
|
|
27343
|
+
(0, import_react91.useEffect)(() => {
|
|
27278
27344
|
if (!isNicknameInput || !enabled) {
|
|
27279
27345
|
setDebouncedInput("");
|
|
27280
27346
|
setIsDebouncing(false);
|
|
@@ -27300,7 +27366,7 @@ function useNicknameResolve(input, options) {
|
|
|
27300
27366
|
const isNotFound = query.isError && query.error?.code === "NICKNAME_NOT_FOUND";
|
|
27301
27367
|
const isWalletNotSetup = !!query.data && query.data.resolvedTarget === null;
|
|
27302
27368
|
const isFrozen = query.data?.isFrozen ?? false;
|
|
27303
|
-
const fingerprintVerification = (0,
|
|
27369
|
+
const fingerprintVerification = (0, import_react91.useMemo)(() => {
|
|
27304
27370
|
if (!query.data?.owner || !query.data?.fingerprint) {
|
|
27305
27371
|
return null;
|
|
27306
27372
|
}
|
|
@@ -27322,11 +27388,11 @@ function useNicknameResolve(input, options) {
|
|
|
27322
27388
|
resolvedAddress
|
|
27323
27389
|
};
|
|
27324
27390
|
}
|
|
27325
|
-
var import_react_query54,
|
|
27391
|
+
var import_react_query54, import_react91, DEBOUNCE_MS2;
|
|
27326
27392
|
var init_useNicknameResolve = __esm({
|
|
27327
27393
|
"src/hooks/useNicknameResolve.ts"() {
|
|
27328
27394
|
import_react_query54 = require("@tanstack/react-query");
|
|
27329
|
-
|
|
27395
|
+
import_react91 = require("react");
|
|
27330
27396
|
init_nickname();
|
|
27331
27397
|
init_profile();
|
|
27332
27398
|
init_nickname_fingerprint();
|
|
@@ -27339,10 +27405,10 @@ var init_useNicknameResolve = __esm({
|
|
|
27339
27405
|
function useSendTransaction() {
|
|
27340
27406
|
const session = useSession((st) => st.session);
|
|
27341
27407
|
const address = useSession((st) => st.address);
|
|
27342
|
-
const [isLoading, setIsLoading] = (0,
|
|
27343
|
-
const [error, setError] = (0,
|
|
27344
|
-
const [userOpHash, setUserOpHash] = (0,
|
|
27345
|
-
const sendTransaction = (0,
|
|
27408
|
+
const [isLoading, setIsLoading] = (0, import_react92.useState)(false);
|
|
27409
|
+
const [error, setError] = (0, import_react92.useState)(null);
|
|
27410
|
+
const [userOpHash, setUserOpHash] = (0, import_react92.useState)(null);
|
|
27411
|
+
const sendTransaction = (0, import_react92.useCallback)(
|
|
27346
27412
|
async (params) => {
|
|
27347
27413
|
if (!session || !address) {
|
|
27348
27414
|
setError("No active session");
|
|
@@ -27439,7 +27505,7 @@ function useSendTransaction() {
|
|
|
27439
27505
|
},
|
|
27440
27506
|
[session, address]
|
|
27441
27507
|
);
|
|
27442
|
-
const reset = (0,
|
|
27508
|
+
const reset = (0, import_react92.useCallback)(() => {
|
|
27443
27509
|
setError(null);
|
|
27444
27510
|
setUserOpHash(null);
|
|
27445
27511
|
setIsLoading(false);
|
|
@@ -27452,10 +27518,10 @@ function useSendTransaction() {
|
|
|
27452
27518
|
reset
|
|
27453
27519
|
};
|
|
27454
27520
|
}
|
|
27455
|
-
var
|
|
27521
|
+
var import_react92, import_viem16, ERC20_TRANSFER_ABI, ERC721_SAFE_TRANSFER_ABI, ERC1155_SAFE_TRANSFER_ABI;
|
|
27456
27522
|
var init_useSendTransaction = __esm({
|
|
27457
27523
|
"src/hooks/useSendTransaction.ts"() {
|
|
27458
|
-
|
|
27524
|
+
import_react92 = require("react");
|
|
27459
27525
|
import_viem16 = require("viem");
|
|
27460
27526
|
init_SessionContext();
|
|
27461
27527
|
init_account2();
|
|
@@ -27606,7 +27672,7 @@ var init_AssetInputIcon = __esm({
|
|
|
27606
27672
|
|
|
27607
27673
|
// src/internal/components/SendMenu/send/components/NftDisplayCard.tsx
|
|
27608
27674
|
function NftDisplayCard({ asset }) {
|
|
27609
|
-
const [imageError, setImageError] = (0,
|
|
27675
|
+
const [imageError, setImageError] = (0, import_react93.useState)(false);
|
|
27610
27676
|
const nftImage = asset.image || asset.nftMetadata?.image;
|
|
27611
27677
|
return /* @__PURE__ */ (0, import_jsx_runtime120.jsxs)("div", { className: "flex items-center gap-3 p-3 rounded-[var(--ui-kit-el-bdrs)] bg-[var(--ui-kit-bg-secondary)]", children: [
|
|
27612
27678
|
nftImage && !imageError ? /* @__PURE__ */ (0, import_jsx_runtime120.jsx)(
|
|
@@ -27634,11 +27700,11 @@ function NftDisplayCard({ asset }) {
|
|
|
27634
27700
|
] })
|
|
27635
27701
|
] });
|
|
27636
27702
|
}
|
|
27637
|
-
var import_lucide_react73,
|
|
27703
|
+
var import_lucide_react73, import_react93, import_jsx_runtime120;
|
|
27638
27704
|
var init_NftDisplayCard = __esm({
|
|
27639
27705
|
"src/internal/components/SendMenu/send/components/NftDisplayCard.tsx"() {
|
|
27640
27706
|
import_lucide_react73 = require("lucide-react");
|
|
27641
|
-
|
|
27707
|
+
import_react93 = require("react");
|
|
27642
27708
|
import_jsx_runtime120 = require("react/jsx-runtime");
|
|
27643
27709
|
}
|
|
27644
27710
|
});
|
|
@@ -27758,7 +27824,7 @@ function NicknameData(props) {
|
|
|
27758
27824
|
isWalletNotSetup,
|
|
27759
27825
|
isFrozen
|
|
27760
27826
|
} = resolvedNicknameData;
|
|
27761
|
-
(0,
|
|
27827
|
+
(0, import_react94.useEffect)(() => {
|
|
27762
27828
|
if (isResolving) return;
|
|
27763
27829
|
let errMessage = null;
|
|
27764
27830
|
switch (true) {
|
|
@@ -27813,11 +27879,11 @@ function NicknameData(props) {
|
|
|
27813
27879
|
] })
|
|
27814
27880
|
] });
|
|
27815
27881
|
}
|
|
27816
|
-
var import_lucide_react74,
|
|
27882
|
+
var import_lucide_react74, import_react94, import_jsx_runtime122;
|
|
27817
27883
|
var init_NicknameData = __esm({
|
|
27818
27884
|
"src/internal/components/SendMenu/send/components/NicknameData.tsx"() {
|
|
27819
27885
|
import_lucide_react74 = require("lucide-react");
|
|
27820
|
-
|
|
27886
|
+
import_react94 = require("react");
|
|
27821
27887
|
init_no_image();
|
|
27822
27888
|
init_utils();
|
|
27823
27889
|
init_useFlowSelector();
|
|
@@ -28350,16 +28416,16 @@ function SendMenu() {
|
|
|
28350
28416
|
userOpHash,
|
|
28351
28417
|
reset
|
|
28352
28418
|
} = useSendTransaction();
|
|
28353
|
-
(0,
|
|
28419
|
+
(0, import_react95.useEffect)(() => {
|
|
28354
28420
|
useFlowSelectorStore.getState().setIsUiLocked(isAssetsLoading || isTransactionPending);
|
|
28355
28421
|
}, [isAssetsLoading, isTransactionPending]);
|
|
28356
|
-
(0,
|
|
28422
|
+
(0, import_react95.useEffect)(() => {
|
|
28357
28423
|
useFlowSelectorStore.getState().setError(sendTransactionError || null);
|
|
28358
28424
|
}, [sendTransactionError]);
|
|
28359
28425
|
const { txStep, recipient, amount, selectedAsset, setSelectedAsset } = useSendStore();
|
|
28360
28426
|
const isNft = isNftAsset3(selectedAsset);
|
|
28361
28427
|
const isSecurity = isSecurityToken2(selectedAsset);
|
|
28362
|
-
(0,
|
|
28428
|
+
(0, import_react95.useEffect)(() => {
|
|
28363
28429
|
const shouldDefaultAsset = assets.length > 0 && !selectedAsset;
|
|
28364
28430
|
if (!shouldDefaultAsset) return;
|
|
28365
28431
|
const chainNativeCurrency = useSession.getState().chainConfig?.nativeCurrency;
|
|
@@ -28369,7 +28435,7 @@ function SendMenu() {
|
|
|
28369
28435
|
if (isBalance(erc20)) return setSelectedAsset(erc20);
|
|
28370
28436
|
setSelectedAsset(assets[0]);
|
|
28371
28437
|
}, [assets, selectedAsset]);
|
|
28372
|
-
(0,
|
|
28438
|
+
(0, import_react95.useEffect)(
|
|
28373
28439
|
() => () => {
|
|
28374
28440
|
useSendStore.getState().reset();
|
|
28375
28441
|
reset();
|
|
@@ -28379,7 +28445,7 @@ function SendMenu() {
|
|
|
28379
28445
|
const isNicknameInput = looksLikeNickname(recipient);
|
|
28380
28446
|
const resolvedNicknameData = useNicknameResolve(recipient, { enabled: isNicknameInput, chainId: activeChainId });
|
|
28381
28447
|
const effectiveAddress = isNicknameInput ? resolvedNicknameData?.resolvedAddress : recipient;
|
|
28382
|
-
const complianceAmount = (0,
|
|
28448
|
+
const complianceAmount = (0, import_react95.useMemo)(() => {
|
|
28383
28449
|
if (!isSecurity || !amount || !selectedAsset) return void 0;
|
|
28384
28450
|
try {
|
|
28385
28451
|
return (0, import_viem21.parseUnits)(amount, selectedAsset.decimals || 18);
|
|
@@ -28394,7 +28460,7 @@ function SendMenu() {
|
|
|
28394
28460
|
enabled: isSecurity && !!effectiveAddress && !!complianceAmount,
|
|
28395
28461
|
chainId: activeChainId
|
|
28396
28462
|
});
|
|
28397
|
-
(0,
|
|
28463
|
+
(0, import_react95.useEffect)(() => {
|
|
28398
28464
|
const updateMenuTitle = useFlowSelectorStore.getState().setMenuTitle;
|
|
28399
28465
|
switch (true) {
|
|
28400
28466
|
case txStep === "select-asset":
|
|
@@ -28464,7 +28530,7 @@ function SendMenu() {
|
|
|
28464
28530
|
] })
|
|
28465
28531
|
] });
|
|
28466
28532
|
}
|
|
28467
|
-
var import_lucide_react77,
|
|
28533
|
+
var import_lucide_react77, import_react95, import_viem21, import_jsx_runtime125;
|
|
28468
28534
|
var init_SendMenu = __esm({
|
|
28469
28535
|
"src/internal/components/SendMenu/send/SendMenu.tsx"() {
|
|
28470
28536
|
init_SessionContext();
|
|
@@ -28473,7 +28539,7 @@ var init_SendMenu = __esm({
|
|
|
28473
28539
|
init_useSendTransaction();
|
|
28474
28540
|
init_useT();
|
|
28475
28541
|
import_lucide_react77 = require("lucide-react");
|
|
28476
|
-
|
|
28542
|
+
import_react95 = require("react");
|
|
28477
28543
|
import_viem21 = require("viem");
|
|
28478
28544
|
init_useBlockscoutAssets2();
|
|
28479
28545
|
init_useLayoutDataStore();
|
|
@@ -28499,7 +28565,7 @@ var init_send = __esm({
|
|
|
28499
28565
|
// src/internal/components/SendMenu/useSendMenuParams.ts
|
|
28500
28566
|
function useSendMenuParams() {
|
|
28501
28567
|
const { config } = useProviderConfig();
|
|
28502
|
-
(0,
|
|
28568
|
+
(0, import_react96.useEffect)(() => {
|
|
28503
28569
|
const { pageParams, setPageParams } = useLayoutDataStore.getState();
|
|
28504
28570
|
if (!pageParams || !(0, import_lodash_es16.keys)(pageParams).length) return;
|
|
28505
28571
|
const { sendFlow, send, bridge } = pageParams || {};
|
|
@@ -28552,12 +28618,12 @@ function useSendMenuParams() {
|
|
|
28552
28618
|
setPageParams(null);
|
|
28553
28619
|
}, []);
|
|
28554
28620
|
}
|
|
28555
|
-
var import_lodash_es16,
|
|
28621
|
+
var import_lodash_es16, import_react96;
|
|
28556
28622
|
var init_useSendMenuParams = __esm({
|
|
28557
28623
|
"src/internal/components/SendMenu/useSendMenuParams.ts"() {
|
|
28558
28624
|
init_ProviderContext();
|
|
28559
28625
|
import_lodash_es16 = require("lodash-es");
|
|
28560
|
-
|
|
28626
|
+
import_react96 = require("react");
|
|
28561
28627
|
init_useLayoutDataStore();
|
|
28562
28628
|
init_useBridgeStore();
|
|
28563
28629
|
init_useSendStore();
|
|
@@ -28625,17 +28691,17 @@ function SendFlowSelector() {
|
|
|
28625
28691
|
const sendStep = useSendStore((st) => st.txStep);
|
|
28626
28692
|
const bridgeStep = useBridgeStore((st) => st.bridgeStep);
|
|
28627
28693
|
useOnboardingTourAvailable(sendStep === "input" && bridgeStep === "select");
|
|
28628
|
-
(0,
|
|
28694
|
+
(0, import_react97.useEffect)(
|
|
28629
28695
|
() => () => {
|
|
28630
28696
|
useFlowSelectorStore.getState().setError(null);
|
|
28631
28697
|
},
|
|
28632
28698
|
[]
|
|
28633
28699
|
);
|
|
28634
|
-
(0,
|
|
28700
|
+
(0, import_react97.useEffect)(() => {
|
|
28635
28701
|
if (!!config?.current?.features?.showAssetBridge) return;
|
|
28636
28702
|
if (selectorFlow === "bridge") useFlowSelectorStore.getState().setFlow("send");
|
|
28637
28703
|
}, [selectorFlow]);
|
|
28638
|
-
const availableFlows = (0,
|
|
28704
|
+
const availableFlows = (0, import_react97.useMemo)(() => {
|
|
28639
28705
|
const selectorFlows = { send: /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(SendMenu, {}) };
|
|
28640
28706
|
if (!!config?.current?.features?.showAssetBridge) selectorFlows.bridge = /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(HyperlaneBridge, {});
|
|
28641
28707
|
return selectorFlows;
|
|
@@ -28700,13 +28766,13 @@ function SendFlowSelector() {
|
|
|
28700
28766
|
] })
|
|
28701
28767
|
] });
|
|
28702
28768
|
}
|
|
28703
|
-
var import_lucide_react78,
|
|
28769
|
+
var import_lucide_react78, import_react97, import_jsx_runtime126;
|
|
28704
28770
|
var init_SendFlowSelector = __esm({
|
|
28705
28771
|
"src/internal/components/SendMenu/SendFlowSelector.tsx"() {
|
|
28706
28772
|
init_ProviderContext();
|
|
28707
28773
|
init_i18n();
|
|
28708
28774
|
import_lucide_react78 = require("lucide-react");
|
|
28709
|
-
|
|
28775
|
+
import_react97 = require("react");
|
|
28710
28776
|
init_useLayoutDataStore();
|
|
28711
28777
|
init_utils();
|
|
28712
28778
|
init_Expandable2();
|
|
@@ -28769,12 +28835,12 @@ function getServerSnapshot() {
|
|
|
28769
28835
|
return false;
|
|
28770
28836
|
}
|
|
28771
28837
|
function useProMode() {
|
|
28772
|
-
return (0,
|
|
28838
|
+
return (0, import_react98.useSyncExternalStore)(subscribe, getSnapshot, getServerSnapshot);
|
|
28773
28839
|
}
|
|
28774
|
-
var
|
|
28840
|
+
var import_react98, STORAGE_KEY, EVENT_NAME;
|
|
28775
28841
|
var init_pro_mode = __esm({
|
|
28776
28842
|
"src/internal/lib/pro-mode.ts"() {
|
|
28777
|
-
|
|
28843
|
+
import_react98 = require("react");
|
|
28778
28844
|
STORAGE_KEY = "embarkai_pro_mode";
|
|
28779
28845
|
EVENT_NAME = "embarkai-pro-mode-changed";
|
|
28780
28846
|
}
|
|
@@ -29580,7 +29646,7 @@ function TransactionsMenu() {
|
|
|
29580
29646
|
const { t } = useT();
|
|
29581
29647
|
useOnboardingTourAvailable(true);
|
|
29582
29648
|
const setPage = useLayoutDataStore((st) => st.setPage);
|
|
29583
|
-
const [expandedGroups, setExpandedGroups] = (0,
|
|
29649
|
+
const [expandedGroups, setExpandedGroups] = (0, import_react99.useState)({});
|
|
29584
29650
|
const historySupported = isTransactionHistorySupported(chainConfig?.id);
|
|
29585
29651
|
const {
|
|
29586
29652
|
data: txHistoryGroups = [],
|
|
@@ -29593,7 +29659,7 @@ function TransactionsMenu() {
|
|
|
29593
29659
|
queryKey: [TRANSACTIONS_HISTORY_QUERY_KEY, chainConfig.id, address],
|
|
29594
29660
|
queryFn: () => getTransactionsListQuery({ address, chainConfig })
|
|
29595
29661
|
});
|
|
29596
|
-
const refreshTxHistory = (0,
|
|
29662
|
+
const refreshTxHistory = (0, import_react99.useCallback)(
|
|
29597
29663
|
() => qc.invalidateQueries({ queryKey: [TRANSACTIONS_HISTORY_QUERY_KEY, chainConfig.id, address] }),
|
|
29598
29664
|
[qc, chainConfig.id, address]
|
|
29599
29665
|
);
|
|
@@ -29632,14 +29698,14 @@ function TransactionsMenu() {
|
|
|
29632
29698
|
)) })
|
|
29633
29699
|
] });
|
|
29634
29700
|
}
|
|
29635
|
-
var import_react_query57, import_lucide_react80,
|
|
29701
|
+
var import_react_query57, import_lucide_react80, import_react99, import_jsx_runtime128;
|
|
29636
29702
|
var init_TransactionsMenu = __esm({
|
|
29637
29703
|
"src/internal/components/TransactionsMenu/TransactionsMenu.tsx"() {
|
|
29638
29704
|
init_SessionContext();
|
|
29639
29705
|
init_i18n();
|
|
29640
29706
|
import_react_query57 = require("@tanstack/react-query");
|
|
29641
29707
|
import_lucide_react80 = require("lucide-react");
|
|
29642
|
-
|
|
29708
|
+
import_react99 = require("react");
|
|
29643
29709
|
init_useLayoutDataStore();
|
|
29644
29710
|
init_Expandable2();
|
|
29645
29711
|
init_Onboarding();
|
|
@@ -29979,7 +30045,7 @@ var init_PageMap = __esm({
|
|
|
29979
30045
|
// src/internal/hooks/usePageMapper.tsx
|
|
29980
30046
|
function usePageMapper() {
|
|
29981
30047
|
const page = useLayoutDataStore((st) => st.page);
|
|
29982
|
-
const closeDialog = (0,
|
|
30048
|
+
const closeDialog = (0, import_react100.useCallback)(() => {
|
|
29983
30049
|
useLayoutStore.setState({ isDialogAnimating: true });
|
|
29984
30050
|
setTimeout(() => {
|
|
29985
30051
|
useLayoutStore.setState({
|
|
@@ -29991,14 +30057,14 @@ function usePageMapper() {
|
|
|
29991
30057
|
});
|
|
29992
30058
|
}, CLEAR_DIALOG_TIMEOUT);
|
|
29993
30059
|
}, []);
|
|
29994
|
-
const openDialog = (0,
|
|
30060
|
+
const openDialog = (0, import_react100.useCallback)((pageItem) => {
|
|
29995
30061
|
useLayoutStore.setState({
|
|
29996
30062
|
dialogContent: /* @__PURE__ */ (0, import_jsx_runtime130.jsx)(pageItem.component, {}),
|
|
29997
30063
|
isDialogOpen: true
|
|
29998
30064
|
// isDialogAnimating: true
|
|
29999
30065
|
});
|
|
30000
30066
|
}, []);
|
|
30001
|
-
(0,
|
|
30067
|
+
(0, import_react100.useEffect)(() => {
|
|
30002
30068
|
if (page === null) return closeDialog();
|
|
30003
30069
|
const pageItem = PAGE_MAP[page];
|
|
30004
30070
|
if (!pageItem) {
|
|
@@ -30009,10 +30075,10 @@ function usePageMapper() {
|
|
|
30009
30075
|
openDialog(pageItem);
|
|
30010
30076
|
}, [page, closeDialog, openDialog]);
|
|
30011
30077
|
}
|
|
30012
|
-
var
|
|
30078
|
+
var import_react100, import_jsx_runtime130, CLEAR_DIALOG_TIMEOUT;
|
|
30013
30079
|
var init_usePageMapper = __esm({
|
|
30014
30080
|
"src/internal/hooks/usePageMapper.tsx"() {
|
|
30015
|
-
|
|
30081
|
+
import_react100 = require("react");
|
|
30016
30082
|
init_PageMap();
|
|
30017
30083
|
init_constants();
|
|
30018
30084
|
init_useLayoutDataStore();
|
|
@@ -30028,24 +30094,24 @@ function useSettingsNotifications() {
|
|
|
30028
30094
|
const providers = import_auth25.jwtTokenManager.getProviders();
|
|
30029
30095
|
const hasEmail = providers.includes("email");
|
|
30030
30096
|
const { data: userProfile = null } = useUserProfile();
|
|
30031
|
-
(0,
|
|
30097
|
+
(0, import_react101.useEffect)(() => {
|
|
30032
30098
|
const isKYCVerified = userProfile?.kycDetails?.kycStatus === "verified";
|
|
30033
30099
|
setSettingsNotifications({
|
|
30034
30100
|
...COMPLETE_KYC_PROGRESS,
|
|
30035
30101
|
status: isKYCVerified ? "resolved" : "active"
|
|
30036
30102
|
});
|
|
30037
30103
|
}, [userProfile, setSettingsNotifications]);
|
|
30038
|
-
(0,
|
|
30104
|
+
(0, import_react101.useEffect)(() => {
|
|
30039
30105
|
setSettingsNotifications({
|
|
30040
30106
|
...EMAIL_NOT_CONNECTED_NOTIFICATION,
|
|
30041
30107
|
status: hasEmail ? "resolved" : "active"
|
|
30042
30108
|
});
|
|
30043
30109
|
}, [hasEmail, setSettingsNotifications]);
|
|
30044
30110
|
}
|
|
30045
|
-
var
|
|
30111
|
+
var import_react101, EMAIL_NOT_CONNECTED_NOTIFICATION, COMPLETE_KYC_PROGRESS;
|
|
30046
30112
|
var init_useSettingsNotifications = __esm({
|
|
30047
30113
|
"src/internal/hooks/useSettingsNotifications.ts"() {
|
|
30048
|
-
|
|
30114
|
+
import_react101 = require("react");
|
|
30049
30115
|
init_auth();
|
|
30050
30116
|
init_useLayoutDataStore();
|
|
30051
30117
|
init_useUserProfile();
|
|
@@ -30068,7 +30134,7 @@ var init_package = __esm({
|
|
|
30068
30134
|
"package.json"() {
|
|
30069
30135
|
package_default = {
|
|
30070
30136
|
name: "@embarkai/ui-kit",
|
|
30071
|
-
version: "0.4.
|
|
30137
|
+
version: "0.4.115",
|
|
30072
30138
|
description: "React UI components and hooks for EmbarkAI authentication and Account Abstraction",
|
|
30073
30139
|
type: "module",
|
|
30074
30140
|
main: "./dist/index.cjs",
|
|
@@ -30179,7 +30245,7 @@ function Footer() {
|
|
|
30179
30245
|
const address = useSession((st) => st.address);
|
|
30180
30246
|
const chainConfig = useSession((st) => st.chainConfig);
|
|
30181
30247
|
const isDialogForced = useLayoutStore((st) => st.isDialogForced);
|
|
30182
|
-
const { mutate: wagmiDisconnect } = (
|
|
30248
|
+
const { mutate: wagmiDisconnect } = useSafeDisconnect({
|
|
30183
30249
|
mutation: {
|
|
30184
30250
|
onSuccess: () => {
|
|
30185
30251
|
useExternalWalletStore.getState().clearExternalWallet();
|
|
@@ -30285,7 +30351,7 @@ function Footer() {
|
|
|
30285
30351
|
}
|
|
30286
30352
|
);
|
|
30287
30353
|
}
|
|
30288
|
-
var import_react_query59, import_lucide_react83,
|
|
30354
|
+
var import_react_query59, import_lucide_react83, import_jsx_runtime131, FOOTER_ONBOARDING_CHAIN_BUTTON, FOOTER_ONBOARDING_LOGOUT_BUTTON, FOOTER_TOUR;
|
|
30289
30355
|
var init_Footer = __esm({
|
|
30290
30356
|
"src/internal/components/Footer/Footer.tsx"() {
|
|
30291
30357
|
init_package();
|
|
@@ -30293,9 +30359,9 @@ var init_Footer = __esm({
|
|
|
30293
30359
|
init_ProviderContext();
|
|
30294
30360
|
init_SessionContext();
|
|
30295
30361
|
init_i18n();
|
|
30362
|
+
init_useSafeDisconnect();
|
|
30296
30363
|
import_react_query59 = require("@tanstack/react-query");
|
|
30297
30364
|
import_lucide_react83 = require("lucide-react");
|
|
30298
|
-
import_wagmi9 = require("wagmi");
|
|
30299
30365
|
init_auth();
|
|
30300
30366
|
init_base3();
|
|
30301
30367
|
init_useLayoutDataStore();
|
|
@@ -30403,11 +30469,11 @@ function Header() {
|
|
|
30403
30469
|
const embarkPage = useLayoutDataStore((st) => st.page);
|
|
30404
30470
|
const isOnboardingTourAvailable = useOnboardingStore((st) => st.isTourAvailable);
|
|
30405
30471
|
const proMode = useProMode();
|
|
30406
|
-
const [proToast, setProToast] = (0,
|
|
30407
|
-
const [copied, setCopied] = (0,
|
|
30408
|
-
const clickCountRef = (0,
|
|
30409
|
-
const clickTimerRef = (0,
|
|
30410
|
-
const handleAvatarClick = (0,
|
|
30472
|
+
const [proToast, setProToast] = (0, import_react102.useState)(false);
|
|
30473
|
+
const [copied, setCopied] = (0, import_react102.useState)(false);
|
|
30474
|
+
const clickCountRef = (0, import_react102.useRef)(0);
|
|
30475
|
+
const clickTimerRef = (0, import_react102.useRef)(null);
|
|
30476
|
+
const handleAvatarClick = (0, import_react102.useCallback)(() => {
|
|
30411
30477
|
clickCountRef.current += 1;
|
|
30412
30478
|
if (clickTimerRef.current) {
|
|
30413
30479
|
clearTimeout(clickTimerRef.current);
|
|
@@ -30513,7 +30579,7 @@ function Header() {
|
|
|
30513
30579
|
}
|
|
30514
30580
|
);
|
|
30515
30581
|
}
|
|
30516
|
-
var import_lucide_react84,
|
|
30582
|
+
var import_lucide_react84, import_react102, import_jsx_runtime132;
|
|
30517
30583
|
var init_Header = __esm({
|
|
30518
30584
|
"src/internal/components/Header/Header.tsx"() {
|
|
30519
30585
|
init_lumia2();
|
|
@@ -30521,7 +30587,7 @@ var init_Header = __esm({
|
|
|
30521
30587
|
init_ProviderContext();
|
|
30522
30588
|
init_SessionContext();
|
|
30523
30589
|
import_lucide_react84 = require("lucide-react");
|
|
30524
|
-
|
|
30590
|
+
import_react102 = require("react");
|
|
30525
30591
|
init_icons();
|
|
30526
30592
|
init_auth();
|
|
30527
30593
|
init_useLayoutDataStore();
|
|
@@ -30556,7 +30622,7 @@ function useDecideContentStyles() {
|
|
|
30556
30622
|
style: (0, import_lodash_es17.merge)({}, mobileStyles)
|
|
30557
30623
|
};
|
|
30558
30624
|
}
|
|
30559
|
-
var DialogPrimitive, import_lodash_es17, import_lucide_react85,
|
|
30625
|
+
var DialogPrimitive, import_lodash_es17, import_lucide_react85, import_react103, import_jsx_runtime133, Dialog, DialogPortal, DialogOverlay, CONTENT_BG_SETUP, DialogContent, DialogHeader, DialogFooter, DialogTitle, DialogDescription;
|
|
30560
30626
|
var init_dialog = __esm({
|
|
30561
30627
|
"src/internal/components/ui/dialog.tsx"() {
|
|
30562
30628
|
init_utils();
|
|
@@ -30565,14 +30631,14 @@ var init_dialog = __esm({
|
|
|
30565
30631
|
DialogPrimitive = __toESM(require("@radix-ui/react-dialog"), 1);
|
|
30566
30632
|
import_lodash_es17 = require("lodash-es");
|
|
30567
30633
|
import_lucide_react85 = require("lucide-react");
|
|
30568
|
-
|
|
30634
|
+
import_react103 = require("react");
|
|
30569
30635
|
init_useLayoutDataStore();
|
|
30570
30636
|
init_useLayoutStore();
|
|
30571
30637
|
init_button();
|
|
30572
30638
|
import_jsx_runtime133 = require("react/jsx-runtime");
|
|
30573
30639
|
Dialog = DialogPrimitive.Root;
|
|
30574
30640
|
DialogPortal = DialogPrimitive.Portal;
|
|
30575
|
-
DialogOverlay = (0,
|
|
30641
|
+
DialogOverlay = (0, import_react103.forwardRef)(
|
|
30576
30642
|
({ className, closing, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime133.jsx)(
|
|
30577
30643
|
DialogPrimitive.Overlay,
|
|
30578
30644
|
{
|
|
@@ -30594,7 +30660,7 @@ var init_dialog = __esm({
|
|
|
30594
30660
|
border: "1px solid var(--ui-kit-bd)",
|
|
30595
30661
|
boxShadow: "var(--ui-kit-shadow, 0px 4px 10px var(--ui-kit-shadow-c, rgba(0, 0, 0, 0.1)))"
|
|
30596
30662
|
};
|
|
30597
|
-
DialogContent = (0,
|
|
30663
|
+
DialogContent = (0, import_react103.forwardRef)(
|
|
30598
30664
|
({ className, children, colorMode, ...props }, ref) => {
|
|
30599
30665
|
const { t, i18n } = useT();
|
|
30600
30666
|
const isSessionLoading = useSession((st) => st.isLoading);
|
|
@@ -30705,7 +30771,7 @@ var init_dialog = __esm({
|
|
|
30705
30771
|
DialogHeader.displayName = "DialogHeader";
|
|
30706
30772
|
DialogFooter = ({ className, ...props }) => /* @__PURE__ */ (0, import_jsx_runtime133.jsx)("div", { className: cn2("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2", className), ...props });
|
|
30707
30773
|
DialogFooter.displayName = "DialogFooter";
|
|
30708
|
-
DialogTitle = (0,
|
|
30774
|
+
DialogTitle = (0, import_react103.forwardRef)(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime133.jsx)(
|
|
30709
30775
|
DialogPrimitive.Title,
|
|
30710
30776
|
{
|
|
30711
30777
|
ref,
|
|
@@ -30714,7 +30780,7 @@ var init_dialog = __esm({
|
|
|
30714
30780
|
}
|
|
30715
30781
|
));
|
|
30716
30782
|
DialogTitle.displayName = DialogPrimitive.Title.displayName;
|
|
30717
|
-
DialogDescription = (0,
|
|
30783
|
+
DialogDescription = (0, import_react103.forwardRef)(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime133.jsx)(DialogPrimitive.Description, { ref, className: cn2("text-sm text-muted-foreground", className), ...props }));
|
|
30718
30784
|
DialogDescription.displayName = DialogPrimitive.Description.displayName;
|
|
30719
30785
|
}
|
|
30720
30786
|
});
|
|
@@ -30737,7 +30803,7 @@ function Dialog2() {
|
|
|
30737
30803
|
const { colorMode, maxScrollHeight, isDialogOpen, dialogContent, isDialogForced } = useLayoutStore();
|
|
30738
30804
|
const page = useLayoutDataStore((st) => st.page);
|
|
30739
30805
|
const transitionPageHeight = useLayoutDataStore((st) => st.transitionPageHeight);
|
|
30740
|
-
(0,
|
|
30806
|
+
(0, import_react105.useEffect)(() => useLayoutStore.setState({ isSettings: !!session }), [session]);
|
|
30741
30807
|
usePageMapper();
|
|
30742
30808
|
useAutoConnect();
|
|
30743
30809
|
useBackupStatusChanges();
|
|
@@ -30768,8 +30834,8 @@ function Dialog2() {
|
|
|
30768
30834
|
/* @__PURE__ */ (0, import_jsx_runtime135.jsx)(VisuallyHidden, { children: /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(DialogTitle, { children: "embarkAI" }) }),
|
|
30769
30835
|
/* @__PURE__ */ (0, import_jsx_runtime135.jsx)(DialogDescription, { className: "sr-only", children: "embarkAI wallet" }),
|
|
30770
30836
|
!isHeaderHidden && /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(Header, {}),
|
|
30771
|
-
/* @__PURE__ */ (0, import_jsx_runtime135.jsx)(
|
|
30772
|
-
|
|
30837
|
+
/* @__PURE__ */ (0, import_jsx_runtime135.jsx)(import_react104.AnimatePresence, { mode: "wait", initial: false, children: /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(
|
|
30838
|
+
import_react104.motion.div,
|
|
30773
30839
|
{
|
|
30774
30840
|
style: { overflow: "hidden" },
|
|
30775
30841
|
initial: { opacity: 0, height: transitionPageHeight },
|
|
@@ -30798,13 +30864,13 @@ function Dialog2() {
|
|
|
30798
30864
|
}
|
|
30799
30865
|
);
|
|
30800
30866
|
}
|
|
30801
|
-
var
|
|
30867
|
+
var import_react104, import_react105, import_jsx_runtime135;
|
|
30802
30868
|
var init_Dialog = __esm({
|
|
30803
30869
|
"src/internal/components/Dialog/Dialog.tsx"() {
|
|
30804
30870
|
init_ProviderContext();
|
|
30805
30871
|
init_SessionContext();
|
|
30806
|
-
|
|
30807
|
-
|
|
30872
|
+
import_react104 = require("motion/react");
|
|
30873
|
+
import_react105 = require("react");
|
|
30808
30874
|
init_constants();
|
|
30809
30875
|
init_useAllowExternalModalsScroll();
|
|
30810
30876
|
init_useAutoConnect();
|
|
@@ -30835,47 +30901,56 @@ var init_Dialog2 = __esm({
|
|
|
30835
30901
|
function DirectWalletHandler() {
|
|
30836
30902
|
const walletMode = useProviderConfig().config.current?.wallet?.mode || "both";
|
|
30837
30903
|
const externalAddress = useExternalWalletStore((st) => st.externalAddress);
|
|
30904
|
+
const externalChainId = useExternalWalletStore((st) => st.externalChainId);
|
|
30905
|
+
const externalConnectorName = useExternalWalletStore((st) => st.connectorName);
|
|
30838
30906
|
const isExternalConnected = useExternalWalletStore((st) => st.isExternalConnected);
|
|
30839
|
-
const { address, isConnected,
|
|
30840
|
-
(0,
|
|
30907
|
+
const { address, isConnected, chainId, connector } = (0, import_wagmi8.useConnection)();
|
|
30908
|
+
(0, import_react106.useEffect)(() => {
|
|
30841
30909
|
const { setConfigMode, setActiveMode } = useExternalWalletStore.getState();
|
|
30842
30910
|
setConfigMode(walletMode);
|
|
30843
30911
|
if (walletMode !== "both") setActiveMode(walletMode);
|
|
30844
30912
|
}, [walletMode]);
|
|
30845
|
-
(0,
|
|
30913
|
+
(0, import_react106.useEffect)(() => {
|
|
30846
30914
|
if ((!!externalAddress || isExternalConnected) && !isConnected) {
|
|
30847
30915
|
useExternalWalletStore.getState().clearExternalWallet();
|
|
30848
30916
|
return;
|
|
30849
30917
|
}
|
|
30850
|
-
if (isConnected
|
|
30851
|
-
|
|
30852
|
-
|
|
30853
|
-
|
|
30854
|
-
connectorName: connector.name || "Unknown Wallet"
|
|
30855
|
-
});
|
|
30918
|
+
if (!isConnected || !address || !connector || !chainId) return;
|
|
30919
|
+
const connectorName = connector.name || "Unknown Wallet";
|
|
30920
|
+
if (externalAddress !== address || externalChainId !== chainId || externalConnectorName !== connectorName) {
|
|
30921
|
+
useExternalWalletStore.getState().setExternalWallet({ address, chainId, connectorName });
|
|
30856
30922
|
}
|
|
30857
|
-
}, [
|
|
30923
|
+
}, [
|
|
30924
|
+
isConnected,
|
|
30925
|
+
address,
|
|
30926
|
+
isExternalConnected,
|
|
30927
|
+
externalAddress,
|
|
30928
|
+
externalChainId,
|
|
30929
|
+
externalConnectorName,
|
|
30930
|
+
connector,
|
|
30931
|
+
chainId
|
|
30932
|
+
]);
|
|
30858
30933
|
return null;
|
|
30859
30934
|
}
|
|
30860
|
-
var
|
|
30935
|
+
var import_react106, import_wagmi8;
|
|
30861
30936
|
var init_DirectWalletHandler = __esm({
|
|
30862
30937
|
"src/internal/components/DirectWalletHandler.tsx"() {
|
|
30863
|
-
|
|
30864
|
-
|
|
30938
|
+
import_react106 = require("react");
|
|
30939
|
+
import_wagmi8 = require("wagmi");
|
|
30865
30940
|
init_ProviderContext();
|
|
30866
30941
|
init_useExternalWalletStore();
|
|
30867
30942
|
}
|
|
30868
30943
|
});
|
|
30869
30944
|
|
|
30870
30945
|
// src/internal/components/TssManager.tsx
|
|
30871
|
-
var
|
|
30946
|
+
var import_react107, TssManagerWithRef;
|
|
30872
30947
|
var init_TssManager = __esm({
|
|
30873
30948
|
"src/internal/components/TssManager.tsx"() {
|
|
30874
30949
|
init_SessionContext();
|
|
30875
|
-
|
|
30950
|
+
import_react107 = __toESM(require("react"), 1);
|
|
30876
30951
|
init_auth();
|
|
30877
30952
|
init_clients();
|
|
30878
|
-
TssManagerWithRef =
|
|
30953
|
+
TssManagerWithRef = import_react107.default.forwardRef((props, ref) => {
|
|
30879
30954
|
const { mpcPin } = props;
|
|
30880
30955
|
const usePaymaster = useSession((st) => st.usePaymaster);
|
|
30881
30956
|
const publicClient = useSession((st) => st.publicClient);
|
|
@@ -30883,14 +30958,14 @@ var init_TssManager = __esm({
|
|
|
30883
30958
|
const setStatus = useSession((st) => st.setStatus);
|
|
30884
30959
|
const setSession = useSession((st) => st.setSession);
|
|
30885
30960
|
const setAddress = useSession((st) => st.setAddress);
|
|
30886
|
-
const onSessionCreated = (0,
|
|
30961
|
+
const onSessionCreated = (0, import_react107.useCallback)(
|
|
30887
30962
|
(session, address) => {
|
|
30888
30963
|
setSession(session);
|
|
30889
30964
|
setAddress(address);
|
|
30890
30965
|
},
|
|
30891
30966
|
[setSession, setAddress]
|
|
30892
30967
|
);
|
|
30893
|
-
const createSessionWithKeyshare =
|
|
30968
|
+
const createSessionWithKeyshare = import_react107.default.useCallback(
|
|
30894
30969
|
async (userId, hasServerKeyshare, isNewUser) => {
|
|
30895
30970
|
setStatus("checking key management setup...");
|
|
30896
30971
|
await ensureKeyshare(userId, hasServerKeyshare, setStatus, isNewUser);
|
|
@@ -30915,7 +30990,7 @@ var init_TssManager = __esm({
|
|
|
30915
30990
|
},
|
|
30916
30991
|
[setStatus, usePaymaster, activeChainId, publicClient, mpcPin]
|
|
30917
30992
|
);
|
|
30918
|
-
|
|
30993
|
+
import_react107.default.useImperativeHandle(ref, () => ({ createSessionWithKeyshare }), [createSessionWithKeyshare]);
|
|
30919
30994
|
return null;
|
|
30920
30995
|
});
|
|
30921
30996
|
}
|
|
@@ -30939,7 +31014,7 @@ function waitForStoreHydration() {
|
|
|
30939
31014
|
}
|
|
30940
31015
|
function SessionProvider({ children }) {
|
|
30941
31016
|
const config = useProviderConfig().config;
|
|
30942
|
-
return /* @__PURE__ */ (0, import_jsx_runtime136.jsxs)(
|
|
31017
|
+
return /* @__PURE__ */ (0, import_jsx_runtime136.jsxs)(import_react108.Fragment, {
|
|
30943
31018
|
/** dApp's router might have its own error boundaries setup via imported @embarkai/ui-kitErrorBoundary */
|
|
30944
31019
|
children: [
|
|
30945
31020
|
children,
|
|
@@ -30959,11 +31034,11 @@ function SessionProvider({ children }) {
|
|
|
30959
31034
|
]
|
|
30960
31035
|
});
|
|
30961
31036
|
}
|
|
30962
|
-
var import_read22,
|
|
31037
|
+
var import_read22, import_react108, import_zustand19, import_middleware5, import_jsx_runtime136, useSession, requireActiveChainId;
|
|
30963
31038
|
var init_SessionContext = __esm({
|
|
30964
31039
|
"src/context/SessionContext.tsx"() {
|
|
30965
31040
|
import_read22 = require("@embarkai/core/read");
|
|
30966
|
-
|
|
31041
|
+
import_react108 = require("react");
|
|
30967
31042
|
import_zustand19 = require("zustand");
|
|
30968
31043
|
import_middleware5 = require("zustand/middleware");
|
|
30969
31044
|
init_ErrorBoundary2();
|
|
@@ -32313,7 +32388,7 @@ var init_iframe_manager = __esm({
|
|
|
32313
32388
|
*/
|
|
32314
32389
|
handleMessage(event) {
|
|
32315
32390
|
const message = event.data;
|
|
32316
|
-
if (!message || typeof message !== "object" || !message.type) {
|
|
32391
|
+
if (!message || typeof message !== "object" || typeof message.type !== "string" || !message.type) {
|
|
32317
32392
|
return;
|
|
32318
32393
|
}
|
|
32319
32394
|
message.type = this.normalizeMessageType(message.type);
|
|
@@ -33418,11 +33493,11 @@ function clearLegacyWagmiStorage() {
|
|
|
33418
33493
|
}
|
|
33419
33494
|
function Provider(props) {
|
|
33420
33495
|
const { children, projectId, initialConfig = {}, callbacks } = props;
|
|
33421
|
-
const callbacksRef = (0,
|
|
33422
|
-
(0,
|
|
33423
|
-
const config = (0,
|
|
33424
|
-
const wagmiConfig3 = (0,
|
|
33425
|
-
const updateConfig = (0,
|
|
33496
|
+
const callbacksRef = (0, import_react109.useRef)(callbacks);
|
|
33497
|
+
(0, import_react109.useEffect)(() => notifyNoProjetctId(projectId), [projectId]);
|
|
33498
|
+
const config = (0, import_react109.useRef)((0, import_lodash_es18.merge)({}, DEFAULT_PROVIDER_CONFIG, { projectId }, initialConfig));
|
|
33499
|
+
const wagmiConfig3 = (0, import_react109.useRef)((0, import_core9.getWagmiConfig)(config.current?.wallet?.walletConnectId || null));
|
|
33500
|
+
const updateConfig = (0, import_react109.useCallback)((updates) => {
|
|
33426
33501
|
const prev = config.current;
|
|
33427
33502
|
const next = { ...prev };
|
|
33428
33503
|
if (updates.projectId !== void 0) next.projectId = updates.projectId;
|
|
@@ -33456,12 +33531,12 @@ function Provider(props) {
|
|
|
33456
33531
|
if (updates.translations) next.translations = { ...next.translations, ...updates.translations };
|
|
33457
33532
|
config.current = next;
|
|
33458
33533
|
}, []);
|
|
33459
|
-
const updateCallbacks = (0,
|
|
33534
|
+
const updateCallbacks = (0, import_react109.useCallback)((updates) => {
|
|
33460
33535
|
const prev = callbacksRef.current;
|
|
33461
33536
|
const next = updates ? { ...prev, ...updates } : void 0;
|
|
33462
33537
|
callbacksRef.current = next;
|
|
33463
33538
|
}, []);
|
|
33464
|
-
(0,
|
|
33539
|
+
(0, import_react109.useEffect)(() => {
|
|
33465
33540
|
if (typeof window === "undefined" || !projectId) return;
|
|
33466
33541
|
const mergedConfig = (0, import_lodash_es18.merge)(DEFAULT_PROVIDER_CONFIG, initialConfig);
|
|
33467
33542
|
updateConfig(mergedConfig);
|
|
@@ -33481,7 +33556,7 @@ function Provider(props) {
|
|
|
33481
33556
|
useSession.getState().setActiveChainId(mergedConfig.network.chainId);
|
|
33482
33557
|
}
|
|
33483
33558
|
}, [projectId, initialConfig]);
|
|
33484
|
-
(0,
|
|
33559
|
+
(0, import_react109.useEffect)(() => {
|
|
33485
33560
|
if (typeof window === "undefined" || !projectId) return;
|
|
33486
33561
|
try {
|
|
33487
33562
|
(0, import_error_tracking4.initSdkErrorTracking)();
|
|
@@ -33510,7 +33585,7 @@ function Provider(props) {
|
|
|
33510
33585
|
console.error("[PROVIDER] Error setting up iframe manager:", error);
|
|
33511
33586
|
}
|
|
33512
33587
|
}, [projectId]);
|
|
33513
|
-
const contextValue = (0,
|
|
33588
|
+
const contextValue = (0, import_react109.useMemo)(
|
|
33514
33589
|
() => ({
|
|
33515
33590
|
config,
|
|
33516
33591
|
updateConfig,
|
|
@@ -33521,24 +33596,24 @@ function Provider(props) {
|
|
|
33521
33596
|
}),
|
|
33522
33597
|
[config, updateConfig, callbacks, updateCallbacks]
|
|
33523
33598
|
);
|
|
33524
|
-
return /* @__PURE__ */ (0, import_jsx_runtime137.jsx)(UIContext.Provider, { value: contextValue, children: /* @__PURE__ */ (0, import_jsx_runtime137.jsx)(
|
|
33599
|
+
return /* @__PURE__ */ (0, import_jsx_runtime137.jsx)(UIContext.Provider, { value: contextValue, children: /* @__PURE__ */ (0, import_jsx_runtime137.jsx)(import_wagmi9.WagmiProvider, { config: wagmiConfig3.current, children: /* @__PURE__ */ (0, import_jsx_runtime137.jsx)(SessionProvider, { children }) }) });
|
|
33525
33600
|
}
|
|
33526
|
-
var import_core9, import_error_tracking4, import_lodash_es18,
|
|
33601
|
+
var import_core9, import_error_tracking4, import_lodash_es18, import_react109, import_wagmi9, import_jsx_runtime137, UIContext, useProviderConfig;
|
|
33527
33602
|
var init_ProviderContext = __esm({
|
|
33528
33603
|
"src/context/ProviderContext.tsx"() {
|
|
33529
33604
|
import_core9 = require("@embarkai/core");
|
|
33530
33605
|
import_error_tracking4 = require("@embarkai/core/internal/error-tracking");
|
|
33531
33606
|
import_lodash_es18 = require("lodash-es");
|
|
33532
|
-
|
|
33533
|
-
|
|
33607
|
+
import_react109 = require("react");
|
|
33608
|
+
import_wagmi9 = require("wagmi");
|
|
33534
33609
|
init_initial();
|
|
33535
33610
|
init_iframe_manager();
|
|
33536
33611
|
init_SessionContext();
|
|
33537
33612
|
init_utils14();
|
|
33538
33613
|
import_jsx_runtime137 = require("react/jsx-runtime");
|
|
33539
|
-
UIContext = (0,
|
|
33614
|
+
UIContext = (0, import_react109.createContext)(void 0);
|
|
33540
33615
|
useProviderConfig = () => {
|
|
33541
|
-
const ctx = (0,
|
|
33616
|
+
const ctx = (0, import_react109.useContext)(UIContext);
|
|
33542
33617
|
if (!ctx) throw new Error("useProviderConfig must be used within a Provider");
|
|
33543
33618
|
return ctx;
|
|
33544
33619
|
};
|
|
@@ -33661,7 +33736,7 @@ init_ErrorBoundary2();
|
|
|
33661
33736
|
init_lumia2();
|
|
33662
33737
|
init_embarkAI2();
|
|
33663
33738
|
var import_lucide_react86 = require("lucide-react");
|
|
33664
|
-
var
|
|
33739
|
+
var import_react110 = require("react");
|
|
33665
33740
|
init_SessionContext();
|
|
33666
33741
|
init_auth();
|
|
33667
33742
|
init_BalanceView2();
|
|
@@ -33694,10 +33769,10 @@ function ConnectWalletButton(props) {
|
|
|
33694
33769
|
const colorMode = useLayoutStore((st) => st.colorMode);
|
|
33695
33770
|
const { session, address, hasServerVault, isLoading, isIframeReady, status, setUsePaymaster } = useSession();
|
|
33696
33771
|
const connectButtonLabel = getFormattedStatus(label || "Connect", status, isIframeReady);
|
|
33697
|
-
(0,
|
|
33772
|
+
(0, import_react110.useEffect)(() => setUsePaymaster(usePaymaster), [setUsePaymaster, usePaymaster]);
|
|
33698
33773
|
const { data: profile, isLoading: isProfileLoading } = useUserProfile();
|
|
33699
33774
|
const displayName = profile?.nicknameDisplay || profile?.displayName || import_auth25.jwtTokenManager.getDisplayName();
|
|
33700
|
-
const indicators = (0,
|
|
33775
|
+
const indicators = (0, import_react110.useMemo)(() => {
|
|
33701
33776
|
const userId = session?.mpcUserId;
|
|
33702
33777
|
if (!userId) return { server: false, local: false, backup: false };
|
|
33703
33778
|
const server = import_auth25.jwtTokenManager.getHasKeyshare() ?? false;
|
|
@@ -34336,14 +34411,14 @@ var Hash = ({
|
|
|
34336
34411
|
};
|
|
34337
34412
|
|
|
34338
34413
|
// src/internal/components/TransactionsMenu/TransactionsList.tsx
|
|
34339
|
-
var
|
|
34414
|
+
var import_react111 = require("react");
|
|
34340
34415
|
init_base3();
|
|
34341
34416
|
var import_jsx_runtime144 = require("react/jsx-runtime");
|
|
34342
34417
|
var TransactionsList = ({ address, itemsCount = 10 }) => {
|
|
34343
|
-
const [transactions, setTransactions] = (0,
|
|
34344
|
-
const [loading, setLoading] = (0,
|
|
34345
|
-
const [error, setError] = (0,
|
|
34346
|
-
(0,
|
|
34418
|
+
const [transactions, setTransactions] = (0, import_react111.useState)([]);
|
|
34419
|
+
const [loading, setLoading] = (0, import_react111.useState)(true);
|
|
34420
|
+
const [error, setError] = (0, import_react111.useState)(null);
|
|
34421
|
+
(0, import_react111.useEffect)(() => {
|
|
34347
34422
|
const fetchTransactions2 = async () => {
|
|
34348
34423
|
try {
|
|
34349
34424
|
setLoading(true);
|
|
@@ -34634,13 +34709,13 @@ function useUserOpStatus(options = {}) {
|
|
|
34634
34709
|
init_useErc3643Compliance();
|
|
34635
34710
|
|
|
34636
34711
|
// src/hooks/useWalletMode.ts
|
|
34637
|
-
var
|
|
34712
|
+
var import_react112 = require("react");
|
|
34638
34713
|
init_useExternalWalletStore();
|
|
34639
34714
|
function useWalletMode() {
|
|
34640
34715
|
const configMode = useExternalWalletStore((st) => st.configMode);
|
|
34641
34716
|
const activeMode = useExternalWalletStore((st) => st.activeMode);
|
|
34642
34717
|
const setActiveMode = useExternalWalletStore((st) => st.setActiveMode);
|
|
34643
|
-
const switchMode = (0,
|
|
34718
|
+
const switchMode = (0, import_react112.useCallback)(
|
|
34644
34719
|
(mode) => {
|
|
34645
34720
|
if (configMode !== "both") return;
|
|
34646
34721
|
setActiveMode(mode);
|
|
@@ -34657,8 +34732,8 @@ function useWalletMode() {
|
|
|
34657
34732
|
|
|
34658
34733
|
// src/hooks/useDirectWallet.ts
|
|
34659
34734
|
init_useOpenPage();
|
|
34660
|
-
|
|
34661
|
-
var
|
|
34735
|
+
init_useSafeDisconnect();
|
|
34736
|
+
var import_react113 = require("react");
|
|
34662
34737
|
init_useExternalWalletStore();
|
|
34663
34738
|
function useDirectWallet() {
|
|
34664
34739
|
const address = useExternalWalletStore((st) => st.externalAddress);
|
|
@@ -34666,11 +34741,11 @@ function useDirectWallet() {
|
|
|
34666
34741
|
const isConnected = useExternalWalletStore((st) => st.isExternalConnected);
|
|
34667
34742
|
const connectorName = useExternalWalletStore((st) => st.connectorName);
|
|
34668
34743
|
const { open: openEmbarkAI } = useOpenPage();
|
|
34669
|
-
const { mutate: wagmiDisconnect } = (
|
|
34670
|
-
const connect = (0,
|
|
34744
|
+
const { mutate: wagmiDisconnect } = useSafeDisconnect();
|
|
34745
|
+
const connect = (0, import_react113.useCallback)((connectFlowType = "connect") => {
|
|
34671
34746
|
openEmbarkAI("connect-external-wallet" /* CONNECT_EXTERNAL_WALLET */, { connectFlowType });
|
|
34672
34747
|
}, []);
|
|
34673
|
-
const disconnect = (0,
|
|
34748
|
+
const disconnect = (0, import_react113.useCallback)(() => {
|
|
34674
34749
|
wagmiDisconnect();
|
|
34675
34750
|
useExternalWalletStore.getState().clearExternalWallet();
|
|
34676
34751
|
}, [wagmiDisconnect]);
|
|
@@ -34686,63 +34761,89 @@ function useDirectWallet() {
|
|
|
34686
34761
|
}
|
|
34687
34762
|
|
|
34688
34763
|
// src/hooks/useSendDirectTransaction.ts
|
|
34689
|
-
var
|
|
34764
|
+
var import_react114 = require("react");
|
|
34690
34765
|
var import_viem23 = require("viem");
|
|
34691
|
-
var
|
|
34766
|
+
var import_wagmi10 = require("wagmi");
|
|
34767
|
+
|
|
34768
|
+
// src/internal/lib/direct-transaction.ts
|
|
34769
|
+
async function submitDirectTransaction(request, deps) {
|
|
34770
|
+
const { connector, switchChain, send } = deps;
|
|
34771
|
+
if (request.chainId) {
|
|
34772
|
+
const walletChainId = await connector.getChainId();
|
|
34773
|
+
if (walletChainId !== request.chainId) {
|
|
34774
|
+
await switchChain({ connector, chainId: request.chainId });
|
|
34775
|
+
}
|
|
34776
|
+
}
|
|
34777
|
+
return send({ ...request, connector });
|
|
34778
|
+
}
|
|
34779
|
+
|
|
34780
|
+
// src/hooks/useSendDirectTransaction.ts
|
|
34692
34781
|
init_useExternalWalletStore();
|
|
34693
34782
|
function useSendDirectTransaction() {
|
|
34694
34783
|
const isConnected = useExternalWalletStore((st) => st.isExternalConnected);
|
|
34695
|
-
const
|
|
34696
|
-
const { sendTransactionAsync } = (0,
|
|
34697
|
-
const { switchChainAsync } = (0,
|
|
34698
|
-
const [isPending, setIsPending] = (0,
|
|
34699
|
-
const [error, setError] = (0,
|
|
34700
|
-
const [txHash, setTxHash] = (0,
|
|
34701
|
-
const
|
|
34784
|
+
const { connector } = (0, import_wagmi10.useConnection)();
|
|
34785
|
+
const { sendTransactionAsync: sendWagmiTransactionAsync } = (0, import_wagmi10.useSendTransaction)();
|
|
34786
|
+
const { switchChainAsync } = (0, import_wagmi10.useSwitchChain)();
|
|
34787
|
+
const [isPending, setIsPending] = (0, import_react114.useState)(false);
|
|
34788
|
+
const [error, setError] = (0, import_react114.useState)(null);
|
|
34789
|
+
const [txHash, setTxHash] = (0, import_react114.useState)(null);
|
|
34790
|
+
const sendTransactionAsync = (0, import_react114.useCallback)(
|
|
34702
34791
|
async (params) => {
|
|
34703
|
-
if (!isConnected) {
|
|
34704
|
-
|
|
34705
|
-
|
|
34792
|
+
if (!isConnected || !connector) {
|
|
34793
|
+
const message = "No external wallet connected";
|
|
34794
|
+
setError(message);
|
|
34795
|
+
throw new Error(message);
|
|
34706
34796
|
}
|
|
34707
34797
|
if (!(0, import_viem23.isAddress)(params.to)) {
|
|
34708
|
-
|
|
34709
|
-
|
|
34798
|
+
const message = "Invalid recipient address";
|
|
34799
|
+
setError(message);
|
|
34800
|
+
throw new Error(message);
|
|
34710
34801
|
}
|
|
34711
34802
|
setIsPending(true);
|
|
34712
34803
|
setError(null);
|
|
34713
34804
|
setTxHash(null);
|
|
34714
34805
|
try {
|
|
34715
|
-
|
|
34716
|
-
|
|
34717
|
-
|
|
34718
|
-
|
|
34719
|
-
|
|
34720
|
-
|
|
34721
|
-
|
|
34722
|
-
|
|
34723
|
-
|
|
34806
|
+
const hash = await submitDirectTransaction(
|
|
34807
|
+
{
|
|
34808
|
+
to: params.to,
|
|
34809
|
+
value: (0, import_viem23.parseEther)(params.value),
|
|
34810
|
+
data: params.data,
|
|
34811
|
+
chainId: params.chainId,
|
|
34812
|
+
gas: params.gas
|
|
34813
|
+
},
|
|
34814
|
+
{ connector, switchChain: switchChainAsync, send: sendWagmiTransactionAsync }
|
|
34815
|
+
);
|
|
34724
34816
|
setTxHash(hash);
|
|
34725
34817
|
return hash;
|
|
34726
34818
|
} catch (err) {
|
|
34727
|
-
|
|
34728
|
-
|
|
34729
|
-
return null;
|
|
34819
|
+
setError(err instanceof Error ? err.message : "Transaction failed");
|
|
34820
|
+
throw err;
|
|
34730
34821
|
} finally {
|
|
34731
34822
|
setIsPending(false);
|
|
34732
34823
|
}
|
|
34733
34824
|
},
|
|
34734
|
-
[isConnected,
|
|
34825
|
+
[isConnected, connector, sendWagmiTransactionAsync, switchChainAsync]
|
|
34735
34826
|
);
|
|
34736
|
-
const
|
|
34827
|
+
const sendTransaction = (0, import_react114.useCallback)(
|
|
34828
|
+
async (params) => {
|
|
34829
|
+
try {
|
|
34830
|
+
return await sendTransactionAsync(params);
|
|
34831
|
+
} catch {
|
|
34832
|
+
return null;
|
|
34833
|
+
}
|
|
34834
|
+
},
|
|
34835
|
+
[sendTransactionAsync]
|
|
34836
|
+
);
|
|
34837
|
+
const reset = (0, import_react114.useCallback)(() => {
|
|
34737
34838
|
setError(null);
|
|
34738
34839
|
setTxHash(null);
|
|
34739
34840
|
setIsPending(false);
|
|
34740
34841
|
}, []);
|
|
34741
|
-
return { sendTransaction, isPending, error, txHash, reset };
|
|
34842
|
+
return { sendTransaction, sendTransactionAsync, isPending, error, txHash, reset };
|
|
34742
34843
|
}
|
|
34743
34844
|
|
|
34744
34845
|
// src/hooks/useTransferToLinkedWallet.ts
|
|
34745
|
-
var
|
|
34846
|
+
var import_react115 = require("react");
|
|
34746
34847
|
var import_viem24 = require("viem");
|
|
34747
34848
|
init_SessionContext();
|
|
34748
34849
|
init_account2();
|
|
@@ -34761,14 +34862,14 @@ var ERC20_TRANSFER_ABI2 = [
|
|
|
34761
34862
|
function useTransferToLinkedWallet() {
|
|
34762
34863
|
const session = useSession((st) => st.session);
|
|
34763
34864
|
const { profiles } = useLinkedProfiles();
|
|
34764
|
-
const [isPending, setIsPending] = (0,
|
|
34765
|
-
const [error, setError] = (0,
|
|
34766
|
-
const [userOpHash, setUserOpHash] = (0,
|
|
34767
|
-
const linkedWallets = (0,
|
|
34865
|
+
const [isPending, setIsPending] = (0, import_react115.useState)(false);
|
|
34866
|
+
const [error, setError] = (0, import_react115.useState)(null);
|
|
34867
|
+
const [userOpHash, setUserOpHash] = (0, import_react115.useState)(null);
|
|
34868
|
+
const linkedWallets = (0, import_react115.useMemo)(
|
|
34768
34869
|
() => (profiles || []).filter((p) => p.provider === "wallet" && p.externalId).map((p) => p.externalId),
|
|
34769
34870
|
[profiles]
|
|
34770
34871
|
);
|
|
34771
|
-
const transfer = (0,
|
|
34872
|
+
const transfer = (0, import_react115.useCallback)(
|
|
34772
34873
|
async (params) => {
|
|
34773
34874
|
if (!session) {
|
|
34774
34875
|
setError("No active session");
|
|
@@ -34819,7 +34920,7 @@ function useTransferToLinkedWallet() {
|
|
|
34819
34920
|
},
|
|
34820
34921
|
[session, linkedWallets]
|
|
34821
34922
|
);
|
|
34822
|
-
const reset = (0,
|
|
34923
|
+
const reset = (0, import_react115.useCallback)(() => {
|
|
34823
34924
|
setError(null);
|
|
34824
34925
|
setUserOpHash(null);
|
|
34825
34926
|
setIsPending(false);
|
|
@@ -34828,11 +34929,11 @@ function useTransferToLinkedWallet() {
|
|
|
34828
34929
|
}
|
|
34829
34930
|
|
|
34830
34931
|
// src/hooks/useNativeWalletSignature.ts
|
|
34831
|
-
var
|
|
34932
|
+
var import_wagmi11 = require("wagmi");
|
|
34832
34933
|
init_providers();
|
|
34833
34934
|
function useNativeWalletSignature() {
|
|
34834
|
-
const signMessage = (0,
|
|
34835
|
-
const signTypedMessage = (0,
|
|
34935
|
+
const signMessage = (0, import_wagmi11.useSignMessage)();
|
|
34936
|
+
const signTypedMessage = (0, import_wagmi11.useSignTypedData)();
|
|
34836
34937
|
return {
|
|
34837
34938
|
signMessage,
|
|
34838
34939
|
/** EIP-712 signature */
|
|
@@ -34842,16 +34943,16 @@ function useNativeWalletSignature() {
|
|
|
34842
34943
|
}
|
|
34843
34944
|
|
|
34844
34945
|
// src/hooks/useLogout.ts
|
|
34946
|
+
init_useSafeDisconnect();
|
|
34845
34947
|
var import_auth27 = require("@embarkai/core/auth");
|
|
34846
|
-
var
|
|
34847
|
-
var import_wagmi15 = require("wagmi");
|
|
34948
|
+
var import_react116 = require("react");
|
|
34848
34949
|
init_ProviderContext();
|
|
34849
34950
|
init_SessionContext();
|
|
34850
34951
|
init_useExternalWalletStore();
|
|
34851
34952
|
function useLogout() {
|
|
34852
34953
|
const { callbacksRef } = useProviderConfig();
|
|
34853
34954
|
const address = useSession((st) => st.address);
|
|
34854
|
-
const { mutate: wagmiDisconnect } = (
|
|
34955
|
+
const { mutate: wagmiDisconnect } = useSafeDisconnect({
|
|
34855
34956
|
mutation: {
|
|
34856
34957
|
onSuccess: () => {
|
|
34857
34958
|
useExternalWalletStore.getState().clearExternalWallet();
|
|
@@ -34862,7 +34963,7 @@ function useLogout() {
|
|
|
34862
34963
|
}
|
|
34863
34964
|
}
|
|
34864
34965
|
});
|
|
34865
|
-
const logout2 = (0,
|
|
34966
|
+
const logout2 = (0, import_react116.useCallback)(async () => {
|
|
34866
34967
|
const { setSession, setIsLoading, setAddress, setStatus, setError } = useSession.getState();
|
|
34867
34968
|
const prevAddress = address;
|
|
34868
34969
|
let userId = null;
|
|
@@ -34917,13 +35018,13 @@ init_useBlockscoutAssets2();
|
|
|
34917
35018
|
init_SessionContext();
|
|
34918
35019
|
var import_read24 = require("@embarkai/core/read");
|
|
34919
35020
|
var import_viem25 = require("viem");
|
|
34920
|
-
var
|
|
35021
|
+
var import_wagmi12 = require("wagmi");
|
|
34921
35022
|
function useTransactions() {
|
|
34922
35023
|
const chainId = requireActiveChainId();
|
|
34923
35024
|
const viemChain = (0, import_read24.getViemChain)(chainId);
|
|
34924
|
-
const publicClient = (0,
|
|
34925
|
-
const { data: walletClient } = (0,
|
|
34926
|
-
const { address } = (0,
|
|
35025
|
+
const publicClient = (0, import_wagmi12.usePublicClient)({ chainId });
|
|
35026
|
+
const { data: walletClient } = (0, import_wagmi12.useWalletClient)();
|
|
35027
|
+
const { address } = (0, import_wagmi12.useAccount)();
|
|
34927
35028
|
const sendTransaction = async (params) => {
|
|
34928
35029
|
if (!walletClient) {
|
|
34929
35030
|
throw new Error("Wallet not connected");
|
|
@@ -34981,9 +35082,9 @@ function useTransactions() {
|
|
|
34981
35082
|
|
|
34982
35083
|
// src/modules/assets.ts
|
|
34983
35084
|
init_SessionContext();
|
|
34984
|
-
var
|
|
35085
|
+
var import_react117 = __toESM(require("react"), 1);
|
|
34985
35086
|
var import_viem26 = require("viem");
|
|
34986
|
-
var
|
|
35087
|
+
var import_wagmi13 = require("wagmi");
|
|
34987
35088
|
var COMMON_TOKENS = [
|
|
34988
35089
|
// Add real token addresses here when available
|
|
34989
35090
|
// {
|
|
@@ -35000,7 +35101,7 @@ function useAssets(address) {
|
|
|
35000
35101
|
data: nativeBalance,
|
|
35001
35102
|
isLoading: nativeBalanceLoading,
|
|
35002
35103
|
refetch: refetchNativeBalance
|
|
35003
|
-
} = (0,
|
|
35104
|
+
} = (0, import_wagmi13.useBalance)({
|
|
35004
35105
|
address,
|
|
35005
35106
|
chainId,
|
|
35006
35107
|
query: {
|
|
@@ -35018,7 +35119,7 @@ function useAssets(address) {
|
|
|
35018
35119
|
data: tokenBalances,
|
|
35019
35120
|
isLoading: tokenBalancesLoading,
|
|
35020
35121
|
refetch: refetchTokenBalances
|
|
35021
|
-
} = (0,
|
|
35122
|
+
} = (0, import_wagmi13.useReadContracts)({
|
|
35022
35123
|
contracts: tokenContracts,
|
|
35023
35124
|
query: {
|
|
35024
35125
|
enabled: !!address && COMMON_TOKENS.length > 0
|
|
@@ -35094,7 +35195,7 @@ function useAssets(address) {
|
|
|
35094
35195
|
}
|
|
35095
35196
|
function useTokenInfo(tokenAddress) {
|
|
35096
35197
|
const chainId = requireActiveChainId();
|
|
35097
|
-
const readContractsResult = (0,
|
|
35198
|
+
const readContractsResult = (0, import_wagmi13.useReadContracts)({
|
|
35098
35199
|
contracts: [
|
|
35099
35200
|
{ address: tokenAddress, abi: import_viem26.erc20Abi, functionName: "name", chainId },
|
|
35100
35201
|
{ address: tokenAddress, abi: import_viem26.erc20Abi, functionName: "symbol", chainId },
|
|
@@ -35125,7 +35226,7 @@ function useTokenBalance2(tokenAddress, userAddress) {
|
|
|
35125
35226
|
data: balance,
|
|
35126
35227
|
isLoading,
|
|
35127
35228
|
refetch
|
|
35128
|
-
} = (0,
|
|
35229
|
+
} = (0, import_wagmi13.useReadContract)({
|
|
35129
35230
|
address: tokenAddress,
|
|
35130
35231
|
abi: import_viem26.erc20Abi,
|
|
35131
35232
|
functionName: "balanceOf",
|
|
@@ -35136,7 +35237,7 @@ function useTokenBalance2(tokenAddress, userAddress) {
|
|
|
35136
35237
|
}
|
|
35137
35238
|
});
|
|
35138
35239
|
const { tokenInfo } = useTokenInfo(tokenAddress);
|
|
35139
|
-
const formattedBalance =
|
|
35240
|
+
const formattedBalance = import_react117.default.useMemo(() => {
|
|
35140
35241
|
if (!balance || !tokenInfo) return "0";
|
|
35141
35242
|
return (0, import_viem26.formatUnits)(balance, tokenInfo.decimals);
|
|
35142
35243
|
}, [balance, tokenInfo]);
|