@matchain/matchid-sdk-react 0.1.37-alpha.2 → 0.1.37-alpha.4

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 (60) hide show
  1. package/dist/assets/icon/index.d.mts +123 -0
  2. package/dist/assets/icon/index.d.ts +123 -0
  3. package/dist/assets/icon/index.js +1055 -0
  4. package/dist/assets/icon/index.js.map +1 -0
  5. package/dist/assets/icon/index.mjs +82 -0
  6. package/dist/assets/icon/index.mjs.map +1 -0
  7. package/dist/chunk-HYQ3T6WW.mjs +79 -0
  8. package/dist/chunk-HYQ3T6WW.mjs.map +1 -0
  9. package/dist/chunk-J5LGTIGS.mjs +10 -0
  10. package/dist/chunk-J5LGTIGS.mjs.map +1 -0
  11. package/dist/chunk-J6EA7OSJ.mjs +992 -0
  12. package/dist/chunk-J6EA7OSJ.mjs.map +1 -0
  13. package/dist/chunk-MZB76VOE.mjs +93 -0
  14. package/dist/chunk-MZB76VOE.mjs.map +1 -0
  15. package/dist/chunk-YCRZLAOS.mjs +3709 -0
  16. package/dist/chunk-YCRZLAOS.mjs.map +1 -0
  17. package/dist/components/index.d.mts +4 -0
  18. package/dist/components/index.d.ts +4 -0
  19. package/dist/components/index.js +3352 -0
  20. package/dist/components/index.js.map +1 -0
  21. package/dist/components/index.mjs +39 -0
  22. package/dist/components/index.mjs.map +1 -0
  23. package/dist/config/chains/index.d.mts +2 -0
  24. package/dist/config/chains/index.d.ts +2 -0
  25. package/dist/config/chains/index.js +94 -0
  26. package/dist/config/chains/index.js.map +1 -0
  27. package/dist/config/chains/index.mjs +10 -0
  28. package/dist/config/chains/index.mjs.map +1 -0
  29. package/dist/hooks/api/index.d.mts +5 -0
  30. package/dist/hooks/api/index.d.ts +5 -0
  31. package/dist/hooks/api/index.js +1010 -0
  32. package/dist/hooks/api/index.js.map +1 -0
  33. package/dist/hooks/api/index.mjs +14 -0
  34. package/dist/hooks/api/index.mjs.map +1 -0
  35. package/dist/hooks/index.d.mts +4 -0
  36. package/dist/hooks/index.d.ts +4 -0
  37. package/dist/hooks/index.js +1055 -0
  38. package/dist/hooks/index.js.map +1 -0
  39. package/dist/hooks/index.mjs +17 -0
  40. package/dist/hooks/index.mjs.map +1 -0
  41. package/dist/index-BFn-HCRJ.d.ts +64 -0
  42. package/dist/index-BTTka3Uo.d.mts +75 -0
  43. package/dist/index-BdeWio3u.d.mts +64 -0
  44. package/dist/index-CfipOX1C.d.ts +83 -0
  45. package/dist/index-DUCRzr-P.d.ts +75 -0
  46. package/dist/index-DXRGMAbv.d.mts +83 -0
  47. package/dist/index-DXRGMAbv.d.ts +83 -0
  48. package/dist/index-Dq1vYJ0E.d.mts +83 -0
  49. package/dist/index.css +7 -0
  50. package/dist/index.d.mts +12 -436
  51. package/dist/index.d.ts +12 -436
  52. package/dist/index.js +1185 -297
  53. package/dist/index.js.map +1 -1
  54. package/dist/index.mjs +13 -3682
  55. package/dist/index.mjs.map +1 -1
  56. package/dist/types.d-Cqt8ifXa.d.mts +176 -0
  57. package/dist/types.d-Cqt8ifXa.d.ts +176 -0
  58. package/example/src/config/index.ts +6 -1
  59. package/example/src/pages/User.tsx +12 -3
  60. package/package.json +28 -2
