@matchain/matchid-sdk-react 0.1.53-alpha.8 → 0.1.54

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.
Files changed (54) hide show
  1. package/dist/assets/icon/index.d.mts +2 -2
  2. package/dist/assets/icon/index.d.ts +2 -2
  3. package/dist/{chunk-X5HGL3ZX.mjs → chunk-ZPBHHXEE.mjs} +7689 -338
  4. package/dist/chunk-ZPBHHXEE.mjs.map +1 -0
  5. package/dist/components/index.d.mts +3 -3
  6. package/dist/components/index.d.ts +3 -3
  7. package/dist/components/index.js +363 -343
  8. package/dist/components/index.js.map +1 -1
  9. package/dist/components/index.mjs +9 -11
  10. package/dist/hooks/api/index.d.mts +2 -2
  11. package/dist/hooks/api/index.d.ts +2 -2
  12. package/dist/hooks/api/index.js +493 -478
  13. package/dist/hooks/api/index.js.map +1 -1
  14. package/dist/hooks/api/index.mjs +2 -3
  15. package/dist/hooks/index.d.mts +2 -2
  16. package/dist/hooks/index.d.ts +2 -2
  17. package/dist/hooks/index.js +258 -248
  18. package/dist/hooks/index.js.map +1 -1
  19. package/dist/hooks/index.mjs +3 -5
  20. package/dist/{index-D5WIVIkc.d.ts → index-91BdMYDA.d.ts} +4 -2
  21. package/dist/{index-BVfCh4l-.d.mts → index-CPk553v5.d.mts} +1 -1
  22. package/dist/{index-D7S5DMUy.d.mts → index-CPwcm70o.d.mts} +3 -3
  23. package/dist/{index-zc2GEzJ9.d.ts → index-CZu_8fKl.d.ts} +40 -39
  24. package/dist/{index-SOVt-ADK.d.mts → index-ChHJD4NZ.d.mts} +4 -2
  25. package/dist/{index-CQmN0dN4.d.ts → index-CkHDxE7B.d.mts} +16 -4
  26. package/dist/{index-C0UKUm0h.d.ts → index-D5geEbXf.d.ts} +4 -3
  27. package/dist/{index-D3Kp05kW.d.ts → index-DFBrN7dx.d.ts} +1 -1
  28. package/dist/{index-DC4F1u-w.d.mts → index-DSvRdAyZ.d.mts} +4 -3
  29. package/dist/{index-DjbH13zc.d.mts → index-DX1vzCrM.d.mts} +40 -39
  30. package/dist/{index-DQFQ39D9.d.ts → index-Dj1K-UdZ.d.ts} +3 -3
  31. package/dist/{index-BDffLLM_.d.mts → index-DjwwXNp4.d.mts} +15 -3
  32. package/dist/{index-BaFmUVw-.d.mts → index-SRHVQn5G.d.ts} +16 -4
  33. package/dist/{index-BsX-ovIl.d.ts → index-Vxvd14yW.d.ts} +15 -3
  34. package/dist/index.css +141 -34
  35. package/dist/index.d.mts +758 -11
  36. package/dist/index.d.ts +758 -11
  37. package/dist/index.js +3859 -3738
  38. package/dist/index.js.map +1 -1
  39. package/dist/index.mjs +9 -9
  40. package/dist/types/index.d.mts +1 -1
  41. package/dist/types/index.d.ts +1 -1
  42. package/dist/{types-VrV1kYga.d.mts → types-Bi9iq57H.d.mts} +13 -1
  43. package/dist/{types-VrV1kYga.d.ts → types-Bi9iq57H.d.ts} +13 -1
  44. package/dist/ui/index.d.mts +3 -3
  45. package/dist/ui/index.d.ts +3 -3
  46. package/dist/ui/index.js +937 -160
  47. package/dist/ui/index.js.map +1 -1
  48. package/dist/ui/index.mjs +6 -1
  49. package/example/package.json +1 -0
  50. package/example/src/App.tsx +24 -20
  51. package/package.json +1 -1
  52. package/dist/chunk-QTUR37B2.mjs +0 -7275
  53. package/dist/chunk-QTUR37B2.mjs.map +0 -1
  54. package/dist/chunk-X5HGL3ZX.mjs.map +0 -1
