@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
@@ -32,57 +32,19 @@ var hooks_exports = {};
32
32
  __export(hooks_exports, {
33
33
  useCopyClipboard: () => useCopyClipboard,
34
34
  useLayout: () => useLayout_exports,
35
+ useMatchChain: () => useMatchChain,
35
36
  useMatchEvents: () => useMatchEvents,
37
+ useMatchWallet: () => useMatchWallet,
38
+ useModal: () => useModal,
39
+ useToast: () => useToast,
36
40
  useUserInfo: () => useUserInfo,
37
- useWallet: () => useWallet
41
+ useWallet: () => useWallet2
38
42
  });
39
43
  module.exports = __toCommonJS(hooks_exports);
40
44
 
41
45
  // src/store/useLocalStore.ts
42
46
  var import_zustand = require("zustand");
43
47
  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
- wallet: {
74
- type: "UserPasscode"
75
- },
76
- setWallet: (wallet) => set({ wallet })
77
- }),
78
- { name: "match-local" }
79
- );
80
- var useLocalStore = (0, import_zustand.create)((0, import_middleware.devtools)(persistedState));
81
- var localStore = useLocalStore;
82
- var useLocalStore_default = useLocalStore;
83
-
84
- // src/hooks/useUserInfo.tsx
85
- var import_react29 = require("react");
86
48
 
87
49
  // src/api/request.ts
88
50
  var import_axios = __toESM(require("axios"));
@@ -286,71 +248,154 @@ var getAuthInfoApi = () => {
286
248
  method: "GET"
287
249
  });
288
250
  };
251
+ var getUserChainListApi = () => {
252
+ return request_default({
253
+ url: `/api/v1/user/chain/list`,
254
+ method: "GET"
255
+ });
256
+ };
289
257
 
290
- // src/MatchContext.tsx
258
+ // src/store/useLocalStore.ts
259
+ var persistedState = (0, import_middleware.persist)(
260
+ (set) => ({
261
+ appid: "",
262
+ token: "",
263
+ did: "",
264
+ mid: "",
265
+ overview: null,
266
+ theme: "light",
267
+ setOverview: (overview) => set({
268
+ overview,
269
+ address: overview.address,
270
+ did: overview.did,
271
+ mid: overview.mid
272
+ }),
273
+ refreshOverview: async () => {
274
+ const res = await getOverviewInfoApi();
275
+ if (res.data) {
276
+ set({ overview: res.data });
277
+ set({ address: res.data.address });
278
+ set({ did: res.data.did });
279
+ set({ mid: res.data.mid });
280
+ }
281
+ },
282
+ endpoints: {
283
+ back: "https://api.matchid.ai/",
284
+ auth: "https://auth.matchid.ai/"
285
+ },
286
+ setDid: (did) => set({ did }),
287
+ setToken: (token) => set({ token }),
288
+ setAppid: (appid) => set({ appid }),
289
+ setMid: (mid) => set({ mid }),
290
+ logout: () => set({ token: "", did: "", mid: "", address: "", overview: null }),
291
+ setTheme: (theme) => set({ theme }),
292
+ setEndpoints: (endpoints) => set({ endpoints }),
293
+ address: "",
294
+ setAddress: (address) => set({ address }),
295
+ locale: "en",
296
+ setLocale: (locale) => set({ locale }),
297
+ wallet: {
298
+ type: "UserPasscode"
299
+ },
300
+ setWallet: (wallet) => set({ wallet }),
301
+ chainId: 698,
302
+ setChainId: (chainId) => set({ chainId })
303
+ }),
304
+ { name: "match-local" }
305
+ );
306
+ var useLocalStore = (0, import_zustand.create)((0, import_middleware.devtools)(persistedState));
307
+ var localStore = useLocalStore;
308
+ var useLocalStore_default = useLocalStore;
309
+
310
+ // src/hooks/useUserInfo.tsx
291
311
  var import_react28 = require("react");
292
312
 
293
- // src/context/BusinessProvider.tsx
294
- var import_react24 = require("react");
313
+ // src/MatchContext.tsx
314
+ var import_react27 = require("react");
295
315
 
296
- // src/assets/icon/ArrowLeftIcon.tsx
297
- var import_jsx_runtime = require("react/jsx-runtime");
316
+ // src/store/useModalStore.ts
317
+ var import_zustand2 = require("zustand");
298
318
 
299
319
  // src/assets/icon/BackIcon.tsx
300
- var import_jsx_runtime2 = require("react/jsx-runtime");
320
+ var import_jsx_runtime = require("react/jsx-runtime");
301
321
 
302
322
  // src/assets/icon/CloseIcon.tsx
303
- var import_jsx_runtime3 = require("react/jsx-runtime");
323
+ var import_jsx_runtime2 = require("react/jsx-runtime");
304
324
 
305
325
  // src/assets/icon/XIcon.tsx
306
- var import_jsx_runtime4 = require("react/jsx-runtime");
326
+ var import_jsx_runtime3 = require("react/jsx-runtime");
307
327
 
308
328
  // src/assets/icon/GoogleIcon.tsx
309
- var import_jsx_runtime5 = require("react/jsx-runtime");
329
+ var import_jsx_runtime4 = require("react/jsx-runtime");
310
330
 
311
331
  // src/assets/icon/WalletIcon.tsx
312
- var import_jsx_runtime6 = require("react/jsx-runtime");
332
+ var import_jsx_runtime5 = require("react/jsx-runtime");
313
333
 
314
334
  // src/assets/icon/TelegramIcon.tsx
315
- var import_jsx_runtime7 = require("react/jsx-runtime");
335
+ var import_jsx_runtime6 = require("react/jsx-runtime");
316
336
 
317
337
  // src/assets/icon/EmailIcon.tsx
318
- var import_jsx_runtime8 = require("react/jsx-runtime");
338
+ var import_jsx_runtime7 = require("react/jsx-runtime");
319
339
 
320
340
  // src/assets/icon/ArrowRightIcon.tsx
321
- var import_jsx_runtime9 = require("react/jsx-runtime");
341
+ var import_jsx_runtime8 = require("react/jsx-runtime");
322
342
 
323
343
  // src/assets/icon/CloseRoundIcon.tsx
324
- var import_jsx_runtime10 = require("react/jsx-runtime");
344
+ var import_jsx_runtime9 = require("react/jsx-runtime");
325
345
 
326
346
  // src/assets/icon/LoadingIcon.tsx
