@matchain/matchid-sdk-react 0.1.42-alpha.8 → 0.1.43

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 (45) 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/{chunk-FXRUBZOM.mjs → chunk-KITTHHSR.mjs} +372 -294
  4. package/dist/chunk-KITTHHSR.mjs.map +1 -0
  5. package/dist/{chunk-NFWID5ZW.mjs → chunk-L3G6YN2D.mjs} +2 -2
  6. package/dist/components/index.d.mts +2 -2
  7. package/dist/components/index.d.ts +2 -2
  8. package/dist/components/index.js +306 -232
  9. package/dist/components/index.js.map +1 -1
  10. package/dist/components/index.mjs +5 -3
  11. package/dist/hooks/api/index.d.mts +2 -2
  12. package/dist/hooks/api/index.d.ts +2 -2
  13. package/dist/hooks/api/index.js +52 -30
  14. package/dist/hooks/api/index.js.map +1 -1
  15. package/dist/hooks/api/index.mjs +2 -2
  16. package/dist/hooks/index.d.mts +2 -2
  17. package/dist/hooks/index.d.ts +2 -2
  18. package/dist/hooks/index.js +87 -53
  19. package/dist/hooks/index.js.map +1 -1
  20. package/dist/hooks/index.mjs +1 -1
  21. package/dist/{index-Ca9nh_8s.d.ts → index-BQDL8XkC.d.ts} +1 -1
  22. package/dist/{index-CmH9iRLd.d.mts → index-C1NfMaCm.d.mts} +10 -3
  23. package/dist/{index-q5XDobUF.d.mts → index-DAj3aVo6.d.mts} +1 -1
  24. package/dist/{index-sOVSnYF4.d.mts → index-DnK10Gz7.d.mts} +11 -5
  25. package/dist/{index-BxS06a5O.d.ts → index-DzVjb4K-.d.ts} +1 -1
  26. package/dist/{index-DFZpfAfc.d.mts → index-Rb-jdkzE.d.mts} +1 -1
  27. package/dist/{index-DKMrpRJC.d.ts → index-ivTptZeo.d.ts} +11 -5
  28. package/dist/{index-DY_ReBra.d.ts → index-x432SkFJ.d.ts} +10 -3
  29. package/dist/index.d.mts +6 -6
  30. package/dist/index.d.ts +6 -6
  31. package/dist/index.js +409 -334
  32. package/dist/index.js.map +1 -1
  33. package/dist/index.mjs +2 -2
  34. package/dist/types/index.d.mts +1 -1
  35. package/dist/types/index.d.ts +1 -1
  36. package/dist/{types-CVwZEgQ0.d.mts → types-E2MeOwmE.d.mts} +1 -1
  37. package/dist/{types-CVwZEgQ0.d.ts → types-E2MeOwmE.d.ts} +1 -1
  38. package/example/src/abi/erc20.json +222 -0
  39. package/example/src/config/index.ts +1 -0
  40. package/example/src/pages/Wallet.tsx +135 -9
  41. package/example/src/store/useLocalStore.ts +7 -1
  42. package/example/tsconfig.json +1 -0
  43. package/package.json +1 -1
  44. package/dist/chunk-FXRUBZOM.mjs.map +0 -1
  45. /package/dist/{chunk-NFWID5ZW.mjs.map → chunk-L3G6YN2D.mjs.map} +0 -0
@@ -47,7 +47,8 @@ __export(components_exports, {
47
47
  SOLModal: () => SOLModal,
48
48
  TONModal: () => TONModal,
49
49
  TRONModal: () => TRONModal,
50
- UsernameModal: () => UsernameModal
50
+ UsernameModal: () => UsernameModal,
51
+ WalletModal: () => WalletModal
51
52
  });
52
53
  module.exports = __toCommonJS(components_exports);
53
54
 
@@ -1669,6 +1670,50 @@ var import_viem3 = require("viem");
1669
1670
 
1670
1671
  // src/store/useModalStore.ts
1671
1672
  var import_zustand3 = require("zustand");
