@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.
- package/dist/assets/icon/index.d.mts +123 -0
- package/dist/assets/icon/index.d.ts +123 -0
- package/dist/assets/icon/index.js +1055 -0
- package/dist/assets/icon/index.js.map +1 -0
- package/dist/assets/icon/index.mjs +82 -0
- package/dist/assets/icon/index.mjs.map +1 -0
- package/dist/chunk-HYQ3T6WW.mjs +79 -0
- package/dist/chunk-HYQ3T6WW.mjs.map +1 -0
- package/dist/chunk-J5LGTIGS.mjs +10 -0
- package/dist/chunk-J5LGTIGS.mjs.map +1 -0
- package/dist/chunk-J6EA7OSJ.mjs +992 -0
- package/dist/chunk-J6EA7OSJ.mjs.map +1 -0
- package/dist/chunk-MZB76VOE.mjs +93 -0
- package/dist/chunk-MZB76VOE.mjs.map +1 -0
- package/dist/chunk-YCRZLAOS.mjs +3709 -0
- package/dist/chunk-YCRZLAOS.mjs.map +1 -0
- package/dist/components/index.d.mts +4 -0
- package/dist/components/index.d.ts +4 -0
- package/dist/components/index.js +3352 -0
- package/dist/components/index.js.map +1 -0
- package/dist/components/index.mjs +39 -0
- package/dist/components/index.mjs.map +1 -0
- package/dist/config/chains/index.d.mts +2 -0
- package/dist/config/chains/index.d.ts +2 -0
- package/dist/config/chains/index.js +94 -0
- package/dist/config/chains/index.js.map +1 -0
- package/dist/config/chains/index.mjs +10 -0
- package/dist/config/chains/index.mjs.map +1 -0
- package/dist/hooks/api/index.d.mts +5 -0
- package/dist/hooks/api/index.d.ts +5 -0
- package/dist/hooks/api/index.js +1010 -0
- package/dist/hooks/api/index.js.map +1 -0
- package/dist/hooks/api/index.mjs +14 -0
- package/dist/hooks/api/index.mjs.map +1 -0
- package/dist/hooks/index.d.mts +4 -0
- package/dist/hooks/index.d.ts +4 -0
- package/dist/hooks/index.js +1055 -0
- package/dist/hooks/index.js.map +1 -0
- package/dist/hooks/index.mjs +17 -0
- package/dist/hooks/index.mjs.map +1 -0
- package/dist/index-BFn-HCRJ.d.ts +64 -0
- package/dist/index-BTTka3Uo.d.mts +75 -0
- package/dist/index-BdeWio3u.d.mts +64 -0
- package/dist/index-CfipOX1C.d.ts +83 -0
- package/dist/index-DUCRzr-P.d.ts +75 -0
- package/dist/index-DXRGMAbv.d.mts +83 -0
- package/dist/index-DXRGMAbv.d.ts +83 -0
- package/dist/index-Dq1vYJ0E.d.mts +83 -0
- package/dist/index.css +7 -0
- package/dist/index.d.mts +12 -436
- package/dist/index.d.ts +12 -436
- package/dist/index.js +1185 -297
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +13 -3682
- package/dist/index.mjs.map +1 -1
- package/dist/types.d-Cqt8ifXa.d.mts +176 -0
- package/dist/types.d-Cqt8ifXa.d.ts +176 -0
- package/example/src/config/index.ts +6 -1
- package/example/src/pages/User.tsx +12 -3
- 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
|
|
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
|
|
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,
|
|
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,
|
|
886
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)("div", { className: `matchid-modal ${className}`, style: {
|
|
731
887
|
width
|
|
732
888
|
}, children: [
|
|
733
|
-
/* @__PURE__ */ (0,
|
|
889
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)("div", { className: "matchid-modal-mobile-header" }),
|
|
734
890
|
children
|
|
735
891
|
] })
|
|
736
892
|
}
|
|
737
|
-
) : /* @__PURE__ */ (0,
|
|
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,
|
|
750
|
-
/* @__PURE__ */ (0,
|
|
751
|
-
/* @__PURE__ */ (0,
|
|
752
|
-
onBack && /* @__PURE__ */ (0,
|
|
753
|
-
/* @__PURE__ */ (0,
|
|
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,
|
|
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
|
|
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,
|
|
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,
|
|
782
|
-
props.value && props.value.length > 0 && /* @__PURE__ */ (0,
|
|
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,
|
|
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,
|
|
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,
|
|
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
|
|
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,
|
|
813
|
-
/* @__PURE__ */ (0,
|
|
814
|
-
required && /* @__PURE__ */ (0,
|
|
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,
|
|
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
|
|
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,
|
|
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,
|
|
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
|
-
|
|
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
|
|
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
|
|
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
|
|
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,
|
|
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,
|
|
1684
|
-
/* @__PURE__ */ (0,
|
|
1685
|
-
/* @__PURE__ */ (0,
|
|
1686
|
-
/* @__PURE__ */ (0,
|
|
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,
|
|
1689
|
-
/* @__PURE__ */ (0,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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
|
|
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,
|
|
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,
|
|
1781
|
-
/* @__PURE__ */ (0,
|
|
1782
|
-
/* @__PURE__ */ (0,
|
|
1783
|
-
/* @__PURE__ */ (0,
|
|
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,
|
|
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,
|
|
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,
|
|
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
|
|
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,
|
|
1854
|
-
/* @__PURE__ */ (0,
|
|
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,
|
|
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,
|
|
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,
|
|
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
|
|
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,
|
|
1959
|
-
/* @__PURE__ */ (0,
|
|
1960
|
-
/* @__PURE__ */ (0,
|
|
1961
|
-
/* @__PURE__ */ (0,
|
|
1962
|
-
/* @__PURE__ */ (0,
|
|
1963
|
-
/* @__PURE__ */ (0,
|
|
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,
|
|
2154
|
+
/* @__PURE__ */ (0, import_jsx_runtime46.jsx)(Field, { label: intl.formatMessage({
|
|
1967
2155
|
id: "verificationCode"
|
|
1968
|
-
}), error, children: /* @__PURE__ */ (0,
|
|
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,
|
|
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,
|
|
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
|
|
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,
|
|
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,
|
|
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,
|
|
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
|
|
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,
|
|
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,
|
|
2249
|
+
/* @__PURE__ */ (0, import_jsx_runtime48.jsx)("div", { style: {
|
|
2062
2250
|
paddingTop: gap
|
|
2063
|
-
}, className: `matchid-popover-area`, children: /* @__PURE__ */ (0,
|
|
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
|
|
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,
|
|
2081
|
-
/* @__PURE__ */ (0,
|
|
2082
|
-
/* @__PURE__ */ (0,
|
|
2083
|
-
/* @__PURE__ */ (0,
|
|
2084
|
-
/* @__PURE__ */ (0,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
2187
|
-
activeIcon: /* @__PURE__ */ (0,
|
|
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,
|
|
2193
|
-
activeIcon: /* @__PURE__ */ (0,
|
|
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,
|
|
2199
|
-
(!inModal || !emailOpen) && /* @__PURE__ */ (0,
|
|
2200
|
-
/* @__PURE__ */ (0,
|
|
2201
|
-
return /* @__PURE__ */ (0,
|
|
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,
|
|
2209
|
-
/* @__PURE__ */ (0,
|
|
2210
|
-
/* @__PURE__ */ (0,
|
|
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,
|
|
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,
|
|
2219
|
-
/* @__PURE__ */ (0,
|
|
2220
|
-
/* @__PURE__ */ (0,
|
|
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,
|
|
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,
|
|
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,
|
|
2254
|
-
/* @__PURE__ */ (0,
|
|
2255
|
-
/* @__PURE__ */ (0,
|
|
2256
|
-
return /* @__PURE__ */ (0,
|
|
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,
|
|
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
|
|
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,
|
|
2297
|
-
header ? header : /* @__PURE__ */ (0,
|
|
2298
|
-
/* @__PURE__ */ (0,
|
|
2299
|
-
/* @__PURE__ */ (0,
|
|
2300
|
-
/* @__PURE__ */ (0,
|
|
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,
|
|
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,
|
|
2305
|
-
/* @__PURE__ */ (0,
|
|
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
|
|
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,
|
|
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,
|
|
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
|
|
2520
|
+
var import_jsx_runtime52 = require("react/jsx-runtime");
|
|
2332
2521
|
function ProfileIcon({ size = 24, color = "black", ...props }) {
|
|
2333
|
-
return /* @__PURE__ */ (0,
|
|
2334
|
-
/* @__PURE__ */ (0,
|
|
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,
|
|
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
|
|
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,
|
|
2379
|
-
/* @__PURE__ */ (0,
|
|
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,
|
|
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,
|
|
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,
|
|
2393
|
-
/* @__PURE__ */ (0,
|
|
2394
|
-
/* @__PURE__ */ (0,
|
|
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,
|
|
2397
|
-
/* @__PURE__ */ (0,
|
|
2398
|
-
/* @__PURE__ */ (0,
|
|
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,
|
|
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,
|
|
2405
|
-
/* @__PURE__ */ (0,
|
|
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,
|
|
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
|
|
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,
|
|
2438
|
-
/* @__PURE__ */ (0,
|
|
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,
|
|
2449
|
-
/* @__PURE__ */ (0,
|
|
2450
|
-
/* @__PURE__ */ (0,
|
|
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,
|
|
2455
|
-
/* @__PURE__ */ (0,
|
|
2456
|
-
/* @__PURE__ */ (0,
|
|
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
|
|
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,
|
|
2473
|
-
/* @__PURE__ */ (0,
|
|
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,
|
|
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
|
|
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,
|
|
2495
|
-
success ? /* @__PURE__ */ (0,
|
|
2496
|
-
/* @__PURE__ */ (0,
|
|
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,
|
|
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,
|
|
2547
|
-
/* @__PURE__ */ (0,
|
|
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,
|
|
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,
|
|
2563
|
-
/* @__PURE__ */ (0,
|
|
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,
|
|
2761
|
+
/* @__PURE__ */ (0, import_jsx_runtime56.jsx)(ValidItem, { success: isLength, text: intl.formatMessage({
|
|
2573
2762
|
id: "usernameLengthError"
|
|
2574
2763
|
}) })
|
|
2575
2764
|
] }),
|
|
2576
|
-
/* @__PURE__ */ (0,
|
|
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,
|
|
2579
|
-
/* @__PURE__ */ (0,
|
|
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,
|
|
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,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";
|
|
@@ -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
|
|
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,
|
|
2620
|
-
const statusRef =
|
|
2621
|
-
const [error, setError] = (0,
|
|
2622
|
-
(0,
|
|
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,
|
|
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
|
-
|
|
2691
|
-
|
|
2692
|
-
|
|
2693
|
-
|
|
2694
|
-
|
|
2695
|
-
|
|
2696
|
-
|
|
2697
|
-
|
|
2698
|
-
|
|
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
|
-
|
|
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,
|
|
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,
|
|
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
|
|
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
|
-
|
|
2823
|
-
|
|
2824
|
-
|
|
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,
|
|
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
|
|
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,
|
|
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
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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
|
|
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,
|
|
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,
|
|
3833
|
+
(0, import_react23.useEffect)(() => {
|
|
3018
3834
|
setTheme(theme);
|
|
3019
3835
|
}, [theme]);
|
|
3020
|
-
(0,
|
|
3836
|
+
(0, import_react23.useEffect)(() => {
|
|
3021
3837
|
setAppid(appid);
|
|
3022
3838
|
}, [appid]);
|
|
3023
|
-
(0,
|
|
3839
|
+
(0, import_react23.useEffect)(() => {
|
|
3024
3840
|
setEndpoints(realEndpoints);
|
|
3025
3841
|
}, [realEndpoints]);
|
|
3026
|
-
(0,
|
|
3842
|
+
(0, import_react23.useEffect)(() => {
|
|
3027
3843
|
setLocale(locale || "en");
|
|
3028
3844
|
}, [locale]);
|
|
3029
|
-
(0,
|
|
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,
|
|
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,
|
|
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
|
|
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
|
|
4390
|
+
var import_jsx_runtime64 = require("react/jsx-runtime");
|
|
3503
4391
|
var queryClient = new import_react_query.QueryClient();
|
|
3504
|
-
var MatchContext = (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,
|
|
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,
|
|
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,
|
|
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
|
}
|