@matchain/matchid-sdk-react 0.1.42-alpha.16 → 0.1.42-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 (71) 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-WCS3X2LC.mjs → chunk-2YN5Y3SM.mjs} +2 -2
  4. package/dist/chunk-PZPEWHBV.mjs +4251 -0
  5. package/dist/chunk-PZPEWHBV.mjs.map +1 -0
  6. package/dist/components/index.d.mts +2 -3
  7. package/dist/components/index.d.ts +2 -3
  8. package/dist/components/index.js +486 -770
  9. package/dist/components/index.js.map +1 -1
  10. package/dist/components/index.mjs +3 -8
  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 +78 -137
  14. package/dist/hooks/api/index.js.map +1 -1
  15. package/dist/hooks/api/index.mjs +2 -3
  16. package/dist/hooks/index.d.mts +2 -5
  17. package/dist/hooks/index.d.ts +2 -5
  18. package/dist/hooks/index.js +158 -362
  19. package/dist/hooks/index.js.map +1 -1
  20. package/dist/hooks/index.mjs +1 -2
  21. package/dist/index-B4YpKSY3.d.ts +94 -0
  22. package/dist/{index-CLvQH5gM.d.ts → index-CxY3u9Rv.d.ts} +12 -32
  23. package/dist/{index-DlhAHm_s.d.mts → index-DCReY5T2.d.mts} +12 -32
  24. package/dist/{index-Ca9nh_8s.d.ts → index-DbjibQ5d.d.mts} +1 -1
  25. package/dist/{index-DFZpfAfc.d.mts → index-GcpJCj6O.d.ts} +1 -1
  26. package/dist/index-_k6h9w0P.d.mts +94 -0
  27. package/dist/index.css +4 -84
  28. package/dist/index.d.mts +5 -9
  29. package/dist/index.d.ts +5 -9
  30. package/dist/index.js +669 -1183
  31. package/dist/index.js.map +1 -1
  32. package/dist/index.mjs +2 -6
  33. package/dist/types.d-DwF-Pkvh.d.mts +179 -0
  34. package/dist/types.d-DwF-Pkvh.d.ts +179 -0
  35. package/example/package.json +0 -1
  36. package/example/src/App.tsx +28 -54
  37. package/example/src/components/Login/index.tsx +2 -2
  38. package/example/src/components/RoutePrivate/index.tsx +3 -4
  39. package/example/src/config/index.ts +2 -7
  40. package/example/src/pages/{User/index.tsx → User.tsx} +84 -55
  41. package/example/src/pages/Wallet.tsx +43 -258
  42. package/example/tsconfig.json +0 -1
  43. package/package.json +2 -7
  44. package/dist/chunk-SQIJR7RA.mjs +0 -29
  45. package/dist/chunk-SQIJR7RA.mjs.map +0 -1
  46. package/dist/chunk-UCIEZ3XI.mjs +0 -4747
  47. package/dist/chunk-UCIEZ3XI.mjs.map +0 -1
  48. package/dist/index-Bluim2ZP.d.mts +0 -143
  49. package/dist/index-BxS06a5O.d.ts +0 -50
  50. package/dist/index-EqksEEto.d.ts +0 -143
  51. package/dist/index-q5XDobUF.d.mts +0 -50
  52. package/dist/mpc-CTbBWHld.d.mts +0 -20
  53. package/dist/mpc-CTbBWHld.d.ts +0 -20
  54. package/dist/types/index.d.mts +0 -3
  55. package/dist/types/index.d.ts +0 -3
  56. package/dist/types/index.js +0 -44
  57. package/dist/types/index.js.map +0 -1
  58. package/dist/types/index.mjs +0 -10
  59. package/dist/types/index.mjs.map +0 -1
  60. package/dist/types-CVwZEgQ0.d.mts +0 -244
  61. package/dist/types-CVwZEgQ0.d.ts +0 -244
  62. package/example/src/abi/erc20.json +0 -222
  63. package/example/src/components/ButtonGroup/index.tsx +0 -10
  64. package/example/src/config/chains/index.ts +0 -2
  65. package/example/src/config/chains/matchMain.ts +0 -27
  66. package/example/src/config/chains/matchTest.ts +0 -33
  67. package/example/src/pages/User/components/BindListModal.tsx +0 -10
  68. package/example/src/pages/User/components/PohListModal.tsx +0 -10
  69. package/example/src/pages/User/components/QueryDisplay.tsx +0 -25
  70. package/example/src/store/useLocalStore.ts +0 -51
  71. /package/dist/{chunk-WCS3X2LC.mjs.map → chunk-2YN5Y3SM.mjs.map} +0 -0
@@ -41,19 +41,17 @@ __export(components_exports, {
41
41
  LoginPanel: () => LoginPanel,
42
42
  Modal: () => Modal,
43
43
  ModalWithHeader: () => ModalWithHeader,
44
- Overlay: () => Overlay,
45
44
  PasswordModal: () => PasswordModal,
46
45
  Popover: () => Popover,
47
46
  SOLModal: () => SOLModal,
48
47
  TONModal: () => TONModal,
49
48
  TRONModal: () => TRONModal,
50
- UsernameModal: () => UsernameModal,
51
- WalletModal: () => WalletModal
49
+ UsernameModal: () => UsernameModal
52
50
  });
53
51
  module.exports = __toCommonJS(components_exports);
54
52
 
55
53
  // src/components/EmailModal/index.tsx
56
- var import_react18 = require("react");
54
+ var import_react15 = require("react");
57
55
 
58
56
  // src/assets/icon/ArrowLeftIcon.tsx
59
57
  var import_jsx_runtime = require("react/jsx-runtime");
@@ -1125,24 +1123,15 @@ function useDownMd() {
1125
1123
  return isBelowMd;
1126
1124
  }
1127
1125
 
1128
- // src/components/Overlay/index.tsx
1129
- var import_react2 = require("react");
1126
+ // src/components/Modal/index.tsx
1130
1127
  var import_jsx_runtime44 = require("react/jsx-runtime");
