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

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 (84) hide show
  1. package/dist/assets/icon/index.d.mts +4 -2
  2. package/dist/assets/icon/index.d.ts +4 -2
  3. package/dist/assets/icon/index.js +27 -0
  4. package/dist/assets/icon/index.js.map +1 -1
  5. package/dist/assets/icon/index.mjs +3 -1
  6. package/dist/chunk-A477SJHT.mjs +4549 -0
  7. package/dist/chunk-A477SJHT.mjs.map +1 -0
  8. package/dist/{chunk-DPXMCLYK.mjs → chunk-A5D3NKTK.mjs} +29 -3
  9. package/dist/chunk-A5D3NKTK.mjs.map +1 -0
  10. package/dist/{chunk-A3XSTHEE.mjs → chunk-AFZSANRV.mjs} +8 -4
  11. package/dist/chunk-AFZSANRV.mjs.map +1 -0
  12. package/dist/chunk-HBOS3RBL.mjs +19 -0
  13. package/dist/chunk-HBOS3RBL.mjs.map +1 -0
  14. package/dist/{chunk-TOUC33US.mjs → chunk-LNSJ3ZXG.mjs} +294 -4680
  15. package/dist/chunk-LNSJ3ZXG.mjs.map +1 -0
  16. package/dist/{chunk-SQIJR7RA.mjs → chunk-UA6XHZHX.mjs} +2 -14
  17. package/dist/chunk-UA6XHZHX.mjs.map +1 -0
  18. package/dist/components/index.d.mts +3 -3
  19. package/dist/components/index.d.ts +3 -3
  20. package/dist/components/index.js +450 -841
  21. package/dist/components/index.js.map +1 -1
  22. package/dist/components/index.mjs +12 -12
  23. package/dist/hooks/api/index.d.mts +2 -2
  24. package/dist/hooks/api/index.d.ts +2 -2
  25. package/dist/hooks/api/index.js +410 -256
  26. package/dist/hooks/api/index.js.map +1 -1
  27. package/dist/hooks/api/index.mjs +11 -5
  28. package/dist/hooks/index.d.mts +2 -2
  29. package/dist/hooks/index.d.ts +2 -2
  30. package/dist/hooks/index.js +659 -495
  31. package/dist/hooks/index.js.map +1 -1
  32. package/dist/hooks/index.mjs +14 -4
  33. package/dist/index-BIgM4fy0.d.mts +122 -0
  34. package/dist/{index-DR2JTaoi.d.mts → index-BVatQlwF.d.mts} +10 -2
  35. package/dist/index-Bb7IkjUW.d.mts +26 -0
  36. package/dist/index-BwD1ij0H.d.ts +122 -0
  37. package/dist/index-C2-M-aBb.d.ts +57 -0
  38. package/dist/{index-DVlCrOjr.d.ts → index-CGs_yTFg.d.ts} +5 -33
  39. package/dist/index-CKiK4KHj.d.ts +26 -0
  40. package/dist/{index-D2pNP7Bz.d.mts → index-DO5x10pN.d.mts} +46 -26
  41. package/dist/index-DamklTOJ.d.mts +57 -0
  42. package/dist/{index-B0VpxAI2.d.mts → index-M7ZB3yR5.d.mts} +5 -33
  43. package/dist/{index-CFWR1boZ.d.ts → index-Pssz41An.d.ts} +46 -26
  44. package/dist/{index-CTSg5TRS.d.ts → index-RfA22r-Z.d.ts} +10 -2
  45. package/dist/index.css +241 -3
  46. package/dist/index.d.mts +8 -6
  47. package/dist/index.d.ts +8 -6
  48. package/dist/index.js +2808 -2672
  49. package/dist/index.js.map +1 -1
  50. package/dist/index.mjs +10 -5
  51. package/dist/types/index.d.mts +1 -1
  52. package/dist/types/index.d.ts +1 -1
  53. package/dist/types/index.mjs +2 -1
  54. package/dist/{types-CRumDe2M.d.mts → types-DQq17lf4.d.mts} +116 -1
  55. package/dist/{types-CRumDe2M.d.ts → types-DQq17lf4.d.ts} +116 -1
  56. package/dist/ui/index.d.mts +6 -0
  57. package/dist/ui/index.d.ts +6 -0
  58. package/dist/ui/index.js +724 -0
  59. package/dist/ui/index.js.map +1 -0
  60. package/dist/ui/index.mjs +33 -0
  61. package/dist/ui/index.mjs.map +1 -0
  62. package/example/src/App.tsx +7 -0
  63. package/example/src/config/chains/matchMain.ts +2 -3
  64. package/example/src/pages/UI/components/AlphaAvatar.tsx +11 -0
  65. package/example/src/pages/UI/components/Radio.tsx +15 -0
  66. package/example/src/pages/UI/components/Switch.tsx +13 -0
  67. package/example/src/pages/UI/index.tsx +11 -0
  68. package/example/src/pages/User/components/BindListModal.tsx +1 -1
  69. package/example/src/pages/User/components/PohListModal.tsx +1 -1
  70. package/example/src/pages/User/index.tsx +1 -13
  71. package/example/src/pages/Wallet/components/AssetListModal.tsx +15 -0
  72. package/example/src/pages/Wallet/components/ChainListModal.tsx +11 -0
  73. package/example/src/pages/Wallet/components/ImportTokenListModal.tsx +15 -0
  74. package/example/src/pages/Wallet/components/MatchWallet.tsx +20 -0
  75. package/example/src/pages/Wallet/components/WalletChainListModal.tsx +11 -0
  76. package/example/src/pages/{Wallet.tsx → Wallet/index.tsx} +33 -2
  77. package/package.json +6 -1
  78. package/dist/chunk-A3XSTHEE.mjs.map +0 -1
  79. package/dist/chunk-DPXMCLYK.mjs.map +0 -1
  80. package/dist/chunk-SQIJR7RA.mjs.map +0 -1
  81. package/dist/chunk-TOUC33US.mjs.map +0 -1
  82. package/dist/index-CWYElOA2.d.mts +0 -65
  83. package/dist/index-CoTirILQ.d.ts +0 -65
  84. /package/example/src/{pages/User/components → components}/QueryDisplay.tsx +0 -0
