@matchain/matchid-sdk-react 0.1.42-alpha.1 → 0.1.42-alpha.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (71) hide show
  1. package/dist/assets/icon/index.d.mts +1 -1
  2. package/dist/assets/icon/index.d.ts +1 -1
  3. package/dist/chunk-HJ337PTX.mjs +4662 -0
  4. package/dist/chunk-HJ337PTX.mjs.map +1 -0
  5. package/dist/{chunk-U5KWO2YJ.mjs → chunk-PBNKRURB.mjs} +2 -2
  6. package/dist/chunk-SQIJR7RA.mjs +29 -0
  7. package/dist/chunk-SQIJR7RA.mjs.map +1 -0
  8. package/dist/components/index.d.mts +3 -2
  9. package/dist/components/index.d.ts +3 -2
  10. package/dist/components/index.js +676 -453
  11. package/dist/components/index.js.map +1 -1
  12. package/dist/components/index.mjs +4 -1
  13. package/dist/hooks/api/index.d.mts +2 -2
  14. package/dist/hooks/api/index.d.ts +2 -2
  15. package/dist/hooks/api/index.js +120 -76
  16. package/dist/hooks/api/index.js.map +1 -1
  17. package/dist/hooks/api/index.mjs +3 -2
  18. package/dist/hooks/index.d.mts +5 -2
  19. package/dist/hooks/index.d.ts +5 -2
  20. package/dist/hooks/index.js +328 -145
  21. package/dist/hooks/index.js.map +1 -1
  22. package/dist/hooks/index.mjs +2 -1
  23. package/dist/index-B2B4VJ-u.d.mts +139 -0
  24. package/dist/index-Bhnio7tx.d.ts +139 -0
  25. package/dist/index-BxS06a5O.d.ts +50 -0
  26. package/dist/{index-Dq9Swg8r.d.ts → index-Ca9nh_8s.d.ts} +1 -1
  27. package/dist/{index-COlsBC-b.d.mts → index-CmH9iRLd.d.mts} +25 -12
  28. package/dist/{index-C3KZYrtu.d.mts → index-DFZpfAfc.d.mts} +1 -1
  29. package/dist/{index-fS75Swm8.d.ts → index-DY_ReBra.d.ts} +25 -12
  30. package/dist/index-q5XDobUF.d.mts +50 -0
  31. package/dist/index.css +84 -4
  32. package/dist/index.d.mts +9 -4
  33. package/dist/index.d.ts +9 -4
  34. package/dist/index.js +1100 -614
  35. package/dist/index.js.map +1 -1
  36. package/dist/index.mjs +6 -2
  37. package/dist/mpc-CTbBWHld.d.mts +20 -0
  38. package/dist/mpc-CTbBWHld.d.ts +20 -0
  39. package/dist/types/index.d.mts +3 -0
  40. package/dist/types/index.d.ts +3 -0
  41. package/dist/types/index.js +44 -0
  42. package/dist/types/index.js.map +1 -0
  43. package/dist/types/index.mjs +10 -0
  44. package/dist/types/index.mjs.map +1 -0
  45. package/dist/types-CVwZEgQ0.d.mts +244 -0
  46. package/dist/types-CVwZEgQ0.d.ts +244 -0
  47. package/example/package.json +1 -0
  48. package/example/src/App.tsx +56 -27
  49. package/example/src/abi/erc20.json +222 -0
  50. package/example/src/components/ButtonGroup/index.tsx +10 -0
  51. package/example/src/components/Login/index.tsx +2 -2
  52. package/example/src/components/RoutePrivate/index.tsx +4 -3
  53. package/example/src/config/chains/index.ts +2 -0
  54. package/example/src/config/chains/matchMain.ts +27 -0
  55. package/example/src/config/chains/matchTest.ts +33 -0
  56. package/example/src/config/index.ts +6 -2
  57. package/example/src/pages/User/components/BindListModal.tsx +10 -0
  58. package/example/src/pages/User/components/PohListModal.tsx +10 -0
  59. package/example/src/pages/User/components/QueryDisplay.tsx +25 -0
  60. package/example/src/pages/{User.tsx → User/index.tsx} +55 -84
  61. package/example/src/pages/Wallet.tsx +258 -43
  62. package/example/src/store/useLocalStore.ts +51 -0
  63. package/example/tsconfig.json +1 -0
  64. package/package.json +7 -2
  65. package/dist/chunk-SBOIXOAW.mjs +0 -4197
  66. package/dist/chunk-SBOIXOAW.mjs.map +0 -1
  67. package/dist/index-BrdP6eg5.d.ts +0 -93
  68. package/dist/index-D7bNSBwl.d.mts +0 -93
  69. package/dist/types.d-CLO_WLka.d.mts +0 -176
  70. package/dist/types.d-CLO_WLka.d.ts +0 -176
  71. /package/dist/{chunk-U5KWO2YJ.mjs.map → chunk-PBNKRURB.mjs.map} +0 -0
