@embarkai/ui-kit 0.4.114 → 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 +464 -400
- package/dist/index.js +155 -94
- 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
|
});
|
|
@@ -17396,11 +17458,11 @@ function ConnectExternalWalletMenu() {
|
|
|
17396
17458
|
const wagmiConfig3 = (0, import_wagmi3.useConfig)();
|
|
17397
17459
|
const chains = (0, import_wagmi3.useChains)();
|
|
17398
17460
|
const connections = (0, import_wagmi3.useConnections)();
|
|
17399
|
-
const { mutate: disconnect, mutateAsync: disconnectAsync } = (
|
|
17461
|
+
const { mutate: disconnect, mutateAsync: disconnectAsync } = useSafeDisconnect();
|
|
17400
17462
|
const { mutateAsync: signMessageAsync } = (0, import_wagmi3.useSignMessage)();
|
|
17401
17463
|
const { mutateAsync: switchChainAsync } = (0, import_wagmi3.useSwitchChain)();
|
|
17402
17464
|
const { mutateAsync: switchConnectionAsync } = (0, import_wagmi3.useSwitchConnection)();
|
|
17403
|
-
const [isPreparingConnect, setIsPreparingConnect] = (0,
|
|
17465
|
+
const [isPreparingConnect, setIsPreparingConnect] = (0, import_react48.useState)(false);
|
|
17404
17466
|
const signOnSupportedChain = async (params) => {
|
|
17405
17467
|
const { connector, account, message } = params;
|
|
17406
17468
|
const signOnce = async (viaFallback = false) => {
|
|
@@ -17427,7 +17489,7 @@ function ConnectExternalWalletMenu() {
|
|
|
17427
17489
|
queryKey: [PROVIDERS_QUERY_KEY, embarkAiAddress],
|
|
17428
17490
|
queryFn: async () => getLinkedProviders()
|
|
17429
17491
|
});
|
|
17430
|
-
const [connectError, setConnectError] = (0,
|
|
17492
|
+
const [connectError, setConnectError] = (0, import_react48.useState)(null);
|
|
17431
17493
|
const { mutateAsync: onLinkingComplete } = (0, import_react_query25.useMutation)({
|
|
17432
17494
|
mutationFn: async (success) => {
|
|
17433
17495
|
useManageWalletStore.getState().setProviderType(null);
|
|
@@ -17581,7 +17643,7 @@ function ConnectExternalWalletMenu() {
|
|
|
17581
17643
|
}, 100);
|
|
17582
17644
|
await dropFailedConnectorSession(error, connector, wagmiConfig3);
|
|
17583
17645
|
}
|
|
17584
|
-
const visibleConnectors = (0,
|
|
17646
|
+
const visibleConnectors = (0, import_react48.useMemo)(() => {
|
|
17585
17647
|
const seen = /* @__PURE__ */ new Set();
|
|
17586
17648
|
const unique = connectors.filter((connector) => {
|
|
17587
17649
|
const skipConnector = seen.has(connector.uid);
|
|
@@ -17599,7 +17661,7 @@ function ConnectExternalWalletMenu() {
|
|
|
17599
17661
|
(connector) => allowed.includes(connector.id.toLowerCase()) || allowed.includes(connector.name.toLowerCase())
|
|
17600
17662
|
);
|
|
17601
17663
|
}, [connectors, allowedWallets, hasInjectedWallet2]);
|
|
17602
|
-
const getInstructionSteps = (0,
|
|
17664
|
+
const getInstructionSteps = (0, import_react48.useCallback)(() => {
|
|
17603
17665
|
const connectFlowType = getConnectFlowType({
|
|
17604
17666
|
isEmbarkAI: !!embarkAiAddress,
|
|
17605
17667
|
connectFlow: menuParams.current?.connectFlowType || "auth"
|
|
@@ -17707,7 +17769,7 @@ function ConnectExternalWalletMenu() {
|
|
|
17707
17769
|
] })
|
|
17708
17770
|
] });
|
|
17709
17771
|
}
|
|
17710
|
-
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;
|
|
17711
17773
|
var init_ConnectExternalWalletMenu = __esm({
|
|
17712
17774
|
"src/internal/components/ConnectExternalWalletMenu/ConnectExternalWalletMenu.tsx"() {
|
|
17713
17775
|
init_ProviderContext();
|
|
@@ -17715,11 +17777,12 @@ var init_ConnectExternalWalletMenu = __esm({
|
|
|
17715
17777
|
init_useOpenPage();
|
|
17716
17778
|
init_i18n();
|
|
17717
17779
|
init_wallets();
|
|
17780
|
+
init_useSafeDisconnect();
|
|
17718
17781
|
init_connect_errors();
|
|
17719
17782
|
init_linkedProfiles();
|
|
17720
17783
|
import_react_query25 = require("@tanstack/react-query");
|
|
17721
17784
|
import_lucide_react33 = require("lucide-react");
|
|
17722
|
-
|
|
17785
|
+
import_react48 = require("react");
|
|
17723
17786
|
import_wagmi3 = require("wagmi");
|
|
17724
17787
|
import_chains = require("wagmi/chains");
|
|
17725
17788
|
init_common();
|
|
@@ -17747,13 +17810,13 @@ function useExternalWalletConnnect(options) {
|
|
|
17747
17810
|
const connectors = (0, import_wagmi4.useConnectors)();
|
|
17748
17811
|
const connections = (0, import_wagmi4.useConnections)();
|
|
17749
17812
|
const { mutate: connect, mutateAsync: connectAsync, ...restUseConnect } = (0, import_wagmi4.useConnect)();
|
|
17750
|
-
const { mutateAsync: disconnectAsync } = (
|
|
17751
|
-
const disconnectExternalWallet = (0,
|
|
17813
|
+
const { mutateAsync: disconnectAsync } = useSafeDisconnect();
|
|
17814
|
+
const disconnectExternalWallet = (0, import_react49.useCallback)(async () => {
|
|
17752
17815
|
await disconnectAsync();
|
|
17753
17816
|
const { externalAddress, clearExternalWallet } = useExternalWalletStore.getState();
|
|
17754
17817
|
if (!!externalAddress) clearExternalWallet();
|
|
17755
17818
|
}, [disconnectAsync]);
|
|
17756
|
-
const connectExternalWallet = (0,
|
|
17819
|
+
const connectExternalWallet = (0, import_react49.useCallback)(
|
|
17757
17820
|
async (walletConnectorType) => {
|
|
17758
17821
|
const connector = connectors.find((c) => c.id === walletConnectorType);
|
|
17759
17822
|
if (!connector) {
|
|
@@ -17807,12 +17870,13 @@ function useExternalWalletConnnect(options) {
|
|
|
17807
17870
|
...(0, import_lodash_es13.omit)(restUseConnect, ["mutate", "mutateAsync"])
|
|
17808
17871
|
};
|
|
17809
17872
|
}
|
|
17810
|
-
var import_lodash_es13,
|
|
17873
|
+
var import_lodash_es13, import_react49, import_wagmi4;
|
|
17811
17874
|
var init_useExternalWalletConnect = __esm({
|
|
17812
17875
|
"src/internal/components/ConnectExternalWalletMenu/useExternalWalletConnect.ts"() {
|
|
17813
17876
|
init_ProviderContext();
|
|
17877
|
+
init_useSafeDisconnect();
|
|
17814
17878
|
import_lodash_es13 = require("lodash-es");
|
|
17815
|
-
|
|
17879
|
+
import_react49 = require("react");
|
|
17816
17880
|
import_wagmi4 = require("wagmi");
|
|
17817
17881
|
init_useLayoutStore();
|
|
17818
17882
|
init_connect_errors();
|
|
@@ -17905,8 +17969,8 @@ function getErrorMessage(err) {
|
|
|
17905
17969
|
function DeviceLinkScreen() {
|
|
17906
17970
|
const setPage = useLayoutDataStore((s) => s.setPage);
|
|
17907
17971
|
const { mutate: link, isPending } = useLinkDevice();
|
|
17908
|
-
const [code, setCode] = (0,
|
|
17909
|
-
const [error, setError] = (0,
|
|
17972
|
+
const [code, setCode] = (0, import_react50.useState)("");
|
|
17973
|
+
const [error, setError] = (0, import_react50.useState)(null);
|
|
17910
17974
|
const isValid = code.length === 6 && VALID_CHARS.test(code);
|
|
17911
17975
|
function handleCodeChange(value) {
|
|
17912
17976
|
const upper = value.toUpperCase().slice(0, 6);
|
|
@@ -17948,11 +18012,11 @@ function DeviceLinkScreen() {
|
|
|
17948
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" })
|
|
17949
18013
|
] });
|
|
17950
18014
|
}
|
|
17951
|
-
var import_lucide_react34,
|
|
18015
|
+
var import_lucide_react34, import_react50, import_jsx_runtime75, VALID_CHARS;
|
|
17952
18016
|
var init_DeviceLinkScreen = __esm({
|
|
17953
18017
|
"src/internal/components/DevicesMenu/DeviceLinkScreen.tsx"() {
|
|
17954
18018
|
import_lucide_react34 = require("lucide-react");
|
|
17955
|
-
|
|
18019
|
+
import_react50 = require("react");
|
|
17956
18020
|
init_devices();
|
|
17957
18021
|
init_useLayoutDataStore();
|
|
17958
18022
|
init_Expandable2();
|
|
@@ -18491,19 +18555,19 @@ function DeviceManageScreen() {
|
|
|
18491
18555
|
const userId = session?.mpcUserId || "";
|
|
18492
18556
|
const deviceId = pageParams?.deviceId;
|
|
18493
18557
|
const deviceName = pageParams?.deviceName;
|
|
18494
|
-
const guardianRef = (0,
|
|
18495
|
-
const [screen, setScreen] = (0,
|
|
18496
|
-
const [actionState, setActionState] = (0,
|
|
18497
|
-
const [password, setPassword] = (0,
|
|
18498
|
-
const [statusMessage, setStatusMessage] = (0,
|
|
18499
|
-
const [errorMessage, setErrorMessage] = (0,
|
|
18500
|
-
const [waitingConfirm, setWaitingConfirm] = (0,
|
|
18501
|
-
(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)(() => {
|
|
18502
18566
|
if (!statusMessage) return;
|
|
18503
18567
|
const t = setTimeout(() => setStatusMessage(null), 3e3);
|
|
18504
18568
|
return () => clearTimeout(t);
|
|
18505
18569
|
}, [statusMessage]);
|
|
18506
|
-
(0,
|
|
18570
|
+
(0, import_react51.useEffect)(() => {
|
|
18507
18571
|
if (!deviceId || !isWebSerialAvailable()) {
|
|
18508
18572
|
setScreen({ step: "error", message: "WebSerial not available" });
|
|
18509
18573
|
return;
|
|
@@ -18535,7 +18599,7 @@ function DeviceManageScreen() {
|
|
|
18535
18599
|
guardianRef.current?.close();
|
|
18536
18600
|
};
|
|
18537
18601
|
}, [deviceId]);
|
|
18538
|
-
const refreshList = (0,
|
|
18602
|
+
const refreshList = (0, import_react51.useCallback)(async () => {
|
|
18539
18603
|
const guardian = guardianRef.current;
|
|
18540
18604
|
if (!guardian || screen.step !== "connected") return;
|
|
18541
18605
|
try {
|
|
@@ -18544,7 +18608,7 @@ function DeviceManageScreen() {
|
|
|
18544
18608
|
} catch {
|
|
18545
18609
|
}
|
|
18546
18610
|
}, [screen]);
|
|
18547
|
-
const handleBackup = (0,
|
|
18611
|
+
const handleBackup = (0, import_react51.useCallback)(async () => {
|
|
18548
18612
|
const guardian = guardianRef.current;
|
|
18549
18613
|
const iframe6 = getIframeManager();
|
|
18550
18614
|
if (!guardian || !iframe6 || !userId) return;
|
|
@@ -18568,7 +18632,7 @@ function DeviceManageScreen() {
|
|
|
18568
18632
|
setActionState(null);
|
|
18569
18633
|
}
|
|
18570
18634
|
}, [password, userId, refreshList]);
|
|
18571
|
-
const handleOverwrite = (0,
|
|
18635
|
+
const handleOverwrite = (0, import_react51.useCallback)(async () => {
|
|
18572
18636
|
const guardian = guardianRef.current;
|
|
18573
18637
|
const iframe6 = getIframeManager();
|
|
18574
18638
|
if (!guardian || !iframe6 || !userId) return;
|
|
@@ -18588,7 +18652,7 @@ function DeviceManageScreen() {
|
|
|
18588
18652
|
setActionState(null);
|
|
18589
18653
|
}
|
|
18590
18654
|
}, [password, userId, refreshList]);
|
|
18591
|
-
const handleDelete = (0,
|
|
18655
|
+
const handleDelete = (0, import_react51.useCallback)(
|
|
18592
18656
|
async (keyshareId) => {
|
|
18593
18657
|
const guardian = guardianRef.current;
|
|
18594
18658
|
if (!guardian) return;
|
|
@@ -18775,12 +18839,12 @@ function DeviceManageScreen() {
|
|
|
18775
18839
|
] })
|
|
18776
18840
|
] });
|
|
18777
18841
|
}
|
|
18778
|
-
var import_lucide_react35,
|
|
18842
|
+
var import_lucide_react35, import_react51, import_jsx_runtime76;
|
|
18779
18843
|
var init_DeviceManageScreen = __esm({
|
|
18780
18844
|
"src/internal/components/DevicesMenu/DeviceManageScreen.tsx"() {
|
|
18781
18845
|
init_SessionContext();
|
|
18782
18846
|
import_lucide_react35 = require("lucide-react");
|
|
18783
|
-
|
|
18847
|
+
import_react51 = require("react");
|
|
18784
18848
|
init_guardian_backup();
|
|
18785
18849
|
init_useLayoutDataStore();
|
|
18786
18850
|
init_iframe_manager();
|
|
@@ -18799,11 +18863,11 @@ function DeviceRestoreScreen() {
|
|
|
18799
18863
|
const keyshareId = pageParams?.keyshareId;
|
|
18800
18864
|
const deviceId = pageParams?.deviceId;
|
|
18801
18865
|
const deviceName = pageParams?.deviceName;
|
|
18802
|
-
const [password, setPassword] = (0,
|
|
18803
|
-
const [isWorking, setIsWorking] = (0,
|
|
18804
|
-
const [statusMessage, setStatusMessage] = (0,
|
|
18805
|
-
const [errorMessage, setErrorMessage] = (0,
|
|
18806
|
-
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 () => {
|
|
18807
18871
|
if (!password || !keyshareId || !userId) return;
|
|
18808
18872
|
const iframe6 = getIframeManager();
|
|
18809
18873
|
if (!iframe6) {
|
|
@@ -18883,12 +18947,12 @@ function DeviceRestoreScreen() {
|
|
|
18883
18947
|
errorMessage && /* @__PURE__ */ (0, import_jsx_runtime77.jsx)("div", { className: "text-sm text-[var(--ui-kit-bg-error)] p-2 text-center", children: errorMessage })
|
|
18884
18948
|
] });
|
|
18885
18949
|
}
|
|
18886
|
-
var import_lucide_react36,
|
|
18950
|
+
var import_lucide_react36, import_react52, import_jsx_runtime77;
|
|
18887
18951
|
var init_DeviceRestoreScreen = __esm({
|
|
18888
18952
|
"src/internal/components/DevicesMenu/DeviceRestoreScreen.tsx"() {
|
|
18889
18953
|
init_SessionContext();
|
|
18890
18954
|
import_lucide_react36 = require("lucide-react");
|
|
18891
|
-
|
|
18955
|
+
import_react52 = require("react");
|
|
18892
18956
|
init_guardian_backup();
|
|
18893
18957
|
init_useLayoutDataStore();
|
|
18894
18958
|
init_iframe_manager();
|
|
@@ -18908,8 +18972,8 @@ function truncateAddress(address) {
|
|
|
18908
18972
|
return `${address.slice(0, 6)}...${address.slice(-4)}`;
|
|
18909
18973
|
}
|
|
18910
18974
|
function DeviceRow({ device }) {
|
|
18911
|
-
const [confirmingUnlink, setConfirmingUnlink] = (0,
|
|
18912
|
-
const [unlinkError, setUnlinkError] = (0,
|
|
18975
|
+
const [confirmingUnlink, setConfirmingUnlink] = (0, import_react53.useState)(false);
|
|
18976
|
+
const [unlinkError, setUnlinkError] = (0, import_react53.useState)(null);
|
|
18913
18977
|
const { mutate: unlink, isPending } = useUnlinkDevice();
|
|
18914
18978
|
if (confirmingUnlink) {
|
|
18915
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: [
|
|
@@ -19010,11 +19074,11 @@ function DevicesMenu() {
|
|
|
19010
19074
|
] })
|
|
19011
19075
|
] });
|
|
19012
19076
|
}
|
|
19013
|
-
var import_lucide_react37,
|
|
19077
|
+
var import_lucide_react37, import_react53, import_jsx_runtime78;
|
|
19014
19078
|
var init_DevicesMenu = __esm({
|
|
19015
19079
|
"src/internal/components/DevicesMenu/DevicesMenu.tsx"() {
|
|
19016
19080
|
import_lucide_react37 = require("lucide-react");
|
|
19017
|
-
|
|
19081
|
+
import_react53 = require("react");
|
|
19018
19082
|
init_devices();
|
|
19019
19083
|
init_guardian_backup();
|
|
19020
19084
|
init_useLayoutDataStore();
|
|
@@ -19074,7 +19138,7 @@ function useOnRestoreSuccess() {
|
|
|
19074
19138
|
setStatus
|
|
19075
19139
|
} = useSession();
|
|
19076
19140
|
const { setError, setSuccess } = useRestoreStore();
|
|
19077
|
-
const createSessionWithKeyshare = (0,
|
|
19141
|
+
const createSessionWithKeyshare = (0, import_react54.useCallback)(
|
|
19078
19142
|
async (userId, hasServerKeyshare, isNewUser) => {
|
|
19079
19143
|
try {
|
|
19080
19144
|
try {
|
|
@@ -19115,7 +19179,7 @@ function useOnRestoreSuccess() {
|
|
|
19115
19179
|
},
|
|
19116
19180
|
[setStatus, usePaymaster, activeChainId, publicClient]
|
|
19117
19181
|
);
|
|
19118
|
-
const onRestoreSuccess = (0,
|
|
19182
|
+
const onRestoreSuccess = (0, import_react54.useCallback)(async () => {
|
|
19119
19183
|
const { verifyToken: verifyToken2, jwtTokenManager: jwtTokenManager4 } = await Promise.resolve().then(() => (init_auth(), auth_exports));
|
|
19120
19184
|
const verify = await verifyToken2();
|
|
19121
19185
|
const hasServerKeyshare = verify?.hasKeyshare ?? jwtTokenManager4.getHasKeyshare() ?? false;
|
|
@@ -19181,12 +19245,12 @@ function useOnRestoreSuccess() {
|
|
|
19181
19245
|
]);
|
|
19182
19246
|
return { onRestoreSuccess };
|
|
19183
19247
|
}
|
|
19184
|
-
var
|
|
19248
|
+
var import_react54;
|
|
19185
19249
|
var init_useOnRestoreSuccess = __esm({
|
|
19186
19250
|
"src/internal/components/KeyshareRestoreMenu/hooks/useOnRestoreSuccess.ts"() {
|
|
19187
19251
|
init_ProviderContext();
|
|
19188
19252
|
init_SessionContext();
|
|
19189
|
-
|
|
19253
|
+
import_react54 = require("react");
|
|
19190
19254
|
init_useLayoutDataStore();
|
|
19191
19255
|
init_useLayoutStore();
|
|
19192
19256
|
init_useRestoreStore();
|
|
@@ -19449,7 +19513,7 @@ function useCreateBackup() {
|
|
|
19449
19513
|
const usePasskey = useRestoreStore((st) => st.usePasskey);
|
|
19450
19514
|
const restorePassword = useRestoreStore((st) => st.restorePassword);
|
|
19451
19515
|
const selectedCloudProvider = useRestoreStore((st) => st.selectedCloudProvider);
|
|
19452
|
-
(0,
|
|
19516
|
+
(0, import_react55.useEffect)(() => {
|
|
19453
19517
|
if (!hasServerVault) {
|
|
19454
19518
|
useRestoreStore.getState().setMethod("server");
|
|
19455
19519
|
useLayoutStore.getState().setIsDialogForced(true);
|
|
@@ -19457,7 +19521,7 @@ function useCreateBackup() {
|
|
|
19457
19521
|
}, [hasServerVault]);
|
|
19458
19522
|
const recoveryUserId = useSession((st) => st.recoveryUserId);
|
|
19459
19523
|
const passportUserId = session?.mpcUserId || recoveryUserId || "";
|
|
19460
|
-
const onBackupSuccess = (0,
|
|
19524
|
+
const onBackupSuccess = (0, import_react55.useCallback)((method) => {
|
|
19461
19525
|
console.log(`[EMBARKAI BACKUP] ${method} backup created successfully`);
|
|
19462
19526
|
if (method !== "server") return;
|
|
19463
19527
|
const { setIsDialogForced } = useLayoutStore.getState();
|
|
@@ -19630,12 +19694,12 @@ function useCreateBackup() {
|
|
|
19630
19694
|
createPasskey
|
|
19631
19695
|
};
|
|
19632
19696
|
}
|
|
19633
|
-
var import_react_query27,
|
|
19697
|
+
var import_react_query27, import_react55;
|
|
19634
19698
|
var init_useCreateBackup = __esm({
|
|
19635
19699
|
"src/internal/components/KeyshareRestoreMenu/hooks/useCreateBackup.ts"() {
|
|
19636
19700
|
init_SessionContext();
|
|
19637
19701
|
import_react_query27 = require("@tanstack/react-query");
|
|
19638
|
-
|
|
19702
|
+
import_react55 = require("react");
|
|
19639
19703
|
init_auth();
|
|
19640
19704
|
init_useLayoutDataStore();
|
|
19641
19705
|
init_useLayoutStore();
|
|
@@ -19772,7 +19836,7 @@ function useValidateFileBackup() {
|
|
|
19772
19836
|
const restoreFile = useRestoreStore((st) => st.restoreFile);
|
|
19773
19837
|
const setError = useRestoreStore((st) => st.setError);
|
|
19774
19838
|
const setUsePasskey = useRestoreStore((st) => st.setUsePasskey);
|
|
19775
|
-
(0,
|
|
19839
|
+
(0, import_react56.useEffect)(() => {
|
|
19776
19840
|
if (!restoreFile) {
|
|
19777
19841
|
return;
|
|
19778
19842
|
}
|
|
@@ -19793,10 +19857,10 @@ function useValidateFileBackup() {
|
|
|
19793
19857
|
reader.readAsText(restoreFile);
|
|
19794
19858
|
}, [restoreFile]);
|
|
19795
19859
|
}
|
|
19796
|
-
var
|
|
19860
|
+
var import_react56;
|
|
19797
19861
|
var init_useValidateFileBackup = __esm({
|
|
19798
19862
|
"src/internal/components/KeyshareRestoreMenu/hooks/useValidateFileBackup.ts"() {
|
|
19799
|
-
|
|
19863
|
+
import_react56 = require("react");
|
|
19800
19864
|
init_useRestoreStore();
|
|
19801
19865
|
}
|
|
19802
19866
|
});
|
|
@@ -19824,7 +19888,7 @@ function MethodSelector(props) {
|
|
|
19824
19888
|
setError,
|
|
19825
19889
|
setSuccess
|
|
19826
19890
|
} = useRestoreStore();
|
|
19827
|
-
const recoveryRenderMethods = (0,
|
|
19891
|
+
const recoveryRenderMethods = (0, import_react57.useMemo)(() => {
|
|
19828
19892
|
const methodsWithBackupData = getRecoveryRenderMethods(mode).map((mt) => {
|
|
19829
19893
|
let data = null;
|
|
19830
19894
|
switch (true) {
|
|
@@ -19839,7 +19903,7 @@ function MethodSelector(props) {
|
|
|
19839
19903
|
return methodsWithBackupData;
|
|
19840
19904
|
}, [mode, serverRecoveryStatus]);
|
|
19841
19905
|
if (!!selectedRecoveryMethod) return null;
|
|
19842
|
-
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)(
|
|
19843
19907
|
"div",
|
|
19844
19908
|
{
|
|
19845
19909
|
style: { gridTemplateColumns: `repeat(${recoveryRenderMethods.length}, minmax(0, 1fr))` },
|
|
@@ -19873,12 +19937,12 @@ function MethodSelector(props) {
|
|
|
19873
19937
|
}
|
|
19874
19938
|
) });
|
|
19875
19939
|
}
|
|
19876
|
-
var import_lucide_react38,
|
|
19940
|
+
var import_lucide_react38, import_react57, import_jsx_runtime79, getRecoveryRenderMethods;
|
|
19877
19941
|
var init_MethodSelector = __esm({
|
|
19878
19942
|
"src/internal/components/KeyshareRestoreMenu/components/MethodSelector.tsx"() {
|
|
19879
19943
|
init_useT();
|
|
19880
19944
|
import_lucide_react38 = require("lucide-react");
|
|
19881
|
-
|
|
19945
|
+
import_react57 = require("react");
|
|
19882
19946
|
init_icons();
|
|
19883
19947
|
init_guardian_backup();
|
|
19884
19948
|
init_button();
|
|
@@ -20014,7 +20078,7 @@ function PasswordPasskey(props) {
|
|
|
20014
20078
|
onCreatePasskey
|
|
20015
20079
|
} = props;
|
|
20016
20080
|
const hasServerVault = useSession((st) => st.hasServerVault);
|
|
20017
|
-
const actionRef = (0,
|
|
20081
|
+
const actionRef = (0, import_react58.useRef)(null);
|
|
20018
20082
|
const {
|
|
20019
20083
|
showPassword,
|
|
20020
20084
|
restorePassword,
|
|
@@ -20028,7 +20092,7 @@ function PasswordPasskey(props) {
|
|
|
20028
20092
|
} = useRestoreStore();
|
|
20029
20093
|
const { config } = useProviderConfig();
|
|
20030
20094
|
const isPasskeyEnabled = config.current.passkey.enabled;
|
|
20031
|
-
(0,
|
|
20095
|
+
(0, import_react58.useEffect)(() => {
|
|
20032
20096
|
if (!isPasskeyEnabled && usePasskey) setUsePasskey(false);
|
|
20033
20097
|
}, [isPasskeyEnabled, usePasskey]);
|
|
20034
20098
|
return /* @__PURE__ */ (0, import_jsx_runtime80.jsxs)(import_jsx_runtime80.Fragment, { children: [
|
|
@@ -20192,7 +20256,7 @@ function PasswordPasskey(props) {
|
|
|
20192
20256
|
] })
|
|
20193
20257
|
] });
|
|
20194
20258
|
}
|
|
20195
|
-
var import_lucide_react39,
|
|
20259
|
+
var import_lucide_react39, import_react58, import_jsx_runtime80;
|
|
20196
20260
|
var init_PasswordPasskey = __esm({
|
|
20197
20261
|
"src/internal/components/KeyshareRestoreMenu/components/PasswordPasskey.tsx"() {
|
|
20198
20262
|
init_ProviderContext();
|
|
@@ -20200,7 +20264,7 @@ var init_PasswordPasskey = __esm({
|
|
|
20200
20264
|
init_i18n();
|
|
20201
20265
|
init_utils();
|
|
20202
20266
|
import_lucide_react39 = require("lucide-react");
|
|
20203
|
-
|
|
20267
|
+
import_react58 = require("react");
|
|
20204
20268
|
init_icons();
|
|
20205
20269
|
init_Onboarding();
|
|
20206
20270
|
init_button();
|
|
@@ -20377,7 +20441,7 @@ function Server(props) {
|
|
|
20377
20441
|
const usePasskey = useRestoreStore((st) => st.usePasskey);
|
|
20378
20442
|
const setUsePasskey = useRestoreStore((st) => st.setUsePasskey);
|
|
20379
20443
|
const serverRecoveryStatus = qc.getQueryData([CHECK_BACKUP_QUERY_KEY, address]);
|
|
20380
|
-
(0,
|
|
20444
|
+
(0, import_react59.useEffect)(() => {
|
|
20381
20445
|
if (mode === "backup" || !serverRecoveryStatus?.created?.encryptionMethod) return;
|
|
20382
20446
|
setUsePasskey(serverRecoveryStatus.created.encryptionMethod === "passkey");
|
|
20383
20447
|
}, [mode, serverRecoveryStatus, setUsePasskey]);
|
|
@@ -20420,7 +20484,7 @@ function Server(props) {
|
|
|
20420
20484
|
)
|
|
20421
20485
|
] });
|
|
20422
20486
|
}
|
|
20423
|
-
var import_react_query29, import_dayjs4, import_lucide_react42,
|
|
20487
|
+
var import_react_query29, import_dayjs4, import_lucide_react42, import_react59, import_jsx_runtime83;
|
|
20424
20488
|
var init_Server = __esm({
|
|
20425
20489
|
"src/internal/components/KeyshareRestoreMenu/methods/Server.tsx"() {
|
|
20426
20490
|
init_SessionContext();
|
|
@@ -20429,7 +20493,7 @@ var init_Server = __esm({
|
|
|
20429
20493
|
import_react_query29 = require("@tanstack/react-query");
|
|
20430
20494
|
import_dayjs4 = __toESM(require("dayjs"), 1);
|
|
20431
20495
|
import_lucide_react42 = require("lucide-react");
|
|
20432
|
-
|
|
20496
|
+
import_react59 = require("react");
|
|
20433
20497
|
init_Onboarding();
|
|
20434
20498
|
init_highlight();
|
|
20435
20499
|
init_PasswordPasskey();
|
|
@@ -20593,7 +20657,7 @@ function Cloud2(props) {
|
|
|
20593
20657
|
return availableProviders.map((p) => ({ id: p.id, name: p.name, available: p.isAvailable() }));
|
|
20594
20658
|
}
|
|
20595
20659
|
});
|
|
20596
|
-
(0,
|
|
20660
|
+
(0, import_react60.useEffect)(() => {
|
|
20597
20661
|
if (isCloudProvidersLoading) return;
|
|
20598
20662
|
if (!!cloudProvidersError) {
|
|
20599
20663
|
console.error("[KeyshareBackup] Failed to load cloud providers:", cloudProvidersError);
|
|
@@ -20657,13 +20721,13 @@ function Cloud2(props) {
|
|
|
20657
20721
|
)
|
|
20658
20722
|
] });
|
|
20659
20723
|
}
|
|
20660
|
-
var import_react_query30, import_lucide_react44,
|
|
20724
|
+
var import_react_query30, import_lucide_react44, import_react60, import_jsx_runtime85;
|
|
20661
20725
|
var init_Cloud = __esm({
|
|
20662
20726
|
"src/internal/components/KeyshareRestoreMenu/methods/Cloud.tsx"() {
|
|
20663
20727
|
init_SessionContext();
|
|
20664
20728
|
import_react_query30 = require("@tanstack/react-query");
|
|
20665
20729
|
import_lucide_react44 = require("lucide-react");
|
|
20666
|
-
|
|
20730
|
+
import_react60 = require("react");
|
|
20667
20731
|
init_button();
|
|
20668
20732
|
init_select();
|
|
20669
20733
|
init_PasswordPasskey();
|
|
@@ -20680,8 +20744,8 @@ function Guardian(props) {
|
|
|
20680
20744
|
const session = useSession((st) => st.session);
|
|
20681
20745
|
const recoveryUserId = useSession((st) => st.recoveryUserId);
|
|
20682
20746
|
const { onRestoreSuccess } = useOnRestoreSuccess();
|
|
20683
|
-
const [isWorking, setIsWorking] = (0,
|
|
20684
|
-
const [step, setStep] = (0,
|
|
20747
|
+
const [isWorking, setIsWorking] = (0, import_react61.useState)(false);
|
|
20748
|
+
const [step, setStep] = (0, import_react61.useState)("idle");
|
|
20685
20749
|
const handleGuardianBackup = async () => {
|
|
20686
20750
|
if (!restorePassword) {
|
|
20687
20751
|
setError("Please enter a password");
|
|
@@ -20810,11 +20874,11 @@ function Guardian(props) {
|
|
|
20810
20874
|
] })
|
|
20811
20875
|
] });
|
|
20812
20876
|
}
|
|
20813
|
-
var
|
|
20877
|
+
var import_react61, import_lucide_react45, import_jsx_runtime86;
|
|
20814
20878
|
var init_Guardian = __esm({
|
|
20815
20879
|
"src/internal/components/KeyshareRestoreMenu/methods/Guardian.tsx"() {
|
|
20816
20880
|
init_SessionContext();
|
|
20817
|
-
|
|
20881
|
+
import_react61 = require("react");
|
|
20818
20882
|
import_lucide_react45 = require("lucide-react");
|
|
20819
20883
|
init_iframe_manager();
|
|
20820
20884
|
init_guardian_backup();
|
|
@@ -20837,16 +20901,16 @@ var init_methods = __esm({
|
|
|
20837
20901
|
});
|
|
20838
20902
|
|
|
20839
20903
|
// src/internal/components/KeyshareRestoreMenu/KeyshareRestoreMenu.tsx
|
|
20840
|
-
var import_react_query31, import_lucide_react46,
|
|
20904
|
+
var import_react_query31, import_lucide_react46, import_react62, import_jsx_runtime87, RESTORE_COMPONENTS, KeyshareRestoreMenu;
|
|
20841
20905
|
var init_KeyshareRestoreMenu = __esm({
|
|
20842
20906
|
"src/internal/components/KeyshareRestoreMenu/KeyshareRestoreMenu.tsx"() {
|
|
20843
20907
|
init_ProviderContext();
|
|
20844
20908
|
init_SessionContext();
|
|
20845
20909
|
init_i18n();
|
|
20910
|
+
init_useSafeDisconnect();
|
|
20846
20911
|
import_react_query31 = require("@tanstack/react-query");
|
|
20847
20912
|
import_lucide_react46 = require("lucide-react");
|
|
20848
|
-
|
|
20849
|
-
import_wagmi5 = require("wagmi");
|
|
20913
|
+
import_react62 = require("react");
|
|
20850
20914
|
init_useLayoutDataStore();
|
|
20851
20915
|
init_useLayoutStore();
|
|
20852
20916
|
init_useExternalWalletStore();
|
|
@@ -20875,7 +20939,7 @@ var init_KeyshareRestoreMenu = __esm({
|
|
|
20875
20939
|
const error = useRestoreStore((st) => st.error);
|
|
20876
20940
|
const success = useRestoreStore((st) => st.success);
|
|
20877
20941
|
const currentRestoreMethod = useRestoreStore((st) => st.method);
|
|
20878
|
-
(0,
|
|
20942
|
+
(0, import_react62.useEffect)(() => {
|
|
20879
20943
|
const { setIsDialogForced } = useLayoutStore.getState();
|
|
20880
20944
|
const { setRestorePassword, setRestoreFile, setShowPassword, setUsePasskey, setMethod } = useRestoreStore.getState();
|
|
20881
20945
|
setIsDialogForced(true);
|
|
@@ -20888,7 +20952,7 @@ var init_KeyshareRestoreMenu = __esm({
|
|
|
20888
20952
|
setIsDialogForced(false);
|
|
20889
20953
|
};
|
|
20890
20954
|
}, []);
|
|
20891
|
-
const { mutate: wagmiDisconnect } = (
|
|
20955
|
+
const { mutate: wagmiDisconnect } = useSafeDisconnect({
|
|
20892
20956
|
mutation: {
|
|
20893
20957
|
onSuccess: () => {
|
|
20894
20958
|
useExternalWalletStore.getState().clearExternalWallet();
|
|
@@ -20914,7 +20978,7 @@ var init_KeyshareRestoreMenu = __esm({
|
|
|
20914
20978
|
queryFn: async () => await getShareRecoveryStats()
|
|
20915
20979
|
});
|
|
20916
20980
|
const hasServerBackup = serverRecoveryStatus?.created || serverRecoveryStatus?.devices?.length > 0;
|
|
20917
|
-
(0,
|
|
20981
|
+
(0, import_react62.useEffect)(() => {
|
|
20918
20982
|
if (!!hasServerBackup) useRestoreStore.getState().setMethod("server");
|
|
20919
20983
|
}, [hasServerBackup]);
|
|
20920
20984
|
const { mutate: disconnect, isPending: isDisconnecting } = (0, import_react_query31.useMutation)({
|
|
@@ -21061,7 +21125,7 @@ function KeyshareBackupMenu() {
|
|
|
21061
21125
|
const usePasskey = useRestoreStore((st) => st.usePasskey);
|
|
21062
21126
|
const error = useRestoreStore((st) => st.error);
|
|
21063
21127
|
const success = useRestoreStore((st) => st.success);
|
|
21064
|
-
(0,
|
|
21128
|
+
(0, import_react63.useEffect)(() => {
|
|
21065
21129
|
const { setSuccess, setError, setRestorePassword, setRestoreFile, setShowPassword, setUsePasskey, setMethod } = useRestoreStore.getState();
|
|
21066
21130
|
return () => {
|
|
21067
21131
|
setSuccess(null);
|
|
@@ -21081,7 +21145,7 @@ function KeyshareBackupMenu() {
|
|
|
21081
21145
|
});
|
|
21082
21146
|
useOnboardingTourAvailable(!isRecoveryLoading && currentBackupMethod === "server" && !usePasskey);
|
|
21083
21147
|
const hasRecoveryData2 = serverRecoveryStatus?.created || serverRecoveryStatus?.devices?.length > 0;
|
|
21084
|
-
(0,
|
|
21148
|
+
(0, import_react63.useEffect)(() => {
|
|
21085
21149
|
if (!!hasRecoveryData2) useRestoreStore.getState().setMethod("server");
|
|
21086
21150
|
}, [hasRecoveryData2]);
|
|
21087
21151
|
const {
|
|
@@ -21200,14 +21264,14 @@ function KeyshareBackupMenu() {
|
|
|
21200
21264
|
] })
|
|
21201
21265
|
] });
|
|
21202
21266
|
}
|
|
21203
|
-
var import_react_query32, import_lucide_react47,
|
|
21267
|
+
var import_react_query32, import_lucide_react47, import_react63, import_jsx_runtime88, COMPONENTS;
|
|
21204
21268
|
var init_KeyshareBackupMenu = __esm({
|
|
21205
21269
|
"src/internal/components/KeyshareRestoreMenu/KeyshareBackupMenu.tsx"() {
|
|
21206
21270
|
init_SessionContext();
|
|
21207
21271
|
init_i18n();
|
|
21208
21272
|
import_react_query32 = require("@tanstack/react-query");
|
|
21209
21273
|
import_lucide_react47 = require("lucide-react");
|
|
21210
|
-
|
|
21274
|
+
import_react63 = require("react");
|
|
21211
21275
|
init_useLayoutDataStore();
|
|
21212
21276
|
init_vaultClient();
|
|
21213
21277
|
init_Expandable2();
|
|
@@ -21335,13 +21399,13 @@ var init_SumsubIframeManager = __esm({
|
|
|
21335
21399
|
function useSumsubIframe({ iframeUrl }) {
|
|
21336
21400
|
const config = useProviderConfig().config;
|
|
21337
21401
|
const { colorMode } = useColorMode();
|
|
21338
|
-
const iframeRef = (0,
|
|
21339
|
-
const [isLoading, setIsLoading] = (0,
|
|
21340
|
-
const [error, setError] = (0,
|
|
21341
|
-
const [height, setHeight] = (0,
|
|
21342
|
-
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)("");
|
|
21343
21407
|
const levelName = config.current?.kyc?.options?.levelName;
|
|
21344
|
-
(0,
|
|
21408
|
+
(0, import_react64.useEffect)(() => {
|
|
21345
21409
|
setError(null);
|
|
21346
21410
|
setIsLoading(true);
|
|
21347
21411
|
setStatus("Preparing verification...");
|
|
@@ -21382,12 +21446,12 @@ function useSumsubIframe({ iframeUrl }) {
|
|
|
21382
21446
|
status
|
|
21383
21447
|
};
|
|
21384
21448
|
}
|
|
21385
|
-
var
|
|
21449
|
+
var import_react64;
|
|
21386
21450
|
var init_useSumsubIframe = __esm({
|
|
21387
21451
|
"src/internal/components/KYC/useSumsubIframe.ts"() {
|
|
21388
21452
|
init_ProviderContext();
|
|
21389
21453
|
init_useColorMode();
|
|
21390
|
-
|
|
21454
|
+
import_react64 = require("react");
|
|
21391
21455
|
init_sumsub();
|
|
21392
21456
|
init_SumsubIframeManager();
|
|
21393
21457
|
}
|
|
@@ -21595,11 +21659,11 @@ function useResolvedPublicClient(chainId, logScope = "useResolvedPublicClient")
|
|
|
21595
21659
|
const activeChainConfig = useSession((st) => st.chainConfig);
|
|
21596
21660
|
const resolvedChainId = chainId ?? activeChainId;
|
|
21597
21661
|
const shouldUseActiveClient = !chainId || chainId === activeChainId;
|
|
21598
|
-
const chainConfig = (0,
|
|
21662
|
+
const chainConfig = (0, import_react65.useMemo)(() => {
|
|
21599
21663
|
if (shouldUseActiveClient) return activeChainConfig;
|
|
21600
21664
|
return (0, import_read16.getChainConfig)(chainId);
|
|
21601
21665
|
}, [activeChainConfig, chainId, shouldUseActiveClient]);
|
|
21602
|
-
const publicClient = (0,
|
|
21666
|
+
const publicClient = (0, import_react65.useMemo)(() => {
|
|
21603
21667
|
if (shouldUseActiveClient) return activePublicClient;
|
|
21604
21668
|
if (!chainId) return activePublicClient;
|
|
21605
21669
|
try {
|
|
@@ -21616,12 +21680,12 @@ function useResolvedPublicClient(chainId, logScope = "useResolvedPublicClient")
|
|
|
21616
21680
|
resolvedChainId
|
|
21617
21681
|
};
|
|
21618
21682
|
}
|
|
21619
|
-
var import_read16,
|
|
21683
|
+
var import_read16, import_react65, publicClientByChainId;
|
|
21620
21684
|
var init_useResolvedPublicClient = __esm({
|
|
21621
21685
|
"src/internal/hooks/useResolvedPublicClient.ts"() {
|
|
21622
21686
|
init_SessionContext();
|
|
21623
21687
|
import_read16 = require("@embarkai/core/read");
|
|
21624
|
-
|
|
21688
|
+
import_react65 = require("react");
|
|
21625
21689
|
publicClientByChainId = /* @__PURE__ */ new Map();
|
|
21626
21690
|
}
|
|
21627
21691
|
});
|
|
@@ -21685,7 +21749,7 @@ var init_useNativeBalance = __esm({
|
|
|
21685
21749
|
function useWatchTokens(options) {
|
|
21686
21750
|
const { address, chainId, enabled, publicClient } = options;
|
|
21687
21751
|
const { config } = useProviderConfig();
|
|
21688
|
-
const watchTokens = (0,
|
|
21752
|
+
const watchTokens = (0, import_react66.useMemo)(() => {
|
|
21689
21753
|
const allWatchTokens = config.current.watchTokens;
|
|
21690
21754
|
const tokensForChain = chainId ? allWatchTokens?.[chainId] || [] : [];
|
|
21691
21755
|
return tokensForChain;
|
|
@@ -21753,12 +21817,12 @@ function useWatchTokens(options) {
|
|
|
21753
21817
|
}
|
|
21754
21818
|
});
|
|
21755
21819
|
}
|
|
21756
|
-
var import_react_query35,
|
|
21820
|
+
var import_react_query35, import_react66, import_viem8;
|
|
21757
21821
|
var init_useWatchTokens = __esm({
|
|
21758
21822
|
"src/internal/hooks/useBlockscoutAssets/useWatchTokens.ts"() {
|
|
21759
21823
|
init_ProviderContext();
|
|
21760
21824
|
import_react_query35 = require("@tanstack/react-query");
|
|
21761
|
-
|
|
21825
|
+
import_react66 = require("react");
|
|
21762
21826
|
import_viem8 = require("viem");
|
|
21763
21827
|
init_constants6();
|
|
21764
21828
|
}
|
|
@@ -21907,11 +21971,11 @@ function useBlockscoutAssets(options) {
|
|
|
21907
21971
|
tokenBalancesQueryKey: customTokenBalancesQueryKey
|
|
21908
21972
|
} = useProviderConfig().config?.current?.portfolio || {};
|
|
21909
21973
|
const blockscoutApiUrl = getBlockscoutApiUrl(chainConfig);
|
|
21910
|
-
const blockscoutClient = (0,
|
|
21974
|
+
const blockscoutClient = (0, import_react67.useMemo)(
|
|
21911
21975
|
() => blockscoutApiUrl ? (0, import_core4.createBlockscoutClient)({ baseUrl: blockscoutApiUrl }) : null,
|
|
21912
21976
|
[blockscoutApiUrl]
|
|
21913
21977
|
);
|
|
21914
|
-
const lastRefreshRef = (0,
|
|
21978
|
+
const lastRefreshRef = (0, import_react67.useRef)(0);
|
|
21915
21979
|
const {
|
|
21916
21980
|
data: watchTokenAssets = [],
|
|
21917
21981
|
isLoading: watchTokensLoading,
|
|
@@ -21983,7 +22047,7 @@ function useBlockscoutAssets(options) {
|
|
|
21983
22047
|
queryKey: [BLOCKSCOUT_QUERY_KEY, "nfts", resolvedChainId, blockscoutApiUrl, address],
|
|
21984
22048
|
queryFn: () => blockscoutClient.getNfts(address)
|
|
21985
22049
|
});
|
|
21986
|
-
const erc20TokenAddresses = (0,
|
|
22050
|
+
const erc20TokenAddresses = (0, import_react67.useMemo)(() => {
|
|
21987
22051
|
if (!blockscoutItems) return [];
|
|
21988
22052
|
return blockscoutItems.filter((tb) => tb.token.type === "ERC-20").map((tb) => tb.token.address_hash);
|
|
21989
22053
|
}, [blockscoutItems]);
|
|
@@ -22028,7 +22092,7 @@ function useBlockscoutAssets(options) {
|
|
|
22028
22092
|
// 1 minute
|
|
22029
22093
|
// gcTime: BLOCKSCOUT_QUERY_GC_TIME,
|
|
22030
22094
|
});
|
|
22031
|
-
const assets = (0,
|
|
22095
|
+
const assets = (0, import_react67.useMemo)(() => {
|
|
22032
22096
|
const result = [];
|
|
22033
22097
|
const addedAddresses = /* @__PURE__ */ new Set();
|
|
22034
22098
|
if (nativeBalanceData) {
|
|
@@ -22122,7 +22186,7 @@ function useBlockscoutAssets(options) {
|
|
|
22122
22186
|
watchTokenAssets,
|
|
22123
22187
|
chainConfig
|
|
22124
22188
|
]);
|
|
22125
|
-
const nativeBalance = (0,
|
|
22189
|
+
const nativeBalance = (0, import_react67.useMemo)(() => {
|
|
22126
22190
|
if (!nativeBalanceData) return null;
|
|
22127
22191
|
return {
|
|
22128
22192
|
value: nativeBalanceData.value,
|
|
@@ -22130,11 +22194,11 @@ function useBlockscoutAssets(options) {
|
|
|
22130
22194
|
symbol: nativeBalanceData.symbol
|
|
22131
22195
|
};
|
|
22132
22196
|
}, [nativeBalanceData]);
|
|
22133
|
-
const error = (0,
|
|
22197
|
+
const error = (0, import_react67.useMemo)(() => {
|
|
22134
22198
|
if (!blockscoutError) return null;
|
|
22135
22199
|
return createError(blockscoutError);
|
|
22136
22200
|
}, [blockscoutError]);
|
|
22137
|
-
const refreshBalances = (0,
|
|
22201
|
+
const refreshBalances = (0, import_react67.useCallback)(async () => {
|
|
22138
22202
|
const now = Date.now();
|
|
22139
22203
|
if (now - lastRefreshRef.current < BLOCKSCOUT_REFRESH_DEBOUNCE) {
|
|
22140
22204
|
return;
|
|
@@ -22150,7 +22214,7 @@ function useBlockscoutAssets(options) {
|
|
|
22150
22214
|
qc.invalidateQueries({ queryKey: [WATCH_TOKENS_QUERY_KEY] })
|
|
22151
22215
|
]);
|
|
22152
22216
|
}, [qc, customTokenBalancesQueryKey]);
|
|
22153
|
-
const getTokenBalance = (0,
|
|
22217
|
+
const getTokenBalance = (0, import_react67.useCallback)(
|
|
22154
22218
|
(tokenAddress) => {
|
|
22155
22219
|
return assets.find((a) => a.address?.toLowerCase() === tokenAddress.toLowerCase()) || null;
|
|
22156
22220
|
},
|
|
@@ -22169,13 +22233,13 @@ function useBlockscoutAssets(options) {
|
|
|
22169
22233
|
lastUpdated: dataUpdatedAt || null
|
|
22170
22234
|
};
|
|
22171
22235
|
}
|
|
22172
|
-
var import_core4, import_react_query36,
|
|
22236
|
+
var import_core4, import_react_query36, import_react67;
|
|
22173
22237
|
var init_useBlockscoutAssets = __esm({
|
|
22174
22238
|
"src/internal/hooks/useBlockscoutAssets/useBlockscoutAssets.ts"() {
|
|
22175
22239
|
init_ProviderContext();
|
|
22176
22240
|
import_core4 = require("@embarkai/core");
|
|
22177
22241
|
import_react_query36 = require("@tanstack/react-query");
|
|
22178
|
-
|
|
22242
|
+
import_react67 = require("react");
|
|
22179
22243
|
init_initial();
|
|
22180
22244
|
init_constants();
|
|
22181
22245
|
init_useResolvedPublicClient();
|
|
@@ -22295,9 +22359,9 @@ function SecurityTokenBadge() {
|
|
|
22295
22359
|
}
|
|
22296
22360
|
function PortfolioItemImage(props) {
|
|
22297
22361
|
const { asset } = props;
|
|
22298
|
-
const [logoError, setLogoError] = (0,
|
|
22299
|
-
const [nftImageError, setNftImageError] = (0,
|
|
22300
|
-
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)(() => {
|
|
22301
22365
|
const isNft = isNftAsset(asset);
|
|
22302
22366
|
const nftImage = getNftImage(asset);
|
|
22303
22367
|
const isSecurity = isSecurityToken(asset);
|
|
@@ -22452,13 +22516,13 @@ function PortfolioItem(props) {
|
|
|
22452
22516
|
}
|
|
22453
22517
|
);
|
|
22454
22518
|
}
|
|
22455
|
-
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;
|
|
22456
22520
|
var init_PortfolioItem = __esm({
|
|
22457
22521
|
"src/internal/components/PortfolioMenu/PortfolioItem.tsx"() {
|
|
22458
22522
|
init_ProviderContext();
|
|
22459
22523
|
import_react_query37 = require("@tanstack/react-query");
|
|
22460
22524
|
import_lucide_react51 = require("lucide-react");
|
|
22461
|
-
|
|
22525
|
+
import_react68 = require("react");
|
|
22462
22526
|
import_viem11 = require("viem");
|
|
22463
22527
|
init_tokens();
|
|
22464
22528
|
init_base3();
|
|
@@ -22490,7 +22554,7 @@ function PortfolioMenu() {
|
|
|
22490
22554
|
enabled: !!address
|
|
22491
22555
|
});
|
|
22492
22556
|
const shownProjectAssets = projectAssets.filter((asset) => !asset.hideInPortfolio);
|
|
22493
|
-
const refreshAllAssetsBalances = (0,
|
|
22557
|
+
const refreshAllAssetsBalances = (0, import_react69.useCallback)(() => {
|
|
22494
22558
|
Promise.all(shownProjectAssets.map((asset) => qc.invalidateQueries({ queryKey: asset.balanceQueryKey })));
|
|
22495
22559
|
refreshBlockscoutBalances();
|
|
22496
22560
|
}, [qc, shownProjectAssets, refreshBlockscoutBalances]);
|
|
@@ -22536,7 +22600,7 @@ function PortfolioMenu() {
|
|
|
22536
22600
|
blockscoutError && /* @__PURE__ */ (0, import_jsx_runtime95.jsx)(Highlight, { type: "error", children: blockscoutError?.message })
|
|
22537
22601
|
] });
|
|
22538
22602
|
}
|
|
22539
|
-
var import_react_query38, import_lucide_react52,
|
|
22603
|
+
var import_react_query38, import_lucide_react52, import_react69, import_jsx_runtime95;
|
|
22540
22604
|
var init_PortfolioMenu = __esm({
|
|
22541
22605
|
"src/internal/components/PortfolioMenu/PortfolioMenu.tsx"() {
|
|
22542
22606
|
init_ProviderContext();
|
|
@@ -22544,7 +22608,7 @@ var init_PortfolioMenu = __esm({
|
|
|
22544
22608
|
init_i18n();
|
|
22545
22609
|
import_react_query38 = require("@tanstack/react-query");
|
|
22546
22610
|
import_lucide_react52 = require("lucide-react");
|
|
22547
|
-
|
|
22611
|
+
import_react69 = require("react");
|
|
22548
22612
|
init_useBlockscoutAssets2();
|
|
22549
22613
|
init_useLayoutDataStore();
|
|
22550
22614
|
init_Expandable2();
|
|
@@ -22855,7 +22919,7 @@ var init_useNicknameStore = __esm({
|
|
|
22855
22919
|
function useNicknameAvailability(currentNickname) {
|
|
22856
22920
|
const { t } = useT();
|
|
22857
22921
|
const nicknameValue = useNicknameStore((st) => st.nicknameValue);
|
|
22858
|
-
(0,
|
|
22922
|
+
(0, import_react70.useEffect)(() => {
|
|
22859
22923
|
if (!currentNickname) return;
|
|
22860
22924
|
useNicknameStore.getState().setNicknameValue(currentNickname);
|
|
22861
22925
|
}, [currentNickname]);
|
|
@@ -22876,8 +22940,8 @@ function useNicknameAvailability(currentNickname) {
|
|
|
22876
22940
|
useNicknameStore.getState().setError(error?.message || "Failed to check nickname availability");
|
|
22877
22941
|
}
|
|
22878
22942
|
});
|
|
22879
|
-
const debouncedCheckAvailability = (0,
|
|
22880
|
-
(0,
|
|
22943
|
+
const debouncedCheckAvailability = (0, import_react70.useCallback)((0, import_lodash_es14.debounce)(checkAvailability, DEBOUNCE_MS), [checkAvailability]);
|
|
22944
|
+
(0, import_react70.useEffect)(() => {
|
|
22881
22945
|
if (!currentNickname) return;
|
|
22882
22946
|
const normalizedInputValue = normalizeNickname(nicknameValue);
|
|
22883
22947
|
const { valid: isNicknameValid } = validateNickname(nicknameValue);
|
|
@@ -22891,13 +22955,13 @@ function useNicknameAvailability(currentNickname) {
|
|
|
22891
22955
|
}, [nicknameValue, currentNickname, debouncedCheckAvailability]);
|
|
22892
22956
|
return { isCheckingAvailability };
|
|
22893
22957
|
}
|
|
22894
|
-
var import_react_query39, import_lodash_es14,
|
|
22958
|
+
var import_react_query39, import_lodash_es14, import_react70, DEBOUNCE_MS;
|
|
22895
22959
|
var init_useNicknameAvailability = __esm({
|
|
22896
22960
|
"src/internal/components/NicknameMenu/useNicknameAvailability.ts"() {
|
|
22897
22961
|
init_i18n();
|
|
22898
22962
|
import_react_query39 = require("@tanstack/react-query");
|
|
22899
22963
|
import_lodash_es14 = require("lodash-es");
|
|
22900
|
-
|
|
22964
|
+
import_react70 = require("react");
|
|
22901
22965
|
init_nickname();
|
|
22902
22966
|
init_nickname_errors();
|
|
22903
22967
|
init_nickname_validation();
|
|
@@ -22918,9 +22982,9 @@ function NicknameEditForm(props) {
|
|
|
22918
22982
|
const nicknameValue = useNicknameStore((st) => st.nicknameValue);
|
|
22919
22983
|
const nicknameAvailability = useNicknameStore((st) => st.availability);
|
|
22920
22984
|
const { isCheckingAvailability } = useNicknameAvailability(nicknameInfo ? nicknameInfo.handle : "");
|
|
22921
|
-
const [isNicknameCopied, setIsNicknameCopied] = (0,
|
|
22922
|
-
const exitTimerRef = (0,
|
|
22923
|
-
(0,
|
|
22985
|
+
const [isNicknameCopied, setIsNicknameCopied] = (0, import_react71.useState)(false);
|
|
22986
|
+
const exitTimerRef = (0, import_react71.useRef)(null);
|
|
22987
|
+
(0, import_react71.useEffect)(() => () => {
|
|
22924
22988
|
if (exitTimerRef.current) clearTimeout(exitTimerRef.current);
|
|
22925
22989
|
}, []);
|
|
22926
22990
|
const { mutate: changeNickname2, isPending: isNicknameChanging } = (0, import_react_query40.useMutation)({
|
|
@@ -22954,7 +23018,7 @@ function NicknameEditForm(props) {
|
|
|
22954
23018
|
);
|
|
22955
23019
|
}
|
|
22956
23020
|
});
|
|
22957
|
-
const handleNicknameInputChange = (0,
|
|
23021
|
+
const handleNicknameInputChange = (0, import_react71.useCallback)(
|
|
22958
23022
|
(e) => {
|
|
22959
23023
|
const { error, setError, setNicknameValue } = useNicknameStore.getState();
|
|
22960
23024
|
const nextInputValue = e.target.value;
|
|
@@ -22968,7 +23032,7 @@ function NicknameEditForm(props) {
|
|
|
22968
23032
|
},
|
|
22969
23033
|
[t]
|
|
22970
23034
|
);
|
|
22971
|
-
const handleSubmit = (0,
|
|
23035
|
+
const handleSubmit = (0, import_react71.useCallback)(
|
|
22972
23036
|
(e) => {
|
|
22973
23037
|
const { nicknameValue: nicknameValue2, setError } = useNicknameStore.getState();
|
|
22974
23038
|
if (!canChange) {
|
|
@@ -23060,7 +23124,7 @@ function NicknameEditForm(props) {
|
|
|
23060
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") })
|
|
23061
23125
|
] });
|
|
23062
23126
|
}
|
|
23063
|
-
var import_react_query40, import_lucide_react55,
|
|
23127
|
+
var import_react_query40, import_lucide_react55, import_react71, import_jsx_runtime98;
|
|
23064
23128
|
var init_NicknameEditForm = __esm({
|
|
23065
23129
|
"src/internal/components/NicknameMenu/NicknameEditForm.tsx"() {
|
|
23066
23130
|
init_ProviderContext();
|
|
@@ -23068,7 +23132,7 @@ var init_NicknameEditForm = __esm({
|
|
|
23068
23132
|
init_i18n();
|
|
23069
23133
|
import_react_query40 = require("@tanstack/react-query");
|
|
23070
23134
|
import_lucide_react55 = require("lucide-react");
|
|
23071
|
-
|
|
23135
|
+
import_react71 = require("react");
|
|
23072
23136
|
init_icons();
|
|
23073
23137
|
init_nickname();
|
|
23074
23138
|
init_profile();
|
|
@@ -23104,7 +23168,7 @@ function NicknameMenu() {
|
|
|
23104
23168
|
queryFn: async () => await getNicknameInfo()
|
|
23105
23169
|
});
|
|
23106
23170
|
const resolvedError = nicknameError || nicknameInfoError?.message || null;
|
|
23107
|
-
(0,
|
|
23171
|
+
(0, import_react72.useEffect)(() => () => useNicknameStore.getState().reset(), []);
|
|
23108
23172
|
return /* @__PURE__ */ (0, import_jsx_runtime99.jsxs)(Expandable, { isExpanded: true, contentClassName: "w-full flex flex-col gap-[var(--ui-kit-gap)]", children: [
|
|
23109
23173
|
/* @__PURE__ */ (0, import_jsx_runtime99.jsxs)("div", { className: "flex items-center gap-[var(--ui-kit-gap)] ", children: [
|
|
23110
23174
|
/* @__PURE__ */ (0, import_jsx_runtime99.jsx)(
|
|
@@ -23171,7 +23235,7 @@ function NicknameMenu() {
|
|
|
23171
23235
|
!!resolvedError?.length && /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(Highlight, { type: "error", children: resolvedError })
|
|
23172
23236
|
] });
|
|
23173
23237
|
}
|
|
23174
|
-
var import_react_query41, import_dayjs5, import_lucide_react56,
|
|
23238
|
+
var import_react_query41, import_dayjs5, import_lucide_react56, import_react72, import_jsx_runtime99;
|
|
23175
23239
|
var init_NicknameMenu = __esm({
|
|
23176
23240
|
"src/internal/components/NicknameMenu/NicknameMenu.tsx"() {
|
|
23177
23241
|
init_SessionContext();
|
|
@@ -23180,7 +23244,7 @@ var init_NicknameMenu = __esm({
|
|
|
23180
23244
|
import_react_query41 = require("@tanstack/react-query");
|
|
23181
23245
|
import_dayjs5 = __toESM(require("dayjs"), 1);
|
|
23182
23246
|
import_lucide_react56 = require("lucide-react");
|
|
23183
|
-
|
|
23247
|
+
import_react72 = require("react");
|
|
23184
23248
|
init_nickname();
|
|
23185
23249
|
init_profile();
|
|
23186
23250
|
init_useLayoutDataStore();
|
|
@@ -23310,12 +23374,12 @@ function ReceiveMenu() {
|
|
|
23310
23374
|
queryKey: [QUERY_KEYS.nicknameInfo, address],
|
|
23311
23375
|
queryFn: async () => await getNicknameInfo()
|
|
23312
23376
|
});
|
|
23313
|
-
const [qrCodeUrl, setQrCodeUrl] = (0,
|
|
23314
|
-
const [isAddressCopied, setAddressCopied] = (0,
|
|
23315
|
-
const [isNicknameCopied, setNicknameCopied] = (0,
|
|
23316
|
-
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);
|
|
23317
23381
|
useOnboardingTourAvailable(true);
|
|
23318
|
-
const fingerprint = (0,
|
|
23382
|
+
const fingerprint = (0, import_react73.useMemo)(() => {
|
|
23319
23383
|
if (!session?.ownerAddress) return null;
|
|
23320
23384
|
try {
|
|
23321
23385
|
return generateFingerprint(session.ownerAddress);
|
|
@@ -23323,7 +23387,7 @@ function ReceiveMenu() {
|
|
|
23323
23387
|
return null;
|
|
23324
23388
|
}
|
|
23325
23389
|
}, [session?.ownerAddress]);
|
|
23326
|
-
(0,
|
|
23390
|
+
(0, import_react73.useEffect)(() => {
|
|
23327
23391
|
if (!address) return;
|
|
23328
23392
|
import_qrcode.default.toDataURL(address, {
|
|
23329
23393
|
width: 200,
|
|
@@ -23422,7 +23486,7 @@ function ReceiveMenu() {
|
|
|
23422
23486
|
] })
|
|
23423
23487
|
] });
|
|
23424
23488
|
}
|
|
23425
|
-
var import_react_query42, import_lucide_react57, import_qrcode,
|
|
23489
|
+
var import_react_query42, import_lucide_react57, import_qrcode, import_react73, import_jsx_runtime100;
|
|
23426
23490
|
var init_ReceiveMenu = __esm({
|
|
23427
23491
|
"src/internal/components/ReceiveMenu/ReceiveMenu.tsx"() {
|
|
23428
23492
|
init_SessionContext();
|
|
@@ -23430,7 +23494,7 @@ var init_ReceiveMenu = __esm({
|
|
|
23430
23494
|
import_react_query42 = require("@tanstack/react-query");
|
|
23431
23495
|
import_lucide_react57 = require("lucide-react");
|
|
23432
23496
|
import_qrcode = __toESM(require("qrcode"), 1);
|
|
23433
|
-
|
|
23497
|
+
import_react73 = require("react");
|
|
23434
23498
|
init_nickname();
|
|
23435
23499
|
init_profile();
|
|
23436
23500
|
init_useLayoutDataStore();
|
|
@@ -23810,14 +23874,14 @@ var init_ConnectedApps2 = __esm({
|
|
|
23810
23874
|
});
|
|
23811
23875
|
|
|
23812
23876
|
// src/internal/components/SecurityMenu/Keyshare/KeyshareStatus.tsx
|
|
23813
|
-
var import_lucide_react60,
|
|
23877
|
+
var import_lucide_react60, import_react74, import_jsx_runtime103, KeyshareStatus;
|
|
23814
23878
|
var init_KeyshareStatus = __esm({
|
|
23815
23879
|
"src/internal/components/SecurityMenu/Keyshare/KeyshareStatus.tsx"() {
|
|
23816
23880
|
import_lucide_react60 = require("lucide-react");
|
|
23817
|
-
|
|
23881
|
+
import_react74 = require("react");
|
|
23818
23882
|
init_utils();
|
|
23819
23883
|
import_jsx_runtime103 = require("react/jsx-runtime");
|
|
23820
|
-
KeyshareStatus = (0,
|
|
23884
|
+
KeyshareStatus = (0, import_react74.forwardRef)((props, ref) => {
|
|
23821
23885
|
const { isLoading, content, icon: Icon2, children } = props;
|
|
23822
23886
|
if (isLoading) return /* @__PURE__ */ (0, import_jsx_runtime103.jsx)(import_lucide_react60.Loader, { className: "w-4 h-4 animate-spin" });
|
|
23823
23887
|
return /* @__PURE__ */ (0, import_jsx_runtime103.jsxs)("div", { ref, className: "group relative w-full h-full", children: [
|
|
@@ -24144,10 +24208,10 @@ function updateLimits(patch) {
|
|
|
24144
24208
|
usePolicyForm.setState((st) => ({ ...st, limits: { ...st?.limits, ...patch } }));
|
|
24145
24209
|
}
|
|
24146
24210
|
function useWatchFormData() {
|
|
24147
|
-
const [showFormErrors, setShowFormErrors] = (0,
|
|
24211
|
+
const [showFormErrors, setShowFormErrors] = (0, import_react75.useState)(false);
|
|
24148
24212
|
const formData = usePolicyForm();
|
|
24149
24213
|
const formState = usePolicyFormValidation();
|
|
24150
|
-
(0,
|
|
24214
|
+
(0, import_react75.useEffect)(() => {
|
|
24151
24215
|
if (!formData) return;
|
|
24152
24216
|
setShowFormErrors(false);
|
|
24153
24217
|
const errors = {};
|
|
@@ -24174,7 +24238,7 @@ function useWatchFormData() {
|
|
|
24174
24238
|
}
|
|
24175
24239
|
usePolicyFormValidation.setState(errors, true);
|
|
24176
24240
|
}, [formData]);
|
|
24177
|
-
(0,
|
|
24241
|
+
(0, import_react75.useEffect)(() => () => usePolicyFormValidation.setState({}, true), []);
|
|
24178
24242
|
const formErrorItem = Object.entries(formState).find(([_, value]) => value?.error);
|
|
24179
24243
|
const formErrorMessage = formErrorItem ? `${formErrorItem[0].toUpperCase()}: ${formErrorItem[1]?.error}` : "";
|
|
24180
24244
|
return {
|
|
@@ -24185,10 +24249,10 @@ function useWatchFormData() {
|
|
|
24185
24249
|
setShowFormErrors
|
|
24186
24250
|
};
|
|
24187
24251
|
}
|
|
24188
|
-
var
|
|
24252
|
+
var import_react75, import_zustand14, usePolicyForm, usePolicyFormValidation;
|
|
24189
24253
|
var init_usePolicyForm = __esm({
|
|
24190
24254
|
"src/internal/components/SecurityMenu/UserPolicies/usePolicyForm.ts"() {
|
|
24191
|
-
|
|
24255
|
+
import_react75 = require("react");
|
|
24192
24256
|
import_zustand14 = require("zustand");
|
|
24193
24257
|
init_utils10();
|
|
24194
24258
|
usePolicyForm = (0, import_zustand14.create)(() => null);
|
|
@@ -24219,10 +24283,10 @@ var init_useUserAssetsPolicies = __esm({
|
|
|
24219
24283
|
// src/internal/components/SecurityMenu/UserPolicies/PolicyForm.tsx
|
|
24220
24284
|
function AddressListEditor(props) {
|
|
24221
24285
|
const { label, assets = [], addresses, onChange } = props;
|
|
24222
|
-
const [isAssetSelector, setIsAssetSelector] = (0,
|
|
24223
|
-
const [customAddress, setCustomAddress] = (0,
|
|
24224
|
-
const [customAddressError, setCustomAddressError] = (0,
|
|
24225
|
-
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)(
|
|
24226
24290
|
(addressToAdd) => {
|
|
24227
24291
|
if (!isValidAddress(addressToAdd)) {
|
|
24228
24292
|
setCustomAddressError("Bad address");
|
|
@@ -24449,14 +24513,14 @@ function PolicyForm() {
|
|
|
24449
24513
|
showFormErrors && formErrorMessage && /* @__PURE__ */ (0, import_jsx_runtime106.jsx)(Highlight, { type: "error", children: formErrorMessage })
|
|
24450
24514
|
] });
|
|
24451
24515
|
}
|
|
24452
|
-
var import_react_query47, import_lucide_react63,
|
|
24516
|
+
var import_react_query47, import_lucide_react63, import_react76, import_jsx_runtime106;
|
|
24453
24517
|
var init_PolicyForm = __esm({
|
|
24454
24518
|
"src/internal/components/SecurityMenu/UserPolicies/PolicyForm.tsx"() {
|
|
24455
24519
|
init_SessionContext();
|
|
24456
24520
|
init_useT();
|
|
24457
24521
|
import_react_query47 = require("@tanstack/react-query");
|
|
24458
24522
|
import_lucide_react63 = require("lucide-react");
|
|
24459
|
-
|
|
24523
|
+
import_react76 = require("react");
|
|
24460
24524
|
init_button();
|
|
24461
24525
|
init_highlight();
|
|
24462
24526
|
init_input();
|
|
@@ -24538,7 +24602,7 @@ function UserPolicies() {
|
|
|
24538
24602
|
const config = useProviderConfig().config;
|
|
24539
24603
|
const mpcUserId = useSession((st) => st.session?.mpcUserId);
|
|
24540
24604
|
const activeChainId = useSession((st) => st.activeChainId);
|
|
24541
|
-
const [isConfirmingDelete, setIsConfirmingDelete] = (0,
|
|
24605
|
+
const [isConfirmingDelete, setIsConfirmingDelete] = (0, import_react77.useState)(false);
|
|
24542
24606
|
const { data: policyView, isLoading: isPolicyLoading } = useUserAssetsPolicies(activeChainId);
|
|
24543
24607
|
const { mutate: cancelPending, isPending: isCancellingPending } = (0, import_react_query48.useMutation)({
|
|
24544
24608
|
mutationFn: async () => {
|
|
@@ -24651,7 +24715,7 @@ function UserPolicies() {
|
|
|
24651
24715
|
] })
|
|
24652
24716
|
] });
|
|
24653
24717
|
}
|
|
24654
|
-
var import_react_query48, import_clsx3, import_lucide_react64,
|
|
24718
|
+
var import_react_query48, import_clsx3, import_lucide_react64, import_react77, import_jsx_runtime107;
|
|
24655
24719
|
var init_UserPolicies = __esm({
|
|
24656
24720
|
"src/internal/components/SecurityMenu/UserPolicies/UserPolicies.tsx"() {
|
|
24657
24721
|
init_ProviderContext();
|
|
@@ -24660,7 +24724,7 @@ var init_UserPolicies = __esm({
|
|
|
24660
24724
|
import_react_query48 = require("@tanstack/react-query");
|
|
24661
24725
|
import_clsx3 = __toESM(require("clsx"), 1);
|
|
24662
24726
|
import_lucide_react64 = require("lucide-react");
|
|
24663
|
-
|
|
24727
|
+
import_react77 = require("react");
|
|
24664
24728
|
init_button();
|
|
24665
24729
|
init_highlight();
|
|
24666
24730
|
init_api4();
|
|
@@ -24685,7 +24749,7 @@ var init_UserPolicies2 = __esm({
|
|
|
24685
24749
|
|
|
24686
24750
|
// src/internal/components/SecurityMenu/useSecurityMenuParams.ts
|
|
24687
24751
|
function useSecurityMenuParams() {
|
|
24688
|
-
(0,
|
|
24752
|
+
(0, import_react78.useEffect)(() => {
|
|
24689
24753
|
const { pageParams, setPageParams } = useLayoutDataStore.getState();
|
|
24690
24754
|
if (!pageParams || !(0, import_lodash_es15.keys)(pageParams).length) return;
|
|
24691
24755
|
const { submenu } = pageParams;
|
|
@@ -24709,11 +24773,11 @@ function useSecurityMenuParams() {
|
|
|
24709
24773
|
setPageParams(null);
|
|
24710
24774
|
}, []);
|
|
24711
24775
|
}
|
|
24712
|
-
var import_lodash_es15,
|
|
24776
|
+
var import_lodash_es15, import_react78;
|
|
24713
24777
|
var init_useSecurityMenuParams = __esm({
|
|
24714
24778
|
"src/internal/components/SecurityMenu/useSecurityMenuParams.ts"() {
|
|
24715
24779
|
import_lodash_es15 = require("lodash-es");
|
|
24716
|
-
|
|
24780
|
+
import_react78 = require("react");
|
|
24717
24781
|
init_useLayoutDataStore();
|
|
24718
24782
|
init_UserPolicies2();
|
|
24719
24783
|
init_useSecurityStore();
|
|
@@ -24728,7 +24792,7 @@ function SecurityMenuContent() {
|
|
|
24728
24792
|
const { appToUntrust, showConnectedApps, showAssetsPolicies } = useSecurityStore();
|
|
24729
24793
|
const policyForm = usePolicyForm();
|
|
24730
24794
|
useOnboardingTourAvailable(!showConnectedApps && !showAssetsPolicies);
|
|
24731
|
-
(0,
|
|
24795
|
+
(0, import_react79.useEffect)(() => {
|
|
24732
24796
|
let securityTitle = "";
|
|
24733
24797
|
switch (true) {
|
|
24734
24798
|
case showConnectedApps:
|
|
@@ -24749,7 +24813,7 @@ function SecurityMenuContent() {
|
|
|
24749
24813
|
return () => {
|
|
24750
24814
|
};
|
|
24751
24815
|
}, [t, showConnectedApps, showAssetsPolicies, policyForm]);
|
|
24752
|
-
(0,
|
|
24816
|
+
(0, import_react79.useEffect)(
|
|
24753
24817
|
() => () => {
|
|
24754
24818
|
usePolicyForm.setState(null, true);
|
|
24755
24819
|
useSecurityStore.setState(
|
|
@@ -24843,13 +24907,13 @@ function SecurityMenu() {
|
|
|
24843
24907
|
/* @__PURE__ */ (0, import_jsx_runtime108.jsx)(SecurityMenuContent, {})
|
|
24844
24908
|
] });
|
|
24845
24909
|
}
|
|
24846
|
-
var import_lucide_react65,
|
|
24910
|
+
var import_lucide_react65, import_react79, import_jsx_runtime108;
|
|
24847
24911
|
var init_SecurityMenu = __esm({
|
|
24848
24912
|
"src/internal/components/SecurityMenu/SecurityMenu.tsx"() {
|
|
24849
24913
|
init_ProviderContext();
|
|
24850
24914
|
init_i18n();
|
|
24851
24915
|
import_lucide_react65 = require("lucide-react");
|
|
24852
|
-
|
|
24916
|
+
import_react79 = require("react");
|
|
24853
24917
|
init_useLayoutDataStore();
|
|
24854
24918
|
init_Expandable2();
|
|
24855
24919
|
init_Onboarding();
|
|
@@ -25053,8 +25117,8 @@ var init_SenderSelector = __esm({
|
|
|
25053
25117
|
function useAvailableSenders() {
|
|
25054
25118
|
const address = useSession((st) => st.address);
|
|
25055
25119
|
const { profiles } = useLinkedProfiles();
|
|
25056
|
-
const lastCalcedSenders = (0,
|
|
25057
|
-
(0,
|
|
25120
|
+
const lastCalcedSenders = (0, import_react80.useRef)([]);
|
|
25121
|
+
(0, import_react80.useEffect)(() => {
|
|
25058
25122
|
const sendersAccumulator = [
|
|
25059
25123
|
{
|
|
25060
25124
|
type: "embarkai-wallet",
|
|
@@ -25088,13 +25152,13 @@ function useAvailableSenders() {
|
|
|
25088
25152
|
directWalletProfiles: profiles.filter((p) => p.provider === "wallet")
|
|
25089
25153
|
};
|
|
25090
25154
|
}
|
|
25091
|
-
var
|
|
25155
|
+
var import_react80;
|
|
25092
25156
|
var init_useAvailableSenders = __esm({
|
|
25093
25157
|
"src/internal/components/SendMenu/hyperbridge/hooks/useAvailableSenders.ts"() {
|
|
25094
25158
|
init_SessionContext();
|
|
25095
25159
|
init_tokens();
|
|
25096
25160
|
init_linkedProfiles();
|
|
25097
|
-
|
|
25161
|
+
import_react80 = require("react");
|
|
25098
25162
|
init_wallets();
|
|
25099
25163
|
init_useBridgeStore();
|
|
25100
25164
|
}
|
|
@@ -25509,18 +25573,18 @@ function useHyperlaneHistory() {
|
|
|
25509
25573
|
getNextPageParam: (lastPage) => lastPage.page < lastPage.pageCount ? lastPage.page + 1 : void 0,
|
|
25510
25574
|
queryFn: async ({ pageParam }) => await getHyperlaneBridgeHistory({ page: pageParam, pageSize: TX_HISTORY_PAGE_SIZE })
|
|
25511
25575
|
});
|
|
25512
|
-
const txList = (0,
|
|
25576
|
+
const txList = (0, import_react81.useMemo)(
|
|
25513
25577
|
() => query?.data?.pages?.map((p) => p.data).flat(Infinity) || [],
|
|
25514
25578
|
[query?.data]
|
|
25515
25579
|
);
|
|
25516
25580
|
return { query, txList };
|
|
25517
25581
|
}
|
|
25518
|
-
var import_react_query49,
|
|
25582
|
+
var import_react_query49, import_react81, HYPERLANE_HISTORY_QUERY_KEY, TX_HISTORY_PAGE_SIZE, TX_HISTORY_POLLING_INTERVAL;
|
|
25519
25583
|
var init_useHyperlaneHistory = __esm({
|
|
25520
25584
|
"src/internal/components/SendMenu/hyperbridge/hooks/useHyperlaneHistory.ts"() {
|
|
25521
25585
|
init_SessionContext();
|
|
25522
25586
|
import_react_query49 = require("@tanstack/react-query");
|
|
25523
|
-
|
|
25587
|
+
import_react81 = require("react");
|
|
25524
25588
|
init_useLayoutDataStore();
|
|
25525
25589
|
init_useFlowSelector();
|
|
25526
25590
|
init_api5();
|
|
@@ -25550,9 +25614,9 @@ function useBridge() {
|
|
|
25550
25614
|
const qc = (0, import_react_query50.useQueryClient)();
|
|
25551
25615
|
const { t } = useT();
|
|
25552
25616
|
const address = useSession((st) => st.address);
|
|
25553
|
-
const { data: walletClient } = (0,
|
|
25554
|
-
const { mutateAsync: switchChainAsync } = (0,
|
|
25555
|
-
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)(() => {
|
|
25556
25620
|
const {
|
|
25557
25621
|
// bridgeStep,
|
|
25558
25622
|
originChain,
|
|
@@ -25603,7 +25667,7 @@ function useBridge() {
|
|
|
25603
25667
|
useFlowSelectorStore.getState().setError(error instanceof Error ? error.message : String(error));
|
|
25604
25668
|
}
|
|
25605
25669
|
});
|
|
25606
|
-
const handleQuoteEstimation = (0,
|
|
25670
|
+
const handleQuoteEstimation = (0, import_react82.useCallback)((amnt) => {
|
|
25607
25671
|
const { originChain, destinationChain, bridgeSender } = useBridgeStore.getState();
|
|
25608
25672
|
if (!amnt || !Number(amnt)) {
|
|
25609
25673
|
useBridgeStore.getState().setQuote(null);
|
|
@@ -25738,14 +25802,14 @@ function useBridge() {
|
|
|
25738
25802
|
isAssetBridging
|
|
25739
25803
|
};
|
|
25740
25804
|
}
|
|
25741
|
-
var import_react_query50,
|
|
25805
|
+
var import_react_query50, import_react82, import_wagmi5;
|
|
25742
25806
|
var init_useBridge = __esm({
|
|
25743
25807
|
"src/internal/components/SendMenu/hyperbridge/hooks/useBridge.ts"() {
|
|
25744
25808
|
init_SessionContext();
|
|
25745
25809
|
init_i18n();
|
|
25746
25810
|
import_react_query50 = require("@tanstack/react-query");
|
|
25747
|
-
|
|
25748
|
-
|
|
25811
|
+
import_react82 = require("react");
|
|
25812
|
+
import_wagmi5 = require("wagmi");
|
|
25749
25813
|
init_useLayoutStore();
|
|
25750
25814
|
init_useExternalWalletStore();
|
|
25751
25815
|
init_useFlowSelector();
|
|
@@ -25775,7 +25839,7 @@ function useHyperlaneRoutes() {
|
|
|
25775
25839
|
queryKey: [HYPERLANE_WARP_ROUTES_QUERY_KEY, address],
|
|
25776
25840
|
queryFn: async () => await getHyperlaneWarpRoutes()
|
|
25777
25841
|
});
|
|
25778
|
-
(0,
|
|
25842
|
+
(0, import_react83.useEffect)(() => {
|
|
25779
25843
|
if (!errorWarpRoutes) return;
|
|
25780
25844
|
useFlowSelectorStore.getState().setError(errorWarpRoutes.message);
|
|
25781
25845
|
const { resetSelections, setRecipient, setOriginChain, setDestinationChain } = useBridgeStore.getState();
|
|
@@ -25784,7 +25848,7 @@ function useHyperlaneRoutes() {
|
|
|
25784
25848
|
setOriginChain(null);
|
|
25785
25849
|
setDestinationChain(null);
|
|
25786
25850
|
}, [errorWarpRoutes]);
|
|
25787
|
-
(0,
|
|
25851
|
+
(0, import_react83.useEffect)(() => {
|
|
25788
25852
|
if (!!hyperRoute || !hyperlaneWarpRoutes.length) return;
|
|
25789
25853
|
let targetHyperRouteToSelect = hyperlaneWarpRoutes.find((route) => route.routeId === hyperRoute);
|
|
25790
25854
|
if (!targetHyperRouteToSelect) {
|
|
@@ -25809,12 +25873,12 @@ function useHyperlaneRoutes() {
|
|
|
25809
25873
|
}, [hyperRoute, hyperlaneWarpRoutes]);
|
|
25810
25874
|
return { hyperlaneWarpRoutes, isLoadingWarpRoutes };
|
|
25811
25875
|
}
|
|
25812
|
-
var import_react_query51,
|
|
25876
|
+
var import_react_query51, import_react83, HYPERLANE_WARP_ROUTES_QUERY_KEY;
|
|
25813
25877
|
var init_useHyperlaneRoutes = __esm({
|
|
25814
25878
|
"src/internal/components/SendMenu/hyperbridge/hooks/useHyperlaneRoutes.ts"() {
|
|
25815
25879
|
init_SessionContext();
|
|
25816
25880
|
import_react_query51 = require("@tanstack/react-query");
|
|
25817
|
-
|
|
25881
|
+
import_react83 = require("react");
|
|
25818
25882
|
init_useLayoutDataStore();
|
|
25819
25883
|
init_useFlowSelector();
|
|
25820
25884
|
init_api5();
|
|
@@ -25830,7 +25894,7 @@ function useMenuTitle(warpRoutes) {
|
|
|
25830
25894
|
const bridgeStep = useBridgeStore((st) => st.bridgeStep);
|
|
25831
25895
|
const hyperRoute = useBridgeStore((st) => st.hyperRoute);
|
|
25832
25896
|
const hyperRouteMeta = warpRoutes?.length ? warpRoutes.find((route) => route.routeId === hyperRoute) : null;
|
|
25833
|
-
(0,
|
|
25897
|
+
(0, import_react84.useEffect)(() => {
|
|
25834
25898
|
const updateMenuTitle = useFlowSelectorStore.getState().setMenuTitle;
|
|
25835
25899
|
switch (true) {
|
|
25836
25900
|
case bridgeStep === "sender-selector":
|
|
@@ -25858,11 +25922,11 @@ function useMenuTitle(warpRoutes) {
|
|
|
25858
25922
|
}
|
|
25859
25923
|
}, [bridgeStep, hyperRouteMeta, t]);
|
|
25860
25924
|
}
|
|
25861
|
-
var
|
|
25925
|
+
var import_react84;
|
|
25862
25926
|
var init_useMenuTitle = __esm({
|
|
25863
25927
|
"src/internal/components/SendMenu/hyperbridge/hooks/useMenuTitle.ts"() {
|
|
25864
25928
|
init_i18n();
|
|
25865
|
-
|
|
25929
|
+
import_react84 = require("react");
|
|
25866
25930
|
init_useFlowSelector();
|
|
25867
25931
|
init_useBridgeStore();
|
|
25868
25932
|
}
|
|
@@ -26032,7 +26096,7 @@ function useBridgeBalance(isLoadingWarpRoutes, hyperlaneWarpRoutes) {
|
|
|
26032
26096
|
const activeChainId = useSession((st) => st.activeChainId);
|
|
26033
26097
|
const directWalletAddress = useExternalWalletStore((st) => st.externalAddress);
|
|
26034
26098
|
const directWalletChainId = useExternalWalletStore((st) => st.externalChainId);
|
|
26035
|
-
const { mutateAsync: switchChainAsync } = (0,
|
|
26099
|
+
const { mutateAsync: switchChainAsync } = (0, import_wagmi6.useSwitchChain)();
|
|
26036
26100
|
const hyperRoute = useBridgeStore((st) => st.hyperRoute);
|
|
26037
26101
|
const bridgeSender = useBridgeStore((st) => st.bridgeSender);
|
|
26038
26102
|
const originChain = useBridgeStore((st) => st.originChain);
|
|
@@ -26112,7 +26176,7 @@ function useBridgeBalance(isLoadingWarpRoutes, hyperlaneWarpRoutes) {
|
|
|
26112
26176
|
};
|
|
26113
26177
|
}
|
|
26114
26178
|
});
|
|
26115
|
-
const refreshRouteTokenBalance = (0,
|
|
26179
|
+
const refreshRouteTokenBalance = (0, import_react85.useCallback)(
|
|
26116
26180
|
(senderWallet) => {
|
|
26117
26181
|
switch (true) {
|
|
26118
26182
|
case senderWallet === "embarkai-wallet":
|
|
@@ -26128,7 +26192,7 @@ function useBridgeBalance(isLoadingWarpRoutes, hyperlaneWarpRoutes) {
|
|
|
26128
26192
|
},
|
|
26129
26193
|
[refreshBalances, qc]
|
|
26130
26194
|
);
|
|
26131
|
-
(0,
|
|
26195
|
+
(0, import_react85.useEffect)(() => {
|
|
26132
26196
|
if (!!isLoadingWarpRoutes || !bridgeSender || !originChain) return;
|
|
26133
26197
|
switch (bridgeSender) {
|
|
26134
26198
|
case "embarkai-wallet":
|
|
@@ -26159,16 +26223,16 @@ function useBridgeBalance(isLoadingWarpRoutes, hyperlaneWarpRoutes) {
|
|
|
26159
26223
|
isRouteTokenBalanceLoading: isAssetsLoading || isExternalBalanceLoading || isExternalNativeBalanceLoading
|
|
26160
26224
|
};
|
|
26161
26225
|
}
|
|
26162
|
-
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;
|
|
26163
26227
|
var init_useBridgeBalance = __esm({
|
|
26164
26228
|
"src/internal/components/SendMenu/hyperbridge/hooks/useBridgeBalance.ts"() {
|
|
26165
26229
|
init_SessionContext();
|
|
26166
26230
|
init_i18n();
|
|
26167
26231
|
import_core8 = require("@embarkai/core");
|
|
26168
26232
|
import_react_query52 = require("@tanstack/react-query");
|
|
26169
|
-
|
|
26233
|
+
import_react85 = require("react");
|
|
26170
26234
|
import_viem15 = require("viem");
|
|
26171
|
-
|
|
26235
|
+
import_wagmi6 = require("wagmi");
|
|
26172
26236
|
init_useBlockscoutAssets2();
|
|
26173
26237
|
init_useExternalWalletStore();
|
|
26174
26238
|
init_BalanceFeedProvider2();
|
|
@@ -26295,7 +26359,7 @@ function SelectStep(props) {
|
|
|
26295
26359
|
variant: "outline",
|
|
26296
26360
|
size: "medium",
|
|
26297
26361
|
className: "bg-[var(--ui-kit-bg)] flex items-center gap-[var(--ui-kit-gap)]",
|
|
26298
|
-
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: [
|
|
26299
26363
|
chIdx > 0 && /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(import_lucide_react67.ArrowLeftRightIcon, { className: "w-4 h-4 " }),
|
|
26300
26364
|
/* @__PURE__ */ (0, import_jsx_runtime111.jsx)(ResolveChainIcon, { chainName: chain.chainName, className: "w-4 h-4" })
|
|
26301
26365
|
] }, `${selectedWarpRoute.id}-icon-${chain.chainID}-${chIdx}`))
|
|
@@ -26439,13 +26503,13 @@ function SelectStep(props) {
|
|
|
26439
26503
|
)
|
|
26440
26504
|
] });
|
|
26441
26505
|
}
|
|
26442
|
-
var import_lucide_react67,
|
|
26506
|
+
var import_lucide_react67, import_react86, import_jsx_runtime111;
|
|
26443
26507
|
var init_SelectStep = __esm({
|
|
26444
26508
|
"src/internal/components/SendMenu/hyperbridge/steps/SelectStep.tsx"() {
|
|
26445
26509
|
init_tokens();
|
|
26446
26510
|
init_i18n();
|
|
26447
26511
|
import_lucide_react67 = require("lucide-react");
|
|
26448
|
-
|
|
26512
|
+
import_react86 = require("react");
|
|
26449
26513
|
init_priceFormatter();
|
|
26450
26514
|
init_utils();
|
|
26451
26515
|
init_useExternalWalletStore();
|
|
@@ -26496,7 +26560,7 @@ var init_checkbox = __esm({
|
|
|
26496
26560
|
// src/internal/components/SendMenu/hyperbridge/steps/ConfirmStep.tsx
|
|
26497
26561
|
function ConfirmStep(props) {
|
|
26498
26562
|
const { isAssetBridging, bridgeAsset, hyperlaneWarpRoutes } = props;
|
|
26499
|
-
const [userConsent, setUserConsent] = (0,
|
|
26563
|
+
const [userConsent, setUserConsent] = (0, import_react87.useState)(false);
|
|
26500
26564
|
const { t } = useT();
|
|
26501
26565
|
const address = useSession((st) => st.address);
|
|
26502
26566
|
const bridgeSender = useBridgeStore((st) => st.bridgeSenders.find((s) => s.type === st.bridgeSender));
|
|
@@ -26612,13 +26676,13 @@ function ConfirmStep(props) {
|
|
|
26612
26676
|
}
|
|
26613
26677
|
);
|
|
26614
26678
|
}
|
|
26615
|
-
var import_lucide_react69,
|
|
26679
|
+
var import_lucide_react69, import_react87, import_jsx_runtime113, P_CN;
|
|
26616
26680
|
var init_ConfirmStep = __esm({
|
|
26617
26681
|
"src/internal/components/SendMenu/hyperbridge/steps/ConfirmStep.tsx"() {
|
|
26618
26682
|
init_SessionContext();
|
|
26619
26683
|
init_i18n();
|
|
26620
26684
|
import_lucide_react69 = require("lucide-react");
|
|
26621
|
-
|
|
26685
|
+
import_react87 = require("react");
|
|
26622
26686
|
init_priceFormatter();
|
|
26623
26687
|
init_utils();
|
|
26624
26688
|
init_Onboarding();
|
|
@@ -26995,7 +27059,7 @@ function SelectAssetRoute(props) {
|
|
|
26995
27059
|
const { hyperlaneWarpRoutes } = props;
|
|
26996
27060
|
const { t } = useT();
|
|
26997
27061
|
const selectedAssetSymbol = useBridgeStore((st) => st.bridgeAssetSymbol);
|
|
26998
|
-
const tokenList = (0,
|
|
27062
|
+
const tokenList = (0, import_react88.useMemo)(() => {
|
|
26999
27063
|
const tokens = hyperlaneWarpRoutes.map((route) => route.symbol);
|
|
27000
27064
|
const uniqueTokens = Array.from(new Set(tokens));
|
|
27001
27065
|
return uniqueTokens.map((symbol) => ({
|
|
@@ -27072,13 +27136,13 @@ function SelectAssetRoute(props) {
|
|
|
27072
27136
|
] })
|
|
27073
27137
|
] });
|
|
27074
27138
|
}
|
|
27075
|
-
var import_lucide_react71,
|
|
27139
|
+
var import_lucide_react71, import_react88, import_jsx_runtime116;
|
|
27076
27140
|
var init_SelectAssetRoute = __esm({
|
|
27077
27141
|
"src/internal/components/SendMenu/hyperbridge/steps/SelectAssetRoute.tsx"() {
|
|
27078
27142
|
init_tokens();
|
|
27079
27143
|
init_i18n();
|
|
27080
27144
|
import_lucide_react71 = require("lucide-react");
|
|
27081
|
-
|
|
27145
|
+
import_react88 = require("react");
|
|
27082
27146
|
init_button();
|
|
27083
27147
|
init_ResolveChainIcon();
|
|
27084
27148
|
init_useBridgeStore();
|
|
@@ -27105,7 +27169,7 @@ function HyperlaneBridge() {
|
|
|
27105
27169
|
const { hyperlaneWarpRoutes, isLoadingWarpRoutes } = useHyperlaneRoutes();
|
|
27106
27170
|
const { directWalletProfiles } = useAvailableSenders();
|
|
27107
27171
|
useMenuTitle(hyperlaneWarpRoutes);
|
|
27108
|
-
(0,
|
|
27172
|
+
(0, import_react89.useEffect)(() => {
|
|
27109
27173
|
return () => {
|
|
27110
27174
|
useBridgeStore.getState().resetSelections();
|
|
27111
27175
|
};
|
|
@@ -27138,10 +27202,10 @@ function HyperlaneBridge() {
|
|
|
27138
27202
|
bridgeStep === "tx-history-details" && /* @__PURE__ */ (0, import_jsx_runtime117.jsx)(HistoryDetailsStep, {})
|
|
27139
27203
|
] });
|
|
27140
27204
|
}
|
|
27141
|
-
var
|
|
27205
|
+
var import_react89, import_jsx_runtime117;
|
|
27142
27206
|
var init_HyperlaneBridge = __esm({
|
|
27143
27207
|
"src/internal/components/SendMenu/hyperbridge/HyperlaneBridge.tsx"() {
|
|
27144
|
-
|
|
27208
|
+
import_react89 = require("react");
|
|
27145
27209
|
init_SenderSelector();
|
|
27146
27210
|
init_useAvailableSenders();
|
|
27147
27211
|
init_useBridge();
|
|
@@ -27159,7 +27223,7 @@ function BridgeHistorySwitch(props) {
|
|
|
27159
27223
|
const selectorFlow = useFlowSelectorStore((st) => st.flow);
|
|
27160
27224
|
const isUiLocked = useFlowSelectorStore((st) => st.isUiLocked);
|
|
27161
27225
|
const bridgeStep = useBridgeStore((st) => st.bridgeStep);
|
|
27162
|
-
const lastBridgeStepRef = (0,
|
|
27226
|
+
const lastBridgeStepRef = (0, import_react90.useRef)(null);
|
|
27163
27227
|
if (selectorFlow !== "bridge" || bridgeStep === "confirm" || bridgeStep === "success" || bridgeStep === "sender-selector" || bridgeStep === "select-token" || bridgeStep === "tx-history-details") {
|
|
27164
27228
|
return null;
|
|
27165
27229
|
}
|
|
@@ -27178,10 +27242,10 @@ function BridgeHistorySwitch(props) {
|
|
|
27178
27242
|
}
|
|
27179
27243
|
);
|
|
27180
27244
|
}
|
|
27181
|
-
var
|
|
27245
|
+
var import_react90, import_jsx_runtime118;
|
|
27182
27246
|
var init_HistorySwitch = __esm({
|
|
27183
27247
|
"src/internal/components/SendMenu/hyperbridge/components/HistorySwitch.tsx"() {
|
|
27184
|
-
|
|
27248
|
+
import_react90 = require("react");
|
|
27185
27249
|
init_switch();
|
|
27186
27250
|
init_useFlowSelector();
|
|
27187
27251
|
init_useBridgeStore();
|
|
@@ -27207,7 +27271,7 @@ function useErc3643Compliance(options) {
|
|
|
27207
27271
|
isLoading,
|
|
27208
27272
|
error: queryError,
|
|
27209
27273
|
refetch
|
|
27210
|
-
} = (0,
|
|
27274
|
+
} = (0, import_wagmi7.useReadContract)({
|
|
27211
27275
|
address: tokenAddress,
|
|
27212
27276
|
abi: ERC3643_CAN_TRANSFER_ABI,
|
|
27213
27277
|
functionName: "canTransfer",
|
|
@@ -27244,10 +27308,10 @@ function useErc3643Compliance(options) {
|
|
|
27244
27308
|
refetch
|
|
27245
27309
|
};
|
|
27246
27310
|
}
|
|
27247
|
-
var
|
|
27311
|
+
var import_wagmi7, ERC3643_CAN_TRANSFER_ABI;
|
|
27248
27312
|
var init_useErc3643Compliance = __esm({
|
|
27249
27313
|
"src/hooks/useErc3643Compliance.ts"() {
|
|
27250
|
-
|
|
27314
|
+
import_wagmi7 = require("wagmi");
|
|
27251
27315
|
ERC3643_CAN_TRANSFER_ABI = [
|
|
27252
27316
|
{
|
|
27253
27317
|
type: "function",
|
|
@@ -27272,11 +27336,11 @@ function looksLikeNickname(input) {
|
|
|
27272
27336
|
}
|
|
27273
27337
|
function useNicknameResolve(input, options) {
|
|
27274
27338
|
const { enabled = true, chainId } = options;
|
|
27275
|
-
const [debouncedInput, setDebouncedInput] = (0,
|
|
27276
|
-
const [isDebouncing, setIsDebouncing] = (0,
|
|
27339
|
+
const [debouncedInput, setDebouncedInput] = (0, import_react91.useState)("");
|
|
27340
|
+
const [isDebouncing, setIsDebouncing] = (0, import_react91.useState)(false);
|
|
27277
27341
|
const normalized = normalizeNickname(input);
|
|
27278
27342
|
const isNicknameInput = looksLikeNickname(input) && normalized.length >= 3;
|
|
27279
|
-
(0,
|
|
27343
|
+
(0, import_react91.useEffect)(() => {
|
|
27280
27344
|
if (!isNicknameInput || !enabled) {
|
|
27281
27345
|
setDebouncedInput("");
|
|
27282
27346
|
setIsDebouncing(false);
|
|
@@ -27302,7 +27366,7 @@ function useNicknameResolve(input, options) {
|
|
|
27302
27366
|
const isNotFound = query.isError && query.error?.code === "NICKNAME_NOT_FOUND";
|
|
27303
27367
|
const isWalletNotSetup = !!query.data && query.data.resolvedTarget === null;
|
|
27304
27368
|
const isFrozen = query.data?.isFrozen ?? false;
|
|
27305
|
-
const fingerprintVerification = (0,
|
|
27369
|
+
const fingerprintVerification = (0, import_react91.useMemo)(() => {
|
|
27306
27370
|
if (!query.data?.owner || !query.data?.fingerprint) {
|
|
27307
27371
|
return null;
|
|
27308
27372
|
}
|
|
@@ -27324,11 +27388,11 @@ function useNicknameResolve(input, options) {
|
|
|
27324
27388
|
resolvedAddress
|
|
27325
27389
|
};
|
|
27326
27390
|
}
|
|
27327
|
-
var import_react_query54,
|
|
27391
|
+
var import_react_query54, import_react91, DEBOUNCE_MS2;
|
|
27328
27392
|
var init_useNicknameResolve = __esm({
|
|
27329
27393
|
"src/hooks/useNicknameResolve.ts"() {
|
|
27330
27394
|
import_react_query54 = require("@tanstack/react-query");
|
|
27331
|
-
|
|
27395
|
+
import_react91 = require("react");
|
|
27332
27396
|
init_nickname();
|
|
27333
27397
|
init_profile();
|
|
27334
27398
|
init_nickname_fingerprint();
|
|
@@ -27341,10 +27405,10 @@ var init_useNicknameResolve = __esm({
|
|
|
27341
27405
|
function useSendTransaction() {
|
|
27342
27406
|
const session = useSession((st) => st.session);
|
|
27343
27407
|
const address = useSession((st) => st.address);
|
|
27344
|
-
const [isLoading, setIsLoading] = (0,
|
|
27345
|
-
const [error, setError] = (0,
|
|
27346
|
-
const [userOpHash, setUserOpHash] = (0,
|
|
27347
|
-
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)(
|
|
27348
27412
|
async (params) => {
|
|
27349
27413
|
if (!session || !address) {
|
|
27350
27414
|
setError("No active session");
|
|
@@ -27441,7 +27505,7 @@ function useSendTransaction() {
|
|
|
27441
27505
|
},
|
|
27442
27506
|
[session, address]
|
|
27443
27507
|
);
|
|
27444
|
-
const reset = (0,
|
|
27508
|
+
const reset = (0, import_react92.useCallback)(() => {
|
|
27445
27509
|
setError(null);
|
|
27446
27510
|
setUserOpHash(null);
|
|
27447
27511
|
setIsLoading(false);
|
|
@@ -27454,10 +27518,10 @@ function useSendTransaction() {
|
|
|
27454
27518
|
reset
|
|
27455
27519
|
};
|
|
27456
27520
|
}
|
|
27457
|
-
var
|
|
27521
|
+
var import_react92, import_viem16, ERC20_TRANSFER_ABI, ERC721_SAFE_TRANSFER_ABI, ERC1155_SAFE_TRANSFER_ABI;
|
|
27458
27522
|
var init_useSendTransaction = __esm({
|
|
27459
27523
|
"src/hooks/useSendTransaction.ts"() {
|
|
27460
|
-
|
|
27524
|
+
import_react92 = require("react");
|
|
27461
27525
|
import_viem16 = require("viem");
|
|
27462
27526
|
init_SessionContext();
|
|
27463
27527
|
init_account2();
|
|
@@ -27608,7 +27672,7 @@ var init_AssetInputIcon = __esm({
|
|
|
27608
27672
|
|
|
27609
27673
|
// src/internal/components/SendMenu/send/components/NftDisplayCard.tsx
|
|
27610
27674
|
function NftDisplayCard({ asset }) {
|
|
27611
|
-
const [imageError, setImageError] = (0,
|
|
27675
|
+
const [imageError, setImageError] = (0, import_react93.useState)(false);
|
|
27612
27676
|
const nftImage = asset.image || asset.nftMetadata?.image;
|
|
27613
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: [
|
|
27614
27678
|
nftImage && !imageError ? /* @__PURE__ */ (0, import_jsx_runtime120.jsx)(
|
|
@@ -27636,11 +27700,11 @@ function NftDisplayCard({ asset }) {
|
|
|
27636
27700
|
] })
|
|
27637
27701
|
] });
|
|
27638
27702
|
}
|
|
27639
|
-
var import_lucide_react73,
|
|
27703
|
+
var import_lucide_react73, import_react93, import_jsx_runtime120;
|
|
27640
27704
|
var init_NftDisplayCard = __esm({
|
|
27641
27705
|
"src/internal/components/SendMenu/send/components/NftDisplayCard.tsx"() {
|
|
27642
27706
|
import_lucide_react73 = require("lucide-react");
|
|
27643
|
-
|
|
27707
|
+
import_react93 = require("react");
|
|
27644
27708
|
import_jsx_runtime120 = require("react/jsx-runtime");
|
|
27645
27709
|
}
|
|
27646
27710
|
});
|
|
@@ -27760,7 +27824,7 @@ function NicknameData(props) {
|
|
|
27760
27824
|
isWalletNotSetup,
|
|
27761
27825
|
isFrozen
|
|
27762
27826
|
} = resolvedNicknameData;
|
|
27763
|
-
(0,
|
|
27827
|
+
(0, import_react94.useEffect)(() => {
|
|
27764
27828
|
if (isResolving) return;
|
|
27765
27829
|
let errMessage = null;
|
|
27766
27830
|
switch (true) {
|
|
@@ -27815,11 +27879,11 @@ function NicknameData(props) {
|
|
|
27815
27879
|
] })
|
|
27816
27880
|
] });
|
|
27817
27881
|
}
|
|
27818
|
-
var import_lucide_react74,
|
|
27882
|
+
var import_lucide_react74, import_react94, import_jsx_runtime122;
|
|
27819
27883
|
var init_NicknameData = __esm({
|
|
27820
27884
|
"src/internal/components/SendMenu/send/components/NicknameData.tsx"() {
|
|
27821
27885
|
import_lucide_react74 = require("lucide-react");
|
|
27822
|
-
|
|
27886
|
+
import_react94 = require("react");
|
|
27823
27887
|
init_no_image();
|
|
27824
27888
|
init_utils();
|
|
27825
27889
|
init_useFlowSelector();
|
|
@@ -28352,16 +28416,16 @@ function SendMenu() {
|
|
|
28352
28416
|
userOpHash,
|
|
28353
28417
|
reset
|
|
28354
28418
|
} = useSendTransaction();
|
|
28355
|
-
(0,
|
|
28419
|
+
(0, import_react95.useEffect)(() => {
|
|
28356
28420
|
useFlowSelectorStore.getState().setIsUiLocked(isAssetsLoading || isTransactionPending);
|
|
28357
28421
|
}, [isAssetsLoading, isTransactionPending]);
|
|
28358
|
-
(0,
|
|
28422
|
+
(0, import_react95.useEffect)(() => {
|
|
28359
28423
|
useFlowSelectorStore.getState().setError(sendTransactionError || null);
|
|
28360
28424
|
}, [sendTransactionError]);
|
|
28361
28425
|
const { txStep, recipient, amount, selectedAsset, setSelectedAsset } = useSendStore();
|
|
28362
28426
|
const isNft = isNftAsset3(selectedAsset);
|
|
28363
28427
|
const isSecurity = isSecurityToken2(selectedAsset);
|
|
28364
|
-
(0,
|
|
28428
|
+
(0, import_react95.useEffect)(() => {
|
|
28365
28429
|
const shouldDefaultAsset = assets.length > 0 && !selectedAsset;
|
|
28366
28430
|
if (!shouldDefaultAsset) return;
|
|
28367
28431
|
const chainNativeCurrency = useSession.getState().chainConfig?.nativeCurrency;
|
|
@@ -28371,7 +28435,7 @@ function SendMenu() {
|
|
|
28371
28435
|
if (isBalance(erc20)) return setSelectedAsset(erc20);
|
|
28372
28436
|
setSelectedAsset(assets[0]);
|
|
28373
28437
|
}, [assets, selectedAsset]);
|
|
28374
|
-
(0,
|
|
28438
|
+
(0, import_react95.useEffect)(
|
|
28375
28439
|
() => () => {
|
|
28376
28440
|
useSendStore.getState().reset();
|
|
28377
28441
|
reset();
|
|
@@ -28381,7 +28445,7 @@ function SendMenu() {
|
|
|
28381
28445
|
const isNicknameInput = looksLikeNickname(recipient);
|
|
28382
28446
|
const resolvedNicknameData = useNicknameResolve(recipient, { enabled: isNicknameInput, chainId: activeChainId });
|
|
28383
28447
|
const effectiveAddress = isNicknameInput ? resolvedNicknameData?.resolvedAddress : recipient;
|
|
28384
|
-
const complianceAmount = (0,
|
|
28448
|
+
const complianceAmount = (0, import_react95.useMemo)(() => {
|
|
28385
28449
|
if (!isSecurity || !amount || !selectedAsset) return void 0;
|
|
28386
28450
|
try {
|
|
28387
28451
|
return (0, import_viem21.parseUnits)(amount, selectedAsset.decimals || 18);
|
|
@@ -28396,7 +28460,7 @@ function SendMenu() {
|
|
|
28396
28460
|
enabled: isSecurity && !!effectiveAddress && !!complianceAmount,
|
|
28397
28461
|
chainId: activeChainId
|
|
28398
28462
|
});
|
|
28399
|
-
(0,
|
|
28463
|
+
(0, import_react95.useEffect)(() => {
|
|
28400
28464
|
const updateMenuTitle = useFlowSelectorStore.getState().setMenuTitle;
|
|
28401
28465
|
switch (true) {
|
|
28402
28466
|
case txStep === "select-asset":
|
|
@@ -28466,7 +28530,7 @@ function SendMenu() {
|
|
|
28466
28530
|
] })
|
|
28467
28531
|
] });
|
|
28468
28532
|
}
|
|
28469
|
-
var import_lucide_react77,
|
|
28533
|
+
var import_lucide_react77, import_react95, import_viem21, import_jsx_runtime125;
|
|
28470
28534
|
var init_SendMenu = __esm({
|
|
28471
28535
|
"src/internal/components/SendMenu/send/SendMenu.tsx"() {
|
|
28472
28536
|
init_SessionContext();
|
|
@@ -28475,7 +28539,7 @@ var init_SendMenu = __esm({
|
|
|
28475
28539
|
init_useSendTransaction();
|
|
28476
28540
|
init_useT();
|
|
28477
28541
|
import_lucide_react77 = require("lucide-react");
|
|
28478
|
-
|
|
28542
|
+
import_react95 = require("react");
|
|
28479
28543
|
import_viem21 = require("viem");
|
|
28480
28544
|
init_useBlockscoutAssets2();
|
|
28481
28545
|
init_useLayoutDataStore();
|
|
@@ -28501,7 +28565,7 @@ var init_send = __esm({
|
|
|
28501
28565
|
// src/internal/components/SendMenu/useSendMenuParams.ts
|
|
28502
28566
|
function useSendMenuParams() {
|
|
28503
28567
|
const { config } = useProviderConfig();
|
|
28504
|
-
(0,
|
|
28568
|
+
(0, import_react96.useEffect)(() => {
|
|
28505
28569
|
const { pageParams, setPageParams } = useLayoutDataStore.getState();
|
|
28506
28570
|
if (!pageParams || !(0, import_lodash_es16.keys)(pageParams).length) return;
|
|
28507
28571
|
const { sendFlow, send, bridge } = pageParams || {};
|
|
@@ -28554,12 +28618,12 @@ function useSendMenuParams() {
|
|
|
28554
28618
|
setPageParams(null);
|
|
28555
28619
|
}, []);
|
|
28556
28620
|
}
|
|
28557
|
-
var import_lodash_es16,
|
|
28621
|
+
var import_lodash_es16, import_react96;
|
|
28558
28622
|
var init_useSendMenuParams = __esm({
|
|
28559
28623
|
"src/internal/components/SendMenu/useSendMenuParams.ts"() {
|
|
28560
28624
|
init_ProviderContext();
|
|
28561
28625
|
import_lodash_es16 = require("lodash-es");
|
|
28562
|
-
|
|
28626
|
+
import_react96 = require("react");
|
|
28563
28627
|
init_useLayoutDataStore();
|
|
28564
28628
|
init_useBridgeStore();
|
|
28565
28629
|
init_useSendStore();
|
|
@@ -28627,17 +28691,17 @@ function SendFlowSelector() {
|
|
|
28627
28691
|
const sendStep = useSendStore((st) => st.txStep);
|
|
28628
28692
|
const bridgeStep = useBridgeStore((st) => st.bridgeStep);
|
|
28629
28693
|
useOnboardingTourAvailable(sendStep === "input" && bridgeStep === "select");
|
|
28630
|
-
(0,
|
|
28694
|
+
(0, import_react97.useEffect)(
|
|
28631
28695
|
() => () => {
|
|
28632
28696
|
useFlowSelectorStore.getState().setError(null);
|
|
28633
28697
|
},
|
|
28634
28698
|
[]
|
|
28635
28699
|
);
|
|
28636
|
-
(0,
|
|
28700
|
+
(0, import_react97.useEffect)(() => {
|
|
28637
28701
|
if (!!config?.current?.features?.showAssetBridge) return;
|
|
28638
28702
|
if (selectorFlow === "bridge") useFlowSelectorStore.getState().setFlow("send");
|
|
28639
28703
|
}, [selectorFlow]);
|
|
28640
|
-
const availableFlows = (0,
|
|
28704
|
+
const availableFlows = (0, import_react97.useMemo)(() => {
|
|
28641
28705
|
const selectorFlows = { send: /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(SendMenu, {}) };
|
|
28642
28706
|
if (!!config?.current?.features?.showAssetBridge) selectorFlows.bridge = /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(HyperlaneBridge, {});
|
|
28643
28707
|
return selectorFlows;
|
|
@@ -28702,13 +28766,13 @@ function SendFlowSelector() {
|
|
|
28702
28766
|
] })
|
|
28703
28767
|
] });
|
|
28704
28768
|
}
|
|
28705
|
-
var import_lucide_react78,
|
|
28769
|
+
var import_lucide_react78, import_react97, import_jsx_runtime126;
|
|
28706
28770
|
var init_SendFlowSelector = __esm({
|
|
28707
28771
|
"src/internal/components/SendMenu/SendFlowSelector.tsx"() {
|
|
28708
28772
|
init_ProviderContext();
|
|
28709
28773
|
init_i18n();
|
|
28710
28774
|
import_lucide_react78 = require("lucide-react");
|
|
28711
|
-
|
|
28775
|
+
import_react97 = require("react");
|
|
28712
28776
|
init_useLayoutDataStore();
|
|
28713
28777
|
init_utils();
|
|
28714
28778
|
init_Expandable2();
|
|
@@ -28771,12 +28835,12 @@ function getServerSnapshot() {
|
|
|
28771
28835
|
return false;
|
|
28772
28836
|
}
|
|
28773
28837
|
function useProMode() {
|
|
28774
|
-
return (0,
|
|
28838
|
+
return (0, import_react98.useSyncExternalStore)(subscribe, getSnapshot, getServerSnapshot);
|
|
28775
28839
|
}
|
|
28776
|
-
var
|
|
28840
|
+
var import_react98, STORAGE_KEY, EVENT_NAME;
|
|
28777
28841
|
var init_pro_mode = __esm({
|
|
28778
28842
|
"src/internal/lib/pro-mode.ts"() {
|
|
28779
|
-
|
|
28843
|
+
import_react98 = require("react");
|
|
28780
28844
|
STORAGE_KEY = "embarkai_pro_mode";
|
|
28781
28845
|
EVENT_NAME = "embarkai-pro-mode-changed";
|
|
28782
28846
|
}
|
|
@@ -29582,7 +29646,7 @@ function TransactionsMenu() {
|
|
|
29582
29646
|
const { t } = useT();
|
|
29583
29647
|
useOnboardingTourAvailable(true);
|
|
29584
29648
|
const setPage = useLayoutDataStore((st) => st.setPage);
|
|
29585
|
-
const [expandedGroups, setExpandedGroups] = (0,
|
|
29649
|
+
const [expandedGroups, setExpandedGroups] = (0, import_react99.useState)({});
|
|
29586
29650
|
const historySupported = isTransactionHistorySupported(chainConfig?.id);
|
|
29587
29651
|
const {
|
|
29588
29652
|
data: txHistoryGroups = [],
|
|
@@ -29595,7 +29659,7 @@ function TransactionsMenu() {
|
|
|
29595
29659
|
queryKey: [TRANSACTIONS_HISTORY_QUERY_KEY, chainConfig.id, address],
|
|
29596
29660
|
queryFn: () => getTransactionsListQuery({ address, chainConfig })
|
|
29597
29661
|
});
|
|
29598
|
-
const refreshTxHistory = (0,
|
|
29662
|
+
const refreshTxHistory = (0, import_react99.useCallback)(
|
|
29599
29663
|
() => qc.invalidateQueries({ queryKey: [TRANSACTIONS_HISTORY_QUERY_KEY, chainConfig.id, address] }),
|
|
29600
29664
|
[qc, chainConfig.id, address]
|
|
29601
29665
|
);
|
|
@@ -29634,14 +29698,14 @@ function TransactionsMenu() {
|
|
|
29634
29698
|
)) })
|
|
29635
29699
|
] });
|
|
29636
29700
|
}
|
|
29637
|
-
var import_react_query57, import_lucide_react80,
|
|
29701
|
+
var import_react_query57, import_lucide_react80, import_react99, import_jsx_runtime128;
|
|
29638
29702
|
var init_TransactionsMenu = __esm({
|
|
29639
29703
|
"src/internal/components/TransactionsMenu/TransactionsMenu.tsx"() {
|
|
29640
29704
|
init_SessionContext();
|
|
29641
29705
|
init_i18n();
|
|
29642
29706
|
import_react_query57 = require("@tanstack/react-query");
|
|
29643
29707
|
import_lucide_react80 = require("lucide-react");
|
|
29644
|
-
|
|
29708
|
+
import_react99 = require("react");
|
|
29645
29709
|
init_useLayoutDataStore();
|
|
29646
29710
|
init_Expandable2();
|
|
29647
29711
|
init_Onboarding();
|
|
@@ -29981,7 +30045,7 @@ var init_PageMap = __esm({
|
|
|
29981
30045
|
// src/internal/hooks/usePageMapper.tsx
|
|
29982
30046
|
function usePageMapper() {
|
|
29983
30047
|
const page = useLayoutDataStore((st) => st.page);
|
|
29984
|
-
const closeDialog = (0,
|
|
30048
|
+
const closeDialog = (0, import_react100.useCallback)(() => {
|
|
29985
30049
|
useLayoutStore.setState({ isDialogAnimating: true });
|
|
29986
30050
|
setTimeout(() => {
|
|
29987
30051
|
useLayoutStore.setState({
|
|
@@ -29993,14 +30057,14 @@ function usePageMapper() {
|
|
|
29993
30057
|
});
|
|
29994
30058
|
}, CLEAR_DIALOG_TIMEOUT);
|
|
29995
30059
|
}, []);
|
|
29996
|
-
const openDialog = (0,
|
|
30060
|
+
const openDialog = (0, import_react100.useCallback)((pageItem) => {
|
|
29997
30061
|
useLayoutStore.setState({
|
|
29998
30062
|
dialogContent: /* @__PURE__ */ (0, import_jsx_runtime130.jsx)(pageItem.component, {}),
|
|
29999
30063
|
isDialogOpen: true
|
|
30000
30064
|
// isDialogAnimating: true
|
|
30001
30065
|
});
|
|
30002
30066
|
}, []);
|
|
30003
|
-
(0,
|
|
30067
|
+
(0, import_react100.useEffect)(() => {
|
|
30004
30068
|
if (page === null) return closeDialog();
|
|
30005
30069
|
const pageItem = PAGE_MAP[page];
|
|
30006
30070
|
if (!pageItem) {
|
|
@@ -30011,10 +30075,10 @@ function usePageMapper() {
|
|
|
30011
30075
|
openDialog(pageItem);
|
|
30012
30076
|
}, [page, closeDialog, openDialog]);
|
|
30013
30077
|
}
|
|
30014
|
-
var
|
|
30078
|
+
var import_react100, import_jsx_runtime130, CLEAR_DIALOG_TIMEOUT;
|
|
30015
30079
|
var init_usePageMapper = __esm({
|
|
30016
30080
|
"src/internal/hooks/usePageMapper.tsx"() {
|
|
30017
|
-
|
|
30081
|
+
import_react100 = require("react");
|
|
30018
30082
|
init_PageMap();
|
|
30019
30083
|
init_constants();
|
|
30020
30084
|
init_useLayoutDataStore();
|
|
@@ -30030,24 +30094,24 @@ function useSettingsNotifications() {
|
|
|
30030
30094
|
const providers = import_auth25.jwtTokenManager.getProviders();
|
|
30031
30095
|
const hasEmail = providers.includes("email");
|
|
30032
30096
|
const { data: userProfile = null } = useUserProfile();
|
|
30033
|
-
(0,
|
|
30097
|
+
(0, import_react101.useEffect)(() => {
|
|
30034
30098
|
const isKYCVerified = userProfile?.kycDetails?.kycStatus === "verified";
|
|
30035
30099
|
setSettingsNotifications({
|
|
30036
30100
|
...COMPLETE_KYC_PROGRESS,
|
|
30037
30101
|
status: isKYCVerified ? "resolved" : "active"
|
|
30038
30102
|
});
|
|
30039
30103
|
}, [userProfile, setSettingsNotifications]);
|
|
30040
|
-
(0,
|
|
30104
|
+
(0, import_react101.useEffect)(() => {
|
|
30041
30105
|
setSettingsNotifications({
|
|
30042
30106
|
...EMAIL_NOT_CONNECTED_NOTIFICATION,
|
|
30043
30107
|
status: hasEmail ? "resolved" : "active"
|
|
30044
30108
|
});
|
|
30045
30109
|
}, [hasEmail, setSettingsNotifications]);
|
|
30046
30110
|
}
|
|
30047
|
-
var
|
|
30111
|
+
var import_react101, EMAIL_NOT_CONNECTED_NOTIFICATION, COMPLETE_KYC_PROGRESS;
|
|
30048
30112
|
var init_useSettingsNotifications = __esm({
|
|
30049
30113
|
"src/internal/hooks/useSettingsNotifications.ts"() {
|
|
30050
|
-
|
|
30114
|
+
import_react101 = require("react");
|
|
30051
30115
|
init_auth();
|
|
30052
30116
|
init_useLayoutDataStore();
|
|
30053
30117
|
init_useUserProfile();
|
|
@@ -30070,7 +30134,7 @@ var init_package = __esm({
|
|
|
30070
30134
|
"package.json"() {
|
|
30071
30135
|
package_default = {
|
|
30072
30136
|
name: "@embarkai/ui-kit",
|
|
30073
|
-
version: "0.4.
|
|
30137
|
+
version: "0.4.115",
|
|
30074
30138
|
description: "React UI components and hooks for EmbarkAI authentication and Account Abstraction",
|
|
30075
30139
|
type: "module",
|
|
30076
30140
|
main: "./dist/index.cjs",
|
|
@@ -30181,7 +30245,7 @@ function Footer() {
|
|
|
30181
30245
|
const address = useSession((st) => st.address);
|
|
30182
30246
|
const chainConfig = useSession((st) => st.chainConfig);
|
|
30183
30247
|
const isDialogForced = useLayoutStore((st) => st.isDialogForced);
|
|
30184
|
-
const { mutate: wagmiDisconnect } = (
|
|
30248
|
+
const { mutate: wagmiDisconnect } = useSafeDisconnect({
|
|
30185
30249
|
mutation: {
|
|
30186
30250
|
onSuccess: () => {
|
|
30187
30251
|
useExternalWalletStore.getState().clearExternalWallet();
|
|
@@ -30287,7 +30351,7 @@ function Footer() {
|
|
|
30287
30351
|
}
|
|
30288
30352
|
);
|
|
30289
30353
|
}
|
|
30290
|
-
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;
|
|
30291
30355
|
var init_Footer = __esm({
|
|
30292
30356
|
"src/internal/components/Footer/Footer.tsx"() {
|
|
30293
30357
|
init_package();
|
|
@@ -30295,9 +30359,9 @@ var init_Footer = __esm({
|
|
|
30295
30359
|
init_ProviderContext();
|
|
30296
30360
|
init_SessionContext();
|
|
30297
30361
|
init_i18n();
|
|
30362
|
+
init_useSafeDisconnect();
|
|
30298
30363
|
import_react_query59 = require("@tanstack/react-query");
|
|
30299
30364
|
import_lucide_react83 = require("lucide-react");
|
|
30300
|
-
import_wagmi9 = require("wagmi");
|
|
30301
30365
|
init_auth();
|
|
30302
30366
|
init_base3();
|
|
30303
30367
|
init_useLayoutDataStore();
|
|
@@ -30405,11 +30469,11 @@ function Header() {
|
|
|
30405
30469
|
const embarkPage = useLayoutDataStore((st) => st.page);
|
|
30406
30470
|
const isOnboardingTourAvailable = useOnboardingStore((st) => st.isTourAvailable);
|
|
30407
30471
|
const proMode = useProMode();
|
|
30408
|
-
const [proToast, setProToast] = (0,
|
|
30409
|
-
const [copied, setCopied] = (0,
|
|
30410
|
-
const clickCountRef = (0,
|
|
30411
|
-
const clickTimerRef = (0,
|
|
30412
|
-
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)(() => {
|
|
30413
30477
|
clickCountRef.current += 1;
|
|
30414
30478
|
if (clickTimerRef.current) {
|
|
30415
30479
|
clearTimeout(clickTimerRef.current);
|
|
@@ -30515,7 +30579,7 @@ function Header() {
|
|
|
30515
30579
|
}
|
|
30516
30580
|
);
|
|
30517
30581
|
}
|
|
30518
|
-
var import_lucide_react84,
|
|
30582
|
+
var import_lucide_react84, import_react102, import_jsx_runtime132;
|
|
30519
30583
|
var init_Header = __esm({
|
|
30520
30584
|
"src/internal/components/Header/Header.tsx"() {
|
|
30521
30585
|
init_lumia2();
|
|
@@ -30523,7 +30587,7 @@ var init_Header = __esm({
|
|
|
30523
30587
|
init_ProviderContext();
|
|
30524
30588
|
init_SessionContext();
|
|
30525
30589
|
import_lucide_react84 = require("lucide-react");
|
|
30526
|
-
|
|
30590
|
+
import_react102 = require("react");
|
|
30527
30591
|
init_icons();
|
|
30528
30592
|
init_auth();
|
|
30529
30593
|
init_useLayoutDataStore();
|
|
@@ -30558,7 +30622,7 @@ function useDecideContentStyles() {
|
|
|
30558
30622
|
style: (0, import_lodash_es17.merge)({}, mobileStyles)
|
|
30559
30623
|
};
|
|
30560
30624
|
}
|
|
30561
|
-
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;
|
|
30562
30626
|
var init_dialog = __esm({
|
|
30563
30627
|
"src/internal/components/ui/dialog.tsx"() {
|
|
30564
30628
|
init_utils();
|
|
@@ -30567,14 +30631,14 @@ var init_dialog = __esm({
|
|
|
30567
30631
|
DialogPrimitive = __toESM(require("@radix-ui/react-dialog"), 1);
|
|
30568
30632
|
import_lodash_es17 = require("lodash-es");
|
|
30569
30633
|
import_lucide_react85 = require("lucide-react");
|
|
30570
|
-
|
|
30634
|
+
import_react103 = require("react");
|
|
30571
30635
|
init_useLayoutDataStore();
|
|
30572
30636
|
init_useLayoutStore();
|
|
30573
30637
|
init_button();
|
|
30574
30638
|
import_jsx_runtime133 = require("react/jsx-runtime");
|
|
30575
30639
|
Dialog = DialogPrimitive.Root;
|
|
30576
30640
|
DialogPortal = DialogPrimitive.Portal;
|
|
30577
|
-
DialogOverlay = (0,
|
|
30641
|
+
DialogOverlay = (0, import_react103.forwardRef)(
|
|
30578
30642
|
({ className, closing, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime133.jsx)(
|
|
30579
30643
|
DialogPrimitive.Overlay,
|
|
30580
30644
|
{
|
|
@@ -30596,7 +30660,7 @@ var init_dialog = __esm({
|
|
|
30596
30660
|
border: "1px solid var(--ui-kit-bd)",
|
|
30597
30661
|
boxShadow: "var(--ui-kit-shadow, 0px 4px 10px var(--ui-kit-shadow-c, rgba(0, 0, 0, 0.1)))"
|
|
30598
30662
|
};
|
|
30599
|
-
DialogContent = (0,
|
|
30663
|
+
DialogContent = (0, import_react103.forwardRef)(
|
|
30600
30664
|
({ className, children, colorMode, ...props }, ref) => {
|
|
30601
30665
|
const { t, i18n } = useT();
|
|
30602
30666
|
const isSessionLoading = useSession((st) => st.isLoading);
|
|
@@ -30707,7 +30771,7 @@ var init_dialog = __esm({
|
|
|
30707
30771
|
DialogHeader.displayName = "DialogHeader";
|
|
30708
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 });
|
|
30709
30773
|
DialogFooter.displayName = "DialogFooter";
|
|
30710
|
-
DialogTitle = (0,
|
|
30774
|
+
DialogTitle = (0, import_react103.forwardRef)(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime133.jsx)(
|
|
30711
30775
|
DialogPrimitive.Title,
|
|
30712
30776
|
{
|
|
30713
30777
|
ref,
|
|
@@ -30716,7 +30780,7 @@ var init_dialog = __esm({
|
|
|
30716
30780
|
}
|
|
30717
30781
|
));
|
|
30718
30782
|
DialogTitle.displayName = DialogPrimitive.Title.displayName;
|
|
30719
|
-
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 }));
|
|
30720
30784
|
DialogDescription.displayName = DialogPrimitive.Description.displayName;
|
|
30721
30785
|
}
|
|
30722
30786
|
});
|
|
@@ -30739,7 +30803,7 @@ function Dialog2() {
|
|
|
30739
30803
|
const { colorMode, maxScrollHeight, isDialogOpen, dialogContent, isDialogForced } = useLayoutStore();
|
|
30740
30804
|
const page = useLayoutDataStore((st) => st.page);
|
|
30741
30805
|
const transitionPageHeight = useLayoutDataStore((st) => st.transitionPageHeight);
|
|
30742
|
-
(0,
|
|
30806
|
+
(0, import_react105.useEffect)(() => useLayoutStore.setState({ isSettings: !!session }), [session]);
|
|
30743
30807
|
usePageMapper();
|
|
30744
30808
|
useAutoConnect();
|
|
30745
30809
|
useBackupStatusChanges();
|
|
@@ -30770,8 +30834,8 @@ function Dialog2() {
|
|
|
30770
30834
|
/* @__PURE__ */ (0, import_jsx_runtime135.jsx)(VisuallyHidden, { children: /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(DialogTitle, { children: "embarkAI" }) }),
|
|
30771
30835
|
/* @__PURE__ */ (0, import_jsx_runtime135.jsx)(DialogDescription, { className: "sr-only", children: "embarkAI wallet" }),
|
|
30772
30836
|
!isHeaderHidden && /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(Header, {}),
|
|
30773
|
-
/* @__PURE__ */ (0, import_jsx_runtime135.jsx)(
|
|
30774
|
-
|
|
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,
|
|
30775
30839
|
{
|
|
30776
30840
|
style: { overflow: "hidden" },
|
|
30777
30841
|
initial: { opacity: 0, height: transitionPageHeight },
|
|
@@ -30800,13 +30864,13 @@ function Dialog2() {
|
|
|
30800
30864
|
}
|
|
30801
30865
|
);
|
|
30802
30866
|
}
|
|
30803
|
-
var
|
|
30867
|
+
var import_react104, import_react105, import_jsx_runtime135;
|
|
30804
30868
|
var init_Dialog = __esm({
|
|
30805
30869
|
"src/internal/components/Dialog/Dialog.tsx"() {
|
|
30806
30870
|
init_ProviderContext();
|
|
30807
30871
|
init_SessionContext();
|
|
30808
|
-
|
|
30809
|
-
|
|
30872
|
+
import_react104 = require("motion/react");
|
|
30873
|
+
import_react105 = require("react");
|
|
30810
30874
|
init_constants();
|
|
30811
30875
|
init_useAllowExternalModalsScroll();
|
|
30812
30876
|
init_useAutoConnect();
|
|
@@ -30840,13 +30904,13 @@ function DirectWalletHandler() {
|
|
|
30840
30904
|
const externalChainId = useExternalWalletStore((st) => st.externalChainId);
|
|
30841
30905
|
const externalConnectorName = useExternalWalletStore((st) => st.connectorName);
|
|
30842
30906
|
const isExternalConnected = useExternalWalletStore((st) => st.isExternalConnected);
|
|
30843
|
-
const { address, isConnected, chainId, connector } = (0,
|
|
30844
|
-
(0,
|
|
30907
|
+
const { address, isConnected, chainId, connector } = (0, import_wagmi8.useConnection)();
|
|
30908
|
+
(0, import_react106.useEffect)(() => {
|
|
30845
30909
|
const { setConfigMode, setActiveMode } = useExternalWalletStore.getState();
|
|
30846
30910
|
setConfigMode(walletMode);
|
|
30847
30911
|
if (walletMode !== "both") setActiveMode(walletMode);
|
|
30848
30912
|
}, [walletMode]);
|
|
30849
|
-
(0,
|
|
30913
|
+
(0, import_react106.useEffect)(() => {
|
|
30850
30914
|
if ((!!externalAddress || isExternalConnected) && !isConnected) {
|
|
30851
30915
|
useExternalWalletStore.getState().clearExternalWallet();
|
|
30852
30916
|
return;
|
|
@@ -30868,25 +30932,25 @@ function DirectWalletHandler() {
|
|
|
30868
30932
|
]);
|
|
30869
30933
|
return null;
|
|
30870
30934
|
}
|
|
30871
|
-
var
|
|
30935
|
+
var import_react106, import_wagmi8;
|
|
30872
30936
|
var init_DirectWalletHandler = __esm({
|
|
30873
30937
|
"src/internal/components/DirectWalletHandler.tsx"() {
|
|
30874
|
-
|
|
30875
|
-
|
|
30938
|
+
import_react106 = require("react");
|
|
30939
|
+
import_wagmi8 = require("wagmi");
|
|
30876
30940
|
init_ProviderContext();
|
|
30877
30941
|
init_useExternalWalletStore();
|
|
30878
30942
|
}
|
|
30879
30943
|
});
|
|
30880
30944
|
|
|
30881
30945
|
// src/internal/components/TssManager.tsx
|
|
30882
|
-
var
|
|
30946
|
+
var import_react107, TssManagerWithRef;
|
|
30883
30947
|
var init_TssManager = __esm({
|
|
30884
30948
|
"src/internal/components/TssManager.tsx"() {
|
|
30885
30949
|
init_SessionContext();
|
|
30886
|
-
|
|
30950
|
+
import_react107 = __toESM(require("react"), 1);
|
|
30887
30951
|
init_auth();
|
|
30888
30952
|
init_clients();
|
|
30889
|
-
TssManagerWithRef =
|
|
30953
|
+
TssManagerWithRef = import_react107.default.forwardRef((props, ref) => {
|
|
30890
30954
|
const { mpcPin } = props;
|
|
30891
30955
|
const usePaymaster = useSession((st) => st.usePaymaster);
|
|
30892
30956
|
const publicClient = useSession((st) => st.publicClient);
|
|
@@ -30894,14 +30958,14 @@ var init_TssManager = __esm({
|
|
|
30894
30958
|
const setStatus = useSession((st) => st.setStatus);
|
|
30895
30959
|
const setSession = useSession((st) => st.setSession);
|
|
30896
30960
|
const setAddress = useSession((st) => st.setAddress);
|
|
30897
|
-
const onSessionCreated = (0,
|
|
30961
|
+
const onSessionCreated = (0, import_react107.useCallback)(
|
|
30898
30962
|
(session, address) => {
|
|
30899
30963
|
setSession(session);
|
|
30900
30964
|
setAddress(address);
|
|
30901
30965
|
},
|
|
30902
30966
|
[setSession, setAddress]
|
|
30903
30967
|
);
|
|
30904
|
-
const createSessionWithKeyshare =
|
|
30968
|
+
const createSessionWithKeyshare = import_react107.default.useCallback(
|
|
30905
30969
|
async (userId, hasServerKeyshare, isNewUser) => {
|
|
30906
30970
|
setStatus("checking key management setup...");
|
|
30907
30971
|
await ensureKeyshare(userId, hasServerKeyshare, setStatus, isNewUser);
|
|
@@ -30926,7 +30990,7 @@ var init_TssManager = __esm({
|
|
|
30926
30990
|
},
|
|
30927
30991
|
[setStatus, usePaymaster, activeChainId, publicClient, mpcPin]
|
|
30928
30992
|
);
|
|
30929
|
-
|
|
30993
|
+
import_react107.default.useImperativeHandle(ref, () => ({ createSessionWithKeyshare }), [createSessionWithKeyshare]);
|
|
30930
30994
|
return null;
|
|
30931
30995
|
});
|
|
30932
30996
|
}
|
|
@@ -30950,7 +31014,7 @@ function waitForStoreHydration() {
|
|
|
30950
31014
|
}
|
|
30951
31015
|
function SessionProvider({ children }) {
|
|
30952
31016
|
const config = useProviderConfig().config;
|
|
30953
|
-
return /* @__PURE__ */ (0, import_jsx_runtime136.jsxs)(
|
|
31017
|
+
return /* @__PURE__ */ (0, import_jsx_runtime136.jsxs)(import_react108.Fragment, {
|
|
30954
31018
|
/** dApp's router might have its own error boundaries setup via imported @embarkai/ui-kitErrorBoundary */
|
|
30955
31019
|
children: [
|
|
30956
31020
|
children,
|
|
@@ -30970,11 +31034,11 @@ function SessionProvider({ children }) {
|
|
|
30970
31034
|
]
|
|
30971
31035
|
});
|
|
30972
31036
|
}
|
|
30973
|
-
var import_read22,
|
|
31037
|
+
var import_read22, import_react108, import_zustand19, import_middleware5, import_jsx_runtime136, useSession, requireActiveChainId;
|
|
30974
31038
|
var init_SessionContext = __esm({
|
|
30975
31039
|
"src/context/SessionContext.tsx"() {
|
|
30976
31040
|
import_read22 = require("@embarkai/core/read");
|
|
30977
|
-
|
|
31041
|
+
import_react108 = require("react");
|
|
30978
31042
|
import_zustand19 = require("zustand");
|
|
30979
31043
|
import_middleware5 = require("zustand/middleware");
|
|
30980
31044
|
init_ErrorBoundary2();
|
|
@@ -32324,7 +32388,7 @@ var init_iframe_manager = __esm({
|
|
|
32324
32388
|
*/
|
|
32325
32389
|
handleMessage(event) {
|
|
32326
32390
|
const message = event.data;
|
|
32327
|
-
if (!message || typeof message !== "object" || !message.type) {
|
|
32391
|
+
if (!message || typeof message !== "object" || typeof message.type !== "string" || !message.type) {
|
|
32328
32392
|
return;
|
|
32329
32393
|
}
|
|
32330
32394
|
message.type = this.normalizeMessageType(message.type);
|
|
@@ -33429,11 +33493,11 @@ function clearLegacyWagmiStorage() {
|
|
|
33429
33493
|
}
|
|
33430
33494
|
function Provider(props) {
|
|
33431
33495
|
const { children, projectId, initialConfig = {}, callbacks } = props;
|
|
33432
|
-
const callbacksRef = (0,
|
|
33433
|
-
(0,
|
|
33434
|
-
const config = (0,
|
|
33435
|
-
const wagmiConfig3 = (0,
|
|
33436
|
-
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) => {
|
|
33437
33501
|
const prev = config.current;
|
|
33438
33502
|
const next = { ...prev };
|
|
33439
33503
|
if (updates.projectId !== void 0) next.projectId = updates.projectId;
|
|
@@ -33467,12 +33531,12 @@ function Provider(props) {
|
|
|
33467
33531
|
if (updates.translations) next.translations = { ...next.translations, ...updates.translations };
|
|
33468
33532
|
config.current = next;
|
|
33469
33533
|
}, []);
|
|
33470
|
-
const updateCallbacks = (0,
|
|
33534
|
+
const updateCallbacks = (0, import_react109.useCallback)((updates) => {
|
|
33471
33535
|
const prev = callbacksRef.current;
|
|
33472
33536
|
const next = updates ? { ...prev, ...updates } : void 0;
|
|
33473
33537
|
callbacksRef.current = next;
|
|
33474
33538
|
}, []);
|
|
33475
|
-
(0,
|
|
33539
|
+
(0, import_react109.useEffect)(() => {
|
|
33476
33540
|
if (typeof window === "undefined" || !projectId) return;
|
|
33477
33541
|
const mergedConfig = (0, import_lodash_es18.merge)(DEFAULT_PROVIDER_CONFIG, initialConfig);
|
|
33478
33542
|
updateConfig(mergedConfig);
|
|
@@ -33492,7 +33556,7 @@ function Provider(props) {
|
|
|
33492
33556
|
useSession.getState().setActiveChainId(mergedConfig.network.chainId);
|
|
33493
33557
|
}
|
|
33494
33558
|
}, [projectId, initialConfig]);
|
|
33495
|
-
(0,
|
|
33559
|
+
(0, import_react109.useEffect)(() => {
|
|
33496
33560
|
if (typeof window === "undefined" || !projectId) return;
|
|
33497
33561
|
try {
|
|
33498
33562
|
(0, import_error_tracking4.initSdkErrorTracking)();
|
|
@@ -33521,7 +33585,7 @@ function Provider(props) {
|
|
|
33521
33585
|
console.error("[PROVIDER] Error setting up iframe manager:", error);
|
|
33522
33586
|
}
|
|
33523
33587
|
}, [projectId]);
|
|
33524
|
-
const contextValue = (0,
|
|
33588
|
+
const contextValue = (0, import_react109.useMemo)(
|
|
33525
33589
|
() => ({
|
|
33526
33590
|
config,
|
|
33527
33591
|
updateConfig,
|
|
@@ -33532,24 +33596,24 @@ function Provider(props) {
|
|
|
33532
33596
|
}),
|
|
33533
33597
|
[config, updateConfig, callbacks, updateCallbacks]
|
|
33534
33598
|
);
|
|
33535
|
-
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 }) }) });
|
|
33536
33600
|
}
|
|
33537
|
-
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;
|
|
33538
33602
|
var init_ProviderContext = __esm({
|
|
33539
33603
|
"src/context/ProviderContext.tsx"() {
|
|
33540
33604
|
import_core9 = require("@embarkai/core");
|
|
33541
33605
|
import_error_tracking4 = require("@embarkai/core/internal/error-tracking");
|
|
33542
33606
|
import_lodash_es18 = require("lodash-es");
|
|
33543
|
-
|
|
33544
|
-
|
|
33607
|
+
import_react109 = require("react");
|
|
33608
|
+
import_wagmi9 = require("wagmi");
|
|
33545
33609
|
init_initial();
|
|
33546
33610
|
init_iframe_manager();
|
|
33547
33611
|
init_SessionContext();
|
|
33548
33612
|
init_utils14();
|
|
33549
33613
|
import_jsx_runtime137 = require("react/jsx-runtime");
|
|
33550
|
-
UIContext = (0,
|
|
33614
|
+
UIContext = (0, import_react109.createContext)(void 0);
|
|
33551
33615
|
useProviderConfig = () => {
|
|
33552
|
-
const ctx = (0,
|
|
33616
|
+
const ctx = (0, import_react109.useContext)(UIContext);
|
|
33553
33617
|
if (!ctx) throw new Error("useProviderConfig must be used within a Provider");
|
|
33554
33618
|
return ctx;
|
|
33555
33619
|
};
|
|
@@ -33672,7 +33736,7 @@ init_ErrorBoundary2();
|
|
|
33672
33736
|
init_lumia2();
|
|
33673
33737
|
init_embarkAI2();
|
|
33674
33738
|
var import_lucide_react86 = require("lucide-react");
|
|
33675
|
-
var
|
|
33739
|
+
var import_react110 = require("react");
|
|
33676
33740
|
init_SessionContext();
|
|
33677
33741
|
init_auth();
|
|
33678
33742
|
init_BalanceView2();
|
|
@@ -33705,10 +33769,10 @@ function ConnectWalletButton(props) {
|
|
|
33705
33769
|
const colorMode = useLayoutStore((st) => st.colorMode);
|
|
33706
33770
|
const { session, address, hasServerVault, isLoading, isIframeReady, status, setUsePaymaster } = useSession();
|
|
33707
33771
|
const connectButtonLabel = getFormattedStatus(label || "Connect", status, isIframeReady);
|
|
33708
|
-
(0,
|
|
33772
|
+
(0, import_react110.useEffect)(() => setUsePaymaster(usePaymaster), [setUsePaymaster, usePaymaster]);
|
|
33709
33773
|
const { data: profile, isLoading: isProfileLoading } = useUserProfile();
|
|
33710
33774
|
const displayName = profile?.nicknameDisplay || profile?.displayName || import_auth25.jwtTokenManager.getDisplayName();
|
|
33711
|
-
const indicators = (0,
|
|
33775
|
+
const indicators = (0, import_react110.useMemo)(() => {
|
|
33712
33776
|
const userId = session?.mpcUserId;
|
|
33713
33777
|
if (!userId) return { server: false, local: false, backup: false };
|
|
33714
33778
|
const server = import_auth25.jwtTokenManager.getHasKeyshare() ?? false;
|
|
@@ -34347,14 +34411,14 @@ var Hash = ({
|
|
|
34347
34411
|
};
|
|
34348
34412
|
|
|
34349
34413
|
// src/internal/components/TransactionsMenu/TransactionsList.tsx
|
|
34350
|
-
var
|
|
34414
|
+
var import_react111 = require("react");
|
|
34351
34415
|
init_base3();
|
|
34352
34416
|
var import_jsx_runtime144 = require("react/jsx-runtime");
|
|
34353
34417
|
var TransactionsList = ({ address, itemsCount = 10 }) => {
|
|
34354
|
-
const [transactions, setTransactions] = (0,
|
|
34355
|
-
const [loading, setLoading] = (0,
|
|
34356
|
-
const [error, setError] = (0,
|
|
34357
|
-
(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)(() => {
|
|
34358
34422
|
const fetchTransactions2 = async () => {
|
|
34359
34423
|
try {
|
|
34360
34424
|
setLoading(true);
|
|
@@ -34645,13 +34709,13 @@ function useUserOpStatus(options = {}) {
|
|
|
34645
34709
|
init_useErc3643Compliance();
|
|
34646
34710
|
|
|
34647
34711
|
// src/hooks/useWalletMode.ts
|
|
34648
|
-
var
|
|
34712
|
+
var import_react112 = require("react");
|
|
34649
34713
|
init_useExternalWalletStore();
|
|
34650
34714
|
function useWalletMode() {
|
|
34651
34715
|
const configMode = useExternalWalletStore((st) => st.configMode);
|
|
34652
34716
|
const activeMode = useExternalWalletStore((st) => st.activeMode);
|
|
34653
34717
|
const setActiveMode = useExternalWalletStore((st) => st.setActiveMode);
|
|
34654
|
-
const switchMode = (0,
|
|
34718
|
+
const switchMode = (0, import_react112.useCallback)(
|
|
34655
34719
|
(mode) => {
|
|
34656
34720
|
if (configMode !== "both") return;
|
|
34657
34721
|
setActiveMode(mode);
|
|
@@ -34668,8 +34732,8 @@ function useWalletMode() {
|
|
|
34668
34732
|
|
|
34669
34733
|
// src/hooks/useDirectWallet.ts
|
|
34670
34734
|
init_useOpenPage();
|
|
34671
|
-
|
|
34672
|
-
var
|
|
34735
|
+
init_useSafeDisconnect();
|
|
34736
|
+
var import_react113 = require("react");
|
|
34673
34737
|
init_useExternalWalletStore();
|
|
34674
34738
|
function useDirectWallet() {
|
|
34675
34739
|
const address = useExternalWalletStore((st) => st.externalAddress);
|
|
@@ -34677,11 +34741,11 @@ function useDirectWallet() {
|
|
|
34677
34741
|
const isConnected = useExternalWalletStore((st) => st.isExternalConnected);
|
|
34678
34742
|
const connectorName = useExternalWalletStore((st) => st.connectorName);
|
|
34679
34743
|
const { open: openEmbarkAI } = useOpenPage();
|
|
34680
|
-
const { mutate: wagmiDisconnect } = (
|
|
34681
|
-
const connect = (0,
|
|
34744
|
+
const { mutate: wagmiDisconnect } = useSafeDisconnect();
|
|
34745
|
+
const connect = (0, import_react113.useCallback)((connectFlowType = "connect") => {
|
|
34682
34746
|
openEmbarkAI("connect-external-wallet" /* CONNECT_EXTERNAL_WALLET */, { connectFlowType });
|
|
34683
34747
|
}, []);
|
|
34684
|
-
const disconnect = (0,
|
|
34748
|
+
const disconnect = (0, import_react113.useCallback)(() => {
|
|
34685
34749
|
wagmiDisconnect();
|
|
34686
34750
|
useExternalWalletStore.getState().clearExternalWallet();
|
|
34687
34751
|
}, [wagmiDisconnect]);
|
|
@@ -34697,9 +34761,9 @@ function useDirectWallet() {
|
|
|
34697
34761
|
}
|
|
34698
34762
|
|
|
34699
34763
|
// src/hooks/useSendDirectTransaction.ts
|
|
34700
|
-
var
|
|
34764
|
+
var import_react114 = require("react");
|
|
34701
34765
|
var import_viem23 = require("viem");
|
|
34702
|
-
var
|
|
34766
|
+
var import_wagmi10 = require("wagmi");
|
|
34703
34767
|
|
|
34704
34768
|
// src/internal/lib/direct-transaction.ts
|
|
34705
34769
|
async function submitDirectTransaction(request, deps) {
|
|
@@ -34717,13 +34781,13 @@ async function submitDirectTransaction(request, deps) {
|
|
|
34717
34781
|
init_useExternalWalletStore();
|
|
34718
34782
|
function useSendDirectTransaction() {
|
|
34719
34783
|
const isConnected = useExternalWalletStore((st) => st.isExternalConnected);
|
|
34720
|
-
const { connector } = (0,
|
|
34721
|
-
const { sendTransactionAsync: sendWagmiTransactionAsync } = (0,
|
|
34722
|
-
const { switchChainAsync } = (0,
|
|
34723
|
-
const [isPending, setIsPending] = (0,
|
|
34724
|
-
const [error, setError] = (0,
|
|
34725
|
-
const [txHash, setTxHash] = (0,
|
|
34726
|
-
const sendTransactionAsync = (0,
|
|
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)(
|
|
34727
34791
|
async (params) => {
|
|
34728
34792
|
if (!isConnected || !connector) {
|
|
34729
34793
|
const message = "No external wallet connected";
|
|
@@ -34760,7 +34824,7 @@ function useSendDirectTransaction() {
|
|
|
34760
34824
|
},
|
|
34761
34825
|
[isConnected, connector, sendWagmiTransactionAsync, switchChainAsync]
|
|
34762
34826
|
);
|
|
34763
|
-
const sendTransaction = (0,
|
|
34827
|
+
const sendTransaction = (0, import_react114.useCallback)(
|
|
34764
34828
|
async (params) => {
|
|
34765
34829
|
try {
|
|
34766
34830
|
return await sendTransactionAsync(params);
|
|
@@ -34770,7 +34834,7 @@ function useSendDirectTransaction() {
|
|
|
34770
34834
|
},
|
|
34771
34835
|
[sendTransactionAsync]
|
|
34772
34836
|
);
|
|
34773
|
-
const reset = (0,
|
|
34837
|
+
const reset = (0, import_react114.useCallback)(() => {
|
|
34774
34838
|
setError(null);
|
|
34775
34839
|
setTxHash(null);
|
|
34776
34840
|
setIsPending(false);
|
|
@@ -34779,7 +34843,7 @@ function useSendDirectTransaction() {
|
|
|
34779
34843
|
}
|
|
34780
34844
|
|
|
34781
34845
|
// src/hooks/useTransferToLinkedWallet.ts
|
|
34782
|
-
var
|
|
34846
|
+
var import_react115 = require("react");
|
|
34783
34847
|
var import_viem24 = require("viem");
|
|
34784
34848
|
init_SessionContext();
|
|
34785
34849
|
init_account2();
|
|
@@ -34798,14 +34862,14 @@ var ERC20_TRANSFER_ABI2 = [
|
|
|
34798
34862
|
function useTransferToLinkedWallet() {
|
|
34799
34863
|
const session = useSession((st) => st.session);
|
|
34800
34864
|
const { profiles } = useLinkedProfiles();
|
|
34801
|
-
const [isPending, setIsPending] = (0,
|
|
34802
|
-
const [error, setError] = (0,
|
|
34803
|
-
const [userOpHash, setUserOpHash] = (0,
|
|
34804
|
-
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)(
|
|
34805
34869
|
() => (profiles || []).filter((p) => p.provider === "wallet" && p.externalId).map((p) => p.externalId),
|
|
34806
34870
|
[profiles]
|
|
34807
34871
|
);
|
|
34808
|
-
const transfer = (0,
|
|
34872
|
+
const transfer = (0, import_react115.useCallback)(
|
|
34809
34873
|
async (params) => {
|
|
34810
34874
|
if (!session) {
|
|
34811
34875
|
setError("No active session");
|
|
@@ -34856,7 +34920,7 @@ function useTransferToLinkedWallet() {
|
|
|
34856
34920
|
},
|
|
34857
34921
|
[session, linkedWallets]
|
|
34858
34922
|
);
|
|
34859
|
-
const reset = (0,
|
|
34923
|
+
const reset = (0, import_react115.useCallback)(() => {
|
|
34860
34924
|
setError(null);
|
|
34861
34925
|
setUserOpHash(null);
|
|
34862
34926
|
setIsPending(false);
|
|
@@ -34865,11 +34929,11 @@ function useTransferToLinkedWallet() {
|
|
|
34865
34929
|
}
|
|
34866
34930
|
|
|
34867
34931
|
// src/hooks/useNativeWalletSignature.ts
|
|
34868
|
-
var
|
|
34932
|
+
var import_wagmi11 = require("wagmi");
|
|
34869
34933
|
init_providers();
|
|
34870
34934
|
function useNativeWalletSignature() {
|
|
34871
|
-
const signMessage = (0,
|
|
34872
|
-
const signTypedMessage = (0,
|
|
34935
|
+
const signMessage = (0, import_wagmi11.useSignMessage)();
|
|
34936
|
+
const signTypedMessage = (0, import_wagmi11.useSignTypedData)();
|
|
34873
34937
|
return {
|
|
34874
34938
|
signMessage,
|
|
34875
34939
|
/** EIP-712 signature */
|
|
@@ -34879,16 +34943,16 @@ function useNativeWalletSignature() {
|
|
|
34879
34943
|
}
|
|
34880
34944
|
|
|
34881
34945
|
// src/hooks/useLogout.ts
|
|
34946
|
+
init_useSafeDisconnect();
|
|
34882
34947
|
var import_auth27 = require("@embarkai/core/auth");
|
|
34883
|
-
var
|
|
34884
|
-
var import_wagmi15 = require("wagmi");
|
|
34948
|
+
var import_react116 = require("react");
|
|
34885
34949
|
init_ProviderContext();
|
|
34886
34950
|
init_SessionContext();
|
|
34887
34951
|
init_useExternalWalletStore();
|
|
34888
34952
|
function useLogout() {
|
|
34889
34953
|
const { callbacksRef } = useProviderConfig();
|
|
34890
34954
|
const address = useSession((st) => st.address);
|
|
34891
|
-
const { mutate: wagmiDisconnect } = (
|
|
34955
|
+
const { mutate: wagmiDisconnect } = useSafeDisconnect({
|
|
34892
34956
|
mutation: {
|
|
34893
34957
|
onSuccess: () => {
|
|
34894
34958
|
useExternalWalletStore.getState().clearExternalWallet();
|
|
@@ -34899,7 +34963,7 @@ function useLogout() {
|
|
|
34899
34963
|
}
|
|
34900
34964
|
}
|
|
34901
34965
|
});
|
|
34902
|
-
const logout2 = (0,
|
|
34966
|
+
const logout2 = (0, import_react116.useCallback)(async () => {
|
|
34903
34967
|
const { setSession, setIsLoading, setAddress, setStatus, setError } = useSession.getState();
|
|
34904
34968
|
const prevAddress = address;
|
|
34905
34969
|
let userId = null;
|
|
@@ -34954,13 +35018,13 @@ init_useBlockscoutAssets2();
|
|
|
34954
35018
|
init_SessionContext();
|
|
34955
35019
|
var import_read24 = require("@embarkai/core/read");
|
|
34956
35020
|
var import_viem25 = require("viem");
|
|
34957
|
-
var
|
|
35021
|
+
var import_wagmi12 = require("wagmi");
|
|
34958
35022
|
function useTransactions() {
|
|
34959
35023
|
const chainId = requireActiveChainId();
|
|
34960
35024
|
const viemChain = (0, import_read24.getViemChain)(chainId);
|
|
34961
|
-
const publicClient = (0,
|
|
34962
|
-
const { data: walletClient } = (0,
|
|
34963
|
-
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)();
|
|
34964
35028
|
const sendTransaction = async (params) => {
|
|
34965
35029
|
if (!walletClient) {
|
|
34966
35030
|
throw new Error("Wallet not connected");
|
|
@@ -35018,9 +35082,9 @@ function useTransactions() {
|
|
|
35018
35082
|
|
|
35019
35083
|
// src/modules/assets.ts
|
|
35020
35084
|
init_SessionContext();
|
|
35021
|
-
var
|
|
35085
|
+
var import_react117 = __toESM(require("react"), 1);
|
|
35022
35086
|
var import_viem26 = require("viem");
|
|
35023
|
-
var
|
|
35087
|
+
var import_wagmi13 = require("wagmi");
|
|
35024
35088
|
var COMMON_TOKENS = [
|
|
35025
35089
|
// Add real token addresses here when available
|
|
35026
35090
|
// {
|
|
@@ -35037,7 +35101,7 @@ function useAssets(address) {
|
|
|
35037
35101
|
data: nativeBalance,
|
|
35038
35102
|
isLoading: nativeBalanceLoading,
|
|
35039
35103
|
refetch: refetchNativeBalance
|
|
35040
|
-
} = (0,
|
|
35104
|
+
} = (0, import_wagmi13.useBalance)({
|
|
35041
35105
|
address,
|
|
35042
35106
|
chainId,
|
|
35043
35107
|
query: {
|
|
@@ -35055,7 +35119,7 @@ function useAssets(address) {
|
|
|
35055
35119
|
data: tokenBalances,
|
|
35056
35120
|
isLoading: tokenBalancesLoading,
|
|
35057
35121
|
refetch: refetchTokenBalances
|
|
35058
|
-
} = (0,
|
|
35122
|
+
} = (0, import_wagmi13.useReadContracts)({
|
|
35059
35123
|
contracts: tokenContracts,
|
|
35060
35124
|
query: {
|
|
35061
35125
|
enabled: !!address && COMMON_TOKENS.length > 0
|
|
@@ -35131,7 +35195,7 @@ function useAssets(address) {
|
|
|
35131
35195
|
}
|
|
35132
35196
|
function useTokenInfo(tokenAddress) {
|
|
35133
35197
|
const chainId = requireActiveChainId();
|
|
35134
|
-
const readContractsResult = (0,
|
|
35198
|
+
const readContractsResult = (0, import_wagmi13.useReadContracts)({
|
|
35135
35199
|
contracts: [
|
|
35136
35200
|
{ address: tokenAddress, abi: import_viem26.erc20Abi, functionName: "name", chainId },
|
|
35137
35201
|
{ address: tokenAddress, abi: import_viem26.erc20Abi, functionName: "symbol", chainId },
|
|
@@ -35162,7 +35226,7 @@ function useTokenBalance2(tokenAddress, userAddress) {
|
|
|
35162
35226
|
data: balance,
|
|
35163
35227
|
isLoading,
|
|
35164
35228
|
refetch
|
|
35165
|
-
} = (0,
|
|
35229
|
+
} = (0, import_wagmi13.useReadContract)({
|
|
35166
35230
|
address: tokenAddress,
|
|
35167
35231
|
abi: import_viem26.erc20Abi,
|
|
35168
35232
|
functionName: "balanceOf",
|
|
@@ -35173,7 +35237,7 @@ function useTokenBalance2(tokenAddress, userAddress) {
|
|
|
35173
35237
|
}
|
|
35174
35238
|
});
|
|
35175
35239
|
const { tokenInfo } = useTokenInfo(tokenAddress);
|
|
35176
|
-
const formattedBalance =
|
|
35240
|
+
const formattedBalance = import_react117.default.useMemo(() => {
|
|
35177
35241
|
if (!balance || !tokenInfo) return "0";
|
|
35178
35242
|
return (0, import_viem26.formatUnits)(balance, tokenInfo.decimals);
|
|
35179
35243
|
}, [balance, tokenInfo]);
|