1131
- function Overlay({
1132
- isOpen = false,
1128
+ function Modal({
1133
1129
  children,
1134
- zIndex = 100
1130
+ isOpen,
1131
+ width = 480,
1132
+ zIndex = 100,
1133
+ className = ""
1135
1134
  }) {
1136
- (0, import_react2.useEffect)(() => {
1137
- if (isOpen) {
1138
- document.body.style.overflow = "hidden";
1139
- } else {
1140
- document.body.style.overflow = "";
1141
- }
1142
- return () => {
1143
- document.body.style.overflow = "";
1144
- };
1145
- }, [isOpen]);
1146
1135
  return isOpen ? /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
1147
1136
  "div",
1148
1137
  {
@@ -1150,27 +1139,15 @@ function Overlay({
1150
1139
  style: {
1151
1140
  zIndex
1152
1141
  },
1153
- children
1142
+ children: /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)("div", { className: `matchid-modal ${className}`, style: {
1143
+ width
1144
+ }, children: [
1145
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsx)("div", { className: "matchid-modal-mobile-header" }),
1146
+ children
1147
+ ] })
1154
1148
  }
1155
1149
  ) : /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(import_jsx_runtime44.Fragment, {});
1156
1150
  }
1157
-
1158
- // src/components/Modal/index.tsx
1159
- var import_jsx_runtime45 = require("react/jsx-runtime");
1160
- function Modal({
1161
- children,
1162
- isOpen,
1163
- width = 480,
1164
- zIndex = 100,
1165
- className = ""
1166
- }) {
1167
- return /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(Overlay, { isOpen, zIndex, children: /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)("div", { className: `matchid-modal ${className}`, style: {
1168
- width
1169
- }, children: [
1170
- /* @__PURE__ */ (0, import_jsx_runtime45.jsx)("div", { className: "matchid-modal-mobile-header" }),
1171
- children
1172
- ] }) });
1173
- }
1174
1151
  function ModalWithHeader({
1175
1152
  children,
1176
1153
  onBack,
@@ -1181,24 +1158,24 @@ function ModalWithHeader({
1181
1158
  ...props
1182
1159
  }) {
1183
1160
  const isDownMd = useDownMd();
1184
- return /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)(Modal, { ...props, children: [
1185
- /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)("div", { className: `matchid-modal-header ${showBorder ? "matchid-modal-header-border" : ""}`, children: [
1186
- /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)("div", { className: "matchid-modal-header-content", children: [
1187
- onBack && /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(ArrowLeftIcon, { height: isDownMd ? 20 : 25, width: isDownMd ? 20 : 24, className: "matchid-modal-header-back", onClick: onBack }),
1188
- /* @__PURE__ */ (0, import_jsx_runtime45.jsx)("span", { className: "matchid-modal-header-title", children: title })
1161
+ return /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(Modal, { ...props, children: [
1162
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)("div", { className: `matchid-modal-header ${showBorder ? "matchid-modal-header-border" : ""}`, children: [
1163
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)("div", { className: "matchid-modal-header-content", children: [
1164
+ onBack && /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(ArrowLeftIcon, { height: isDownMd ? 20 : 25, width: isDownMd ? 20 : 24, className: "matchid-modal-header-back", onClick: onBack }),
1165
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsx)("span", { className: "matchid-modal-header-title", children: title })
1189
1166
  ] }),
1190
- onClose && /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(CloseRoundIcon, { size: isDownMd ? 24 : 30, className: "matchid-modal-header-close", onClick: onClose })
1167
+ onClose && /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(CloseRoundIcon, { size: isDownMd ? 24 : 30, className: "matchid-modal-header-close", onClick: onClose })
1191
1168
  ] }),
1192
1169
  children
1193
1170
  ] });
1194
1171
  }
1195
1172
 
1196
1173
  // src/components/EmailModal/StepEmail.tsx
1197
- var import_react4 = require("react");
1174
+ var import_react3 = require("react");
1198
1175
 
1199
1176
  // src/utils/index.ts
1200
1177
  var getVersion = () => {
1201
- return "0.0.2";
1178
+ return "0.0.1";
1202
1179
  };
1203
1180
  function encodeBase64(input) {
1204
1181
  return btoa(unescape(encodeURIComponent(input)));
@@ -1222,7 +1199,7 @@ function getAppClientId() {
1222
1199
  }
1223
1200
 
1224
1201
  // src/components/Button/index.tsx
1225
- var import_jsx_runtime46 = require("react/jsx-runtime");
1202
+ var import_jsx_runtime45 = require("react/jsx-runtime");
1226
1203
  function Button({
1227
1204
  size = "df",
1228
1205
  disabled = false,
@@ -1241,7 +1218,7 @@ function Button({
1241
1218
  onClick && onClick();
1242
1219
  }
1243
1220
  };
1244
- return /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
1221
+ return /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(
1245
1222
  "button",
1246
1223
  {
1247
1224
  type,
@@ -1251,14 +1228,14 @@ function Button({
1251
1228
  ...style
1252
1229
  },
1253
1230
  onClick: onAction,
1254
- children: loading ? /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(LoadingIcon_default, { className: "matchid-btn-loading-icon", color: "var(--matchid-btn-loading-color)" }) : children
1231
+ children: loading ? /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(LoadingIcon_default, { className: "matchid-btn-loading-icon", color: "var(--matchid-btn-loading-color)" }) : children
1255
1232
  }
1256
1233
  );
1257
1234
  }
1258
1235
 
1259
1236
  // src/components/Input/index.tsx
1260
- var import_react3 = require("react");
1261
- var import_jsx_runtime47 = require("react/jsx-runtime");
1237
+ var import_react2 = require("react");
1238
+ var import_jsx_runtime46 = require("react/jsx-runtime");
1262
1239
  function Input({
1263
1240
  onChange,
1264
1241
  type,
@@ -1266,19 +1243,19 @@ function Input({
1266
1243
  className = "",
1267
1244
  ...props
1268
1245
  }) {
1269
- const [inputType, setInputType] = (0, import_react3.useState)(type);
1246
+ const [inputType, setInputType] = (0, import_react2.useState)(type);
1270
1247
  const isDownMd = useDownMd();
1271
- return /* @__PURE__ */ (0, import_jsx_runtime47.jsxs)(
1248
+ return /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)(
1272
1249
  "div",
1273
1250
  {
1274
1251
  className: `matchid-input-box ${props.value && props.value.length > 0 ? "matchid-input-has-content" : ""} ${className}`,
1275
1252
  children: [
1276
- /* @__PURE__ */ (0, import_jsx_runtime47.jsx)("input", { type: inputType, onChange, ...props, className: "matchid-input-field" }),
1277
- props.value && props.value.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime47.jsx)("div", { className: "matchid-input-delete-icon", onClick: (e) => {
1253
+ /* @__PURE__ */ (0, import_jsx_runtime46.jsx)("input", { type: inputType, onChange, ...props, className: "matchid-input-field" }),
1254
+ props.value && props.value.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime46.jsx)("div", { className: "matchid-input-delete-icon", onClick: (e) => {
1278
1255
  if (onChange) {
1279
1256
  onChange({ target: { value: "" } });
1280
1257
  }
1281
- }, children: /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
1258
+ }, children: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
1282
1259
  DeleteRoundIcon,
1283
1260
  {
1284
1261
  height: isDownMd ? 16 : 21,
@@ -1286,9 +1263,9 @@ function Input({
1286
1263
  color: "var(--matchid-input-delete-icon-color)"
1287
1264
  }
1288
1265
  ) }),
1289
- type === "password" && /* @__PURE__ */ (0, import_jsx_runtime47.jsx)("div", { className: "matchid-input-eye-icon", onClick: () => {
1266
+ type === "password" && /* @__PURE__ */ (0, import_jsx_runtime46.jsx)("div", { className: "matchid-input-eye-icon", onClick: () => {
1290
1267
  setInputType(inputType === "password" ? "text" : "password");
1291
- }, children: inputType === "password" ? /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(CloseEyeIcon, { size: isDownMd ? 16 : 20 }) : /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(OpenEyeIcon, { size: isDownMd ? 16 : 20 }) }),
1268
+ }, children: inputType === "password" ? /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(CloseEyeIcon, { size: isDownMd ? 16 : 20 }) : /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(OpenEyeIcon, { size: isDownMd ? 16 : 20 }) }),
1292
1269
  after
1293
1270
  ]
1294
1271
  }
@@ -1296,7 +1273,7 @@ function Input({
1296
1273
  }
1297
1274
 
1298
1275
  // src/components/Field/index.tsx
1299
- var import_jsx_runtime48 = require("react/jsx-runtime");
1276
+ var import_jsx_runtime47 = require("react/jsx-runtime");
1300
1277
  function Field({
1301
1278
  label,
1302
1279
  children,
@@ -1304,37 +1281,37 @@ function Field({
1304
1281
  required,
1305
1282
  className = ""
1306
1283
  }) {
1307
- return /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)("div", { className: `matchid-field-box ${className}`, children: [
1308
- /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)("div", { className: "matchid-field-label", children: [
1309
- required && /* @__PURE__ */ (0, import_jsx_runtime48.jsx)("span", { className: "matchid-field-required", children: "*" }),
1284
+ return /* @__PURE__ */ (0, import_jsx_runtime47.jsxs)("div", { className: `matchid-field-box ${className}`, children: [
1285
+ /* @__PURE__ */ (0, import_jsx_runtime47.jsxs)("div", { className: "matchid-field-label", children: [
1286
+ required && /* @__PURE__ */ (0, import_jsx_runtime47.jsx)("span", { className: "matchid-field-required", children: "*" }),
1310
1287
  label
1311
1288
  ] }),
1312
1289
  children,
1313
- error && /* @__PURE__ */ (0, import_jsx_runtime48.jsx)("div", { className: "matchid-field-error", children: error })
1290
+ error && /* @__PURE__ */ (0, import_jsx_runtime47.jsx)("div", { className: "matchid-field-error", children: error })
1314
1291
  ] });
1315
1292
  }
1316
1293
 
1317
1294
  // src/components/EmailModal/StepEmail.tsx
1318
1295
  var import_react_intl = require("react-intl");
1319
- var import_jsx_runtime49 = require("react/jsx-runtime");
1296
+ var import_jsx_runtime48 = require("react/jsx-runtime");
1320
1297
  function StepEmail(props) {
1321
1298
  const intl = (0, import_react_intl.useIntl)();
1322
- const [emailVal, setEmailVal] = (0, import_react4.useState)("");
1323
- (0, import_react4.useEffect)(() => {
1299
+ const [emailVal, setEmailVal] = (0, import_react3.useState)("");
1300
+ (0, import_react3.useEffect)(() => {
1324
1301
  if (props.email) {
1325
1302
  setEmailVal(props.email);
1326
1303
  }
1327
1304
  }, []);
1328
- const canContinue = (0, import_react4.useMemo)(() => {
1305
+ const canContinue = (0, import_react3.useMemo)(() => {
1329
1306
  return isValidEmail(emailVal);
1330
1307
  }, [emailVal]);
1331
1308
  const onContinue = async () => {
1332
1309
  props.onContinue(emailVal);
1333
1310
  };
1334
- return /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)("div", { className: "matchid-email-email-box", children: [
1335
- /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(Field, { label: intl.formatMessage({
1311
+ return /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)("div", { className: "matchid-email-email-box", children: [
1312
+ /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(Field, { label: intl.formatMessage({
1336
1313
  id: "emailAddress"
1337
- }), children: /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
1314
+ }), children: /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
1338
1315
  Input,
1339
1316
  {
1340
1317
  placeholder: intl.formatMessage({
@@ -1344,9 +1321,9 @@ function StepEmail(props) {
1344
1321
  value: emailVal
1345
1322
  }
1346
1323
  ) }),
1347
- /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(Button, { disabled: !canContinue, style: {
1324
+ /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(Button, { disabled: !canContinue, style: {
1348
1325
  marginTop: "64px"
1349
- }, onClick: onContinue, size: "lg", block: true, highlight: true, children: /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(import_react_intl.FormattedMessage, { id: "continue" }) })
1326
+ }, onClick: onContinue, size: "lg", block: true, highlight: true, children: /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(import_react_intl.FormattedMessage, { id: "continue" }) })
1350
1327
  ] });
1351
1328
  }
1352
1329
 
@@ -1394,7 +1371,7 @@ var localStore = useLocalStore;
1394
1371
  var useLocalStore_default = useLocalStore;
1395
1372
 
1396
1373
  // src/hooks/useUserInfo.tsx
1397
- var import_react16 = require("react");
1374
+ var import_react13 = require("react");
1398
1375
 
1399
1376
  // src/api/request.ts
1400
1377
  var import_axios = __toESM(require("axios"));
@@ -1603,16 +1580,16 @@ var toBindWalletApi = ({
1603
1580
  };
1604
1581
 
1605
1582
  // src/MatchContext.tsx
1606
- var import_react15 = require("react");
1583
+ var import_react12 = require("react");
1607
1584
 
1608
1585
  // src/context/BusinessProvider.tsx
1609
- var import_react12 = require("react");
1586
+ var import_react9 = require("react");
1610
1587
 
1611
1588
  // src/components/PasswordModal/index.tsx
1612
- var import_react8 = require("react");
1589
+ var import_react6 = require("react");
1613
1590
 
1614
1591
  // src/hooks/useMatchEvents.ts
1615
- var import_react5 = require("react");
1592
+ var import_react4 = require("react");
1616
1593
 
1617
1594
  // src/hooks/eventManager.ts
1618
1595
  var EventManager = class {
@@ -1642,14 +1619,11 @@ var EventManager = class {
1642
1619
  var eventManager = new EventManager();
1643
1620
  var eventManager_default = eventManager;
1644
1621
 
1645
- // src/hooks/useWallet.tsx
1646
- var import_viem = require("viem");
1647
-
1648
1622
  // src/store/useStore.ts
1649
1623
  var import_zustand2 = require("zustand");
1650
1624
  var useStore = (0, import_zustand2.create)((set) => ({
1651
- walletReady: false,
1652
- setWalletReady: (inited) => set({ walletReady: inited }),
1625
+ walletIframeInited: false,
1626
+ setWalletIframeInited: (inited) => set({ walletIframeInited: inited }),
1653
1627
  recoveryModal: {
1654
1628
  open: false,
1655
1629
  success: async () => {
@@ -1664,396 +1638,149 @@ var useStore_default = useStore;
1664
1638
 
1665
1639
  // src/hooks/useWallet.tsx
1666
1640
  var import_accounts = require("viem/accounts");
1667
- var import_viem2 = require("viem");
1668
- var import_react6 = require("react");
1669
- var import_viem3 = require("viem");
1670
-
1671
- // src/store/useModalStore.ts
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
1717
- var useSOLModalStore = (0, import_zustand3.create)((set) => ({
1718
- isOpen: false,
1719
- type: "",
1720
- open: (type) => set({ isOpen: true, type }),
1721
- close: () => set({ isOpen: false })
1722
- }));
1723
- var useTRONModalStore = (0, import_zustand3.create)((set) => ({
1724
- isOpen: false,
1725
- type: "",
1726
- open: (type) => set({ isOpen: true, type }),
1727
- close: () => set({ isOpen: false })
1728
- }));
1729
- var useTONModalStore = (0, import_zustand3.create)((set) => ({
1730
- isOpen: false,
1731
- type: "",
1732
- open: (type) => set({ isOpen: true, type }),
1733
- close: () => set({ isOpen: false })
1734
- }));
1735
- var useBTCModalStore = (0, import_zustand3.create)((set) => ({
1736
- isOpen: false,
1737
- type: "",
1738
- open: (type) => set({ isOpen: true, type }),
1739
- close: () => set({ isOpen: false })
1740
- }));
1741
- var useCEXBindModalStore = (0, import_zustand3.create)((set) => ({
1742
- type: "",
1743
- isOpen: false,
1744
- open: (type) => set({ isOpen: true, type }),
1745
- close: () => set({ isOpen: false })
1746
- }));
1747
- var useHashPanelStore = (0, import_zustand3.create)((set) => ({
1748
- isOpen: false,
1749
- hash: null,
1750
- chain: null,
1751
- open: (params) => set({
1752
- isOpen: true,
1753
- hash: params?.hash || null,
1754
- chain: params?.chain || null
1755
- }),
1756
- close: () => set({ isOpen: false })
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
- }));
1765
-
1766
- // src/hooks/useWallet.tsx
1767
1641
  var AppClientId = "react-sdk-" + getVersion();
1768
1642
  function useWallet() {
1769
1643
  const { appid, token, overview, address, wallet: walletConfig } = useLocalStore_default();
1770
- const { setRecoveryModal, closeRecoveryModal, walletReady } = useStore_default();
1771
- const { open: openHashPanel } = useHashPanelStore();
1772
- const initCore = ({
1644
+ const { setRecoveryModal, closeRecoveryModal } = useStore_default();
1645
+ const initWallet = ({
1773
1646
  did,
1774
1647
  address: address2
1775
1648
  }) => {
1776
- return window.matchProvider.waitUntilWalletMessage(
1649
+ return window.waitMatchUntilWalletMessage(
1650
+ "initCore",
1777
1651
  {
1778
- method: "initCore",
1779
- data: {
1780
- AppId: appid,
1781
- AppClientId,
1782
- UserId: did,
1783
- AccessToken: token,
1784
- Address: address2
1785
- }
1652
+ AppId: appid,
1653
+ AppClientId,
1654
+ UserId: did,
1655
+ AccessToken: token,
1656
+ Address: address2
1786
1657
  }
1787
1658
  );
1788
1659
  };
1789
- const generateEmbeddedWallets = async (data) => {
1790
- return await window.matchProvider.waitUntilWalletMessage({
1791
- method: "generateEmbeddedWallets",
1792
- data
1793
- });
1794
- };
1795
- const recoveryEmbeddedWallets = async (data) => {
1796
- return await window.matchProvider.waitUntilWalletMessage({
1797
- method: "recoveryEmbeddedWallets",
1798
- data
1799
- });
1800
- };
1801
1660
  const isRecovered = async () => {
1802
- const res = await window.matchProvider.waitUntilWalletMessage({
1803
- method: "isRecovered"
1804
- });
1661
+ const res = await window.waitMatchUntilWalletMessage("isRecovered");
1805
1662
  return res.isRecovered;
1806
1663
  };
1807
- const recoverAfter = async ({
1808
- chainType,
1809
- handle
1664
+ const generateWallet = async ({
1665
+ did,
1666
+ userPasscode,
1667
+ recoveryType = "user_passcode_recovery_key"
1810
1668
  }) => {
1669
+ return await window.waitMatchUntilWalletMessage("generateWallet", {
1670
+ chainType: "ethereum",
1671
+ recoveryType,
1672
+ userPasscode
1673
+ });
1674
+ };
1675
+ const recoverAfter = async (func) => {
1811
1676
  return new Promise(async (resolve, reject) => {
1812
1677
  const res = await isRecovered();
1813
- matchlog_default.log("sdk.mpc.isRecovered", res);
1814
- if (res) {
1815
- await recoveryEmbeddedWallets({ chainType, recoveryType: "user_passcode_recovery_key" });
1816
- await handle(resolve, reject);
1817
- return;
1818
- }
1819
- setRecoveryModal({
1820
- chainType,
1821
- open: true,
1822
- success: async () => {
1823
- closeRecoveryModal();
1824
- matchlog_default.log("sdk.mpc.recover", "Success");
1825
- await handle(resolve, reject);
1826
- },
1827
- close: async () => {
1828
- closeRecoveryModal();
1829
- reject(new Error("recover modal close"));
1678
+ matchlog_default.log("isRecovered", res);
1679
+ if (!res) {
1680
+ await initWallet({
1681
+ address: overview?.address || "",
1682
+ did: overview?.did?.split(":")[2] || ""
1683
+ });
1684
+ if (walletConfig.type == "UserPasscode") {
1685
+ setRecoveryModal({
1686
+ open: true,
1687
+ success: async () => {
1688
+ matchlog_default.log("recover Success");
1689
+ await func(resolve, reject);
1690
+ },
1691
+ close: async () => {
1692
+ closeRecoveryModal();
1693
+ reject(new Error("recover modal close"));
1694
+ }
1695
+ });
1696
+ return;
1830
1697
  }
1831
- });
1832
- await initCore({
1833
- address: overview?.address || "",
1834
- did: overview?.did || ""
1835
- });
1698
+ await recoveryWallet("ethereum", "base_generated_recovery_key");
1699
+ await func(resolve, reject);
1700
+ } else {
1701
+ await recoveryWallet("ethereum", "user_passcode_recovery_key");
1702
+ await func(resolve, reject);
1703
+ }
1836
1704
  });
1837
1705
  };
1838
- const signMessage2 = async ({
1839
- message,
1840
- chainType = "ethereum" /* Ethereum */
1841
- }) => {
1706
+ const signMessage2 = async (message, type) => {
1842
1707
  const getSign = async (resolve, reject) => {
1843
1708
  try {
1844
- const recoverRes = await window.matchProvider.waitUntilWalletMessage({
1845
- method: "signMessage",
1846
- data: {
1847
- message,
1848
- chainType
1849
- }
1709
+ const recoverRes = await window.waitMatchUntilWalletMessage("signMessage", {
1710
+ message,
1711
+ chainType: type
1850
1712
  });
1851
- resolve(recoverRes.message);
1713
+ closeRecoveryModal();
1714
+ resolve(recoverRes);
1852
1715
  } catch (error) {
1853
1716
  console.error("qwe-sign-error", error);
1854
1717
  reject(error);
1855
1718
  }
1856
1719
  };
1857
- return await recoverAfter({
1858
- handle: getSign,
1859
- chainType
1860
- });
1720
+ return await recoverAfter(getSign);
1861
1721
  };
1862
- const signTransaction = async ({
1863
- transaction,
1864
- chainType = "ethereum" /* Ethereum */,
1865
- chain
1866
- }) => {
1867
- console.log("qwe-sign-transaction", transaction);
1722
+ const signTransaction = async (transaction, type) => {
1868
1723
  const getSign = async (resolve, reject) => {
1869
1724
  try {
1870
- const recoverRes = await window.matchProvider.waitUntilWalletMessage({
1871
- method: "signTransaction",
1872
- data: {
1873
- transaction,
1874
- chainType,
1875
- chain
1876
- }
1725
+ const recoverRes = await window.waitMatchUntilWalletMessage("signTransaction", {
1726
+ transaction,
1727
+ chainType: type
1877
1728
  });
1878
- resolve(recoverRes.message);
1729
+ closeRecoveryModal();
1730
+ resolve(recoverRes);
1879
1731
  } catch (error) {
1880
1732
  console.error("qwe-sign-error", error);
1881
1733
  reject(error);
1882
1734
  }
1883
1735
  };
1884
- return await recoverAfter({
1885
- handle: getSign,
1886
- chainType
1736
+ return await recoverAfter(getSign);
1737
+ };
1738
+ const recoveryWallet = async (chainType, recoveryType, userPasscode) => {
1739
+ return await window.waitMatchUntilWalletMessage("recoveryWallet", {
1740
+ chainType,
1741
+ recoveryType,
1742
+ userPasscode
1887
1743
  });
1888
1744
  };
1889
- const evmAccount = (0, import_react6.useMemo)(() => {
1890
- return address ? (0, import_accounts.toAccount)({
1891
- address,
1892
- async signMessage({ message }) {
1893
- return await signMessage2({
1894
- message,
1895
- chainType: "ethereum" /* Ethereum */
1896
- });
1897
- },
1898
- async signTransaction(transaction, options) {
1899
- const { account, chain, ...restTransaction } = transaction;
1900
- console.log("qwe-sign-transaction", restTransaction, options);
1901
- return await signTransaction({
1902
- transaction: {
1903
- ...restTransaction
1904
- },
1905
- chainType: "ethereum" /* Ethereum */,
1906
- chain: {
1907
- id: chain?.id || restTransaction.chainId,
1908
- name: chain?.name,
1909
- nativeCurrency: {
1910
- name: chain?.nativeCurrency?.name || "ETH",
1911
- symbol: chain?.nativeCurrency?.symbol || "ETH",
1912
- decimals: chain?.nativeCurrency?.decimals || 18
1913
- }
1914
- }
1915
- });
1916
- },
1917
- async signTypedData(typedData) {
1918
- return "0x";
1919
- }
1920
- }) : void 0;
1921
- }, [address]);
1922
- (0, import_react6.useEffect)(() => {
1923
- console.log("qwe-evmAccount", evmAccount);
1924
- }, [evmAccount]);
1745
+ const evmAccount = address ? (0, import_accounts.toAccount)({
1746
+ address,
1747
+ async signMessage({ message }) {
1748
+ return await signMessage2(message);
1749
+ },
1750
+ async signTransaction(transaction, options) {
1751
+ const { account, ...restTransaction } = transaction;
1752
+ const sign = await signTransaction({
1753
+ ...restTransaction
1754
+ });
1755
+ return sign;
1756
+ },
1757
+ async signTypedData(typedData) {
1758
+ return "0x";
1759
+ }
1760
+ }) : void 0;
1925
1761
  return {
1926
- walletReady,
1927
1762
  evmAccount,
1928
1763
  address,
1929
- initCore,
1764
+ recoveryWallet,
1765
+ initWallet,
1766
+ generateWallet,
1930
1767
  signMessage: signMessage2,
1931
1768
  signTransaction,
1932
1769
  isRecovered,
1933
- recoverAfter,
1934
- generateEmbeddedWallets,
1935
- recoveryEmbeddedWallets,
1936
- createWalletClient: (parameters) => {
1937
- if (!evmAccount) {
1938
- return;
1939
- }
1940
- const obj = (0, import_viem2.createWalletClient)({
1941
- ...parameters,
1942
- account: evmAccount
1943
- });
1944
- const sendTransaction = async (transaction) => {
1945
- const getSign = async (resolve, reject) => {
1946
- const { chain, ...restTransaction } = transaction;
1947
- const chainId = chain ? chain.id : await obj.getChainId();
1948
- const _chain = chain || obj.chain;
1949
- const transactionId = Date.now().toString() + Math.random().toString().slice(6);
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);
1968
- }
1969
- };
1970
- sendPrepareTransactionRequest();
1971
- }, 1e4);
1972
- try {
1973
- const {
1974
- chain: chain2,
1975
- account,
1976
- ...prepareTransactionRequest
1977
- // @ts-ignore
1978
- } = await obj.prepareTransactionRequest(transaction);
1979
- const { serializedTransaction } = await window.matchProvider.waitUntilWalletMessage({
1980
- method: "sendTransaction",
1981
- data: {
1982
- transactionId,
1983
- transaction: {
1984
- ...restTransaction
1985
- },
1986
- chainType: "ethereum" /* Ethereum */,
1987
- chain: {
1988
- id: chainId,
1989
- name: _chain?.name,
1990
- nativeCurrency: _chain?.nativeCurrency
1991
- },
1992
- prepareTransactionRequest
1993
- }
1994
- });
1995
- openHashPanel();
1996
- const txHash = await obj.sendRawTransaction({
1997
- serializedTransaction
1998
- });
1999
- openHashPanel({
2000
- hash: txHash,
2001
- chain: _chain
2002
- });
2003
- clearInterval(interval);
2004
- resolve(txHash);
2005
- } catch (error) {
2006
- console.error("qwe-sign-error", error);
2007
- clearInterval(interval);
2008
- reject(error);
2009
- }
2010
- };
2011
- return await recoverAfter({
2012
- handle: getSign,
2013
- chainType: "ethereum" /* Ethereum */
2014
- });
2015
- };
2016
- const deployContract = async (parameters2) => {
2017
- const { abi, args, bytecode, ...request3 } = parameters2;
2018
- const calldata = (0, import_viem3.encodeDeployData)({ abi, args, bytecode });
2019
- return await sendTransaction({
2020
- ...request3,
2021
- data: calldata
2022
- });
2023
- };
2024
- const writeContract = async (parameters2) => {
2025
- const { abi, address: address2, args, dataSuffix, functionName, ...request3 } = parameters2;
2026
- const data = (0, import_viem.encodeFunctionData)({
2027
- abi,
2028
- args,
2029
- functionName
2030
- });
2031
- return await sendTransaction({
2032
- data: `${data}${dataSuffix ? dataSuffix.replace("0x", "") : ""}`,
2033
- to: address2,
2034
- ...request3
2035
- });
2036
- };
2037
- return {
2038
- ...obj,
2039
- sendTransaction,
2040
- deployContract,
2041
- writeContract
2042
- };
2043
- }
1770
+ recoverAfter
2044
1771
  };
2045
1772
  }
2046
1773
 
2047
1774
  // src/hooks/useCopyClipboard.ts
2048
1775
  var import_copy_to_clipboard = __toESM(require("copy-to-clipboard"));
2049
- var import_react7 = require("react");
1776
+ var import_react5 = require("react");
2050
1777
  function useCopyClipboard(timeout = 500) {
2051
- const [isCopied, setIsCopied] = (0, import_react7.useState)(false);
2052
- const staticCopy = (0, import_react7.useCallback)((text) => {
1778
+ const [isCopied, setIsCopied] = (0, import_react5.useState)(false);
1779
+ const staticCopy = (0, import_react5.useCallback)((text) => {
2053
1780
  const didCopy = (0, import_copy_to_clipboard.default)(text);
2054
1781
  setIsCopied(didCopy);
2055
1782
  }, []);
2056
- (0, import_react7.useEffect)(() => {
1783
+ (0, import_react5.useEffect)(() => {
2057
1784
  if (isCopied) {
2058
1785
  const hide = setTimeout(() => {
2059
1786
  setIsCopied(false);
@@ -2069,24 +1796,21 @@ function useCopyClipboard(timeout = 500) {
2069
1796
 
2070
1797
  // src/components/PasswordModal/index.tsx
2071
1798
  var import_react_intl2 = require("react-intl");
2072
- var import_jsx_runtime51 = require("react/jsx-runtime");
1799
+ var import_jsx_runtime49 = require("react/jsx-runtime");
2073
1800
  function PasswordModal({
2074
1801
  title,
2075
1802
  isOpen,
2076
1803
  onSuccess,
2077
- chainType = "ethereum" /* Ethereum */,
2078
- recoveryType = "user_passcode_recovery_key" /* UserPasscode */,
2079
1804
  ...props
2080
1805
  }) {
2081
1806
  const { refreshOverview, overview } = useUserInfo();
2082
1807
  const { isLogin, did } = useUserInfo();
2083
- const [password, setPassword] = (0, import_react8.useState)("");
2084
- const [rePassword, setRePassword] = (0, import_react8.useState)("");
2085
- const [error, setError] = (0, import_react8.useState)("");
2086
- const { generateEmbeddedWallets, initCore } = useWallet();
2087
- const { walletReady } = useStore_default();
1808
+ const [password, setPassword] = (0, import_react6.useState)("");
1809
+ const [rePassword, setRePassword] = (0, import_react6.useState)("");
1810
+ const [error, setError] = (0, import_react6.useState)("");
1811
+ const { generateWallet, initWallet } = useWallet();
2088
1812
  const intl = (0, import_react_intl2.useIntl)();
2089
- const passwordError = (0, import_react8.useMemo)(() => {
1813
+ const passwordError = (0, import_react6.useMemo)(() => {
2090
1814
  if (password.length < 6) return intl.formatMessage({
2091
1815
  id: "passwordMinError"
2092
1816
  }, {
@@ -2094,7 +1818,7 @@ function PasswordModal({
2094
1818
  });
2095
1819
  return "";
2096
1820
  }, [password]);
2097
- const rePasswordError = (0, import_react8.useMemo)(() => {
1821
+ const rePasswordError = (0, import_react6.useMemo)(() => {
2098
1822
  if (rePassword != password) {
2099
1823
  return intl.formatMessage({
2100
1824
  id: "passwordMatchError"
@@ -2102,25 +1826,25 @@ function PasswordModal({
2102
1826
  }
2103
1827
  return "";
2104
1828
  }, [rePassword, password]);
2105
- (0, import_react8.useEffect)(() => {
1829
+ (0, import_react6.useEffect)(() => {
2106
1830
  if (isOpen) {
2107
1831
  setPassword("");
2108
1832
  setRePassword("");
2109
1833
  }
2110
1834
  }, [isOpen, overview]);
2111
- const [isSubmitting, setIsSubmitting] = (0, import_react8.useState)(false);
1835
+ const [isSubmitting, setIsSubmitting] = (0, import_react6.useState)(false);
2112
1836
  const onContinue = async () => {
2113
1837
  if (isSubmitting) return;
2114
1838
  try {
2115
1839
  setIsSubmitting(true);
2116
- await initCore({
2117
- did: overview?.did || "",
1840
+ const did2 = overview ? overview.did.split(":")[2] : "";
1841
+ await initWallet({
1842
+ did: did2,
2118
1843
  address: ""
2119
1844
  });
2120
- const address = await generateEmbeddedWallets({
2121
- userPasscode: password,
2122
- chainType,
2123
- recoveryType
1845
+ const address = await generateWallet({
1846
+ did: did2,
1847
+ userPasscode: password
2124
1848
  });
2125
1849
  await refreshOverview();
2126
1850
  onSuccess && onSuccess();
@@ -2130,15 +1854,15 @@ function PasswordModal({
2130
1854
  setIsSubmitting(false);
2131
1855
  }
2132
1856
  };
2133
- return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(ModalWithHeader, { isOpen: isOpen && isLogin, ...props, title: title || intl.formatMessage({
1857
+ return /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(ModalWithHeader, { isOpen: isOpen && isLogin, ...props, title: title || intl.formatMessage({
2134
1858
  id: "passwordTitle"
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" }) })
1859
+ }), children: /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)("div", { className: "matchid-password-box", children: [
1860
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)("div", { className: "matchid-password-header", children: [
1861
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("div", { className: "matchid-password-header-icon", children: /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(PasswordRoundIcon, {}) }),
1862
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("div", { className: "matchid-password-header-content", children: /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(import_react_intl2.FormattedMessage, { id: "passwordTips" }) })
2139
1863
  ] }),
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)(
1864
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)("div", { className: "matchid-password-content", children: [
1865
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(Field, { label: intl.formatMessage({ id: "password" }), error: password.length > 0 && passwordError, children: /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
2142
1866
  Input,
2143
1867
  {
2144
1868
  placeholder: intl.formatMessage({ id: "passwordPlaceholder" }),
@@ -2148,9 +1872,9 @@ function PasswordModal({
2148
1872
  value: password
2149
1873
  }
2150
1874
  ) }),
2151
- /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(Field, { label: intl.formatMessage({
1875
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(Field, { label: intl.formatMessage({
2152
1876
  id: "rePassword"
2153
- }), error: rePassword.length > 0 ? rePasswordError || error : error, children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
1877
+ }), error: rePassword.length > 0 ? rePasswordError || error : error, children: /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
2154
1878
  Input,
2155
1879
  {
2156
1880
  placeholder: intl.formatMessage({
@@ -2163,69 +1887,88 @@ function PasswordModal({
2163
1887
  }
2164
1888
  ) })
2165
1889
  ] }),
2166
- /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
1890
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
2167
1891
  Button,
2168
1892
  {
2169
- disabled: password.length == 0 || !!passwordError || !!rePasswordError || !walletReady,
1893
+ disabled: password.length == 0 || !!passwordError || !!rePasswordError,
2170
1894
  highlight: true,
2171
1895
  block: true,
2172
1896
  size: "lg",
2173
1897
  onClick: onContinue,
2174
1898
  loading: isSubmitting,
2175
- children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_react_intl2.FormattedMessage, { id: "continue" })
1899
+ children: /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(import_react_intl2.FormattedMessage, { id: "continue" })
2176
1900
  }
2177
1901
  )
2178
1902
  ] }) });
2179
1903
  }
2180
1904
 
2181
1905
  // src/components/RecoveryModal/index.tsx
2182
- var import_react9 = require("react");
1906
+ var import_react7 = require("react");
2183
1907
  var import_react_intl3 = require("react-intl");
2184
- var import_jsx_runtime52 = require("react/jsx-runtime");
1908
+ var import_jsx_runtime50 = require("react/jsx-runtime");
1909
+
1910
+ // src/store/useModalStore.ts
1911
+ var import_zustand3 = require("zustand");
1912
+ var useSOLModalStore = (0, import_zustand3.create)((set) => ({
1913
+ isOpen: false,
1914
+ type: "",
1915
+ open: (type) => set({ isOpen: true, type }),
1916
+ close: () => set({ isOpen: false })
1917
+ }));
1918
+ var useTRONModalStore = (0, import_zustand3.create)((set) => ({
1919
+ isOpen: false,
1920
+ type: "",
1921
+ open: (type) => set({ isOpen: true, type }),
1922
+ close: () => set({ isOpen: false })
1923
+ }));
1924
+ var useTONModalStore = (0, import_zustand3.create)((set) => ({
1925
+ isOpen: false,
1926
+ type: "",
1927
+ open: (type) => set({ isOpen: true, type }),
1928
+ close: () => set({ isOpen: false })
1929
+ }));
1930
+ var useBTCModalStore = (0, import_zustand3.create)((set) => ({
1931
+ isOpen: false,
1932
+ type: "",
1933
+ open: (type) => set({ isOpen: true, type }),
1934
+ close: () => set({ isOpen: false })
1935
+ }));
1936
+ var useCEXBindModalStore = (0, import_zustand3.create)((set) => ({
1937
+ type: "",
1938
+ isOpen: false,
1939
+ open: (type) => set({ isOpen: true, type }),
1940
+ close: () => set({ isOpen: false })
1941
+ }));
2185
1942
 
2186
1943
  // src/components/CEXBindModal/index.tsx
2187
- var import_react10 = require("react");
1944
+ var import_react8 = require("react");
2188
1945
  var import_react_intl4 = require("react-intl");
2189
- var import_jsx_runtime53 = require("react/jsx-runtime");
2190
-
2191
- // src/components/HashPanel/index.tsx
2192
- var import_viem4 = require("viem");
2193
- var import_react11 = require("react");
2194
- var import_react_query = require("@tanstack/react-query");
2195
-
2196
- // src/components/Drawer/index.tsx
2197
- var import_jsx_runtime54 = require("react/jsx-runtime");
2198
-
2199
- // src/components/ModalDrawer/index.tsx
2200
- var import_jsx_runtime55 = require("react/jsx-runtime");
2201
-
2202
- // src/components/HashPanel/index.tsx
2203
- var import_jsx_runtime56 = require("react/jsx-runtime");
1946
+ var import_jsx_runtime51 = require("react/jsx-runtime");
2204
1947
 
2205
1948
  // src/context/BusinessProvider.tsx
2206
- var import_jsx_runtime57 = require("react/jsx-runtime");
1949
+ var import_jsx_runtime52 = require("react/jsx-runtime");
2207
1950
 
2208
1951
  // src/context/index.tsx
2209
- var import_jsx_runtime58 = (
1952
+ var import_jsx_runtime53 = (
2210
1953
  // <MpcWalletProvider>
2211
1954
  require("react/jsx-runtime")
2212
1955
  );
2213
1956
 
2214
1957
  // src/hooks/useWalletInit.ts
2215
- var import_react13 = require("react");
1958
+ var import_react10 = require("react");
2216
1959
  var AppClientId2 = getAppClientId();
2217
1960
 
2218
1961
  // src/hooks/useInit.tsx
2219
- var import_react14 = require("react");
1962
+ var import_react11 = require("react");
2220
1963
 
2221
1964
  // src/MatchContext.tsx
2222
- var import_react_query2 = require("@tanstack/react-query");
1965
+ var import_react_query = require("@tanstack/react-query");
2223
1966
  var import_react_intl5 = require("react-intl");
2224
- var import_jsx_runtime59 = require("react/jsx-runtime");
2225
- var queryClient = new import_react_query2.QueryClient();
2226
- var MatchContext = (0, import_react15.createContext)(void 0);
1967
+ var import_jsx_runtime54 = require("react/jsx-runtime");
1968
+ var queryClient = new import_react_query.QueryClient();
1969
+ var MatchContext = (0, import_react12.createContext)(void 0);
2227
1970
  var useMatch = () => {
2228
- const context = (0, import_react15.useContext)(MatchContext);
1971
+ const context = (0, import_react12.useContext)(MatchContext);
2229
1972
  if (context === void 0) {
2230
1973
  throw new Error("useMatch must be used within a MatchProvider");
2231
1974
  }
@@ -2252,8 +1995,7 @@ function useUserInfo() {
2252
1995
  const { open: TONOpen } = useTONModalStore();
2253
1996
  const { open: BTCOpen } = useBTCModalStore();
2254
1997
  const { open: CEXBindOpen } = useCEXBindModalStore();
2255
- const walletModalStore = useWalletModalStore();
2256
- const isLogin = (0, import_react16.useMemo)(() => !!token && !!overview, [token, overview]);
1998
+ const isLogin = (0, import_react13.useMemo)(() => !!token, [token]);
2257
1999
  const logout = async () => {
2258
2000
  try {
2259
2001
  await toLogoutApi();
@@ -2291,10 +2033,8 @@ function useUserInfo() {
2291
2033
  "width=800,height=600"
2292
2034
  );
2293
2035
  };
2294
- const loginMethod = async (method, extra) => {
2036
+ const loginMethod = async (method) => {
2295
2037
  switch (method) {
2296
- case "wallet":
2297
- return walletModalStore.open("login", extra?.methods);
2298
2038
  case "evm":
2299
2039
  return window.open(`${endpoints.auth}login/wallet?appid=${appid}`);
2300
2040
  case "sol":
@@ -2383,13 +2123,11 @@ function useUserInfo() {
2383
2123
  }
2384
2124
  throw new Error(res.message);
2385
2125
  };
2386
- const bind = async (method, extra) => {
2126
+ const bind = async (method) => {
2387
2127
  if (!token) {
2388
2128
  throw new Error("You must login first");
2389
2129
  }
2390
2130
  switch (method) {
2391
- case "wallet":
2392
- return walletModalStore.open("bind", extra?.methods);
2393
2131
  case "evm":
2394
2132
  return window.open(`${endpoints.auth}bind/wallet?appid=${appid}&st=` + encodeURIComponent(encodeBase64(token)));
2395
2133
  case "sol":
@@ -2491,7 +2229,7 @@ function useUserInfo() {
2491
2229
  }
2492
2230
 
2493
2231
  // src/components/EmailModal/StepVerify.tsx
2494
- var import_react17 = require("react");
2232
+ var import_react14 = require("react");
2495
2233
 
2496
2234
  // src/config/index.tsx
2497
2235
  var EMAIL_INTERVAL = 60;
@@ -2499,21 +2237,21 @@ var EMAIL_CODE_LENGTH = 6;
2499
2237
 
2500
2238
  // src/components/EmailModal/StepVerify.tsx
2501
2239
  var import_react_intl6 = require("react-intl");
2502
- var import_jsx_runtime60 = require("react/jsx-runtime");
2240
+ var import_jsx_runtime55 = require("react/jsx-runtime");
2503
2241
  function StepVerify(props) {
2504
2242
  const intl = (0, import_react_intl6.useIntl)();
2505
2243
  const { getLoginEmailCode, loginByEmail } = useUserInfo();
2506
- const [error, setError] = (0, import_react17.useState)("");
2507
- const [code, setCode] = (0, import_react17.useState)("");
2508
- const [sending, setSending] = (0, import_react17.useState)(false);
2509
- const [submitting, setSubmitting] = (0, import_react17.useState)(false);
2510
- const sendTimeRef = (0, import_react17.useRef)(0);
2511
- const [sendBtnText, setSendBtnText] = (0, import_react17.useState)(intl.formatMessage({
2244
+ const [error, setError] = (0, import_react14.useState)("");
2245
+ const [code, setCode] = (0, import_react14.useState)("");
2246
+ const [sending, setSending] = (0, import_react14.useState)(false);
2247
+ const [submitting, setSubmitting] = (0, import_react14.useState)(false);
2248
+ const sendTimeRef = (0, import_react14.useRef)(0);
2249
+ const [sendBtnText, setSendBtnText] = (0, import_react14.useState)(intl.formatMessage({
2512
2250
  id: "send"
2513
2251
  }));
2514
2252
  const intervalTime = EMAIL_INTERVAL;
2515
2253
  const codeLength = EMAIL_CODE_LENGTH;
2516
- const intervalRef = (0, import_react17.useRef)(null);
2254
+ const intervalRef = (0, import_react14.useRef)(null);
2517
2255
  const isDownMd = useDownMd();
2518
2256
  const onSend = async () => {
2519
2257
  if (sendTimeRef.current > 0) {
@@ -2544,7 +2282,7 @@ function StepVerify(props) {
2544
2282
  setSending(false);
2545
2283
  }
2546
2284
  };
2547
- (0, import_react17.useEffect)(() => {
2285
+ (0, import_react14.useEffect)(() => {
2548
2286
  onSend();
2549
2287
  return () => {
2550
2288
  if (intervalRef.current) {
@@ -2552,7 +2290,7 @@ function StepVerify(props) {
2552
2290
  }
2553
2291
  };
2554
2292
  }, []);
2555
- const canContinue = (0, import_react17.useMemo)(() => {
2293
+ const canContinue = (0, import_react14.useMemo)(() => {
2556
2294
  return code.length === codeLength;
2557
2295
  }, [code]);
2558
2296
  const onContinue = async () => {
@@ -2576,17 +2314,17 @@ function StepVerify(props) {
2576
2314
  setSubmitting(false);
2577
2315
  }
2578
2316
  };
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" }) })
2317
+ return /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)("div", { className: "matchid-email-verify-box", children: [
2318
+ /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)("div", { className: "matchid-email-verify-header", children: [
2319
+ /* @__PURE__ */ (0, import_jsx_runtime55.jsx)("div", { className: "matchid-email-verify-header-icon", children: /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(EmailLineIcon, { size: isDownMd ? 19 : 24 }) }),
2320
+ /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)("div", { className: "matchid-email-verify-header-content", children: [
2321
+ /* @__PURE__ */ (0, import_jsx_runtime55.jsx)("div", { className: "matchid-email-verify-header-value", children: props.email }),
2322
+ /* @__PURE__ */ (0, import_jsx_runtime55.jsx)("div", { className: "matchid-email-verify-header-tips", children: /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(import_react_intl6.FormattedMessage, { id: "sendEmailTips" }) })
2585
2323
  ] })
2586
2324
  ] }),
2587
- /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(Field, { label: intl.formatMessage({
2325
+ /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(Field, { label: intl.formatMessage({
2588
2326
  id: "verificationCode"
2589
- }), error, children: /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(
2327
+ }), error, children: /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
2590
2328
  Input,
2591
2329
  {
2592
2330
  placeholder: intl.formatMessage({
@@ -2596,7 +2334,7 @@ function StepVerify(props) {
2596
2334
  maxLength: codeLength,
2597
2335
  onChange: (e) => setCode(e.target.value),
2598
2336
  value: code,
2599
- after: /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(
2337
+ after: /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
2600
2338
  Button,
2601
2339
  {
2602
2340
  highlight: true,
@@ -2615,13 +2353,13 @@ function StepVerify(props) {
2615
2353
  )
2616
2354
  }
2617
2355
  ) }),
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" }) })
2356
+ /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(Button, { disabled: !canContinue, highlight: true, block: true, size: "lg", onClick: onContinue, children: /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(import_react_intl6.FormattedMessage, { id: "continue" }) })
2619
2357
  ] });
2620
2358
  }
2621
2359
 
2622
2360
  // src/components/EmailModal/index.tsx
2623
2361
  var import_react_intl7 = require("react-intl");
2624
- var import_jsx_runtime61 = require("react/jsx-runtime");
2362
+ var import_jsx_runtime56 = require("react/jsx-runtime");
2625
2363
  function EmailModal({
2626
2364
  isOpen = false,
2627
2365
  width = 480,
@@ -2629,16 +2367,16 @@ function EmailModal({
2629
2367
  onBack,
2630
2368
  onLogin
2631
2369
  }) {
2632
- const [step, setStep] = (0, import_react18.useState)("input");
2633
- const [emailVal, setEmailVal] = (0, import_react18.useState)("");
2370
+ const [step, setStep] = (0, import_react15.useState)("input");
2371
+ const [emailVal, setEmailVal] = (0, import_react15.useState)("");
2634
2372
  const intl = (0, import_react_intl7.useIntl)();
2635
- (0, import_react18.useEffect)(() => {
2373
+ (0, import_react15.useEffect)(() => {
2636
2374
  if (!isOpen) {
2637
2375
  setStep("input");
2638
2376
  setEmailVal("");
2639
2377
  }
2640
2378
  }, [isOpen]);
2641
- return /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
2379
+ return /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
2642
2380
  ModalWithHeader,
2643
2381
  {
2644
2382
  isOpen,
@@ -2648,17 +2386,17 @@ function EmailModal({
2648
2386
  id: "email"
2649
2387
  }),
2650
2388
  onBack: step == "verify" ? () => setStep("input") : onBack,
2651
- children: step === "input" ? /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(StepEmail, { email: emailVal, onContinue: (email) => {
2389
+ children: step === "input" ? /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(StepEmail, { email: emailVal, onContinue: (email) => {
2652
2390
  setEmailVal(email);
2653
2391
  setStep("verify");
2654
- } }) : /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(StepVerify, { email: emailVal, onSuccess: onLogin })
2392
+ } }) : /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(StepVerify, { email: emailVal, onSuccess: onLogin })
2655
2393
  }
2656
2394
  );
2657
2395
  }
2658
2396
 
2659
2397
  // src/components/Popover/index.tsx
2660
- var import_react19 = require("react");
2661
- var import_jsx_runtime62 = require("react/jsx-runtime");
2398
+ var import_react16 = require("react");
2399
+ var import_jsx_runtime57 = require("react/jsx-runtime");
2662
2400
  function Popover({
2663
2401
  children,
2664
2402
  content,
@@ -2667,8 +2405,8 @@ function Popover({
2667
2405
  className = "",
2668
2406
  gap = "20px"
2669
2407
  }) {
2670
- const [active, setActive] = (0, import_react19.useState)(false);
2671
- return children && /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)(
2408
+ const [active, setActive] = (0, import_react16.useState)(false);
2409
+ return children && /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)(
2672
2410
  "div",
2673
2411
  {
2674
2412
  onClick: () => {
@@ -2679,18 +2417,18 @@ function Popover({
2679
2417
  className: `matchid-popover-box matchid-popover-${position} matchid-popover-${type} ${className} ${type == "click" && active ? "matchid-popover-click-active" : ""}`,
2680
2418
  children: [
2681
2419
  children,
2682
- /* @__PURE__ */ (0, import_jsx_runtime62.jsx)("div", { style: {
2420
+ /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("div", { style: {
2683
2421
  paddingTop: gap
2684
- }, className: `matchid-popover-area`, children: /* @__PURE__ */ (0, import_jsx_runtime62.jsx)("div", { className: `matchid-popover-content`, children: content }) })
2422
+ }, className: `matchid-popover-area`, children: /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("div", { className: `matchid-popover-content`, children: content }) })
2685
2423
  ]
2686
2424
  }
2687
2425
  );
2688
2426
  }
2689
2427
 
2690
2428
  // src/components/LoginBox/index.tsx
2691
- var import_react20 = require("react");
2429
+ var import_react17 = require("react");
2692
2430
  var import_react_intl8 = require("react-intl");
2693
- var import_jsx_runtime63 = require("react/jsx-runtime");
2431
+ var import_jsx_runtime58 = require("react/jsx-runtime");
2694
2432
  var RecommendItem = ({
2695
2433
  icon,
2696
2434
  name,
@@ -2699,20 +2437,20 @@ var RecommendItem = ({
2699
2437
  children,
2700
2438
  footer
2701
2439
  }) => {
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 })
2440
+ return /* @__PURE__ */ (0, import_jsx_runtime58.jsxs)("div", { className: "matchid-login-recommend-method", children: [
2441
+ /* @__PURE__ */ (0, import_jsx_runtime58.jsxs)("div", { className: "matchid-login-recommend-method-item", onClick, children: [
2442
+ /* @__PURE__ */ (0, import_jsx_runtime58.jsxs)("div", { className: "matchid-login-recommend-method-content", children: [
2443
+ /* @__PURE__ */ (0, import_jsx_runtime58.jsx)("div", { className: "matchid-login-recommend-method-icon", children: icon }),
2444
+ /* @__PURE__ */ (0, import_jsx_runtime58.jsx)("span", { className: "matchid-login-recommend-method-name", children: name })
2707
2445
  ] }),
2708
- footer ? footer : children ? /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
2446
+ footer ? footer : children ? /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(
2709
2447
  ArrowDownIcon,
2710
2448
  {
2711
2449
  className: `matchid-login-recommend-method-arrow ${showChildren ? "matchid-login-recommend-method-arrow-active" : ""}`,
2712
2450
  size: 20,
2713
2451
  color: "var(--matchid-arrow-color)"
2714
2452
  }
2715
- ) : /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
2453
+ ) : /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(
2716
2454
  ArrowRightIcon,
2717
2455
  {
2718
2456
  className: "matchid-login-recommend-method-arrow",
@@ -2721,7 +2459,7 @@ var RecommendItem = ({
2721
2459
  }
2722
2460
  )
2723
2461
  ] }),
2724
- children && /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
2462
+ children && /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(
2725
2463
  "div",
2726
2464
  {
2727
2465
  className: `matchid-login-recommend-method-popover ${showChildren ? "matchid-login-recommend-method-popover-active" : ""}`,
@@ -2743,102 +2481,131 @@ function LoginBox({
2743
2481
  "linkedin",
2744
2482
  "discord"
2745
2483
  ],
2746
- walletMethods = DEFAULT_WALLET_METHODS,
2484
+ walletMethods = ["evm", "sol", "btc", "tron"],
2747
2485
  inModal = false
2748
2486
  }) {
2749
- const [emailOpen, setEmailOpen] = (0, import_react20.useState)(false);
2487
+ const [emailOpen, setEmailOpen] = (0, import_react17.useState)(false);
2750
2488
  const { login } = useUserInfo();
2751
- const [showWallet, setShowWallet] = (0, import_react20.useState)(false);
2489
+ const [showWallet, setShowWallet] = (0, import_react17.useState)(false);
2752
2490
  const intl = (0, import_react_intl8.useIntl)();
2753
2491
  const isDownMd = useDownMd();
2754
2492
  const methodMap = {
2755
2493
  wallet: {
2756
- icon: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(WalletIcon, { size: isDownMd ? 36 : 40 }),
2494
+ icon: /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(WalletIcon, { size: isDownMd ? 36 : 40 }),
2757
2495
  name: intl.formatMessage({ id: "wallet" }),
2758
2496
  onClick: () => setShowWallet(!showWallet),
2759
2497
  type: "wallet"
2760
2498
  },
2761
2499
  email: {
2762
- icon: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(EmailIcon, { size: isDownMd ? 36 : 40 }),
2500
+ icon: /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(EmailIcon, { size: isDownMd ? 36 : 40 }),
2763
2501
  name: intl.formatMessage({ id: "email" }),
2764
2502
  onClick: () => {
2765
2503
  setEmailOpen(true);
2766
2504
  }
2767
2505
  },
2768
2506
  google: {
2769
- icon: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(GoogleIcon, { size: isDownMd ? 36 : 40 }),
2507
+ icon: /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(GoogleIcon, { size: isDownMd ? 36 : 40 }),
2770
2508
  name: "Google",
2771
2509
  onClick: () => login("google")
2772
2510
  },
2773
2511
  twitter: {
2774
- icon: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(XIcon, { size: isDownMd ? 36 : 40 }),
2512
+ icon: /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(XIcon, { size: isDownMd ? 36 : 40 }),
2775
2513
  name: "X",
2776
2514
  onClick: () => login("twitter")
2777
2515
  },
2778
2516
  telegram: {
2779
- icon: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(TelegramIcon, { size: isDownMd ? 36 : 40 }),
2517
+ icon: /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(TelegramIcon, { size: isDownMd ? 36 : 40 }),
2780
2518
  name: "Telegram",
2781
2519
  onClick: () => login("telegram")
2782
2520
  },
2783
2521
  github: {
2784
- icon: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(GithubIcon, { size: isDownMd ? 36 : 40 }),
2522
+ icon: /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(GithubIcon, { size: isDownMd ? 36 : 40 }),
2785
2523
  name: "Github",
2786
2524
  onClick: () => login("github")
2787
2525
  },
2788
2526
  discord: {
2789
- icon: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(DiscordIcon, { size: isDownMd ? 36 : 40 }),
2527
+ icon: /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(DiscordIcon, { size: isDownMd ? 36 : 40 }),
2790
2528
  name: "Discord",
2791
2529
  onClick: () => login("discord")
2792
2530
  },
2793
2531
  linkedin: {
2794
- icon: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(LinkedinIcon, { size: isDownMd ? 36 : 40 }),
2532
+ icon: /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(LinkedinIcon, { size: isDownMd ? 36 : 40 }),
2795
2533
  name: "LinkedIn",
2796
2534
  onClick: () => login("linkedin")
2797
2535
  },
2798
2536
  facebook: {
2799
- icon: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(FacebookIcon, { size: isDownMd ? 36 : 40 }),
2537
+ icon: /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(FacebookIcon, { size: isDownMd ? 36 : 40 }),
2800
2538
  name: "Facebook",
2801
2539
  onClick: () => login("facebook")
2802
2540
  },
2803
2541
  youtube: {
2804
- icon: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(YoutubeIcon, { size: isDownMd ? 36 : 40 }),
2542
+ icon: /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(YoutubeIcon, { size: isDownMd ? 36 : 40 }),
2805
2543
  name: "Youtube",
2806
2544
  onClick: () => login("youtube")
2807
2545
  }
2808
2546
  };
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)(
2547
+ const walletMap = {
2548
+ evm: {
2549
+ icon: /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(EVMDarkIcon, { size: isDownMd ? 36 : 40 }),
2550
+ activeIcon: /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(EVMLightIcon, { size: isDownMd ? 36 : 40 }),
2551
+ name: "EVM",
2552
+ onClick: () => login("evm")
2553
+ },
2554
+ sol: {
2555
+ icon: /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(SOLDarkIcon, { size: isDownMd ? 36 : 40 }),
2556
+ activeIcon: /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(SOLLightIcon, { size: isDownMd ? 36 : 40 }),
2557
+ name: "SOL",
2558
+ onClick: () => login("sol")
2559
+ },
2560
+ btc: {
2561
+ icon: /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(BTCDarkIcon, { size: isDownMd ? 36 : 40 }),
2562
+ activeIcon: /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(BTCLightIcon, { size: isDownMd ? 36 : 40 }),
2563
+ name: "BTC",
2564
+ onClick: () => login("btc")
2565
+ },
2566
+ tron: {
2567
+ icon: /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(TRXDarkIcon, { size: isDownMd ? 36 : 40 }),
2568
+ activeIcon: /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(TRXLightIcon, { size: isDownMd ? 36 : 40 }),
2569
+ name: "TRON",
2570
+ onClick: () => login("tron")
2571
+ },
2572
+ ton: {
2573
+ icon: /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(TonLightIcon, { size: isDownMd ? 36 : 40 }),
2574
+ activeIcon: /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(TonLightIcon2, { size: isDownMd ? 36 : 40 }),
2575
+ name: "TON",
2576
+ onClick: () => login("ton")
2577
+ }
2578
+ };
2579
+ return /* @__PURE__ */ (0, import_jsx_runtime58.jsxs)(import_jsx_runtime58.Fragment, { children: [
2580
+ (!inModal || !emailOpen) && /* @__PURE__ */ (0, import_jsx_runtime58.jsxs)("div", { className: "matchid-login-box", children: [
2581
+ /* @__PURE__ */ (0, import_jsx_runtime58.jsx)("div", { className: "matchid-login-recommend-list", children: recommendMethods.map((m) => {
2582
+ return /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(
2814
2583
  RecommendItem,
2815
2584
  {
2816
2585
  icon: methodMap[m]?.icon,
2817
2586
  name: methodMap[m]?.name,
2818
2587
  onClick: methodMap[m]?.onClick,
2819
2588
  showChildren: m == "wallet" && showWallet,
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) => {
2589
+ children: m == "wallet" && /* @__PURE__ */ (0, import_jsx_runtime58.jsxs)(import_jsx_runtime58.Fragment, { children: [
2590
+ /* @__PURE__ */ (0, import_jsx_runtime58.jsx)("div", { className: "matchid-login-recommend-wallet-divider" }),
2591
+ /* @__PURE__ */ (0, import_jsx_runtime58.jsx)("div", { className: "matchid-login-recommend-wallet-list", children: walletMethods.map((n) => {
2823
2592
  const m2 = walletMap[n];
2824
- return /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)(
2593
+ return /* @__PURE__ */ (0, import_jsx_runtime58.jsxs)(
2825
2594
  "div",
2826
2595
  {
2827
2596
  className: "matchid-login-recommend-wallet-item",
2828
- onClick: () => {
2829
- login(m2.method);
2830
- },
2597
+ onClick: m2.onClick,
2831
2598
  children: [
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)(
2599
+ /* @__PURE__ */ (0, import_jsx_runtime58.jsxs)("div", { className: "matchid-login-recommend-wallet-item-content", children: [
2600
+ /* @__PURE__ */ (0, import_jsx_runtime58.jsx)("div", { className: "matchid-login-recommend-wallet-item-icon", children: m2.icon }),
2601
+ /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(
2835
2602
  "div",
2836
2603
  {
2837
2604
  className: "matchid-login-recommend-wallet-item-hover-icon",
2838
2605
  children: m2.activeIcon
2839
2606
  }
2840
2607
  ),
2841
- /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
2608
+ /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(
2842
2609
  "span",
2843
2610
  {
2844
2611
  className: "matchid-login-recommend-wallet-item-name",
@@ -2846,7 +2613,7 @@ function LoginBox({
2846
2613
  }
2847
2614
  )
2848
2615
  ] }),
2849
- /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
2616
+ /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(
2850
2617
  ArrowRightIcon,
2851
2618
  {
2852
2619
  className: "matchid-login-recommend-wallet-item-arrow",
@@ -2864,10 +2631,10 @@ function LoginBox({
2864
2631
  m
2865
2632
  );
2866
2633
  }) }),
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)(
2634
+ methods.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime58.jsxs)("div", { className: "matchid-login-other", children: [
2635
+ /* @__PURE__ */ (0, import_jsx_runtime58.jsx)("div", { className: "matchid-login-other-text", children: /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(import_react_intl8.FormattedMessage, { id: "otherLoginMethods" }) }),
2636
+ /* @__PURE__ */ (0, import_jsx_runtime58.jsx)("div", { className: "matchid-login-method-box", children: methods.map((m) => {
2637
+ return /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(
2871
2638
  "div",
2872
2639
  {
2873
2640
  className: "matchid-login-method-item",
@@ -2880,7 +2647,7 @@ function LoginBox({
2880
2647
  }) })
2881
2648
  ] })
2882
2649
  ] }),
2883
- /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
2650
+ /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(
2884
2651
  EmailModal,
2885
2652
  {
2886
2653
  isOpen: emailOpen,
@@ -2896,56 +2663,56 @@ function LoginBox({
2896
2663
  }
2897
2664
 
2898
2665
  // src/components/LoginButton/index.tsx
2899
- var import_react22 = require("react");
2666
+ var import_react19 = require("react");
2900
2667
 
2901
2668
  // src/components/LoginPanel/index.tsx
2902
2669
  var import_react_intl9 = require("react-intl");
2903
- var import_jsx_runtime64 = require("react/jsx-runtime");
2670
+ var import_jsx_runtime59 = require("react/jsx-runtime");
2904
2671
  function LoginPanel({
2905
2672
  header,
2906
2673
  onClose,
2907
2674
  ...props
2908
2675
  }) {
2909
2676
  const isDownMd = useDownMd();
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" }) })
2677
+ return /* @__PURE__ */ (0, import_jsx_runtime59.jsxs)("div", { className: "matchid-login-panel", children: [
2678
+ header ? header : /* @__PURE__ */ (0, import_jsx_runtime59.jsxs)("div", { className: "matchid-login-panel-header", children: [
2679
+ /* @__PURE__ */ (0, import_jsx_runtime59.jsxs)("div", { className: "matchid-login-panel-header-content", children: [
2680
+ /* @__PURE__ */ (0, import_jsx_runtime59.jsx)("div", { className: "matchid-login-panel-header-title", children: /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(import_react_intl9.FormattedMessage, { id: "loginTitle" }) }),
2681
+ /* @__PURE__ */ (0, import_jsx_runtime59.jsx)("div", { className: "matchid-login-panel-header-subtilte", children: /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(import_react_intl9.FormattedMessage, { id: "loginTips" }) })
2915
2682
  ] }),
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 }) })
2683
+ onClose && /* @__PURE__ */ (0, import_jsx_runtime59.jsx)("div", { className: "matchid-login-panel-header-close", onClick: onClose, children: /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(CloseRoundIcon, { size: isDownMd ? 24 : 30 }) })
2917
2684
  ] }),
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 }) })
2685
+ /* @__PURE__ */ (0, import_jsx_runtime59.jsx)("div", { className: "matchid-login-panel-divide" }),
2686
+ /* @__PURE__ */ (0, import_jsx_runtime59.jsx)("div", { className: "matchid-login-panel-box", children: /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(LoginBox, { ...props }) })
2920
2687
  ] });
2921
2688
  }
2922
2689
 
2923
2690
  // src/components/LoginModal/index.tsx
2924
- var import_jsx_runtime65 = require("react/jsx-runtime");
2691
+ var import_jsx_runtime60 = require("react/jsx-runtime");
2925
2692
  function LoginModal({
2926
2693
  isOpen = false,
2927
2694
  width = 480,
2928
2695
  ...props
2929
2696
  }) {
2930
2697
  const { isLogin } = useUserInfo();
2931
- return /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
2698
+ return /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(
2932
2699
  Modal,
2933
2700
  {
2934
2701
  isOpen: isOpen && !isLogin,
2935
2702
  width,
2936
- children: /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(LoginPanel, { ...props, inModal: true })
2703
+ children: /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(LoginPanel, { ...props, inModal: true })
2937
2704
  }
2938
2705
  );
2939
2706
  }
2940
2707
 
2941
2708
  // src/components/UserPopover/index.tsx
2942
- var import_react21 = require("react");
2709
+ var import_react18 = require("react");
2943
2710
 
2944
2711
  // src/assets/icon/ProfileIcon.tsx
2945
- var import_jsx_runtime66 = require("react/jsx-runtime");
2712
+ var import_jsx_runtime61 = require("react/jsx-runtime");
2946
2713
  function ProfileIcon({ size = 24, color = "black", ...props }) {
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)(
2714
+ return /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)("svg", { width: size, height: size, viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [
2715
+ /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
2949
2716
  "path",
2950
2717
  {
2951
2718
  fillRule: "evenodd",
@@ -2954,7 +2721,7 @@ function ProfileIcon({ size = 24, color = "black", ...props }) {
2954
2721
  fill: color
2955
2722
  }
2956
2723
  ),
2957
- /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
2724
+ /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
2958
2725
  "path",
2959
2726
  {
2960
2727
  fillRule: "evenodd",
@@ -2968,10 +2735,10 @@ function ProfileIcon({ size = 24, color = "black", ...props }) {
2968
2735
 
2969
2736
  // src/components/UserPopover/index.tsx
2970
2737
  var import_react_intl10 = require("react-intl");
2971
- var import_jsx_runtime67 = require("react/jsx-runtime");
2738
+ var import_jsx_runtime62 = require("react/jsx-runtime");
2972
2739
  function UserContent() {
2973
2740
  const { logout, address, username } = useUserInfo();
2974
- const [logouting, setLogouting] = (0, import_react21.useState)(false);
2741
+ const [logouting, setLogouting] = (0, import_react18.useState)(false);
2975
2742
  const onLogout = async () => {
2976
2743
  if (logouting) return;
2977
2744
  try {
@@ -2989,34 +2756,34 @@ function UserContent() {
2989
2756
  rightIcon,
2990
2757
  onClick
2991
2758
  }) => {
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: [
2759
+ return /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)("div", { className: "matchid-user-popover-item", onClick, children: [
2760
+ /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)("div", { className: `matchid-user-popover-item-content`, children: [
2994
2761
  icon,
2995
- /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("div", { className: "matchid-user-popover-item-text", children })
2762
+ /* @__PURE__ */ (0, import_jsx_runtime62.jsx)("div", { className: "matchid-user-popover-item-text", children })
2996
2763
  ] }),
2997
2764
  rightIcon
2998
2765
  ] });
2999
2766
  };
3000
2767
  const UserDivider = () => {
3001
- return /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("div", { className: `matchid-user-popover-divider` });
2768
+ return /* @__PURE__ */ (0, import_jsx_runtime62.jsx)("div", { className: `matchid-user-popover-divider` });
3002
2769
  };
3003
- const [usernameOpen, setUsernameOpen] = (0, import_react21.useState)(false);
2770
+ const [usernameOpen, setUsernameOpen] = (0, import_react18.useState)(false);
3004
2771
  const [copied, setCopied] = useCopyClipboard();
3005
2772
  const intl = (0, import_react_intl10.useIntl)();
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: () => {
2773
+ return /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)("div", { className: "matchid-user-popover-content", children: [
2774
+ /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)("div", { className: "matchid-user-popover-list", children: [
2775
+ /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(UserItem, { onClick: () => {
3009
2776
  setCopied(address);
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: () => {
2777
+ }, icon: copied ? /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(CheckIcon, { size: 20, color: "#0ecb81" }) : /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(CopyIcon, { size: 20, color: "var(--icon-color)" }), rightIcon: /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(CheckIcon, { size: 20, color: "var(--icon-color)" }), children: truncateAddress(address) }),
2778
+ /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(UserDivider, {}),
2779
+ /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(UserItem, { onClick: () => {
3013
2780
  setUsernameOpen(true);
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({
2781
+ }, icon: /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(ProfileIcon, { size: 20, color: "var(--icon-color)" }), rightIcon: /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(ArrowRightIcon, { size: 20, color: "var(--icon-color)" }), children: username || intl.formatMessage({
3015
2782
  id: "setUsername"
3016
2783
  }) })
3017
2784
  ] }),
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: () => {
2785
+ /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(Button, { onClick: onLogout, loading: logouting, children: /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(import_react_intl10.FormattedMessage, { id: "disconnect" }) }),
2786
+ /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(UsernameModal, { isOpen: usernameOpen, onClose: () => {
3020
2787
  setUsernameOpen(false);
3021
2788
  }, onSuccess: () => {
3022
2789
  setUsernameOpen(false);
@@ -3027,12 +2794,12 @@ function UserPopover({
3027
2794
  children,
3028
2795
  ...props
3029
2796
  }) {
3030
- return /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(Popover, { ...props, content: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(UserContent, {}), children });
2797
+ return /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(Popover, { ...props, content: /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(UserContent, {}), children });
3031
2798
  }
3032
2799
 
3033
2800
  // src/components/LoginButton/index.tsx
3034
2801
  var import_react_intl11 = require("react-intl");
3035
- var import_jsx_runtime68 = require("react/jsx-runtime");
2802
+ var import_jsx_runtime63 = require("react/jsx-runtime");
3036
2803
  function LoginButton({
3037
2804
  loginRender,
3038
2805
  methods,
@@ -3046,10 +2813,10 @@ function LoginButton({
3046
2813
  }) {
3047
2814
  const intl = (0, import_react_intl11.useIntl)();
3048
2815
  const { isLogin, username } = useUserInfo();
3049
- const [loginOpen, setLoginOpen] = (0, import_react22.useState)(false);
2816
+ const [loginOpen, setLoginOpen] = (0, import_react19.useState)(false);
3050
2817
  if (!isLogin) {
3051
- return /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)(import_jsx_runtime68.Fragment, { children: [
3052
- /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(
2818
+ return /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)(import_jsx_runtime63.Fragment, { children: [
2819
+ /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
3053
2820
  LoginModal,
3054
2821
  {
3055
2822
  methods,
@@ -3059,32 +2826,32 @@ function LoginButton({
3059
2826
  onClose: () => setLoginOpen(false)
3060
2827
  }
3061
2828
  ),
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" }) })
2829
+ /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)(Button, { className: "matchid-unlogin-btn", ...props, highlight: true, onClick: () => setLoginOpen(true), children: [
2830
+ /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(UnLoginIcon_default, {}),
2831
+ /* @__PURE__ */ (0, import_jsx_runtime63.jsx)("span", { children: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(import_react_intl11.FormattedMessage, { id: "login" }) })
3065
2832
  ] })
3066
2833
  ] });
3067
2834
  }
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({
2835
+ return loginRender ? /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(import_jsx_runtime63.Fragment, { children: loginRender }) : /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(UserPopover, { position: popoverPosition, type: popoverType, gap: popoverGap, children: /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)(Button, { onClick: onLoginClick, className: "matchid-login-btn", ...props, children: [
2836
+ /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(LoginIcon_default, {}),
2837
+ /* @__PURE__ */ (0, import_jsx_runtime63.jsx)("span", { children: username ? truncateAddress(username) : "MatchID " + intl.formatMessage({
3071
2838
  id: "user"
3072
2839
  }) })
3073
2840
  ] }) });
3074
2841
  }
3075
2842
 
3076
2843
  // src/components/UsernameModal/index.tsx
3077
- var import_react23 = require("react");
2844
+ var import_react20 = require("react");
3078
2845
 
3079
2846
  // src/assets/icon/InfoRoundIcon.tsx
3080
- var import_jsx_runtime69 = require("react/jsx-runtime");
2847
+ var import_jsx_runtime64 = require("react/jsx-runtime");
3081
2848
  function InfoRoundIcon({
3082
2849
  size,
3083
2850
  color = "#6E6E6E",
3084
2851
  ...props
3085
2852
  }) {
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)(
2853
+ return /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)("svg", { width: size, height: size, viewBox: "0 0 16 16", fill: "none", xmlns: "http://www.w3.org/2000/svg", ...props, children: [
2854
+ /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("g", { clipPath: "url(#clip0_418_7746)", children: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
3088
2855
  "path",
3089
2856
  {
3090
2857
  fillRule: "evenodd",
@@ -3093,21 +2860,21 @@ function InfoRoundIcon({
3093
2860
  fill: color
3094
2861
  }
3095
2862
  ) }),
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" }) }) })
2863
+ /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("defs", { children: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("clipPath", { id: "clip0_418_7746", children: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("rect", { width: "16", height: "16", fill: "white" }) }) })
3097
2864
  ] });
3098
2865
  }
3099
2866
 
3100
2867
  // src/components/UsernameModal/index.tsx
3101
2868
  var import_react_intl12 = require("react-intl");
3102
- var import_jsx_runtime70 = require("react/jsx-runtime");
2869
+ var import_jsx_runtime65 = require("react/jsx-runtime");
3103
2870
  var ValidItem = ({
3104
2871
  success = false,
3105
2872
  text
3106
2873
  }) => {
3107
2874
  const isDownMd = useDownMd();
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 })
2875
+ return /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { className: `matchid-valid-status-item matchid-valid-status-${success ? "success" : "error"}`, children: [
2876
+ success ? /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(CheckRoundIcon, { size: isDownMd ? 12 : 16 }) : /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(InfoRoundIcon, { size: isDownMd ? 12 : 16 }),
2877
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsx)("span", { children: text })
3111
2878
  ] });
3112
2879
  };
3113
2880
  function UsernameModal({
@@ -3118,23 +2885,23 @@ function UsernameModal({
3118
2885
  }) {
3119
2886
  const { username, refreshOverview } = useUserInfo();
3120
2887
  const { isLogin } = useUserInfo();
3121
- const [val, setVal] = (0, import_react23.useState)(username);
3122
- const [error, setError] = (0, import_react23.useState)("");
2888
+ const [val, setVal] = (0, import_react20.useState)(username);
2889
+ const [error, setError] = (0, import_react20.useState)("");
3123
2890
  const isDownMd = useDownMd();
3124
- (0, import_react23.useEffect)(() => {
2891
+ (0, import_react20.useEffect)(() => {
3125
2892
  if (isOpen) {
3126
2893
  setVal(username);
3127
2894
  setError("");
3128
2895
  }
3129
2896
  }, [isOpen]);
3130
- const isValid = (0, import_react23.useMemo)(() => {
2897
+ const isValid = (0, import_react20.useMemo)(() => {
3131
2898
  return isValidUsername(val);
3132
2899
  }, [val]);
3133
- const isLength = (0, import_react23.useMemo)(() => {
2900
+ const isLength = (0, import_react20.useMemo)(() => {
3134
2901
  return val.length >= 2 && val.length <= 32;
3135
2902
  }, [val]);
3136
2903
  const isSafe = isValid && isLength;
3137
- const [isSubmitting, setIsSubmitting] = (0, import_react23.useState)(false);
2904
+ const [isSubmitting, setIsSubmitting] = (0, import_react20.useState)(false);
3138
2905
  const onSubmit = async () => {
3139
2906
  if (isSubmitting) return;
3140
2907
  try {
@@ -3155,12 +2922,12 @@ function UsernameModal({
3155
2922
  }
3156
2923
  };
3157
2924
  const intl = (0, import_react_intl12.useIntl)();
3158
- return /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(ModalWithHeader, { isOpen: isOpen && isLogin, ...props, title: title || intl.formatMessage({
2925
+ return /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(ModalWithHeader, { isOpen: isOpen && isLogin, ...props, title: title || intl.formatMessage({
3159
2926
  id: username ? "editUsernameTitle" : "setUsernameTitle"
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({
2927
+ }), children: /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { className: "matchid-username-box", children: [
2928
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(Field, { label: intl.formatMessage({
3162
2929
  id: "username"
3163
- }), error, children: /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
2930
+ }), error, children: /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
3164
2931
  Input,
3165
2932
  {
3166
2933
  placeholder: intl.formatMessage({
@@ -3173,8 +2940,8 @@ function UsernameModal({
3173
2940
  value: val
3174
2941
  }
3175
2942
  ) }),
3176
- /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)("div", { className: "matchid-valid", children: [
3177
- /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
2943
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { className: "matchid-valid", children: [
2944
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
3178
2945
  ValidItem,
3179
2946
  {
3180
2947
  success: isValid,
@@ -3183,21 +2950,21 @@ function UsernameModal({
3183
2950
  })
3184
2951
  }
3185
2952
  ),
3186
- /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(ValidItem, { success: isLength, text: intl.formatMessage({
2953
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(ValidItem, { success: isLength, text: intl.formatMessage({
3187
2954
  id: "usernameLengthError"
3188
2955
  }) })
3189
2956
  ] }),
3190
- /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(Button, { disabled: !isSafe, loading: isSubmitting, style: {
2957
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(Button, { disabled: !isSafe, loading: isSubmitting, style: {
3191
2958
  marginTop: isDownMd ? "36px" : "64px"
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: {
2959
+ }, onClick: onSubmit, size: "lg", block: true, highlight: true, children: /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(import_react_intl12.FormattedMessage, { id: "confirm" }) }),
2960
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(Button, { style: {
3194
2961
  marginTop: isDownMd ? "12px" : "24px"
3195
- }, onClick: props.onClose, size: "lg", block: true, children: /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(import_react_intl12.FormattedMessage, { id: "cancel" }) })
2962
+ }, onClick: props.onClose, size: "lg", block: true, children: /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(import_react_intl12.FormattedMessage, { id: "cancel" }) })
3196
2963
  ] }) });
3197
2964
  }
3198
2965
 
3199
2966
  // src/components/SOLModal/index.tsx
3200
- var import_react25 = __toESM(require("react"));
2967
+ var import_react22 = __toESM(require("react"));
3201
2968
  var import_web3 = require("@solana/web3.js");
3202
2969
  var import_wallet_adapter_react = require("@solana/wallet-adapter-react");
3203
2970
  var import_wallet_adapter_react_ui = require("@solana/wallet-adapter-react-ui");
@@ -3216,7 +2983,7 @@ var import_styles = require("@solana/wallet-adapter-react-ui/styles.css");
3216
2983
  var import_react_intl13 = require("react-intl");
3217
2984
 
3218
2985
  // src/components/WalletModalContent/index.tsx
3219
- var import_react24 = require("react");
2986
+ var import_react21 = require("react");
3220
2987
 
3221
2988
  // src/assets/wallet.ts
3222
2989
  var walletErrorImage = "data:image/png;base64,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";
@@ -3226,7 +2993,7 @@ var walletConnectImage = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQAAAAEA
3226
2993
  var walletSigningImage = "data:image/png;base64,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";
3227
2994
 
3228
2995
  // src/components/WalletModalContent/index.tsx
3229
- var import_jsx_runtime71 = require("react/jsx-runtime");
2996
+ var import_jsx_runtime66 = require("react/jsx-runtime");
3230
2997
  function WalletModalContent({
3231
2998
  status,
3232
2999
  error,
@@ -3237,7 +3004,7 @@ function WalletModalContent({
3237
3004
  address,
3238
3005
  connected
3239
3006
  }) {
3240
- const pageData = (0, import_react24.useMemo)(() => {
3007
+ const pageData = (0, import_react21.useMemo)(() => {
3241
3008
  if (status == "success") {
3242
3009
  return {
3243
3010
  btnText: "Disconnect Wallet",
@@ -3296,12 +3063,12 @@ function WalletModalContent({
3296
3063
  statusImage: walletConnectImage
3297
3064
  };
3298
3065
  }, [visible, connected, status, error, address]);
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 })
3066
+ return /* @__PURE__ */ (0, import_jsx_runtime66.jsx)("div", { className: "matchid-wallet-container", children: /* @__PURE__ */ (0, import_jsx_runtime66.jsxs)("div", { className: `matchid-wallet-box`, children: [
3067
+ /* @__PURE__ */ (0, import_jsx_runtime66.jsxs)("div", { className: `matchid-wallet-content`, children: [
3068
+ /* @__PURE__ */ (0, import_jsx_runtime66.jsx)("img", { src: pageData.statusImage }),
3069
+ /* @__PURE__ */ (0, import_jsx_runtime66.jsx)("div", { className: pageData.isError ? "text-[#F7585E]" : "", children: pageData.text })
3303
3070
  ] }),
3304
- /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(
3071
+ /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
3305
3072
  Button,
3306
3073
  {
3307
3074
  block: true,
@@ -3316,7 +3083,7 @@ function WalletModalContent({
3316
3083
  }
3317
3084
 
3318
3085
  // src/components/SOLModal/index.tsx
3319
- var import_jsx_runtime72 = require("react/jsx-runtime");
3086
+ var import_jsx_runtime67 = require("react/jsx-runtime");
3320
3087
  function WalletContent({
3321
3088
  onSuccess,
3322
3089
  type
@@ -3324,17 +3091,17 @@ function WalletContent({
3324
3091
  const { setVisible, visible } = (0, import_wallet_adapter_react_ui.useWalletModal)();
3325
3092
  const wallet = (0, import_wallet_adapter_react.useWallet)();
3326
3093
  const { events, login } = useMatch();
3327
- const [status, setStatus] = (0, import_react25.useState)("");
3328
- const statusRef = import_react25.default.useRef(status);
3329
- const [error, setError] = (0, import_react25.useState)("");
3330
- (0, import_react25.useEffect)(() => {
3094
+ const [status, setStatus] = (0, import_react22.useState)("");
3095
+ const statusRef = import_react22.default.useRef(status);
3096
+ const [error, setError] = (0, import_react22.useState)("");
3097
+ (0, import_react22.useEffect)(() => {
3331
3098
  const init = async () => {
3332
3099
  await wallet.disconnect();
3333
3100
  setVisible(true);
3334
3101
  };
3335
3102
  init();
3336
3103
  }, []);
3337
- (0, import_react25.useEffect)(() => {
3104
+ (0, import_react22.useEffect)(() => {
3338
3105
  if (wallet.connected) {
3339
3106
  console.log("wallet.connected", wallet.connected);
3340
3107
  toLoginInWallet();
@@ -3346,10 +3113,7 @@ function WalletContent({
3346
3113
  try {
3347
3114
  setStatus("nonce");
3348
3115
  statusRef.current = "nonce";
3349
- const res = type == "bind" ? await getWalletInitApi({
3350
- address,
3351
- type: "SOL"
3352
- }) : await getWalletNonceApi({ address, type: "SOL" });
3116
+ const res = type == "bind" ? await getWalletInitApi({ address, type: "SOL" }) : await getWalletNonceApi({ address, type: "SOL" });
3353
3117
  if (!isSuccess(res)) {
3354
3118
  throw new Error(res.message);
3355
3119
  }
@@ -3398,7 +3162,7 @@ function WalletContent({
3398
3162
  statusRef.current = "";
3399
3163
  }
3400
3164
  };
3401
- return /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
3165
+ return /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(
3402
3166
  WalletModalContent,
3403
3167
  {
3404
3168
  connected: wallet.connected,
@@ -3453,24 +3217,21 @@ var wallets = [
3453
3217
  new import_wallet_adapter_wallets.TrustWalletAdapter(),
3454
3218
  new import_wallet_adapter_wallets.XDEFIWalletAdapter()
3455
3219
  ];
3456
- function SOLConnectModal({
3220
+ function SOLModal({
3457
3221
  type = "login",
3458
3222
  onSuccess,
3459
3223
  ...props
3460
3224
  }) {
3461
3225
  const intl = (0, import_react_intl13.useIntl)();
3462
- return /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(ModalWithHeader, { ...props, title: props.title || intl.formatMessage({
3226
+ return /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(ModalWithHeader, { ...props, title: props.title || intl.formatMessage({
3463
3227
  id: type == "bind" ? "bindWith" : "loginWith"
3464
3228
  }, {
3465
3229
  name: "SOL"
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 }) }) }) }) });
3467
- }
3468
- function SOLModal(props) {
3469
- return props.isOpen && /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(SOLConnectModal, { ...props });
3230
+ }), children: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(import_wallet_adapter_react.ConnectionProvider, { endpoint: (0, import_web3.clusterApiUrl)("devnet"), children: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(import_wallet_adapter_react.WalletProvider, { wallets, autoConnect: true, children: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(import_wallet_adapter_react_ui.WalletModalProvider, { children: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(WalletContent, { onSuccess, type }) }) }) }) });
3470
3231
  }
3471
3232
 
3472
3233
  // src/components/TRONModal/index.tsx
3473
- var import_react27 = __toESM(require("react"));
3234
+ var import_react24 = __toESM(require("react"));
3474
3235
  var import_react_intl14 = require("react-intl");
3475
3236
 
3476
3237
  // src/lib/tron/TronLinkAdapter.ts
@@ -3504,7 +3265,7 @@ var TronLinkAdapter = class {
3504
3265
  };
3505
3266
 
3506
3267
  // src/hooks/useTRONWallet.ts
3507
- var import_react26 = require("react");
3268
+ var import_react23 = require("react");
3508
3269
 
3509
3270
  // src/lib/tron/BitgetAdapter.ts
3510
3271
  var BitgetAdapter = class {
@@ -3549,9 +3310,9 @@ var OKXAdapter = class {
3549
3310
  // src/hooks/useTRONWallet.ts
3550
3311
  var useTRONWallet = () => {
3551
3312
  const wallets2 = [new TronLinkAdapter(), new BitgetAdapter(), new OKXAdapter()];
3552
- const [installedWallets, setInstalledWallets] = (0, import_react26.useState)([]);
3553
- const [address, setAddress] = (0, import_react26.useState)(null);
3554
- (0, import_react26.useEffect)(() => {
3313
+ const [installedWallets, setInstalledWallets] = (0, import_react23.useState)([]);
3314
+ const [address, setAddress] = (0, import_react23.useState)(null);
3315
+ (0, import_react23.useEffect)(() => {
3555
3316
  const getInstalled = async () => {
3556
3317
  const installed = await Promise.all(wallets2.map((wallet2) => wallet2.isInstalled().then((isInstalled) => ({
3557
3318
  wallet: wallet2,
@@ -3561,11 +3322,11 @@ var useTRONWallet = () => {
3561
3322
  };
3562
3323
  getInstalled();
3563
3324
  }, []);
3564
- const [wallet, chooseWallet] = (0, import_react26.useState)(null);
3325
+ const [wallet, chooseWallet] = (0, import_react23.useState)(null);
3565
3326
  const onConnect = async () => {
3566
3327
  setAddress(await wallet.connect());
3567
3328
  };
3568
- (0, import_react26.useEffect)(() => {
3329
+ (0, import_react23.useEffect)(() => {
3569
3330
  if (!wallet) {
3570
3331
  setAddress(null);
3571
3332
  }
@@ -3581,8 +3342,8 @@ var useTRONWallet = () => {
3581
3342
  };
3582
3343
 
3583
3344
  // src/components/TRONModal/index.tsx
3584
- var import_jsx_runtime73 = require("react/jsx-runtime");
3585
- function TRONConnectModal({
3345
+ var import_jsx_runtime68 = require("react/jsx-runtime");
3346
+ function TRONModal({
3586
3347
  type = "login",
3587
3348
  onSuccess,
3588
3349
  ...props
@@ -3591,15 +3352,15 @@ function TRONConnectModal({
3591
3352
  const intl = (0, import_react_intl14.useIntl)();
3592
3353
  const { wallets: wallets2, installedWallets, chooseWallet, wallet, address, onConnect } = useTRONWallet();
3593
3354
  const iconMaps = {
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 })
3355
+ tronlink: /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(TronLinkIcon, { size: isDownMd ? 36 : 40 }),
3356
+ bitget: /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(BitgetIcon, { size: isDownMd ? 36 : 40 }),
3357
+ okx: /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(OKXIcon, { size: isDownMd ? 36 : 40 })
3597
3358
  };
3598
3359
  const { events, login } = useMatch();
3599
- const [status, setStatus] = (0, import_react27.useState)("");
3600
- const statusRef = import_react27.default.useRef(status);
3601
- const [error, setError] = (0, import_react27.useState)("");
3602
- const connected = (0, import_react27.useMemo)(() => {
3360
+ const [status, setStatus] = (0, import_react24.useState)("");
3361
+ const statusRef = import_react24.default.useRef(status);
3362
+ const [error, setError] = (0, import_react24.useState)("");
3363
+ const connected = (0, import_react24.useMemo)(() => {
3603
3364
  return !!address;
3604
3365
  }, [address]);
3605
3366
  const disconnect = async () => {
@@ -3667,7 +3428,7 @@ function TRONConnectModal({
3667
3428
  statusRef.current = "";
3668
3429
  }
3669
3430
  };
3670
- (0, import_react27.useEffect)(() => {
3431
+ (0, import_react24.useEffect)(() => {
3671
3432
  if (wallet) {
3672
3433
  console.log("onConnect");
3673
3434
  onConnect();
@@ -3675,21 +3436,21 @@ function TRONConnectModal({
3675
3436
  setStatus("");
3676
3437
  }
3677
3438
  }, [wallet]);
3678
- (0, import_react27.useEffect)(() => {
3439
+ (0, import_react24.useEffect)(() => {
3679
3440
  if (address) {
3680
3441
  toLoginInWallet();
3681
3442
  }
3682
3443
  }, [address]);
3683
- (0, import_react27.useEffect)(() => {
3444
+ (0, import_react24.useEffect)(() => {
3684
3445
  if (!props.isOpen) {
3685
3446
  disconnect();
3686
3447
  }
3687
3448
  }, [props.isOpen]);
3688
- return /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(ModalWithHeader, { ...props, title: props.title || intl.formatMessage({
3449
+ return /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(ModalWithHeader, { ...props, title: props.title || intl.formatMessage({
3689
3450
  id: type == "bind" ? "bindWith" : "loginWith"
3690
3451
  }, {
3691
3452
  name: "TRON"
3692
- }), onBack: wallet ? onBack : void 0, children: wallet ? /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
3453
+ }), onBack: wallet ? onBack : void 0, children: wallet ? /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(
3693
3454
  WalletModalContent,
3694
3455
  {
3695
3456
  error,
@@ -3702,9 +3463,9 @@ function TRONConnectModal({
3702
3463
  setVisible: () => {
3703
3464
  }
3704
3465
  }
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: [
3466
+ ) : /* @__PURE__ */ (0, import_jsx_runtime68.jsx)("div", { className: "matchid-login-box", children: /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)("div", { className: "matchid-login-recommend-list", children: [
3706
3467
  installedWallets.map((wallet2) => {
3707
- return /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
3468
+ return /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(
3708
3469
  RecommendItem,
3709
3470
  {
3710
3471
  icon: iconMaps[wallet2.walletKey],
@@ -3717,14 +3478,14 @@ function TRONConnectModal({
3717
3478
  );
3718
3479
  }),
3719
3480
  wallets2.filter((wallet2) => !installedWallets.find((installedWallet) => installedWallet.walletKey == wallet2.walletKey)).map((wallet2) => {
3720
- return /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
3481
+ return /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(
3721
3482
  RecommendItem,
3722
3483
  {
3723
3484
  icon: iconMaps[wallet2.walletKey],
3724
3485
  name: wallet2.name,
3725
3486
  onClick: () => {
3726
3487
  },
3727
- footer: /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(Button, { size: "sm", onClick: () => {
3488
+ footer: /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(Button, { size: "sm", onClick: () => {
3728
3489
  window.open(wallet2.website);
3729
3490
  }, children: "Install" })
3730
3491
  },
@@ -3733,29 +3494,26 @@ function TRONConnectModal({
3733
3494
  })
3734
3495
  ] }) }) });
3735
3496
  }
3736
- function TRONModal(props) {
3737
- return props.isOpen && /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(TRONConnectModal, { ...props, type: "" });
3738
- }
3739
3497
 
3740
3498
  // src/components/TONModal/index.tsx
3741
- var import_react28 = __toESM(require("react"));
3499
+ var import_react25 = __toESM(require("react"));
3742
3500
  var import_react_intl15 = require("react-intl");
3743
3501
  var import_ui_react = require("@tonconnect/ui-react");
3744
- var import_jsx_runtime74 = require("react/jsx-runtime");
3502
+ var import_jsx_runtime69 = require("react/jsx-runtime");
3745
3503
  function WalletContent2({
3746
3504
  onSuccess,
3747
3505
  type
3748
3506
  }) {
3749
3507
  const { events, login } = useMatch();
3750
- const [connected, setConnected] = (0, import_react28.useState)(false);
3508
+ const [connected, setConnected] = (0, import_react25.useState)(false);
3751
3509
  const wallet = (0, import_ui_react.useTonWallet)();
3752
3510
  const userFriendlyAddress = (0, import_ui_react.useTonAddress)();
3753
3511
  const [tonConnectUI] = (0, import_ui_react.useTonConnectUI)();
3754
3512
  const { state, open, close } = (0, import_ui_react.useTonConnectModal)();
3755
- const [status, setStatus] = (0, import_react28.useState)("");
3756
- const statusRef = import_react28.default.useRef(status);
3757
- const [error, setError] = (0, import_react28.useState)("");
3758
- (0, import_react28.useEffect)(() => {
3513
+ const [status, setStatus] = (0, import_react25.useState)("");
3514
+ const statusRef = import_react25.default.useRef(status);
3515
+ const [error, setError] = (0, import_react25.useState)("");
3516
+ (0, import_react25.useEffect)(() => {
3759
3517
  const init = async () => {
3760
3518
  if (wallet) {
3761
3519
  await tonConnectUI.disconnect();
@@ -3828,7 +3586,7 @@ function WalletContent2({
3828
3586
  }
3829
3587
  });
3830
3588
  }, []);
3831
- (0, import_react28.useEffect)(() => {
3589
+ (0, import_react25.useEffect)(() => {
3832
3590
  if (wallet) {
3833
3591
  setConnected(true);
3834
3592
  console.log("Wallet connected:", wallet);
@@ -3839,7 +3597,7 @@ function WalletContent2({
3839
3597
  setStatus("");
3840
3598
  }
3841
3599
  }, [wallet]);
3842
- (0, import_react28.useEffect)(() => {
3600
+ (0, import_react25.useEffect)(() => {
3843
3601
  console.log({
3844
3602
  state,
3845
3603
  wallet
@@ -3868,7 +3626,7 @@ function WalletContent2({
3868
3626
  }
3869
3627
  }
3870
3628
  }, [state]);
3871
- return /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(
3629
+ return /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
3872
3630
  WalletModalContent,
3873
3631
  {
3874
3632
  connected,
@@ -3894,7 +3652,7 @@ function WalletContent2({
3894
3652
  }
3895
3653
  );
3896
3654
  }
3897
- function TONConnectModal({
3655
+ function TONModal({
3898
3656
  type = "login",
3899
3657
  onSuccess,
3900
3658
  ...props
@@ -3902,24 +3660,21 @@ function TONConnectModal({
3902
3660
  const intl = (0, import_react_intl15.useIntl)();
3903
3661
  const { endpoints, appid } = useLocalStore_default();
3904
3662
  const manifestUrl = `${endpoints.back}api/v1/wallet/ton?appid=${appid}&url=` + encodeURIComponent(window.location.origin);
3905
- return /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(ModalWithHeader, { ...props, title: props.title || intl.formatMessage({
3663
+ return /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(ModalWithHeader, { ...props, title: props.title || intl.formatMessage({
3906
3664
  id: type == "bind" ? "bindWith" : "loginWith"
3907
3665
  }, {
3908
3666
  name: "TON"
3909
- }), children: /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(
3667
+ }), children: /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
3910
3668
  import_ui_react.TonConnectUIProvider,
3911
3669
  {
3912
3670
  manifestUrl,
3913
- children: /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(WalletContent2, { onSuccess, type })
3671
+ children: /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(WalletContent2, { onSuccess, type })
3914
3672
  }
3915
3673
  ) });
3916
3674
  }
3917
- function TONModal(props) {
3918
- return props.isOpen && /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(TONConnectModal, { ...props });
3919
- }
3920
3675
 
3921
3676
  // src/components/BTCModal/index.tsx
3922
- var import_react30 = __toESM(require("react"));
3677
+ var import_react27 = __toESM(require("react"));
3923
3678
  var import_react_intl16 = require("react-intl");
3924
3679
 
3925
3680
  // src/lib/btc/UnisatAdapter.ts
@@ -3991,7 +3746,7 @@ var XverseAdapter = class {
3991
3746
  }
3992
3747
  });
3993
3748
  } catch (err) {
3994
- matchlog_default.error(err);
3749
+ console.error(err);
3995
3750
  resolve(false);
3996
3751
  }
3997
3752
  });
@@ -4068,12 +3823,12 @@ var LeatherAdapter = class {
4068
3823
  };
4069
3824
 
4070
3825
  // src/hooks/useBTCWallet.ts
4071
- var import_react29 = require("react");
3826
+ var import_react26 = require("react");
4072
3827
  var useBTCWallet = () => {
4073
3828
  const wallets2 = [new UnisatAdapter(), new XverseAdapter(), new LeatherAdapter()];
4074
- const [installedWallets, setInstalledWallets] = (0, import_react29.useState)([]);
4075
- const [address, setAddress] = (0, import_react29.useState)(null);
4076
- (0, import_react29.useEffect)(() => {
3829
+ const [installedWallets, setInstalledWallets] = (0, import_react26.useState)([]);
3830
+ const [address, setAddress] = (0, import_react26.useState)(null);
3831
+ (0, import_react26.useEffect)(() => {
4077
3832
  const getInstalled = async () => {
4078
3833
  const installed = await Promise.all(wallets2.map((wallet2) => wallet2.isInstalled().then((isInstalled) => ({
4079
3834
  wallet: wallet2,
@@ -4083,11 +3838,11 @@ var useBTCWallet = () => {
4083
3838
  };
4084
3839
  getInstalled();
4085
3840
  }, []);
4086
- const [wallet, chooseWallet] = (0, import_react29.useState)(null);
3841
+ const [wallet, chooseWallet] = (0, import_react26.useState)(null);
4087
3842
  const onConnect = async () => {
4088
3843
  setAddress(await wallet.connect());
4089
3844
  };
4090
- (0, import_react29.useEffect)(() => {
3845
+ (0, import_react26.useEffect)(() => {
4091
3846
  if (!wallet) {
4092
3847
  setAddress(null);
4093
3848
  }
@@ -4103,8 +3858,8 @@ var useBTCWallet = () => {
4103
3858
  };
4104
3859
 
4105
3860
  // src/components/BTCModal/index.tsx
4106
- var import_jsx_runtime75 = require("react/jsx-runtime");
4107
- function BTCConnectModal({
3861
+ var import_jsx_runtime70 = require("react/jsx-runtime");
3862
+ function BTCModal({
4108
3863
  type = "login",
4109
3864
  onSuccess,
4110
3865
  ...props
@@ -4113,15 +3868,15 @@ function BTCConnectModal({
4113
3868
  const intl = (0, import_react_intl16.useIntl)();
4114
3869
  const { wallets: wallets2, installedWallets, chooseWallet, wallet, address, onConnect } = useBTCWallet();
4115
3870
  const iconMaps = {
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 })
3871
+ leather: /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(LeatherIcon, { size: isDownMd ? 36 : 40 }),
3872
+ unisat: /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(UnisatIcon, { size: isDownMd ? 36 : 40 }),
3873
+ xverse: /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(XverseIcon, { size: isDownMd ? 36 : 40 })
4119
3874
  };
4120
3875
  const { events, login } = useMatch();
4121
- const [status, setStatus] = (0, import_react30.useState)("");
4122
- const statusRef = import_react30.default.useRef(status);
4123
- const [error, setError] = (0, import_react30.useState)("");
4124
- const connected = (0, import_react30.useMemo)(() => {
3876
+ const [status, setStatus] = (0, import_react27.useState)("");
3877
+ const statusRef = import_react27.default.useRef(status);
3878
+ const [error, setError] = (0, import_react27.useState)("");
3879
+ const connected = (0, import_react27.useMemo)(() => {
4125
3880
  return !!address;
4126
3881
  }, [address]);
4127
3882
  const disconnect = async () => {
@@ -4185,7 +3940,7 @@ function BTCConnectModal({
4185
3940
  statusRef.current = "";
4186
3941
  }
4187
3942
  };
4188
- (0, import_react30.useEffect)(() => {
3943
+ (0, import_react27.useEffect)(() => {
4189
3944
  if (wallet) {
4190
3945
  console.log("onConnect");
4191
3946
  try {
@@ -4198,12 +3953,12 @@ function BTCConnectModal({
4198
3953
  setStatus("");
4199
3954
  }
4200
3955
  }, [wallet]);
4201
- (0, import_react30.useEffect)(() => {
3956
+ (0, import_react27.useEffect)(() => {
4202
3957
  if (address) {
4203
3958
  toLoginInWallet();
4204
3959
  }
4205
3960
  }, [address]);
4206
- (0, import_react30.useEffect)(() => {
3961
+ (0, import_react27.useEffect)(() => {
4207
3962
  if (!props.isOpen) {
4208
3963
  disconnect();
4209
3964
  }
@@ -4215,11 +3970,11 @@ function BTCConnectModal({
4215
3970
  statusRef.current = "";
4216
3971
  setError("");
4217
3972
  };
4218
- return /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(ModalWithHeader, { ...props, title: props.title || intl.formatMessage({
3973
+ return /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(ModalWithHeader, { ...props, title: props.title || intl.formatMessage({
4219
3974
  id: type == "bind" ? "bindWith" : "loginWith"
4220
3975
  }, {
4221
3976
  name: "BTC"
4222
- }), onBack: wallet ? onBack : void 0, children: wallet ? /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(
3977
+ }), onBack: wallet ? onBack : void 0, children: wallet ? /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
4223
3978
  WalletModalContent,
4224
3979
  {
4225
3980
  error,
@@ -4232,9 +3987,9 @@ function BTCConnectModal({
4232
3987
  setVisible: () => {
4233
3988
  }
4234
3989
  }
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: [
3990
+ ) : /* @__PURE__ */ (0, import_jsx_runtime70.jsx)("div", { className: "matchid-login-box", children: /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)("div", { className: "matchid-login-recommend-list", children: [
4236
3991
  installedWallets.map((wallet2) => {
4237
- return /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(
3992
+ return /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
4238
3993
  RecommendItem,
4239
3994
  {
4240
3995
  icon: iconMaps[wallet2.walletKey],
@@ -4247,14 +4002,14 @@ function BTCConnectModal({
4247
4002
  );
4248
4003
  }),
4249
4004
  wallets2.filter((wallet2) => !installedWallets.find((installedWallet) => installedWallet.walletKey == wallet2.walletKey)).map((wallet2) => {
4250
- return /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(
4005
+ return /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
4251
4006
  RecommendItem,
4252
4007
  {
4253
4008
  icon: iconMaps[wallet2.walletKey],
4254
4009
  name: wallet2.name,
4255
4010
  onClick: () => {
4256
4011
  },
4257
- footer: /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(Button, { size: "sm", onClick: () => {
4012
+ footer: /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(Button, { size: "sm", onClick: () => {
4258
4013
  window.open(wallet2.website);
4259
4014
  }, children: "Install" })
4260
4015
  },
@@ -4263,43 +4018,6 @@ function BTCConnectModal({
4263
4018
  })
4264
4019
  ] }) }) });
4265
4020
  }
4266
- function BTCModal(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 });
4302
- }
4303
4021
  // Annotate the CommonJS export names for ESM import in node:
4304
4022
  0 && (module.exports = {
4305
4023
  BTCModal,
@@ -4313,13 +4031,11 @@ function WalletModal(props) {
4313
4031
  LoginPanel,
4314
4032
  Modal,
4315
4033
  ModalWithHeader,
4316
- Overlay,
4317
4034
  PasswordModal,
4318
4035
  Popover,
4319
4036
  SOLModal,
4320
4037
  TONModal,
4321
4038
  TRONModal,
4322
- UsernameModal,
4323
- WalletModal
4039
+ UsernameModal
4324
4040
  });
4325
4041
  //# sourceMappingURL=index.js.map