@@ -42,7 +42,6 @@ __export(components_exports, {
42
42
  Modal: () => Modal,
43
43
  ModalWithHeader: () => ModalWithHeader,
44
44
  Overlay: () => Overlay,
45
- PasswordModal: () => PasswordModal,
46
45
  Popover: () => Popover,
47
46
  SOLModal: () => SOLModal,
48
47
  TONModal: () => TONModal,
@@ -53,7 +52,7 @@ __export(components_exports, {
53
52
  module.exports = __toCommonJS(components_exports);
54
53
 
55
54
  // src/components/EmailModal/index.tsx
56
- var import_react18 = require("react");
55
+ var import_react20 = require("react");
57
56
 
58
57
  // src/assets/icon/ArrowLeftIcon.tsx
59
58
  var import_jsx_runtime = require("react/jsx-runtime");
@@ -355,21 +354,6 @@ function CheckRoundIcon({
355
354
 
356
355
  // src/assets/icon/PasswordRoundIcon.tsx
357
356
  var import_jsx_runtime16 = require("react/jsx-runtime");
358
- function PasswordRoundIcon() {
359
- return /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)("svg", { width: "40", height: "40", viewBox: "0 0 40 40", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [
360
- /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("rect", { x: "0.5", y: "0.5", width: "39", height: "39", rx: "7.5", fill: "white" }),
361
- /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("rect", { x: "0.5", y: "0.5", width: "39", height: "39", rx: "7.5", stroke: "black" }),
362
- /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
363
- "path",
364
- {
365
- fillRule: "evenodd",
366
- clipRule: "evenodd",
367
- d: "M19.7673 16.1137C19.962 13.9479 21.7831 12.25 24 12.25C26.3472 12.25 28.25 14.1528 28.25 16.5C28.25 18.8472 26.3472 20.75 24 20.75C23.488 20.75 22.9987 20.6598 22.5461 20.495C21.9175 20.2662 21.1115 20.3279 20.5486 20.8908L19.2626 22.1768C19.2157 22.2237 19.1521 22.25 19.0858 22.25H18C17.3096 22.25 16.75 22.8096 16.75 23.5V24.25H15.5C14.8096 24.25 14.25 24.8096 14.25 25.5V26.5C14.25 26.6381 14.1381 26.75 14 26.75H12C11.8619 26.75 11.75 26.6381 11.75 26.5V23.9538C11.75 23.8817 11.7811 23.8131 11.8354 23.7656L19.1524 17.3632C19.5404 17.0238 19.7275 16.556 19.7673 16.1137ZM24 10.75C20.9997 10.75 18.5369 13.0473 18.2733 15.9794C18.2614 16.1115 18.2107 16.1941 18.1646 16.2344L10.8476 22.6368C10.4678 22.9691 10.25 23.4491 10.25 23.9538V26.5C10.25 27.4665 11.0335 28.25 12 28.25H14C14.9665 28.25 15.75 27.4665 15.75 26.5V25.75H17C17.6904 25.75 18.25 25.1904 18.25 24.5V23.75H19.0858C19.5499 23.75 19.995 23.5656 20.3232 23.2374L21.6092 21.9514C21.6738 21.8868 21.8277 21.8298 22.033 21.9045C22.6476 22.1283 23.3104 22.25 24 22.25C27.1756 22.25 29.75 19.6756 29.75 16.5C29.75 13.3244 27.1756 10.75 24 10.75ZM25 16.5C25.5523 16.5 26 16.0523 26 15.5C26 14.9477 25.5523 14.5 25 14.5C24.4477 14.5 24 14.9477 24 15.5C24 16.0523 24.4477 16.5 25 16.5Z",
368
- fill: "black"
369
- }
370
- )
371
- ] });
372
- }
373
357
 
374
358
  // src/assets/icon/CloseEyeIcon.tsx
375
359
  var import_jsx_runtime17 = require("react/jsx-runtime");
@@ -1109,6 +1093,9 @@ function TonLightIcon2({ size = 40, ...props }) {
1109
1093
  );
1110
1094
  }
1111
1095
 
1096
+ // src/assets/icon/ErrorRoundIcon.tsx
1097
+ var import_jsx_runtime44 = require("react/jsx-runtime");
1098
+
1112
1099
  // src/hooks/useLayout.tsx
1113
1100
  var import_react = require("react");
1114
1101
  function useDownMd() {
@@ -1125,9 +1112,9 @@ function useDownMd() {
1125
1112
  return isBelowMd;
1126
1113
  }
1127
1114
 
1128
- // src/components/Overlay/index.tsx
1115
+ // src/ui/Overlay/index.tsx
1129
1116
  var import_react2 = require("react");
1130
- var import_jsx_runtime44 = require("react/jsx-runtime");
1117
+ var import_jsx_runtime45 = require("react/jsx-runtime");
1131
1118
  function Overlay({
1132
1119
  isOpen = false,
1133
1120
  children,
@@ -1143,7 +1130,7 @@ function Overlay({
1143
1130
  document.body.style.overflow = "";
1144
1131
  };
1145
1132
  }, [isOpen]);
1146
- return isOpen ? /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
1133
+ return isOpen ? /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(
1147
1134
  "div",
1148
1135
  {
1149
1136
  className: "matchid-overlay",
@@ -1152,11 +1139,11 @@ function Overlay({
1152
1139
  },
1153
1140
  children
1154
1141
  }
1155
- ) : /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(import_jsx_runtime44.Fragment, {});
1142
+ ) : /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_jsx_runtime45.Fragment, {});
1156
1143
  }
1157
1144
 
1158
- // src/components/Modal/index.tsx
1159
- var import_jsx_runtime45 = require("react/jsx-runtime");
1145
+ // src/ui/Modal/index.tsx
1146
+ var import_jsx_runtime46 = require("react/jsx-runtime");
1160
1147
  function Modal({
1161
1148
  children,
1162
1149
  isOpen,
@@ -1164,10 +1151,10 @@ function Modal({
1164
1151
  zIndex = 100,
1165
1152
  className = ""
1166
1153
  }) {
1167
- return /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(Overlay, { isOpen, zIndex, children: /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)("div", { className: `matchid-modal ${className}`, style: {
1154
+ return /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(Overlay, { isOpen, zIndex, children: /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)("div", { className: `matchid-modal ${className}`, style: {
1168
1155
  width
1169
1156
  }, children: [
1170
- /* @__PURE__ */ (0, import_jsx_runtime45.jsx)("div", { className: "matchid-modal-mobile-header" }),
1157
+ /* @__PURE__ */ (0, import_jsx_runtime46.jsx)("div", { className: "matchid-modal-mobile-header" }),
1171
1158
  children
1172
1159
  ] }) });
1173
1160
  }
@@ -1181,13 +1168,13 @@ function ModalWithHeader({
1181
1168
  ...props
1182
1169
  }) {
1183
1170
  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 })
1171
+ return /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)(Modal, { ...props, children: [
1172
+ /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)("div", { className: `matchid-modal-header ${showBorder ? "matchid-modal-header-border" : ""}`, children: [
1173
+ /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)("div", { className: "matchid-modal-header-content", children: [
1174
+ onBack && /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(ArrowLeftIcon, { height: isDownMd ? 20 : 25, width: isDownMd ? 20 : 24, className: "matchid-modal-header-back", onClick: onBack }),
1175
+ /* @__PURE__ */ (0, import_jsx_runtime46.jsx)("span", { className: "matchid-modal-header-title", children: title })
1189
1176
  ] }),
1190
- onClose && /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(CloseRoundIcon, { size: isDownMd ? 24 : 30, className: "matchid-modal-header-close", onClick: onClose })
1177
+ onClose && /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(CloseRoundIcon, { size: isDownMd ? 24 : 30, className: "matchid-modal-header-close", onClick: onClose })
1191
1178
  ] }),
1192
1179
  children
1193
1180
  ] });
@@ -1221,8 +1208,8 @@ function getAppClientId() {
1221
1208
  return "react-sdk-" + getVersion();
1222
1209
  }
1223
1210
 
1224
- // src/components/Button/index.tsx
1225
- var import_jsx_runtime46 = require("react/jsx-runtime");
1211
+ // src/ui/Button/index.tsx
1212
+ var import_jsx_runtime47 = require("react/jsx-runtime");
1226
1213
  function Button({
1227
1214
  size = "df",
1228
1215
  disabled = false,
@@ -1241,7 +1228,7 @@ function Button({
1241
1228
  onClick && onClick();
1242
1229
  }
1243
1230
  };
1244
- return /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
1231
+ return /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
1245
1232
  "button",
1246
1233
  {
1247
1234
  type,
@@ -1251,14 +1238,14 @@ function Button({
1251
1238
  ...style
1252
1239
  },
1253
1240
  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
1241
+ children: loading ? /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(LoadingIcon_default, { className: "matchid-btn-loading-icon", color: "var(--matchid-btn-loading-color)" }) : children
1255
1242
  }
1256
1243
  );
1257
1244
  }
1258
1245
 
1259
- // src/components/Input/index.tsx
1246
+ // src/ui/Input/index.tsx
1260
1247
  var import_react3 = require("react");
1261
- var import_jsx_runtime47 = require("react/jsx-runtime");
1248
+ var import_jsx_runtime48 = require("react/jsx-runtime");
1262
1249
  function Input({
1263
1250
  onChange,
1264
1251
  type,
@@ -1268,17 +1255,17 @@ function Input({
1268
1255
  }) {
1269
1256
  const [inputType, setInputType] = (0, import_react3.useState)(type);
1270
1257
  const isDownMd = useDownMd();
1271
- return /* @__PURE__ */ (0, import_jsx_runtime47.jsxs)(
1258
+ return /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)(
1272
1259
  "div",
1273
1260
  {
1274
1261
  className: `matchid-input-box ${props.value && props.value.length > 0 ? "matchid-input-has-content" : ""} ${className}`,
1275
1262
  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) => {
1263
+ /* @__PURE__ */ (0, import_jsx_runtime48.jsx)("input", { type: inputType, onChange, ...props, className: "matchid-input-field" }),
1264
+ props.value && props.value.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime48.jsx)("div", { className: "matchid-input-delete-icon", onClick: (e) => {
1278
1265
  if (onChange) {
1279
1266
  onChange({ target: { value: "" } });
1280
1267
  }
1281
- }, children: /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
1268
+ }, children: /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
1282
1269
  DeleteRoundIcon,
1283
1270
  {
1284
1271
  height: isDownMd ? 16 : 21,
@@ -1286,17 +1273,17 @@ function Input({
1286
1273
  color: "var(--matchid-input-delete-icon-color)"
1287
1274
  }
1288
1275
  ) }),
1289
- type === "password" && /* @__PURE__ */ (0, import_jsx_runtime47.jsx)("div", { className: "matchid-input-eye-icon", onClick: () => {
1276
+ type === "password" && /* @__PURE__ */ (0, import_jsx_runtime48.jsx)("div", { className: "matchid-input-eye-icon", onClick: () => {
1290
1277
  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 }) }),
1278
+ }, children: inputType === "password" ? /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(CloseEyeIcon, { size: isDownMd ? 16 : 20 }) : /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(OpenEyeIcon, { size: isDownMd ? 16 : 20 }) }),
1292
1279
  after
1293
1280
  ]
1294
1281
  }
1295
1282
  );
1296
1283
  }
1297
1284
 
1298
- // src/components/Field/index.tsx
1299
- var import_jsx_runtime48 = require("react/jsx-runtime");
1285
+ // src/ui/Field/index.tsx
1286
+ var import_jsx_runtime49 = require("react/jsx-runtime");
1300
1287
  function Field({
1301
1288
  label,
1302
1289
  children,
@@ -1304,19 +1291,19 @@ function Field({
1304
1291
  required,
1305
1292
  className = ""
1306
1293
  }) {
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: "*" }),
1294
+ return /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)("div", { className: `matchid-field-box ${className}`, children: [
1295
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)("div", { className: "matchid-field-label", children: [
1296
+ required && /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("span", { className: "matchid-field-required", children: "*" }),
1310
1297
  label
1311
1298
  ] }),
1312
1299
  children,
1313
- error && /* @__PURE__ */ (0, import_jsx_runtime48.jsx)("div", { className: "matchid-field-error", children: error })
1300
+ error && /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("div", { className: "matchid-field-error", children: error })
1314
1301
  ] });
1315
1302
  }
1316
1303
 
1317
1304
  // src/components/EmailModal/StepEmail.tsx
1318
1305
  var import_react_intl = require("react-intl");
1319
- var import_jsx_runtime49 = require("react/jsx-runtime");
1306
+ var import_jsx_runtime50 = require("react/jsx-runtime");
1320
1307
  function StepEmail(props) {
1321
1308
  const intl = (0, import_react_intl.useIntl)();
1322
1309
  const [emailVal, setEmailVal] = (0, import_react4.useState)("");
@@ -1331,10 +1318,10 @@ function StepEmail(props) {
1331
1318
  const onContinue = async () => {
1332
1319
  props.onContinue(emailVal);
1333
1320
  };
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({
1321
+ return /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)("div", { className: "matchid-email-email-box", children: [
1322
+ /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(Field, { label: intl.formatMessage({
1336
1323
  id: "emailAddress"
1337
- }), children: /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
1324
+ }), children: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
1338
1325
  Input,
1339
1326
  {
1340
1327
  placeholder: intl.formatMessage({
@@ -1344,57 +1331,15 @@ function StepEmail(props) {
1344
1331
  value: emailVal
1345
1332
  }
1346
1333
  ) }),
1347
- /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(Button, { disabled: !canContinue, style: {
1334
+ /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(Button, { disabled: !canContinue, style: {
1348
1335
  marginTop: "64px"
1349
- }, onClick: onContinue, size: "lg", block: true, highlight: true, children: /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(import_react_intl.FormattedMessage, { id: "continue" }) })
1336
+ }, onClick: onContinue, size: "lg", block: true, highlight: true, children: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(import_react_intl.FormattedMessage, { id: "continue" }) })
1350
1337
  ] });
1351
1338
  }
1352
1339
 
1353
1340
  // src/store/useLocalStore.ts
1354
1341
  var import_zustand = require("zustand");
1355
1342
  var import_middleware = require("zustand/middleware");
1356
- var persistedState = (0, import_middleware.persist)(
1357
- (set) => ({
1358
- appid: "",
1359
- token: "",
1360
- did: "",
1361
- mid: "",
1362
- overview: null,
1363
- theme: "light",
1364
- setOverview: (overview) => set({
1365
- overview,
1366
- address: overview.address,
1367
- did: overview.did,
1368
- mid: overview.mid
1369
- }),
1370
- endpoints: {
1371
- back: "https://api.matchid.ai/",
1372
- auth: "https://auth.matchid.ai/"
1373
- },
1374
- setDid: (did) => set({ did }),
1375
- setToken: (token) => set({ token }),
1376
- setAppid: (appid) => set({ appid }),
1377
- setMid: (mid) => set({ mid }),
1378
- logout: () => set({ token: "", did: "", mid: "", address: "", overview: null }),
1379
- setTheme: (theme) => set({ theme }),
1380
- setEndpoints: (endpoints) => set({ endpoints }),
1381
- address: "",
1382
- setAddress: (address) => set({ address }),
1383
- locale: "en",
1384
- setLocale: (locale) => set({ locale }),
1385
- wallet: {
1386
- type: "UserPasscode"
1387
- },
1388
- setWallet: (wallet) => set({ wallet })
1389
- }),
1390
- { name: "match-local" }
1391
- );
1392
- var useLocalStore = (0, import_zustand.create)((0, import_middleware.devtools)(persistedState));
1393
- var localStore = useLocalStore;
1394
- var useLocalStore_default = useLocalStore;
1395
-
1396
- // src/hooks/useUserInfo.tsx
1397
- var import_react16 = require("react");
1398
1343
 
1399
1344
  // src/api/request.ts
1400
1345
  var import_axios = __toESM(require("axios"));
@@ -1654,14 +1599,63 @@ var getAppConfigApi = () => {
1654
1599
  });
1655
1600
  };
1656
1601
 
1657
- // src/MatchContext.tsx
1658
- var import_react15 = require("react");
1602
+ // src/store/useLocalStore.ts
1603
+ var persistedState = (0, import_middleware.persist)(
1604
+ (set) => ({
1605
+ appid: "",
1606
+ token: "",
1607
+ did: "",
1608
+ mid: "",
1609
+ overview: null,
1610
+ theme: "light",
1611
+ setOverview: (overview) => set({
1612
+ overview,
1613
+ address: overview.address,
1614
+ did: overview.did,
1615
+ mid: overview.mid
1616
+ }),
1617
+ refreshOverview: async () => {
1618
+ const res = await getOverviewInfoApi();
1619
+ if (res.data) {
1620
+ set({ overview: res.data });
1621
+ set({ address: res.data.address });
1622
+ set({ did: res.data.did });
1623
+ set({ mid: res.data.mid });
1624
+ }
1625
+ },
1626
+ endpoints: {
1627
+ back: "https://api.matchid.ai/",
1628
+ auth: "https://auth.matchid.ai/"
1629
+ },
1630
+ setDid: (did) => set({ did }),
1631
+ setToken: (token) => set({ token }),
1632
+ setAppid: (appid) => set({ appid }),
1633
+ setMid: (mid) => set({ mid }),
1634
+ logout: () => set({ token: "", did: "", mid: "", address: "", overview: null }),
1635
+ setTheme: (theme) => set({ theme }),
1636
+ setEndpoints: (endpoints) => set({ endpoints }),
1637
+ address: "",
1638
+ setAddress: (address) => set({ address }),
1639
+ locale: "en",
1640
+ setLocale: (locale) => set({ locale }),
1641
+ wallet: {
1642
+ type: "UserPasscode"
1643
+ },
1644
+ setWallet: (wallet) => set({ wallet }),
1645
+ chainId: 698,
1646
+ setChainId: (chainId) => set({ chainId })
1647
+ }),
1648
+ { name: "match-local" }
1649
+ );
1650
+ var useLocalStore = (0, import_zustand.create)((0, import_middleware.devtools)(persistedState));
1651
+ var localStore = useLocalStore;
1652
+ var useLocalStore_default = useLocalStore;
1659
1653
 
1660
- // src/context/BusinessProvider.tsx
1661
- var import_react12 = require("react");
1654
+ // src/hooks/useUserInfo.tsx
1655
+ var import_react18 = require("react");
1662
1656
 
1663
- // src/components/PasswordModal/index.tsx
1664
- var import_react8 = require("react");
1657
+ // src/MatchContext.tsx
1658
+ var import_react17 = require("react");
1665
1659
 
1666
1660
  // src/hooks/useMatchEvents.ts
1667
1661
  var import_react5 = require("react");
@@ -1701,18 +1695,8 @@ var import_viem = require("viem");
1701
1695
  var import_zustand2 = require("zustand");
1702
1696
  var useStore = (0, import_zustand2.create)((set) => ({
1703
1697
  walletReady: false,
1704
- setWalletReady: (inited) => set({ walletReady: inited }),
1705
- recoveryModal: {
1706
- open: false,
1707
- success: async () => {
1708
- },
1709
- close: async () => {
1710
- }
1711
- },
1712
- setRecoveryModal: (params) => set({ recoveryModal: params }),
1713
- closeRecoveryModal: () => set({ recoveryModal: { open: false } })
1698
+ setWalletReady: (inited) => set({ walletReady: inited })
1714
1699
  }));
1715
- var useStore_default = useStore;
1716
1700
 
1717
1701
  // src/hooks/useWallet.tsx
1718
1702
  var import_accounts = require("viem/accounts");
@@ -1724,39 +1708,39 @@ var import_viem3 = require("viem");
1724
1708
  var import_zustand3 = require("zustand");
1725
1709
 
1726
1710
  // src/hooks/useConfig.tsx
1727
- var import_jsx_runtime50 = require("react/jsx-runtime");
1711
+ var import_jsx_runtime51 = require("react/jsx-runtime");
1728
1712
  var DEFAULT_WALLET_METHODS = ["evm", "sol", "btc", "tron", "ton"];
1729
1713
  var WALLET_METHODS = ["evm", "sol", "btc", "tron", "ton"];
1730
1714
  function useWalletConfig() {
1731
1715
  const isDownMd = useDownMd();
1732
1716
  const walletMap = {
1733
1717
  evm: {
1734
- icon: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(EVMDarkIcon, { size: isDownMd ? 36 : 40 }),
1735
- activeIcon: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(EVMLightIcon, { size: isDownMd ? 36 : 40 }),
1718
+ icon: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(EVMDarkIcon, { size: isDownMd ? 36 : 40 }),
1719
+ activeIcon: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(EVMLightIcon, { size: isDownMd ? 36 : 40 }),
1736
1720
  name: "EVM",
1737
1721
  method: "evm"
1738
1722
  },
1739
1723
  sol: {
1740
- icon: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(SOLDarkIcon, { size: isDownMd ? 36 : 40 }),
1741
- activeIcon: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(SOLLightIcon, { size: isDownMd ? 36 : 40 }),
1724
+ icon: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(SOLDarkIcon, { size: isDownMd ? 36 : 40 }),
1725
+ activeIcon: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(SOLLightIcon, { size: isDownMd ? 36 : 40 }),
1742
1726
  name: "SOL",
1743
1727
  method: "sol"
1744
1728
  },
1745
1729
  btc: {
1746
- icon: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(BTCDarkIcon, { size: isDownMd ? 36 : 40 }),
1747
- activeIcon: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(BTCLightIcon, { size: isDownMd ? 36 : 40 }),
1730
+ icon: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(BTCDarkIcon, { size: isDownMd ? 36 : 40 }),
1731
+ activeIcon: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(BTCLightIcon, { size: isDownMd ? 36 : 40 }),
1748
1732
  name: "BTC",
1749
1733
  method: "btc"
1750
1734
  },
1751
1735
  tron: {
1752
- icon: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(TRXDarkIcon, { size: isDownMd ? 36 : 40 }),
1753
- activeIcon: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(TRXLightIcon, { size: isDownMd ? 36 : 40 }),
1736
+ icon: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(TRXDarkIcon, { size: isDownMd ? 36 : 40 }),
1737
+ activeIcon: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(TRXLightIcon, { size: isDownMd ? 36 : 40 }),
1754
1738
  name: "TRON",
1755
1739
  method: "tron"
1756
1740
  },
1757
1741
  ton: {
1758
- icon: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(TonLightIcon, { size: isDownMd ? 36 : 40 }),
1759
- activeIcon: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(TonLightIcon2, { size: isDownMd ? 36 : 40 }),
1742
+ icon: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(TonLightIcon, { size: isDownMd ? 36 : 40 }),
1743
+ activeIcon: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(TonLightIcon2, { size: isDownMd ? 36 : 40 }),
1760
1744
  name: "TON",
1761
1745
  method: "ton"
1762
1746
  }
@@ -1818,291 +1802,6 @@ var useWalletModalStore = (0, import_zustand3.create)((set) => ({
1818
1802
 
1819
1803
  // src/hooks/useWallet.tsx
1820
1804
  var AppClientId = "react-sdk-" + getVersion();
1821
- function useWallet() {
1822
- const { appid, token, overview, address, wallet: walletConfig } = useLocalStore_default();
1823
- const { setRecoveryModal, closeRecoveryModal, walletReady } = useStore_default();
1824
- const { open: openHashPanel } = useHashPanelStore();
1825
- const initCore = ({
1826
- did,
1827
- address: address2
1828
- }) => {
1829
- return window.matchProvider.waitUntilWalletMessage(
1830
- {
1831
- method: "initCore",
1832
- data: {
1833
- AppId: appid,
1834
- AppClientId,
1835
- UserId: did,
1836
- AccessToken: token,
1837
- Address: address2
1838
- }
1839
- }
1840
- );
1841
- };
1842
- const generateEmbeddedWallets = async (data) => {
1843
- return await window.matchProvider.waitUntilWalletMessage({
1844
- method: "generateEmbeddedWallets",
1845
- data
1846
- });
1847
- };
1848
- const recoveryEmbeddedWallets = async (data) => {
1849
- return await window.matchProvider.waitUntilWalletMessage({
1850
- method: "recoveryEmbeddedWallets",
1851
- data
1852
- });
1853
- };
1854
- const isRecovered = async () => {
1855
- const res = await window.matchProvider.waitUntilWalletMessage({
1856
- method: "isRecovered"
1857
- });
1858
- return res.isRecovered;
1859
- };
1860
- const recoverAfter = async ({
1861
- chainType,
1862
- handle
1863
- }) => {
1864
- return new Promise(async (resolve, reject) => {
1865
- const res = await isRecovered();
1866
- matchlog_default.log("sdk.mpc.isRecovered", res);
1867
- if (res) {
1868
- await recoveryEmbeddedWallets({ chainType, recoveryType: "user_passcode_recovery_key" });
1869
- await handle(resolve, reject);
1870
- return;
1871
- }
1872
- setRecoveryModal({
1873
- chainType,
1874
- open: true,
1875
- success: async () => {
1876
- closeRecoveryModal();
1877
- matchlog_default.log("sdk.mpc.recover", "Success");
1878
- await handle(resolve, reject);
1879
- },
1880
- close: async () => {
1881
- closeRecoveryModal();
1882
- reject(new Error("recover modal close"));
1883
- }
1884
- });
1885
- await initCore({
1886
- address: overview?.address || "",
1887
- did: overview?.did || ""
1888
- });
1889
- });
1890
- };
1891
- const signMessage2 = async ({
1892
- message,
1893
- chainType = "ethereum" /* Ethereum */
1894
- }) => {
1895
- const getSign = async (resolve, reject) => {
1896
- try {
1897
- const recoverRes = await window.matchProvider.waitUntilWalletMessage({
1898
- method: "signMessage",
1899
- data: {
1900
- message,
1901
- chainType
1902
- }
1903
- });
1904
- resolve(recoverRes.message);
1905
- } catch (error) {
1906
- console.error("qwe-sign-error", error);
1907
- reject(error);
1908
- }
1909
- };
1910
- return await recoverAfter({
1911
- handle: getSign,
1912
- chainType
1913
- });
1914
- };
1915
- const signTransaction = async ({
1916
- transaction,
1917
- chainType = "ethereum" /* Ethereum */,
1918
- chain
1919
- }) => {
1920
- console.log("qwe-sign-transaction", transaction);
1921
- const getSign = async (resolve, reject) => {
1922
- try {
1923
- const recoverRes = await window.matchProvider.waitUntilWalletMessage({
1924
- method: "signTransaction",
1925
- data: {
1926
- transaction,
1927
- chainType,
1928
- chain
1929
- }
1930
- });
1931
- resolve(recoverRes.message);
1932
- } catch (error) {
1933
- console.error("qwe-sign-error", error);
1934
- reject(error);
1935
- }
1936
- };
1937
- return await recoverAfter({
1938
- handle: getSign,
1939
- chainType
1940
- });
1941
- };
1942
- const evmAccount = (0, import_react6.useMemo)(() => {
1943
- return address ? (0, import_accounts.toAccount)({
1944
- address,
1945
- async signMessage({ message }) {
1946
- return await signMessage2({
1947
- message,
1948
- chainType: "ethereum" /* Ethereum */
1949
- });
1950
- },
1951
- async signTransaction(transaction, options) {
1952
- const { account, chain, ...restTransaction } = transaction;
1953
- console.log("qwe-sign-transaction", restTransaction, options);
1954
- return await signTransaction({
1955
- transaction: {
1956
- ...restTransaction
1957
- },
1958
- chainType: "ethereum" /* Ethereum */,
1959
- chain: {
1960
- id: chain?.id || restTransaction.chainId,
1961
- name: chain?.name,
1962
- nativeCurrency: {
1963
- name: chain?.nativeCurrency?.name || "ETH",
1964
- symbol: chain?.nativeCurrency?.symbol || "ETH",
1965
- decimals: chain?.nativeCurrency?.decimals || 18
1966
- },
1967
- rpcUrls: chain?.rpcUrls
1968
- }
1969
- });
1970
- },
1971
- async signTypedData(typedData) {
1972
- return "0x";
1973
- }
1974
- }) : void 0;
1975
- }, [address]);
1976
- (0, import_react6.useEffect)(() => {
1977
- matchlog_default.log("qwe-evmAccount", evmAccount);
1978
- }, [evmAccount]);
1979
- return {
1980
- walletReady,
1981
- evmAccount,
1982
- address,
1983
- initCore,
1984
- signMessage: signMessage2,
1985
- signTransaction,
1986
- isRecovered,
1987
- recoverAfter,
1988
- generateEmbeddedWallets,
1989
- recoveryEmbeddedWallets,
1990
- createWalletClient: (parameters) => {
1991
- if (!evmAccount) {
1992
- return;
1993
- }
1994
- const obj = (0, import_viem2.createWalletClient)({
1995
- ...parameters,
1996
- account: evmAccount
1997
- });
1998
- const sendTransaction = async (transaction) => {
1999
- const getSign = async (resolve, reject) => {
2000
- const { chain, ...restTransaction } = transaction;
2001
- const chainId = chain ? chain.id : await obj.getChainId();
2002
- const _chain = chain || obj.chain;
2003
- const transactionId = Date.now().toString() + Math.random().toString().slice(6);
2004
- window.matchProvider.transactionMessageIntervalMap[transactionId] = {
2005
- transaction,
2006
- func: async () => {
2007
- try {
2008
- const {
2009
- chain: chain2,
2010
- account,
2011
- ...prepareTransactionRequest
2012
- // @ts-ignore
2013
- } = await obj.prepareTransactionRequest(window.matchProvider.transactionMessageIntervalMap[transactionId].transaction);
2014
- window.matchProvider.sendWalletMessage({
2015
- method: "prepareTransactionRequest",
2016
- data: {
2017
- prepareTransactionRequest,
2018
- transactionId
2019
- }
2020
- });
2021
- } catch (error) {
2022
- console.error(error);
2023
- }
2024
- },
2025
- interval: setInterval(() => {
2026
- window.matchProvider.transactionMessageIntervalMap[transactionId].func();
2027
- }, 1e4)
2028
- };
2029
- try {
2030
- const {
2031
- chain: chain2,
2032
- account,
2033
- ...prepareTransactionRequest
2034
- // @ts-ignore
2035
- } = await obj.prepareTransactionRequest(transaction);
2036
- const { serializedTransaction } = await window.matchProvider.waitUntilWalletMessage({
2037
- method: "sendTransaction",
2038
- data: {
2039
- transactionId,
2040
- transaction: {
2041
- ...restTransaction
2042
- },
2043
- chainType: "ethereum" /* Ethereum */,
2044
- chain: {
2045
- id: chainId,
2046
- name: _chain?.name,
2047
- nativeCurrency: _chain?.nativeCurrency,
2048
- rpcUrls: _chain?.rpcUrls
2049
- },
2050
- prepareTransactionRequest
2051
- }
2052
- });
2053
- openHashPanel();
2054
- const txHash = await obj.sendRawTransaction({
2055
- serializedTransaction
2056
- });
2057
- openHashPanel({
2058
- hash: txHash,
2059
- chain: _chain
2060
- });
2061
- clearInterval(window.matchProvider.transactionMessageIntervalMap[transactionId].interval);
2062
- delete window.matchProvider.transactionMessageIntervalMap[transactionId];
2063
- resolve(txHash);
2064
- } catch (error) {
2065
- console.error("qwe-sign-error", error);
2066
- clearInterval(window.matchProvider.transactionMessageIntervalMap[transactionId].interval);
2067
- delete window.matchProvider.transactionMessageIntervalMap[transactionId];
2068
- reject(error);
2069
- }
2070
- };
2071
- return await recoverAfter({
2072
- handle: getSign,
2073
- chainType: "ethereum" /* Ethereum */
2074
- });
2075
- };
2076
- const deployContract = async (parameters2) => {
2077
- const { abi, args, bytecode, ...request3 } = parameters2;
2078
- const calldata = (0, import_viem3.encodeDeployData)({ abi, args, bytecode });
2079
- return await sendTransaction({
2080
- ...request3,
2081
- data: calldata
2082
- });
2083
- };
2084
- const writeContract = async (parameters2) => {
2085
- const { abi, address: address2, args, dataSuffix, functionName, ...request3 } = parameters2;
2086
- const data = (0, import_viem.encodeFunctionData)({
2087
- abi,
2088
- args,
2089
- functionName
2090
- });
2091
- return await sendTransaction({
2092
- data: `${data}${dataSuffix ? dataSuffix.replace("0x", "") : ""}`,
2093
- to: address2,
2094
- ...request3
2095
- });
2096
- };
2097
- return {
2098
- ...obj,
2099
- sendTransaction,
2100
- deployContract,
2101
- writeContract
2102
- };
2103
- }
2104
- };
2105
- }
2106
1805
 
2107
1806
  // src/hooks/useCopyClipboard.ts
2108
1807
  var import_copy_to_clipboard = __toESM(require("copy-to-clipboard"));
@@ -2127,165 +1826,112 @@ function useCopyClipboard(timeout = 500) {
2127
1826
  return [isCopied, staticCopy];
2128
1827
  }
2129
1828
 
2130
- // src/components/PasswordModal/index.tsx
2131
- var import_react_intl2 = require("react-intl");
2132
- var import_jsx_runtime51 = require("react/jsx-runtime");
2133
- function PasswordModal({
2134
- title,
2135
- isOpen,
2136
- onSuccess,
2137
- chainType = "ethereum" /* Ethereum */,
2138
- recoveryType = "user_passcode_recovery_key" /* UserPasscode */,
2139
- ...props
2140
- }) {
2141
- const { refreshOverview, overview } = useUserInfo();
2142
- const { isLogin, did } = useUserInfo();
2143
- const [password, setPassword] = (0, import_react8.useState)("");
2144
- const [rePassword, setRePassword] = (0, import_react8.useState)("");
2145
- const [error, setError] = (0, import_react8.useState)("");
2146
- const { generateEmbeddedWallets, initCore } = useWallet();
2147
- const { walletReady } = useStore_default();
2148
- const intl = (0, import_react_intl2.useIntl)();
2149
- const passwordError = (0, import_react8.useMemo)(() => {
2150
- if (password.length < 6) return intl.formatMessage({
2151
- id: "passwordMinError"
2152
- }, {
2153
- length: 6
2154
- });
2155
- return "";
2156
- }, [password]);
2157
- const rePasswordError = (0, import_react8.useMemo)(() => {
2158
- if (rePassword != password) {
2159
- return intl.formatMessage({
2160
- id: "passwordMatchError"
2161
- });
2162
- }
2163
- return "";
2164
- }, [rePassword, password]);
2165
- (0, import_react8.useEffect)(() => {
2166
- if (isOpen) {
2167
- setPassword("");
2168
- setRePassword("");
2169
- }
2170
- }, [isOpen, overview]);
2171
- const [isSubmitting, setIsSubmitting] = (0, import_react8.useState)(false);
2172
- const onContinue = async () => {
2173
- if (isSubmitting) return;
2174
- try {
2175
- setIsSubmitting(true);
2176
- await initCore({
2177
- did: overview?.did || "",
2178
- address: ""
2179
- });
2180
- const address = await generateEmbeddedWallets({
2181
- userPasscode: password,
2182
- chainType,
2183
- recoveryType
2184
- });
2185
- await refreshOverview();
2186
- onSuccess && onSuccess();
2187
- } catch (error2) {
2188
- setError(error2.message);
2189
- } finally {
2190
- setIsSubmitting(false);
2191
- }
2192
- };
2193
- return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(ModalWithHeader, { isOpen: isOpen && isLogin, ...props, title: title || intl.formatMessage({
2194
- id: "passwordTitle"
2195
- }), children: /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("div", { className: "matchid-password-box", children: [
2196
- /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("div", { className: "matchid-password-header", children: [
2197
- /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("div", { className: "matchid-password-header-icon", children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(PasswordRoundIcon, {}) }),
2198
- /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("div", { className: "matchid-password-header-content", children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_react_intl2.FormattedMessage, { id: "passwordTips" }) })
2199
- ] }),
2200
- /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("div", { className: "matchid-password-content", children: [
2201
- /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(Field, { label: intl.formatMessage({ id: "password" }), error: password.length > 0 && passwordError, children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
2202
- Input,
2203
- {
2204
- placeholder: intl.formatMessage({ id: "passwordPlaceholder" }),
2205
- maxLength: 32,
2206
- type: "password",
2207
- onChange: (e) => setPassword(e.target.value),
2208
- value: password
2209
- }
2210
- ) }),
2211
- /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(Field, { label: intl.formatMessage({
2212
- id: "rePassword"
2213
- }), error: !walletReady ? intl.formatMessage({ id: "walletLoading" }) : rePassword.length > 0 ? rePasswordError || error : error, children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
2214
- Input,
2215
- {
2216
- placeholder: intl.formatMessage({
2217
- id: "rePasswordPlaceholder"
2218
- }),
2219
- maxLength: 32,
2220
- onChange: (e) => setRePassword(e.target.value),
2221
- value: rePassword,
2222
- type: "password"
2223
- }
2224
- ) })
2225
- ] }),
2226
- /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
2227
- Button,
2228
- {
2229
- disabled: password.length == 0 || !!passwordError || !!rePasswordError || !walletReady,
2230
- highlight: true,
2231
- block: true,
2232
- size: "lg",
2233
- onClick: onContinue,
2234
- loading: isSubmitting,
2235
- children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_react_intl2.FormattedMessage, { id: "continue" })
2236
- }
2237
- )
2238
- ] }) });
2239
- }
1829
+ // src/context/ModalContext.tsx
1830
+ var import_react11 = require("react");
1831
+ var import_react_dom = require("react-dom");
2240
1832
 
2241
- // src/components/RecoveryModal/index.tsx
2242
- var import_react9 = require("react");
2243
- var import_react_intl3 = require("react-intl");
1833
+ // src/ui/Drawer/index.tsx
2244
1834
  var import_jsx_runtime52 = require("react/jsx-runtime");
2245
1835
 
2246
- // src/components/CEXBindModal/index.tsx
2247
- var import_react10 = require("react");
2248
- var import_react_intl4 = require("react-intl");
2249
- var import_jsx_runtime53 = require("react/jsx-runtime");
2250
-
2251
- // src/components/HashPanel/index.tsx
1836
+ // src/ui/HashPanel/index.tsx
2252
1837
  var import_viem4 = require("viem");
2253
- var import_react11 = require("react");
1838
+ var import_react8 = require("react");
2254
1839
  var import_react_query = require("@tanstack/react-query");
2255
1840
 
2256
- // src/components/Drawer/index.tsx
1841
+ // src/ui/ModalDrawer/index.tsx
1842
+ var import_jsx_runtime53 = require("react/jsx-runtime");
1843
+
1844
+ // src/ui/HashPanel/index.tsx
2257
1845
  var import_jsx_runtime54 = require("react/jsx-runtime");
2258
1846
 
2259
- // src/components/ModalDrawer/index.tsx
1847
+ // src/ui/Popover/index.tsx
1848
+ var import_react9 = require("react");
2260
1849
  var import_jsx_runtime55 = require("react/jsx-runtime");
1850
+ function Popover({
1851
+ children,
1852
+ content,
1853
+ position = "right",
1854
+ type = "hover",
1855
+ className = "",
1856
+ gap = "20px"
1857
+ }) {
1858
+ const [active, setActive] = (0, import_react9.useState)(false);
1859
+ return children && /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)(
1860
+ "div",
1861
+ {
1862
+ onClick: () => {
1863
+ if (type == "click") {
1864
+ setActive(!active);
1865
+ }
1866
+ },
1867
+ className: `matchid-popover-box matchid-popover-${position} matchid-popover-${type} ${className} ${type == "click" && active ? "matchid-popover-click-active" : ""}`,
1868
+ children: [
1869
+ children,
1870
+ /* @__PURE__ */ (0, import_jsx_runtime55.jsx)("div", { style: {
1871
+ paddingTop: gap
1872
+ }, className: `matchid-popover-area`, children: /* @__PURE__ */ (0, import_jsx_runtime55.jsx)("div", { className: `matchid-popover-content`, children: content }) })
1873
+ ]
1874
+ }
1875
+ );
1876
+ }
2261
1877
 
2262
- // src/components/HashPanel/index.tsx
1878
+ // src/ui/Switch/index.tsx
2263
1879
  var import_jsx_runtime56 = require("react/jsx-runtime");
2264
1880
 
2265
- // src/context/BusinessProvider.tsx
1881
+ // src/ui/AlphaAvatar/index.tsx
1882
+ var import_react10 = require("react");
2266
1883
  var import_jsx_runtime57 = require("react/jsx-runtime");
2267
1884
 
1885
+ // src/ui/Radio/index.tsx
1886
+ var import_jsx_runtime58 = require("react/jsx-runtime");
1887
+
1888
+ // src/context/ModalContext.tsx
1889
+ var import_jsx_runtime59 = require("react/jsx-runtime");
1890
+ var ModalContext = (0, import_react11.createContext)(null);
1891
+
1892
+ // src/context/ToastContext.tsx
1893
+ var import_react12 = require("react");
1894
+ var import_react_dom2 = require("react-dom");
1895
+ var import_jsx_runtime60 = require("react/jsx-runtime");
1896
+ var ToastContext = (0, import_react12.createContext)(null);
1897
+
1898
+ // src/hooks/api/wallet.ts
1899
+ var import_react_query2 = require("@tanstack/react-query");
1900
+
1901
+ // src/hooks/useMatchChain.tsx
1902
+ var import_react13 = require("react");
1903
+ var import_jsx_runtime61 = require("react/jsx-runtime");
1904
+
1905
+ // src/hooks/useMatchWallet.tsx
1906
+ var import_react_qrcode = require("react-qrcode");
1907
+ var import_jsx_runtime62 = require("react/jsx-runtime");
1908
+
1909
+ // src/components/CEXBindModal/index.tsx
1910
+ var import_react14 = require("react");
1911
+ var import_react_intl2 = require("react-intl");
1912
+ var import_jsx_runtime63 = require("react/jsx-runtime");
1913
+
1914
+ // src/context/BusinessProvider.tsx
1915
+ var import_jsx_runtime64 = require("react/jsx-runtime");
1916
+
2268
1917
  // src/context/index.tsx
2269
- var import_jsx_runtime58 = (
2270
- // <MpcWalletProvider>
2271
- require("react/jsx-runtime")
2272
- );
1918
+ var import_jsx_runtime65 = require("react/jsx-runtime");
2273
1919
 
2274
1920
  // src/hooks/useWalletInit.ts
2275
- var import_react13 = require("react");
1921
+ var import_react15 = require("react");
2276
1922
  var AppClientId2 = getAppClientId();
2277
1923
 
2278
1924
  // src/hooks/useInit.tsx
2279
- var import_react14 = require("react");
1925
+ var import_react16 = require("react");
2280
1926
 
2281
1927
  // src/MatchContext.tsx
2282
- var import_react_query2 = require("@tanstack/react-query");
2283
- var import_react_intl5 = require("react-intl");
2284
- var import_jsx_runtime59 = require("react/jsx-runtime");
2285
- var queryClient = new import_react_query2.QueryClient();
2286
- var MatchContext = (0, import_react15.createContext)(void 0);
1928
+ var import_react_query3 = require("@tanstack/react-query");
1929
+ var import_react_intl3 = require("react-intl");
1930
+ var import_jsx_runtime66 = require("react/jsx-runtime");
1931
+ var queryClient = new import_react_query3.QueryClient();
1932
+ var MatchContext = (0, import_react17.createContext)(void 0);
2287
1933
  var useMatch = () => {
2288
- const context = (0, import_react15.useContext)(MatchContext);
1934
+ const context = (0, import_react17.useContext)(MatchContext);
2289
1935
  if (context === void 0) {
2290
1936
  throw new Error("useMatch must be used within a MatchProvider");
2291
1937
  }
@@ -2304,7 +1950,8 @@ function useUserInfo() {
2304
1950
  overview,
2305
1951
  address,
2306
1952
  endpoints,
2307
- locale
1953
+ locale,
1954
+ refreshOverview
2308
1955
  } = useLocalStore_default();
2309
1956
  const { events, login } = useMatch();
2310
1957
  const { open: SOLOpen } = useSOLModalStore();
@@ -2313,7 +1960,7 @@ function useUserInfo() {
2313
1960
  const { open: BTCOpen } = useBTCModalStore();
2314
1961
  const { open: CEXBindOpen } = useCEXBindModalStore();
2315
1962
  const walletModalStore = useWalletModalStore();
2316
- const isLogin = (0, import_react16.useMemo)(() => !!token && !!overview, [token, overview]);
1963
+ const isLogin = (0, import_react18.useMemo)(() => !!token && !!overview, [token, overview]);
2317
1964
  const logout = async () => {
2318
1965
  try {
2319
1966
  await toLogoutApi();
@@ -2413,12 +2060,6 @@ function useUserInfo() {
2413
2060
  }
2414
2061
  return false;
2415
2062
  };
2416
- const refreshOverview = async () => {
2417
- const res = await getOverviewInfoApi();
2418
- if (res.data) {
2419
- setOverview(res.data);
2420
- }
2421
- };
2422
2063
  const bindWallet = async () => {
2423
2064
  if (!token) {
2424
2065
  throw new Error("You must login first");
@@ -2551,29 +2192,29 @@ function useUserInfo() {
2551
2192
  }
2552
2193
 
2553
2194
  // src/components/EmailModal/StepVerify.tsx
2554
- var import_react17 = require("react");
2195
+ var import_react19 = require("react");
2555
2196
 
2556
2197
  // src/config/index.tsx
2557
2198
  var EMAIL_INTERVAL = 60;
2558
2199
  var EMAIL_CODE_LENGTH = 6;
2559
2200
 
2560
2201
  // src/components/EmailModal/StepVerify.tsx
2561
- var import_react_intl6 = require("react-intl");
2562
- var import_jsx_runtime60 = require("react/jsx-runtime");
2202
+ var import_react_intl4 = require("react-intl");
2203
+ var import_jsx_runtime67 = require("react/jsx-runtime");
2563
2204
  function StepVerify(props) {
2564
- const intl = (0, import_react_intl6.useIntl)();
2205
+ const intl = (0, import_react_intl4.useIntl)();
2565
2206
  const { getLoginEmailCode, loginByEmail } = useUserInfo();
2566
- const [error, setError] = (0, import_react17.useState)("");
2567
- const [code, setCode] = (0, import_react17.useState)("");
2568
- const [sending, setSending] = (0, import_react17.useState)(false);
2569
- const [submitting, setSubmitting] = (0, import_react17.useState)(false);
2570
- const sendTimeRef = (0, import_react17.useRef)(0);
2571
- const [sendBtnText, setSendBtnText] = (0, import_react17.useState)(intl.formatMessage({
2207
+ const [error, setError] = (0, import_react19.useState)("");
2208
+ const [code, setCode] = (0, import_react19.useState)("");
2209
+ const [sending, setSending] = (0, import_react19.useState)(false);
2210
+ const [submitting, setSubmitting] = (0, import_react19.useState)(false);
2211
+ const sendTimeRef = (0, import_react19.useRef)(0);
2212
+ const [sendBtnText, setSendBtnText] = (0, import_react19.useState)(intl.formatMessage({
2572
2213
  id: "send"
2573
2214
  }));
2574
2215
  const intervalTime = EMAIL_INTERVAL;
2575
2216
  const codeLength = EMAIL_CODE_LENGTH;
2576
- const intervalRef = (0, import_react17.useRef)(null);
2217
+ const intervalRef = (0, import_react19.useRef)(null);
2577
2218
  const isDownMd = useDownMd();
2578
2219
  const onSend = async () => {
2579
2220
  if (sendTimeRef.current > 0) {
@@ -2604,7 +2245,7 @@ function StepVerify(props) {
2604
2245
  setSending(false);
2605
2246
  }
2606
2247
  };
2607
- (0, import_react17.useEffect)(() => {
2248
+ (0, import_react19.useEffect)(() => {
2608
2249
  onSend();
2609
2250
  return () => {
2610
2251
  if (intervalRef.current) {
@@ -2612,7 +2253,7 @@ function StepVerify(props) {
2612
2253
  }
2613
2254
  };
2614
2255
  }, []);
2615
- const canContinue = (0, import_react17.useMemo)(() => {
2256
+ const canContinue = (0, import_react19.useMemo)(() => {
2616
2257
  return code.length === codeLength;
2617
2258
  }, [code]);
2618
2259
  const onContinue = async () => {
@@ -2636,17 +2277,17 @@ function StepVerify(props) {
2636
2277
  setSubmitting(false);
2637
2278
  }
2638
2279
  };
2639
- return /* @__PURE__ */ (0, import_jsx_runtime60.jsxs)("div", { className: "matchid-email-verify-box", children: [
2640
- /* @__PURE__ */ (0, import_jsx_runtime60.jsxs)("div", { className: "matchid-email-verify-header", children: [
2641
- /* @__PURE__ */ (0, import_jsx_runtime60.jsx)("div", { className: "matchid-email-verify-header-icon", children: /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(EmailLineIcon, { size: isDownMd ? 19 : 24 }) }),
2642
- /* @__PURE__ */ (0, import_jsx_runtime60.jsxs)("div", { className: "matchid-email-verify-header-content", children: [
2643
- /* @__PURE__ */ (0, import_jsx_runtime60.jsx)("div", { className: "matchid-email-verify-header-value", children: props.email }),
2644
- /* @__PURE__ */ (0, import_jsx_runtime60.jsx)("div", { className: "matchid-email-verify-header-tips", children: /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(import_react_intl6.FormattedMessage, { id: "sendEmailTips" }) })
2280
+ return /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)("div", { className: "matchid-email-verify-box", children: [
2281
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)("div", { className: "matchid-email-verify-header", children: [
2282
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("div", { className: "matchid-email-verify-header-icon", children: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(EmailLineIcon, { size: isDownMd ? 19 : 24 }) }),
2283
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)("div", { className: "matchid-email-verify-header-content", children: [
2284
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("div", { className: "matchid-email-verify-header-value", children: props.email }),
2285
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("div", { className: "matchid-email-verify-header-tips", children: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(import_react_intl4.FormattedMessage, { id: "sendEmailTips" }) })
2645
2286
  ] })
2646
2287
  ] }),
2647
- /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(Field, { label: intl.formatMessage({
2288
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(Field, { label: intl.formatMessage({
2648
2289
  id: "verificationCode"
2649
- }), error, children: /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(
2290
+ }), error, children: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(
2650
2291
  Input,
2651
2292
  {
2652
2293
  placeholder: intl.formatMessage({
@@ -2656,7 +2297,7 @@ function StepVerify(props) {
2656
2297
  maxLength: codeLength,
2657
2298
  onChange: (e) => setCode(e.target.value),
2658
2299
  value: code,
2659
- after: /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(
2300
+ after: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(
2660
2301
  Button,
2661
2302
  {
2662
2303
  highlight: true,
@@ -2675,13 +2316,13 @@ function StepVerify(props) {
2675
2316
  )
2676
2317
  }
2677
2318
  ) }),
2678
- /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(Button, { disabled: !canContinue, highlight: true, block: true, size: "lg", onClick: onContinue, children: /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(import_react_intl6.FormattedMessage, { id: "continue" }) })
2319
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(Button, { disabled: !canContinue, highlight: true, block: true, size: "lg", onClick: onContinue, children: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(import_react_intl4.FormattedMessage, { id: "continue" }) })
2679
2320
  ] });
2680
2321
  }
2681
2322
 
2682
2323
  // src/components/EmailModal/index.tsx
2683
- var import_react_intl7 = require("react-intl");
2684
- var import_jsx_runtime61 = require("react/jsx-runtime");
2324
+ var import_react_intl5 = require("react-intl");
2325
+ var import_jsx_runtime68 = require("react/jsx-runtime");
2685
2326
  function EmailModal({
2686
2327
  isOpen = false,
2687
2328
  width = 480,
@@ -2689,16 +2330,16 @@ function EmailModal({
2689
2330
  onBack,
2690
2331
  onLogin
2691
2332
  }) {
2692
- const [step, setStep] = (0, import_react18.useState)("input");
2693
- const [emailVal, setEmailVal] = (0, import_react18.useState)("");
2694
- const intl = (0, import_react_intl7.useIntl)();
2695
- (0, import_react18.useEffect)(() => {
2333
+ const [step, setStep] = (0, import_react20.useState)("input");
2334
+ const [emailVal, setEmailVal] = (0, import_react20.useState)("");
2335
+ const intl = (0, import_react_intl5.useIntl)();
2336
+ (0, import_react20.useEffect)(() => {
2696
2337
  if (!isOpen) {
2697
2338
  setStep("input");
2698
2339
  setEmailVal("");
2699
2340
  }
2700
2341
  }, [isOpen]);
2701
- return /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
2342
+ return /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(
2702
2343
  ModalWithHeader,
2703
2344
  {
2704
2345
  isOpen,
@@ -2708,53 +2349,22 @@ function EmailModal({
2708
2349
  id: "email"
2709
2350
  }),
2710
2351
  onBack: step == "verify" ? () => setStep("input") : onBack,
2711
- children: step === "input" ? /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(StepEmail, { email: emailVal, onContinue: (email) => {
2352
+ children: step === "input" ? /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(StepEmail, { email: emailVal, onContinue: (email) => {
2712
2353
  setEmailVal(email);
2713
2354
  setStep("verify");
2714
- } }) : /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(StepVerify, { email: emailVal, onSuccess: onLogin })
2715
- }
2716
- );
2717
- }
2718
-
2719
- // src/components/Popover/index.tsx
2720
- var import_react19 = require("react");
2721
- var import_jsx_runtime62 = require("react/jsx-runtime");
2722
- function Popover({
2723
- children,
2724
- content,
2725
- position = "right",
2726
- type = "hover",
2727
- className = "",
2728
- gap = "20px"
2729
- }) {
2730
- const [active, setActive] = (0, import_react19.useState)(false);
2731
- return children && /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)(
2732
- "div",
2733
- {
2734
- onClick: () => {
2735
- if (type == "click") {
2736
- setActive(!active);
2737
- }
2738
- },
2739
- className: `matchid-popover-box matchid-popover-${position} matchid-popover-${type} ${className} ${type == "click" && active ? "matchid-popover-click-active" : ""}`,
2740
- children: [
2741
- children,
2742
- /* @__PURE__ */ (0, import_jsx_runtime62.jsx)("div", { style: {
2743
- paddingTop: gap
2744
- }, className: `matchid-popover-area`, children: /* @__PURE__ */ (0, import_jsx_runtime62.jsx)("div", { className: `matchid-popover-content`, children: content }) })
2745
- ]
2355
+ } }) : /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(StepVerify, { email: emailVal, onSuccess: onLogin })
2746
2356
  }
2747
2357
  );
2748
2358
  }
2749
2359
 
2750
2360
  // src/components/LoginBox/index.tsx
2751
- var import_react20 = require("react");
2752
- var import_react_intl8 = require("react-intl");
2361
+ var import_react21 = require("react");
2362
+ var import_react_intl6 = require("react-intl");
2753
2363
 
2754
2364
  // src/hooks/useAppConfig.ts
2755
- var import_react_query3 = require("@tanstack/react-query");
2365
+ var import_react_query4 = require("@tanstack/react-query");
2756
2366
  function useAppConfig() {
2757
- const query = (0, import_react_query3.useQuery)({
2367
+ const query = (0, import_react_query4.useQuery)({
2758
2368
  queryKey: ["appConfig"],
2759
2369
  queryFn: async () => {
2760
2370
  const res = await getAppConfigApi();
@@ -2772,7 +2382,7 @@ function useAppConfig() {
2772
2382
  }
2773
2383
 
2774
2384
  // src/components/LoginBox/index.tsx
2775
- var import_jsx_runtime63 = require("react/jsx-runtime");
2385
+ var import_jsx_runtime69 = require("react/jsx-runtime");
2776
2386
  var RecommendItem = ({
2777
2387
  icon,
2778
2388
  name,
@@ -2781,20 +2391,20 @@ var RecommendItem = ({
2781
2391
  children,
2782
2392
  footer
2783
2393
  }) => {
2784
- return /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)("div", { className: "matchid-login-recommend-method", children: [
2785
- /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)("div", { className: "matchid-login-recommend-method-item", onClick, children: [
2786
- /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)("div", { className: "matchid-login-recommend-method-content", children: [
2787
- /* @__PURE__ */ (0, import_jsx_runtime63.jsx)("div", { className: "matchid-login-recommend-method-icon", children: icon }),
2788
- /* @__PURE__ */ (0, import_jsx_runtime63.jsx)("span", { className: "matchid-login-recommend-method-name", children: name })
2394
+ return /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)("div", { className: "matchid-login-recommend-method", children: [
2395
+ /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)("div", { className: "matchid-login-recommend-method-item", onClick, children: [
2396
+ /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)("div", { className: "matchid-login-recommend-method-content", children: [
2397
+ /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("div", { className: "matchid-login-recommend-method-icon", children: icon }),
2398
+ /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("span", { className: "matchid-login-recommend-method-name", children: name })
2789
2399
  ] }),
2790
- footer ? footer : children ? /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
2400
+ footer ? footer : children ? /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
2791
2401
  ArrowDownIcon,
2792
2402
  {
2793
2403
  className: `matchid-login-recommend-method-arrow ${showChildren ? "matchid-login-recommend-method-arrow-active" : ""}`,
2794
2404
  size: 20,
2795
2405
  color: "var(--matchid-arrow-color)"
2796
2406
  }
2797
- ) : /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
2407
+ ) : /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
2798
2408
  ArrowRightIcon,
2799
2409
  {
2800
2410
  className: "matchid-login-recommend-method-arrow",
@@ -2803,7 +2413,7 @@ var RecommendItem = ({
2803
2413
  }
2804
2414
  )
2805
2415
  ] }),
2806
- children && /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
2416
+ children && /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
2807
2417
  "div",
2808
2418
  {
2809
2419
  className: `matchid-login-recommend-method-popover ${showChildren ? "matchid-login-recommend-method-popover-active" : ""}`,
@@ -2819,7 +2429,7 @@ function LoginBox({
2819
2429
  inModal = false
2820
2430
  }) {
2821
2431
  const config = useAppConfig();
2822
- const methodConfig = (0, import_react20.useMemo)(() => {
2432
+ const methodConfig = (0, import_react21.useMemo)(() => {
2823
2433
  if (recommendMethods || methods || walletMethods) {
2824
2434
  return {
2825
2435
  recommendMethods: recommendMethods ? recommendMethods : walletMethods ? ["wallet"] : [],
@@ -2861,82 +2471,82 @@ function LoginBox({
2861
2471
  walletMethods: walletMethodList
2862
2472
  };
2863
2473
  }, [config.platform, recommendMethods, methods, walletMethods]);
2864
- const [emailOpen, setEmailOpen] = (0, import_react20.useState)(false);
2474
+ const [emailOpen, setEmailOpen] = (0, import_react21.useState)(false);
2865
2475
  const { login } = useUserInfo();
2866
- const [showWallet, setShowWallet] = (0, import_react20.useState)(false);
2867
- const intl = (0, import_react_intl8.useIntl)();
2476
+ const [showWallet, setShowWallet] = (0, import_react21.useState)(false);
2477
+ const intl = (0, import_react_intl6.useIntl)();
2868
2478
  const isDownMd = useDownMd();
2869
2479
  const methodMap = {
2870
2480
  wallet: {
2871
- icon: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(WalletIcon, { size: isDownMd ? 36 : 40 }),
2481
+ icon: /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(WalletIcon, { size: isDownMd ? 36 : 40 }),
2872
2482
  name: intl.formatMessage({ id: "wallet" }),
2873
2483
  onClick: () => setShowWallet(!showWallet),
2874
2484
  type: "wallet"
2875
2485
  },
2876
2486
  email: {
2877
- icon: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(EmailIcon, { size: isDownMd ? 36 : 40 }),
2487
+ icon: /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(EmailIcon, { size: isDownMd ? 36 : 40 }),
2878
2488
  name: intl.formatMessage({ id: "email" }),
2879
2489
  onClick: () => {
2880
2490
  setEmailOpen(true);
2881
2491
  }
2882
2492
  },
2883
2493
  google: {
2884
- icon: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(GoogleIcon, { size: isDownMd ? 36 : 40 }),
2494
+ icon: /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(GoogleIcon, { size: isDownMd ? 36 : 40 }),
2885
2495
  name: "Google",
2886
2496
  onClick: () => login("google")
2887
2497
  },
2888
2498
  twitter: {
2889
- icon: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(XIcon, { size: isDownMd ? 36 : 40 }),
2499
+ icon: /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(XIcon, { size: isDownMd ? 36 : 40 }),
2890
2500
  name: "X",
2891
2501
  onClick: () => login("twitter")
2892
2502
  },
2893
2503
  telegram: {
2894
- icon: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(TelegramIcon, { size: isDownMd ? 36 : 40 }),
2504
+ icon: /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(TelegramIcon, { size: isDownMd ? 36 : 40 }),
2895
2505
  name: "Telegram",
2896
2506
  onClick: () => login("telegram")
2897
2507
  },
2898
2508
  github: {
2899
- icon: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(GithubIcon, { size: isDownMd ? 36 : 40 }),
2509
+ icon: /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(GithubIcon, { size: isDownMd ? 36 : 40 }),
2900
2510
  name: "Github",
2901
2511
  onClick: () => login("github")
2902
2512
  },
2903
2513
  discord: {
2904
- icon: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(DiscordIcon, { size: isDownMd ? 36 : 40 }),
2514
+ icon: /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(DiscordIcon, { size: isDownMd ? 36 : 40 }),
2905
2515
  name: "Discord",
2906
2516
  onClick: () => login("discord")
2907
2517
  },
2908
2518
  linkedin: {
2909
- icon: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(LinkedinIcon, { size: isDownMd ? 36 : 40 }),
2519
+ icon: /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(LinkedinIcon, { size: isDownMd ? 36 : 40 }),
2910
2520
  name: "LinkedIn",
2911
2521
  onClick: () => login("linkedin")
2912
2522
  },
2913
2523
  facebook: {
2914
- icon: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(FacebookIcon, { size: isDownMd ? 36 : 40 }),
2524
+ icon: /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(FacebookIcon, { size: isDownMd ? 36 : 40 }),
2915
2525
  name: "Facebook",
2916
2526
  onClick: () => login("facebook")
2917
2527
  },
2918
2528
  youtube: {
2919
- icon: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(YoutubeIcon, { size: isDownMd ? 36 : 40 }),
2529
+ icon: /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(YoutubeIcon, { size: isDownMd ? 36 : 40 }),
2920
2530
  name: "Youtube",
2921
2531
  onClick: () => login("youtube")
2922
2532
  }
2923
2533
  };
2924
2534
  const { walletMap } = useWalletConfig();
2925
- return /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)(import_jsx_runtime63.Fragment, { children: [
2926
- (!inModal || !emailOpen) && /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)("div", { className: "matchid-login-box", children: [
2927
- /* @__PURE__ */ (0, import_jsx_runtime63.jsx)("div", { className: "matchid-login-recommend-list", children: methodConfig.recommendMethods.map((m) => {
2928
- return /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
2535
+ return /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)(import_jsx_runtime69.Fragment, { children: [
2536
+ (!inModal || !emailOpen) && /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)("div", { className: "matchid-login-box", children: [
2537
+ /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("div", { className: "matchid-login-recommend-list", children: methodConfig.recommendMethods.map((m) => {
2538
+ return /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
2929
2539
  RecommendItem,
2930
2540
  {
2931
2541
  icon: methodMap[m]?.icon,
2932
2542
  name: methodMap[m]?.name,
2933
2543
  onClick: methodMap[m]?.onClick,
2934
2544
  showChildren: m == "wallet" && showWallet,
2935
- children: m == "wallet" && /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)(import_jsx_runtime63.Fragment, { children: [
2936
- /* @__PURE__ */ (0, import_jsx_runtime63.jsx)("div", { className: "matchid-login-recommend-wallet-divider" }),
2937
- /* @__PURE__ */ (0, import_jsx_runtime63.jsx)("div", { className: "matchid-login-recommend-wallet-list", children: methodConfig.walletMethods.map((n) => {
2545
+ children: m == "wallet" && /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)(import_jsx_runtime69.Fragment, { children: [
2546
+ /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("div", { className: "matchid-login-recommend-wallet-divider" }),
2547
+ /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("div", { className: "matchid-login-recommend-wallet-list", children: methodConfig.walletMethods.map((n) => {
2938
2548
  const m2 = walletMap[n];
2939
- return /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)(
2549
+ return /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)(
2940
2550
  "div",
2941
2551
  {
2942
2552
  className: "matchid-login-recommend-wallet-item",
@@ -2944,16 +2554,16 @@ function LoginBox({
2944
2554
  login(m2.method);
2945
2555
  },
2946
2556
  children: [
2947
- /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)("div", { className: "matchid-login-recommend-wallet-item-content", children: [
2948
- /* @__PURE__ */ (0, import_jsx_runtime63.jsx)("div", { className: "matchid-login-recommend-wallet-item-icon", children: m2.icon }),
2949
- /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
2557
+ /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)("div", { className: "matchid-login-recommend-wallet-item-content", children: [
2558
+ /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("div", { className: "matchid-login-recommend-wallet-item-icon", children: m2.icon }),
2559
+ /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
2950
2560
  "div",
2951
2561
  {
2952
2562
  className: "matchid-login-recommend-wallet-item-hover-icon",
2953
2563
  children: m2.activeIcon
2954
2564
  }
2955
2565
  ),
2956
- /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
2566
+ /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
2957
2567
  "span",
2958
2568
  {
2959
2569
  className: "matchid-login-recommend-wallet-item-name",
@@ -2961,7 +2571,7 @@ function LoginBox({
2961
2571
  }
2962
2572
  )
2963
2573
  ] }),
2964
- /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
2574
+ /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
2965
2575
  ArrowRightIcon,
2966
2576
  {
2967
2577
  className: "matchid-login-recommend-wallet-item-arrow",
@@ -2979,10 +2589,10 @@ function LoginBox({
2979
2589
  m
2980
2590
  );
2981
2591
  }) }),
2982
- methodConfig.methods.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)("div", { className: "matchid-login-other", children: [
2983
- /* @__PURE__ */ (0, import_jsx_runtime63.jsx)("div", { className: "matchid-login-other-text", children: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(import_react_intl8.FormattedMessage, { id: "otherLoginMethods" }) }),
2984
- /* @__PURE__ */ (0, import_jsx_runtime63.jsx)("div", { className: "matchid-login-method-box", children: methodConfig.methods.map((m) => {
2985
- return /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
2592
+ methodConfig.methods.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)("div", { className: "matchid-login-other", children: [
2593
+ /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("div", { className: "matchid-login-other-text", children: /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(import_react_intl6.FormattedMessage, { id: "otherLoginMethods" }) }),
2594
+ /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("div", { className: "matchid-login-method-box", children: methodConfig.methods.map((m) => {
2595
+ return /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
2986
2596
  "div",
2987
2597
  {
2988
2598
  className: "matchid-login-method-item",
@@ -2995,7 +2605,7 @@ function LoginBox({
2995
2605
  }) })
2996
2606
  ] })
2997
2607
  ] }),
2998
- /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
2608
+ /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
2999
2609
  EmailModal,
3000
2610
  {
3001
2611
  isOpen: emailOpen,
@@ -3011,56 +2621,56 @@ function LoginBox({
3011
2621
  }
3012
2622
 
3013
2623
  // src/components/LoginButton/index.tsx
3014
- var import_react22 = require("react");
2624
+ var import_react23 = require("react");
3015
2625
 
3016
2626
  // src/components/LoginPanel/index.tsx
3017
- var import_react_intl9 = require("react-intl");
3018
- var import_jsx_runtime64 = require("react/jsx-runtime");
2627
+ var import_react_intl7 = require("react-intl");
2628
+ var import_jsx_runtime70 = require("react/jsx-runtime");
3019
2629
  function LoginPanel({
3020
2630
  header,
3021
2631
  onClose,
3022
2632
  ...props
3023
2633
  }) {
3024
2634
  const isDownMd = useDownMd();
3025
- return /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)("div", { className: "matchid-login-panel", children: [
3026
- header ? header : /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)("div", { className: "matchid-login-panel-header", children: [
3027
- /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)("div", { className: "matchid-login-panel-header-content", children: [
3028
- /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("div", { className: "matchid-login-panel-header-title", children: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(import_react_intl9.FormattedMessage, { id: "loginTitle" }) }),
3029
- /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("div", { className: "matchid-login-panel-header-subtilte", children: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(import_react_intl9.FormattedMessage, { id: "loginTips" }) })
2635
+ return /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)("div", { className: "matchid-login-panel", children: [
2636
+ header ? header : /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)("div", { className: "matchid-login-panel-header", children: [
2637
+ /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)("div", { className: "matchid-login-panel-header-content", children: [
2638
+ /* @__PURE__ */ (0, import_jsx_runtime70.jsx)("div", { className: "matchid-login-panel-header-title", children: /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(import_react_intl7.FormattedMessage, { id: "loginTitle" }) }),
2639
+ /* @__PURE__ */ (0, import_jsx_runtime70.jsx)("div", { className: "matchid-login-panel-header-subtilte", children: /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(import_react_intl7.FormattedMessage, { id: "loginTips" }) })
3030
2640
  ] }),
3031
- onClose && /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("div", { className: "matchid-login-panel-header-close", onClick: onClose, children: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(CloseRoundIcon, { size: isDownMd ? 24 : 30 }) })
2641
+ onClose && /* @__PURE__ */ (0, import_jsx_runtime70.jsx)("div", { className: "matchid-login-panel-header-close", onClick: onClose, children: /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(CloseRoundIcon, { size: isDownMd ? 24 : 30 }) })
3032
2642
  ] }),
3033
- /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("div", { className: "matchid-login-panel-divide" }),
3034
- /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("div", { className: "matchid-login-panel-box", children: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(LoginBox, { ...props }) })
2643
+ /* @__PURE__ */ (0, import_jsx_runtime70.jsx)("div", { className: "matchid-login-panel-divide" }),
2644
+ /* @__PURE__ */ (0, import_jsx_runtime70.jsx)("div", { className: "matchid-login-panel-box", children: /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(LoginBox, { ...props }) })
3035
2645
  ] });
3036
2646
  }
3037
2647
 
3038
2648
  // src/components/LoginModal/index.tsx
3039
- var import_jsx_runtime65 = require("react/jsx-runtime");
2649
+ var import_jsx_runtime71 = require("react/jsx-runtime");
3040
2650
  function LoginModal({
3041
2651
  isOpen = false,
3042
2652
  width = 480,
3043
2653
  ...props
3044
2654
  }) {
3045
2655
  const { isLogin } = useUserInfo();
3046
- return /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
2656
+ return /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(
3047
2657
  Modal,
3048
2658
  {
3049
2659
  isOpen: isOpen && !isLogin,
3050
2660
  width,
3051
- children: /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(LoginPanel, { ...props, inModal: true })
2661
+ children: /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(LoginPanel, { ...props, inModal: true })
3052
2662
  }
3053
2663
  );
3054
2664
  }
3055
2665
 
3056
2666
  // src/components/UserPopover/index.tsx
3057
- var import_react21 = require("react");
2667
+ var import_react22 = require("react");
3058
2668
 
3059
2669
  // src/assets/icon/ProfileIcon.tsx
3060
- var import_jsx_runtime66 = require("react/jsx-runtime");
2670
+ var import_jsx_runtime72 = require("react/jsx-runtime");
3061
2671
  function ProfileIcon({ size = 24, color = "black", ...props }) {
3062
- return /* @__PURE__ */ (0, import_jsx_runtime66.jsxs)("svg", { width: size, height: size, viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [
3063
- /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
2672
+ return /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)("svg", { width: size, height: size, viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [
2673
+ /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
3064
2674
  "path",
3065
2675
  {
3066
2676
  fillRule: "evenodd",
@@ -3069,7 +2679,7 @@ function ProfileIcon({ size = 24, color = "black", ...props }) {
3069
2679
  fill: color
3070
2680
  }
3071
2681
  ),
3072
- /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
2682
+ /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
3073
2683
  "path",
3074
2684
  {
3075
2685
  fillRule: "evenodd",
@@ -3082,11 +2692,11 @@ function ProfileIcon({ size = 24, color = "black", ...props }) {
3082
2692
  }
3083
2693
 
3084
2694
  // src/components/UserPopover/index.tsx
3085
- var import_react_intl10 = require("react-intl");
3086
- var import_jsx_runtime67 = require("react/jsx-runtime");
2695
+ var import_react_intl8 = require("react-intl");
2696
+ var import_jsx_runtime73 = require("react/jsx-runtime");
3087
2697
  function UserContent() {
3088
2698
  const { logout, address, username } = useUserInfo();
3089
- const [logouting, setLogouting] = (0, import_react21.useState)(false);
2699
+ const [logouting, setLogouting] = (0, import_react22.useState)(false);
3090
2700
  const onLogout = async () => {
3091
2701
  if (logouting) return;
3092
2702
  try {
@@ -3104,34 +2714,34 @@ function UserContent() {
3104
2714
  rightIcon,
3105
2715
  onClick
3106
2716
  }) => {
3107
- return /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)("div", { className: "matchid-user-popover-item", onClick, children: [
3108
- /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)("div", { className: `matchid-user-popover-item-content`, children: [
2717
+ return /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)("div", { className: "matchid-user-popover-item", onClick, children: [
2718
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)("div", { className: `matchid-user-popover-item-content`, children: [
3109
2719
  icon,
3110
- /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("div", { className: "matchid-user-popover-item-text", children })
2720
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("div", { className: "matchid-user-popover-item-text", children })
3111
2721
  ] }),
3112
2722
  rightIcon
3113
2723
  ] });
3114
2724
  };
3115
2725
  const UserDivider = () => {
3116
- return /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("div", { className: `matchid-user-popover-divider` });
2726
+ return /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("div", { className: `matchid-user-popover-divider` });
3117
2727
  };
3118
- const [usernameOpen, setUsernameOpen] = (0, import_react21.useState)(false);
2728
+ const [usernameOpen, setUsernameOpen] = (0, import_react22.useState)(false);
3119
2729
  const [copied, setCopied] = useCopyClipboard();
3120
- const intl = (0, import_react_intl10.useIntl)();
3121
- return /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)("div", { className: "matchid-user-popover-content", children: [
3122
- /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)("div", { className: "matchid-user-popover-list", children: [
3123
- /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(UserItem, { onClick: () => {
2730
+ const intl = (0, import_react_intl8.useIntl)();
2731
+ return /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)("div", { className: "matchid-user-popover-content", children: [
2732
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)("div", { className: "matchid-user-popover-list", children: [
2733
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(UserItem, { onClick: () => {
3124
2734
  setCopied(address);
3125
- }, icon: copied ? /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(CheckIcon, { size: 20, color: "#0ecb81" }) : /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(CopyIcon, { size: 20, color: "var(--icon-color)" }), rightIcon: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(CheckIcon, { size: 20, color: "var(--icon-color)" }), children: truncateAddress(address) }),
3126
- /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(UserDivider, {}),
3127
- /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(UserItem, { onClick: () => {
2735
+ }, icon: copied ? /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(CheckIcon, { size: 20, color: "#0ecb81" }) : /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(CopyIcon, { size: 20, color: "var(--icon-color)" }), rightIcon: /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(CheckIcon, { size: 20, color: "var(--icon-color)" }), children: truncateAddress(address) }),
2736
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(UserDivider, {}),
2737
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(UserItem, { onClick: () => {
3128
2738
  setUsernameOpen(true);
3129
- }, icon: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(ProfileIcon, { size: 20, color: "var(--icon-color)" }), rightIcon: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(ArrowRightIcon, { size: 20, color: "var(--icon-color)" }), children: username || intl.formatMessage({
2739
+ }, icon: /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(ProfileIcon, { size: 20, color: "var(--icon-color)" }), rightIcon: /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(ArrowRightIcon, { size: 20, color: "var(--icon-color)" }), children: username || intl.formatMessage({
3130
2740
  id: "setUsername"
3131
2741
  }) })
3132
2742
  ] }),
3133
- /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(Button, { onClick: onLogout, loading: logouting, children: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(import_react_intl10.FormattedMessage, { id: "disconnect" }) }),
3134
- /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(UsernameModal, { isOpen: usernameOpen, onClose: () => {
2743
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(Button, { onClick: onLogout, loading: logouting, children: /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(import_react_intl8.FormattedMessage, { id: "disconnect" }) }),
2744
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(UsernameModal, { isOpen: usernameOpen, onClose: () => {
3135
2745
  setUsernameOpen(false);
3136
2746
  }, onSuccess: () => {
3137
2747
  setUsernameOpen(false);
@@ -3142,12 +2752,12 @@ function UserPopover({
3142
2752
  children,
3143
2753
  ...props
3144
2754
  }) {
3145
- return /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(Popover, { ...props, content: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(UserContent, {}), children });
2755
+ return /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(Popover, { ...props, content: /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(UserContent, {}), children });
3146
2756
  }
3147
2757
 
3148
2758
  // src/components/LoginButton/index.tsx
3149
- var import_react_intl11 = require("react-intl");
3150
- var import_jsx_runtime68 = require("react/jsx-runtime");
2759
+ var import_react_intl9 = require("react-intl");
2760
+ var import_jsx_runtime74 = require("react/jsx-runtime");
3151
2761
  function LoginButton({
3152
2762
  loginRender,
3153
2763
  methods,
@@ -3159,12 +2769,12 @@ function LoginButton({
3159
2769
  walletMethods,
3160
2770
  ...props
3161
2771
  }) {
3162
- const intl = (0, import_react_intl11.useIntl)();
2772
+ const intl = (0, import_react_intl9.useIntl)();
3163
2773
  const { isLogin, username } = useUserInfo();
3164
- const [loginOpen, setLoginOpen] = (0, import_react22.useState)(false);
2774
+ const [loginOpen, setLoginOpen] = (0, import_react23.useState)(false);
3165
2775
  if (!isLogin) {
3166
- return /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)(import_jsx_runtime68.Fragment, { children: [
3167
- /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(
2776
+ return /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)(import_jsx_runtime74.Fragment, { children: [
2777
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(
3168
2778
  LoginModal,
3169
2779
  {
3170
2780
  methods,
@@ -3174,32 +2784,32 @@ function LoginButton({
3174
2784
  onClose: () => setLoginOpen(false)
3175
2785
  }
3176
2786
  ),
3177
- /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)(Button, { className: "matchid-unlogin-btn", ...props, highlight: true, onClick: () => setLoginOpen(true), children: [
3178
- /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(UnLoginIcon_default, {}),
3179
- /* @__PURE__ */ (0, import_jsx_runtime68.jsx)("span", { children: /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(import_react_intl11.FormattedMessage, { id: "login" }) })
2787
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)(Button, { className: "matchid-unlogin-btn", ...props, highlight: true, onClick: () => setLoginOpen(true), children: [
2788
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(UnLoginIcon_default, {}),
2789
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("span", { children: /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(import_react_intl9.FormattedMessage, { id: "login" }) })
3180
2790
  ] })
3181
2791
  ] });
3182
2792
  }
3183
- return loginRender ? /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(import_jsx_runtime68.Fragment, { children: loginRender }) : /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(UserPopover, { position: popoverPosition, type: popoverType, gap: popoverGap, children: /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)(Button, { onClick: onLoginClick, className: "matchid-login-btn", ...props, children: [
3184
- /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(LoginIcon_default, {}),
3185
- /* @__PURE__ */ (0, import_jsx_runtime68.jsx)("span", { children: username ? truncateAddress(username) : "MatchID " + intl.formatMessage({
2793
+ return loginRender ? /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(import_jsx_runtime74.Fragment, { children: loginRender }) : /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(UserPopover, { position: popoverPosition, type: popoverType, gap: popoverGap, children: /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)(Button, { onClick: onLoginClick, className: "matchid-login-btn", ...props, children: [
2794
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(LoginIcon_default, {}),
2795
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("span", { children: username ? truncateAddress(username) : "MatchID " + intl.formatMessage({
3186
2796
  id: "user"
3187
2797
  }) })
3188
2798
  ] }) });
3189
2799
  }
3190
2800
 
3191
2801
  // src/components/UsernameModal/index.tsx
3192
- var import_react23 = require("react");
2802
+ var import_react24 = require("react");
3193
2803
 
3194
2804
  // src/assets/icon/InfoRoundIcon.tsx
3195
- var import_jsx_runtime69 = require("react/jsx-runtime");
2805
+ var import_jsx_runtime75 = require("react/jsx-runtime");
3196
2806
  function InfoRoundIcon({
3197
2807
  size,
3198
2808
  color = "#6E6E6E",
3199
2809
  ...props
3200
2810
  }) {
3201
- return /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)("svg", { width: size, height: size, viewBox: "0 0 16 16", fill: "none", xmlns: "http://www.w3.org/2000/svg", ...props, children: [
3202
- /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("g", { clipPath: "url(#clip0_418_7746)", children: /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
2811
+ return /* @__PURE__ */ (0, import_jsx_runtime75.jsxs)("svg", { width: size, height: size, viewBox: "0 0 16 16", fill: "none", xmlns: "http://www.w3.org/2000/svg", ...props, children: [
2812
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("g", { clipPath: "url(#clip0_418_7746)", children: /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(
3203
2813
  "path",
3204
2814
  {
3205
2815
  fillRule: "evenodd",
@@ -3208,21 +2818,21 @@ function InfoRoundIcon({
3208
2818
  fill: color
3209
2819
  }
3210
2820
  ) }),
3211
- /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("defs", { children: /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("clipPath", { id: "clip0_418_7746", children: /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("rect", { width: "16", height: "16", fill: "white" }) }) })
2821
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("defs", { children: /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("clipPath", { id: "clip0_418_7746", children: /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("rect", { width: "16", height: "16", fill: "white" }) }) })
3212
2822
  ] });
3213
2823
  }
3214
2824
 
3215
2825
  // src/components/UsernameModal/index.tsx
3216
- var import_react_intl12 = require("react-intl");
3217
- var import_jsx_runtime70 = require("react/jsx-runtime");
2826
+ var import_react_intl10 = require("react-intl");
2827
+ var import_jsx_runtime76 = require("react/jsx-runtime");
3218
2828
  var ValidItem = ({
3219
2829
  success = false,
3220
2830
  text
3221
2831
  }) => {
3222
2832
  const isDownMd = useDownMd();
3223
- return /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)("div", { className: `matchid-valid-status-item matchid-valid-status-${success ? "success" : "error"}`, children: [
3224
- success ? /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(CheckRoundIcon, { size: isDownMd ? 12 : 16 }) : /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(InfoRoundIcon, { size: isDownMd ? 12 : 16 }),
3225
- /* @__PURE__ */ (0, import_jsx_runtime70.jsx)("span", { children: text })
2833
+ return /* @__PURE__ */ (0, import_jsx_runtime76.jsxs)("div", { className: `matchid-valid-status-item matchid-valid-status-${success ? "success" : "error"}`, children: [
2834
+ success ? /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(CheckRoundIcon, { size: isDownMd ? 12 : 16 }) : /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(InfoRoundIcon, { size: isDownMd ? 12 : 16 }),
2835
+ /* @__PURE__ */ (0, import_jsx_runtime76.jsx)("span", { children: text })
3226
2836
  ] });
3227
2837
  };
3228
2838
  function UsernameModal({
@@ -3233,23 +2843,23 @@ function UsernameModal({
3233
2843
  }) {
3234
2844
  const { username, refreshOverview } = useUserInfo();
3235
2845
  const { isLogin } = useUserInfo();
3236
- const [val, setVal] = (0, import_react23.useState)(username);
3237
- const [error, setError] = (0, import_react23.useState)("");
2846
+ const [val, setVal] = (0, import_react24.useState)(username);
2847
+ const [error, setError] = (0, import_react24.useState)("");
3238
2848
  const isDownMd = useDownMd();
3239
- (0, import_react23.useEffect)(() => {
2849
+ (0, import_react24.useEffect)(() => {
3240
2850
  if (isOpen) {
3241
2851
  setVal(username);
3242
2852
  setError("");
3243
2853
  }
3244
2854
  }, [isOpen]);
3245
- const isValid = (0, import_react23.useMemo)(() => {
2855
+ const isValid = (0, import_react24.useMemo)(() => {
3246
2856
  return isValidUsername(val);
3247
2857
  }, [val]);
3248
- const isLength = (0, import_react23.useMemo)(() => {
2858
+ const isLength = (0, import_react24.useMemo)(() => {
3249
2859
  return val.length >= 2 && val.length <= 32;
3250
2860
  }, [val]);
3251
2861
  const isSafe = isValid && isLength;
3252
- const [isSubmitting, setIsSubmitting] = (0, import_react23.useState)(false);
2862
+ const [isSubmitting, setIsSubmitting] = (0, import_react24.useState)(false);
3253
2863
  const onSubmit = async () => {
3254
2864
  if (isSubmitting) return;
3255
2865
  try {
@@ -3269,13 +2879,13 @@ function UsernameModal({
3269
2879
  setIsSubmitting(false);
3270
2880
  }
3271
2881
  };
3272
- const intl = (0, import_react_intl12.useIntl)();
3273
- return /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(ModalWithHeader, { isOpen: isOpen && isLogin, ...props, title: title || intl.formatMessage({
2882
+ const intl = (0, import_react_intl10.useIntl)();
2883
+ return /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(ModalWithHeader, { isOpen: isOpen && isLogin, ...props, title: title || intl.formatMessage({
3274
2884
  id: username ? "editUsernameTitle" : "setUsernameTitle"
3275
- }), children: /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)("div", { className: "matchid-username-box", children: [
3276
- /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(Field, { label: intl.formatMessage({
2885
+ }), children: /* @__PURE__ */ (0, import_jsx_runtime76.jsxs)("div", { className: "matchid-username-box", children: [
2886
+ /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(Field, { label: intl.formatMessage({
3277
2887
  id: "username"
3278
- }), error, children: /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
2888
+ }), error, children: /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(
3279
2889
  Input,
3280
2890
  {
3281
2891
  placeholder: intl.formatMessage({
@@ -3288,8 +2898,8 @@ function UsernameModal({
3288
2898
  value: val
3289
2899
  }
3290
2900
  ) }),
3291
- /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)("div", { className: "matchid-valid", children: [
3292
- /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
2901
+ /* @__PURE__ */ (0, import_jsx_runtime76.jsxs)("div", { className: "matchid-valid", children: [
2902
+ /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(
3293
2903
  ValidItem,
3294
2904
  {
3295
2905
  success: isValid,
@@ -3298,21 +2908,21 @@ function UsernameModal({
3298
2908
  })
3299
2909
  }
3300
2910
  ),
3301
- /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(ValidItem, { success: isLength, text: intl.formatMessage({
2911
+ /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(ValidItem, { success: isLength, text: intl.formatMessage({
3302
2912
  id: "usernameLengthError"
3303
2913
  }) })
3304
2914
  ] }),
3305
- /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(Button, { disabled: !isSafe, loading: isSubmitting, style: {
2915
+ /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(Button, { disabled: !isSafe, loading: isSubmitting, style: {
3306
2916
  marginTop: isDownMd ? "36px" : "64px"
3307
- }, onClick: onSubmit, size: "lg", block: true, highlight: true, children: /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(import_react_intl12.FormattedMessage, { id: "confirm" }) }),
3308
- /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(Button, { style: {
2917
+ }, onClick: onSubmit, size: "lg", block: true, highlight: true, children: /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(import_react_intl10.FormattedMessage, { id: "confirm" }) }),
2918
+ /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(Button, { style: {
3309
2919
  marginTop: isDownMd ? "12px" : "24px"
3310
- }, onClick: props.onClose, size: "lg", block: true, children: /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(import_react_intl12.FormattedMessage, { id: "cancel" }) })
2920
+ }, onClick: props.onClose, size: "lg", block: true, children: /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(import_react_intl10.FormattedMessage, { id: "cancel" }) })
3311
2921
  ] }) });
3312
2922
  }
3313
2923
 
3314
2924
  // src/components/SOLModal/index.tsx
3315
- var import_react25 = __toESM(require("react"));
2925
+ var import_react26 = __toESM(require("react"));
3316
2926
  var import_web3 = require("@solana/web3.js");
3317
2927
  var import_wallet_adapter_react = require("@solana/wallet-adapter-react");
3318
2928
  var import_wallet_adapter_react_ui = require("@solana/wallet-adapter-react-ui");
@@ -3328,10 +2938,10 @@ var WalletAdapterNetwork;
3328
2938
  // src/components/SOLModal/index.tsx
3329
2939
  var import_wallet_adapter_wallets = require("@solana/wallet-adapter-wallets");
3330
2940
  var import_styles = require("@solana/wallet-adapter-react-ui/styles.css");
3331
- var import_react_intl13 = require("react-intl");
2941
+ var import_react_intl11 = require("react-intl");
3332
2942
 
3333
2943
  // src/components/WalletModalContent/index.tsx
3334
- var import_react24 = require("react");
2944
+ var import_react25 = require("react");
3335
2945
 
3336
2946
  // src/assets/wallet.ts
3337
2947
  var walletErrorImage = "data:image/png;base64,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";
@@ -3341,7 +2951,7 @@ var walletConnectImage = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQAAAAEA
3341
2951
  var walletSigningImage = "data:image/png;base64,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";
3342
2952
 
3343
2953
  // src/components/WalletModalContent/index.tsx
3344
- var import_jsx_runtime71 = require("react/jsx-runtime");
2954
+ var import_jsx_runtime77 = require("react/jsx-runtime");
3345
2955
  function WalletModalContent({
3346
2956
  status,
3347
2957
  error,
@@ -3352,7 +2962,7 @@ function WalletModalContent({
3352
2962
  address,
3353
2963
  connected
3354
2964
  }) {
3355
- const pageData = (0, import_react24.useMemo)(() => {
2965
+ const pageData = (0, import_react25.useMemo)(() => {
3356
2966
  if (status == "success") {
3357
2967
  return {
3358
2968
  btnText: "Disconnect Wallet",
@@ -3411,12 +3021,12 @@ function WalletModalContent({
3411
3021
  statusImage: walletConnectImage
3412
3022
  };
3413
3023
  }, [visible, connected, status, error, address]);
3414
- return /* @__PURE__ */ (0, import_jsx_runtime71.jsx)("div", { className: "matchid-wallet-container", children: /* @__PURE__ */ (0, import_jsx_runtime71.jsxs)("div", { className: `matchid-wallet-box`, children: [
3415
- /* @__PURE__ */ (0, import_jsx_runtime71.jsxs)("div", { className: `matchid-wallet-content`, children: [
3416
- /* @__PURE__ */ (0, import_jsx_runtime71.jsx)("img", { src: pageData.statusImage }),
3417
- /* @__PURE__ */ (0, import_jsx_runtime71.jsx)("div", { className: pageData.isError ? "text-[#F7585E]" : "", children: pageData.text })
3024
+ return /* @__PURE__ */ (0, import_jsx_runtime77.jsx)("div", { className: "matchid-wallet-container", children: /* @__PURE__ */ (0, import_jsx_runtime77.jsxs)("div", { className: `matchid-wallet-box`, children: [
3025
+ /* @__PURE__ */ (0, import_jsx_runtime77.jsxs)("div", { className: `matchid-wallet-content`, children: [
3026
+ /* @__PURE__ */ (0, import_jsx_runtime77.jsx)("img", { src: pageData.statusImage }),
3027
+ /* @__PURE__ */ (0, import_jsx_runtime77.jsx)("div", { className: pageData.isError ? "text-[#F7585E]" : "", children: pageData.text })
3418
3028
  ] }),
3419
- /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(
3029
+ /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(
3420
3030
  Button,
3421
3031
  {
3422
3032
  block: true,
@@ -3431,7 +3041,7 @@ function WalletModalContent({
3431
3041
  }
3432
3042
 
3433
3043
  // src/components/SOLModal/index.tsx
3434
- var import_jsx_runtime72 = require("react/jsx-runtime");
3044
+ var import_jsx_runtime78 = require("react/jsx-runtime");
3435
3045
  function WalletContent({
3436
3046
  onSuccess,
3437
3047
  type
@@ -3439,17 +3049,17 @@ function WalletContent({
3439
3049
  const { setVisible, visible } = (0, import_wallet_adapter_react_ui.useWalletModal)();
3440
3050
  const wallet = (0, import_wallet_adapter_react.useWallet)();
3441
3051
  const { events, login } = useMatch();
3442
- const [status, setStatus] = (0, import_react25.useState)("");
3443
- const statusRef = import_react25.default.useRef(status);
3444
- const [error, setError] = (0, import_react25.useState)("");
3445
- (0, import_react25.useEffect)(() => {
3052
+ const [status, setStatus] = (0, import_react26.useState)("");
3053
+ const statusRef = import_react26.default.useRef(status);
3054
+ const [error, setError] = (0, import_react26.useState)("");
3055
+ (0, import_react26.useEffect)(() => {
3446
3056
  const init = async () => {
3447
3057
  await wallet.disconnect();
3448
3058
  setVisible(true);
3449
3059
  };
3450
3060
  init();
3451
3061
  }, []);
3452
- (0, import_react25.useEffect)(() => {
3062
+ (0, import_react26.useEffect)(() => {
3453
3063
  if (wallet.connected) {
3454
3064
  console.log("wallet.connected", wallet.connected);
3455
3065
  toLoginInWallet();
@@ -3513,7 +3123,7 @@ function WalletContent({
3513
3123
  statusRef.current = "";
3514
3124
  }
3515
3125
  };
3516
- return /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
3126
+ return /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(
3517
3127
  WalletModalContent,
3518
3128
  {
3519
3129
  connected: wallet.connected,
@@ -3573,20 +3183,20 @@ function SOLConnectModal({
3573
3183
  onSuccess,
3574
3184
  ...props
3575
3185
  }) {
3576
- const intl = (0, import_react_intl13.useIntl)();
3577
- return /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(ModalWithHeader, { ...props, title: props.title || intl.formatMessage({
3186
+ const intl = (0, import_react_intl11.useIntl)();
3187
+ return /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(ModalWithHeader, { ...props, title: props.title || intl.formatMessage({
3578
3188
  id: type == "bind" ? "bindWith" : "loginWith"
3579
3189
  }, {
3580
3190
  name: "SOL"
3581
- }), children: /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(import_wallet_adapter_react.ConnectionProvider, { endpoint: (0, import_web3.clusterApiUrl)("devnet"), children: /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(import_wallet_adapter_react.WalletProvider, { wallets, autoConnect: true, children: /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(import_wallet_adapter_react_ui.WalletModalProvider, { children: /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(WalletContent, { onSuccess, type }) }) }) }) });
3191
+ }), children: /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(import_wallet_adapter_react.ConnectionProvider, { endpoint: (0, import_web3.clusterApiUrl)("devnet"), children: /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(import_wallet_adapter_react.WalletProvider, { wallets, autoConnect: true, children: /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(import_wallet_adapter_react_ui.WalletModalProvider, { children: /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(WalletContent, { onSuccess, type }) }) }) }) });
3582
3192
  }
3583
3193
  function SOLModal(props) {
3584
- return props.isOpen && /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(SOLConnectModal, { ...props });
3194
+ return props.isOpen && /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(SOLConnectModal, { ...props });
3585
3195
  }
3586
3196
 
3587
3197
  // src/components/TRONModal/index.tsx
3588
- var import_react27 = __toESM(require("react"));
3589
- var import_react_intl14 = require("react-intl");
3198
+ var import_react28 = __toESM(require("react"));
3199
+ var import_react_intl12 = require("react-intl");
3590
3200
 
3591
3201
  // src/lib/tron/TronLinkAdapter.ts
3592
3202
  var TronLinkAdapter = class {
@@ -3619,7 +3229,7 @@ var TronLinkAdapter = class {
3619
3229
  };
3620
3230
 
3621
3231
  // src/hooks/useTRONWallet.ts
3622
- var import_react26 = require("react");
3232
+ var import_react27 = require("react");
3623
3233
 
3624
3234
  // src/lib/tron/BitgetAdapter.ts
3625
3235
  var BitgetAdapter = class {
@@ -3664,9 +3274,9 @@ var OKXAdapter = class {
3664
3274
  // src/hooks/useTRONWallet.ts
3665
3275
  var useTRONWallet = () => {
3666
3276
  const wallets2 = [new TronLinkAdapter(), new BitgetAdapter(), new OKXAdapter()];
3667
- const [installedWallets, setInstalledWallets] = (0, import_react26.useState)([]);
3668
- const [address, setAddress] = (0, import_react26.useState)(null);
3669
- (0, import_react26.useEffect)(() => {
3277
+ const [installedWallets, setInstalledWallets] = (0, import_react27.useState)([]);
3278
+ const [address, setAddress] = (0, import_react27.useState)(null);
3279
+ (0, import_react27.useEffect)(() => {
3670
3280
  const getInstalled = async () => {
3671
3281
  const installed = await Promise.all(wallets2.map((wallet2) => wallet2.isInstalled().then((isInstalled) => ({
3672
3282
  wallet: wallet2,
@@ -3676,11 +3286,11 @@ var useTRONWallet = () => {
3676
3286
  };
3677
3287
  getInstalled();
3678
3288
  }, []);
3679
- const [wallet, chooseWallet] = (0, import_react26.useState)(null);
3289
+ const [wallet, chooseWallet] = (0, import_react27.useState)(null);
3680
3290
  const onConnect = async () => {
3681
3291
  setAddress(await wallet.connect());
3682
3292
  };
3683
- (0, import_react26.useEffect)(() => {
3293
+ (0, import_react27.useEffect)(() => {
3684
3294
  if (!wallet) {
3685
3295
  setAddress(null);
3686
3296
  }
@@ -3696,25 +3306,25 @@ var useTRONWallet = () => {
3696
3306
  };
3697
3307
 
3698
3308
  // src/components/TRONModal/index.tsx
3699
- var import_jsx_runtime73 = require("react/jsx-runtime");
3309
+ var import_jsx_runtime79 = require("react/jsx-runtime");
3700
3310
  function TRONConnectModal({
3701
3311
  type = "login",
3702
3312
  onSuccess,
3703
3313
  ...props
3704
3314
  }) {
3705
3315
  const isDownMd = useDownMd();
3706
- const intl = (0, import_react_intl14.useIntl)();
3316
+ const intl = (0, import_react_intl12.useIntl)();
3707
3317
  const { wallets: wallets2, installedWallets, chooseWallet, wallet, address, onConnect } = useTRONWallet();
3708
3318
  const iconMaps = {
3709
- tronlink: /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(TronLinkIcon, { size: isDownMd ? 36 : 40 }),
3710
- bitget: /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(BitgetIcon, { size: isDownMd ? 36 : 40 }),
3711
- okx: /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(OKXIcon, { size: isDownMd ? 36 : 40 })
3319
+ tronlink: /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(TronLinkIcon, { size: isDownMd ? 36 : 40 }),
3320
+ bitget: /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(BitgetIcon, { size: isDownMd ? 36 : 40 }),
3321
+ okx: /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(OKXIcon, { size: isDownMd ? 36 : 40 })
3712
3322
  };
3713
3323
  const { events, login } = useMatch();
3714
- const [status, setStatus] = (0, import_react27.useState)("");
3715
- const statusRef = import_react27.default.useRef(status);
3716
- const [error, setError] = (0, import_react27.useState)("");
3717
- const connected = (0, import_react27.useMemo)(() => {
3324
+ const [status, setStatus] = (0, import_react28.useState)("");
3325
+ const statusRef = import_react28.default.useRef(status);
3326
+ const [error, setError] = (0, import_react28.useState)("");
3327
+ const connected = (0, import_react28.useMemo)(() => {
3718
3328
  return !!address;
3719
3329
  }, [address]);
3720
3330
  const disconnect = async () => {
@@ -3782,7 +3392,7 @@ function TRONConnectModal({
3782
3392
  statusRef.current = "";
3783
3393
  }
3784
3394
  };
3785
- (0, import_react27.useEffect)(() => {
3395
+ (0, import_react28.useEffect)(() => {
3786
3396
  if (wallet) {
3787
3397
  console.log("onConnect");
3788
3398
  onConnect();
@@ -3790,21 +3400,21 @@ function TRONConnectModal({
3790
3400
  setStatus("");
3791
3401
  }
3792
3402
  }, [wallet]);
3793
- (0, import_react27.useEffect)(() => {
3403
+ (0, import_react28.useEffect)(() => {
3794
3404
  if (address) {
3795
3405
  toLoginInWallet();
3796
3406
  }
3797
3407
  }, [address]);
3798
- (0, import_react27.useEffect)(() => {
3408
+ (0, import_react28.useEffect)(() => {
3799
3409
  if (!props.isOpen) {
3800
3410
  disconnect();
3801
3411
  }
3802
3412
  }, [props.isOpen]);
3803
- return /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(ModalWithHeader, { ...props, title: props.title || intl.formatMessage({
3413
+ return /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(ModalWithHeader, { ...props, title: props.title || intl.formatMessage({
3804
3414
  id: type == "bind" ? "bindWith" : "loginWith"
3805
3415
  }, {
3806
3416
  name: "TRON"
3807
- }), onBack: wallet ? onBack : void 0, children: wallet ? /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
3417
+ }), onBack: wallet ? onBack : void 0, children: wallet ? /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(
3808
3418
  WalletModalContent,
3809
3419
  {
3810
3420
  error,
@@ -3817,9 +3427,9 @@ function TRONConnectModal({
3817
3427
  setVisible: () => {
3818
3428
  }
3819
3429
  }
3820
- ) : /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("div", { className: "matchid-login-box", children: /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)("div", { className: "matchid-login-recommend-list", children: [
3430
+ ) : /* @__PURE__ */ (0, import_jsx_runtime79.jsx)("div", { className: "matchid-login-box", children: /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)("div", { className: "matchid-login-recommend-list", children: [
3821
3431
  installedWallets.map((wallet2) => {
3822
- return /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
3432
+ return /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(
3823
3433
  RecommendItem,
3824
3434
  {
3825
3435
  icon: iconMaps[wallet2.walletKey],
@@ -3832,14 +3442,14 @@ function TRONConnectModal({
3832
3442
  );
3833
3443
  }),
3834
3444
  wallets2.filter((wallet2) => !installedWallets.find((installedWallet) => installedWallet.walletKey == wallet2.walletKey)).map((wallet2) => {
3835
- return /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
3445
+ return /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(
3836
3446
  RecommendItem,
3837
3447
  {
3838
3448
  icon: iconMaps[wallet2.walletKey],
3839
3449
  name: wallet2.name,
3840
3450
  onClick: () => {
3841
3451
  },
3842
- footer: /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(Button, { size: "sm", onClick: () => {
3452
+ footer: /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(Button, { size: "sm", onClick: () => {
3843
3453
  window.open(wallet2.website);
3844
3454
  }, children: "Install" })
3845
3455
  },
@@ -3849,28 +3459,28 @@ function TRONConnectModal({
3849
3459
  ] }) }) });
3850
3460
  }
3851
3461
  function TRONModal(props) {
3852
- return props.isOpen && /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(TRONConnectModal, { ...props, type: props.type });
3462
+ return props.isOpen && /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(TRONConnectModal, { ...props, type: props.type });
3853
3463
  }
3854
3464
 
3855
3465
  // src/components/TONModal/index.tsx
3856
- var import_react28 = __toESM(require("react"));
3857
- var import_react_intl15 = require("react-intl");
3466
+ var import_react29 = __toESM(require("react"));
3467
+ var import_react_intl13 = require("react-intl");
3858
3468
  var import_ui_react = require("@tonconnect/ui-react");
3859
- var import_jsx_runtime74 = require("react/jsx-runtime");
3469
+ var import_jsx_runtime80 = require("react/jsx-runtime");
3860
3470
  function WalletContent2({
3861
3471
  onSuccess,
3862
3472
  type
3863
3473
  }) {
3864
3474
  const { events, login } = useMatch();
3865
- const [connected, setConnected] = (0, import_react28.useState)(false);
3475
+ const [connected, setConnected] = (0, import_react29.useState)(false);
3866
3476
  const wallet = (0, import_ui_react.useTonWallet)();
3867
3477
  const userFriendlyAddress = (0, import_ui_react.useTonAddress)();
3868
3478
  const [tonConnectUI] = (0, import_ui_react.useTonConnectUI)();
3869
3479
  const { state, open, close } = (0, import_ui_react.useTonConnectModal)();
3870
- const [status, setStatus] = (0, import_react28.useState)("");
3871
- const statusRef = import_react28.default.useRef(status);
3872
- const [error, setError] = (0, import_react28.useState)("");
3873
- (0, import_react28.useEffect)(() => {
3480
+ const [status, setStatus] = (0, import_react29.useState)("");
3481
+ const statusRef = import_react29.default.useRef(status);
3482
+ const [error, setError] = (0, import_react29.useState)("");
3483
+ (0, import_react29.useEffect)(() => {
3874
3484
  const init = async () => {
3875
3485
  if (wallet) {
3876
3486
  await tonConnectUI.disconnect();
@@ -3943,7 +3553,7 @@ function WalletContent2({
3943
3553
  }
3944
3554
  });
3945
3555
  }, []);
3946
- (0, import_react28.useEffect)(() => {
3556
+ (0, import_react29.useEffect)(() => {
3947
3557
  if (wallet) {
3948
3558
  setConnected(true);
3949
3559
  console.log("Wallet connected:", wallet);
@@ -3954,7 +3564,7 @@ function WalletContent2({
3954
3564
  setStatus("");
3955
3565
  }
3956
3566
  }, [wallet]);
3957
- (0, import_react28.useEffect)(() => {
3567
+ (0, import_react29.useEffect)(() => {
3958
3568
  console.log({
3959
3569
  state,
3960
3570
  wallet
@@ -3983,7 +3593,7 @@ function WalletContent2({
3983
3593
  }
3984
3594
  }
3985
3595
  }, [state]);
3986
- return /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(
3596
+ return /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(
3987
3597
  WalletModalContent,
3988
3598
  {
3989
3599
  connected,
@@ -4014,28 +3624,28 @@ function TONConnectModal({
4014
3624
  onSuccess,
4015
3625
  ...props
4016
3626
  }) {
4017
- const intl = (0, import_react_intl15.useIntl)();
3627
+ const intl = (0, import_react_intl13.useIntl)();
4018
3628
  const { endpoints, appid } = useLocalStore_default();
4019
3629
  const manifestUrl = `${endpoints.back}api/v1/wallet/ton?appid=${appid}&url=` + encodeURIComponent(window.location.origin);
4020
- return /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(ModalWithHeader, { ...props, title: props.title || intl.formatMessage({
3630
+ return /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(ModalWithHeader, { ...props, title: props.title || intl.formatMessage({
4021
3631
  id: type == "bind" ? "bindWith" : "loginWith"
4022
3632
  }, {
4023
3633
  name: "TON"
4024
- }), children: /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(
3634
+ }), children: /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(
4025
3635
  import_ui_react.TonConnectUIProvider,
4026
3636
  {
4027
3637
  manifestUrl,
4028
- children: /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(WalletContent2, { onSuccess, type })
3638
+ children: /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(WalletContent2, { onSuccess, type })
4029
3639
  }
4030
3640
  ) });
4031
3641
  }
4032
3642
  function TONModal(props) {
4033
- return props.isOpen && /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(TONConnectModal, { ...props });
3643
+ return props.isOpen && /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(TONConnectModal, { ...props });
4034
3644
  }
4035
3645
 
4036
3646
  // src/components/BTCModal/index.tsx
4037
- var import_react30 = __toESM(require("react"));
4038
- var import_react_intl16 = require("react-intl");
3647
+ var import_react31 = __toESM(require("react"));
3648
+ var import_react_intl14 = require("react-intl");
4039
3649
 
4040
3650
  // src/lib/btc/UnisatAdapter.ts
4041
3651
  var UnisatAdapter = class {
@@ -4183,12 +3793,12 @@ var LeatherAdapter = class {
4183
3793
  };
4184
3794
 
4185
3795
  // src/hooks/useBTCWallet.ts
4186
- var import_react29 = require("react");
3796
+ var import_react30 = require("react");
4187
3797
  var useBTCWallet = () => {
4188
3798
  const wallets2 = [new UnisatAdapter(), new XverseAdapter(), new LeatherAdapter()];
4189
- const [installedWallets, setInstalledWallets] = (0, import_react29.useState)([]);
4190
- const [address, setAddress] = (0, import_react29.useState)(null);
4191
- (0, import_react29.useEffect)(() => {
3799
+ const [installedWallets, setInstalledWallets] = (0, import_react30.useState)([]);
3800
+ const [address, setAddress] = (0, import_react30.useState)(null);
3801
+ (0, import_react30.useEffect)(() => {
4192
3802
  const getInstalled = async () => {
4193
3803
  const installed = await Promise.all(wallets2.map((wallet2) => wallet2.isInstalled().then((isInstalled) => ({
4194
3804
  wallet: wallet2,
@@ -4198,11 +3808,11 @@ var useBTCWallet = () => {
4198
3808
  };
4199
3809
  getInstalled();
4200
3810
  }, []);
4201
- const [wallet, chooseWallet] = (0, import_react29.useState)(null);
3811
+ const [wallet, chooseWallet] = (0, import_react30.useState)(null);
4202
3812
  const onConnect = async () => {
4203
3813
  setAddress(await wallet.connect());
4204
3814
  };
4205
- (0, import_react29.useEffect)(() => {
3815
+ (0, import_react30.useEffect)(() => {
4206
3816
  if (!wallet) {
4207
3817
  setAddress(null);
4208
3818
  }
@@ -4218,25 +3828,25 @@ var useBTCWallet = () => {
4218
3828
  };
4219
3829
 
4220
3830
  // src/components/BTCModal/index.tsx
4221
- var import_jsx_runtime75 = require("react/jsx-runtime");
3831
+ var import_jsx_runtime81 = require("react/jsx-runtime");
4222
3832
  function BTCConnectModal({
4223
3833
  type = "login",
4224
3834
  onSuccess,
4225
3835
  ...props
4226
3836
  }) {
4227
3837
  const isDownMd = useDownMd();
4228
- const intl = (0, import_react_intl16.useIntl)();
3838
+ const intl = (0, import_react_intl14.useIntl)();
4229
3839
  const { wallets: wallets2, installedWallets, chooseWallet, wallet, address, onConnect } = useBTCWallet();
4230
3840
  const iconMaps = {
4231
- leather: /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(LeatherIcon, { size: isDownMd ? 36 : 40 }),
4232
- unisat: /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(UnisatIcon, { size: isDownMd ? 36 : 40 }),
4233
- xverse: /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(XverseIcon, { size: isDownMd ? 36 : 40 })
3841
+ leather: /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(LeatherIcon, { size: isDownMd ? 36 : 40 }),
3842
+ unisat: /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(UnisatIcon, { size: isDownMd ? 36 : 40 }),
3843
+ xverse: /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(XverseIcon, { size: isDownMd ? 36 : 40 })
4234
3844
  };
4235
3845
  const { events, login } = useMatch();
4236
- const [status, setStatus] = (0, import_react30.useState)("");
4237
- const statusRef = import_react30.default.useRef(status);
4238
- const [error, setError] = (0, import_react30.useState)("");
4239
- const connected = (0, import_react30.useMemo)(() => {
3846
+ const [status, setStatus] = (0, import_react31.useState)("");
3847
+ const statusRef = import_react31.default.useRef(status);
3848
+ const [error, setError] = (0, import_react31.useState)("");
3849
+ const connected = (0, import_react31.useMemo)(() => {
4240
3850
  return !!address;
4241
3851
  }, [address]);
4242
3852
  const disconnect = async () => {
@@ -4300,7 +3910,7 @@ function BTCConnectModal({
4300
3910
  statusRef.current = "";
4301
3911
  }
4302
3912
  };
4303
- (0, import_react30.useEffect)(() => {
3913
+ (0, import_react31.useEffect)(() => {
4304
3914
  if (wallet) {
4305
3915
  console.log("onConnect");
4306
3916
  try {
@@ -4313,12 +3923,12 @@ function BTCConnectModal({
4313
3923
  setStatus("");
4314
3924
  }
4315
3925
  }, [wallet]);
4316
- (0, import_react30.useEffect)(() => {
3926
+ (0, import_react31.useEffect)(() => {
4317
3927
  if (address) {
4318
3928
  toLoginInWallet();
4319
3929
  }
4320
3930
  }, [address]);
4321
- (0, import_react30.useEffect)(() => {
3931
+ (0, import_react31.useEffect)(() => {
4322
3932
  if (!props.isOpen) {
4323
3933
  disconnect();
4324
3934
  }
@@ -4330,11 +3940,11 @@ function BTCConnectModal({
4330
3940
  statusRef.current = "";
4331
3941
  setError("");
4332
3942
  };
4333
- return /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(ModalWithHeader, { ...props, title: props.title || intl.formatMessage({
3943
+ return /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(ModalWithHeader, { ...props, title: props.title || intl.formatMessage({
4334
3944
  id: type == "bind" ? "bindWith" : "loginWith"
4335
3945
  }, {
4336
3946
  name: "BTC"
4337
- }), onBack: wallet ? onBack : void 0, children: wallet ? /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(
3947
+ }), onBack: wallet ? onBack : void 0, children: wallet ? /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(
4338
3948
  WalletModalContent,
4339
3949
  {
4340
3950
  error,
@@ -4347,9 +3957,9 @@ function BTCConnectModal({
4347
3957
  setVisible: () => {
4348
3958
  }
4349
3959
  }
4350
- ) : /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("div", { className: "matchid-login-box", children: /* @__PURE__ */ (0, import_jsx_runtime75.jsxs)("div", { className: "matchid-login-recommend-list", children: [
3960
+ ) : /* @__PURE__ */ (0, import_jsx_runtime81.jsx)("div", { className: "matchid-login-box", children: /* @__PURE__ */ (0, import_jsx_runtime81.jsxs)("div", { className: "matchid-login-recommend-list", children: [
4351
3961
  installedWallets.map((wallet2) => {
4352
- return /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(
3962
+ return /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(
4353
3963
  RecommendItem,
4354
3964
  {
4355
3965
  icon: iconMaps[wallet2.walletKey],
@@ -4362,14 +3972,14 @@ function BTCConnectModal({
4362
3972
  );
4363
3973
  }),
4364
3974
  wallets2.filter((wallet2) => !installedWallets.find((installedWallet) => installedWallet.walletKey == wallet2.walletKey)).map((wallet2) => {
4365
- return /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(
3975
+ return /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(
4366
3976
  RecommendItem,
4367
3977
  {
4368
3978
  icon: iconMaps[wallet2.walletKey],
4369
3979
  name: wallet2.name,
4370
3980
  onClick: () => {
4371
3981
  },
4372
- footer: /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(Button, { size: "sm", onClick: () => {
3982
+ footer: /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(Button, { size: "sm", onClick: () => {
4373
3983
  window.open(wallet2.website);
4374
3984
  }, children: "Install" })
4375
3985
  },
@@ -4379,23 +3989,23 @@ function BTCConnectModal({
4379
3989
  ] }) }) });
4380
3990
  }
4381
3991
  function BTCModal(props) {
4382
- return props.isOpen && /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(BTCConnectModal, { ...props });
3992
+ return props.isOpen && /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(BTCConnectModal, { ...props });
4383
3993
  }
4384
3994
 
4385
3995
  // src/components/WalletModal/index.tsx
4386
- var import_react31 = require("react");
4387
- var import_react_intl17 = require("react-intl");
4388
- var import_jsx_runtime76 = require("react/jsx-runtime");
3996
+ var import_react32 = require("react");
3997
+ var import_react_intl15 = require("react-intl");
3998
+ var import_jsx_runtime82 = require("react/jsx-runtime");
4389
3999
  function WalletConnectModal({
4390
4000
  type,
4391
4001
  methods: _methods,
4392
4002
  ...props
4393
4003
  }) {
4394
- const intl = (0, import_react_intl17.useIntl)();
4004
+ const intl = (0, import_react_intl15.useIntl)();
4395
4005
  const { walletMap } = useWalletConfig();
4396
4006
  const { bind, login } = useUserInfo();
4397
4007
  const config = useAppConfig();
4398
- const methods = (0, import_react31.useMemo)(() => {
4008
+ const methods = (0, import_react32.useMemo)(() => {
4399
4009
  if (_methods) return _methods;
4400
4010
  if (!config.platform) {
4401
4011
  return [];
@@ -4403,13 +4013,13 @@ function WalletConnectModal({
4403
4013
  const platform = config.platform.map((p) => p.toLowerCase());
4404
4014
  return WALLET_METHODS.filter((m) => platform.includes(m));
4405
4015
  }, [config.platform, _methods]);
4406
- return /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(ModalWithHeader, { ...props, title: props.title || intl.formatMessage({
4016
+ return /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(ModalWithHeader, { ...props, title: props.title || intl.formatMessage({
4407
4017
  id: type == "bind" ? "bindWith" : "loginWith"
4408
4018
  }, {
4409
4019
  name: ""
4410
- }), children: /* @__PURE__ */ (0, import_jsx_runtime76.jsx)("div", { className: "matchid-login-box", children: /* @__PURE__ */ (0, import_jsx_runtime76.jsx)("div", { className: "matchid-login-recommend-list", children: methods.map((method, index) => {
4020
+ }), children: /* @__PURE__ */ (0, import_jsx_runtime82.jsx)("div", { className: "matchid-login-box", children: /* @__PURE__ */ (0, import_jsx_runtime82.jsx)("div", { className: "matchid-login-recommend-list", children: methods.map((method, index) => {
4411
4021
  const m = walletMap[method];
4412
- return /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(
4022
+ return /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(
4413
4023
  RecommendItem,
4414
4024
  {
4415
4025
  icon: m?.icon,
@@ -4423,7 +4033,7 @@ function WalletConnectModal({
4423
4033
  }) }) }) });
4424
4034
  }
4425
4035
  function WalletModal(props) {
4426
- return props.isOpen && /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(WalletConnectModal, { ...props });
4036
+ return props.isOpen && /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(WalletConnectModal, { ...props });
4427
4037
  }
4428
4038
  // Annotate the CommonJS export names for ESM import in node:
4429
4039
  0 && (module.exports = {
@@ -4439,7 +4049,6 @@ function WalletModal(props) {
4439
4049
  Modal,
4440
4050
  ModalWithHeader,
4441
4051
  Overlay,
4442
- PasswordModal,
4443
4052
  Popover,
4444
4053
  SOLModal,
4445
4054
  TONModal,