@matchain/matchid-sdk-react 0.1.48-alpha.1 → 0.1.48-alpha.2

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.
@@ -79,7 +79,7 @@ __export(components_exports, {
79
79
  });
80
80
 
81
81
  // src/components/EmailModal/index.tsx
82
- import { useEffect as useEffect11, useState as useState10 } from "react";
82
+ import { useEffect as useEffect13, useState as useState12 } from "react";
83
83
 
84
84
  // src/components/EmailModal/StepEmail.tsx
85
85
  import { useEffect, useMemo, useState } from "react";
@@ -97,12 +97,12 @@ var isValidEmail = (email) => {
97
97
  var isValidUsername = (username) => {
98
98
  return /^[a-zA-Z0-9_-]+$/.test(username);
99
99
  };
100
- function truncateAddress(address) {
101
- if (address.length <= 6) {
102
- return address;
100
+ function truncateAddress(address2) {
101
+ if (address2.length <= 6) {
102
+ return address2;
103
103
  }
104
- const start = address.slice(0, 4);
105
- const end = address.slice(-2);
104
+ const start = address2.slice(0, 4);
105
+ const end = address2.slice(-2);
106
106
  return `${start}...${end}`;
107
107
  }
108
108
  function getAppClientId() {
@@ -370,11 +370,11 @@ var unBindApi = ({ type }) => {
370
370
  data: { type }
371
371
  });
372
372
  };
373
- var unBindWalletApi = ({ address }) => {
373
+ var unBindWalletApi = ({ address: address2 }) => {
374
374
  return request_default({
375
375
  url: `/api/v1/wallet/unbind`,
376
376
  method: "POST",
377
- data: { address }
377
+ data: { address: address2 }
378
378
  });
379
379
  };
380
380
  var verifyPohApi = ({
@@ -432,7 +432,7 @@ var getWalletNonceApi = (data) => {
432
432
  };
433
433
  var loginByWalletApi = ({
434
434
  type,
435
- address,
435
+ address: address2,
436
436
  signature,
437
437
  message,
438
438
  connector_type,
@@ -441,7 +441,7 @@ var loginByWalletApi = ({
441
441
  return request_default({
442
442
  url: `/api/v1/login/wallet`,
443
443
  method: "POST",
444
- data: { type, address, signature, message, connector_type, wallet_client_type }
444
+ data: { type, address: address2, signature, message, connector_type, wallet_client_type }
445
445
  });
446
446
  };
447
447
  var getWalletInitApi = (data) => {
@@ -453,7 +453,7 @@ var getWalletInitApi = (data) => {
453
453
  };
454
454
  var toBindWalletApi = ({
455
455
  type,
456
- address,
456
+ address: address2,
457
457
  signature,
458
458
  message,
459
459
  connector_type,
@@ -462,7 +462,7 @@ var toBindWalletApi = ({
462
462
  return request_default({
463
463
  url: `/api/v1/wallet/bind`,
464
464
  method: "POST",
465
- data: { type, address, signature, message, connector_type, wallet_client_type }
465
+ data: { type, address: address2, signature, message, connector_type, wallet_client_type }
466
466
  });
467
467
  };
468
468
  var getAppConfigApi = () => {
@@ -562,7 +562,7 @@ var persistedState = persist(
562
562
  setTheme: (theme) => set({ theme }),
563
563
  setEndpoints: (endpoints) => set({ endpoints }),
564
564
  address: "",
565
- setAddress: (address) => set({ address }),
565
+ setAddress: (address2) => set({ address: address2 }),
566
566
  locale: "en",
567
567
  setLocale: (locale) => set({ locale }),
568
568
  wallet: {
@@ -579,7 +579,7 @@ var localStore = useLocalStore;
579
579
  var useLocalStore_default = useLocalStore;
580
580
 
581
581
  // src/hooks/useUserInfo.tsx
582
- import { useMemo as useMemo5 } from "react";
582
+ import { useMemo as useMemo6 } from "react";
583
583
 
584
584
  // src/MatchContext.tsx
585
585
  import { createContext as createContext3, useContext as useContext3 } from "react";
@@ -593,6 +593,7 @@ __export(hooks_exports, {
593
593
  useMatchEvents: () => useMatchEvents,
594
594
  useMatchWallet: () => useMatchWallet,
595
595
  useModal: () => useModal,
596
+ useReceipt: () => useReceipt,
596
597
  useToast: () => useToast,
597
598
  useUserInfo: () => useUserInfo,
598
599
  useWallet: () => useWallet
@@ -765,7 +766,7 @@ var useWalletModalStore = create3((set) => ({
765
766
  // src/hooks/useWallet.tsx
766
767
  var AppClientId = "react-sdk-" + getVersion();
767
768
  function useWallet() {
768
- const { address, wallet: walletConfig } = useLocalStore_default();
769
+ const { address: address2, wallet: walletConfig } = useLocalStore_default();
769
770
  const { walletReady } = useStore_default();
770
771
  const { open: openHashPanel } = useHashPanelStore();
771
772
  const isRecovered = async () => {
@@ -813,8 +814,8 @@ function useWallet() {
813
814
  }
814
815
  };
815
816
  const evmAccount = useMemo2(() => {
816
- return address ? toAccount({
817
- address,
817
+ return address2 ? toAccount({
818
+ address: address2,
818
819
  async signMessage({ message }) {
819
820
  return await signMessage2({
820
821
  message,
@@ -845,7 +846,7 @@ function useWallet() {
845
846
  return "0x";
846
847
  }
847
848
  }) : void 0;
848
- }, [address]);
849
+ }, [address2]);
849
850
  useEffect3(() => {
850
851
  matchlog_default.log("qwe-evmAccount", evmAccount);
851
852
  }, [evmAccount]);
@@ -938,7 +939,7 @@ function useWallet() {
938
939
  });
939
940
  };
940
941
  const writeContract = async (parameters2) => {
941
- const { abi, address: address2, args, dataSuffix, functionName, ...request3 } = parameters2;
942
+ const { abi, address: address3, args, dataSuffix, functionName, ...request3 } = parameters2;
942
943
  const data = encodeFunctionData({
943
944
  abi,
944
945
  args,
@@ -946,7 +947,7 @@ function useWallet() {
946
947
  });
947
948
  return await sendTransaction({
948
949
  data: `${data}${dataSuffix ? dataSuffix.replace("0x", "") : ""}`,
949
- to: address2,
950
+ to: address3,
950
951
  ...request3
951
952
  });
952
953
  };
@@ -960,7 +961,7 @@ function useWallet() {
960
961
  return {
961
962
  walletReady,
962
963
  evmAccount,
963
- address,
964
+ address: address2,
964
965
  signMessage: signMessage2,
965
966
  signTransaction,
966
967
  isRecovered,
@@ -1236,19 +1237,20 @@ function useMatchChain() {
1236
1237
 
1237
1238
  // src/hooks/useMatchWallet.tsx
1238
1239
  import { QRCode } from "react-qrcode";
1240
+ import { useEffect as useEffect6, useState as useState7 } from "react";
1239
1241
  import { jsx as jsx6, jsxs as jsxs5 } from "react/jsx-runtime";
1240
1242
  function useMatchWallet() {
1241
1243
  const modal = useModal();
1242
- const { address } = useWallet();
1244
+ const { address: address2 } = useWallet();
1243
1245
  const chain = useMatchChain();
1244
1246
  const [copied, setCopied] = useCopyClipboard();
1245
1247
  const toast = useToast();
1246
1248
  const onCopy = () => {
1247
- setCopied(address);
1249
+ setCopied(address2);
1248
1250
  toast.success("Copied!");
1249
1251
  };
1250
1252
  const showReceiveModal = () => {
1251
- const chainLink = chain.explorerLink("address/" + address);
1253
+ const chainLink = chain.explorerLink("address/" + address2);
1252
1254
  const ReceiveModal = () => {
1253
1255
  return /* @__PURE__ */ jsxs5("div", { className: `matchid-receive-modal`, children: [
1254
1256
  /* @__PURE__ */ jsxs5("div", { className: "matchid-receive-container", children: [
@@ -1258,7 +1260,7 @@ function useMatchWallet() {
1258
1260
  {
1259
1261
  margin: "0",
1260
1262
  className: `matchid-qr-code`,
1261
- value: address
1263
+ value: address2
1262
1264
  }
1263
1265
  ) }),
1264
1266
  /* @__PURE__ */ jsx6(
@@ -1267,7 +1269,7 @@ function useMatchWallet() {
1267
1269
  href: chainLink,
1268
1270
  target: "_blank",
1269
1271
  className: `matchid-receive-link`,
1270
- children: address
1272
+ children: address2
1271
1273
  }
1272
1274
  )
1273
1275
  ] }),
@@ -1284,8 +1286,153 @@ function useMatchWallet() {
1284
1286
  };
1285
1287
  }
1286
1288
 
1289
+ // src/hooks/useReceipt.tsx
1290
+ import { useState as useState8, useCallback as useCallback4, useEffect as useEffect7 } from "react";
1291
+ import { useQuery as useQuery2 } from "@tanstack/react-query";
1292
+ import { createPublicClient, defineChain, http } from "viem";
1293
+ var CACHE_TTL = 86400 * 30 * 1e3;
1294
+ var MAX_CACHE_SIZE = 500;
1295
+ var STORAGE_KEY = "match_receipt_logs";
1296
+ function useReceiptCache() {
1297
+ const [cache, setCache] = useState8(/* @__PURE__ */ new Map());
1298
+ const isLocalStorageAvailable = (() => {
1299
+ try {
1300
+ const testKey = "__test__";
1301
+ localStorage.setItem(testKey, "1");
1302
+ localStorage.removeItem(testKey);
1303
+ return true;
1304
+ } catch (e) {
1305
+ return false;
1306
+ }
1307
+ })();
1308
+ useEffect7(() => {
1309
+ if (isLocalStorageAvailable) {
1310
+ try {
1311
+ const storedData = localStorage.getItem(STORAGE_KEY);
1312
+ if (storedData) {
1313
+ try {
1314
+ const parsed = JSON.parse(storedData);
1315
+ const now = Date.now();
1316
+ const validEntries = Object.entries(parsed).filter(([_, entry]) => typeof entry === "object" && entry !== null && "timestamp" in entry && now - entry.timestamp <= CACHE_TTL).map(([key, entry]) => [key, entry]);
1317
+ setCache(new Map(validEntries));
1318
+ } catch (e) {
1319
+ console.error("Failed to parse cache from localStorage:", e);
1320
+ }
1321
+ }
1322
+ } catch (e) {
1323
+ console.error("Failed to load cache from localStorage:", e);
1324
+ }
1325
+ }
1326
+ }, []);
1327
+ const updateLocalStorage = useCallback4((updatedCache) => {
1328
+ if (isLocalStorageAvailable) {
1329
+ try {
1330
+ const storedData = localStorage.getItem(STORAGE_KEY);
1331
+ let parsed = {};
1332
+ if (storedData) {
1333
+ parsed = JSON.parse(storedData);
1334
+ }
1335
+ updatedCache.forEach((entry, key) => {
1336
+ parsed[key] = entry;
1337
+ });
1338
+ localStorage.setItem(STORAGE_KEY, JSON.stringify(parsed));
1339
+ } catch (e) {
1340
+ console.error("Failed to update localStorage:", e);
1341
+ }
1342
+ }
1343
+ }, []);
1344
+ const set = useCallback4((key, value) => {
1345
+ const now = Date.now();
1346
+ const newCache = new Map(cache);
1347
+ newCache.forEach((entry, k) => {
1348
+ if (now - entry.timestamp > CACHE_TTL) {
1349
+ newCache.delete(k);
1350
+ }
1351
+ });
1352
+ if (newCache.size >= MAX_CACHE_SIZE) {
1353
+ const firstKey = newCache.keys().next().value;
1354
+ if (firstKey !== void 0) {
1355
+ newCache.delete(firstKey);
1356
+ }
1357
+ }
1358
+ newCache.set(key, { value, timestamp: now });
1359
+ setCache(newCache);
1360
+ updateLocalStorage(newCache);
1361
+ }, [cache, updateLocalStorage]);
1362
+ const get = useCallback4((key) => {
1363
+ const entry = cache.get(key);
1364
+ if (entry) {
1365
+ if (Date.now() - entry.timestamp > CACHE_TTL) {
1366
+ const newCache = new Map(cache);
1367
+ newCache.delete(key);
1368
+ setCache(newCache);
1369
+ updateLocalStorage(newCache);
1370
+ return void 0;
1371
+ }
1372
+ return entry.value;
1373
+ }
1374
+ return void 0;
1375
+ }, [cache, updateLocalStorage]);
1376
+ const del = useCallback4((key) => {
1377
+ if (cache.has(key)) {
1378
+ const newCache = new Map(cache);
1379
+ newCache.delete(key);
1380
+ setCache(newCache);
1381
+ updateLocalStorage(newCache);
1382
+ }
1383
+ }, [cache, updateLocalStorage]);
1384
+ const clear = useCallback4(() => {
1385
+ setCache(/* @__PURE__ */ new Map());
1386
+ if (isLocalStorageAvailable) {
1387
+ localStorage.removeItem(STORAGE_KEY);
1388
+ }
1389
+ }, [isLocalStorageAvailable]);
1390
+ return { set, get, del, clear };
1391
+ }
1392
+ function useReceipt({
1393
+ chainId,
1394
+ hash
1395
+ }) {
1396
+ const { list } = useMatchChain();
1397
+ const cache = useReceiptCache();
1398
+ const chain = list?.find((item) => item.id === chainId);
1399
+ const [shouldRefetch, setShouldRefetch] = useState8(true);
1400
+ const query = useQuery2({
1401
+ queryKey: ["match-tx-receipt", hash, chain],
1402
+ queryFn: async () => {
1403
+ if (!chain || !hash) return false;
1404
+ const cacheKey = `${chain.id}-${hash}`;
1405
+ if (cache.get(cacheKey)) {
1406
+ return cache.get(cacheKey);
1407
+ }
1408
+ try {
1409
+ const publicClient = createPublicClient({
1410
+ //@ts-ignore
1411
+ chain: defineChain(chain),
1412
+ transport: http()
1413
+ });
1414
+ const receipt = await publicClient.getTransaction({ hash });
1415
+ if (!receipt) {
1416
+ return false;
1417
+ }
1418
+ cache.set(cacheKey, receipt);
1419
+ return receipt;
1420
+ } catch (e) {
1421
+ return false;
1422
+ }
1423
+ },
1424
+ refetchInterval: shouldRefetch ? 1e4 : false
1425
+ });
1426
+ useEffect7(() => {
1427
+ if (query.data) {
1428
+ setShouldRefetch(false);
1429
+ }
1430
+ }, [query.data]);
1431
+ return query;
1432
+ }
1433
+
1287
1434
  // src/components/CEXBindModal/index.tsx
1288
- import { useEffect as useEffect6, useMemo as useMemo4, useState as useState7 } from "react";
1435
+ import { useEffect as useEffect8, useMemo as useMemo5, useState as useState9 } from "react";
1289
1436
  import { FormattedMessage as FormattedMessage2, useIntl as useIntl2 } from "react-intl";
1290
1437
  import { jsx as jsx7, jsxs as jsxs6 } from "react/jsx-runtime";
1291
1438
  function CEXBindModal({
@@ -1296,16 +1443,16 @@ function CEXBindModal({
1296
1443
  }) {
1297
1444
  const intl = useIntl2();
1298
1445
  const { events } = useMatch();
1299
- const [APIPassphrase, setAPIPassphrase] = useState7("");
1446
+ const [APIPassphrase, setAPIPassphrase] = useState9("");
1300
1447
  const { refreshOverview } = useUserInfo();
1301
- const [loading, setLoading] = useState7(false);
1302
- const [key, setKey] = useState7("");
1303
- const [secret, setSecret] = useState7("");
1304
- const [error, setError] = useState7("");
1305
- const needPassphrase = useMemo4(() => {
1448
+ const [loading, setLoading] = useState9(false);
1449
+ const [key, setKey] = useState9("");
1450
+ const [secret, setSecret] = useState9("");
1451
+ const [error, setError] = useState9("");
1452
+ const needPassphrase = useMemo5(() => {
1306
1453
  return ["bitget", "okx"].includes(type.toLowerCase());
1307
1454
  }, [type]);
1308
- useEffect6(() => {
1455
+ useEffect8(() => {
1309
1456
  if (isOpen) {
1310
1457
  setSecret("");
1311
1458
  setKey("");
@@ -1485,7 +1632,7 @@ var Providers = ({ children }) => {
1485
1632
  var context_default = Providers;
1486
1633
 
1487
1634
  // src/hooks/useWalletInit.ts
1488
- import { useEffect as useEffect7, useRef } from "react";
1635
+ import { useEffect as useEffect9, useRef } from "react";
1489
1636
 
1490
1637
  // src/utils/wallet.ts
1491
1638
  var sendMessage = ({ method, data, resolve, reject, timeout }) => {
@@ -1519,10 +1666,10 @@ function useWalletInit({
1519
1666
  const { endpoints, token, overview, setWallet, wallet, appid, locale, refreshOverview } = useLocalStore_default();
1520
1667
  const { setWalletReady, walletReady } = useStore_default();
1521
1668
  const iframeReadyRef = useRef(walletReady);
1522
- useEffect7(() => {
1669
+ useEffect9(() => {
1523
1670
  setWallet(config);
1524
1671
  }, [config]);
1525
- useEffect7(() => {
1672
+ useEffect9(() => {
1526
1673
  matchlog_default.log("sdk.mpc.status", walletReady, iframeReadyRef.current);
1527
1674
  iframeReadyRef.current = walletReady;
1528
1675
  if (iframeReadyRef.current) {
@@ -1539,7 +1686,7 @@ function useWalletInit({
1539
1686
  onReady();
1540
1687
  }
1541
1688
  }, [walletReady]);
1542
- useEffect7(() => {
1689
+ useEffect9(() => {
1543
1690
  if (!endpoints.auth || !appid || !token || !config) {
1544
1691
  const existingIframe = getWalletIframe();
1545
1692
  if (existingIframe) {
@@ -1639,7 +1786,7 @@ function useWalletInit({
1639
1786
  }
1640
1787
  }
1641
1788
  }, [endpoints.auth, appid, token, config]);
1642
- useEffect7(() => {
1789
+ useEffect9(() => {
1643
1790
  const messageHandle = async (e) => {
1644
1791
  if (e.origin !== endpoints.auth.substring(0, endpoints.auth.length - 1)) {
1645
1792
  return;
@@ -1720,7 +1867,7 @@ function useWalletInit({
1720
1867
  }
1721
1868
 
1722
1869
  // src/hooks/useInit.tsx
1723
- import { useEffect as useEffect8, useRef as useRef2 } from "react";
1870
+ import { useEffect as useEffect10, useRef as useRef2 } from "react";
1724
1871
  function useInit({
1725
1872
  theme,
1726
1873
  appid,
@@ -1744,19 +1891,19 @@ function useInit({
1744
1891
  const searchParams = new URLSearchParams(window.location.search);
1745
1892
  const matchToken = searchParams.get("matchToken");
1746
1893
  const realEndpoints = endpoints || env_default.endpoints;
1747
- useEffect8(() => {
1894
+ useEffect10(() => {
1748
1895
  setTheme(theme);
1749
1896
  }, [theme]);
1750
- useEffect8(() => {
1897
+ useEffect10(() => {
1751
1898
  setAppid(appid);
1752
1899
  }, [appid]);
1753
- useEffect8(() => {
1900
+ useEffect10(() => {
1754
1901
  setEndpoints(realEndpoints);
1755
1902
  }, [realEndpoints]);
1756
- useEffect8(() => {
1903
+ useEffect10(() => {
1757
1904
  setLocale(locale || "en");
1758
1905
  }, [locale]);
1759
- useEffect8(() => {
1906
+ useEffect10(() => {
1760
1907
  if (matchToken) {
1761
1908
  const tokenData = JSON.parse(atob(matchToken));
1762
1909
  if (tokenData && tokenData.mid && tokenData.token) {
@@ -1767,7 +1914,7 @@ function useInit({
1767
1914
  }
1768
1915
  }
1769
1916
  }, [matchToken]);
1770
- useEffect8(() => {
1917
+ useEffect10(() => {
1771
1918
  const onLoginMessage = (event) => {
1772
1919
  const res = event.data;
1773
1920
  if (res.event === "login" && res.data && (res.data.token || res.data.token_type && res.data.access_token)) {
@@ -1804,7 +1951,7 @@ function useInit({
1804
1951
  overviewLoadingRef.current = false;
1805
1952
  }
1806
1953
  };
1807
- useEffect8(() => {
1954
+ useEffect10(() => {
1808
1955
  if (token) {
1809
1956
  loadOverview();
1810
1957
  }
@@ -2375,7 +2522,7 @@ function useUserInfo() {
2375
2522
  logout: logoutStore,
2376
2523
  setOverview,
2377
2524
  overview,
2378
- address,
2525
+ address: address2,
2379
2526
  endpoints,
2380
2527
  locale,
2381
2528
  refreshOverview
@@ -2387,7 +2534,7 @@ function useUserInfo() {
2387
2534
  const { open: BTCOpen } = useBTCModalStore();
2388
2535
  const { open: CEXBindOpen } = useCEXBindModalStore();
2389
2536
  const walletModalStore = useWalletModalStore();
2390
- const isLogin = useMemo5(() => !!token && !!overview, [token, overview]);
2537
+ const isLogin = useMemo6(() => !!token && !!overview, [token, overview]);
2391
2538
  const logout = async () => {
2392
2539
  try {
2393
2540
  await toLogoutApi();
@@ -2603,7 +2750,7 @@ function useUserInfo() {
2603
2750
  token,
2604
2751
  mid,
2605
2752
  did,
2606
- address,
2753
+ address: address2,
2607
2754
  isLogin,
2608
2755
  logout,
2609
2756
  getLoginEmailCode,
@@ -2619,7 +2766,7 @@ function useUserInfo() {
2619
2766
  }
2620
2767
 
2621
2768
  // src/components/EmailModal/StepVerify.tsx
2622
- import { useEffect as useEffect10, useMemo as useMemo6, useRef as useRef3, useState as useState9 } from "react";
2769
+ import { useEffect as useEffect12, useMemo as useMemo7, useRef as useRef3, useState as useState11 } from "react";
2623
2770
 
2624
2771
  // src/config/index.tsx
2625
2772
  var EMAIL_INTERVAL = 60;
@@ -2631,12 +2778,12 @@ import { jsx as jsx11, jsxs as jsxs8 } from "react/jsx-runtime";
2631
2778
  function StepVerify(props) {
2632
2779
  const intl = useIntl3();
2633
2780
  const { getLoginEmailCode, loginByEmail } = useUserInfo();
2634
- const [error, setError] = useState9("");
2635
- const [code, setCode] = useState9("");
2636
- const [sending, setSending] = useState9(false);
2637
- const [submitting, setSubmitting] = useState9(false);
2781
+ const [error, setError] = useState11("");
2782
+ const [code, setCode] = useState11("");
2783
+ const [sending, setSending] = useState11(false);
2784
+ const [submitting, setSubmitting] = useState11(false);
2638
2785
  const sendTimeRef = useRef3(0);
2639
- const [sendBtnText, setSendBtnText] = useState9(intl.formatMessage({
2786
+ const [sendBtnText, setSendBtnText] = useState11(intl.formatMessage({
2640
2787
  id: "send"
2641
2788
  }));
2642
2789
  const intervalTime = EMAIL_INTERVAL;
@@ -2672,7 +2819,7 @@ function StepVerify(props) {
2672
2819
  setSending(false);
2673
2820
  }
2674
2821
  };
2675
- useEffect10(() => {
2822
+ useEffect12(() => {
2676
2823
  onSend();
2677
2824
  return () => {
2678
2825
  if (intervalRef.current) {
@@ -2680,7 +2827,7 @@ function StepVerify(props) {
2680
2827
  }
2681
2828
  };
2682
2829
  }, []);
2683
- const canContinue = useMemo6(() => {
2830
+ const canContinue = useMemo7(() => {
2684
2831
  return code.length === codeLength;
2685
2832
  }, [code]);
2686
2833
  const onContinue = async () => {
@@ -2757,10 +2904,10 @@ function EmailModal({
2757
2904
  onBack,
2758
2905
  onLogin
2759
2906
  }) {
2760
- const [step, setStep] = useState10("input");
2761
- const [emailVal, setEmailVal] = useState10("");
2907
+ const [step, setStep] = useState12("input");
2908
+ const [emailVal, setEmailVal] = useState12("");
2762
2909
  const intl = useIntl4();
2763
- useEffect11(() => {
2910
+ useEffect13(() => {
2764
2911
  if (!isOpen) {
2765
2912
  setStep("input");
2766
2913
  setEmailVal("");
@@ -2785,13 +2932,13 @@ function EmailModal({
2785
2932
  }
2786
2933
 
2787
2934
  // src/components/LoginBox/index.tsx
2788
- import { useMemo as useMemo7, useState as useState11 } from "react";
2935
+ import { useMemo as useMemo8, useState as useState13 } from "react";
2789
2936
  import { FormattedMessage as FormattedMessage4, useIntl as useIntl5 } from "react-intl";
2790
2937
 
2791
2938
  // src/hooks/useAppConfig.ts
2792
- import { useQuery as useQuery2 } from "@tanstack/react-query";
2939
+ import { useQuery as useQuery3 } from "@tanstack/react-query";
2793
2940
  function useAppConfig() {
2794
- const query = useQuery2({
2941
+ const query = useQuery3({
2795
2942
  queryKey: ["appConfig"],
2796
2943
  queryFn: async () => {
2797
2944
  const res = await getAppConfigApi();
@@ -2856,7 +3003,7 @@ function LoginBox({
2856
3003
  inModal = false
2857
3004
  }) {
2858
3005
  const config = useAppConfig();
2859
- const methodConfig = useMemo7(() => {
3006
+ const methodConfig = useMemo8(() => {
2860
3007
  if (recommendMethods || methods || walletMethods) {
2861
3008
  return {
2862
3009
  recommendMethods: recommendMethods ? recommendMethods : walletMethods ? ["wallet"] : [],
@@ -2898,9 +3045,9 @@ function LoginBox({
2898
3045
  walletMethods: walletMethodList
2899
3046
  };
2900
3047
  }, [config.platform, recommendMethods, methods, walletMethods]);
2901
- const [emailOpen, setEmailOpen] = useState11(false);
3048
+ const [emailOpen, setEmailOpen] = useState13(false);
2902
3049
  const { login } = useUserInfo();
2903
- const [showWallet, setShowWallet] = useState11(false);
3050
+ const [showWallet, setShowWallet] = useState13(false);
2904
3051
  const intl = useIntl5();
2905
3052
  const isDownMd = useDownMd();
2906
3053
  const methodMap = {
@@ -3048,7 +3195,7 @@ function LoginBox({
3048
3195
  }
3049
3196
 
3050
3197
  // src/components/LoginButton/index.tsx
3051
- import { useState as useState13 } from "react";
3198
+ import { useState as useState15 } from "react";
3052
3199
 
3053
3200
  // src/components/LoginPanel/index.tsx
3054
3201
  import { FormattedMessage as FormattedMessage5 } from "react-intl";
@@ -3091,7 +3238,7 @@ function LoginModal({
3091
3238
  }
3092
3239
 
3093
3240
  // src/components/UserPopover/index.tsx
3094
- import { useState as useState12 } from "react";
3241
+ import { useState as useState14 } from "react";
3095
3242
 
3096
3243
  // src/assets/icon/ProfileIcon.tsx
3097
3244
  import { jsx as jsx16, jsxs as jsxs11 } from "react/jsx-runtime";
@@ -3122,8 +3269,8 @@ function ProfileIcon({ size = 24, color = "black", ...props }) {
3122
3269
  import { FormattedMessage as FormattedMessage6, useIntl as useIntl6 } from "react-intl";
3123
3270
  import { jsx as jsx17, jsxs as jsxs12 } from "react/jsx-runtime";
3124
3271
  function UserContent() {
3125
- const { logout, address, username } = useUserInfo();
3126
- const [logouting, setLogouting] = useState12(false);
3272
+ const { logout, address: address2, username } = useUserInfo();
3273
+ const [logouting, setLogouting] = useState14(false);
3127
3274
  const onLogout = async () => {
3128
3275
  if (logouting) return;
3129
3276
  try {
@@ -3152,14 +3299,14 @@ function UserContent() {
3152
3299
  const UserDivider = () => {
3153
3300
  return /* @__PURE__ */ jsx17("div", { className: `matchid-user-popover-divider` });
3154
3301
  };
3155
- const [usernameOpen, setUsernameOpen] = useState12(false);
3302
+ const [usernameOpen, setUsernameOpen] = useState14(false);
3156
3303
  const [copied, setCopied] = useCopyClipboard();
3157
3304
  const intl = useIntl6();
3158
3305
  return /* @__PURE__ */ jsxs12("div", { className: "matchid-user-popover-content", children: [
3159
3306
  /* @__PURE__ */ jsxs12("div", { className: "matchid-user-popover-list", children: [
3160
3307
  /* @__PURE__ */ jsx17(UserItem, { onClick: () => {
3161
- setCopied(address);
3162
- }, icon: copied ? /* @__PURE__ */ jsx17(CheckIcon, { size: 20, color: "#0ecb81" }) : /* @__PURE__ */ jsx17(CopyIcon, { size: 20, color: "var(--icon-color)" }), rightIcon: /* @__PURE__ */ jsx17(CheckIcon, { size: 20, color: "var(--icon-color)" }), children: truncateAddress(address) }),
3308
+ setCopied(address2);
3309
+ }, icon: copied ? /* @__PURE__ */ jsx17(CheckIcon, { size: 20, color: "#0ecb81" }) : /* @__PURE__ */ jsx17(CopyIcon, { size: 20, color: "var(--icon-color)" }), rightIcon: /* @__PURE__ */ jsx17(CheckIcon, { size: 20, color: "var(--icon-color)" }), children: truncateAddress(address2) }),
3163
3310
  /* @__PURE__ */ jsx17(UserDivider, {}),
3164
3311
  /* @__PURE__ */ jsx17(UserItem, { onClick: () => {
3165
3312
  setUsernameOpen(true);
@@ -3198,7 +3345,7 @@ function LoginButton({
3198
3345
  }) {
3199
3346
  const intl = useIntl7();
3200
3347
  const { isLogin, username } = useUserInfo();
3201
- const [loginOpen, setLoginOpen] = useState13(false);
3348
+ const [loginOpen, setLoginOpen] = useState15(false);
3202
3349
  if (!isLogin) {
3203
3350
  return /* @__PURE__ */ jsxs13(Fragment3, { children: [
3204
3351
  /* @__PURE__ */ jsx18(
@@ -3226,7 +3373,7 @@ function LoginButton({
3226
3373
  }
3227
3374
 
3228
3375
  // src/components/UsernameModal/index.tsx
3229
- import { useEffect as useEffect12, useMemo as useMemo8, useState as useState14 } from "react";
3376
+ import { useEffect as useEffect14, useMemo as useMemo9, useState as useState16 } from "react";
3230
3377
 
3231
3378
  // src/assets/icon/InfoRoundIcon.tsx
3232
3379
  import { jsx as jsx19, jsxs as jsxs14 } from "react/jsx-runtime";
@@ -3270,23 +3417,23 @@ function UsernameModal({
3270
3417
  }) {
3271
3418
  const { username, refreshOverview } = useUserInfo();
3272
3419
  const { isLogin } = useUserInfo();
3273
- const [val, setVal] = useState14(username);
3274
- const [error, setError] = useState14("");
3420
+ const [val, setVal] = useState16(username);
3421
+ const [error, setError] = useState16("");
3275
3422
  const isDownMd = useDownMd();
3276
- useEffect12(() => {
3423
+ useEffect14(() => {
3277
3424
  if (isOpen) {
3278
3425
  setVal(username);
3279
3426
  setError("");
3280
3427
  }
3281
3428
  }, [isOpen]);
3282
- const isValid = useMemo8(() => {
3429
+ const isValid = useMemo9(() => {
3283
3430
  return isValidUsername(val);
3284
3431
  }, [val]);
3285
- const isLength = useMemo8(() => {
3432
+ const isLength = useMemo9(() => {
3286
3433
  return val.length >= 2 && val.length <= 32;
3287
3434
  }, [val]);
3288
3435
  const isSafe = isValid && isLength;
3289
- const [isSubmitting, setIsSubmitting] = useState14(false);
3436
+ const [isSubmitting, setIsSubmitting] = useState16(false);
3290
3437
  const onSubmit = async () => {
3291
3438
  if (isSubmitting) return;
3292
3439
  try {
@@ -3349,7 +3496,7 @@ function UsernameModal({
3349
3496
  }
3350
3497
 
3351
3498
  // src/components/SOLModal/index.tsx
3352
- import React7, { useEffect as useEffect13, useState as useState15 } from "react";
3499
+ import React7, { useEffect as useEffect15, useState as useState17 } from "react";
3353
3500
  import { clusterApiUrl } from "@solana/web3.js";
3354
3501
  import { useWallet as useWallet2, WalletProvider, ConnectionProvider } from "@solana/wallet-adapter-react";
3355
3502
  import { WalletModalProvider, useWalletModal } from "@solana/wallet-adapter-react-ui";
@@ -3403,7 +3550,7 @@ import "@solana/wallet-adapter-react-ui/styles.css";
3403
3550
  import { useIntl as useIntl9 } from "react-intl";
3404
3551
 
3405
3552
  // src/components/WalletModalContent/index.tsx
3406
- import { useMemo as useMemo9 } from "react";
3553
+ import { useMemo as useMemo10 } from "react";
3407
3554
 
3408
3555
  // src/assets/wallet.ts
3409
3556
  var walletErrorImage = "data:image/png;base64,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";
@@ -3421,10 +3568,10 @@ function WalletModalContent({
3421
3568
  setError,
3422
3569
  setVisible,
3423
3570
  visible,
3424
- address,
3571
+ address: address2,
3425
3572
  connected
3426
3573
  }) {
3427
- const pageData = useMemo9(() => {
3574
+ const pageData = useMemo10(() => {
3428
3575
  if (status == "success") {
3429
3576
  return {
3430
3577
  btnText: "Disconnect Wallet",
@@ -3482,7 +3629,7 @@ function WalletModalContent({
3482
3629
  text: "Please Connect your wallet",
3483
3630
  statusImage: walletConnectImage
3484
3631
  };
3485
- }, [visible, connected, status, error, address]);
3632
+ }, [visible, connected, status, error, address2]);
3486
3633
  return /* @__PURE__ */ jsx21("div", { className: "matchid-wallet-container", children: /* @__PURE__ */ jsxs16("div", { className: `matchid-wallet-box`, children: [
3487
3634
  /* @__PURE__ */ jsxs16("div", { className: `matchid-wallet-content`, children: [
3488
3635
  /* @__PURE__ */ jsx21("img", { src: pageData.statusImage }),
@@ -3511,17 +3658,17 @@ function WalletContent({
3511
3658
  const { setVisible, visible } = useWalletModal();
3512
3659
  const wallet = useWallet2();
3513
3660
  const { events, login } = useMatch();
3514
- const [status, setStatus] = useState15("");
3661
+ const [status, setStatus] = useState17("");
3515
3662
  const statusRef = React7.useRef(status);
3516
- const [error, setError] = useState15("");
3517
- useEffect13(() => {
3663
+ const [error, setError] = useState17("");
3664
+ useEffect15(() => {
3518
3665
  const init = async () => {
3519
3666
  await wallet.disconnect();
3520
3667
  setVisible(true);
3521
3668
  };
3522
3669
  init();
3523
3670
  }, []);
3524
- useEffect13(() => {
3671
+ useEffect15(() => {
3525
3672
  if (wallet.connected) {
3526
3673
  console.log("wallet.connected", wallet.connected);
3527
3674
  toLoginInWallet();
@@ -3529,14 +3676,14 @@ function WalletContent({
3529
3676
  }, [wallet.connected]);
3530
3677
  const toLoginInWallet = async () => {
3531
3678
  if (statusRef.current) return;
3532
- const address = wallet.publicKey?.toBase58() || "";
3679
+ const address2 = wallet.publicKey?.toBase58() || "";
3533
3680
  try {
3534
3681
  setStatus("nonce");
3535
3682
  statusRef.current = "nonce";
3536
3683
  const res = type == "bind" ? await getWalletInitApi({
3537
- address,
3684
+ address: address2,
3538
3685
  type: "SOL"
3539
- }) : await getWalletNonceApi({ address, type: "SOL" });
3686
+ }) : await getWalletNonceApi({ address: address2, type: "SOL" });
3540
3687
  if (!isSuccess(res)) {
3541
3688
  throw new Error(res.message);
3542
3689
  }
@@ -3549,7 +3696,7 @@ function WalletContent({
3549
3696
  const signedMessage = await wallet.signMessage(encodedMessage);
3550
3697
  let obj = {
3551
3698
  type: "SOL",
3552
- address,
3699
+ address: address2,
3553
3700
  signature: Buffer.from(signedMessage).toString("base64"),
3554
3701
  message,
3555
3702
  connector_type: "SOL",
@@ -3657,7 +3804,7 @@ function SOLModal(props) {
3657
3804
  }
3658
3805
 
3659
3806
  // src/components/TRONModal/index.tsx
3660
- import React8, { useEffect as useEffect15, useMemo as useMemo10, useState as useState17 } from "react";
3807
+ import React8, { useEffect as useEffect17, useMemo as useMemo11, useState as useState19 } from "react";
3661
3808
  import { useIntl as useIntl10 } from "react-intl";
3662
3809
 
3663
3810
  // src/lib/tron/TronLinkAdapter.ts
@@ -3691,7 +3838,7 @@ var TronLinkAdapter = class {
3691
3838
  };
3692
3839
 
3693
3840
  // src/hooks/useTRONWallet.ts
3694
- import { useEffect as useEffect14, useState as useState16 } from "react";
3841
+ import { useEffect as useEffect16, useState as useState18 } from "react";
3695
3842
 
3696
3843
  // src/lib/tron/BitgetAdapter.ts
3697
3844
  var BitgetAdapter = class {
@@ -3736,9 +3883,9 @@ var OKXAdapter = class {
3736
3883
  // src/hooks/useTRONWallet.ts
3737
3884
  var useTRONWallet = () => {
3738
3885
  const wallets2 = [new TronLinkAdapter(), new BitgetAdapter(), new OKXAdapter()];
3739
- const [installedWallets, setInstalledWallets] = useState16([]);
3740
- const [address, setAddress] = useState16(null);
3741
- useEffect14(() => {
3886
+ const [installedWallets, setInstalledWallets] = useState18([]);
3887
+ const [address2, setAddress] = useState18(null);
3888
+ useEffect16(() => {
3742
3889
  const getInstalled = async () => {
3743
3890
  const installed = await Promise.all(wallets2.map((wallet2) => wallet2.isInstalled().then((isInstalled) => ({
3744
3891
  wallet: wallet2,
@@ -3748,11 +3895,11 @@ var useTRONWallet = () => {
3748
3895
  };
3749
3896
  getInstalled();
3750
3897
  }, []);
3751
- const [wallet, chooseWallet] = useState16(null);
3898
+ const [wallet, chooseWallet] = useState18(null);
3752
3899
  const onConnect = async () => {
3753
3900
  setAddress(await wallet.connect());
3754
3901
  };
3755
- useEffect14(() => {
3902
+ useEffect16(() => {
3756
3903
  if (!wallet) {
3757
3904
  setAddress(null);
3758
3905
  }
@@ -3762,7 +3909,7 @@ var useTRONWallet = () => {
3762
3909
  wallets: wallets2,
3763
3910
  chooseWallet,
3764
3911
  wallet,
3765
- address,
3912
+ address: address2,
3766
3913
  onConnect
3767
3914
  };
3768
3915
  };
@@ -3776,19 +3923,19 @@ function TRONConnectModal({
3776
3923
  }) {
3777
3924
  const isDownMd = useDownMd();
3778
3925
  const intl = useIntl10();
3779
- const { wallets: wallets2, installedWallets, chooseWallet, wallet, address, onConnect } = useTRONWallet();
3926
+ const { wallets: wallets2, installedWallets, chooseWallet, wallet, address: address2, onConnect } = useTRONWallet();
3780
3927
  const iconMaps = {
3781
3928
  tronlink: /* @__PURE__ */ jsx23(TronLinkIcon, { size: isDownMd ? 36 : 40 }),
3782
3929
  bitget: /* @__PURE__ */ jsx23(BitgetIcon, { size: isDownMd ? 36 : 40 }),
3783
3930
  okx: /* @__PURE__ */ jsx23(OKXIcon, { size: isDownMd ? 36 : 40 })
3784
3931
  };
3785
3932
  const { events, login } = useMatch();
3786
- const [status, setStatus] = useState17("");
3933
+ const [status, setStatus] = useState19("");
3787
3934
  const statusRef = React8.useRef(status);
3788
- const [error, setError] = useState17("");
3789
- const connected = useMemo10(() => {
3790
- return !!address;
3791
- }, [address]);
3935
+ const [error, setError] = useState19("");
3936
+ const connected = useMemo11(() => {
3937
+ return !!address2;
3938
+ }, [address2]);
3792
3939
  const disconnect = async () => {
3793
3940
  setStatus("");
3794
3941
  chooseWallet(null);
@@ -3802,11 +3949,11 @@ function TRONConnectModal({
3802
3949
  setError("");
3803
3950
  };
3804
3951
  const toLoginInWallet = async () => {
3805
- if (statusRef.current || !address || !wallet) return;
3952
+ if (statusRef.current || !address2 || !wallet) return;
3806
3953
  try {
3807
3954
  setStatus("nonce");
3808
3955
  statusRef.current = "nonce";
3809
- const res = type == "bind" ? await getWalletInitApi({ address, type: "TRON" }) : await getWalletNonceApi({ address, type: "TRON" });
3956
+ const res = type == "bind" ? await getWalletInitApi({ address: address2, type: "TRON" }) : await getWalletNonceApi({ address: address2, type: "TRON" });
3810
3957
  if (!isSuccess(res)) {
3811
3958
  throw new Error(res.message);
3812
3959
  }
@@ -3818,7 +3965,7 @@ function TRONConnectModal({
3818
3965
  const signedMessage = await wallet.signMessage(message);
3819
3966
  let obj = {
3820
3967
  type: "TRON",
3821
- address,
3968
+ address: address2,
3822
3969
  signature: signedMessage,
3823
3970
  message,
3824
3971
  connector_type: "TRON",
@@ -3854,7 +4001,7 @@ function TRONConnectModal({
3854
4001
  statusRef.current = "";
3855
4002
  }
3856
4003
  };
3857
- useEffect15(() => {
4004
+ useEffect17(() => {
3858
4005
  if (wallet) {
3859
4006
  console.log("onConnect");
3860
4007
  onConnect();
@@ -3862,12 +4009,12 @@ function TRONConnectModal({
3862
4009
  setStatus("");
3863
4010
  }
3864
4011
  }, [wallet]);
3865
- useEffect15(() => {
3866
- if (address) {
4012
+ useEffect17(() => {
4013
+ if (address2) {
3867
4014
  toLoginInWallet();
3868
4015
  }
3869
- }, [address]);
3870
- useEffect15(() => {
4016
+ }, [address2]);
4017
+ useEffect17(() => {
3871
4018
  if (!props.isOpen) {
3872
4019
  disconnect();
3873
4020
  }
@@ -3883,7 +4030,7 @@ function TRONConnectModal({
3883
4030
  setError,
3884
4031
  status,
3885
4032
  disconnect,
3886
- address: address || "",
4033
+ address: address2 || "",
3887
4034
  connected,
3888
4035
  visible: true,
3889
4036
  setVisible: () => {
@@ -3925,7 +4072,7 @@ function TRONModal(props) {
3925
4072
  }
3926
4073
 
3927
4074
  // src/components/TONModal/index.tsx
3928
- import React9, { useEffect as useEffect16, useState as useState18 } from "react";
4075
+ import React9, { useEffect as useEffect18, useState as useState20 } from "react";
3929
4076
  import { useIntl as useIntl11 } from "react-intl";
3930
4077
  import {
3931
4078
  TonConnectUIProvider,
@@ -3940,15 +4087,15 @@ function WalletContent2({
3940
4087
  type
3941
4088
  }) {
3942
4089
  const { events, login } = useMatch();
3943
- const [connected, setConnected] = useState18(false);
4090
+ const [connected, setConnected] = useState20(false);
3944
4091
  const wallet = useTonWallet();
3945
4092
  const userFriendlyAddress = useTonAddress();
3946
4093
  const [tonConnectUI] = useTonConnectUI();
3947
4094
  const { state, open, close } = useTonConnectModal();
3948
- const [status, setStatus] = useState18("");
4095
+ const [status, setStatus] = useState20("");
3949
4096
  const statusRef = React9.useRef(status);
3950
- const [error, setError] = useState18("");
3951
- useEffect16(() => {
4097
+ const [error, setError] = useState20("");
4098
+ useEffect18(() => {
3952
4099
  const init = async () => {
3953
4100
  if (wallet) {
3954
4101
  await tonConnectUI.disconnect();
@@ -4021,7 +4168,7 @@ function WalletContent2({
4021
4168
  }
4022
4169
  });
4023
4170
  }, []);
4024
- useEffect16(() => {
4171
+ useEffect18(() => {
4025
4172
  if (wallet) {
4026
4173
  setConnected(true);
4027
4174
  console.log("Wallet connected:", wallet);
@@ -4032,7 +4179,7 @@ function WalletContent2({
4032
4179
  setStatus("");
4033
4180
  }
4034
4181
  }, [wallet]);
4035
- useEffect16(() => {
4182
+ useEffect18(() => {
4036
4183
  console.log({
4037
4184
  state,
4038
4185
  wallet
@@ -4112,7 +4259,7 @@ function TONModal(props) {
4112
4259
  }
4113
4260
 
4114
4261
  // src/components/BTCModal/index.tsx
4115
- import React10, { useEffect as useEffect18, useMemo as useMemo11, useState as useState20 } from "react";
4262
+ import React10, { useEffect as useEffect20, useMemo as useMemo12, useState as useState22 } from "react";
4116
4263
  import { useIntl as useIntl12 } from "react-intl";
4117
4264
 
4118
4265
  // src/lib/btc/UnisatAdapter.ts
@@ -4204,7 +4351,7 @@ var XverseAdapter = class {
4204
4351
  matchlog_default.log("getAccounts ~ response:", response);
4205
4352
  if (response.status === "success") {
4206
4353
  const ordinalsAddressItem = response.result.find(
4207
- (address) => address.purpose === AddressPurpose.Ordinals
4354
+ (address2) => address2.purpose === AddressPurpose.Ordinals
4208
4355
  );
4209
4356
  this.address = ordinalsAddressItem?.address || "";
4210
4357
  return ordinalsAddressItem?.address || "";
@@ -4267,12 +4414,12 @@ var LeatherAdapter = class {
4267
4414
  };
4268
4415
 
4269
4416
  // src/hooks/useBTCWallet.ts
4270
- import { useEffect as useEffect17, useState as useState19 } from "react";
4417
+ import { useEffect as useEffect19, useState as useState21 } from "react";
4271
4418
  var useBTCWallet = () => {
4272
4419
  const wallets2 = [new UnisatAdapter(), new XverseAdapter(), new LeatherAdapter()];
4273
- const [installedWallets, setInstalledWallets] = useState19([]);
4274
- const [address, setAddress] = useState19(null);
4275
- useEffect17(() => {
4420
+ const [installedWallets, setInstalledWallets] = useState21([]);
4421
+ const [address2, setAddress] = useState21(null);
4422
+ useEffect19(() => {
4276
4423
  const getInstalled = async () => {
4277
4424
  const installed = await Promise.all(wallets2.map((wallet2) => wallet2.isInstalled().then((isInstalled) => ({
4278
4425
  wallet: wallet2,
@@ -4282,11 +4429,11 @@ var useBTCWallet = () => {
4282
4429
  };
4283
4430
  getInstalled();
4284
4431
  }, []);
4285
- const [wallet, chooseWallet] = useState19(null);
4432
+ const [wallet, chooseWallet] = useState21(null);
4286
4433
  const onConnect = async () => {
4287
4434
  setAddress(await wallet.connect());
4288
4435
  };
4289
- useEffect17(() => {
4436
+ useEffect19(() => {
4290
4437
  if (!wallet) {
4291
4438
  setAddress(null);
4292
4439
  }
@@ -4296,7 +4443,7 @@ var useBTCWallet = () => {
4296
4443
  wallets: wallets2,
4297
4444
  chooseWallet,
4298
4445
  wallet,
4299
- address,
4446
+ address: address2,
4300
4447
  onConnect
4301
4448
  };
4302
4449
  };
@@ -4310,19 +4457,19 @@ function BTCConnectModal({
4310
4457
  }) {
4311
4458
  const isDownMd = useDownMd();
4312
4459
  const intl = useIntl12();
4313
- const { wallets: wallets2, installedWallets, chooseWallet, wallet, address, onConnect } = useBTCWallet();
4460
+ const { wallets: wallets2, installedWallets, chooseWallet, wallet, address: address2, onConnect } = useBTCWallet();
4314
4461
  const iconMaps = {
4315
4462
  leather: /* @__PURE__ */ jsx25(LeatherIcon, { size: isDownMd ? 36 : 40 }),
4316
4463
  unisat: /* @__PURE__ */ jsx25(UnisatIcon, { size: isDownMd ? 36 : 40 }),
4317
4464
  xverse: /* @__PURE__ */ jsx25(XverseIcon, { size: isDownMd ? 36 : 40 })
4318
4465
  };
4319
4466
  const { events, login } = useMatch();
4320
- const [status, setStatus] = useState20("");
4467
+ const [status, setStatus] = useState22("");
4321
4468
  const statusRef = React10.useRef(status);
4322
- const [error, setError] = useState20("");
4323
- const connected = useMemo11(() => {
4324
- return !!address;
4325
- }, [address]);
4469
+ const [error, setError] = useState22("");
4470
+ const connected = useMemo12(() => {
4471
+ return !!address2;
4472
+ }, [address2]);
4326
4473
  const disconnect = async () => {
4327
4474
  wallet && wallet.disconnet && wallet.disconnet();
4328
4475
  setStatus("");
@@ -4331,11 +4478,11 @@ function BTCConnectModal({
4331
4478
  setError("");
4332
4479
  };
4333
4480
  const toLoginInWallet = async () => {
4334
- if (statusRef.current || !address || !wallet) return;
4481
+ if (statusRef.current || !address2 || !wallet) return;
4335
4482
  try {
4336
4483
  setStatus("nonce");
4337
4484
  statusRef.current = "nonce";
4338
- const res = type == "bind" ? await getWalletInitApi({ address, type: "BTC" }) : await getWalletNonceApi({ address, type: "BTC" });
4485
+ const res = type == "bind" ? await getWalletInitApi({ address: address2, type: "BTC" }) : await getWalletNonceApi({ address: address2, type: "BTC" });
4339
4486
  if (!isSuccess(res)) {
4340
4487
  throw new Error(res.message);
4341
4488
  }
@@ -4347,7 +4494,7 @@ function BTCConnectModal({
4347
4494
  const signedMessage = await wallet.signMessage(message);
4348
4495
  let obj = {
4349
4496
  type: "BTC",
4350
- address,
4497
+ address: address2,
4351
4498
  signature: signedMessage,
4352
4499
  message,
4353
4500
  connector_type: "BTC",
@@ -4384,7 +4531,7 @@ function BTCConnectModal({
4384
4531
  statusRef.current = "";
4385
4532
  }
4386
4533
  };
4387
- useEffect18(() => {
4534
+ useEffect20(() => {
4388
4535
  if (wallet) {
4389
4536
  console.log("onConnect");
4390
4537
  try {
@@ -4397,12 +4544,12 @@ function BTCConnectModal({
4397
4544
  setStatus("");
4398
4545
  }
4399
4546
  }, [wallet]);
4400
- useEffect18(() => {
4401
- if (address) {
4547
+ useEffect20(() => {
4548
+ if (address2) {
4402
4549
  toLoginInWallet();
4403
4550
  }
4404
- }, [address]);
4405
- useEffect18(() => {
4551
+ }, [address2]);
4552
+ useEffect20(() => {
4406
4553
  if (!props.isOpen) {
4407
4554
  disconnect();
4408
4555
  }
@@ -4425,7 +4572,7 @@ function BTCConnectModal({
4425
4572
  setError,
4426
4573
  status,
4427
4574
  disconnect,
4428
- address: address || "",
4575
+ address: address2 || "",
4429
4576
  connected,
4430
4577
  visible: true,
4431
4578
  setVisible: () => {
@@ -4467,7 +4614,7 @@ function BTCModal(props) {
4467
4614
  }
4468
4615
 
4469
4616
  // src/components/WalletModal/index.tsx
4470
- import { useMemo as useMemo12 } from "react";
4617
+ import { useMemo as useMemo13 } from "react";
4471
4618
  import { useIntl as useIntl13 } from "react-intl";
4472
4619
  import { jsx as jsx26 } from "react/jsx-runtime";
4473
4620
  function WalletConnectModal({
@@ -4479,7 +4626,7 @@ function WalletConnectModal({
4479
4626
  const { walletMap } = useWalletConfig();
4480
4627
  const { bind, login } = useUserInfo();
4481
4628
  const config = useAppConfig();
4482
- const methods = useMemo12(() => {
4629
+ const methods = useMemo13(() => {
4483
4630
  if (_methods) return _methods;
4484
4631
  if (!config.platform) {
4485
4632
  return [];
@@ -4542,8 +4689,9 @@ export {
4542
4689
  WalletModal,
4543
4690
  components_exports,
4544
4691
  useMatchWallet,
4692
+ useReceipt,
4545
4693
  hooks_exports,
4546
4694
  MatchProvider,
4547
4695
  useMatch
4548
4696
  };
4549
- //# sourceMappingURL=chunk-A477SJHT.mjs.map
4697
+ //# sourceMappingURL=chunk-D6IUBR7S.mjs.map