@matchain/matchid-sdk-react 0.1.46-alpha.0 → 0.1.46-alpha.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (67) hide show
  1. package/dist/assets/icon/index.d.mts +1 -1
  2. package/dist/assets/icon/index.d.ts +1 -1
  3. package/dist/assets/icon/index.mjs +1 -1
  4. package/dist/{chunk-VY6Y6PLW.mjs → chunk-3XIGN55C.mjs} +2 -2
  5. package/dist/chunk-HBOS3RBL.mjs +19 -0
  6. package/dist/chunk-HBOS3RBL.mjs.map +1 -0
  7. package/dist/{chunk-DPXMCLYK.mjs → chunk-I62Y5HZS.mjs} +2 -2
  8. package/dist/{chunk-SQIJR7RA.mjs → chunk-UA6XHZHX.mjs} +2 -14
  9. package/dist/chunk-UA6XHZHX.mjs.map +1 -0
  10. package/dist/{chunk-EQ752DLJ.mjs → chunk-V35GNYR2.mjs} +647 -973
  11. package/dist/chunk-V35GNYR2.mjs.map +1 -0
  12. package/dist/{chunk-H6M6OSVR.mjs → chunk-VBGOGJ6U.mjs} +48 -48
  13. package/dist/{chunk-H6M6OSVR.mjs.map → chunk-VBGOGJ6U.mjs.map} +1 -1
  14. package/dist/{chunk-CNQJUDKT.mjs → chunk-W4ZOHVKA.mjs} +32 -3
  15. package/dist/chunk-W4ZOHVKA.mjs.map +1 -0
  16. package/dist/components/index.d.mts +3 -4
  17. package/dist/components/index.d.ts +3 -4
  18. package/dist/components/index.js +331 -759
  19. package/dist/components/index.js.map +1 -1
  20. package/dist/components/index.mjs +4 -6
  21. package/dist/hooks/api/index.d.mts +2 -2
  22. package/dist/hooks/api/index.d.ts +2 -2
  23. package/dist/hooks/api/index.js +215 -231
  24. package/dist/hooks/api/index.js.map +1 -1
  25. package/dist/hooks/api/index.mjs +5 -5
  26. package/dist/hooks/index.d.mts +2 -2
  27. package/dist/hooks/index.d.ts +2 -2
  28. package/dist/hooks/index.js +392 -495
  29. package/dist/hooks/index.js.map +1 -1
  30. package/dist/hooks/index.mjs +4 -4
  31. package/dist/{index-BXCdzLbc.d.mts → index-B6OKNMN_.d.mts} +1 -1
  32. package/dist/{index-C_XI1qNB.d.mts → index-Bb5HNcIM.d.mts} +1 -1
  33. package/dist/{index-DhSoJs_L.d.ts → index-C-l6DIgO.d.mts} +2 -24
  34. package/dist/{index-DSLYDlMJ.d.ts → index-C76VhJX1.d.ts} +10 -4
  35. package/dist/{index-RT9tEHMs.d.mts → index-C7ZTBB4_.d.ts} +2 -24
  36. package/dist/{index-CsHEukeG.d.ts → index-C9lQIgOD.d.ts} +1 -1
  37. package/dist/{index-DWOnfdeP.d.ts → index-CD6roBbT.d.ts} +4 -12
  38. package/dist/{index-nqmU7njp.d.mts → index-Ch94kI1m.d.mts} +4 -12
  39. package/dist/{index-D9-2IgL1.d.ts → index-DHyRhe_l.d.ts} +1 -1
  40. package/dist/{index-bpGeBrps.d.mts → index-DYy-xBrS.d.mts} +10 -4
  41. package/dist/{index-BMWq_SVq.d.ts → index-_oiFIWte.d.ts} +1 -1
  42. package/dist/{index-a9wDsxOI.d.mts → index-oBhm0-55.d.mts} +1 -1
  43. package/dist/index.css +14 -1
  44. package/dist/index.d.mts +8 -8
  45. package/dist/index.d.ts +8 -8
  46. package/dist/index.js +2095 -2406
  47. package/dist/index.js.map +1 -1
  48. package/dist/index.mjs +9 -8
  49. package/dist/types/index.d.mts +1 -1
  50. package/dist/types/index.d.ts +1 -1
  51. package/dist/types/index.mjs +2 -1
  52. package/dist/{types-Cpmx3fld.d.mts → types-Q3WHZX4Z.d.mts} +1 -0
  53. package/dist/{types-Cpmx3fld.d.ts → types-Q3WHZX4Z.d.ts} +1 -0
  54. package/dist/ui/index.d.mts +3 -3
  55. package/dist/ui/index.d.ts +3 -3
  56. package/dist/ui/index.js +29 -0
  57. package/dist/ui/index.js.map +1 -1
  58. package/dist/ui/index.mjs +5 -3
  59. package/example/src/pages/UI/components/AlphaAvatar.tsx +11 -0
  60. package/example/src/pages/UI/index.tsx +2 -0
  61. package/example/src/pages/User/index.tsx +0 -13
  62. package/package.json +1 -1
  63. package/dist/chunk-CNQJUDKT.mjs.map +0 -1
  64. package/dist/chunk-EQ752DLJ.mjs.map +0 -1
  65. package/dist/chunk-SQIJR7RA.mjs.map +0 -1
  66. /package/dist/{chunk-VY6Y6PLW.mjs.map → chunk-3XIGN55C.mjs.map} +0 -0
  67. /package/dist/{chunk-DPXMCLYK.mjs.map → chunk-I62Y5HZS.mjs.map} +0 -0
