@embarkai/ui-kit 0.4.44 → 0.4.45
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 +13 -7
- package/dist/index.js +47 -41
- package/package.json +1 -1
package/dist/iframe/index.html
CHANGED
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
<meta http-equiv="X-Content-Type-Options" content="nosniff" />
|
|
16
16
|
<meta http-equiv="Referrer-Policy" content="strict-origin-when-cross-origin" />
|
|
17
17
|
|
|
18
|
-
<title>EmbarkAI Secure Wallet - iframe version 0.4.
|
|
18
|
+
<title>EmbarkAI Secure Wallet - iframe version 0.4.45</title>
|
|
19
19
|
|
|
20
20
|
<!-- Styles will be injected by build process -->
|
|
21
21
|
<style>
|
package/dist/iframe/main.js
CHANGED
|
@@ -6391,7 +6391,7 @@ var SigningManager = class extends TokenRefreshApiClient {
|
|
|
6391
6391
|
};
|
|
6392
6392
|
|
|
6393
6393
|
// src/iframe/main.ts
|
|
6394
|
-
var IFRAME_VERSION = "0.4.
|
|
6394
|
+
var IFRAME_VERSION = "0.4.45";
|
|
6395
6395
|
var IframeWallet = class {
|
|
6396
6396
|
constructor() {
|
|
6397
6397
|
console.log("=".repeat(60));
|
package/dist/index.cjs
CHANGED
|
@@ -9929,7 +9929,7 @@ function BinanceTxHistoryItem(props) {
|
|
|
9929
9929
|
{
|
|
9930
9930
|
className: cn(
|
|
9931
9931
|
"relative",
|
|
9932
|
-
"w-full p-[var(--ui-kit-pd)]
|
|
9932
|
+
"w-full p-[var(--ui-kit-pd)]",
|
|
9933
9933
|
"rounded-[var(--ui-kit-el-bdrs)]",
|
|
9934
9934
|
"bg-[var(--ui-kit-secondary)]"
|
|
9935
9935
|
),
|
|
@@ -9944,7 +9944,7 @@ function BinanceTxHistoryItem(props) {
|
|
|
9944
9944
|
children: statusInfo?.type
|
|
9945
9945
|
}
|
|
9946
9946
|
),
|
|
9947
|
-
/* @__PURE__ */ (0, import_jsx_runtime35.jsxs)("div", { className: "w-full flex items-
|
|
9947
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsxs)("div", { className: "w-full flex items-start gap-[var(--ui-kit-gap)] mb-1", children: [
|
|
9948
9948
|
/* @__PURE__ */ (0, import_jsx_runtime35.jsx)(TokenIcon, { className: "w-8 h-8" }),
|
|
9949
9949
|
/* @__PURE__ */ (0, import_jsx_runtime35.jsxs)("div", { className: "w-full", children: [
|
|
9950
9950
|
/* @__PURE__ */ (0, import_jsx_runtime35.jsxs)("p", { className: "text-lg leading-5", children: [
|
|
@@ -9959,7 +9959,7 @@ function BinanceTxHistoryItem(props) {
|
|
|
9959
9959
|
] })
|
|
9960
9960
|
] })
|
|
9961
9961
|
] }),
|
|
9962
|
-
/* @__PURE__ */ (0, import_jsx_runtime35.jsxs)("div", { className: "flex items-center gap-[var(--ui-kit-gap)] justify-between", children: [
|
|
9962
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsxs)("div", { className: "flex items-center gap-[var(--ui-kit-gap)] justify-between mb-1", children: [
|
|
9963
9963
|
/* @__PURE__ */ (0, import_jsx_runtime35.jsxs)("span", { className: cn("text-[10px] leading-5 text-[var(--ui-kit-fg-muted)]"), children: [
|
|
9964
9964
|
"ID: ",
|
|
9965
9965
|
id
|
|
@@ -10003,7 +10003,10 @@ function BinanceTxHistory() {
|
|
|
10003
10003
|
txStatuses: SHOW_STATUSES
|
|
10004
10004
|
})
|
|
10005
10005
|
});
|
|
10006
|
-
const txList =
|
|
10006
|
+
const txList = (0, import_react22.useMemo)(
|
|
10007
|
+
() => historyData?.pages?.map((p) => p.data).flat(Infinity) || [],
|
|
10008
|
+
[historyData]
|
|
10009
|
+
);
|
|
10007
10010
|
const updateExpandable = (0, import_react22.useCallback)(
|
|
10008
10011
|
(0, import_lodash_es7.debounce)(() => {
|
|
10009
10012
|
useBuyMenuStore.getState().setRenderKey(`binance-history-loaded-${Date.now()}`);
|
|
@@ -11322,7 +11325,6 @@ function BuyMenu() {
|
|
|
11322
11325
|
}
|
|
11323
11326
|
) })
|
|
11324
11327
|
] }),
|
|
11325
|
-
/* @__PURE__ */ (0, import_jsx_runtime41.jsx)("div", { className: "w-full h-0" }, renderKey),
|
|
11326
11328
|
showProviderTrigger && /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(import_jsx_runtime41.Fragment, { children: [
|
|
11327
11329
|
/* @__PURE__ */ (0, import_jsx_runtime41.jsx)("span", { className: "block text-[10px] text-[var(--ui-kit-fg-muted)]", children: t("passport:buyMenu.selectProvider") }),
|
|
11328
11330
|
/* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(
|
|
@@ -11345,6 +11347,7 @@ function BuyMenu() {
|
|
|
11345
11347
|
)
|
|
11346
11348
|
] }),
|
|
11347
11349
|
isProviderSelector ? /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(ProviderSelector, { providers: AVAILABLE_RAMP_PROVIDERS.map((el) => ({ ...el, Icon: el.icon })) }) : /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(ProviderComponent, { walletAddress }),
|
|
11350
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsx)("div", { className: "w-full h-0" }, renderKey),
|
|
11348
11351
|
error && /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Highlight, { type: "error", children: error })
|
|
11349
11352
|
] })
|
|
11350
11353
|
}
|
|
@@ -20068,7 +20071,10 @@ function useHyperlaneHistory() {
|
|
|
20068
20071
|
queryFn: async ({ pageParam }) => await getHyperlaneBridgeHistory({ page: pageParam, pageSize: TX_HISTORY_PAGE_SIZE })
|
|
20069
20072
|
});
|
|
20070
20073
|
const { data: txHistoryData, isLoading: isBridgeTxHistoryLoading } = query;
|
|
20071
|
-
const txList =
|
|
20074
|
+
const txList = (0, import_react65.useMemo)(
|
|
20075
|
+
() => txHistoryData?.pages?.map((p) => p.data).flat(Infinity) || [],
|
|
20076
|
+
[txHistoryData]
|
|
20077
|
+
);
|
|
20072
20078
|
const updateExpandable = (0, import_react65.useCallback)(
|
|
20073
20079
|
(0, import_lodash_es9.debounce)(() => {
|
|
20074
20080
|
useFlowSelectorStore.getState().setRenderKey(`hyperlane-history-loaded-${Date.now()}`);
|
|
@@ -24485,7 +24491,7 @@ var init_package = __esm({
|
|
|
24485
24491
|
"package.json"() {
|
|
24486
24492
|
package_default = {
|
|
24487
24493
|
name: "@embarkai/ui-kit",
|
|
24488
|
-
version: "0.4.
|
|
24494
|
+
version: "0.4.45",
|
|
24489
24495
|
description: "React UI components and hooks for EmbarkAI authentication and Account Abstraction",
|
|
24490
24496
|
type: "module",
|
|
24491
24497
|
main: "./dist/index.cjs",
|
package/dist/index.js
CHANGED
|
@@ -9851,7 +9851,7 @@ import { useInfiniteQuery } from "@tanstack/react-query";
|
|
|
9851
9851
|
import dayjs from "dayjs";
|
|
9852
9852
|
import { debounce as debounce4 } from "lodash-es";
|
|
9853
9853
|
import { DownloadIcon, ExternalLinkIcon, LoaderIcon as LoaderIcon2 } from "lucide-react";
|
|
9854
|
-
import { useCallback as useCallback11, useEffect as useEffect11 } from "react";
|
|
9854
|
+
import { useCallback as useCallback11, useEffect as useEffect11, useMemo as useMemo4 } from "react";
|
|
9855
9855
|
import { jsx as jsx35, jsxs as jsxs30 } from "react/jsx-runtime";
|
|
9856
9856
|
function getStatusVariant(status) {
|
|
9857
9857
|
switch (status) {
|
|
@@ -9899,7 +9899,7 @@ function BinanceTxHistoryItem(props) {
|
|
|
9899
9899
|
{
|
|
9900
9900
|
className: cn(
|
|
9901
9901
|
"relative",
|
|
9902
|
-
"w-full p-[var(--ui-kit-pd)]
|
|
9902
|
+
"w-full p-[var(--ui-kit-pd)]",
|
|
9903
9903
|
"rounded-[var(--ui-kit-el-bdrs)]",
|
|
9904
9904
|
"bg-[var(--ui-kit-secondary)]"
|
|
9905
9905
|
),
|
|
@@ -9914,7 +9914,7 @@ function BinanceTxHistoryItem(props) {
|
|
|
9914
9914
|
children: statusInfo?.type
|
|
9915
9915
|
}
|
|
9916
9916
|
),
|
|
9917
|
-
/* @__PURE__ */ jsxs30("div", { className: "w-full flex items-
|
|
9917
|
+
/* @__PURE__ */ jsxs30("div", { className: "w-full flex items-start gap-[var(--ui-kit-gap)] mb-1", children: [
|
|
9918
9918
|
/* @__PURE__ */ jsx35(TokenIcon, { className: "w-8 h-8" }),
|
|
9919
9919
|
/* @__PURE__ */ jsxs30("div", { className: "w-full", children: [
|
|
9920
9920
|
/* @__PURE__ */ jsxs30("p", { className: "text-lg leading-5", children: [
|
|
@@ -9929,7 +9929,7 @@ function BinanceTxHistoryItem(props) {
|
|
|
9929
9929
|
] })
|
|
9930
9930
|
] })
|
|
9931
9931
|
] }),
|
|
9932
|
-
/* @__PURE__ */ jsxs30("div", { className: "flex items-center gap-[var(--ui-kit-gap)] justify-between", children: [
|
|
9932
|
+
/* @__PURE__ */ jsxs30("div", { className: "flex items-center gap-[var(--ui-kit-gap)] justify-between mb-1", children: [
|
|
9933
9933
|
/* @__PURE__ */ jsxs30("span", { className: cn("text-[10px] leading-5 text-[var(--ui-kit-fg-muted)]"), children: [
|
|
9934
9934
|
"ID: ",
|
|
9935
9935
|
id
|
|
@@ -9973,7 +9973,10 @@ function BinanceTxHistory() {
|
|
|
9973
9973
|
txStatuses: SHOW_STATUSES
|
|
9974
9974
|
})
|
|
9975
9975
|
});
|
|
9976
|
-
const txList =
|
|
9976
|
+
const txList = useMemo4(
|
|
9977
|
+
() => historyData?.pages?.map((p) => p.data).flat(Infinity) || [],
|
|
9978
|
+
[historyData]
|
|
9979
|
+
);
|
|
9977
9980
|
const updateExpandable = useCallback11(
|
|
9978
9981
|
debounce4(() => {
|
|
9979
9982
|
useBuyMenuStore.getState().setRenderKey(`binance-history-loaded-${Date.now()}`);
|
|
@@ -11287,7 +11290,6 @@ function BuyMenu() {
|
|
|
11287
11290
|
}
|
|
11288
11291
|
) })
|
|
11289
11292
|
] }),
|
|
11290
|
-
/* @__PURE__ */ jsx41("div", { className: "w-full h-0" }, renderKey),
|
|
11291
11293
|
showProviderTrigger && /* @__PURE__ */ jsxs36(Fragment14, { children: [
|
|
11292
11294
|
/* @__PURE__ */ jsx41("span", { className: "block text-[10px] text-[var(--ui-kit-fg-muted)]", children: t("passport:buyMenu.selectProvider") }),
|
|
11293
11295
|
/* @__PURE__ */ jsxs36(
|
|
@@ -11310,6 +11312,7 @@ function BuyMenu() {
|
|
|
11310
11312
|
)
|
|
11311
11313
|
] }),
|
|
11312
11314
|
isProviderSelector ? /* @__PURE__ */ jsx41(ProviderSelector, { providers: AVAILABLE_RAMP_PROVIDERS.map((el) => ({ ...el, Icon: el.icon })) }) : /* @__PURE__ */ jsx41(ProviderComponent, { walletAddress }),
|
|
11315
|
+
/* @__PURE__ */ jsx41("div", { className: "w-full h-0" }, renderKey),
|
|
11313
11316
|
error && /* @__PURE__ */ jsx41(Highlight, { type: "error", children: error })
|
|
11314
11317
|
] })
|
|
11315
11318
|
}
|
|
@@ -14097,7 +14100,7 @@ var init_hooks = __esm({
|
|
|
14097
14100
|
|
|
14098
14101
|
// src/internal/components/KeyshareRestoreMenu/components/MethodSelector.tsx
|
|
14099
14102
|
import { Cloud, Cpu as Cpu3, FileDown, FileUp } from "lucide-react";
|
|
14100
|
-
import { Fragment as Fragment17, useMemo as
|
|
14103
|
+
import { Fragment as Fragment17, useMemo as useMemo5 } from "react";
|
|
14101
14104
|
import { jsx as jsx54, jsxs as jsxs49 } from "react/jsx-runtime";
|
|
14102
14105
|
function MethodSelector(props) {
|
|
14103
14106
|
const { mode = "restore", serverRecoveryStatus } = props;
|
|
@@ -14111,7 +14114,7 @@ function MethodSelector(props) {
|
|
|
14111
14114
|
setError,
|
|
14112
14115
|
setSuccess
|
|
14113
14116
|
} = useRestoreStore();
|
|
14114
|
-
const recoveryRenderMethods =
|
|
14117
|
+
const recoveryRenderMethods = useMemo5(() => {
|
|
14115
14118
|
const methodsWithBackupData = getRecoveryRenderMethods(mode).map((mt) => {
|
|
14116
14119
|
let data = null;
|
|
14117
14120
|
switch (true) {
|
|
@@ -16725,7 +16728,7 @@ var init_ProviderCard = __esm({
|
|
|
16725
16728
|
// src/internal/components/ManageWalletMenu/ManageWallet.tsx
|
|
16726
16729
|
import { fromPairs } from "lodash-es";
|
|
16727
16730
|
import { AlertTriangle as AlertTriangle4, ArrowLeft as ArrowLeft14, Loader as Loader14 } from "lucide-react";
|
|
16728
|
-
import { useMemo as
|
|
16731
|
+
import { useMemo as useMemo6 } from "react";
|
|
16729
16732
|
import { Fragment as Fragment28, jsx as jsx73, jsxs as jsxs68 } from "react/jsx-runtime";
|
|
16730
16733
|
function getProviderName(provider) {
|
|
16731
16734
|
return PROVIDERS_META[provider].name || provider;
|
|
@@ -16767,7 +16770,7 @@ function ManageWalletMenu() {
|
|
|
16767
16770
|
} = useManageWalletStore();
|
|
16768
16771
|
const configuredProviders = getConfiguredProviders(config.current);
|
|
16769
16772
|
const { data: providers = [], isLoading: isProvidersLoading, error: providersError } = useProvidersList();
|
|
16770
|
-
const renderProviders =
|
|
16773
|
+
const renderProviders = useMemo6(() => {
|
|
16771
16774
|
const normalizeProviderName = (name) => {
|
|
16772
16775
|
if (name === "x") return "twitter";
|
|
16773
16776
|
return name;
|
|
@@ -17518,7 +17521,7 @@ var init_NicknameMenu2 = __esm({
|
|
|
17518
17521
|
|
|
17519
17522
|
// src/internal/hooks/useResolvedPublicClient.ts
|
|
17520
17523
|
import { createPublicClientForChain as createPublicClientForChain5, getChainConfig as getChainConfig8 } from "@embarkai/core/read";
|
|
17521
|
-
import { useMemo as
|
|
17524
|
+
import { useMemo as useMemo7 } from "react";
|
|
17522
17525
|
function getCachedPublicClient(chainId) {
|
|
17523
17526
|
const cachedClient = publicClientByChainId.get(chainId);
|
|
17524
17527
|
if (cachedClient) return cachedClient;
|
|
@@ -17532,11 +17535,11 @@ function useResolvedPublicClient(chainId, logScope = "useResolvedPublicClient")
|
|
|
17532
17535
|
const activeChainConfig = useSession((st) => st.chainConfig);
|
|
17533
17536
|
const resolvedChainId = chainId ?? activeChainId;
|
|
17534
17537
|
const shouldUseActiveClient = !chainId || chainId === activeChainId;
|
|
17535
|
-
const chainConfig =
|
|
17538
|
+
const chainConfig = useMemo7(() => {
|
|
17536
17539
|
if (shouldUseActiveClient) return activeChainConfig;
|
|
17537
17540
|
return getChainConfig8(chainId);
|
|
17538
17541
|
}, [activeChainConfig, chainId, shouldUseActiveClient]);
|
|
17539
|
-
const publicClient =
|
|
17542
|
+
const publicClient = useMemo7(() => {
|
|
17540
17543
|
if (shouldUseActiveClient) return activePublicClient;
|
|
17541
17544
|
if (!chainId) return activePublicClient;
|
|
17542
17545
|
try {
|
|
@@ -17563,13 +17566,13 @@ var init_useResolvedPublicClient = __esm({
|
|
|
17563
17566
|
|
|
17564
17567
|
// src/internal/hooks/useWatchTokens.ts
|
|
17565
17568
|
import { useQuery as useQuery14 } from "@tanstack/react-query";
|
|
17566
|
-
import { useMemo as
|
|
17569
|
+
import { useMemo as useMemo8 } from "react";
|
|
17567
17570
|
import { erc20Abi, formatUnits as formatUnits2 } from "viem";
|
|
17568
17571
|
function useWatchTokens(options) {
|
|
17569
17572
|
const { address, chainId, enabled = true } = options;
|
|
17570
17573
|
const { config } = useProviderConfig();
|
|
17571
17574
|
const { publicClient, resolvedChainId } = useResolvedPublicClient(chainId, "useWatchTokens");
|
|
17572
|
-
const watchTokens =
|
|
17575
|
+
const watchTokens = useMemo8(() => {
|
|
17573
17576
|
const allWatchTokens = config.current.watchTokens;
|
|
17574
17577
|
const tokensForChain = resolvedChainId ? allWatchTokens?.[resolvedChainId] || [] : [];
|
|
17575
17578
|
return tokensForChain;
|
|
@@ -17663,7 +17666,7 @@ var init_useWatchTokens = __esm({
|
|
|
17663
17666
|
// src/internal/hooks/useBlockscoutAssets.ts
|
|
17664
17667
|
import { createBlockscoutClient } from "@embarkai/core/clients";
|
|
17665
17668
|
import { useQuery as useQuery15 } from "@tanstack/react-query";
|
|
17666
|
-
import { useCallback as useCallback21, useMemo as
|
|
17669
|
+
import { useCallback as useCallback21, useMemo as useMemo9, useRef as useRef16 } from "react";
|
|
17667
17670
|
import { formatEther, formatUnits as formatUnits3 } from "viem";
|
|
17668
17671
|
function resolveIpfsUri(uri) {
|
|
17669
17672
|
if (!uri) return "";
|
|
@@ -17795,7 +17798,7 @@ function useBlockscoutAssets(options) {
|
|
|
17795
17798
|
const customTokenBalancesQuery = portfolioConfig?.tokenBalancesQuery;
|
|
17796
17799
|
const customTokenBalancesQueryKey = portfolioConfig?.tokenBalancesQueryKey;
|
|
17797
17800
|
const blockscoutApiUrl = getBlockscoutApiUrl(chainConfig);
|
|
17798
|
-
const blockscoutClient =
|
|
17801
|
+
const blockscoutClient = useMemo9(
|
|
17799
17802
|
() => blockscoutApiUrl ? createBlockscoutClient({ baseUrl: blockscoutApiUrl }) : null,
|
|
17800
17803
|
[blockscoutApiUrl]
|
|
17801
17804
|
);
|
|
@@ -17868,7 +17871,7 @@ function useBlockscoutAssets(options) {
|
|
|
17868
17871
|
retry: 2,
|
|
17869
17872
|
retryDelay: 1e3
|
|
17870
17873
|
});
|
|
17871
|
-
const erc20TokenAddresses =
|
|
17874
|
+
const erc20TokenAddresses = useMemo9(() => {
|
|
17872
17875
|
if (!tokenBalances) return [];
|
|
17873
17876
|
return tokenBalances.filter((tb) => tb.token.type === "ERC-20").map((tb) => tb.token.address_hash);
|
|
17874
17877
|
}, [tokenBalances]);
|
|
@@ -17912,7 +17915,7 @@ function useBlockscoutAssets(options) {
|
|
|
17912
17915
|
gcTime: BLOCKSCOUT_QUERY_GC_TIME,
|
|
17913
17916
|
retry: 1
|
|
17914
17917
|
});
|
|
17915
|
-
const assets =
|
|
17918
|
+
const assets = useMemo9(() => {
|
|
17916
17919
|
const result = [];
|
|
17917
17920
|
const addedAddresses = /* @__PURE__ */ new Set();
|
|
17918
17921
|
if (nativeBalanceData) {
|
|
@@ -17958,7 +17961,7 @@ function useBlockscoutAssets(options) {
|
|
|
17958
17961
|
}
|
|
17959
17962
|
return result;
|
|
17960
17963
|
}, [nativeBalanceData, tokenBalances, nftItems, erc3643Results, watchTokenAssets, chainConfig]);
|
|
17961
|
-
const nativeBalance =
|
|
17964
|
+
const nativeBalance = useMemo9(() => {
|
|
17962
17965
|
if (!nativeBalanceData) return null;
|
|
17963
17966
|
return {
|
|
17964
17967
|
value: nativeBalanceData.value,
|
|
@@ -17966,7 +17969,7 @@ function useBlockscoutAssets(options) {
|
|
|
17966
17969
|
symbol: nativeBalanceData.symbol
|
|
17967
17970
|
};
|
|
17968
17971
|
}, [nativeBalanceData]);
|
|
17969
|
-
const error =
|
|
17972
|
+
const error = useMemo9(() => {
|
|
17970
17973
|
if (!tokensError) return null;
|
|
17971
17974
|
return createError(tokensError);
|
|
17972
17975
|
}, [tokensError]);
|
|
@@ -18429,7 +18432,7 @@ var init_nickname_fingerprint = __esm({
|
|
|
18429
18432
|
// src/internal/components/ReceiveMenu/ReceiveMenu.tsx
|
|
18430
18433
|
import { ArrowLeft as ArrowLeft17, CheckCircle2 as CheckCircle23, Copy as Copy3, Info as Info5, Loader as Loader21, Shield } from "lucide-react";
|
|
18431
18434
|
import QRCode from "qrcode";
|
|
18432
|
-
import { useCallback as useCallback23, useEffect as useEffect33, useMemo as
|
|
18435
|
+
import { useCallback as useCallback23, useEffect as useEffect33, useMemo as useMemo10, useState as useState23 } from "react";
|
|
18433
18436
|
import { Fragment as Fragment31, jsx as jsx81, jsxs as jsxs76 } from "react/jsx-runtime";
|
|
18434
18437
|
function ReceiveMenu() {
|
|
18435
18438
|
const session = useSession((st) => st.session);
|
|
@@ -18443,7 +18446,7 @@ function ReceiveMenu() {
|
|
|
18443
18446
|
const [qrCodeUrl, setQrCodeUrl] = useState23("");
|
|
18444
18447
|
const [copied, setCopied] = useState23(false);
|
|
18445
18448
|
const [fingerprintCopied, setFingerprintCopied] = useState23(false);
|
|
18446
|
-
const fingerprint =
|
|
18449
|
+
const fingerprint = useMemo10(() => {
|
|
18447
18450
|
if (!session?.ownerAddress) return null;
|
|
18448
18451
|
try {
|
|
18449
18452
|
return generateFingerprint(session.ownerAddress);
|
|
@@ -19971,7 +19974,7 @@ var init_utils8 = __esm({
|
|
|
19971
19974
|
// src/internal/components/SendMenu/hyperbridge/hooks/useHyperlaneHistory.ts
|
|
19972
19975
|
import { useInfiniteQuery as useInfiniteQuery3 } from "@tanstack/react-query";
|
|
19973
19976
|
import { debounce as debounce6 } from "lodash-es";
|
|
19974
|
-
import { useCallback as useCallback24, useEffect as useEffect36 } from "react";
|
|
19977
|
+
import { useCallback as useCallback24, useEffect as useEffect36, useMemo as useMemo11 } from "react";
|
|
19975
19978
|
function useHyperlaneHistory() {
|
|
19976
19979
|
const address = useSession((st) => st.address);
|
|
19977
19980
|
const page = useLayoutDataStore((st) => st.page);
|
|
@@ -19987,7 +19990,10 @@ function useHyperlaneHistory() {
|
|
|
19987
19990
|
queryFn: async ({ pageParam }) => await getHyperlaneBridgeHistory({ page: pageParam, pageSize: TX_HISTORY_PAGE_SIZE })
|
|
19988
19991
|
});
|
|
19989
19992
|
const { data: txHistoryData, isLoading: isBridgeTxHistoryLoading } = query;
|
|
19990
|
-
const txList =
|
|
19993
|
+
const txList = useMemo11(
|
|
19994
|
+
() => txHistoryData?.pages?.map((p) => p.data).flat(Infinity) || [],
|
|
19995
|
+
[txHistoryData]
|
|
19996
|
+
);
|
|
19991
19997
|
const updateExpandable = useCallback24(
|
|
19992
19998
|
debounce6(() => {
|
|
19993
19999
|
useFlowSelectorStore.getState().setRenderKey(`hyperlane-history-loaded-${Date.now()}`);
|
|
@@ -21281,14 +21287,14 @@ var init_HistoryStep = __esm({
|
|
|
21281
21287
|
|
|
21282
21288
|
// src/internal/components/SendMenu/hyperbridge/steps/SelectAssetRoute.tsx
|
|
21283
21289
|
import { ArrowLeftRightIcon as ArrowLeftRightIcon2 } from "lucide-react";
|
|
21284
|
-
import { useMemo as
|
|
21290
|
+
import { useMemo as useMemo12, useState as useState27 } from "react";
|
|
21285
21291
|
import { Fragment as Fragment37, jsx as jsx98, jsxs as jsxs90 } from "react/jsx-runtime";
|
|
21286
21292
|
function SelectAssetRoute(props) {
|
|
21287
21293
|
const { hyperlaneWarpRoutes } = props;
|
|
21288
21294
|
const { t } = useT();
|
|
21289
21295
|
const [isTokenSymbolSelector, setIsTokenSymbolSelector] = useState27(false);
|
|
21290
21296
|
const selectedAssetSymbol = useBridgeStore((st) => st.bridgeAssetSymbol);
|
|
21291
|
-
const tokenList =
|
|
21297
|
+
const tokenList = useMemo12(() => {
|
|
21292
21298
|
const tokens = hyperlaneWarpRoutes.map((route) => route.symbol);
|
|
21293
21299
|
const uniqueTokens = Array.from(new Set(tokens));
|
|
21294
21300
|
return uniqueTokens.map((symbol) => ({
|
|
@@ -21572,7 +21578,7 @@ var init_useErc3643Compliance = __esm({
|
|
|
21572
21578
|
|
|
21573
21579
|
// src/hooks/useNicknameResolve.ts
|
|
21574
21580
|
import { useQuery as useQuery21 } from "@tanstack/react-query";
|
|
21575
|
-
import { useState as useState28, useEffect as useEffect41, useMemo as
|
|
21581
|
+
import { useState as useState28, useEffect as useEffect41, useMemo as useMemo13 } from "react";
|
|
21576
21582
|
function looksLikeNickname(input) {
|
|
21577
21583
|
if (!input) return false;
|
|
21578
21584
|
if (input.startsWith("0x")) return false;
|
|
@@ -21612,7 +21618,7 @@ function useNicknameResolve(input, options) {
|
|
|
21612
21618
|
const isNotFound = query.isError && query.error?.code === "NICKNAME_NOT_FOUND";
|
|
21613
21619
|
const isWalletNotSetup = !!query.data && query.data.resolvedTarget === null;
|
|
21614
21620
|
const isFrozen = query.data?.isFrozen ?? false;
|
|
21615
|
-
const fingerprintVerification =
|
|
21621
|
+
const fingerprintVerification = useMemo13(() => {
|
|
21616
21622
|
if (!query.data?.owner || !query.data?.fingerprint) {
|
|
21617
21623
|
return null;
|
|
21618
21624
|
}
|
|
@@ -22574,7 +22580,7 @@ var init_sendSteps = __esm({
|
|
|
22574
22580
|
|
|
22575
22581
|
// src/internal/components/SendMenu/send/SendMenu.tsx
|
|
22576
22582
|
import { CheckCircle2 as CheckCircle26, Loader as Loader31 } from "lucide-react";
|
|
22577
|
-
import { useEffect as useEffect42, useMemo as
|
|
22583
|
+
import { useEffect as useEffect42, useMemo as useMemo14 } from "react";
|
|
22578
22584
|
import { parseUnits as parseUnits2 } from "viem";
|
|
22579
22585
|
import { Fragment as Fragment42, jsx as jsx107, jsxs as jsxs98 } from "react/jsx-runtime";
|
|
22580
22586
|
function SendMenu() {
|
|
@@ -22635,7 +22641,7 @@ function SendMenu() {
|
|
|
22635
22641
|
const isNicknameInput = looksLikeNickname(recipient);
|
|
22636
22642
|
const resolvedNicknameData = useNicknameResolve(recipient, { enabled: isNicknameInput, chainId: activeChainId });
|
|
22637
22643
|
const effectiveAddress = isNicknameInput ? resolvedNicknameData?.resolvedAddress : recipient;
|
|
22638
|
-
const complianceAmount =
|
|
22644
|
+
const complianceAmount = useMemo14(() => {
|
|
22639
22645
|
if (!isSecurity || !amount || !selectedAsset) return void 0;
|
|
22640
22646
|
try {
|
|
22641
22647
|
return parseUnits2(amount, selectedAsset.decimals || 18);
|
|
@@ -24386,7 +24392,7 @@ var init_package = __esm({
|
|
|
24386
24392
|
"package.json"() {
|
|
24387
24393
|
package_default = {
|
|
24388
24394
|
name: "@embarkai/ui-kit",
|
|
24389
|
-
version: "0.4.
|
|
24395
|
+
version: "0.4.45",
|
|
24390
24396
|
description: "React UI components and hooks for EmbarkAI authentication and Account Abstraction",
|
|
24391
24397
|
type: "module",
|
|
24392
24398
|
main: "./dist/index.cjs",
|
|
@@ -28119,14 +28125,14 @@ var init_rainbowkit = __esm({
|
|
|
28119
28125
|
|
|
28120
28126
|
// src/context/RainbowKitContext.tsx
|
|
28121
28127
|
import { darkTheme, lightTheme, RainbowKitProvider as NativeRainbowKitProvider } from "@rainbow-me/rainbowkit";
|
|
28122
|
-
import { useMemo as
|
|
28128
|
+
import { useMemo as useMemo15 } from "react";
|
|
28123
28129
|
import { WagmiProvider } from "wagmi";
|
|
28124
28130
|
import "@rainbow-me/rainbowkit/styles.css";
|
|
28125
28131
|
import { Fragment as Fragment46, jsx as jsx122 } from "react/jsx-runtime";
|
|
28126
28132
|
function RainbowKitProvider({ children }) {
|
|
28127
28133
|
const config = useProviderConfig().config;
|
|
28128
28134
|
const colorMode = useLayoutStore((st) => st.colorMode);
|
|
28129
|
-
const rainbowConfig =
|
|
28135
|
+
const rainbowConfig = useMemo15(
|
|
28130
28136
|
() => createRainbowConfig({
|
|
28131
28137
|
projectId: config.current?.wallet?.walletConnectProjectId,
|
|
28132
28138
|
allowedWallets: config.current?.wallet?.allowedWallets,
|
|
@@ -28140,7 +28146,7 @@ function RainbowKitProvider({ children }) {
|
|
|
28140
28146
|
config.current?.wallet?.walletConnectProjectId
|
|
28141
28147
|
]
|
|
28142
28148
|
);
|
|
28143
|
-
const customTheme =
|
|
28149
|
+
const customTheme = useMemo15(() => {
|
|
28144
28150
|
if (!config.current?.wallet?.enabled) return {};
|
|
28145
28151
|
return colorMode === "dark" ? {
|
|
28146
28152
|
...darkTheme(),
|
|
@@ -28201,7 +28207,7 @@ import {
|
|
|
28201
28207
|
useCallback as useCallback33,
|
|
28202
28208
|
useContext,
|
|
28203
28209
|
useEffect as useEffect50,
|
|
28204
|
-
useMemo as
|
|
28210
|
+
useMemo as useMemo16,
|
|
28205
28211
|
useRef as useRef21
|
|
28206
28212
|
} from "react";
|
|
28207
28213
|
import { jsx as jsx124 } from "react/jsx-runtime";
|
|
@@ -28313,7 +28319,7 @@ function Provider(props) {
|
|
|
28313
28319
|
console.error("[PROVIDER] Error setting up iframe manager:", error);
|
|
28314
28320
|
}
|
|
28315
28321
|
}, [projectId]);
|
|
28316
|
-
const contextValue =
|
|
28322
|
+
const contextValue = useMemo16(
|
|
28317
28323
|
() => ({
|
|
28318
28324
|
config,
|
|
28319
28325
|
updateConfig,
|
|
@@ -28466,7 +28472,7 @@ init_pro_mode();
|
|
|
28466
28472
|
init_utils2();
|
|
28467
28473
|
import { useQuery as useQuery26 } from "@tanstack/react-query";
|
|
28468
28474
|
import { Cloud as Cloud4, Laptop as Laptop2, Loader as Loader35, Shield as Shield3 } from "lucide-react";
|
|
28469
|
-
import { useEffect as useEffect51, useMemo as
|
|
28475
|
+
import { useEffect as useEffect51, useMemo as useMemo17 } from "react";
|
|
28470
28476
|
import { Fragment as Fragment47, jsx as jsx126, jsxs as jsxs111 } from "react/jsx-runtime";
|
|
28471
28477
|
function getFormattedStatus(label, status, showStatus) {
|
|
28472
28478
|
const isStatus = showStatus && status && status !== "idle" && status !== "ready";
|
|
@@ -28494,7 +28500,7 @@ function ConnectWalletButton(props) {
|
|
|
28494
28500
|
queryFn: getUserProfile
|
|
28495
28501
|
});
|
|
28496
28502
|
const displayName = profile?.nicknameDisplay || profile?.displayName || jwtTokenManager2.getDisplayName();
|
|
28497
|
-
const indicators =
|
|
28503
|
+
const indicators = useMemo17(() => {
|
|
28498
28504
|
const userId = session?.mpcUserId;
|
|
28499
28505
|
if (!userId) return { server: false, local: false, backup: false };
|
|
28500
28506
|
const server = jwtTokenManager2.getHasKeyshare() ?? false;
|
|
@@ -29571,7 +29577,7 @@ function useSendDirectTransaction() {
|
|
|
29571
29577
|
init_SessionContext();
|
|
29572
29578
|
init_account2();
|
|
29573
29579
|
init_linkedProfiles();
|
|
29574
|
-
import { useCallback as useCallback40, useMemo as
|
|
29580
|
+
import { useCallback as useCallback40, useMemo as useMemo18, useState as useState39 } from "react";
|
|
29575
29581
|
import { encodeFunctionData as encodeFunctionData3, isAddress as isAddress4, parseEther as parseEther4, parseUnits as parseUnits3 } from "viem";
|
|
29576
29582
|
var ERC20_TRANSFER_ABI2 = [
|
|
29577
29583
|
{
|
|
@@ -29590,7 +29596,7 @@ function useTransferToLinkedWallet() {
|
|
|
29590
29596
|
const [isPending, setIsPending] = useState39(false);
|
|
29591
29597
|
const [error, setError] = useState39(null);
|
|
29592
29598
|
const [userOpHash, setUserOpHash] = useState39(null);
|
|
29593
|
-
const linkedWallets =
|
|
29599
|
+
const linkedWallets = useMemo18(
|
|
29594
29600
|
() => (profiles || []).filter((p) => p.provider === "wallet" && p.externalId).map((p) => p.externalId),
|
|
29595
29601
|
[profiles]
|
|
29596
29602
|
);
|