1673
+
1674
+ // src/hooks/useConfig.tsx
1675
+ var import_jsx_runtime50 = require("react/jsx-runtime");
1676
+ var DEFAULT_WALLET_METHODS = ["evm", "sol", "btc", "tron", "ton"];
1677
+ function useWalletConfig() {
1678
+ const isDownMd = useDownMd();
1679
+ const walletMap = {
1680
+ evm: {
1681
+ icon: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(EVMDarkIcon, { size: isDownMd ? 36 : 40 }),
1682
+ activeIcon: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(EVMLightIcon, { size: isDownMd ? 36 : 40 }),
1683
+ name: "EVM",
1684
+ method: "evm"
1685
+ },
1686
+ sol: {
1687
+ icon: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(SOLDarkIcon, { size: isDownMd ? 36 : 40 }),
1688
+ activeIcon: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(SOLLightIcon, { size: isDownMd ? 36 : 40 }),
1689
+ name: "SOL",
1690
+ method: "sol"
1691
+ },
1692
+ btc: {
1693
+ icon: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(BTCDarkIcon, { size: isDownMd ? 36 : 40 }),
1694
+ activeIcon: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(BTCLightIcon, { size: isDownMd ? 36 : 40 }),
1695
+ name: "BTC",
1696
+ method: "btc"
1697
+ },
1698
+ tron: {
1699
+ icon: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(TRXDarkIcon, { size: isDownMd ? 36 : 40 }),
1700
+ activeIcon: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(TRXLightIcon, { size: isDownMd ? 36 : 40 }),
1701
+ name: "TRON",
1702
+ method: "tron"
1703
+ },
1704
+ ton: {
1705
+ icon: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(TonLightIcon, { size: isDownMd ? 36 : 40 }),
1706
+ activeIcon: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(TonLightIcon2, { size: isDownMd ? 36 : 40 }),
1707
+ name: "TON",
1708
+ method: "ton"
1709
+ }
1710
+ };
1711
+ return {
1712
+ walletMap
1713
+ };
1714
+ }
1715
+
1716
+ // src/store/useModalStore.ts
1672
1717
  var useSOLModalStore = (0, import_zustand3.create)((set) => ({
1673
1718
  isOpen: false,
1674
1719
  type: "",
@@ -1710,6 +1755,13 @@ var useHashPanelStore = (0, import_zustand3.create)((set) => ({
1710
1755
  }),
1711
1756
  close: () => set({ isOpen: false })
1712
1757
  }));
1758
+ var useWalletModalStore = (0, import_zustand3.create)((set) => ({
1759
+ isOpen: false,
1760
+ type: "",
1761
+ methods: [],
1762
+ open: (type, methods = DEFAULT_WALLET_METHODS) => set({ isOpen: true, type, methods }),
1763
+ close: () => set({ isOpen: false })
1764
+ }));
1713
1765
 
1714
1766
  // src/hooks/useWallet.tsx
1715
1767
  var AppClientId = "react-sdk-" + getVersion();
@@ -1895,24 +1947,35 @@ function useWallet() {
1895
1947
  const chainId = chain ? chain.id : await obj.getChainId();
1896
1948
  const _chain = chain || obj.chain;
1897
1949
  const transactionId = Date.now().toString() + Math.random().toString().slice(6);
1898
- const sendPrepareTransactionRequest = async () => {
1899
- const { chain: chain2, account, ...prepareTransactionRequest } = await obj.prepareTransactionRequest(transaction);
1900
- window.matchProvider.sendWalletMessage({
1901
- method: "prepareTransactionRequest",
1902
- data: {
1903
- prepareTransactionRequest,
1904
- transactionId
1950
+ let interval = setInterval(() => {
1951
+ const sendPrepareTransactionRequest = async () => {
1952
+ try {
1953
+ const {
1954
+ chain: chain2,
1955
+ account,
1956
+ ...prepareTransactionRequest
1957
+ // @ts-ignore
1958
+ } = await obj.prepareTransactionRequest(transaction);
1959
+ window.matchProvider.sendWalletMessage({
1960
+ method: "prepareTransactionRequest",
1961
+ data: {
1962
+ prepareTransactionRequest,
1963
+ transactionId
1964
+ }
1965
+ });
1966
+ } catch (error) {
1967
+ console.error(error);
1905
1968
  }
1906
- });
1907
- };
1908
- let interval = null;
1909
- const timer = setTimeout(() => {
1969
+ };
1910
1970
  sendPrepareTransactionRequest();
1911
- interval = setInterval(() => {
1912
- sendPrepareTransactionRequest();
1913
- }, 1e4);
1914
- }, 1500);
1971
+ }, 1e4);
1915
1972
  try {
1973
+ const {
1974
+ chain: chain2,
1975
+ account,
1976
+ ...prepareTransactionRequest
1977
+ // @ts-ignore
1978
+ } = await obj.prepareTransactionRequest(transaction);
1916
1979
  const { serializedTransaction } = await window.matchProvider.waitUntilWalletMessage({
1917
1980
  method: "sendTransaction",
1918
1981
  data: {
@@ -1925,7 +1988,8 @@ function useWallet() {
1925
1988
  id: chainId,
1926
1989
  name: _chain?.name,
1927
1990
  nativeCurrency: _chain?.nativeCurrency
1928
- }
1991
+ },
1992
+ prepareTransactionRequest
1929
1993
  }
1930
1994
  });
1931
1995
  openHashPanel();
@@ -1934,14 +1998,12 @@ function useWallet() {
1934
1998
  });
1935
1999
  openHashPanel({
1936
2000
  hash: txHash,
1937
- chain
2001
+ chain: _chain
1938
2002
  });
1939
- clearTimeout(timer);
1940
2003
  clearInterval(interval);
1941
2004
  resolve(txHash);
1942
2005
  } catch (error) {
1943
2006
  console.error("qwe-sign-error", error);
1944
- clearTimeout(timer);
1945
2007
  clearInterval(interval);
1946
2008
  reject(error);
1947
2009
  }
@@ -2007,7 +2069,7 @@ function useCopyClipboard(timeout = 500) {
2007
2069
 
2008
2070
  // src/components/PasswordModal/index.tsx
2009
2071
  var import_react_intl2 = require("react-intl");
2010
- var import_jsx_runtime50 = require("react/jsx-runtime");
2072
+ var import_jsx_runtime51 = require("react/jsx-runtime");
2011
2073
  function PasswordModal({
2012
2074
  title,
2013
2075
  isOpen,
@@ -2022,6 +2084,7 @@ function PasswordModal({
2022
2084
  const [rePassword, setRePassword] = (0, import_react8.useState)("");
2023
2085
  const [error, setError] = (0, import_react8.useState)("");
2024
2086
  const { generateEmbeddedWallets, initCore } = useWallet();
2087
+ const { walletReady } = useStore_default();
2025
2088
  const intl = (0, import_react_intl2.useIntl)();
2026
2089
  const passwordError = (0, import_react8.useMemo)(() => {
2027
2090
  if (password.length < 6) return intl.formatMessage({
@@ -2067,15 +2130,15 @@ function PasswordModal({
2067
2130
  setIsSubmitting(false);
2068
2131
  }
2069
2132
  };
2070
- return /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(ModalWithHeader, { isOpen: isOpen && isLogin, ...props, title: title || intl.formatMessage({
2133
+ return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(ModalWithHeader, { isOpen: isOpen && isLogin, ...props, title: title || intl.formatMessage({
2071
2134
  id: "passwordTitle"
2072
- }), children: /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)("div", { className: "matchid-password-box", children: [
2073
- /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)("div", { className: "matchid-password-header", children: [
2074
- /* @__PURE__ */ (0, import_jsx_runtime50.jsx)("div", { className: "matchid-password-header-icon", children: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(PasswordRoundIcon, {}) }),
2075
- /* @__PURE__ */ (0, import_jsx_runtime50.jsx)("div", { className: "matchid-password-header-content", children: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(import_react_intl2.FormattedMessage, { id: "passwordTips" }) })
2135
+ }), children: /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("div", { className: "matchid-password-box", children: [
2136
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("div", { className: "matchid-password-header", children: [
2137
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("div", { className: "matchid-password-header-icon", children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(PasswordRoundIcon, {}) }),
2138
+ /* @__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" }) })
2076
2139
  ] }),
2077
- /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)("div", { className: "matchid-password-content", children: [
2078
- /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(Field, { label: intl.formatMessage({ id: "password" }), error: password.length > 0 && passwordError, children: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
2140
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("div", { className: "matchid-password-content", children: [
2141
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(Field, { label: intl.formatMessage({ id: "password" }), error: password.length > 0 && passwordError, children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
2079
2142
  Input,
2080
2143
  {
2081
2144
  placeholder: intl.formatMessage({ id: "passwordPlaceholder" }),
@@ -2085,9 +2148,9 @@ function PasswordModal({
2085
2148
  value: password
2086
2149
  }
2087
2150
  ) }),
2088
- /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(Field, { label: intl.formatMessage({
2151
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(Field, { label: intl.formatMessage({
2089
2152
  id: "rePassword"
2090
- }), error: rePassword.length > 0 ? rePasswordError || error : error, children: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
2153
+ }), error: !walletReady ? intl.formatMessage({ id: "walletLoading" }) : rePassword.length > 0 ? rePasswordError || error : error, children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
2091
2154
  Input,
2092
2155
  {
2093
2156
  placeholder: intl.formatMessage({
@@ -2100,16 +2163,16 @@ function PasswordModal({
2100
2163
  }
2101
2164
  ) })
2102
2165
  ] }),
2103
- /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
2166
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
2104
2167
  Button,
2105
2168
  {
2106
- disabled: password.length == 0 || !!passwordError || !!rePasswordError,
2169
+ disabled: password.length == 0 || !!passwordError || !!rePasswordError || !walletReady,
2107
2170
  highlight: true,
2108
2171
  block: true,
2109
2172
  size: "lg",
2110
2173
  onClick: onContinue,
2111
2174
  loading: isSubmitting,
2112
- children: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(import_react_intl2.FormattedMessage, { id: "continue" })
2175
+ children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_react_intl2.FormattedMessage, { id: "continue" })
2113
2176
  }
2114
2177
  )
2115
2178
  ] }) });
@@ -2118,12 +2181,12 @@ function PasswordModal({
2118
2181
  // src/components/RecoveryModal/index.tsx
2119
2182
  var import_react9 = require("react");
2120
2183
  var import_react_intl3 = require("react-intl");
2121
- var import_jsx_runtime51 = require("react/jsx-runtime");
2184
+ var import_jsx_runtime52 = require("react/jsx-runtime");
2122
2185
 
2123
2186
  // src/components/CEXBindModal/index.tsx
2124
2187
  var import_react10 = require("react");
2125
2188
  var import_react_intl4 = require("react-intl");
2126
- var import_jsx_runtime52 = require("react/jsx-runtime");
2189
+ var import_jsx_runtime53 = require("react/jsx-runtime");
2127
2190
 
2128
2191
  // src/components/HashPanel/index.tsx
2129
2192
  var import_viem4 = require("viem");
@@ -2131,19 +2194,19 @@ var import_react11 = require("react");
2131
2194
  var import_react_query = require("@tanstack/react-query");
2132
2195
 
2133
2196
  // src/components/Drawer/index.tsx
2134
- var import_jsx_runtime53 = require("react/jsx-runtime");
2197
+ var import_jsx_runtime54 = require("react/jsx-runtime");
2135
2198
 
2136
2199
  // src/components/ModalDrawer/index.tsx
2137
- var import_jsx_runtime54 = require("react/jsx-runtime");
2200
+ var import_jsx_runtime55 = require("react/jsx-runtime");
2138
2201
 
2139
2202
  // src/components/HashPanel/index.tsx
2140
- var import_jsx_runtime55 = require("react/jsx-runtime");
2203
+ var import_jsx_runtime56 = require("react/jsx-runtime");
2141
2204
 
2142
2205
  // src/context/BusinessProvider.tsx
2143
- var import_jsx_runtime56 = require("react/jsx-runtime");
2206
+ var import_jsx_runtime57 = require("react/jsx-runtime");
2144
2207
 
2145
2208
  // src/context/index.tsx
2146
- var import_jsx_runtime57 = (
2209
+ var import_jsx_runtime58 = (
2147
2210
  // <MpcWalletProvider>
2148
2211
  require("react/jsx-runtime")
2149
2212
  );
@@ -2158,7 +2221,7 @@ var import_react14 = require("react");
2158
2221
  // src/MatchContext.tsx
2159
2222
  var import_react_query2 = require("@tanstack/react-query");
2160
2223
  var import_react_intl5 = require("react-intl");
2161
- var import_jsx_runtime58 = require("react/jsx-runtime");
2224
+ var import_jsx_runtime59 = require("react/jsx-runtime");
2162
2225
  var queryClient = new import_react_query2.QueryClient();
2163
2226
  var MatchContext = (0, import_react15.createContext)(void 0);
2164
2227
  var useMatch = () => {
@@ -2189,6 +2252,7 @@ function useUserInfo() {
2189
2252
  const { open: TONOpen } = useTONModalStore();
2190
2253
  const { open: BTCOpen } = useBTCModalStore();
2191
2254
  const { open: CEXBindOpen } = useCEXBindModalStore();
2255
+ const walletModalStore = useWalletModalStore();
2192
2256
  const isLogin = (0, import_react16.useMemo)(() => !!token && !!overview, [token, overview]);
2193
2257
  const logout = async () => {
2194
2258
  try {
@@ -2227,8 +2291,10 @@ function useUserInfo() {
2227
2291
  "width=800,height=600"
2228
2292
  );
2229
2293
  };
2230
- const loginMethod = async (method) => {
2294
+ const loginMethod = async (method, extra) => {
2231
2295
  switch (method) {
2296
+ case "wallet":
2297
+ return walletModalStore.open("login", extra?.methods);
2232
2298
  case "evm":
2233
2299
  return window.open(`${endpoints.auth}login/wallet?appid=${appid}`);
2234
2300
  case "sol":
@@ -2317,11 +2383,13 @@ function useUserInfo() {
2317
2383
  }
2318
2384
  throw new Error(res.message);
2319
2385
  };
2320
- const bind = async (method) => {
2386
+ const bind = async (method, extra) => {
2321
2387
  if (!token) {
2322
2388
  throw new Error("You must login first");
2323
2389
  }
2324
2390
  switch (method) {
2391
+ case "wallet":
2392
+ return walletModalStore.open("bind", extra?.methods);
2325
2393
  case "evm":
2326
2394
  return window.open(`${endpoints.auth}bind/wallet?appid=${appid}&st=` + encodeURIComponent(encodeBase64(token)));
2327
2395
  case "sol":
@@ -2431,7 +2499,7 @@ var EMAIL_CODE_LENGTH = 6;
2431
2499
 
2432
2500
  // src/components/EmailModal/StepVerify.tsx
2433
2501
  var import_react_intl6 = require("react-intl");
2434
- var import_jsx_runtime59 = require("react/jsx-runtime");
2502
+ var import_jsx_runtime60 = require("react/jsx-runtime");
2435
2503
  function StepVerify(props) {
2436
2504
  const intl = (0, import_react_intl6.useIntl)();
2437
2505
  const { getLoginEmailCode, loginByEmail } = useUserInfo();
@@ -2508,17 +2576,17 @@ function StepVerify(props) {
2508
2576
  setSubmitting(false);
2509
2577
  }
2510
2578
  };
2511
- return /* @__PURE__ */ (0, import_jsx_runtime59.jsxs)("div", { className: "matchid-email-verify-box", children: [
2512
- /* @__PURE__ */ (0, import_jsx_runtime59.jsxs)("div", { className: "matchid-email-verify-header", children: [
2513
- /* @__PURE__ */ (0, import_jsx_runtime59.jsx)("div", { className: "matchid-email-verify-header-icon", children: /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(EmailLineIcon, { size: isDownMd ? 19 : 24 }) }),
2514
- /* @__PURE__ */ (0, import_jsx_runtime59.jsxs)("div", { className: "matchid-email-verify-header-content", children: [
2515
- /* @__PURE__ */ (0, import_jsx_runtime59.jsx)("div", { className: "matchid-email-verify-header-value", children: props.email }),
2516
- /* @__PURE__ */ (0, import_jsx_runtime59.jsx)("div", { className: "matchid-email-verify-header-tips", children: /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(import_react_intl6.FormattedMessage, { id: "sendEmailTips" }) })
2579
+ return /* @__PURE__ */ (0, import_jsx_runtime60.jsxs)("div", { className: "matchid-email-verify-box", children: [
2580
+ /* @__PURE__ */ (0, import_jsx_runtime60.jsxs)("div", { className: "matchid-email-verify-header", children: [
2581
+ /* @__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 }) }),
2582
+ /* @__PURE__ */ (0, import_jsx_runtime60.jsxs)("div", { className: "matchid-email-verify-header-content", children: [
2583
+ /* @__PURE__ */ (0, import_jsx_runtime60.jsx)("div", { className: "matchid-email-verify-header-value", children: props.email }),
2584
+ /* @__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" }) })
2517
2585
  ] })
2518
2586
  ] }),
2519
- /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(Field, { label: intl.formatMessage({
2587
+ /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(Field, { label: intl.formatMessage({
2520
2588
  id: "verificationCode"
2521
- }), error, children: /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(
2589
+ }), error, children: /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(
2522
2590
  Input,
2523
2591
  {
2524
2592
  placeholder: intl.formatMessage({
@@ -2528,7 +2596,7 @@ function StepVerify(props) {
2528
2596
  maxLength: codeLength,
2529
2597
  onChange: (e) => setCode(e.target.value),
2530
2598
  value: code,
2531
- after: /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(
2599
+ after: /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(
2532
2600
  Button,
2533
2601
  {
2534
2602
  highlight: true,
@@ -2547,13 +2615,13 @@ function StepVerify(props) {
2547
2615
  )
2548
2616
  }
2549
2617
  ) }),
2550
- /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(Button, { disabled: !canContinue, highlight: true, block: true, size: "lg", onClick: onContinue, children: /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(import_react_intl6.FormattedMessage, { id: "continue" }) })
2618
+ /* @__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" }) })
2551
2619
  ] });
2552
2620
  }
2553
2621
 
2554
2622
  // src/components/EmailModal/index.tsx
2555
2623
  var import_react_intl7 = require("react-intl");
2556
- var import_jsx_runtime60 = require("react/jsx-runtime");
2624
+ var import_jsx_runtime61 = require("react/jsx-runtime");
2557
2625
  function EmailModal({
2558
2626
  isOpen = false,
2559
2627
  width = 480,
@@ -2570,7 +2638,7 @@ function EmailModal({
2570
2638
  setEmailVal("");
2571
2639
  }
2572
2640
  }, [isOpen]);
2573
- return /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(
2641
+ return /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
2574
2642
  ModalWithHeader,
2575
2643
  {
2576
2644
  isOpen,
@@ -2580,17 +2648,17 @@ function EmailModal({
2580
2648
  id: "email"
2581
2649
  }),
2582
2650
  onBack: step == "verify" ? () => setStep("input") : onBack,
2583
- children: step === "input" ? /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(StepEmail, { email: emailVal, onContinue: (email) => {
2651
+ children: step === "input" ? /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(StepEmail, { email: emailVal, onContinue: (email) => {
2584
2652
  setEmailVal(email);
2585
2653
  setStep("verify");
2586
- } }) : /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(StepVerify, { email: emailVal, onSuccess: onLogin })
2654
+ } }) : /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(StepVerify, { email: emailVal, onSuccess: onLogin })
2587
2655
  }
2588
2656
  );
2589
2657
  }
2590
2658
 
2591
2659
  // src/components/Popover/index.tsx
2592
2660
  var import_react19 = require("react");
2593
- var import_jsx_runtime61 = require("react/jsx-runtime");
2661
+ var import_jsx_runtime62 = require("react/jsx-runtime");
2594
2662
  function Popover({
2595
2663
  children,
2596
2664
  content,
@@ -2600,7 +2668,7 @@ function Popover({
2600
2668
  gap = "20px"
2601
2669
  }) {
2602
2670
  const [active, setActive] = (0, import_react19.useState)(false);
2603
- return children && /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)(
2671
+ return children && /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)(
2604
2672
  "div",
2605
2673
  {
2606
2674
  onClick: () => {
@@ -2611,9 +2679,9 @@ function Popover({
2611
2679
  className: `matchid-popover-box matchid-popover-${position} matchid-popover-${type} ${className} ${type == "click" && active ? "matchid-popover-click-active" : ""}`,
2612
2680
  children: [
2613
2681
  children,
2614
- /* @__PURE__ */ (0, import_jsx_runtime61.jsx)("div", { style: {
2682
+ /* @__PURE__ */ (0, import_jsx_runtime62.jsx)("div", { style: {
2615
2683
  paddingTop: gap
2616
- }, className: `matchid-popover-area`, children: /* @__PURE__ */ (0, import_jsx_runtime61.jsx)("div", { className: `matchid-popover-content`, children: content }) })
2684
+ }, className: `matchid-popover-area`, children: /* @__PURE__ */ (0, import_jsx_runtime62.jsx)("div", { className: `matchid-popover-content`, children: content }) })
2617
2685
  ]
2618
2686
  }
2619
2687
  );
@@ -2622,7 +2690,7 @@ function Popover({
2622
2690
  // src/components/LoginBox/index.tsx
2623
2691
  var import_react20 = require("react");
2624
2692
  var import_react_intl8 = require("react-intl");
2625
- var import_jsx_runtime62 = require("react/jsx-runtime");
2693
+ var import_jsx_runtime63 = require("react/jsx-runtime");
2626
2694
  var RecommendItem = ({
2627
2695
  icon,
2628
2696
  name,
@@ -2631,20 +2699,20 @@ var RecommendItem = ({
2631
2699
  children,
2632
2700
  footer
2633
2701
  }) => {
2634
- return /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)("div", { className: "matchid-login-recommend-method", children: [
2635
- /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)("div", { className: "matchid-login-recommend-method-item", onClick, children: [
2636
- /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)("div", { className: "matchid-login-recommend-method-content", children: [
2637
- /* @__PURE__ */ (0, import_jsx_runtime62.jsx)("div", { className: "matchid-login-recommend-method-icon", children: icon }),
2638
- /* @__PURE__ */ (0, import_jsx_runtime62.jsx)("span", { className: "matchid-login-recommend-method-name", children: name })
2702
+ return /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)("div", { className: "matchid-login-recommend-method", children: [
2703
+ /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)("div", { className: "matchid-login-recommend-method-item", onClick, children: [
2704
+ /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)("div", { className: "matchid-login-recommend-method-content", children: [
2705
+ /* @__PURE__ */ (0, import_jsx_runtime63.jsx)("div", { className: "matchid-login-recommend-method-icon", children: icon }),
2706
+ /* @__PURE__ */ (0, import_jsx_runtime63.jsx)("span", { className: "matchid-login-recommend-method-name", children: name })
2639
2707
  ] }),
2640
- footer ? footer : children ? /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(
2708
+ footer ? footer : children ? /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
2641
2709
  ArrowDownIcon,
2642
2710
  {
2643
2711
  className: `matchid-login-recommend-method-arrow ${showChildren ? "matchid-login-recommend-method-arrow-active" : ""}`,
2644
2712
  size: 20,
2645
2713
  color: "var(--matchid-arrow-color)"
2646
2714
  }
2647
- ) : /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(
2715
+ ) : /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
2648
2716
  ArrowRightIcon,
2649
2717
  {
2650
2718
  className: "matchid-login-recommend-method-arrow",
@@ -2653,7 +2721,7 @@ var RecommendItem = ({
2653
2721
  }
2654
2722
  )
2655
2723
  ] }),
2656
- children && /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(
2724
+ children && /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
2657
2725
  "div",
2658
2726
  {
2659
2727
  className: `matchid-login-recommend-method-popover ${showChildren ? "matchid-login-recommend-method-popover-active" : ""}`,
@@ -2675,7 +2743,7 @@ function LoginBox({
2675
2743
  "linkedin",
2676
2744
  "discord"
2677
2745
  ],
2678
- walletMethods = ["evm", "sol", "btc", "tron"],
2746
+ walletMethods = DEFAULT_WALLET_METHODS,
2679
2747
  inModal = false
2680
2748
  }) {
2681
2749
  const [emailOpen, setEmailOpen] = (0, import_react20.useState)(false);
@@ -2685,121 +2753,92 @@ function LoginBox({
2685
2753
  const isDownMd = useDownMd();
2686
2754
  const methodMap = {
2687
2755
  wallet: {
2688
- icon: /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(WalletIcon, { size: isDownMd ? 36 : 40 }),
2756
+ icon: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(WalletIcon, { size: isDownMd ? 36 : 40 }),
2689
2757
  name: intl.formatMessage({ id: "wallet" }),
2690
2758
  onClick: () => setShowWallet(!showWallet),
2691
2759
  type: "wallet"
2692
2760
  },
2693
2761
  email: {
2694
- icon: /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(EmailIcon, { size: isDownMd ? 36 : 40 }),
2762
+ icon: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(EmailIcon, { size: isDownMd ? 36 : 40 }),
2695
2763
  name: intl.formatMessage({ id: "email" }),
2696
2764
  onClick: () => {
2697
2765
  setEmailOpen(true);
2698
2766
  }
2699
2767
  },
2700
2768
  google: {
2701
- icon: /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(GoogleIcon, { size: isDownMd ? 36 : 40 }),
2769
+ icon: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(GoogleIcon, { size: isDownMd ? 36 : 40 }),
2702
2770
  name: "Google",
2703
2771
  onClick: () => login("google")
2704
2772
  },
2705
2773
  twitter: {
2706
- icon: /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(XIcon, { size: isDownMd ? 36 : 40 }),
2774
+ icon: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(XIcon, { size: isDownMd ? 36 : 40 }),
2707
2775
  name: "X",
2708
2776
  onClick: () => login("twitter")
2709
2777
  },
2710
2778
  telegram: {
2711
- icon: /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(TelegramIcon, { size: isDownMd ? 36 : 40 }),
2779
+ icon: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(TelegramIcon, { size: isDownMd ? 36 : 40 }),
2712
2780
  name: "Telegram",
2713
2781
  onClick: () => login("telegram")
2714
2782
  },
2715
2783
  github: {
2716
- icon: /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(GithubIcon, { size: isDownMd ? 36 : 40 }),
2784
+ icon: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(GithubIcon, { size: isDownMd ? 36 : 40 }),
2717
2785
  name: "Github",
2718
2786
  onClick: () => login("github")
2719
2787
  },
2720
2788
  discord: {
2721
- icon: /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(DiscordIcon, { size: isDownMd ? 36 : 40 }),
2789
+ icon: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(DiscordIcon, { size: isDownMd ? 36 : 40 }),
2722
2790
  name: "Discord",
2723
2791
  onClick: () => login("discord")
2724
2792
  },
2725
2793
  linkedin: {
2726
- icon: /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(LinkedinIcon, { size: isDownMd ? 36 : 40 }),
2794
+ icon: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(LinkedinIcon, { size: isDownMd ? 36 : 40 }),
2727
2795
  name: "LinkedIn",
2728
2796
  onClick: () => login("linkedin")
2729
2797
  },
2730
2798
  facebook: {
2731
- icon: /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(FacebookIcon, { size: isDownMd ? 36 : 40 }),
2799
+ icon: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(FacebookIcon, { size: isDownMd ? 36 : 40 }),
2732
2800
  name: "Facebook",
2733
2801
  onClick: () => login("facebook")
2734
2802
  },
2735
2803
  youtube: {
2736
- icon: /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(YoutubeIcon, { size: isDownMd ? 36 : 40 }),
2804
+ icon: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(YoutubeIcon, { size: isDownMd ? 36 : 40 }),
2737
2805
  name: "Youtube",
2738
2806
  onClick: () => login("youtube")
2739
2807
  }
2740
2808
  };
2741
- const walletMap = {
2742
- evm: {
2743
- icon: /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(EVMDarkIcon, { size: isDownMd ? 36 : 40 }),
2744
- activeIcon: /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(EVMLightIcon, { size: isDownMd ? 36 : 40 }),
2745
- name: "EVM",
2746
- onClick: () => login("evm")
2747
- },
2748
- sol: {
2749
- icon: /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(SOLDarkIcon, { size: isDownMd ? 36 : 40 }),
2750
- activeIcon: /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(SOLLightIcon, { size: isDownMd ? 36 : 40 }),
2751
- name: "SOL",
2752
- onClick: () => login("sol")
2753
- },
2754
- btc: {
2755
- icon: /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(BTCDarkIcon, { size: isDownMd ? 36 : 40 }),
2756
- activeIcon: /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(BTCLightIcon, { size: isDownMd ? 36 : 40 }),
2757
- name: "BTC",
2758
- onClick: () => login("btc")
2759
- },
2760
- tron: {
2761
- icon: /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(TRXDarkIcon, { size: isDownMd ? 36 : 40 }),
2762
- activeIcon: /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(TRXLightIcon, { size: isDownMd ? 36 : 40 }),
2763
- name: "TRON",
2764
- onClick: () => login("tron")
2765
- },
2766
- ton: {
2767
- icon: /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(TonLightIcon, { size: isDownMd ? 36 : 40 }),
2768
- activeIcon: /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(TonLightIcon2, { size: isDownMd ? 36 : 40 }),
2769
- name: "TON",
2770
- onClick: () => login("ton")
2771
- }
2772
- };
2773
- return /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)(import_jsx_runtime62.Fragment, { children: [
2774
- (!inModal || !emailOpen) && /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)("div", { className: "matchid-login-box", children: [
2775
- /* @__PURE__ */ (0, import_jsx_runtime62.jsx)("div", { className: "matchid-login-recommend-list", children: recommendMethods.map((m) => {
2776
- return /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(
2809
+ const { walletMap } = useWalletConfig();
2810
+ return /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)(import_jsx_runtime63.Fragment, { children: [
2811
+ (!inModal || !emailOpen) && /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)("div", { className: "matchid-login-box", children: [
2812
+ /* @__PURE__ */ (0, import_jsx_runtime63.jsx)("div", { className: "matchid-login-recommend-list", children: recommendMethods.map((m) => {
2813
+ return /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
2777
2814
  RecommendItem,
2778
2815
  {
2779
2816
  icon: methodMap[m]?.icon,
2780
2817
  name: methodMap[m]?.name,
2781
2818
  onClick: methodMap[m]?.onClick,
2782
2819
  showChildren: m == "wallet" && showWallet,
2783
- children: m == "wallet" && /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)(import_jsx_runtime62.Fragment, { children: [
2784
- /* @__PURE__ */ (0, import_jsx_runtime62.jsx)("div", { className: "matchid-login-recommend-wallet-divider" }),
2785
- /* @__PURE__ */ (0, import_jsx_runtime62.jsx)("div", { className: "matchid-login-recommend-wallet-list", children: walletMethods.map((n) => {
2820
+ children: m == "wallet" && /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)(import_jsx_runtime63.Fragment, { children: [
2821
+ /* @__PURE__ */ (0, import_jsx_runtime63.jsx)("div", { className: "matchid-login-recommend-wallet-divider" }),
2822
+ /* @__PURE__ */ (0, import_jsx_runtime63.jsx)("div", { className: "matchid-login-recommend-wallet-list", children: walletMethods.map((n) => {
2786
2823
  const m2 = walletMap[n];
2787
- return /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)(
2824
+ return /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)(
2788
2825
  "div",
2789
2826
  {
2790
2827
  className: "matchid-login-recommend-wallet-item",
2791
- onClick: m2.onClick,
2828
+ onClick: () => {
2829
+ login(m2.method);
2830
+ },
2792
2831
  children: [
2793
- /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)("div", { className: "matchid-login-recommend-wallet-item-content", children: [
2794
- /* @__PURE__ */ (0, import_jsx_runtime62.jsx)("div", { className: "matchid-login-recommend-wallet-item-icon", children: m2.icon }),
2795
- /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(
2832
+ /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)("div", { className: "matchid-login-recommend-wallet-item-content", children: [
2833
+ /* @__PURE__ */ (0, import_jsx_runtime63.jsx)("div", { className: "matchid-login-recommend-wallet-item-icon", children: m2.icon }),
2834
+ /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
2796
2835
  "div",
2797
2836
  {
2798
2837
  className: "matchid-login-recommend-wallet-item-hover-icon",
2799
2838
  children: m2.activeIcon
2800
2839
  }
2801
2840
  ),
2802
- /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(
2841
+ /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
2803
2842
  "span",
2804
2843
  {
2805
2844
  className: "matchid-login-recommend-wallet-item-name",
@@ -2807,7 +2846,7 @@ function LoginBox({
2807
2846
  }
2808
2847
  )
2809
2848
  ] }),
2810
- /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(
2849
+ /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
2811
2850
  ArrowRightIcon,
2812
2851
  {
2813
2852
  className: "matchid-login-recommend-wallet-item-arrow",
@@ -2825,10 +2864,10 @@ function LoginBox({
2825
2864
  m
2826
2865
  );
2827
2866
  }) }),
2828
- methods.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)("div", { className: "matchid-login-other", children: [
2829
- /* @__PURE__ */ (0, import_jsx_runtime62.jsx)("div", { className: "matchid-login-other-text", children: /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(import_react_intl8.FormattedMessage, { id: "otherLoginMethods" }) }),
2830
- /* @__PURE__ */ (0, import_jsx_runtime62.jsx)("div", { className: "matchid-login-method-box", children: methods.map((m) => {
2831
- return /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(
2867
+ methods.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)("div", { className: "matchid-login-other", children: [
2868
+ /* @__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" }) }),
2869
+ /* @__PURE__ */ (0, import_jsx_runtime63.jsx)("div", { className: "matchid-login-method-box", children: methods.map((m) => {
2870
+ return /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
2832
2871
  "div",
2833
2872
  {
2834
2873
  className: "matchid-login-method-item",
@@ -2841,7 +2880,7 @@ function LoginBox({
2841
2880
  }) })
2842
2881
  ] })
2843
2882
  ] }),
2844
- /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(
2883
+ /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
2845
2884
  EmailModal,
2846
2885
  {
2847
2886
  isOpen: emailOpen,
@@ -2861,40 +2900,40 @@ var import_react22 = require("react");
2861
2900
 
2862
2901
  // src/components/LoginPanel/index.tsx
2863
2902
  var import_react_intl9 = require("react-intl");
2864
- var import_jsx_runtime63 = require("react/jsx-runtime");
2903
+ var import_jsx_runtime64 = require("react/jsx-runtime");
2865
2904
  function LoginPanel({
2866
2905
  header,
2867
2906
  onClose,
2868
2907
  ...props
2869
2908
  }) {
2870
2909
  const isDownMd = useDownMd();
2871
- return /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)("div", { className: "matchid-login-panel", children: [
2872
- header ? header : /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)("div", { className: "matchid-login-panel-header", children: [
2873
- /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)("div", { className: "matchid-login-panel-header-content", children: [
2874
- /* @__PURE__ */ (0, import_jsx_runtime63.jsx)("div", { className: "matchid-login-panel-header-title", children: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(import_react_intl9.FormattedMessage, { id: "loginTitle" }) }),
2875
- /* @__PURE__ */ (0, import_jsx_runtime63.jsx)("div", { className: "matchid-login-panel-header-subtilte", children: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(import_react_intl9.FormattedMessage, { id: "loginTips" }) })
2910
+ return /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)("div", { className: "matchid-login-panel", children: [
2911
+ header ? header : /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)("div", { className: "matchid-login-panel-header", children: [
2912
+ /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)("div", { className: "matchid-login-panel-header-content", children: [
2913
+ /* @__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" }) }),
2914
+ /* @__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" }) })
2876
2915
  ] }),
2877
- onClose && /* @__PURE__ */ (0, import_jsx_runtime63.jsx)("div", { className: "matchid-login-panel-header-close", onClick: onClose, children: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(CloseRoundIcon, { size: isDownMd ? 24 : 30 }) })
2916
+ 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 }) })
2878
2917
  ] }),
2879
- /* @__PURE__ */ (0, import_jsx_runtime63.jsx)("div", { className: "matchid-login-panel-divide" }),
2880
- /* @__PURE__ */ (0, import_jsx_runtime63.jsx)("div", { className: "matchid-login-panel-box", children: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(LoginBox, { ...props }) })
2918
+ /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("div", { className: "matchid-login-panel-divide" }),
2919
+ /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("div", { className: "matchid-login-panel-box", children: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(LoginBox, { ...props }) })
2881
2920
  ] });
2882
2921
  }
2883
2922
 
2884
2923
  // src/components/LoginModal/index.tsx
2885
- var import_jsx_runtime64 = require("react/jsx-runtime");
2924
+ var import_jsx_runtime65 = require("react/jsx-runtime");
2886
2925
  function LoginModal({
2887
2926
  isOpen = false,
2888
2927
  width = 480,
2889
2928
  ...props
2890
2929
  }) {
2891
2930
  const { isLogin } = useUserInfo();
2892
- return /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
2931
+ return /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
2893
2932
  Modal,
2894
2933
  {
2895
2934
  isOpen: isOpen && !isLogin,
2896
2935
  width,
2897
- children: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(LoginPanel, { ...props, inModal: true })
2936
+ children: /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(LoginPanel, { ...props, inModal: true })
2898
2937
  }
2899
2938
  );
2900
2939
  }
@@ -2903,10 +2942,10 @@ function LoginModal({
2903
2942
  var import_react21 = require("react");
2904
2943
 
2905
2944
  // src/assets/icon/ProfileIcon.tsx
2906
- var import_jsx_runtime65 = require("react/jsx-runtime");
2945
+ var import_jsx_runtime66 = require("react/jsx-runtime");
2907
2946
  function ProfileIcon({ size = 24, color = "black", ...props }) {
2908
- return /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("svg", { width: size, height: size, viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [
2909
- /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
2947
+ 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: [
2948
+ /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
2910
2949
  "path",
2911
2950
  {
2912
2951
  fillRule: "evenodd",
@@ -2915,7 +2954,7 @@ function ProfileIcon({ size = 24, color = "black", ...props }) {
2915
2954
  fill: color
2916
2955
  }
2917
2956
  ),
2918
- /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
2957
+ /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
2919
2958
  "path",
2920
2959
  {
2921
2960
  fillRule: "evenodd",
@@ -2929,7 +2968,7 @@ function ProfileIcon({ size = 24, color = "black", ...props }) {
2929
2968
 
2930
2969
  // src/components/UserPopover/index.tsx
2931
2970
  var import_react_intl10 = require("react-intl");
2932
- var import_jsx_runtime66 = require("react/jsx-runtime");
2971
+ var import_jsx_runtime67 = require("react/jsx-runtime");
2933
2972
  function UserContent() {
2934
2973
  const { logout, address, username } = useUserInfo();
2935
2974
  const [logouting, setLogouting] = (0, import_react21.useState)(false);
@@ -2950,34 +2989,34 @@ function UserContent() {
2950
2989
  rightIcon,
2951
2990
  onClick
2952
2991
  }) => {
2953
- return /* @__PURE__ */ (0, import_jsx_runtime66.jsxs)("div", { className: "matchid-user-popover-item", onClick, children: [
2954
- /* @__PURE__ */ (0, import_jsx_runtime66.jsxs)("div", { className: `matchid-user-popover-item-content`, children: [
2992
+ return /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)("div", { className: "matchid-user-popover-item", onClick, children: [
2993
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)("div", { className: `matchid-user-popover-item-content`, children: [
2955
2994
  icon,
2956
- /* @__PURE__ */ (0, import_jsx_runtime66.jsx)("div", { className: "matchid-user-popover-item-text", children })
2995
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("div", { className: "matchid-user-popover-item-text", children })
2957
2996
  ] }),
2958
2997
  rightIcon
2959
2998
  ] });
2960
2999
  };
2961
3000
  const UserDivider = () => {
2962
- return /* @__PURE__ */ (0, import_jsx_runtime66.jsx)("div", { className: `matchid-user-popover-divider` });
3001
+ return /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("div", { className: `matchid-user-popover-divider` });
2963
3002
  };
2964
3003
  const [usernameOpen, setUsernameOpen] = (0, import_react21.useState)(false);
2965
3004
  const [copied, setCopied] = useCopyClipboard();
2966
3005
  const intl = (0, import_react_intl10.useIntl)();
2967
- return /* @__PURE__ */ (0, import_jsx_runtime66.jsxs)("div", { className: "matchid-user-popover-content", children: [
2968
- /* @__PURE__ */ (0, import_jsx_runtime66.jsxs)("div", { className: "matchid-user-popover-list", children: [
2969
- /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(UserItem, { onClick: () => {
3006
+ return /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)("div", { className: "matchid-user-popover-content", children: [
3007
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)("div", { className: "matchid-user-popover-list", children: [
3008
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(UserItem, { onClick: () => {
2970
3009
  setCopied(address);
2971
- }, icon: copied ? /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(CheckIcon, { size: 20, color: "#0ecb81" }) : /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(CopyIcon, { size: 20, color: "var(--icon-color)" }), rightIcon: /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(CheckIcon, { size: 20, color: "var(--icon-color)" }), children: truncateAddress(address) }),
2972
- /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(UserDivider, {}),
2973
- /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(UserItem, { onClick: () => {
3010
+ }, 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) }),
3011
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(UserDivider, {}),
3012
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(UserItem, { onClick: () => {
2974
3013
  setUsernameOpen(true);
2975
- }, icon: /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(ProfileIcon, { size: 20, color: "var(--icon-color)" }), rightIcon: /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(ArrowRightIcon, { size: 20, color: "var(--icon-color)" }), children: username || intl.formatMessage({
3014
+ }, 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({
2976
3015
  id: "setUsername"
2977
3016
  }) })
2978
3017
  ] }),
2979
- /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(Button, { onClick: onLogout, loading: logouting, children: /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(import_react_intl10.FormattedMessage, { id: "disconnect" }) }),
2980
- /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(UsernameModal, { isOpen: usernameOpen, onClose: () => {
3018
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(Button, { onClick: onLogout, loading: logouting, children: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(import_react_intl10.FormattedMessage, { id: "disconnect" }) }),
3019
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(UsernameModal, { isOpen: usernameOpen, onClose: () => {
2981
3020
  setUsernameOpen(false);
2982
3021
  }, onSuccess: () => {
2983
3022
  setUsernameOpen(false);
@@ -2988,12 +3027,12 @@ function UserPopover({
2988
3027
  children,
2989
3028
  ...props
2990
3029
  }) {
2991
- return /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(Popover, { ...props, content: /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(UserContent, {}), children });
3030
+ return /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(Popover, { ...props, content: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(UserContent, {}), children });
2992
3031
  }
2993
3032
 
2994
3033
  // src/components/LoginButton/index.tsx
2995
3034
  var import_react_intl11 = require("react-intl");
2996
- var import_jsx_runtime67 = require("react/jsx-runtime");
3035
+ var import_jsx_runtime68 = require("react/jsx-runtime");
2997
3036
  function LoginButton({
2998
3037
  loginRender,
2999
3038
  methods,
@@ -3009,8 +3048,8 @@ function LoginButton({
3009
3048
  const { isLogin, username } = useUserInfo();
3010
3049
  const [loginOpen, setLoginOpen] = (0, import_react22.useState)(false);
3011
3050
  if (!isLogin) {
3012
- return /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)(import_jsx_runtime67.Fragment, { children: [
3013
- /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(
3051
+ return /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)(import_jsx_runtime68.Fragment, { children: [
3052
+ /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(
3014
3053
  LoginModal,
3015
3054
  {
3016
3055
  methods,
@@ -3020,15 +3059,15 @@ function LoginButton({
3020
3059
  onClose: () => setLoginOpen(false)
3021
3060
  }
3022
3061
  ),
3023
- /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)(Button, { className: "matchid-unlogin-btn", ...props, highlight: true, onClick: () => setLoginOpen(true), children: [
3024
- /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(UnLoginIcon_default, {}),
3025
- /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("span", { children: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(import_react_intl11.FormattedMessage, { id: "login" }) })
3062
+ /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)(Button, { className: "matchid-unlogin-btn", ...props, highlight: true, onClick: () => setLoginOpen(true), children: [
3063
+ /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(UnLoginIcon_default, {}),
3064
+ /* @__PURE__ */ (0, import_jsx_runtime68.jsx)("span", { children: /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(import_react_intl11.FormattedMessage, { id: "login" }) })
3026
3065
  ] })
3027
3066
  ] });
3028
3067
  }
3029
- return loginRender ? /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(import_jsx_runtime67.Fragment, { children: loginRender }) : /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(UserPopover, { position: popoverPosition, type: popoverType, gap: popoverGap, children: /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)(Button, { onClick: onLoginClick, className: "matchid-login-btn", ...props, children: [
3030
- /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(LoginIcon_default, {}),
3031
- /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("span", { children: username ? truncateAddress(username) : "MatchID " + intl.formatMessage({
3068
+ 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: [
3069
+ /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(LoginIcon_default, {}),
3070
+ /* @__PURE__ */ (0, import_jsx_runtime68.jsx)("span", { children: username ? truncateAddress(username) : "MatchID " + intl.formatMessage({
3032
3071
  id: "user"
3033
3072
  }) })
3034
3073
  ] }) });
@@ -3038,14 +3077,14 @@ function LoginButton({
3038
3077
  var import_react23 = require("react");
3039
3078
 
3040
3079
  // src/assets/icon/InfoRoundIcon.tsx
3041
- var import_jsx_runtime68 = require("react/jsx-runtime");
3080
+ var import_jsx_runtime69 = require("react/jsx-runtime");
3042
3081
  function InfoRoundIcon({
3043
3082
  size,
3044
3083
  color = "#6E6E6E",
3045
3084
  ...props
3046
3085
  }) {
3047
- return /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)("svg", { width: size, height: size, viewBox: "0 0 16 16", fill: "none", xmlns: "http://www.w3.org/2000/svg", ...props, children: [
3048
- /* @__PURE__ */ (0, import_jsx_runtime68.jsx)("g", { clipPath: "url(#clip0_418_7746)", children: /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(
3086
+ 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: [
3087
+ /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("g", { clipPath: "url(#clip0_418_7746)", children: /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
3049
3088
  "path",
3050
3089
  {
3051
3090
  fillRule: "evenodd",
@@ -3054,21 +3093,21 @@ function InfoRoundIcon({
3054
3093
  fill: color
3055
3094
  }
3056
3095
  ) }),
3057
- /* @__PURE__ */ (0, import_jsx_runtime68.jsx)("defs", { children: /* @__PURE__ */ (0, import_jsx_runtime68.jsx)("clipPath", { id: "clip0_418_7746", children: /* @__PURE__ */ (0, import_jsx_runtime68.jsx)("rect", { width: "16", height: "16", fill: "white" }) }) })
3096
+ /* @__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" }) }) })
3058
3097
  ] });
3059
3098
  }
3060
3099
 
3061
3100
  // src/components/UsernameModal/index.tsx
3062
3101
  var import_react_intl12 = require("react-intl");
3063
- var import_jsx_runtime69 = require("react/jsx-runtime");
3102
+ var import_jsx_runtime70 = require("react/jsx-runtime");
3064
3103
  var ValidItem = ({
3065
3104
  success = false,
3066
3105
  text
3067
3106
  }) => {
3068
3107
  const isDownMd = useDownMd();
3069
- return /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)("div", { className: `matchid-valid-status-item matchid-valid-status-${success ? "success" : "error"}`, children: [
3070
- success ? /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(CheckRoundIcon, { size: isDownMd ? 12 : 16 }) : /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(InfoRoundIcon, { size: isDownMd ? 12 : 16 }),
3071
- /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("span", { children: text })
3108
+ return /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)("div", { className: `matchid-valid-status-item matchid-valid-status-${success ? "success" : "error"}`, children: [
3109
+ success ? /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(CheckRoundIcon, { size: isDownMd ? 12 : 16 }) : /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(InfoRoundIcon, { size: isDownMd ? 12 : 16 }),
3110
+ /* @__PURE__ */ (0, import_jsx_runtime70.jsx)("span", { children: text })
3072
3111
  ] });
3073
3112
  };
3074
3113
  function UsernameModal({
@@ -3116,12 +3155,12 @@ function UsernameModal({
3116
3155
  }
3117
3156
  };
3118
3157
  const intl = (0, import_react_intl12.useIntl)();
3119
- return /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(ModalWithHeader, { isOpen: isOpen && isLogin, ...props, title: title || intl.formatMessage({
3158
+ return /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(ModalWithHeader, { isOpen: isOpen && isLogin, ...props, title: title || intl.formatMessage({
3120
3159
  id: username ? "editUsernameTitle" : "setUsernameTitle"
3121
- }), children: /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)("div", { className: "matchid-username-box", children: [
3122
- /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(Field, { label: intl.formatMessage({
3160
+ }), children: /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)("div", { className: "matchid-username-box", children: [
3161
+ /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(Field, { label: intl.formatMessage({
3123
3162
  id: "username"
3124
- }), error, children: /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
3163
+ }), error, children: /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
3125
3164
  Input,
3126
3165
  {
3127
3166
  placeholder: intl.formatMessage({
@@ -3134,8 +3173,8 @@ function UsernameModal({
3134
3173
  value: val
3135
3174
  }
3136
3175
  ) }),
3137
- /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)("div", { className: "matchid-valid", children: [
3138
- /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
3176
+ /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)("div", { className: "matchid-valid", children: [
3177
+ /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
3139
3178
  ValidItem,
3140
3179
  {
3141
3180
  success: isValid,
@@ -3144,16 +3183,16 @@ function UsernameModal({
3144
3183
  })
3145
3184
  }
3146
3185
  ),
3147
- /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(ValidItem, { success: isLength, text: intl.formatMessage({
3186
+ /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(ValidItem, { success: isLength, text: intl.formatMessage({
3148
3187
  id: "usernameLengthError"
3149
3188
  }) })
3150
3189
  ] }),
3151
- /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(Button, { disabled: !isSafe, loading: isSubmitting, style: {
3190
+ /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(Button, { disabled: !isSafe, loading: isSubmitting, style: {
3152
3191
  marginTop: isDownMd ? "36px" : "64px"
3153
- }, onClick: onSubmit, size: "lg", block: true, highlight: true, children: /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(import_react_intl12.FormattedMessage, { id: "confirm" }) }),
3154
- /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(Button, { style: {
3192
+ }, onClick: onSubmit, size: "lg", block: true, highlight: true, children: /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(import_react_intl12.FormattedMessage, { id: "confirm" }) }),
3193
+ /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(Button, { style: {
3155
3194
  marginTop: isDownMd ? "12px" : "24px"
3156
- }, onClick: props.onClose, size: "lg", block: true, children: /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(import_react_intl12.FormattedMessage, { id: "cancel" }) })
3195
+ }, onClick: props.onClose, size: "lg", block: true, children: /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(import_react_intl12.FormattedMessage, { id: "cancel" }) })
3157
3196
  ] }) });
3158
3197
  }
3159
3198
 
@@ -3187,7 +3226,7 @@ var walletConnectImage = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQAAAAEA
3187
3226
  var walletSigningImage = "data:image/png;base64,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";
3188
3227
 
3189
3228
  // src/components/WalletModalContent/index.tsx
3190
- var import_jsx_runtime70 = require("react/jsx-runtime");
3229
+ var import_jsx_runtime71 = require("react/jsx-runtime");
3191
3230
  function WalletModalContent({
3192
3231
  status,
3193
3232
  error,
@@ -3257,12 +3296,12 @@ function WalletModalContent({
3257
3296
  statusImage: walletConnectImage
3258
3297
  };
3259
3298
  }, [visible, connected, status, error, address]);
3260
- return /* @__PURE__ */ (0, import_jsx_runtime70.jsx)("div", { className: "matchid-wallet-container", children: /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)("div", { className: `matchid-wallet-box`, children: [
3261
- /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)("div", { className: `matchid-wallet-content`, children: [
3262
- /* @__PURE__ */ (0, import_jsx_runtime70.jsx)("img", { src: pageData.statusImage }),
3263
- /* @__PURE__ */ (0, import_jsx_runtime70.jsx)("div", { className: pageData.isError ? "text-[#F7585E]" : "", children: pageData.text })
3299
+ 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: [
3300
+ /* @__PURE__ */ (0, import_jsx_runtime71.jsxs)("div", { className: `matchid-wallet-content`, children: [
3301
+ /* @__PURE__ */ (0, import_jsx_runtime71.jsx)("img", { src: pageData.statusImage }),
3302
+ /* @__PURE__ */ (0, import_jsx_runtime71.jsx)("div", { className: pageData.isError ? "text-[#F7585E]" : "", children: pageData.text })
3264
3303
  ] }),
3265
- /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
3304
+ /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(
3266
3305
  Button,
3267
3306
  {
3268
3307
  block: true,
@@ -3277,7 +3316,7 @@ function WalletModalContent({
3277
3316
  }
3278
3317
 
3279
3318
  // src/components/SOLModal/index.tsx
3280
- var import_jsx_runtime71 = require("react/jsx-runtime");
3319
+ var import_jsx_runtime72 = require("react/jsx-runtime");
3281
3320
  function WalletContent({
3282
3321
  onSuccess,
3283
3322
  type
@@ -3359,7 +3398,7 @@ function WalletContent({
3359
3398
  statusRef.current = "";
3360
3399
  }
3361
3400
  };
3362
- return /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(
3401
+ return /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
3363
3402
  WalletModalContent,
3364
3403
  {
3365
3404
  connected: wallet.connected,
@@ -3420,14 +3459,14 @@ function SOLConnectModal({
3420
3459
  ...props
3421
3460
  }) {
3422
3461
  const intl = (0, import_react_intl13.useIntl)();
3423
- return /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(ModalWithHeader, { ...props, title: props.title || intl.formatMessage({
3462
+ return /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(ModalWithHeader, { ...props, title: props.title || intl.formatMessage({
3424
3463
  id: type == "bind" ? "bindWith" : "loginWith"
3425
3464
  }, {
3426
3465
  name: "SOL"
3427
- }), children: /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(import_wallet_adapter_react.ConnectionProvider, { endpoint: (0, import_web3.clusterApiUrl)("devnet"), children: /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(import_wallet_adapter_react.WalletProvider, { wallets, autoConnect: true, children: /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(import_wallet_adapter_react_ui.WalletModalProvider, { children: /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(WalletContent, { onSuccess, type }) }) }) }) });
3466
+ }), 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 }) }) }) }) });
3428
3467
  }
3429
3468
  function SOLModal(props) {
3430
- return props.isOpen && /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(SOLConnectModal, { ...props });
3469
+ return props.isOpen && /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(SOLConnectModal, { ...props });
3431
3470
  }
3432
3471
 
3433
3472
  // src/components/TRONModal/index.tsx
@@ -3542,7 +3581,7 @@ var useTRONWallet = () => {
3542
3581
  };
3543
3582
 
3544
3583
  // src/components/TRONModal/index.tsx
3545
- var import_jsx_runtime72 = require("react/jsx-runtime");
3584
+ var import_jsx_runtime73 = require("react/jsx-runtime");
3546
3585
  function TRONConnectModal({
3547
3586
  type = "login",
3548
3587
  onSuccess,
@@ -3552,9 +3591,9 @@ function TRONConnectModal({
3552
3591
  const intl = (0, import_react_intl14.useIntl)();
3553
3592
  const { wallets: wallets2, installedWallets, chooseWallet, wallet, address, onConnect } = useTRONWallet();
3554
3593
  const iconMaps = {
3555
- tronlink: /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(TronLinkIcon, { size: isDownMd ? 36 : 40 }),
3556
- bitget: /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(BitgetIcon, { size: isDownMd ? 36 : 40 }),
3557
- okx: /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(OKXIcon, { size: isDownMd ? 36 : 40 })
3594
+ tronlink: /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(TronLinkIcon, { size: isDownMd ? 36 : 40 }),
3595
+ bitget: /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(BitgetIcon, { size: isDownMd ? 36 : 40 }),
3596
+ okx: /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(OKXIcon, { size: isDownMd ? 36 : 40 })
3558
3597
  };
3559
3598
  const { events, login } = useMatch();
3560
3599
  const [status, setStatus] = (0, import_react27.useState)("");
@@ -3646,11 +3685,11 @@ function TRONConnectModal({
3646
3685
  disconnect();
3647
3686
  }
3648
3687
  }, [props.isOpen]);
3649
- return /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(ModalWithHeader, { ...props, title: props.title || intl.formatMessage({
3688
+ return /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(ModalWithHeader, { ...props, title: props.title || intl.formatMessage({
3650
3689
  id: type == "bind" ? "bindWith" : "loginWith"
3651
3690
  }, {
3652
3691
  name: "TRON"
3653
- }), onBack: wallet ? onBack : void 0, children: wallet ? /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
3692
+ }), onBack: wallet ? onBack : void 0, children: wallet ? /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
3654
3693
  WalletModalContent,
3655
3694
  {
3656
3695
  error,
@@ -3663,9 +3702,9 @@ function TRONConnectModal({
3663
3702
  setVisible: () => {
3664
3703
  }
3665
3704
  }
3666
- ) : /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("div", { className: "matchid-login-box", children: /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)("div", { className: "matchid-login-recommend-list", children: [
3705
+ ) : /* @__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: [
3667
3706
  installedWallets.map((wallet2) => {
3668
- return /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
3707
+ return /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
3669
3708
  RecommendItem,
3670
3709
  {
3671
3710
  icon: iconMaps[wallet2.walletKey],
@@ -3678,14 +3717,14 @@ function TRONConnectModal({
3678
3717
  );
3679
3718
  }),
3680
3719
  wallets2.filter((wallet2) => !installedWallets.find((installedWallet) => installedWallet.walletKey == wallet2.walletKey)).map((wallet2) => {
3681
- return /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
3720
+ return /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
3682
3721
  RecommendItem,
3683
3722
  {
3684
3723
  icon: iconMaps[wallet2.walletKey],
3685
3724
  name: wallet2.name,
3686
3725
  onClick: () => {
3687
3726
  },
3688
- footer: /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(Button, { size: "sm", onClick: () => {
3727
+ footer: /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(Button, { size: "sm", onClick: () => {
3689
3728
  window.open(wallet2.website);
3690
3729
  }, children: "Install" })
3691
3730
  },
@@ -3695,14 +3734,14 @@ function TRONConnectModal({
3695
3734
  ] }) }) });
3696
3735
  }
3697
3736
  function TRONModal(props) {
3698
- return props.isOpen && /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(TRONConnectModal, { ...props, type: "" });
3737
+ return props.isOpen && /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(TRONConnectModal, { ...props, type: "" });
3699
3738
  }
3700
3739
 
3701
3740
  // src/components/TONModal/index.tsx
3702
3741
  var import_react28 = __toESM(require("react"));
3703
3742
  var import_react_intl15 = require("react-intl");
3704
3743
  var import_ui_react = require("@tonconnect/ui-react");
3705
- var import_jsx_runtime73 = require("react/jsx-runtime");
3744
+ var import_jsx_runtime74 = require("react/jsx-runtime");
3706
3745
  function WalletContent2({
3707
3746
  onSuccess,
3708
3747
  type
@@ -3829,7 +3868,7 @@ function WalletContent2({
3829
3868
  }
3830
3869
  }
3831
3870
  }, [state]);
3832
- return /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
3871
+ return /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(
3833
3872
  WalletModalContent,
3834
3873
  {
3835
3874
  connected,
@@ -3863,20 +3902,20 @@ function TONConnectModal({
3863
3902
  const intl = (0, import_react_intl15.useIntl)();
3864
3903
  const { endpoints, appid } = useLocalStore_default();
3865
3904
  const manifestUrl = `${endpoints.back}api/v1/wallet/ton?appid=${appid}&url=` + encodeURIComponent(window.location.origin);
3866
- return /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(ModalWithHeader, { ...props, title: props.title || intl.formatMessage({
3905
+ return /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(ModalWithHeader, { ...props, title: props.title || intl.formatMessage({
3867
3906
  id: type == "bind" ? "bindWith" : "loginWith"
3868
3907
  }, {
3869
3908
  name: "TON"
3870
- }), children: /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
3909
+ }), children: /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(
3871
3910
  import_ui_react.TonConnectUIProvider,
3872
3911
  {
3873
3912
  manifestUrl,
3874
- children: /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(WalletContent2, { onSuccess, type })
3913
+ children: /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(WalletContent2, { onSuccess, type })
3875
3914
  }
3876
3915
  ) });
3877
3916
  }
3878
3917
  function TONModal(props) {
3879
- return props.isOpen && /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(TONConnectModal, { ...props });
3918
+ return props.isOpen && /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(TONConnectModal, { ...props });
3880
3919
  }
3881
3920
 
3882
3921
  // src/components/BTCModal/index.tsx
@@ -4064,7 +4103,7 @@ var useBTCWallet = () => {
4064
4103
  };
4065
4104
 
4066
4105
  // src/components/BTCModal/index.tsx
4067
- var import_jsx_runtime74 = require("react/jsx-runtime");
4106
+ var import_jsx_runtime75 = require("react/jsx-runtime");
4068
4107
  function BTCConnectModal({
4069
4108
  type = "login",
4070
4109
  onSuccess,
@@ -4074,9 +4113,9 @@ function BTCConnectModal({
4074
4113
  const intl = (0, import_react_intl16.useIntl)();
4075
4114
  const { wallets: wallets2, installedWallets, chooseWallet, wallet, address, onConnect } = useBTCWallet();
4076
4115
  const iconMaps = {
4077
- leather: /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(LeatherIcon, { size: isDownMd ? 36 : 40 }),
4078
- unisat: /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(UnisatIcon, { size: isDownMd ? 36 : 40 }),
4079
- xverse: /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(XverseIcon, { size: isDownMd ? 36 : 40 })
4116
+ leather: /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(LeatherIcon, { size: isDownMd ? 36 : 40 }),
4117
+ unisat: /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(UnisatIcon, { size: isDownMd ? 36 : 40 }),
4118
+ xverse: /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(XverseIcon, { size: isDownMd ? 36 : 40 })
4080
4119
  };
4081
4120
  const { events, login } = useMatch();
4082
4121
  const [status, setStatus] = (0, import_react30.useState)("");
@@ -4176,11 +4215,11 @@ function BTCConnectModal({
4176
4215
  statusRef.current = "";
4177
4216
  setError("");
4178
4217
  };
4179
- return /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(ModalWithHeader, { ...props, title: props.title || intl.formatMessage({
4218
+ return /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(ModalWithHeader, { ...props, title: props.title || intl.formatMessage({
4180
4219
  id: type == "bind" ? "bindWith" : "loginWith"
4181
4220
  }, {
4182
4221
  name: "BTC"
4183
- }), onBack: wallet ? onBack : void 0, children: wallet ? /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(
4222
+ }), onBack: wallet ? onBack : void 0, children: wallet ? /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(
4184
4223
  WalletModalContent,
4185
4224
  {
4186
4225
  error,
@@ -4193,9 +4232,9 @@ function BTCConnectModal({
4193
4232
  setVisible: () => {
4194
4233
  }
4195
4234
  }
4196
- ) : /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("div", { className: "matchid-login-box", children: /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)("div", { className: "matchid-login-recommend-list", children: [
4235
+ ) : /* @__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: [
4197
4236
  installedWallets.map((wallet2) => {
4198
- return /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(
4237
+ return /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(
4199
4238
  RecommendItem,
4200
4239
  {
4201
4240
  icon: iconMaps[wallet2.walletKey],
@@ -4208,14 +4247,14 @@ function BTCConnectModal({
4208
4247
  );
4209
4248
  }),
4210
4249
  wallets2.filter((wallet2) => !installedWallets.find((installedWallet) => installedWallet.walletKey == wallet2.walletKey)).map((wallet2) => {
4211
- return /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(
4250
+ return /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(
4212
4251
  RecommendItem,
4213
4252
  {
4214
4253
  icon: iconMaps[wallet2.walletKey],
4215
4254
  name: wallet2.name,
4216
4255
  onClick: () => {
4217
4256
  },
4218
- footer: /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(Button, { size: "sm", onClick: () => {
4257
+ footer: /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(Button, { size: "sm", onClick: () => {
4219
4258
  window.open(wallet2.website);
4220
4259
  }, children: "Install" })
4221
4260
  },
@@ -4225,7 +4264,41 @@ function BTCConnectModal({
4225
4264
  ] }) }) });
4226
4265
  }
4227
4266
  function BTCModal(props) {
4228
- return props.isOpen && /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(BTCConnectModal, { ...props });
4267
+ return props.isOpen && /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(BTCConnectModal, { ...props });
4268
+ }
4269
+
4270
+ // src/components/WalletModal/index.tsx
4271
+ var import_react_intl17 = require("react-intl");
4272
+ var import_jsx_runtime76 = require("react/jsx-runtime");
4273
+ function WalletConnectModal({
4274
+ type,
4275
+ methods = DEFAULT_WALLET_METHODS,
4276
+ ...props
4277
+ }) {
4278
+ const intl = (0, import_react_intl17.useIntl)();
4279
+ const { walletMap } = useWalletConfig();
4280
+ const { bind, login } = useUserInfo();
4281
+ return /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(ModalWithHeader, { ...props, title: props.title || intl.formatMessage({
4282
+ id: type == "bind" ? "bindWith" : "loginWith"
4283
+ }, {
4284
+ name: ""
4285
+ }), 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) => {
4286
+ const m = walletMap[method];
4287
+ return /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(
4288
+ RecommendItem,
4289
+ {
4290
+ icon: m?.icon,
4291
+ name: m?.name,
4292
+ onClick: () => {
4293
+ type == "bind" ? bind(method) : login(method);
4294
+ }
4295
+ },
4296
+ method
4297
+ );
4298
+ }) }) }) });
4299
+ }
4300
+ function WalletModal(props) {
4301
+ return props.isOpen && /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(WalletConnectModal, { ...props });
4229
4302
  }
4230
4303
  // Annotate the CommonJS export names for ESM import in node:
4231
4304
  0 && (module.exports = {
@@ -4246,6 +4319,7 @@ function BTCModal(props) {
4246
4319
  SOLModal,
4247
4320
  TONModal,
4248
4321
  TRONModal,
4249
- UsernameModal
4322
+ UsernameModal,
4323
+ WalletModal
4250
4324
  });
4251
4325
  //# sourceMappingURL=index.js.map