@@ -69,7 +69,11 @@ var persistedState = (0, import_middleware.persist)(
69
69
  address: "",
70
70
  setAddress: (address) => set({ address }),
71
71
  locale: "en",
72
- setLocale: (locale) => set({ locale })
72
+ setLocale: (locale) => set({ locale }),
73
+ wallet: {
74
+ type: "UserPasscode"
75
+ },
76
+ setWallet: (wallet) => set({ wallet })
73
77
  }),
74
78
  { name: "match-local" }
75
79
  );
@@ -78,7 +82,7 @@ var localStore = useLocalStore;
78
82
  var useLocalStore_default = useLocalStore;
79
83
 
80
84
  // src/hooks/useUserInfo.tsx
81
- var import_react24 = require("react");
85
+ var import_react28 = require("react");
82
86
 
83
87
  // src/api/request.ts
84
88
  var import_axios = __toESM(require("axios"));
@@ -238,6 +242,9 @@ var getAuthInfoApi = () => {
238
242
  };
239
243
 
240
244
  // src/MatchContext.tsx
245
+ var import_react27 = require("react");
246
+
247
+ // src/context/BusinessProvider.tsx
241
248
  var import_react23 = require("react");
242
249
 
243
250
  // src/assets/icon/ArrowLeftIcon.tsx
@@ -389,36 +396,40 @@ function useDownMd() {
389
396
  return isBelowMd;
390
397
  }
391
398
 
392
- // src/components/Modal/index.tsx
399
+ // src/components/Overlay/index.tsx
400
+ var import_react2 = require("react");
393
401
  var import_jsx_runtime44 = require("react/jsx-runtime");
394
402
 
403
+ // src/components/Modal/index.tsx
404
+ var import_jsx_runtime45 = require("react/jsx-runtime");
405
+
395
406
  // src/components/PasswordModal/index.tsx
396
- var import_react3 = require("react");
407
+ var import_react4 = require("react");
397
408
 
398
409
  // src/components/Input/index.tsx
399
- var import_react2 = require("react");
400
- var import_jsx_runtime45 = require("react/jsx-runtime");
410
+ var import_react3 = require("react");
411
+ var import_jsx_runtime46 = require("react/jsx-runtime");
401
412
 
402
413
  // src/components/Field/index.tsx
403
- var import_jsx_runtime46 = require("react/jsx-runtime");
414
+ var import_jsx_runtime47 = require("react/jsx-runtime");
404
415
 
405
416
  // src/components/Button/index.tsx
406
- var import_jsx_runtime47 = require("react/jsx-runtime");
417
+ var import_jsx_runtime48 = require("react/jsx-runtime");
407
418
 
408
419
  // src/components/PasswordModal/index.tsx
409
420
  var import_react_intl = require("react-intl");
410
- var import_jsx_runtime48 = require("react/jsx-runtime");
421
+ var import_jsx_runtime49 = require("react/jsx-runtime");
411
422
 
412
423
  // src/components/RecoveryModal/index.tsx
413
- var import_react4 = require("react");
424
+ var import_react5 = require("react");
414
425
  var import_react_intl2 = require("react-intl");
415
- var import_jsx_runtime49 = require("react/jsx-runtime");
426
+ var import_jsx_runtime50 = require("react/jsx-runtime");
416
427
 
417
428
  // src/store/useStore.ts
418
429
  var import_zustand2 = require("zustand");