@@ -42,7 +42,6 @@ __export(components_exports, {
42
42
  Modal: () => Modal,
43
43
  ModalWithHeader: () => ModalWithHeader,
44
44
  Overlay: () => Overlay,
45
- PasswordModal: () => PasswordModal,
46
45
  Popover: () => Popover,
47
46
  SOLModal: () => SOLModal,
48
47
  TONModal: () => TONModal,
@@ -53,7 +52,7 @@ __export(components_exports, {
53
52
  module.exports = __toCommonJS(components_exports);
54
53
 
55
54
  // src/components/EmailModal/index.tsx
56
- var import_react18 = require("react");
55
+ var import_react15 = require("react");
57
56
 
58
57
  // src/assets/icon/ArrowLeftIcon.tsx
59
58
  var import_jsx_runtime = require("react/jsx-runtime");
@@ -355,21 +354,6 @@ function CheckRoundIcon({
355
354
 
356
355
  // src/assets/icon/PasswordRoundIcon.tsx
357
356
  var import_jsx_runtime16 = require("react/jsx-runtime");
358
- function PasswordRoundIcon() {
359
- return /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)("svg", { width: "40", height: "40", viewBox: "0 0 40 40", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [
360
- /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("rect", { x: "0.5", y: "0.5", width: "39", height: "39", rx: "7.5", fill: "white" }),
361
- /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("rect", { x: "0.5", y: "0.5", width: "39", height: "39", rx: "7.5", stroke: "black" }),
362
- /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
363
- "path",
364
- {
365
- fillRule: "evenodd",
366
- clipRule: "evenodd",
367
- d: "M19.7673 16.1137C19.962 13.9479 21.7831 12.25 24 12.25C26.3472 12.25 28.25 14.1528 28.25 16.5C28.25 18.8472 26.3472 20.75 24 20.75C23.488 20.75 22.9987 20.6598 22.5461 20.495C21.9175 20.2662 21.1115 20.3279 20.5486 20.8908L19.2626 22.1768C19.2157 22.2237 19.1521 22.25 19.0858 22.25H18C17.3096 22.25 16.75 22.8096 16.75 23.5V24.25H15.5C14.8096 24.25 14.25 24.8096 14.25 25.5V26.5C14.25 26.6381 14.1381 26.75 14 26.75H12C11.8619 26.75 11.75 26.6381 11.75 26.5V23.9538C11.75 23.8817 11.7811 23.8131 11.8354 23.7656L19.1524 17.3632C19.5404 17.0238 19.7275 16.556 19.7673 16.1137ZM24 10.75C20.9997 10.75 18.5369 13.0473 18.2733 15.9794C18.2614 16.1115 18.2107 16.1941 18.1646 16.2344L10.8476 22.6368C10.4678 22.9691 10.25 23.4491 10.25 23.9538V26.5C10.25 27.4665 11.0335 28.25 12 28.25H14C14.9665 28.25 15.75 27.4665 15.75 26.5V25.75H17C17.6904 25.75 18.25 25.1904 18.25 24.5V23.75H19.0858C19.5499 23.75 19.995 23.5656 20.3232 23.2374L21.6092 21.9514C21.6738 21.8868 21.8277 21.8298 22.033 21.9045C22.6476 22.1283 23.3104 22.25 24 22.25C27.1756 22.25 29.75 19.6756 29.75 16.5C29.75 13.3244 27.1756 10.75 24 10.75ZM25 16.5C25.5523 16.5 26 16.0523 26 15.5C26 14.9477 25.5523 14.5 25 14.5C24.4477 14.5 24 14.9477 24 15.5C24 16.0523 24.4477 16.5 25 16.5Z",
368
- fill: "black"
369
- }
370
- )
371
- ] });
372
- }
373
357
 
374
358
  // src/assets/icon/CloseEyeIcon.tsx
375
359
  var import_jsx_runtime17 = require("react/jsx-runtime");
@@ -1353,48 +1337,6 @@ function StepEmail(props) {
1353
1337
  // src/store/useLocalStore.ts
1354
1338
  var import_zustand = require("zustand");
1355
1339
  var import_middleware = require("zustand/middleware");
1356
- var persistedState = (0, import_middleware.persist)(
1357
- (set) => ({
1358
- appid: "",
1359
- token: "",
1360
- did: "",
1361
- mid: "",
1362
- overview: null,
1363
- theme: "light",
1364
- setOverview: (overview) => set({
1365
- overview,
1366
- address: overview.address,
1367
- did: overview.did,
1368
- mid: overview.mid
1369
- }),
1370
- endpoints: {
1371
- back: "https://api.matchid.ai/",
1372
- auth: "https://auth.matchid.ai/"
1373
- },
1374
- setDid: (did) => set({ did }),
1375
- setToken: (token) => set({ token }),
1376
- setAppid: (appid) => set({ appid }),
1377
- setMid: (mid) => set({ mid }),
1378
- logout: () => set({ token: "", did: "", mid: "", address: "", overview: null }),
1379
- setTheme: (theme) => set({ theme }),
1380
- setEndpoints: (endpoints) => set({ endpoints }),
1381
- address: "",
1382
- setAddress: (address) => set({ address }),
1383
- locale: "en",
1384
- setLocale: (locale) => set({ locale }),
1385
- wallet: {
1386
- type: "UserPasscode"
1387
- },
1388
- setWallet: (wallet) => set({ wallet })
1389
- }),
1390
- { name: "match-local" }
1391
- );
1392
- var useLocalStore = (0, import_zustand.create)((0, import_middleware.devtools)(persistedState));
1393
- var localStore = useLocalStore;
1394
- var useLocalStore_default = useLocalStore;
1395
-
1396
- // src/hooks/useUserInfo.tsx
1397
- var import_react16 = require("react");
1398
1340
 
1399
1341
  // src/api/request.ts
1400
1342
  var import_axios = __toESM(require("axios"));
@@ -1654,14 +1596,61 @@ var getAppConfigApi = () => {
1654
1596
  });
1655
1597
  };
1656
1598
 
1657
- // src/MatchContext.tsx
1658
- var import_react15 = require("react");
1599
+ // src/store/useLocalStore.ts
1600
+ var persistedState = (0, import_middleware.persist)(
1601
+ (set) => ({
1602
+ appid: "",
1603
+ token: "",
1604
+ did: "",
1605
+ mid: "",
1606
+ overview: null,
1607
+ theme: "light",
1608
+ setOverview: (overview) => set({
1609
+ overview,
1610
+ address: overview.address,
1611
+ did: overview.did,
1612
+ mid: overview.mid
1613
+ }),
1614
+ refreshOverview: async () => {
1615
+ const res = await getOverviewInfoApi();
1616
+ if (res.data) {
1617
+ set({ overview: res.data });
1618
+ set({ address: res.data.address });
1619
+ set({ did: res.data.did });
1620
+ set({ mid: res.data.mid });
1621
+ }
1622
+ },
1623
+ endpoints: {
1624
+ back: "https://api.matchid.ai/",
1625
+ auth: "https://auth.matchid.ai/"
1626
+ },
1627
+ setDid: (did) => set({ did }),
1628
+ setToken: (token) => set({ token }),
1629
+ setAppid: (appid) => set({ appid }),
1630
+ setMid: (mid) => set({ mid }),
1631
+ logout: () => set({ token: "", did: "", mid: "", address: "", overview: null }),
1632
+ setTheme: (theme) => set({ theme }),
1633
+ setEndpoints: (endpoints) => set({ endpoints }),
1634
+ address: "",
1635
+ setAddress: (address) => set({ address }),
1636
+ locale: "en",
1637
+ setLocale: (locale) => set({ locale }),
1638
+ wallet: {
1639
+ type: "UserPasscode"
1640
+ },
1641
+ setWallet: (wallet) => set({ wallet })
1642
+ }),
1643
+ { name: "match-local" }
1644
+ );
1645
+ var useLocalStore = (0, import_zustand.create)((0, import_middleware.devtools)(persistedState));
1646
+ var localStore = useLocalStore;
1647
+ var useLocalStore_default = useLocalStore;
1659
1648
 
1660
- // src/context/BusinessProvider.tsx
1661
- var import_react12 = require("react");
1649
+ // src/hooks/useUserInfo.tsx
1650
+ var import_react13 = require("react");
1662
1651
 
1663
- // src/components/PasswordModal/index.tsx
1664
- var import_react8 = require("react");
1652
+ // src/MatchContext.tsx
1653
+ var import_react12 = require("react");
1665
1654
 
1666
1655
  // src/hooks/useMatchEvents.ts
1667
1656
  var import_react5 = require("react");
@@ -1701,18 +1690,8 @@ var import_viem = require("viem");
1701
1690
  var import_zustand2 = require("zustand");
1702
1691
  var useStore = (0, import_zustand2.create)((set) => ({
1703
1692
  walletReady: false,
1704
- setWalletReady: (inited) => set({ walletReady: inited }),
1705
- recoveryModal: {
1706
- open: false,
1707
- success: async () => {
1708
- },
1709
- close: async () => {
1710
- }
1711
- },
1712
- setRecoveryModal: (params) => set({ recoveryModal: params }),
1713
- closeRecoveryModal: () => set({ recoveryModal: { open: false } })
1693
+ setWalletReady: (inited) => set({ walletReady: inited })
1714
1694
  }));
1715
- var useStore_default = useStore;
1716
1695
 
1717
1696
  // src/hooks/useWallet.tsx
1718
1697
  var import_accounts = require("viem/accounts");
@@ -1818,291 +1797,6 @@ var useWalletModalStore = (0, import_zustand3.create)((set) => ({
1818
1797
 
1819
1798
  // src/hooks/useWallet.tsx
1820
1799
  var AppClientId = "react-sdk-" + getVersion();
1821
- function useWallet() {
1822
- const { appid, token, overview, address, wallet: walletConfig } = useLocalStore_default();
1823
- const { setRecoveryModal, closeRecoveryModal, walletReady } = useStore_default();
1824
- const { open: openHashPanel } = useHashPanelStore();
1825
- const initCore = ({
1826
- did,
1827
- address: address2
1828
- }) => {
1829
- return window.matchProvider.waitUntilWalletMessage(
1830
- {
1831
- method: "initCore",
1832
- data: {
1833
- AppId: appid,
1834
- AppClientId,
1835
- UserId: did,
1836
- AccessToken: token,
1837
- Address: address2
1838
- }
1839
- }
1840
- );
1841
- };
1842
- const generateEmbeddedWallets = async (data) => {
1843
- return await window.matchProvider.waitUntilWalletMessage({
1844
- method: "generateEmbeddedWallets",
1845
- data
1846
- });
1847
- };
1848
- const recoveryEmbeddedWallets = async (data) => {
1849
- return await window.matchProvider.waitUntilWalletMessage({
1850
- method: "recoveryEmbeddedWallets",
1851
- data
1852
- });
1853
- };
1854
- const isRecovered = async () => {
1855
- const res = await window.matchProvider.waitUntilWalletMessage({
1856
- method: "isRecovered"
1857
- });
1858
- return res.isRecovered;
1859
- };
1860
- const recoverAfter = async ({
1861
- chainType,
1862
- handle
1863
- }) => {
1864
- return new Promise(async (resolve, reject) => {
1865
- const res = await isRecovered();
1866
- matchlog_default.log("sdk.mpc.isRecovered", res);
1867
- if (res) {
1868
- await recoveryEmbeddedWallets({ chainType, recoveryType: "user_passcode_recovery_key" });
1869
- await handle(resolve, reject);
1870
- return;
1871
- }
1872
- setRecoveryModal({
1873
- chainType,
1874
- open: true,
1875
- success: async () => {
1876
- closeRecoveryModal();
1877
- matchlog_default.log("sdk.mpc.recover", "Success");
1878
- await handle(resolve, reject);
1879
- },
1880
- close: async () => {
1881
- closeRecoveryModal();
1882
- reject(new Error("recover modal close"));
1883
- }
1884
- });
1885
- await initCore({
1886
- address: overview?.address || "",
1887
- did: overview?.did || ""
1888
- });
1889
- });
1890
- };
1891
- const signMessage2 = async ({
1892
- message,
1893
- chainType = "ethereum" /* Ethereum */
1894
- }) => {
1895
- const getSign = async (resolve, reject) => {
1896
- try {
1897
- const recoverRes = await window.matchProvider.waitUntilWalletMessage({
1898
- method: "signMessage",
1899
- data: {
1900
- message,
1901
- chainType
1902
- }
1903
- });
1904
- resolve(recoverRes.message);
1905
- } catch (error) {
1906
- console.error("qwe-sign-error", error);
1907
- reject(error);
1908
- }
1909
- };
1910
- return await recoverAfter({
1911
- handle: getSign,
1912
- chainType
1913
- });
1914
- };
1915
- const signTransaction = async ({
1916
- transaction,
1917
- chainType = "ethereum" /* Ethereum */,
1918
- chain
1919
- }) => {
1920
- console.log("qwe-sign-transaction", transaction);
1921
- const getSign = async (resolve, reject) => {
1922
- try {
1923
- const recoverRes = await window.matchProvider.waitUntilWalletMessage({
1924
- method: "signTransaction",
1925
- data: {
1926
- transaction,
1927
- chainType,
1928
- chain
1929
- }
1930
- });
1931
- resolve(recoverRes.message);
1932
- } catch (error) {
1933
- console.error("qwe-sign-error", error);
1934
- reject(error);
1935
- }
1936
- };
1937
- return await recoverAfter({
1938
- handle: getSign,
1939
- chainType
1940
- });
1941
- };
1942
- const evmAccount = (0, import_react6.useMemo)(() => {
1943
- return address ? (0, import_accounts.toAccount)({
1944
- address,
1945
- async signMessage({ message }) {
1946
- return await signMessage2({
1947
- message,
1948
- chainType: "ethereum" /* Ethereum */
1949
- });
1950
- },
1951
- async signTransaction(transaction, options) {
1952
- const { account, chain, ...restTransaction } = transaction;
1953
- console.log("qwe-sign-transaction", restTransaction, options);
1954
- return await signTransaction({
1955
- transaction: {
1956
- ...restTransaction
1957
- },
1958
- chainType: "ethereum" /* Ethereum */,
1959
- chain: {
1960
- id: chain?.id || restTransaction.chainId,
1961
- name: chain?.name,
1962
- nativeCurrency: {
1963
- name: chain?.nativeCurrency?.name || "ETH",
1964
- symbol: chain?.nativeCurrency?.symbol || "ETH",
1965
- decimals: chain?.nativeCurrency?.decimals || 18
1966
- },
1967
- rpcUrls: chain?.rpcUrls
1968
- }
1969
- });
1970
- },
1971
- async signTypedData(typedData) {
1972
- return "0x";
1973
- }
1974
- }) : void 0;
1975
- }, [address]);
1976
- (0, import_react6.useEffect)(() => {
1977
- matchlog_default.log("qwe-evmAccount", evmAccount);
1978
- }, [evmAccount]);
1979
- return {
1980
- walletReady,
1981
- evmAccount,
1982
- address,
1983
- initCore,
1984
- signMessage: signMessage2,
1985
- signTransaction,
1986
- isRecovered,
1987
- recoverAfter,
1988
- generateEmbeddedWallets,
1989
- recoveryEmbeddedWallets,
1990
- createWalletClient: (parameters) => {
1991
- if (!evmAccount) {
1992
- return;
1993
- }
1994
- const obj = (0, import_viem2.createWalletClient)({
1995
- ...parameters,
1996
- account: evmAccount
1997
- });
1998
- const sendTransaction = async (transaction) => {
1999
- const getSign = async (resolve, reject) => {
2000
- const { chain, ...restTransaction } = transaction;
2001
- const chainId = chain ? chain.id : await obj.getChainId();
2002
- const _chain = chain || obj.chain;
2003
- const transactionId = Date.now().toString() + Math.random().toString().slice(6);
2004
- window.matchProvider.transactionMessageIntervalMap[transactionId] = {
2005
- transaction,
2006
- func: async () => {
2007
- try {
2008
- const {
2009
- chain: chain2,
2010
- account,
2011
- ...prepareTransactionRequest
2012
- // @ts-ignore
2013
- } = await obj.prepareTransactionRequest(window.matchProvider.transactionMessageIntervalMap[transactionId].transaction);
2014
- window.matchProvider.sendWalletMessage({
2015
- method: "prepareTransactionRequest",
2016
- data: {
2017
- prepareTransactionRequest,
2018
- transactionId
2019
- }
2020
- });
2021
- } catch (error) {
2022
- console.error(error);
2023
- }
2024
- },
2025
- interval: setInterval(() => {
2026
- window.matchProvider.transactionMessageIntervalMap[transactionId].func();
2027
- }, 1e4)
2028
- };
2029
- try {
2030
- const {
2031
- chain: chain2,
2032
- account,
2033
- ...prepareTransactionRequest
2034
- // @ts-ignore
2035
- } = await obj.prepareTransactionRequest(transaction);
2036
- const { serializedTransaction } = await window.matchProvider.waitUntilWalletMessage({
2037
- method: "sendTransaction",
2038
- data: {
2039
- transactionId,
2040
- transaction: {
2041
- ...restTransaction
2042
- },
2043
- chainType: "ethereum" /* Ethereum */,
2044
- chain: {
2045
- id: chainId,
2046
- name: _chain?.name,
2047
- nativeCurrency: _chain?.nativeCurrency,
2048
- rpcUrls: _chain?.rpcUrls
2049
- },
2050
- prepareTransactionRequest
2051
- }
2052
- });
2053
- openHashPanel();
2054
- const txHash = await obj.sendRawTransaction({
2055
- serializedTransaction
2056
- });
2057
- openHashPanel({
2058
- hash: txHash,
2059
- chain: _chain
2060
- });
2061
- clearInterval(window.matchProvider.transactionMessageIntervalMap[transactionId].interval);
2062
- delete window.matchProvider.transactionMessageIntervalMap[transactionId];
2063
- resolve(txHash);
2064
- } catch (error) {
2065
- console.error("qwe-sign-error", error);
2066
- clearInterval(window.matchProvider.transactionMessageIntervalMap[transactionId].interval);
2067
- delete window.matchProvider.transactionMessageIntervalMap[transactionId];
2068
- reject(error);
2069
- }
2070
- };
2071
- return await recoverAfter({
2072
- handle: getSign,
2073
- chainType: "ethereum" /* Ethereum */
2074
- });
2075
- };
2076
- const deployContract = async (parameters2) => {
2077
- const { abi, args, bytecode, ...request3 } = parameters2;
2078
- const calldata = (0, import_viem3.encodeDeployData)({ abi, args, bytecode });
2079
- return await sendTransaction({
2080
- ...request3,
2081
- data: calldata
2082
- });
2083
- };
2084
- const writeContract = async (parameters2) => {
2085
- const { abi, address: address2, args, dataSuffix, functionName, ...request3 } = parameters2;
2086
- const data = (0, import_viem.encodeFunctionData)({
2087
- abi,
2088
- args,
2089
- functionName
2090
- });
2091
- return await sendTransaction({
2092
- data: `${data}${dataSuffix ? dataSuffix.replace("0x", "") : ""}`,
2093
- to: address2,
2094
- ...request3
2095
- });
2096
- };
2097
- return {
2098
- ...obj,
2099
- sendTransaction,
2100
- deployContract,
2101
- writeContract
2102
- };
2103
- }
2104
- };
2105
- }
2106
1800
 
2107
1801
  // src/hooks/useCopyClipboard.ts
2108
1802
  var import_copy_to_clipboard = __toESM(require("copy-to-clipboard"));
@@ -2127,165 +1821,49 @@ function useCopyClipboard(timeout = 500) {
2127
1821
  return [isCopied, staticCopy];
2128
1822
  }
2129
1823
 
2130
- // src/components/PasswordModal/index.tsx
1824
+ // src/components/CEXBindModal/index.tsx
1825
+ var import_react8 = require("react");
2131
1826
  var import_react_intl2 = require("react-intl");
2132
1827
  var import_jsx_runtime51 = require("react/jsx-runtime");
2133
- function PasswordModal({
2134
- title,
2135
- isOpen,
2136
- onSuccess,
2137
- chainType = "ethereum" /* Ethereum */,
2138
- recoveryType = "user_passcode_recovery_key" /* UserPasscode */,
2139
- ...props
2140
- }) {
2141
- const { refreshOverview, overview } = useUserInfo();
2142
- const { isLogin, did } = useUserInfo();
2143
- const [password, setPassword] = (0, import_react8.useState)("");
2144
- const [rePassword, setRePassword] = (0, import_react8.useState)("");
2145
- const [error, setError] = (0, import_react8.useState)("");
2146
- const { generateEmbeddedWallets, initCore } = useWallet();
2147
- const { walletReady } = useStore_default();
2148
- const intl = (0, import_react_intl2.useIntl)();
2149
- const passwordError = (0, import_react8.useMemo)(() => {
2150
- if (password.length < 6) return intl.formatMessage({
2151
- id: "passwordMinError"
2152
- }, {
2153
- length: 6
2154
- });
2155
- return "";
2156
- }, [password]);
2157
- const rePasswordError = (0, import_react8.useMemo)(() => {
2158
- if (rePassword != password) {
2159
- return intl.formatMessage({
2160
- id: "passwordMatchError"
2161
- });
2162
- }
2163
- return "";
2164
- }, [rePassword, password]);
2165
- (0, import_react8.useEffect)(() => {
2166
- if (isOpen) {
2167
- setPassword("");
2168
- setRePassword("");
2169
- }
2170
- }, [isOpen, overview]);
2171
- const [isSubmitting, setIsSubmitting] = (0, import_react8.useState)(false);
2172
- const onContinue = async () => {
2173
- if (isSubmitting) return;
2174
- try {
2175
- setIsSubmitting(true);
2176
- await initCore({
2177
- did: overview?.did || "",
2178
- address: ""
2179
- });
2180
- const address = await generateEmbeddedWallets({
2181
- userPasscode: password,
2182
- chainType,
2183
- recoveryType
2184
- });
2185
- await refreshOverview();
2186
- onSuccess && onSuccess();
2187
- } catch (error2) {
2188
- setError(error2.message);
2189
- } finally {
2190
- setIsSubmitting(false);
2191
- }
2192
- };
2193
- return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(ModalWithHeader, { isOpen: isOpen && isLogin, ...props, title: title || intl.formatMessage({
2194
- id: "passwordTitle"
2195
- }), children: /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("div", { className: "matchid-password-box", children: [
2196
- /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("div", { className: "matchid-password-header", children: [
2197
- /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("div", { className: "matchid-password-header-icon", children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(PasswordRoundIcon, {}) }),
2198
- /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("div", { className: "matchid-password-header-content", children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_react_intl2.FormattedMessage, { id: "passwordTips" }) })
2199
- ] }),
2200
- /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("div", { className: "matchid-password-content", children: [
2201
- /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(Field, { label: intl.formatMessage({ id: "password" }), error: password.length > 0 && passwordError, children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
2202
- Input,
2203
- {
2204
- placeholder: intl.formatMessage({ id: "passwordPlaceholder" }),
2205
- maxLength: 32,
2206
- type: "password",
2207
- onChange: (e) => setPassword(e.target.value),
2208
- value: password
2209
- }
2210
- ) }),
2211
- /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(Field, { label: intl.formatMessage({
2212
- id: "rePassword"
2213
- }), error: !walletReady ? intl.formatMessage({ id: "walletLoading" }) : rePassword.length > 0 ? rePasswordError || error : error, children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
2214
- Input,
2215
- {
2216
- placeholder: intl.formatMessage({
2217
- id: "rePasswordPlaceholder"
2218
- }),
2219
- maxLength: 32,
2220
- onChange: (e) => setRePassword(e.target.value),
2221
- value: rePassword,
2222
- type: "password"
2223
- }
2224
- ) })
2225
- ] }),
2226
- /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
2227
- Button,
2228
- {
2229
- disabled: password.length == 0 || !!passwordError || !!rePasswordError || !walletReady,
2230
- highlight: true,
2231
- block: true,
2232
- size: "lg",
2233
- onClick: onContinue,
2234
- loading: isSubmitting,
2235
- children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_react_intl2.FormattedMessage, { id: "continue" })
2236
- }
2237
- )
2238
- ] }) });
2239
- }
2240
-
2241
- // src/components/RecoveryModal/index.tsx
2242
- var import_react9 = require("react");
2243
- var import_react_intl3 = require("react-intl");
2244
- var import_jsx_runtime52 = require("react/jsx-runtime");
2245
-
2246
- // src/components/CEXBindModal/index.tsx
2247
- var import_react10 = require("react");
2248
- var import_react_intl4 = require("react-intl");
2249
- var import_jsx_runtime53 = require("react/jsx-runtime");
2250
1828
 
2251
1829
  // src/ui/HashPanel/index.tsx
2252
1830
  var import_viem4 = require("viem");
2253
- var import_react11 = require("react");
1831
+ var import_react9 = require("react");
2254
1832
  var import_react_query = require("@tanstack/react-query");
2255
1833
 
2256
1834
  // src/ui/Drawer/index.tsx
2257
- var import_jsx_runtime54 = require("react/jsx-runtime");
1835
+ var import_jsx_runtime52 = require("react/jsx-runtime");
2258
1836
 
2259
1837
  // src/ui/ModalDrawer/index.tsx
2260
- var import_jsx_runtime55 = require("react/jsx-runtime");
1838
+ var import_jsx_runtime53 = require("react/jsx-runtime");
2261
1839
 
2262
1840
  // src/ui/HashPanel/index.tsx
2263
- var import_jsx_runtime56 = require("react/jsx-runtime");
1841
+ var import_jsx_runtime54 = require("react/jsx-runtime");
2264
1842
 
2265
1843
  // src/context/BusinessProvider.tsx
2266
- var import_jsx_runtime57 = require("react/jsx-runtime");
1844
+ var import_jsx_runtime55 = require("react/jsx-runtime");
2267
1845
 
2268
1846
  // src/context/index.tsx
2269
- var import_jsx_runtime58 = (
1847
+ var import_jsx_runtime56 = (
2270
1848
  // <MpcWalletProvider>
2271
1849
  require("react/jsx-runtime")
2272
1850
  );
2273
1851
 
2274
1852
  // src/hooks/useWalletInit.ts
2275
- var import_react13 = require("react");
1853
+ var import_react10 = require("react");
2276
1854
  var AppClientId2 = getAppClientId();
2277
1855
 
2278
1856
  // src/hooks/useInit.tsx
2279
- var import_react14 = require("react");
1857
+ var import_react11 = require("react");
2280
1858
 
2281
1859
  // src/MatchContext.tsx
2282
1860
  var import_react_query2 = require("@tanstack/react-query");
2283
- var import_react_intl5 = require("react-intl");
2284
- var import_jsx_runtime59 = require("react/jsx-runtime");
1861
+ var import_react_intl3 = require("react-intl");
1862
+ var import_jsx_runtime57 = require("react/jsx-runtime");
2285
1863
  var queryClient = new import_react_query2.QueryClient();
2286
- var MatchContext = (0, import_react15.createContext)(void 0);
1864
+ var MatchContext = (0, import_react12.createContext)(void 0);
2287
1865
  var useMatch = () => {
2288
- const context = (0, import_react15.useContext)(MatchContext);
1866
+ const context = (0, import_react12.useContext)(MatchContext);
2289
1867
  if (context === void 0) {
2290
1868
  throw new Error("useMatch must be used within a MatchProvider");
2291
1869
  }
@@ -2304,7 +1882,8 @@ function useUserInfo() {
2304
1882
  overview,
2305
1883
  address,
2306
1884
  endpoints,
2307
- locale
1885
+ locale,
1886
+ refreshOverview
2308
1887
  } = useLocalStore_default();
2309
1888
  const { events, login } = useMatch();
2310
1889
  const { open: SOLOpen } = useSOLModalStore();
@@ -2313,7 +1892,7 @@ function useUserInfo() {
2313
1892
  const { open: BTCOpen } = useBTCModalStore();
2314
1893
  const { open: CEXBindOpen } = useCEXBindModalStore();
2315
1894
  const walletModalStore = useWalletModalStore();
2316
- const isLogin = (0, import_react16.useMemo)(() => !!token && !!overview, [token, overview]);
1895
+ const isLogin = (0, import_react13.useMemo)(() => !!token && !!overview, [token, overview]);
2317
1896
  const logout = async () => {
2318
1897
  try {
2319
1898
  await toLogoutApi();
@@ -2413,12 +1992,6 @@ function useUserInfo() {
2413
1992
  }
2414
1993
  return false;
2415
1994
  };
2416
- const refreshOverview = async () => {
2417
- const res = await getOverviewInfoApi();
2418
- if (res.data) {
2419
- setOverview(res.data);
2420
- }
2421
- };
2422
1995
  const bindWallet = async () => {
2423
1996
  if (!token) {
2424
1997
  throw new Error("You must login first");
@@ -2551,29 +2124,29 @@ function useUserInfo() {
2551
2124
  }
2552
2125
 
2553
2126
  // src/components/EmailModal/StepVerify.tsx
2554
- var import_react17 = require("react");
2127
+ var import_react14 = require("react");
2555
2128
 
2556
2129
  // src/config/index.tsx
2557
2130
  var EMAIL_INTERVAL = 60;
2558
2131
  var EMAIL_CODE_LENGTH = 6;
2559
2132
 
2560
2133
  // src/components/EmailModal/StepVerify.tsx
2561
- var import_react_intl6 = require("react-intl");
2562
- var import_jsx_runtime60 = require("react/jsx-runtime");
2134
+ var import_react_intl4 = require("react-intl");
2135
+ var import_jsx_runtime58 = require("react/jsx-runtime");
2563
2136
  function StepVerify(props) {
2564
- const intl = (0, import_react_intl6.useIntl)();
2137
+ const intl = (0, import_react_intl4.useIntl)();
2565
2138
  const { getLoginEmailCode, loginByEmail } = useUserInfo();
2566
- const [error, setError] = (0, import_react17.useState)("");
2567
- const [code, setCode] = (0, import_react17.useState)("");
2568
- const [sending, setSending] = (0, import_react17.useState)(false);
2569
- const [submitting, setSubmitting] = (0, import_react17.useState)(false);
2570
- const sendTimeRef = (0, import_react17.useRef)(0);
2571
- const [sendBtnText, setSendBtnText] = (0, import_react17.useState)(intl.formatMessage({
2139
+ const [error, setError] = (0, import_react14.useState)("");
2140
+ const [code, setCode] = (0, import_react14.useState)("");
2141
+ const [sending, setSending] = (0, import_react14.useState)(false);
2142
+ const [submitting, setSubmitting] = (0, import_react14.useState)(false);
2143
+ const sendTimeRef = (0, import_react14.useRef)(0);
2144
+ const [sendBtnText, setSendBtnText] = (0, import_react14.useState)(intl.formatMessage({
2572
2145
  id: "send"
2573
2146
  }));
2574
2147
  const intervalTime = EMAIL_INTERVAL;
2575
2148
  const codeLength = EMAIL_CODE_LENGTH;
2576
- const intervalRef = (0, import_react17.useRef)(null);
2149
+ const intervalRef = (0, import_react14.useRef)(null);
2577
2150
  const isDownMd = useDownMd();
2578
2151
  const onSend = async () => {
2579
2152
  if (sendTimeRef.current > 0) {
@@ -2604,7 +2177,7 @@ function StepVerify(props) {
2604
2177
  setSending(false);
2605
2178
  }
2606
2179
  };
2607
- (0, import_react17.useEffect)(() => {
2180
+ (0, import_react14.useEffect)(() => {
2608
2181
  onSend();
2609
2182
  return () => {
2610
2183
  if (intervalRef.current) {
@@ -2612,7 +2185,7 @@ function StepVerify(props) {
2612
2185
  }
2613
2186
  };
2614
2187
  }, []);
2615
- const canContinue = (0, import_react17.useMemo)(() => {
2188
+ const canContinue = (0, import_react14.useMemo)(() => {
2616
2189
  return code.length === codeLength;
2617
2190
  }, [code]);
2618
2191
  const onContinue = async () => {
@@ -2636,17 +2209,17 @@ function StepVerify(props) {
2636
2209
  setSubmitting(false);
2637
2210
  }
2638
2211
  };
2639
- return /* @__PURE__ */ (0, import_jsx_runtime60.jsxs)("div", { className: "matchid-email-verify-box", children: [
2640
- /* @__PURE__ */ (0, import_jsx_runtime60.jsxs)("div", { className: "matchid-email-verify-header", children: [
2641
- /* @__PURE__ */ (0, import_jsx_runtime60.jsx)("div", { className: "matchid-email-verify-header-icon", children: /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(EmailLineIcon, { size: isDownMd ? 19 : 24 }) }),
2642
- /* @__PURE__ */ (0, import_jsx_runtime60.jsxs)("div", { className: "matchid-email-verify-header-content", children: [
2643
- /* @__PURE__ */ (0, import_jsx_runtime60.jsx)("div", { className: "matchid-email-verify-header-value", children: props.email }),
2644
- /* @__PURE__ */ (0, import_jsx_runtime60.jsx)("div", { className: "matchid-email-verify-header-tips", children: /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(import_react_intl6.FormattedMessage, { id: "sendEmailTips" }) })
2212
+ return /* @__PURE__ */ (0, import_jsx_runtime58.jsxs)("div", { className: "matchid-email-verify-box", children: [
2213
+ /* @__PURE__ */ (0, import_jsx_runtime58.jsxs)("div", { className: "matchid-email-verify-header", children: [
2214
+ /* @__PURE__ */ (0, import_jsx_runtime58.jsx)("div", { className: "matchid-email-verify-header-icon", children: /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(EmailLineIcon, { size: isDownMd ? 19 : 24 }) }),
2215
+ /* @__PURE__ */ (0, import_jsx_runtime58.jsxs)("div", { className: "matchid-email-verify-header-content", children: [
2216
+ /* @__PURE__ */ (0, import_jsx_runtime58.jsx)("div", { className: "matchid-email-verify-header-value", children: props.email }),
2217
+ /* @__PURE__ */ (0, import_jsx_runtime58.jsx)("div", { className: "matchid-email-verify-header-tips", children: /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(import_react_intl4.FormattedMessage, { id: "sendEmailTips" }) })
2645
2218
  ] })
2646
2219
  ] }),
2647
- /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(Field, { label: intl.formatMessage({
2220
+ /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(Field, { label: intl.formatMessage({
2648
2221
  id: "verificationCode"
2649
- }), error, children: /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(
2222
+ }), error, children: /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(
2650
2223
  Input,
2651
2224
  {
2652
2225
  placeholder: intl.formatMessage({
@@ -2656,7 +2229,7 @@ function StepVerify(props) {
2656
2229
  maxLength: codeLength,
2657
2230
  onChange: (e) => setCode(e.target.value),
2658
2231
  value: code,
2659
- after: /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(
2232
+ after: /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(
2660
2233
  Button,
2661
2234
  {
2662
2235
  highlight: true,
@@ -2675,13 +2248,13 @@ function StepVerify(props) {
2675
2248
  )
2676
2249
  }
2677
2250
  ) }),
2678
- /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(Button, { disabled: !canContinue, highlight: true, block: true, size: "lg", onClick: onContinue, children: /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(import_react_intl6.FormattedMessage, { id: "continue" }) })
2251
+ /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(Button, { disabled: !canContinue, highlight: true, block: true, size: "lg", onClick: onContinue, children: /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(import_react_intl4.FormattedMessage, { id: "continue" }) })
2679
2252
  ] });
2680
2253
  }
2681
2254
 
2682
2255
  // src/components/EmailModal/index.tsx
2683
- var import_react_intl7 = require("react-intl");
2684
- var import_jsx_runtime61 = require("react/jsx-runtime");
2256
+ var import_react_intl5 = require("react-intl");
2257
+ var import_jsx_runtime59 = require("react/jsx-runtime");
2685
2258
  function EmailModal({
2686
2259
  isOpen = false,
2687
2260
  width = 480,
@@ -2689,16 +2262,16 @@ function EmailModal({
2689
2262
  onBack,
2690
2263
  onLogin
2691
2264
  }) {
2692
- const [step, setStep] = (0, import_react18.useState)("input");
2693
- const [emailVal, setEmailVal] = (0, import_react18.useState)("");
2694
- const intl = (0, import_react_intl7.useIntl)();
2695
- (0, import_react18.useEffect)(() => {
2265
+ const [step, setStep] = (0, import_react15.useState)("input");
2266
+ const [emailVal, setEmailVal] = (0, import_react15.useState)("");
2267
+ const intl = (0, import_react_intl5.useIntl)();
2268
+ (0, import_react15.useEffect)(() => {
2696
2269
  if (!isOpen) {
2697
2270
  setStep("input");
2698
2271
  setEmailVal("");
2699
2272
  }
2700
2273
  }, [isOpen]);
2701
- return /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
2274
+ return /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(
2702
2275
  ModalWithHeader,
2703
2276
  {
2704
2277
  isOpen,
@@ -2708,17 +2281,17 @@ function EmailModal({
2708
2281
  id: "email"
2709
2282
  }),
2710
2283
  onBack: step == "verify" ? () => setStep("input") : onBack,
2711
- children: step === "input" ? /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(StepEmail, { email: emailVal, onContinue: (email) => {
2284
+ children: step === "input" ? /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(StepEmail, { email: emailVal, onContinue: (email) => {
2712
2285
  setEmailVal(email);
2713
2286
  setStep("verify");
2714
- } }) : /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(StepVerify, { email: emailVal, onSuccess: onLogin })
2287
+ } }) : /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(StepVerify, { email: emailVal, onSuccess: onLogin })
2715
2288
  }
2716
2289
  );
2717
2290
  }
2718
2291
 
2719
2292
  // src/ui/Popover/index.tsx
2720
- var import_react19 = require("react");
2721
- var import_jsx_runtime62 = require("react/jsx-runtime");
2293
+ var import_react16 = require("react");
2294
+ var import_jsx_runtime60 = require("react/jsx-runtime");
2722
2295
  function Popover({
2723
2296
  children,
2724
2297
  content,
@@ -2727,8 +2300,8 @@ function Popover({
2727
2300
  className = "",
2728
2301
  gap = "20px"
2729
2302
  }) {
2730
- const [active, setActive] = (0, import_react19.useState)(false);
2731
- return children && /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)(
2303
+ const [active, setActive] = (0, import_react16.useState)(false);
2304
+ return children && /* @__PURE__ */ (0, import_jsx_runtime60.jsxs)(
2732
2305
  "div",
2733
2306
  {
2734
2307
  onClick: () => {
@@ -2739,17 +2312,17 @@ function Popover({
2739
2312
  className: `matchid-popover-box matchid-popover-${position} matchid-popover-${type} ${className} ${type == "click" && active ? "matchid-popover-click-active" : ""}`,
2740
2313
  children: [
2741
2314
  children,
2742
- /* @__PURE__ */ (0, import_jsx_runtime62.jsx)("div", { style: {
2315
+ /* @__PURE__ */ (0, import_jsx_runtime60.jsx)("div", { style: {
2743
2316
  paddingTop: gap
2744
- }, className: `matchid-popover-area`, children: /* @__PURE__ */ (0, import_jsx_runtime62.jsx)("div", { className: `matchid-popover-content`, children: content }) })
2317
+ }, className: `matchid-popover-area`, children: /* @__PURE__ */ (0, import_jsx_runtime60.jsx)("div", { className: `matchid-popover-content`, children: content }) })
2745
2318
  ]
2746
2319
  }
2747
2320
  );
2748
2321
  }
2749
2322
 
2750
2323
  // src/components/LoginBox/index.tsx
2751
- var import_react20 = require("react");
2752
- var import_react_intl8 = require("react-intl");
2324
+ var import_react17 = require("react");
2325
+ var import_react_intl6 = require("react-intl");
2753
2326
 
2754
2327
  // src/hooks/useAppConfig.ts
2755
2328
  var import_react_query3 = require("@tanstack/react-query");
@@ -2772,7 +2345,7 @@ function useAppConfig() {
2772
2345
  }
2773
2346
 
2774
2347
  // src/components/LoginBox/index.tsx
2775
- var import_jsx_runtime63 = require("react/jsx-runtime");
2348
+ var import_jsx_runtime61 = require("react/jsx-runtime");
2776
2349
  var RecommendItem = ({
2777
2350
  icon,
2778
2351
  name,
@@ -2781,20 +2354,20 @@ var RecommendItem = ({
2781
2354
  children,
2782
2355
  footer
2783
2356
  }) => {
2784
- return /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)("div", { className: "matchid-login-recommend-method", children: [
2785
- /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)("div", { className: "matchid-login-recommend-method-item", onClick, children: [
2786
- /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)("div", { className: "matchid-login-recommend-method-content", children: [
2787
- /* @__PURE__ */ (0, import_jsx_runtime63.jsx)("div", { className: "matchid-login-recommend-method-icon", children: icon }),
2788
- /* @__PURE__ */ (0, import_jsx_runtime63.jsx)("span", { className: "matchid-login-recommend-method-name", children: name })
2357
+ return /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)("div", { className: "matchid-login-recommend-method", children: [
2358
+ /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)("div", { className: "matchid-login-recommend-method-item", onClick, children: [
2359
+ /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)("div", { className: "matchid-login-recommend-method-content", children: [
2360
+ /* @__PURE__ */ (0, import_jsx_runtime61.jsx)("div", { className: "matchid-login-recommend-method-icon", children: icon }),
2361
+ /* @__PURE__ */ (0, import_jsx_runtime61.jsx)("span", { className: "matchid-login-recommend-method-name", children: name })
2789
2362
  ] }),
2790
- footer ? footer : children ? /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
2363
+ footer ? footer : children ? /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
2791
2364
  ArrowDownIcon,
2792
2365
  {
2793
2366
  className: `matchid-login-recommend-method-arrow ${showChildren ? "matchid-login-recommend-method-arrow-active" : ""}`,
2794
2367
  size: 20,
2795
2368
  color: "var(--matchid-arrow-color)"
2796
2369
  }
2797
- ) : /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
2370
+ ) : /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
2798
2371
  ArrowRightIcon,
2799
2372
  {
2800
2373
  className: "matchid-login-recommend-method-arrow",
@@ -2803,7 +2376,7 @@ var RecommendItem = ({
2803
2376
  }
2804
2377
  )
2805
2378
  ] }),
2806
- children && /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
2379
+ children && /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
2807
2380
  "div",
2808
2381
  {
2809
2382
  className: `matchid-login-recommend-method-popover ${showChildren ? "matchid-login-recommend-method-popover-active" : ""}`,
@@ -2819,7 +2392,7 @@ function LoginBox({
2819
2392
  inModal = false
2820
2393
  }) {
2821
2394
  const config = useAppConfig();
2822
- const methodConfig = (0, import_react20.useMemo)(() => {
2395
+ const methodConfig = (0, import_react17.useMemo)(() => {
2823
2396
  if (recommendMethods || methods || walletMethods) {
2824
2397
  return {
2825
2398
  recommendMethods: recommendMethods ? recommendMethods : walletMethods ? ["wallet"] : [],
@@ -2861,82 +2434,82 @@ function LoginBox({
2861
2434
  walletMethods: walletMethodList
2862
2435
  };
2863
2436
  }, [config.platform, recommendMethods, methods, walletMethods]);
2864
- const [emailOpen, setEmailOpen] = (0, import_react20.useState)(false);
2437
+ const [emailOpen, setEmailOpen] = (0, import_react17.useState)(false);
2865
2438
  const { login } = useUserInfo();
2866
- const [showWallet, setShowWallet] = (0, import_react20.useState)(false);
2867
- const intl = (0, import_react_intl8.useIntl)();
2439
+ const [showWallet, setShowWallet] = (0, import_react17.useState)(false);
2440
+ const intl = (0, import_react_intl6.useIntl)();
2868
2441
  const isDownMd = useDownMd();
2869
2442
  const methodMap = {
2870
2443
  wallet: {
2871
- icon: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(WalletIcon, { size: isDownMd ? 36 : 40 }),
2444
+ icon: /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(WalletIcon, { size: isDownMd ? 36 : 40 }),
2872
2445
  name: intl.formatMessage({ id: "wallet" }),
2873
2446
  onClick: () => setShowWallet(!showWallet),
2874
2447
  type: "wallet"
2875
2448
  },
2876
2449
  email: {
2877
- icon: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(EmailIcon, { size: isDownMd ? 36 : 40 }),
2450
+ icon: /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(EmailIcon, { size: isDownMd ? 36 : 40 }),
2878
2451
  name: intl.formatMessage({ id: "email" }),
2879
2452
  onClick: () => {
2880
2453
  setEmailOpen(true);
2881
2454
  }
2882
2455
  },
2883
2456
  google: {
2884
- icon: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(GoogleIcon, { size: isDownMd ? 36 : 40 }),
2457
+ icon: /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(GoogleIcon, { size: isDownMd ? 36 : 40 }),
2885
2458
  name: "Google",
2886
2459
  onClick: () => login("google")
2887
2460
  },
2888
2461
  twitter: {
2889
- icon: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(XIcon, { size: isDownMd ? 36 : 40 }),
2462
+ icon: /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(XIcon, { size: isDownMd ? 36 : 40 }),
2890
2463
  name: "X",
2891
2464
  onClick: () => login("twitter")
2892
2465
  },
2893
2466
  telegram: {
2894
- icon: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(TelegramIcon, { size: isDownMd ? 36 : 40 }),
2467
+ icon: /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(TelegramIcon, { size: isDownMd ? 36 : 40 }),
2895
2468
  name: "Telegram",
2896
2469
  onClick: () => login("telegram")
2897
2470
  },
2898
2471
  github: {
2899
- icon: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(GithubIcon, { size: isDownMd ? 36 : 40 }),
2472
+ icon: /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(GithubIcon, { size: isDownMd ? 36 : 40 }),
2900
2473
  name: "Github",
2901
2474
  onClick: () => login("github")
2902
2475
  },
2903
2476
  discord: {
2904
- icon: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(DiscordIcon, { size: isDownMd ? 36 : 40 }),
2477
+ icon: /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(DiscordIcon, { size: isDownMd ? 36 : 40 }),
2905
2478
  name: "Discord",
2906
2479
  onClick: () => login("discord")
2907
2480
  },
2908
2481
  linkedin: {
2909
- icon: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(LinkedinIcon, { size: isDownMd ? 36 : 40 }),
2482
+ icon: /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(LinkedinIcon, { size: isDownMd ? 36 : 40 }),
2910
2483
  name: "LinkedIn",
2911
2484
  onClick: () => login("linkedin")
2912
2485
  },
2913
2486
  facebook: {
2914
- icon: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(FacebookIcon, { size: isDownMd ? 36 : 40 }),
2487
+ icon: /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(FacebookIcon, { size: isDownMd ? 36 : 40 }),
2915
2488
  name: "Facebook",
2916
2489
  onClick: () => login("facebook")
2917
2490
  },
2918
2491
  youtube: {
2919
- icon: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(YoutubeIcon, { size: isDownMd ? 36 : 40 }),
2492
+ icon: /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(YoutubeIcon, { size: isDownMd ? 36 : 40 }),
2920
2493
  name: "Youtube",
2921
2494
  onClick: () => login("youtube")
2922
2495
  }
2923
2496
  };
2924
2497
  const { walletMap } = useWalletConfig();
2925
- return /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)(import_jsx_runtime63.Fragment, { children: [
2926
- (!inModal || !emailOpen) && /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)("div", { className: "matchid-login-box", children: [
2927
- /* @__PURE__ */ (0, import_jsx_runtime63.jsx)("div", { className: "matchid-login-recommend-list", children: methodConfig.recommendMethods.map((m) => {
2928
- return /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
2498
+ return /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)(import_jsx_runtime61.Fragment, { children: [
2499
+ (!inModal || !emailOpen) && /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)("div", { className: "matchid-login-box", children: [
2500
+ /* @__PURE__ */ (0, import_jsx_runtime61.jsx)("div", { className: "matchid-login-recommend-list", children: methodConfig.recommendMethods.map((m) => {
2501
+ return /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
2929
2502
  RecommendItem,
2930
2503
  {
2931
2504
  icon: methodMap[m]?.icon,
2932
2505
  name: methodMap[m]?.name,
2933
2506
  onClick: methodMap[m]?.onClick,
2934
2507
  showChildren: m == "wallet" && showWallet,
2935
- children: m == "wallet" && /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)(import_jsx_runtime63.Fragment, { children: [
2936
- /* @__PURE__ */ (0, import_jsx_runtime63.jsx)("div", { className: "matchid-login-recommend-wallet-divider" }),
2937
- /* @__PURE__ */ (0, import_jsx_runtime63.jsx)("div", { className: "matchid-login-recommend-wallet-list", children: methodConfig.walletMethods.map((n) => {
2508
+ children: m == "wallet" && /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)(import_jsx_runtime61.Fragment, { children: [
2509
+ /* @__PURE__ */ (0, import_jsx_runtime61.jsx)("div", { className: "matchid-login-recommend-wallet-divider" }),
2510
+ /* @__PURE__ */ (0, import_jsx_runtime61.jsx)("div", { className: "matchid-login-recommend-wallet-list", children: methodConfig.walletMethods.map((n) => {
2938
2511
  const m2 = walletMap[n];
2939
- return /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)(
2512
+ return /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)(
2940
2513
  "div",
2941
2514
  {
2942
2515
  className: "matchid-login-recommend-wallet-item",
@@ -2944,16 +2517,16 @@ function LoginBox({
2944
2517
  login(m2.method);
2945
2518
  },
2946
2519
  children: [
2947
- /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)("div", { className: "matchid-login-recommend-wallet-item-content", children: [
2948
- /* @__PURE__ */ (0, import_jsx_runtime63.jsx)("div", { className: "matchid-login-recommend-wallet-item-icon", children: m2.icon }),
2949
- /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
2520
+ /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)("div", { className: "matchid-login-recommend-wallet-item-content", children: [
2521
+ /* @__PURE__ */ (0, import_jsx_runtime61.jsx)("div", { className: "matchid-login-recommend-wallet-item-icon", children: m2.icon }),
2522
+ /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
2950
2523
  "div",
2951
2524
  {
2952
2525
  className: "matchid-login-recommend-wallet-item-hover-icon",
2953
2526
  children: m2.activeIcon
2954
2527
  }
2955
2528
  ),
2956
- /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
2529
+ /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
2957
2530
  "span",
2958
2531
  {
2959
2532
  className: "matchid-login-recommend-wallet-item-name",
@@ -2961,7 +2534,7 @@ function LoginBox({
2961
2534
  }
2962
2535
  )
2963
2536
  ] }),
2964
- /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
2537
+ /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
2965
2538
  ArrowRightIcon,
2966
2539
  {
2967
2540
  className: "matchid-login-recommend-wallet-item-arrow",
@@ -2979,10 +2552,10 @@ function LoginBox({
2979
2552
  m
2980
2553
  );
2981
2554
  }) }),
2982
- methodConfig.methods.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)("div", { className: "matchid-login-other", children: [
2983
- /* @__PURE__ */ (0, import_jsx_runtime63.jsx)("div", { className: "matchid-login-other-text", children: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(import_react_intl8.FormattedMessage, { id: "otherLoginMethods" }) }),
2984
- /* @__PURE__ */ (0, import_jsx_runtime63.jsx)("div", { className: "matchid-login-method-box", children: methodConfig.methods.map((m) => {
2985
- return /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
2555
+ methodConfig.methods.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)("div", { className: "matchid-login-other", children: [
2556
+ /* @__PURE__ */ (0, import_jsx_runtime61.jsx)("div", { className: "matchid-login-other-text", children: /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(import_react_intl6.FormattedMessage, { id: "otherLoginMethods" }) }),
2557
+ /* @__PURE__ */ (0, import_jsx_runtime61.jsx)("div", { className: "matchid-login-method-box", children: methodConfig.methods.map((m) => {
2558
+ return /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
2986
2559
  "div",
2987
2560
  {
2988
2561
  className: "matchid-login-method-item",
@@ -2995,7 +2568,7 @@ function LoginBox({
2995
2568
  }) })
2996
2569
  ] })
2997
2570
  ] }),
2998
- /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
2571
+ /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
2999
2572
  EmailModal,
3000
2573
  {
3001
2574
  isOpen: emailOpen,
@@ -3011,56 +2584,56 @@ function LoginBox({
3011
2584
  }
3012
2585
 
3013
2586
  // src/components/LoginButton/index.tsx
3014
- var import_react22 = require("react");
2587
+ var import_react19 = require("react");
3015
2588
 
3016
2589
  // src/components/LoginPanel/index.tsx
3017
- var import_react_intl9 = require("react-intl");
3018
- var import_jsx_runtime64 = require("react/jsx-runtime");
2590
+ var import_react_intl7 = require("react-intl");
2591
+ var import_jsx_runtime62 = require("react/jsx-runtime");
3019
2592
  function LoginPanel({
3020
2593
  header,
3021
2594
  onClose,
3022
2595
  ...props
3023
2596
  }) {
3024
2597
  const isDownMd = useDownMd();
3025
- return /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)("div", { className: "matchid-login-panel", children: [
3026
- header ? header : /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)("div", { className: "matchid-login-panel-header", children: [
3027
- /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)("div", { className: "matchid-login-panel-header-content", children: [
3028
- /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("div", { className: "matchid-login-panel-header-title", children: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(import_react_intl9.FormattedMessage, { id: "loginTitle" }) }),
3029
- /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("div", { className: "matchid-login-panel-header-subtilte", children: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(import_react_intl9.FormattedMessage, { id: "loginTips" }) })
2598
+ return /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)("div", { className: "matchid-login-panel", children: [
2599
+ header ? header : /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)("div", { className: "matchid-login-panel-header", children: [
2600
+ /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)("div", { className: "matchid-login-panel-header-content", children: [
2601
+ /* @__PURE__ */ (0, import_jsx_runtime62.jsx)("div", { className: "matchid-login-panel-header-title", children: /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(import_react_intl7.FormattedMessage, { id: "loginTitle" }) }),
2602
+ /* @__PURE__ */ (0, import_jsx_runtime62.jsx)("div", { className: "matchid-login-panel-header-subtilte", children: /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(import_react_intl7.FormattedMessage, { id: "loginTips" }) })
3030
2603
  ] }),
3031
- onClose && /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("div", { className: "matchid-login-panel-header-close", onClick: onClose, children: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(CloseRoundIcon, { size: isDownMd ? 24 : 30 }) })
2604
+ onClose && /* @__PURE__ */ (0, import_jsx_runtime62.jsx)("div", { className: "matchid-login-panel-header-close", onClick: onClose, children: /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(CloseRoundIcon, { size: isDownMd ? 24 : 30 }) })
3032
2605
  ] }),
3033
- /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("div", { className: "matchid-login-panel-divide" }),
3034
- /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("div", { className: "matchid-login-panel-box", children: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(LoginBox, { ...props }) })
2606
+ /* @__PURE__ */ (0, import_jsx_runtime62.jsx)("div", { className: "matchid-login-panel-divide" }),
2607
+ /* @__PURE__ */ (0, import_jsx_runtime62.jsx)("div", { className: "matchid-login-panel-box", children: /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(LoginBox, { ...props }) })
3035
2608
  ] });
3036
2609
  }
3037
2610
 
3038
2611
  // src/components/LoginModal/index.tsx
3039
- var import_jsx_runtime65 = require("react/jsx-runtime");
2612
+ var import_jsx_runtime63 = require("react/jsx-runtime");
3040
2613
  function LoginModal({
3041
2614
  isOpen = false,
3042
2615
  width = 480,
3043
2616
  ...props
3044
2617
  }) {
3045
2618
  const { isLogin } = useUserInfo();
3046
- return /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
2619
+ return /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
3047
2620
  Modal,
3048
2621
  {
3049
2622
  isOpen: isOpen && !isLogin,
3050
2623
  width,
3051
- children: /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(LoginPanel, { ...props, inModal: true })
2624
+ children: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(LoginPanel, { ...props, inModal: true })
3052
2625
  }
3053
2626
  );
3054
2627
  }
3055
2628
 
3056
2629
  // src/components/UserPopover/index.tsx
3057
- var import_react21 = require("react");
2630
+ var import_react18 = require("react");
3058
2631
 
3059
2632
  // src/assets/icon/ProfileIcon.tsx
3060
- var import_jsx_runtime66 = require("react/jsx-runtime");
2633
+ var import_jsx_runtime64 = require("react/jsx-runtime");
3061
2634
  function ProfileIcon({ size = 24, color = "black", ...props }) {
3062
- return /* @__PURE__ */ (0, import_jsx_runtime66.jsxs)("svg", { width: size, height: size, viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [
3063
- /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
2635
+ return /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)("svg", { width: size, height: size, viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [
2636
+ /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
3064
2637
  "path",
3065
2638
  {
3066
2639
  fillRule: "evenodd",
@@ -3069,7 +2642,7 @@ function ProfileIcon({ size = 24, color = "black", ...props }) {
3069
2642
  fill: color
3070
2643
  }
3071
2644
  ),
3072
- /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
2645
+ /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
3073
2646
  "path",
3074
2647
  {
3075
2648
  fillRule: "evenodd",
@@ -3082,11 +2655,11 @@ function ProfileIcon({ size = 24, color = "black", ...props }) {
3082
2655
  }
3083
2656
 
3084
2657
  // src/components/UserPopover/index.tsx
3085
- var import_react_intl10 = require("react-intl");
3086
- var import_jsx_runtime67 = require("react/jsx-runtime");
2658
+ var import_react_intl8 = require("react-intl");
2659
+ var import_jsx_runtime65 = require("react/jsx-runtime");
3087
2660
  function UserContent() {
3088
2661
  const { logout, address, username } = useUserInfo();
3089
- const [logouting, setLogouting] = (0, import_react21.useState)(false);
2662
+ const [logouting, setLogouting] = (0, import_react18.useState)(false);
3090
2663
  const onLogout = async () => {
3091
2664
  if (logouting) return;
3092
2665
  try {
@@ -3104,34 +2677,34 @@ function UserContent() {
3104
2677
  rightIcon,
3105
2678
  onClick
3106
2679
  }) => {
3107
- return /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)("div", { className: "matchid-user-popover-item", onClick, children: [
3108
- /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)("div", { className: `matchid-user-popover-item-content`, children: [
2680
+ return /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { className: "matchid-user-popover-item", onClick, children: [
2681
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { className: `matchid-user-popover-item-content`, children: [
3109
2682
  icon,
3110
- /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("div", { className: "matchid-user-popover-item-text", children })
2683
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsx)("div", { className: "matchid-user-popover-item-text", children })
3111
2684
  ] }),
3112
2685
  rightIcon
3113
2686
  ] });
3114
2687
  };
3115
2688
  const UserDivider = () => {
3116
- return /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("div", { className: `matchid-user-popover-divider` });
2689
+ return /* @__PURE__ */ (0, import_jsx_runtime65.jsx)("div", { className: `matchid-user-popover-divider` });
3117
2690
  };
3118
- const [usernameOpen, setUsernameOpen] = (0, import_react21.useState)(false);
2691
+ const [usernameOpen, setUsernameOpen] = (0, import_react18.useState)(false);
3119
2692
  const [copied, setCopied] = useCopyClipboard();
3120
- const intl = (0, import_react_intl10.useIntl)();
3121
- return /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)("div", { className: "matchid-user-popover-content", children: [
3122
- /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)("div", { className: "matchid-user-popover-list", children: [
3123
- /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(UserItem, { onClick: () => {
2693
+ const intl = (0, import_react_intl8.useIntl)();
2694
+ return /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { className: "matchid-user-popover-content", children: [
2695
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { className: "matchid-user-popover-list", children: [
2696
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(UserItem, { onClick: () => {
3124
2697
  setCopied(address);
3125
- }, icon: copied ? /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(CheckIcon, { size: 20, color: "#0ecb81" }) : /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(CopyIcon, { size: 20, color: "var(--icon-color)" }), rightIcon: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(CheckIcon, { size: 20, color: "var(--icon-color)" }), children: truncateAddress(address) }),
3126
- /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(UserDivider, {}),
3127
- /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(UserItem, { onClick: () => {
2698
+ }, icon: copied ? /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(CheckIcon, { size: 20, color: "#0ecb81" }) : /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(CopyIcon, { size: 20, color: "var(--icon-color)" }), rightIcon: /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(CheckIcon, { size: 20, color: "var(--icon-color)" }), children: truncateAddress(address) }),
2699
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(UserDivider, {}),
2700
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(UserItem, { onClick: () => {
3128
2701
  setUsernameOpen(true);
3129
- }, icon: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(ProfileIcon, { size: 20, color: "var(--icon-color)" }), rightIcon: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(ArrowRightIcon, { size: 20, color: "var(--icon-color)" }), children: username || intl.formatMessage({
2702
+ }, icon: /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(ProfileIcon, { size: 20, color: "var(--icon-color)" }), rightIcon: /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(ArrowRightIcon, { size: 20, color: "var(--icon-color)" }), children: username || intl.formatMessage({
3130
2703
  id: "setUsername"
3131
2704
  }) })
3132
2705
  ] }),
3133
- /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(Button, { onClick: onLogout, loading: logouting, children: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(import_react_intl10.FormattedMessage, { id: "disconnect" }) }),
3134
- /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(UsernameModal, { isOpen: usernameOpen, onClose: () => {
2706
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(Button, { onClick: onLogout, loading: logouting, children: /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(import_react_intl8.FormattedMessage, { id: "disconnect" }) }),
2707
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(UsernameModal, { isOpen: usernameOpen, onClose: () => {
3135
2708
  setUsernameOpen(false);
3136
2709
  }, onSuccess: () => {
3137
2710
  setUsernameOpen(false);
@@ -3142,12 +2715,12 @@ function UserPopover({
3142
2715
  children,
3143
2716
  ...props
3144
2717
  }) {
3145
- return /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(Popover, { ...props, content: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(UserContent, {}), children });
2718
+ return /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(Popover, { ...props, content: /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(UserContent, {}), children });
3146
2719
  }
3147
2720
 
3148
2721
  // src/components/LoginButton/index.tsx
3149
- var import_react_intl11 = require("react-intl");
3150
- var import_jsx_runtime68 = require("react/jsx-runtime");
2722
+ var import_react_intl9 = require("react-intl");
2723
+ var import_jsx_runtime66 = require("react/jsx-runtime");
3151
2724
  function LoginButton({
3152
2725
  loginRender,
3153
2726
  methods,
@@ -3159,12 +2732,12 @@ function LoginButton({
3159
2732
  walletMethods,
3160
2733
  ...props
3161
2734
  }) {
3162
- const intl = (0, import_react_intl11.useIntl)();
2735
+ const intl = (0, import_react_intl9.useIntl)();
3163
2736
  const { isLogin, username } = useUserInfo();
3164
- const [loginOpen, setLoginOpen] = (0, import_react22.useState)(false);
2737
+ const [loginOpen, setLoginOpen] = (0, import_react19.useState)(false);
3165
2738
  if (!isLogin) {
3166
- return /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)(import_jsx_runtime68.Fragment, { children: [
3167
- /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(
2739
+ return /* @__PURE__ */ (0, import_jsx_runtime66.jsxs)(import_jsx_runtime66.Fragment, { children: [
2740
+ /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
3168
2741
  LoginModal,
3169
2742
  {
3170
2743
  methods,
@@ -3174,32 +2747,32 @@ function LoginButton({
3174
2747
  onClose: () => setLoginOpen(false)
3175
2748
  }
3176
2749
  ),
3177
- /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)(Button, { className: "matchid-unlogin-btn", ...props, highlight: true, onClick: () => setLoginOpen(true), children: [
3178
- /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(UnLoginIcon_default, {}),
3179
- /* @__PURE__ */ (0, import_jsx_runtime68.jsx)("span", { children: /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(import_react_intl11.FormattedMessage, { id: "login" }) })
2750
+ /* @__PURE__ */ (0, import_jsx_runtime66.jsxs)(Button, { className: "matchid-unlogin-btn", ...props, highlight: true, onClick: () => setLoginOpen(true), children: [
2751
+ /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(UnLoginIcon_default, {}),
2752
+ /* @__PURE__ */ (0, import_jsx_runtime66.jsx)("span", { children: /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(import_react_intl9.FormattedMessage, { id: "login" }) })
3180
2753
  ] })
3181
2754
  ] });
3182
2755
  }
3183
- return loginRender ? /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(import_jsx_runtime68.Fragment, { children: loginRender }) : /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(UserPopover, { position: popoverPosition, type: popoverType, gap: popoverGap, children: /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)(Button, { onClick: onLoginClick, className: "matchid-login-btn", ...props, children: [
3184
- /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(LoginIcon_default, {}),
3185
- /* @__PURE__ */ (0, import_jsx_runtime68.jsx)("span", { children: username ? truncateAddress(username) : "MatchID " + intl.formatMessage({
2756
+ return loginRender ? /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(import_jsx_runtime66.Fragment, { children: loginRender }) : /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(UserPopover, { position: popoverPosition, type: popoverType, gap: popoverGap, children: /* @__PURE__ */ (0, import_jsx_runtime66.jsxs)(Button, { onClick: onLoginClick, className: "matchid-login-btn", ...props, children: [
2757
+ /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(LoginIcon_default, {}),
2758
+ /* @__PURE__ */ (0, import_jsx_runtime66.jsx)("span", { children: username ? truncateAddress(username) : "MatchID " + intl.formatMessage({
3186
2759
  id: "user"
3187
2760
  }) })
3188
2761
  ] }) });
3189
2762
  }
3190
2763
 
3191
2764
  // src/components/UsernameModal/index.tsx
3192
- var import_react23 = require("react");
2765
+ var import_react20 = require("react");
3193
2766
 
3194
2767
  // src/assets/icon/InfoRoundIcon.tsx
3195
- var import_jsx_runtime69 = require("react/jsx-runtime");
2768
+ var import_jsx_runtime67 = require("react/jsx-runtime");
3196
2769
  function InfoRoundIcon({
3197
2770
  size,
3198
2771
  color = "#6E6E6E",
3199
2772
  ...props
3200
2773
  }) {
3201
- return /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)("svg", { width: size, height: size, viewBox: "0 0 16 16", fill: "none", xmlns: "http://www.w3.org/2000/svg", ...props, children: [
3202
- /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("g", { clipPath: "url(#clip0_418_7746)", children: /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
2774
+ return /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)("svg", { width: size, height: size, viewBox: "0 0 16 16", fill: "none", xmlns: "http://www.w3.org/2000/svg", ...props, children: [
2775
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("g", { clipPath: "url(#clip0_418_7746)", children: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(
3203
2776
  "path",
3204
2777
  {
3205
2778
  fillRule: "evenodd",
@@ -3208,21 +2781,21 @@ function InfoRoundIcon({
3208
2781
  fill: color
3209
2782
  }
3210
2783
  ) }),
3211
- /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("defs", { children: /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("clipPath", { id: "clip0_418_7746", children: /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("rect", { width: "16", height: "16", fill: "white" }) }) })
2784
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("defs", { children: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("clipPath", { id: "clip0_418_7746", children: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { width: "16", height: "16", fill: "white" }) }) })
3212
2785
  ] });
3213
2786
  }
3214
2787
 
3215
2788
  // src/components/UsernameModal/index.tsx
3216
- var import_react_intl12 = require("react-intl");
3217
- var import_jsx_runtime70 = require("react/jsx-runtime");
2789
+ var import_react_intl10 = require("react-intl");
2790
+ var import_jsx_runtime68 = require("react/jsx-runtime");
3218
2791
  var ValidItem = ({
3219
2792
  success = false,
3220
2793
  text
3221
2794
  }) => {
3222
2795
  const isDownMd = useDownMd();
3223
- return /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)("div", { className: `matchid-valid-status-item matchid-valid-status-${success ? "success" : "error"}`, children: [
3224
- success ? /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(CheckRoundIcon, { size: isDownMd ? 12 : 16 }) : /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(InfoRoundIcon, { size: isDownMd ? 12 : 16 }),
3225
- /* @__PURE__ */ (0, import_jsx_runtime70.jsx)("span", { children: text })
2796
+ return /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)("div", { className: `matchid-valid-status-item matchid-valid-status-${success ? "success" : "error"}`, children: [
2797
+ success ? /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(CheckRoundIcon, { size: isDownMd ? 12 : 16 }) : /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(InfoRoundIcon, { size: isDownMd ? 12 : 16 }),
2798
+ /* @__PURE__ */ (0, import_jsx_runtime68.jsx)("span", { children: text })
3226
2799
  ] });
3227
2800
  };
3228
2801
  function UsernameModal({
@@ -3233,23 +2806,23 @@ function UsernameModal({
3233
2806
  }) {
3234
2807
  const { username, refreshOverview } = useUserInfo();
3235
2808
  const { isLogin } = useUserInfo();
3236
- const [val, setVal] = (0, import_react23.useState)(username);
3237
- const [error, setError] = (0, import_react23.useState)("");
2809
+ const [val, setVal] = (0, import_react20.useState)(username);
2810
+ const [error, setError] = (0, import_react20.useState)("");
3238
2811
  const isDownMd = useDownMd();
3239
- (0, import_react23.useEffect)(() => {
2812
+ (0, import_react20.useEffect)(() => {
3240
2813
  if (isOpen) {
3241
2814
  setVal(username);
3242
2815
  setError("");
3243
2816
  }
3244
2817
  }, [isOpen]);
3245
- const isValid = (0, import_react23.useMemo)(() => {
2818
+ const isValid = (0, import_react20.useMemo)(() => {
3246
2819
  return isValidUsername(val);
3247
2820
  }, [val]);
3248
- const isLength = (0, import_react23.useMemo)(() => {
2821
+ const isLength = (0, import_react20.useMemo)(() => {
3249
2822
  return val.length >= 2 && val.length <= 32;
3250
2823
  }, [val]);
3251
2824
  const isSafe = isValid && isLength;
3252
- const [isSubmitting, setIsSubmitting] = (0, import_react23.useState)(false);
2825
+ const [isSubmitting, setIsSubmitting] = (0, import_react20.useState)(false);
3253
2826
  const onSubmit = async () => {
3254
2827
  if (isSubmitting) return;
3255
2828
  try {
@@ -3269,13 +2842,13 @@ function UsernameModal({
3269
2842
  setIsSubmitting(false);
3270
2843
  }
3271
2844
  };
3272
- const intl = (0, import_react_intl12.useIntl)();
3273
- return /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(ModalWithHeader, { isOpen: isOpen && isLogin, ...props, title: title || intl.formatMessage({
2845
+ const intl = (0, import_react_intl10.useIntl)();
2846
+ return /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(ModalWithHeader, { isOpen: isOpen && isLogin, ...props, title: title || intl.formatMessage({
3274
2847
  id: username ? "editUsernameTitle" : "setUsernameTitle"
3275
- }), children: /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)("div", { className: "matchid-username-box", children: [
3276
- /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(Field, { label: intl.formatMessage({
2848
+ }), children: /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)("div", { className: "matchid-username-box", children: [
2849
+ /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(Field, { label: intl.formatMessage({
3277
2850
  id: "username"
3278
- }), error, children: /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
2851
+ }), error, children: /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(
3279
2852
  Input,
3280
2853
  {
3281
2854
  placeholder: intl.formatMessage({
@@ -3288,8 +2861,8 @@ function UsernameModal({
3288
2861
  value: val
3289
2862
  }
3290
2863
  ) }),
3291
- /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)("div", { className: "matchid-valid", children: [
3292
- /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
2864
+ /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)("div", { className: "matchid-valid", children: [
2865
+ /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(
3293
2866
  ValidItem,
3294
2867
  {
3295
2868
  success: isValid,
@@ -3298,21 +2871,21 @@ function UsernameModal({
3298
2871
  })
3299
2872
  }
3300
2873
  ),
3301
- /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(ValidItem, { success: isLength, text: intl.formatMessage({
2874
+ /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(ValidItem, { success: isLength, text: intl.formatMessage({
3302
2875
  id: "usernameLengthError"
3303
2876
  }) })
3304
2877
  ] }),
3305
- /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(Button, { disabled: !isSafe, loading: isSubmitting, style: {
2878
+ /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(Button, { disabled: !isSafe, loading: isSubmitting, style: {
3306
2879
  marginTop: isDownMd ? "36px" : "64px"
3307
- }, onClick: onSubmit, size: "lg", block: true, highlight: true, children: /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(import_react_intl12.FormattedMessage, { id: "confirm" }) }),
3308
- /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(Button, { style: {
2880
+ }, onClick: onSubmit, size: "lg", block: true, highlight: true, children: /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(import_react_intl10.FormattedMessage, { id: "confirm" }) }),
2881
+ /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(Button, { style: {
3309
2882
  marginTop: isDownMd ? "12px" : "24px"
3310
- }, onClick: props.onClose, size: "lg", block: true, children: /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(import_react_intl12.FormattedMessage, { id: "cancel" }) })
2883
+ }, onClick: props.onClose, size: "lg", block: true, children: /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(import_react_intl10.FormattedMessage, { id: "cancel" }) })
3311
2884
  ] }) });
3312
2885
  }
3313
2886
 
3314
2887
  // src/components/SOLModal/index.tsx
3315
- var import_react25 = __toESM(require("react"));
2888
+ var import_react22 = __toESM(require("react"));
3316
2889
  var import_web3 = require("@solana/web3.js");
3317
2890
  var import_wallet_adapter_react = require("@solana/wallet-adapter-react");
3318
2891
  var import_wallet_adapter_react_ui = require("@solana/wallet-adapter-react-ui");
@@ -3328,10 +2901,10 @@ var WalletAdapterNetwork;
3328
2901
  // src/components/SOLModal/index.tsx
3329
2902
  var import_wallet_adapter_wallets = require("@solana/wallet-adapter-wallets");
3330
2903
  var import_styles = require("@solana/wallet-adapter-react-ui/styles.css");
3331
- var import_react_intl13 = require("react-intl");
2904
+ var import_react_intl11 = require("react-intl");
3332
2905
 
3333
2906
  // src/components/WalletModalContent/index.tsx
3334
- var import_react24 = require("react");
2907
+ var import_react21 = require("react");
3335
2908
 
3336
2909
  // src/assets/wallet.ts
3337
2910
  var walletErrorImage = "data:image/png;base64,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";
@@ -3341,7 +2914,7 @@ var walletConnectImage = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQAAAAEA
3341
2914
  var walletSigningImage = "data:image/png;base64,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";
3342
2915
 
3343
2916
  // src/components/WalletModalContent/index.tsx
3344
- var import_jsx_runtime71 = require("react/jsx-runtime");
2917
+ var import_jsx_runtime69 = require("react/jsx-runtime");
3345
2918
  function WalletModalContent({
3346
2919
  status,
3347
2920
  error,
@@ -3352,7 +2925,7 @@ function WalletModalContent({
3352
2925
  address,
3353
2926
  connected
3354
2927
  }) {
3355
- const pageData = (0, import_react24.useMemo)(() => {
2928
+ const pageData = (0, import_react21.useMemo)(() => {
3356
2929
  if (status == "success") {
3357
2930
  return {
3358
2931
  btnText: "Disconnect Wallet",
@@ -3411,12 +2984,12 @@ function WalletModalContent({
3411
2984
  statusImage: walletConnectImage
3412
2985
  };
3413
2986
  }, [visible, connected, status, error, address]);
3414
- return /* @__PURE__ */ (0, import_jsx_runtime71.jsx)("div", { className: "matchid-wallet-container", children: /* @__PURE__ */ (0, import_jsx_runtime71.jsxs)("div", { className: `matchid-wallet-box`, children: [
3415
- /* @__PURE__ */ (0, import_jsx_runtime71.jsxs)("div", { className: `matchid-wallet-content`, children: [
3416
- /* @__PURE__ */ (0, import_jsx_runtime71.jsx)("img", { src: pageData.statusImage }),
3417
- /* @__PURE__ */ (0, import_jsx_runtime71.jsx)("div", { className: pageData.isError ? "text-[#F7585E]" : "", children: pageData.text })
2987
+ return /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("div", { className: "matchid-wallet-container", children: /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)("div", { className: `matchid-wallet-box`, children: [
2988
+ /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)("div", { className: `matchid-wallet-content`, children: [
2989
+ /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("img", { src: pageData.statusImage }),
2990
+ /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("div", { className: pageData.isError ? "text-[#F7585E]" : "", children: pageData.text })
3418
2991
  ] }),
3419
- /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(
2992
+ /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
3420
2993
  Button,
3421
2994
  {
3422
2995
  block: true,
@@ -3431,7 +3004,7 @@ function WalletModalContent({
3431
3004
  }
3432
3005
 
3433
3006
  // src/components/SOLModal/index.tsx
3434
- var import_jsx_runtime72 = require("react/jsx-runtime");
3007
+ var import_jsx_runtime70 = require("react/jsx-runtime");
3435
3008
  function WalletContent({
3436
3009
  onSuccess,
3437
3010
  type
@@ -3439,17 +3012,17 @@ function WalletContent({
3439
3012
  const { setVisible, visible } = (0, import_wallet_adapter_react_ui.useWalletModal)();
3440
3013
  const wallet = (0, import_wallet_adapter_react.useWallet)();
3441
3014
  const { events, login } = useMatch();
3442
- const [status, setStatus] = (0, import_react25.useState)("");
3443
- const statusRef = import_react25.default.useRef(status);
3444
- const [error, setError] = (0, import_react25.useState)("");
3445
- (0, import_react25.useEffect)(() => {
3015
+ const [status, setStatus] = (0, import_react22.useState)("");
3016
+ const statusRef = import_react22.default.useRef(status);
3017
+ const [error, setError] = (0, import_react22.useState)("");
3018
+ (0, import_react22.useEffect)(() => {
3446
3019
  const init = async () => {
3447
3020
  await wallet.disconnect();
3448
3021
  setVisible(true);
3449
3022
  };
3450
3023
  init();
3451
3024
  }, []);
3452
- (0, import_react25.useEffect)(() => {
3025
+ (0, import_react22.useEffect)(() => {
3453
3026
  if (wallet.connected) {
3454
3027
  console.log("wallet.connected", wallet.connected);
3455
3028
  toLoginInWallet();
@@ -3513,7 +3086,7 @@ function WalletContent({
3513
3086
  statusRef.current = "";
3514
3087
  }
3515
3088
  };
3516
- return /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
3089
+ return /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
3517
3090
  WalletModalContent,
3518
3091
  {
3519
3092
  connected: wallet.connected,
@@ -3573,20 +3146,20 @@ function SOLConnectModal({
3573
3146
  onSuccess,
3574
3147
  ...props
3575
3148
  }) {
3576
- const intl = (0, import_react_intl13.useIntl)();
3577
- return /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(ModalWithHeader, { ...props, title: props.title || intl.formatMessage({
3149
+ const intl = (0, import_react_intl11.useIntl)();
3150
+ return /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(ModalWithHeader, { ...props, title: props.title || intl.formatMessage({
3578
3151
  id: type == "bind" ? "bindWith" : "loginWith"
3579
3152
  }, {
3580
3153
  name: "SOL"
3581
- }), children: /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(import_wallet_adapter_react.ConnectionProvider, { endpoint: (0, import_web3.clusterApiUrl)("devnet"), children: /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(import_wallet_adapter_react.WalletProvider, { wallets, autoConnect: true, children: /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(import_wallet_adapter_react_ui.WalletModalProvider, { children: /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(WalletContent, { onSuccess, type }) }) }) }) });
3154
+ }), children: /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(import_wallet_adapter_react.ConnectionProvider, { endpoint: (0, import_web3.clusterApiUrl)("devnet"), children: /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(import_wallet_adapter_react.WalletProvider, { wallets, autoConnect: true, children: /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(import_wallet_adapter_react_ui.WalletModalProvider, { children: /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(WalletContent, { onSuccess, type }) }) }) }) });
3582
3155
  }
3583
3156
  function SOLModal(props) {
3584
- return props.isOpen && /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(SOLConnectModal, { ...props });
3157
+ return props.isOpen && /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(SOLConnectModal, { ...props });
3585
3158
  }
3586
3159
 
3587
3160
  // src/components/TRONModal/index.tsx
3588
- var import_react27 = __toESM(require("react"));
3589
- var import_react_intl14 = require("react-intl");
3161
+ var import_react24 = __toESM(require("react"));
3162
+ var import_react_intl12 = require("react-intl");
3590
3163
 
3591
3164
  // src/lib/tron/TronLinkAdapter.ts
3592
3165
  var TronLinkAdapter = class {
@@ -3619,7 +3192,7 @@ var TronLinkAdapter = class {
3619
3192
  };
3620
3193
 
3621
3194
  // src/hooks/useTRONWallet.ts
3622
- var import_react26 = require("react");
3195
+ var import_react23 = require("react");
3623
3196
 
3624
3197
  // src/lib/tron/BitgetAdapter.ts
3625
3198
  var BitgetAdapter = class {
@@ -3664,9 +3237,9 @@ var OKXAdapter = class {
3664
3237
  // src/hooks/useTRONWallet.ts
3665
3238
  var useTRONWallet = () => {
3666
3239
  const wallets2 = [new TronLinkAdapter(), new BitgetAdapter(), new OKXAdapter()];
3667
- const [installedWallets, setInstalledWallets] = (0, import_react26.useState)([]);
3668
- const [address, setAddress] = (0, import_react26.useState)(null);
3669
- (0, import_react26.useEffect)(() => {
3240
+ const [installedWallets, setInstalledWallets] = (0, import_react23.useState)([]);
3241
+ const [address, setAddress] = (0, import_react23.useState)(null);
3242
+ (0, import_react23.useEffect)(() => {
3670
3243
  const getInstalled = async () => {
3671
3244
  const installed = await Promise.all(wallets2.map((wallet2) => wallet2.isInstalled().then((isInstalled) => ({
3672
3245
  wallet: wallet2,
@@ -3676,11 +3249,11 @@ var useTRONWallet = () => {
3676
3249
  };
3677
3250
  getInstalled();
3678
3251
  }, []);
3679
- const [wallet, chooseWallet] = (0, import_react26.useState)(null);
3252
+ const [wallet, chooseWallet] = (0, import_react23.useState)(null);
3680
3253
  const onConnect = async () => {
3681
3254
  setAddress(await wallet.connect());
3682
3255
  };
3683
- (0, import_react26.useEffect)(() => {
3256
+ (0, import_react23.useEffect)(() => {
3684
3257
  if (!wallet) {
3685
3258
  setAddress(null);
3686
3259
  }
@@ -3696,25 +3269,25 @@ var useTRONWallet = () => {
3696
3269
  };
3697
3270
 
3698
3271
  // src/components/TRONModal/index.tsx
3699
- var import_jsx_runtime73 = require("react/jsx-runtime");
3272
+ var import_jsx_runtime71 = require("react/jsx-runtime");
3700
3273
  function TRONConnectModal({
3701
3274
  type = "login",
3702
3275
  onSuccess,
3703
3276
  ...props
3704
3277
  }) {
3705
3278
  const isDownMd = useDownMd();
3706
- const intl = (0, import_react_intl14.useIntl)();
3279
+ const intl = (0, import_react_intl12.useIntl)();
3707
3280
  const { wallets: wallets2, installedWallets, chooseWallet, wallet, address, onConnect } = useTRONWallet();
3708
3281
  const iconMaps = {
3709
- tronlink: /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(TronLinkIcon, { size: isDownMd ? 36 : 40 }),
3710
- bitget: /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(BitgetIcon, { size: isDownMd ? 36 : 40 }),
3711
- okx: /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(OKXIcon, { size: isDownMd ? 36 : 40 })
3282
+ tronlink: /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(TronLinkIcon, { size: isDownMd ? 36 : 40 }),
3283
+ bitget: /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(BitgetIcon, { size: isDownMd ? 36 : 40 }),
3284
+ okx: /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(OKXIcon, { size: isDownMd ? 36 : 40 })
3712
3285
  };
3713
3286
  const { events, login } = useMatch();
3714
- const [status, setStatus] = (0, import_react27.useState)("");
3715
- const statusRef = import_react27.default.useRef(status);
3716
- const [error, setError] = (0, import_react27.useState)("");
3717
- const connected = (0, import_react27.useMemo)(() => {
3287
+ const [status, setStatus] = (0, import_react24.useState)("");
3288
+ const statusRef = import_react24.default.useRef(status);
3289
+ const [error, setError] = (0, import_react24.useState)("");
3290
+ const connected = (0, import_react24.useMemo)(() => {
3718
3291
  return !!address;
3719
3292
  }, [address]);
3720
3293
  const disconnect = async () => {
@@ -3782,7 +3355,7 @@ function TRONConnectModal({
3782
3355
  statusRef.current = "";
3783
3356
  }
3784
3357
  };
3785
- (0, import_react27.useEffect)(() => {
3358
+ (0, import_react24.useEffect)(() => {
3786
3359
  if (wallet) {
3787
3360
  console.log("onConnect");
3788
3361
  onConnect();
@@ -3790,21 +3363,21 @@ function TRONConnectModal({
3790
3363
  setStatus("");
3791
3364
  }
3792
3365
  }, [wallet]);
3793
- (0, import_react27.useEffect)(() => {
3366
+ (0, import_react24.useEffect)(() => {
3794
3367
  if (address) {
3795
3368
  toLoginInWallet();
3796
3369
  }
3797
3370
  }, [address]);
3798
- (0, import_react27.useEffect)(() => {
3371
+ (0, import_react24.useEffect)(() => {
3799
3372
  if (!props.isOpen) {
3800
3373
  disconnect();
3801
3374
  }
3802
3375
  }, [props.isOpen]);
3803
- return /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(ModalWithHeader, { ...props, title: props.title || intl.formatMessage({
3376
+ return /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(ModalWithHeader, { ...props, title: props.title || intl.formatMessage({
3804
3377
  id: type == "bind" ? "bindWith" : "loginWith"
3805
3378
  }, {
3806
3379
  name: "TRON"
3807
- }), onBack: wallet ? onBack : void 0, children: wallet ? /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
3380
+ }), onBack: wallet ? onBack : void 0, children: wallet ? /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(
3808
3381
  WalletModalContent,
3809
3382
  {
3810
3383
  error,
@@ -3817,9 +3390,9 @@ function TRONConnectModal({
3817
3390
  setVisible: () => {
3818
3391
  }
3819
3392
  }
3820
- ) : /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("div", { className: "matchid-login-box", children: /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)("div", { className: "matchid-login-recommend-list", children: [
3393
+ ) : /* @__PURE__ */ (0, import_jsx_runtime71.jsx)("div", { className: "matchid-login-box", children: /* @__PURE__ */ (0, import_jsx_runtime71.jsxs)("div", { className: "matchid-login-recommend-list", children: [
3821
3394
  installedWallets.map((wallet2) => {
3822
- return /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
3395
+ return /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(
3823
3396
  RecommendItem,
3824
3397
  {
3825
3398
  icon: iconMaps[wallet2.walletKey],
@@ -3832,14 +3405,14 @@ function TRONConnectModal({
3832
3405
  );
3833
3406
  }),
3834
3407
  wallets2.filter((wallet2) => !installedWallets.find((installedWallet) => installedWallet.walletKey == wallet2.walletKey)).map((wallet2) => {
3835
- return /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
3408
+ return /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(
3836
3409
  RecommendItem,
3837
3410
  {
3838
3411
  icon: iconMaps[wallet2.walletKey],
3839
3412
  name: wallet2.name,
3840
3413
  onClick: () => {
3841
3414
  },
3842
- footer: /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(Button, { size: "sm", onClick: () => {
3415
+ footer: /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(Button, { size: "sm", onClick: () => {
3843
3416
  window.open(wallet2.website);
3844
3417
  }, children: "Install" })
3845
3418
  },
@@ -3849,28 +3422,28 @@ function TRONConnectModal({
3849
3422
  ] }) }) });
3850
3423
  }
3851
3424
  function TRONModal(props) {
3852
- return props.isOpen && /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(TRONConnectModal, { ...props, type: "" });
3425
+ return props.isOpen && /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(TRONConnectModal, { ...props, type: "" });
3853
3426
  }
3854
3427
 
3855
3428
  // src/components/TONModal/index.tsx
3856
- var import_react28 = __toESM(require("react"));
3857
- var import_react_intl15 = require("react-intl");
3429
+ var import_react25 = __toESM(require("react"));
3430
+ var import_react_intl13 = require("react-intl");
3858
3431
  var import_ui_react = require("@tonconnect/ui-react");
3859
- var import_jsx_runtime74 = require("react/jsx-runtime");
3432
+ var import_jsx_runtime72 = require("react/jsx-runtime");
3860
3433
  function WalletContent2({
3861
3434
  onSuccess,
3862
3435
  type
3863
3436
  }) {
3864
3437
  const { events, login } = useMatch();
3865
- const [connected, setConnected] = (0, import_react28.useState)(false);
3438
+ const [connected, setConnected] = (0, import_react25.useState)(false);
3866
3439
  const wallet = (0, import_ui_react.useTonWallet)();
3867
3440
  const userFriendlyAddress = (0, import_ui_react.useTonAddress)();
3868
3441
  const [tonConnectUI] = (0, import_ui_react.useTonConnectUI)();
3869
3442
  const { state, open, close } = (0, import_ui_react.useTonConnectModal)();
3870
- const [status, setStatus] = (0, import_react28.useState)("");
3871
- const statusRef = import_react28.default.useRef(status);
3872
- const [error, setError] = (0, import_react28.useState)("");
3873
- (0, import_react28.useEffect)(() => {
3443
+ const [status, setStatus] = (0, import_react25.useState)("");
3444
+ const statusRef = import_react25.default.useRef(status);
3445
+ const [error, setError] = (0, import_react25.useState)("");
3446
+ (0, import_react25.useEffect)(() => {
3874
3447
  const init = async () => {
3875
3448
  if (wallet) {
3876
3449
  await tonConnectUI.disconnect();
@@ -3943,7 +3516,7 @@ function WalletContent2({
3943
3516
  }
3944
3517
  });
3945
3518
  }, []);
3946
- (0, import_react28.useEffect)(() => {
3519
+ (0, import_react25.useEffect)(() => {
3947
3520
  if (wallet) {
3948
3521
  setConnected(true);
3949
3522
  console.log("Wallet connected:", wallet);
@@ -3954,7 +3527,7 @@ function WalletContent2({
3954
3527
  setStatus("");
3955
3528
  }
3956
3529
  }, [wallet]);
3957
- (0, import_react28.useEffect)(() => {
3530
+ (0, import_react25.useEffect)(() => {
3958
3531
  console.log({
3959
3532
  state,
3960
3533
  wallet
@@ -3983,7 +3556,7 @@ function WalletContent2({
3983
3556
  }
3984
3557
  }
3985
3558
  }, [state]);
3986
- return /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(
3559
+ return /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
3987
3560
  WalletModalContent,
3988
3561
  {
3989
3562
  connected,
@@ -4014,28 +3587,28 @@ function TONConnectModal({
4014
3587
  onSuccess,
4015
3588
  ...props
4016
3589
  }) {
4017
- const intl = (0, import_react_intl15.useIntl)();
3590
+ const intl = (0, import_react_intl13.useIntl)();
4018
3591
  const { endpoints, appid } = useLocalStore_default();
4019
3592
  const manifestUrl = `${endpoints.back}api/v1/wallet/ton?appid=${appid}&url=` + encodeURIComponent(window.location.origin);
4020
- return /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(ModalWithHeader, { ...props, title: props.title || intl.formatMessage({
3593
+ return /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(ModalWithHeader, { ...props, title: props.title || intl.formatMessage({
4021
3594
  id: type == "bind" ? "bindWith" : "loginWith"
4022
3595
  }, {
4023
3596
  name: "TON"
4024
- }), children: /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(
3597
+ }), children: /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
4025
3598
  import_ui_react.TonConnectUIProvider,
4026
3599
  {
4027
3600
  manifestUrl,
4028
- children: /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(WalletContent2, { onSuccess, type })
3601
+ children: /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(WalletContent2, { onSuccess, type })
4029
3602
  }
4030
3603
  ) });
4031
3604
  }
4032
3605
  function TONModal(props) {
4033
- return props.isOpen && /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(TONConnectModal, { ...props });
3606
+ return props.isOpen && /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(TONConnectModal, { ...props });
4034
3607
  }
4035
3608
 
4036
3609
  // src/components/BTCModal/index.tsx
4037
- var import_react30 = __toESM(require("react"));
4038
- var import_react_intl16 = require("react-intl");
3610
+ var import_react27 = __toESM(require("react"));
3611
+ var import_react_intl14 = require("react-intl");
4039
3612
 
4040
3613
  // src/lib/btc/UnisatAdapter.ts
4041
3614
  var UnisatAdapter = class {
@@ -4183,12 +3756,12 @@ var LeatherAdapter = class {
4183
3756
  };
4184
3757
 
4185
3758
  // src/hooks/useBTCWallet.ts
4186
- var import_react29 = require("react");
3759
+ var import_react26 = require("react");
4187
3760
  var useBTCWallet = () => {
4188
3761
  const wallets2 = [new UnisatAdapter(), new XverseAdapter(), new LeatherAdapter()];
4189
- const [installedWallets, setInstalledWallets] = (0, import_react29.useState)([]);
4190
- const [address, setAddress] = (0, import_react29.useState)(null);
4191
- (0, import_react29.useEffect)(() => {
3762
+ const [installedWallets, setInstalledWallets] = (0, import_react26.useState)([]);
3763
+ const [address, setAddress] = (0, import_react26.useState)(null);
3764
+ (0, import_react26.useEffect)(() => {
4192
3765
  const getInstalled = async () => {
4193
3766
  const installed = await Promise.all(wallets2.map((wallet2) => wallet2.isInstalled().then((isInstalled) => ({
4194
3767
  wallet: wallet2,
@@ -4198,11 +3771,11 @@ var useBTCWallet = () => {
4198
3771
  };
4199
3772
  getInstalled();
4200
3773
  }, []);
4201
- const [wallet, chooseWallet] = (0, import_react29.useState)(null);
3774
+ const [wallet, chooseWallet] = (0, import_react26.useState)(null);
4202
3775
  const onConnect = async () => {
4203
3776
  setAddress(await wallet.connect());
4204
3777
  };
4205
- (0, import_react29.useEffect)(() => {
3778
+ (0, import_react26.useEffect)(() => {
4206
3779
  if (!wallet) {
4207
3780
  setAddress(null);
4208
3781
  }
@@ -4218,25 +3791,25 @@ var useBTCWallet = () => {
4218
3791
  };
4219
3792
 
4220
3793
  // src/components/BTCModal/index.tsx
4221
- var import_jsx_runtime75 = require("react/jsx-runtime");
3794
+ var import_jsx_runtime73 = require("react/jsx-runtime");
4222
3795
  function BTCConnectModal({
4223
3796
  type = "login",
4224
3797
  onSuccess,
4225
3798
  ...props
4226
3799
  }) {
4227
3800
  const isDownMd = useDownMd();
4228
- const intl = (0, import_react_intl16.useIntl)();
3801
+ const intl = (0, import_react_intl14.useIntl)();
4229
3802
  const { wallets: wallets2, installedWallets, chooseWallet, wallet, address, onConnect } = useBTCWallet();
4230
3803
  const iconMaps = {
4231
- leather: /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(LeatherIcon, { size: isDownMd ? 36 : 40 }),
4232
- unisat: /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(UnisatIcon, { size: isDownMd ? 36 : 40 }),
4233
- xverse: /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(XverseIcon, { size: isDownMd ? 36 : 40 })
3804
+ leather: /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(LeatherIcon, { size: isDownMd ? 36 : 40 }),
3805
+ unisat: /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(UnisatIcon, { size: isDownMd ? 36 : 40 }),
3806
+ xverse: /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(XverseIcon, { size: isDownMd ? 36 : 40 })
4234
3807
  };
4235
3808
  const { events, login } = useMatch();
4236
- const [status, setStatus] = (0, import_react30.useState)("");
4237
- const statusRef = import_react30.default.useRef(status);
4238
- const [error, setError] = (0, import_react30.useState)("");
4239
- const connected = (0, import_react30.useMemo)(() => {
3809
+ const [status, setStatus] = (0, import_react27.useState)("");
3810
+ const statusRef = import_react27.default.useRef(status);
3811
+ const [error, setError] = (0, import_react27.useState)("");
3812
+ const connected = (0, import_react27.useMemo)(() => {
4240
3813
  return !!address;
4241
3814
  }, [address]);
4242
3815
  const disconnect = async () => {
@@ -4300,7 +3873,7 @@ function BTCConnectModal({
4300
3873
  statusRef.current = "";
4301
3874
  }
4302
3875
  };
4303
- (0, import_react30.useEffect)(() => {
3876
+ (0, import_react27.useEffect)(() => {
4304
3877
  if (wallet) {
4305
3878
  console.log("onConnect");
4306
3879
  try {
@@ -4313,12 +3886,12 @@ function BTCConnectModal({
4313
3886
  setStatus("");
4314
3887
  }
4315
3888
  }, [wallet]);
4316
- (0, import_react30.useEffect)(() => {
3889
+ (0, import_react27.useEffect)(() => {
4317
3890
  if (address) {
4318
3891
  toLoginInWallet();
4319
3892
  }
4320
3893
  }, [address]);
4321
- (0, import_react30.useEffect)(() => {
3894
+ (0, import_react27.useEffect)(() => {
4322
3895
  if (!props.isOpen) {
4323
3896
  disconnect();
4324
3897
  }
@@ -4330,11 +3903,11 @@ function BTCConnectModal({
4330
3903
  statusRef.current = "";
4331
3904
  setError("");
4332
3905
  };
4333
- return /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(ModalWithHeader, { ...props, title: props.title || intl.formatMessage({
3906
+ return /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(ModalWithHeader, { ...props, title: props.title || intl.formatMessage({
4334
3907
  id: type == "bind" ? "bindWith" : "loginWith"
4335
3908
  }, {
4336
3909
  name: "BTC"
4337
- }), onBack: wallet ? onBack : void 0, children: wallet ? /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(
3910
+ }), onBack: wallet ? onBack : void 0, children: wallet ? /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
4338
3911
  WalletModalContent,
4339
3912
  {
4340
3913
  error,
@@ -4347,9 +3920,9 @@ function BTCConnectModal({
4347
3920
  setVisible: () => {
4348
3921
  }
4349
3922
  }
4350
- ) : /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("div", { className: "matchid-login-box", children: /* @__PURE__ */ (0, import_jsx_runtime75.jsxs)("div", { className: "matchid-login-recommend-list", children: [
3923
+ ) : /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("div", { className: "matchid-login-box", children: /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)("div", { className: "matchid-login-recommend-list", children: [
4351
3924
  installedWallets.map((wallet2) => {
4352
- return /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(
3925
+ return /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
4353
3926
  RecommendItem,
4354
3927
  {
4355
3928
  icon: iconMaps[wallet2.walletKey],
@@ -4362,14 +3935,14 @@ function BTCConnectModal({
4362
3935
  );
4363
3936
  }),
4364
3937
  wallets2.filter((wallet2) => !installedWallets.find((installedWallet) => installedWallet.walletKey == wallet2.walletKey)).map((wallet2) => {
4365
- return /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(
3938
+ return /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
4366
3939
  RecommendItem,
4367
3940
  {
4368
3941
  icon: iconMaps[wallet2.walletKey],
4369
3942
  name: wallet2.name,
4370
3943
  onClick: () => {
4371
3944
  },
4372
- footer: /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(Button, { size: "sm", onClick: () => {
3945
+ footer: /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(Button, { size: "sm", onClick: () => {
4373
3946
  window.open(wallet2.website);
4374
3947
  }, children: "Install" })
4375
3948
  },
@@ -4379,23 +3952,23 @@ function BTCConnectModal({
4379
3952
  ] }) }) });
4380
3953
  }
4381
3954
  function BTCModal(props) {
4382
- return props.isOpen && /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(BTCConnectModal, { ...props });
3955
+ return props.isOpen && /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(BTCConnectModal, { ...props });
4383
3956
  }
4384
3957
 
4385
3958
  // src/components/WalletModal/index.tsx
4386
- var import_react31 = require("react");
4387
- var import_react_intl17 = require("react-intl");
4388
- var import_jsx_runtime76 = require("react/jsx-runtime");
3959
+ var import_react28 = require("react");
3960
+ var import_react_intl15 = require("react-intl");
3961
+ var import_jsx_runtime74 = require("react/jsx-runtime");
4389
3962
  function WalletConnectModal({
4390
3963
  type,
4391
3964
  methods: _methods,
4392
3965
  ...props
4393
3966
  }) {
4394
- const intl = (0, import_react_intl17.useIntl)();
3967
+ const intl = (0, import_react_intl15.useIntl)();
4395
3968
  const { walletMap } = useWalletConfig();
4396
3969
  const { bind, login } = useUserInfo();
4397
3970
  const config = useAppConfig();
4398
- const methods = (0, import_react31.useMemo)(() => {
3971
+ const methods = (0, import_react28.useMemo)(() => {
4399
3972
  if (_methods) return _methods;
4400
3973
  if (!config.platform) {
4401
3974
  return [];
@@ -4403,13 +3976,13 @@ function WalletConnectModal({
4403
3976
  const platform = config.platform.map((p) => p.toLowerCase());
4404
3977
  return WALLET_METHODS.filter((m) => platform.includes(m));
4405
3978
  }, [config.platform, _methods]);
4406
- return /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(ModalWithHeader, { ...props, title: props.title || intl.formatMessage({
3979
+ return /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(ModalWithHeader, { ...props, title: props.title || intl.formatMessage({
4407
3980
  id: type == "bind" ? "bindWith" : "loginWith"
4408
3981
  }, {
4409
3982
  name: ""
4410
- }), children: /* @__PURE__ */ (0, import_jsx_runtime76.jsx)("div", { className: "matchid-login-box", children: /* @__PURE__ */ (0, import_jsx_runtime76.jsx)("div", { className: "matchid-login-recommend-list", children: methods.map((method, index) => {
3983
+ }), children: /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("div", { className: "matchid-login-box", children: /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("div", { className: "matchid-login-recommend-list", children: methods.map((method, index) => {
4411
3984
  const m = walletMap[method];
4412
- return /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(
3985
+ return /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(
4413
3986
  RecommendItem,
4414
3987
  {
4415
3988
  icon: m?.icon,
@@ -4423,7 +3996,7 @@ function WalletConnectModal({
4423
3996
  }) }) }) });
4424
3997
  }
4425
3998
  function WalletModal(props) {
4426
- return props.isOpen && /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(WalletConnectModal, { ...props });
3999
+ return props.isOpen && /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(WalletConnectModal, { ...props });
4427
4000
  }
4428
4001
  // Annotate the CommonJS export names for ESM import in node:
4429
4002
  0 && (module.exports = {
@@ -4439,7 +4012,6 @@ function WalletModal(props) {
4439
4012
  Modal,
4440
4013
  ModalWithHeader,
4441
4014
  Overlay,
4442
- PasswordModal,
4443
4015
  Popover,
4444
4016
  SOLModal,
4445
4017
  TONModal,