@@ -59,7 +59,10 @@ __export(components_exports, {
59
59
  module.exports = __toCommonJS(components_exports);
60
60
 
61
61
  // src/components/EmailModal/index.tsx
62
- var import_react24 = require("react");
62
+ var import_react25 = require("react");
63
+
64
+ // src/ui/Modal/index.tsx
65
+ var import_react3 = require("react");
63
66
 
64
67
  // src/assets/icon/ArrowLeftIcon.tsx
65
68
  var import_jsx_runtime = require("react/jsx-runtime");
@@ -1283,6 +1286,7 @@ function Overlay({
1283
1286
  }
1284
1287
 
1285
1288
  // src/ui/Modal/index.tsx
1289
+ var import_react_intl = require("react-intl");
1286
1290
  var import_jsx_runtime52 = require("react/jsx-runtime");
1287
1291
  function Modal({
1288
1292
  children,
@@ -1321,7 +1325,7 @@ function ModalWithHeader({
1321
1325
  }
1322
1326
 
1323
1327
  // src/components/EmailModal/StepEmail.tsx
1324
- var import_react4 = require("react");
1328
+ var import_react5 = require("react");
1325
1329
 
1326
1330
  // src/utils/index.tsx
1327
1331
  var import_moment = __toESM(require("moment"));
@@ -1448,7 +1452,8 @@ function Button({
1448
1452
  type = "button",
1449
1453
  rounded = true,
1450
1454
  className = "",
1451
- style = {}
1455
+ style = {},
1456
+ dataset = {}
1452
1457
  }) {
1453
1458
  const onAction = () => {
1454
1459
  if (!disabled && !loading) {
@@ -1465,13 +1470,14 @@ function Button({
1465
1470
  ...style
1466
1471
  },
1467
1472
  onClick: onAction,
1473
+ ...dataset,
1468
1474
  children: loading ? /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(LoadingIcon_default, { className: "matchid-btn-loading-icon", color: "var(--matchid-btn-loading-color)" }) : children
1469
1475
  }
1470
1476
  );
1471
1477
  }
1472
1478
 
1473
1479
  // src/ui/Input/index.tsx
1474
- var import_react3 = require("react");
1480
+ var import_react4 = require("react");
1475
1481
  var import_jsx_runtime55 = require("react/jsx-runtime");
1476
1482
  function Input({
1477
1483
  onChange,
@@ -1480,7 +1486,7 @@ function Input({
1480
1486
  className = "",
1481
1487
  ...props
1482
1488
  }) {
1483
- const [inputType, setInputType] = (0, import_react3.useState)(type);
1489
+ const [inputType, setInputType] = (0, import_react4.useState)(type);
1484
1490
  const isDownMd = useDownMd();
1485
1491
  return /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)(
1486
1492
  "div",
@@ -1529,17 +1535,17 @@ function Field({
1529
1535
  }
1530
1536
 
1531
1537
  // src/components/EmailModal/StepEmail.tsx
1532
- var import_react_intl = require("react-intl");
1538
+ var import_react_intl2 = require("react-intl");
1533
1539
  var import_jsx_runtime57 = require("react/jsx-runtime");
1534
1540
  function StepEmail(props) {
1535
- const intl = (0, import_react_intl.useIntl)();
1536
- const [emailVal, setEmailVal] = (0, import_react4.useState)("");
1537
- (0, import_react4.useEffect)(() => {
1541
+ const intl = (0, import_react_intl2.useIntl)();
1542
+ const [emailVal, setEmailVal] = (0, import_react5.useState)("");
1543
+ (0, import_react5.useEffect)(() => {
1538
1544
  if (props.email) {
1539
1545
  setEmailVal(props.email);
1540
1546
  }
1541
1547
  }, []);
1542
- const canContinue = (0, import_react4.useMemo)(() => {
1548
+ const canContinue = (0, import_react5.useMemo)(() => {
1543
1549
  return isValidEmail(emailVal);
1544
1550
  }, [emailVal]);
1545
1551
  const onContinue = async () => {
@@ -1560,7 +1566,7 @@ function StepEmail(props) {
1560
1566
  ) }),
1561
1567
  /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(Button, { disabled: !canContinue, style: {
1562
1568
  marginTop: "64px"
1563
- }, onClick: onContinue, size: "lg", block: true, highlight: true, children: /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(import_react_intl.FormattedMessage, { id: "continue" }) })
1569
+ }, onClick: onContinue, size: "lg", block: true, highlight: true, children: /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(import_react_intl2.FormattedMessage, { id: "continue" }) })
1564
1570
  ] });
1565
1571
  }
1566
1572
 
@@ -1895,7 +1901,7 @@ var delContactsApi = (data) => {
1895
1901
  };
1896
1902
  var getContractsInfoApi = () => {
1897
1903
  return retryRequest({
1898
- url: `/api/v1/contracts/info`,
1904
+ url: `/api/v1/contacts/info`,
1899
1905
  method: "GET"
1900
1906
  });
1901
1907
  };
@@ -1962,13 +1968,13 @@ var localStore = useLocalStore;
1962
1968
  var useLocalStore_default = useLocalStore;
1963
1969
 
1964
1970
  // src/hooks/useUserInfo.tsx
1965
- var import_react22 = require("react");
1971
+ var import_react23 = require("react");
1966
1972
 
1967
1973
  // src/MatchContext.tsx
1968
- var import_react21 = require("react");
1974
+ var import_react22 = require("react");
1969
1975
 
1970
1976
  // src/hooks/useMatchEvents.ts
1971
- var import_react5 = require("react");
1977
+ var import_react6 = require("react");
1972
1978
 
1973
1979
  // src/hooks/eventManager.ts
1974
1980
  var EventManager = class {
@@ -2016,11 +2022,11 @@ var useStore_default = useStore;
2016
2022
  // src/hooks/useWallet.tsx
2017
2023
  var import_accounts = require("viem/accounts");
2018
2024
  var import_viem3 = require("viem");
2019
- var import_react10 = require("react");
2025
+ var import_react11 = require("react");
2020
2026
  var import_viem4 = require("viem");
2021
2027
 
2022
2028
  // src/context/ModalContext.tsx
2023
- var import_react9 = require("react");
2029
+ var import_react10 = __toESM(require("react"));
2024
2030
  var import_react_dom = require("react-dom");
2025
2031
 
2026
2032
  // src/ui/Drawer/index.tsx
@@ -2050,7 +2056,7 @@ function Drawer({
2050
2056
  }
2051
2057
 
2052
2058
  // src/ui/HashPanel/index.tsx
2053
- var import_react6 = require("react");
2059
+ var import_react7 = require("react");
2054
2060
 
2055
2061
  // src/ui/ModalDrawer/index.tsx
2056
2062
  var import_jsx_runtime59 = require("react/jsx-runtime");
@@ -2127,7 +2133,7 @@ function HashPanel({
2127
2133
  onClose,
2128
2134
  zIndex
2129
2135
  }) {
2130
- const [status, setStatus] = (0, import_react6.useState)("confirm");
2136
+ const [status, setStatus] = (0, import_react7.useState)("confirm");
2131
2137
  const statusMaps = {
2132
2138
  "confirm": {
2133
2139
  icon: confirm_default,
@@ -2151,8 +2157,8 @@ function HashPanel({
2151
2157
  }
2152
2158
  };
2153
2159
  const statusValue = statusMaps[status];
2154
- const [shouldRefetch, setShouldRefetch] = (0, import_react6.useState)(true);
2155
- (0, import_react6.useEffect)(() => {
2160
+ const [shouldRefetch, setShouldRefetch] = (0, import_react7.useState)(true);
2161
+ (0, import_react7.useEffect)(() => {
2156
2162
  if (hash) {
2157
2163
  setShouldRefetch(true);
2158
2164
  setStatus("pending");
@@ -2165,7 +2171,7 @@ function HashPanel({
2165
2171
  chain,
2166
2172
  refetchInterval: shouldRefetch ? 3e3 : false
2167
2173
  });
2168
- (0, import_react6.useEffect)(() => {
2174
+ (0, import_react7.useEffect)(() => {
2169
2175
  if (hashQuery.data == 1 || hashQuery.data == -1) {
2170
2176
  setShouldRefetch(false);
2171
2177
  }
@@ -2216,7 +2222,7 @@ function HashPanel_default(props) {
2216
2222
  }
2217
2223
 
2218
2224
  // src/ui/Popover/index.tsx
2219
- var import_react7 = require("react");
2225
+ var import_react8 = require("react");
2220
2226
  var import_jsx_runtime61 = require("react/jsx-runtime");
2221
2227
  function Popover({
2222
2228
  children,
@@ -2226,7 +2232,7 @@ function Popover({
2226
2232
  className = "",
2227
2233
  gap = "20px"
2228
2234
  }) {
2229
- const [active, setActive] = (0, import_react7.useState)(false);
2235
+ const [active, setActive] = (0, import_react8.useState)(false);
2230
2236
  return children && /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)(
2231
2237
  "div",
2232
2238
  {
@@ -2250,7 +2256,7 @@ function Popover({
2250
2256
  var import_jsx_runtime62 = require("react/jsx-runtime");
2251
2257
 
2252
2258
  // src/ui/AlphaAvatar/index.tsx
2253
- var import_react8 = require("react");
2259
+ var import_react9 = require("react");
2254
2260
  var import_jsx_runtime63 = require("react/jsx-runtime");
2255
2261
  function AlphaAvatar({
2256
2262
  name,
@@ -2258,7 +2264,7 @@ function AlphaAvatar({
2258
2264
  className = "",
2259
2265
  style
2260
2266
  }) {
2261
- const avatar = (0, import_react8.useMemo)(() => {
2267
+ const avatar = (0, import_react9.useMemo)(() => {
2262
2268
  if (name) {
2263
2269
  const char = name[0].toUpperCase();
2264
2270
  if (char.match(/[a-zA-Z0-9]/)) {
@@ -2333,9 +2339,9 @@ var import_jsx_runtime66 = require("react/jsx-runtime");
2333
2339
 
2334
2340
  // src/context/ModalContext.tsx
2335
2341
  var import_jsx_runtime67 = require("react/jsx-runtime");
2336
- var ModalContext = (0, import_react9.createContext)(null);
2342
+ var ModalContext = (0, import_react10.createContext)(null);
2337
2343
  function useModal() {
2338
- const context = (0, import_react9.useContext)(ModalContext);
2344
+ const context = (0, import_react10.useContext)(ModalContext);
2339
2345
  if (!context) {
2340
2346
  throw new Error("useModal must be used within a ModalProvider");
2341
2347
  }
@@ -2424,7 +2430,7 @@ function useWallet() {
2424
2430
  throw error;
2425
2431
  }
2426
2432
  };
2427
- const evmAccount = (0, import_react10.useMemo)(() => {
2433
+ const evmAccount = (0, import_react11.useMemo)(() => {
2428
2434
  try {
2429
2435
  return address ? (0, import_accounts.toAccount)({
2430
2436
  address,
@@ -2463,7 +2469,7 @@ function useWallet() {
2463
2469
  return void 0;
2464
2470
  }
2465
2471
  }, [address]);
2466
- (0, import_react10.useEffect)(() => {
2472
+ (0, import_react11.useEffect)(() => {
2467
2473
  matchlog_default.log("qwe-evmAccount", evmAccount);
2468
2474
  }, [evmAccount]);
2469
2475
  const realCreateWalletClient = (parameters) => {
@@ -2599,14 +2605,14 @@ function useWallet() {
2599
2605
 
2600
2606
  // src/hooks/useCopyClipboard.ts
2601
2607
  var import_copy_to_clipboard = __toESM(require("copy-to-clipboard"));
2602
- var import_react11 = require("react");
2608
+ var import_react12 = require("react");
2603
2609
  function useCopyClipboard(timeout = 500) {
2604
- const [isCopied, setIsCopied] = (0, import_react11.useState)(false);
2605
- const staticCopy = (0, import_react11.useCallback)((text) => {
2610
+ const [isCopied, setIsCopied] = (0, import_react12.useState)(false);
2611
+ const staticCopy = (0, import_react12.useCallback)((text) => {
2606
2612
  const didCopy = (0, import_copy_to_clipboard.default)(text);
2607
2613
  setIsCopied(didCopy);
2608
2614
  }, []);
2609
- (0, import_react11.useEffect)(() => {
2615
+ (0, import_react12.useEffect)(() => {
2610
2616
  if (isCopied) {
2611
2617
  const hide = setTimeout(() => {
2612
2618
  setIsCopied(false);
@@ -2621,12 +2627,12 @@ function useCopyClipboard(timeout = 500) {
2621
2627
  }
2622
2628
 
2623
2629
  // src/context/ToastContext.tsx
2624
- var import_react12 = require("react");
2630
+ var import_react13 = require("react");
2625
2631
  var import_react_dom2 = require("react-dom");
2626
2632
  var import_jsx_runtime69 = require("react/jsx-runtime");
2627
- var ToastContext = (0, import_react12.createContext)(null);
2633
+ var ToastContext = (0, import_react13.createContext)(null);
2628
2634
  function useToast() {
2629
- const context = (0, import_react12.useContext)(ToastContext);
2635
+ const context = (0, import_react13.useContext)(ToastContext);
2630
2636
  if (!context) {
2631
2637
  throw new Error("useToast must be used within a ToastProvider");
2632
2638
  }
@@ -2689,16 +2695,16 @@ function useImportTokenListQuery({
2689
2695
  }
2690
2696
 
2691
2697
  // src/hooks/useMatchChain.tsx
2692
- var import_react13 = require("react");
2698
+ var import_react14 = require("react");
2693
2699
  var import_viem5 = require("viem");
2694
- var import_react_intl2 = require("react-intl");
2700
+ var import_react_intl3 = require("react-intl");
2695
2701
  var import_jsx_runtime70 = require("react/jsx-runtime");
2696
2702
  function useMatchChain() {
2697
2703
  const chainListQuery = useChainListQuery();
2698
2704
  const modal = useModal();
2699
- const intl = (0, import_react_intl2.useIntl)();
2705
+ const intl = (0, import_react_intl3.useIntl)();
2700
2706
  const { chainId: storeChainId, setChainId } = useLocalStore_default();
2701
- const chainId = (0, import_react13.useMemo)(() => {
2707
+ const chainId = (0, import_react14.useMemo)(() => {
2702
2708
  if (!chainListQuery.data || !chainListQuery.data.length) {
2703
2709
  return null;
2704
2710
  }
@@ -2707,7 +2713,7 @@ function useMatchChain() {
2707
2713
  }
2708
2714
  return chainListQuery.data[0].id;
2709
2715
  }, [storeChainId, chainListQuery.data]);
2710
- const chain = (0, import_react13.useMemo)(() => {
2716
+ const chain = (0, import_react14.useMemo)(() => {
2711
2717
  if (!chainListQuery.data || !chainListQuery.data.length) {
2712
2718
  return null;
2713
2719
  }
@@ -2721,7 +2727,7 @@ function useMatchChain() {
2721
2727
  close
2722
2728
  }) {
2723
2729
  const { chainId: storeChainId2, setChainId: setChainId2 } = useLocalStore_default();
2724
- const [selectedChainId, setSelectedChainId] = (0, import_react13.useState)(storeChainId2);
2730
+ const [selectedChainId, setSelectedChainId] = (0, import_react14.useState)(storeChainId2);
2725
2731
  const isDownMd = useDownMd();
2726
2732
  return /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)("div", { className: `matchid-change-network-box`, children: [
2727
2733
  /* @__PURE__ */ (0, import_jsx_runtime70.jsx)("div", { className: `matchid-change-network-list`, children: chainListQuery.data?.map((item, index) => {
@@ -2744,7 +2750,7 @@ function useMatchChain() {
2744
2750
  /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(Button, { size: "lg", highlight: true, onClick: () => {
2745
2751
  setChainId2(selectedChainId || 0);
2746
2752
  close();
2747
- }, block: true, children: /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(import_react_intl2.FormattedMessage, { id: "confirm" }) })
2753
+ }, block: true, children: /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(import_react_intl3.FormattedMessage, { id: "confirm" }) })
2748
2754
  ] });
2749
2755
  }
2750
2756
  const showChangeNetwork = () => {
@@ -2753,7 +2759,7 @@ function useMatchChain() {
2753
2759
  content: ChangeNetwork
2754
2760
  });
2755
2761
  };
2756
- const publicClient = (0, import_react13.useMemo)(() => {
2762
+ const publicClient = (0, import_react14.useMemo)(() => {
2757
2763
  if (!chain) {
2758
2764
  return null;
2759
2765
  }
@@ -2781,7 +2787,7 @@ function useMatchChain() {
2781
2787
 
2782
2788
  // src/hooks/useMatchWallet.tsx
2783
2789
  var import_react_qrcode = require("react-qrcode");
2784
- var import_react15 = require("react");
2790
+ var import_react16 = require("react");
2785
2791
  var import_react_query5 = require("@tanstack/react-query");
2786
2792
 
2787
2793
  // src/config/index.tsx
@@ -2849,11 +2855,11 @@ var useContractStore = (0, import_zustand4.create)((0, import_middleware3.devtoo
2849
2855
  var useContractStore_default = useContractStore;
2850
2856
 
2851
2857
  // src/hooks/useMatchWallet.tsx
2852
- var import_react_intl4 = require("react-intl");
2858
+ var import_react_intl5 = require("react-intl");
2853
2859
 
2854
2860
  // src/components/ImportToken/index.tsx
2855
- var import_react14 = require("react");
2856
- var import_react_intl3 = require("react-intl");
2861
+ var import_react15 = require("react");
2862
+ var import_react_intl4 = require("react-intl");
2857
2863
  var import_react_query4 = require("@tanstack/react-query");
2858
2864
  var import_viem7 = require("viem");
2859
2865
 
@@ -2867,12 +2873,12 @@ var import_jsx_runtime71 = require("react/jsx-runtime");
2867
2873
  // src/hooks/useMatchWallet.tsx
2868
2874
  var import_jsx_runtime72 = require("react/jsx-runtime");
2869
2875
  function useMatchWalletRecords() {
2870
- const [hasMore, setHasMore] = (0, import_react15.useState)(true);
2871
- const [items, setItems] = (0, import_react15.useState)([]);
2876
+ const [hasMore, setHasMore] = (0, import_react16.useState)(true);
2877
+ const [items, setItems] = (0, import_react16.useState)([]);
2872
2878
  const { chainId, publicClient } = useMatchChain();
2873
2879
  const { address } = useWallet();
2874
- const hasMoreRef = (0, import_react15.useRef)(hasMore);
2875
- const nextPageParamsRef = (0, import_react15.useRef)(void 0);
2880
+ const hasMoreRef = (0, import_react16.useRef)(hasMore);
2881
+ const nextPageParamsRef = (0, import_react16.useRef)(void 0);
2876
2882
  const { contracts, setContracts } = useContractStore_default();
2877
2883
  const fetchMoreData = async () => {
2878
2884
  const chainIdStr = chainId ? chainId.toString() : "";
@@ -2889,7 +2895,7 @@ function useMatchWalletRecords() {
2889
2895
  }
2890
2896
  hasMoreRef.current = res.data && res.data.transactions && res.data.transactions.length >= 50;
2891
2897
  setHasMore(hasMoreRef.current);
2892
- nextPageParamsRef.current = res.data.next_page_params;
2898
+ nextPageParamsRef.current = res.data?.next_page_params;
2893
2899
  }
2894
2900
  };
2895
2901
  const onInit = async () => {
@@ -2899,7 +2905,7 @@ function useMatchWalletRecords() {
2899
2905
  hasMoreRef.current = true;
2900
2906
  fetchMoreData();
2901
2907
  };
2902
- (0, import_react15.useEffect)(() => {
2908
+ (0, import_react16.useEffect)(() => {
2903
2909
  if (chainId && address) {
2904
2910
  onInit();
2905
2911
  }
@@ -2955,7 +2961,7 @@ function useMatchWalletRecords() {
2955
2961
  setContracts(contractMap);
2956
2962
  }
2957
2963
  };
2958
- const list = (0, import_react15.useMemo)(() => {
2964
+ const list = (0, import_react16.useMemo)(() => {
2959
2965
  const localTransactions = transactions[`${chainId}-${address}`] || [];
2960
2966
  const removeList = localTransactions.filter((n) => items.findIndex((m) => m.hash == n.hash) >= 0);
2961
2967
  removeList.forEach((item) => {
@@ -2997,7 +3003,7 @@ function useMatchWalletAssets({
2997
3003
  chainId: chainId || 0,
2998
3004
  ...assetListOptions
2999
3005
  });
3000
- const mergedAssets = (0, import_react15.useMemo)(() => {
3006
+ const mergedAssets = (0, import_react16.useMemo)(() => {
3001
3007
  if (!assetListQuery.data && !importTokenQuery.data) return [];
3002
3008
  const assetList = (assetListQuery.data || []).map((asset) => ({
3003
3009
  ...asset,
@@ -3084,7 +3090,7 @@ function useMatchWalletAssetList({
3084
3090
  retry: 3
3085
3091
  // Retry up to 3 times if failed
3086
3092
  });
3087
- const erc20Tokens = (0, import_react15.useMemo)(() => list.filter((asset) => asset.address !== NATIVE_TOKEN_ADDRESS), [list]);
3093
+ const erc20Tokens = (0, import_react16.useMemo)(() => list.filter((asset) => asset.address !== NATIVE_TOKEN_ADDRESS), [list]);
3088
3094
  const erc20BalanceQuery = (0, import_react_query5.useQuery)({
3089
3095
  queryKey: ["erc20Balances", erc20Tokens.map((token) => token.address)],
3090
3096
  queryFn: async () => {
@@ -3112,7 +3118,7 @@ function useMatchWalletAssetList({
3112
3118
  // Refresh every 15 seconds
3113
3119
  retry: 3
3114
3120
  });
3115
- const enrichedAssets = (0, import_react15.useMemo)(() => {
3121
+ const enrichedAssets = (0, import_react16.useMemo)(() => {
3116
3122
  if (!list) return [];
3117
3123
  const erc20Balances = erc20BalanceQuery.data || [];
3118
3124
  return list.map((asset) => {
@@ -3134,7 +3140,7 @@ function useMatchWalletAssetList({
3134
3140
  return { ...asset, balance, value, balanceValue };
3135
3141
  });
3136
3142
  }, [list, nativeBalanceQuery.data, erc20BalanceQuery.data]);
3137
- (0, import_react15.useEffect)(() => {
3143
+ (0, import_react16.useEffect)(() => {
3138
3144
  const list2 = enrichedAssets.sort((a, b) => {
3139
3145
  if (a.address === NATIVE_TOKEN_ADDRESS) return -1;
3140
3146
  if (b.address === NATIVE_TOKEN_ADDRESS) return 1;
@@ -3159,13 +3165,13 @@ function useMatchWalletAssetList({
3159
3165
  }
3160
3166
 
3161
3167
  // src/hooks/useReceipt.tsx
3162
- var import_react16 = require("react");
3168
+ var import_react17 = require("react");
3163
3169
  var import_react_query6 = require("@tanstack/react-query");
3164
3170
  var import_viem9 = require("viem");
3165
3171
  var CACHE_TTL = 86400 * 30 * 1e3;
3166
3172
 
3167
3173
  // src/hooks/useTransaction.tsx
3168
- var import_react17 = require("react");
3174
+ var import_react18 = require("react");
3169
3175
  var import_react_query7 = require("@tanstack/react-query");
3170
3176
  var import_viem10 = require("viem");
3171
3177
  var CACHE_TTL2 = 86400 * 30 * 1e3;
@@ -3256,8 +3262,8 @@ var useWalletModalStore = (0, import_zustand5.create)((set) => ({
3256
3262
  }));
3257
3263
 
3258
3264
  // src/components/CEXBindModal/index.tsx
3259
- var import_react18 = require("react");
3260
- var import_react_intl5 = require("react-intl");
3265
+ var import_react19 = require("react");
3266
+ var import_react_intl6 = require("react-intl");
3261
3267
  var import_jsx_runtime74 = require("react/jsx-runtime");
3262
3268
 
3263
3269
  // src/context/BusinessProvider.tsx
@@ -3268,20 +3274,105 @@ var import_jsx_runtime75 = require("react/jsx-runtime");
3268
3274
  var import_jsx_runtime76 = require("react/jsx-runtime");
3269
3275
 
3270
3276
  // src/hooks/useWalletInit.ts
3271
- var import_react19 = require("react");
3277
+ var import_react20 = require("react");
3272
3278
  var AppClientId2 = getAppClientId();
3273
3279
 
3274
3280
  // src/hooks/useInit.tsx
3275
- var import_react20 = require("react");
3281
+ var import_react21 = require("react");
3276
3282
 
3277
3283
  // src/MatchContext.tsx
3278
3284
  var import_react_query9 = require("@tanstack/react-query");
3279
- var import_react_intl6 = require("react-intl");
3285
+ var import_react_intl7 = require("react-intl");
3286
+ var import_rainbowkit = require("@rainbow-me/rainbowkit");
3287
+ var import_wallets = require("@rainbow-me/rainbowkit/wallets");
3288
+ var import_chains = require("wagmi/chains");
3289
+
3290
+ // src/config/chains/MatchMain.ts
3291
+ var import_viem11 = require("viem");
3292
+ var matchMain = /* @__PURE__ */ (0, import_viem11.defineChain)({
3293
+ //定义match链
3294
+ id: 698,
3295
+ name: "Matchain",
3296
+ nativeCurrency: { name: "Match Coin", symbol: "BNB", decimals: 18 },
3297
+ rpcUrls: {
3298
+ default: {
3299
+ http: ["https://rpc.matchain.io"]
3300
+ }
3301
+ },
3302
+ blockExplorers: {
3303
+ default: {
3304
+ name: "Matchscan",
3305
+ url: "https://matchscan.io/",
3306
+ apiUrl: "https://matchscan.io/api"
3307
+ }
3308
+ },
3309
+ iconUrl: "https://matchscan.io/static/identicon_logos/blockies.png",
3310
+ contracts: {
3311
+ multicall3: {
3312
+ address: "0xca11bde05977b3631167028862be2a173976ca11"
3313
+ }
3314
+ }
3315
+ // testnet: true,
3316
+ });
3317
+
3318
+ // src/config/chains/MatchTest.ts
3319
+ var import_viem12 = require("viem");
3320
+ var matchTest = /* @__PURE__ */ (0, import_viem12.defineChain)({
3321
+ //定义matchTest链
3322
+ id: 699,
3323
+ name: "MatchTest",
3324
+ nativeCurrency: { name: "Match Coin", symbol: "BNB", decimals: 18 },
3325
+ rpcUrls: {
3326
+ default: {
3327
+ http: ["https://testnet-rpc.matchain.io"]
3328
+ }
3329
+ },
3330
+ blockExplorers: {
3331
+ default: {
3332
+ name: "Matchscan",
3333
+ url: "https://testnet.matchscan.io/",
3334
+ apiUrl: "https://testnet.matchscan.io/api"
3335
+ }
3336
+ },
3337
+ iconUrl: "https://testnet.matchscan.io/static/identicon_logos/blockies.png",
3338
+ contracts: {
3339
+ multicall3: {
3340
+ address: "0xca11bde05977b3631167028862be2a173976ca11",
3341
+ blockCreated: 751532
3342
+ },
3343
+ ensRegistry: { address: "0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e" },
3344
+ ensUniversalResolver: {
3345
+ address: "0xc8Af999e38273D658BE1b921b88A9Ddf005769cC",
3346
+ blockCreated: 5317080
3347
+ }
3348
+ }
3349
+ // testnet: true,
3350
+ });
3351
+
3352
+ // src/MatchContext.tsx
3353
+ var import_wagmi = require("wagmi");
3280
3354
  var import_jsx_runtime77 = require("react/jsx-runtime");
3281
3355
  var queryClient = new import_react_query9.QueryClient();
3282
- var MatchContext = (0, import_react21.createContext)(void 0);
3356
+ var wagmiConfig = (0, import_rainbowkit.getDefaultConfig)({
3357
+ appName: "MatchID",
3358
+ projectId: "9ac6ea7e07860f04616fb311b447dee9",
3359
+ wallets: [
3360
+ {
3361
+ groupName: "Recommended",
3362
+ wallets: [
3363
+ import_wallets.metaMaskWallet,
3364
+ import_wallets.walletConnectWallet,
3365
+ import_wallets.okxWallet,
3366
+ import_wallets.bitgetWallet,
3367
+ import_wallets.injectedWallet
3368
+ ]
3369
+ }
3370
+ ],
3371
+ chains: [import_chains.mainnet, import_chains.polygon, import_chains.optimism, import_chains.arbitrum, import_chains.base, matchMain, matchTest, import_chains.bsc]
3372
+ });
3373
+ var MatchContext = (0, import_react22.createContext)(void 0);
3283
3374
  var useMatch = () => {
3284
- const context = (0, import_react21.useContext)(MatchContext);
3375
+ const context = (0, import_react22.useContext)(MatchContext);
3285
3376
  if (context === void 0) {
3286
3377
  throw new Error("useMatch must be used within a MatchProvider");
3287
3378
  }
@@ -3315,7 +3406,7 @@ function useUserInfo() {
3315
3406
  const getRedirectUri = () => {
3316
3407
  return encodeURIComponent(window.location.href);
3317
3408
  };
3318
- const isLogin = (0, import_react22.useMemo)(() => !!token && !!overview, [token, overview]);
3409
+ const isLogin = (0, import_react23.useMemo)(() => !!token && !!overview, [token, overview]);
3319
3410
  const logout = async () => {
3320
3411
  try {
3321
3412
  await toLogoutApi();
@@ -3586,23 +3677,23 @@ function useUserInfo() {
3586
3677
  }
3587
3678
 
3588
3679
  // src/components/EmailModal/StepVerify.tsx
3589
- var import_react23 = require("react");
3590
- var import_react_intl7 = require("react-intl");
3680
+ var import_react24 = require("react");
3681
+ var import_react_intl8 = require("react-intl");
3591
3682
  var import_jsx_runtime78 = require("react/jsx-runtime");
3592
3683
  function StepVerify(props) {
3593
- const intl = (0, import_react_intl7.useIntl)();
3684
+ const intl = (0, import_react_intl8.useIntl)();
3594
3685
  const { getLoginEmailCode, loginByEmail } = useUserInfo();
3595
- const [error, setError] = (0, import_react23.useState)("");
3596
- const [code, setCode] = (0, import_react23.useState)("");
3597
- const [sending, setSending] = (0, import_react23.useState)(false);
3598
- const [submitting, setSubmitting] = (0, import_react23.useState)(false);
3599
- const sendTimeRef = (0, import_react23.useRef)(0);
3600
- const [sendBtnText, setSendBtnText] = (0, import_react23.useState)(intl.formatMessage({
3686
+ const [error, setError] = (0, import_react24.useState)("");
3687
+ const [code, setCode] = (0, import_react24.useState)("");
3688
+ const [sending, setSending] = (0, import_react24.useState)(false);
3689
+ const [submitting, setSubmitting] = (0, import_react24.useState)(false);
3690
+ const sendTimeRef = (0, import_react24.useRef)(0);
3691
+ const [sendBtnText, setSendBtnText] = (0, import_react24.useState)(intl.formatMessage({
3601
3692
  id: "send"
3602
3693
  }));
3603
3694
  const intervalTime = EMAIL_INTERVAL;
3604
3695
  const codeLength = EMAIL_CODE_LENGTH;
3605
- const intervalRef = (0, import_react23.useRef)(null);
3696
+ const intervalRef = (0, import_react24.useRef)(null);
3606
3697
  const isDownMd = useDownMd();
3607
3698
  const onSend = async () => {
3608
3699
  if (sendTimeRef.current > 0) {
@@ -3633,7 +3724,7 @@ function StepVerify(props) {
3633
3724
  setSending(false);
3634
3725
  }
3635
3726
  };
3636
- (0, import_react23.useEffect)(() => {
3727
+ (0, import_react24.useEffect)(() => {
3637
3728
  onSend();
3638
3729
  return () => {
3639
3730
  if (intervalRef.current) {
@@ -3641,7 +3732,7 @@ function StepVerify(props) {
3641
3732
  }
3642
3733
  };
3643
3734
  }, []);
3644
- const canContinue = (0, import_react23.useMemo)(() => {
3735
+ const canContinue = (0, import_react24.useMemo)(() => {
3645
3736
  return code.length === codeLength;
3646
3737
  }, [code]);
3647
3738
  const onContinue = async () => {
@@ -3670,7 +3761,7 @@ function StepVerify(props) {
3670
3761
  /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("div", { className: "matchid-email-verify-header-icon", children: /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(EmailLineIcon, { size: isDownMd ? 19 : 24 }) }),
3671
3762
  /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)("div", { className: "matchid-email-verify-header-content", children: [
3672
3763
  /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("div", { className: "matchid-email-verify-header-value", children: props.email }),
3673
- /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("div", { className: "matchid-email-verify-header-tips", children: /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(import_react_intl7.FormattedMessage, { id: "sendEmailTips" }) })
3764
+ /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("div", { className: "matchid-email-verify-header-tips", children: /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(import_react_intl8.FormattedMessage, { id: "sendEmailTips" }) })
3674
3765
  ] })
3675
3766
  ] }),
3676
3767
  /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(Field, { label: intl.formatMessage({
@@ -3704,12 +3795,12 @@ function StepVerify(props) {
3704
3795
  )
3705
3796
  }
3706
3797
  ) }),
3707
- /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(Button, { disabled: !canContinue, highlight: true, block: true, size: "lg", onClick: onContinue, children: /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(import_react_intl7.FormattedMessage, { id: "continue" }) })
3798
+ /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(Button, { disabled: !canContinue, highlight: true, block: true, size: "lg", onClick: onContinue, children: /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(import_react_intl8.FormattedMessage, { id: "continue" }) })
3708
3799
  ] });
3709
3800
  }
3710
3801
 
3711
3802
  // src/components/EmailModal/index.tsx
3712
- var import_react_intl8 = require("react-intl");
3803
+ var import_react_intl9 = require("react-intl");
3713
3804
  var import_jsx_runtime79 = require("react/jsx-runtime");
3714
3805
  function EmailModal({
3715
3806
  isOpen = false,
@@ -3718,10 +3809,10 @@ function EmailModal({
3718
3809
  onBack,
3719
3810
  onLogin
3720
3811
  }) {
3721
- const [step, setStep] = (0, import_react24.useState)("input");
3722
- const [emailVal, setEmailVal] = (0, import_react24.useState)("");
3723
- const intl = (0, import_react_intl8.useIntl)();
3724
- (0, import_react24.useEffect)(() => {
3812
+ const [step, setStep] = (0, import_react25.useState)("input");
3813
+ const [emailVal, setEmailVal] = (0, import_react25.useState)("");
3814
+ const intl = (0, import_react_intl9.useIntl)();
3815
+ (0, import_react25.useEffect)(() => {
3725
3816
  if (!isOpen) {
3726
3817
  setStep("input");
3727
3818
  setEmailVal("");
@@ -3746,8 +3837,8 @@ function EmailModal({
3746
3837
  }
3747
3838
 
3748
3839
  // src/components/LoginBox/index.tsx
3749
- var import_react25 = require("react");
3750
- var import_react_intl9 = require("react-intl");
3840
+ var import_react26 = require("react");
3841
+ var import_react_intl10 = require("react-intl");
3751
3842
 
3752
3843
  // src/hooks/useAppConfig.ts
3753
3844
  var import_react_query10 = require("@tanstack/react-query");
@@ -3817,7 +3908,7 @@ function LoginBox({
3817
3908
  inModal = false
3818
3909
  }) {
3819
3910
  const config = useAppConfig();
3820
- const methodConfig = (0, import_react25.useMemo)(() => {
3911
+ const methodConfig = (0, import_react26.useMemo)(() => {
3821
3912
  if (recommendMethods || methods || walletMethods) {
3822
3913
  return {
3823
3914
  recommendMethods: recommendMethods ? recommendMethods : walletMethods ? ["wallet"] : [],
@@ -3859,10 +3950,10 @@ function LoginBox({
3859
3950
  walletMethods: walletMethodList
3860
3951
  };
3861
3952
  }, [config.platform, recommendMethods, methods, walletMethods]);
3862
- const [emailOpen, setEmailOpen] = (0, import_react25.useState)(false);
3953
+ const [emailOpen, setEmailOpen] = (0, import_react26.useState)(false);
3863
3954
  const { login } = useUserInfo();
3864
- const [showWallet, setShowWallet] = (0, import_react25.useState)(false);
3865
- const intl = (0, import_react_intl9.useIntl)();
3955
+ const [showWallet, setShowWallet] = (0, import_react26.useState)(false);
3956
+ const intl = (0, import_react_intl10.useIntl)();
3866
3957
  const isDownMd = useDownMd();
3867
3958
  const methodMap = {
3868
3959
  wallet: {
@@ -3978,7 +4069,7 @@ function LoginBox({
3978
4069
  );
3979
4070
  }) }),
3980
4071
  methodConfig.methods.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime80.jsxs)("div", { className: "matchid-login-other", children: [
3981
- /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("div", { className: "matchid-login-other-text", children: /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(import_react_intl9.FormattedMessage, { id: "otherLoginMethods" }) }),
4072
+ /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("div", { className: "matchid-login-other-text", children: /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(import_react_intl10.FormattedMessage, { id: "otherLoginMethods" }) }),
3982
4073
  /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("div", { className: "matchid-login-method-box", children: methodConfig.methods.map((m) => {
3983
4074
  return /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(
3984
4075
  "div",
@@ -4009,10 +4100,10 @@ function LoginBox({
4009
4100
  }
4010
4101
 
4011
4102
  // src/components/LoginButton/index.tsx
4012
- var import_react27 = require("react");
4103
+ var import_react28 = require("react");
4013
4104
 
4014
4105
  // src/components/LoginPanel/index.tsx
4015
- var import_react_intl10 = require("react-intl");
4106
+ var import_react_intl11 = require("react-intl");
4016
4107
  var import_jsx_runtime81 = require("react/jsx-runtime");
4017
4108
  function LoginPanel({
4018
4109
  header,
@@ -4023,8 +4114,8 @@ function LoginPanel({
4023
4114
  return /* @__PURE__ */ (0, import_jsx_runtime81.jsxs)("div", { className: "matchid-login-panel", children: [
4024
4115
  header ? header : /* @__PURE__ */ (0, import_jsx_runtime81.jsxs)("div", { className: "matchid-login-panel-header", children: [
4025
4116
  /* @__PURE__ */ (0, import_jsx_runtime81.jsxs)("div", { className: "matchid-login-panel-header-content", children: [
4026
- /* @__PURE__ */ (0, import_jsx_runtime81.jsx)("div", { className: "matchid-login-panel-header-title", children: /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(import_react_intl10.FormattedMessage, { id: "loginTitle" }) }),
4027
- /* @__PURE__ */ (0, import_jsx_runtime81.jsx)("div", { className: "matchid-login-panel-header-subtilte", children: /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(import_react_intl10.FormattedMessage, { id: "loginTips" }) })
4117
+ /* @__PURE__ */ (0, import_jsx_runtime81.jsx)("div", { className: "matchid-login-panel-header-title", children: /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(import_react_intl11.FormattedMessage, { id: "loginTitle" }) }),
4118
+ /* @__PURE__ */ (0, import_jsx_runtime81.jsx)("div", { className: "matchid-login-panel-header-subtilte", children: /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(import_react_intl11.FormattedMessage, { id: "loginTips" }) })
4028
4119
  ] }),
4029
4120
  onClose && /* @__PURE__ */ (0, import_jsx_runtime81.jsx)("div", { className: "matchid-login-panel-header-close", onClick: onClose, children: /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(CloseRoundIcon, { size: isDownMd ? 24 : 30 }) })
4030
4121
  ] }),
@@ -4052,7 +4143,7 @@ function LoginModal({
4052
4143
  }
4053
4144
 
4054
4145
  // src/components/UserPopover/index.tsx
4055
- var import_react26 = require("react");
4146
+ var import_react27 = require("react");
4056
4147
 
4057
4148
  // src/assets/icon/ProfileIcon.tsx
4058
4149
  var import_jsx_runtime83 = require("react/jsx-runtime");
@@ -4080,11 +4171,11 @@ function ProfileIcon({ size = 24, color = "black", ...props }) {
4080
4171
  }
4081
4172
 
4082
4173
  // src/components/UserPopover/index.tsx
4083
- var import_react_intl11 = require("react-intl");
4174
+ var import_react_intl12 = require("react-intl");
4084
4175
  var import_jsx_runtime84 = require("react/jsx-runtime");
4085
4176
  function UserContent() {
4086
4177
  const { logout, address, username } = useUserInfo();
4087
- const [logouting, setLogouting] = (0, import_react26.useState)(false);
4178
+ const [logouting, setLogouting] = (0, import_react27.useState)(false);
4088
4179
  const onLogout = async () => {
4089
4180
  if (logouting) return;
4090
4181
  try {
@@ -4113,9 +4204,9 @@ function UserContent() {
4113
4204
  const UserDivider = () => {
4114
4205
  return /* @__PURE__ */ (0, import_jsx_runtime84.jsx)("div", { className: `matchid-user-popover-divider` });
4115
4206
  };
4116
- const [usernameOpen, setUsernameOpen] = (0, import_react26.useState)(false);
4207
+ const [usernameOpen, setUsernameOpen] = (0, import_react27.useState)(false);
4117
4208
  const [copied, setCopied] = useCopyClipboard();
4118
- const intl = (0, import_react_intl11.useIntl)();
4209
+ const intl = (0, import_react_intl12.useIntl)();
4119
4210
  return /* @__PURE__ */ (0, import_jsx_runtime84.jsxs)("div", { className: "matchid-user-popover-content", children: [
4120
4211
  /* @__PURE__ */ (0, import_jsx_runtime84.jsxs)("div", { className: "matchid-user-popover-list", children: [
4121
4212
  /* @__PURE__ */ (0, import_jsx_runtime84.jsx)(UserItem, { onClick: () => {
@@ -4128,7 +4219,7 @@ function UserContent() {
4128
4219
  id: "setUsername"
4129
4220
  }) })
4130
4221
  ] }),
4131
- /* @__PURE__ */ (0, import_jsx_runtime84.jsx)(Button, { onClick: onLogout, loading: logouting, children: /* @__PURE__ */ (0, import_jsx_runtime84.jsx)(import_react_intl11.FormattedMessage, { id: "disconnect" }) }),
4222
+ /* @__PURE__ */ (0, import_jsx_runtime84.jsx)(Button, { onClick: onLogout, loading: logouting, children: /* @__PURE__ */ (0, import_jsx_runtime84.jsx)(import_react_intl12.FormattedMessage, { id: "disconnect" }) }),
4132
4223
  /* @__PURE__ */ (0, import_jsx_runtime84.jsx)(UsernameModal, { isOpen: usernameOpen, onClose: () => {
4133
4224
  setUsernameOpen(false);
4134
4225
  }, onSuccess: () => {
@@ -4144,7 +4235,7 @@ function UserPopover({
4144
4235
  }
4145
4236
 
4146
4237
  // src/components/LoginButton/index.tsx
4147
- var import_react_intl12 = require("react-intl");
4238
+ var import_react_intl13 = require("react-intl");
4148
4239
  var import_jsx_runtime85 = require("react/jsx-runtime");
4149
4240
  function LoginButton({
4150
4241
  loginRender,
@@ -4157,9 +4248,9 @@ function LoginButton({
4157
4248
  walletMethods,
4158
4249
  ...props
4159
4250
  }) {
4160
- const intl = (0, import_react_intl12.useIntl)();
4251
+ const intl = (0, import_react_intl13.useIntl)();
4161
4252
  const { isLogin, username } = useUserInfo();
4162
- const [loginOpen, setLoginOpen] = (0, import_react27.useState)(false);
4253
+ const [loginOpen, setLoginOpen] = (0, import_react28.useState)(false);
4163
4254
  if (!isLogin) {
4164
4255
  return /* @__PURE__ */ (0, import_jsx_runtime85.jsxs)(import_jsx_runtime85.Fragment, { children: [
4165
4256
  /* @__PURE__ */ (0, import_jsx_runtime85.jsx)(
@@ -4174,7 +4265,7 @@ function LoginButton({
4174
4265
  ),
4175
4266
  /* @__PURE__ */ (0, import_jsx_runtime85.jsxs)(Button, { className: "matchid-unlogin-btn", ...props, highlight: true, onClick: () => setLoginOpen(true), children: [
4176
4267
  /* @__PURE__ */ (0, import_jsx_runtime85.jsx)(UnLoginIcon_default, {}),
4177
- /* @__PURE__ */ (0, import_jsx_runtime85.jsx)("span", { children: /* @__PURE__ */ (0, import_jsx_runtime85.jsx)(import_react_intl12.FormattedMessage, { id: "login" }) })
4268
+ /* @__PURE__ */ (0, import_jsx_runtime85.jsx)("span", { children: /* @__PURE__ */ (0, import_jsx_runtime85.jsx)(import_react_intl13.FormattedMessage, { id: "login" }) })
4178
4269
  ] })
4179
4270
  ] });
4180
4271
  }
@@ -4187,8 +4278,8 @@ function LoginButton({
4187
4278
  }
4188
4279
 
4189
4280
  // src/components/UsernameModal/index.tsx
4190
- var import_react28 = require("react");
4191
- var import_react_intl13 = require("react-intl");
4281
+ var import_react29 = require("react");
4282
+ var import_react_intl14 = require("react-intl");
4192
4283
  var import_jsx_runtime86 = require("react/jsx-runtime");
4193
4284
  var ValidItem = ({
4194
4285
  success = false,
@@ -4208,23 +4299,23 @@ function UsernameModal({
4208
4299
  }) {
4209
4300
  const { username, refreshOverview } = useUserInfo();
4210
4301
  const { isLogin } = useUserInfo();
4211
- const [val, setVal] = (0, import_react28.useState)(username);
4212
- const [error, setError] = (0, import_react28.useState)("");
4302
+ const [val, setVal] = (0, import_react29.useState)(username);
4303
+ const [error, setError] = (0, import_react29.useState)("");
4213
4304
  const isDownMd = useDownMd();
4214
- (0, import_react28.useEffect)(() => {
4305
+ (0, import_react29.useEffect)(() => {
4215
4306
  if (isOpen) {
4216
4307
  setVal(username);
4217
4308
  setError("");
4218
4309
  }
4219
4310
  }, [isOpen]);
4220
- const isValid = (0, import_react28.useMemo)(() => {
4311
+ const isValid = (0, import_react29.useMemo)(() => {
4221
4312
  return isValidUsername(val);
4222
4313
  }, [val]);
4223
- const isLength = (0, import_react28.useMemo)(() => {
4314
+ const isLength = (0, import_react29.useMemo)(() => {
4224
4315
  return val.length >= 2 && val.length <= 32;
4225
4316
  }, [val]);
4226
4317
  const isSafe = isValid && isLength;
4227
- const [isSubmitting, setIsSubmitting] = (0, import_react28.useState)(false);
4318
+ const [isSubmitting, setIsSubmitting] = (0, import_react29.useState)(false);
4228
4319
  const onSubmit = async () => {
4229
4320
  if (isSubmitting) return;
4230
4321
  try {
@@ -4244,7 +4335,7 @@ function UsernameModal({
4244
4335
  setIsSubmitting(false);
4245
4336
  }
4246
4337
  };
4247
- const intl = (0, import_react_intl13.useIntl)();
4338
+ const intl = (0, import_react_intl14.useIntl)();
4248
4339
  return /* @__PURE__ */ (0, import_jsx_runtime86.jsx)(ModalWithHeader, { isOpen: isOpen && isLogin, ...props, title: title || intl.formatMessage({
4249
4340
  id: username ? "editUsernameTitle" : "setUsernameTitle"
4250
4341
  }), children: /* @__PURE__ */ (0, import_jsx_runtime86.jsxs)("div", { className: "matchid-username-box", children: [
@@ -4279,19 +4370,19 @@ function UsernameModal({
4279
4370
  ] }),
4280
4371
  /* @__PURE__ */ (0, import_jsx_runtime86.jsx)(Button, { disabled: !isSafe, loading: isSubmitting, style: {
4281
4372
  marginTop: isDownMd ? "36px" : "64px"
4282
- }, onClick: onSubmit, size: "lg", block: true, highlight: true, children: /* @__PURE__ */ (0, import_jsx_runtime86.jsx)(import_react_intl13.FormattedMessage, { id: "confirm" }) }),
4373
+ }, onClick: onSubmit, size: "lg", block: true, highlight: true, children: /* @__PURE__ */ (0, import_jsx_runtime86.jsx)(import_react_intl14.FormattedMessage, { id: "confirm" }) }),
4283
4374
  /* @__PURE__ */ (0, import_jsx_runtime86.jsx)(Button, { style: {
4284
4375
  marginTop: isDownMd ? "12px" : "24px"
4285
- }, onClick: props.onClose, size: "lg", block: true, children: /* @__PURE__ */ (0, import_jsx_runtime86.jsx)(import_react_intl13.FormattedMessage, { id: "cancel" }) })
4376
+ }, onClick: props.onClose, size: "lg", block: true, children: /* @__PURE__ */ (0, import_jsx_runtime86.jsx)(import_react_intl14.FormattedMessage, { id: "cancel" }) })
4286
4377
  ] }) });
4287
4378
  }
4288
4379
 
4289
4380
  // src/components/EVMModal/index.tsx
4290
- var import_react31 = require("react");
4291
- var import_react_intl14 = require("react-intl");
4381
+ var import_react32 = require("react");
4382
+ var import_react_intl15 = require("react-intl");
4292
4383
 
4293
4384
  // src/components/WalletModalContent/index.tsx
4294
- var import_react29 = require("react");
4385
+ var import_react30 = require("react");
4295
4386
 
4296
4387
  // src/assets/wallet.ts
4297
4388
  var walletErrorImage = "data:image/png;base64,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";
@@ -4312,7 +4403,7 @@ function WalletModalContent({
4312
4403
  address,
4313
4404
  connected
4314
4405
  }) {
4315
- const pageData = (0, import_react29.useMemo)(() => {
4406
+ const pageData = (0, import_react30.useMemo)(() => {
4316
4407
  if (status == "success") {
4317
4408
  return {
4318
4409
  btnText: "Disconnect Wallet",
@@ -4390,8 +4481,8 @@ function WalletModalContent({
4390
4481
  ] }) });
4391
4482
  }
4392
4483
  function WalletModalContentV2(props) {
4393
- const [submitting, setSubmitting] = (0, import_react29.useState)(false);
4394
- const pageData = (0, import_react29.useMemo)(() => {
4484
+ const [submitting, setSubmitting] = (0, import_react30.useState)(false);
4485
+ const pageData = (0, import_react30.useMemo)(() => {
4395
4486
  const { status } = props;
4396
4487
  if (status == "success") {
4397
4488
  return {
@@ -4472,82 +4563,18 @@ function WalletModalContentV2(props) {
4472
4563
  }
4473
4564
 
4474
4565
  // src/components/EVMModal/index.tsx
4475
- var import_chains = require("wagmi/chains");
4476
- var import_rainbowkit = require("@rainbow-me/rainbowkit");
4477
- var import_wagmi2 = require("wagmi");
4478
- var import_wallets = require("@rainbow-me/rainbowkit/wallets");
4479
-
4480
- // src/config/chains/MatchMain.ts
4481
- var import_viem11 = require("viem");
4482
- var matchMain = /* @__PURE__ */ (0, import_viem11.defineChain)({
4483
- //定义match链
4484
- id: 698,
4485
- name: "Matchain",
4486
- nativeCurrency: { name: "Match Coin", symbol: "BNB", decimals: 18 },
4487
- rpcUrls: {
4488
- default: {
4489
- http: ["https://rpc.matchain.io"]
4490
- }
4491
- },
4492
- blockExplorers: {
4493
- default: {
4494
- name: "Matchscan",
4495
- url: "https://matchscan.io/",
4496
- apiUrl: "https://matchscan.io/api"
4497
- }
4498
- },
4499
- iconUrl: "https://matchscan.io/static/identicon_logos/blockies.png",
4500
- contracts: {
4501
- multicall3: {
4502
- address: "0xca11bde05977b3631167028862be2a173976ca11"
4503
- }
4504
- }
4505
- // testnet: true,
4506
- });
4507
-
4508
- // src/config/chains/MatchTest.ts
4509
- var import_viem12 = require("viem");
4510
- var matchTest = /* @__PURE__ */ (0, import_viem12.defineChain)({
4511
- //定义matchTest链
4512
- id: 699,
4513
- name: "MatchTest",
4514
- nativeCurrency: { name: "Match Coin", symbol: "BNB", decimals: 18 },
4515
- rpcUrls: {
4516
- default: {
4517
- http: ["https://testnet-rpc.matchain.io"]
4518
- }
4519
- },
4520
- blockExplorers: {
4521
- default: {
4522
- name: "Matchscan",
4523
- url: "https://testnet.matchscan.io/",
4524
- apiUrl: "https://testnet.matchscan.io/api"
4525
- }
4526
- },
4527
- iconUrl: "https://testnet.matchscan.io/static/identicon_logos/blockies.png",
4528
- contracts: {
4529
- multicall3: {
4530
- address: "0xca11bde05977b3631167028862be2a173976ca11",
4531
- blockCreated: 751532
4532
- },
4533
- ensRegistry: { address: "0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e" },
4534
- ensUniversalResolver: {
4535
- address: "0xc8Af999e38273D658BE1b921b88A9Ddf005769cC",
4536
- blockCreated: 5317080
4537
- }
4538
- }
4539
- // testnet: true,
4540
- });
4566
+ var import_rainbowkit2 = require("@rainbow-me/rainbowkit");
4567
+ var import_wagmi3 = require("wagmi");
4541
4568
 
4542
4569
  // src/hooks/useWalletBox.ts
4543
- var import_react30 = require("react");
4570
+ var import_react31 = require("react");
4544
4571
  function useWalletBox({
4545
4572
  onInit
4546
4573
  }) {
4547
- const [status, setStateStatus] = (0, import_react30.useState)("start");
4548
- const [error, setError] = (0, import_react30.useState)("");
4549
- const statusRef = (0, import_react30.useRef)(status);
4550
- const [nonce, setNonce] = (0, import_react30.useState)();
4574
+ const [status, setStateStatus] = (0, import_react31.useState)("start");
4575
+ const [error, setError] = (0, import_react31.useState)("");
4576
+ const statusRef = (0, import_react31.useRef)(status);
4577
+ const [nonce, setNonce] = (0, import_react31.useState)();
4551
4578
  const setStatus = (status2) => {
4552
4579
  statusRef.current = status2;
4553
4580
  setStateStatus(status2);
@@ -4556,7 +4583,7 @@ function useWalletBox({
4556
4583
  setError("");
4557
4584
  setNonce(null);
4558
4585
  };
4559
- (0, import_react30.useEffect)(() => {
4586
+ (0, import_react31.useEffect)(() => {
4560
4587
  init();
4561
4588
  onInit({
4562
4589
  setStatus
@@ -4580,8 +4607,8 @@ function useWalletBox({
4580
4607
  }
4581
4608
 
4582
4609
  // src/hooks/useEthersSigner.ts
4583
- var React8 = __toESM(require("react"));
4584
- var import_wagmi = require("wagmi");
4610
+ var React9 = __toESM(require("react"));
4611
+ var import_wagmi2 = require("wagmi");
4585
4612
  var import_ethers = require("ethers");
4586
4613
 
4587
4614
  // node_modules/@wagmi/core/dist/esm/version.js
@@ -4803,22 +4830,22 @@ function WalletContent({
4803
4830
  onSuccess,
4804
4831
  type
4805
4832
  }) {
4806
- const config = (0, import_wagmi2.useConfig)();
4807
- const { openConnectModal, connectModalOpen } = (0, import_rainbowkit.useConnectModal)();
4808
- const { address, connector, isConnected } = (0, import_wagmi2.useAccount)();
4809
- const { disconnectAsync } = (0, import_wagmi2.useDisconnect)({ config });
4810
- const chainId = (0, import_wagmi2.useChainId)();
4833
+ const config = (0, import_wagmi3.useConfig)();
4834
+ const { openConnectModal, connectModalOpen } = (0, import_rainbowkit2.useConnectModal)();
4835
+ const { address, connector, isConnected } = (0, import_wagmi3.useAccount)();
4836
+ const { disconnectAsync } = (0, import_wagmi3.useDisconnect)({ config });
4837
+ const chainId = (0, import_wagmi3.useChainId)();
4811
4838
  const { events, login } = useMatch();
4812
- const [inited, setInited] = (0, import_react31.useState)(false);
4839
+ const [inited, setInited] = (0, import_react32.useState)(false);
4813
4840
  const { status, setStatus, error, setError, statusRef, nonce, setNonce, init } = useWalletBox({
4814
4841
  onInit: async ({ setStatus: setStatus2 }) => {
4815
4842
  setStatus2("start");
4816
4843
  }
4817
4844
  });
4818
- (0, import_react31.useEffect)(() => {
4845
+ (0, import_react32.useEffect)(() => {
4819
4846
  matchlog_default.log(`status=${status}`, `connectModalOpen=${connectModalOpen}`, `address=${address}`, `isConnected=${isConnected}`);
4820
4847
  }, [status, connectModalOpen, isConnected, address]);
4821
- (0, import_react31.useEffect)(() => {
4848
+ (0, import_react32.useEffect)(() => {
4822
4849
  if (connectModalOpen) {
4823
4850
  setStatus("connecting");
4824
4851
  return;
@@ -4831,7 +4858,7 @@ function WalletContent({
4831
4858
  setStatus("start");
4832
4859
  }
4833
4860
  }, [connectModalOpen, address]);
4834
- (0, import_react31.useEffect)(() => {
4861
+ (0, import_react32.useEffect)(() => {
4835
4862
  if (openConnectModal && !isConnected && !inited) {
4836
4863
  openConnectModal && openConnectModal();
4837
4864
  setInited(true);
@@ -4858,7 +4885,7 @@ function WalletContent({
4858
4885
  setError(error2.message);
4859
4886
  }
4860
4887
  };
4861
- const signature = (0, import_react31.useCallback)(async () => {
4888
+ const signature = (0, import_react32.useCallback)(async () => {
4862
4889
  if (!nonce || status != "nonce") {
4863
4890
  return;
4864
4891
  }
@@ -4914,7 +4941,7 @@ function WalletContent({
4914
4941
  setError(error2.reason || error2.message);
4915
4942
  }
4916
4943
  }, [nonce, status, address]);
4917
- (0, import_react31.useEffect)(() => {
4944
+ (0, import_react32.useEffect)(() => {
4918
4945
  if (signature) {
4919
4946
  signature();
4920
4947
  }
@@ -4968,42 +4995,25 @@ function WalletContent({
4968
4995
  }
4969
4996
  );
4970
4997
  }
4971
- var wagmiConfig = (0, import_rainbowkit.getDefaultConfig)({
4972
- appName: "MatchID",
4973
- projectId: "9ac6ea7e07860f04616fb311b447dee9",
4974
- wallets: [
4975
- {
4976
- groupName: "Recommended",
4977
- wallets: [
4978
- import_wallets.metaMaskWallet,
4979
- import_wallets.walletConnectWallet,
4980
- import_wallets.okxWallet,
4981
- import_wallets.bitgetWallet,
4982
- import_wallets.injectedWallet
4983
- ]
4984
- }
4985
- ],
4986
- chains: [import_chains.mainnet, import_chains.polygon, import_chains.optimism, import_chains.arbitrum, import_chains.base, matchMain, matchTest, import_chains.bsc]
4987
- });
4988
4998
  function EVMConnectModal({
4989
4999
  type = "login",
4990
5000
  onSuccess,
4991
5001
  ...props
4992
5002
  }) {
4993
- const intl = (0, import_react_intl14.useIntl)();
5003
+ const intl = (0, import_react_intl15.useIntl)();
4994
5004
  return /* @__PURE__ */ (0, import_jsx_runtime88.jsx)(ModalWithHeader, { ...props, title: props.title || intl.formatMessage({
4995
5005
  id: type == "bind" ? "bindWith" : "loginWith"
4996
5006
  }, {
4997
5007
  name: "EVM"
4998
- }), children: /* @__PURE__ */ (0, import_jsx_runtime88.jsx)(import_wagmi2.WagmiProvider, { config: wagmiConfig, children: /* @__PURE__ */ (0, import_jsx_runtime88.jsx)(import_rainbowkit.RainbowKitProvider, { children: /* @__PURE__ */ (0, import_jsx_runtime88.jsx)(WalletContent, { onSuccess, type }) }) }) });
5008
+ }), children: /* @__PURE__ */ (0, import_jsx_runtime88.jsx)(WalletContent, { onSuccess, type }) });
4999
5009
  }
5000
5010
  function EVMModal(props) {
5001
5011
  return props.isOpen && /* @__PURE__ */ (0, import_jsx_runtime88.jsx)(EVMConnectModal, { ...props });
5002
5012
  }
5003
5013
 
5004
5014
  // src/components/TRONModal/index.tsx
5005
- var import_react33 = __toESM(require("react"));
5006
- var import_react_intl15 = require("react-intl");
5015
+ var import_react34 = __toESM(require("react"));
5016
+ var import_react_intl16 = require("react-intl");
5007
5017
 
5008
5018
  // src/lib/tron/TronLinkAdapter.ts
5009
5019
  var TronLinkAdapter = class {
@@ -5036,7 +5046,7 @@ var TronLinkAdapter = class {
5036
5046
  };
5037
5047
 
5038
5048
  // src/hooks/useTRONWallet.ts
5039
- var import_react32 = require("react");
5049
+ var import_react33 = require("react");
5040
5050
 
5041
5051
  // src/lib/tron/BitgetAdapter.ts
5042
5052
  var BitgetAdapter = class {
@@ -5081,9 +5091,9 @@ var OKXAdapter = class {
5081
5091
  // src/hooks/useTRONWallet.ts
5082
5092
  var useTRONWallet = () => {
5083
5093
  const wallets = [new TronLinkAdapter(), new BitgetAdapter(), new OKXAdapter()];
5084
- const [installedWallets, setInstalledWallets] = (0, import_react32.useState)([]);
5085
- const [address, setAddress] = (0, import_react32.useState)(null);
5086
- (0, import_react32.useEffect)(() => {
5094
+ const [installedWallets, setInstalledWallets] = (0, import_react33.useState)([]);
5095
+ const [address, setAddress] = (0, import_react33.useState)(null);
5096
+ (0, import_react33.useEffect)(() => {
5087
5097
  const getInstalled = async () => {
5088
5098
  const installed = await Promise.all(wallets.map((wallet2) => wallet2.isInstalled().then((isInstalled) => ({
5089
5099
  wallet: wallet2,
@@ -5093,11 +5103,11 @@ var useTRONWallet = () => {
5093
5103
  };
5094
5104
  getInstalled();
5095
5105
  }, []);
5096
- const [wallet, chooseWallet] = (0, import_react32.useState)(null);
5106
+ const [wallet, chooseWallet] = (0, import_react33.useState)(null);
5097
5107
  const onConnect = async () => {
5098
5108
  setAddress(await wallet.connect());
5099
5109
  };
5100
- (0, import_react32.useEffect)(() => {
5110
+ (0, import_react33.useEffect)(() => {
5101
5111
  if (!wallet) {
5102
5112
  setAddress(null);
5103
5113
  }
@@ -5120,7 +5130,7 @@ function TRONConnectModal({
5120
5130
  ...props
5121
5131
  }) {
5122
5132
  const isDownMd = useDownMd();
5123
- const intl = (0, import_react_intl15.useIntl)();
5133
+ const intl = (0, import_react_intl16.useIntl)();
5124
5134
  const { wallets, installedWallets, chooseWallet, wallet, address, onConnect } = useTRONWallet();
5125
5135
  const iconMaps = {
5126
5136
  tronlink: /* @__PURE__ */ (0, import_jsx_runtime89.jsx)(TronLinkIcon, { size: isDownMd ? 36 : 40 }),
@@ -5128,10 +5138,10 @@ function TRONConnectModal({
5128
5138
  okx: /* @__PURE__ */ (0, import_jsx_runtime89.jsx)(OKXIcon, { size: isDownMd ? 36 : 40 })
5129
5139
  };
5130
5140
  const { events, login } = useMatch();
5131
- const [status, setStatus] = (0, import_react33.useState)("");
5132
- const statusRef = import_react33.default.useRef(status);
5133
- const [error, setError] = (0, import_react33.useState)("");
5134
- const connected = (0, import_react33.useMemo)(() => {
5141
+ const [status, setStatus] = (0, import_react34.useState)("");
5142
+ const statusRef = import_react34.default.useRef(status);
5143
+ const [error, setError] = (0, import_react34.useState)("");
5144
+ const connected = (0, import_react34.useMemo)(() => {
5135
5145
  return !!address;
5136
5146
  }, [address]);
5137
5147
  const disconnect = async () => {
@@ -5199,7 +5209,7 @@ function TRONConnectModal({
5199
5209
  statusRef.current = "";
5200
5210
  }
5201
5211
  };
5202
- (0, import_react33.useEffect)(() => {
5212
+ (0, import_react34.useEffect)(() => {
5203
5213
  if (wallet) {
5204
5214
  console.log("onConnect");
5205
5215
  onConnect();
@@ -5207,12 +5217,12 @@ function TRONConnectModal({
5207
5217
  setStatus("");
5208
5218
  }
5209
5219
  }, [wallet]);
5210
- (0, import_react33.useEffect)(() => {
5220
+ (0, import_react34.useEffect)(() => {
5211
5221
  if (address) {
5212
5222
  toLoginInWallet();
5213
5223
  }
5214
5224
  }, [address]);
5215
- (0, import_react33.useEffect)(() => {
5225
+ (0, import_react34.useEffect)(() => {
5216
5226
  if (!props.isOpen) {
5217
5227
  disconnect();
5218
5228
  }
@@ -5270,8 +5280,8 @@ function TRONModal(props) {
5270
5280
  }
5271
5281
 
5272
5282
  // src/components/TONModal/index.tsx
5273
- var import_react34 = __toESM(require("react"));
5274
- var import_react_intl16 = require("react-intl");
5283
+ var import_react35 = __toESM(require("react"));
5284
+ var import_react_intl17 = require("react-intl");
5275
5285
  var import_ui_react = require("@tonconnect/ui-react");
5276
5286
  var import_jsx_runtime90 = require("react/jsx-runtime");
5277
5287
  function WalletContent2({
@@ -5279,15 +5289,15 @@ function WalletContent2({
5279
5289
  type
5280
5290
  }) {
5281
5291
  const { events, login } = useMatch();
5282
- const [connected, setConnected] = (0, import_react34.useState)(false);
5292
+ const [connected, setConnected] = (0, import_react35.useState)(false);
5283
5293
  const wallet = (0, import_ui_react.useTonWallet)();
5284
5294
  const userFriendlyAddress = (0, import_ui_react.useTonAddress)();
5285
5295
  const [tonConnectUI] = (0, import_ui_react.useTonConnectUI)();
5286
5296
  const { state, open, close } = (0, import_ui_react.useTonConnectModal)();
5287
- const [status, setStatus] = (0, import_react34.useState)("");
5288
- const statusRef = import_react34.default.useRef(status);
5289
- const [error, setError] = (0, import_react34.useState)("");
5290
- (0, import_react34.useEffect)(() => {
5297
+ const [status, setStatus] = (0, import_react35.useState)("");
5298
+ const statusRef = import_react35.default.useRef(status);
5299
+ const [error, setError] = (0, import_react35.useState)("");
5300
+ (0, import_react35.useEffect)(() => {
5291
5301
  const init = async () => {
5292
5302
  if (tonConnectUI.connected) {
5293
5303
  await tonConnectUI.disconnect();
@@ -5360,7 +5370,7 @@ function WalletContent2({
5360
5370
  }
5361
5371
  });
5362
5372
  }, []);
5363
- (0, import_react34.useEffect)(() => {
5373
+ (0, import_react35.useEffect)(() => {
5364
5374
  if (wallet) {
5365
5375
  setConnected(true);
5366
5376
  console.log("Wallet connected:", wallet);
@@ -5371,7 +5381,7 @@ function WalletContent2({
5371
5381
  setStatus("");
5372
5382
  }
5373
5383
  }, [wallet]);
5374
- (0, import_react34.useEffect)(() => {
5384
+ (0, import_react35.useEffect)(() => {
5375
5385
  console.log({
5376
5386
  state,
5377
5387
  wallet
@@ -5431,7 +5441,7 @@ function TONConnectModal({
5431
5441
  onSuccess,
5432
5442
  ...props
5433
5443
  }) {
5434
- const intl = (0, import_react_intl16.useIntl)();
5444
+ const intl = (0, import_react_intl17.useIntl)();
5435
5445
  const { endpoints, appid } = useLocalStore_default();
5436
5446
  const manifestUrl = `${endpoints.back}api/v1/wallet/ton?appid=${appid}&url=` + encodeURIComponent(window.location.origin);
5437
5447
  return /* @__PURE__ */ (0, import_jsx_runtime90.jsx)(ModalWithHeader, { ...props, title: props.title || intl.formatMessage({
@@ -5451,8 +5461,8 @@ function TONModal(props) {
5451
5461
  }
5452
5462
 
5453
5463
  // src/components/BTCModal/index.tsx
5454
- var import_react36 = __toESM(require("react"));
5455
- var import_react_intl17 = require("react-intl");
5464
+ var import_react37 = __toESM(require("react"));
5465
+ var import_react_intl18 = require("react-intl");
5456
5466
 
5457
5467
  // src/lib/btc/UnisatAdapter.ts
5458
5468
  var UnisatAdapter = class {
@@ -5600,7 +5610,7 @@ var LeatherAdapter = class {
5600
5610
  };
5601
5611
 
5602
5612
  // src/hooks/useBTCWallet.ts
5603
- var import_react35 = require("react");
5613
+ var import_react36 = require("react");
5604
5614
 
5605
5615
  // src/lib/btc/PhantomAdapter.ts
5606
5616
  var PhantomAdapter = class {
@@ -5638,9 +5648,9 @@ var PhantomAdapter = class {
5638
5648
  // src/hooks/useBTCWallet.ts
5639
5649
  var useBTCWallet = () => {
5640
5650
  const wallets = [new UnisatAdapter(), new XverseAdapter(), new LeatherAdapter(), new PhantomAdapter()];
5641
- const [installedWallets, setInstalledWallets] = (0, import_react35.useState)([]);
5642
- const [address, setAddress] = (0, import_react35.useState)(null);
5643
- (0, import_react35.useEffect)(() => {
5651
+ const [installedWallets, setInstalledWallets] = (0, import_react36.useState)([]);
5652
+ const [address, setAddress] = (0, import_react36.useState)(null);
5653
+ (0, import_react36.useEffect)(() => {
5644
5654
  const getInstalled = async () => {
5645
5655
  const installed = await Promise.all(wallets.map((wallet2) => wallet2.isInstalled().then((isInstalled) => ({
5646
5656
  wallet: wallet2,
@@ -5650,11 +5660,11 @@ var useBTCWallet = () => {
5650
5660
  };
5651
5661
  getInstalled();
5652
5662
  }, []);
5653
- const [wallet, chooseWallet] = (0, import_react35.useState)(null);
5663
+ const [wallet, chooseWallet] = (0, import_react36.useState)(null);
5654
5664
  const onConnect = async () => {
5655
5665
  setAddress(await wallet.connect());
5656
5666
  };
5657
- (0, import_react35.useEffect)(() => {
5667
+ (0, import_react36.useEffect)(() => {
5658
5668
  if (!wallet) {
5659
5669
  setAddress(null);
5660
5670
  }
@@ -5677,7 +5687,7 @@ function BTCConnectModal({
5677
5687
  ...props
5678
5688
  }) {
5679
5689
  const isDownMd = useDownMd();
5680
- const intl = (0, import_react_intl17.useIntl)();
5690
+ const intl = (0, import_react_intl18.useIntl)();
5681
5691
  const { wallets, installedWallets, chooseWallet, wallet, address, onConnect } = useBTCWallet();
5682
5692
  const iconMaps = {
5683
5693
  leather: /* @__PURE__ */ (0, import_jsx_runtime91.jsx)(LeatherIcon, { size: isDownMd ? 36 : 40 }),
@@ -5686,10 +5696,10 @@ function BTCConnectModal({
5686
5696
  phantom: /* @__PURE__ */ (0, import_jsx_runtime91.jsx)(PhantomIcon, { size: isDownMd ? 36 : 40 })
5687
5697
  };
5688
5698
  const { events, login } = useMatch();
5689
- const [status, setStatus] = (0, import_react36.useState)("");
5690
- const statusRef = import_react36.default.useRef(status);
5691
- const [error, setError] = (0, import_react36.useState)("");
5692
- const connected = (0, import_react36.useMemo)(() => {
5699
+ const [status, setStatus] = (0, import_react37.useState)("");
5700
+ const statusRef = import_react37.default.useRef(status);
5701
+ const [error, setError] = (0, import_react37.useState)("");
5702
+ const connected = (0, import_react37.useMemo)(() => {
5693
5703
  return !!address;
5694
5704
  }, [address]);
5695
5705
  const disconnect = async () => {
@@ -5753,7 +5763,7 @@ function BTCConnectModal({
5753
5763
  statusRef.current = "";
5754
5764
  }
5755
5765
  };
5756
- (0, import_react36.useEffect)(() => {
5766
+ (0, import_react37.useEffect)(() => {
5757
5767
  if (wallet) {
5758
5768
  console.log("onConnect");
5759
5769
  try {
@@ -5766,12 +5776,12 @@ function BTCConnectModal({
5766
5776
  setStatus("");
5767
5777
  }
5768
5778
  }, [wallet]);
5769
- (0, import_react36.useEffect)(() => {
5779
+ (0, import_react37.useEffect)(() => {
5770
5780
  if (address) {
5771
5781
  toLoginInWallet();
5772
5782
  }
5773
5783
  }, [address]);
5774
- (0, import_react36.useEffect)(() => {
5784
+ (0, import_react37.useEffect)(() => {
5775
5785
  if (!props.isOpen) {
5776
5786
  disconnect();
5777
5787
  }
@@ -5836,19 +5846,19 @@ function BTCModal(props) {
5836
5846
  }
5837
5847
 
5838
5848
  // src/components/WalletModal/index.tsx
5839
- var import_react37 = require("react");
5840
- var import_react_intl18 = require("react-intl");
5849
+ var import_react38 = require("react");
5850
+ var import_react_intl19 = require("react-intl");
5841
5851
  var import_jsx_runtime92 = require("react/jsx-runtime");
5842
5852
  function WalletConnectModal({
5843
5853
  type,
5844
5854
  methods: _methods,
5845
5855
  ...props
5846
5856
  }) {
5847
- const intl = (0, import_react_intl18.useIntl)();
5857
+ const intl = (0, import_react_intl19.useIntl)();
5848
5858
  const { walletMap } = useWalletConfig();
5849
5859
  const { bind, login } = useUserInfo();
5850
5860
  const config = useAppConfig();
5851
- const methods = (0, import_react37.useMemo)(() => {
5861
+ const methods = (0, import_react38.useMemo)(() => {
5852
5862
  if (_methods) return _methods;
5853
5863
  if (!config.platform) {
5854
5864
  return [];
@@ -5880,11 +5890,11 @@ function WalletModal(props) {
5880
5890
  }
5881
5891
 
5882
5892
  // src/components/AlphaAvatar/index.tsx
5883
- var import_react38 = require("react");
5893
+ var import_react39 = require("react");
5884
5894
  var import_jsx_runtime93 = require("react/jsx-runtime");
5885
5895
  function AlphaAvatar2({ name, size = 40, className = "" }) {
5886
- const [avatar, setAvatar] = (0, import_react38.useState)(void 0);
5887
- (0, import_react38.useEffect)(() => {
5896
+ const [avatar, setAvatar] = (0, import_react39.useState)(void 0);
5897
+ (0, import_react39.useEffect)(() => {
5888
5898
  if (name) {
5889
5899
  const char = name[0].toUpperCase();
5890
5900
  setAvatar(char);
@@ -5981,9 +5991,9 @@ function WalletAsset({
5981
5991
  }
5982
5992
 
5983
5993
  // src/components/TokenSend/index.tsx
5984
- var import_react39 = require("react");
5994
+ var import_react40 = require("react");
5985
5995
  var import_viem15 = require("viem");
5986
- var import_react_intl19 = require("react-intl");
5996
+ var import_react_intl20 = require("react-intl");
5987
5997
  var import_jsx_runtime95 = require("react/jsx-runtime");
5988
5998
  function Input2({
5989
5999
  onChange,
@@ -6016,25 +6026,25 @@ function TokenSend({
6016
6026
  onBack
6017
6027
  }) {
6018
6028
  const { list: chainList } = useMatchChain();
6019
- const intl = (0, import_react_intl19.useIntl)();
6029
+ const intl = (0, import_react_intl20.useIntl)();
6020
6030
  const { createWalletClient: createWalletClient2 } = useWallet();
6021
6031
  const isNative = token.address.toLowerCase() == NATIVE_TOKEN_ADDRESS;
6022
- const chain = (0, import_react39.useMemo)(() => {
6032
+ const chain = (0, import_react40.useMemo)(() => {
6023
6033
  return chainList?.find((m) => m.id.toString() === token.chain_id);
6024
6034
  }, [chainList, token.chain_id]);
6025
- const walletClient = (0, import_react39.useMemo)(() => {
6035
+ const walletClient = (0, import_react40.useMemo)(() => {
6026
6036
  return createWalletClient2({
6027
6037
  // @ts-ignore
6028
6038
  chain: (0, import_viem15.defineChain)(chain),
6029
6039
  transport: (0, import_viem15.http)()
6030
6040
  });
6031
6041
  }, [chain]);
6032
- const [amount, setAmount] = (0, import_react39.useState)("");
6033
- const [address, setAddress] = (0, import_react39.useState)("");
6034
- const [loading, setLoading] = (0, import_react39.useState)(false);
6035
- const [sending, setSending] = (0, import_react39.useState)(false);
6036
- const [txError, setTxError] = (0, import_react39.useState)("");
6037
- const transaction = (0, import_react39.useMemo)(() => {
6042
+ const [amount, setAmount] = (0, import_react40.useState)("");
6043
+ const [address, setAddress] = (0, import_react40.useState)("");
6044
+ const [loading, setLoading] = (0, import_react40.useState)(false);
6045
+ const [sending, setSending] = (0, import_react40.useState)(false);
6046
+ const [txError, setTxError] = (0, import_react40.useState)("");
6047
+ const transaction = (0, import_react40.useMemo)(() => {
6038
6048
  const reg = /^0x[a-fA-F0-9]{40}$/;
6039
6049
  if (!amount || !address || !reg.test(address)) {
6040
6050
  return;
@@ -6065,7 +6075,7 @@ function TokenSend({
6065
6075
  setLoading(false);
6066
6076
  }
6067
6077
  };
6068
- const error = (0, import_react39.useMemo)(() => {
6078
+ const error = (0, import_react40.useMemo)(() => {
6069
6079
  setTxError("");
6070
6080
  let amountError = "";
6071
6081
  let addressError = "";
@@ -6108,7 +6118,7 @@ function TokenSend({
6108
6118
  setAmount(value);
6109
6119
  }
6110
6120
  };
6111
- const canSend = (0, import_react39.useMemo)(() => {
6121
+ const canSend = (0, import_react40.useMemo)(() => {
6112
6122
  return !error.amount && !error.address && amount && address;
6113
6123
  }, [error]);
6114
6124
  const onNext = async () => {
@@ -6118,7 +6128,7 @@ function TokenSend({
6118
6128
  }
6119
6129
  onClose();
6120
6130
  };
6121
- (0, import_react39.useEffect)(() => {
6131
+ (0, import_react40.useEffect)(() => {
6122
6132
  const receiveMessage = (event) => {
6123
6133
  if (event.data) {
6124
6134
  if (event.data.source == "match-wallet") {
@@ -6134,11 +6144,11 @@ function TokenSend({
6134
6144
  window.removeEventListener("message", receiveMessage);
6135
6145
  };
6136
6146
  }, []);
6137
- return /* @__PURE__ */ (0, import_jsx_runtime95.jsx)(ModalDrawer, { isOpen: true, onClose, zIndex, title: /* @__PURE__ */ (0, import_jsx_runtime95.jsx)(import_react_intl19.FormattedMessage, { id: "send" }), onBack, children: /* @__PURE__ */ (0, import_jsx_runtime95.jsxs)("div", { className: `matchid-token-send-box`, children: [
6147
+ return /* @__PURE__ */ (0, import_jsx_runtime95.jsx)(ModalDrawer, { isOpen: true, onClose, zIndex, title: /* @__PURE__ */ (0, import_jsx_runtime95.jsx)(import_react_intl20.FormattedMessage, { id: "send" }), onBack, children: /* @__PURE__ */ (0, import_jsx_runtime95.jsxs)("div", { className: `matchid-token-send-box`, children: [
6138
6148
  /* @__PURE__ */ (0, import_jsx_runtime95.jsxs)("div", { className: "matchid-token-send-content", children: [
6139
6149
  /* @__PURE__ */ (0, import_jsx_runtime95.jsxs)("div", { className: `matchid-token-amount-content`, children: [
6140
6150
  /* @__PURE__ */ (0, import_jsx_runtime95.jsxs)("div", { className: `matchid-token-amount-header`, children: [
6141
- /* @__PURE__ */ (0, import_jsx_runtime95.jsx)("div", { className: `matchid-token-amount-title`, children: /* @__PURE__ */ (0, import_jsx_runtime95.jsx)(import_react_intl19.FormattedMessage, { id: "amount" }) }),
6151
+ /* @__PURE__ */ (0, import_jsx_runtime95.jsx)("div", { className: `matchid-token-amount-title`, children: /* @__PURE__ */ (0, import_jsx_runtime95.jsx)(import_react_intl20.FormattedMessage, { id: "amount" }) }),
6142
6152
  /* @__PURE__ */ (0, import_jsx_runtime95.jsxs)("div", { className: `matchid-token-amount-chain`, children: [
6143
6153
  token.icon ? /* @__PURE__ */ (0, import_jsx_runtime95.jsx)(
6144
6154
  "img",
@@ -6166,7 +6176,7 @@ function TokenSend({
6166
6176
  ),
6167
6177
  /* @__PURE__ */ (0, import_jsx_runtime95.jsxs)("div", { className: `matchid-token-amount-footer`, children: [
6168
6178
  /* @__PURE__ */ (0, import_jsx_runtime95.jsxs)("div", { className: `matchid-token-amount-title`, children: [
6169
- /* @__PURE__ */ (0, import_jsx_runtime95.jsx)(import_react_intl19.FormattedMessage, { id: "balance" }),
6179
+ /* @__PURE__ */ (0, import_jsx_runtime95.jsx)(import_react_intl20.FormattedMessage, { id: "balance" }),
6170
6180
  ":"
6171
6181
  ] }),
6172
6182
  /* @__PURE__ */ (0, import_jsx_runtime95.jsx)("div", { className: `matchid-token-amount-value`, children: /* @__PURE__ */ (0, import_jsx_runtime95.jsx)(NumberFormatter, { value: token.balance, tFixNum: 10, suffix: " " + token.symbol }) })
@@ -6174,7 +6184,7 @@ function TokenSend({
6174
6184
  /* @__PURE__ */ (0, import_jsx_runtime95.jsx)(TransferIcon, { className: "matchid-token-amount-transfer" })
6175
6185
  ] }),
6176
6186
  /* @__PURE__ */ (0, import_jsx_runtime95.jsxs)("div", { className: `matchid-token-address-content`, children: [
6177
- /* @__PURE__ */ (0, import_jsx_runtime95.jsx)("div", { className: `matchid-token-address-header`, children: /* @__PURE__ */ (0, import_jsx_runtime95.jsx)("div", { className: `matchid-token-address-title`, children: /* @__PURE__ */ (0, import_jsx_runtime95.jsx)(import_react_intl19.FormattedMessage, { id: "receiveTitle" }) }) }),
6187
+ /* @__PURE__ */ (0, import_jsx_runtime95.jsx)("div", { className: `matchid-token-address-header`, children: /* @__PURE__ */ (0, import_jsx_runtime95.jsx)("div", { className: `matchid-token-address-title`, children: /* @__PURE__ */ (0, import_jsx_runtime95.jsx)(import_react_intl20.FormattedMessage, { id: "receiveTitle" }) }) }),
6178
6188
  /* @__PURE__ */ (0, import_jsx_runtime95.jsx)(
6179
6189
  Input2,
6180
6190
  {
@@ -6200,14 +6210,14 @@ function TokenSend({
6200
6210
  disabled: !canSend || !!txError,
6201
6211
  onClick: onNext,
6202
6212
  loading: loading || sending,
6203
- children: /* @__PURE__ */ (0, import_jsx_runtime95.jsx)(import_react_intl19.FormattedMessage, { id: "next" })
6213
+ children: /* @__PURE__ */ (0, import_jsx_runtime95.jsx)(import_react_intl20.FormattedMessage, { id: "next" })
6204
6214
  }
6205
6215
  )
6206
6216
  ] }) });
6207
6217
  }
6208
6218
 
6209
6219
  // src/components/TokenDetail/index.tsx
6210
- var import_react_intl20 = require("react-intl");
6220
+ var import_react_intl21 = require("react-intl");
6211
6221
  var import_jsx_runtime96 = require("react/jsx-runtime");
6212
6222
  function TokenDetail({
6213
6223
  onClose,
@@ -6224,7 +6234,7 @@ function TokenDetail({
6224
6234
  }, onBack: props.close, zIndex: props.zIndex, token });
6225
6235
  });
6226
6236
  };
6227
- const intl = (0, import_react_intl20.useIntl)();
6237
+ const intl = (0, import_react_intl21.useIntl)();
6228
6238
  return /* @__PURE__ */ (0, import_jsx_runtime96.jsx)(ModalDrawer, { isOpen: true, title: intl.formatMessage({
6229
6239
  id: "tokenDetails"
6230
6240
  }), onClose, children: /* @__PURE__ */ (0, import_jsx_runtime96.jsxs)("div", { className: `matchid-token-detail`, children: [
@@ -6245,13 +6255,13 @@ function TokenDetail({
6245
6255
  /* @__PURE__ */ (0, import_jsx_runtime96.jsx)("div", { className: "matchid-token-contract-address", children: token.address })
6246
6256
  ] })
6247
6257
  ] }),
6248
- /* @__PURE__ */ (0, import_jsx_runtime96.jsx)(Button, { size: "lg", block: true, highlight: true, onClick: onSend, children: /* @__PURE__ */ (0, import_jsx_runtime96.jsx)(import_react_intl20.FormattedMessage, { id: "send" }) })
6258
+ /* @__PURE__ */ (0, import_jsx_runtime96.jsx)(Button, { size: "lg", block: true, highlight: true, onClick: onSend, children: /* @__PURE__ */ (0, import_jsx_runtime96.jsx)(import_react_intl21.FormattedMessage, { id: "send" }) })
6249
6259
  ] }) });
6250
6260
  }
6251
6261
 
6252
6262
  // src/components/TokenSendList/index.tsx
6253
- var import_react40 = require("react");
6254
- var import_react_intl21 = require("react-intl");
6263
+ var import_react41 = require("react");
6264
+ var import_react_intl22 = require("react-intl");
6255
6265
  var import_jsx_runtime97 = require("react/jsx-runtime");
6256
6266
  function TokenSendList({ close }) {
6257
6267
  const isDownMd = useDownMd();
@@ -6260,7 +6270,7 @@ function TokenSendList({ close }) {
6260
6270
  list: walletAssets.mergedAssets
6261
6271
  });
6262
6272
  const { list } = useMatchChain();
6263
- const [checked, setChecked] = (0, import_react40.useState)();
6273
+ const [checked, setChecked] = (0, import_react41.useState)();
6264
6274
  const modal = useModal();
6265
6275
  const onNext = () => {
6266
6276
  checked && modal.show((props) => {
@@ -6311,24 +6321,24 @@ function TokenSendList({ close }) {
6311
6321
  index
6312
6322
  );
6313
6323
  }) }),
6314
- /* @__PURE__ */ (0, import_jsx_runtime97.jsx)(Button, { size: "lg", highlight: true, block: true, disabled: !checked, onClick: onNext, children: /* @__PURE__ */ (0, import_jsx_runtime97.jsx)(import_react_intl21.FormattedMessage, { id: "next" }) })
6324
+ /* @__PURE__ */ (0, import_jsx_runtime97.jsx)(Button, { size: "lg", highlight: true, block: true, disabled: !checked, onClick: onNext, children: /* @__PURE__ */ (0, import_jsx_runtime97.jsx)(import_react_intl22.FormattedMessage, { id: "next" }) })
6315
6325
  ] });
6316
6326
  }
6317
6327
 
6318
6328
  // src/components/TransactionList/index.tsx
6319
6329
  var import_react_infinite_scroll_component = __toESM(require("react-infinite-scroll-component"));
6320
- var import_react41 = require("react");
6330
+ var import_react42 = require("react");
6321
6331
  var import_viem16 = require("viem");
6322
6332
  var import_viem17 = require("viem");
6323
- var import_react_intl22 = require("react-intl");
6333
+ var import_react_intl23 = require("react-intl");
6324
6334
  var import_jsx_runtime98 = require("react/jsx-runtime");
6325
6335
  var Item = ({ data }) => {
6326
6336
  const { address } = useWallet();
6327
6337
  const isOut = data.from.toLowerCase() == address.toLowerCase();
6328
6338
  const { chain, chainId, explorerLink, formatUnits: chainFormatUnits } = useMatchChain();
6329
6339
  const { contracts } = useContractStore_default();
6330
- const [shouldRefetch, setShouldRefetch] = (0, import_react41.useState)(true);
6331
- const transferType = (0, import_react41.useMemo)(() => {
6340
+ const [shouldRefetch, setShouldRefetch] = (0, import_react42.useState)(true);
6341
+ const transferType = (0, import_react42.useMemo)(() => {
6332
6342
  const methodId = data.input.substring(2, 10);
6333
6343
  if (methodId == "095ea7b3") {
6334
6344
  return "erc20_approve";
@@ -6338,7 +6348,7 @@ var Item = ({ data }) => {
6338
6348
  }
6339
6349
  return "unknown";
6340
6350
  }, [data.input]);
6341
- const to = (0, import_react41.useMemo)(() => {
6351
+ const to = (0, import_react42.useMemo)(() => {
6342
6352
  if (!isOut) {
6343
6353
  return data.from;
6344
6354
  }
@@ -6351,7 +6361,7 @@ var Item = ({ data }) => {
6351
6361
  }
6352
6362
  return data.to;
6353
6363
  }, [data.input, transferType, data.to, isOut]);
6354
- const amount = (0, import_react41.useMemo)(() => {
6364
+ const amount = (0, import_react42.useMemo)(() => {
6355
6365
  if (transferType == "erc20_transfer") {
6356
6366
  const decodeData = (0, import_viem16.decodeFunctionData)({
6357
6367
  abi: import_viem17.erc20Abi,
@@ -6369,7 +6379,7 @@ var Item = ({ data }) => {
6369
6379
  refetchInterval: shouldRefetch ? 3e3 : false,
6370
6380
  enabled: shouldRefetch && data.source == "local"
6371
6381
  });
6372
- const status = (0, import_react41.useMemo)(() => {
6382
+ const status = (0, import_react42.useMemo)(() => {
6373
6383
  if (data.source == "matchain") {
6374
6384
  switch (data.extra.status) {
6375
6385
  case "ok":
@@ -6396,12 +6406,12 @@ var Item = ({ data }) => {
6396
6406
  }
6397
6407
  return "loading";
6398
6408
  }, [data.extra?.status, data.source, hashQuery.data]);
6399
- (0, import_react41.useEffect)(() => {
6409
+ (0, import_react42.useEffect)(() => {
6400
6410
  if (data.hash) {
6401
6411
  setShouldRefetch(status == "loading");
6402
6412
  }
6403
6413
  }, [status, data.hash]);
6404
- const symbol = (0, import_react41.useMemo)(() => {
6414
+ const symbol = (0, import_react42.useMemo)(() => {
6405
6415
  if (transferType == "erc20_transfer") {
6406
6416
  const contract = contracts[`${chainId}-${data.to.toLowerCase()}`];
6407
6417
  return contract?.symbol || contract?.name || "unknown";
@@ -6453,7 +6463,7 @@ function TransactionList({
6453
6463
  /* @__PURE__ */ (0, import_jsx_runtime98.jsx)(LoadingIcon_default, { rotate: true, size: 16, color: "black" }),
6454
6464
  "Loading..."
6455
6465
  ] }),
6456
- endMessage: items.length > 0 ? /* @__PURE__ */ (0, import_jsx_runtime98.jsx)("div", { className: `matchid-list-nomore`, children: /* @__PURE__ */ (0, import_jsx_runtime98.jsx)(import_react_intl22.FormattedMessage, { id: "noMoreRecords" }) }) : /* @__PURE__ */ (0, import_jsx_runtime98.jsx)("div", { className: `matchid-list-nomore`, children: /* @__PURE__ */ (0, import_jsx_runtime98.jsx)(import_react_intl22.FormattedMessage, { id: "noRecords" }) }),
6466
+ endMessage: items.length > 0 ? /* @__PURE__ */ (0, import_jsx_runtime98.jsx)("div", { className: `matchid-list-nomore`, children: /* @__PURE__ */ (0, import_jsx_runtime98.jsx)(import_react_intl23.FormattedMessage, { id: "noMoreRecords" }) }) : /* @__PURE__ */ (0, import_jsx_runtime98.jsx)("div", { className: `matchid-list-nomore`, children: /* @__PURE__ */ (0, import_jsx_runtime98.jsx)(import_react_intl23.FormattedMessage, { id: "noRecords" }) }),
6457
6467
  children: items.length == 0 && !hasMore ? /* @__PURE__ */ (0, import_jsx_runtime98.jsx)("div", { className: "mt-[150px]" }) : /* @__PURE__ */ (0, import_jsx_runtime98.jsx)("div", { className: `matchid-transaction-list`, children: items.map((item, index) => /* @__PURE__ */ (0, import_jsx_runtime98.jsx)(Item, { data: item }, index)) })
6458
6468
  }
6459
6469
  );
@@ -6477,13 +6487,12 @@ __export(contact_exports, {
6477
6487
  });
6478
6488
  var import_react_query13 = require("@tanstack/react-query");
6479
6489
  var import_last = __toESM(require("lodash/last"));
6480
- var import_react42 = require("react");
6490
+ var import_react43 = require("react");
6481
6491
  function useContactList(page_size = 10, type = "Friend") {
6482
- const { token } = useLocalStore_default();
6483
- const limitIdRef = (0, import_react42.useRef)(0);
6484
- const queryClient2 = (0, import_react_query13.useQueryClient)();
6492
+ const { address } = useUserInfo();
6493
+ const limitIdRef = (0, import_react43.useRef)(0);
6485
6494
  const contactQuery = (0, import_react_query13.useInfiniteQuery)({
6486
- queryKey: ["matchid-contacts-list", type, token],
6495
+ queryKey: ["matchid-contacts-list", type, address],
6487
6496
  initialPageParam: 1,
6488
6497
  queryFn: async (args) => {
6489
6498
  console.log(args);
@@ -6502,7 +6511,7 @@ function useContactList(page_size = 10, type = "Friend") {
6502
6511
  return allPages.length >= lastPageNum ? void 0 : allPages.length + 1;
6503
6512
  }
6504
6513
  });
6505
- (0, import_react42.useEffect)(() => {
6514
+ (0, import_react43.useEffect)(() => {
6506
6515
  if (!contactQuery.data?.pages || contactQuery.data?.pages.length == 0) {
6507
6516
  limitIdRef.current = 0;
6508
6517
  } else {
@@ -6516,13 +6525,19 @@ function useContactList(page_size = 10, type = "Friend") {
6516
6525
  limitIdRef.current = lastItem?.limit_id || 0;
6517
6526
  }
6518
6527
  }, [contactQuery.data?.pages]);
6519
- return {
6520
- data: (contactQuery.data?.pages ?? []).reduce(
6528
+ (0, import_react43.useEffect)(() => {
6529
+ console.log("contactQuery.data", contactQuery.data);
6530
+ }, [contactQuery.data]);
6531
+ const data = (0, import_react43.useMemo)(() => {
6532
+ return (contactQuery.data?.pages ?? []).reduce(
6521
6533
  (a, b) => {
6522
6534
  return a.concat(b?.items ?? []);
6523
6535
  },
6524
6536
  []
6525
- ),
6537
+ );
6538
+ }, [contactQuery.data]);
6539
+ return {
6540
+ data,
6526
6541
  totalCount: contactQuery.hasNextPage ? ((0, import_last.default)(contactQuery.data?.pages ?? [])?.meta.total ?? 0) + 1 : (0, import_last.default)(contactQuery.data?.pages ?? [])?.meta.total ?? 0,
6527
6542
  loading: contactQuery.isLoading,
6528
6543
  loadingNextPage: contactQuery.isFetchingNextPage,
@@ -6543,10 +6558,10 @@ function useContactSearch(keyword, options) {
6543
6558
  });
6544
6559
  }
6545
6560
  function useContactInfo(options) {
6546
- const { token } = useUserInfo();
6561
+ const { address } = useUserInfo();
6547
6562
  return (0, import_react_query13.useQuery)({
6548
- queryKey: ["matchid-contacts-info", token],
6549
- enabled: !!token,
6563
+ queryKey: ["matchid-contacts-info", address],
6564
+ enabled: !!address,
6550
6565
  queryFn: async () => {
6551
6566
  return (await getContractsInfoApi()).data;
6552
6567
  },
@@ -6583,29 +6598,30 @@ var delContact = async (friend_id) => {
6583
6598
 
6584
6599
  // src/components/ContactList/index.tsx
6585
6600
  var import_react_virtuoso = require("react-virtuoso");
6586
- var import_react43 = require("react");
6587
- var import_react_intl23 = require("react-intl");
6601
+ var import_react44 = require("react");
6602
+ var import_react_intl24 = require("react-intl");
6588
6603
  var import_jsx_runtime99 = require("react/jsx-runtime");
6589
6604
  function ContactCard({
6590
6605
  loading = false,
6591
6606
  data,
6592
6607
  action
6593
6608
  }) {
6609
+ const isDownMd = useDownMd();
6594
6610
  return /* @__PURE__ */ (0, import_jsx_runtime99.jsxs)("div", { className: "matchid-flex matchid-contact-item", children: [
6595
6611
  /* @__PURE__ */ (0, import_jsx_runtime99.jsxs)("div", { className: "matchid-contact-item-content", children: [
6596
- /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(Skeleton_default, { width: 48, height: 48, radius: 100, loading, children: data?.avatar ? /* @__PURE__ */ (0, import_jsx_runtime99.jsx)("img", { src: data?.avatar, className: "matchid-contact-item-avatar" }) : /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(AlphaAvatar, { size: 48, name: data?.name || "MatchID" }) }),
6612
+ /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(Skeleton_default, { width: isDownMd ? 36 : 48, height: isDownMd ? 36 : 48, radius: 100, loading, children: data?.avatar ? /* @__PURE__ */ (0, import_jsx_runtime99.jsx)("img", { src: data?.avatar, className: "matchid-contact-item-avatar" }) : /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(AlphaAvatar, { size: isDownMd ? 36 : 48, name: data?.name || data?.username || "MatchID" }) }),
6597
6613
  /* @__PURE__ */ (0, import_jsx_runtime99.jsxs)("div", { className: "matchid-contact-item-info", children: [
6598
- /* @__PURE__ */ (0, import_jsx_runtime99.jsx)("div", { className: "matchid-contact-item-name", children: /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(Skeleton_default, { width: 80, height: 20, loading, children: data?.name || "MatchID User" }) }),
6599
- /* @__PURE__ */ (0, import_jsx_runtime99.jsx)("div", { className: "matchid-contact-item-address", children: /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(Skeleton_default, { width: 80, height: 16, loading, children: truncateAddress(data?.address || "", 6, 6) }) })
6614
+ /* @__PURE__ */ (0, import_jsx_runtime99.jsx)("div", { className: "matchid-contact-item-name", children: /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(Skeleton_default, { width: 80, height: isDownMd ? 16 : 20, loading, children: data?.name || data?.username || "MatchID User" }) }),
6615
+ /* @__PURE__ */ (0, import_jsx_runtime99.jsx)("div", { className: "matchid-contact-item-address", children: /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(Skeleton_default, { width: 80, height: isDownMd ? 12 : 16, loading, children: truncateAddress(data?.address || "", 6, 6) }) })
6600
6616
  ] })
6601
6617
  ] }),
6602
6618
  action && /* @__PURE__ */ (0, import_jsx_runtime99.jsx)("div", { className: "matchid-contact-item-action", children: /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(Skeleton_default, { width: 20, height: 20, loading, children: action() }) })
6603
6619
  ] });
6604
6620
  }
6605
6621
  function RequestAction({ data, onSuccess }) {
6606
- const [loading, setLoading] = (0, import_react43.useState)(false);
6622
+ const [loading, setLoading] = (0, import_react44.useState)(false);
6607
6623
  const toast = useToast();
6608
- const intl = (0, import_react_intl23.useIntl)();
6624
+ const intl = (0, import_react_intl24.useIntl)();
6609
6625
  const onApprove = async () => {
6610
6626
  setLoading(true);
6611
6627
  try {
@@ -6621,15 +6637,15 @@ function RequestAction({ data, onSuccess }) {
6621
6637
  setLoading(false);
6622
6638
  }
6623
6639
  };
6624
- return /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(Button, { size: "sm", onClick: onApprove, loading, children: /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(import_react_intl23.FormattedMessage, { id: "Approve" }) });
6640
+ return /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(Button, { size: "sm", onClick: onApprove, loading, children: /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(import_react_intl24.FormattedMessage, { id: "Approve" }) });
6625
6641
  }
6626
6642
  function FriendsAction({
6627
6643
  data,
6628
6644
  onSuccess
6629
6645
  }) {
6630
- const [loading, setLoading] = (0, import_react43.useState)(false);
6646
+ const [loading, setLoading] = (0, import_react44.useState)(false);
6631
6647
  const toast = useToast();
6632
- const intl = (0, import_react_intl23.useIntl)();
6648
+ const intl = (0, import_react_intl24.useIntl)();
6633
6649
  const onRemove = async () => {
6634
6650
  setLoading(true);
6635
6651
  try {
@@ -6645,7 +6661,7 @@ function FriendsAction({
6645
6661
  setLoading(false);
6646
6662
  }
6647
6663
  };
6648
- return /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(Popover, { content: /* @__PURE__ */ (0, import_jsx_runtime99.jsx)("div", { className: "matchid-remove-box", children: /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(Button, { size: "sm", loading, onClick: onRemove, children: /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(import_react_intl23.FormattedMessage, { id: "Remove" }) }) }), children: /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(MoreIcon, { className: "matchid-cursor-pointer" }) });
6664
+ return /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(Popover, { content: /* @__PURE__ */ (0, import_jsx_runtime99.jsx)("div", { className: "matchid-remove-box", children: /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(Button, { size: "sm", loading, onClick: onRemove, children: /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(import_react_intl24.FormattedMessage, { id: "Remove" }) }) }), children: /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(MoreIcon, { className: "matchid-cursor-pointer" }) });
6649
6665
  }
6650
6666
  function ContactList({
6651
6667
  limit = 10,
@@ -6653,8 +6669,9 @@ function ContactList({
6653
6669
  type = "Friend"
6654
6670
  }) {
6655
6671
  const { loading, totalCount, data, onLoadMore } = contact_exports.useContactList(limit, type);
6656
- const [hiddenList, setHiddenList] = (0, import_react43.useState)([]);
6657
- (0, import_react43.useEffect)(() => {
6672
+ const [hiddenList, setHiddenList] = (0, import_react44.useState)([]);
6673
+ const { address } = useWallet();
6674
+ (0, import_react44.useEffect)(() => {
6658
6675
  setHiddenList([]);
6659
6676
  }, [type]);
6660
6677
  return /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(
@@ -6673,6 +6690,9 @@ function ContactList({
6673
6690
  }
6674
6691
  const item = data[index];
6675
6692
  return /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(ContactCard, { data: item, action: () => {
6693
+ if (address == item.address) {
6694
+ return /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(import_jsx_runtime99.Fragment, {});
6695
+ }
6676
6696
  if (type == "Requests") {
6677
6697
  return /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(RequestAction, { data: item, onSuccess: (data2) => {
6678
6698
  setHiddenList([...hiddenList, data2.limit_id || 0]);
@@ -6687,8 +6707,8 @@ function ContactList({
6687
6707
  onLoadMore();
6688
6708
  },
6689
6709
  components: {
6690
- EmptyPlaceholder: () => /* @__PURE__ */ (0, import_jsx_runtime99.jsx)("div", { className: "matchid-nomore", children: /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(import_react_intl23.FormattedMessage, { id: type == "Friend" ? "noFriends" : "noRequests" }) }),
6691
- Footer: data.length > 0 ? () => /* @__PURE__ */ (0, import_jsx_runtime99.jsx)("div", { className: "matchid-nomore", children: /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(import_react_intl23.FormattedMessage, { id: "noMore" }) }) : void 0
6710
+ EmptyPlaceholder: () => /* @__PURE__ */ (0, import_jsx_runtime99.jsx)("div", { className: "matchid-nomore", children: /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(import_react_intl24.FormattedMessage, { id: type == "Friend" ? "noFriends" : "noRequests" }) }),
6711
+ Footer: data.length > 0 ? () => /* @__PURE__ */ (0, import_jsx_runtime99.jsx)("div", { className: "matchid-nomore", children: /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(import_react_intl24.FormattedMessage, { id: "noMore" }) }) : void 0
6692
6712
  }
6693
6713
  }
6694
6714
  );