@matchain/matchid-sdk-react 0.1.53-alpha.2 → 0.1.53-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 +4 -2
- package/dist/assets/icon/index.d.ts +4 -2
- package/dist/assets/icon/index.js +19 -0
- package/dist/assets/icon/index.js.map +1 -1
- package/dist/assets/icon/index.mjs +3 -1
- package/dist/chunk-3CR66BEX.mjs +19 -0
- package/dist/chunk-3CR66BEX.mjs.map +1 -0
- package/dist/{chunk-LHNKZISB.mjs → chunk-3USZ4ZZY.mjs} +20 -2
- package/dist/chunk-3USZ4ZZY.mjs.map +1 -0
- package/dist/{chunk-4A2YPGO3.mjs → chunk-4J3KZCLG.mjs} +2 -2
- package/dist/{chunk-HYQ3T6WW.mjs → chunk-JX73EY6V.mjs} +2 -14
- package/dist/chunk-JX73EY6V.mjs.map +1 -0
- package/dist/{chunk-MX7N57AH.mjs → chunk-OCQ2AIM3.mjs} +7 -2
- package/dist/{chunk-MX7N57AH.mjs.map → chunk-OCQ2AIM3.mjs.map} +1 -1
- package/dist/{chunk-FB5MHLWX.mjs → chunk-V2S54LGG.mjs} +2 -2
- package/dist/{chunk-W5A6WY7Y.mjs → chunk-XXZZYALJ.mjs} +807 -191
- package/dist/chunk-XXZZYALJ.mjs.map +1 -0
- package/dist/components/index.d.mts +3 -3
- package/dist/components/index.d.ts +3 -3
- package/dist/components/index.js +1111 -442
- package/dist/components/index.js.map +1 -1
- package/dist/components/index.mjs +7 -4
- package/dist/config/chains/index.mjs +2 -1
- package/dist/hooks/api/index.d.mts +2 -2
- package/dist/hooks/api/index.d.ts +2 -2
- package/dist/hooks/api/index.js +202 -88
- package/dist/hooks/api/index.js.map +1 -1
- package/dist/hooks/api/index.mjs +6 -5
- package/dist/hooks/index.d.mts +2 -2
- package/dist/hooks/index.d.ts +2 -2
- package/dist/hooks/index.js +515 -401
- package/dist/hooks/index.js.map +1 -1
- package/dist/hooks/index.mjs +5 -4
- package/dist/{index-IwwXQ_QV.d.ts → index-BaYTgL99.d.mts} +3 -2
- package/dist/{index-B8cUP7cH.d.ts → index-BhU3hF7y.d.ts} +2 -2
- package/dist/{index-iWHaT8HV.d.mts → index-Bpd2gBNh.d.mts} +1 -1
- package/dist/{index-Df-WlkXq.d.ts → index-C5StsjWY.d.ts} +11 -4
- package/dist/{index-BS-NO8Y2.d.ts → index-CFqk8eNo.d.ts} +12 -12
- package/dist/{index-BCGJczpk.d.mts → index-D1QeVZyN.d.ts} +3 -2
- package/dist/{index-DNJuiNdz.d.mts → index-D_UNctDI.d.mts} +11 -4
- package/dist/{index-BsL6zo6a.d.ts → index-DaXXoRxr.d.ts} +1 -1
- package/dist/{index-K5vXmiRX.d.ts → index-Dt92N6yZ.d.ts} +1 -1
- package/dist/{index-CZqdmQu1.d.mts → index-W6yjuOKT.d.mts} +1 -1
- package/dist/{index-Bil_db2f.d.mts → index-mxbJ8CFx.d.mts} +12 -12
- package/dist/{index-yy3VTdFU.d.mts → index-wqqEUufi.d.mts} +2 -2
- package/dist/index.css +3 -0
- package/dist/index.d.mts +7 -7
- package/dist/index.d.ts +7 -7
- package/dist/index.js +1297 -680
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +12 -11
- package/dist/types/index.d.mts +1 -1
- package/dist/types/index.d.ts +1 -1
- package/dist/{types-CZbR7ERa.d.mts → types-Bx_FJ11s.d.mts} +2 -1
- package/dist/{types-CZbR7ERa.d.ts → types-Bx_FJ11s.d.ts} +2 -1
- package/dist/ui/index.d.mts +3 -3
- package/dist/ui/index.d.ts +3 -3
- package/dist/ui/index.js +62 -59
- package/dist/ui/index.js.map +1 -1
- package/dist/ui/index.mjs +2 -2
- package/dist/utils/index.d.mts +2 -1
- package/dist/utils/index.d.ts +2 -1
- package/dist/utils/index.js +6 -0
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/index.mjs +3 -1
- package/example/dist/assets/ccip-nxE3Zma4.js +1 -0
- package/example/dist/assets/index-BFAv3rdU.css +1 -0
- package/example/dist/assets/index-DMWWRDPI.js +1658 -0
- package/example/dist/index.html +2 -2
- package/example/src/pages/User/index.tsx +7 -1
- package/package.json +2 -1
- package/dist/chunk-HYQ3T6WW.mjs.map +0 -1
- package/dist/chunk-LHNKZISB.mjs.map +0 -1
- package/dist/chunk-W5A6WY7Y.mjs.map +0 -1
- package/example/dist/assets/TransportWebHID-BEu7tC0r.js +0 -1
- package/example/dist/assets/bignumber-iG7K-qxw.js +0 -10
- package/example/dist/assets/ccip-a6wQ1Vcb.js +0 -1
- package/example/dist/assets/draggabilly-CRYR_S0q.js +0 -14
- package/example/dist/assets/index--dp9m9Ep.js +0 -1
- package/example/dist/assets/index-BDTHolFv.js +0 -569
- package/example/dist/assets/index-BZl59qLb.js +0 -179
- package/example/dist/assets/index-BmMbYNHO.js +0 -303
- package/example/dist/assets/index-C7cxVRDF.js +0 -1677
- package/example/dist/assets/index-CJk171Yb.js +0 -1
- package/example/dist/assets/index-CQiBesAa.js +0 -3
- package/example/dist/assets/index-D62loNA9.js +0 -3
- package/example/dist/assets/index-DqyX3FG6.js +0 -1
- package/example/dist/assets/index-Gy3FXGhr.css +0 -1
- package/example/dist/assets/inherits_browser-BlmhoU4v.js +0 -1
- package/example/dist/assets/solanaEmbed.esm-Djn-u4Vn.js +0 -38
- /package/dist/{chunk-4A2YPGO3.mjs.map → chunk-4J3KZCLG.mjs.map} +0 -0
- /package/dist/{chunk-FB5MHLWX.mjs.map → chunk-V2S54LGG.mjs.map} +0 -0
|
@@ -16,20 +16,7 @@ import {
|
|
|
16
16
|
useDownMd,
|
|
17
17
|
useHash,
|
|
18
18
|
useLayout_exports
|
|
19
|
-
} from "./chunk-
|
|
20
|
-
import {
|
|
21
|
-
NumberFormatter,
|
|
22
|
-
decodeBase64,
|
|
23
|
-
encodeBase64,
|
|
24
|
-
formatAddress,
|
|
25
|
-
formatDate,
|
|
26
|
-
getAppClientId,
|
|
27
|
-
getVersion,
|
|
28
|
-
isInTgApp,
|
|
29
|
-
isValidEmail,
|
|
30
|
-
isValidUsername,
|
|
31
|
-
truncateAddress
|
|
32
|
-
} from "./chunk-MX7N57AH.mjs";
|
|
19
|
+
} from "./chunk-V2S54LGG.mjs";
|
|
33
20
|
import {
|
|
34
21
|
ArrowDownIcon,
|
|
35
22
|
ArrowRightIcon,
|
|
@@ -57,6 +44,7 @@ import {
|
|
|
57
44
|
LoadingIcon_default,
|
|
58
45
|
LoginIcon_default,
|
|
59
46
|
OKXIcon,
|
|
47
|
+
PhantomIcon,
|
|
60
48
|
SOLDarkIcon,
|
|
61
49
|
SOLLightIcon,
|
|
62
50
|
TRXDarkIcon,
|
|
@@ -72,7 +60,25 @@ import {
|
|
|
72
60
|
XIcon,
|
|
73
61
|
XverseIcon,
|
|
74
62
|
YoutubeIcon
|
|
75
|
-
} from "./chunk-
|
|
63
|
+
} from "./chunk-3USZ4ZZY.mjs";
|
|
64
|
+
import {
|
|
65
|
+
NumberFormatter,
|
|
66
|
+
bytesToBase64,
|
|
67
|
+
decodeBase64,
|
|
68
|
+
encodeBase64,
|
|
69
|
+
formatAddress,
|
|
70
|
+
formatDate,
|
|
71
|
+
getAppClientId,
|
|
72
|
+
getVersion,
|
|
73
|
+
isInTgApp,
|
|
74
|
+
isValidEmail,
|
|
75
|
+
isValidUsername,
|
|
76
|
+
truncateAddress
|
|
77
|
+
} from "./chunk-OCQ2AIM3.mjs";
|
|
78
|
+
import {
|
|
79
|
+
matchMain,
|
|
80
|
+
matchTest
|
|
81
|
+
} from "./chunk-JX73EY6V.mjs";
|
|
76
82
|
import {
|
|
77
83
|
__export
|
|
78
84
|
} from "./chunk-J5LGTIGS.mjs";
|
|
@@ -82,6 +88,7 @@ var components_exports = {};
|
|
|
82
88
|
__export(components_exports, {
|
|
83
89
|
BTCModal: () => BTCModal,
|
|
84
90
|
Button: () => Button,
|
|
91
|
+
EVMModal: () => EVMModal,
|
|
85
92
|
EmailModal: () => EmailModal,
|
|
86
93
|
Field: () => Field,
|
|
87
94
|
Input: () => Input,
|
|
@@ -2312,6 +2319,12 @@ var useBTCModalStore = create5((set) => ({
|
|
|
2312
2319
|
open: (type) => set({ isOpen: true, type }),
|
|
2313
2320
|
close: () => set({ isOpen: false })
|
|
2314
2321
|
}));
|
|
2322
|
+
var useEVMModalStore = create5((set) => ({
|
|
2323
|
+
isOpen: false,
|
|
2324
|
+
type: "",
|
|
2325
|
+
open: (type) => set({ isOpen: true, type }),
|
|
2326
|
+
close: () => set({ isOpen: false })
|
|
2327
|
+
}));
|
|
2315
2328
|
var useCEXBindModalStore = create5((set) => ({
|
|
2316
2329
|
type: "",
|
|
2317
2330
|
isOpen: false,
|
|
@@ -2444,6 +2457,7 @@ import { useQuery as useQuery6 } from "@tanstack/react-query";
|
|
|
2444
2457
|
import { Fragment, jsx as jsx10, jsxs as jsxs8 } from "react/jsx-runtime";
|
|
2445
2458
|
function BusinessProvider({ children }) {
|
|
2446
2459
|
const { overview, token } = useUserInfo();
|
|
2460
|
+
const { type: EVMType, isOpen: EVMIsOpen, close: EVMClose } = useEVMModalStore();
|
|
2447
2461
|
const { type: TONType, isOpen: TONIsOpen, close: TONClose } = useTONModalStore();
|
|
2448
2462
|
const { type: TRONType, isOpen: TRONIsOpen, close: TRONClose } = useTRONModalStore();
|
|
2449
2463
|
const { type: BTCType, isOpen: BTCIsOpen, close: BTCClose } = useBTCModalStore();
|
|
@@ -2475,6 +2489,16 @@ function BusinessProvider({ children }) {
|
|
|
2475
2489
|
refetchInterval: 1e3 * 5
|
|
2476
2490
|
});
|
|
2477
2491
|
return /* @__PURE__ */ jsxs8(Fragment, { children: [
|
|
2492
|
+
/* @__PURE__ */ jsx10(
|
|
2493
|
+
EVMModal,
|
|
2494
|
+
{
|
|
2495
|
+
isOpen: EVMIsOpen && (EVMType == "login" && !overview && !token || EVMType == "bind" && !!token && !!overview),
|
|
2496
|
+
onClose: EVMClose,
|
|
2497
|
+
type: EVMType,
|
|
2498
|
+
onSuccess: EVMClose,
|
|
2499
|
+
zIndex: 199
|
|
2500
|
+
}
|
|
2501
|
+
),
|
|
2478
2502
|
/* @__PURE__ */ jsx10(
|
|
2479
2503
|
TRONModal,
|
|
2480
2504
|
{
|
|
@@ -2977,7 +3001,7 @@ var en_default = {
|
|
|
2977
3001
|
amountPlaceholder: "Enter the Amount.",
|
|
2978
3002
|
balance: "Balance",
|
|
2979
3003
|
receiveTitle: "Received wallet address",
|
|
2980
|
-
receivePlaceholder: "Enter the
|
|
3004
|
+
receivePlaceholder: "Enter the Receiving wallet address.",
|
|
2981
3005
|
next: "Next",
|
|
2982
3006
|
copied: "Copied",
|
|
2983
3007
|
receiveQrcode: "Receive by scanning the QR code",
|
|
@@ -3725,6 +3749,7 @@ function useUserInfo() {
|
|
|
3725
3749
|
const { setTgAppAuthCode, emailLoginKey, setEmailLoginKey } = useStore_default();
|
|
3726
3750
|
const isDownMd = useDownMd();
|
|
3727
3751
|
const { events, login } = useMatch();
|
|
3752
|
+
const { open: EVMOpen } = useEVMModalStore();
|
|
3728
3753
|
const { open: TRONOpen } = useTRONModalStore();
|
|
3729
3754
|
const { open: TONOpen } = useTONModalStore();
|
|
3730
3755
|
const { open: BTCOpen } = useBTCModalStore();
|
|
@@ -3801,7 +3826,8 @@ function useUserInfo() {
|
|
|
3801
3826
|
case "wallet":
|
|
3802
3827
|
return walletModalStore.open("login", extra?.methods);
|
|
3803
3828
|
case "evm":
|
|
3804
|
-
return
|
|
3829
|
+
return EVMOpen("login");
|
|
3830
|
+
// return window.open(`${endpoints.auth}login/wallet?appid=${appid}&locale=${locale}`)
|
|
3805
3831
|
case "sol":
|
|
3806
3832
|
if (isDownMd) {
|
|
3807
3833
|
return window.location.href = `${endpoints.auth}login/sol?appid=${appid}&locale=${locale}&redirect_uri=${getRedirectUri()}`;
|
|
@@ -3893,7 +3919,8 @@ function useUserInfo() {
|
|
|
3893
3919
|
case "wallet":
|
|
3894
3920
|
return walletModalStore.open("bind", extra?.methods);
|
|
3895
3921
|
case "evm":
|
|
3896
|
-
return
|
|
3922
|
+
return EVMOpen("bind");
|
|
3923
|
+
// return window.open(`${endpoints.auth}bind/wallet?appid=${appid}&locale=${locale}&st=` + encodeURIComponent(encodeBase64(token)))
|
|
3897
3924
|
case "sol":
|
|
3898
3925
|
if (isDownMd) {
|
|
3899
3926
|
return window.location.href = `${endpoints.auth}bind/sol?appid=${appid}&locale=${locale}&st=${encodeURIComponent(encodeBase64(token))}&redirect_uri=${getRedirectUri()}`;
|
|
@@ -4696,12 +4723,12 @@ function UsernameModal({
|
|
|
4696
4723
|
] }) });
|
|
4697
4724
|
}
|
|
4698
4725
|
|
|
4699
|
-
// src/components/
|
|
4700
|
-
import
|
|
4726
|
+
// src/components/EVMModal/index.tsx
|
|
4727
|
+
import { useCallback as useCallback6, useEffect as useEffect18 } from "react";
|
|
4701
4728
|
import { useIntl as useIntl12 } from "react-intl";
|
|
4702
4729
|
|
|
4703
4730
|
// src/components/WalletModalContent/index.tsx
|
|
4704
|
-
import { useMemo as useMemo11 } from "react";
|
|
4731
|
+
import { useMemo as useMemo11, useState as useState19 } from "react";
|
|
4705
4732
|
|
|
4706
4733
|
// src/assets/wallet.ts
|
|
4707
4734
|
var walletErrorImage = "data:image/png;base64,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";
|
|
@@ -4784,7 +4811,88 @@ function WalletModalContent({
|
|
|
4784
4811
|
return /* @__PURE__ */ jsx22("div", { className: "matchid-wallet-container", children: /* @__PURE__ */ jsxs16("div", { className: `matchid-wallet-box`, children: [
|
|
4785
4812
|
/* @__PURE__ */ jsxs16("div", { className: `matchid-wallet-content`, children: [
|
|
4786
4813
|
/* @__PURE__ */ jsx22("img", { src: pageData.statusImage }),
|
|
4787
|
-
/* @__PURE__ */ jsx22("div", { className: pageData.isError ? "
|
|
4814
|
+
/* @__PURE__ */ jsx22("div", { className: pageData.isError ? "matchid-error" : "", children: pageData.text })
|
|
4815
|
+
] }),
|
|
4816
|
+
/* @__PURE__ */ jsx22(
|
|
4817
|
+
Button,
|
|
4818
|
+
{
|
|
4819
|
+
block: true,
|
|
4820
|
+
size: "lg",
|
|
4821
|
+
onClick: pageData.btnClick,
|
|
4822
|
+
loading: pageData.btnLoading,
|
|
4823
|
+
disabled: pageData.btnDisabled,
|
|
4824
|
+
children: pageData.btnText
|
|
4825
|
+
}
|
|
4826
|
+
)
|
|
4827
|
+
] }) });
|
|
4828
|
+
}
|
|
4829
|
+
function WalletModalContentV2(props) {
|
|
4830
|
+
const [submitting, setSubmitting] = useState19(false);
|
|
4831
|
+
const pageData = useMemo11(() => {
|
|
4832
|
+
const { status } = props;
|
|
4833
|
+
if (status == "success") {
|
|
4834
|
+
return {
|
|
4835
|
+
btnText: "Disconnect Wallet",
|
|
4836
|
+
btnClick: async () => {
|
|
4837
|
+
setSubmitting(true);
|
|
4838
|
+
await props.onDisconnect?.();
|
|
4839
|
+
setSubmitting(false);
|
|
4840
|
+
},
|
|
4841
|
+
text: "Wallet connection successful!",
|
|
4842
|
+
statusImage: walletConnectedImage,
|
|
4843
|
+
btnLoading: submitting
|
|
4844
|
+
};
|
|
4845
|
+
}
|
|
4846
|
+
if (status == "error") {
|
|
4847
|
+
return {
|
|
4848
|
+
text: props.error || "Unknown Error",
|
|
4849
|
+
btnText: "Reconnect Wallet",
|
|
4850
|
+
btnClick: async () => {
|
|
4851
|
+
setSubmitting(true);
|
|
4852
|
+
await props.onError?.();
|
|
4853
|
+
setSubmitting(false);
|
|
4854
|
+
},
|
|
4855
|
+
statusImage: walletErrorImage,
|
|
4856
|
+
isError: true,
|
|
4857
|
+
btnLoading: submitting
|
|
4858
|
+
};
|
|
4859
|
+
}
|
|
4860
|
+
if (status == "nonce") {
|
|
4861
|
+
return {
|
|
4862
|
+
btnLoading: true,
|
|
4863
|
+
text: "Connecting",
|
|
4864
|
+
statusImage: walletConnectingImage
|
|
4865
|
+
};
|
|
4866
|
+
}
|
|
4867
|
+
if (status == "signer") {
|
|
4868
|
+
return {
|
|
4869
|
+
btnLoading: true,
|
|
4870
|
+
text: "Signing",
|
|
4871
|
+
statusImage: walletSigningImage
|
|
4872
|
+
};
|
|
4873
|
+
}
|
|
4874
|
+
if (status == "connecting") {
|
|
4875
|
+
return {
|
|
4876
|
+
btnLoading: true,
|
|
4877
|
+
text: "Connecting",
|
|
4878
|
+
statusImage: walletConnectingImage
|
|
4879
|
+
};
|
|
4880
|
+
}
|
|
4881
|
+
return {
|
|
4882
|
+
btnText: "Connect Wallet",
|
|
4883
|
+
btnClick: async () => {
|
|
4884
|
+
setSubmitting(true);
|
|
4885
|
+
await props.onConnect?.();
|
|
4886
|
+
setSubmitting(false);
|
|
4887
|
+
},
|
|
4888
|
+
text: "Please Connect your wallet",
|
|
4889
|
+
statusImage: walletConnectImage
|
|
4890
|
+
};
|
|
4891
|
+
}, [props, submitting]);
|
|
4892
|
+
return /* @__PURE__ */ jsx22("div", { className: "matchid-wallet-container", children: /* @__PURE__ */ jsxs16("div", { className: `matchid-wallet-box`, children: [
|
|
4893
|
+
/* @__PURE__ */ jsxs16("div", { className: `matchid-wallet-content`, children: [
|
|
4894
|
+
/* @__PURE__ */ jsx22("img", { src: pageData.statusImage }),
|
|
4895
|
+
/* @__PURE__ */ jsx22("div", { className: props.status == "error" ? "matchid-error" : "", children: pageData.text })
|
|
4788
4896
|
] }),
|
|
4789
4897
|
/* @__PURE__ */ jsx22(
|
|
4790
4898
|
Button,
|
|
@@ -4800,6 +4908,477 @@ function WalletModalContent({
|
|
|
4800
4908
|
] }) });
|
|
4801
4909
|
}
|
|
4802
4910
|
|
|
4911
|
+
// src/components/EVMModal/index.tsx
|
|
4912
|
+
import {
|
|
4913
|
+
mainnet,
|
|
4914
|
+
polygon,
|
|
4915
|
+
optimism,
|
|
4916
|
+
arbitrum,
|
|
4917
|
+
base,
|
|
4918
|
+
bsc
|
|
4919
|
+
} from "wagmi/chains";
|
|
4920
|
+
import { getDefaultConfig, RainbowKitProvider, useConnectModal } from "@rainbow-me/rainbowkit";
|
|
4921
|
+
import { useAccount, useChainId, useConfig, useDisconnect, WagmiProvider } from "wagmi";
|
|
4922
|
+
import {
|
|
4923
|
+
bitgetWallet,
|
|
4924
|
+
injectedWallet,
|
|
4925
|
+
metaMaskWallet,
|
|
4926
|
+
okxWallet,
|
|
4927
|
+
walletConnectWallet
|
|
4928
|
+
} from "@rainbow-me/rainbowkit/wallets";
|
|
4929
|
+
|
|
4930
|
+
// src/hooks/useWalletBox.ts
|
|
4931
|
+
import { useEffect as useEffect17, useRef as useRef5, useState as useState20 } from "react";
|
|
4932
|
+
function useWalletBox({
|
|
4933
|
+
onInit
|
|
4934
|
+
}) {
|
|
4935
|
+
const [status, setStateStatus] = useState20("start");
|
|
4936
|
+
const [error, setError] = useState20("");
|
|
4937
|
+
const statusRef = useRef5(status);
|
|
4938
|
+
const [nonce, setNonce] = useState20();
|
|
4939
|
+
const setStatus = (status2) => {
|
|
4940
|
+
statusRef.current = status2;
|
|
4941
|
+
setStateStatus(status2);
|
|
4942
|
+
};
|
|
4943
|
+
const init = () => {
|
|
4944
|
+
setError("");
|
|
4945
|
+
setNonce(null);
|
|
4946
|
+
};
|
|
4947
|
+
useEffect17(() => {
|
|
4948
|
+
init();
|
|
4949
|
+
onInit({
|
|
4950
|
+
setStatus
|
|
4951
|
+
});
|
|
4952
|
+
return () => {
|
|
4953
|
+
setStatus("start");
|
|
4954
|
+
setNonce(null);
|
|
4955
|
+
setError("");
|
|
4956
|
+
};
|
|
4957
|
+
}, []);
|
|
4958
|
+
return {
|
|
4959
|
+
status,
|
|
4960
|
+
statusRef,
|
|
4961
|
+
setStatus,
|
|
4962
|
+
error,
|
|
4963
|
+
setError,
|
|
4964
|
+
nonce,
|
|
4965
|
+
setNonce,
|
|
4966
|
+
init
|
|
4967
|
+
};
|
|
4968
|
+
}
|
|
4969
|
+
|
|
4970
|
+
// src/hooks/useEthersSigner.ts
|
|
4971
|
+
import * as React7 from "react";
|
|
4972
|
+
import { useWalletClient } from "wagmi";
|
|
4973
|
+
import { providers } from "ethers";
|
|
4974
|
+
|
|
4975
|
+
// node_modules/@wagmi/core/dist/esm/version.js
|
|
4976
|
+
var version = "2.16.3";
|
|
4977
|
+
|
|
4978
|
+
// node_modules/@wagmi/core/dist/esm/utils/getVersion.js
|
|
4979
|
+
var getVersion2 = () => `@wagmi/core@${version}`;
|
|
4980
|
+
|
|
4981
|
+
// node_modules/@wagmi/core/dist/esm/errors/base.js
|
|
4982
|
+
var __classPrivateFieldGet = function(receiver, state, kind, f) {
|
|
4983
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
4984
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
4985
|
+
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
4986
|
+
};
|
|
4987
|
+
var _BaseError_instances;
|
|
4988
|
+
var _BaseError_walk;
|
|
4989
|
+
var BaseError = class _BaseError extends Error {
|
|
4990
|
+
get docsBaseUrl() {
|
|
4991
|
+
return "https://wagmi.sh/core";
|
|
4992
|
+
}
|
|
4993
|
+
get version() {
|
|
4994
|
+
return getVersion2();
|
|
4995
|
+
}
|
|
4996
|
+
constructor(shortMessage, options = {}) {
|
|
4997
|
+
super();
|
|
4998
|
+
_BaseError_instances.add(this);
|
|
4999
|
+
Object.defineProperty(this, "details", {
|
|
5000
|
+
enumerable: true,
|
|
5001
|
+
configurable: true,
|
|
5002
|
+
writable: true,
|
|
5003
|
+
value: void 0
|
|
5004
|
+
});
|
|
5005
|
+
Object.defineProperty(this, "docsPath", {
|
|
5006
|
+
enumerable: true,
|
|
5007
|
+
configurable: true,
|
|
5008
|
+
writable: true,
|
|
5009
|
+
value: void 0
|
|
5010
|
+
});
|
|
5011
|
+
Object.defineProperty(this, "metaMessages", {
|
|
5012
|
+
enumerable: true,
|
|
5013
|
+
configurable: true,
|
|
5014
|
+
writable: true,
|
|
5015
|
+
value: void 0
|
|
5016
|
+
});
|
|
5017
|
+
Object.defineProperty(this, "shortMessage", {
|
|
5018
|
+
enumerable: true,
|
|
5019
|
+
configurable: true,
|
|
5020
|
+
writable: true,
|
|
5021
|
+
value: void 0
|
|
5022
|
+
});
|
|
5023
|
+
Object.defineProperty(this, "name", {
|
|
5024
|
+
enumerable: true,
|
|
5025
|
+
configurable: true,
|
|
5026
|
+
writable: true,
|
|
5027
|
+
value: "WagmiCoreError"
|
|
5028
|
+
});
|
|
5029
|
+
const details = options.cause instanceof _BaseError ? options.cause.details : options.cause?.message ? options.cause.message : options.details;
|
|
5030
|
+
const docsPath = options.cause instanceof _BaseError ? options.cause.docsPath || options.docsPath : options.docsPath;
|
|
5031
|
+
this.message = [
|
|
5032
|
+
shortMessage || "An error occurred.",
|
|
5033
|
+
"",
|
|
5034
|
+
...options.metaMessages ? [...options.metaMessages, ""] : [],
|
|
5035
|
+
...docsPath ? [
|
|
5036
|
+
`Docs: ${this.docsBaseUrl}${docsPath}.html${options.docsSlug ? `#${options.docsSlug}` : ""}`
|
|
5037
|
+
] : [],
|
|
5038
|
+
...details ? [`Details: ${details}`] : [],
|
|
5039
|
+
`Version: ${this.version}`
|
|
5040
|
+
].join("\n");
|
|
5041
|
+
if (options.cause)
|
|
5042
|
+
this.cause = options.cause;
|
|
5043
|
+
this.details = details;
|
|
5044
|
+
this.docsPath = docsPath;
|
|
5045
|
+
this.metaMessages = options.metaMessages;
|
|
5046
|
+
this.shortMessage = shortMessage;
|
|
5047
|
+
}
|
|
5048
|
+
walk(fn) {
|
|
5049
|
+
return __classPrivateFieldGet(this, _BaseError_instances, "m", _BaseError_walk).call(this, this, fn);
|
|
5050
|
+
}
|
|
5051
|
+
};
|
|
5052
|
+
_BaseError_instances = /* @__PURE__ */ new WeakSet(), _BaseError_walk = function _BaseError_walk2(err, fn) {
|
|
5053
|
+
if (fn?.(err))
|
|
5054
|
+
return err;
|
|
5055
|
+
if (err.cause)
|
|
5056
|
+
return __classPrivateFieldGet(this, _BaseError_instances, "m", _BaseError_walk2).call(this, err.cause, fn);
|
|
5057
|
+
return err;
|
|
5058
|
+
};
|
|
5059
|
+
|
|
5060
|
+
// node_modules/@wagmi/core/dist/esm/errors/config.js
|
|
5061
|
+
var ConnectorNotConnectedError = class extends BaseError {
|
|
5062
|
+
constructor() {
|
|
5063
|
+
super("Connector not connected.");
|
|
5064
|
+
Object.defineProperty(this, "name", {
|
|
5065
|
+
enumerable: true,
|
|
5066
|
+
configurable: true,
|
|
5067
|
+
writable: true,
|
|
5068
|
+
value: "ConnectorNotConnectedError"
|
|
5069
|
+
});
|
|
5070
|
+
}
|
|
5071
|
+
};
|
|
5072
|
+
var ConnectorAccountNotFoundError = class extends BaseError {
|
|
5073
|
+
constructor({ address, connector }) {
|
|
5074
|
+
super(`Account "${address}" not found for connector "${connector.name}".`);
|
|
5075
|
+
Object.defineProperty(this, "name", {
|
|
5076
|
+
enumerable: true,
|
|
5077
|
+
configurable: true,
|
|
5078
|
+
writable: true,
|
|
5079
|
+
value: "ConnectorAccountNotFoundError"
|
|
5080
|
+
});
|
|
5081
|
+
}
|
|
5082
|
+
};
|
|
5083
|
+
var ConnectorChainMismatchError = class extends BaseError {
|
|
5084
|
+
constructor({ connectionChainId, connectorChainId }) {
|
|
5085
|
+
super(`The current chain of the connector (id: ${connectorChainId}) does not match the connection's chain (id: ${connectionChainId}).`, {
|
|
5086
|
+
metaMessages: [
|
|
5087
|
+
`Current Chain ID: ${connectorChainId}`,
|
|
5088
|
+
`Expected Chain ID: ${connectionChainId}`
|
|
5089
|
+
]
|
|
5090
|
+
});
|
|
5091
|
+
Object.defineProperty(this, "name", {
|
|
5092
|
+
enumerable: true,
|
|
5093
|
+
configurable: true,
|
|
5094
|
+
writable: true,
|
|
5095
|
+
value: "ConnectorChainMismatchError"
|
|
5096
|
+
});
|
|
5097
|
+
}
|
|
5098
|
+
};
|
|
5099
|
+
var ConnectorUnavailableReconnectingError = class extends BaseError {
|
|
5100
|
+
constructor({ connector }) {
|
|
5101
|
+
super(`Connector "${connector.name}" unavailable while reconnecting.`, {
|
|
5102
|
+
details: [
|
|
5103
|
+
"During the reconnection step, the only connector methods guaranteed to be available are: `id`, `name`, `type`, `uid`.",
|
|
5104
|
+
"All other methods are not guaranteed to be available until reconnection completes and connectors are fully restored.",
|
|
5105
|
+
"This error commonly occurs for connectors that asynchronously inject after reconnection has already started."
|
|
5106
|
+
].join(" ")
|
|
5107
|
+
});
|
|
5108
|
+
Object.defineProperty(this, "name", {
|
|
5109
|
+
enumerable: true,
|
|
5110
|
+
configurable: true,
|
|
5111
|
+
writable: true,
|
|
5112
|
+
value: "ConnectorUnavailableReconnectingError"
|
|
5113
|
+
});
|
|
5114
|
+
}
|
|
5115
|
+
};
|
|
5116
|
+
|
|
5117
|
+
// node_modules/@wagmi/core/dist/esm/actions/getConnectorClient.js
|
|
5118
|
+
import { createClient, custom } from "viem";
|
|
5119
|
+
import { getAddress, parseAccount } from "viem/utils";
|
|
5120
|
+
async function getConnectorClient(config, parameters = {}) {
|
|
5121
|
+
let connection;
|
|
5122
|
+
if (parameters.connector) {
|
|
5123
|
+
const { connector: connector2 } = parameters;
|
|
5124
|
+
if (config.state.status === "reconnecting" && !connector2.getAccounts && !connector2.getChainId)
|
|
5125
|
+
throw new ConnectorUnavailableReconnectingError({ connector: connector2 });
|
|
5126
|
+
const [accounts, chainId2] = await Promise.all([
|
|
5127
|
+
connector2.getAccounts(),
|
|
5128
|
+
connector2.getChainId()
|
|
5129
|
+
]);
|
|
5130
|
+
connection = {
|
|
5131
|
+
accounts,
|
|
5132
|
+
chainId: chainId2,
|
|
5133
|
+
connector: connector2
|
|
5134
|
+
};
|
|
5135
|
+
} else
|
|
5136
|
+
connection = config.state.connections.get(config.state.current);
|
|
5137
|
+
if (!connection)
|
|
5138
|
+
throw new ConnectorNotConnectedError();
|
|
5139
|
+
const chainId = parameters.chainId ?? connection.chainId;
|
|
5140
|
+
const connectorChainId = await connection.connector.getChainId();
|
|
5141
|
+
if (connectorChainId !== connection.chainId)
|
|
5142
|
+
throw new ConnectorChainMismatchError({
|
|
5143
|
+
connectionChainId: connection.chainId,
|
|
5144
|
+
connectorChainId
|
|
5145
|
+
});
|
|
5146
|
+
const connector = connection.connector;
|
|
5147
|
+
if (connector.getClient)
|
|
5148
|
+
return connector.getClient({ chainId });
|
|
5149
|
+
const account = parseAccount(parameters.account ?? connection.accounts[0]);
|
|
5150
|
+
account.address = getAddress(account.address);
|
|
5151
|
+
if (parameters.account && !connection.accounts.some((x) => x.toLowerCase() === account.address.toLowerCase()))
|
|
5152
|
+
throw new ConnectorAccountNotFoundError({
|
|
5153
|
+
address: account.address,
|
|
5154
|
+
connector
|
|
5155
|
+
});
|
|
5156
|
+
const chain = config.chains.find((chain2) => chain2.id === chainId);
|
|
5157
|
+
const provider = await connection.connector.getProvider({ chainId });
|
|
5158
|
+
return createClient({
|
|
5159
|
+
account,
|
|
5160
|
+
chain,
|
|
5161
|
+
name: "Connector Client",
|
|
5162
|
+
transport: (opts) => custom(provider)({ ...opts, retryCount: 0 })
|
|
5163
|
+
});
|
|
5164
|
+
}
|
|
5165
|
+
|
|
5166
|
+
// node_modules/@wagmi/core/dist/esm/exports/index.js
|
|
5167
|
+
import { custom as custom2, http as http6, webSocket } from "viem";
|
|
5168
|
+
|
|
5169
|
+
// src/hooks/useEthersSigner.ts
|
|
5170
|
+
function clientToSigner(client) {
|
|
5171
|
+
const { account, chain, transport } = client;
|
|
5172
|
+
const network = {
|
|
5173
|
+
chainId: chain.id,
|
|
5174
|
+
name: chain.name,
|
|
5175
|
+
ensAddress: chain.contracts?.ensRegistry?.address
|
|
5176
|
+
};
|
|
5177
|
+
const provider = new providers.Web3Provider(transport, network);
|
|
5178
|
+
const signer = provider.getSigner(account.address);
|
|
5179
|
+
return signer;
|
|
5180
|
+
}
|
|
5181
|
+
async function getEthersSigner(config, { chainId } = {}) {
|
|
5182
|
+
const client = await getConnectorClient(config, { chainId });
|
|
5183
|
+
return clientToSigner(client);
|
|
5184
|
+
}
|
|
5185
|
+
|
|
5186
|
+
// src/components/EVMModal/index.tsx
|
|
5187
|
+
import { SiweMessage } from "siwe";
|
|
5188
|
+
import "@rainbow-me/rainbowkit/styles.css";
|
|
5189
|
+
import { jsx as jsx23 } from "react/jsx-runtime";
|
|
5190
|
+
function WalletContent({
|
|
5191
|
+
onSuccess,
|
|
5192
|
+
type
|
|
5193
|
+
}) {
|
|
5194
|
+
const config = useConfig();
|
|
5195
|
+
const { openConnectModal, connectModalOpen } = useConnectModal();
|
|
5196
|
+
const { address, connector, isConnected } = useAccount();
|
|
5197
|
+
const { disconnectAsync } = useDisconnect({ config });
|
|
5198
|
+
const chainId = useChainId();
|
|
5199
|
+
const { events, login } = useMatch();
|
|
5200
|
+
const { status, setStatus, error, setError, statusRef, nonce, setNonce, init } = useWalletBox({
|
|
5201
|
+
onInit: async ({ setStatus: setStatus2 }) => {
|
|
5202
|
+
setStatus2("start");
|
|
5203
|
+
}
|
|
5204
|
+
});
|
|
5205
|
+
useEffect18(() => {
|
|
5206
|
+
console.log(`status=${status}`, `connectModalOpen=${connectModalOpen}`, `address=${address}`, `isConnected=${isConnected}`);
|
|
5207
|
+
}, [status, connectModalOpen, isConnected, address]);
|
|
5208
|
+
useEffect18(() => {
|
|
5209
|
+
if (connectModalOpen) {
|
|
5210
|
+
setStatus("connecting");
|
|
5211
|
+
return;
|
|
5212
|
+
}
|
|
5213
|
+
if (!connectModalOpen && address) {
|
|
5214
|
+
toLoginInWallet(address);
|
|
5215
|
+
return;
|
|
5216
|
+
}
|
|
5217
|
+
if (!connectModalOpen && !address) {
|
|
5218
|
+
setStatus("start");
|
|
5219
|
+
}
|
|
5220
|
+
}, [connectModalOpen, address]);
|
|
5221
|
+
useEffect18(() => {
|
|
5222
|
+
if (openConnectModal && !address) {
|
|
5223
|
+
openConnectModal && openConnectModal();
|
|
5224
|
+
}
|
|
5225
|
+
}, [openConnectModal]);
|
|
5226
|
+
const toLoginInWallet = async (address2) => {
|
|
5227
|
+
if (statusRef.current != "start" && statusRef.current != "connecting") return;
|
|
5228
|
+
try {
|
|
5229
|
+
if (!address2) {
|
|
5230
|
+
throw new Error("Wallet address is empty");
|
|
5231
|
+
}
|
|
5232
|
+
setStatus("nonce");
|
|
5233
|
+
const res = type == "bind" ? await getWalletInitApi({
|
|
5234
|
+
address: address2,
|
|
5235
|
+
type: "EVM"
|
|
5236
|
+
}) : await getWalletNonceApi({ address: address2, type: "EVM" });
|
|
5237
|
+
if (!isSuccess(res)) {
|
|
5238
|
+
throw new Error(res.message);
|
|
5239
|
+
}
|
|
5240
|
+
setNonce(res.data.nonce);
|
|
5241
|
+
} catch (error2) {
|
|
5242
|
+
console.error("toLoginInWallet", error2);
|
|
5243
|
+
setStatus("error");
|
|
5244
|
+
setError(error2.message);
|
|
5245
|
+
}
|
|
5246
|
+
};
|
|
5247
|
+
const signature = useCallback6(async () => {
|
|
5248
|
+
if (!nonce || status != "nonce") {
|
|
5249
|
+
return;
|
|
5250
|
+
}
|
|
5251
|
+
try {
|
|
5252
|
+
const signer = await getEthersSigner(config);
|
|
5253
|
+
if (!signer) return;
|
|
5254
|
+
matchlog_default.log("signature", nonce, status);
|
|
5255
|
+
if (!address) {
|
|
5256
|
+
throw new Error("Wallet address is empty");
|
|
5257
|
+
}
|
|
5258
|
+
setStatus("signer");
|
|
5259
|
+
const params = {
|
|
5260
|
+
domain: window.location.host,
|
|
5261
|
+
address,
|
|
5262
|
+
statement: "By signing, you are proving you own this wallet and logging in. This does not initiate a transaction or cost any fees.",
|
|
5263
|
+
uri: window.location.origin,
|
|
5264
|
+
nonce,
|
|
5265
|
+
version: "1",
|
|
5266
|
+
chainId
|
|
5267
|
+
};
|
|
5268
|
+
const message = new SiweMessage({ ...params });
|
|
5269
|
+
const signature2 = await signer.signMessage(message.prepareMessage());
|
|
5270
|
+
const obj = {
|
|
5271
|
+
type: "EVM",
|
|
5272
|
+
address,
|
|
5273
|
+
signature: signature2,
|
|
5274
|
+
message: `${message.prepareMessage()}`,
|
|
5275
|
+
connector_type: connector?.type || "",
|
|
5276
|
+
wallet_client_type: connector?.name || ""
|
|
5277
|
+
};
|
|
5278
|
+
const res = type == "bind" ? await toBindWalletApi(obj) : await loginByWalletApi(obj);
|
|
5279
|
+
if (!isSuccess(res)) {
|
|
5280
|
+
throw new Error(res.message);
|
|
5281
|
+
}
|
|
5282
|
+
matchlog_default.log(res);
|
|
5283
|
+
setStatus("success");
|
|
5284
|
+
if (type == "bind") {
|
|
5285
|
+
events.onBind && events.onBind({
|
|
5286
|
+
type: "evm"
|
|
5287
|
+
});
|
|
5288
|
+
eventManager_default.emit("onBind", {
|
|
5289
|
+
type: "evm"
|
|
5290
|
+
});
|
|
5291
|
+
} else {
|
|
5292
|
+
await login({
|
|
5293
|
+
token: `${res.data.token_type} ${res.data.access_token}`
|
|
5294
|
+
});
|
|
5295
|
+
}
|
|
5296
|
+
onSuccess && onSuccess();
|
|
5297
|
+
} catch (error2) {
|
|
5298
|
+
console.error("signature", error2);
|
|
5299
|
+
setStatus("error");
|
|
5300
|
+
setError(error2.message);
|
|
5301
|
+
}
|
|
5302
|
+
}, [nonce, status, address]);
|
|
5303
|
+
useEffect18(() => {
|
|
5304
|
+
if (signature) {
|
|
5305
|
+
signature();
|
|
5306
|
+
}
|
|
5307
|
+
}, [signature]);
|
|
5308
|
+
const onError = async () => {
|
|
5309
|
+
if (isConnected) {
|
|
5310
|
+
try {
|
|
5311
|
+
await disconnectAsync();
|
|
5312
|
+
} catch (error2) {
|
|
5313
|
+
console.error("disconnectAsync", error2);
|
|
5314
|
+
}
|
|
5315
|
+
}
|
|
5316
|
+
setError("");
|
|
5317
|
+
setNonce(void 0);
|
|
5318
|
+
setStatus("start");
|
|
5319
|
+
openConnectModal?.();
|
|
5320
|
+
};
|
|
5321
|
+
const onConnect = async () => {
|
|
5322
|
+
console.log("onConnect");
|
|
5323
|
+
setError("");
|
|
5324
|
+
setNonce(void 0);
|
|
5325
|
+
openConnectModal?.();
|
|
5326
|
+
};
|
|
5327
|
+
const onDisconnect = async () => {
|
|
5328
|
+
await disconnectAsync();
|
|
5329
|
+
setError("");
|
|
5330
|
+
setNonce(void 0);
|
|
5331
|
+
setStatus("start");
|
|
5332
|
+
};
|
|
5333
|
+
return /* @__PURE__ */ jsx23(
|
|
5334
|
+
WalletModalContentV2,
|
|
5335
|
+
{
|
|
5336
|
+
status,
|
|
5337
|
+
onSuccess: async () => onSuccess?.(),
|
|
5338
|
+
error,
|
|
5339
|
+
onError,
|
|
5340
|
+
onConnect,
|
|
5341
|
+
onDisconnect
|
|
5342
|
+
}
|
|
5343
|
+
);
|
|
5344
|
+
}
|
|
5345
|
+
var wagmiConfig = getDefaultConfig({
|
|
5346
|
+
appName: "MatchID",
|
|
5347
|
+
projectId: "9ac6ea7e07860f04616fb311b447dee9",
|
|
5348
|
+
wallets: [
|
|
5349
|
+
{
|
|
5350
|
+
groupName: "Recommended",
|
|
5351
|
+
wallets: [
|
|
5352
|
+
metaMaskWallet,
|
|
5353
|
+
walletConnectWallet,
|
|
5354
|
+
okxWallet,
|
|
5355
|
+
bitgetWallet,
|
|
5356
|
+
injectedWallet
|
|
5357
|
+
]
|
|
5358
|
+
}
|
|
5359
|
+
],
|
|
5360
|
+
chains: [mainnet, polygon, optimism, arbitrum, base, matchMain, matchTest, bsc]
|
|
5361
|
+
});
|
|
5362
|
+
function EVMConnectModal({
|
|
5363
|
+
type = "login",
|
|
5364
|
+
onSuccess,
|
|
5365
|
+
...props
|
|
5366
|
+
}) {
|
|
5367
|
+
const intl = useIntl12();
|
|
5368
|
+
return /* @__PURE__ */ jsx23(ModalWithHeader, { ...props, title: props.title || intl.formatMessage({
|
|
5369
|
+
id: type == "bind" ? "bindWith" : "loginWith"
|
|
5370
|
+
}, {
|
|
5371
|
+
name: "EVM"
|
|
5372
|
+
}), children: /* @__PURE__ */ jsx23(WagmiProvider, { config: wagmiConfig, children: /* @__PURE__ */ jsx23(RainbowKitProvider, { children: /* @__PURE__ */ jsx23(WalletContent, { onSuccess, type }) }) }) });
|
|
5373
|
+
}
|
|
5374
|
+
function EVMModal(props) {
|
|
5375
|
+
return props.isOpen && /* @__PURE__ */ jsx23(EVMConnectModal, { ...props });
|
|
5376
|
+
}
|
|
5377
|
+
|
|
5378
|
+
// src/components/TRONModal/index.tsx
|
|
5379
|
+
import React9, { useEffect as useEffect20, useMemo as useMemo13, useState as useState23 } from "react";
|
|
5380
|
+
import { useIntl as useIntl13 } from "react-intl";
|
|
5381
|
+
|
|
4803
5382
|
// src/lib/tron/TronLinkAdapter.ts
|
|
4804
5383
|
var TronLinkAdapter = class {
|
|
4805
5384
|
constructor() {
|
|
@@ -4831,7 +5410,7 @@ var TronLinkAdapter = class {
|
|
|
4831
5410
|
};
|
|
4832
5411
|
|
|
4833
5412
|
// src/hooks/useTRONWallet.ts
|
|
4834
|
-
import { useEffect as
|
|
5413
|
+
import { useEffect as useEffect19, useState as useState22 } from "react";
|
|
4835
5414
|
|
|
4836
5415
|
// src/lib/tron/BitgetAdapter.ts
|
|
4837
5416
|
var BitgetAdapter = class {
|
|
@@ -4876,9 +5455,9 @@ var OKXAdapter = class {
|
|
|
4876
5455
|
// src/hooks/useTRONWallet.ts
|
|
4877
5456
|
var useTRONWallet = () => {
|
|
4878
5457
|
const wallets = [new TronLinkAdapter(), new BitgetAdapter(), new OKXAdapter()];
|
|
4879
|
-
const [installedWallets, setInstalledWallets] =
|
|
4880
|
-
const [address, setAddress] =
|
|
4881
|
-
|
|
5458
|
+
const [installedWallets, setInstalledWallets] = useState22([]);
|
|
5459
|
+
const [address, setAddress] = useState22(null);
|
|
5460
|
+
useEffect19(() => {
|
|
4882
5461
|
const getInstalled = async () => {
|
|
4883
5462
|
const installed = await Promise.all(wallets.map((wallet2) => wallet2.isInstalled().then((isInstalled) => ({
|
|
4884
5463
|
wallet: wallet2,
|
|
@@ -4888,11 +5467,11 @@ var useTRONWallet = () => {
|
|
|
4888
5467
|
};
|
|
4889
5468
|
getInstalled();
|
|
4890
5469
|
}, []);
|
|
4891
|
-
const [wallet, chooseWallet] =
|
|
5470
|
+
const [wallet, chooseWallet] = useState22(null);
|
|
4892
5471
|
const onConnect = async () => {
|
|
4893
5472
|
setAddress(await wallet.connect());
|
|
4894
5473
|
};
|
|
4895
|
-
|
|
5474
|
+
useEffect19(() => {
|
|
4896
5475
|
if (!wallet) {
|
|
4897
5476
|
setAddress(null);
|
|
4898
5477
|
}
|
|
@@ -4908,25 +5487,25 @@ var useTRONWallet = () => {
|
|
|
4908
5487
|
};
|
|
4909
5488
|
|
|
4910
5489
|
// src/components/TRONModal/index.tsx
|
|
4911
|
-
import { jsx as
|
|
5490
|
+
import { jsx as jsx24, jsxs as jsxs17 } from "react/jsx-runtime";
|
|
4912
5491
|
function TRONConnectModal({
|
|
4913
5492
|
type = "login",
|
|
4914
5493
|
onSuccess,
|
|
4915
5494
|
...props
|
|
4916
5495
|
}) {
|
|
4917
5496
|
const isDownMd = useDownMd();
|
|
4918
|
-
const intl =
|
|
5497
|
+
const intl = useIntl13();
|
|
4919
5498
|
const { wallets, installedWallets, chooseWallet, wallet, address, onConnect } = useTRONWallet();
|
|
4920
5499
|
const iconMaps = {
|
|
4921
|
-
tronlink: /* @__PURE__ */
|
|
4922
|
-
bitget: /* @__PURE__ */
|
|
4923
|
-
okx: /* @__PURE__ */
|
|
5500
|
+
tronlink: /* @__PURE__ */ jsx24(TronLinkIcon, { size: isDownMd ? 36 : 40 }),
|
|
5501
|
+
bitget: /* @__PURE__ */ jsx24(BitgetIcon, { size: isDownMd ? 36 : 40 }),
|
|
5502
|
+
okx: /* @__PURE__ */ jsx24(OKXIcon, { size: isDownMd ? 36 : 40 })
|
|
4924
5503
|
};
|
|
4925
5504
|
const { events, login } = useMatch();
|
|
4926
|
-
const [status, setStatus] =
|
|
4927
|
-
const statusRef =
|
|
4928
|
-
const [error, setError] =
|
|
4929
|
-
const connected =
|
|
5505
|
+
const [status, setStatus] = useState23("");
|
|
5506
|
+
const statusRef = React9.useRef(status);
|
|
5507
|
+
const [error, setError] = useState23("");
|
|
5508
|
+
const connected = useMemo13(() => {
|
|
4930
5509
|
return !!address;
|
|
4931
5510
|
}, [address]);
|
|
4932
5511
|
const disconnect = async () => {
|
|
@@ -4994,7 +5573,7 @@ function TRONConnectModal({
|
|
|
4994
5573
|
statusRef.current = "";
|
|
4995
5574
|
}
|
|
4996
5575
|
};
|
|
4997
|
-
|
|
5576
|
+
useEffect20(() => {
|
|
4998
5577
|
if (wallet) {
|
|
4999
5578
|
console.log("onConnect");
|
|
5000
5579
|
onConnect();
|
|
@@ -5002,21 +5581,21 @@ function TRONConnectModal({
|
|
|
5002
5581
|
setStatus("");
|
|
5003
5582
|
}
|
|
5004
5583
|
}, [wallet]);
|
|
5005
|
-
|
|
5584
|
+
useEffect20(() => {
|
|
5006
5585
|
if (address) {
|
|
5007
5586
|
toLoginInWallet();
|
|
5008
5587
|
}
|
|
5009
5588
|
}, [address]);
|
|
5010
|
-
|
|
5589
|
+
useEffect20(() => {
|
|
5011
5590
|
if (!props.isOpen) {
|
|
5012
5591
|
disconnect();
|
|
5013
5592
|
}
|
|
5014
5593
|
}, [props.isOpen]);
|
|
5015
|
-
return /* @__PURE__ */
|
|
5594
|
+
return /* @__PURE__ */ jsx24(ModalWithHeader, { ...props, title: props.title || intl.formatMessage({
|
|
5016
5595
|
id: type == "bind" ? "bindWith" : "loginWith"
|
|
5017
5596
|
}, {
|
|
5018
5597
|
name: "TRON"
|
|
5019
|
-
}), onBack: wallet ? onBack : void 0, children: wallet ? /* @__PURE__ */
|
|
5598
|
+
}), onBack: wallet ? onBack : void 0, children: wallet ? /* @__PURE__ */ jsx24(
|
|
5020
5599
|
WalletModalContent,
|
|
5021
5600
|
{
|
|
5022
5601
|
error,
|
|
@@ -5029,9 +5608,9 @@ function TRONConnectModal({
|
|
|
5029
5608
|
setVisible: () => {
|
|
5030
5609
|
}
|
|
5031
5610
|
}
|
|
5032
|
-
) : /* @__PURE__ */
|
|
5611
|
+
) : /* @__PURE__ */ jsx24("div", { className: "matchid-login-box", children: /* @__PURE__ */ jsxs17("div", { className: "matchid-login-recommend-list", children: [
|
|
5033
5612
|
installedWallets.map((wallet2) => {
|
|
5034
|
-
return /* @__PURE__ */
|
|
5613
|
+
return /* @__PURE__ */ jsx24(
|
|
5035
5614
|
RecommendItem,
|
|
5036
5615
|
{
|
|
5037
5616
|
icon: iconMaps[wallet2.walletKey],
|
|
@@ -5044,14 +5623,14 @@ function TRONConnectModal({
|
|
|
5044
5623
|
);
|
|
5045
5624
|
}),
|
|
5046
5625
|
wallets.filter((wallet2) => !installedWallets.find((installedWallet) => installedWallet.walletKey == wallet2.walletKey)).map((wallet2) => {
|
|
5047
|
-
return /* @__PURE__ */
|
|
5626
|
+
return /* @__PURE__ */ jsx24(
|
|
5048
5627
|
RecommendItem,
|
|
5049
5628
|
{
|
|
5050
5629
|
icon: iconMaps[wallet2.walletKey],
|
|
5051
5630
|
name: wallet2.name,
|
|
5052
5631
|
onClick: () => {
|
|
5053
5632
|
},
|
|
5054
|
-
footer: /* @__PURE__ */
|
|
5633
|
+
footer: /* @__PURE__ */ jsx24(Button, { size: "sm", onClick: () => {
|
|
5055
5634
|
window.open(wallet2.website);
|
|
5056
5635
|
}, children: "Install" })
|
|
5057
5636
|
},
|
|
@@ -5061,12 +5640,12 @@ function TRONConnectModal({
|
|
|
5061
5640
|
] }) }) });
|
|
5062
5641
|
}
|
|
5063
5642
|
function TRONModal(props) {
|
|
5064
|
-
return props.isOpen && /* @__PURE__ */
|
|
5643
|
+
return props.isOpen && /* @__PURE__ */ jsx24(TRONConnectModal, { ...props, type: props.type });
|
|
5065
5644
|
}
|
|
5066
5645
|
|
|
5067
5646
|
// src/components/TONModal/index.tsx
|
|
5068
|
-
import
|
|
5069
|
-
import { useIntl as
|
|
5647
|
+
import React10, { useEffect as useEffect21, useState as useState24 } from "react";
|
|
5648
|
+
import { useIntl as useIntl14 } from "react-intl";
|
|
5070
5649
|
import {
|
|
5071
5650
|
TonConnectUIProvider,
|
|
5072
5651
|
useTonAddress,
|
|
@@ -5074,21 +5653,21 @@ import {
|
|
|
5074
5653
|
useTonConnectUI,
|
|
5075
5654
|
useTonWallet
|
|
5076
5655
|
} from "@tonconnect/ui-react";
|
|
5077
|
-
import { jsx as
|
|
5078
|
-
function
|
|
5656
|
+
import { jsx as jsx25 } from "react/jsx-runtime";
|
|
5657
|
+
function WalletContent2({
|
|
5079
5658
|
onSuccess,
|
|
5080
5659
|
type
|
|
5081
5660
|
}) {
|
|
5082
5661
|
const { events, login } = useMatch();
|
|
5083
|
-
const [connected, setConnected] =
|
|
5662
|
+
const [connected, setConnected] = useState24(false);
|
|
5084
5663
|
const wallet = useTonWallet();
|
|
5085
5664
|
const userFriendlyAddress = useTonAddress();
|
|
5086
5665
|
const [tonConnectUI] = useTonConnectUI();
|
|
5087
5666
|
const { state, open, close } = useTonConnectModal();
|
|
5088
|
-
const [status, setStatus] =
|
|
5089
|
-
const statusRef =
|
|
5090
|
-
const [error, setError] =
|
|
5091
|
-
|
|
5667
|
+
const [status, setStatus] = useState24("");
|
|
5668
|
+
const statusRef = React10.useRef(status);
|
|
5669
|
+
const [error, setError] = useState24("");
|
|
5670
|
+
useEffect21(() => {
|
|
5092
5671
|
const init = async () => {
|
|
5093
5672
|
if (tonConnectUI.connected) {
|
|
5094
5673
|
await tonConnectUI.disconnect();
|
|
@@ -5161,7 +5740,7 @@ function WalletContent({
|
|
|
5161
5740
|
}
|
|
5162
5741
|
});
|
|
5163
5742
|
}, []);
|
|
5164
|
-
|
|
5743
|
+
useEffect21(() => {
|
|
5165
5744
|
if (wallet) {
|
|
5166
5745
|
setConnected(true);
|
|
5167
5746
|
console.log("Wallet connected:", wallet);
|
|
@@ -5172,7 +5751,7 @@ function WalletContent({
|
|
|
5172
5751
|
setStatus("");
|
|
5173
5752
|
}
|
|
5174
5753
|
}, [wallet]);
|
|
5175
|
-
|
|
5754
|
+
useEffect21(() => {
|
|
5176
5755
|
console.log({
|
|
5177
5756
|
state,
|
|
5178
5757
|
wallet
|
|
@@ -5201,7 +5780,7 @@ function WalletContent({
|
|
|
5201
5780
|
}
|
|
5202
5781
|
}
|
|
5203
5782
|
}, [state]);
|
|
5204
|
-
return /* @__PURE__ */
|
|
5783
|
+
return /* @__PURE__ */ jsx25(
|
|
5205
5784
|
WalletModalContent,
|
|
5206
5785
|
{
|
|
5207
5786
|
connected,
|
|
@@ -5232,28 +5811,28 @@ function TONConnectModal({
|
|
|
5232
5811
|
onSuccess,
|
|
5233
5812
|
...props
|
|
5234
5813
|
}) {
|
|
5235
|
-
const intl =
|
|
5814
|
+
const intl = useIntl14();
|
|
5236
5815
|
const { endpoints, appid } = useLocalStore_default();
|
|
5237
5816
|
const manifestUrl = `${endpoints.back}api/v1/wallet/ton?appid=${appid}&url=` + encodeURIComponent(window.location.origin);
|
|
5238
|
-
return /* @__PURE__ */
|
|
5817
|
+
return /* @__PURE__ */ jsx25(ModalWithHeader, { ...props, title: props.title || intl.formatMessage({
|
|
5239
5818
|
id: type == "bind" ? "bindWith" : "loginWith"
|
|
5240
5819
|
}, {
|
|
5241
5820
|
name: "TON"
|
|
5242
|
-
}), children: /* @__PURE__ */
|
|
5821
|
+
}), children: /* @__PURE__ */ jsx25(
|
|
5243
5822
|
TonConnectUIProvider,
|
|
5244
5823
|
{
|
|
5245
5824
|
manifestUrl,
|
|
5246
|
-
children: /* @__PURE__ */
|
|
5825
|
+
children: /* @__PURE__ */ jsx25(WalletContent2, { onSuccess, type })
|
|
5247
5826
|
}
|
|
5248
5827
|
) });
|
|
5249
5828
|
}
|
|
5250
5829
|
function TONModal(props) {
|
|
5251
|
-
return props.isOpen && /* @__PURE__ */
|
|
5830
|
+
return props.isOpen && /* @__PURE__ */ jsx25(TONConnectModal, { ...props });
|
|
5252
5831
|
}
|
|
5253
5832
|
|
|
5254
5833
|
// src/components/BTCModal/index.tsx
|
|
5255
|
-
import
|
|
5256
|
-
import { useIntl as
|
|
5834
|
+
import React11, { useEffect as useEffect23, useMemo as useMemo14, useState as useState26 } from "react";
|
|
5835
|
+
import { useIntl as useIntl15 } from "react-intl";
|
|
5257
5836
|
|
|
5258
5837
|
// src/lib/btc/UnisatAdapter.ts
|
|
5259
5838
|
var UnisatAdapter = class {
|
|
@@ -5399,7 +5978,7 @@ var LeatherAdapter = class {
|
|
|
5399
5978
|
return response.result.addresses[0].address;
|
|
5400
5979
|
}
|
|
5401
5980
|
async signMessage(message) {
|
|
5402
|
-
if (!await this.isInstalled()) throw new Error("
|
|
5981
|
+
if (!await this.isInstalled()) throw new Error("Leather Wallet is not installed");
|
|
5403
5982
|
const response = await window.LeatherProvider?.request("signMessage", { message });
|
|
5404
5983
|
matchlog_default.log("response", response);
|
|
5405
5984
|
return response.result.signature;
|
|
@@ -5407,12 +5986,47 @@ var LeatherAdapter = class {
|
|
|
5407
5986
|
};
|
|
5408
5987
|
|
|
5409
5988
|
// src/hooks/useBTCWallet.ts
|
|
5410
|
-
import { useEffect as
|
|
5989
|
+
import { useEffect as useEffect22, useState as useState25 } from "react";
|
|
5990
|
+
|
|
5991
|
+
// src/lib/btc/PhantomAdapter.ts
|
|
5992
|
+
var PhantomAdapter = class {
|
|
5993
|
+
constructor() {
|
|
5994
|
+
this.name = "Phantom Wallet";
|
|
5995
|
+
this.website = "https://www.phantom.com/";
|
|
5996
|
+
this.walletKey = "phantom";
|
|
5997
|
+
}
|
|
5998
|
+
async isInstalled() {
|
|
5999
|
+
return typeof window.phantom !== "undefined" && typeof window.phantom.bitcoin !== "undefined";
|
|
6000
|
+
}
|
|
6001
|
+
async connect() {
|
|
6002
|
+
if (!await this.isInstalled()) throw new Error("Phantom Wallet is not installed");
|
|
6003
|
+
const response = await window.phantom.bitcoin.requestAccounts();
|
|
6004
|
+
const ordinalAddress = response.find((n) => n.purpose == "ordinals");
|
|
6005
|
+
matchlog_default.log("Addresses:", ordinalAddress);
|
|
6006
|
+
if (!ordinalAddress) {
|
|
6007
|
+
throw new Error("No addresses found in Phantom Wallet");
|
|
6008
|
+
}
|
|
6009
|
+
return ordinalAddress.address;
|
|
6010
|
+
}
|
|
6011
|
+
async signMessage(message) {
|
|
6012
|
+
if (!await this.isInstalled()) throw new Error("Phantom Wallet is not installed");
|
|
6013
|
+
const address = await this.connect();
|
|
6014
|
+
try {
|
|
6015
|
+
const { signature } = await window.phantom.bitcoin.signMessage(address, new TextEncoder().encode(message));
|
|
6016
|
+
return bytesToBase64(signature);
|
|
6017
|
+
} catch (error) {
|
|
6018
|
+
console.error(error);
|
|
6019
|
+
throw error;
|
|
6020
|
+
}
|
|
6021
|
+
}
|
|
6022
|
+
};
|
|
6023
|
+
|
|
6024
|
+
// src/hooks/useBTCWallet.ts
|
|
5411
6025
|
var useBTCWallet = () => {
|
|
5412
|
-
const wallets = [new UnisatAdapter(), new XverseAdapter(), new LeatherAdapter()];
|
|
5413
|
-
const [installedWallets, setInstalledWallets] =
|
|
5414
|
-
const [address, setAddress] =
|
|
5415
|
-
|
|
6026
|
+
const wallets = [new UnisatAdapter(), new XverseAdapter(), new LeatherAdapter(), new PhantomAdapter()];
|
|
6027
|
+
const [installedWallets, setInstalledWallets] = useState25([]);
|
|
6028
|
+
const [address, setAddress] = useState25(null);
|
|
6029
|
+
useEffect22(() => {
|
|
5416
6030
|
const getInstalled = async () => {
|
|
5417
6031
|
const installed = await Promise.all(wallets.map((wallet2) => wallet2.isInstalled().then((isInstalled) => ({
|
|
5418
6032
|
wallet: wallet2,
|
|
@@ -5422,11 +6036,11 @@ var useBTCWallet = () => {
|
|
|
5422
6036
|
};
|
|
5423
6037
|
getInstalled();
|
|
5424
6038
|
}, []);
|
|
5425
|
-
const [wallet, chooseWallet] =
|
|
6039
|
+
const [wallet, chooseWallet] = useState25(null);
|
|
5426
6040
|
const onConnect = async () => {
|
|
5427
6041
|
setAddress(await wallet.connect());
|
|
5428
6042
|
};
|
|
5429
|
-
|
|
6043
|
+
useEffect22(() => {
|
|
5430
6044
|
if (!wallet) {
|
|
5431
6045
|
setAddress(null);
|
|
5432
6046
|
}
|
|
@@ -5442,25 +6056,26 @@ var useBTCWallet = () => {
|
|
|
5442
6056
|
};
|
|
5443
6057
|
|
|
5444
6058
|
// src/components/BTCModal/index.tsx
|
|
5445
|
-
import { jsx as
|
|
6059
|
+
import { jsx as jsx26, jsxs as jsxs18 } from "react/jsx-runtime";
|
|
5446
6060
|
function BTCConnectModal({
|
|
5447
6061
|
type = "login",
|
|
5448
6062
|
onSuccess,
|
|
5449
6063
|
...props
|
|
5450
6064
|
}) {
|
|
5451
6065
|
const isDownMd = useDownMd();
|
|
5452
|
-
const intl =
|
|
6066
|
+
const intl = useIntl15();
|
|
5453
6067
|
const { wallets, installedWallets, chooseWallet, wallet, address, onConnect } = useBTCWallet();
|
|
5454
6068
|
const iconMaps = {
|
|
5455
|
-
leather: /* @__PURE__ */
|
|
5456
|
-
unisat: /* @__PURE__ */
|
|
5457
|
-
xverse: /* @__PURE__ */
|
|
6069
|
+
leather: /* @__PURE__ */ jsx26(LeatherIcon, { size: isDownMd ? 36 : 40 }),
|
|
6070
|
+
unisat: /* @__PURE__ */ jsx26(UnisatIcon, { size: isDownMd ? 36 : 40 }),
|
|
6071
|
+
xverse: /* @__PURE__ */ jsx26(XverseIcon, { size: isDownMd ? 36 : 40 }),
|
|
6072
|
+
phantom: /* @__PURE__ */ jsx26(PhantomIcon, { size: isDownMd ? 36 : 40 })
|
|
5458
6073
|
};
|
|
5459
6074
|
const { events, login } = useMatch();
|
|
5460
|
-
const [status, setStatus] =
|
|
5461
|
-
const statusRef =
|
|
5462
|
-
const [error, setError] =
|
|
5463
|
-
const connected =
|
|
6075
|
+
const [status, setStatus] = useState26("");
|
|
6076
|
+
const statusRef = React11.useRef(status);
|
|
6077
|
+
const [error, setError] = useState26("");
|
|
6078
|
+
const connected = useMemo14(() => {
|
|
5464
6079
|
return !!address;
|
|
5465
6080
|
}, [address]);
|
|
5466
6081
|
const disconnect = async () => {
|
|
@@ -5524,7 +6139,7 @@ function BTCConnectModal({
|
|
|
5524
6139
|
statusRef.current = "";
|
|
5525
6140
|
}
|
|
5526
6141
|
};
|
|
5527
|
-
|
|
6142
|
+
useEffect23(() => {
|
|
5528
6143
|
if (wallet) {
|
|
5529
6144
|
console.log("onConnect");
|
|
5530
6145
|
try {
|
|
@@ -5537,12 +6152,12 @@ function BTCConnectModal({
|
|
|
5537
6152
|
setStatus("");
|
|
5538
6153
|
}
|
|
5539
6154
|
}, [wallet]);
|
|
5540
|
-
|
|
6155
|
+
useEffect23(() => {
|
|
5541
6156
|
if (address) {
|
|
5542
6157
|
toLoginInWallet();
|
|
5543
6158
|
}
|
|
5544
6159
|
}, [address]);
|
|
5545
|
-
|
|
6160
|
+
useEffect23(() => {
|
|
5546
6161
|
if (!props.isOpen) {
|
|
5547
6162
|
disconnect();
|
|
5548
6163
|
}
|
|
@@ -5554,11 +6169,11 @@ function BTCConnectModal({
|
|
|
5554
6169
|
statusRef.current = "";
|
|
5555
6170
|
setError("");
|
|
5556
6171
|
};
|
|
5557
|
-
return /* @__PURE__ */
|
|
6172
|
+
return /* @__PURE__ */ jsx26(ModalWithHeader, { ...props, title: props.title || intl.formatMessage({
|
|
5558
6173
|
id: type == "bind" ? "bindWith" : "loginWith"
|
|
5559
6174
|
}, {
|
|
5560
6175
|
name: "BTC"
|
|
5561
|
-
}), onBack: wallet ? onBack : void 0, children: wallet ? /* @__PURE__ */
|
|
6176
|
+
}), onBack: wallet ? onBack : void 0, children: wallet ? /* @__PURE__ */ jsx26(
|
|
5562
6177
|
WalletModalContent,
|
|
5563
6178
|
{
|
|
5564
6179
|
error,
|
|
@@ -5571,9 +6186,9 @@ function BTCConnectModal({
|
|
|
5571
6186
|
setVisible: () => {
|
|
5572
6187
|
}
|
|
5573
6188
|
}
|
|
5574
|
-
) : /* @__PURE__ */
|
|
6189
|
+
) : /* @__PURE__ */ jsx26("div", { className: "matchid-login-box", children: /* @__PURE__ */ jsxs18("div", { className: "matchid-login-recommend-list", children: [
|
|
5575
6190
|
installedWallets.map((wallet2) => {
|
|
5576
|
-
return /* @__PURE__ */
|
|
6191
|
+
return /* @__PURE__ */ jsx26(
|
|
5577
6192
|
RecommendItem,
|
|
5578
6193
|
{
|
|
5579
6194
|
icon: iconMaps[wallet2.walletKey],
|
|
@@ -5586,14 +6201,14 @@ function BTCConnectModal({
|
|
|
5586
6201
|
);
|
|
5587
6202
|
}),
|
|
5588
6203
|
wallets.filter((wallet2) => !installedWallets.find((installedWallet) => installedWallet.walletKey == wallet2.walletKey)).map((wallet2) => {
|
|
5589
|
-
return /* @__PURE__ */
|
|
6204
|
+
return /* @__PURE__ */ jsx26(
|
|
5590
6205
|
RecommendItem,
|
|
5591
6206
|
{
|
|
5592
6207
|
icon: iconMaps[wallet2.walletKey],
|
|
5593
6208
|
name: wallet2.name,
|
|
5594
6209
|
onClick: () => {
|
|
5595
6210
|
},
|
|
5596
|
-
footer: /* @__PURE__ */
|
|
6211
|
+
footer: /* @__PURE__ */ jsx26(Button, { size: "sm", onClick: () => {
|
|
5597
6212
|
window.open(wallet2.website);
|
|
5598
6213
|
}, children: "Install" })
|
|
5599
6214
|
},
|
|
@@ -5603,23 +6218,23 @@ function BTCConnectModal({
|
|
|
5603
6218
|
] }) }) });
|
|
5604
6219
|
}
|
|
5605
6220
|
function BTCModal(props) {
|
|
5606
|
-
return props.isOpen && /* @__PURE__ */
|
|
6221
|
+
return props.isOpen && /* @__PURE__ */ jsx26(BTCConnectModal, { ...props });
|
|
5607
6222
|
}
|
|
5608
6223
|
|
|
5609
6224
|
// src/components/WalletModal/index.tsx
|
|
5610
|
-
import { useMemo as
|
|
5611
|
-
import { useIntl as
|
|
5612
|
-
import { jsx as
|
|
6225
|
+
import { useMemo as useMemo15 } from "react";
|
|
6226
|
+
import { useIntl as useIntl16 } from "react-intl";
|
|
6227
|
+
import { jsx as jsx27 } from "react/jsx-runtime";
|
|
5613
6228
|
function WalletConnectModal({
|
|
5614
6229
|
type,
|
|
5615
6230
|
methods: _methods,
|
|
5616
6231
|
...props
|
|
5617
6232
|
}) {
|
|
5618
|
-
const intl =
|
|
6233
|
+
const intl = useIntl16();
|
|
5619
6234
|
const { walletMap } = useWalletConfig();
|
|
5620
6235
|
const { bind, login } = useUserInfo();
|
|
5621
6236
|
const config = useAppConfig();
|
|
5622
|
-
const methods =
|
|
6237
|
+
const methods = useMemo15(() => {
|
|
5623
6238
|
if (_methods) return _methods;
|
|
5624
6239
|
if (!config.platform) {
|
|
5625
6240
|
return [];
|
|
@@ -5627,13 +6242,13 @@ function WalletConnectModal({
|
|
|
5627
6242
|
const platform = config.platform.map((p) => p.toLowerCase());
|
|
5628
6243
|
return WALLET_METHODS.filter((m) => platform.includes(m));
|
|
5629
6244
|
}, [config.platform, _methods]);
|
|
5630
|
-
return /* @__PURE__ */
|
|
6245
|
+
return /* @__PURE__ */ jsx27(ModalWithHeader, { ...props, title: props.title || intl.formatMessage({
|
|
5631
6246
|
id: type == "bind" ? "bindWith" : "loginWith"
|
|
5632
6247
|
}, {
|
|
5633
6248
|
name: ""
|
|
5634
|
-
}), children: /* @__PURE__ */
|
|
6249
|
+
}), children: /* @__PURE__ */ jsx27("div", { className: "matchid-login-box", children: /* @__PURE__ */ jsx27("div", { className: "matchid-login-recommend-list", children: methods.map((method, index) => {
|
|
5635
6250
|
const m = walletMap[method];
|
|
5636
|
-
return /* @__PURE__ */
|
|
6251
|
+
return /* @__PURE__ */ jsx27(
|
|
5637
6252
|
RecommendItem,
|
|
5638
6253
|
{
|
|
5639
6254
|
icon: m?.icon,
|
|
@@ -5647,21 +6262,21 @@ function WalletConnectModal({
|
|
|
5647
6262
|
}) }) }) });
|
|
5648
6263
|
}
|
|
5649
6264
|
function WalletModal(props) {
|
|
5650
|
-
return props.isOpen && /* @__PURE__ */
|
|
6265
|
+
return props.isOpen && /* @__PURE__ */ jsx27(WalletConnectModal, { ...props });
|
|
5651
6266
|
}
|
|
5652
6267
|
|
|
5653
6268
|
// src/components/AlphaAvatar/index.tsx
|
|
5654
|
-
import { useEffect as
|
|
5655
|
-
import { jsx as
|
|
6269
|
+
import { useEffect as useEffect24, useState as useState27 } from "react";
|
|
6270
|
+
import { jsx as jsx28 } from "react/jsx-runtime";
|
|
5656
6271
|
function AlphaAvatar2({ name, size = 40, className = "" }) {
|
|
5657
|
-
const [avatar, setAvatar] =
|
|
5658
|
-
|
|
6272
|
+
const [avatar, setAvatar] = useState27(void 0);
|
|
6273
|
+
useEffect24(() => {
|
|
5659
6274
|
if (name) {
|
|
5660
6275
|
const char = name[0].toUpperCase();
|
|
5661
6276
|
setAvatar(char);
|
|
5662
6277
|
}
|
|
5663
6278
|
}, [name]);
|
|
5664
|
-
return /* @__PURE__ */
|
|
6279
|
+
return /* @__PURE__ */ jsx28("div", { className: `matchid-alpha-avatar ${className}`, style: {
|
|
5665
6280
|
width: size,
|
|
5666
6281
|
height: size,
|
|
5667
6282
|
fontSize: Math.ceil(size / 2)
|
|
@@ -5669,7 +6284,7 @@ function AlphaAvatar2({ name, size = 40, className = "" }) {
|
|
|
5669
6284
|
}
|
|
5670
6285
|
|
|
5671
6286
|
// src/components/WalletAsset/index.tsx
|
|
5672
|
-
import { jsx as
|
|
6287
|
+
import { jsx as jsx29, jsxs as jsxs19 } from "react/jsx-runtime";
|
|
5673
6288
|
function WalletAsset({
|
|
5674
6289
|
onAssetClick,
|
|
5675
6290
|
matchWalletAssetsOptions
|
|
@@ -5679,7 +6294,7 @@ function WalletAsset({
|
|
|
5679
6294
|
list: walletAssets.mergedAssets
|
|
5680
6295
|
});
|
|
5681
6296
|
const { list } = useMatchChain();
|
|
5682
|
-
return /* @__PURE__ */
|
|
6297
|
+
return /* @__PURE__ */ jsx29("div", { className: "matchid-wallet-asset-list", children: matchWalletAssetList.list.map((n, index) => {
|
|
5683
6298
|
const clickFunc = onAssetClick && onAssetClick(n);
|
|
5684
6299
|
const chain = list?.find((m) => m.id.toString() === n.chain_id);
|
|
5685
6300
|
const getFooterColor = () => {
|
|
@@ -5698,7 +6313,7 @@ function WalletAsset({
|
|
|
5698
6313
|
cursor: clickFunc ? "pointer" : "default"
|
|
5699
6314
|
}, children: [
|
|
5700
6315
|
/* @__PURE__ */ jsxs19("div", { className: "matchid-wallet-asset-logo", title: n.symbol || n.name || "", children: [
|
|
5701
|
-
n.icon ? /* @__PURE__ */
|
|
6316
|
+
n.icon ? /* @__PURE__ */ jsx29("img", { src: n.icon, alt: n.symbol, className: `matchid-wallet-asset-icon` }) : /* @__PURE__ */ jsx29(
|
|
5702
6317
|
AlphaAvatar2,
|
|
5703
6318
|
{
|
|
5704
6319
|
className: `matchid-wallet-asset-icon`,
|
|
@@ -5706,12 +6321,12 @@ function WalletAsset({
|
|
|
5706
6321
|
name: n.symbol || n.name || ""
|
|
5707
6322
|
}
|
|
5708
6323
|
),
|
|
5709
|
-
chain?.iconUrl && /* @__PURE__ */
|
|
6324
|
+
chain?.iconUrl && /* @__PURE__ */ jsx29("img", { src: chain.iconUrl, alt: chain.name, className: `matchid-wallet-asset-chain` })
|
|
5710
6325
|
] }),
|
|
5711
6326
|
/* @__PURE__ */ jsxs19("div", { className: `matchid-wallet-asset-info`, children: [
|
|
5712
|
-
/* @__PURE__ */
|
|
6327
|
+
/* @__PURE__ */ jsx29("div", { className: `matchid-wallet-asset-name`, children: n.symbol }),
|
|
5713
6328
|
"price" in n && /* @__PURE__ */ jsxs19("div", { className: `matchid-wallet-asset-content`, children: [
|
|
5714
|
-
/* @__PURE__ */
|
|
6329
|
+
/* @__PURE__ */ jsx29("div", { className: "matchid-wallet-asset-price", children: /* @__PURE__ */ jsx29(
|
|
5715
6330
|
NumberFormatter,
|
|
5716
6331
|
{
|
|
5717
6332
|
value: n.price,
|
|
@@ -5719,7 +6334,7 @@ function WalletAsset({
|
|
|
5719
6334
|
tFixNum: 2
|
|
5720
6335
|
}
|
|
5721
6336
|
) }),
|
|
5722
|
-
/* @__PURE__ */
|
|
6337
|
+
/* @__PURE__ */ jsx29("div", { className: "matchid-wallet-asset-value", children: /* @__PURE__ */ jsx29(
|
|
5723
6338
|
NumberFormatter,
|
|
5724
6339
|
{
|
|
5725
6340
|
value: n.value,
|
|
@@ -5729,14 +6344,14 @@ function WalletAsset({
|
|
|
5729
6344
|
) })
|
|
5730
6345
|
] }),
|
|
5731
6346
|
/* @__PURE__ */ jsxs19("div", { className: `matchid-wallet-asset-footer`, children: [
|
|
5732
|
-
/* @__PURE__ */
|
|
6347
|
+
/* @__PURE__ */ jsx29("div", { className: `matchid-wallet-asset-balance`, children: /* @__PURE__ */ jsx29(
|
|
5733
6348
|
NumberFormatter,
|
|
5734
6349
|
{
|
|
5735
6350
|
value: n.balance,
|
|
5736
6351
|
tFixNum: 3
|
|
5737
6352
|
}
|
|
5738
6353
|
) }),
|
|
5739
|
-
"price_change_24h" in n && /* @__PURE__ */
|
|
6354
|
+
"price_change_24h" in n && /* @__PURE__ */ jsx29("div", { className: `matchid-wallet-asset-change ${getFooterColor()}`, children: /* @__PURE__ */ jsx29(
|
|
5740
6355
|
NumberFormatter,
|
|
5741
6356
|
{
|
|
5742
6357
|
prefix: `${(n?.price_change_24h || 0) < 0 ? "-" : "+"} `,
|
|
@@ -5752,10 +6367,10 @@ function WalletAsset({
|
|
|
5752
6367
|
}
|
|
5753
6368
|
|
|
5754
6369
|
// src/components/TokenSend/index.tsx
|
|
5755
|
-
import { useEffect as
|
|
5756
|
-
import { defineChain as defineChain4, encodeFunctionData as encodeFunctionData2, erc20Abi as erc20Abi3, http as
|
|
5757
|
-
import { FormattedMessage as FormattedMessage12, useIntl as
|
|
5758
|
-
import { jsx as
|
|
6370
|
+
import { useEffect as useEffect25, useMemo as useMemo16, useState as useState28 } from "react";
|
|
6371
|
+
import { defineChain as defineChain4, encodeFunctionData as encodeFunctionData2, erc20Abi as erc20Abi3, http as http7, parseUnits as parseUnits2 } from "viem";
|
|
6372
|
+
import { FormattedMessage as FormattedMessage12, useIntl as useIntl17 } from "react-intl";
|
|
6373
|
+
import { jsx as jsx30, jsxs as jsxs20 } from "react/jsx-runtime";
|
|
5759
6374
|
function Input2({
|
|
5760
6375
|
onChange,
|
|
5761
6376
|
placeholder,
|
|
@@ -5766,7 +6381,7 @@ function Input2({
|
|
|
5766
6381
|
size = "df"
|
|
5767
6382
|
}) {
|
|
5768
6383
|
return /* @__PURE__ */ jsxs20("div", { className: `matchid-token-input-box ${"matchid-token-input-" + size}`, children: [
|
|
5769
|
-
/* @__PURE__ */
|
|
6384
|
+
/* @__PURE__ */ jsx30(
|
|
5770
6385
|
"input",
|
|
5771
6386
|
{
|
|
5772
6387
|
placeholder,
|
|
@@ -5777,7 +6392,7 @@ function Input2({
|
|
|
5777
6392
|
className: `matchid-token-input ${error ? "matchid-token-input-error" : ""}`
|
|
5778
6393
|
}
|
|
5779
6394
|
),
|
|
5780
|
-
error && /* @__PURE__ */
|
|
6395
|
+
error && /* @__PURE__ */ jsx30("div", { className: "matchid-token-input-error-text", children: error })
|
|
5781
6396
|
] });
|
|
5782
6397
|
}
|
|
5783
6398
|
function TokenSend({
|
|
@@ -5787,25 +6402,25 @@ function TokenSend({
|
|
|
5787
6402
|
onBack
|
|
5788
6403
|
}) {
|
|
5789
6404
|
const { list: chainList } = useMatchChain();
|
|
5790
|
-
const intl =
|
|
6405
|
+
const intl = useIntl17();
|
|
5791
6406
|
const { createWalletClient: createWalletClient2 } = useWallet();
|
|
5792
6407
|
const isNative = token.address.toLowerCase() == NATIVE_TOKEN_ADDRESS;
|
|
5793
|
-
const chain =
|
|
6408
|
+
const chain = useMemo16(() => {
|
|
5794
6409
|
return chainList?.find((m) => m.id.toString() === token.chain_id);
|
|
5795
6410
|
}, [chainList, token.chain_id]);
|
|
5796
|
-
const walletClient =
|
|
6411
|
+
const walletClient = useMemo16(() => {
|
|
5797
6412
|
return createWalletClient2({
|
|
5798
6413
|
// @ts-ignore
|
|
5799
6414
|
chain: defineChain4(chain),
|
|
5800
|
-
transport:
|
|
6415
|
+
transport: http7()
|
|
5801
6416
|
});
|
|
5802
6417
|
}, [chain]);
|
|
5803
|
-
const [amount, setAmount] =
|
|
5804
|
-
const [address, setAddress] =
|
|
5805
|
-
const [loading, setLoading] =
|
|
5806
|
-
const [sending, setSending] =
|
|
5807
|
-
const [txError, setTxError] =
|
|
5808
|
-
const transaction =
|
|
6418
|
+
const [amount, setAmount] = useState28("");
|
|
6419
|
+
const [address, setAddress] = useState28("");
|
|
6420
|
+
const [loading, setLoading] = useState28(false);
|
|
6421
|
+
const [sending, setSending] = useState28(false);
|
|
6422
|
+
const [txError, setTxError] = useState28("");
|
|
6423
|
+
const transaction = useMemo16(() => {
|
|
5809
6424
|
const reg = /^0x[a-fA-F0-9]{40}$/;
|
|
5810
6425
|
if (!amount || !address || !reg.test(address)) {
|
|
5811
6426
|
return;
|
|
@@ -5836,7 +6451,7 @@ function TokenSend({
|
|
|
5836
6451
|
setLoading(false);
|
|
5837
6452
|
}
|
|
5838
6453
|
};
|
|
5839
|
-
const error =
|
|
6454
|
+
const error = useMemo16(() => {
|
|
5840
6455
|
setTxError("");
|
|
5841
6456
|
let amountError = "";
|
|
5842
6457
|
let addressError = "";
|
|
@@ -5879,7 +6494,7 @@ function TokenSend({
|
|
|
5879
6494
|
setAmount(value);
|
|
5880
6495
|
}
|
|
5881
6496
|
};
|
|
5882
|
-
const canSend =
|
|
6497
|
+
const canSend = useMemo16(() => {
|
|
5883
6498
|
return !error.amount && !error.address && amount && address;
|
|
5884
6499
|
}, [error]);
|
|
5885
6500
|
const onNext = async () => {
|
|
@@ -5889,7 +6504,7 @@ function TokenSend({
|
|
|
5889
6504
|
}
|
|
5890
6505
|
onClose();
|
|
5891
6506
|
};
|
|
5892
|
-
|
|
6507
|
+
useEffect25(() => {
|
|
5893
6508
|
const receiveMessage = (event) => {
|
|
5894
6509
|
if (event.data) {
|
|
5895
6510
|
if (event.data.source == "match-wallet") {
|
|
@@ -5905,24 +6520,24 @@ function TokenSend({
|
|
|
5905
6520
|
window.removeEventListener("message", receiveMessage);
|
|
5906
6521
|
};
|
|
5907
6522
|
}, []);
|
|
5908
|
-
return /* @__PURE__ */
|
|
6523
|
+
return /* @__PURE__ */ jsx30(ModalDrawer, { isOpen: true, onClose, zIndex, title: /* @__PURE__ */ jsx30(FormattedMessage12, { id: "send" }), onBack, children: /* @__PURE__ */ jsxs20("div", { className: `matchid-token-send-box`, children: [
|
|
5909
6524
|
/* @__PURE__ */ jsxs20("div", { className: "matchid-token-send-content", children: [
|
|
5910
6525
|
/* @__PURE__ */ jsxs20("div", { className: `matchid-token-amount-content`, children: [
|
|
5911
6526
|
/* @__PURE__ */ jsxs20("div", { className: `matchid-token-amount-header`, children: [
|
|
5912
|
-
/* @__PURE__ */
|
|
6527
|
+
/* @__PURE__ */ jsx30("div", { className: `matchid-token-amount-title`, children: /* @__PURE__ */ jsx30(FormattedMessage12, { id: "amount" }) }),
|
|
5913
6528
|
/* @__PURE__ */ jsxs20("div", { className: `matchid-token-amount-chain`, children: [
|
|
5914
|
-
token.icon ? /* @__PURE__ */
|
|
6529
|
+
token.icon ? /* @__PURE__ */ jsx30(
|
|
5915
6530
|
"img",
|
|
5916
6531
|
{
|
|
5917
6532
|
src: token?.icon,
|
|
5918
6533
|
alt: token?.symbol,
|
|
5919
6534
|
className: `matchid-token-amount-chain-icon`
|
|
5920
6535
|
}
|
|
5921
|
-
) : /* @__PURE__ */
|
|
5922
|
-
/* @__PURE__ */
|
|
6536
|
+
) : /* @__PURE__ */ jsx30(AlphaAvatar, { name: token.symbol || token.name || "", size: 16 }),
|
|
6537
|
+
/* @__PURE__ */ jsx30("span", { children: token?.symbol })
|
|
5923
6538
|
] })
|
|
5924
6539
|
] }),
|
|
5925
|
-
/* @__PURE__ */
|
|
6540
|
+
/* @__PURE__ */ jsx30(
|
|
5926
6541
|
Input2,
|
|
5927
6542
|
{
|
|
5928
6543
|
type: "text",
|
|
@@ -5937,16 +6552,16 @@ function TokenSend({
|
|
|
5937
6552
|
),
|
|
5938
6553
|
/* @__PURE__ */ jsxs20("div", { className: `matchid-token-amount-footer`, children: [
|
|
5939
6554
|
/* @__PURE__ */ jsxs20("div", { className: `matchid-token-amount-title`, children: [
|
|
5940
|
-
/* @__PURE__ */
|
|
6555
|
+
/* @__PURE__ */ jsx30(FormattedMessage12, { id: "balance" }),
|
|
5941
6556
|
":"
|
|
5942
6557
|
] }),
|
|
5943
|
-
/* @__PURE__ */
|
|
6558
|
+
/* @__PURE__ */ jsx30("div", { className: `matchid-token-amount-value`, children: /* @__PURE__ */ jsx30(NumberFormatter, { value: token.balance, tFixNum: 10, suffix: " " + token.symbol }) })
|
|
5944
6559
|
] }),
|
|
5945
|
-
/* @__PURE__ */
|
|
6560
|
+
/* @__PURE__ */ jsx30(TransferIcon, { className: "matchid-token-amount-transfer" })
|
|
5946
6561
|
] }),
|
|
5947
6562
|
/* @__PURE__ */ jsxs20("div", { className: `matchid-token-address-content`, children: [
|
|
5948
|
-
/* @__PURE__ */
|
|
5949
|
-
/* @__PURE__ */
|
|
6563
|
+
/* @__PURE__ */ jsx30("div", { className: `matchid-token-address-header`, children: /* @__PURE__ */ jsx30("div", { className: `matchid-token-address-title`, children: /* @__PURE__ */ jsx30(FormattedMessage12, { id: "receiveTitle" }) }) }),
|
|
6564
|
+
/* @__PURE__ */ jsx30(
|
|
5950
6565
|
Input2,
|
|
5951
6566
|
{
|
|
5952
6567
|
type: "text",
|
|
@@ -5962,7 +6577,7 @@ function TokenSend({
|
|
|
5962
6577
|
)
|
|
5963
6578
|
] })
|
|
5964
6579
|
] }),
|
|
5965
|
-
/* @__PURE__ */
|
|
6580
|
+
/* @__PURE__ */ jsx30(
|
|
5966
6581
|
Button,
|
|
5967
6582
|
{
|
|
5968
6583
|
size: "lg",
|
|
@@ -5971,15 +6586,15 @@ function TokenSend({
|
|
|
5971
6586
|
disabled: !canSend || !!txError,
|
|
5972
6587
|
onClick: onNext,
|
|
5973
6588
|
loading: loading || sending,
|
|
5974
|
-
children: /* @__PURE__ */
|
|
6589
|
+
children: /* @__PURE__ */ jsx30(FormattedMessage12, { id: "next" })
|
|
5975
6590
|
}
|
|
5976
6591
|
)
|
|
5977
6592
|
] }) });
|
|
5978
6593
|
}
|
|
5979
6594
|
|
|
5980
6595
|
// src/components/TokenDetail/index.tsx
|
|
5981
|
-
import { FormattedMessage as FormattedMessage13, useIntl as
|
|
5982
|
-
import { jsx as
|
|
6596
|
+
import { FormattedMessage as FormattedMessage13, useIntl as useIntl18 } from "react-intl";
|
|
6597
|
+
import { jsx as jsx31, jsxs as jsxs21 } from "react/jsx-runtime";
|
|
5983
6598
|
function TokenDetail({
|
|
5984
6599
|
onClose,
|
|
5985
6600
|
token
|
|
@@ -5989,41 +6604,41 @@ function TokenDetail({
|
|
|
5989
6604
|
const chain = chainList?.find((m) => m.id.toString() === token.chain_id);
|
|
5990
6605
|
const onSend = () => {
|
|
5991
6606
|
modal.show((props) => {
|
|
5992
|
-
return /* @__PURE__ */
|
|
6607
|
+
return /* @__PURE__ */ jsx31(TokenSend, { onClose: () => {
|
|
5993
6608
|
props.close();
|
|
5994
6609
|
onClose();
|
|
5995
6610
|
}, onBack: props.close, zIndex: props.zIndex, token });
|
|
5996
6611
|
});
|
|
5997
6612
|
};
|
|
5998
|
-
const intl =
|
|
5999
|
-
return /* @__PURE__ */
|
|
6613
|
+
const intl = useIntl18();
|
|
6614
|
+
return /* @__PURE__ */ jsx31(ModalDrawer, { isOpen: true, title: intl.formatMessage({
|
|
6000
6615
|
id: "tokenDetails"
|
|
6001
6616
|
}), onClose, children: /* @__PURE__ */ jsxs21("div", { className: `matchid-token-detail`, children: [
|
|
6002
6617
|
/* @__PURE__ */ jsxs21("div", { className: `matchid-token-main`, children: [
|
|
6003
6618
|
/* @__PURE__ */ jsxs21("div", { className: `matchid-token-info`, children: [
|
|
6004
6619
|
/* @__PURE__ */ jsxs21("div", { className: `matchid-token-logo`, children: [
|
|
6005
|
-
token.icon ? /* @__PURE__ */
|
|
6006
|
-
chain?.iconUrl && /* @__PURE__ */
|
|
6620
|
+
token.icon ? /* @__PURE__ */ jsx31("img", { src: token.icon, alt: token.symbol, className: `matchid-token-icon` }) : /* @__PURE__ */ jsx31(AlphaAvatar, { className: `matchid-token-icon`, size: 48, name: token.symbol || token.name || "" }),
|
|
6621
|
+
chain?.iconUrl && /* @__PURE__ */ jsx31("img", { src: chain.iconUrl, alt: chain.name, className: `matchid-token-chain` })
|
|
6007
6622
|
] }),
|
|
6008
6623
|
/* @__PURE__ */ jsxs21("div", { className: `matchid-token-name`, children: [
|
|
6009
|
-
/* @__PURE__ */
|
|
6624
|
+
/* @__PURE__ */ jsx31(NumberFormatter, { value: token.balance, tFixNum: 10 }),
|
|
6010
6625
|
" ",
|
|
6011
6626
|
token.symbol
|
|
6012
6627
|
] })
|
|
6013
6628
|
] }),
|
|
6014
6629
|
token.address.toLowerCase() != NATIVE_TOKEN_ADDRESS && /* @__PURE__ */ jsxs21("div", { className: `matchid-token-contract`, children: [
|
|
6015
|
-
/* @__PURE__ */
|
|
6016
|
-
/* @__PURE__ */
|
|
6630
|
+
/* @__PURE__ */ jsx31("div", { className: "matchid-token-contract-title", children: "Contract address" }),
|
|
6631
|
+
/* @__PURE__ */ jsx31("div", { className: "matchid-token-contract-address", children: token.address })
|
|
6017
6632
|
] })
|
|
6018
6633
|
] }),
|
|
6019
|
-
/* @__PURE__ */
|
|
6634
|
+
/* @__PURE__ */ jsx31(Button, { size: "lg", block: true, highlight: true, onClick: onSend, children: /* @__PURE__ */ jsx31(FormattedMessage13, { id: "send" }) })
|
|
6020
6635
|
] }) });
|
|
6021
6636
|
}
|
|
6022
6637
|
|
|
6023
6638
|
// src/components/TokenSendList/index.tsx
|
|
6024
|
-
import { useState as
|
|
6639
|
+
import { useState as useState29 } from "react";
|
|
6025
6640
|
import { FormattedMessage as FormattedMessage14 } from "react-intl";
|
|
6026
|
-
import { jsx as
|
|
6641
|
+
import { jsx as jsx32, jsxs as jsxs22 } from "react/jsx-runtime";
|
|
6027
6642
|
function TokenSendList({ close }) {
|
|
6028
6643
|
const isDownMd = useDownMd();
|
|
6029
6644
|
const walletAssets = useMatchWalletAssets();
|
|
@@ -6031,18 +6646,18 @@ function TokenSendList({ close }) {
|
|
|
6031
6646
|
list: walletAssets.mergedAssets
|
|
6032
6647
|
});
|
|
6033
6648
|
const { list } = useMatchChain();
|
|
6034
|
-
const [checked, setChecked] =
|
|
6649
|
+
const [checked, setChecked] = useState29();
|
|
6035
6650
|
const modal = useModal();
|
|
6036
6651
|
const onNext = () => {
|
|
6037
6652
|
checked && modal.show((props) => {
|
|
6038
|
-
return /* @__PURE__ */
|
|
6653
|
+
return /* @__PURE__ */ jsx32(TokenSend, { onClose: () => {
|
|
6039
6654
|
props.close();
|
|
6040
6655
|
close();
|
|
6041
6656
|
}, onBack: props.close, zIndex: props.zIndex, token: checked });
|
|
6042
6657
|
});
|
|
6043
6658
|
};
|
|
6044
6659
|
return /* @__PURE__ */ jsxs22("div", { className: "matchid-token-send-list-box", children: [
|
|
6045
|
-
/* @__PURE__ */
|
|
6660
|
+
/* @__PURE__ */ jsx32("div", { className: "matchid-token-send-list", children: matchWalletAssetList.list.map((n, index) => {
|
|
6046
6661
|
const chain = list?.find((m) => m.id.toString() === n.chain_id);
|
|
6047
6662
|
return /* @__PURE__ */ jsxs22(
|
|
6048
6663
|
"div",
|
|
@@ -6052,10 +6667,10 @@ function TokenSendList({ close }) {
|
|
|
6052
6667
|
setChecked(n);
|
|
6053
6668
|
},
|
|
6054
6669
|
children: [
|
|
6055
|
-
/* @__PURE__ */
|
|
6670
|
+
/* @__PURE__ */ jsx32(Radio, { checked: checked?.address == n.address, size: isDownMd ? 18 : 24 }),
|
|
6056
6671
|
/* @__PURE__ */ jsxs22("div", { className: "matchid-token-send-content", children: [
|
|
6057
6672
|
/* @__PURE__ */ jsxs22("div", { className: "matchid-token-send-logo", children: [
|
|
6058
|
-
n.icon ? /* @__PURE__ */
|
|
6673
|
+
n.icon ? /* @__PURE__ */ jsx32("img", { src: n.icon, alt: n.symbol, className: `matchid-token-send-icon` }) : /* @__PURE__ */ jsx32(
|
|
6059
6674
|
AlphaAvatar2,
|
|
6060
6675
|
{
|
|
6061
6676
|
className: `matchid-token-send-icon`,
|
|
@@ -6063,7 +6678,7 @@ function TokenSendList({ close }) {
|
|
|
6063
6678
|
name: n.symbol || n.name || ""
|
|
6064
6679
|
}
|
|
6065
6680
|
),
|
|
6066
|
-
chain?.iconUrl && /* @__PURE__ */
|
|
6681
|
+
chain?.iconUrl && /* @__PURE__ */ jsx32(
|
|
6067
6682
|
"img",
|
|
6068
6683
|
{
|
|
6069
6684
|
src: chain.iconUrl,
|
|
@@ -6073,8 +6688,8 @@ function TokenSendList({ close }) {
|
|
|
6073
6688
|
)
|
|
6074
6689
|
] }),
|
|
6075
6690
|
/* @__PURE__ */ jsxs22("div", { className: `matchid-token-send-info`, children: [
|
|
6076
|
-
/* @__PURE__ */
|
|
6077
|
-
/* @__PURE__ */
|
|
6691
|
+
/* @__PURE__ */ jsx32("div", { className: `matchid-token-send-name`, children: n.symbol }),
|
|
6692
|
+
/* @__PURE__ */ jsx32("div", { className: `matchid-token-send-balance`, children: /* @__PURE__ */ jsx32(NumberFormatter, { value: n.balance, tFixNum: 3 }) })
|
|
6078
6693
|
] })
|
|
6079
6694
|
] })
|
|
6080
6695
|
]
|
|
@@ -6082,24 +6697,24 @@ function TokenSendList({ close }) {
|
|
|
6082
6697
|
index
|
|
6083
6698
|
);
|
|
6084
6699
|
}) }),
|
|
6085
|
-
/* @__PURE__ */
|
|
6700
|
+
/* @__PURE__ */ jsx32(Button, { size: "lg", highlight: true, block: true, disabled: !checked, onClick: onNext, children: /* @__PURE__ */ jsx32(FormattedMessage14, { id: "next" }) })
|
|
6086
6701
|
] });
|
|
6087
6702
|
}
|
|
6088
6703
|
|
|
6089
6704
|
// src/components/TransactionList/index.tsx
|
|
6090
6705
|
import InfiniteScroll from "react-infinite-scroll-component";
|
|
6091
|
-
import { useEffect as
|
|
6706
|
+
import { useEffect as useEffect26, useMemo as useMemo17, useState as useState30 } from "react";
|
|
6092
6707
|
import { decodeFunctionData, defineChain as defineChain5, formatUnits as formatUnits3 } from "viem";
|
|
6093
6708
|
import { erc20Abi as erc20Abi4 } from "viem";
|
|
6094
6709
|
import { FormattedMessage as FormattedMessage15 } from "react-intl";
|
|
6095
|
-
import { jsx as
|
|
6710
|
+
import { jsx as jsx33, jsxs as jsxs23 } from "react/jsx-runtime";
|
|
6096
6711
|
var Item = ({ data }) => {
|
|
6097
6712
|
const { address } = useWallet();
|
|
6098
6713
|
const isOut = data.from.toLowerCase() == address.toLowerCase();
|
|
6099
6714
|
const { chain, chainId, explorerLink, formatUnits: chainFormatUnits } = useMatchChain();
|
|
6100
6715
|
const { contracts } = useContractStore_default();
|
|
6101
|
-
const [shouldRefetch, setShouldRefetch] =
|
|
6102
|
-
const transferType =
|
|
6716
|
+
const [shouldRefetch, setShouldRefetch] = useState30(true);
|
|
6717
|
+
const transferType = useMemo17(() => {
|
|
6103
6718
|
const methodId = data.input.substring(2, 10);
|
|
6104
6719
|
if (methodId == "095ea7b3") {
|
|
6105
6720
|
return "erc20_approve";
|
|
@@ -6109,7 +6724,7 @@ var Item = ({ data }) => {
|
|
|
6109
6724
|
}
|
|
6110
6725
|
return "unknown";
|
|
6111
6726
|
}, [data.input]);
|
|
6112
|
-
const to =
|
|
6727
|
+
const to = useMemo17(() => {
|
|
6113
6728
|
if (!isOut) {
|
|
6114
6729
|
return data.from;
|
|
6115
6730
|
}
|
|
@@ -6122,7 +6737,7 @@ var Item = ({ data }) => {
|
|
|
6122
6737
|
}
|
|
6123
6738
|
return data.to;
|
|
6124
6739
|
}, [data.input, transferType, data.to, isOut]);
|
|
6125
|
-
const amount =
|
|
6740
|
+
const amount = useMemo17(() => {
|
|
6126
6741
|
if (transferType == "erc20_transfer") {
|
|
6127
6742
|
const decodeData = decodeFunctionData({
|
|
6128
6743
|
abi: erc20Abi4,
|
|
@@ -6140,7 +6755,7 @@ var Item = ({ data }) => {
|
|
|
6140
6755
|
refetchInterval: shouldRefetch ? 3e3 : false,
|
|
6141
6756
|
enabled: shouldRefetch && data.source == "local"
|
|
6142
6757
|
});
|
|
6143
|
-
const status =
|
|
6758
|
+
const status = useMemo17(() => {
|
|
6144
6759
|
if (data.source == "matchain") {
|
|
6145
6760
|
switch (data.extra.status) {
|
|
6146
6761
|
case "ok":
|
|
@@ -6167,12 +6782,12 @@ var Item = ({ data }) => {
|
|
|
6167
6782
|
}
|
|
6168
6783
|
return "loading";
|
|
6169
6784
|
}, [data.extra?.status, data.source, hashQuery.data]);
|
|
6170
|
-
|
|
6785
|
+
useEffect26(() => {
|
|
6171
6786
|
if (data.hash) {
|
|
6172
6787
|
setShouldRefetch(status == "loading");
|
|
6173
6788
|
}
|
|
6174
6789
|
}, [status, data.hash]);
|
|
6175
|
-
const symbol =
|
|
6790
|
+
const symbol = useMemo17(() => {
|
|
6176
6791
|
if (transferType == "erc20_transfer") {
|
|
6177
6792
|
const contract = contracts[`${chainId}-${data.to.toLowerCase()}`];
|
|
6178
6793
|
return contract?.symbol || contract?.name || "unknown";
|
|
@@ -6187,10 +6802,10 @@ var Item = ({ data }) => {
|
|
|
6187
6802
|
className: `matchid-transaction-item`,
|
|
6188
6803
|
children: [
|
|
6189
6804
|
/* @__PURE__ */ jsxs23("div", { className: `matchid-transacton-item-container`, children: [
|
|
6190
|
-
/* @__PURE__ */
|
|
6805
|
+
/* @__PURE__ */ jsx33("div", { className: "matchid-transaction-item-icon", children: /* @__PURE__ */ jsx33(ArrowSendIcon, { className: !isOut ? "rotate-180" : "" }) }),
|
|
6191
6806
|
/* @__PURE__ */ jsxs23("div", { className: `matchid-transaction-item-details`, children: [
|
|
6192
|
-
/* @__PURE__ */
|
|
6193
|
-
/* @__PURE__ */
|
|
6807
|
+
/* @__PURE__ */ jsx33("div", { className: `matchid-transaction-item-address`, children: formatAddress(to, 6, 4) }),
|
|
6808
|
+
/* @__PURE__ */ jsx33(
|
|
6194
6809
|
"div",
|
|
6195
6810
|
{
|
|
6196
6811
|
className: `matchid-transaction-item-timestamp`,
|
|
@@ -6200,10 +6815,10 @@ var Item = ({ data }) => {
|
|
|
6200
6815
|
] })
|
|
6201
6816
|
] }),
|
|
6202
6817
|
/* @__PURE__ */ jsxs23("div", { className: `matchid-transaction-item-amount ${"matchid-transaction-item-" + status}`, children: [
|
|
6203
|
-
/* @__PURE__ */
|
|
6204
|
-
status == "loading" && /* @__PURE__ */
|
|
6205
|
-
status == "success" && /* @__PURE__ */
|
|
6206
|
-
status == "error" && /* @__PURE__ */
|
|
6818
|
+
/* @__PURE__ */ jsx33(NumberFormatter, { value: amount, tFixNum: 6, prefix: isOut ? "-" : "+", suffix: " " + symbol }),
|
|
6819
|
+
status == "loading" && /* @__PURE__ */ jsx33(LoadingIcon_default, { color: "#000000", size: 16, rotate: true }),
|
|
6820
|
+
status == "success" && /* @__PURE__ */ jsx33(CheckRoundIcon, { size: 16 }),
|
|
6821
|
+
status == "error" && /* @__PURE__ */ jsx33(InfoRoundIcon, { size: 16 })
|
|
6207
6822
|
] })
|
|
6208
6823
|
]
|
|
6209
6824
|
}
|
|
@@ -6213,7 +6828,7 @@ function TransactionList({
|
|
|
6213
6828
|
scrollableTarget
|
|
6214
6829
|
}) {
|
|
6215
6830
|
const { fetchMoreData, hasMore, items } = useMatchWalletRecords();
|
|
6216
|
-
return /* @__PURE__ */
|
|
6831
|
+
return /* @__PURE__ */ jsx33(
|
|
6217
6832
|
InfiniteScroll,
|
|
6218
6833
|
{
|
|
6219
6834
|
scrollableTarget,
|
|
@@ -6221,11 +6836,11 @@ function TransactionList({
|
|
|
6221
6836
|
next: fetchMoreData,
|
|
6222
6837
|
hasMore,
|
|
6223
6838
|
loader: /* @__PURE__ */ jsxs23("div", { className: "matchid-list-nomore", children: [
|
|
6224
|
-
/* @__PURE__ */
|
|
6839
|
+
/* @__PURE__ */ jsx33(LoadingIcon_default, { rotate: true, size: 16, color: "black" }),
|
|
6225
6840
|
"Loading..."
|
|
6226
6841
|
] }),
|
|
6227
|
-
endMessage: items.length > 0 ? /* @__PURE__ */
|
|
6228
|
-
children: items.length == 0 && !hasMore ? /* @__PURE__ */
|
|
6842
|
+
endMessage: items.length > 0 ? /* @__PURE__ */ jsx33("div", { className: `matchid-list-nomore`, children: /* @__PURE__ */ jsx33(FormattedMessage15, { id: "noMoreRecords" }) }) : /* @__PURE__ */ jsx33("div", { className: `matchid-list-nomore`, children: /* @__PURE__ */ jsx33(FormattedMessage15, { id: "noRecords" }) }),
|
|
6843
|
+
children: items.length == 0 && !hasMore ? /* @__PURE__ */ jsx33("div", { className: "mt-[150px]" }) : /* @__PURE__ */ jsx33("div", { className: `matchid-transaction-list`, children: items.map((item, index) => /* @__PURE__ */ jsx33(Item, { data: item }, index)) })
|
|
6229
6844
|
}
|
|
6230
6845
|
);
|
|
6231
6846
|
}
|
|
@@ -6257,6 +6872,7 @@ export {
|
|
|
6257
6872
|
LoginModal,
|
|
6258
6873
|
LoginButton,
|
|
6259
6874
|
UsernameModal,
|
|
6875
|
+
EVMModal,
|
|
6260
6876
|
TRONModal,
|
|
6261
6877
|
TONModal,
|
|
6262
6878
|
BTCModal,
|
|
@@ -6277,4 +6893,4 @@ export {
|
|
|
6277
6893
|
MatchProvider,
|
|
6278
6894
|
useMatch
|
|
6279
6895
|
};
|
|
6280
|
-
//# sourceMappingURL=chunk-
|
|
6896
|
+
//# sourceMappingURL=chunk-XXZZYALJ.mjs.map
|