@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
package/dist/index.js CHANGED
@@ -40,7 +40,7 @@ __export(src_exports, {
40
40
  module.exports = __toCommonJS(src_exports);
41
41
 
42
42
  // src/MatchContext.tsx
43
- var import_react19 = require("react");
43
+ var import_react24 = require("react");
44
44
 
45
45
  // src/assets/icon/ArrowLeftIcon.tsx
46
46
  var import_jsx_runtime = require("react/jsx-runtime");
@@ -691,6 +691,162 @@ function ArrowDownIcon({ width = 20, height = 21, color = "black", ...props }) {
691
691
  ) });
692
692
  }
693
693
 
694
+ // src/assets/icon/LeatherIcon.tsx
695
+ var import_jsx_runtime36 = require("react/jsx-runtime");
696
+ function LeatherIcon({
697
+ size = 128,
698
+ ...props
699
+ }) {
700
+ return /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)("svg", { width: size, height: size, ...props, viewBox: "0 0 128 128", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [
701
+ /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("rect", { width: "128", height: "128", rx: "26.8387", fill: "#12100F" }),
702
+ /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
703
+ "path",
704
+ {
705
+ d: "M74.9171 52.7114C82.4766 51.5408 93.4087 43.5804 93.4087 37.3761C93.4087 35.5031 91.8968 34.2154 89.6871 34.2154C85.5004 34.2154 78.4061 40.5368 74.9171 52.7114ZM39.911 83.4991C30.0256 83.4991 29.2115 93.3324 39.0969 93.3324C43.5163 93.3324 48.8661 91.5764 51.6573 88.4157C47.5868 84.9038 44.2141 83.4991 39.911 83.4991ZM102.829 79.2848C103.41 95.7907 95.0369 105.039 80.8484 105.039C72.4748 105.039 68.2881 101.878 59.333 96.0249C54.681 101.176 45.8423 105.039 38.5154 105.039C13.2785 105.039 14.3252 72.8463 40.0273 72.8463C45.3771 72.8463 49.9128 74.2511 55.7277 77.88L59.5656 64.4177C43.7489 60.0864 35.8405 47.9118 43.6326 30.4693H56.1929C49.215 42.0586 53.9832 51.6578 62.822 52.7114C67.5903 35.7372 77.8246 22.509 91.4316 22.509C99.1074 22.509 105.155 27.5428 105.155 36.6737C105.155 51.3066 86.0819 63.2471 71.6607 64.4177L65.7295 85.3721C72.4748 93.2153 91.199 100.824 91.199 79.2848H102.829Z",
706
+ fill: "#F5F1ED"
707
+ }
708
+ )
709
+ ] });
710
+ }
711
+
712
+ // src/assets/icon/UnisatIcon.tsx
713
+ var import_jsx_runtime37 = require("react/jsx-runtime");
714
+ function UnisatIcon({
715
+ size = 64,
716
+ ...props
717
+ }) {
718
+ return /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(
719
+ "svg",
720
+ {
721
+ width: size,
722
+ height: size,
723
+ ...props,
724
+ viewBox: "0 0 51 64",
725
+ fill: "none",
726
+ xmlns: "http://www.w3.org/2000/svg",
727
+ preserveAspectRatio: "xMidYMid meet",
728
+ children: [
729
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)("g", { clipPath: "url(#clip0_13_4)", children: [
730
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
731
+ "path",
732
+ {
733
+ d: "M35.9736 5.75869L49.326 18.7667C50.4626 19.8716 51.022 20.9896 51.0044 22.1162C50.9868 23.2428 50.4978 24.2697 49.5419 25.2013C48.5419 26.1763 47.4626 26.6703 46.3084 26.6919C45.1542 26.7093 44.0088 26.1633 42.8722 25.0584L29.2159 11.7557C27.6652 10.2435 26.1674 9.17318 24.7269 8.54488C23.2863 7.91658 21.7709 7.81692 20.185 8.25023C18.5947 8.67921 16.8899 9.78415 15.0617 11.5607C12.5419 14.0176 11.3392 16.3228 11.4626 18.4764C11.5859 20.6299 12.837 22.8658 15.2115 25.1754L28.978 38.5907C30.1278 39.7086 30.6916 40.8265 30.674 41.9358C30.6564 43.0494 30.163 44.0764 29.1894 45.0253C28.2203 45.9699 27.1498 46.4639 25.9868 46.5029C24.8238 46.5419 23.6652 46.0003 22.5198 44.8823L9.1674 31.8743C6.9956 29.7598 5.42731 27.7579 4.46256 25.8686C3.4978 23.9794 3.13657 21.8432 3.38767 19.46C3.61234 17.4191 4.27753 15.4432 5.38767 13.528C6.49339 11.6127 8.0793 9.65416 10.1366 7.64793C12.5859 5.26039 14.9251 3.43182 17.1542 2.15788C19.3789 0.883949 21.533 0.177652 23.6123 0.0303266C25.696 -0.116999 27.7489 0.290313 29.7797 1.25226C31.8106 2.21421 33.8723 3.71347 35.9692 5.75869H35.9736Z",
734
+ fill: "url(#paint0_linear_13_4)"
735
+ }
736
+ ),
737
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
738
+ "path",
739
+ {
740
+ d: "M15.0264 58.2456L1.67842 45.2376C0.541857 44.1283 -0.0176143 43.0147 6.80917e-06 41.8881C0.017628 40.7615 0.506615 39.7346 1.46256 38.8029C2.46256 37.828 3.54186 37.334 4.69604 37.3123C5.85023 37.295 6.9956 37.8366 8.13217 38.9459L21.7841 52.2486C23.3392 53.7608 24.8326 54.8311 26.2731 55.4594C27.7137 56.0877 29.2291 56.183 30.8194 55.754C32.4097 55.3251 34.1145 54.2201 35.9427 52.4392C38.4626 49.9823 39.6652 47.6771 39.5419 45.5236C39.4185 43.37 38.1674 41.1341 35.793 38.8203L28.4582 31.7356C27.3084 30.6177 26.7445 29.4997 26.7621 28.3905C26.7797 27.2769 27.2731 26.2499 28.2467 25.301C29.2159 24.3563 30.2864 23.8624 31.4493 23.8234C32.6123 23.7844 33.7709 24.326 34.9163 25.444L41.8326 32.1213C44.0044 34.2358 45.5727 36.2377 46.5375 38.127C47.5022 40.0162 47.8634 42.1524 47.6123 44.5356C47.3877 46.5765 46.7225 48.5524 45.6123 50.4677C44.5066 52.3829 42.9207 54.3415 40.8634 56.3477C38.4141 58.7352 36.0749 60.5638 33.8458 61.8377C31.6167 63.1117 29.4626 63.8223 27.3789 63.9696C25.2952 64.117 23.2423 63.7096 21.2115 62.7477C19.1806 61.7857 17.1189 60.2865 15.022 58.2413L15.0264 58.2456Z",
741
+ fill: "url(#paint1_linear_13_4)"
742
+ }
743
+ ),
744
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
745
+ "path",
746
+ {
747
+ d: "M23.3524 24.6814C26.0603 24.6814 28.2555 22.5222 28.2555 19.8586C28.2555 17.1951 26.0603 15.0359 23.3524 15.0359C20.6445 15.0359 18.4493 17.1951 18.4493 19.8586C18.4493 22.5222 20.6445 24.6814 23.3524 24.6814Z",
748
+ fill: "url(#paint2_radial_13_4)"
749
+ }
750
+ )
751
+ ] }),
752
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)("defs", { children: [
753
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(
754
+ "linearGradient",
755
+ {
756
+ id: "paint0_linear_13_4",
757
+ x1: "47.1299",
758
+ y1: "13.3372",
759
+ x2: "5.9782",
760
+ y2: "31.9299",
761
+ gradientUnits: "userSpaceOnUse",
762
+ children: [
763
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("stop", { stopColor: "#201C1B" }),
764
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("stop", { offset: "0.36", stopColor: "#77390D" }),
765
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("stop", { offset: "0.67", stopColor: "#EA8101" }),
766
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("stop", { offset: "1", stopColor: "#F4B852" })
767
+ ]
768
+ }
769
+ ),
770
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(
771
+ "linearGradient",
772
+ {
773
+ id: "paint1_linear_13_4",
774
+ x1: "5.01376",
775
+ y1: "51.203",
776
+ x2: "52.8347",
777
+ y2: "36.7334",
778
+ gradientUnits: "userSpaceOnUse",
779
+ children: [
780
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("stop", { stopColor: "#1F1D1C" }),
781
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("stop", { offset: "0.37", stopColor: "#77390D" }),
782
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("stop", { offset: "0.67", stopColor: "#EA8101" }),
783
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("stop", { offset: "1", stopColor: "#F4FB52" })
784
+ ]
785
+ }
786
+ ),
787
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(
788
+ "radialGradient",
789
+ {
790
+ id: "paint2_radial_13_4",
791
+ cx: "0",
792
+ cy: "0",
793
+ r: "1",
794
+ gradientUnits: "userSpaceOnUse",
795
+ gradientTransform: "translate(23.3524 19.863) scale(4.90308 4.82275)",
796
+ children: [
797
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("stop", { stopColor: "#F4B852" }),
798
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("stop", { offset: "0.33", stopColor: "#EA8101" }),
799
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("stop", { offset: "0.64", stopColor: "#77390D" }),
800
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("stop", { offset: "1", stopColor: "#211C1D" })
801
+ ]
802
+ }
803
+ ),
804
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("clipPath", { id: "clip0_13_4", children: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("rect", { width: "51", height: "64", fill: "white" }) })
805
+ ] })
806
+ ]
807
+ }
808
+ );
809
+ }
810
+
811
+ // src/assets/icon/XverseIcon.tsx
812
+ var import_jsx_runtime38 = require("react/jsx-runtime");
813
+ function XverseIcon({
814
+ size = 57,
815
+ ...props
816
+ }) {
817
+ return /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("svg", { width: size, height: size, ...props, viewBox: "0 0 64 64", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [
818
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("defs", { children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("clipPath", { id: "clip0_10280_371492", children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("rect", { id: "svg_1", fill: "white", height: "57", width: "57" }) }) }),
819
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("g", { children: [
820
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("title", { children: "background" }),
821
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("rect", { fill: "none", id: "canvas_background", height: "66", width: "66", y: "-1", x: "-1" })
822
+ ] }),
823
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("g", { children: [
824
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("title", { children: "Layer 1" }),
825
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("rect", { id: "svg_5", height: "64", width: "64", rx: "8", strokeWidth: "0", stroke: "#000", fill: "#000000" }),
826
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("g", { stroke: "null", id: "svg_2", clipPath: "url(#clip0_10280_371492)", children: [
827
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
828
+ "path",
829
+ {
830
+ stroke: "null",
831
+ id: "svg_3",
832
+ fill: "white",
833
+ d: "m55.71197,55.048143l0,-8.673641c0,-0.343903 -0.136738,-0.671922 -0.380462,-0.915647l-36.905562,-36.905697c-0.243724,-0.243716 -0.571743,-0.380378 -0.915647,-0.380378l-8.673498,0c-0.428207,0 -0.776699,0.348492 -0.776699,0.776699l0,8.058523c0,0.343987 0.136662,0.671922 0.380378,0.915647l13.247168,13.247168c0.30289,0.302974 0.30289,0.794877 0,1.097852l-13.399773,13.39979c-0.145772,0.14573 -0.227773,0.343903 -0.227773,0.548884l0,8.830801c0,0.427946 0.348492,0.776724 0.776699,0.776724l14.493044,0c0.428198,0 0.776724,-0.348778 0.776724,-0.776724l0,-5.20242c0,-0.20498 0.081942,-0.403153 0.227756,-0.548884l7.188436,-7.18852c0.302974,-0.30289 0.794961,-0.30289 1.097852,0l13.33827,13.338438c0.243724,0.243724 0.571743,0.380462 0.915647,0.380462l8.058447,0c0.428282,0 0.77664,-0.348862 0.77664,-0.776724l0.002353,-0.002353z"
834
+ }
835
+ ),
836
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
837
+ "path",
838
+ {
839
+ stroke: "null",
840
+ id: "svg_4",
841
+ fill: "#EE7A30",
842
+ d: "m36.37884,19.659638l7.259032,0c0.430467,0 0.781262,0.350795 0.781262,0.781262l0,7.259032c0,0.697051 0.842782,1.045493 1.334768,0.551237l9.958152,-9.974036c0.145562,-0.145814 0.22784,-0.343987 0.22784,-0.551237l0,-8.735034c0,-0.430484 -0.348778,-0.781245 -0.781346,-0.781245l-8.864838,-0.011388c-0.20725,0 -0.405423,0.081992 -0.553506,0.227764l-9.914869,9.89896c-0.491987,0.491903 -0.143461,1.334684 0.551237,1.334684l0.002269,0z"
843
+ }
844
+ )
845
+ ] })
846
+ ] })
847
+ ] });
848
+ }
849
+
694
850
  // src/hooks/useLayout.tsx
695
851
  var useLayout_exports = {};