327
- var import_jsx_runtime11 = require("react/jsx-runtime");
347
+ var import_jsx_runtime10 = require("react/jsx-runtime");
348
+ var LoadingIcon = ({ size = 22, className = "", color = "white" }) => /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(
349
+ "svg",
350
+ {
351
+ width: size,
352
+ height: size,
353
+ viewBox: "0 0 22 22",
354
+ fill: "none",
355
+ xmlns: "http://www.w3.org/2000/svg",
356
+ className,
357
+ children: [
358
+ /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("path", { d: "M11 1V3.5", stroke: color, strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" }),
359
+ /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("path", { opacity: "0.3", d: "M3.92834 3.92871L5.69977 5.70017", stroke: color, strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" }),
360
+ /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("path", { opacity: "0.4", d: "M1 11H3.5", stroke: color, strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" }),
361
+ /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("path", { opacity: "0.5", d: "M3.92834 18.0722L5.69977 16.3008", stroke: color, strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" }),
362
+ /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("path", { opacity: "0.6", d: "M11 21V18.5", stroke: color, strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" }),
363
+ /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("path", { opacity: "0.7", d: "M18.0715 18.0722L16.3 16.3008", stroke: color, strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" }),
364
+ /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("path", { opacity: "0.8", d: "M21 11H18.5", stroke: color, strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" }),
365
+ /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("path", { opacity: "0.9", d: "M18.0715 3.92871L16.3 5.70017", stroke: color, strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" })
366
+ ]
367
+ }
368
+ );
369
+ var LoadingIcon_default = LoadingIcon;
328
370
 
329
371
  // src/assets/icon/EmailLineIcon.tsx
330
- var import_jsx_runtime12 = require("react/jsx-runtime");
372
+ var import_jsx_runtime11 = require("react/jsx-runtime");
331
373
 
332
374
  // src/assets/icon/UnLoginIcon.tsx
333
- var import_jsx_runtime13 = require("react/jsx-runtime");
375
+ var import_jsx_runtime12 = require("react/jsx-runtime");
334
376
 
335
377
  // src/assets/icon/LoginIcon.tsx
336
- var import_jsx_runtime14 = require("react/jsx-runtime");
378
+ var import_jsx_runtime13 = require("react/jsx-runtime");
337
379
 
338
380
  // src/assets/icon/CheckRoundIcon.tsx
339
- var import_jsx_runtime15 = require("react/jsx-runtime");
381
+ var import_jsx_runtime14 = require("react/jsx-runtime");
340
382
 
341
383
  // src/assets/icon/PasswordRoundIcon.tsx
342
- var import_jsx_runtime16 = require("react/jsx-runtime");
384
+ var import_jsx_runtime15 = require("react/jsx-runtime");
343
385
 
344
386
  // src/assets/icon/CloseEyeIcon.tsx
345
- var import_jsx_runtime17 = require("react/jsx-runtime");
387
+ var import_jsx_runtime16 = require("react/jsx-runtime");
346
388
 
347
389
  // src/assets/icon/OpenEyeIcon.tsx
348
- var import_jsx_runtime18 = require("react/jsx-runtime");
390
+ var import_jsx_runtime17 = require("react/jsx-runtime");
349
391
 
350
392
  // src/assets/icon/DeleteRoundIcon.tsx
351
- var import_jsx_runtime19 = require("react/jsx-runtime");
393
+ var import_jsx_runtime18 = require("react/jsx-runtime");
352
394
 
353
395
  // src/assets/icon/FacebookIcon.tsx
396
+ var import_jsx_runtime19 = require("react/jsx-runtime");
397
+
398
+ // src/assets/icon/ArrowLeftIcon.tsx
354
399
  var import_jsx_runtime20 = require("react/jsx-runtime");
355
400
 
356
401
  // src/assets/icon/GithubIcon.tsx
@@ -422,6 +467,9 @@ var import_jsx_runtime42 = require("react/jsx-runtime");
422
467
  // src/assets/icon/TonLightIcon.tsx
423
468
  var import_jsx_runtime43 = require("react/jsx-runtime");
424
469
 
470
+ // src/assets/icon/ErrorRoundIcon.tsx
471
+ var import_jsx_runtime44 = require("react/jsx-runtime");
472
+
425
473
  // src/hooks/useLayout.tsx
426
474
  var useLayout_exports = {};
427
475
  __export(useLayout_exports, {
@@ -442,93 +490,42 @@ function useDownMd() {
442
490
  return isBelowMd;
443
491
  }
444
492
 
445
- // src/components/Overlay/index.tsx
446
- var import_react2 = require("react");
447
- var import_jsx_runtime44 = require("react/jsx-runtime");
448
-
449
- // src/components/Modal/index.tsx
450
- var import_jsx_runtime45 = require("react/jsx-runtime");
451
-
452
- // src/components/PasswordModal/index.tsx
453
- var import_react4 = require("react");
454
-
455
- // src/components/Input/index.tsx
456
- var import_react3 = require("react");
457
- var import_jsx_runtime46 = require("react/jsx-runtime");
458
-
459
- // src/components/Field/index.tsx
460
- var import_jsx_runtime47 = require("react/jsx-runtime");
461
-
462
- // src/components/Button/index.tsx
463
- var import_jsx_runtime48 = require("react/jsx-runtime");
464
-
465
- // src/components/PasswordModal/index.tsx
466
- var import_react_intl = require("react-intl");
467
-
468
- // src/store/useStore.ts
469
- var import_zustand2 = require("zustand");
470
- var useStore = (0, import_zustand2.create)((set) => ({
471
- walletReady: false,
472
- setWalletReady: (inited) => set({ walletReady: inited }),
473
- recoveryModal: {
474
- open: false,
475
- success: async () => {
476
- },
477
- close: async () => {
478
- }
479
- },
480
- setRecoveryModal: (params) => set({ recoveryModal: params }),
481
- closeRecoveryModal: () => set({ recoveryModal: { open: false } })
482
- }));
483
- var useStore_default = useStore;
484
-
485
- // src/components/PasswordModal/index.tsx
486
- var import_jsx_runtime49 = require("react/jsx-runtime");
487
-
488
- // src/components/RecoveryModal/index.tsx
489
- var import_react5 = require("react");
490
- var import_react_intl2 = require("react-intl");
491
- var import_jsx_runtime50 = require("react/jsx-runtime");
492
-
493
- // src/store/useModalStore.ts
494
- var import_zustand3 = require("zustand");
495
-
496
493
  // src/hooks/useConfig.tsx
497
- var import_jsx_runtime51 = require("react/jsx-runtime");
494
+ var import_jsx_runtime45 = require("react/jsx-runtime");
498
495
  var DEFAULT_WALLET_METHODS = ["evm", "sol", "btc", "tron", "ton"];
499
496
 
500
497
  // src/store/useModalStore.ts
501
- var useSOLModalStore = (0, import_zustand3.create)((set) => ({
498
+ var useSOLModalStore = (0, import_zustand2.create)((set) => ({
502
499
  isOpen: false,
503
500
  type: "",
504
501
  open: (type) => set({ isOpen: true, type }),
505
502
  close: () => set({ isOpen: false })
506
503
  }));
507
- var useTRONModalStore = (0, import_zustand3.create)((set) => ({
504
+ var useTRONModalStore = (0, import_zustand2.create)((set) => ({
508
505
  isOpen: false,
509
506
  type: "",
510
507
  open: (type) => set({ isOpen: true, type }),
511
508
  close: () => set({ isOpen: false })
512
509
  }));
513
- var useTONModalStore = (0, import_zustand3.create)((set) => ({
510
+ var useTONModalStore = (0, import_zustand2.create)((set) => ({
514
511
  isOpen: false,
515
512
  type: "",
516
513
  open: (type) => set({ isOpen: true, type }),
517
514
  close: () => set({ isOpen: false })
518
515
  }));
519
- var useBTCModalStore = (0, import_zustand3.create)((set) => ({
516
+ var useBTCModalStore = (0, import_zustand2.create)((set) => ({
520
517
  isOpen: false,
521
518
  type: "",
522
519
  open: (type) => set({ isOpen: true, type }),
523
520
  close: () => set({ isOpen: false })
524
521
  }));
525
- var useCEXBindModalStore = (0, import_zustand3.create)((set) => ({
522
+ var useCEXBindModalStore = (0, import_zustand2.create)((set) => ({
526
523
  type: "",
527
524
  isOpen: false,
528
525
  open: (type) => set({ isOpen: true, type }),
529
526
  close: () => set({ isOpen: false })
530
527
  }));
531
- var useHashPanelStore = (0, import_zustand3.create)((set) => ({
528
+ var useHashPanelStore = (0, import_zustand2.create)((set) => ({
532
529
  isOpen: false,
533
530
  hash: null,
534
531
  chain: null,
@@ -539,7 +536,7 @@ var useHashPanelStore = (0, import_zustand3.create)((set) => ({
539
536
  }),
540
537
  close: () => set({ isOpen: false })
541
538
  }));
542
- var useWalletModalStore = (0, import_zustand3.create)((set) => ({
539
+ var useWalletModalStore = (0, import_zustand2.create)((set) => ({
543
540
  isOpen: false,
544
541
  type: "",
545
542
  methods: [],
@@ -548,10 +545,17 @@ var useWalletModalStore = (0, import_zustand3.create)((set) => ({
548
545
  }));
549
546
 
550
547
  // src/components/EmailModal/index.tsx
551
- var import_react8 = require("react");
548
+ var import_react6 = require("react");
549
+
550
+ // src/ui/Overlay/index.tsx
551
+ var import_react2 = require("react");
552
+ var import_jsx_runtime46 = require("react/jsx-runtime");
553
+
554
+ // src/ui/Modal/index.tsx
555
+ var import_jsx_runtime47 = require("react/jsx-runtime");
552
556
 
553
557
  // src/components/EmailModal/StepEmail.tsx
554
- var import_react6 = require("react");
558
+ var import_react4 = require("react");
555
559
 
556
560
  // src/utils/index.ts
557
561
  var getVersion = () => {
@@ -564,69 +568,111 @@ function getAppClientId() {
564
568
  return "react-sdk-" + getVersion();
565
569
  }
566
570
 
571
+ // src/ui/Button/index.tsx
572
+ var import_jsx_runtime48 = require("react/jsx-runtime");
573
+ function Button({
574
+ size = "df",
575
+ disabled = false,
576
+ loading = false,
577
+ children,
578
+ onClick,
579
+ highlight = false,
580
+ block = false,
581
+ type = "button",
582
+ rounded = true,
583
+ className = "",
584
+ style = {}
585
+ }) {
586
+ const onAction = () => {
587
+ if (!disabled && !loading) {
588
+ onClick && onClick();
589
+ }
590
+ };
591
+ return /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
592
+ "button",
593
+ {
594
+ type,
595
+ className: `${className} matchid-btn ${"matchid-btn-" + size} ${highlight ? "matchid-btn-highlight" : ""} ${loading ? "matchid-btn-loading" : ""} ${block ? "matchid-btn-block" : ""} ${rounded ? "matchid-btn-rounded" : ""}`,
596
+ disabled: disabled || loading,
597
+ style: {
598
+ ...style
599
+ },
600
+ onClick: onAction,
601
+ children: loading ? /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(LoadingIcon_default, { className: "matchid-btn-loading-icon", color: "var(--matchid-btn-loading-color)" }) : children
602
+ }
603
+ );
604
+ }
605
+
606
+ // src/ui/Input/index.tsx
607
+ var import_react3 = require("react");
608
+ var import_jsx_runtime49 = require("react/jsx-runtime");
609
+
610
+ // src/ui/Field/index.tsx
611
+ var import_jsx_runtime50 = require("react/jsx-runtime");
612
+
567
613
  // src/components/EmailModal/StepEmail.tsx
568
- var import_react_intl3 = require("react-intl");
569
- var import_jsx_runtime52 = require("react/jsx-runtime");
614
+ var import_react_intl = require("react-intl");
615
+ var import_jsx_runtime51 = require("react/jsx-runtime");
570
616
 
571
617
  // src/components/EmailModal/StepVerify.tsx
572
- var import_react7 = require("react");
573
- var import_react_intl4 = require("react-intl");
574
- var import_jsx_runtime53 = require("react/jsx-runtime");
618
+ var import_react5 = require("react");
619
+ var import_react_intl2 = require("react-intl");
620
+ var import_jsx_runtime52 = require("react/jsx-runtime");
575
621
 
576
622
  // src/components/EmailModal/index.tsx
577
- var import_react_intl5 = require("react-intl");
578
- var import_jsx_runtime54 = require("react/jsx-runtime");
623
+ var import_react_intl3 = require("react-intl");
624
+ var import_jsx_runtime53 = require("react/jsx-runtime");
579
625
 
580
- // src/components/Popover/index.tsx
581
- var import_react9 = require("react");
582
- var import_jsx_runtime55 = require("react/jsx-runtime");
626
+ // src/ui/Popover/index.tsx
627
+ var import_react7 = require("react");
628
+ var import_jsx_runtime54 = require("react/jsx-runtime");
583
629
 
584
630
  // src/components/LoginBox/index.tsx
585
- var import_react10 = require("react");
586
- var import_react_intl6 = require("react-intl");
631
+ var import_react8 = require("react");
632
+ var import_react_intl4 = require("react-intl");
587
633
 
588
634
  // src/hooks/useAppConfig.ts
589
635
  var import_react_query = require("@tanstack/react-query");
590
636
 
591
637
  // src/components/LoginBox/index.tsx
592
- var import_jsx_runtime56 = require("react/jsx-runtime");
638
+ var import_jsx_runtime55 = require("react/jsx-runtime");
593
639
 
594
640
  // src/components/LoginButton/index.tsx
595
- var import_react12 = require("react");
641
+ var import_react10 = require("react");
596
642
 
597
643
  // src/components/LoginPanel/index.tsx
598
- var import_react_intl7 = require("react-intl");
599
- var import_jsx_runtime57 = require("react/jsx-runtime");
644
+ var import_react_intl5 = require("react-intl");
645
+ var import_jsx_runtime56 = require("react/jsx-runtime");
600
646
 
601
647
  // src/components/LoginModal/index.tsx
602
- var import_jsx_runtime58 = require("react/jsx-runtime");
648
+ var import_jsx_runtime57 = require("react/jsx-runtime");
603
649
 
604
650
  // src/components/UserPopover/index.tsx
605
- var import_react11 = require("react");
651
+ var import_react9 = require("react");
606
652
 
607
653
  // src/assets/icon/ProfileIcon.tsx
608
- var import_jsx_runtime59 = require("react/jsx-runtime");
654
+ var import_jsx_runtime58 = require("react/jsx-runtime");
609
655
 
610
656
  // src/components/UserPopover/index.tsx
611
- var import_react_intl8 = require("react-intl");
612
- var import_jsx_runtime60 = require("react/jsx-runtime");
657
+ var import_react_intl6 = require("react-intl");
658
+ var import_jsx_runtime59 = require("react/jsx-runtime");
613
659
 
614
660
  // src/components/LoginButton/index.tsx
615
- var import_react_intl9 = require("react-intl");
616
- var import_jsx_runtime61 = require("react/jsx-runtime");
661
+ var import_react_intl7 = require("react-intl");
662
+ var import_jsx_runtime60 = require("react/jsx-runtime");
617
663
 
618
664
  // src/components/UsernameModal/index.tsx
619
- var import_react13 = require("react");
665
+ var import_react11 = require("react");
620
666
 
621
667
  // src/assets/icon/InfoRoundIcon.tsx
622
- var import_jsx_runtime62 = require("react/jsx-runtime");
668
+ var import_jsx_runtime61 = require("react/jsx-runtime");
623
669
 
624
670
  // src/components/UsernameModal/index.tsx
625
- var import_react_intl10 = require("react-intl");
626
- var import_jsx_runtime63 = require("react/jsx-runtime");
671
+ var import_react_intl8 = require("react-intl");
672
+ var import_jsx_runtime62 = require("react/jsx-runtime");
627
673
 
628
674
  // src/components/SOLModal/index.tsx
629
- var import_react15 = __toESM(require("react"));
675
+ var import_react13 = __toESM(require("react"));
630
676
 
631
677
  // src/hooks/eventManager.ts
632
678
  var EventManager = class {
@@ -672,14 +718,14 @@ var WalletAdapterNetwork;
672
718
  // src/components/SOLModal/index.tsx
673
719
  var import_wallet_adapter_wallets = require("@solana/wallet-adapter-wallets");
674
720
  var import_styles = require("@solana/wallet-adapter-react-ui/styles.css");
675
- var import_react_intl11 = require("react-intl");
721
+ var import_react_intl9 = require("react-intl");
676
722
 
677
723
  // src/components/WalletModalContent/index.tsx
678
- var import_react14 = require("react");
679
- var import_jsx_runtime64 = require("react/jsx-runtime");
724
+ var import_react12 = require("react");
725
+ var import_jsx_runtime63 = require("react/jsx-runtime");
680
726
 
681
727
  // src/components/SOLModal/index.tsx
682
- var import_jsx_runtime65 = require("react/jsx-runtime");
728
+ var import_jsx_runtime64 = require("react/jsx-runtime");
683
729
  var wallets = [
684
730
  new import_wallet_adapter_wallets.PhantomWalletAdapter(),
685
731
  new import_wallet_adapter_wallets.SolflareWalletAdapter(),
@@ -723,377 +769,146 @@ var wallets = [
723
769
  ];
724
770
 
725
771
  // src/components/TRONModal/index.tsx
726
- var import_react17 = __toESM(require("react"));
727
- var import_react_intl12 = require("react-intl");
772
+ var import_react15 = __toESM(require("react"));
773
+ var import_react_intl10 = require("react-intl");
728
774
 
729
775
  // src/hooks/useTRONWallet.ts
730
- var import_react16 = require("react");
776
+ var import_react14 = require("react");
731
777
 
732
778
  // src/components/TRONModal/index.tsx
733
- var import_jsx_runtime66 = require("react/jsx-runtime");
779
+ var import_jsx_runtime65 = require("react/jsx-runtime");
734
780
 
735
781
  // src/components/TONModal/index.tsx
736
- var import_react18 = __toESM(require("react"));
737
- var import_react_intl13 = require("react-intl");
782
+ var import_react16 = __toESM(require("react"));
783
+ var import_react_intl11 = require("react-intl");
738
784
  var import_ui_react = require("@tonconnect/ui-react");
739
- var import_jsx_runtime67 = require("react/jsx-runtime");
785
+ var import_jsx_runtime66 = require("react/jsx-runtime");
740
786
 
741
787
  // src/components/BTCModal/index.tsx
742
- var import_react20 = __toESM(require("react"));
743
- var import_react_intl14 = require("react-intl");
788
+ var import_react18 = __toESM(require("react"));
789
+ var import_react_intl12 = require("react-intl");
744
790
 
745
791
  // src/lib/btc/XverseAdapter.ts
746
792
  var import_sats_connect = require("sats-connect");
747
793
 
748
794
  // src/hooks/useBTCWallet.ts
749
- var import_react19 = require("react");
795
+ var import_react17 = require("react");
750
796
 
751
797
  // src/components/BTCModal/index.tsx
752
- var import_jsx_runtime68 = require("react/jsx-runtime");
798
+ var import_jsx_runtime67 = require("react/jsx-runtime");
753
799
 
754
800
  // src/components/WalletModal/index.tsx
755
- var import_react21 = require("react");
756
- var import_react_intl15 = require("react-intl");
757
- var import_jsx_runtime69 = require("react/jsx-runtime");
801
+ var import_react19 = require("react");
802
+ var import_react_intl13 = require("react-intl");
803
+ var import_jsx_runtime68 = require("react/jsx-runtime");
758
804
 
759
805
  // src/components/CEXBindModal/index.tsx
760
- var import_react22 = require("react");
761
- var import_react_intl16 = require("react-intl");
762
- var import_jsx_runtime70 = require("react/jsx-runtime");
806
+ var import_react20 = require("react");
807
+ var import_react_intl14 = require("react-intl");
808
+ var import_jsx_runtime69 = require("react/jsx-runtime");
763
809
 
764
- // src/components/HashPanel/index.tsx
810
+ // src/ui/HashPanel/index.tsx
765
811
  var import_viem = require("viem");
766
- var import_react23 = require("react");
812
+ var import_react21 = require("react");
767
813
  var import_react_query2 = require("@tanstack/react-query");
768
814
 
769
- // src/components/Drawer/index.tsx
815
+ // src/ui/Drawer/index.tsx
816
+ var import_jsx_runtime70 = require("react/jsx-runtime");
817
+
818
+ // src/ui/ModalDrawer/index.tsx
770
819
  var import_jsx_runtime71 = require("react/jsx-runtime");
771
820
 
772
- // src/components/ModalDrawer/index.tsx
821
+ // src/ui/HashPanel/index.tsx
773
822
  var import_jsx_runtime72 = require("react/jsx-runtime");
774
823
 
775
- // src/components/HashPanel/index.tsx
824
+ // src/context/BusinessProvider.tsx
776
825
  var import_jsx_runtime73 = require("react/jsx-runtime");
777
826
 
778
- // src/context/BusinessProvider.tsx
827
+ // src/context/ModalContext.tsx
828
+ var import_react23 = require("react");
829
+ var import_react_dom = require("react-dom");
830
+
831
+ // src/ui/Switch/index.tsx
779
832
  var import_jsx_runtime74 = require("react/jsx-runtime");
780
833
 
834
+ // src/ui/AlphaAvatar/index.tsx
835
+ var import_react22 = require("react");
836
+ var import_jsx_runtime75 = require("react/jsx-runtime");
837
+
838
+ // src/ui/Radio/index.tsx
839
+ var import_jsx_runtime76 = require("react/jsx-runtime");
840
+ function Radio({
841
+ checked = false,
842
+ onChange,
843
+ size = 24,
844
+ color = "#FC802D",
845
+ className = "",
846
+ style = {}
847
+ }) {
848
+ return /* @__PURE__ */ (0, import_jsx_runtime76.jsx)("div", { onClick: onChange, className: `matchid-radio ${className} ${checked ? "matchid-radio-checked" : ""}`, style: {
849
+ width: size,
850
+ height: size,
851
+ ...style,
852
+ // @ts-ignore
853
+ "--matchid-radio-checked": color
854
+ }, children: checked && /* @__PURE__ */ (0, import_jsx_runtime76.jsx)("div", { className: `matchid-radio-content`, style: {
855
+ width: Math.floor(size * 0.7),
856
+ height: Math.floor(size * 0.7)
857
+ } }) });
858
+ }
859
+
860
+ // src/context/ModalContext.tsx
861
+ var import_jsx_runtime77 = require("react/jsx-runtime");
862
+ var ModalContext = (0, import_react23.createContext)(null);
863
+ function useModal() {
864
+ const context = (0, import_react23.useContext)(ModalContext);
865
+ if (!context) {
866
+ throw new Error("useModal must be used within a ModalProvider");
867
+ }
868
+ return context;
869
+ }
870
+
871
+ // src/context/ToastContext.tsx
872
+ var import_react24 = require("react");
873
+ var import_react_dom2 = require("react-dom");
874
+ var import_jsx_runtime78 = require("react/jsx-runtime");
875
+ var ToastContext = (0, import_react24.createContext)(null);
876
+ function useToast() {
877
+ const context = (0, import_react24.useContext)(ToastContext);
878
+ if (!context) {
879
+ throw new Error("useToast must be used within a ToastProvider");
880
+ }
881
+ return context;
882
+ }
883
+
781
884
  // src/context/index.tsx
782
- var import_jsx_runtime75 = (
783
- // <MpcWalletProvider>
784
- require("react/jsx-runtime")
785
- );
885
+ var import_jsx_runtime79 = require("react/jsx-runtime");
786
886
 
787
887
  // src/hooks/useWalletInit.ts
788
- var import_react26 = require("react");
789
-
790
- // src/hooks/useWallet.tsx
791
- var import_viem2 = require("viem");
792
- var import_accounts = require("viem/accounts");
793
- var import_viem3 = require("viem");
794
888
  var import_react25 = require("react");
795
- var import_viem4 = require("viem");
796
- var AppClientId = "react-sdk-" + getVersion();
797
- function useWallet() {
798
- const { appid, token, overview, address, wallet: walletConfig } = useLocalStore_default();
799
- const { setRecoveryModal, closeRecoveryModal, walletReady } = useStore_default();
800
- const { open: openHashPanel } = useHashPanelStore();
801
- const initCore = ({
802
- did,
803
- address: address2
804
- }) => {
805
- return window.matchProvider.waitUntilWalletMessage(
806
- {
807
- method: "initCore",
808
- data: {
809
- AppId: appid,
810
- AppClientId,
811
- UserId: did,
812
- AccessToken: token,
813
- Address: address2
814
- }
815
- }
816
- );
817
- };
818
- const generateEmbeddedWallets = async (data) => {
819
- return await window.matchProvider.waitUntilWalletMessage({
820
- method: "generateEmbeddedWallets",
821
- data
822
- });
823
- };
824
- const recoveryEmbeddedWallets = async (data) => {
825
- return await window.matchProvider.waitUntilWalletMessage({
826
- method: "recoveryEmbeddedWallets",
827
- data
828
- });
829
- };
830
- const isRecovered = async () => {
831
- const res = await window.matchProvider.waitUntilWalletMessage({
832
- method: "isRecovered"
833
- });
834
- return res.isRecovered;
835
- };
836
- const recoverAfter = async ({
837
- chainType,
838
- handle
839
- }) => {
840
- return new Promise(async (resolve, reject) => {
841
- const res = await isRecovered();
842
- matchlog_default.log("sdk.mpc.isRecovered", res);
843
- if (res) {
844
- await recoveryEmbeddedWallets({ chainType, recoveryType: "user_passcode_recovery_key" });
845
- await handle(resolve, reject);
846
- return;
847
- }
848
- setRecoveryModal({
849
- chainType,
850
- open: true,
851
- success: async () => {
852
- closeRecoveryModal();
853
- matchlog_default.log("sdk.mpc.recover", "Success");
854
- await handle(resolve, reject);
855
- },
856
- close: async () => {
857
- closeRecoveryModal();
858
- reject(new Error("recover modal close"));
859
- }
860
- });
861
- await initCore({
862
- address: overview?.address || "",
863
- did: overview?.did || ""
864
- });
865
- });
866
- };
867
- const signMessage2 = async ({
868
- message,
869
- chainType = "ethereum" /* Ethereum */
870
- }) => {
871
- const getSign = async (resolve, reject) => {
872
- try {
873
- const recoverRes = await window.matchProvider.waitUntilWalletMessage({
874
- method: "signMessage",
875
- data: {
876
- message,
877
- chainType
878
- }
879
- });
880
- resolve(recoverRes.message);
881
- } catch (error) {
882
- console.error("qwe-sign-error", error);
883
- reject(error);
884
- }
885
- };
886
- return await recoverAfter({
887
- handle: getSign,
888
- chainType
889
- });
890
- };
891
- const signTransaction = async ({
892
- transaction,
893
- chainType = "ethereum" /* Ethereum */,
894
- chain
895
- }) => {
896
- console.log("qwe-sign-transaction", transaction);
897
- const getSign = async (resolve, reject) => {
898
- try {
899
- const recoverRes = await window.matchProvider.waitUntilWalletMessage({
900
- method: "signTransaction",
901
- data: {
902
- transaction,
903
- chainType,
904
- chain
905
- }
906
- });
907
- resolve(recoverRes.message);
908
- } catch (error) {
909
- console.error("qwe-sign-error", error);
910
- reject(error);
911
- }
912
- };
913
- return await recoverAfter({
914
- handle: getSign,
915
- chainType
916
- });
917
- };
918
- const evmAccount = (0, import_react25.useMemo)(() => {
919
- return address ? (0, import_accounts.toAccount)({
920
- address,
921
- async signMessage({ message }) {
922
- return await signMessage2({
923
- message,
924
- chainType: "ethereum" /* Ethereum */
925
- });
926
- },
927
- async signTransaction(transaction, options) {
928
- const { account, chain, ...restTransaction } = transaction;
929
- console.log("qwe-sign-transaction", restTransaction, options);
930
- return await signTransaction({
931
- transaction: {
932
- ...restTransaction
933
- },
934
- chainType: "ethereum" /* Ethereum */,
935
- chain: {
936
- id: chain?.id || restTransaction.chainId,
937
- name: chain?.name,
938
- nativeCurrency: {
939
- name: chain?.nativeCurrency?.name || "ETH",
940
- symbol: chain?.nativeCurrency?.symbol || "ETH",
941
- decimals: chain?.nativeCurrency?.decimals || 18
942
- },
943
- rpcUrls: chain?.rpcUrls
944
- }
945
- });
946
- },
947
- async signTypedData(typedData) {
948
- return "0x";
949
- }
950
- }) : void 0;
951
- }, [address]);
952
- (0, import_react25.useEffect)(() => {
953
- matchlog_default.log("qwe-evmAccount", evmAccount);
954
- }, [evmAccount]);
955
- return {
956
- walletReady,
957
- evmAccount,
958
- address,
959
- initCore,
960
- signMessage: signMessage2,
961
- signTransaction,
962
- isRecovered,
963
- recoverAfter,
964
- generateEmbeddedWallets,
965
- recoveryEmbeddedWallets,
966
- createWalletClient: (parameters) => {
967
- if (!evmAccount) {
968
- return;
969
- }
970
- const obj = (0, import_viem3.createWalletClient)({
971
- ...parameters,
972
- account: evmAccount
973
- });
974
- const sendTransaction = async (transaction) => {
975
- const getSign = async (resolve, reject) => {
976
- const { chain, ...restTransaction } = transaction;
977
- const chainId = chain ? chain.id : await obj.getChainId();
978
- const _chain = chain || obj.chain;
979
- const transactionId = Date.now().toString() + Math.random().toString().slice(6);
980
- window.matchProvider.transactionMessageIntervalMap[transactionId] = {
981
- transaction,
982
- func: async () => {
983
- try {
984
- const {
985
- chain: chain2,
986
- account,
987
- ...prepareTransactionRequest
988
- // @ts-ignore
989
- } = await obj.prepareTransactionRequest(window.matchProvider.transactionMessageIntervalMap[transactionId].transaction);
990
- window.matchProvider.sendWalletMessage({
991
- method: "prepareTransactionRequest",
992
- data: {
993
- prepareTransactionRequest,
994
- transactionId
995
- }
996
- });
997
- } catch (error) {
998
- console.error(error);
999
- }
1000
- },
1001
- interval: setInterval(() => {
1002
- window.matchProvider.transactionMessageIntervalMap[transactionId].func();
1003
- }, 1e4)
1004
- };
1005
- try {
1006
- const {
1007
- chain: chain2,
1008
- account,
1009
- ...prepareTransactionRequest
1010
- // @ts-ignore
1011
- } = await obj.prepareTransactionRequest(transaction);
1012
- const { serializedTransaction } = await window.matchProvider.waitUntilWalletMessage({
1013
- method: "sendTransaction",
1014
- data: {
1015
- transactionId,
1016
- transaction: {
1017
- ...restTransaction
1018
- },
1019
- chainType: "ethereum" /* Ethereum */,
1020
- chain: {
1021
- id: chainId,
1022
- name: _chain?.name,
1023
- nativeCurrency: _chain?.nativeCurrency,
1024
- rpcUrls: _chain?.rpcUrls
1025
- },
1026
- prepareTransactionRequest
1027
- }
1028
- });
1029
- openHashPanel();
1030
- const txHash = await obj.sendRawTransaction({
1031
- serializedTransaction
1032
- });
1033
- openHashPanel({
1034
- hash: txHash,
1035
- chain: _chain
1036
- });
1037
- clearInterval(window.matchProvider.transactionMessageIntervalMap[transactionId].interval);
1038
- delete window.matchProvider.transactionMessageIntervalMap[transactionId];
1039
- resolve(txHash);
1040
- } catch (error) {
1041
- console.error("qwe-sign-error", error);
1042
- clearInterval(window.matchProvider.transactionMessageIntervalMap[transactionId].interval);
1043
- delete window.matchProvider.transactionMessageIntervalMap[transactionId];
1044
- reject(error);
1045
- }
1046
- };
1047
- return await recoverAfter({
1048
- handle: getSign,
1049
- chainType: "ethereum" /* Ethereum */
1050
- });
1051
- };
1052
- const deployContract = async (parameters2) => {
1053
- const { abi, args, bytecode, ...request3 } = parameters2;
1054
- const calldata = (0, import_viem4.encodeDeployData)({ abi, args, bytecode });
1055
- return await sendTransaction({
1056
- ...request3,
1057
- data: calldata
1058
- });
1059
- };
1060
- const writeContract = async (parameters2) => {
1061
- const { abi, address: address2, args, dataSuffix, functionName, ...request3 } = parameters2;
1062
- const data = (0, import_viem2.encodeFunctionData)({
1063
- abi,
1064
- args,
1065
- functionName
1066
- });
1067
- return await sendTransaction({
1068
- data: `${data}${dataSuffix ? dataSuffix.replace("0x", "") : ""}`,
1069
- to: address2,
1070
- ...request3
1071
- });
1072
- };
1073
- return {
1074
- ...obj,
1075
- sendTransaction,
1076
- deployContract,
1077
- writeContract
1078
- };
1079
- }
1080
- };
1081
- }
889
+
890
+ // src/store/useStore.ts
891
+ var import_zustand3 = require("zustand");
892
+ var useStore = (0, import_zustand3.create)((set) => ({
893
+ walletReady: false,
894
+ setWalletReady: (inited) => set({ walletReady: inited })
895
+ }));
896
+ var useStore_default = useStore;
1082
897
 
1083
898
  // src/hooks/useWalletInit.ts
1084
- var AppClientId2 = getAppClientId();
899
+ var AppClientId = getAppClientId();
1085
900
 
1086
901
  // src/hooks/useInit.tsx
1087
- var import_react27 = require("react");
902
+ var import_react26 = require("react");
1088
903
 
1089
904
  // src/MatchContext.tsx
1090
905
  var import_react_query3 = require("@tanstack/react-query");
1091
- var import_react_intl17 = require("react-intl");
1092
- var import_jsx_runtime76 = require("react/jsx-runtime");
906
+ var import_react_intl15 = require("react-intl");
907
+ var import_jsx_runtime80 = require("react/jsx-runtime");
1093
908
  var queryClient = new import_react_query3.QueryClient();
1094
- var MatchContext = (0, import_react28.createContext)(void 0);
909
+ var MatchContext = (0, import_react27.createContext)(void 0);
1095
910
  var useMatch = () => {
1096
- const context = (0, import_react28.useContext)(MatchContext);
911
+ const context = (0, import_react27.useContext)(MatchContext);
1097
912
  if (context === void 0) {
1098
913
  throw new Error("useMatch must be used within a MatchProvider");
1099
914
  }
@@ -1112,7 +927,8 @@ function useUserInfo() {
1112
927
  overview,
1113
928
  address,
1114
929
  endpoints,
1115
- locale
930
+ locale,
931
+ refreshOverview
1116
932
  } = useLocalStore_default();
1117
933
  const { events, login } = useMatch();
1118
934
  const { open: SOLOpen } = useSOLModalStore();
@@ -1121,7 +937,7 @@ function useUserInfo() {
1121
937
  const { open: BTCOpen } = useBTCModalStore();
1122
938
  const { open: CEXBindOpen } = useCEXBindModalStore();
1123
939
  const walletModalStore = useWalletModalStore();
1124
- const isLogin = (0, import_react29.useMemo)(() => !!token && !!overview, [token, overview]);
940
+ const isLogin = (0, import_react28.useMemo)(() => !!token && !!overview, [token, overview]);
1125
941
  const logout = async () => {
1126
942
  try {
1127
943
  await toLogoutApi();
@@ -1221,12 +1037,6 @@ function useUserInfo() {
1221
1037
  }
1222
1038
  return false;
1223
1039
  };
1224
- const refreshOverview = async () => {
1225
- const res = await getOverviewInfoApi();
1226
- if (res.data) {
1227
- setOverview(res.data);
1228
- }
1229
- };
1230
1040
  const bindWallet = async () => {
1231
1041
  if (!token) {
1232
1042
  throw new Error("You must login first");
@@ -1359,9 +1169,9 @@ function useUserInfo() {
1359
1169
  }
1360
1170
 
1361
1171
  // src/hooks/useMatchEvents.ts
1362
- var import_react30 = require("react");
1172
+ var import_react29 = require("react");
1363
1173
  function useMatchEvents(handlers) {
1364
- (0, import_react30.useEffect)(() => {
1174
+ (0, import_react29.useEffect)(() => {
1365
1175
  Object.entries(handlers).forEach(([event, handler2]) => {
1366
1176
  if (handler2) {
1367
1177
  eventManager_default.on(event, handler2);
@@ -1377,6 +1187,217 @@ function useMatchEvents(handlers) {
1377
1187
  }, [handlers]);
1378
1188
  }
1379
1189
 
1190
+ // src/hooks/useWallet.tsx
1191
+ var import_viem2 = require("viem");
1192
+ var import_accounts = require("viem/accounts");
1193
+ var import_viem3 = require("viem");
1194
+ var import_react30 = require("react");
1195
+ var import_viem4 = require("viem");
1196
+ var AppClientId2 = "react-sdk-" + getVersion();
1197
+ function useWallet2() {
1198
+ const { address, wallet: walletConfig } = useLocalStore_default();
1199
+ const { walletReady } = useStore_default();
1200
+ const { open: openHashPanel } = useHashPanelStore();
1201
+ const isRecovered = async () => {
1202
+ const res = await window.matchProvider.waitUntilWalletMessage({
1203
+ method: "isRecovered"
1204
+ });
1205
+ return res.isRecovered;
1206
+ };
1207
+ const signMessage2 = async ({
1208
+ message,
1209
+ chainType = "ethereum" /* Ethereum */
1210
+ }) => {
1211
+ try {
1212
+ const res = await window.matchProvider.waitUntilWalletMessage({
1213
+ method: "signMessage",
1214
+ data: {
1215
+ message,
1216
+ chainType
1217
+ }
1218
+ });
1219
+ return res.message;
1220
+ } catch (error) {
1221
+ console.error("sdk.wallet.message", error);
1222
+ throw error;
1223
+ }
1224
+ };
1225
+ const signTransaction = async ({
1226
+ transaction,
1227
+ chainType = "ethereum" /* Ethereum */,
1228
+ chain
1229
+ }) => {
1230
+ try {
1231
+ const res = await window.matchProvider.waitUntilWalletMessage({
1232
+ method: "signTransaction",
1233
+ data: {
1234
+ transaction,
1235
+ chainType,
1236
+ chain
1237
+ }
1238
+ });
1239
+ return res.message;
1240
+ } catch (error) {
1241
+ console.error("sdk.wallet.transaction", error);
1242
+ throw error;
1243
+ }
1244
+ };
1245
+ const evmAccount = (0, import_react30.useMemo)(() => {
1246
+ return address ? (0, import_accounts.toAccount)({
1247
+ address,
1248
+ async signMessage({ message }) {
1249
+ return await signMessage2({
1250
+ message,
1251
+ chainType: "ethereum" /* Ethereum */
1252
+ });
1253
+ },
1254
+ async signTransaction(transaction, options) {
1255
+ const { account, chain, ...restTransaction } = transaction;
1256
+ console.log("qwe-sign-transaction", restTransaction, options);
1257
+ return await signTransaction({
1258
+ transaction: {
1259
+ ...restTransaction
1260
+ },
1261
+ chainType: "ethereum" /* Ethereum */,
1262
+ chain: {
1263
+ id: chain?.id || restTransaction.chainId,
1264
+ name: chain?.name,
1265
+ nativeCurrency: {
1266
+ name: chain?.nativeCurrency?.name || "ETH",
1267
+ symbol: chain?.nativeCurrency?.symbol || "ETH",
1268
+ decimals: chain?.nativeCurrency?.decimals || 18
1269
+ },
1270
+ rpcUrls: chain?.rpcUrls
1271
+ }
1272
+ });
1273
+ },
1274
+ async signTypedData(typedData) {
1275
+ return "0x";
1276
+ }
1277
+ }) : void 0;
1278
+ }, [address]);
1279
+ (0, import_react30.useEffect)(() => {
1280
+ matchlog_default.log("qwe-evmAccount", evmAccount);
1281
+ }, [evmAccount]);
1282
+ const realCreateWalletClient = (parameters) => {
1283
+ if (!evmAccount) {
1284
+ return;
1285
+ }
1286
+ const obj = (0, import_viem3.createWalletClient)({
1287
+ ...parameters,
1288
+ account: evmAccount
1289
+ });
1290
+ const sendTransaction = async (transaction) => {
1291
+ const { chain, ...restTransaction } = transaction;
1292
+ const chainId = chain ? chain.id : await obj.getChainId();
1293
+ const _chain = chain || obj.chain;
1294
+ const transactionId = Date.now().toString() + Math.random().toString().slice(6);
1295
+ window.matchProvider.transactionMessageIntervalMap[transactionId] = {
1296
+ transaction,
1297
+ func: async () => {
1298
+ try {
1299
+ const {
1300
+ chain: chain2,
1301
+ account,
1302
+ ...prepareTransactionRequest
1303
+ // @ts-ignore
1304
+ } = await obj.prepareTransactionRequest(window.matchProvider.transactionMessageIntervalMap[transactionId].transaction);
1305
+ window.matchProvider.sendWalletMessage({
1306
+ method: "prepareTransactionRequest",
1307
+ data: {
1308
+ prepareTransactionRequest,
1309
+ transactionId
1310
+ }
1311
+ });
1312
+ } catch (error) {
1313
+ console.error(error);
1314
+ }
1315
+ },
1316
+ interval: setInterval(() => {
1317
+ window.matchProvider.transactionMessageIntervalMap[transactionId].func();
1318
+ }, 1e4)
1319
+ };
1320
+ try {
1321
+ const {
1322
+ chain: chain2,
1323
+ account,
1324
+ ...prepareTransactionRequest
1325
+ // @ts-ignore
1326
+ } = await obj.prepareTransactionRequest(transaction);
1327
+ const { serializedTransaction } = await window.matchProvider.waitUntilWalletMessage({
1328
+ method: "sendTransaction",
1329
+ data: {
1330
+ transactionId,
1331
+ transaction: {
1332
+ ...restTransaction
1333
+ },
1334
+ chainType: "ethereum" /* Ethereum */,
1335
+ chain: {
1336
+ id: chainId,
1337
+ name: _chain?.name,
1338
+ nativeCurrency: _chain?.nativeCurrency,
1339
+ rpcUrls: _chain?.rpcUrls
1340
+ },
1341
+ prepareTransactionRequest
1342
+ }
1343
+ });
1344
+ openHashPanel();
1345
+ const txHash = await obj.sendRawTransaction({
1346
+ serializedTransaction
1347
+ });
1348
+ openHashPanel({
1349
+ hash: txHash,
1350
+ chain: _chain
1351
+ });
1352
+ clearInterval(window.matchProvider.transactionMessageIntervalMap[transactionId].interval);
1353
+ delete window.matchProvider.transactionMessageIntervalMap[transactionId];
1354
+ return txHash;
1355
+ } catch (error) {
1356
+ console.error("qwe-sign-error", error);
1357
+ clearInterval(window.matchProvider.transactionMessageIntervalMap[transactionId].interval);
1358
+ delete window.matchProvider.transactionMessageIntervalMap[transactionId];
1359
+ throw error;
1360
+ }
1361
+ };
1362
+ const deployContract = async (parameters2) => {
1363
+ const { abi, args, bytecode, ...request3 } = parameters2;
1364
+ const calldata = (0, import_viem4.encodeDeployData)({ abi, args, bytecode });
1365
+ return await sendTransaction({
1366
+ ...request3,
1367
+ data: calldata
1368
+ });
1369
+ };
1370
+ const writeContract = async (parameters2) => {
1371
+ const { abi, address: address2, args, dataSuffix, functionName, ...request3 } = parameters2;
1372
+ const data = (0, import_viem2.encodeFunctionData)({
1373
+ abi,
1374
+ args,
1375
+ functionName
1376
+ });
1377
+ return await sendTransaction({
1378
+ data: `${data}${dataSuffix ? dataSuffix.replace("0x", "") : ""}`,
1379
+ to: address2,
1380
+ ...request3
1381
+ });
1382
+ };
1383
+ return {
1384
+ ...obj,
1385
+ sendTransaction,
1386
+ deployContract,
1387
+ writeContract
1388
+ };
1389
+ };
1390
+ return {
1391
+ walletReady,
1392
+ evmAccount,
1393
+ address,
1394
+ signMessage: signMessage2,
1395
+ signTransaction,
1396
+ isRecovered,
1397
+ createWalletClient: realCreateWalletClient
1398
+ };
1399
+ }
1400
+
1380
1401
  // src/hooks/useCopyClipboard.ts
1381
1402
  var import_copy_to_clipboard = __toESM(require("copy-to-clipboard"));
1382
1403
  var import_react31 = require("react");
@@ -1399,11 +1420,154 @@ function useCopyClipboard(timeout = 500) {
1399
1420
  }, [isCopied, setIsCopied, timeout]);
1400
1421
  return [isCopied, staticCopy];
1401
1422
  }
1423
+
1424
+ // src/hooks/api/wallet.ts
1425
+ var import_react_query4 = require("@tanstack/react-query");
1426
+ function useChainListQuery(options) {
1427
+ const { isLogin, token } = useUserInfo();
1428
+ return (0, import_react_query4.useQuery)({
1429
+ queryKey: ["match-chain-list", token],
1430
+ queryFn: async () => {
1431
+ const res = await getUserChainListApi();
1432
+ if (!isSuccess(res)) {
1433
+ return [];
1434
+ }
1435
+ return res.data;
1436
+ },
1437
+ enabled: isLogin,
1438
+ ...options
1439
+ });
1440
+ }
1441
+
1442
+ // src/hooks/useMatchChain.tsx
1443
+ var import_react32 = require("react");
1444
+ var import_jsx_runtime81 = require("react/jsx-runtime");
1445
+ function useMatchChain() {
1446
+ const chainListQuery = useChainListQuery();
1447
+ const modal = useModal();
1448
+ const { chainId: storeChainId, setChainId } = useLocalStore_default();
1449
+ const chainId = (0, import_react32.useMemo)(() => {
1450
+ if (!chainListQuery.data || !chainListQuery.data.length) {
1451
+ return null;
1452
+ }
1453
+ if (chainListQuery.data.find((item) => item.id === storeChainId)) {
1454
+ return storeChainId;
1455
+ }
1456
+ return chainListQuery.data[0].id;
1457
+ }, [storeChainId, chainListQuery.data]);
1458
+ const chain = (0, import_react32.useMemo)(() => {
1459
+ if (!chainListQuery.data || !chainListQuery.data.length) {
1460
+ return null;
1461
+ }
1462
+ return chainListQuery.data.find((item) => item.id === chainId);
1463
+ }, [chainId, chainListQuery.data]);
1464
+ const explorerLink = (url) => {
1465
+ const explorer = chain?.blockExplorers.default.url;
1466
+ return explorer.lastIndexOf("/") === explorer.length - 1 ? explorer + url : explorer + "/" + url;
1467
+ };
1468
+ function ChangeNetwork({
1469
+ close
1470
+ }) {
1471
+ const { chainId: storeChainId2, setChainId: setChainId2 } = useLocalStore_default();
1472
+ const [selectedChainId, setSelectedChainId] = (0, import_react32.useState)(storeChainId2);
1473
+ return /* @__PURE__ */ (0, import_jsx_runtime81.jsxs)("div", { className: `matchid-change-network-box`, children: [
1474
+ /* @__PURE__ */ (0, import_jsx_runtime81.jsx)("div", { className: `matchid-change-network-list`, children: chainListQuery.data?.map((item, index) => {
1475
+ return /* @__PURE__ */ (0, import_jsx_runtime81.jsxs)(
1476
+ "div",
1477
+ {
1478
+ onClick: () => setSelectedChainId(item.id),
1479
+ className: `matchid-change-network-item ${selectedChainId == item.id ? "matchid-change-network-selected" : ""}`,
1480
+ children: [
1481
+ /* @__PURE__ */ (0, import_jsx_runtime81.jsxs)("div", { className: `matchid-change-network-item-content`, children: [
1482
+ /* @__PURE__ */ (0, import_jsx_runtime81.jsx)("img", { src: item.iconUrl, className: `matchid-change-network-item-icon` }),
1483
+ /* @__PURE__ */ (0, import_jsx_runtime81.jsx)("span", { className: "matchid-change-network-item-name", children: item.name })
1484
+ ] }),
1485
+ /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(Radio, { checked: selectedChainId === item.id })
1486
+ ]
1487
+ },
1488
+ index
1489
+ );
1490
+ }) }),
1491
+ /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(Button, { size: "lg", highlight: true, onClick: () => {
1492
+ setChainId2(selectedChainId || 0);
1493
+ close();
1494
+ }, block: true, children: "Confirm" })
1495
+ ] });
1496
+ }
1497
+ const showChangeNetwork = () => {
1498
+ modal.open({
1499
+ title: "Change Network",
1500
+ content: ChangeNetwork
1501
+ });
1502
+ };
1503
+ return {
1504
+ list: chainListQuery.data,
1505
+ chainId,
1506
+ setChainId,
1507
+ chain,
1508
+ explorerLink,
1509
+ showChangeNetwork
1510
+ };
1511
+ }
1512
+
1513
+ // src/hooks/useMatchWallet.tsx
1514
+ var import_react_qrcode = require("react-qrcode");
1515
+ var import_jsx_runtime82 = require("react/jsx-runtime");
1516
+ function useMatchWallet() {
1517
+ const modal = useModal();
1518
+ const { address } = useWallet2();
1519
+ const chain = useMatchChain();
1520
+ const [copied, setCopied] = useCopyClipboard();
1521
+ const toast = useToast();
1522
+ const onCopy = () => {
1523
+ setCopied(address);
1524
+ toast.success("Copied!");
1525
+ };
1526
+ const showReceiveModal = () => {
1527
+ const chainLink = chain.explorerLink("address/" + address);
1528
+ const ReceiveModal = () => {
1529
+ return /* @__PURE__ */ (0, import_jsx_runtime82.jsxs)("div", { className: `matchid-receive-modal`, children: [
1530
+ /* @__PURE__ */ (0, import_jsx_runtime82.jsxs)("div", { className: "matchid-receive-container", children: [
1531
+ /* @__PURE__ */ (0, import_jsx_runtime82.jsx)("div", { className: `matchid-receive-text`, children: "Receive by scanning the QR code" }),
1532
+ /* @__PURE__ */ (0, import_jsx_runtime82.jsx)("div", { className: `matchid-qr-container`, children: /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(
1533
+ import_react_qrcode.QRCode,
1534
+ {
1535
+ margin: "0",
1536
+ className: `matchid-qr-code`,
1537
+ value: address
1538
+ }
1539
+ ) }),
1540
+ /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(
1541
+ "a",
1542
+ {
1543
+ href: chainLink,
1544
+ target: "_blank",
1545
+ className: `matchid-receive-link`,
1546
+ children: address
1547
+ }
1548
+ )
1549
+ ] }),
1550
+ /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(Button, { size: "lg", onClick: onCopy, block: true, highlight: true, disabled: copied, children: "Copy Address" })
1551
+ ] });
1552
+ };
1553
+ modal.open({
1554
+ title: "Receive",
1555
+ content: ReceiveModal
1556
+ });
1557
+ };
1558
+ return {
1559
+ showReceiveModal
1560
+ };
1561
+ }
1402
1562
  // Annotate the CommonJS export names for ESM import in node:
1403
1563
  0 && (module.exports = {
1404
1564
  useCopyClipboard,
1405
1565
  useLayout,
1566
+ useMatchChain,
1406
1567
  useMatchEvents,
1568
+ useMatchWallet,
1569
+ useModal,
1570
+ useToast,
1407
1571
  useUserInfo,
1408
1572
  useWallet
1409
1573
  });