@embarkai/ui-kit 0.4.44 → 0.4.46

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.
@@ -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.44</title>
18
+ <title>EmbarkAI Secure Wallet - iframe version 0.4.46</title>
19
19
 
20
20
  <!-- Styles will be injected by build process -->
21
21
  <style>
@@ -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.44";
6394
+ var IFRAME_VERSION = "0.4.46";
6395
6395
  var IframeWallet = class {
6396
6396
  constructor() {
6397
6397
  console.log("=".repeat(60));
package/dist/index.cjs CHANGED
@@ -9581,6 +9581,7 @@ var init_networks = __esm({
9581
9581
  // src/internal/components/BuyMenu/binance/BinanceSummary.tsx
9582
9582
  function BinanceSummary(props) {
9583
9583
  const { payment } = props;
9584
+ const qc = (0, import_react_query7.useQueryClient)();
9584
9585
  const { t } = useT();
9585
9586
  const walletAddress = useSession((st) => st.address);
9586
9587
  const chainConfig = useSession((st) => st.chainConfig);
@@ -9599,10 +9600,10 @@ function BinanceSummary(props) {
9599
9600
  network: CHAIN_ID_TO_BINANCE_NETWORK_NAMES[chainConfig.id],
9600
9601
  payMethodCode: payment?.payMethodCode || void 0,
9601
9602
  payMethodSubCode: payment?.payMethodSubCode || void 0,
9602
- // redirectUrl: returnUrl,
9603
- // failRedirectUrl: returnUrl,
9604
9603
  // TODO: pass quote response to backend to create order with exact quote details (amount, fees, etc.)
9605
9604
  quote: quoteData
9605
+ // redirectUrl: returnUrl,
9606
+ // failRedirectUrl: returnUrl,
9606
9607
  });
9607
9608
  },
9608
9609
  onSuccess: (response) => {
@@ -9613,6 +9614,7 @@ function BinanceSummary(props) {
9613
9614
  } else {
9614
9615
  setTimeout(() => {
9615
9616
  setRedirecting(false);
9617
+ qc.invalidateQueries({ queryKey: [QUERY_KEYS2.binanceTransactions] });
9616
9618
  window.open(link, "_blank", "noopener,noreferrer");
9617
9619
  useBuyMenuStore.getState().setError(null);
9618
9620
  useBuyMenuStore.getState().setIsTransactionHistory(true);
@@ -9622,6 +9624,7 @@ function BinanceSummary(props) {
9622
9624
  onError: (err) => {
9623
9625
  setRedirecting(false);
9624
9626
  console.error("[BINANCE] Create Checkout Order failed", err);
9627
+ qc.invalidateQueries({ queryKey: [QUERY_KEYS2.binanceTransactions] });
9625
9628
  }
9626
9629
  });
9627
9630
  const isContinueDisabled = !!redirecting || !!isFundWalletOrderCheckouting || !quoteData;
@@ -9703,6 +9706,7 @@ var init_BinanceSummary = __esm({
9703
9706
  init_button();
9704
9707
  init_highlight();
9705
9708
  init_contants();
9709
+ init_queryKeys();
9706
9710
  init_useBuyMenuStore();
9707
9711
  init_api();
9708
9712
  init_networks();
@@ -9929,7 +9933,7 @@ function BinanceTxHistoryItem(props) {
9929
9933
  {
9930
9934
  className: cn(
9931
9935
  "relative",
9932
- "w-full p-[var(--ui-kit-pd)] space-y-1",
9936
+ "w-full p-[var(--ui-kit-pd)]",
9933
9937
  "rounded-[var(--ui-kit-el-bdrs)]",
9934
9938
  "bg-[var(--ui-kit-secondary)]"
9935
9939
  ),
@@ -9944,34 +9948,43 @@ function BinanceTxHistoryItem(props) {
9944
9948
  children: statusInfo?.type
9945
9949
  }
9946
9950
  ),
9947
- /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)("div", { className: "w-full flex items-center gap-[var(--ui-kit-gap)]", children: [
9951
+ /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)("div", { className: "w-full flex items-start gap-[var(--ui-kit-gap)] mb-1", children: [
9948
9952
  /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(TokenIcon, { className: "w-8 h-8" }),
9949
9953
  /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)("div", { className: "w-full", children: [
9954
+ Number(fiatAmount || "0") > 0 && /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)("p", { className: "text-[10px] leading-3", children: [
9955
+ formatPrice(Number(fiatAmount)),
9956
+ " ",
9957
+ fiatCurrency
9958
+ ] }),
9950
9959
  /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)("p", { className: "text-lg leading-5", children: [
9951
9960
  /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("strong", { children: formatPrice(Number(cryptoAmount)) }),
9952
9961
  " ",
9953
9962
  cryptoCurrency
9954
- ] }),
9955
- Number(fiatAmount || "0") > 0 && /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)("p", { className: "text-[10px] leading-4", children: [
9956
- formatPrice(Number(fiatAmount)),
9957
- " ",
9958
- fiatCurrency
9959
9963
  ] })
9960
9964
  ] })
9961
9965
  ] }),
9962
- /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)("div", { className: "flex items-center gap-[var(--ui-kit-gap)] justify-between", children: [
9963
- /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)("span", { className: cn("text-[10px] leading-5 text-[var(--ui-kit-fg-muted)]"), children: [
9966
+ /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)("div", { className: "flex items-center gap-[var(--ui-kit-gap)] justify-between leading-4", children: [
9967
+ /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)("span", { className: "flex-none whitespace-nowrap text-[10px] text-[var(--ui-kit-fg-muted)]", children: [
9964
9968
  "ID: ",
9965
9969
  id
9966
9970
  ] }),
9967
- /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("span", { className: "text-[10px] leading-5 text-[var(--ui-kit-fg-muted)]", children: (0, import_dayjs.default)(updatedAt || createdAt).format("MMM D YYYY [at] HH:mm") })
9971
+ /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
9972
+ "span",
9973
+ {
9974
+ className: cn(
9975
+ "whitespace-nowrap overflow-hidden text-ellipsis",
9976
+ "block flex-1 text-[10px] text-right text-[var(--ui-kit-fg-muted)]"
9977
+ ),
9978
+ children: (0, import_dayjs.default)(updatedAt || createdAt).format("MMM D YYYY [at] HH:mm")
9979
+ }
9980
+ )
9968
9981
  ] }),
9969
9982
  orderDetailLink && /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)(
9970
9983
  Button,
9971
9984
  {
9972
9985
  variant: "outline",
9973
9986
  size: "medium",
9974
- className: "w-full",
9987
+ className: "w-full mt-1",
9975
9988
  onClick: () => window.open(orderDetailLink, "_blank", "noopener,noreferrer"),
9976
9989
  children: [
9977
9990
  /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(import_lucide_react13.ExternalLinkIcon, { className: "w-4 h-4" }),
@@ -10003,7 +10016,10 @@ function BinanceTxHistory() {
10003
10016
  txStatuses: SHOW_STATUSES
10004
10017
  })
10005
10018
  });
10006
- const txList = historyData?.pages?.map((p) => p.data).flat(Infinity) || [];
10019
+ const txList = (0, import_react22.useMemo)(
10020
+ () => historyData?.pages?.map((p) => p.data).flat(Infinity) || [],
10021
+ [historyData]
10022
+ );
10007
10023
  const updateExpandable = (0, import_react22.useCallback)(
10008
10024
  (0, import_lodash_es7.debounce)(() => {
10009
10025
  useBuyMenuStore.getState().setRenderKey(`binance-history-loaded-${Date.now()}`);
@@ -10018,7 +10034,7 @@ function BinanceTxHistory() {
10018
10034
  return /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(Highlight, { children: t("passport:buyMenu.noItems.noTransactions") });
10019
10035
  }
10020
10036
  return /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)("div", { className: "flex flex-col gap-[var(--ui-kit-gap)]", children: [
10021
- txList.map((tx) => /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(BinanceTxHistoryItem, { ...tx }, tx.id)),
10037
+ isTxDataLoading ? /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("div", { className: "w-full flex items-center justify-center p-[var(--ui-kit-pd)]", children: /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(import_lucide_react13.LoaderIcon, { className: "w-4 h-4 animate-spin" }) }) : txList.map((tx) => /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(BinanceTxHistoryItem, { ...tx }, tx.id)),
10022
10038
  hasNextPage && /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)(
10023
10039
  Button,
10024
10040
  {
@@ -10073,7 +10089,7 @@ function useBinanceSseTxTracing(walletAddress) {
10073
10089
  if (data?.type !== "ORDER_UPDATED") return;
10074
10090
  if (debounceRef.current) clearTimeout(debounceRef.current);
10075
10091
  debounceRef.current = setTimeout(() => {
10076
- qc.invalidateQueries({ queryKey: [QUERY_KEYS2.binanceTransactions, walletAddress] });
10092
+ qc.invalidateQueries({ queryKey: [QUERY_KEYS2.binanceTransactions] });
10077
10093
  }, 500);
10078
10094
  }) || null;
10079
10095
  connectTxTracing({ walletAddress }).catch(
@@ -11322,7 +11338,6 @@ function BuyMenu() {
11322
11338
  }
11323
11339
  ) })
11324
11340
  ] }),
11325
- /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("div", { className: "w-full h-0" }, renderKey),
11326
11341
  showProviderTrigger && /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(import_jsx_runtime41.Fragment, { children: [
11327
11342
  /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("span", { className: "block text-[10px] text-[var(--ui-kit-fg-muted)]", children: t("passport:buyMenu.selectProvider") }),
11328
11343
  /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(
@@ -11345,6 +11360,7 @@ function BuyMenu() {
11345
11360
  )
11346
11361
  ] }),
11347
11362
  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 }),
11363
+ /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("div", { className: "w-full h-0" }, renderKey),
11348
11364
  error && /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Highlight, { type: "error", children: error })
11349
11365
  ] })
11350
11366
  }