419
430
  var useStore = (0, import_zustand2.create)((set) => ({
420
- walletIframeInited: false,
421
- setWalletIframeInited: (inited) => set({ walletIframeInited: inited }),
431
+ walletReady: false,
432
+ setWalletReady: (inited) => set({ walletReady: inited }),
422
433
  recoveryModal: {
423
434
  open: false,
424
435
  success: async () => {
@@ -463,16 +474,27 @@ var useCEXBindModalStore = (0, import_zustand3.create)((set) => ({
463
474
  open: (type) => set({ isOpen: true, type }),
464
475
  close: () => set({ isOpen: false })
465
476
  }));
477
+ var useHashPanelStore = (0, import_zustand3.create)((set) => ({
478
+ isOpen: false,
479
+ hash: null,
480
+ chain: null,
481
+ open: (params) => set({
482
+ isOpen: true,
483
+ hash: params?.hash || null,
484
+ chain: params?.chain || null
485
+ }),
486
+ close: () => set({ isOpen: false })
487
+ }));
466
488
 
467
489
  // src/components/EmailModal/index.tsx
468
- var import_react7 = require("react");
490
+ var import_react8 = require("react");
469
491
 
470
492
  // src/components/EmailModal/StepEmail.tsx
471
- var import_react5 = require("react");
493
+ var import_react6 = require("react");
472
494
 
473
495
  // src/utils/index.ts
474
496
  var getVersion = () => {
475
- return "0.0.1";
497
+ return "0.0.2";
476
498
  };
477
499
  function encodeBase64(input) {
478
500
  return btoa(unescape(encodeURIComponent(input)));
@@ -483,62 +505,62 @@ function getAppClientId() {
483
505
 
484
506
  // src/components/EmailModal/StepEmail.tsx
485
507
  var import_react_intl3 = require("react-intl");
486
- var import_jsx_runtime50 = require("react/jsx-runtime");
508
+ var import_jsx_runtime51 = require("react/jsx-runtime");
487
509
 
488
510
  // src/components/EmailModal/StepVerify.tsx
489
- var import_react6 = require("react");
511
+ var import_react7 = require("react");
490
512
  var import_react_intl4 = require("react-intl");
491
- var import_jsx_runtime51 = require("react/jsx-runtime");
513
+ var import_jsx_runtime52 = require("react/jsx-runtime");
492
514
 
493
515
  // src/components/EmailModal/index.tsx
494
516
  var import_react_intl5 = require("react-intl");
495
- var import_jsx_runtime52 = require("react/jsx-runtime");
517
+ var import_jsx_runtime53 = require("react/jsx-runtime");
496
518
 
497
519
  // src/components/Popover/index.tsx
498
- var import_react8 = require("react");
499
- var import_jsx_runtime53 = require("react/jsx-runtime");
520
+ var import_react9 = require("react");
521
+ var import_jsx_runtime54 = require("react/jsx-runtime");
500
522
 
501
523
  // src/components/LoginBox/index.tsx
502
- var import_react9 = require("react");
524
+ var import_react10 = require("react");
503
525
  var import_react_intl6 = require("react-intl");
504
- var import_jsx_runtime54 = require("react/jsx-runtime");
526
+ var import_jsx_runtime55 = require("react/jsx-runtime");
505
527
 
506
528
  // src/components/LoginButton/index.tsx
507
- var import_react11 = require("react");
529
+ var import_react12 = require("react");
508
530
 
509
531
  // src/components/LoginPanel/index.tsx
510
532
  var import_react_intl7 = require("react-intl");
511
- var import_jsx_runtime55 = require("react/jsx-runtime");
533
+ var import_jsx_runtime56 = require("react/jsx-runtime");
512
534
 
513
535
  // src/components/LoginModal/index.tsx
514
- var import_jsx_runtime56 = require("react/jsx-runtime");
536
+ var import_jsx_runtime57 = require("react/jsx-runtime");
515
537
 
516
538
  // src/components/UserPopover/index.tsx
517
- var import_react10 = require("react");
539
+ var import_react11 = require("react");
518
540
 
519
541
  // src/assets/icon/ProfileIcon.tsx
520
- var import_jsx_runtime57 = require("react/jsx-runtime");
542
+ var import_jsx_runtime58 = require("react/jsx-runtime");
521
543
 
522
544
  // src/components/UserPopover/index.tsx
523
545
  var import_react_intl8 = require("react-intl");
524
- var import_jsx_runtime58 = require("react/jsx-runtime");
546
+ var import_jsx_runtime59 = require("react/jsx-runtime");
525
547
 
526
548
  // src/components/LoginButton/index.tsx
527
549
  var import_react_intl9 = require("react-intl");
528
- var import_jsx_runtime59 = require("react/jsx-runtime");
550
+ var import_jsx_runtime60 = require("react/jsx-runtime");
529
551
 
530
552
  // src/components/UsernameModal/index.tsx
531
- var import_react12 = require("react");
553
+ var import_react13 = require("react");
532
554
 
533
555
  // src/assets/icon/InfoRoundIcon.tsx
534
- var import_jsx_runtime60 = require("react/jsx-runtime");
556
+ var import_jsx_runtime61 = require("react/jsx-runtime");
535
557
 
536
558
  // src/components/UsernameModal/index.tsx
537
559
  var import_react_intl10 = require("react-intl");
538
- var import_jsx_runtime61 = require("react/jsx-runtime");
560
+ var import_jsx_runtime62 = require("react/jsx-runtime");
539
561
 
540
562
  // src/components/SOLModal/index.tsx
541
- var import_react14 = __toESM(require("react"));
563
+ var import_react15 = __toESM(require("react"));
542
564
 
543
565
  // src/hooks/eventManager.ts
544
566
  var EventManager = class {
@@ -587,11 +609,11 @@ var import_styles = require("@solana/wallet-adapter-react-ui/styles.css");
587
609
  var import_react_intl11 = require("react-intl");
588
610
 
589
611
  // src/components/WalletModalContent/index.tsx
590
- var import_react13 = require("react");
591
- var import_jsx_runtime62 = require("react/jsx-runtime");
612
+ var import_react14 = require("react");
613
+ var import_jsx_runtime63 = require("react/jsx-runtime");
592
614
 
593
615
  // src/components/SOLModal/index.tsx
594
- var import_jsx_runtime63 = require("react/jsx-runtime");
616
+ var import_jsx_runtime64 = require("react/jsx-runtime");
595
617
  var wallets = [
596
618
  new import_wallet_adapter_wallets.PhantomWalletAdapter(),
597
619
  new import_wallet_adapter_wallets.SolflareWalletAdapter(),
@@ -635,177 +657,338 @@ var wallets = [
635
657
  ];
636
658
 
637
659
  // src/components/TRONModal/index.tsx
638
- var import_react16 = __toESM(require("react"));
660
+ var import_react17 = __toESM(require("react"));
639
661
  var import_react_intl12 = require("react-intl");
640
662
 
641
663
  // src/hooks/useTRONWallet.ts
642
- var import_react15 = require("react");
664
+ var import_react16 = require("react");
643
665
 
644
666
  // src/components/TRONModal/index.tsx
645
- var import_jsx_runtime64 = require("react/jsx-runtime");
667
+ var import_jsx_runtime65 = require("react/jsx-runtime");
646
668
 
647
669
  // src/components/TONModal/index.tsx
648
- var import_react17 = __toESM(require("react"));
670
+ var import_react18 = __toESM(require("react"));
649
671
  var import_react_intl13 = require("react-intl");
650
672
  var import_ui_react = require("@tonconnect/ui-react");
651
- var import_jsx_runtime65 = require("react/jsx-runtime");
673
+ var import_jsx_runtime66 = require("react/jsx-runtime");
652
674
 
653
675
  // src/components/BTCModal/index.tsx
654
- var import_react19 = __toESM(require("react"));
676
+ var import_react20 = __toESM(require("react"));
655
677
  var import_react_intl14 = require("react-intl");
656
678
 
657
679
  // src/lib/btc/XverseAdapter.ts
658
680
  var import_sats_connect = require("sats-connect");
659
681
 
660
682
  // src/hooks/useBTCWallet.ts
661
- var import_react18 = require("react");
683
+ var import_react19 = require("react");
662
684
 
663
685
  // src/components/BTCModal/index.tsx
664
- var import_jsx_runtime66 = require("react/jsx-runtime");
686
+ var import_jsx_runtime67 = require("react/jsx-runtime");
665
687
 
666
688
  // src/components/CEXBindModal/index.tsx
667
- var import_react20 = require("react");
689
+ var import_react21 = require("react");
668
690
  var import_react_intl15 = require("react-intl");
669
- var import_jsx_runtime67 = require("react/jsx-runtime");
691
+ var import_jsx_runtime68 = require("react/jsx-runtime");
692
+
693
+ // src/components/HashPanel/index.tsx
694
+ var import_viem = require("viem");
695
+ var import_react22 = require("react");
696
+ var import_react_query = require("@tanstack/react-query");
697
+
698
+ // src/components/Drawer/index.tsx
699
+ var import_jsx_runtime69 = require("react/jsx-runtime");
700
+
701
+ // src/components/ModalDrawer/index.tsx
702
+ var import_jsx_runtime70 = require("react/jsx-runtime");
703
+
704
+ // src/components/HashPanel/index.tsx
705
+ var import_jsx_runtime71 = require("react/jsx-runtime");
670
706
 
671
707
  // src/context/BusinessProvider.tsx
672
- var import_jsx_runtime68 = require("react/jsx-runtime");
708
+ var import_jsx_runtime72 = require("react/jsx-runtime");
673
709
 
674
710
  // src/context/index.tsx
675
- var import_jsx_runtime69 = (
711
+ var import_jsx_runtime73 = (
676
712
  // <MpcWalletProvider>
677
713
  require("react/jsx-runtime")
678
714
  );
679
715
 
680
716
  // src/hooks/useWalletInit.ts
681
- var import_react21 = require("react");
717
+ var import_react25 = require("react");
682
718
 
683
719
  // src/hooks/useWallet.tsx
720
+ var import_viem2 = require("viem");
684
721
  var import_accounts = require("viem/accounts");
722
+ var import_viem3 = require("viem");
723
+ var import_react24 = require("react");
724
+ var import_viem4 = require("viem");
685
725
  var AppClientId = "react-sdk-" + getVersion();
686
726
  function useWallet() {
687
- const { appid, token, overview, address } = useLocalStore_default();
688
- const { setRecoveryModal, closeRecoveryModal } = useStore_default();
689
- const initWallet = ({
727
+ const { appid, token, overview, address, wallet: walletConfig } = useLocalStore_default();
728
+ const { setRecoveryModal, closeRecoveryModal, walletReady } = useStore_default();
729
+ const { open: openHashPanel } = useHashPanelStore();
730
+ const initCore = ({
690
731
  did,
691
732
  address: address2
692
733
  }) => {
693
- return window.waitMatchUntilWalletMessage(
694
- "initCore",
734
+ return window.matchProvider.waitUntilWalletMessage(
695
735
  {
696
- AppId: appid,
697
- AppClientId,
698
- UserId: did,
699
- AccessToken: token,
700
- Address: address2
736
+ method: "initCore",
737
+ data: {
738
+ AppId: appid,
739
+ AppClientId,
740
+ UserId: did,
741
+ AccessToken: token,
742
+ Address: address2
743
+ }
701
744
  }
702
745
  );
703
746
  };
747
+ const generateEmbeddedWallets = async (data) => {
748
+ return await window.matchProvider.waitUntilWalletMessage({
749
+ method: "generateEmbeddedWallets",
750
+ data
751
+ });
752
+ };
753
+ const recoveryEmbeddedWallets = async (data) => {
754
+ return await window.matchProvider.waitUntilWalletMessage({
755
+ method: "recoveryEmbeddedWallets",
756
+ data
757
+ });
758
+ };
704
759
  const isRecovered = async () => {
705
- const res = await window.waitMatchUntilWalletMessage("isRecovered");
760
+ const res = await window.matchProvider.waitUntilWalletMessage({
761
+ method: "isRecovered"
762
+ });
706
763
  return res.isRecovered;
707
764
  };
708
- const generateWallet = async ({
709
- did,
710
- userPasscode
765
+ const recoverAfter = async ({
766
+ chainType,
767
+ handle
711
768
  }) => {
712
- return await window.waitMatchUntilWalletMessage("generateWallet", {
713
- chainType: "ethereum",
714
- recoveryType: "user_passcode_recovery_key",
715
- userPasscode
716
- });
717
- };
718
- const recoverAfter = async (func) => {
719
769
  return new Promise(async (resolve, reject) => {
720
770
  const res = await isRecovered();
721
- matchlog_default.log("isRecovered", res);
722
- if (!res) {
723
- setRecoveryModal({
724
- open: true,
725
- success: async () => {
726
- matchlog_default.log("recover Success");
727
- await func(resolve, reject);
728
- },
729
- close: async () => {
730
- closeRecoveryModal();
731
- reject(new Error("recover modal close"));
732
- }
733
- });
734
- await initWallet({
735
- address: overview?.address || "",
736
- did: overview?.did?.split(":")[2] || ""
737
- });
738
- } else {
739
- await recoveryWallet("ethereum", "user_passcode_recovery_key");
740
- await func(resolve, reject);
771
+ matchlog_default.log("sdk.mpc.isRecovered", res);
772
+ if (res) {
773
+ await recoveryEmbeddedWallets({ chainType, recoveryType: "user_passcode_recovery_key" });
774
+ await handle(resolve, reject);
775
+ return;
741
776
  }
777
+ setRecoveryModal({
778
+ chainType,
779
+ open: true,
780
+ success: async () => {
781
+ closeRecoveryModal();
782
+ matchlog_default.log("sdk.mpc.recover", "Success");
783
+ await handle(resolve, reject);
784
+ },
785
+ close: async () => {
786
+ closeRecoveryModal();
787
+ reject(new Error("recover modal close"));
788
+ }
789
+ });
790
+ await initCore({
791
+ address: overview?.address || "",
792
+ did: overview?.did || ""
793
+ });
742
794
  });
743
795
  };
744
- const signMessage2 = async (message, type) => {
796
+ const signMessage2 = async ({
797
+ message,
798
+ chainType = "ethereum" /* Ethereum */
799
+ }) => {
745
800
  const getSign = async (resolve, reject) => {
746
801
  try {
747
- const recoverRes = await window.waitMatchUntilWalletMessage("signMessage", {
748
- message,
749
- chainType: type
802
+ const recoverRes = await window.matchProvider.waitUntilWalletMessage({
803
+ method: "signMessage",
804
+ data: {
805
+ message,
806
+ chainType
807
+ }
750
808
  });
751
- closeRecoveryModal();
752
- resolve(recoverRes);
809
+ resolve(recoverRes.message);
753
810
  } catch (error) {
754
811
  console.error("qwe-sign-error", error);
755
812
  reject(error);
756
813
  }
757
814
  };
758
- return await recoverAfter(getSign);
815
+ return await recoverAfter({
816
+ handle: getSign,
817
+ chainType
818
+ });
759
819
  };
760
- const signTransaction = async (transaction, type) => {
820
+ const signTransaction = async ({
821
+ transaction,
822
+ chainType = "ethereum" /* Ethereum */,
823
+ chain
824
+ }) => {
825
+ console.log("qwe-sign-transaction", transaction);
761
826
  const getSign = async (resolve, reject) => {
762
827
  try {
763
- const recoverRes = await window.waitMatchUntilWalletMessage("signTransaction", {
764
- transaction,
765
- chainType: type
828
+ const recoverRes = await window.matchProvider.waitUntilWalletMessage({
829
+ method: "signTransaction",
830
+ data: {
831
+ transaction,
832
+ chainType,
833
+ chain
834
+ }
766
835
  });
767
- closeRecoveryModal();
768
- resolve(recoverRes);
836
+ resolve(recoverRes.message);
769
837
  } catch (error) {
770
838
  console.error("qwe-sign-error", error);
771
839
  reject(error);
772
840
  }
773
841
  };
774
- return await recoverAfter(getSign);
775
- };
776
- const recoveryWallet = async (chainType, recoveryType, userPasscode) => {
777
- return await window.waitMatchUntilWalletMessage("recoveryWallet", {
778
- chainType,
779
- recoveryType,
780
- userPasscode
842
+ return await recoverAfter({
843
+ handle: getSign,
844
+ chainType
781
845
  });
782
846
  };
783
- const evmAccount = address ? (0, import_accounts.toAccount)({
784
- address,
785
- async signMessage({ message }) {
786
- return await signMessage2(message);
787
- },
788
- async signTransaction(transaction, options) {
789
- const { account, ...restTransaction } = transaction;
790
- const sign = await signTransaction({
791
- ...restTransaction
792
- });
793
- return sign;
794
- },
795
- async signTypedData(typedData) {
796
- return "0x";
797
- }
798
- }) : void 0;
847
+ const evmAccount = (0, import_react24.useMemo)(() => {
848
+ return address ? (0, import_accounts.toAccount)({
849
+ address,
850
+ async signMessage({ message }) {
851
+ return await signMessage2({
852
+ message,
853
+ chainType: "ethereum" /* Ethereum */
854
+ });
855
+ },
856
+ async signTransaction(transaction, options) {
857
+ const { account, chain, ...restTransaction } = transaction;
858
+ console.log("qwe-sign-transaction", restTransaction, options);
859
+ return await signTransaction({
860
+ transaction: {
861
+ ...restTransaction
862
+ },
863
+ chainType: "ethereum" /* Ethereum */,
864
+ chain: {
865
+ id: chain?.id || restTransaction.chainId,
866
+ name: chain?.name,
867
+ nativeCurrency: {
868
+ name: chain?.nativeCurrency?.name || "ETH",
869
+ symbol: chain?.nativeCurrency?.symbol || "ETH",
870
+ decimals: chain?.nativeCurrency?.decimals || 18
871
+ }
872
+ }
873
+ });
874
+ },
875
+ async signTypedData(typedData) {
876
+ return "0x";
877
+ }
878
+ }) : void 0;
879
+ }, [address]);
880
+ (0, import_react24.useEffect)(() => {
881
+ console.log("qwe-evmAccount", evmAccount);
882
+ }, [evmAccount]);
799
883
  return {
884
+ walletReady,
800
885
  evmAccount,
801
886
  address,
802
- recoveryWallet,
803
- initWallet,
804
- generateWallet,
887
+ initCore,
805
888
  signMessage: signMessage2,
806
889
  signTransaction,
807
890
  isRecovered,
808
- recoverAfter
891
+ recoverAfter,
892
+ generateEmbeddedWallets,
893
+ recoveryEmbeddedWallets,
894
+ createWalletClient: (parameters) => {
895
+ if (!evmAccount) {
896
+ return;
897
+ }
898
+ const obj = (0, import_viem3.createWalletClient)({
899
+ ...parameters,
900
+ account: evmAccount
901
+ });
902
+ const sendTransaction = async (transaction) => {
903
+ const getSign = async (resolve, reject) => {
904
+ const { chain, ...restTransaction } = transaction;
905
+ const chainId = chain ? chain.id : await obj.getChainId();
906
+ const _chain = chain || obj.chain;
907
+ const transactionId = Date.now().toString() + Math.random().toString().slice(6);
908
+ const sendPrepareTransactionRequest = async () => {
909
+ const { chain: chain2, account, ...prepareTransactionRequest } = await obj.prepareTransactionRequest(transaction);
910
+ window.matchProvider.sendWalletMessage({
911
+ method: "prepareTransactionRequest",
912
+ data: {
913
+ prepareTransactionRequest,
914
+ transactionId
915
+ }
916
+ });
917
+ };
918
+ let interval = null;
919
+ const timer = setTimeout(() => {
920
+ sendPrepareTransactionRequest();
921
+ interval = setInterval(() => {
922
+ sendPrepareTransactionRequest();
923
+ }, 1e4);
924
+ }, 1500);
925
+ try {
926
+ const { serializedTransaction } = await window.matchProvider.waitUntilWalletMessage({
927
+ method: "sendTransaction",
928
+ data: {
929
+ transactionId,
930
+ transaction: {
931
+ ...restTransaction
932
+ },
933
+ chainType: "ethereum" /* Ethereum */,
934
+ chain: {
935
+ id: chainId,
936
+ name: _chain?.name,
937
+ nativeCurrency: _chain?.nativeCurrency
938
+ }
939
+ }
940
+ });
941
+ openHashPanel();
942
+ const txHash = await obj.sendRawTransaction({
943
+ serializedTransaction
944
+ });
945
+ openHashPanel({
946
+ hash: txHash,
947
+ chain: _chain
948
+ });
949
+ clearTimeout(timer);
950
+ clearInterval(interval);
951
+ resolve(txHash);
952
+ } catch (error) {
953
+ console.error("qwe-sign-error", error);
954
+ clearTimeout(timer);
955
+ clearInterval(interval);
956
+ reject(error);
957
+ }
958
+ };
959
+ return await recoverAfter({
960
+ handle: getSign,
961
+ chainType: "ethereum" /* Ethereum */
962
+ });
963
+ };
964
+ const deployContract = async (parameters2) => {
965
+ const { abi, args, bytecode, ...request3 } = parameters2;
966
+ const calldata = (0, import_viem4.encodeDeployData)({ abi, args, bytecode });
967
+ return await sendTransaction({
968
+ ...request3,
969
+ data: calldata
970
+ });
971
+ };
972
+ const writeContract = async (parameters2) => {
973
+ const { abi, address: address2, args, dataSuffix, functionName, ...request3 } = parameters2;
974
+ const data = (0, import_viem2.encodeFunctionData)({
975
+ abi,
976
+ args,
977
+ functionName
978
+ });
979
+ return await sendTransaction({
980
+ data: `${data}${dataSuffix ? dataSuffix.replace("0x", "") : ""}`,
981
+ to: address2,
982
+ ...request3
983
+ });
984
+ };
985
+ return {
986
+ ...obj,
987
+ sendTransaction,
988
+ deployContract,
989
+ writeContract
990
+ };
991
+ }
809
992
  };
810
993
  }
811
994
 
@@ -813,16 +996,16 @@ function useWallet() {
813
996
  var AppClientId2 = getAppClientId();
814
997
 
815
998
  // src/hooks/useInit.tsx
816
- var import_react22 = require("react");
999
+ var import_react26 = require("react");
817
1000
 
818
1001
  // src/MatchContext.tsx
819
- var import_react_query = require("@tanstack/react-query");
1002
+ var import_react_query2 = require("@tanstack/react-query");
820
1003
  var import_react_intl16 = require("react-intl");
821
- var import_jsx_runtime70 = require("react/jsx-runtime");
822
- var queryClient = new import_react_query.QueryClient();
823
- var MatchContext = (0, import_react23.createContext)(void 0);
1004
+ var import_jsx_runtime74 = require("react/jsx-runtime");
1005
+ var queryClient = new import_react_query2.QueryClient();
1006
+ var MatchContext = (0, import_react27.createContext)(void 0);
824
1007
  var useMatch = () => {
825
- const context = (0, import_react23.useContext)(MatchContext);
1008
+ const context = (0, import_react27.useContext)(MatchContext);
826
1009
  if (context === void 0) {
827
1010
  throw new Error("useMatch must be used within a MatchProvider");
828
1011
  }
@@ -849,7 +1032,7 @@ function useUserInfo() {
849
1032
  const { open: TONOpen } = useTONModalStore();
850
1033
  const { open: BTCOpen } = useBTCModalStore();
851
1034
  const { open: CEXBindOpen } = useCEXBindModalStore();
852
- const isLogin = (0, import_react24.useMemo)(() => !!token, [token]);
1035
+ const isLogin = (0, import_react28.useMemo)(() => !!token && !!overview, [token, overview]);
853
1036
  const logout = async () => {
854
1037
  try {
855
1038
  await toLogoutApi();
@@ -1083,9 +1266,9 @@ function useUserInfo() {
1083
1266
  }
1084
1267
 
1085
1268
  // src/hooks/useMatchEvents.ts
1086
- var import_react25 = require("react");
1269
+ var import_react29 = require("react");
1087
1270
  function useMatchEvents(handlers) {
1088
- (0, import_react25.useEffect)(() => {
1271
+ (0, import_react29.useEffect)(() => {
1089
1272
  Object.entries(handlers).forEach(([event, handler2]) => {
1090
1273
  if (handler2) {
1091
1274
  eventManager_default.on(event, handler2);
@@ -1103,14 +1286,14 @@ function useMatchEvents(handlers) {
1103
1286
 
1104
1287
  // src/hooks/useCopyClipboard.ts
1105
1288
  var import_copy_to_clipboard = __toESM(require("copy-to-clipboard"));
1106
- var import_react26 = require("react");
1289
+ var import_react30 = require("react");
1107
1290
  function useCopyClipboard(timeout = 500) {
1108
- const [isCopied, setIsCopied] = (0, import_react26.useState)(false);
1109
- const staticCopy = (0, import_react26.useCallback)((text) => {
1291
+ const [isCopied, setIsCopied] = (0, import_react30.useState)(false);
1292
+ const staticCopy = (0, import_react30.useCallback)((text) => {
1110
1293
  const didCopy = (0, import_copy_to_clipboard.default)(text);
1111
1294
  setIsCopied(didCopy);
1112
1295
  }, []);
1113
- (0, import_react26.useEffect)(() => {
1296
+ (0, import_react30.useEffect)(() => {
1114
1297
  if (isCopied) {
1115
1298
  const hide = setTimeout(() => {
1116
1299
  setIsCopied(false);