@@ -0,0 +1,1055 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+
30
+ // src/hooks/index.tsx
31
+ var hooks_exports = {};
32
+ __export(hooks_exports, {
33
+ useCopyClipboard: () => useCopyClipboard,
34
+ useLayout: () => useLayout_exports,
35
+ useMatchEvents: () => useMatchEvents,
36
+ useUserInfo: () => useUserInfo,
37
+ useWallet: () => useWallet
38
+ });
39
+ module.exports = __toCommonJS(hooks_exports);
40
+
41
+ // src/store/useLocalStore.ts
42
+ var import_zustand = require("zustand");
43
+ var import_middleware = require("zustand/middleware");
44
+ var persistedState = (0, import_middleware.persist)(
45
+ (set) => ({
46
+ appid: "",
47
+ token: "",
48
+ did: "",
49
+ mid: "",
50
+ overview: null,
51
+ theme: "light",
52
+ setOverview: (overview) => set({
53
+ overview,
54
+ address: overview.address,
55
+ did: overview.did,
56
+ mid: overview.mid
57
+ }),
58
+ endpoints: {
59
+ back: "https://api.matchid.ai/",
60
+ auth: "https://auth.matchid.ai/"
61
+ },
62
+ setDid: (did) => set({ did }),
63
+ setToken: (token) => set({ token }),
64
+ setAppid: (appid) => set({ appid }),
65
+ setMid: (mid) => set({ mid }),
66
+ logout: () => set({ token: "", did: "", mid: "", address: "", overview: null }),
67
+ setTheme: (theme) => set({ theme }),
68
+ setEndpoints: (endpoints) => set({ endpoints }),
69
+ address: "",
70
+ setAddress: (address) => set({ address }),
71
+ locale: "en",
72
+ setLocale: (locale) => set({ locale })
73
+ }),
74
+ { name: "match-local" }
75
+ );
76
+ var useLocalStore = (0, import_zustand.create)((0, import_middleware.devtools)(persistedState));
77
+ var localStore = useLocalStore;
78
+ var useLocalStore_default = useLocalStore;
79
+
80
+ // src/hooks/useUserInfo.tsx
81
+ var import_react22 = require("react");
82
+
83
+ // src/api/request.ts
84
+ var import_axios = __toESM(require("axios"));
85
+
86
+ // src/config/env/index.ts
87
+ var env_default = {
88
+ endpoints: {
89
+ back: "https://api.matchid.ai/",
90
+ auth: "https://auth.matchid.ai/"
91
+ }
92
+ };
93
+
94
+ // src/store/index.ts
95
+ var getEndpoints = () => {
96
+ try {
97
+ const store = localStore.getState();
98
+ const env = store?.endpoints;
99
+ if (env) {
100
+ return env;
101
+ } else {
102
+ return env_default.endpoints;
103
+ }
104
+ } catch (e) {
105
+ return env_default.endpoints;
106
+ }
107
+ };
108
+ var getAppid = () => {
109
+ try {
110
+ const store = localStore.getState();
111
+ const appid = store?.appid;
112
+ if (appid) {
113
+ return appid;
114
+ } else {
115
+ return "";
116
+ }
117
+ } catch (e) {
118
+ return "";
119
+ }
120
+ };
121
+ var getLocale = () => {
122
+ try {
123
+ const store = localStore.getState();
124
+ const locale = store?.locale;
125
+ if (locale) {
126
+ return locale;
127
+ } else {
128
+ return "en";
129
+ }
130
+ } catch (e) {
131
+ return "en";
132
+ }
133
+ };
134
+ var getToken = () => {
135
+ try {
136
+ const store = localStore.getState();
137
+ const token = store?.token;
138
+ if (token) {
139
+ return token;
140
+ } else {
141
+ return "";
142
+ }
143
+ } catch (e) {
144
+ return "";
145
+ }
146
+ };
147
+
148
+ // src/utils/matchlog.ts
149
+ var matchDevExists = () => localStorage.getItem("matchid-sdk-react-debug") !== null;
150
+ var handler = {
151
+ get(target, prop) {
152
+ if (matchDevExists() && typeof target[prop] === "function") {
153
+ return target[prop].bind(console);
154
+ }
155
+ return () => {
156
+ };
157
+ }
158
+ };
159
+ var matchlog = new Proxy(console, handler);
160
+ var matchlog_default = matchlog;
161
+
162
+ // src/api/request.ts
163
+ var SUCCESS_CODE = 0;
164
+ var isSuccess = (res) => {
165
+ return res.code === SUCCESS_CODE;
166
+ };
167
+ var instance = import_axios.default.create({
168
+ timeout: 6e4,
169
+ validateStatus(status) {
170
+ return status >= 200 && status <= 500;
171
+ }
172
+ });
173
+ var request = async (config) => {
174
+ try {
175
+ const endpoints = getEndpoints();
176
+ const token = getToken();
177
+ instance.defaults.baseURL = `${endpoints.back}`;
178
+ instance.defaults.headers.common["Appid"] = getAppid();
179
+ if (token) {
180
+ instance.defaults.headers.common["Authorization"] = token;
181
+ }
182
+ instance.defaults.headers.common["Accept-Language"] = getLocale();
183
+ const { data } = await instance.request(config);
184
+ matchlog_default.log("api", data);
185
+ if (data.code == 401001) {
186
+ localStore.getState().logout();
187
+ throw new Error("Your session has expired, please log in again");
188
+ }
189
+ return data;
190
+ } catch (err) {
191
+ console.error("qwe-err", err);
192
+ const message = "Request Error";
193
+ console.error(message);
194
+ return {
195
+ code: -1,
196
+ data: null,
197
+ message,
198
+ success: false,
199
+ fail: true,
200
+ result: null
201
+ };
202
+ }
203
+ };
204
+ var request_default = request;
205
+
206
+ // src/api/index.ts
207
+ var getEmailCodeApi = (email) => {
208
+ return request_default({
209
+ url: `/api/v1/email/code`,
210
+ method: "POST",
211
+ data: { email }
212
+ });
213
+ };
214
+ var verifyEmailCodeApi = ({ email, verification_key, verification_code }) => {
215
+ return request_default({
216
+ url: `/api/v1/user/email/login`,
217
+ method: "POST",
218
+ data: { email, verification_key, verification_code }
219
+ });
220
+ };
221
+ var getOverviewInfoApi = () => {
222
+ return request_default({
223
+ url: `/api/v1/user/overview`,
224
+ method: "GET"
225
+ });
226
+ };
227
+ var toLogoutApi = () => {
228
+ return request_default({
229
+ url: `/api/v1/user/logout`,
230
+ method: "POST"
231
+ });
232
+ };
233
+ var getAuthInfoApi = () => {
234
+ return request_default({
235
+ url: `/api/v1/user/auth`,
236
+ method: "GET"
237
+ });
238
+ };
239
+
240
+ // src/MatchContext.tsx
241
+ var import_react21 = require("react");
242
+
243
+ // src/assets/icon/ArrowLeftIcon.tsx
244
+ var import_jsx_runtime = require("react/jsx-runtime");
245
+
246
+ // src/assets/icon/BackIcon.tsx
247
+ var import_jsx_runtime2 = require("react/jsx-runtime");
248
+
249
+ // src/assets/icon/CloseIcon.tsx
250
+ var import_jsx_runtime3 = require("react/jsx-runtime");
251
+
252
+ // src/assets/icon/XIcon.tsx
253
+ var import_jsx_runtime4 = require("react/jsx-runtime");
254
+
255
+ // src/assets/icon/GoogleIcon.tsx
256
+ var import_jsx_runtime5 = require("react/jsx-runtime");
257
+
258
+ // src/assets/icon/WalletIcon.tsx
259
+ var import_jsx_runtime6 = require("react/jsx-runtime");
260
+
261
+ // src/assets/icon/TelegramIcon.tsx
262
+ var import_jsx_runtime7 = require("react/jsx-runtime");
263
+
264
+ // src/assets/icon/EmailIcon.tsx
265
+ var import_jsx_runtime8 = require("react/jsx-runtime");
266
+
267
+ // src/assets/icon/ArrowRightIcon.tsx
268
+ var import_jsx_runtime9 = require("react/jsx-runtime");
269
+
270
+ // src/assets/icon/CloseRoundIcon.tsx
271
+ var import_jsx_runtime10 = require("react/jsx-runtime");
272
+
273
+ // src/assets/icon/LoadingIcon.tsx
274
+ var import_jsx_runtime11 = require("react/jsx-runtime");
275
+
276
+ // src/assets/icon/EmailLineIcon.tsx
277
+ var import_jsx_runtime12 = require("react/jsx-runtime");
278
+
279
+ // src/assets/icon/UnLoginIcon.tsx
280
+ var import_jsx_runtime13 = require("react/jsx-runtime");
281
+
282
+ // src/assets/icon/LoginIcon.tsx
283
+ var import_jsx_runtime14 = require("react/jsx-runtime");
284
+
285
+ // src/assets/icon/CheckRoundIcon.tsx
286
+ var import_jsx_runtime15 = require("react/jsx-runtime");
287
+
288
+ // src/assets/icon/PasswordRoundIcon.tsx
289
+ var import_jsx_runtime16 = require("react/jsx-runtime");
290
+
291
+ // src/assets/icon/CloseEyeIcon.tsx
292
+ var import_jsx_runtime17 = require("react/jsx-runtime");
293
+
294
+ // src/assets/icon/OpenEyeIcon.tsx
295
+ var import_jsx_runtime18 = require("react/jsx-runtime");
296
+
297
+ // src/assets/icon/DeleteRoundIcon.tsx
298
+ var import_jsx_runtime19 = require("react/jsx-runtime");
299
+
300
+ // src/assets/icon/FacebookIcon.tsx
301
+ var import_jsx_runtime20 = require("react/jsx-runtime");
302
+
303
+ // src/assets/icon/GithubIcon.tsx
304
+ var import_jsx_runtime21 = require("react/jsx-runtime");
305
+
306
+ // src/assets/icon/DiscordIcon.tsx
307
+ var import_jsx_runtime22 = require("react/jsx-runtime");
308
+
309
+ // src/assets/icon/CheckIcon.tsx
310
+ var import_jsx_runtime23 = require("react/jsx-runtime");
311
+
312
+ // src/assets/icon/CopyIcon.tsx
313
+ var import_jsx_runtime24 = require("react/jsx-runtime");
314
+
315
+ // src/assets/icon/LinkedinIcon.tsx
316
+ var import_jsx_runtime25 = require("react/jsx-runtime");
317
+
318
+ // src/assets/icon/YoutubeIcon.tsx
319
+ var import_jsx_runtime26 = require("react/jsx-runtime");
320
+
321
+ // src/assets/icon/BTCDarkIcon.tsx
322
+ var import_jsx_runtime27 = require("react/jsx-runtime");
323
+
324
+ // src/assets/icon/BTCLightIcon.tsx
325
+ var import_jsx_runtime28 = require("react/jsx-runtime");
326
+
327
+ // src/assets/icon/EVMDarkIcon.tsx
328
+ var import_jsx_runtime29 = require("react/jsx-runtime");
329
+
330
+ // src/assets/icon/EVMLightIcon.tsx
331
+ var import_jsx_runtime30 = require("react/jsx-runtime");
332
+
333
+ // src/assets/icon/SOLDarkIcon.tsx
334
+ var import_jsx_runtime31 = require("react/jsx-runtime");
335
+
336
+ // src/assets/icon/SOLLightIcon.tsx
337
+ var import_jsx_runtime32 = require("react/jsx-runtime");
338
+
339
+ // src/assets/icon/TRXDarkIcon.tsx
340
+ var import_jsx_runtime33 = require("react/jsx-runtime");
341
+
342
+ // src/assets/icon/TRXLightIcon.tsx
343
+ var import_jsx_runtime34 = require("react/jsx-runtime");
344
+
345
+ // src/assets/icon/ArrowDownIcon.tsx
346
+ var import_jsx_runtime35 = require("react/jsx-runtime");
347
+
348
+ // src/assets/icon/LeatherIcon.tsx
349
+ var import_jsx_runtime36 = require("react/jsx-runtime");
350
+
351
+ // src/assets/icon/UnisatIcon.tsx
352
+ var import_jsx_runtime37 = require("react/jsx-runtime");
353
+
354
+ // src/assets/icon/XverseIcon.tsx
355
+ var import_jsx_runtime38 = require("react/jsx-runtime");
356
+
357
+ // src/hooks/useLayout.tsx
358
+ var useLayout_exports = {};
359
+ __export(useLayout_exports, {
360
+ useDownMd: () => useDownMd
361
+ });
362
+ var import_react = require("react");
363
+ function useDownMd() {
364
+ const [isBelowMd, setIsBelowMd] = (0, import_react.useState)(window.matchMedia("(max-width: 767px)").matches);
365
+ (0, import_react.useEffect)(() => {
366
+ const handleResize = () => {
367
+ setIsBelowMd(window.matchMedia("(max-width: 767px)").matches);
368
+ };
369
+ window.addEventListener("resize", handleResize);
370
+ return () => {
371
+ window.removeEventListener("resize", handleResize);
372
+ };
373
+ }, []);
374
+ return isBelowMd;
375
+ }
376
+
377
+ // src/components/Modal/index.tsx
378
+ var import_jsx_runtime39 = require("react/jsx-runtime");
379
+
380
+ // src/components/PasswordModal/index.tsx
381
+ var import_react3 = require("react");
382
+
383
+ // src/components/Input/index.tsx
384
+ var import_react2 = require("react");
385
+ var import_jsx_runtime40 = require("react/jsx-runtime");
386
+
387
+ // src/components/Field/index.tsx
388
+ var import_jsx_runtime41 = require("react/jsx-runtime");
389
+
390
+ // src/components/Button/index.tsx
391
+ var import_jsx_runtime42 = require("react/jsx-runtime");
392
+
393
+ // src/components/PasswordModal/index.tsx
394
+ var import_react_intl = require("react-intl");
395
+ var import_jsx_runtime43 = require("react/jsx-runtime");
396
+
397
+ // src/components/RecoveryModal/index.tsx
398
+ var import_react4 = require("react");
399
+ var import_react_intl2 = require("react-intl");
400
+ var import_jsx_runtime44 = require("react/jsx-runtime");
401
+
402
+ // src/store/useStore.ts
403
+ var import_zustand2 = require("zustand");
404
+ var useStore = (0, import_zustand2.create)((set) => ({
405
+ walletIframeInited: false,
406
+ setWalletIframeInited: (inited) => set({ walletIframeInited: inited }),
407
+ recoveryModal: {
408
+ open: false,
409
+ success: async () => {
410
+ },
411
+ close: async () => {
412
+ }
413
+ },
414
+ setRecoveryModal: (params) => set({ recoveryModal: params }),
415
+ closeRecoveryModal: () => set({ recoveryModal: { open: false } })
416
+ }));
417
+ var useStore_default = useStore;
418
+
419
+ // src/store/useModalStore.ts
420
+ var import_zustand3 = require("zustand");
421
+ var useSOLModalStore = (0, import_zustand3.create)((set) => ({
422
+ isOpen: false,
423
+ type: "",
424
+ open: (type) => set({ isOpen: true, type }),
425
+ close: () => set({ isOpen: false })
426
+ }));
427
+ var useTronModalStore = (0, import_zustand3.create)((set) => ({
428
+ isOpen: false,
429
+ type: "",
430
+ open: (type) => set({ isOpen: true, type }),
431
+ close: () => set({ isOpen: false })
432
+ }));
433
+ var useBTCModalStore = (0, import_zustand3.create)((set) => ({
434
+ isOpen: false,
435
+ type: "",
436
+ open: (type) => set({ isOpen: true, type }),
437
+ close: () => set({ isOpen: false })
438
+ }));
439
+ var useCEXBindModalStore = (0, import_zustand3.create)((set) => ({
440
+ type: "",
441
+ isOpen: false,
442
+ open: (type) => set({ isOpen: true, type }),
443
+ close: () => set({ isOpen: false })
444
+ }));
445
+
446
+ // src/components/EmailModal/index.tsx
447
+ var import_react7 = require("react");
448
+
449
+ // src/components/EmailModal/StepEmail.tsx
450
+ var import_react5 = require("react");
451
+
452
+ // src/utils/index.ts
453
+ var getVersion = () => {
454
+ return "0.0.1";
455
+ };
456
+ function encodeBase64(input) {
457
+ return btoa(unescape(encodeURIComponent(input)));
458
+ }
459
+ function getAppClientId() {
460
+ return "react-sdk-" + getVersion();
461
+ }
462
+
463
+ // src/components/EmailModal/StepEmail.tsx
464
+ var import_react_intl3 = require("react-intl");
465
+ var import_jsx_runtime45 = require("react/jsx-runtime");
466
+
467
+ // src/components/EmailModal/StepVerify.tsx
468
+ var import_react6 = require("react");
469
+ var import_react_intl4 = require("react-intl");
470
+ var import_jsx_runtime46 = require("react/jsx-runtime");
471
+
472
+ // src/components/EmailModal/index.tsx
473
+ var import_react_intl5 = require("react-intl");
474
+ var import_jsx_runtime47 = require("react/jsx-runtime");
475
+
476
+ // src/components/Popover/index.tsx
477
+ var import_react8 = require("react");
478
+ var import_jsx_runtime48 = require("react/jsx-runtime");
479
+
480
+ // src/components/LoginBox/index.tsx
481
+ var import_react9 = require("react");
482
+ var import_react_intl6 = require("react-intl");
483
+ var import_jsx_runtime49 = require("react/jsx-runtime");
484
+
485
+ // src/components/LoginButton/index.tsx
486
+ var import_react11 = require("react");
487
+
488
+ // src/components/LoginPanel/index.tsx
489
+ var import_react_intl7 = require("react-intl");
490
+ var import_jsx_runtime50 = require("react/jsx-runtime");
491
+
492
+ // src/components/LoginModal/index.tsx
493
+ var import_jsx_runtime51 = require("react/jsx-runtime");
494
+
495
+ // src/components/UserPopover/index.tsx
496
+ var import_react10 = require("react");
497
+
498
+ // src/assets/icon/ProfileIcon.tsx
499
+ var import_jsx_runtime52 = require("react/jsx-runtime");
500
+
501
+ // src/components/UserPopover/index.tsx
502
+ var import_react_intl8 = require("react-intl");
503
+ var import_jsx_runtime53 = require("react/jsx-runtime");
504
+
505
+ // src/components/LoginButton/index.tsx
506
+ var import_react_intl9 = require("react-intl");
507
+ var import_jsx_runtime54 = require("react/jsx-runtime");
508
+
509
+ // src/components/UsernameModal/index.tsx
510
+ var import_react12 = require("react");
511
+
512
+ // src/assets/icon/InfoRoundIcon.tsx
513
+ var import_jsx_runtime55 = require("react/jsx-runtime");
514
+
515
+ // src/components/UsernameModal/index.tsx
516
+ var import_react_intl10 = require("react-intl");
517
+ var import_jsx_runtime56 = require("react/jsx-runtime");
518
+
519
+ // src/components/SOLModal/index.tsx
520
+ var import_react14 = __toESM(require("react"));
521
+
522
+ // src/hooks/eventManager.ts
523
+ var EventManager = class {
524
+ constructor() {
525
+ this.listeners = {};
526
+ }
527
+ on(event, callback) {
528
+ if (!this.listeners[event]) {
529
+ this.listeners[event] = /* @__PURE__ */ new Set();
530
+ }
531
+ this.listeners[event].add(callback);
532
+ }
533
+ off(event, callback) {
534
+ if (this.listeners[event]) {
535
+ this.listeners[event].delete(callback);
536
+ if (this.listeners[event].size === 0) {
537
+ delete this.listeners[event];
538
+ }
539
+ }
540
+ }
541
+ emit(event, ...args) {
542
+ if (this.listeners[event]) {
543
+ this.listeners[event].forEach((callback) => callback(...args));
544
+ }
545
+ }
546
+ };
547
+ var eventManager = new EventManager();
548
+ var eventManager_default = eventManager;
549
+
550
+ // src/components/SOLModal/index.tsx
551
+ var import_web3 = require("@solana/web3.js");
552
+ var import_wallet_adapter_react = require("@solana/wallet-adapter-react");
553
+ var import_wallet_adapter_react_ui = require("@solana/wallet-adapter-react-ui");
554
+
555
+ // node_modules/@solana/wallet-adapter-base/lib/esm/types.js
556
+ var WalletAdapterNetwork;
557
+ (function(WalletAdapterNetwork2) {
558
+ WalletAdapterNetwork2["Mainnet"] = "mainnet-beta";
559
+ WalletAdapterNetwork2["Testnet"] = "testnet";
560
+ WalletAdapterNetwork2["Devnet"] = "devnet";
561
+ })(WalletAdapterNetwork || (WalletAdapterNetwork = {}));
562
+
563
+ // src/components/SOLModal/index.tsx
564
+ var import_wallet_adapter_wallets = require("@solana/wallet-adapter-wallets");
565
+ var import_styles = require("@solana/wallet-adapter-react-ui/styles.css");
566
+ var import_react_intl11 = require("react-intl");
567
+
568
+ // src/components/WalletModalContent/index.tsx
569
+ var import_react13 = require("react");
570
+ var import_jsx_runtime57 = require("react/jsx-runtime");
571
+
572
+ // src/components/SOLModal/index.tsx
573
+ var import_jsx_runtime58 = require("react/jsx-runtime");
574
+ var wallets = [
575
+ new import_wallet_adapter_wallets.PhantomWalletAdapter(),
576
+ new import_wallet_adapter_wallets.SolflareWalletAdapter(),
577
+ new import_wallet_adapter_wallets.WalletConnectWalletAdapter({
578
+ network: WalletAdapterNetwork.Mainnet,
579
+ options: {
580
+ relayUrl: "wss://relay.walletconnect.com"
581
+ }
582
+ }),
583
+ new import_wallet_adapter_wallets.AlphaWalletAdapter(),
584
+ new import_wallet_adapter_wallets.AvanaWalletAdapter(),
585
+ new import_wallet_adapter_wallets.BitgetWalletAdapter(),
586
+ new import_wallet_adapter_wallets.BitpieWalletAdapter(),
587
+ new import_wallet_adapter_wallets.CloverWalletAdapter(),
588
+ new import_wallet_adapter_wallets.Coin98WalletAdapter(),
589
+ new import_wallet_adapter_wallets.CoinbaseWalletAdapter(),
590
+ new import_wallet_adapter_wallets.CoinhubWalletAdapter(),
591
+ new import_wallet_adapter_wallets.FractalWalletAdapter(),
592
+ new import_wallet_adapter_wallets.HuobiWalletAdapter(),
593
+ new import_wallet_adapter_wallets.HyperPayWalletAdapter(),
594
+ new import_wallet_adapter_wallets.KeystoneWalletAdapter(),
595
+ new import_wallet_adapter_wallets.KrystalWalletAdapter(),
596
+ new import_wallet_adapter_wallets.LedgerWalletAdapter(),
597
+ new import_wallet_adapter_wallets.MathWalletAdapter(),
598
+ new import_wallet_adapter_wallets.NekoWalletAdapter(),
599
+ new import_wallet_adapter_wallets.NightlyWalletAdapter(),
600
+ new import_wallet_adapter_wallets.NufiWalletAdapter(),
601
+ new import_wallet_adapter_wallets.OntoWalletAdapter(),
602
+ new import_wallet_adapter_wallets.ParticleAdapter(),
603
+ new import_wallet_adapter_wallets.SafePalWalletAdapter(),
604
+ new import_wallet_adapter_wallets.SaifuWalletAdapter(),
605
+ new import_wallet_adapter_wallets.SalmonWalletAdapter(),
606
+ new import_wallet_adapter_wallets.SkyWalletAdapter(),
607
+ new import_wallet_adapter_wallets.SolongWalletAdapter(),
608
+ new import_wallet_adapter_wallets.SpotWalletAdapter(),
609
+ new import_wallet_adapter_wallets.TokenaryWalletAdapter(),
610
+ new import_wallet_adapter_wallets.TokenPocketWalletAdapter(),
611
+ new import_wallet_adapter_wallets.TorusWalletAdapter(),
612
+ new import_wallet_adapter_wallets.TrustWalletAdapter(),
613
+ new import_wallet_adapter_wallets.XDEFIWalletAdapter()
614
+ ];
615
+
616
+ // src/components/TronModal/index.tsx
617
+ var import_react15 = __toESM(require("react"));
618
+ var import_react_intl12 = require("react-intl");
619
+ var import_jsx_runtime59 = require("react/jsx-runtime");
620
+
621
+ // src/components/BTCModal/index.tsx
622
+ var import_react17 = __toESM(require("react"));
623
+ var import_react_intl13 = require("react-intl");
624
+
625
+ // src/lib/btc/XverseAdapter.ts
626
+ var import_sats_connect = require("sats-connect");
627
+
628
+ // src/hooks/useBTCWallet.ts
629
+ var import_react16 = require("react");
630
+
631
+ // src/components/BTCModal/index.tsx
632
+ var import_jsx_runtime60 = require("react/jsx-runtime");
633
+
634
+ // src/components/CEXBindModal/index.tsx
635
+ var import_react18 = require("react");
636
+ var import_react_intl14 = require("react-intl");
637
+ var import_jsx_runtime61 = require("react/jsx-runtime");
638
+
639
+ // src/context/BusinessProvider.tsx
640
+ var import_jsx_runtime62 = require("react/jsx-runtime");
641
+
642
+ // src/context/index.tsx
643
+ var import_jsx_runtime63 = (
644
+ // <MpcWalletProvider>
645
+ require("react/jsx-runtime")
646
+ );
647
+
648
+ // src/hooks/useWalletInit.ts
649
+ var import_react19 = require("react");
650
+
651
+ // src/hooks/useWallet.tsx
652
+ var import_accounts = require("viem/accounts");
653
+ var AppClientId = "react-sdk-" + getVersion();
654
+ function useWallet() {
655
+ const { appid, token, overview, address } = useLocalStore_default();
656
+ const { setRecoveryModal, closeRecoveryModal } = useStore_default();
657
+ const initWallet = ({
658
+ did,
659
+ address: address2
660
+ }) => {
661
+ return window.waitMatchUntilWalletMessage(
662
+ "initCore",
663
+ {
664
+ AppId: appid,
665
+ AppClientId,
666
+ UserId: did,
667
+ AccessToken: token,
668
+ Address: address2
669
+ }
670
+ );
671
+ };
672
+ const isRecovered = async () => {
673
+ const res = await window.waitMatchUntilWalletMessage("isRecovered");
674
+ return res.isRecovered;
675
+ };
676
+ const generateWallet = async ({
677
+ did,
678
+ userPasscode
679
+ }) => {
680
+ return await window.waitMatchUntilWalletMessage("generateWallet", {
681
+ chainType: "ethereum",
682
+ recoveryType: "user_passcode_recovery_key",
683
+ userPasscode
684
+ });
685
+ };
686
+ const recoverAfter = async (func) => {
687
+ return new Promise(async (resolve, reject) => {
688
+ const res = await isRecovered();
689
+ matchlog_default.log("isRecovered", res);
690
+ if (!res) {
691
+ setRecoveryModal({
692
+ open: true,
693
+ success: async () => {
694
+ matchlog_default.log("recover Success");
695
+ await func(resolve, reject);
696
+ },
697
+ close: async () => {
698
+ closeRecoveryModal();
699
+ reject(new Error("recover modal close"));
700
+ }
701
+ });
702
+ await initWallet({
703
+ address: overview?.address || "",
704
+ did: overview?.did?.split(":")[2] || ""
705
+ });
706
+ } else {
707
+ await recoveryWallet("ethereum", "user_passcode_recovery_key");
708
+ await func(resolve, reject);
709
+ }
710
+ });
711
+ };
712
+ const signMessage2 = async (message, type) => {
713
+ const getSign = async (resolve, reject) => {
714
+ try {
715
+ const recoverRes = await window.waitMatchUntilWalletMessage("signMessage", {
716
+ message,
717
+ chainType: type
718
+ });
719
+ closeRecoveryModal();
720
+ resolve(recoverRes);
721
+ } catch (error) {
722
+ console.error("qwe-sign-error", error);
723
+ reject(error);
724
+ }
725
+ };
726
+ return await recoverAfter(getSign);
727
+ };
728
+ const signTransaction = async (transaction, type) => {
729
+ const getSign = async (resolve, reject) => {
730
+ try {
731
+ const recoverRes = await window.waitMatchUntilWalletMessage("signTransaction", {
732
+ transaction,
733
+ chainType: type
734
+ });
735
+ closeRecoveryModal();
736
+ resolve(recoverRes);
737
+ } catch (error) {
738
+ console.error("qwe-sign-error", error);
739
+ reject(error);
740
+ }
741
+ };
742
+ return await recoverAfter(getSign);
743
+ };
744
+ const recoveryWallet = async (chainType, recoveryType, userPasscode) => {
745
+ return await window.waitMatchUntilWalletMessage("recoveryWallet", {
746
+ chainType,
747
+ recoveryType,
748
+ userPasscode
749
+ });
750
+ };
751
+ const evmAccount = address ? (0, import_accounts.toAccount)({
752
+ address,
753
+ async signMessage({ message }) {
754
+ return await signMessage2(message);
755
+ },
756
+ async signTransaction(transaction, options) {
757
+ const { account, ...restTransaction } = transaction;
758
+ const sign = await signTransaction({
759
+ ...restTransaction
760
+ });
761
+ return sign;
762
+ },
763
+ async signTypedData(typedData) {
764
+ return "0x";
765
+ }
766
+ }) : void 0;
767
+ return {
768
+ evmAccount,
769
+ address,
770
+ recoveryWallet,
771
+ initWallet,
772
+ generateWallet,
773
+ signMessage: signMessage2,
774
+ signTransaction,
775
+ isRecovered,
776
+ recoverAfter
777
+ };
778
+ }
779
+
780
+ // src/hooks/useWalletInit.ts
781
+ var AppClientId2 = getAppClientId();
782
+
783
+ // src/hooks/useInit.tsx
784
+ var import_react20 = require("react");
785
+
786
+ // src/MatchContext.tsx
787
+ var import_react_query = require("@tanstack/react-query");
788
+ var import_react_intl15 = require("react-intl");
789
+ var import_jsx_runtime64 = require("react/jsx-runtime");
790
+ var queryClient = new import_react_query.QueryClient();
791
+ var MatchContext = (0, import_react21.createContext)(void 0);
792
+ var useMatch = () => {
793
+ const context = (0, import_react21.useContext)(MatchContext);
794
+ if (context === void 0) {
795
+ throw new Error("useMatch must be used within a MatchProvider");
796
+ }
797
+ return context;
798
+ };
799
+
800
+ // src/hooks/useUserInfo.tsx
801
+ function useUserInfo() {
802
+ const {
803
+ appid,
804
+ token,
805
+ mid,
806
+ did,
807
+ logout: logoutStore,
808
+ setOverview,
809
+ overview,
810
+ address,
811
+ endpoints
812
+ } = useLocalStore_default();
813
+ const { events, login } = useMatch();
814
+ const { open: SOLOpen } = useSOLModalStore();
815
+ const { open: TronOpen } = useTronModalStore();
816
+ const { open: BTCOpen } = useBTCModalStore();
817
+ const { open: CEXBindOpen } = useCEXBindModalStore();
818
+ const isLogin = (0, import_react22.useMemo)(() => !!token, [token]);
819
+ const logout = async () => {
820
+ try {
821
+ await toLogoutApi();
822
+ } catch (err) {
823
+ console.error("logout", err);
824
+ }
825
+ logoutStore();
826
+ events && events.onLogout && events.onLogout();
827
+ eventManager_default.emit("onLogout");
828
+ };
829
+ const loginByMethod = async (method) => {
830
+ const link = `${endpoints.back}api/v1/auth/${method == "youtube" ? "google" : method}?appid=${appid}&provider=${method == "youtube" ? "google" : method}&redirect=${encodeURIComponent(endpoints.auth + "login/" + method)}&authorization=${(/* @__PURE__ */ new Date()).getTime()}${method == "youtube" ? "&auth_type=youtube" : ""}`;
831
+ matchlog_default.log("link", link);
832
+ return window.open(
833
+ link,
834
+ // Replace with the actual authorization URL
835
+ "authWindow",
836
+ "width=800,height=600"
837
+ );
838
+ };
839
+ const loginByTwitter = () => {
840
+ return loginByMethod("twitter");
841
+ };
842
+ const loginByGoogle = () => {
843
+ return loginByMethod("google");
844
+ };
845
+ const loginByWallet = async () => {
846
+ return window.open(`${endpoints.auth}login/wallet?appid=${appid}`);
847
+ };
848
+ const loginByTelegram = async () => {
849
+ return window.open(
850
+ `${endpoints.auth}login/telegram?appid=${appid}`,
851
+ // Replace with the actual authorization URL
852
+ "authWindow",
853
+ "width=800,height=600"
854
+ );
855
+ };
856
+ const loginMethod = async (method) => {
857
+ switch (method) {
858
+ case "evm":
859
+ return window.open(`${endpoints.auth}login/wallet?appid=${appid}`);
860
+ case "sol":
861
+ return SOLOpen("login");
862
+ case "tron":
863
+ return TronOpen("login");
864
+ case "btc":
865
+ return BTCOpen("login");
866
+ case "telegram":
867
+ return await loginByTelegram();
868
+ case "youtube":
869
+ case "twitter":
870
+ case "google":
871
+ case "discord":
872
+ case "github":
873
+ case "linkedin":
874
+ case "facebook":
875
+ return await loginByMethod(method);
876
+ default:
877
+ throw new Error("unsupported method");
878
+ }
879
+ };
880
+ const getLoginEmailCode = async (email) => {
881
+ const res = await getEmailCodeApi(email);
882
+ if (res && res.data && isSuccess(res)) {
883
+ window.sessionStorage.setItem("loginkey", res.data.key);
884
+ return res.data.key;
885
+ }
886
+ return "";
887
+ };
888
+ const loginByEmail = async ({
889
+ email,
890
+ code
891
+ }) => {
892
+ try {
893
+ const obj = {
894
+ email,
895
+ verification_key: window.sessionStorage.getItem("loginkey"),
896
+ verification_code: code
897
+ };
898
+ const res = await verifyEmailCodeApi(obj);
899
+ if (res && res.data && isSuccess(res)) {
900
+ await login({
901
+ mid: res.data.mid,
902
+ token: `${res.data.token_type} ${res.data.access_token}`
903
+ });
904
+ return true;
905
+ } else {
906
+ throw new Error(res.message);
907
+ }
908
+ } catch (error) {
909
+ console.error("loginByEmail", error);
910
+ throw error;
911
+ }
912
+ return false;
913
+ };
914
+ const refreshOverview = async () => {
915
+ const res = await getOverviewInfoApi();
916
+ if (res.data) {
917
+ setOverview(res.data);
918
+ }
919
+ };
920
+ const bindWallet = async () => {
921
+ if (!token) {
922
+ throw new Error("You must login first");
923
+ }
924
+ return window.open(`${endpoints.auth}bind/wallet?appid=${appid}&st=` + encodeURIComponent(encodeBase64(token)));
925
+ };
926
+ const bindTelegram = async () => {
927
+ if (!token) {
928
+ throw new Error("You must login first");
929
+ }
930
+ const authWindow = window.open(
931
+ `${endpoints.auth}bind/telegram?appid=${appid}&st=` + encodeURIComponent(encodeBase64(token)),
932
+ // Replace with the actual authorization URL
933
+ "authWindow",
934
+ "width=800,height=600"
935
+ );
936
+ };
937
+ const auth = async () => {
938
+ const res = await getAuthInfoApi();
939
+ if (isSuccess(res)) {
940
+ return res.data;
941
+ }
942
+ throw new Error(res.message);
943
+ };
944
+ const bind = async (method) => {
945
+ if (!token) {
946
+ throw new Error("You must login first");
947
+ }
948
+ switch (method) {
949
+ case "evm":
950
+ return window.open(`${endpoints.auth}bind/wallet?appid=${appid}&st=` + encodeURIComponent(encodeBase64(token)));
951
+ case "sol":
952
+ return SOLOpen("bind");
953
+ case "tron":
954
+ return TronOpen("bind");
955
+ case "btc":
956
+ return BTCOpen("bind");
957
+ case "telegram":
958
+ return await bindTelegram();
959
+ case "twitter":
960
+ case "google":
961
+ case "discord":
962
+ case "github":
963
+ case "linkedin":
964
+ case "facebook":
965
+ case "youtube":
966
+ const link = `${endpoints.back}api/v1/auth/${method == "youtube" ? "google" : method}?appid=${appid}&provider=${method == "youtube" ? "google" : method}&redirect=${encodeURIComponent(endpoints.auth + "bind/" + method)}&authorization=${token.includes("Bearer ") ? token.split(" ")[1] : token}${method == "youtube" ? "&auth_type=youtube" : ""}`;
967
+ matchlog_default.log("link", link);
968
+ return window.open(
969
+ link,
970
+ "authWindow",
971
+ "width=800,height=600"
972
+ );
973
+ default:
974
+ throw new Error("unsupported method");
975
+ }
976
+ };
977
+ const bindCex = (type) => {
978
+ return CEXBindOpen(type);
979
+ };
980
+ return {
981
+ loginByMethod,
982
+ loginByTelegram,
983
+ loginByTwitter,
984
+ loginByGoogle,
985
+ loginByWallet,
986
+ loginByEmail,
987
+ bindWallet,
988
+ bindTelegram,
989
+ token,
990
+ mid,
991
+ did,
992
+ address,
993
+ isLogin,
994
+ logout,
995
+ getLoginEmailCode,
996
+ refreshOverview,
997
+ overview,
998
+ bindCex,
999
+ username: overview?.username || "",
1000
+ auth,
1001
+ login: loginMethod,
1002
+ bind
1003
+ };
1004
+ }
1005
+
1006
+ // src/hooks/useMatchEvents.ts
1007
+ var import_react23 = require("react");
1008
+ function useMatchEvents(handlers) {
1009
+ (0, import_react23.useEffect)(() => {
1010
+ Object.entries(handlers).forEach(([event, handler2]) => {
1011
+ if (handler2) {
1012
+ eventManager_default.on(event, handler2);
1013
+ }
1014
+ });
1015
+ return () => {
1016
+ Object.entries(handlers).forEach(([event, handler2]) => {
1017
+ if (handler2) {
1018
+ eventManager_default.off(event, handler2);
1019
+ }
1020
+ });
1021
+ };
1022
+ }, [handlers]);
1023
+ }
1024
+
1025
+ // src/hooks/useCopyClipboard.ts
1026
+ var import_copy_to_clipboard = __toESM(require("copy-to-clipboard"));
1027
+ var import_react24 = require("react");
1028
+ function useCopyClipboard(timeout = 500) {
1029
+ const [isCopied, setIsCopied] = (0, import_react24.useState)(false);
1030
+ const staticCopy = (0, import_react24.useCallback)((text) => {
1031
+ const didCopy = (0, import_copy_to_clipboard.default)(text);
1032
+ setIsCopied(didCopy);
1033
+ }, []);
1034
+ (0, import_react24.useEffect)(() => {
1035
+ if (isCopied) {
1036
+ const hide = setTimeout(() => {
1037
+ setIsCopied(false);
1038
+ }, timeout);
1039
+ return () => {
1040
+ clearTimeout(hide);
1041
+ };
1042
+ }
1043
+ return void 0;
1044
+ }, [isCopied, setIsCopied, timeout]);
1045
+ return [isCopied, staticCopy];
1046
+ }
1047
+ // Annotate the CommonJS export names for ESM import in node:
1048
+ 0 && (module.exports = {
1049
+ useCopyClipboard,
1050
+ useLayout,
1051
+ useMatchEvents,
1052
+ useUserInfo,
1053
+ useWallet
1054
+ });
1055
+ //# sourceMappingURL=index.js.map