@@ -20068,7 +20084,10 @@ function useHyperlaneHistory() {
20068
20084
  queryFn: async ({ pageParam }) => await getHyperlaneBridgeHistory({ page: pageParam, pageSize: TX_HISTORY_PAGE_SIZE })
20069
20085
  });
20070
20086
  const { data: txHistoryData, isLoading: isBridgeTxHistoryLoading } = query;
20071
- const txList = txHistoryData?.pages?.map((p) => p.data).flat(Infinity) || [];
20087
+ const txList = (0, import_react65.useMemo)(
20088
+ () => txHistoryData?.pages?.map((p) => p.data).flat(Infinity) || [],
20089
+ [txHistoryData]
20090
+ );
20072
20091
  const updateExpandable = (0, import_react65.useCallback)(
20073
20092
  (0, import_lodash_es9.debounce)(() => {
20074
20093
  useFlowSelectorStore.getState().setRenderKey(`hyperlane-history-loaded-${Date.now()}`);
@@ -20267,6 +20286,7 @@ function useBridge() {
20267
20286
  },
20268
20287
  onSuccess: (operationHashes) => {
20269
20288
  const { setBridgeStep, setBridgeTxStatus } = useBridgeStore.getState();
20289
+ qc.invalidateQueries({ queryKey: [HYPERLANE_HISTORY_QUERY_KEY] });
20270
20290
  useOperationHashesStore.getState().setOperationHashes(operationHashes);
20271
20291
  useLayoutStore.getState().setIsDialogForced(false);
20272
20292
  useFlowSelectorStore.getState().setIsUiLocked(false);
@@ -20279,7 +20299,7 @@ function useBridge() {
20279
20299
  if (hyperlaneDbTx?.id) {
20280
20300
  patchInitiatedBridgeTxStatus({ txId: hyperlaneDbTx.id, txStatus: "REJECTED" }).then(({ ok }) => {
20281
20301
  console.log("[HYPERLANE SDK] initiated tx patched as REJECTED: ", hyperlaneDbTx.id, "ok: ", ok);
20282
- if (ok) qc.invalidateQueries({ queryKey: [HYPERLANE_HISTORY_QUERY_KEY, address, 1] });
20302
+ if (ok) qc.invalidateQueries({ queryKey: [HYPERLANE_HISTORY_QUERY_KEY] });
20283
20303
  });
20284
20304
  }
20285
20305
  useLayoutStore.getState().setIsDialogForced(false);
@@ -21573,6 +21593,7 @@ function BridgeHistorySwitch(props) {
21573
21593
  onChange: () => {
21574
21594
  const { bridgeStep: bridgeStep2, setBridgeStep } = useBridgeStore.getState();
21575
21595
  if (bridgeStep2 !== "tx-history") lastBridgeStepRef.current = bridgeStep2;
21596
+ useFlowSelectorStore.getState().setError(null);
21576
21597
  setBridgeStep(bridgeStep2 === "tx-history" ? lastBridgeStepRef.current || "select" : "tx-history");
21577
21598
  }
21578
21599
  }
@@ -24485,7 +24506,7 @@ var init_package = __esm({
24485
24506
  "package.json"() {
24486
24507
  package_default = {
24487
24508
  name: "@embarkai/ui-kit",
24488
- version: "0.4.44",
24509
+ version: "0.4.46",
24489
24510
  description: "React UI components and hooks for EmbarkAI authentication and Account Abstraction",
24490
24511
  type: "module",
24491
24512
  main: "./dist/index.cjs",
package/dist/index.js CHANGED
@@ -9545,11 +9545,12 @@ var init_networks = __esm({
9545
9545
  });
9546
9546
 
9547
9547
  // src/internal/components/BuyMenu/binance/BinanceSummary.tsx
9548
- import { useMutation as useMutation5 } from "@tanstack/react-query";
9548
+ import { useMutation as useMutation5, useQueryClient as useQueryClient3 } from "@tanstack/react-query";
9549
9549
  import { InfoIcon as InfoIcon3, LoaderIcon } from "lucide-react";
9550
9550
  import { jsx as jsx33, jsxs as jsxs29 } from "react/jsx-runtime";
9551
9551
  function BinanceSummary(props) {
9552
9552
  const { payment } = props;
9553
+ const qc = useQueryClient3();
9553
9554
  const { t } = useT();
9554
9555
  const walletAddress = useSession((st) => st.address);
9555
9556
  const chainConfig = useSession((st) => st.chainConfig);
@@ -9568,10 +9569,10 @@ function BinanceSummary(props) {
9568
9569
  network: CHAIN_ID_TO_BINANCE_NETWORK_NAMES[chainConfig.id],
9569
9570
  payMethodCode: payment?.payMethodCode || void 0,
9570
9571
  payMethodSubCode: payment?.payMethodSubCode || void 0,
9571
- // redirectUrl: returnUrl,
9572
- // failRedirectUrl: returnUrl,
9573
9572
  // TODO: pass quote response to backend to create order with exact quote details (amount, fees, etc.)
9574
9573
  quote: quoteData
9574
+ // redirectUrl: returnUrl,
9575
+ // failRedirectUrl: returnUrl,
9575
9576
  });
9576
9577
  },
9577
9578
  onSuccess: (response) => {
@@ -9582,6 +9583,7 @@ function BinanceSummary(props) {
9582
9583
  } else {
9583
9584
  setTimeout(() => {
9584
9585
  setRedirecting(false);
9586
+ qc.invalidateQueries({ queryKey: [QUERY_KEYS2.binanceTransactions] });
9585
9587
  window.open(link, "_blank", "noopener,noreferrer");
9586
9588
  useBuyMenuStore.getState().setError(null);
9587
9589
  useBuyMenuStore.getState().setIsTransactionHistory(true);
@@ -9591,6 +9593,7 @@ function BinanceSummary(props) {
9591
9593
  onError: (err) => {
9592
9594
  setRedirecting(false);
9593
9595
  console.error("[BINANCE] Create Checkout Order failed", err);
9596
+ qc.invalidateQueries({ queryKey: [QUERY_KEYS2.binanceTransactions] });
9594
9597
  }
9595
9598
  });
9596
9599
  const isContinueDisabled = !!redirecting || !!isFundWalletOrderCheckouting || !quoteData;
@@ -9669,6 +9672,7 @@ var init_BinanceSummary = __esm({
9669
9672
  init_button();
9670
9673
  init_highlight();
9671
9674
  init_contants();
9675
+ init_queryKeys();
9672
9676
  init_useBuyMenuStore();
9673
9677
  init_api();
9674
9678
  init_networks();
@@ -9851,7 +9855,7 @@ import { useInfiniteQuery } from "@tanstack/react-query";
9851
9855
  import dayjs from "dayjs";
9852
9856
  import { debounce as debounce4 } from "lodash-es";
9853
9857
  import { DownloadIcon, ExternalLinkIcon, LoaderIcon as LoaderIcon2 } from "lucide-react";
9854
- import { useCallback as useCallback11, useEffect as useEffect11 } from "react";
9858
+ import { useCallback as useCallback11, useEffect as useEffect11, useMemo as useMemo4 } from "react";
9855
9859
  import { jsx as jsx35, jsxs as jsxs30 } from "react/jsx-runtime";
9856
9860
  function getStatusVariant(status) {
9857
9861
  switch (status) {
@@ -9899,7 +9903,7 @@ function BinanceTxHistoryItem(props) {
9899
9903
  {
9900
9904
  className: cn(
9901
9905
  "relative",
9902
- "w-full p-[var(--ui-kit-pd)] space-y-1",
9906
+ "w-full p-[var(--ui-kit-pd)]",
9903
9907
  "rounded-[var(--ui-kit-el-bdrs)]",
9904
9908
  "bg-[var(--ui-kit-secondary)]"
9905
9909
  ),
@@ -9914,34 +9918,43 @@ function BinanceTxHistoryItem(props) {
9914
9918
  children: statusInfo?.type
9915
9919
  }
9916
9920
  ),
9917
- /* @__PURE__ */ jsxs30("div", { className: "w-full flex items-center gap-[var(--ui-kit-gap)]", children: [
9921
+ /* @__PURE__ */ jsxs30("div", { className: "w-full flex items-start gap-[var(--ui-kit-gap)] mb-1", children: [
9918
9922
  /* @__PURE__ */ jsx35(TokenIcon, { className: "w-8 h-8" }),
9919
9923
  /* @__PURE__ */ jsxs30("div", { className: "w-full", children: [
9924
+ Number(fiatAmount || "0") > 0 && /* @__PURE__ */ jsxs30("p", { className: "text-[10px] leading-3", children: [
9925
+ formatPrice(Number(fiatAmount)),
9926
+ " ",
9927
+ fiatCurrency
9928
+ ] }),
9920
9929
  /* @__PURE__ */ jsxs30("p", { className: "text-lg leading-5", children: [
9921
9930
  /* @__PURE__ */ jsx35("strong", { children: formatPrice(Number(cryptoAmount)) }),
9922
9931
  " ",
9923
9932
  cryptoCurrency
9924
- ] }),
9925
- Number(fiatAmount || "0") > 0 && /* @__PURE__ */ jsxs30("p", { className: "text-[10px] leading-4", children: [
9926
- formatPrice(Number(fiatAmount)),
9927
- " ",
9928
- fiatCurrency
9929
9933
  ] })
9930
9934
  ] })
9931
9935
  ] }),
9932
- /* @__PURE__ */ jsxs30("div", { className: "flex items-center gap-[var(--ui-kit-gap)] justify-between", children: [
9933
- /* @__PURE__ */ jsxs30("span", { className: cn("text-[10px] leading-5 text-[var(--ui-kit-fg-muted)]"), children: [
9936
+ /* @__PURE__ */ jsxs30("div", { className: "flex items-center gap-[var(--ui-kit-gap)] justify-between leading-4", children: [
9937
+ /* @__PURE__ */ jsxs30("span", { className: "flex-none whitespace-nowrap text-[10px] text-[var(--ui-kit-fg-muted)]", children: [
9934
9938
  "ID: ",
9935
9939
  id
9936
9940
  ] }),
9937
- /* @__PURE__ */ jsx35("span", { className: "text-[10px] leading-5 text-[var(--ui-kit-fg-muted)]", children: dayjs(updatedAt || createdAt).format("MMM D YYYY [at] HH:mm") })
9941
+ /* @__PURE__ */ jsx35(
9942
+ "span",
9943
+ {
9944
+ className: cn(
9945
+ "whitespace-nowrap overflow-hidden text-ellipsis",
9946
+ "block flex-1 text-[10px] text-right text-[var(--ui-kit-fg-muted)]"
9947
+ ),
9948
+ children: dayjs(updatedAt || createdAt).format("MMM D YYYY [at] HH:mm")
9949
+ }
9950
+ )
9938
9951
  ] }),
9939
9952
  orderDetailLink && /* @__PURE__ */ jsxs30(
9940
9953
  Button,
9941
9954
  {
9942
9955
  variant: "outline",
9943
9956
  size: "medium",
9944
- className: "w-full",
9957
+ className: "w-full mt-1",
9945
9958
  onClick: () => window.open(orderDetailLink, "_blank", "noopener,noreferrer"),
9946
9959
  children: [
9947
9960
  /* @__PURE__ */ jsx35(ExternalLinkIcon, { className: "w-4 h-4" }),
@@ -9973,7 +9986,10 @@ function BinanceTxHistory() {
9973
9986
  txStatuses: SHOW_STATUSES
9974
9987
  })
9975
9988
  });
9976
- const txList = historyData?.pages?.map((p) => p.data).flat(Infinity) || [];
9989
+ const txList = useMemo4(
9990
+ () => historyData?.pages?.map((p) => p.data).flat(Infinity) || [],
9991
+ [historyData]
9992
+ );
9977
9993
  const updateExpandable = useCallback11(
9978
9994
  debounce4(() => {
9979
9995
  useBuyMenuStore.getState().setRenderKey(`binance-history-loaded-${Date.now()}`);
@@ -9988,7 +10004,7 @@ function BinanceTxHistory() {
9988
10004
  return /* @__PURE__ */ jsx35(Highlight, { children: t("passport:buyMenu.noItems.noTransactions") });
9989
10005
  }
9990
10006
  return /* @__PURE__ */ jsxs30("div", { className: "flex flex-col gap-[var(--ui-kit-gap)]", children: [
9991
- txList.map((tx) => /* @__PURE__ */ jsx35(BinanceTxHistoryItem, { ...tx }, tx.id)),
10007
+ isTxDataLoading ? /* @__PURE__ */ jsx35("div", { className: "w-full flex items-center justify-center p-[var(--ui-kit-pd)]", children: /* @__PURE__ */ jsx35(LoaderIcon2, { className: "w-4 h-4 animate-spin" }) }) : txList.map((tx) => /* @__PURE__ */ jsx35(BinanceTxHistoryItem, { ...tx }, tx.id)),
9992
10008
  hasNextPage && /* @__PURE__ */ jsxs30(
9993
10009
  Button,
9994
10010
  {
@@ -10026,10 +10042,10 @@ var init_BinanceTxHistory = __esm({
10026
10042
  });
10027
10043
 
10028
10044
  // src/internal/components/BuyMenu/binance/useBinanceSseTracing.ts
10029
- import { useQueryClient as useQueryClient3 } from "@tanstack/react-query";
10045
+ import { useQueryClient as useQueryClient4 } from "@tanstack/react-query";
10030
10046
  import { useEffect as useEffect12, useRef as useRef8 } from "react";
10031
10047
  function useBinanceSseTxTracing(walletAddress) {
10032
- const qc = useQueryClient3();
10048
+ const qc = useQueryClient4();
10033
10049
  const debounceRef = useRef8(null);
10034
10050
  useEffect12(() => {
10035
10051
  if (!walletAddress) return;
@@ -10039,7 +10055,7 @@ function useBinanceSseTxTracing(walletAddress) {
10039
10055
  if (data?.type !== "ORDER_UPDATED") return;
10040
10056
  if (debounceRef.current) clearTimeout(debounceRef.current);
10041
10057
  debounceRef.current = setTimeout(() => {
10042
- qc.invalidateQueries({ queryKey: [QUERY_KEYS2.binanceTransactions, walletAddress] });
10058
+ qc.invalidateQueries({ queryKey: [QUERY_KEYS2.binanceTransactions] });
10043
10059
  }, 500);
10044
10060
  }) || null;
10045
10061
  connectTxTracing({ walletAddress }).catch(
@@ -10071,7 +10087,7 @@ var init_utils6 = __esm({
10071
10087
  });
10072
10088
 
10073
10089
  // src/internal/components/BuyMenu/binance/Binance.tsx
10074
- import { useMutation as useMutation6, useQuery as useQuery2, useQueryClient as useQueryClient4 } from "@tanstack/react-query";
10090
+ import { useMutation as useMutation6, useQuery as useQuery2, useQueryClient as useQueryClient5 } from "@tanstack/react-query";
10075
10091
  import { LoaderIcon as LoaderIcon3 } from "lucide-react";
10076
10092
  import { useEffect as useEffect13 } from "react";
10077
10093
  import { Fragment as Fragment11, jsx as jsx36, jsxs as jsxs31 } from "react/jsx-runtime";
@@ -10081,7 +10097,7 @@ function normalizeChainName(chainName) {
10081
10097
  return chainName.toUpperCase();
10082
10098
  }
10083
10099
  function Binance() {
10084
- const qc = useQueryClient4();
10100
+ const qc = useQueryClient5();
10085
10101
  const { t, i18n } = useT();
10086
10102
  const resolvedLanguage = i18n.resolvedLanguage || "en";
10087
10103
  const chainConfig = useSession((st) => st.chainConfig);
@@ -10697,10 +10713,10 @@ var init_networks2 = __esm({
10697
10713
  });
10698
10714
 
10699
10715
  // src/internal/components/BuyMenu/finchpay/useFinchpaySseTxTracing.ts
10700
- import { useQueryClient as useQueryClient5 } from "@tanstack/react-query";
10716
+ import { useQueryClient as useQueryClient6 } from "@tanstack/react-query";
10701
10717
  import { useEffect as useEffect14, useRef as useRef9 } from "react";
10702
10718
  function useFinchpaySseTxTracing(walletAddress) {
10703
- const qc = useQueryClient5();
10719
+ const qc = useQueryClient6();
10704
10720
  const debounceRef = useRef9(null);
10705
10721
  useEffect14(() => {
10706
10722
  if (!walletAddress) return;
@@ -10749,12 +10765,12 @@ var init_utils7 = __esm({
10749
10765
  });
10750
10766
 
10751
10767
  // src/internal/components/BuyMenu/finchpay/FinchPay.tsx
10752
- import { useQuery as useQuery3, useQueryClient as useQueryClient6 } from "@tanstack/react-query";
10768
+ import { useQuery as useQuery3, useQueryClient as useQueryClient7 } from "@tanstack/react-query";
10753
10769
  import { DollarSign, LoaderIcon as LoaderIcon5 } from "lucide-react";
10754
10770
  import { useEffect as useEffect15 } from "react";
10755
10771
  import { Fragment as Fragment12, jsx as jsx39, jsxs as jsxs34 } from "react/jsx-runtime";
10756
10772
  function FinchPay() {
10757
- const qc = useQueryClient6();
10773
+ const qc = useQueryClient7();
10758
10774
  const { t, i18n } = useT();
10759
10775
  const resolvedLanguage = i18n.resolvedLanguage || "en";
10760
10776
  const chainConfig = useSession((st) => st.chainConfig);
@@ -11287,7 +11303,6 @@ function BuyMenu() {
11287
11303
  }
11288
11304
  ) })
11289
11305
  ] }),
11290
- /* @__PURE__ */ jsx41("div", { className: "w-full h-0" }, renderKey),
11291
11306
  showProviderTrigger && /* @__PURE__ */ jsxs36(Fragment14, { children: [
11292
11307
  /* @__PURE__ */ jsx41("span", { className: "block text-[10px] text-[var(--ui-kit-fg-muted)]", children: t("passport:buyMenu.selectProvider") }),
11293
11308
  /* @__PURE__ */ jsxs36(
@@ -11310,6 +11325,7 @@ function BuyMenu() {
11310
11325
  )
11311
11326
  ] }),
11312
11327
  isProviderSelector ? /* @__PURE__ */ jsx41(ProviderSelector, { providers: AVAILABLE_RAMP_PROVIDERS.map((el) => ({ ...el, Icon: el.icon })) }) : /* @__PURE__ */ jsx41(ProviderComponent, { walletAddress }),
11328
+ /* @__PURE__ */ jsx41("div", { className: "w-full h-0" }, renderKey),
11313
11329
  error && /* @__PURE__ */ jsx41(Highlight, { type: "error", children: error })
11314
11330
  ] })
11315
11331
  }
@@ -11964,7 +11980,7 @@ var init_ChainsMenu2 = __esm({
11964
11980
  });
11965
11981
 
11966
11982
  // src/internal/clients/devices.ts
11967
- import { useMutation as useMutation8, useQuery as useQuery5, useQueryClient as useQueryClient7 } from "@tanstack/react-query";
11983
+ import { useMutation as useMutation8, useQuery as useQuery5, useQueryClient as useQueryClient8 } from "@tanstack/react-query";
11968
11984
  async function getDevices() {
11969
11985
  const response = await tssClient.get("/api/auth/devices", true);
11970
11986
  if (!response.success || !response.data) {
@@ -11996,7 +12012,7 @@ function useDevices() {
11996
12012
  });
11997
12013
  }
11998
12014
  function useLinkDevice() {
11999
- const qc = useQueryClient7();
12015
+ const qc = useQueryClient8();
12000
12016
  return useMutation8({
12001
12017
  mutationFn: (code) => linkDevice(code),
12002
12018
  onSuccess: () => {
@@ -12005,7 +12021,7 @@ function useLinkDevice() {
12005
12021
  });
12006
12022
  }
12007
12023
  function useUnlinkDevice() {
12008
- const qc = useQueryClient7();
12024
+ const qc = useQueryClient8();
12009
12025
  return useMutation8({
12010
12026
  mutationFn: (deviceId) => unlinkDevice(deviceId),
12011
12027
  onSuccess: () => {
@@ -13748,10 +13764,10 @@ var init_cloudStorage = __esm({
13748
13764
  });
13749
13765
 
13750
13766
  // src/internal/components/KeyshareRestoreMenu/hooks/useCreateBackup.ts
13751
- import { useMutation as useMutation9, useQueryClient as useQueryClient8 } from "@tanstack/react-query";
13767
+ import { useMutation as useMutation9, useQueryClient as useQueryClient9 } from "@tanstack/react-query";
13752
13768
  import { useEffect as useEffect20 } from "react";
13753
13769
  function useCreateBackup() {
13754
- const qc = useQueryClient8();
13770
+ const qc = useQueryClient9();
13755
13771
  const session = useSession((st) => st.session);
13756
13772
  const address = useSession((st) => st.address);
13757
13773
  const hasServerVault = useSession((st) => st.hasServerVault);
@@ -14097,7 +14113,7 @@ var init_hooks = __esm({
14097
14113
 
14098
14114
  // src/internal/components/KeyshareRestoreMenu/components/MethodSelector.tsx
14099
14115
  import { Cloud, Cpu as Cpu3, FileDown, FileUp } from "lucide-react";
14100
- import { Fragment as Fragment17, useMemo as useMemo4 } from "react";
14116
+ import { Fragment as Fragment17, useMemo as useMemo5 } from "react";
14101
14117
  import { jsx as jsx54, jsxs as jsxs49 } from "react/jsx-runtime";
14102
14118
  function MethodSelector(props) {
14103
14119
  const { mode = "restore", serverRecoveryStatus } = props;
@@ -14111,7 +14127,7 @@ function MethodSelector(props) {
14111
14127
  setError,
14112
14128
  setSuccess
14113
14129
  } = useRestoreStore();
14114
- const recoveryRenderMethods = useMemo4(() => {
14130
+ const recoveryRenderMethods = useMemo5(() => {
14115
14131
  const methodsWithBackupData = getRecoveryRenderMethods(mode).map((mt) => {
14116
14132
  let data = null;
14117
14133
  switch (true) {
@@ -14538,7 +14554,7 @@ var init_File = __esm({
14538
14554
  });
14539
14555
 
14540
14556
  // src/internal/components/KeyshareRestoreMenu/methods/Server.tsx
14541
- import { useQueryClient as useQueryClient9 } from "@tanstack/react-query";
14557
+ import { useQueryClient as useQueryClient10 } from "@tanstack/react-query";
14542
14558
  import dayjs3 from "dayjs";
14543
14559
  import { Download as Download3, Key as Key5, Upload as Upload3 } from "lucide-react";
14544
14560
  import { useEffect as useEffect23 } from "react";
@@ -14546,7 +14562,7 @@ import { Fragment as Fragment21, jsx as jsx58, jsxs as jsxs53 } from "react/jsx-
14546
14562
  function Server(props) {
14547
14563
  const { isLoading, mode = "restore", serverHandler, createPasskeyHandler } = props;
14548
14564
  const address = useSession((st) => st.address);
14549
- const qc = useQueryClient9();
14565
+ const qc = useQueryClient10();
14550
14566
  const { t } = useT();
14551
14567
  const usePasskey = useRestoreStore((st) => st.usePasskey);
14552
14568
  const setUsePasskey = useRestoreStore((st) => st.setUsePasskey);
@@ -14993,7 +15009,7 @@ var init_methods = __esm({
14993
15009
  });
14994
15010
 
14995
15011
  // src/internal/components/KeyshareRestoreMenu/KeyshareRestoreMenu.tsx
14996
- import { useMutation as useMutation11, useQuery as useQuery7, useQueryClient as useQueryClient10 } from "@tanstack/react-query";
15012
+ import { useMutation as useMutation11, useQuery as useQuery7, useQueryClient as useQueryClient11 } from "@tanstack/react-query";
14997
15013
  import { AlertCircle as AlertCircle2, CheckCircle2, CloudDownload as CloudDownload2, Loader as Loader10, UserCircle as UserCircle2 } from "lucide-react";
14998
15014
  import { useEffect as useEffect25 } from "react";
14999
15015
  import { Fragment as Fragment24, jsx as jsx62, jsxs as jsxs57 } from "react/jsx-runtime";
@@ -15022,7 +15038,7 @@ var init_KeyshareRestoreMenu = __esm({
15022
15038
  guardian: Guardian
15023
15039
  };
15024
15040
  KeyshareRestoreMenu = () => {
15025
- const qc = useQueryClient10();
15041
+ const qc = useQueryClient11();
15026
15042
  const { callbacksRef } = useProviderConfig();
15027
15043
  const { t } = useT();
15028
15044
  const { address, setSession, setAddress, setStatus, setIsLoading } = useSession();
@@ -15883,10 +15899,10 @@ var init_MainMenu2 = __esm({
15883
15899
  });
15884
15900
 
15885
15901
  // src/modules/linkedProfiles.ts
15886
- import { useQuery as useQuery11, useQueryClient as useQueryClient11 } from "@tanstack/react-query";
15902
+ import { useQuery as useQuery11, useQueryClient as useQueryClient12 } from "@tanstack/react-query";
15887
15903
  import { useCallback as useCallback18 } from "react";
15888
15904
  function useLinkedProfiles() {
15889
- const qc = useQueryClient11();
15905
+ const qc = useQueryClient12();
15890
15906
  const address = useSession((st) => st.address);
15891
15907
  const { data, isFetching, isLoading, error } = useQuery11({
15892
15908
  retry: false,
@@ -16128,10 +16144,10 @@ var init_useSendVerificationCode = __esm({
16128
16144
  });
16129
16145
 
16130
16146
  // src/internal/components/ManageWalletMenu/hooks/useVerifyCode.ts
16131
- import { useMutation as useMutation14, useQueryClient as useQueryClient12 } from "@tanstack/react-query";
16147
+ import { useMutation as useMutation14, useQueryClient as useQueryClient13 } from "@tanstack/react-query";
16132
16148
  function useVerifyCode() {
16133
16149
  const { callbacksRef } = useProviderConfig();
16134
- const qc = useQueryClient12();
16150
+ const qc = useQueryClient13();
16135
16151
  const address = useSession((st) => st.address);
16136
16152
  const setIsLoading = useSession((st) => st.setIsLoading);
16137
16153
  const {
@@ -16195,7 +16211,7 @@ var init_useVerifyCode = __esm({
16195
16211
  });
16196
16212
 
16197
16213
  // src/internal/components/ManageWalletMenu/AddProvider.tsx
16198
- import { useQueryClient as useQueryClient13 } from "@tanstack/react-query";
16214
+ import { useQueryClient as useQueryClient14 } from "@tanstack/react-query";
16199
16215
  import { Fragment as Fragment27, jsx as jsx70, jsxs as jsxs65 } from "react/jsx-runtime";
16200
16216
  function normalizePasskeyLinkError(msg) {
16201
16217
  const lower = msg.toLowerCase();
@@ -16208,7 +16224,7 @@ function normalizePasskeyLinkError(msg) {
16208
16224
  return msg;
16209
16225
  }
16210
16226
  function AddProvider() {
16211
- const qc = useQueryClient13();
16227
+ const qc = useQueryClient14();
16212
16228
  const { callbacksRef } = useProviderConfig();
16213
16229
  const address = useSession((st) => st.address);
16214
16230
  const { t } = useT();
@@ -16385,7 +16401,7 @@ var init_EmailNotConnectedWarning = __esm({
16385
16401
  });
16386
16402
 
16387
16403
  // src/internal/components/ManageWalletMenu/hooks/useLinkSocial.ts
16388
- import { useQueryClient as useQueryClient14 } from "@tanstack/react-query";
16404
+ import { useQueryClient as useQueryClient15 } from "@tanstack/react-query";
16389
16405
  import React5, { useEffect as useEffect30 } from "react";
16390
16406
  function normalizeSocialLinkError(message) {
16391
16407
  if (message === "X_ALREADY_LINKED") {
@@ -16394,7 +16410,7 @@ function normalizeSocialLinkError(message) {
16394
16410
  return message;
16395
16411
  }
16396
16412
  function useLinkSocial() {
16397
- const qc = useQueryClient14();
16413
+ const qc = useQueryClient15();
16398
16414
  const address = useSession((st) => st.address);
16399
16415
  const {
16400
16416
  config: { current: config },
@@ -16544,14 +16560,14 @@ var init_telegram2 = __esm({
16544
16560
  });
16545
16561
 
16546
16562
  // src/internal/components/ManageWalletMenu/hooks/useLinkTelegram.ts
16547
- import { useQueryClient as useQueryClient15 } from "@tanstack/react-query";
16563
+ import { useQueryClient as useQueryClient16 } from "@tanstack/react-query";
16548
16564
  import { useCallback as useCallback19, useEffect as useEffect31, useState as useState17 } from "react";
16549
16565
  function useLinkTelegram() {
16550
16566
  const {
16551
16567
  config: { current: config },
16552
16568
  callbacksRef
16553
16569
  } = useProviderConfig();
16554
- const qc = useQueryClient15();
16570
+ const qc = useQueryClient16();
16555
16571
  const address = useSession((st) => st.address);
16556
16572
  const isWalletLinking = useLayoutDataStore((st) => st.isWalletLinking);
16557
16573
  const { providerType, linkIsLoading, setLinkIsLoading, setProviderType, setAlert } = useManageWalletStore();
@@ -16725,7 +16741,7 @@ var init_ProviderCard = __esm({
16725
16741
  // src/internal/components/ManageWalletMenu/ManageWallet.tsx
16726
16742
  import { fromPairs } from "lodash-es";
16727
16743
  import { AlertTriangle as AlertTriangle4, ArrowLeft as ArrowLeft14, Loader as Loader14 } from "lucide-react";
16728
- import { useMemo as useMemo5 } from "react";
16744
+ import { useMemo as useMemo6 } from "react";
16729
16745
  import { Fragment as Fragment28, jsx as jsx73, jsxs as jsxs68 } from "react/jsx-runtime";
16730
16746
  function getProviderName(provider) {
16731
16747
  return PROVIDERS_META[provider].name || provider;
@@ -16767,7 +16783,7 @@ function ManageWalletMenu() {
16767
16783
  } = useManageWalletStore();
16768
16784
  const configuredProviders = getConfiguredProviders(config.current);
16769
16785
  const { data: providers = [], isLoading: isProvidersLoading, error: providersError } = useProvidersList();
16770
- const renderProviders = useMemo5(() => {
16786
+ const renderProviders = useMemo6(() => {
16771
16787
  const normalizeProviderName = (name) => {
16772
16788
  if (name === "x") return "twitter";
16773
16789
  return name;
@@ -16953,13 +16969,13 @@ var init_useExternalWalletStore = __esm({
16953
16969
  });
16954
16970
 
16955
16971
  // src/internal/components/ManageWalletMenu/UnlinkProviderMenu.tsx
16956
- import { useMutation as useMutation15, useQueryClient as useQueryClient16 } from "@tanstack/react-query";
16972
+ import { useMutation as useMutation15, useQueryClient as useQueryClient17 } from "@tanstack/react-query";
16957
16973
  import { Key as Key6, Loader as Loader15 } from "lucide-react";
16958
16974
  import { useState as useState18 } from "react";
16959
16975
  import { useDisconnect } from "wagmi";
16960
16976
  import { jsx as jsx74, jsxs as jsxs69 } from "react/jsx-runtime";
16961
16977
  function UnlinkProviderMenu() {
16962
- const qc = useQueryClient16();
16978
+ const qc = useQueryClient17();
16963
16979
  const address = useSession((st) => st.address);
16964
16980
  const { callbacksRef } = useProviderConfig();
16965
16981
  const { disconnect: disconnectExternalWallet } = useDisconnect();
@@ -17194,7 +17210,7 @@ var init_nickname_validation = __esm({
17194
17210
  });
17195
17211
 
17196
17212
  // src/internal/components/NicknameMenu/NicknameEditForm.tsx
17197
- import { useMutation as useMutation16, useQueryClient as useQueryClient17 } from "@tanstack/react-query";
17213
+ import { useMutation as useMutation16, useQueryClient as useQueryClient18 } from "@tanstack/react-query";
17198
17214
  import { AtSign, Check as Check2, ChevronRight as ChevronRight5, Copy as Copy2, Loader as Loader17 } from "lucide-react";
17199
17215
  import { useCallback as useCallback20, useState as useState19 } from "react";
17200
17216
  import { Fragment as Fragment29, jsx as jsx76, jsxs as jsxs71 } from "react/jsx-runtime";
@@ -17211,7 +17227,7 @@ function NicknameEditForm(props) {
17211
17227
  info
17212
17228
  } = props;
17213
17229
  const { handle: currentNickname, canChange } = info || { handle: "", canChange: false };
17214
- const qc = useQueryClient17();
17230
+ const qc = useQueryClient18();
17215
17231
  const { t } = useT();
17216
17232
  const passportWalletAddress = useSession((st) => st.address);
17217
17233
  const { callbacksRef } = useProviderConfig();
@@ -17518,7 +17534,7 @@ var init_NicknameMenu2 = __esm({
17518
17534
 
17519
17535
  // src/internal/hooks/useResolvedPublicClient.ts
17520
17536
  import { createPublicClientForChain as createPublicClientForChain5, getChainConfig as getChainConfig8 } from "@embarkai/core/read";
17521
- import { useMemo as useMemo6 } from "react";
17537
+ import { useMemo as useMemo7 } from "react";
17522
17538
  function getCachedPublicClient(chainId) {
17523
17539
  const cachedClient = publicClientByChainId.get(chainId);
17524
17540
  if (cachedClient) return cachedClient;
@@ -17532,11 +17548,11 @@ function useResolvedPublicClient(chainId, logScope = "useResolvedPublicClient")
17532
17548
  const activeChainConfig = useSession((st) => st.chainConfig);
17533
17549
  const resolvedChainId = chainId ?? activeChainId;
17534
17550
  const shouldUseActiveClient = !chainId || chainId === activeChainId;
17535
- const chainConfig = useMemo6(() => {
17551
+ const chainConfig = useMemo7(() => {
17536
17552
  if (shouldUseActiveClient) return activeChainConfig;
17537
17553
  return getChainConfig8(chainId);
17538
17554
  }, [activeChainConfig, chainId, shouldUseActiveClient]);
17539
- const publicClient = useMemo6(() => {
17555
+ const publicClient = useMemo7(() => {
17540
17556
  if (shouldUseActiveClient) return activePublicClient;
17541
17557
  if (!chainId) return activePublicClient;
17542
17558
  try {
@@ -17563,13 +17579,13 @@ var init_useResolvedPublicClient = __esm({
17563
17579
 
17564
17580
  // src/internal/hooks/useWatchTokens.ts
17565
17581
  import { useQuery as useQuery14 } from "@tanstack/react-query";
17566
- import { useMemo as useMemo7 } from "react";
17582
+ import { useMemo as useMemo8 } from "react";
17567
17583
  import { erc20Abi, formatUnits as formatUnits2 } from "viem";
17568
17584
  function useWatchTokens(options) {
17569
17585
  const { address, chainId, enabled = true } = options;
17570
17586
  const { config } = useProviderConfig();
17571
17587
  const { publicClient, resolvedChainId } = useResolvedPublicClient(chainId, "useWatchTokens");
17572
- const watchTokens = useMemo7(() => {
17588
+ const watchTokens = useMemo8(() => {
17573
17589
  const allWatchTokens = config.current.watchTokens;
17574
17590
  const tokensForChain = resolvedChainId ? allWatchTokens?.[resolvedChainId] || [] : [];
17575
17591
  return tokensForChain;
@@ -17663,7 +17679,7 @@ var init_useWatchTokens = __esm({
17663
17679
  // src/internal/hooks/useBlockscoutAssets.ts
17664
17680
  import { createBlockscoutClient } from "@embarkai/core/clients";
17665
17681
  import { useQuery as useQuery15 } from "@tanstack/react-query";
17666
- import { useCallback as useCallback21, useMemo as useMemo8, useRef as useRef16 } from "react";
17682
+ import { useCallback as useCallback21, useMemo as useMemo9, useRef as useRef16 } from "react";
17667
17683
  import { formatEther, formatUnits as formatUnits3 } from "viem";
17668
17684
  function resolveIpfsUri(uri) {
17669
17685
  if (!uri) return "";
@@ -17795,7 +17811,7 @@ function useBlockscoutAssets(options) {
17795
17811
  const customTokenBalancesQuery = portfolioConfig?.tokenBalancesQuery;
17796
17812
  const customTokenBalancesQueryKey = portfolioConfig?.tokenBalancesQueryKey;
17797
17813
  const blockscoutApiUrl = getBlockscoutApiUrl(chainConfig);
17798
- const blockscoutClient = useMemo8(
17814
+ const blockscoutClient = useMemo9(
17799
17815
  () => blockscoutApiUrl ? createBlockscoutClient({ baseUrl: blockscoutApiUrl }) : null,
17800
17816
  [blockscoutApiUrl]
17801
17817
  );
@@ -17868,7 +17884,7 @@ function useBlockscoutAssets(options) {
17868
17884
  retry: 2,
17869
17885
  retryDelay: 1e3
17870
17886
  });
17871
- const erc20TokenAddresses = useMemo8(() => {
17887
+ const erc20TokenAddresses = useMemo9(() => {
17872
17888
  if (!tokenBalances) return [];
17873
17889
  return tokenBalances.filter((tb) => tb.token.type === "ERC-20").map((tb) => tb.token.address_hash);
17874
17890
  }, [tokenBalances]);
@@ -17912,7 +17928,7 @@ function useBlockscoutAssets(options) {
17912
17928
  gcTime: BLOCKSCOUT_QUERY_GC_TIME,
17913
17929
  retry: 1
17914
17930
  });
17915
- const assets = useMemo8(() => {
17931
+ const assets = useMemo9(() => {
17916
17932
  const result = [];
17917
17933
  const addedAddresses = /* @__PURE__ */ new Set();
17918
17934
  if (nativeBalanceData) {
@@ -17958,7 +17974,7 @@ function useBlockscoutAssets(options) {
17958
17974
  }
17959
17975
  return result;
17960
17976
  }, [nativeBalanceData, tokenBalances, nftItems, erc3643Results, watchTokenAssets, chainConfig]);
17961
- const nativeBalance = useMemo8(() => {
17977
+ const nativeBalance = useMemo9(() => {
17962
17978
  if (!nativeBalanceData) return null;
17963
17979
  return {
17964
17980
  value: nativeBalanceData.value,
@@ -17966,7 +17982,7 @@ function useBlockscoutAssets(options) {
17966
17982
  symbol: nativeBalanceData.symbol
17967
17983
  };
17968
17984
  }, [nativeBalanceData]);
17969
- const error = useMemo8(() => {
17985
+ const error = useMemo9(() => {
17970
17986
  if (!tokensError) return null;
17971
17987
  return createError(tokensError);
17972
17988
  }, [tokensError]);
@@ -18065,7 +18081,7 @@ var init_BalanceView2 = __esm({
18065
18081
  });
18066
18082
 
18067
18083
  // src/internal/components/PortfolioMenu/PortfolioItem.tsx
18068
- import { useQuery as useQuery16, useQueryClient as useQueryClient18 } from "@tanstack/react-query";
18084
+ import { useQuery as useQuery16, useQueryClient as useQueryClient19 } from "@tanstack/react-query";
18069
18085
  import { Image as ImageIcon, Loader as Loader19, ShieldAlert, Sparkles } from "lucide-react";
18070
18086
  import { useState as useState22 } from "react";
18071
18087
  import { formatUnits as formatUnits5 } from "viem";
@@ -18158,7 +18174,7 @@ function PortfolioItem(props) {
18158
18174
  const { assets: projectAssets, showBalanceAs: showBalanceAsSymbol } = providerConfig.projectAssets || {};
18159
18175
  const customAssetRateQuery = providerConfig.portfolio?.assetRateQuery;
18160
18176
  const customAssetRateQueryKey = providerConfig.portfolio?.assetRateQueryKey;
18161
- const qc = useQueryClient18();
18177
+ const qc = useQueryClient19();
18162
18178
  const { balanceQueryKey } = projectAssets?.find((a) => a.symbol === showBalanceAsSymbol) || {};
18163
18179
  const projectAssetBalance = !!balanceQueryKey ? qc.getQueryData(balanceQueryKey) : null;
18164
18180
  const isNft = isNftAsset(asset);
@@ -18252,14 +18268,14 @@ var init_PortfolioItem = __esm({
18252
18268
  });
18253
18269
 
18254
18270
  // src/internal/components/PortfolioMenu/PortfolioMenu.tsx
18255
- import { useQueryClient as useQueryClient19 } from "@tanstack/react-query";
18271
+ import { useQueryClient as useQueryClient20 } from "@tanstack/react-query";
18256
18272
  import { AlertCircle as AlertCircle4, ArrowLeft as ArrowLeft16, Gem, Loader as Loader20, RefreshCw as RefreshCw2 } from "lucide-react";
18257
18273
  import { useCallback as useCallback22 } from "react";
18258
18274
  import { jsx as jsx80, jsxs as jsxs75 } from "react/jsx-runtime";
18259
18275
  function PortfolioMenu() {
18260
18276
  const { assets: projectAssets = [] } = useProviderConfig().config.current?.projectAssets || {};
18261
18277
  const { t } = useT();
18262
- const qc = useQueryClient19();
18278
+ const qc = useQueryClient20();
18263
18279
  const address = useSession((st) => st.address);
18264
18280
  const setPage = useLayoutDataStore((st) => st.setPage);
18265
18281
  const maxScrollHeight = useLayoutStore((st) => st.maxScrollHeight);
@@ -18429,7 +18445,7 @@ var init_nickname_fingerprint = __esm({
18429
18445
  // src/internal/components/ReceiveMenu/ReceiveMenu.tsx
18430
18446
  import { ArrowLeft as ArrowLeft17, CheckCircle2 as CheckCircle23, Copy as Copy3, Info as Info5, Loader as Loader21, Shield } from "lucide-react";
18431
18447
  import QRCode from "qrcode";
18432
- import { useCallback as useCallback23, useEffect as useEffect33, useMemo as useMemo9, useState as useState23 } from "react";
18448
+ import { useCallback as useCallback23, useEffect as useEffect33, useMemo as useMemo10, useState as useState23 } from "react";
18433
18449
  import { Fragment as Fragment31, jsx as jsx81, jsxs as jsxs76 } from "react/jsx-runtime";
18434
18450
  function ReceiveMenu() {
18435
18451
  const session = useSession((st) => st.session);
@@ -18443,7 +18459,7 @@ function ReceiveMenu() {
18443
18459
  const [qrCodeUrl, setQrCodeUrl] = useState23("");
18444
18460
  const [copied, setCopied] = useState23(false);
18445
18461
  const [fingerprintCopied, setFingerprintCopied] = useState23(false);
18446
- const fingerprint = useMemo9(() => {
18462
+ const fingerprint = useMemo10(() => {
18447
18463
  if (!session?.ownerAddress) return null;
18448
18464
  try {
18449
18465
  return generateFingerprint(session.ownerAddress);
@@ -18997,12 +19013,12 @@ var init_UntrustApplication = __esm({
18997
19013
  });
18998
19014
 
18999
19015
  // src/internal/components/SecurityMenu/SecurityMenu.tsx
19000
- import { useMutation as useMutation17, useQueryClient as useQueryClient20 } from "@tanstack/react-query";
19016
+ import { useMutation as useMutation17, useQueryClient as useQueryClient21 } from "@tanstack/react-query";
19001
19017
  import { ArrowLeft as ArrowLeft18 } from "lucide-react";
19002
19018
  import { useState as useState24 } from "react";
19003
19019
  import { jsx as jsx88, jsxs as jsxs83 } from "react/jsx-runtime";
19004
19020
  function SecurityMenu() {
19005
- const qc = useQueryClient20();
19021
+ const qc = useQueryClient21();
19006
19022
  const { t } = useT();
19007
19023
  const maxScrollHeight = useLayoutStore((st) => st.maxScrollHeight);
19008
19024
  const setPage = useLayoutDataStore((st) => st.setPage);
@@ -19971,7 +19987,7 @@ var init_utils8 = __esm({
19971
19987
  // src/internal/components/SendMenu/hyperbridge/hooks/useHyperlaneHistory.ts
19972
19988
  import { useInfiniteQuery as useInfiniteQuery3 } from "@tanstack/react-query";
19973
19989
  import { debounce as debounce6 } from "lodash-es";
19974
- import { useCallback as useCallback24, useEffect as useEffect36 } from "react";
19990
+ import { useCallback as useCallback24, useEffect as useEffect36, useMemo as useMemo11 } from "react";
19975
19991
  function useHyperlaneHistory() {
19976
19992
  const address = useSession((st) => st.address);
19977
19993
  const page = useLayoutDataStore((st) => st.page);
@@ -19987,7 +20003,10 @@ function useHyperlaneHistory() {
19987
20003
  queryFn: async ({ pageParam }) => await getHyperlaneBridgeHistory({ page: pageParam, pageSize: TX_HISTORY_PAGE_SIZE })
19988
20004
  });
19989
20005
  const { data: txHistoryData, isLoading: isBridgeTxHistoryLoading } = query;
19990
- const txList = txHistoryData?.pages?.map((p) => p.data).flat(Infinity) || [];
20006
+ const txList = useMemo11(
20007
+ () => txHistoryData?.pages?.map((p) => p.data).flat(Infinity) || [],
20008
+ [txHistoryData]
20009
+ );
19991
20010
  const updateExpandable = useCallback24(
19992
20011
  debounce6(() => {
19993
20012
  useFlowSelectorStore.getState().setRenderKey(`hyperlane-history-loaded-${Date.now()}`);
@@ -20029,11 +20048,11 @@ var init_useOperationHashesStore = __esm({
20029
20048
  });
20030
20049
 
20031
20050
  // src/internal/components/SendMenu/hyperbridge/hooks/useBridge.ts
20032
- import { useMutation as useMutation19, useQueryClient as useQueryClient21 } from "@tanstack/react-query";
20051
+ import { useMutation as useMutation19, useQueryClient as useQueryClient22 } from "@tanstack/react-query";
20033
20052
  import { useCallback as useCallback25 } from "react";
20034
20053
  import { useSwitchChain, useWalletClient } from "wagmi";
20035
20054
  function useBridge() {
20036
- const qc = useQueryClient21();
20055
+ const qc = useQueryClient22();
20037
20056
  const { t } = useT();
20038
20057
  const address = useSession((st) => st.address);
20039
20058
  const { data: walletClient } = useWalletClient();
@@ -20186,6 +20205,7 @@ function useBridge() {
20186
20205
  },
20187
20206
  onSuccess: (operationHashes) => {
20188
20207
  const { setBridgeStep, setBridgeTxStatus } = useBridgeStore.getState();
20208
+ qc.invalidateQueries({ queryKey: [HYPERLANE_HISTORY_QUERY_KEY] });
20189
20209
  useOperationHashesStore.getState().setOperationHashes(operationHashes);
20190
20210
  useLayoutStore.getState().setIsDialogForced(false);
20191
20211
  useFlowSelectorStore.getState().setIsUiLocked(false);
@@ -20198,7 +20218,7 @@ function useBridge() {
20198
20218
  if (hyperlaneDbTx?.id) {
20199
20219
  patchInitiatedBridgeTxStatus({ txId: hyperlaneDbTx.id, txStatus: "REJECTED" }).then(({ ok }) => {
20200
20220
  console.log("[HYPERLANE SDK] initiated tx patched as REJECTED: ", hyperlaneDbTx.id, "ok: ", ok);
20201
- if (ok) qc.invalidateQueries({ queryKey: [HYPERLANE_HISTORY_QUERY_KEY, address, 1] });
20221
+ if (ok) qc.invalidateQueries({ queryKey: [HYPERLANE_HISTORY_QUERY_KEY] });
20202
20222
  });
20203
20223
  }
20204
20224
  useLayoutStore.getState().setIsDialogForced(false);
@@ -20348,12 +20368,12 @@ var init_ResolveChainIcon = __esm({
20348
20368
 
20349
20369
  // src/internal/components/SendMenu/hyperbridge/hooks/useBridgeBalance.ts
20350
20370
  import { CHAINS_BROWSERS_TRANSPORTS as CHAINS_BROWSERS_TRANSPORTS2 } from "@embarkai/core";
20351
- import { useQuery as useQuery20, useQueryClient as useQueryClient22 } from "@tanstack/react-query";
20371
+ import { useQuery as useQuery20, useQueryClient as useQueryClient23 } from "@tanstack/react-query";
20352
20372
  import { useCallback as useCallback26, useEffect as useEffect39 } from "react";
20353
20373
  import { createPublicClient as createPublicClient2, erc20Abi as erc20Abi2, formatUnits as formatUnits7, http as http3 } from "viem";
20354
20374
  import { useSwitchChain as useSwitchChain2 } from "wagmi";
20355
20375
  function useBridgeBalance(hyperlaneWarpRoutes) {
20356
- const qc = useQueryClient22();
20376
+ const qc = useQueryClient23();
20357
20377
  const { t } = useT();
20358
20378
  const address = useSession((st) => st.address);
20359
20379
  const directWalletAddress = useExternalWalletStore((st) => st.externalAddress);
@@ -21013,7 +21033,7 @@ var init_SuccessStep = __esm({
21013
21033
  });
21014
21034
 
21015
21035
  // src/internal/components/SendMenu/hyperbridge/steps/HistoryStep.tsx
21016
- import { useQueryClient as useQueryClient23 } from "@tanstack/react-query";
21036
+ import { useQueryClient as useQueryClient24 } from "@tanstack/react-query";
21017
21037
  import dayjs7 from "dayjs";
21018
21038
  import { ArrowRightIcon, DownloadIcon as DownloadIcon2, ExternalLinkIcon as ExternalLinkIcon3, InfoIcon as InfoIcon4, LoaderIcon as LoaderIcon10 } from "lucide-react";
21019
21039
  import { jsx as jsx97, jsxs as jsxs89 } from "react/jsx-runtime";
@@ -21134,7 +21154,7 @@ function HistoryItem(props) {
21134
21154
  txStatus
21135
21155
  } = props;
21136
21156
  const { t } = useT();
21137
- const qc = useQueryClient23();
21157
+ const qc = useQueryClient24();
21138
21158
  const address = useSession((st) => st.address);
21139
21159
  const warpRoutes = qc.getQueryData([HYPERLANE_WARP_ROUTES_QUERY_KEY, address]);
21140
21160
  const assetWarpRoute = warpRoutes?.find((route) => {
@@ -21281,14 +21301,14 @@ var init_HistoryStep = __esm({
21281
21301
 
21282
21302
  // src/internal/components/SendMenu/hyperbridge/steps/SelectAssetRoute.tsx
21283
21303
  import { ArrowLeftRightIcon as ArrowLeftRightIcon2 } from "lucide-react";
21284
- import { useMemo as useMemo10, useState as useState27 } from "react";
21304
+ import { useMemo as useMemo12, useState as useState27 } from "react";
21285
21305
  import { Fragment as Fragment37, jsx as jsx98, jsxs as jsxs90 } from "react/jsx-runtime";
21286
21306
  function SelectAssetRoute(props) {
21287
21307
  const { hyperlaneWarpRoutes } = props;
21288
21308
  const { t } = useT();
21289
21309
  const [isTokenSymbolSelector, setIsTokenSymbolSelector] = useState27(false);
21290
21310
  const selectedAssetSymbol = useBridgeStore((st) => st.bridgeAssetSymbol);
21291
- const tokenList = useMemo10(() => {
21311
+ const tokenList = useMemo12(() => {
21292
21312
  const tokens = hyperlaneWarpRoutes.map((route) => route.symbol);
21293
21313
  const uniqueTokens = Array.from(new Set(tokens));
21294
21314
  return uniqueTokens.map((symbol) => ({
@@ -21484,6 +21504,7 @@ function BridgeHistorySwitch(props) {
21484
21504
  onChange: () => {
21485
21505
  const { bridgeStep: bridgeStep2, setBridgeStep } = useBridgeStore.getState();
21486
21506
  if (bridgeStep2 !== "tx-history") lastBridgeStepRef.current = bridgeStep2;
21507
+ useFlowSelectorStore.getState().setError(null);
21487
21508
  setBridgeStep(bridgeStep2 === "tx-history" ? lastBridgeStepRef.current || "select" : "tx-history");
21488
21509
  }
21489
21510
  }
@@ -21572,7 +21593,7 @@ var init_useErc3643Compliance = __esm({
21572
21593
 
21573
21594
  // src/hooks/useNicknameResolve.ts
21574
21595
  import { useQuery as useQuery21 } from "@tanstack/react-query";
21575
- import { useState as useState28, useEffect as useEffect41, useMemo as useMemo11 } from "react";
21596
+ import { useState as useState28, useEffect as useEffect41, useMemo as useMemo13 } from "react";
21576
21597
  function looksLikeNickname(input) {
21577
21598
  if (!input) return false;
21578
21599
  if (input.startsWith("0x")) return false;
@@ -21612,7 +21633,7 @@ function useNicknameResolve(input, options) {
21612
21633
  const isNotFound = query.isError && query.error?.code === "NICKNAME_NOT_FOUND";
21613
21634
  const isWalletNotSetup = !!query.data && query.data.resolvedTarget === null;
21614
21635
  const isFrozen = query.data?.isFrozen ?? false;
21615
- const fingerprintVerification = useMemo11(() => {
21636
+ const fingerprintVerification = useMemo13(() => {
21616
21637
  if (!query.data?.owner || !query.data?.fingerprint) {
21617
21638
  return null;
21618
21639
  }
@@ -22574,7 +22595,7 @@ var init_sendSteps = __esm({
22574
22595
 
22575
22596
  // src/internal/components/SendMenu/send/SendMenu.tsx
22576
22597
  import { CheckCircle2 as CheckCircle26, Loader as Loader31 } from "lucide-react";
22577
- import { useEffect as useEffect42, useMemo as useMemo12 } from "react";
22598
+ import { useEffect as useEffect42, useMemo as useMemo14 } from "react";
22578
22599
  import { parseUnits as parseUnits2 } from "viem";
22579
22600
  import { Fragment as Fragment42, jsx as jsx107, jsxs as jsxs98 } from "react/jsx-runtime";
22580
22601
  function SendMenu() {
@@ -22635,7 +22656,7 @@ function SendMenu() {
22635
22656
  const isNicknameInput = looksLikeNickname(recipient);
22636
22657
  const resolvedNicknameData = useNicknameResolve(recipient, { enabled: isNicknameInput, chainId: activeChainId });
22637
22658
  const effectiveAddress = isNicknameInput ? resolvedNicknameData?.resolvedAddress : recipient;
22638
- const complianceAmount = useMemo12(() => {
22659
+ const complianceAmount = useMemo14(() => {
22639
22660
  if (!isSecurity || !amount || !selectedAsset) return void 0;
22640
22661
  try {
22641
22662
  return parseUnits2(amount, selectedAsset.decimals || 18);
@@ -24014,12 +24035,12 @@ var init_TransactionsGroup = __esm({
24014
24035
  });
24015
24036
 
24016
24037
  // src/internal/components/TransactionsMenu/TransactionsMenu.tsx
24017
- import { useQuery as useQuery23, useQueryClient as useQueryClient24 } from "@tanstack/react-query";
24038
+ import { useQuery as useQuery23, useQueryClient as useQueryClient25 } from "@tanstack/react-query";
24018
24039
  import { ArrowLeft as ArrowLeft22, Loader as Loader32, RefreshCw as RefreshCw3, XCircle } from "lucide-react";
24019
24040
  import { useCallback as useCallback28, useState as useState31 } from "react";
24020
24041
  import { jsx as jsx114, jsxs as jsxs104 } from "react/jsx-runtime";
24021
24042
  function TransactionsMenu() {
24022
- const qc = useQueryClient24();
24043
+ const qc = useQueryClient25();
24023
24044
  const address = useSession((st) => st.address);
24024
24045
  const chainConfig = useSession((st) => st.chainConfig);
24025
24046
  const { t } = useT();
@@ -24386,7 +24407,7 @@ var init_package = __esm({
24386
24407
  "package.json"() {
24387
24408
  package_default = {
24388
24409
  name: "@embarkai/ui-kit",
24389
- version: "0.4.44",
24410
+ version: "0.4.46",
24390
24411
  description: "React UI components and hooks for EmbarkAI authentication and Account Abstraction",
24391
24412
  type: "module",
24392
24413
  main: "./dist/index.cjs",
@@ -24484,11 +24505,11 @@ var init_package = __esm({
24484
24505
  });
24485
24506
 
24486
24507
  // src/internal/components/Footer/Footer.tsx
24487
- import { useMutation as useMutation20, useQueryClient as useQueryClient25 } from "@tanstack/react-query";
24508
+ import { useMutation as useMutation20, useQueryClient as useQueryClient26 } from "@tanstack/react-query";
24488
24509
  import { Loader as Loader33, LogOut } from "lucide-react";
24489
24510
  import { jsx as jsx116, jsxs as jsxs105 } from "react/jsx-runtime";
24490
24511
  function Footer() {
24491
- const qc = useQueryClient25();
24512
+ const qc = useQueryClient26();
24492
24513
  const { callbacksRef } = useProviderConfig();
24493
24514
  const { address, setSession, setAddress, setStatus, setError, setIsLoading } = useSession();
24494
24515
  const chainConfig = useSession((st) => st.chainConfig);
@@ -25055,11 +25076,11 @@ var init_TssManager = __esm({
25055
25076
 
25056
25077
  // src/internal/components/WalletConnectHandler.tsx
25057
25078
  import { useConnectModal as useConnectModal2 } from "@rainbow-me/rainbowkit";
25058
- import { useMutation as useMutation21, useQueryClient as useQueryClient26 } from "@tanstack/react-query";
25079
+ import { useMutation as useMutation21, useQueryClient as useQueryClient27 } from "@tanstack/react-query";
25059
25080
  import React9, { useCallback as useCallback32, useEffect as useEffect48 } from "react";
25060
25081
  import { useAccount, useDisconnect as useDisconnect2, useSignMessage as useSignMessage2 } from "wagmi";
25061
25082
  function WalletConnectHandler() {
25062
- const qc = useQueryClient26();
25083
+ const qc = useQueryClient27();
25063
25084
  const { callbacksRef } = useProviderConfig();
25064
25085
  const passportWalletAddress = useSession((st) => st.address);
25065
25086
  const { address: walletAddress, isConnected, chain, connector } = useAccount();
@@ -28119,14 +28140,14 @@ var init_rainbowkit = __esm({
28119
28140
 
28120
28141
  // src/context/RainbowKitContext.tsx
28121
28142
  import { darkTheme, lightTheme, RainbowKitProvider as NativeRainbowKitProvider } from "@rainbow-me/rainbowkit";
28122
- import { useMemo as useMemo13 } from "react";
28143
+ import { useMemo as useMemo15 } from "react";
28123
28144
  import { WagmiProvider } from "wagmi";
28124
28145
  import "@rainbow-me/rainbowkit/styles.css";
28125
28146
  import { Fragment as Fragment46, jsx as jsx122 } from "react/jsx-runtime";
28126
28147
  function RainbowKitProvider({ children }) {
28127
28148
  const config = useProviderConfig().config;
28128
28149
  const colorMode = useLayoutStore((st) => st.colorMode);
28129
- const rainbowConfig = useMemo13(
28150
+ const rainbowConfig = useMemo15(
28130
28151
  () => createRainbowConfig({
28131
28152
  projectId: config.current?.wallet?.walletConnectProjectId,
28132
28153
  allowedWallets: config.current?.wallet?.allowedWallets,
@@ -28140,7 +28161,7 @@ function RainbowKitProvider({ children }) {
28140
28161
  config.current?.wallet?.walletConnectProjectId
28141
28162
  ]
28142
28163
  );
28143
- const customTheme = useMemo13(() => {
28164
+ const customTheme = useMemo15(() => {
28144
28165
  if (!config.current?.wallet?.enabled) return {};
28145
28166
  return colorMode === "dark" ? {
28146
28167
  ...darkTheme(),
@@ -28201,7 +28222,7 @@ import {
28201
28222
  useCallback as useCallback33,
28202
28223
  useContext,
28203
28224
  useEffect as useEffect50,
28204
- useMemo as useMemo14,
28225
+ useMemo as useMemo16,
28205
28226
  useRef as useRef21
28206
28227
  } from "react";
28207
28228
  import { jsx as jsx124 } from "react/jsx-runtime";
@@ -28313,7 +28334,7 @@ function Provider(props) {
28313
28334
  console.error("[PROVIDER] Error setting up iframe manager:", error);
28314
28335
  }
28315
28336
  }, [projectId]);
28316
- const contextValue = useMemo14(
28337
+ const contextValue = useMemo16(
28317
28338
  () => ({
28318
28339
  config,
28319
28340
  updateConfig,
@@ -28466,7 +28487,7 @@ init_pro_mode();
28466
28487
  init_utils2();
28467
28488
  import { useQuery as useQuery26 } from "@tanstack/react-query";
28468
28489
  import { Cloud as Cloud4, Laptop as Laptop2, Loader as Loader35, Shield as Shield3 } from "lucide-react";
28469
- import { useEffect as useEffect51, useMemo as useMemo15 } from "react";
28490
+ import { useEffect as useEffect51, useMemo as useMemo17 } from "react";
28470
28491
  import { Fragment as Fragment47, jsx as jsx126, jsxs as jsxs111 } from "react/jsx-runtime";
28471
28492
  function getFormattedStatus(label, status, showStatus) {
28472
28493
  const isStatus = showStatus && status && status !== "idle" && status !== "ready";
@@ -28494,7 +28515,7 @@ function ConnectWalletButton(props) {
28494
28515
  queryFn: getUserProfile
28495
28516
  });
28496
28517
  const displayName = profile?.nicknameDisplay || profile?.displayName || jwtTokenManager2.getDisplayName();
28497
- const indicators = useMemo15(() => {
28518
+ const indicators = useMemo17(() => {
28498
28519
  const userId = session?.mpcUserId;
28499
28520
  if (!userId) return { server: false, local: false, backup: false };
28500
28521
  const server = jwtTokenManager2.getHasKeyshare() ?? false;
@@ -29571,7 +29592,7 @@ function useSendDirectTransaction() {
29571
29592
  init_SessionContext();
29572
29593
  init_account2();
29573
29594
  init_linkedProfiles();
29574
- import { useCallback as useCallback40, useMemo as useMemo16, useState as useState39 } from "react";
29595
+ import { useCallback as useCallback40, useMemo as useMemo18, useState as useState39 } from "react";
29575
29596
  import { encodeFunctionData as encodeFunctionData3, isAddress as isAddress4, parseEther as parseEther4, parseUnits as parseUnits3 } from "viem";
29576
29597
  var ERC20_TRANSFER_ABI2 = [
29577
29598
  {
@@ -29590,7 +29611,7 @@ function useTransferToLinkedWallet() {
29590
29611
  const [isPending, setIsPending] = useState39(false);
29591
29612
  const [error, setError] = useState39(null);
29592
29613
  const [userOpHash, setUserOpHash] = useState39(null);
29593
- const linkedWallets = useMemo16(
29614
+ const linkedWallets = useMemo18(
29594
29615
  () => (profiles || []).filter((p) => p.provider === "wallet" && p.externalId).map((p) => p.externalId),
29595
29616
  [profiles]
29596
29617
  );
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@embarkai/ui-kit",
3
- "version": "0.4.44",
3
+ "version": "0.4.46",
4
4
  "description": "React UI components and hooks for EmbarkAI authentication and Account Abstraction",
5
5
  "type": "module",
6
6
  "main": "./dist/index.cjs",