696
852
  __export(useLayout_exports, {
@@ -712,7 +868,7 @@ function useDownMd() {
712
868
  }
713
869
 
714
870
  // src/components/Modal/index.tsx
715
- var import_jsx_runtime36 = require("react/jsx-runtime");
871
+ var import_jsx_runtime39 = require("react/jsx-runtime");
716
872
  function Modal({
717
873
  children,
718
874
  isOpen,
@@ -720,21 +876,21 @@ function Modal({
720
876
  zIndex = 100,
721
877
  className = ""
722
878
  }) {
723
- return isOpen ? /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
879
+ return isOpen ? /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
724
880
  "div",
725
881
  {
726
882
  className: "matchid-overlay",
727
883
  style: {
728
884
  zIndex
729
885
  },
730
- children: /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)("div", { className: `matchid-modal ${className}`, style: {
886
+ children: /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)("div", { className: `matchid-modal ${className}`, style: {
731
887
  width
732
888
  }, children: [
733
- /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("div", { className: "matchid-modal-mobile-header" }),
889
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("div", { className: "matchid-modal-mobile-header" }),
734
890
  children
735
891
  ] })
736
892
  }
737
- ) : /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(import_jsx_runtime36.Fragment, {});
893
+ ) : /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(import_jsx_runtime39.Fragment, {});
738
894
  }
739
895
  function ModalWithHeader({
740
896
  children,
@@ -746,13 +902,13 @@ function ModalWithHeader({
746
902
  ...props
747
903
  }) {
748
904
  const isDownMd = useDownMd();
749
- return /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)(Modal, { ...props, children: [
750
- /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)("div", { className: `matchid-modal-header ${showBorder ? "matchid-modal-header-border" : ""}`, children: [
751
- /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)("div", { className: "matchid-modal-header-content", children: [
752
- onBack && /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(ArrowLeftIcon, { height: isDownMd ? 20 : 25, width: isDownMd ? 20 : 24, className: "matchid-modal-header-back", onClick: onBack }),
753
- /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("span", { className: "matchid-modal-header-title", children: title })
905
+ return /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(Modal, { ...props, children: [
906
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)("div", { className: `matchid-modal-header ${showBorder ? "matchid-modal-header-border" : ""}`, children: [
907
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)("div", { className: "matchid-modal-header-content", children: [
908
+ onBack && /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(ArrowLeftIcon, { height: isDownMd ? 20 : 25, width: isDownMd ? 20 : 24, className: "matchid-modal-header-back", onClick: onBack }),
909
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("span", { className: "matchid-modal-header-title", children: title })
754
910
  ] }),
755
- onClose && /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(CloseRoundIcon, { size: isDownMd ? 24 : 30, className: "matchid-modal-header-close", onClick: onClose })
911
+ onClose && /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(CloseRoundIcon, { size: isDownMd ? 24 : 30, className: "matchid-modal-header-close", onClick: onClose })
756
912
  ] }),
757
913
  children
758
914
  ] });
@@ -763,7 +919,7 @@ var import_react6 = require("react");
763
919
 
764
920
  // src/components/Input/index.tsx
765
921
  var import_react2 = require("react");
766
- var import_jsx_runtime37 = require("react/jsx-runtime");
922
+ var import_jsx_runtime40 = require("react/jsx-runtime");
767
923
  function Input({
768
924
  onChange,
769
925
  type,
@@ -773,17 +929,17 @@ function Input({
773
929
  }) {
774
930
  const [inputType, setInputType] = (0, import_react2.useState)(type);
775
931
  const isDownMd = useDownMd();
776
- return /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(
932
+ return /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(
777
933
  "div",
778
934
  {
779
935
  className: `matchid-input-box ${props.value && props.value.length > 0 ? "matchid-input-has-content" : ""} ${className}`,
780
936
  children: [
781
- /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("input", { type: inputType, onChange, ...props, className: "matchid-input-field" }),
782
- props.value && props.value.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("div", { className: "matchid-input-delete-icon", onClick: (e) => {
937
+ /* @__PURE__ */ (0, import_jsx_runtime40.jsx)("input", { type: inputType, onChange, ...props, className: "matchid-input-field" }),
938
+ props.value && props.value.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime40.jsx)("div", { className: "matchid-input-delete-icon", onClick: (e) => {
783
939
  if (onChange) {
784
940
  onChange({ target: { value: "" } });
785
941
  }
786
- }, children: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
942
+ }, children: /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
787
943
  DeleteRoundIcon,
788
944
  {
789
945
  height: isDownMd ? 16 : 21,
@@ -791,9 +947,9 @@ function Input({
791
947
  color: "var(--matchid-input-delete-icon-color)"
792
948
  }
793
949
  ) }),
794
- type === "password" && /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("div", { className: "matchid-input-eye-icon", onClick: () => {
950
+ type === "password" && /* @__PURE__ */ (0, import_jsx_runtime40.jsx)("div", { className: "matchid-input-eye-icon", onClick: () => {
795
951
  setInputType(inputType === "password" ? "text" : "password");
796
- }, children: inputType === "password" ? /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(CloseEyeIcon, { size: isDownMd ? 16 : 20 }) : /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(OpenEyeIcon, { size: isDownMd ? 16 : 20 }) }),
952
+ }, children: inputType === "password" ? /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(CloseEyeIcon, { size: isDownMd ? 16 : 20 }) : /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(OpenEyeIcon, { size: isDownMd ? 16 : 20 }) }),
797
953
  after
798
954
  ]
799
955
  }
@@ -801,7 +957,7 @@ function Input({
801
957
  }
802
958
 
803
959
  // src/components/Field/index.tsx
804
- var import_jsx_runtime38 = require("react/jsx-runtime");
960
+ var import_jsx_runtime41 = require("react/jsx-runtime");
805
961
  function Field({
806
962
  label,
807
963
  children,
@@ -809,18 +965,18 @@ function Field({
809
965
  required,
810
966
  className = ""
811
967
  }) {
812
- return /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("div", { className: `matchid-field-box ${className}`, children: [
813
- /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("div", { className: "matchid-field-label", children: [
814
- required && /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("span", { className: "matchid-field-required", children: "*" }),
968
+ return /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)("div", { className: `matchid-field-box ${className}`, children: [
969
+ /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)("div", { className: "matchid-field-label", children: [
970
+ required && /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("span", { className: "matchid-field-required", children: "*" }),
815
971
  label
816
972
  ] }),
817
973
  children,
818
- error && /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("div", { className: "matchid-field-error", children: error })
974
+ error && /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("div", { className: "matchid-field-error", children: error })
819
975
  ] });
820
976
  }
821
977
 
822
978
  // src/components/Button/index.tsx
823
- var import_jsx_runtime39 = require("react/jsx-runtime");
979
+ var import_jsx_runtime42 = require("react/jsx-runtime");
824
980
  function Button({
825
981
  size = "df",
826
982
  disabled = false,
@@ -839,7 +995,7 @@ function Button({
839
995
  onClick && onClick();
840
996
  }
841
997
  };
842
- return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
998
+ return /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
843
999
  "button",
844
1000
  {
845
1001
  type,
@@ -849,7 +1005,7 @@ function Button({
849
1005
  ...style
850
1006
  },
851
1007
  onClick: onAction,
852
- children: loading ? /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(LoadingIcon_default, { className: "matchid-btn-loading-icon", color: "var(--matchid-btn-loading-color)" }) : children
1008
+ children: loading ? /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(LoadingIcon_default, { className: "matchid-btn-loading-icon", color: "var(--matchid-btn-loading-color)" }) : children
853
1009
  }
854
1010
  );
855
1011
  }
@@ -1238,6 +1394,24 @@ var useSOLModalStore = (0, import_zustand2.create)((set) => ({
1238
1394
  open: (type) => set({ isOpen: true, type }),
1239
1395
  close: () => set({ isOpen: false })
1240
1396
  }));
1397
+ var useTronModalStore = (0, import_zustand2.create)((set) => ({
1398
+ isOpen: false,
1399
+ type: "",
1400
+ open: (type) => set({ isOpen: true, type }),
1401
+ close: () => set({ isOpen: false })
1402
+ }));
1403
+ var useBTCModalStore = (0, import_zustand2.create)((set) => ({
1404
+ isOpen: false,
1405
+ type: "",
1406
+ open: (type) => set({ isOpen: true, type }),
1407
+ close: () => set({ isOpen: false })
1408
+ }));
1409
+ var useCEXBindModalStore = (0, import_zustand2.create)((set) => ({
1410
+ type: "",
1411
+ isOpen: false,
1412
+ open: (type) => set({ isOpen: true, type }),
1413
+ close: () => set({ isOpen: false })
1414
+ }));
1241
1415
 
1242
1416
  // src/hooks/useUserInfo.tsx
1243
1417
  function useUserInfo() {
@@ -1254,6 +1428,9 @@ function useUserInfo() {
1254
1428
  } = useLocalStore_default();
1255
1429
  const { events, login } = useMatch();
1256
1430
  const { open: SOLOpen } = useSOLModalStore();
1431
+ const { open: TronOpen } = useTronModalStore();
1432
+ const { open: BTCOpen } = useBTCModalStore();
1433
+ const { open: CEXBindOpen } = useCEXBindModalStore();
1257
1434
  const isLogin = (0, import_react3.useMemo)(() => !!token, [token]);
1258
1435
  const logout = async () => {
1259
1436
  try {
@@ -1298,6 +1475,10 @@ function useUserInfo() {
1298
1475
  return window.open(`${endpoints.auth}login/wallet?appid=${appid}`);
1299
1476
  case "sol":
1300
1477
  return SOLOpen("login");
1478
+ case "tron":
1479
+ return TronOpen("login");
1480
+ case "btc":
1481
+ return BTCOpen("login");
1301
1482
  case "telegram":
1302
1483
  return await loginByTelegram();
1303
1484
  case "youtube":
@@ -1385,6 +1566,10 @@ function useUserInfo() {
1385
1566
  return window.open(`${endpoints.auth}bind/wallet?appid=${appid}&st=` + encodeURIComponent(encodeBase64(token)));
1386
1567
  case "sol":
1387
1568
  return SOLOpen("bind");
1569
+ case "tron":
1570
+ return TronOpen("bind");
1571
+ case "btc":
1572
+ return BTCOpen("bind");
1388
1573
  case "telegram":
1389
1574
  return await bindTelegram();
1390
1575
  case "twitter":
@@ -1405,6 +1590,9 @@ function useUserInfo() {
1405
1590
  throw new Error("unsupported method");
1406
1591
  }
1407
1592
  };
1593
+ const bindCex = (type) => {
1594
+ return CEXBindOpen(type);
1595
+ };
1408
1596
  return {
1409
1597
  loginByMethod,
1410
1598
  loginByTelegram,
@@ -1412,6 +1600,8 @@ function useUserInfo() {
1412
1600
  loginByGoogle,
1413
1601
  loginByWallet,
1414
1602
  loginByEmail,
1603
+ bindWallet,
1604
+ bindTelegram,
1415
1605
  token,
1416
1606
  mid,
1417
1607
  did,
@@ -1421,8 +1611,7 @@ function useUserInfo() {
1421
1611
  getLoginEmailCode,
1422
1612
  refreshOverview,
1423
1613
  overview,
1424
- bindWallet,
1425
- bindTelegram,
1614
+ bindCex,
1426
1615
  username: overview?.username || "",
1427
1616
  auth,
1428
1617
  login: loginMethod,
@@ -1527,7 +1716,7 @@ function useWallet() {
1527
1716
  }
1528
1717
  });
1529
1718
  };
1530
- const signMessage = async (message, type) => {
1719
+ const signMessage2 = async (message, type) => {
1531
1720
  const getSign = async (resolve, reject) => {
1532
1721
  try {
1533
1722
  const recoverRes = await window.waitMatchUntilWalletMessage("signMessage", {
@@ -1569,7 +1758,7 @@ function useWallet() {
1569
1758
  const evmAccount = address ? (0, import_accounts.toAccount)({
1570
1759
  address,
1571
1760
  async signMessage({ message }) {
1572
- return await signMessage(message);
1761
+ return await signMessage2(message);
1573
1762
  },
1574
1763
  async signTransaction(transaction, options) {
1575
1764
  const { account, ...restTransaction } = transaction;
@@ -1588,7 +1777,7 @@ function useWallet() {
1588
1777
  recoveryWallet,
1589
1778
  initWallet,
1590
1779
  generateWallet,
1591
- signMessage,
1780
+ signMessage: signMessage2,
1592
1781
  signTransaction,
1593
1782
  isRecovered,
1594
1783
  recoverAfter
@@ -1620,7 +1809,7 @@ function useCopyClipboard(timeout = 500) {
1620
1809
 
1621
1810
  // src/components/PasswordModal/index.tsx
1622
1811
  var import_react_intl = require("react-intl");
1623
- var import_jsx_runtime40 = require("react/jsx-runtime");
1812
+ var import_jsx_runtime43 = require("react/jsx-runtime");
1624
1813
  function PasswordModal({
1625
1814
  title,
1626
1815
  isOpen,
@@ -1678,15 +1867,15 @@ function PasswordModal({
1678
1867
  setIsSubmitting(false);
1679
1868
  }
1680
1869
  };
1681
- return /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(ModalWithHeader, { isOpen: isOpen && isLogin, ...props, title: title || intl.formatMessage({
1870
+ return /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(ModalWithHeader, { isOpen: isOpen && isLogin, ...props, title: title || intl.formatMessage({
1682
1871
  id: "passwordTitle"
1683
- }), children: /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)("div", { className: "matchid-password-box", children: [
1684
- /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)("div", { className: "matchid-password-header", children: [
1685
- /* @__PURE__ */ (0, import_jsx_runtime40.jsx)("div", { className: "matchid-password-header-icon", children: /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(PasswordRoundIcon, {}) }),
1686
- /* @__PURE__ */ (0, import_jsx_runtime40.jsx)("div", { className: "matchid-password-header-content", children: /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_react_intl.FormattedMessage, { id: "passwordTips" }) })
1872
+ }), children: /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)("div", { className: "matchid-password-box", children: [
1873
+ /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)("div", { className: "matchid-password-header", children: [
1874
+ /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("div", { className: "matchid-password-header-icon", children: /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(PasswordRoundIcon, {}) }),
1875
+ /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("div", { className: "matchid-password-header-content", children: /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(import_react_intl.FormattedMessage, { id: "passwordTips" }) })
1687
1876
  ] }),
1688
- /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)("div", { className: "matchid-password-content", children: [
1689
- /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(Field, { label: intl.formatMessage({ id: "password" }), error: password.length > 0 && passwordError, children: /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
1877
+ /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)("div", { className: "matchid-password-content", children: [
1878
+ /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(Field, { label: intl.formatMessage({ id: "password" }), error: password.length > 0 && passwordError, children: /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
1690
1879
  Input,
1691
1880
  {
1692
1881
  placeholder: intl.formatMessage({ id: "passwordPlaceholder" }),
@@ -1696,9 +1885,9 @@ function PasswordModal({
1696
1885
  value: password
1697
1886
  }
1698
1887
  ) }),
1699
- /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(Field, { label: intl.formatMessage({
1888
+ /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(Field, { label: intl.formatMessage({
1700
1889
  id: "rePassword"
1701
- }), error: rePassword.length > 0 ? rePasswordError || error : error, children: /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
1890
+ }), error: rePassword.length > 0 ? rePasswordError || error : error, children: /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
1702
1891
  Input,
1703
1892
  {
1704
1893
  placeholder: intl.formatMessage({
@@ -1711,7 +1900,7 @@ function PasswordModal({
1711
1900
  }
1712
1901
  ) })
1713
1902
  ] }),
1714
- /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
1903
+ /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
1715
1904
  Button,
1716
1905
  {
1717
1906
  disabled: password.length == 0 || !!passwordError || !!rePasswordError,
@@ -1720,7 +1909,7 @@ function PasswordModal({
1720
1909
  size: "lg",
1721
1910
  onClick: onContinue,
1722
1911
  loading: isSubmitting,
1723
- children: /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_react_intl.FormattedMessage, { id: "continue" })
1912
+ children: /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(import_react_intl.FormattedMessage, { id: "continue" })
1724
1913
  }
1725
1914
  )
1726
1915
  ] }) });
@@ -1729,7 +1918,7 @@ function PasswordModal({
1729
1918
  // src/components/RecoveryModal/index.tsx
1730
1919
  var import_react7 = require("react");
1731
1920
  var import_react_intl2 = require("react-intl");
1732
- var import_jsx_runtime41 = require("react/jsx-runtime");
1921
+ var import_jsx_runtime44 = require("react/jsx-runtime");
1733
1922
  function RecoveryModal({
1734
1923
  title,
1735
1924
  isOpen,
@@ -1775,14 +1964,14 @@ function RecoveryModal({
1775
1964
  setIsSubmitting(false);
1776
1965
  }
1777
1966
  };
1778
- return /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(ModalWithHeader, { isOpen: isOpen && isLogin, ...props, title: title || intl.formatMessage({
1967
+ return /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(ModalWithHeader, { isOpen: isOpen && isLogin, ...props, title: title || intl.formatMessage({
1779
1968
  id: "recoverTitle"
1780
- }), children: /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)("div", { className: "matchid-password-box", children: [
1781
- /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)("div", { className: "matchid-password-header", children: [
1782
- /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("div", { className: "matchid-password-header-icon", children: /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(PasswordRoundIcon, {}) }),
1783
- /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("div", { className: "matchid-password-header-content", children: /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(import_react_intl2.FormattedMessage, { id: "recoverTips" }) })
1969
+ }), children: /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)("div", { className: "matchid-password-box", children: [
1970
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)("div", { className: "matchid-password-header", children: [
1971
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsx)("div", { className: "matchid-password-header-icon", children: /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(PasswordRoundIcon, {}) }),
1972
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsx)("div", { className: "matchid-password-header-content", children: /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(import_react_intl2.FormattedMessage, { id: "recoverTips" }) })
1784
1973
  ] }),
1785
- /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("div", { className: "matchid-password-content", children: /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Field, { label: intl.formatMessage({ id: "password" }), error: password.length > 0 ? passwordError || error : error, children: /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
1974
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsx)("div", { className: "matchid-password-content", children: /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(Field, { label: intl.formatMessage({ id: "password" }), error: password.length > 0 ? passwordError || error : error, children: /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
1786
1975
  Input,
1787
1976
  {
1788
1977
  placeholder: intl.formatMessage({ id: "passwordPlaceholder" }),
@@ -1792,7 +1981,7 @@ function RecoveryModal({
1792
1981
  value: password
1793
1982
  }
1794
1983
  ) }) }),
1795
- /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
1984
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
1796
1985
  Button,
1797
1986
  {
1798
1987
  disabled: password.length == 0 || !!passwordError,
@@ -1801,18 +1990,16 @@ function RecoveryModal({
1801
1990
  size: "lg",
1802
1991
  onClick: onContinue,
1803
1992
  loading: isSubmitting,
1804
- children: /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(import_react_intl2.FormattedMessage, { id: "continue" })
1993
+ children: /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(import_react_intl2.FormattedMessage, { id: "continue" })
1805
1994
  }
1806
1995
  )
1807
1996
  ] }) });
1808
1997
  }
1809
1998
 
1810
- // src/components/SOLModal/index.tsx
1811
- var import_react16 = __toESM(require("react"));
1812
-
1813
1999
  // src/components/index.tsx
1814
2000
  var components_exports = {};
1815
2001
  __export(components_exports, {
2002
+ BTCModal: () => BTCModal,
1816
2003
  Button: () => Button,
1817
2004
  EmailModal: () => EmailModal,
1818
2005
  Field: () => Field,
@@ -1826,6 +2013,7 @@ __export(components_exports, {
1826
2013
  PasswordModal: () => PasswordModal,
1827
2014
  Popover: () => Popover,
1828
2015
  SOLModal: () => SOLModal,
2016
+ TronModal: () => TronModal,
1829
2017
  UsernameModal: () => UsernameModal
1830
2018
  });
1831
2019
 
@@ -1835,7 +2023,7 @@ var import_react10 = require("react");
1835
2023
  // src/components/EmailModal/StepEmail.tsx
1836
2024
  var import_react8 = require("react");
1837
2025
  var import_react_intl3 = require("react-intl");
1838
- var import_jsx_runtime42 = require("react/jsx-runtime");
2026
+ var import_jsx_runtime45 = require("react/jsx-runtime");
1839
2027
  function StepEmail(props) {
1840
2028
  const intl = (0, import_react_intl3.useIntl)();
1841
2029
  const [emailVal, setEmailVal] = (0, import_react8.useState)("");
@@ -1850,10 +2038,10 @@ function StepEmail(props) {
1850
2038
  const onContinue = async () => {
1851
2039
  props.onContinue(emailVal);
1852
2040
  };
1853
- return /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)("div", { className: "matchid-email-email-box", children: [
1854
- /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Field, { label: intl.formatMessage({
2041
+ return /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)("div", { className: "matchid-email-email-box", children: [
2042
+ /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(Field, { label: intl.formatMessage({
1855
2043
  id: "emailAddress"
1856
- }), children: /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
2044
+ }), children: /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(
1857
2045
  Input,
1858
2046
  {
1859
2047
  placeholder: intl.formatMessage({
@@ -1863,9 +2051,9 @@ function StepEmail(props) {
1863
2051
  value: emailVal
1864
2052
  }
1865
2053
  ) }),
1866
- /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Button, { disabled: !canContinue, style: {
2054
+ /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(Button, { disabled: !canContinue, style: {
1867
2055
  marginTop: "64px"
1868
- }, onClick: onContinue, size: "lg", block: true, highlight: true, children: /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(import_react_intl3.FormattedMessage, { id: "continue" }) })
2056
+ }, onClick: onContinue, size: "lg", block: true, highlight: true, children: /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_react_intl3.FormattedMessage, { id: "continue" }) })
1869
2057
  ] });
1870
2058
  }
1871
2059
 
@@ -1878,7 +2066,7 @@ var EMAIL_CODE_LENGTH = 6;
1878
2066
 
1879
2067
  // src/components/EmailModal/StepVerify.tsx
1880
2068
  var import_react_intl4 = require("react-intl");
1881
- var import_jsx_runtime43 = require("react/jsx-runtime");
2069
+ var import_jsx_runtime46 = require("react/jsx-runtime");
1882
2070
  function StepVerify(props) {
1883
2071
  const intl = (0, import_react_intl4.useIntl)();
1884
2072
  const { getLoginEmailCode, loginByEmail } = useUserInfo();
@@ -1955,17 +2143,17 @@ function StepVerify(props) {
1955
2143
  setSubmitting(false);
1956
2144
  }
1957
2145
  };
1958
- return /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)("div", { className: "matchid-email-verify-box", children: [
1959
- /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)("div", { className: "matchid-email-verify-header", children: [
1960
- /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("div", { className: "matchid-email-verify-header-icon", children: /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(EmailLineIcon, { size: isDownMd ? 19 : 24 }) }),
1961
- /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)("div", { className: "matchid-email-verify-header-content", children: [
1962
- /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("div", { className: "matchid-email-verify-header-value", children: props.email }),
1963
- /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("div", { className: "matchid-email-verify-header-tips", children: /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(import_react_intl4.FormattedMessage, { id: "sendEmailTips" }) })
2146
+ return /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)("div", { className: "matchid-email-verify-box", children: [
2147
+ /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)("div", { className: "matchid-email-verify-header", children: [
2148
+ /* @__PURE__ */ (0, import_jsx_runtime46.jsx)("div", { className: "matchid-email-verify-header-icon", children: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(EmailLineIcon, { size: isDownMd ? 19 : 24 }) }),
2149
+ /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)("div", { className: "matchid-email-verify-header-content", children: [
2150
+ /* @__PURE__ */ (0, import_jsx_runtime46.jsx)("div", { className: "matchid-email-verify-header-value", children: props.email }),
2151
+ /* @__PURE__ */ (0, import_jsx_runtime46.jsx)("div", { className: "matchid-email-verify-header-tips", children: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(import_react_intl4.FormattedMessage, { id: "sendEmailTips" }) })
1964
2152
  ] })
1965
2153
  ] }),
1966
- /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(Field, { label: intl.formatMessage({
2154
+ /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(Field, { label: intl.formatMessage({
1967
2155
  id: "verificationCode"
1968
- }), error, children: /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
2156
+ }), error, children: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
1969
2157
  Input,
1970
2158
  {
1971
2159
  placeholder: intl.formatMessage({
@@ -1975,7 +2163,7 @@ function StepVerify(props) {
1975
2163
  maxLength: codeLength,
1976
2164
  onChange: (e) => setCode(e.target.value),
1977
2165
  value: code,
1978
- after: /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
2166
+ after: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
1979
2167
  Button,
1980
2168
  {
1981
2169
  highlight: true,
@@ -1994,13 +2182,13 @@ function StepVerify(props) {
1994
2182
  )
1995
2183
  }
1996
2184
  ) }),
1997
- /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(Button, { disabled: !canContinue, highlight: true, block: true, size: "lg", onClick: onContinue, children: /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(import_react_intl4.FormattedMessage, { id: "continue" }) })
2185
+ /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(Button, { disabled: !canContinue, highlight: true, block: true, size: "lg", onClick: onContinue, children: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(import_react_intl4.FormattedMessage, { id: "continue" }) })
1998
2186
  ] });
1999
2187
  }
2000
2188
 
2001
2189
  // src/components/EmailModal/index.tsx
2002
2190
  var import_react_intl5 = require("react-intl");
2003
- var import_jsx_runtime44 = require("react/jsx-runtime");
2191
+ var import_jsx_runtime47 = require("react/jsx-runtime");
2004
2192
  function EmailModal({
2005
2193
  isOpen = false,
2006
2194
  width = 480,
@@ -2017,7 +2205,7 @@ function EmailModal({
2017
2205
  setEmailVal("");
2018
2206
  }
2019
2207
  }, [isOpen]);
2020
- return /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
2208
+ return /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
2021
2209
  ModalWithHeader,
2022
2210
  {
2023
2211
  isOpen,
@@ -2027,17 +2215,17 @@ function EmailModal({
2027
2215
  id: "email"
2028
2216
  }),
2029
2217
  onBack: step == "verify" ? () => setStep("input") : onBack,
2030
- children: step === "input" ? /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(StepEmail, { email: emailVal, onContinue: (email) => {
2218
+ children: step === "input" ? /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(StepEmail, { email: emailVal, onContinue: (email) => {
2031
2219
  setEmailVal(email);
2032
2220
  setStep("verify");
2033
- } }) : /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(StepVerify, { email: emailVal, onSuccess: onLogin })
2221
+ } }) : /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(StepVerify, { email: emailVal, onSuccess: onLogin })
2034
2222
  }
2035
2223
  );
2036
2224
  }
2037
2225
 
2038
2226
  // src/components/Popover/index.tsx
2039
2227
  var import_react11 = require("react");
2040
- var import_jsx_runtime45 = require("react/jsx-runtime");
2228
+ var import_jsx_runtime48 = require("react/jsx-runtime");
2041
2229
  function Popover({
2042
2230
  children,
2043
2231
  content,
@@ -2047,7 +2235,7 @@ function Popover({
2047
2235
  gap = "20px"
2048
2236
  }) {
2049
2237
  const [active, setActive] = (0, import_react11.useState)(false);
2050
- return /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)(
2238
+ return /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)(
2051
2239
  "div",
2052
2240
  {
2053
2241
  onClick: () => {
@@ -2058,9 +2246,9 @@ function Popover({
2058
2246
  className: `matchid-popover-box matchid-popover-${position} matchid-popover-${type} ${className} ${type == "click" && active ? "matchid-popover-click-active" : ""}`,
2059
2247
  children: [
2060
2248
  children,
2061
- /* @__PURE__ */ (0, import_jsx_runtime45.jsx)("div", { style: {
2249
+ /* @__PURE__ */ (0, import_jsx_runtime48.jsx)("div", { style: {
2062
2250
  paddingTop: gap
2063
- }, className: `matchid-popover-area`, children: /* @__PURE__ */ (0, import_jsx_runtime45.jsx)("div", { className: `matchid-popover-content`, children: content }) })
2251
+ }, className: `matchid-popover-area`, children: /* @__PURE__ */ (0, import_jsx_runtime48.jsx)("div", { className: `matchid-popover-content`, children: content }) })
2064
2252
  ]
2065
2253
  }
2066
2254
  );
@@ -2069,28 +2257,29 @@ function Popover({
2069
2257
  // src/components/LoginBox/index.tsx
2070
2258
  var import_react12 = require("react");
2071
2259
  var import_react_intl6 = require("react-intl");
2072
- var import_jsx_runtime46 = require("react/jsx-runtime");
2260
+ var import_jsx_runtime49 = require("react/jsx-runtime");
2073
2261
  var RecommendItem = ({
2074
2262
  icon,
2075
2263
  name,
2076
2264
  onClick,
2077
2265
  showChildren = false,
2078
- children
2266
+ children,
2267
+ footer
2079
2268
  }) => {
2080
- return /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)("div", { className: "matchid-login-recommend-method", children: [
2081
- /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)("div", { className: "matchid-login-recommend-method-item", onClick, children: [
2082
- /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)("div", { className: "matchid-login-recommend-method-content", children: [
2083
- /* @__PURE__ */ (0, import_jsx_runtime46.jsx)("div", { className: "matchid-login-recommend-method-icon", children: icon }),
2084
- /* @__PURE__ */ (0, import_jsx_runtime46.jsx)("span", { className: "matchid-login-recommend-method-name", children: name })
2269
+ return /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)("div", { className: "matchid-login-recommend-method", children: [
2270
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)("div", { className: "matchid-login-recommend-method-item", onClick, children: [
2271
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)("div", { className: "matchid-login-recommend-method-content", children: [
2272
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("div", { className: "matchid-login-recommend-method-icon", children: icon }),
2273
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("span", { className: "matchid-login-recommend-method-name", children: name })
2085
2274
  ] }),
2086
- children ? /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
2275
+ footer ? footer : children ? /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
2087
2276
  ArrowDownIcon,
2088
2277
  {
2089
2278
  className: `matchid-login-recommend-method-arrow ${showChildren ? "matchid-login-recommend-method-arrow-active" : ""}`,
2090
2279
  size: 20,
2091
2280
  color: "var(--matchid-arrow-color)"
2092
2281
  }
2093
- ) : /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
2282
+ ) : /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
2094
2283
  ArrowRightIcon,
2095
2284
  {
2096
2285
  className: "matchid-login-recommend-method-arrow",
@@ -2099,7 +2288,7 @@ var RecommendItem = ({
2099
2288
  }
2100
2289
  )
2101
2290
  ] }),
2102
- children && /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
2291
+ children && /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
2103
2292
  "div",
2104
2293
  {
2105
2294
  className: `matchid-login-recommend-method-popover ${showChildren ? "matchid-login-recommend-method-popover-active" : ""}`,
@@ -2128,103 +2317,103 @@ function LoginBox({
2128
2317
  const isDownMd = useDownMd();
2129
2318
  const methodMap = {
2130
2319
  wallet: {
2131
- icon: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(WalletIcon, { size: isDownMd ? 36 : 40 }),
2320
+ icon: /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(WalletIcon, { size: isDownMd ? 36 : 40 }),
2132
2321
  name: intl.formatMessage({ id: "wallet" }),
2133
2322
  onClick: () => setShowWallet(!showWallet),
2134
2323
  type: "wallet"
2135
2324
  },
2136
2325
  email: {
2137
- icon: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(EmailIcon, { size: isDownMd ? 36 : 40 }),
2326
+ icon: /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(EmailIcon, { size: isDownMd ? 36 : 40 }),
2138
2327
  name: intl.formatMessage({ id: "email" }),
2139
2328
  onClick: () => {
2140
2329
  setEmailOpen(true);
2141
2330
  }
2142
2331
  },
2143
2332
  google: {
2144
- icon: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(GoogleIcon, { size: isDownMd ? 36 : 40 }),
2333
+ icon: /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(GoogleIcon, { size: isDownMd ? 36 : 40 }),
2145
2334
  name: "Google",
2146
2335
  onClick: () => login("google")
2147
2336
  },
2148
2337
  twitter: {
2149
- icon: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(XIcon, { size: isDownMd ? 36 : 40 }),
2338
+ icon: /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(XIcon, { size: isDownMd ? 36 : 40 }),
2150
2339
  name: "X",
2151
2340
  onClick: () => login("twitter")
2152
2341
  },
2153
2342
  telegram: {
2154
- icon: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(TelegramIcon, { size: isDownMd ? 36 : 40 }),
2343
+ icon: /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(TelegramIcon, { size: isDownMd ? 36 : 40 }),
2155
2344
  name: "Telegram",
2156
2345
  onClick: () => login("telegram")
2157
2346
  },
2158
2347
  github: {
2159
- icon: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(GithubIcon, { size: isDownMd ? 36 : 40 }),
2348
+ icon: /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(GithubIcon, { size: isDownMd ? 36 : 40 }),
2160
2349
  name: "Github",
2161
2350
  onClick: () => login("github")
2162
2351
  },
2163
2352
  discord: {
2164
- icon: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(DiscordIcon, { size: isDownMd ? 36 : 40 }),
2353
+ icon: /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(DiscordIcon, { size: isDownMd ? 36 : 40 }),
2165
2354
  name: "Discord",
2166
2355
  onClick: () => login("discord")
2167
2356
  },
2168
2357
  linkedin: {
2169
- icon: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(LinkedinIcon, { size: isDownMd ? 36 : 40 }),
2358
+ icon: /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(LinkedinIcon, { size: isDownMd ? 36 : 40 }),
2170
2359
  name: "LinkedIn",
2171
2360
  onClick: () => login("linkedin")
2172
2361
  },
2173
2362
  facebook: {
2174
- icon: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(FacebookIcon, { size: isDownMd ? 36 : 40 }),
2363
+ icon: /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(FacebookIcon, { size: isDownMd ? 36 : 40 }),
2175
2364
  name: "Facebook",
2176
2365
  onClick: () => login("facebook")
2177
2366
  },
2178
2367
  youtube: {
2179
- icon: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(YoutubeIcon, { size: isDownMd ? 36 : 40 }),
2368
+ icon: /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(YoutubeIcon, { size: isDownMd ? 36 : 40 }),
2180
2369
  name: "Youtube",
2181
2370
  onClick: () => login("youtube")
2182
2371
  }
2183
2372
  };
2184
2373
  const walletMap = {
2185
2374
  evm: {
2186
- icon: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(EVMDarkIcon, { size: isDownMd ? 36 : 40 }),
2187
- activeIcon: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(EVMLightIcon, { size: isDownMd ? 36 : 40 }),
2375
+ icon: /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(EVMDarkIcon, { size: isDownMd ? 36 : 40 }),
2376
+ activeIcon: /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(EVMLightIcon, { size: isDownMd ? 36 : 40 }),
2188
2377
  name: "EVM",
2189
2378
  onClick: () => login("evm")
2190
2379
  },
2191
2380
  sol: {
2192
- icon: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(SOLDarkIcon, { size: isDownMd ? 36 : 40 }),
2193
- activeIcon: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(SOLLightIcon, { size: isDownMd ? 36 : 40 }),
2381
+ icon: /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(SOLDarkIcon, { size: isDownMd ? 36 : 40 }),
2382
+ activeIcon: /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(SOLLightIcon, { size: isDownMd ? 36 : 40 }),
2194
2383
  name: "SOL",
2195
2384
  onClick: () => login("sol")
2196
2385
  }
2197
2386
  };
2198
- return /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)(import_jsx_runtime46.Fragment, { children: [
2199
- (!inModal || !emailOpen) && /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)("div", { className: "matchid-login-box", children: [
2200
- /* @__PURE__ */ (0, import_jsx_runtime46.jsx)("div", { className: "matchid-login-recommend-list", children: recommendMethods.map((m) => {
2201
- return /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
2387
+ return /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(import_jsx_runtime49.Fragment, { children: [
2388
+ (!inModal || !emailOpen) && /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)("div", { className: "matchid-login-box", children: [
2389
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("div", { className: "matchid-login-recommend-list", children: recommendMethods.map((m) => {
2390
+ return /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
2202
2391
  RecommendItem,
2203
2392
  {
2204
2393
  icon: methodMap[m]?.icon,
2205
2394
  name: methodMap[m]?.name,
2206
2395
  onClick: methodMap[m]?.onClick,
2207
2396
  showChildren: m == "wallet" && showWallet,
2208
- children: m == "wallet" && /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)(import_jsx_runtime46.Fragment, { children: [
2209
- /* @__PURE__ */ (0, import_jsx_runtime46.jsx)("div", { className: "matchid-login-recommend-wallet-divider" }),
2210
- /* @__PURE__ */ (0, import_jsx_runtime46.jsx)("div", { className: "matchid-login-recommend-wallet-list", children: walletMethods.map((n) => {
2397
+ children: m == "wallet" && /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(import_jsx_runtime49.Fragment, { children: [
2398
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("div", { className: "matchid-login-recommend-wallet-divider" }),
2399
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("div", { className: "matchid-login-recommend-wallet-list", children: walletMethods.map((n) => {
2211
2400
  const m2 = walletMap[n];
2212
- return /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)(
2401
+ return /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(
2213
2402
  "div",
2214
2403
  {
2215
2404
  className: "matchid-login-recommend-wallet-item",
2216
2405
  onClick: m2.onClick,
2217
2406
  children: [
2218
- /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)("div", { className: "matchid-login-recommend-wallet-item-content", children: [
2219
- /* @__PURE__ */ (0, import_jsx_runtime46.jsx)("div", { className: "matchid-login-recommend-wallet-item-icon", children: m2.icon }),
2220
- /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
2407
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)("div", { className: "matchid-login-recommend-wallet-item-content", children: [
2408
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("div", { className: "matchid-login-recommend-wallet-item-icon", children: m2.icon }),
2409
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
2221
2410
  "div",
2222
2411
  {
2223
2412
  className: "matchid-login-recommend-wallet-item-hover-icon",
2224
2413
  children: m2.activeIcon
2225
2414
  }
2226
2415
  ),
2227
- /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
2416
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
2228
2417
  "span",
2229
2418
  {
2230
2419
  className: "matchid-login-recommend-wallet-item-name",
@@ -2232,7 +2421,7 @@ function LoginBox({
2232
2421
  }
2233
2422
  )
2234
2423
  ] }),
2235
- /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
2424
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
2236
2425
  ArrowRightIcon,
2237
2426
  {
2238
2427
  className: "matchid-login-recommend-wallet-item-arrow",
@@ -2250,10 +2439,10 @@ function LoginBox({
2250
2439
  m
2251
2440
  );
2252
2441
  }) }),
2253
- methods.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)("div", { className: "matchid-login-other", children: [
2254
- /* @__PURE__ */ (0, import_jsx_runtime46.jsx)("div", { className: "matchid-login-other-text", children: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(import_react_intl6.FormattedMessage, { id: "otherLoginMethods" }) }),
2255
- /* @__PURE__ */ (0, import_jsx_runtime46.jsx)("div", { className: "matchid-login-method-box", children: methods.map((m) => {
2256
- return /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
2442
+ methods.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)("div", { className: "matchid-login-other", children: [
2443
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("div", { className: "matchid-login-other-text", children: /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(import_react_intl6.FormattedMessage, { id: "otherLoginMethods" }) }),
2444
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("div", { className: "matchid-login-method-box", children: methods.map((m) => {
2445
+ return /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
2257
2446
  "div",
2258
2447
  {
2259
2448
  className: "matchid-login-method-item",
@@ -2266,7 +2455,7 @@ function LoginBox({
2266
2455
  }) })
2267
2456
  ] })
2268
2457
  ] }),
2269
- /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
2458
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
2270
2459
  EmailModal,
2271
2460
  {
2272
2461
  isOpen: emailOpen,
@@ -2286,40 +2475,40 @@ var import_react14 = require("react");
2286
2475
 
2287
2476
  // src/components/LoginPanel/index.tsx
2288
2477
  var import_react_intl7 = require("react-intl");
2289
- var import_jsx_runtime47 = require("react/jsx-runtime");
2478
+ var import_jsx_runtime50 = require("react/jsx-runtime");
2290
2479
  function LoginPanel({
2291
2480
  header,
2292
2481
  onClose,
2293
2482
  ...props
2294
2483
  }) {
2295
2484
  const isDownMd = useDownMd();
2296
- return /* @__PURE__ */ (0, import_jsx_runtime47.jsxs)("div", { className: "matchid-login-panel", children: [
2297
- header ? header : /* @__PURE__ */ (0, import_jsx_runtime47.jsxs)("div", { className: "matchid-login-panel-header", children: [
2298
- /* @__PURE__ */ (0, import_jsx_runtime47.jsxs)("div", { className: "matchid-login-panel-header-content", children: [
2299
- /* @__PURE__ */ (0, import_jsx_runtime47.jsx)("div", { className: "matchid-login-panel-header-title", children: /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(import_react_intl7.FormattedMessage, { id: "loginTitle" }) }),
2300
- /* @__PURE__ */ (0, import_jsx_runtime47.jsx)("div", { className: "matchid-login-panel-header-subtilte", children: /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(import_react_intl7.FormattedMessage, { id: "loginTips" }) })
2485
+ return /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)("div", { className: "matchid-login-panel", children: [
2486
+ header ? header : /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)("div", { className: "matchid-login-panel-header", children: [
2487
+ /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)("div", { className: "matchid-login-panel-header-content", children: [
2488
+ /* @__PURE__ */ (0, import_jsx_runtime50.jsx)("div", { className: "matchid-login-panel-header-title", children: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(import_react_intl7.FormattedMessage, { id: "loginTitle" }) }),
2489
+ /* @__PURE__ */ (0, import_jsx_runtime50.jsx)("div", { className: "matchid-login-panel-header-subtilte", children: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(import_react_intl7.FormattedMessage, { id: "loginTips" }) })
2301
2490
  ] }),
2302
- onClose && /* @__PURE__ */ (0, import_jsx_runtime47.jsx)("div", { className: "matchid-login-panel-header-close", onClick: onClose, children: /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(CloseRoundIcon, { size: isDownMd ? 24 : 30 }) })
2491
+ onClose && /* @__PURE__ */ (0, import_jsx_runtime50.jsx)("div", { className: "matchid-login-panel-header-close", onClick: onClose, children: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(CloseRoundIcon, { size: isDownMd ? 24 : 30 }) })
2303
2492
  ] }),
2304
- /* @__PURE__ */ (0, import_jsx_runtime47.jsx)("div", { className: "matchid-login-panel-divide" }),
2305
- /* @__PURE__ */ (0, import_jsx_runtime47.jsx)("div", { className: "matchid-login-panel-box", children: /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(LoginBox, { ...props }) })
2493
+ /* @__PURE__ */ (0, import_jsx_runtime50.jsx)("div", { className: "matchid-login-panel-divide" }),
2494
+ /* @__PURE__ */ (0, import_jsx_runtime50.jsx)("div", { className: "matchid-login-panel-box", children: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(LoginBox, { ...props }) })
2306
2495
  ] });
2307
2496
  }
2308
2497
 
2309
2498
  // src/components/LoginModal/index.tsx
2310
- var import_jsx_runtime48 = require("react/jsx-runtime");
2499
+ var import_jsx_runtime51 = require("react/jsx-runtime");
2311
2500
  function LoginModal({
2312
2501
  isOpen = false,
2313
2502
  width = 480,
2314
2503
  ...props
2315
2504
  }) {
2316
2505
  const { isLogin } = useUserInfo();
2317
- return /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
2506
+ return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
2318
2507
  Modal,
2319
2508
  {
2320
2509
  isOpen: isOpen && !isLogin,
2321
2510
  width,
2322
- children: /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(LoginPanel, { ...props, inModal: true })
2511
+ children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(LoginPanel, { ...props, inModal: true })
2323
2512
  }
2324
2513
  );
2325
2514
  }
@@ -2328,10 +2517,10 @@ function LoginModal({
2328
2517
  var import_react13 = require("react");
2329
2518
 
2330
2519
  // src/assets/icon/ProfileIcon.tsx
2331
- var import_jsx_runtime49 = require("react/jsx-runtime");
2520
+ var import_jsx_runtime52 = require("react/jsx-runtime");
2332
2521
  function ProfileIcon({ size = 24, color = "black", ...props }) {
2333
- return /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)("svg", { width: size, height: size, viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [
2334
- /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
2522
+ return /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)("svg", { width: size, height: size, viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [
2523
+ /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
2335
2524
  "path",
2336
2525
  {
2337
2526
  fillRule: "evenodd",
@@ -2340,7 +2529,7 @@ function ProfileIcon({ size = 24, color = "black", ...props }) {
2340
2529
  fill: color
2341
2530
  }
2342
2531
  ),
2343
- /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
2532
+ /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
2344
2533
  "path",
2345
2534
  {
2346
2535
  fillRule: "evenodd",
@@ -2354,7 +2543,7 @@ function ProfileIcon({ size = 24, color = "black", ...props }) {
2354
2543
 
2355
2544
  // src/components/UserPopover/index.tsx
2356
2545
  var import_react_intl8 = require("react-intl");
2357
- var import_jsx_runtime50 = require("react/jsx-runtime");
2546
+ var import_jsx_runtime53 = require("react/jsx-runtime");
2358
2547
  function UserContent() {
2359
2548
  const { logout, address, username } = useUserInfo();
2360
2549
  const [logouting, setLogouting] = (0, import_react13.useState)(false);
@@ -2375,34 +2564,34 @@ function UserContent() {
2375
2564
  rightIcon,
2376
2565
  onClick
2377
2566
  }) => {
2378
- return /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)("div", { className: "matchid-user-popover-item", onClick, children: [
2379
- /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)("div", { className: `matchid-user-popover-item-content`, children: [
2567
+ return /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)("div", { className: "matchid-user-popover-item", onClick, children: [
2568
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)("div", { className: `matchid-user-popover-item-content`, children: [
2380
2569
  icon,
2381
- /* @__PURE__ */ (0, import_jsx_runtime50.jsx)("div", { className: "matchid-user-popover-item-text", children })
2570
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("div", { className: "matchid-user-popover-item-text", children })
2382
2571
  ] }),
2383
2572
  rightIcon
2384
2573
  ] });
2385
2574
  };
2386
2575
  const UserDivider = () => {
2387
- return /* @__PURE__ */ (0, import_jsx_runtime50.jsx)("div", { className: `matchid-user-popover-divider` });
2576
+ return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("div", { className: `matchid-user-popover-divider` });
2388
2577
  };
2389
2578
  const [usernameOpen, setUsernameOpen] = (0, import_react13.useState)(false);
2390
2579
  const [copied, setCopied] = useCopyClipboard();
2391
2580
  const intl = (0, import_react_intl8.useIntl)();
2392
- return /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)("div", { className: "matchid-user-popover-content", children: [
2393
- /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)("div", { className: "matchid-user-popover-list", children: [
2394
- /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(UserItem, { onClick: () => {
2581
+ return /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)("div", { className: "matchid-user-popover-content", children: [
2582
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)("div", { className: "matchid-user-popover-list", children: [
2583
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(UserItem, { onClick: () => {
2395
2584
  setCopied(address);
2396
- }, icon: copied ? /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(CheckIcon, { size: 20, color: "#0ecb81" }) : /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(CopyIcon, { size: 20, color: "var(--icon-color)" }), rightIcon: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(CheckIcon, { size: 20, color: "var(--icon-color)" }), children: truncateAddress(address) }),
2397
- /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(UserDivider, {}),
2398
- /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(UserItem, { onClick: () => {
2585
+ }, icon: copied ? /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(CheckIcon, { size: 20, color: "#0ecb81" }) : /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(CopyIcon, { size: 20, color: "var(--icon-color)" }), rightIcon: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(CheckIcon, { size: 20, color: "var(--icon-color)" }), children: truncateAddress(address) }),
2586
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(UserDivider, {}),
2587
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(UserItem, { onClick: () => {
2399
2588
  setUsernameOpen(true);
2400
- }, icon: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(ProfileIcon, { size: 20, color: "var(--icon-color)" }), rightIcon: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(ArrowRightIcon, { size: 20, color: "var(--icon-color)" }), children: username || intl.formatMessage({
2589
+ }, icon: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(ProfileIcon, { size: 20, color: "var(--icon-color)" }), rightIcon: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(ArrowRightIcon, { size: 20, color: "var(--icon-color)" }), children: username || intl.formatMessage({
2401
2590
  id: "setUsername"
2402
2591
  }) })
2403
2592
  ] }),
2404
- /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(Button, { onClick: onLogout, loading: logouting, children: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(import_react_intl8.FormattedMessage, { id: "disconnect" }) }),
2405
- /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(UsernameModal, { isOpen: usernameOpen, onClose: () => {
2593
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Button, { onClick: onLogout, loading: logouting, children: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_react_intl8.FormattedMessage, { id: "disconnect" }) }),
2594
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(UsernameModal, { isOpen: usernameOpen, onClose: () => {
2406
2595
  setUsernameOpen(false);
2407
2596
  }, onSuccess: () => {
2408
2597
  setUsernameOpen(false);
@@ -2413,12 +2602,12 @@ function UserPopover({
2413
2602
  children,
2414
2603
  ...props
2415
2604
  }) {
2416
- return /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(Popover, { ...props, content: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(UserContent, {}), children });
2605
+ return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Popover, { ...props, content: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(UserContent, {}), children });
2417
2606
  }
2418
2607
 
2419
2608
  // src/components/LoginButton/index.tsx
2420
2609
  var import_react_intl9 = require("react-intl");
2421
- var import_jsx_runtime51 = require("react/jsx-runtime");
2610
+ var import_jsx_runtime54 = require("react/jsx-runtime");
2422
2611
  function LoginButton({
2423
2612
  loginRender,
2424
2613
  methods,
@@ -2434,8 +2623,8 @@ function LoginButton({
2434
2623
  const { isLogin, username } = useUserInfo();
2435
2624
  const [loginOpen, setLoginOpen] = (0, import_react14.useState)(false);
2436
2625
  if (!isLogin) {
2437
- return /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)(import_jsx_runtime51.Fragment, { children: [
2438
- /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
2626
+ return /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(import_jsx_runtime54.Fragment, { children: [
2627
+ /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
2439
2628
  LoginModal,
2440
2629
  {
2441
2630
  methods,
@@ -2445,15 +2634,15 @@ function LoginButton({
2445
2634
  onClose: () => setLoginOpen(false)
2446
2635
  }
2447
2636
  ),
2448
- /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)(Button, { className: "matchid-unlogin-btn", ...props, highlight: true, onClick: () => setLoginOpen(true), children: [
2449
- /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(UnLoginIcon_default, {}),
2450
- /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("span", { children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_react_intl9.FormattedMessage, { id: "login" }) })
2637
+ /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(Button, { className: "matchid-unlogin-btn", ...props, highlight: true, onClick: () => setLoginOpen(true), children: [
2638
+ /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(UnLoginIcon_default, {}),
2639
+ /* @__PURE__ */ (0, import_jsx_runtime54.jsx)("span", { children: /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_react_intl9.FormattedMessage, { id: "login" }) })
2451
2640
  ] })
2452
2641
  ] });
2453
2642
  }
2454
- return loginRender ? /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_jsx_runtime51.Fragment, { children: loginRender }) : /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(UserPopover, { position: popoverPosition, type: popoverType, gap: popoverGap, children: /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)(Button, { onClick: onLoginClick, className: "matchid-login-btn", ...props, children: [
2455
- /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(LoginIcon_default, {}),
2456
- /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("span", { children: username ? truncateAddress(username) : "MatchID " + intl.formatMessage({
2643
+ return loginRender ? /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_jsx_runtime54.Fragment, { children: loginRender }) : /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(UserPopover, { position: popoverPosition, type: popoverType, gap: popoverGap, children: /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(Button, { onClick: onLoginClick, className: "matchid-login-btn", ...props, children: [
2644
+ /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(LoginIcon_default, {}),
2645
+ /* @__PURE__ */ (0, import_jsx_runtime54.jsx)("span", { children: username ? truncateAddress(username) : "MatchID " + intl.formatMessage({
2457
2646
  id: "user"
2458
2647
  }) })
2459
2648
  ] }) });
@@ -2463,14 +2652,14 @@ function LoginButton({
2463
2652
  var import_react15 = require("react");
2464
2653
 
2465
2654
  // src/assets/icon/InfoRoundIcon.tsx
2466
- var import_jsx_runtime52 = require("react/jsx-runtime");
2655
+ var import_jsx_runtime55 = require("react/jsx-runtime");
2467
2656
  function InfoRoundIcon({
2468
2657
  size,
2469
2658
  color = "#6E6E6E",
2470
2659
  ...props
2471
2660
  }) {
2472
- return /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)("svg", { width: size, height: size, viewBox: "0 0 16 16", fill: "none", xmlns: "http://www.w3.org/2000/svg", ...props, children: [
2473
- /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("g", { clipPath: "url(#clip0_418_7746)", children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
2661
+ return /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)("svg", { width: size, height: size, viewBox: "0 0 16 16", fill: "none", xmlns: "http://www.w3.org/2000/svg", ...props, children: [
2662
+ /* @__PURE__ */ (0, import_jsx_runtime55.jsx)("g", { clipPath: "url(#clip0_418_7746)", children: /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
2474
2663
  "path",
2475
2664
  {
2476
2665
  fillRule: "evenodd",
@@ -2479,21 +2668,21 @@ function InfoRoundIcon({
2479
2668
  fill: color
2480
2669
  }
2481
2670
  ) }),
2482
- /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("defs", { children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("clipPath", { id: "clip0_418_7746", children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("rect", { width: "16", height: "16", fill: "white" }) }) })
2671
+ /* @__PURE__ */ (0, import_jsx_runtime55.jsx)("defs", { children: /* @__PURE__ */ (0, import_jsx_runtime55.jsx)("clipPath", { id: "clip0_418_7746", children: /* @__PURE__ */ (0, import_jsx_runtime55.jsx)("rect", { width: "16", height: "16", fill: "white" }) }) })
2483
2672
  ] });
2484
2673
  }
2485
2674
 
2486
2675
  // src/components/UsernameModal/index.tsx
2487
2676
  var import_react_intl10 = require("react-intl");
2488
- var import_jsx_runtime53 = require("react/jsx-runtime");
2677
+ var import_jsx_runtime56 = require("react/jsx-runtime");
2489
2678
  var ValidItem = ({
2490
2679
  success = false,
2491
2680
  text
2492
2681
  }) => {
2493
2682
  const isDownMd = useDownMd();
2494
- return /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)("div", { className: `matchid-valid-status-item matchid-valid-status-${success ? "success" : "error"}`, children: [
2495
- success ? /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(CheckRoundIcon, { size: isDownMd ? 12 : 16 }) : /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(InfoRoundIcon, { size: isDownMd ? 12 : 16 }),
2496
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("span", { children: text })
2683
+ return /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)("div", { className: `matchid-valid-status-item matchid-valid-status-${success ? "success" : "error"}`, children: [
2684
+ success ? /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(CheckRoundIcon, { size: isDownMd ? 12 : 16 }) : /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(InfoRoundIcon, { size: isDownMd ? 12 : 16 }),
2685
+ /* @__PURE__ */ (0, import_jsx_runtime56.jsx)("span", { children: text })
2497
2686
  ] });
2498
2687
  };
2499
2688
  function UsernameModal({
@@ -2541,12 +2730,12 @@ function UsernameModal({
2541
2730
  }
2542
2731
  };
2543
2732
  const intl = (0, import_react_intl10.useIntl)();
2544
- return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(ModalWithHeader, { isOpen: isOpen && isLogin, ...props, title: title || intl.formatMessage({
2733
+ return /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(ModalWithHeader, { isOpen: isOpen && isLogin, ...props, title: title || intl.formatMessage({
2545
2734
  id: username ? "editUsernameTitle" : "setUsernameTitle"
2546
- }), children: /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)("div", { className: "matchid-username-box", children: [
2547
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Field, { label: intl.formatMessage({
2735
+ }), children: /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)("div", { className: "matchid-username-box", children: [
2736
+ /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(Field, { label: intl.formatMessage({
2548
2737
  id: "username"
2549
- }), error, children: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
2738
+ }), error, children: /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
2550
2739
  Input,
2551
2740
  {
2552
2741
  placeholder: intl.formatMessage({
@@ -2559,8 +2748,8 @@ function UsernameModal({
2559
2748
  value: val
2560
2749
  }
2561
2750
  ) }),
2562
- /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)("div", { className: "matchid-valid", children: [
2563
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
2751
+ /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)("div", { className: "matchid-valid", children: [
2752
+ /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
2564
2753
  ValidItem,
2565
2754
  {
2566
2755
  success: isValid,
@@ -2569,20 +2758,21 @@ function UsernameModal({
2569
2758
  })
2570
2759
  }
2571
2760
  ),
2572
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(ValidItem, { success: isLength, text: intl.formatMessage({
2761
+ /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(ValidItem, { success: isLength, text: intl.formatMessage({
2573
2762
  id: "usernameLengthError"
2574
2763
  }) })
2575
2764
  ] }),
2576
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Button, { disabled: !isSafe, loading: isSubmitting, style: {
2765
+ /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(Button, { disabled: !isSafe, loading: isSubmitting, style: {
2577
2766
  marginTop: isDownMd ? "36px" : "64px"
2578
- }, onClick: onSubmit, size: "lg", block: true, highlight: true, children: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_react_intl10.FormattedMessage, { id: "confirm" }) }),
2579
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Button, { style: {
2767
+ }, onClick: onSubmit, size: "lg", block: true, highlight: true, children: /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_react_intl10.FormattedMessage, { id: "confirm" }) }),
2768
+ /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(Button, { style: {
2580
2769
  marginTop: isDownMd ? "12px" : "24px"
2581
- }, onClick: props.onClose, size: "lg", block: true, children: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_react_intl10.FormattedMessage, { id: "nextTime" }) })
2770
+ }, onClick: props.onClose, size: "lg", block: true, children: /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_react_intl10.FormattedMessage, { id: "nextTime" }) })
2582
2771
  ] }) });
2583
2772
  }
2584
2773
 
2585
2774
  // src/components/SOLModal/index.tsx
2775
+ var import_react17 = __toESM(require("react"));
2586
2776
  var import_web3 = require("@solana/web3.js");
2587
2777
  var import_wallet_adapter_react = require("@solana/wallet-adapter-react");
2588
2778
  var import_wallet_adapter_react_ui = require("@solana/wallet-adapter-react-ui");
@@ -2598,6 +2788,10 @@ var WalletAdapterNetwork;
2598
2788
  // src/components/SOLModal/index.tsx
2599
2789
  var import_wallet_adapter_wallets = require("@solana/wallet-adapter-wallets");
2600
2790
  var import_styles = require("@solana/wallet-adapter-react-ui/styles.css");
2791
+ var import_react_intl11 = require("react-intl");
2792
+
2793
+ // src/components/WalletModalContent/index.tsx
2794
+ var import_react16 = require("react");
2601
2795
 
2602
2796
  // src/assets/wallet.ts
2603
2797
  var walletErrorImage = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAYAAABccqhmAABHlUlEQVR4Xu19i3NUVbb3mYc6M3pHxhkHEZAAioIIAcQHz+adhARDeMn7GAnPhDR5P+mGJCSGRwLyEFA7gshVx0p9OOotxqljOeVY937fra6acQYFsXkaHcfqP2F/+3fIijub053unA4grF/Vqu50n7P37pO91l6vvbZhMBgMBoPBYDAYDAaDwWAwGAwGg8FgMBgMBoPBYDAYDAaDwWAwGAwGg8FgMBgMBoPBYDAYDAaDwWAwGAwGg8FgMBgMBoPBYDAYDAaDwWAwGAwGg8FgMBgMBoPBYDAYDAaDwWAwGAwGg8FgMBgMBoPBYDAYDAaDwWAwGAwGg8FgMG4oNDU1Jaenp3uKioqaCgoKxMqVK8WsWbOEx+PpoKlTpwp5jcjLyxN1dXVi+vTpnrVr13rkvUl6ewwG4waHZVlJR44cMSVjmwsXLgyOGjVK9OnTR/zyl78UP//5z4W85Cr66U9/an//61//WjzyyCMiJSVFzJ49O5CdnW1+8MEHHrV9BoNxA0Myfeszzzwj7r//fpupwdw/+clP7FeQ4SAAiHAdvd55553i0UcfFevXrw83NjYG3n33XU9HJwwG48bC3r17vZmZmdbvf/97cfvtt9tMHIkMB+Z3ImgM0B7GjRsnNmzYEJSCIJn6YzAYNwCOHj3qmZM5p2nw4MGOKr7O/KoQ0IWB/jcR2oV5MH7CeCGFDAsBBuNGwPvvv59ZXl4uBg0aJH72s585MrDO8LGQ3gYRBMHTTz8dWrJkidna2pp0ZRQMBuOaQzKgKdXy0G9/+1tx2223XcWsRDpzd8Xk0QhCplevXmLs2LGioaHBYiHAYFwHwCFXUVERTkpKisjM6uc684ORf/WrX3U4CeEz6MpBSEQRgylTpoj9+/cHDQaDce3wyiuveFetWmWvxJGYH4TvwKy/+MUvxO9+9zuo7nDmBRcvXmzl5eVZfr/fqq6utkzTtFJTU60xY8aERo4cKe6++25bo4gmQOg7mB4QAu+99x77BRiMngZs/o0bN4revXvbq7jhwPREYP777rtPTJ48GTZ74MiRI4FojHr8+HGzqakpMGvWLOvxxx8Xd911V0cI0YnkLbZPAMlEjY2N1gcffJCkt8lgMBKEEydOmJL5Q/fcc48j84PAsGBKqOhYzeWK73/55ZczOzXUBaQQ6FVcXGympKRYgwcPuorxVQEAgoYhtQdRX1/PQoDB6AlYlmXb/A8++OBVDKgTGBIr+Pr165u9Xm8vtZ14IO9NlqZG8N57f3cV86v94z0EDjSBffv2sU+AwUgkAoGAd926dbbaf8cdd1zFhFj1SSOA2i7V/TCSgvR2uouampogBIqeXGQoAoD+hk9g9+7dwdbW1oimBoPBiBHvvvtuZm5urp2NB8ecbpMbysoP5p85c6aQAsOnNeMKx48fT6qqqrJGjBjRSQAZ7f3SmPAe3z/xxBNi27ZtbA4wGG5w8uRJU6rxIaT2UpKPTkb7Cvwf//EfYu7cuWLLli1+vZ1EQAqVpPLycguRBN3/oI8JPghsQGLHIIPRTSDOX1lZGX744Yc7rfqGxnD4Gzb/tGnTRFNTU7Nk1G7b/F3h0KFDybW1tcF77723kwAA6UIAOQaTJ09mnwCDES9g82/YsEEgwy9Scg6YDN+B0RYsWBBGbkCnRnoQUsuwtxhD8BgRBAB9jkSlvXv3cp4AgxEr8vPzbZtfV7VVApNB7cfKf/ToUZ96f0/jwIEDSaWlpbZPAI5Bw0EAEOE3wIHI5gCD0QVg82dmZgaQvBNp5afPsVcfe/6rqqr8ShPXDKgWVFRUZD322GNXMb2uCcAxCN/Brl27WAgwGE6AzV9dXR1+6KGHIjI/MRVW3QkTJvS4zd8V4BPw+XwdPgE4/3RnJT7HKyIUnCfAYDjgjTfe8CK99ze/+U1E5icC8y9atCgMP4HSxHWF1EI6fAI686uEMOYDDzxgCwH2CTAYEm+++Wam1+sVffv2tZnfSQAQQ8Hhh1XUrc2PuL604828vDxTah2m/NujXxMP4BPIz8+3kKXoNH6VoCWgutD27dvZHGDc2pAMYO/nhwqt777TCTZ/RkZGQmz+lStXtqIyMOx3OOjmz58fRvFP/bp4ACEgBZk1ZMiQqL8DBC0G9QR27NjBQoBxa+Ltt9/2lJeXhwcOHNglw0C1njhxIjzprm3+xYsXNw0YMMB2zIEgeFDqKzk5OTRv3ry4Ng3pgE+gsrIy2L9//6i/ibQZ5AlwPQHGLYf//M//9G7atMneo++kMpPKT3F+yZjhPXv2uLL5MzMze2HPP/qEGq6m74LwmRQCQl7jqh+gtLTU3jvgVKWIfhde8T32Dhw8eDB48uRJ9gkwbn4gt5/i/JRXb0RgEnjOcWiHVK99nVuJD88++2ySVPkD0DZUR52h9QuGHDp0KEwCT6cG4gT5BJDFSFEBEnT0noQAaPz48aK5uZnNAcbNjffee6+jhp/Tyk9EKjJO66moqPArTXQLUoi0wslIK7/h0CcRGHb06NFhqTGYP7QQP7B3AEJg6NBHOq36OslLO3wCnCfAuGmBOD9sfpTujsSExBBgVDBEImx+uZo3QduIFGFwIgifYcOGufYJ4FgymAMwO4z236cTPidTBzUGX331VfYJMG4uvP76697169cLVPLRmZCYAITvUFhjzpw5Yck8rmxxsvmRi6/u4zccGF4lug6aAI4Imz59uqtxAEVFRUFEHKjwqC4EiGASIb0YjkH2CTBuCqCGHxx+KOahMn+kVRBx/t27d/u0ZuICbP4ZM2YEoPZHOisgEqljwr3wCcj2PFda7h6QNrxu3bqOPAGd8dXxUZbj3r17rU8//TRJa4rB+PEAcX6v1xuCCq5Ocv09mAJxfsTm5Wrp79RINwCbv1+/fhEZP9rnOrXv7Q9nZWWZ7c13C/X19UnLly+3hgx56Cqm1wlCAIIQdQmVJhiMHw9oPz9WPTAR1Fs1T95QJjy+g81fV1fXjIKcWlNxYeHChU1Q+3VTQyX0j7Gg0AgiDernTgTNRKrwIdm2K5+AZOhkrzc/iF2MhsO4iNAn0qKnTJkSXLJkCZsCjB8XEOdHbj95+2klVdVfo32yg7kyMjISYvPLdqxYVn4w4Pjx48OvvvqqJYWUhVOE6UxBnfmJECJEvr/sx9U4gcLCwiAyBiOFQYkgnJ577jlhWRYLAYZ7nDla5rlwrMLUP08k/vrXv2aWlJTY9fgNjfl0AvNjP/8LL7zg05qJC7D509LSAsjwAyNHYioIIDAyDgCR6rhJ9y9atMhCjgDVH1DHSEILn+N7OPPc+gRgDsAnMGzYMMdkIZXwHF9//XVLuZ3BiA+XWzYE/uafHPhn7ezQPxqyxBc7FwQuHFlv6te5BfbzSzU3hEnblfMNzA+b3+v1+pUmuoXU1NRWhBcjFRAhRgazoWDnsmXLOqnypmn2kit7CwSIk5NONSfwXgoQ13kCEAI5OTkWdgcaDmMmwpil6RF+6623zB/uZjBixPfvVDZ9tT1FnC4bKc6WDBOni4aKs/6x4txLz4b+/W6VK5tWxaeffuppaGgIQ7V1UvVB+BsrNJxcYESfz+fa5l+5cmUTVPjbbo++ktrOvNGjsJXYUYWXQgBaRCvaMrQxq4TPILweffRR1z6Burq65Oeffz4YLTsR30G4FRQUBDrfzWDEgKA/1TpTOkKEyoaI86WDxfmKwSJUMkR8VvW0+N+6DFO/vjs4fPiwR07Qjv38+mRWGQh2b0ZGeliq/Y6MGCtg80uyc/udGIcIjA9bGja/XPk9ShOOkIKg2akcmS4E8D32DmRkZLj6HUD6nPQgtCYSBIY2fgicrKwscejQIbPznQxGFzhVPsU6X/KwuFg+SFysGCAuVw0Q31QOFmcqR4izexYEwq0+VyuwZVmZjz/+uJ/280fy9ONvTOSnnnrKtc1vrjWTUDoM3n4nRqX3kWz+rjB79mwL5oDatioAVCEgNQHXPoGioiKPNGNs56RT9AKCAf3E8xsYDBunK8daF0oGi7bNSeIbf5J8HSjaKh8QoYqh4vIhU3z3dpVHvydW/PnPfzbLyspCtgrevp9fJ6OdEbHyJ8rmT89IbyUvuqExiyoA8D022uTm5salqsMnMGfOnBbs1IsmBED4XgrA8JIlS0ytmZjR2traS46xpX//fo4CgEKWmzZt4r0CjPhweuuT1sXqB8V3dQ+I72pBUgPYmiS+8o1wJQD+9Kc/eWpra8PwZOtMoQsArPxgxIqKCtc2f3Z2dhNt7FGZnYg+g0DCltylS5d2S0WHTwDORWgCRhQBgM8pT0B3LsaDrVu3mqh5oGs0IPSDPlavXo2dkZ5ONzIY0fCZ32NdqBwiV/8B4t/1A8T32weKb2sGSgGQLD6r9pj69bEgEAh45GRtwqqEFYuYkUj1A8DhN2PGjLCc4N1iRAJWZYTrsCobGoOoRAU+YPOvWrXK80ML3cPixYub9fCiLgBAYFycEBzJyRgLxo4d24LcCcPhd6F/CDRp+njUexiMqPi8aop1ruQRcbFSMn/DQFsAXN48SJyuelz8rTrF1K/vCrD5S0tLBRJu9NWKmIL8AHf84g7x9Lin3dv85hWbH5tzsBIaDgxCBHt5xIgRIXmP+UML7gBnY6Q8AVUoIJ0Z9f66K3ikedQSLSyIiskTJkzwKLcwGNERan7OOls6WpwvGiLa/EniX1v6i/MVD4rPN08Qn9UvMPXro+GTTz5BEU07zu9kqxJhtQIzYHvrxo0b/UoT3QKp4rrAISJGxE7CJ598EhWEuq2KO4HyBCjFWBcAKsHvMH369HB9fb2pt9MV3njjjRaERw2H3wiCr2X48OEe5RYGIzouHfImf751tviicJQ4KzWBMxVDxanKsVL9n/lRyJcZlz2OFWrkyJE2I0ZiRhCYAOowbH6fz12UAXF+rIq6wFFXX3wHUwMqslTZu62CRwO0EMnYdp6AzvQqyUtth11KSkpAb6MrfPjhhy3yvqueJxHCrLt27eJ6ATcrQsfLkv7etMzzf2vSPcH6TE8okOsJuQzTARACX+1aaf2tNtP6f7UZ1qXD+U36NdHQ2trqLS4utlcg1d43HCYpGFGu/OHa2lpXjCiFjW3zQ+3XmV8ljAPhM+yeq6urM5UmegRz5861dKbXBQA0kaVLlyKH39Tv7wqjRo2yDIffCYJvY//+/XjPuNnQFjCTQodWWv94YY74e/Vk8Y+tM0ToRVNcfNnbrF97LYHc/rKyso66/UY70zkJADA/VHDJiL5OjcSJtWvXJknmt2v40SadSARtY/To0aGdO3cGkI34QyuJh9QCPJMmTQpGMwPkZbafYs6cOSEpADx6G9GA66XmhBX+qt8JggA4cOAA3jNuJvzrrZzktlfnW6GGp8XZ0qHiYvEgcb5wsAhVjJHqeoq4dDDP1WrqBpIZLdj8+kRXJzxewYhYhQsKCvx6G/HimWeeaQXzUyUfQ2MEfAYTBH0isej5559PqM3vBDj2JPPb9QxpF59KahIUHKQQYHobXeHkyZMt2BxlODA/CALg4MGDLABuNoQOz/ec3zNTtNUMFZfKB4ivC/uKy5v6iIsFA8XZjY+Js9uywhePuz8QI15kZWZ6hwwZEtYnu8r8IDAqfANbtmxxHeeXjNaxn59WWkNjBDAaNAOk4s6fP7/HhSP25EuzJgTHJjG7/iwoHAqaPn16EFqM3k5XOHr0aAsOETUcmB+EFOUNGzb0+O9lXGOcakr3nGmcJC5XDxJtZfeLy+X9xeXiPuLr4vvF1wX9xLnSEeLs9rniy1cSv4PPCXDcrVmzuumBpP7iJz+9mvFVAQDmnzlrpus4P2z+Z599NuruOOoTuf1jx44Nuy3fHQvA/PDMw65XhZH+LCAAoB3IlR/fdwuSuVv0zUgqIR04JSXFo9zCuBlw5sCzni93pYpQ+cOS8R8Ql0sklT4gvq7oL9qK+onLRVITqEgW/2jICISaTFcrbCyAGj9+wvhOxTRVpqcVEDF3qOCJsvnB/E6pt/Q3+u1Obn93gHp88jmYTz75ZBDMr2ce6szfq1cvxOitY8eOBfS2YgFSfKX6b0WrFgQTq7s5BowbGKGA2etU09yWU5VjxLmCJHFZrvqX5erfVtFXagT9RFuJNAfKB4pTdR7x9+09nwmWnj7bXmVVVddQJiKF3aRNLNavX+/vfHf8yMrKaoXaHy3bjt4j1Ocm5TYWoALPSy+9ZIHh8BzUsejjgsCCai6v/QiFSfS2YgXyBiBM9YgH9YVnY5omjkT3dL6TcVPgVFNK0uf+ia2h0sek7d9fqv99pACQQkCaA20lfcU3lf3E6W1PSQEw3aPfm0hs3epruvf394rb77jNntyqEMAkJFsX6mhpaanrOP+6deuakN6rRxhUJgNhLI+NeEy8uPdF/N2jeO2114IzZsywk5nIsedEGDMcc+np6UHkCejtxAocFS5NqBDyB9TfDCItDDkAUvA1Y+OQdjvjZkJoR6Z1pnK4uFA+SFzePFhcKh4gLhYlia+3PCzO7ZklQgd6zu4tKytLGjlyZPBnP7+S6EMCAETv20N9Ycn4rm3+pUuX2ttuDYcVTxUAYETk9iMM16mRBANq+KFDh+x6fU6OPpVo5Z81a5brxJxVq1d5k0clX7X6E+FzOFkrKnq2nBvjBsD371R6T9V4rLObx4hQxaPiXPFD4lz5MPFl3Vjx1UsLrEvH1ifr9yQKkiHtslg/+/kVhlcFAFZ92N8IcUk71KffGw9g80t1OYCz8/SaeDqj4bOhw4ZiG3GgcyuJBZgfx3XDrDGUsTgJAjwXHGkutQRLCiVX/4+DBw9mzpkzJ2ItAPSH75BXcPToUU+nmxk3J0JNmb1O78hsOVMzXZzdOkmcaUgVXzYt/Ahmgn5tovDiiy96Jk+eHCJvtz7hwaiovoONQPq98WLevHmtKBdONQSMCMxP3yEPQa60oZycnMB//dd/JVwQSLU6uba21kL6MhybRhcCCSW65s+f/5EUSkmdGooTqPO3YsUKO7xoaIxPhGePLddSO0v472bcwAgdWJt0pj7dc2Z7uudU03xP2wF3k60rwOONY6n0FY9WfyrosXPnTleqf15eXsd+fkOb7MRgOtNhDHfedad9lDYODJVCKK5U5q7Q2NgYRKhPF0ggdRxgxrvvvlusXLkyCHOpcyvxQQodT3Fxcbir7c3od9q0aUGcLvTD3QxGAgHHklT/m+Bo0hkPkx7MD9V/omeiqd8bK7CjDnF+2lsfyblmKExH70kI4T1eoRLj+CzZph/t6n3FCpzgu23btmD//v07GJwEoKEwIPWPZ4Ainno78eLw4cNeaUbZGpWT2k+E7yAgjhw5klCBx2B0AqrMSLvcTnZRNQC8pwIbs2enIQRl6vfGAtj8WVlZHTX8qG2d8Yl0AeBEGBciEdIObz5+/LinU4cxQP7mJLkCWzjsg8aCV3VcRvt4wPxITX7uuecsVPLV24oHf/jDHzKlFmSflRgp1RnPCK+ICiBE2qkBBiPRyM3NtYtS0mqkMho+g8Nr5syZH0lNIUm/NxZkZGTYdfujrXYq6QyoMz8RGBNay8aNG8NylTSv9NY19u3bl5yfn2+hwAaYkLQLJ4KgwQGhcsX+yK0aLp+fuWbNmhCeJzG52hf+BmFM0HKys7NROt3TuRUGI8FAVVvYwJiEVJqa1H9SfaWqHdDviwXYzw8Vm3IIjAhMTZ/R9yrp1+oMg/FJZgm9+eabMSUIVVZWBqE93H77bR2/k9rUNRMwa2lpaRAHeejtxAPUUKyurg7TASZORVSN9t8Dp+D06dPFq6++ynF/Rs8DZaawGuoTkgh2qJy8cQkAxPkXL15sYcIbEZiabGu9P1LF6Tr1eieGAd1zzz12hCJaqAwrOM7l088vcPJH4DOEKauqqlzb/IFAwLtu3TpbmDgJQRK0+A5biefNmxd+5ZVXXDlbGYyYEUkAECNCBW5sbIxZAFCcn04GNhwEABEmP7QOMDAYDqE4VBDGrjis0ggB0vZblWmd2kECT05OTnP7MDpBqtL2UVxUxdiJ6YmggqMQSVFRkXXo0CFXNv+7776biYNSnQ4bAan9wgeDysAHDhzwdW6FwehBRBIAxCjIQpOMENDvi4TMzMxWsq+dmJUIDA1PuFzxRHFx8UdScJgojy1tdBMOR4QmU1JSTGlGCAgTfXOS3h6EDfLpaRwEqY0ko7oQmSL6b9QJQkiu/B/BUai3FQ8++OADc/369XaKL0U+DAfGx3PAngOkHyeihiKDERck03igquuMQIT8gObm5pgEwJo1a5qokg+tsoYD8+NzMLW0x7HSeizLSlLbUbF9+3aPtPH9sIsRkTAc2iOC80zPE1i6dGkQ22zVVZ+uJwaETY5XXIe6e8ePH09S24gXcuX3yN8WVgWrk/qP99BwUEkJ9RTc7q1gMOIG9phjlVftbpXA0F2l4mLiypXa0usGqmS0tw07d9SoUXHv55f2vV/2Ef7FL66cCKQyMhE+Gz58eBCqOzL1wPwQCvpYVMLvBhOipLfUPhJi8+fm5trajZOpYSjPGM8iNTU1LDUetvkZ1wfYYz516tQOe12fsCh0kZGREVEAgNEkY9o2v+6o0wkMMXTo0NCCBfGVJCfAOTZ27FjHrD0iaDOI8aenp3cUGNHHoRKdWdjQ0GAhLVjtL158+OGHmfJ52DUUIz1PfAaC0EHp9N27d/u0ZhiMa4eamhqPXI2vmrDEzHBOSbs+JG1aj34vsHjx4lZoEGSj66uevKRDzYY5IYVJTOG6SMC2WKeDSYjAWMg4hLkQSSCRgxO/GcJPqv0fuT137+TJk6YUPPZZiRib3jf9jT6hlaD+XyJqKDJucJx5aZH1z8Yp1pkGj02f14y3/tkwwwq9vLJHd/fFirffftuDEBoYRlXfiUngoEK9+urqalO/V9rvdt1+ePJpgusTX15mMwQ88FLdda3qwmeAHXSqwMJrJNKZX/1tiBxI0yLolvkR55c2fBjRg0gmEAkFPCuYG9Jscl1DkXEDAxt6/lE7M3im9GFxoXiAuFz5gLhU/aC4vHmg+KrsYfF50XDxRb1HnN635LoLAXjbsWrqkxaECY3YOY4BJycVXtetW2fX7dev1wmJLdhm6yRAugNU7EEyD0KHRrtwwWtXhLHQezAhNjcdO3bMtc1/+PBhj1zJ7Th/JOan54h+pWkSfuGFF1wLQsYNji9efLbl9JanxOWSfnaBz7byPuJbX1/xbdX94uvSvuJCQT9xtnyYOLUr09LvvdaQDG1ig43TBCZVGbH5+vr6ZuyEW7NmTQBxeqeMNn3Sy+tCW7duTWjd/hkzZpiwsw0HRo9EGA9eoX5PnjxZSMa1PvnkE1fC9/3338+EYESIEYJIf36G0i+YHza/27MSGT8S/HPbxJZzvmHim9I+4nLZA6Ktqp/4rra/+Lb6fvFN+X2irfD34nJRP/E331PXXQAg7IUCF0418EhdxkqOPQMTJ05sdSrmQUQTHvc89thjCT+rDzAl4HSUbztMgWik/hYU+pRCzIwWeowFJ06cMKXpZOf2YwxoW/d/gOBDwbNCkg/b/LcQvqh5quX85kfE10W9xaXCK3X+vtvaT7RtluZA+QPi6019xaVN/cXfq8ZfdwEAlJSUtCDtV5/AxDiY3BAQ5FwzHBiNCNfCPJBqdo+oujk5OSaEkHwbURDpBOcgioouWLDA1aoPwCEqtZowfAjyz07PSX1u+A5RBuy12Lx5M8f5byX8fXu6/4vKJ8KXNiaJyxsk4xdAE+gvTYIB4nzhIBEqfEicLk8W/7t19g2z31syh0VJMeokjoeg6o4cOTLuOH88yMjIMKF2G+3Mh1cnot8AJpw2bVoIdf6VZrqFd955xyuFpR0elX/awk71+quagH1uwsyZHOe/VfFZ5SxvqGCMOLd+kDi/STJ9yYMi5B0oviwaKr7wTRD/aJh5Q+333r59uxf79jFxDQeG6oow+RHnz8rKMtFeTwCq+9q1awNwTBoOY1AJ4wGjgvnlPZ6ORroJ2XcmHH7Yo0CmB5lIRPgcQhSCEPsadu7c6dPbYdxCOO1LMU95k81TBZLKks3TeY+YnxWPNk83PWsiUqBff72Rn59vF6MwHBgqGmHSDx8+vEdsfhWojS9NgA7VP5oGgJUfZbu9Xq/nhxa6h48//ti2+ZHhp5tH6nsylZDbL/v16+0wGDc0EKJC7T0wT1e2Poi838jAmz59eo+ruijdDfufGD/aGOF1x2Yg5fZuY926dS3IZcDvhfDBb9adfvIyKp2ODUVs8zMSj2Aw2AuJJy/KlRDVfDIzMz2SYTto2bJlHiTLoNRXIBDo1gTMy8sz1f0B0QiqLpxrr7/+eshtWK0roCQXTuwhxpMfXaUBkNq/dOnSUEVFhevxwOYvLy+3NwrRag/mVwUAPodQAE2dOjUMU0pvh8FwhbePH/ds9fnM+ZmZ/vLSUmGuWCFmzZwpxowaJUYlJ9uEE3Ox+qSlpaGAJV6bcY4ettjGGvZCbv/ylcsDsZTxAgOgvz179oQSGed3AlR/0zSDUK8p3m44CADY588880xIrsCeTg10A7D5pRCxN0RRzgOp+arjj8p4IVdiy5YtPr0dBqPbaGxsTPbm5weysrJCE8aPF/fec4/4lVx178CK086gP2knvAdhYiL+jEkJpx5i0BkZGVZtbW1Aa/4qSCZrhaobKb6u2r2w+bGPv6eZH9l2clwhMCIxoM74RKmpqYjze9T7uwOpzZiVlZUhCBRD+e30+4nwOYQD5/YzEo7A4cNNk8aNCyb17y9+feed4nasPHLCqfRTjWiCYlUiRgEzw3mFKrjSRLCkiurX+wKkzdoEdR72v6ExFq14pPqiUlBPxflVYGuvVMFD2HNA1YGIDG2M0FpycnJcq/1y5fc0NDSEoVEZ7c9UZX68qs8Dm5xg83NuP8M1YLdLe7pp9erVYhBUT0w0MDEmncL4kUhfpfTJi4w+MK9kdkG15+CsQqVcfN6V2k8JNcXFxSaNuacA5ofHn+r46b/HaB8TPkdqcFFRkevcftj8UoOwBabR/jxJ61BXfqz60LJmpc7i3H5G4pCbm+uHFx6n0EDF/1k7Q2J1v4rZNea0tQBlkuoMowoCMNWiRQvhJTezs7MDjw5/1GZutT2dwAQPP/xwwnP7nYDTc+TYgnDo6eM3lDHhb/wWqfpb69e7311ZXV1tF0JVnxW9knDE3/BFYE8B5/YzEgapnvugTlIIrpNdDwbUSBcAIJ3RIzEOCCsY8vWxE5CuVb/X02wRfnO7nz8WwObfuHFjCOnERvtvIubTCX6OrKwsFNM0lSbiBmx+CEI8C9XUUEN99DzwGZJ8cjfm+vV2GIxuwTRNL1JoVaY12ic5GF1n/kgCwL6+nWGc4tQ6RfocREyHdmBfT5w4scdVXWkCJctVOIRVuKtCoLTD7rXXXsPBJd22v2Hz79ixIwwTSN/RR8+AfB9kApWWlnKcn+EeON9u4cKFdmENTDY1xdSehGBSMKFCP5ff/VJO/t/16iXuv6+37enH9lysXohXQ22GiorJqgoBtBsvoR054cPINzB6GGD+DRs22PZ3NMYHQTggunHixAlXeyn++Mc/eqH263069Y/nKTWgsGT8HheEjFsEaWlpfqjhpF7SikObcmy7/idXnIBg/D69e4vHR49GCM56csyYwKIFCwLFhYUBhPgKvd4A6vdJYRCYOnVqCF5/KoqJNuMl3DdkyJCQZH7T6GHgjL/8/PwgOd/I5lbHDmGGVzwbrPw7d+50tZfi448/zvT7/bYANdp/r242EUHgTJgwnuP8jMQBNj/ZnIbCdPorJj6896Ml4+O0GhTwwOm2nRrTAIZCFR4cTIF4PdRlw4HJnYj6xHbX1NTUHrf5caIPbH46OstoH4MuuMCceA5wvqFUuZvy3X/+85/NzZs3h3BoByX56ALAaO8Xzw59rl+/3q81w2B0D9nZ2d4RI0aE1YmmTzz6DKsijpQuKirynjx5Mi5PtxQUHkxcRBZoC2skov5hhqDgxrWw+Y8dO5YsV2E7zq86+iI9C6j9L774oiub/y9/+YunsbHRtvmpH1UAqJoHhAM0qeLiYrb5Ge4Bm3/p0qVNYDCsdmrGnToJyeEkrwvLldxyE3ZDggoSgMBk6mQ3NAGAftHnsGHDwokomdUVYPOvWbNG3HPPb+zxqCuxzoyIWCDtGDkSejvxAJqRNI+asOMR7VJ8X+2THIHtGX5s8zMShzlz5viRYQZVlhx0hiYA8DlsToTdYCbobcQDnGxbWFgYQD19teSXoa2seEWfAwcODKHgRqdGegDQTGDzo6SWmmevCgA8BxKEqFkoGdG1zb9161aBE3vI50K+FuqTNvqgTxwTVldX5+r5MxgdWLFihQ+TD5NLn+zqBAQjwqufkpLi19uIF1L9b6X0XrKvVaIVD4wAZ+SOHTuszi0kHrD58/Ly7FCfGnYztLGB6NBMyYiBrvwe0YA4/5YtW0LIGMTzpedP2haZH3iPsmeoZLx69Wq/3g6D0S0gzj969OiwHmdWJz4JAHilFyxY0AxzQW8nHkjbuokcgKp9rRJpG2DGhoYGgbLbnRpJMN56663k2tpae2OPvvoa7c8AryCMDaf2SOb/qLtbmwkbN25sgVDVn70qAPA3hDOSsbxeL9v8DPeQE8mO8yOrDYyoT0BDYUZMQjlJwxAWWjNxARMXx2OBebCC6v2A6DNMeGxjfe2110LXgvmp4hAEna4FGe1Mj88xrrFjHxeS8V3b/LNmzbLzLCKZGvibNKG0tDS2+RmJA2x+9cQYo5351EmPV0x4rIpLlizx6W3EA9j8BQUFAXiuofY7MT8In4PZULEW+/mRDae2k2iAEcvLy4NUbkx9BuoY8ZyUw0Rc2fwAbH7aRqwyvC4AICjxzDjOz0gYpA3pox12ToxIExCMCPUUSUGdGugGcnNzW5EvoAocnahf+CNwIm5PMz+OHyssLAzpZbTxXicILWgk0hxxFecH0tPTfageTKu7bn4Z7X1eSfKZgFCrv3MLDEY3ATX+ySef7LD5DYfJTl5u2Pzz5s1rzszMdGVz7t+/vwmhMtrMYjj0SYQEJKkt9LjNT3F++Bj0MJ/hMC4kA5WVlbmy+d99912PbMOSAqdjbwU9a/qbXsH88PZzbj8jIYDNjzg/bE4nrzuIGADCIRE2P+L8Ur224PBDm4ZDn0RQdREVOHDgQOi9997rceZHbj+q6oDhDOX303ud4KVHOTMpnDrOIowV//M//5O8IW+DF6cdIwXaUJ61LnjwnNojDLyfn5E4SLXTD7XfcJjcIFp9IByQDOTW5peMnFRRURFAEc+uVn70iXwAyVw9bvOj/ZKSkqBaTDPa2IhwDWohIPV2zpw5ze31DD0dDTugtbUVzwBhviAcn3ras878IGgjuFZqCr5OjTEY3QVsfqzCTis/TT684nvY39OnT/crt3cLxcXFrXCYYdI7mRuqwEFi0e7du4NIwuncSmIBm18ypG3z07PQxxWN6BkhBRq2+eLFi0NSKwhA0EltJyCFXmDv3r2BysrKgBSgASksLGg1cDB2dagJngUSopBbIDUvv8FgJAJS1bXj/LffEX0CYnJjAwpWN7c2/86dO5tGJo+01V0wjBOTkQMMJsnTTz/t7WmbH6E+aBjQbroyR6IRCQEQfh+ceWgTyUrIpESsHkIUJkMsZxiQBgDtAit/YWEh2/wM94DNn52d3ZHbbzhMPiJMUjmBw8uXL3dlc5LND2YgRjEc+sN3sHPBLLD5491IFC/A/JKx7JXYSRh1Reo96nsSYjqT45quhAwxPu6FoEhNTeU4PyNxmD9/vh8MFo0JaaLC8+42tx82f3V1deDxsY+L227/watuOPSNSY84/wsvvNDjdftRw6+0tLSTzW84jAkE+xvmCB0zTtdG+y1uCG0ivVeaXDil12cwGIlAbm6uD5NYX5lANJlp9Wk/Osuv3t8dFJcUtz497ml7ZTccJjsEEZXSQp+NjY3XJM4Pmx+5DNHKeOFvfA+hBCGGgqSzZ88WvXr1cnyGiSA8D2yDXrx4MZJ8/AaDkQjA5kepLH2SExEDYMIjzo9Tetza/FL1b8KhHeqqqRMYCQ5BOOAQ5+/pUJ9c+ZN37NhhO/zUTTZO48N3sL+3bdvWEeeX773r16+39yLQDr1oFKltJ7qyqWqYePbZZz/avn27x00NAQbDBtn8SO9VK/nohMneruqGpZngyuaEzS8ZxYLzy8nmJS0D79EnQoIvv/xyj9v8YP7i4mLRu3fvDiekSuqqDmbEuCLl9svf6MfpRfClIBVY1wj0tlVSr8E4cD/MrQkTJgTffPNNx/4YjG5BruIdNfyirURg1ETE+SVjJFVUlCHUZXuwDa0fYjTaWYd8dtj8OEC0U0MJBnL7pT0dBPOru/oMhVkpL4Fi7qWlpV3m9peVlQUk41r4HQgDgpnJAagzPj6j3w4bH85HChuiRiIKjujtMxjdhlz97f38kUJuIHyOCQvfQCJs/oKCgtYnnhjbUUPAcOgThDEh487n8wV72uEHm18yql2332klJsJzoMIaiOHDgdmpoQjAvn/ZvunxeMyioiKBzD4wNpytSLICwd8AjQiCcdmyZUilRtETU5o9JhySepsMhitI5rdz+/UJr7/HatSvXz8xd+7chNj8WAlvu+1qtV8nhLiWL18uEIr7oYXEA2XC9u/fb+f2q2q/4TAmEJyVqOALxlSaiRnQNKRQ80g73j7+HJCC1Sb8bZqmBycHu9k7wGBEBGz+VatW2TY/2d/qpNeZAPX0Fi1a5Mrmx2Suqa2xcPpMNOYCkdBJSUlBEQvPD60kHhAumzZtEvfcc09UbUQlXIfr8/LykIvgobZuNLQd9yVdPF7laWut8XzX6vN897bPE2rlRKFbHnLl8SPNVC/drWsAYML2DD+f1kRcgJosVzy7hl9Xaa1ESG2Vq7+FwzQ7GkowoPZXVlYGod2oQqkrDQAEIQCTKCcnp7mjwRsEoUPrzdO+GWZozyLr3D5TnD+cIy4czBYXX8oRZ198/oYbL+MaAnF+2JkU2zYcJj1eMcERc580aZK/cwvxA46yeJgfBHVcCgCzvYkewdKlS1siHZ2lOgAjETQlxP/ff/99V9pRInH5eJXvc/8cca5klDhf/JA4X/igOFf0kAgVSMofKs6UPynObs+4YcbLuIZYvXq1V07YsNMedvU9Jj9W/tTUVNc2P/bzw6n1i1/GfogHGAs1AOrq6sz2ZhIKqP01NTVW//797WdhKL9fFwL4LhrBoy9NAauj8euM0IuLrS8KhkuGHygub+orLnv7ia8L+trvL3oHiHOFg8UZ/+TwFy8u8ev3Mm5SwOZft25dE612hsNEJgLzyZUf5+a5WiVsm18yWbwrPwhjxM62nTt3mldaSxzA/IjzQ8AZDn2DSADA2YcwHDbuRNIK8DfGum/fvkBHJ9cJ//pjVcvphhnifFFfcaGgj7hYcJ/4uvgKtZX0EZdL+0nqL85tfkJcaF5w3cfLuEaAzY+SWpEq6aorH2rNyet9nVuID2Tzjxs3znEfu/q3E/WUAEBVHRxDhl2EhkO/IHoO0AwwfikIW2fMmGFHJJw275BD8LnnnrMkkqiv64Hzr5e3/MM/RVzw9hWXiiTjF90rvintLb4tb6eqPuLb6vtFqO4JEdqTFdDvZ9yEKCoq8sHbrya26ExIW1TBGB6Px9+5hfixdevWVtmOY1ahzkBOhPHBTyFXatNuMAFoL6kVcjo6SyV5qT1uCEzk9iNpCeW0qQ6A/uwgFPBsMzIyEK40O3V6jXHmaJnnVP3c0OkNg8WF/Pul6t9bCoHfi7bie69Q+f3iUkWSOLNtkjj/ihnQ72fcZCgoKPA+/fTTHTXk1Emuvsf3yH6bNm2aa5v/8OHDTSiASSf2GBpjRxJCKrWbIUKuvCa16wbYO7Br1y6b+fWNPUTok/wBcOxJDaYjtx8596ZpXqXNgOj3IJMyJyfH/KHX64PTjQuS/1kyTny16UGpCfSXZkB/8XXhA/brudLB4ovKEeJ007xgKLA2Sb+XcZMARSHy8vLsTTZYoZw2tNCkByGfPT8/P6C3Ew/ALPX19XYVGyc/AzE/+gMjYYstsvyI6XTCNatXr3YdZwfzy5XcLrKhC0KVMA70iQy/5ubmq3LtpVlk4nli/IbDePFbYGpJM8CVAE0EQnWZyWf8s6zTZY9bZ2unhE+XPWWdrnrS+mfVBCt0yLT06xk3GVAWCqswVZUBqULAaGdIyvDLzs4OfPrpp6beTqyAzS+Z387tx8pvaMxB/ZK63H5KTWjWrJmhaHsBhg4bap9m80NP8QFx/pqamiB2LkZa+akvfA+1f926dY65/YcOHTJxGnEkhyaEB5yLMDXU+643vn+n0pUzl/EjA4pDYEUnh58+2Q2FyWDzT5gwwa81ETdwwCUcZvCaO9n4JIRgW2PlhyPugw8+8CxbtqwFK7N+PQkLhNjgSzhx4kTck7g9ycfezx/pWdDzoNx+ycABHEKitwVIAZmUmppqOQk4EAQDKv+61VgYjG5Dqrre8ePH27FtVQ3XJzyYAWEwqMbIS+/cSnw4cuRIE0J90ar3oj8wIXYSSqbE9lk7u0++tkBw6NfTWKFuY0ec1ALCf/rTn/xXeuwa2NK7c+dOe2OPnuqsEgmFYY8OE5s2bfqoq3p6GRkZLdjNZzj8RjzzrKwsCDePeg+D0ePAxJVM0oTVjrLaDI2hyP7G97BlJYOE3VTVgc3f0NBgwWFG4TFiKOqLxgHmh9qPIhv6xp5Vq1ZZWOlxXST6zW9+g3CcyM3N9UdbYXHqjrzGs2LFClvTMJTfrxPGCI0FBUhx4KjelhPkCt8SKX8A7U2bNk2sXbvWo97DYPQ4cPwT7G8qOqELABBNekzgNWvWuLL5sbUVx1xBPUefaBtCAExPgkDNsENZcZyk47Sf/5133vHCg+7kOFQJ7SE9OCcnBz4LE1mCUvswJdPb7+GBl/a7NWvWLDtxR3UuqoxPgun222+zsw1RgrxjMF2gKwGA5yH/Fx71HgajRwGbH9trSQUnMpTJj1dMfJShhgquNRE3qqurWrGX3amGn9o/mBBVbFBkI9p+9m3bttleeifBpRNsbaj2KMaB3YJpaWn2oZsQMqiTB0GihutoPCQY8Zwozl9aWmrH+duH0SWiCQC0DSHMAoBxzQCbf8qUKfZZfYYy2YmR1L+RrVZeXi4kI8btUFMBm58iDLTiGw7MAEKEQdrE6LOT2q/jjTfe8CLO7pQ4pBPahRCgiALuoSw9CtHRq/r7SQDgOuziy8vL69Lm18ECgHFDAPZ37bbapgkTJzgm3GCyU7gK77HpJTU11RXjo/hkc3OzhdVWZXq9b4rzwx/hZPNHwsGDBzMXLJgXuvfe33V5BHg0crqG7H0IDGT0SfMlJptfx5gxY1ru+g/nKAB+95IlSwSShtR7GIyEY9++fX44xSIxivoZViypKvvU++MFnGuNjY12nB99Gg59qQyIjDuk3cYbE0eFncVLFodhwzs5M0E6c+ukXkPvSQDA1yBX8ZhtfhUIDz740IMWzi0wtDGBoIl4vV5x9OhRj3ofg5FwZGdn244uffKrDNO+8tuhPv3+eFFTU9MK5o/mZyDnH2x5v98f7C4joBQW4uloRzdt8F79uyuia6ENIUMRxTkjxfm7ApyM0B4MB+YHIaFJXhO43huCGDc5ELKi5Bl9wquTHttY4fD74x//6Er1f+eddzri/GRHq/0Q4+P9vffea2fDdWXzd4VXXnnFi7HDsUebmMDETra9TvheJ2gkam5/vIAZU1paGsJhH4ZD++gXzk5pApjqfQxGQvGHP/yhBVtTyb53mvxgFnjJpZ0bdlNJF8yya9cuC972SP0R80O9RohO9hmzzR8LpOnhR2gPWXqI64MBIRD0cegEQYHrQPD2d9fmJ6CQCh2VRs8ZhPapr6lTp4aj5Si4BWr5hQ57PWfqMz1/93k8p16c72k77k3Sr2PcpIBqmZubiyo2V014InmZ7e0vKCgIyetNvY1YgbPpcWQ1Qn1w6FH7lPBDf+M9edWR2x8t1OcGODZ7wYIFgYkTJ4bw+/TfrRNpDKNHj8K4umXzEz7++ONMHMEFZ6uuAdHvR3agFAAB/d5EIhTwmmeanhVnfVPE59VPiDO7UsXZA0sCoSazW1oN40eGffv22ZtRKPauT3p8BmZ97rnnhNQUMvX740FdXV0rEmrQl9oHhdpUJoOTsbCwMCg1Bo/eTiLxl7/8BQd1hqiAZzTCc0A9ASkIu23zE6RJYyETURd+hmICQEORz6zHBMDpfZnJXzXPsi42jBWX/I+IS5WDxfmqR8TpqqfFmfrZln494yaEXAFNVOtRJ6FKUEOxYkvb2ZXNjzg/1H5ifqNd2JC6T/1DEGALLDzflNvfk8jLyzPhyFM1EieSl9refsm4ccf5dWRnZ3tRHk19Dmo/eIUQlII5iEiJdnvC8P3/2Ri8tH20+H7nEPHvxsHiX1v7i7bi+8WF/AHiXNlIcaF5oSsTh3GDAx511KCnsJ8+EcGU2NkHIaHfGyvI5kd6rKGsbiD0gz5oLwGYEH6GLVu2hK4F80sb3i5Vpv92lTA+CEHkH8Sa2x8JqKFommYTHHto11Cegy4AHnnkYQGhqTWRUHx/fJk4t3WY+K7mAfHvugfEd75+om1TH/GNt7d8vV+aBWNFaEd6a+gAF/m4KYGTYuD8U/Pr1YkIwTBp0qSQVHc92q0xAatXc3NzAKfdOFW9AamrP44Sy8/PDx0+fNijttMTmDlzZiZ8DJEckSAIJkrvXbNmjSubH1i2bJkfm5woAmEoQlB9DjAN5Phc99cVzgWetz7zPSUu++Tqv6W/Xdfv29Le4psCKQAkXSpPEmdqxokLL+cEwnzwx80HqZJ7wATqZFRp8IODxaJFiwL6fbFi27ZtrVOnTnXMKgQRk4EQXpTM3+04fzzIyMgwpaYRIqGk/24aKzYkwTxIhM0vV/+r6ikYWt/4/M677hRzs+Zih6JHbyPRCAW8ns93LhRfbh4l2vyDpBDoJ76tul+0lfURXxdLTaCyrwhVPyLO7lkkLh7t2ZOUGNcBjY2NQYTBnJgTBNt/x44d3RIAOGqaNvbo7dOEh9qPFRbe7g0bNqAEdo+r/TgjD0eSkc1vRBEACNHFsp+/K0jm90ot4qqzAvBe/RvPA36Gurq65u7mFsSDUMDX68yBZf4z2yaLi1seEd9u7ivaKqUZUCSFQP59UhDcL86VDxan69LEmaZlHv1+xo8c0tbuOEZbn5SgtLQ07O2P2/knmb9l+vTpV7WnE1Y8eN+R3tuTR3UBOKhTaiNeJO84FRmh3w9tBCs/vP2JsPmzs7PtcxP0bEddAOBZjBkzJlxSUhL383aLb99c6w/tTg9fkKv95cIB4utN/cRlUHF/8WXxo+Lz+rTQ6X1LevT/w7gOQHad09ZborFjx1rq9bHggw8+SFqwYIGFasD6RNcJFXrXrl3b4zY/CpRI7SKI1ZX2A5Aaro6PHH4Iv+Xl5bm2wefPn+9Hn2pfOsnLbD8E/B+rVq3y6W1cK1w6ssH7VWOKOF84TFyQQuBS0QBxoWSI+HzzJPFZXYapX8+4CYBQm1O9PZqcU6ZMiVsAoMgl9tOrxTINB+YHrVmzJtiTWW4A4vzNzc0hRCF0xndiRFQ1kszv2ubHWYmIaDgV+6Q+SeDANzBnzhx/pwauAy4GcptDOxeIL33jxJflY0RoW6oI7V7xUVuAMwNvSshJepVTCoS/oQrPnh1/MohkaHPmzJkdqbW6cFEJR3yp9/YECgoKTDC/HoVQmRC/FYwKjWTjxo2ubX65knsff/xxu56C+lzVXAP0iz4RZl28eHEzzAW9nUj47kS191zLBuvzPfOtU82zrbY/eK3wSZ9rFR0+gdCBVZ4z9dM9p6o8nlDTs562A8z8Ny1QyEMVADoNHz48bgZFiuvy5cvtDS400fV2iRBbh6rtdrWNhOnTp3vRR7RQH8YHLcjNfn4CmHj16tVNSBXWtzerRP3CGSmZPy6bv+1EsXl+/0JxdvPj4vyWR8Xl7SPF+V1Pii93z0fbDEbskCuwXR2XVmmdOZAjjzLb+n1dQdr1OOyi08lBhkP7WCGTRyUj5RcltGJeAWPBwoULM2F/qyaO3j+FICEkcnJyXNv8sk8/1Hna4Wg4MD8IAgmbnJYsWeJT7+8Kba3epPOvLAl8VfuEuFg2UHztHyS+axgo2hqGijO+8eKiXLH1exiMiJBMZ4fgIjHI+PHjxbFjxwL6fbEAVX4oxBiNIARQexC58Xob3UVWVpYpmTpEKjjI0FZgEFZpMD+KmZaVlSV1biU+IM4Pb7++s08nPGtcl5KS4ldujwkXj+Z6zr+0WHxVOVxcKEmyY/ff1j9k07mqUSLUmJmwZ8i4BbBu3TovbYIxHAQAVimc7qPfFwtOnjyZvHnzZjvVluxsvX0irIhwmEmB5EoFB+bPn+8ZN25cWN/dZ7T/PryCMCZ43rtTw08H4vx0VqLhwPREeAZ4pgsWLOjWWYmhgOkJ7Z0jzvkeFRcrBou2uofE99sHi+9eeERcrEsW/2xMZwHAiB3INsPuPKeJC2aBHS9Xq1Y5v5M63RgjcH6etKuDSKiJVGlIJajP8AnEU1FXxe7du+1EGkq11dsnAQBGBPNLxnclcGDzr1q1qgltoU1DeXb0HoTxwNcyfPjwsJltxmXzqwgFlnm+ejFNnK0aKi6VDxBtNQ+K7xsG2ELgYv0IKQBSWAAwYgdO70EkwKlqLiYxrZK1tbUoSRX3igXAh4Da/Qiv6cyoEhiIYvAVFRWBeDPhYPPDlFDVfifC91DBly9f7trmx6GdEFokbIz250aEv0H4HqZG9qpsn9ZEXDhz2PSc3TVbnC8eJL4u6iO+rhoovqtLEt9skyaAb5g4XTONBQAjdoCpi4qKWpz2whvtkxnCAYUrUFNPvz9WQAggFg+fANR9MKGhCRsQmQpg5PLy8pgnM3L7R48e3cnm1wlt43sINNTYc2vzl5SU+FDSLNo2YnIyQuCkpaX59TbiRSiw1vNVc5YIFT54JVW3tL9o2zJItNU+JM5UPSrO1KTG/MwYDBtytTXh7NOZx1AYFNWC1q1bF9RujQswB1CPDwwIz7yTT8Bo7w9jgdkQS1gONr+8NqweA6a3S4RQ3+rVq13b/EjXhc1PEQan3wCCRgObf9GiRc2m6b7CTltrmefiq9niy9LHxMX8/uJyQT9bC7hYM1ScKk8WF/evYQHAiB8pKSktOP3GUCavSpjkSFiRpgBO4ul2wgkcg/AJkJ3uxDQg9AeCei1NlFYcE96poXbMmjXLzu1X21LbxCut/GD+0tLSLgVKNEBwbNiwoQmHkTr1SYT+QFLtjzvO3xUuHM3N/GLbjNA5CIGih8WFsofEV/6R4uwLM1wJaMYtDNTNl8zWsVsNpDMmGAl72aUQsFDbT70/Hjj5BIwIQofMAZTd1vMEli1bZsf5nTQJ1SbH9+grETb/ihUr/FD7wdxqqrPeN8wmZBVK7cSnt5EInN6zxDxdOytwtj5TnN06M3TK7wl8VufptmBmMAypnlsov61OZkMRBiBMfKzKEAJuSlXhYI+9e/d2+ARUD7pOJATk6m3hXlQkhlMyOTnZcT+/ei/Gi/Biomx+mCW6kNT7JifjzJkz/Z1bSDwuHSszLx7gffqMBADbcbGFl5x0TgIAhNVt3LhxcAq6UjnhE5BMade9jyYAqE+s9i+99JLV0tISgs9CPb1IZUD1PexvqSkkxOZHbgGNU2d8InyP3zN37txuxfkZjOsKySweKt+lCgCQOtHxNyIH+/fvd+UTwL01NTV2noCar++UlwBC1SAUDHVieP1vJCCtWbPGtc2fl5fXhBCeyvxk4+Mz8lfgmcEZKU2NhNr8DMY1A2x77NAjJ52hMaDObPAJ1NfXu/YJ4OAPmBZgKDIJVAGk9huNcC3uTUpKQrada5sfNfxwYvGdd17Z2EP9EOPjPV7xrNCn2zg/g3HdAdu+qKjIFgJGFwwIRkDlnEQIAalNhBBuhLpPq6veXyQy2sdJcf4lS5YEupu9SIDNr0Yr5Ecdqz3+pleMExEGaT75tSYYjB8npH2PmL1dL1D1B+iMB8KKDZv80KFDrnwCCBHCJ4Bwo6pe6/3pREyJe2CWSOb/KJ699U4oKCiw4/y6L0QVAPgOwgHPKC0tjW1+xs2HysqKIFZ4ShXWmU8lqMAou+XGJwDH4LZt24I4vJPsbDCZamurRH3jGjjfpObi2uaXwqMJlYCRWKSbIiphbNjyvGjRIrb5GTcnkICTn59vQcXFSh9tRZaXo36AaGxsdGUOIEQotY8Qkm0geMCE0QhjwrWSEV3b/Ijzw68Bh55qghga8+M7aCoLFy70dW6BwbjJgJ15GzZs6HAMElPoq7C81GZYOM22b99uoTio3laswGGg9fX1IWQnUj8qw9Pf6A/Mnwibv6KiwgdtR/9NRPgbfWLlR59s8zNuGcAnUFpaGkQYjhiRVHNiShIKUJ0nT55shwj1duLBsWPHklG0tG/fvh2rMdoHAxrtDAmzIycnx7XNjzj/lClTOmx+J+anvmFqpKens83PuPUAIQD7HMxPzKJqArQy4zsk4cAnALtebydWvPXWW8nSLg/iaC419ZY22cBe1++JB2Tz02+i9lUhQK/4bbD558+fzzY/49YEmQMItYFhIqnm9IroAMwBiSS9rViBst7V1dUBqXKHcYwZUnvT0tLsTUL6tfHCNE07zu+0O9FQVn58hxAl2/yMWx4QAnl5uRY22MAGhyBQzQGV8D02z+zYscOVTwDA+QHZ2dkmCo4eOXLEdNteVVWVj8qFq1qMLgCgzcDUmDBhgl9vg8G4JYEz/IqLi22fgLpKOhFy9j0ejzh48KArn0AiUVlZ6Z08eXJYPxbd0Lz9+Ay/UWogAtWTOjXCYNzqkPZzcPjwR+1VlOL2lMRDRMIBNjuEABJ+9HauFcjmhxmBMTkxPYgEAsf5GYwowIEea9assX0CqhDQtQASAthFmAhzoLuQJoQfY1AdikY706spvxgrsgrZ5mcwugB8AtIut7AHXnUE6gKA7Gl49JEsdK2FwObNm+04v9NZfSCME68YJxx+kyZN8iu3MxiMSECewKZNm4KUuKNqAbpzDY5BZAwiRKi301OQNrxX9mnH+Q0H5icim7+iooJtfgYjXsAngL39CKuRENAFAKnZSKgJBAI96hOg/fx6JR+dMCaYMAgzNjQ0hFF1SGmGwWDEApgDa9ausYYMeUiu9Ff2DugCwFAYD9GBPXv2uMoTiAbE+ZGLQIeSGA7MD4KgQm7/li1bQpL5TaUJBoMRD8gn8MgjDzsW91AJ5sBTTz1lC4FE+wSQ208rv9q/KojoPWx+v98v/vu//ztTa4bBYMSLuro65PEH77uv91UMqBK0A8TiUYtw7969CfMJILdfrvwdNr8uANAv3uN7+C1wTPqJEyc43MdgJBKFhYXBxx4b7nj0mE69e/fGKhyUK3e3fQJHjx71ZGRkdNTtNxSmxysYn0KAeD948OBwVVWVxTY/g9EDgDmwbt1aa/DgQR2rbjRCIc/MzEyrsbHRbG1tjWu3nRQ2mZJsW17vS9dA8H2fPn2EvN5S22AwGAkGkoVWrVplwcPeVRgOjPnrX//adg4uX77cev311wOffPKJ+UNrnYEIQktLS2DevHn2OQEUhlSdjqq9TyFKlPF64okn/H/961/Z5mcwehrwCcAc+O3vfhvVKUifQ01HPB479aQwCEErwGq9a9cuC5mEUNvz8vIsaecHn3jyCfta+BLULcq6EADBLEB9gZKSEnH48GGPMkQGg9HTQLIQdhHSiT5dEdUdwHsIDvgScC/tQlTzDNT71JUfhGtwLfYASGEURtkxg8FgXFv4fD7bHMDega7MASJ1BScVHsxMr/r1TveB4BsoLy8PSbPBNBgMxvUBfAJSE7Bw3h8YE4ysO+0SQWgTBG0B/ofNmzeLDz/8kG1+BuN6A+cQ7t69OwhNQD3jL1FEqz58CThxKCcnpxkhQoPBYNw4KC4uTl66dGkQTHrXXXddxcjdJTA+PP2LFi2y9u/fzwk+DMaNCjjkSktLEcoLYw8+NhI5ZQ/qNj19RlEFqPuoSIw2hg4dapmmGejcE4PBuGGB7bdSEDRv3LjRLiaK/Hw6pVgn8urDvr/77rvtLMIxY8bgfIBgWlqaWVZWlqS3z2AwbnBYltUL8fnMzEwP9gbgrMAVK1aIadOm2cVFEcYD4fQefLZs2TJk84Ga09PTPahLoLfJYDAYDAaDwWAwGAwGg8FgMBgMBoPBYDAYDAaDwWAwGAwGg8FgMBgMBoPBYDAYDAaDwWAwGAwGg8FgMBgMBoPBYDAYDAaDwWAwGAwGg8FgMBgMBoPBYDAYDAaDwWAwGAwGg8FgMBgMBoPBYDAYDAaDwWAwGAwGg8FgMBgMBoPBuLHx/wF/KenXydwZIgAAAABJRU5ErkJggg==";
@@ -2606,9 +2800,93 @@ var walletConnectingImage = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQAAA
2606
2800
  var walletConnectImage = "data:image/png;base64,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";
2607
2801
  var walletSigningImage = "data:image/png;base64,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";
2608
2802
 
2803
+ // src/components/WalletModalContent/index.tsx
2804
+ var import_jsx_runtime57 = require("react/jsx-runtime");
2805
+ function WalletModalContent({
2806
+ status,
2807
+ error,
2808
+ disconnect,
2809
+ setError,
2810
+ setVisible,
2811
+ visible,
2812
+ address,
2813
+ connected
2814
+ }) {
2815
+ const pageData = (0, import_react16.useMemo)(() => {
2816
+ if (status == "success") {
2817
+ return {
2818
+ btnText: "Disconnect Wallet",
2819
+ btnClick: async () => {
2820
+ await disconnect();
2821
+ },
2822
+ text: "Wallet connection successful!",
2823
+ statusImage: walletConnectedImage
2824
+ };
2825
+ }
2826
+ if (status == "error") {
2827
+ return {
2828
+ text: error,
2829
+ btnText: "Reconnect Wallet",
2830
+ btnClick: async () => {
2831
+ setError("");
2832
+ await disconnect();
2833
+ setVisible(true);
2834
+ },
2835
+ statusImage: walletErrorImage,
2836
+ isError: true
2837
+ };
2838
+ }
2839
+ if (status == "nonce") {
2840
+ return {
2841
+ btnLoading: true,
2842
+ text: "Connecting",
2843
+ statusImage: walletConnectingImage
2844
+ };
2845
+ }
2846
+ if (status == "signer") {
2847
+ return {
2848
+ btnLoading: true,
2849
+ text: "Signing",
2850
+ statusImage: walletSigningImage
2851
+ };
2852
+ }
2853
+ if (visible) {
2854
+ return {
2855
+ btnLoading: true,
2856
+ text: "Connecting",
2857
+ statusImage: walletConnectingImage
2858
+ };
2859
+ }
2860
+ return {
2861
+ btnText: "Connect Wallet",
2862
+ btnClick: () => {
2863
+ setVisible(true);
2864
+ },
2865
+ text: "Please Connect your wallet",
2866
+ statusImage: walletConnectImage
2867
+ };
2868
+ }, [visible, connected, status, error, address]);
2869
+ return /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("div", { className: "matchid-wallet-container", children: /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)("div", { className: `matchid-wallet-box`, children: [
2870
+ /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)("div", { className: `matchid-wallet-content`, children: [
2871
+ /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("img", { src: pageData.statusImage }),
2872
+ /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("div", { className: pageData.isError ? "text-[#F7585E]" : "", children: pageData.text })
2873
+ ] }),
2874
+ /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
2875
+ Button,
2876
+ {
2877
+ block: true,
2878
+ size: "lg",
2879
+ onClick: pageData.btnClick,
2880
+ loading: pageData.btnLoading,
2881
+ disabled: pageData.btnDisabled,
2882
+ children: pageData.btnText
2883
+ }
2884
+ )
2885
+ ] }) });
2886
+ }
2887
+
2609
2888
  // src/components/SOLModal/index.tsx
2610
- var import_react_intl11 = require("react-intl");
2611
- var import_jsx_runtime54 = require("react/jsx-runtime");
2889
+ var import_jsx_runtime58 = require("react/jsx-runtime");
2612
2890
  function WalletContent({
2613
2891
  onSuccess,
2614
2892
  type
@@ -2616,17 +2894,17 @@ function WalletContent({
2616
2894
  const { setVisible, visible } = (0, import_wallet_adapter_react_ui.useWalletModal)();
2617
2895
  const wallet = (0, import_wallet_adapter_react.useWallet)();
2618
2896
  const { events, login } = useMatch();
2619
- const [status, setStatus] = (0, import_react16.useState)("");
2620
- const statusRef = import_react16.default.useRef(status);
2621
- const [error, setError] = (0, import_react16.useState)("");
2622
- (0, import_react16.useEffect)(() => {
2897
+ const [status, setStatus] = (0, import_react17.useState)("");
2898
+ const statusRef = import_react17.default.useRef(status);
2899
+ const [error, setError] = (0, import_react17.useState)("");
2900
+ (0, import_react17.useEffect)(() => {
2623
2901
  const init = async () => {
2624
2902
  await wallet.disconnect();
2625
2903
  setVisible(true);
2626
2904
  };
2627
2905
  init();
2628
2906
  }, []);
2629
- (0, import_react16.useEffect)(() => {
2907
+ (0, import_react17.useEffect)(() => {
2630
2908
  if (wallet.connected) {
2631
2909
  console.log("wallet.connected", wallet.connected);
2632
2910
  toLoginInWallet();
@@ -2687,77 +2965,19 @@ function WalletContent({
2687
2965
  statusRef.current = "";
2688
2966
  }
2689
2967
  };
2690
- const pageData = (0, import_react16.useMemo)(() => {
2691
- if (status == "success") {
2692
- return {
2693
- btnText: "Disconnect Wallet",
2694
- btnClick: async () => {
2695
- await wallet.disconnect();
2696
- },
2697
- text: "Wallet connection successful!",
2698
- statusImage: walletConnectedImage
2699
- };
2700
- }
2701
- if (status == "error") {
2702
- return {
2703
- text: error,
2704
- btnText: "Reconnect Wallet",
2705
- btnClick: async () => {
2706
- setError("");
2707
- await wallet.disconnect();
2708
- setVisible(true);
2709
- },
2710
- statusImage: walletErrorImage,
2711
- isError: true
2712
- };
2713
- }
2714
- if (status == "nonce") {
2715
- return {
2716
- btnLoading: true,
2717
- text: "Connecting",
2718
- statusImage: walletConnectingImage
2719
- };
2720
- }
2721
- if (status == "signer") {
2722
- return {
2723
- btnLoading: true,
2724
- text: "Signing",
2725
- statusImage: walletSigningImage
2726
- };
2727
- }
2728
- if (visible) {
2729
- return {
2730
- btnLoading: true,
2731
- text: "Connecting",
2732
- statusImage: walletConnectingImage
2733
- };
2968
+ return /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(
2969
+ WalletModalContent,
2970
+ {
2971
+ connected: wallet.connected,
2972
+ disconnect: wallet.disconnect,
2973
+ address: wallet.publicKey?.toBase58(),
2974
+ visible,
2975
+ setVisible,
2976
+ error,
2977
+ setError,
2978
+ status
2734
2979
  }
2735
- return {
2736
- btnText: "Connect Wallet",
2737
- btnClick: () => {
2738
- setVisible(true);
2739
- },
2740
- text: "Please Connect your wallet",
2741
- statusImage: walletConnectImage
2742
- };
2743
- }, [visible, wallet.connected, status, error, wallet.publicKey]);
2744
- return /* @__PURE__ */ (0, import_jsx_runtime54.jsx)("div", { className: "matchid-wallet-container", children: /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)("div", { className: `matchid-wallet-box`, children: [
2745
- /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)("div", { className: `matchid-wallet-content`, children: [
2746
- /* @__PURE__ */ (0, import_jsx_runtime54.jsx)("img", { src: pageData.statusImage }),
2747
- /* @__PURE__ */ (0, import_jsx_runtime54.jsx)("div", { className: pageData.isError ? "text-[#F7585E]" : "", children: pageData.text })
2748
- ] }),
2749
- /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
2750
- Button,
2751
- {
2752
- block: true,
2753
- size: "lg",
2754
- onClick: pageData.btnClick,
2755
- loading: pageData.btnLoading,
2756
- disabled: pageData.btnDisabled,
2757
- children: pageData.btnText
2758
- }
2759
- )
2760
- ] }) });
2980
+ );
2761
2981
  }
2762
2982
  var wallets = [
2763
2983
  new import_wallet_adapter_wallets.PhantomWalletAdapter(),
@@ -2806,22 +3026,589 @@ function SOLModal({
2806
3026
  ...props
2807
3027
  }) {
2808
3028
  const intl = (0, import_react_intl11.useIntl)();
2809
- return /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(ModalWithHeader, { ...props, title: props.title || intl.formatMessage({
3029
+ return /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(ModalWithHeader, { ...props, title: props.title || intl.formatMessage({
2810
3030
  id: type == "bind" ? "bindWith" : "loginWith"
2811
3031
  }, {
2812
3032
  name: "SOL"
2813
- }), children: /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_wallet_adapter_react.ConnectionProvider, { endpoint: (0, import_web3.clusterApiUrl)("devnet"), children: /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_wallet_adapter_react.WalletProvider, { wallets, autoConnect: true, children: /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_wallet_adapter_react_ui.WalletModalProvider, { children: /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(WalletContent, { onSuccess, type }) }) }) }) });
3033
+ }), children: /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(import_wallet_adapter_react.ConnectionProvider, { endpoint: (0, import_web3.clusterApiUrl)("devnet"), children: /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(import_wallet_adapter_react.WalletProvider, { wallets, autoConnect: true, children: /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(import_wallet_adapter_react_ui.WalletModalProvider, { children: /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(WalletContent, { onSuccess, type }) }) }) }) });
3034
+ }
3035
+
3036
+ // src/components/TronModal/index.tsx
3037
+ var import_react18 = __toESM(require("react"));
3038
+ var import_react_intl12 = require("react-intl");
3039
+ var import_jsx_runtime59 = require("react/jsx-runtime");
3040
+ function WalletContent2({
3041
+ onSuccess,
3042
+ type
3043
+ }) {
3044
+ const { events, login } = useMatch();
3045
+ const disconnect = async () => {
3046
+ };
3047
+ const [status, setStatus] = (0, import_react18.useState)("");
3048
+ const statusRef = import_react18.default.useRef(status);
3049
+ const [error, setError] = (0, import_react18.useState)("");
3050
+ const [visible, setVisible] = (0, import_react18.useState)(false);
3051
+ const [walletAddress, setWalletAddress] = (0, import_react18.useState)("");
3052
+ const [connected, setConnected] = (0, import_react18.useState)(false);
3053
+ const checkConnection = () => {
3054
+ if (window.tronWeb && window.tronWeb.defaultAddress && window.tronWeb.defaultAddress.base58) {
3055
+ const address = window.tronWeb.defaultAddress.base58;
3056
+ matchlog_default.log("tron address", address);
3057
+ setWalletAddress(address);
3058
+ setConnected(true);
3059
+ } else {
3060
+ setWalletAddress("");
3061
+ setConnected(false);
3062
+ }
3063
+ };
3064
+ (0, import_react18.useEffect)(() => {
3065
+ if (typeof window.tronWeb !== "undefined") {
3066
+ checkConnection();
3067
+ const interval = setInterval(() => {
3068
+ checkConnection();
3069
+ }, 1e3);
3070
+ return () => clearInterval(interval);
3071
+ } else {
3072
+ }
3073
+ }, []);
3074
+ (0, import_react18.useEffect)(() => {
3075
+ const init = async () => {
3076
+ setVisible(true);
3077
+ };
3078
+ init();
3079
+ }, []);
3080
+ (0, import_react18.useEffect)(() => {
3081
+ if (connected) {
3082
+ toLoginInWallet();
3083
+ }
3084
+ }, [connected]);
3085
+ const toLoginInWallet = async () => {
3086
+ if (statusRef.current) return;
3087
+ try {
3088
+ setStatus("nonce");
3089
+ statusRef.current = "nonce";
3090
+ const res = type == "bind" ? await getWalletInitApi({ address: walletAddress }) : await getWalletNonceApi({ address: walletAddress });
3091
+ if (!isSuccess(res)) {
3092
+ throw new Error(res.message);
3093
+ }
3094
+ const nonce = res.code >= 0 ? res.data.nonce : null;
3095
+ if (nonce) {
3096
+ setStatus("signer");
3097
+ statusRef.current = "signer";
3098
+ const message = "By signing, you are proving you own this wallet and logging in. This does not initiate a transaction or cost any fees.Nonce:" + res.data.nonce;
3099
+ const encodedMessage = new TextEncoder().encode(message);
3100
+ const signedMessage = await window.tronWeb.trx.signMessageV2(encodedMessage);
3101
+ let obj = {
3102
+ type: "Tron",
3103
+ address: walletAddress,
3104
+ signature: Buffer.from(signedMessage).toString("base64"),
3105
+ message,
3106
+ connector_type: "Tron",
3107
+ wallet_client_type: "TronLink"
3108
+ };
3109
+ const res1 = type == "bind" ? await toBindWalletApi(obj) : await loginByWalletApi(obj);
3110
+ if (res1) {
3111
+ if (!isSuccess(res1)) {
3112
+ throw new Error(res1.message);
3113
+ }
3114
+ matchlog_default.log(res1);
3115
+ setStatus("success");
3116
+ statusRef.current = "success";
3117
+ if (type == "bind") {
3118
+ events.onBind && events.onBind({
3119
+ type: "tron"
3120
+ });
3121
+ eventManager_default.emit("onBind", {
3122
+ type: "tron"
3123
+ });
3124
+ } else {
3125
+ await login({
3126
+ mid: res1.data.mid,
3127
+ token: `${res1.data.token_type} ${res1.data.access_token}`
3128
+ });
3129
+ }
3130
+ onSuccess && onSuccess();
3131
+ }
3132
+ }
3133
+ } catch (error2) {
3134
+ setStatus("error");
3135
+ setError(error2.message);
3136
+ statusRef.current = "";
3137
+ }
3138
+ };
3139
+ return /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(
3140
+ WalletModalContent,
3141
+ {
3142
+ connected,
3143
+ disconnect,
3144
+ address: walletAddress,
3145
+ visible,
3146
+ setVisible,
3147
+ error,
3148
+ setError,
3149
+ status
3150
+ }
3151
+ );
3152
+ }
3153
+ function TronModal({
3154
+ type = "login",
3155
+ onSuccess,
3156
+ ...props
3157
+ }) {
3158
+ const intl = (0, import_react_intl12.useIntl)();
3159
+ return /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(ModalWithHeader, { ...props, title: props.title || intl.formatMessage({
3160
+ id: type == "bind" ? "bindWith" : "loginWith"
3161
+ }, {
3162
+ name: "Tron"
3163
+ }), children: typeof window.tronWeb === "undefined" ? /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(Button, { onClick: () => {
3164
+ window.open("https://chromewebstore.google.com/detail/tronlink/ibnejdfjmmkpcnlpebklmnkoeoihofec");
3165
+ }, children: "Install TronLink extension" }) : /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(WalletContent2, { onSuccess, type }) });
3166
+ }
3167
+
3168
+ // src/components/BTCModal/index.tsx
3169
+ var import_react20 = __toESM(require("react"));
3170
+ var import_react_intl13 = require("react-intl");
3171
+
3172
+ // src/lib/btc/UnisatAdapter.ts
3173
+ var UnisatAdapter = class {
3174
+ constructor() {
3175
+ this.name = "Unisat Wallet";
3176
+ this.website = "https://unisat.io/";
3177
+ this.walletKey = "unisat";
3178
+ }
3179
+ async isInstalled() {
3180
+ return typeof window.unisat !== "undefined";
3181
+ }
3182
+ async checkChain() {
3183
+ const chain = await window.unisat.getChain();
3184
+ if (chain.enum != "BITCOIN_MAINNET") {
3185
+ await window.unisat.switchChain("BITCOIN_MAINNET");
3186
+ }
3187
+ }
3188
+ async connect() {
3189
+ if (!await this.isInstalled()) throw new Error("Unisat Wallet is not installed");
3190
+ window.unisat.disconnect();
3191
+ await this.checkChain();
3192
+ const accounts = await window.unisat.getAccounts();
3193
+ console.log("accounts", accounts);
3194
+ if (accounts.length === 0) {
3195
+ const accounts2 = await window.unisat.requestAccounts();
3196
+ console.log("accounts", accounts2);
3197
+ if (!accounts2 || accounts2.length === 0) throw new Error("No accounts found in Unisat Wallet");
3198
+ return accounts2[0];
3199
+ }
3200
+ return accounts[0];
3201
+ }
3202
+ async signMessage(message) {
3203
+ if (!await this.isInstalled()) throw new Error("Unisat Wallet is not installed");
3204
+ return window.unisat.signMessage(message, "bip322-simple");
3205
+ }
3206
+ };
3207
+
3208
+ // src/lib/btc/XverseAdapter.ts
3209
+ var import_sats_connect = require("sats-connect");
3210
+ var XverseAdapter = class {
3211
+ constructor() {
3212
+ this.name = "Xverse Wallet";
3213
+ this.website = "https://www.xverse.app/";
3214
+ this.capabilities = null;
3215
+ this.address = "";
3216
+ this.network = import_sats_connect.BitcoinNetworkType.Mainnet;
3217
+ this.walletKey = "xverse";
3218
+ }
3219
+ async isInstalled() {
3220
+ return new Promise(async (resolve) => {
3221
+ try {
3222
+ await (0, import_sats_connect.getCapabilities)({
3223
+ onFinish: (response) => {
3224
+ console.log(response);
3225
+ this.capabilities = new Set(response);
3226
+ resolve(true);
3227
+ },
3228
+ onCancel() {
3229
+ },
3230
+ payload: {
3231
+ network: {
3232
+ type: this.network
3233
+ }
3234
+ }
3235
+ });
3236
+ } catch (err) {
3237
+ console.log(err);
3238
+ resolve(false);
3239
+ }
3240
+ });
3241
+ }
3242
+ async connect() {
3243
+ if (!await this.isInstalled()) throw new Error("Xverse Wallet is not installed");
3244
+ const response = await (0, import_sats_connect.request)("getAccounts", {
3245
+ purposes: [import_sats_connect.AddressPurpose.Ordinals],
3246
+ message: "SATS Connect Demo"
3247
+ });
3248
+ console.log("getAccounts ~ response:", response);
3249
+ if (response.status === "success") {
3250
+ const ordinalsAddressItem = response.result.find(
3251
+ (address) => address.purpose === import_sats_connect.AddressPurpose.Ordinals
3252
+ );
3253
+ this.address = ordinalsAddressItem?.address || "";
3254
+ return ordinalsAddressItem?.address || "";
3255
+ } else {
3256
+ if (response.error) {
3257
+ console.error(response.error);
3258
+ throw new Error("Error getting accounts. Check console for error logs");
3259
+ }
3260
+ throw new Error("Error getting accounts");
3261
+ }
3262
+ }
3263
+ async signMessage(message) {
3264
+ if (!await this.isInstalled()) throw new Error("Xverse Wallet is not installed");
3265
+ return new Promise(async (resolve, reject) => {
3266
+ await (0, import_sats_connect.signMessage)({
3267
+ payload: {
3268
+ network: {
3269
+ type: this.network
3270
+ },
3271
+ address: this.address,
3272
+ message
3273
+ },
3274
+ onFinish: (response) => {
3275
+ resolve(response);
3276
+ },
3277
+ onCancel: () => {
3278
+ reject("User cancelled");
3279
+ }
3280
+ });
3281
+ });
3282
+ }
3283
+ };
3284
+
3285
+ // src/lib/btc/LeatherAdapter.ts
3286
+ var LeatherAdapter = class {
3287
+ constructor() {
3288
+ this.name = "Leather Wallet";
3289
+ this.website = "https://leather.io/";
3290
+ this.walletKey = "leather";
3291
+ }
3292
+ async isInstalled() {
3293
+ return typeof window.LeatherProvider !== "undefined";
3294
+ }
3295
+ async connect() {
3296
+ if (!await this.isInstalled()) throw new Error("Leather Wallet is not installed");
3297
+ const response = await window.LeatherProvider?.request("getAddresses");
3298
+ console.log("Addresses:", response.result.addresses);
3299
+ return response.result.addresses[0].address;
3300
+ }
3301
+ async signMessage(message) {
3302
+ if (!await this.isInstalled()) throw new Error("Hiro Wallet is not installed");
3303
+ const response = await window.LeatherProvider?.request("signMessage", { message });
3304
+ console.log("response", response);
3305
+ return response.result.signature;
3306
+ }
3307
+ };
3308
+
3309
+ // src/hooks/useBTCWallet.ts
3310
+ var import_react19 = require("react");
3311
+ var useBTCWallet = () => {
3312
+ const wallets2 = [new UnisatAdapter(), new XverseAdapter(), new LeatherAdapter()];
3313
+ const [installedWallets, setInstalledWallets] = (0, import_react19.useState)([]);
3314
+ const [address, setAddress] = (0, import_react19.useState)(null);
3315
+ (0, import_react19.useEffect)(() => {
3316
+ const getInstalled = async () => {
3317
+ const installed = await Promise.all(wallets2.map((wallet2) => wallet2.isInstalled().then((isInstalled) => ({
3318
+ wallet: wallet2,
3319
+ isInstalled
3320
+ }))));
3321
+ setInstalledWallets(installed.filter(({ isInstalled }) => isInstalled).map(({ wallet: wallet2 }) => wallet2));
3322
+ };
3323
+ getInstalled();
3324
+ }, []);
3325
+ const [wallet, chooseWallet] = (0, import_react19.useState)(null);
3326
+ const onConnect = async () => {
3327
+ setAddress(await wallet.connect());
3328
+ };
3329
+ (0, import_react19.useEffect)(() => {
3330
+ if (!wallet) {
3331
+ setAddress(null);
3332
+ }
3333
+ }, [wallet]);
3334
+ return {
3335
+ installedWallets,
3336
+ wallets: wallets2,
3337
+ chooseWallet,
3338
+ wallet,
3339
+ address,
3340
+ onConnect
3341
+ };
3342
+ };
3343
+
3344
+ // src/components/BTCModal/index.tsx
3345
+ var import_jsx_runtime60 = require("react/jsx-runtime");
3346
+ function BTCModal({
3347
+ type = "login",
3348
+ onSuccess,
3349
+ ...props
3350
+ }) {
3351
+ const isDownMd = useDownMd();
3352
+ const intl = (0, import_react_intl13.useIntl)();
3353
+ const { wallets: wallets2, installedWallets, chooseWallet, wallet, address, onConnect } = useBTCWallet();
3354
+ const iconMaps = {
3355
+ leather: /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(LeatherIcon, { size: isDownMd ? 36 : 40 }),
3356
+ unisat: /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(UnisatIcon, { size: isDownMd ? 36 : 40 }),
3357
+ xverse: /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(XverseIcon, { size: isDownMd ? 36 : 40 })
3358
+ };
3359
+ const { events, login } = useMatch();
3360
+ const [status, setStatus] = (0, import_react20.useState)("");
3361
+ const statusRef = import_react20.default.useRef(status);
3362
+ const [error, setError] = (0, import_react20.useState)("");
3363
+ const connected = (0, import_react20.useMemo)(() => {
3364
+ return !!address;
3365
+ }, [address]);
3366
+ const disconnect = async () => {
3367
+ setStatus("");
3368
+ chooseWallet(null);
3369
+ };
3370
+ const toLoginInWallet = async () => {
3371
+ if (statusRef.current || !address || !wallet) return;
3372
+ try {
3373
+ setStatus("nonce");
3374
+ statusRef.current = "nonce";
3375
+ const res = type == "bind" ? await getWalletInitApi({ address }) : await getWalletNonceApi({ address });
3376
+ if (!isSuccess(res)) {
3377
+ throw new Error(res.message);
3378
+ }
3379
+ const nonce = res.code >= 0 ? res.data.nonce : null;
3380
+ if (nonce) {
3381
+ setStatus("signer");
3382
+ statusRef.current = "signer";
3383
+ const message = "By signing, you are proving you own this wallet and logging in. This does not initiate a transaction or cost any fees.Nonce:" + res.data.nonce;
3384
+ const signedMessage = await wallet.signMessage(message);
3385
+ let obj = {
3386
+ type: "BTC",
3387
+ address,
3388
+ signature: signedMessage,
3389
+ message,
3390
+ connector_type: "BTC",
3391
+ wallet_client_type: wallet.name
3392
+ };
3393
+ const res1 = type == "bind" ? await toBindWalletApi(obj) : await loginByWalletApi(obj);
3394
+ if (res1) {
3395
+ if (!isSuccess(res1)) {
3396
+ throw new Error(res1.message);
3397
+ }
3398
+ matchlog_default.log(res1);
3399
+ setStatus("success");
3400
+ statusRef.current = "success";
3401
+ if (type == "bind") {
3402
+ events.onBind && events.onBind({
3403
+ type: "btc"
3404
+ });
3405
+ eventManager_default.emit("onBind", {
3406
+ type: "btc"
3407
+ });
3408
+ } else {
3409
+ await login({
3410
+ mid: res1.data.mid,
3411
+ token: `${res1.data.token_type} ${res1.data.access_token}`
3412
+ });
3413
+ }
3414
+ onSuccess && onSuccess();
3415
+ }
3416
+ }
3417
+ } catch (error2) {
3418
+ setStatus("error");
3419
+ setError(error2.message);
3420
+ statusRef.current = "";
3421
+ }
3422
+ };
3423
+ (0, import_react20.useEffect)(() => {
3424
+ if (wallet) {
3425
+ console.log("onConnect");
3426
+ onConnect();
3427
+ } else {
3428
+ setStatus("");
3429
+ }
3430
+ }, [wallet]);
3431
+ (0, import_react20.useEffect)(() => {
3432
+ if (address) {
3433
+ toLoginInWallet();
3434
+ }
3435
+ }, [address]);
3436
+ (0, import_react20.useEffect)(() => {
3437
+ if (!props.isOpen) {
3438
+ setStatus("");
3439
+ disconnect();
3440
+ }
3441
+ }, [props.isOpen]);
3442
+ return /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(ModalWithHeader, { ...props, title: props.title || intl.formatMessage({
3443
+ id: type == "bind" ? "bindWith" : "loginWith"
3444
+ }, {
3445
+ name: "BTC"
3446
+ }), onBack: wallet ? () => {
3447
+ chooseWallet(null);
3448
+ } : void 0, children: wallet ? /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(
3449
+ WalletModalContent,
3450
+ {
3451
+ error,
3452
+ setError,
3453
+ status,
3454
+ disconnect,
3455
+ address: address || "",
3456
+ connected,
3457
+ visible: true,
3458
+ setVisible: () => {
3459
+ }
3460
+ }
3461
+ ) : /* @__PURE__ */ (0, import_jsx_runtime60.jsx)("div", { className: "matchid-login-box", children: /* @__PURE__ */ (0, import_jsx_runtime60.jsxs)("div", { className: "matchid-login-recommend-list", children: [
3462
+ installedWallets.map((wallet2) => {
3463
+ return /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(
3464
+ RecommendItem,
3465
+ {
3466
+ icon: iconMaps[wallet2.walletKey],
3467
+ name: wallet2.name,
3468
+ onClick: () => {
3469
+ chooseWallet(wallet2);
3470
+ }
3471
+ },
3472
+ wallet2.walletKey
3473
+ );
3474
+ }),
3475
+ wallets2.filter((wallet2) => !installedWallets.find((installedWallet) => installedWallet.walletKey == wallet2.walletKey)).map((wallet2) => {
3476
+ return /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(
3477
+ RecommendItem,
3478
+ {
3479
+ icon: iconMaps[wallet2.walletKey],
3480
+ name: wallet2.name,
3481
+ onClick: () => {
3482
+ },
3483
+ footer: /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(Button, { size: "sm", onClick: () => {
3484
+ window.open(wallet2.website);
3485
+ }, children: "Install" })
3486
+ },
3487
+ wallet2.walletKey
3488
+ );
3489
+ })
3490
+ ] }) }) });
3491
+ }
3492
+
3493
+ // src/components/CEXBindModal/index.tsx
3494
+ var import_react21 = require("react");
3495
+ var import_react_intl14 = require("react-intl");
3496
+ var import_jsx_runtime61 = require("react/jsx-runtime");
3497
+ function CEXBindModal({
3498
+ onClose,
3499
+ type,
3500
+ isOpen = false,
3501
+ ...props
3502
+ }) {
3503
+ const intl = (0, import_react_intl14.useIntl)();
3504
+ const { events } = useMatch();
3505
+ const [APIPassphrase, setAPIPassphrase] = (0, import_react21.useState)("");
3506
+ const { refreshOverview } = useUserInfo();
3507
+ const [loading, setLoading] = (0, import_react21.useState)(false);
3508
+ const [key, setKey] = (0, import_react21.useState)("");
3509
+ const [secret, setSecret] = (0, import_react21.useState)("");
3510
+ const [error, setError] = (0, import_react21.useState)("");
3511
+ (0, import_react21.useEffect)(() => {
3512
+ if (isOpen) {
3513
+ setSecret("");
3514
+ setKey("");
3515
+ setAPIPassphrase("");
3516
+ setError("");
3517
+ setLoading(false);
3518
+ }
3519
+ }, [isOpen]);
3520
+ const SubmitApi = async () => {
3521
+ try {
3522
+ setLoading(true);
3523
+ const res = await bindCexApi({
3524
+ cex: type,
3525
+ api_key: key,
3526
+ api_secret: secret,
3527
+ ...type ? { api_passphrase: APIPassphrase } : {}
3528
+ });
3529
+ if (isSuccess(res)) {
3530
+ await refreshOverview();
3531
+ events.onBind && events.onBind({
3532
+ type: "cex_" + type
3533
+ });
3534
+ eventManager_default.emit("onBind", {
3535
+ type: "cex_" + type
3536
+ });
3537
+ onClose();
3538
+ }
3539
+ setLoading(false);
3540
+ } catch (error2) {
3541
+ console.error(error2);
3542
+ setError(error2.message);
3543
+ }
3544
+ };
3545
+ return /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(ModalWithHeader, { showClose: true, isOpen, onClose, title: intl.formatMessage({
3546
+ id: "CEXBindTitle"
3547
+ }, {
3548
+ type
3549
+ }), ...props, children: /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)("div", { className: "matchid-cex-modal", children: [
3550
+ /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)("div", { children: [
3551
+ /* @__PURE__ */ (0, import_jsx_runtime61.jsx)("p", { children: /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(import_react_intl14.FormattedMessage, { id: "CEXBindAttention" }) }),
3552
+ /* @__PURE__ */ (0, import_jsx_runtime61.jsx)("p", { children: /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(import_react_intl14.FormattedMessage, { id: "CEXBindTips1" }) }),
3553
+ /* @__PURE__ */ (0, import_jsx_runtime61.jsx)("p", { children: /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(import_react_intl14.FormattedMessage, { id: "CEXBindTips2" }) }),
3554
+ /* @__PURE__ */ (0, import_jsx_runtime61.jsx)("p", { children: /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(import_react_intl14.FormattedMessage, { id: "CEXBindTips3" }) })
3555
+ ] }),
3556
+ /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(Field, { label: intl.formatMessage({
3557
+ id: "CEXBindApiKey"
3558
+ }), children: /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
3559
+ Input,
3560
+ {
3561
+ value: key,
3562
+ onChange: (e) => setKey(e.target.value),
3563
+ placeholder: "**** **** ****"
3564
+ }
3565
+ ) }),
3566
+ /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(Field, { label: intl.formatMessage({
3567
+ id: "CEXBindApiSecretKey"
3568
+ }), children: /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
3569
+ Input,
3570
+ {
3571
+ value: secret,
3572
+ onChange: (e) => setSecret(e.target.value),
3573
+ placeholder: "**** **** ****"
3574
+ }
3575
+ ) }),
3576
+ type == "OKX" && /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(Field, { label: intl.formatMessage({
3577
+ id: "CEXBindApiPassphrase"
3578
+ }), children: /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
3579
+ Input,
3580
+ {
3581
+ value: APIPassphrase,
3582
+ onChange: (e) => setAPIPassphrase(e.target.value),
3583
+ placeholder: "**** **** ****"
3584
+ }
3585
+ ) }),
3586
+ /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
3587
+ Button,
3588
+ {
3589
+ onClick: SubmitApi,
3590
+ size: "lg",
3591
+ block: true,
3592
+ loading,
3593
+ disabled: !key || !secret,
3594
+ children: /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(import_react_intl14.FormattedMessage, { id: "continue" })
3595
+ }
3596
+ )
3597
+ ] }) });
2814
3598
  }
2815
3599
 
2816
3600
  // src/context/BusinessProvider.tsx
2817
- var import_jsx_runtime55 = require("react/jsx-runtime");
3601
+ var import_jsx_runtime62 = require("react/jsx-runtime");
2818
3602
  function BusinessProvider({ children }) {
2819
3603
  const { overview, token } = useUserInfo();
2820
3604
  const { recoveryModal } = useStore_default();
2821
3605
  const { type: SOLType, isOpen: SOLIsOpen, close: SOLClose } = useSOLModalStore();
2822
- return /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)(import_jsx_runtime55.Fragment, { children: [
2823
- /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(PasswordModal, { isOpen: !!token && !!overview && !overview.address && !!overview.did, showClose: false }),
2824
- /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
3606
+ const { type: TronType, isOpen: TronIsOpen, close: TronClose } = useTronModalStore();
3607
+ const { type: BTCType, isOpen: BTCIsOpen, close: BTCClose } = useBTCModalStore();
3608
+ const { type: CEXType, isOpen: CEXIsOpen, close: CEXClose } = useCEXBindModalStore();
3609
+ return /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)(import_jsx_runtime62.Fragment, { children: [
3610
+ /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(PasswordModal, { isOpen: !!token && !!overview && !overview.address && !!overview.did, showClose: false }),
3611
+ /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(
2825
3612
  RecoveryModal,
2826
3613
  {
2827
3614
  isOpen: !!token && !!overview && !!overview.address && recoveryModal.open,
@@ -2829,7 +3616,7 @@ function BusinessProvider({ children }) {
2829
3616
  onSuccess: recoveryModal.success
2830
3617
  }
2831
3618
  ),
2832
- /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
3619
+ /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(
2833
3620
  SOLModal,
2834
3621
  {
2835
3622
  isOpen: SOLIsOpen && (SOLType == "login" && !overview && !token || SOLType == "bind" && !!token && !!overview),
@@ -2839,22 +3626,51 @@ function BusinessProvider({ children }) {
2839
3626
  zIndex: 199
2840
3627
  }
2841
3628
  ),
3629
+ /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(
3630
+ TronModal,
3631
+ {
3632
+ isOpen: TronIsOpen && (TronType == "login" && !overview && !token || TronType == "bind" && !!token && !!overview),
3633
+ onClose: TronClose,
3634
+ type: TronType,
3635
+ onSuccess: TronClose,
3636
+ zIndex: 199
3637
+ }
3638
+ ),
3639
+ /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(
3640
+ BTCModal,
3641
+ {
3642
+ isOpen: BTCIsOpen && (BTCType == "login" && !overview && !token || BTCType == "bind" && !!token && !!overview),
3643
+ onClose: BTCClose,
3644
+ type: BTCType,
3645
+ onSuccess: BTCClose,
3646
+ zIndex: 199
3647
+ }
3648
+ ),
3649
+ /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(
3650
+ CEXBindModal,
3651
+ {
3652
+ isOpen: CEXIsOpen && (!!token && !!overview),
3653
+ onClose: CEXClose,
3654
+ type: CEXType,
3655
+ zIndex: 199
3656
+ }
3657
+ ),
2842
3658
  children
2843
3659
  ] });
2844
3660
  }
2845
3661
 
2846
3662
  // src/context/index.tsx
2847
- var import_jsx_runtime56 = (
3663
+ var import_jsx_runtime63 = (
2848
3664
  // <MpcWalletProvider>
2849
3665
  require("react/jsx-runtime")
2850
3666
  );
2851
3667
  var Providers = ({ children }) => {
2852
- return /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(BusinessProvider, { children });
3668
+ return /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(BusinessProvider, { children });
2853
3669
  };
2854
3670
  var context_default = Providers;
2855
3671
 
2856
3672
  // src/hooks/useWalletInit.ts
2857
- var import_react17 = require("react");
3673
+ var import_react22 = require("react");
2858
3674
  var AppClientId2 = getAppClientId();
2859
3675
  function useWalletInit({
2860
3676
  refreshOverview
@@ -2863,10 +3679,10 @@ function useWalletInit({
2863
3679
  const getWalletIframe = () => {
2864
3680
  return document.getElementById("match-wallet");
2865
3681
  };
2866
- const [walletInited, setWalletInited] = (0, import_react17.useState)(false);
3682
+ const [walletInited, setWalletInited] = (0, import_react22.useState)(false);
2867
3683
  const { appid, token, overview } = useLocalStore_default();
2868
3684
  const { initWallet, generateWallet } = useWallet();
2869
- (0, import_react17.useEffect)(() => {
3685
+ (0, import_react22.useEffect)(() => {
2870
3686
  if (endpoints.auth) {
2871
3687
  if (!window.matchWalletMessageIdMap) {
2872
3688
  window.matchWalletMessageIdMap = {};
@@ -2927,7 +3743,7 @@ function useWalletInit({
2927
3743
  }
2928
3744
  }
2929
3745
  }, [endpoints.auth]);
2930
- (0, import_react17.useEffect)(() => {
3746
+ (0, import_react22.useEffect)(() => {
2931
3747
  const messageHandle = async (e) => {
2932
3748
  if (e.origin !== endpoints.auth.substring(0, endpoints.auth.length - 1)) {
2933
3749
  return;
@@ -2960,7 +3776,7 @@ function useWalletInit({
2960
3776
  window.removeEventListener("message", messageHandle);
2961
3777
  };
2962
3778
  }, []);
2963
- (0, import_react17.useEffect)(() => {
3779
+ (0, import_react22.useEffect)(() => {
2964
3780
  if (token && overview && overview.did && walletInited) {
2965
3781
  const did = overview.did.split(":")[2];
2966
3782
  const newUserInit = async () => {
@@ -2991,7 +3807,7 @@ function useWalletInit({
2991
3807
  }
2992
3808
 
2993
3809
  // src/hooks/useInit.tsx
2994
- var import_react18 = require("react");
3810
+ var import_react23 = require("react");
2995
3811
  function useInit({
2996
3812
  theme,
2997
3813
  appid,
@@ -3010,23 +3826,23 @@ function useInit({
3010
3826
  setLocale,
3011
3827
  locale: realLocale
3012
3828
  } = useLocalStore_default();
3013
- const overviewLoadingRef = (0, import_react18.useRef)(false);
3829
+ const overviewLoadingRef = (0, import_react23.useRef)(false);
3014
3830
  const searchParams = new URLSearchParams(window.location.search);
3015
3831
  const matchToken = searchParams.get("matchToken");
3016
3832
  const realEndpoints = endpoints || env_default.endpoints;
3017
- (0, import_react18.useEffect)(() => {
3833
+ (0, import_react23.useEffect)(() => {
3018
3834
  setTheme(theme);
3019
3835
  }, [theme]);
3020
- (0, import_react18.useEffect)(() => {
3836
+ (0, import_react23.useEffect)(() => {
3021
3837
  setAppid(appid);
3022
3838
  }, [appid]);
3023
- (0, import_react18.useEffect)(() => {
3839
+ (0, import_react23.useEffect)(() => {
3024
3840
  setEndpoints(realEndpoints);
3025
3841
  }, [realEndpoints]);
3026
- (0, import_react18.useEffect)(() => {
3842
+ (0, import_react23.useEffect)(() => {
3027
3843
  setLocale(locale || "en");
3028
3844
  }, [locale]);
3029
- (0, import_react18.useEffect)(() => {
3845
+ (0, import_react23.useEffect)(() => {
3030
3846
  if (matchToken) {
3031
3847
  const tokenData = JSON.parse(atob(matchToken));
3032
3848
  if (tokenData && tokenData.mid && tokenData.token) {
@@ -3037,7 +3853,7 @@ function useInit({
3037
3853
  }
3038
3854
  }
3039
3855
  }, [matchToken]);
3040
- (0, import_react18.useEffect)(() => {
3856
+ (0, import_react23.useEffect)(() => {
3041
3857
  const onLoginMessage = (event) => {
3042
3858
  const res = event.data;
3043
3859
  if (res.event === "login" && res.data && (res.data.token || res.data.token_type && res.data.access_token)) {
@@ -3073,7 +3889,7 @@ function useInit({
3073
3889
  overviewLoadingRef.current = false;
3074
3890
  }
3075
3891
  };
3076
- (0, import_react18.useEffect)(() => {
3892
+ (0, import_react23.useEffect)(() => {
3077
3893
  if (token) {
3078
3894
  loadOverview();
3079
3895
  }
@@ -3105,7 +3921,7 @@ function useInit({
3105
3921
 
3106
3922
  // src/MatchContext.tsx
3107
3923
  var import_react_query = require("@tanstack/react-query");
3108
- var import_react_intl12 = require("react-intl");
3924
+ var import_react_intl15 = require("react-intl");
3109
3925
 
3110
3926
  // src/i18n/en.json
3111
3927
  var en_default = {
@@ -3146,7 +3962,15 @@ var en_default = {
3146
3962
  confirm: "Confirm",
3147
3963
  nextTime: "Next time",
3148
3964
  setUsername: "Set a User Name",
3149
- disconnect: "Disconnect"
3965
+ disconnect: "Disconnect",
3966
+ CEXBindTitle: "Bind {type} API",
3967
+ CEXBindAttention: "Attention:",
3968
+ CEXBindTips1: "1. Please bind the API for read-only permissions.",
3969
+ CEXBindTips2: "2. Your API may be out of date, it is better to use a long term API.",
3970
+ CEXBindTips3: "3. Only one API can be bound to the same exchange at the same time.",
3971
+ CEXBindApiKey: "API Key",
3972
+ CEXBindApiSecretKey: "API Secret Key",
3973
+ CEXBindApiPassphrase: "API Passphrase"
3150
3974
  };
3151
3975
 
3152
3976
  // src/i18n/zh.json
@@ -3188,7 +4012,15 @@ var zh_default = {
3188
4012
  confirm: "\u786E\u8BA4",
3189
4013
  nextTime: "\u4E0B\u6B21\u518D\u8BF4",
3190
4014
  setUsername: "\u8BBE\u7F6E\u7528\u6237\u540D",
3191
- disconnect: "\u65AD\u5F00\u8FDE\u63A5"
4015
+ disconnect: "\u65AD\u5F00\u8FDE\u63A5",
4016
+ CEXBindTitle: "\u7ED1\u5B9A {type} API",
4017
+ CEXBindAttention: "\u6CE8\u610F\uFF1A",
4018
+ CEXBindTips1: "1. \u8BF7\u7ED1\u5B9A\u5177\u6709\u53EA\u8BFB\u6743\u9650\u7684 API\u3002",
4019
+ CEXBindTips2: "2. \u60A8\u7684 API \u53EF\u80FD\u5DF2\u8FC7\u671F\uFF0C\u5EFA\u8BAE\u4F7F\u7528\u957F\u671F\u6709\u6548\u7684 API\u3002",
4020
+ CEXBindTips3: "3. \u540C\u4E00\u65F6\u95F4\u53EA\u80FD\u7ED1\u5B9A\u4E00\u4E2A API \u5230\u76F8\u540C\u7684\u4EA4\u6613\u6240\u3002",
4021
+ CEXBindApiKey: "API \u5BC6\u94A5",
4022
+ CEXBindApiSecretKey: "API \u79D8\u94A5",
4023
+ CEXBindApiPassphrase: "API \u5BC6\u7801\u77ED\u8BED"
3192
4024
  };
3193
4025
 
3194
4026
  // src/i18n/tw.json
@@ -3230,7 +4062,15 @@ var tw_default = {
3230
4062
  confirm: "\u78BA\u8A8D",
3231
4063
  nextTime: "\u4E0B\u6B21\u518D\u8AAA",
3232
4064
  setUsername: "\u8A2D\u7F6E\u7528\u6236\u540D",
3233
- disconnect: "\u65B7\u958B\u9023\u63A5"
4065
+ disconnect: "\u65B7\u958B\u9023\u63A5",
4066
+ CEXBindTitle: "\u7D81\u5B9A {type} API",
4067
+ CEXBindAttention: "\u6CE8\u610F\uFF1A",
4068
+ CEXBindTips1: "1. \u8ACB\u7D81\u5B9A\u5177\u6709\u53EA\u8B80\u6B0A\u9650\u7684 API\u3002",
4069
+ CEXBindTips2: "2. \u60A8\u7684 API \u53EF\u80FD\u5DF2\u904E\u671F\uFF0C\u5EFA\u8B70\u4F7F\u7528\u9577\u671F\u6709\u6548\u7684 API\u3002",
4070
+ CEXBindTips3: "3. \u540C\u4E00\u6642\u9593\u53EA\u80FD\u7D81\u5B9A\u4E00\u500B API \u5230\u76F8\u540C\u7684\u4EA4\u6613\u6240\u3002",
4071
+ CEXBindApiKey: "API \u91D1\u9470",
4072
+ CEXBindApiSecretKey: "API \u5BC6\u9470",
4073
+ CEXBindApiPassphrase: "API \u5BC6\u78BC\u77ED\u8A9E"
3234
4074
  };
3235
4075
 
3236
4076
  // src/i18n/fr.json
@@ -3272,7 +4112,15 @@ var fr_default = {
3272
4112
  confirm: "Confirmer",
3273
4113
  nextTime: "La prochaine fois",
3274
4114
  setUsername: "D\xE9finir un nom d'utilisateur",
3275
- disconnect: "D\xE9connecter"
4115
+ disconnect: "D\xE9connecter",
4116
+ CEXBindTitle: "Lier l'API {type}",
4117
+ CEXBindAttention: "Attention :",
4118
+ CEXBindTips1: "1. Veuillez lier l'API avec des permissions en lecture seule.",
4119
+ CEXBindTips2: "2. Votre API peut \xEAtre obsol\xE8te, il est pr\xE9f\xE9rable d'utiliser une API \xE0 long terme.",
4120
+ CEXBindTips3: "3. Une seule API peut \xEAtre li\xE9e au m\xEAme \xE9change \xE0 la fois.",
4121
+ CEXBindApiKey: "Cl\xE9 API",
4122
+ CEXBindApiSecretKey: "Cl\xE9 Secr\xE8te API",
4123
+ CEXBindApiPassphrase: "Phrase secr\xE8te API"
3276
4124
  };
3277
4125
 
3278
4126
  // src/i18n/ja.json
@@ -3314,7 +4162,15 @@ var ja_default = {
3314
4162
  confirm: "\u78BA\u8A8D",
3315
4163
  nextTime: "\u6B21\u56DE",
3316
4164
  setUsername: "\u30E6\u30FC\u30B6\u30FC\u540D\u3092\u8A2D\u5B9A",
3317
- disconnect: "\u5207\u65AD"
4165
+ disconnect: "\u5207\u65AD",
4166
+ CEXBindTitle: "{type} API \u3092\u30D0\u30A4\u30F3\u30C9",
4167
+ CEXBindAttention: "\u6CE8\u610F\uFF1A",
4168
+ CEXBindTips1: "1. \u8AAD\u307F\u53D6\u308A\u5C02\u7528\u306E\u6A29\u9650\u3067 API \u3092\u30D0\u30A4\u30F3\u30C9\u3057\u3066\u304F\u3060\u3055\u3044\u3002",
4169
+ CEXBindTips2: "2. API \u304C\u53E4\u3044\u53EF\u80FD\u6027\u304C\u3042\u308A\u307E\u3059\u3002\u9577\u671F\u9593\u4F7F\u7528\u53EF\u80FD\u306A API \u3092\u4F7F\u7528\u3059\u308B\u3053\u3068\u3092\u304A\u52E7\u3081\u3057\u307E\u3059\u3002",
4170
+ CEXBindTips3: "3. \u540C\u3058\u53D6\u5F15\u6240\u306B\u540C\u6642\u306B\u30D0\u30A4\u30F3\u30C9\u3067\u304D\u308B API \u306F1\u3064\u3060\u3051\u3067\u3059\u3002",
4171
+ CEXBindApiKey: "API \u30AD\u30FC",
4172
+ CEXBindApiSecretKey: "API \u30B7\u30FC\u30AF\u30EC\u30C3\u30C8\u30AD\u30FC",
4173
+ CEXBindApiPassphrase: "API \u30D1\u30B9\u30D5\u30EC\u30FC\u30BA"
3318
4174
  };
3319
4175
 
3320
4176
  // src/i18n/ko.json
@@ -3356,7 +4212,15 @@ var ko_default = {
3356
4212
  confirm: "\uD655\uC778",
3357
4213
  nextTime: "\uB2E4\uC74C\uC5D0",
3358
4214
  setUsername: "\uC0AC\uC6A9\uC790 \uC774\uB984 \uC124\uC815",
3359
- disconnect: "\uC5F0\uACB0 \uB04A\uAE30"
4215
+ disconnect: "\uC5F0\uACB0 \uB04A\uAE30",
4216
+ CEXBindTitle: "{type} API \uC5F0\uACB0",
4217
+ CEXBindAttention: "\uC8FC\uC758:",
4218
+ CEXBindTips1: "1. \uC77D\uAE30 \uC804\uC6A9 \uAD8C\uD55C\uC73C\uB85C API\uB97C \uC5F0\uACB0\uD574\uC8FC\uC138\uC694.",
4219
+ CEXBindTips2: "2. API\uAC00 \uC624\uB798\uB418\uC5C8\uC744 \uC218 \uC788\uC2B5\uB2C8\uB2E4. \uC7A5\uAE30\uC801\uC778 API\uB97C \uC0AC\uC6A9\uD558\uB294 \uAC83\uC774 \uC88B\uC2B5\uB2C8\uB2E4.",
4220
+ CEXBindTips3: "3. \uB3D9\uC77C\uD55C \uAC70\uB798\uC18C\uC5D0 \uB3D9\uC2DC\uC5D0 \uC5F0\uACB0\uD560 \uC218 \uC788\uB294 API\uB294 \uD558\uB098\uBFD0\uC785\uB2C8\uB2E4.",
4221
+ CEXBindApiKey: "API \uD0A4",
4222
+ CEXBindApiSecretKey: "API \uBE44\uBC00 \uD0A4",
4223
+ CEXBindApiPassphrase: "API \uC554\uD638 \uAD6C\uBB38"
3360
4224
  };
3361
4225
 
3362
4226
  // src/i18n/vi.json
@@ -3398,7 +4262,15 @@ var vi_default = {
3398
4262
  confirm: "X\xE1c nh\u1EADn",
3399
4263
  nextTime: "L\u1EA7n sau",
3400
4264
  setUsername: "\u0110\u1EB7t t\xEAn ng\u01B0\u1EDDi d\xF9ng",
3401
- disconnect: "Ng\u1EAFt k\u1EBFt n\u1ED1i"
4265
+ disconnect: "Ng\u1EAFt k\u1EBFt n\u1ED1i",
4266
+ CEXBindTitle: "Li\xEAn k\u1EBFt API {type}",
4267
+ CEXBindAttention: "L\u01B0u \xFD:",
4268
+ CEXBindTips1: "1. Vui l\xF2ng li\xEAn k\u1EBFt API v\u1EDBi quy\u1EC1n ch\u1EC9 \u0111\u1ECDc.",
4269
+ CEXBindTips2: "2. API c\u1EE7a b\u1EA1n c\xF3 th\u1EC3 \u0111\xE3 l\u1ED7i th\u1EDDi. T\u1ED1t h\u01A1n l\xE0 s\u1EED d\u1EE5ng API d\xE0i h\u1EA1n.",
4270
+ CEXBindTips3: "3. Ch\u1EC9 c\xF3 th\u1EC3 li\xEAn k\u1EBFt m\u1ED9t API v\u1EDBi c\xF9ng m\u1ED9t s\xE0n giao d\u1ECBch t\u1EA1i m\u1ED9t th\u1EDDi \u0111i\u1EC3m.",
4271
+ CEXBindApiKey: "Kh\xF3a API",
4272
+ CEXBindApiSecretKey: "Kh\xF3a b\xED m\u1EADt API",
4273
+ CEXBindApiPassphrase: "C\u1EE5m m\u1EADt kh\u1EA9u API"
3402
4274
  };
3403
4275
 
3404
4276
  // src/i18n/es.json
@@ -3440,7 +4312,15 @@ var es_default = {
3440
4312
  confirm: "Confirmar",
3441
4313
  nextTime: "La pr\xF3xima vez",
3442
4314
  setUsername: "Establecer nombre de usuario",
3443
- disconnect: "Desconectar"
4315
+ disconnect: "Desconectar",
4316
+ CEXBindTitle: "Vincular API de {type}",
4317
+ CEXBindAttention: "Atenci\xF3n:",
4318
+ CEXBindTips1: "1. Por favor, vincula la API con permisos de solo lectura.",
4319
+ CEXBindTips2: "2. Tu API puede estar desactualizada, es mejor usar una API a largo plazo.",
4320
+ CEXBindTips3: "3. Solo se puede vincular una API al mismo intercambio a la vez.",
4321
+ CEXBindApiKey: "Clave API",
4322
+ CEXBindApiSecretKey: "Clave Secreta API",
4323
+ CEXBindApiPassphrase: "Frase de contrase\xF1a API"
3444
4324
  };
3445
4325
 
3446
4326
  // src/i18n/pt.json
@@ -3482,7 +4362,15 @@ var pt_default = {
3482
4362
  confirm: "Confirmar",
3483
4363
  nextTime: "Pr\xF3xima vez",
3484
4364
  setUsername: "Definir Nome de Usu\xE1rio",
3485
- disconnect: "Desconectar"
4365
+ disconnect: "Desconectar",
4366
+ CEXBindTitle: "Vincular API {type}",
4367
+ CEXBindAttention: "Aten\xE7\xE3o:",
4368
+ CEXBindTips1: "1. Por favor, vincule a API com permiss\xF5es de leitura apenas.",
4369
+ CEXBindTips2: "2. Sua API pode estar desatualizada. \xC9 melhor usar uma API de longo prazo.",
4370
+ CEXBindTips3: "3. Apenas uma API pode ser vinculada ao mesmo c\xE2mbio ao mesmo tempo.",
4371
+ CEXBindApiKey: "Chave API",
4372
+ CEXBindApiSecretKey: "Chave Secreta API",
4373
+ CEXBindApiPassphrase: "Senha de API"
3486
4374
  };
3487
4375
 
3488
4376
  // src/i18n/index.ts
@@ -3499,9 +4387,9 @@ var messages = {
3499
4387
  };
3500
4388
 
3501
4389
  // src/MatchContext.tsx
3502
- var import_jsx_runtime57 = require("react/jsx-runtime");
4390
+ var import_jsx_runtime64 = require("react/jsx-runtime");
3503
4391
  var queryClient = new import_react_query.QueryClient();
3504
- var MatchContext = (0, import_react19.createContext)(void 0);
4392
+ var MatchContext = (0, import_react24.createContext)(void 0);
3505
4393
  var MatchProvider = ({ children, appid, events, theme = "light", endpoints, locale }) => {
3506
4394
  const { loadOverview, login, endpoints: realEndPoints, locale: realLocale } = useInit({
3507
4395
  theme,
@@ -3520,7 +4408,7 @@ var MatchProvider = ({ children, appid, events, theme = "light", endpoints, loca
3520
4408
  useWalletInit({
3521
4409
  refreshOverview: loadOverview
3522
4410
  });
3523
- return /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(import_react_intl12.IntlProvider, { locale: realLocale, messages: messages[realLocale], children: /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(import_react_query.QueryClientProvider, { client: queryClient, children: /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
4411
+ return /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(import_react_intl15.IntlProvider, { locale: realLocale, messages: messages[realLocale], children: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(import_react_query.QueryClientProvider, { client: queryClient, children: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
3524
4412
  MatchContext.Provider,
3525
4413
  {
3526
4414
  value: {
@@ -3531,12 +4419,12 @@ var MatchProvider = ({ children, appid, events, theme = "light", endpoints, loca
3531
4419
  theme,
3532
4420
  locale: realLocale
3533
4421
  },
3534
- children: /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(context_default, { children })
4422
+ children: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(context_default, { children })
3535
4423
  }
3536
4424
  ) }) });
3537
4425
  };
3538
4426
  var useMatch = () => {
3539
- const context = (0, import_react19.useContext)(MatchContext);
4427
+ const context = (0, import_react24.useContext)(MatchContext);
3540
4428
  if (context === void 0) {
3541
4429
  throw new Error("useMatch must be used within a MatchProvider");
3542
4430
  }