@matchain/matchid-sdk-react 0.1.48-alpha.21 → 0.1.48-alpha.23
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 +1 -1
- package/dist/assets/icon/index.d.ts +1 -1
- package/dist/{chunk-WXPVHKGJ.mjs → chunk-FB5MHLWX.mjs} +3 -1
- package/dist/{chunk-CHWBALAC.mjs → chunk-FYW4P7HS.mjs} +607 -577
- package/dist/chunk-FYW4P7HS.mjs.map +1 -0
- package/dist/{chunk-IV4F5SHJ.mjs → chunk-SB54XHCJ.mjs} +2 -2
- package/dist/components/index.d.mts +3 -3
- package/dist/components/index.d.ts +3 -3
- package/dist/components/index.js +450 -461
- package/dist/components/index.js.map +1 -1
- package/dist/components/index.mjs +3 -3
- package/dist/hooks/api/index.d.mts +2 -2
- package/dist/hooks/api/index.d.ts +2 -2
- package/dist/hooks/api/index.js +38 -29
- package/dist/hooks/api/index.js.map +1 -1
- package/dist/hooks/api/index.mjs +3 -3
- package/dist/hooks/index.d.mts +2 -2
- package/dist/hooks/index.d.ts +2 -2
- package/dist/hooks/index.js +130 -147
- package/dist/hooks/index.js.map +1 -1
- package/dist/hooks/index.mjs +3 -3
- package/dist/{index-C9qYyRgt.d.mts → index-B4gKj0ro.d.mts} +2 -2
- package/dist/{index-Bpmrd7mh.d.ts → index-BFSCCmlU.d.ts} +1 -1
- package/dist/{index-Cy3K-Yao.d.ts → index-BHXlpUg5.d.ts} +1 -1
- package/dist/{index-Dhtyz0pT.d.mts → index-BObJQar4.d.mts} +2 -1
- package/dist/{index-BcEreCxd.d.ts → index-BOsoQSmx.d.ts} +1 -1
- package/dist/{index-C9F6f2iz.d.mts → index-Bk_dqXKp.d.mts} +2 -2
- package/dist/{index-BMsj8hJv.d.ts → index-CN2jy6bb.d.ts} +2 -2
- package/dist/{index-CFKZWJVt.d.ts → index-CSTyna62.d.ts} +2 -1
- package/dist/{index-BMfaixEx.d.mts → index-Ca30Hgn7.d.mts} +1 -1
- package/dist/{index-Cou96DpL.d.mts → index-CdM22eod.d.mts} +1 -1
- package/dist/{index-D4ju2J_e.d.mts → index-D3GBq1P1.d.mts} +1 -1
- package/dist/{index-Bvc8cjpN.d.ts → index-DTYp8DRd.d.ts} +2 -2
- package/dist/index.css +33 -0
- package/dist/index.d.mts +7 -7
- package/dist/index.d.ts +7 -7
- package/dist/index.js +261 -233
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +10 -10
- package/dist/types/index.d.mts +1 -1
- package/dist/types/index.d.ts +1 -1
- package/dist/{types-DzVVzMYU.d.mts → types-Dc15ure7.d.mts} +1 -1
- package/dist/{types-DzVVzMYU.d.ts → types-Dc15ure7.d.ts} +1 -1
- package/dist/ui/index.d.mts +3 -3
- package/dist/ui/index.d.ts +3 -3
- package/dist/ui/index.mjs +1 -1
- package/package.json +1 -1
- package/dist/chunk-CHWBALAC.mjs.map +0 -1
- /package/dist/{chunk-WXPVHKGJ.mjs.map → chunk-FB5MHLWX.mjs.map} +0 -0
- /package/dist/{chunk-IV4F5SHJ.mjs.map → chunk-SB54XHCJ.mjs.map} +0 -0
|
@@ -1,3 +1,14 @@
|
|
|
1
|
+
import {
|
|
2
|
+
NumberFormatter,
|
|
3
|
+
encodeBase64,
|
|
4
|
+
formatAddress,
|
|
5
|
+
formatDate,
|
|
6
|
+
getAppClientId,
|
|
7
|
+
getVersion,
|
|
8
|
+
isValidEmail,
|
|
9
|
+
isValidUsername,
|
|
10
|
+
truncateAddress
|
|
11
|
+
} from "./chunk-5JHHHLG4.mjs";
|
|
1
12
|
import {
|
|
2
13
|
AlphaAvatar,
|
|
3
14
|
Button,
|
|
@@ -10,22 +21,13 @@ import {
|
|
|
10
21
|
Overlay,
|
|
11
22
|
Popover,
|
|
12
23
|
Radio,
|
|
24
|
+
fail_default,
|
|
13
25
|
matchlog_default,
|
|
26
|
+
success_default,
|
|
14
27
|
useDownMd,
|
|
15
28
|
useHash,
|
|
16
29
|
useLayout_exports
|
|
17
|
-
} from "./chunk-
|
|
18
|
-
import {
|
|
19
|
-
NumberFormatter,
|
|
20
|
-
encodeBase64,
|
|
21
|
-
formatAddress,
|
|
22
|
-
formatDate,
|
|
23
|
-
getAppClientId,
|
|
24
|
-
getVersion,
|
|
25
|
-
isValidEmail,
|
|
26
|
-
isValidUsername,
|
|
27
|
-
truncateAddress
|
|
28
|
-
} from "./chunk-5JHHHLG4.mjs";
|
|
30
|
+
} from "./chunk-FB5MHLWX.mjs";
|
|
29
31
|
import {
|
|
30
32
|
ArrowDownIcon,
|
|
31
33
|
ArrowRightIcon,
|
|
@@ -102,7 +104,7 @@ __export(components_exports, {
|
|
|
102
104
|
});
|
|
103
105
|
|
|
104
106
|
// src/components/EmailModal/index.tsx
|
|
105
|
-
import { useEffect as
|
|
107
|
+
import { useEffect as useEffect15, useState as useState14 } from "react";
|
|
106
108
|
|
|
107
109
|
// src/components/EmailModal/StepEmail.tsx
|
|
108
110
|
import { useEffect, useMemo, useState } from "react";
|
|
@@ -584,7 +586,7 @@ var localStore = useLocalStore;
|
|
|
584
586
|
var useLocalStore_default = useLocalStore;
|
|
585
587
|
|
|
586
588
|
// src/hooks/useUserInfo.tsx
|
|
587
|
-
import { useMemo as
|
|
589
|
+
import { useMemo as useMemo7 } from "react";
|
|
588
590
|
|
|
589
591
|
// src/MatchContext.tsx
|
|
590
592
|
import { createContext as createContext3, useContext as useContext3 } from "react";
|
|
@@ -750,7 +752,6 @@ import { devtools as devtools2, persist as persist2 } from "zustand/middleware";
|
|
|
750
752
|
var persistedState2 = persist2(
|
|
751
753
|
(set, get) => ({
|
|
752
754
|
transactions: {},
|
|
753
|
-
getTransactions: (chainId, address) => get().transactions[`${chainId}-${address}`] || [],
|
|
754
755
|
addTransaction: (data) => {
|
|
755
756
|
set((state) => {
|
|
756
757
|
const updatedTransactions = {
|
|
@@ -1291,8 +1292,8 @@ function useMatchChain() {
|
|
|
1291
1292
|
|
|
1292
1293
|
// src/hooks/useMatchWallet.tsx
|
|
1293
1294
|
import { QRCode } from "react-qrcode";
|
|
1294
|
-
import { useEffect as
|
|
1295
|
-
import { useQuery as useQuery2
|
|
1295
|
+
import { useEffect as useEffect7, useMemo as useMemo5, useRef, useState as useState8 } from "react";
|
|
1296
|
+
import { useQuery as useQuery2 } from "@tanstack/react-query";
|
|
1296
1297
|
|
|
1297
1298
|
// src/config/index.tsx
|
|
1298
1299
|
var EMAIL_INTERVAL = 60;
|
|
@@ -1300,7 +1301,7 @@ var EMAIL_CODE_LENGTH = 6;
|
|
|
1300
1301
|
var NATIVE_TOKEN_ADDRESS = "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee";
|
|
1301
1302
|
|
|
1302
1303
|
// src/hooks/useMatchWallet.tsx
|
|
1303
|
-
import { erc20Abi, formatUnits as formatUnits2 } from "viem";
|
|
1304
|
+
import { erc20Abi as erc20Abi2, formatUnits as formatUnits2 } from "viem";
|
|
1304
1305
|
|
|
1305
1306
|
// src/store/useContractStore.ts
|
|
1306
1307
|
import { create as create4 } from "zustand";
|
|
@@ -1359,51 +1360,16 @@ var useContractStore = create4(devtools3(persistedState3));
|
|
|
1359
1360
|
var useContractStore_default = useContractStore;
|
|
1360
1361
|
|
|
1361
1362
|
// src/hooks/useMatchWallet.tsx
|
|
1363
|
+
import { FormattedMessage as FormattedMessage3, useIntl as useIntl3 } from "react-intl";
|
|
1364
|
+
|
|
1365
|
+
// src/components/ImportToken/index.tsx
|
|
1366
|
+
import { useEffect as useEffect6, useMemo as useMemo4, useState as useState7 } from "react";
|
|
1362
1367
|
import { FormattedMessage as FormattedMessage2, useIntl as useIntl2 } from "react-intl";
|
|
1368
|
+
import { useQueryClient } from "@tanstack/react-query";
|
|
1369
|
+
import { erc20Abi } from "viem";
|
|
1363
1370
|
import { jsx as jsx6, jsxs as jsxs5 } from "react/jsx-runtime";
|
|
1364
|
-
|
|
1365
|
-
const
|
|
1366
|
-
const { address } = useWallet();
|
|
1367
|
-
const [copied, setCopied] = useCopyClipboard();
|
|
1368
|
-
const toast = useToast();
|
|
1369
|
-
const intl = useIntl2();
|
|
1370
|
-
const onCopy = () => {
|
|
1371
|
-
setCopied(address);
|
|
1372
|
-
toast.success(intl.formatMessage({
|
|
1373
|
-
id: "copied"
|
|
1374
|
-
}));
|
|
1375
|
-
};
|
|
1376
|
-
const chainLink = chain.explorerLink("address/" + address);
|
|
1377
|
-
return /* @__PURE__ */ jsxs5("div", { className: `matchid-receive-modal`, children: [
|
|
1378
|
-
/* @__PURE__ */ jsxs5("div", { className: "matchid-receive-container", children: [
|
|
1379
|
-
/* @__PURE__ */ jsx6("div", { className: `matchid-receive-text`, children: /* @__PURE__ */ jsx6(FormattedMessage2, { id: "receiveQrcode" }) }),
|
|
1380
|
-
/* @__PURE__ */ jsx6("div", { className: `matchid-qr-container`, children: /* @__PURE__ */ jsx6(
|
|
1381
|
-
QRCode,
|
|
1382
|
-
{
|
|
1383
|
-
margin: "0",
|
|
1384
|
-
className: `matchid-qr-code`,
|
|
1385
|
-
value: address
|
|
1386
|
-
}
|
|
1387
|
-
) }),
|
|
1388
|
-
/* @__PURE__ */ jsx6(
|
|
1389
|
-
"a",
|
|
1390
|
-
{
|
|
1391
|
-
href: chainLink,
|
|
1392
|
-
target: "_blank",
|
|
1393
|
-
className: `matchid-receive-link`,
|
|
1394
|
-
children: address
|
|
1395
|
-
}
|
|
1396
|
-
)
|
|
1397
|
-
] }),
|
|
1398
|
-
/* @__PURE__ */ jsx6(Button, { size: "lg", onClick: onCopy, block: true, highlight: true, disabled: copied, children: /* @__PURE__ */ jsx6(
|
|
1399
|
-
FormattedMessage2,
|
|
1400
|
-
{
|
|
1401
|
-
id: "copyAddress"
|
|
1402
|
-
}
|
|
1403
|
-
) })
|
|
1404
|
-
] });
|
|
1405
|
-
};
|
|
1406
|
-
var ImportTokenModal = ({ close }) => {
|
|
1371
|
+
function ImportToken({ close }) {
|
|
1372
|
+
const [status, setStatus] = useState7("");
|
|
1407
1373
|
const { token } = useUserInfo();
|
|
1408
1374
|
const [address, setAddress] = useState7("");
|
|
1409
1375
|
const [symbol, setSymbol] = useState7("");
|
|
@@ -1412,32 +1378,16 @@ var ImportTokenModal = ({ close }) => {
|
|
|
1412
1378
|
const { publicClient, chainId } = useMatchChain();
|
|
1413
1379
|
const getContractInfo = async () => {
|
|
1414
1380
|
if (!publicClient) return;
|
|
1415
|
-
const erc20Abi3 = [
|
|
1416
|
-
{
|
|
1417
|
-
name: "decimals",
|
|
1418
|
-
type: "function",
|
|
1419
|
-
stateMutability: "view",
|
|
1420
|
-
inputs: [],
|
|
1421
|
-
outputs: [{ name: "decimals", type: "uint8" }]
|
|
1422
|
-
},
|
|
1423
|
-
{
|
|
1424
|
-
name: "symbol",
|
|
1425
|
-
type: "function",
|
|
1426
|
-
stateMutability: "view",
|
|
1427
|
-
inputs: [],
|
|
1428
|
-
outputs: [{ name: "symbol", type: "string" }]
|
|
1429
|
-
}
|
|
1430
|
-
];
|
|
1431
1381
|
const calls = [
|
|
1432
1382
|
{
|
|
1433
1383
|
address,
|
|
1434
|
-
abi:
|
|
1384
|
+
abi: erc20Abi,
|
|
1435
1385
|
functionName: "symbol",
|
|
1436
1386
|
args: []
|
|
1437
1387
|
},
|
|
1438
1388
|
{
|
|
1439
1389
|
address,
|
|
1440
|
-
abi:
|
|
1390
|
+
abi: erc20Abi,
|
|
1441
1391
|
functionName: "decimals",
|
|
1442
1392
|
args: []
|
|
1443
1393
|
}
|
|
@@ -1490,17 +1440,16 @@ var ImportTokenModal = ({ close }) => {
|
|
|
1490
1440
|
decimals
|
|
1491
1441
|
});
|
|
1492
1442
|
if (isSuccess(res)) {
|
|
1493
|
-
|
|
1494
|
-
id: "importSuccess"
|
|
1495
|
-
}));
|
|
1443
|
+
setStatus("success");
|
|
1496
1444
|
queryClient2.invalidateQueries({
|
|
1497
1445
|
queryKey: [USER_IMPORT_TOKEN_LIST_KEY, token, chainId]
|
|
1498
1446
|
});
|
|
1499
|
-
close();
|
|
1500
1447
|
} else {
|
|
1448
|
+
setStatus("fail");
|
|
1501
1449
|
toast.error(res.message);
|
|
1502
1450
|
}
|
|
1503
1451
|
} catch (error2) {
|
|
1452
|
+
setStatus("fail");
|
|
1504
1453
|
toast.error(error2.message);
|
|
1505
1454
|
} finally {
|
|
1506
1455
|
setLoading(false);
|
|
@@ -1522,6 +1471,16 @@ var ImportTokenModal = ({ close }) => {
|
|
|
1522
1471
|
}
|
|
1523
1472
|
return true;
|
|
1524
1473
|
}, [error, address, symbol, decimals]);
|
|
1474
|
+
console.log("status", status);
|
|
1475
|
+
if (status == "success" || status == "fail") {
|
|
1476
|
+
return /* @__PURE__ */ jsxs5("div", { className: `matchid-import-token-result matchid-flex`, children: [
|
|
1477
|
+
/* @__PURE__ */ jsxs5("div", { className: `matchid-import-token-result-box matchid-flex`, children: [
|
|
1478
|
+
/* @__PURE__ */ jsx6("img", { src: status == "success" ? success_default : fail_default, alt: status == "success" ? "success" : "fail", className: `matchid-import-token-result-img` }),
|
|
1479
|
+
/* @__PURE__ */ jsx6("div", { className: `matchid-import-token-result-text matchid-import-token-result-text-${status}`, children: status == "success" ? /* @__PURE__ */ jsx6(FormattedMessage2, { id: "importSuccess" }) : /* @__PURE__ */ jsx6(FormattedMessage2, { id: "importFail" }) })
|
|
1480
|
+
] }),
|
|
1481
|
+
status == "success" ? /* @__PURE__ */ jsx6(Button, { size: "lg", onClick: close, block: true, highlight: true, children: /* @__PURE__ */ jsx6(FormattedMessage2, { id: "close" }) }) : /* @__PURE__ */ jsx6(Button, { size: "lg", onClick: () => setStatus(""), block: true, highlight: true, children: /* @__PURE__ */ jsx6(FormattedMessage2, { id: "back" }) })
|
|
1482
|
+
] });
|
|
1483
|
+
}
|
|
1525
1484
|
return /* @__PURE__ */ jsxs5("div", { className: `matchid-import-token`, children: [
|
|
1526
1485
|
/* @__PURE__ */ jsxs5("div", { className: "matchid-import-token-form", children: [
|
|
1527
1486
|
/* @__PURE__ */ jsx6(Field, { label: intl.formatMessage({
|
|
@@ -1577,10 +1536,55 @@ var ImportTokenModal = ({ close }) => {
|
|
|
1577
1536
|
}
|
|
1578
1537
|
)
|
|
1579
1538
|
] });
|
|
1539
|
+
}
|
|
1540
|
+
|
|
1541
|
+
// src/hooks/useMatchWallet.tsx
|
|
1542
|
+
import { jsx as jsx7, jsxs as jsxs6 } from "react/jsx-runtime";
|
|
1543
|
+
var ReceiveModal = () => {
|
|
1544
|
+
const chain = useMatchChain();
|
|
1545
|
+
const { address } = useWallet();
|
|
1546
|
+
const [copied, setCopied] = useCopyClipboard();
|
|
1547
|
+
const toast = useToast();
|
|
1548
|
+
const intl = useIntl3();
|
|
1549
|
+
const onCopy = () => {
|
|
1550
|
+
setCopied(address);
|
|
1551
|
+
toast.success(intl.formatMessage({
|
|
1552
|
+
id: "copied"
|
|
1553
|
+
}));
|
|
1554
|
+
};
|
|
1555
|
+
const chainLink = chain.explorerLink("address/" + address);
|
|
1556
|
+
return /* @__PURE__ */ jsxs6("div", { className: `matchid-receive-modal`, children: [
|
|
1557
|
+
/* @__PURE__ */ jsxs6("div", { className: "matchid-receive-container", children: [
|
|
1558
|
+
/* @__PURE__ */ jsx7("div", { className: `matchid-receive-text`, children: /* @__PURE__ */ jsx7(FormattedMessage3, { id: "receiveQrcode" }) }),
|
|
1559
|
+
/* @__PURE__ */ jsx7("div", { className: `matchid-qr-container`, children: /* @__PURE__ */ jsx7(
|
|
1560
|
+
QRCode,
|
|
1561
|
+
{
|
|
1562
|
+
margin: "0",
|
|
1563
|
+
className: `matchid-qr-code`,
|
|
1564
|
+
value: address
|
|
1565
|
+
}
|
|
1566
|
+
) }),
|
|
1567
|
+
/* @__PURE__ */ jsx7(
|
|
1568
|
+
"a",
|
|
1569
|
+
{
|
|
1570
|
+
href: chainLink,
|
|
1571
|
+
target: "_blank",
|
|
1572
|
+
className: `matchid-receive-link`,
|
|
1573
|
+
children: address
|
|
1574
|
+
}
|
|
1575
|
+
)
|
|
1576
|
+
] }),
|
|
1577
|
+
/* @__PURE__ */ jsx7(Button, { size: "lg", onClick: onCopy, block: true, highlight: true, disabled: copied, children: /* @__PURE__ */ jsx7(
|
|
1578
|
+
FormattedMessage3,
|
|
1579
|
+
{
|
|
1580
|
+
id: "copyAddress"
|
|
1581
|
+
}
|
|
1582
|
+
) })
|
|
1583
|
+
] });
|
|
1580
1584
|
};
|
|
1581
1585
|
function useMatchWallet() {
|
|
1582
1586
|
const modal = useModal();
|
|
1583
|
-
const intl =
|
|
1587
|
+
const intl = useIntl3();
|
|
1584
1588
|
const showReceiveModal = () => {
|
|
1585
1589
|
modal.open({
|
|
1586
1590
|
title: intl.formatMessage({
|
|
@@ -1592,9 +1596,9 @@ function useMatchWallet() {
|
|
|
1592
1596
|
const showImportTokenModal = () => {
|
|
1593
1597
|
modal.open({
|
|
1594
1598
|
title: intl.formatMessage({
|
|
1595
|
-
id: "
|
|
1599
|
+
id: "customizedToken"
|
|
1596
1600
|
}),
|
|
1597
|
-
content:
|
|
1601
|
+
content: ImportToken
|
|
1598
1602
|
});
|
|
1599
1603
|
};
|
|
1600
1604
|
const showSendListModal = () => {
|
|
@@ -1612,8 +1616,8 @@ function useMatchWallet() {
|
|
|
1612
1616
|
};
|
|
1613
1617
|
}
|
|
1614
1618
|
function useMatchWalletRecords() {
|
|
1615
|
-
const [hasMore, setHasMore] =
|
|
1616
|
-
const [items, setItems] =
|
|
1619
|
+
const [hasMore, setHasMore] = useState8(true);
|
|
1620
|
+
const [items, setItems] = useState8([]);
|
|
1617
1621
|
const { chainId, publicClient } = useMatchChain();
|
|
1618
1622
|
const { address } = useWallet();
|
|
1619
1623
|
const hasMoreRef = useRef(hasMore);
|
|
@@ -1648,13 +1652,13 @@ function useMatchWalletRecords() {
|
|
|
1648
1652
|
for (const contract of contractUnique) {
|
|
1649
1653
|
calls.push({
|
|
1650
1654
|
address: contract,
|
|
1651
|
-
abi:
|
|
1655
|
+
abi: erc20Abi2,
|
|
1652
1656
|
functionName: "symbol",
|
|
1653
1657
|
args: []
|
|
1654
1658
|
});
|
|
1655
1659
|
calls.push({
|
|
1656
1660
|
address: contract,
|
|
1657
|
-
abi:
|
|
1661
|
+
abi: erc20Abi2,
|
|
1658
1662
|
functionName: "decimals",
|
|
1659
1663
|
args: []
|
|
1660
1664
|
});
|
|
@@ -1693,14 +1697,14 @@ function useMatchWalletRecords() {
|
|
|
1693
1697
|
hasMoreRef.current = true;
|
|
1694
1698
|
fetchMoreData();
|
|
1695
1699
|
};
|
|
1696
|
-
|
|
1700
|
+
useEffect7(() => {
|
|
1697
1701
|
if (chainId && address) {
|
|
1698
1702
|
onInit();
|
|
1699
1703
|
}
|
|
1700
1704
|
}, [chainId, address]);
|
|
1701
|
-
const {
|
|
1702
|
-
const list =
|
|
1703
|
-
const localTransactions =
|
|
1705
|
+
const { transactions, removeTransaction } = useTransactionStore_default();
|
|
1706
|
+
const list = useMemo5(() => {
|
|
1707
|
+
const localTransactions = transactions[`${chainId}-${address}`] || [];
|
|
1704
1708
|
const removeList = localTransactions.filter((n) => items.findIndex((m) => m.hash == n.hash) >= 0);
|
|
1705
1709
|
removeList.forEach((item) => {
|
|
1706
1710
|
removeTransaction({
|
|
@@ -1718,7 +1722,7 @@ function useMatchWalletRecords() {
|
|
|
1718
1722
|
const atimestamp = typeof a.timestamp === "string" ? parseInt(a.timestamp) : a.timestamp;
|
|
1719
1723
|
return btimestamp - atimestamp;
|
|
1720
1724
|
});
|
|
1721
|
-
}, [
|
|
1725
|
+
}, [transactions, chainId, items, address]);
|
|
1722
1726
|
return {
|
|
1723
1727
|
items: list,
|
|
1724
1728
|
fetchMoreData,
|
|
@@ -1738,7 +1742,7 @@ function useMatchWalletAssets({
|
|
|
1738
1742
|
chainId: chainId || 0,
|
|
1739
1743
|
...assetListOptions
|
|
1740
1744
|
});
|
|
1741
|
-
const mergedAssets =
|
|
1745
|
+
const mergedAssets = useMemo5(() => {
|
|
1742
1746
|
if (!assetListQuery.data && !importTokenQuery.data) return [];
|
|
1743
1747
|
const assetList = (assetListQuery.data || []).map((asset) => ({
|
|
1744
1748
|
...asset,
|
|
@@ -1825,35 +1829,14 @@ function useMatchWalletAssetList({
|
|
|
1825
1829
|
retry: 3
|
|
1826
1830
|
// Retry up to 3 times if failed
|
|
1827
1831
|
});
|
|
1828
|
-
const erc20Tokens =
|
|
1829
|
-
const erc20Abi3 = [
|
|
1830
|
-
{
|
|
1831
|
-
"constant": true,
|
|
1832
|
-
"inputs": [
|
|
1833
|
-
{
|
|
1834
|
-
"name": "_owner",
|
|
1835
|
-
"type": "address"
|
|
1836
|
-
}
|
|
1837
|
-
],
|
|
1838
|
-
"name": "balanceOf",
|
|
1839
|
-
"outputs": [
|
|
1840
|
-
{
|
|
1841
|
-
"name": "balance",
|
|
1842
|
-
"type": "uint256"
|
|
1843
|
-
}
|
|
1844
|
-
],
|
|
1845
|
-
"payable": false,
|
|
1846
|
-
"stateMutability": "view",
|
|
1847
|
-
"type": "function"
|
|
1848
|
-
}
|
|
1849
|
-
];
|
|
1832
|
+
const erc20Tokens = useMemo5(() => list.filter((asset) => asset.address !== NATIVE_TOKEN_ADDRESS), [list]);
|
|
1850
1833
|
const erc20BalanceQuery = useQuery2({
|
|
1851
1834
|
queryKey: ["erc20Balances", erc20Tokens.map((token) => token.address)],
|
|
1852
1835
|
queryFn: async () => {
|
|
1853
1836
|
if (!erc20Tokens.length || !publicClient) return [];
|
|
1854
1837
|
const calls = erc20Tokens.map((token) => ({
|
|
1855
1838
|
address: token.address,
|
|
1856
|
-
abi:
|
|
1839
|
+
abi: erc20Abi2,
|
|
1857
1840
|
functionName: "balanceOf",
|
|
1858
1841
|
args: [address]
|
|
1859
1842
|
}));
|
|
@@ -1874,7 +1857,7 @@ function useMatchWalletAssetList({
|
|
|
1874
1857
|
// Refresh every 15 seconds
|
|
1875
1858
|
retry: 3
|
|
1876
1859
|
});
|
|
1877
|
-
const enrichedAssets =
|
|
1860
|
+
const enrichedAssets = useMemo5(() => {
|
|
1878
1861
|
if (!list) return [];
|
|
1879
1862
|
const erc20Balances = erc20BalanceQuery.data || [];
|
|
1880
1863
|
return list.map((asset) => {
|
|
@@ -1895,7 +1878,7 @@ function useMatchWalletAssetList({
|
|
|
1895
1878
|
return { ...asset, balance, value, balanceValue };
|
|
1896
1879
|
});
|
|
1897
1880
|
}, [list, nativeBalanceQuery.data, erc20BalanceQuery.data]);
|
|
1898
|
-
|
|
1881
|
+
useEffect7(() => {
|
|
1899
1882
|
const list2 = enrichedAssets.sort((a, b) => {
|
|
1900
1883
|
if (a.address === NATIVE_TOKEN_ADDRESS) return -1;
|
|
1901
1884
|
if (b.address === NATIVE_TOKEN_ADDRESS) return 1;
|
|
@@ -1911,20 +1894,21 @@ function useMatchWalletAssetList({
|
|
|
1911
1894
|
return {
|
|
1912
1895
|
list: assets,
|
|
1913
1896
|
isLoading: nativeBalanceQuery.isLoading || erc20BalanceQuery.isLoading,
|
|
1897
|
+
isFetched: nativeBalanceQuery.isFetched && erc20BalanceQuery.isFetched,
|
|
1914
1898
|
nativeBalance: nativeBalanceQuery.data,
|
|
1915
1899
|
erc20Balances: erc20BalanceQuery.data
|
|
1916
1900
|
};
|
|
1917
1901
|
}
|
|
1918
1902
|
|
|
1919
1903
|
// src/hooks/useReceipt.tsx
|
|
1920
|
-
import { useState as
|
|
1904
|
+
import { useState as useState9, useCallback as useCallback4, useEffect as useEffect8 } from "react";
|
|
1921
1905
|
import { useQuery as useQuery3 } from "@tanstack/react-query";
|
|
1922
1906
|
import { createPublicClient as createPublicClient3, defineChain, http as http3 } from "viem";
|
|
1923
1907
|
var CACHE_TTL = 86400 * 30 * 1e3;
|
|
1924
1908
|
var MAX_CACHE_SIZE = 500;
|
|
1925
1909
|
var STORAGE_KEY = "match_receipt_logs";
|
|
1926
1910
|
function useReceiptCache() {
|
|
1927
|
-
const [cache, setCache] =
|
|
1911
|
+
const [cache, setCache] = useState9(/* @__PURE__ */ new Map());
|
|
1928
1912
|
const isLocalStorageAvailable = (() => {
|
|
1929
1913
|
try {
|
|
1930
1914
|
const testKey = "__test__";
|
|
@@ -1935,7 +1919,7 @@ function useReceiptCache() {
|
|
|
1935
1919
|
return false;
|
|
1936
1920
|
}
|
|
1937
1921
|
})();
|
|
1938
|
-
|
|
1922
|
+
useEffect8(() => {
|
|
1939
1923
|
if (isLocalStorageAvailable) {
|
|
1940
1924
|
try {
|
|
1941
1925
|
const storedData = localStorage.getItem(STORAGE_KEY);
|
|
@@ -2026,7 +2010,7 @@ function useReceipt({
|
|
|
2026
2010
|
const { list } = useMatchChain();
|
|
2027
2011
|
const cache = useReceiptCache();
|
|
2028
2012
|
const chain = list?.find((item) => item.id === chainId);
|
|
2029
|
-
const [shouldRefetch, setShouldRefetch] =
|
|
2013
|
+
const [shouldRefetch, setShouldRefetch] = useState9(true);
|
|
2030
2014
|
const query = useQuery3({
|
|
2031
2015
|
queryKey: ["match-tx-receipt", hash, chain],
|
|
2032
2016
|
queryFn: async () => {
|
|
@@ -2052,7 +2036,7 @@ function useReceipt({
|
|
|
2052
2036
|
},
|
|
2053
2037
|
refetchInterval: shouldRefetch ? 1e4 : false
|
|
2054
2038
|
});
|
|
2055
|
-
|
|
2039
|
+
useEffect8(() => {
|
|
2056
2040
|
if (query.data) {
|
|
2057
2041
|
setShouldRefetch(false);
|
|
2058
2042
|
}
|
|
@@ -2061,14 +2045,14 @@ function useReceipt({
|
|
|
2061
2045
|
}
|
|
2062
2046
|
|
|
2063
2047
|
// src/hooks/useTransaction.tsx
|
|
2064
|
-
import { useState as
|
|
2048
|
+
import { useState as useState10, useCallback as useCallback5, useEffect as useEffect9 } from "react";
|
|
2065
2049
|
import { useQuery as useQuery4 } from "@tanstack/react-query";
|
|
2066
2050
|
import { createPublicClient as createPublicClient4, defineChain as defineChain2, http as http4 } from "viem";
|
|
2067
2051
|
var CACHE_TTL2 = 86400 * 30 * 1e3;
|
|
2068
2052
|
var MAX_CACHE_SIZE2 = 500;
|
|
2069
2053
|
var STORAGE_KEY2 = "match_transaction_logs";
|
|
2070
2054
|
function useTransactionCache() {
|
|
2071
|
-
const [cache, setCache] =
|
|
2055
|
+
const [cache, setCache] = useState10(/* @__PURE__ */ new Map());
|
|
2072
2056
|
const isLocalStorageAvailable = (() => {
|
|
2073
2057
|
try {
|
|
2074
2058
|
const testKey = "__test__";
|
|
@@ -2079,7 +2063,7 @@ function useTransactionCache() {
|
|
|
2079
2063
|
return false;
|
|
2080
2064
|
}
|
|
2081
2065
|
})();
|
|
2082
|
-
|
|
2066
|
+
useEffect9(() => {
|
|
2083
2067
|
if (isLocalStorageAvailable) {
|
|
2084
2068
|
try {
|
|
2085
2069
|
const storedData = localStorage.getItem(STORAGE_KEY2);
|
|
@@ -2170,7 +2154,7 @@ function useTransaction({
|
|
|
2170
2154
|
const { list } = useMatchChain();
|
|
2171
2155
|
const cache = useTransactionCache();
|
|
2172
2156
|
const chain = list?.find((item) => item.id === chainId);
|
|
2173
|
-
const [shouldRefetch, setShouldRefetch] =
|
|
2157
|
+
const [shouldRefetch, setShouldRefetch] = useState10(true);
|
|
2174
2158
|
const query = useQuery4({
|
|
2175
2159
|
queryKey: ["match-tx-transaction", hash, chain],
|
|
2176
2160
|
queryFn: async () => {
|
|
@@ -2196,7 +2180,7 @@ function useTransaction({
|
|
|
2196
2180
|
},
|
|
2197
2181
|
refetchInterval: shouldRefetch ? 1e4 : false
|
|
2198
2182
|
});
|
|
2199
|
-
|
|
2183
|
+
useEffect9(() => {
|
|
2200
2184
|
if (query.data) {
|
|
2201
2185
|
setShouldRefetch(false);
|
|
2202
2186
|
}
|
|
@@ -2208,39 +2192,39 @@ function useTransaction({
|
|
|
2208
2192
|
import { create as create5 } from "zustand";
|
|
2209
2193
|
|
|
2210
2194
|
// src/hooks/useConfig.tsx
|
|
2211
|
-
import { jsx as
|
|
2195
|
+
import { jsx as jsx8 } from "react/jsx-runtime";
|
|
2212
2196
|
var DEFAULT_WALLET_METHODS = ["evm", "sol", "btc", "tron", "ton"];
|
|
2213
2197
|
var WALLET_METHODS = ["evm", "sol", "btc", "tron", "ton"];
|
|
2214
2198
|
function useWalletConfig() {
|
|
2215
2199
|
const isDownMd = useDownMd();
|
|
2216
2200
|
const walletMap = {
|
|
2217
2201
|
evm: {
|
|
2218
|
-
icon: /* @__PURE__ */
|
|
2219
|
-
activeIcon: /* @__PURE__ */
|
|
2202
|
+
icon: /* @__PURE__ */ jsx8(EVMDarkIcon, { size: isDownMd ? 36 : 40 }),
|
|
2203
|
+
activeIcon: /* @__PURE__ */ jsx8(EVMLightIcon, { size: isDownMd ? 36 : 40 }),
|
|
2220
2204
|
name: "EVM",
|
|
2221
2205
|
method: "evm"
|
|
2222
2206
|
},
|
|
2223
2207
|
sol: {
|
|
2224
|
-
icon: /* @__PURE__ */
|
|
2225
|
-
activeIcon: /* @__PURE__ */
|
|
2208
|
+
icon: /* @__PURE__ */ jsx8(SOLDarkIcon, { size: isDownMd ? 36 : 40 }),
|
|
2209
|
+
activeIcon: /* @__PURE__ */ jsx8(SOLLightIcon, { size: isDownMd ? 36 : 40 }),
|
|
2226
2210
|
name: "SOL",
|
|
2227
2211
|
method: "sol"
|
|
2228
2212
|
},
|
|
2229
2213
|
btc: {
|
|
2230
|
-
icon: /* @__PURE__ */
|
|
2231
|
-
activeIcon: /* @__PURE__ */
|
|
2214
|
+
icon: /* @__PURE__ */ jsx8(BTCDarkIcon, { size: isDownMd ? 36 : 40 }),
|
|
2215
|
+
activeIcon: /* @__PURE__ */ jsx8(BTCLightIcon, { size: isDownMd ? 36 : 40 }),
|
|
2232
2216
|
name: "BTC",
|
|
2233
2217
|
method: "btc"
|
|
2234
2218
|
},
|
|
2235
2219
|
tron: {
|
|
2236
|
-
icon: /* @__PURE__ */
|
|
2237
|
-
activeIcon: /* @__PURE__ */
|
|
2220
|
+
icon: /* @__PURE__ */ jsx8(TRXDarkIcon, { size: isDownMd ? 36 : 40 }),
|
|
2221
|
+
activeIcon: /* @__PURE__ */ jsx8(TRXLightIcon, { size: isDownMd ? 36 : 40 }),
|
|
2238
2222
|
name: "TRON",
|
|
2239
2223
|
method: "tron"
|
|
2240
2224
|
},
|
|
2241
2225
|
ton: {
|
|
2242
|
-
icon: /* @__PURE__ */
|
|
2243
|
-
activeIcon: /* @__PURE__ */
|
|
2226
|
+
icon: /* @__PURE__ */ jsx8(TonLightIcon, { size: isDownMd ? 36 : 40 }),
|
|
2227
|
+
activeIcon: /* @__PURE__ */ jsx8(TonLightIcon2, { size: isDownMd ? 36 : 40 }),
|
|
2244
2228
|
name: "TON",
|
|
2245
2229
|
method: "ton"
|
|
2246
2230
|
}
|
|
@@ -2290,27 +2274,27 @@ var useWalletModalStore = create5((set) => ({
|
|
|
2290
2274
|
}));
|
|
2291
2275
|
|
|
2292
2276
|
// src/components/CEXBindModal/index.tsx
|
|
2293
|
-
import { useEffect as
|
|
2294
|
-
import { FormattedMessage as
|
|
2295
|
-
import { jsx as
|
|
2277
|
+
import { useEffect as useEffect10, useMemo as useMemo6, useState as useState11 } from "react";
|
|
2278
|
+
import { FormattedMessage as FormattedMessage4, useIntl as useIntl4 } from "react-intl";
|
|
2279
|
+
import { jsx as jsx9, jsxs as jsxs7 } from "react/jsx-runtime";
|
|
2296
2280
|
function CEXBindModal({
|
|
2297
2281
|
onClose,
|
|
2298
2282
|
type,
|
|
2299
2283
|
isOpen = false,
|
|
2300
2284
|
...props
|
|
2301
2285
|
}) {
|
|
2302
|
-
const intl =
|
|
2286
|
+
const intl = useIntl4();
|
|
2303
2287
|
const { events } = useMatch();
|
|
2304
|
-
const [APIPassphrase, setAPIPassphrase] =
|
|
2288
|
+
const [APIPassphrase, setAPIPassphrase] = useState11("");
|
|
2305
2289
|
const { refreshOverview } = useUserInfo();
|
|
2306
|
-
const [loading, setLoading] =
|
|
2307
|
-
const [key, setKey] =
|
|
2308
|
-
const [secret, setSecret] =
|
|
2309
|
-
const [error, setError] =
|
|
2310
|
-
const needPassphrase =
|
|
2290
|
+
const [loading, setLoading] = useState11(false);
|
|
2291
|
+
const [key, setKey] = useState11("");
|
|
2292
|
+
const [secret, setSecret] = useState11("");
|
|
2293
|
+
const [error, setError] = useState11("");
|
|
2294
|
+
const needPassphrase = useMemo6(() => {
|
|
2311
2295
|
return ["bitget", "okx"].includes(type.toLowerCase());
|
|
2312
2296
|
}, [type]);
|
|
2313
|
-
|
|
2297
|
+
useEffect10(() => {
|
|
2314
2298
|
if (isOpen) {
|
|
2315
2299
|
setSecret("");
|
|
2316
2300
|
setKey("");
|
|
@@ -2347,20 +2331,20 @@ function CEXBindModal({
|
|
|
2347
2331
|
setLoading(false);
|
|
2348
2332
|
}
|
|
2349
2333
|
};
|
|
2350
|
-
return /* @__PURE__ */
|
|
2334
|
+
return /* @__PURE__ */ jsx9(ModalWithHeader, { showClose: true, isOpen, onClose, title: intl.formatMessage({
|
|
2351
2335
|
id: "CEXBindTitle"
|
|
2352
2336
|
}, {
|
|
2353
2337
|
type
|
|
2354
|
-
}), ...props, children: /* @__PURE__ */
|
|
2355
|
-
/* @__PURE__ */
|
|
2356
|
-
/* @__PURE__ */
|
|
2357
|
-
/* @__PURE__ */
|
|
2358
|
-
/* @__PURE__ */
|
|
2359
|
-
/* @__PURE__ */
|
|
2338
|
+
}), ...props, children: /* @__PURE__ */ jsxs7("div", { className: "matchid-cex-modal", children: [
|
|
2339
|
+
/* @__PURE__ */ jsxs7("div", { children: [
|
|
2340
|
+
/* @__PURE__ */ jsx9("p", { children: /* @__PURE__ */ jsx9(FormattedMessage4, { id: "CEXBindAttention" }) }),
|
|
2341
|
+
/* @__PURE__ */ jsx9("p", { children: /* @__PURE__ */ jsx9(FormattedMessage4, { id: "CEXBindTips1" }) }),
|
|
2342
|
+
/* @__PURE__ */ jsx9("p", { children: /* @__PURE__ */ jsx9(FormattedMessage4, { id: "CEXBindTips2" }) }),
|
|
2343
|
+
/* @__PURE__ */ jsx9("p", { children: /* @__PURE__ */ jsx9(FormattedMessage4, { id: "CEXBindTips3" }) })
|
|
2360
2344
|
] }),
|
|
2361
|
-
/* @__PURE__ */
|
|
2345
|
+
/* @__PURE__ */ jsx9(Field, { label: intl.formatMessage({
|
|
2362
2346
|
id: "CEXBindApiKey"
|
|
2363
|
-
}), children: /* @__PURE__ */
|
|
2347
|
+
}), children: /* @__PURE__ */ jsx9(
|
|
2364
2348
|
Input,
|
|
2365
2349
|
{
|
|
2366
2350
|
value: key,
|
|
@@ -2368,9 +2352,9 @@ function CEXBindModal({
|
|
|
2368
2352
|
placeholder: "**** **** ****"
|
|
2369
2353
|
}
|
|
2370
2354
|
) }),
|
|
2371
|
-
/* @__PURE__ */
|
|
2355
|
+
/* @__PURE__ */ jsx9(Field, { label: intl.formatMessage({
|
|
2372
2356
|
id: "CEXBindApiSecretKey"
|
|
2373
|
-
}), error: !needPassphrase && error, children: /* @__PURE__ */
|
|
2357
|
+
}), error: !needPassphrase && error, children: /* @__PURE__ */ jsx9(
|
|
2374
2358
|
Input,
|
|
2375
2359
|
{
|
|
2376
2360
|
value: secret,
|
|
@@ -2378,9 +2362,9 @@ function CEXBindModal({
|
|
|
2378
2362
|
placeholder: "**** **** ****"
|
|
2379
2363
|
}
|
|
2380
2364
|
) }),
|
|
2381
|
-
needPassphrase && /* @__PURE__ */
|
|
2365
|
+
needPassphrase && /* @__PURE__ */ jsx9(Field, { error, label: intl.formatMessage({
|
|
2382
2366
|
id: "CEXBindApiPassphrase"
|
|
2383
|
-
}), children: /* @__PURE__ */
|
|
2367
|
+
}), children: /* @__PURE__ */ jsx9(
|
|
2384
2368
|
Input,
|
|
2385
2369
|
{
|
|
2386
2370
|
value: APIPassphrase,
|
|
@@ -2388,7 +2372,7 @@ function CEXBindModal({
|
|
|
2388
2372
|
placeholder: "**** **** ****"
|
|
2389
2373
|
}
|
|
2390
2374
|
) }),
|
|
2391
|
-
/* @__PURE__ */
|
|
2375
|
+
/* @__PURE__ */ jsx9(
|
|
2392
2376
|
Button,
|
|
2393
2377
|
{
|
|
2394
2378
|
onClick: SubmitApi,
|
|
@@ -2396,14 +2380,14 @@ function CEXBindModal({
|
|
|
2396
2380
|
block: true,
|
|
2397
2381
|
loading,
|
|
2398
2382
|
disabled: !key || !secret,
|
|
2399
|
-
children: /* @__PURE__ */
|
|
2383
|
+
children: /* @__PURE__ */ jsx9(FormattedMessage4, { id: "continue" })
|
|
2400
2384
|
}
|
|
2401
2385
|
)
|
|
2402
2386
|
] }) });
|
|
2403
2387
|
}
|
|
2404
2388
|
|
|
2405
2389
|
// src/context/BusinessProvider.tsx
|
|
2406
|
-
import { Fragment, jsx as
|
|
2390
|
+
import { Fragment, jsx as jsx10, jsxs as jsxs8 } from "react/jsx-runtime";
|
|
2407
2391
|
function BusinessProvider({ children }) {
|
|
2408
2392
|
const { overview, token } = useUserInfo();
|
|
2409
2393
|
const { type: SOLType, isOpen: SOLIsOpen, close: SOLClose } = useSOLModalStore();
|
|
@@ -2416,8 +2400,8 @@ function BusinessProvider({ children }) {
|
|
|
2416
2400
|
WalletModalStore.close();
|
|
2417
2401
|
func();
|
|
2418
2402
|
};
|
|
2419
|
-
return /* @__PURE__ */
|
|
2420
|
-
/* @__PURE__ */
|
|
2403
|
+
return /* @__PURE__ */ jsxs8(Fragment, { children: [
|
|
2404
|
+
/* @__PURE__ */ jsx10(
|
|
2421
2405
|
SOLModal,
|
|
2422
2406
|
{
|
|
2423
2407
|
isOpen: SOLIsOpen && (SOLType == "login" && !overview && !token || SOLType == "bind" && !!token && !!overview),
|
|
@@ -2427,7 +2411,7 @@ function BusinessProvider({ children }) {
|
|
|
2427
2411
|
zIndex: 199
|
|
2428
2412
|
}
|
|
2429
2413
|
),
|
|
2430
|
-
/* @__PURE__ */
|
|
2414
|
+
/* @__PURE__ */ jsx10(
|
|
2431
2415
|
TRONModal,
|
|
2432
2416
|
{
|
|
2433
2417
|
isOpen: TRONIsOpen && (TRONType == "login" && !overview && !token || TRONType == "bind" && !!token && !!overview),
|
|
@@ -2437,7 +2421,7 @@ function BusinessProvider({ children }) {
|
|
|
2437
2421
|
zIndex: 199
|
|
2438
2422
|
}
|
|
2439
2423
|
),
|
|
2440
|
-
/* @__PURE__ */
|
|
2424
|
+
/* @__PURE__ */ jsx10(
|
|
2441
2425
|
TONModal,
|
|
2442
2426
|
{
|
|
2443
2427
|
isOpen: TONIsOpen && (TONType == "login" && !overview && !token || TONType == "bind" && !!token && !!overview),
|
|
@@ -2447,7 +2431,7 @@ function BusinessProvider({ children }) {
|
|
|
2447
2431
|
zIndex: 199
|
|
2448
2432
|
}
|
|
2449
2433
|
),
|
|
2450
|
-
/* @__PURE__ */
|
|
2434
|
+
/* @__PURE__ */ jsx10(
|
|
2451
2435
|
BTCModal,
|
|
2452
2436
|
{
|
|
2453
2437
|
isOpen: BTCIsOpen && (BTCType == "login" && !overview && !token || BTCType == "bind" && !!token && !!overview),
|
|
@@ -2457,7 +2441,7 @@ function BusinessProvider({ children }) {
|
|
|
2457
2441
|
zIndex: 199
|
|
2458
2442
|
}
|
|
2459
2443
|
),
|
|
2460
|
-
/* @__PURE__ */
|
|
2444
|
+
/* @__PURE__ */ jsx10(
|
|
2461
2445
|
CEXBindModal,
|
|
2462
2446
|
{
|
|
2463
2447
|
isOpen: CEXIsOpen && (!!token && !!overview),
|
|
@@ -2466,7 +2450,7 @@ function BusinessProvider({ children }) {
|
|
|
2466
2450
|
zIndex: 199
|
|
2467
2451
|
}
|
|
2468
2452
|
),
|
|
2469
|
-
/* @__PURE__ */
|
|
2453
|
+
/* @__PURE__ */ jsx10(
|
|
2470
2454
|
WalletModal,
|
|
2471
2455
|
{
|
|
2472
2456
|
isOpen: WalletModalStore.isOpen && (WalletModalStore.type == "login" && !overview && !token || WalletModalStore.type == "bind" && !!token && !!overview),
|
|
@@ -2481,14 +2465,14 @@ function BusinessProvider({ children }) {
|
|
|
2481
2465
|
}
|
|
2482
2466
|
|
|
2483
2467
|
// src/context/index.tsx
|
|
2484
|
-
import { jsx as
|
|
2468
|
+
import { jsx as jsx11 } from "react/jsx-runtime";
|
|
2485
2469
|
var Providers = ({ children }) => {
|
|
2486
|
-
return /* @__PURE__ */
|
|
2470
|
+
return /* @__PURE__ */ jsx11(ToastProvider, { children: /* @__PURE__ */ jsx11(ModalProvider, { children: /* @__PURE__ */ jsx11(BusinessProvider, { children }) }) });
|
|
2487
2471
|
};
|
|
2488
2472
|
var context_default = Providers;
|
|
2489
2473
|
|
|
2490
2474
|
// src/hooks/useWalletInit.ts
|
|
2491
|
-
import { useEffect as
|
|
2475
|
+
import { useEffect as useEffect11, useRef as useRef2 } from "react";
|
|
2492
2476
|
|
|
2493
2477
|
// src/utils/wallet.ts
|
|
2494
2478
|
var sendMessage = ({ method, data, resolve, reject, timeout }) => {
|
|
@@ -2522,10 +2506,10 @@ function useWalletInit({
|
|
|
2522
2506
|
const { endpoints, token, overview, setWallet, wallet, appid, locale, refreshOverview } = useLocalStore_default();
|
|
2523
2507
|
const { setWalletReady, walletReady } = useStore_default();
|
|
2524
2508
|
const iframeReadyRef = useRef2(walletReady);
|
|
2525
|
-
|
|
2509
|
+
useEffect11(() => {
|
|
2526
2510
|
setWallet(config);
|
|
2527
2511
|
}, [config]);
|
|
2528
|
-
|
|
2512
|
+
useEffect11(() => {
|
|
2529
2513
|
matchlog_default.log("sdk.mpc.status", walletReady, iframeReadyRef.current);
|
|
2530
2514
|
iframeReadyRef.current = walletReady;
|
|
2531
2515
|
if (iframeReadyRef.current) {
|
|
@@ -2542,7 +2526,7 @@ function useWalletInit({
|
|
|
2542
2526
|
onReady();
|
|
2543
2527
|
}
|
|
2544
2528
|
}, [walletReady]);
|
|
2545
|
-
|
|
2529
|
+
useEffect11(() => {
|
|
2546
2530
|
if (!endpoints.auth || !appid || !token || !config) {
|
|
2547
2531
|
const existingIframe = getWalletIframe();
|
|
2548
2532
|
if (existingIframe) {
|
|
@@ -2642,7 +2626,7 @@ function useWalletInit({
|
|
|
2642
2626
|
}
|
|
2643
2627
|
}
|
|
2644
2628
|
}, [endpoints.auth, appid, token, config]);
|
|
2645
|
-
|
|
2629
|
+
useEffect11(() => {
|
|
2646
2630
|
const messageHandle = async (e) => {
|
|
2647
2631
|
if (e.origin !== endpoints.auth.substring(0, endpoints.auth.length - 1)) {
|
|
2648
2632
|
return;
|
|
@@ -2723,7 +2707,7 @@ function useWalletInit({
|
|
|
2723
2707
|
}
|
|
2724
2708
|
|
|
2725
2709
|
// src/hooks/useInit.tsx
|
|
2726
|
-
import { useEffect as
|
|
2710
|
+
import { useEffect as useEffect12, useRef as useRef3 } from "react";
|
|
2727
2711
|
function useInit({
|
|
2728
2712
|
theme,
|
|
2729
2713
|
appid,
|
|
@@ -2747,19 +2731,19 @@ function useInit({
|
|
|
2747
2731
|
const searchParams = new URLSearchParams(window.location.search);
|
|
2748
2732
|
const matchToken = searchParams.get("matchToken");
|
|
2749
2733
|
const realEndpoints = endpoints || env_default.endpoints;
|
|
2750
|
-
|
|
2734
|
+
useEffect12(() => {
|
|
2751
2735
|
setTheme(theme);
|
|
2752
2736
|
}, [theme]);
|
|
2753
|
-
|
|
2737
|
+
useEffect12(() => {
|
|
2754
2738
|
setAppid(appid);
|
|
2755
2739
|
}, [appid]);
|
|
2756
|
-
|
|
2740
|
+
useEffect12(() => {
|
|
2757
2741
|
setEndpoints(realEndpoints);
|
|
2758
2742
|
}, [realEndpoints]);
|
|
2759
|
-
|
|
2743
|
+
useEffect12(() => {
|
|
2760
2744
|
setLocale(locale || "en");
|
|
2761
2745
|
}, [locale]);
|
|
2762
|
-
|
|
2746
|
+
useEffect12(() => {
|
|
2763
2747
|
if (matchToken) {
|
|
2764
2748
|
const tokenData = JSON.parse(atob(matchToken));
|
|
2765
2749
|
if (tokenData && tokenData.mid && tokenData.token) {
|
|
@@ -2770,7 +2754,7 @@ function useInit({
|
|
|
2770
2754
|
}
|
|
2771
2755
|
}
|
|
2772
2756
|
}, [matchToken]);
|
|
2773
|
-
|
|
2757
|
+
useEffect12(() => {
|
|
2774
2758
|
const onLoginMessage = (event) => {
|
|
2775
2759
|
const res = event.data;
|
|
2776
2760
|
if (res.event === "login" && res.data && (res.data.token || res.data.token_type && res.data.access_token)) {
|
|
@@ -2807,7 +2791,7 @@ function useInit({
|
|
|
2807
2791
|
overviewLoadingRef.current = false;
|
|
2808
2792
|
}
|
|
2809
2793
|
};
|
|
2810
|
-
|
|
2794
|
+
useEffect12(() => {
|
|
2811
2795
|
if (token) {
|
|
2812
2796
|
loadOverview();
|
|
2813
2797
|
}
|
|
@@ -2904,7 +2888,6 @@ var en_default = {
|
|
|
2904
2888
|
copied: "Copied",
|
|
2905
2889
|
receiveQrcode: "Receive by scanning the QR code",
|
|
2906
2890
|
copyAddress: "Copy Address",
|
|
2907
|
-
importSuccess: "Imported successfully",
|
|
2908
2891
|
tokenSmartContract: "Token Smart Contract",
|
|
2909
2892
|
tokenSmartContractPlaceholder: "Enter the Token Smart Contract.",
|
|
2910
2893
|
tokenSymbol: "Token Symbol",
|
|
@@ -2913,7 +2896,13 @@ var en_default = {
|
|
|
2913
2896
|
tokenDecimalsPlaceholder: "Enter the Decimals.",
|
|
2914
2897
|
import: "Import",
|
|
2915
2898
|
receive: "Receive",
|
|
2916
|
-
customizedToken: "Customized Token"
|
|
2899
|
+
customizedToken: "Customized Token",
|
|
2900
|
+
noMoreRecords: "There is no more Records here!",
|
|
2901
|
+
noRecords: "No Records here!",
|
|
2902
|
+
close: "Close",
|
|
2903
|
+
back: "Back",
|
|
2904
|
+
importSuccess: "Import Token Successfully",
|
|
2905
|
+
importFail: "Failed to import Token"
|
|
2917
2906
|
};
|
|
2918
2907
|
|
|
2919
2908
|
// src/i18n/zh.json
|
|
@@ -2979,7 +2968,6 @@ var zh_default = {
|
|
|
2979
2968
|
copied: "\u5DF2\u590D\u5236",
|
|
2980
2969
|
receiveQrcode: "\u626B\u63CF QR \u7801\u63A5\u6536",
|
|
2981
2970
|
copyAddress: "\u590D\u5236\u5730\u5740",
|
|
2982
|
-
importSuccess: "\u5BFC\u5165\u6210\u529F",
|
|
2983
2971
|
tokenSmartContract: "\u4EE3\u5E01\u667A\u80FD\u5408\u7EA6",
|
|
2984
2972
|
tokenSmartContractPlaceholder: "\u8BF7\u8F93\u5165\u4EE3\u5E01\u667A\u80FD\u5408\u7EA6\u3002",
|
|
2985
2973
|
tokenSymbol: "\u4EE3\u5E01\u7B26\u53F7",
|
|
@@ -2988,7 +2976,13 @@ var zh_default = {
|
|
|
2988
2976
|
tokenDecimalsPlaceholder: "\u8BF7\u8F93\u5165\u5C0F\u6570\u4F4D\u6570\u3002",
|
|
2989
2977
|
import: "\u5BFC\u5165",
|
|
2990
2978
|
receive: "\u63A5\u6536",
|
|
2991
|
-
customizedToken: "\u81EA\u5B9A\u4E49\u4EE3\u5E01"
|
|
2979
|
+
customizedToken: "\u81EA\u5B9A\u4E49\u4EE3\u5E01",
|
|
2980
|
+
noMoreRecords: "\u6CA1\u6709\u66F4\u591A\u4EA4\u6613\u8BB0\u5F55\u4E86\uFF01",
|
|
2981
|
+
noRecords: "\u6682\u65E0\u4EA4\u6613\u8BB0\u5F55\uFF01",
|
|
2982
|
+
close: "\u5173\u95ED",
|
|
2983
|
+
back: "\u8FD4\u56DE",
|
|
2984
|
+
importSuccess: "\u6210\u529F\u5BFC\u5165\u4EE3\u5E01",
|
|
2985
|
+
importFail: "\u5BFC\u5165\u4EE3\u5E01\u5931\u8D25"
|
|
2992
2986
|
};
|
|
2993
2987
|
|
|
2994
2988
|
// src/i18n/tw.json
|
|
@@ -3054,7 +3048,6 @@ var tw_default = {
|
|
|
3054
3048
|
copied: "\u5DF2\u8907\u88FD",
|
|
3055
3049
|
receiveQrcode: "\u6383\u63CF QR \u78BC\u63A5\u6536",
|
|
3056
3050
|
copyAddress: "\u8907\u88FD\u5730\u5740",
|
|
3057
|
-
importSuccess: "\u5C0E\u5165\u6210\u529F",
|
|
3058
3051
|
tokenSmartContract: "\u4EE3\u5E63\u667A\u80FD\u5408\u7D04",
|
|
3059
3052
|
tokenSmartContractPlaceholder: "\u8ACB\u8F38\u5165\u4EE3\u5E63\u667A\u80FD\u5408\u7D04\u3002",
|
|
3060
3053
|
tokenSymbol: "\u4EE3\u5E63\u7B26\u865F",
|
|
@@ -3063,7 +3056,13 @@ var tw_default = {
|
|
|
3063
3056
|
tokenDecimalsPlaceholder: "\u8ACB\u8F38\u5165\u5C0F\u6578\u4F4D\u6578\u3002",
|
|
3064
3057
|
import: "\u5C0E\u5165",
|
|
3065
3058
|
receive: "\u63A5\u6536",
|
|
3066
|
-
customizedToken: "\u81EA\u5B9A\u7FA9\u4EE3\u5E63"
|
|
3059
|
+
customizedToken: "\u81EA\u5B9A\u7FA9\u4EE3\u5E63",
|
|
3060
|
+
noMoreRecords: "\u6C92\u6709\u66F4\u591A\u4EA4\u6613\u8A18\u9304\u4E86\uFF01",
|
|
3061
|
+
noRecords: "\u66AB\u7121\u4EA4\u6613\u8A18\u9304\uFF01",
|
|
3062
|
+
close: "\u95DC\u9589",
|
|
3063
|
+
back: "\u8FD4\u56DE",
|
|
3064
|
+
importSuccess: "\u6210\u529F\u532F\u5165\u4EE3\u5E63",
|
|
3065
|
+
importFail: "\u532F\u5165\u4EE3\u5E63\u5931\u6557"
|
|
3067
3066
|
};
|
|
3068
3067
|
|
|
3069
3068
|
// src/i18n/fr.json
|
|
@@ -3129,7 +3128,6 @@ var fr_default = {
|
|
|
3129
3128
|
copied: "Copi\xE9",
|
|
3130
3129
|
receiveQrcode: "Recevoir en scannant le code QR",
|
|
3131
3130
|
copyAddress: "Copier l'adresse",
|
|
3132
|
-
importSuccess: "Import\xE9 avec succ\xE8s",
|
|
3133
3131
|
tokenSmartContract: "Contrat intelligent du Token",
|
|
3134
3132
|
tokenSmartContractPlaceholder: "Entrez le contrat intelligent du Token.",
|
|
3135
3133
|
tokenSymbol: "Symbole du Token",
|
|
@@ -3138,7 +3136,13 @@ var fr_default = {
|
|
|
3138
3136
|
tokenDecimalsPlaceholder: "Entrez les d\xE9cimales.",
|
|
3139
3137
|
import: "Importer",
|
|
3140
3138
|
receive: "Recevoir",
|
|
3141
|
-
customizedToken: "Token personnalis\xE9"
|
|
3139
|
+
customizedToken: "Token personnalis\xE9",
|
|
3140
|
+
noMoreRecords: "Il n'y a plus d'enregistrements ici !",
|
|
3141
|
+
noRecords: "Il n'y a aucun enregistrement ici !",
|
|
3142
|
+
close: "Fermer",
|
|
3143
|
+
back: "Retour",
|
|
3144
|
+
importSuccess: "Importation du jeton r\xE9ussie",
|
|
3145
|
+
importFail: "\xC9chec de l'importation du jeton"
|
|
3142
3146
|
};
|
|
3143
3147
|
|
|
3144
3148
|
// src/i18n/ja.json
|
|
@@ -3204,7 +3208,6 @@ var ja_default = {
|
|
|
3204
3208
|
copied: "\u30B3\u30D4\u30FC\u3057\u307E\u3057\u305F",
|
|
3205
3209
|
receiveQrcode: "QR\u30B3\u30FC\u30C9\u3092\u30B9\u30AD\u30E3\u30F3\u3057\u3066\u53D7\u3051\u53D6\u308B",
|
|
3206
3210
|
copyAddress: "\u30A2\u30C9\u30EC\u30B9\u3092\u30B3\u30D4\u30FC",
|
|
3207
|
-
importSuccess: "\u30A4\u30F3\u30DD\u30FC\u30C8\u306B\u6210\u529F\u3057\u307E\u3057\u305F",
|
|
3208
3211
|
tokenSmartContract: "\u30C8\u30FC\u30AF\u30F3\u306E\u30B9\u30DE\u30FC\u30C8\u30B3\u30F3\u30C8\u30E9\u30AF\u30C8",
|
|
3209
3212
|
tokenSmartContractPlaceholder: "\u30C8\u30FC\u30AF\u30F3\u306E\u30B9\u30DE\u30FC\u30C8\u30B3\u30F3\u30C8\u30E9\u30AF\u30C8\u3092\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044\u3002",
|
|
3210
3213
|
tokenSymbol: "\u30C8\u30FC\u30AF\u30F3\u30B7\u30F3\u30DC\u30EB",
|
|
@@ -3213,7 +3216,13 @@ var ja_default = {
|
|
|
3213
3216
|
tokenDecimalsPlaceholder: "\u5C0F\u6570\u70B9\u3092\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044\u3002",
|
|
3214
3217
|
import: "\u30A4\u30F3\u30DD\u30FC\u30C8",
|
|
3215
3218
|
receive: "\u53D7\u3051\u53D6\u308B",
|
|
3216
|
-
customizedToken: "\u30AB\u30B9\u30BF\u30DE\u30A4\u30BA\u30C8\u30FC\u30AF\u30F3"
|
|
3219
|
+
customizedToken: "\u30AB\u30B9\u30BF\u30DE\u30A4\u30BA\u30C8\u30FC\u30AF\u30F3",
|
|
3220
|
+
noMoreRecords: "\u3053\u308C\u4EE5\u4E0A\u306E\u8A18\u9332\u306F\u3042\u308A\u307E\u305B\u3093\uFF01",
|
|
3221
|
+
noRecords: "\u8A18\u9332\u304C\u3042\u308A\u307E\u305B\u3093\uFF01",
|
|
3222
|
+
close: "\u9589\u3058\u308B",
|
|
3223
|
+
back: "\u623B\u308B",
|
|
3224
|
+
importSuccess: "\u30C8\u30FC\u30AF\u30F3\u306E\u30A4\u30F3\u30DD\u30FC\u30C8\u306B\u6210\u529F\u3057\u307E\u3057\u305F",
|
|
3225
|
+
importFail: "\u30C8\u30FC\u30AF\u30F3\u306E\u30A4\u30F3\u30DD\u30FC\u30C8\u306B\u5931\u6557\u3057\u307E\u3057\u305F"
|
|
3217
3226
|
};
|
|
3218
3227
|
|
|
3219
3228
|
// src/i18n/ko.json
|
|
@@ -3279,7 +3288,6 @@ var ko_default = {
|
|
|
3279
3288
|
copied: "\uBCF5\uC0AC\uB428",
|
|
3280
3289
|
receiveQrcode: "QR \uCF54\uB4DC\uB97C \uC2A4\uCE94\uD558\uC5EC \uBC1B\uAE30",
|
|
3281
3290
|
copyAddress: "\uC8FC\uC18C \uBCF5\uC0AC",
|
|
3282
|
-
importSuccess: "\uC131\uACF5\uC801\uC73C\uB85C \uAC00\uC838\uC654\uC2B5\uB2C8\uB2E4.",
|
|
3283
3291
|
tokenSmartContract: "\uD1A0\uD070 \uC2A4\uB9C8\uD2B8 \uCEE8\uD2B8\uB799\uD2B8",
|
|
3284
3292
|
tokenSmartContractPlaceholder: "\uD1A0\uD070 \uC2A4\uB9C8\uD2B8 \uCEE8\uD2B8\uB799\uD2B8\uB97C \uC785\uB825\uD558\uC138\uC694.",
|
|
3285
3293
|
tokenSymbol: "\uD1A0\uD070 \uC2EC\uBCFC",
|
|
@@ -3288,7 +3296,13 @@ var ko_default = {
|
|
|
3288
3296
|
tokenDecimalsPlaceholder: "\uC18C\uC218\uC810 \uC790\uB9AC\uC218\uB97C \uC785\uB825\uD558\uC138\uC694.",
|
|
3289
3297
|
import: "\uAC00\uC838\uC624\uAE30",
|
|
3290
3298
|
receive: "\uBC1B\uAE30",
|
|
3291
|
-
customizedToken: "\uB9DE\uCDA4\uD615 \uD1A0\uD070"
|
|
3299
|
+
customizedToken: "\uB9DE\uCDA4\uD615 \uD1A0\uD070",
|
|
3300
|
+
noMoreRecords: "\uC5EC\uAE30\uC5D0 \uB354 \uC774\uC0C1 \uAE30\uB85D\uC774 \uC5C6\uC2B5\uB2C8\uB2E4!",
|
|
3301
|
+
noRecords: "\uC5EC\uAE30\uC5D0 \uAE30\uB85D\uC774 \uC5C6\uC2B5\uB2C8\uB2E4!",
|
|
3302
|
+
close: "\uB2EB\uAE30",
|
|
3303
|
+
back: "\uB4A4\uB85C",
|
|
3304
|
+
importSuccess: "\uD1A0\uD070\uC744 \uC131\uACF5\uC801\uC73C\uB85C \uAC00\uC838\uC654\uC2B5\uB2C8\uB2E4",
|
|
3305
|
+
importFail: "\uD1A0\uD070 \uAC00\uC838\uC624\uAE30\uC5D0 \uC2E4\uD328\uD588\uC2B5\uB2C8\uB2E4"
|
|
3292
3306
|
};
|
|
3293
3307
|
|
|
3294
3308
|
// src/i18n/vi.json
|
|
@@ -3354,7 +3368,6 @@ var vi_default = {
|
|
|
3354
3368
|
copied: "\u0110\xE3 sao ch\xE9p",
|
|
3355
3369
|
receiveQrcode: "Nh\u1EADn b\u1EB1ng c\xE1ch qu\xE9t m\xE3 QR",
|
|
3356
3370
|
copyAddress: "Sao ch\xE9p \u0111\u1ECBa ch\u1EC9",
|
|
3357
|
-
importSuccess: "Nh\u1EADp th\xE0nh c\xF4ng",
|
|
3358
3371
|
tokenSmartContract: "H\u1EE3p \u0111\u1ED3ng th\xF4ng minh Token",
|
|
3359
3372
|
tokenSmartContractPlaceholder: "Nh\u1EADp h\u1EE3p \u0111\u1ED3ng th\xF4ng minh Token.",
|
|
3360
3373
|
tokenSymbol: "K\xFD hi\u1EC7u Token",
|
|
@@ -3363,7 +3376,13 @@ var vi_default = {
|
|
|
3363
3376
|
tokenDecimalsPlaceholder: "Nh\u1EADp s\u1ED1 th\u1EADp ph\xE2n.",
|
|
3364
3377
|
import: "Nh\u1EADp",
|
|
3365
3378
|
receive: "Nh\u1EADn",
|
|
3366
|
-
customizedToken: "Token t\xF9y ch\u1EC9nh"
|
|
3379
|
+
customizedToken: "Token t\xF9y ch\u1EC9nh",
|
|
3380
|
+
noMoreRecords: "Kh\xF4ng c\xF2n b\u1EA3n ghi n\xE0o \u1EDF \u0111\xE2y!",
|
|
3381
|
+
noRecords: "Kh\xF4ng c\xF3 b\u1EA3n ghi n\xE0o \u1EDF \u0111\xE2y!",
|
|
3382
|
+
close: "\u0110\xF3ng",
|
|
3383
|
+
back: "Quay l\u1EA1i",
|
|
3384
|
+
importSuccess: "Nh\u1EADp Token th\xE0nh c\xF4ng",
|
|
3385
|
+
importFail: "Kh\xF4ng th\u1EC3 nh\u1EADp Token"
|
|
3367
3386
|
};
|
|
3368
3387
|
|
|
3369
3388
|
// src/i18n/es.json
|
|
@@ -3429,7 +3448,6 @@ var es_default = {
|
|
|
3429
3448
|
copied: "Copiado",
|
|
3430
3449
|
receiveQrcode: "Recibir escaneando el c\xF3digo QR",
|
|
3431
3450
|
copyAddress: "Copiar direcci\xF3n",
|
|
3432
|
-
importSuccess: "Importado con \xE9xito",
|
|
3433
3451
|
tokenSmartContract: "Contrato inteligente del Token",
|
|
3434
3452
|
tokenSmartContractPlaceholder: "Ingrese el contrato inteligente del Token.",
|
|
3435
3453
|
tokenSymbol: "S\xEDmbolo del Token",
|
|
@@ -3438,7 +3456,13 @@ var es_default = {
|
|
|
3438
3456
|
tokenDecimalsPlaceholder: "Ingrese los decimales.",
|
|
3439
3457
|
import: "Importar",
|
|
3440
3458
|
receive: "Recibir",
|
|
3441
|
-
customizedToken: "Token personalizado"
|
|
3459
|
+
customizedToken: "Token personalizado",
|
|
3460
|
+
noMoreRecords: "\xA1No hay m\xE1s registros aqu\xED!",
|
|
3461
|
+
noRecords: "\xA1No hay registros aqu\xED!",
|
|
3462
|
+
close: "Cerrar",
|
|
3463
|
+
back: "Atr\xE1s",
|
|
3464
|
+
importSuccess: "Token importado con \xE9xito",
|
|
3465
|
+
importFail: "Error al importar el token"
|
|
3442
3466
|
};
|
|
3443
3467
|
|
|
3444
3468
|
// src/i18n/pt.json
|
|
@@ -3504,7 +3528,6 @@ var pt_default = {
|
|
|
3504
3528
|
copied: "Copiado",
|
|
3505
3529
|
receiveQrcode: "Receber escaneando o c\xF3digo QR",
|
|
3506
3530
|
copyAddress: "Copiar endere\xE7o",
|
|
3507
|
-
importSuccess: "Importado com sucesso",
|
|
3508
3531
|
tokenSmartContract: "Contrato inteligente do Token",
|
|
3509
3532
|
tokenSmartContractPlaceholder: "Digite o contrato inteligente do Token.",
|
|
3510
3533
|
tokenSymbol: "S\xEDmbolo do Token",
|
|
@@ -3513,7 +3536,13 @@ var pt_default = {
|
|
|
3513
3536
|
tokenDecimalsPlaceholder: "Digite os decimais.",
|
|
3514
3537
|
import: "Importar",
|
|
3515
3538
|
receive: "Receber",
|
|
3516
|
-
customizedToken: "Token personalizado"
|
|
3539
|
+
customizedToken: "Token personalizado",
|
|
3540
|
+
noMoreRecords: "N\xE3o h\xE1 mais registros aqui!",
|
|
3541
|
+
noRecords: "N\xE3o h\xE1 registros aqui!",
|
|
3542
|
+
close: "Fechar",
|
|
3543
|
+
back: "Voltar",
|
|
3544
|
+
importSuccess: "Token importado com sucesso",
|
|
3545
|
+
importFail: "Falha ao importar o token"
|
|
3517
3546
|
};
|
|
3518
3547
|
|
|
3519
3548
|
// src/i18n/index.ts
|
|
@@ -3530,7 +3559,7 @@ var messages = {
|
|
|
3530
3559
|
};
|
|
3531
3560
|
|
|
3532
3561
|
// src/MatchContext.tsx
|
|
3533
|
-
import { jsx as
|
|
3562
|
+
import { jsx as jsx12 } from "react/jsx-runtime";
|
|
3534
3563
|
var queryClient = new QueryClient();
|
|
3535
3564
|
var MatchContext = createContext3(void 0);
|
|
3536
3565
|
var MatchProvider = ({
|
|
@@ -3552,7 +3581,7 @@ var MatchProvider = ({
|
|
|
3552
3581
|
useWalletInit({
|
|
3553
3582
|
config: wallet
|
|
3554
3583
|
});
|
|
3555
|
-
return /* @__PURE__ */
|
|
3584
|
+
return /* @__PURE__ */ jsx12(IntlProvider, { locale: realLocale, messages: messages[realLocale], children: /* @__PURE__ */ jsx12(QueryClientProvider, { client: queryClient, children: /* @__PURE__ */ jsx12(
|
|
3556
3585
|
MatchContext.Provider,
|
|
3557
3586
|
{
|
|
3558
3587
|
value: {
|
|
@@ -3563,7 +3592,7 @@ var MatchProvider = ({
|
|
|
3563
3592
|
theme,
|
|
3564
3593
|
locale: realLocale
|
|
3565
3594
|
},
|
|
3566
|
-
children: /* @__PURE__ */
|
|
3595
|
+
children: /* @__PURE__ */ jsx12(context_default, { children })
|
|
3567
3596
|
}
|
|
3568
3597
|
) }) });
|
|
3569
3598
|
};
|
|
@@ -3597,7 +3626,7 @@ function useUserInfo() {
|
|
|
3597
3626
|
const { open: BTCOpen } = useBTCModalStore();
|
|
3598
3627
|
const { open: CEXBindOpen } = useCEXBindModalStore();
|
|
3599
3628
|
const walletModalStore = useWalletModalStore();
|
|
3600
|
-
const isLogin =
|
|
3629
|
+
const isLogin = useMemo7(() => !!token && !!overview, [token, overview]);
|
|
3601
3630
|
const logout = async () => {
|
|
3602
3631
|
try {
|
|
3603
3632
|
await toLogoutApi();
|
|
@@ -3829,18 +3858,18 @@ function useUserInfo() {
|
|
|
3829
3858
|
}
|
|
3830
3859
|
|
|
3831
3860
|
// src/components/EmailModal/StepVerify.tsx
|
|
3832
|
-
import { useEffect as
|
|
3833
|
-
import { FormattedMessage as
|
|
3834
|
-
import { jsx as
|
|
3861
|
+
import { useEffect as useEffect14, useMemo as useMemo8, useRef as useRef4, useState as useState13 } from "react";
|
|
3862
|
+
import { FormattedMessage as FormattedMessage5, useIntl as useIntl5 } from "react-intl";
|
|
3863
|
+
import { jsx as jsx13, jsxs as jsxs9 } from "react/jsx-runtime";
|
|
3835
3864
|
function StepVerify(props) {
|
|
3836
|
-
const intl =
|
|
3865
|
+
const intl = useIntl5();
|
|
3837
3866
|
const { getLoginEmailCode, loginByEmail } = useUserInfo();
|
|
3838
|
-
const [error, setError] =
|
|
3839
|
-
const [code, setCode] =
|
|
3840
|
-
const [sending, setSending] =
|
|
3841
|
-
const [submitting, setSubmitting] =
|
|
3867
|
+
const [error, setError] = useState13("");
|
|
3868
|
+
const [code, setCode] = useState13("");
|
|
3869
|
+
const [sending, setSending] = useState13(false);
|
|
3870
|
+
const [submitting, setSubmitting] = useState13(false);
|
|
3842
3871
|
const sendTimeRef = useRef4(0);
|
|
3843
|
-
const [sendBtnText, setSendBtnText] =
|
|
3872
|
+
const [sendBtnText, setSendBtnText] = useState13(intl.formatMessage({
|
|
3844
3873
|
id: "send"
|
|
3845
3874
|
}));
|
|
3846
3875
|
const intervalTime = EMAIL_INTERVAL;
|
|
@@ -3876,7 +3905,7 @@ function StepVerify(props) {
|
|
|
3876
3905
|
setSending(false);
|
|
3877
3906
|
}
|
|
3878
3907
|
};
|
|
3879
|
-
|
|
3908
|
+
useEffect14(() => {
|
|
3880
3909
|
onSend();
|
|
3881
3910
|
return () => {
|
|
3882
3911
|
if (intervalRef.current) {
|
|
@@ -3884,7 +3913,7 @@ function StepVerify(props) {
|
|
|
3884
3913
|
}
|
|
3885
3914
|
};
|
|
3886
3915
|
}, []);
|
|
3887
|
-
const canContinue =
|
|
3916
|
+
const canContinue = useMemo8(() => {
|
|
3888
3917
|
return code.length === codeLength;
|
|
3889
3918
|
}, [code]);
|
|
3890
3919
|
const onContinue = async () => {
|
|
@@ -3908,17 +3937,17 @@ function StepVerify(props) {
|
|
|
3908
3937
|
setSubmitting(false);
|
|
3909
3938
|
}
|
|
3910
3939
|
};
|
|
3911
|
-
return /* @__PURE__ */
|
|
3912
|
-
/* @__PURE__ */
|
|
3913
|
-
/* @__PURE__ */
|
|
3914
|
-
/* @__PURE__ */
|
|
3915
|
-
/* @__PURE__ */
|
|
3916
|
-
/* @__PURE__ */
|
|
3940
|
+
return /* @__PURE__ */ jsxs9("div", { className: "matchid-email-verify-box", children: [
|
|
3941
|
+
/* @__PURE__ */ jsxs9("div", { className: "matchid-email-verify-header", children: [
|
|
3942
|
+
/* @__PURE__ */ jsx13("div", { className: "matchid-email-verify-header-icon", children: /* @__PURE__ */ jsx13(EmailLineIcon, { size: isDownMd ? 19 : 24 }) }),
|
|
3943
|
+
/* @__PURE__ */ jsxs9("div", { className: "matchid-email-verify-header-content", children: [
|
|
3944
|
+
/* @__PURE__ */ jsx13("div", { className: "matchid-email-verify-header-value", children: props.email }),
|
|
3945
|
+
/* @__PURE__ */ jsx13("div", { className: "matchid-email-verify-header-tips", children: /* @__PURE__ */ jsx13(FormattedMessage5, { id: "sendEmailTips" }) })
|
|
3917
3946
|
] })
|
|
3918
3947
|
] }),
|
|
3919
|
-
/* @__PURE__ */
|
|
3948
|
+
/* @__PURE__ */ jsx13(Field, { label: intl.formatMessage({
|
|
3920
3949
|
id: "verificationCode"
|
|
3921
|
-
}), error, children: /* @__PURE__ */
|
|
3950
|
+
}), error, children: /* @__PURE__ */ jsx13(
|
|
3922
3951
|
Input,
|
|
3923
3952
|
{
|
|
3924
3953
|
placeholder: intl.formatMessage({
|
|
@@ -3928,7 +3957,7 @@ function StepVerify(props) {
|
|
|
3928
3957
|
maxLength: codeLength,
|
|
3929
3958
|
onChange: (e) => setCode(e.target.value),
|
|
3930
3959
|
value: code,
|
|
3931
|
-
after: /* @__PURE__ */
|
|
3960
|
+
after: /* @__PURE__ */ jsx13(
|
|
3932
3961
|
Button,
|
|
3933
3962
|
{
|
|
3934
3963
|
highlight: true,
|
|
@@ -3947,13 +3976,13 @@ function StepVerify(props) {
|
|
|
3947
3976
|
)
|
|
3948
3977
|
}
|
|
3949
3978
|
) }),
|
|
3950
|
-
/* @__PURE__ */
|
|
3979
|
+
/* @__PURE__ */ jsx13(Button, { disabled: !canContinue, highlight: true, block: true, size: "lg", onClick: onContinue, children: /* @__PURE__ */ jsx13(FormattedMessage5, { id: "continue" }) })
|
|
3951
3980
|
] });
|
|
3952
3981
|
}
|
|
3953
3982
|
|
|
3954
3983
|
// src/components/EmailModal/index.tsx
|
|
3955
|
-
import { useIntl as
|
|
3956
|
-
import { jsx as
|
|
3984
|
+
import { useIntl as useIntl6 } from "react-intl";
|
|
3985
|
+
import { jsx as jsx14 } from "react/jsx-runtime";
|
|
3957
3986
|
function EmailModal({
|
|
3958
3987
|
isOpen = false,
|
|
3959
3988
|
width = 480,
|
|
@@ -3961,16 +3990,16 @@ function EmailModal({
|
|
|
3961
3990
|
onBack,
|
|
3962
3991
|
onLogin
|
|
3963
3992
|
}) {
|
|
3964
|
-
const [step, setStep] =
|
|
3965
|
-
const [emailVal, setEmailVal] =
|
|
3966
|
-
const intl =
|
|
3967
|
-
|
|
3993
|
+
const [step, setStep] = useState14("input");
|
|
3994
|
+
const [emailVal, setEmailVal] = useState14("");
|
|
3995
|
+
const intl = useIntl6();
|
|
3996
|
+
useEffect15(() => {
|
|
3968
3997
|
if (!isOpen) {
|
|
3969
3998
|
setStep("input");
|
|
3970
3999
|
setEmailVal("");
|
|
3971
4000
|
}
|
|
3972
4001
|
}, [isOpen]);
|
|
3973
|
-
return /* @__PURE__ */
|
|
4002
|
+
return /* @__PURE__ */ jsx14(
|
|
3974
4003
|
ModalWithHeader,
|
|
3975
4004
|
{
|
|
3976
4005
|
isOpen,
|
|
@@ -3980,17 +4009,17 @@ function EmailModal({
|
|
|
3980
4009
|
id: "email"
|
|
3981
4010
|
}),
|
|
3982
4011
|
onBack: step == "verify" ? () => setStep("input") : onBack,
|
|
3983
|
-
children: step === "input" ? /* @__PURE__ */
|
|
4012
|
+
children: step === "input" ? /* @__PURE__ */ jsx14(StepEmail, { email: emailVal, onContinue: (email) => {
|
|
3984
4013
|
setEmailVal(email);
|
|
3985
4014
|
setStep("verify");
|
|
3986
|
-
} }) : /* @__PURE__ */
|
|
4015
|
+
} }) : /* @__PURE__ */ jsx14(StepVerify, { email: emailVal, onSuccess: onLogin })
|
|
3987
4016
|
}
|
|
3988
4017
|
);
|
|
3989
4018
|
}
|
|
3990
4019
|
|
|
3991
4020
|
// src/components/LoginBox/index.tsx
|
|
3992
|
-
import { useMemo as
|
|
3993
|
-
import { FormattedMessage as
|
|
4021
|
+
import { useMemo as useMemo9, useState as useState15 } from "react";
|
|
4022
|
+
import { FormattedMessage as FormattedMessage6, useIntl as useIntl7 } from "react-intl";
|
|
3994
4023
|
|
|
3995
4024
|
// src/hooks/useAppConfig.ts
|
|
3996
4025
|
import { useQuery as useQuery5 } from "@tanstack/react-query";
|
|
@@ -4013,7 +4042,7 @@ function useAppConfig() {
|
|
|
4013
4042
|
}
|
|
4014
4043
|
|
|
4015
4044
|
// src/components/LoginBox/index.tsx
|
|
4016
|
-
import { Fragment as Fragment2, jsx as
|
|
4045
|
+
import { Fragment as Fragment2, jsx as jsx15, jsxs as jsxs10 } from "react/jsx-runtime";
|
|
4017
4046
|
var RecommendItem = ({
|
|
4018
4047
|
icon,
|
|
4019
4048
|
name,
|
|
@@ -4022,20 +4051,20 @@ var RecommendItem = ({
|
|
|
4022
4051
|
children,
|
|
4023
4052
|
footer
|
|
4024
4053
|
}) => {
|
|
4025
|
-
return /* @__PURE__ */
|
|
4026
|
-
/* @__PURE__ */
|
|
4027
|
-
/* @__PURE__ */
|
|
4028
|
-
/* @__PURE__ */
|
|
4029
|
-
/* @__PURE__ */
|
|
4054
|
+
return /* @__PURE__ */ jsxs10("div", { className: "matchid-login-recommend-method", children: [
|
|
4055
|
+
/* @__PURE__ */ jsxs10("div", { className: "matchid-login-recommend-method-item", onClick, children: [
|
|
4056
|
+
/* @__PURE__ */ jsxs10("div", { className: "matchid-login-recommend-method-content", children: [
|
|
4057
|
+
/* @__PURE__ */ jsx15("div", { className: "matchid-login-recommend-method-icon", children: icon }),
|
|
4058
|
+
/* @__PURE__ */ jsx15("span", { className: "matchid-login-recommend-method-name", children: name })
|
|
4030
4059
|
] }),
|
|
4031
|
-
footer ? footer : children ? /* @__PURE__ */
|
|
4060
|
+
footer ? footer : children ? /* @__PURE__ */ jsx15(
|
|
4032
4061
|
ArrowDownIcon,
|
|
4033
4062
|
{
|
|
4034
4063
|
className: `matchid-login-recommend-method-arrow ${showChildren ? "matchid-login-recommend-method-arrow-active" : ""}`,
|
|
4035
4064
|
size: 20,
|
|
4036
4065
|
color: "var(--matchid-arrow-color)"
|
|
4037
4066
|
}
|
|
4038
|
-
) : /* @__PURE__ */
|
|
4067
|
+
) : /* @__PURE__ */ jsx15(
|
|
4039
4068
|
ArrowRightIcon,
|
|
4040
4069
|
{
|
|
4041
4070
|
className: "matchid-login-recommend-method-arrow",
|
|
@@ -4044,7 +4073,7 @@ var RecommendItem = ({
|
|
|
4044
4073
|
}
|
|
4045
4074
|
)
|
|
4046
4075
|
] }),
|
|
4047
|
-
children && /* @__PURE__ */
|
|
4076
|
+
children && /* @__PURE__ */ jsx15(
|
|
4048
4077
|
"div",
|
|
4049
4078
|
{
|
|
4050
4079
|
className: `matchid-login-recommend-method-popover ${showChildren ? "matchid-login-recommend-method-popover-active" : ""}`,
|
|
@@ -4060,7 +4089,7 @@ function LoginBox({
|
|
|
4060
4089
|
inModal = false
|
|
4061
4090
|
}) {
|
|
4062
4091
|
const config = useAppConfig();
|
|
4063
|
-
const methodConfig =
|
|
4092
|
+
const methodConfig = useMemo9(() => {
|
|
4064
4093
|
if (recommendMethods || methods || walletMethods) {
|
|
4065
4094
|
return {
|
|
4066
4095
|
recommendMethods: recommendMethods ? recommendMethods : walletMethods ? ["wallet"] : [],
|
|
@@ -4102,82 +4131,82 @@ function LoginBox({
|
|
|
4102
4131
|
walletMethods: walletMethodList
|
|
4103
4132
|
};
|
|
4104
4133
|
}, [config.platform, recommendMethods, methods, walletMethods]);
|
|
4105
|
-
const [emailOpen, setEmailOpen] =
|
|
4134
|
+
const [emailOpen, setEmailOpen] = useState15(false);
|
|
4106
4135
|
const { login } = useUserInfo();
|
|
4107
|
-
const [showWallet, setShowWallet] =
|
|
4108
|
-
const intl =
|
|
4136
|
+
const [showWallet, setShowWallet] = useState15(false);
|
|
4137
|
+
const intl = useIntl7();
|
|
4109
4138
|
const isDownMd = useDownMd();
|
|
4110
4139
|
const methodMap = {
|
|
4111
4140
|
wallet: {
|
|
4112
|
-
icon: /* @__PURE__ */
|
|
4141
|
+
icon: /* @__PURE__ */ jsx15(WalletIcon, { size: isDownMd ? 36 : 40 }),
|
|
4113
4142
|
name: intl.formatMessage({ id: "wallet" }),
|
|
4114
4143
|
onClick: () => setShowWallet(!showWallet),
|
|
4115
4144
|
type: "wallet"
|
|
4116
4145
|
},
|
|
4117
4146
|
email: {
|
|
4118
|
-
icon: /* @__PURE__ */
|
|
4147
|
+
icon: /* @__PURE__ */ jsx15(EmailIcon, { size: isDownMd ? 36 : 40 }),
|
|
4119
4148
|
name: intl.formatMessage({ id: "email" }),
|
|
4120
4149
|
onClick: () => {
|
|
4121
4150
|
setEmailOpen(true);
|
|
4122
4151
|
}
|
|
4123
4152
|
},
|
|
4124
4153
|
google: {
|
|
4125
|
-
icon: /* @__PURE__ */
|
|
4154
|
+
icon: /* @__PURE__ */ jsx15(GoogleIcon, { size: isDownMd ? 36 : 40 }),
|
|
4126
4155
|
name: "Google",
|
|
4127
4156
|
onClick: () => login("google")
|
|
4128
4157
|
},
|
|
4129
4158
|
twitter: {
|
|
4130
|
-
icon: /* @__PURE__ */
|
|
4159
|
+
icon: /* @__PURE__ */ jsx15(XIcon, { size: isDownMd ? 36 : 40 }),
|
|
4131
4160
|
name: "X",
|
|
4132
4161
|
onClick: () => login("twitter")
|
|
4133
4162
|
},
|
|
4134
4163
|
telegram: {
|
|
4135
|
-
icon: /* @__PURE__ */
|
|
4164
|
+
icon: /* @__PURE__ */ jsx15(TelegramIcon, { size: isDownMd ? 36 : 40 }),
|
|
4136
4165
|
name: "Telegram",
|
|
4137
4166
|
onClick: () => login("telegram")
|
|
4138
4167
|
},
|
|
4139
4168
|
github: {
|
|
4140
|
-
icon: /* @__PURE__ */
|
|
4169
|
+
icon: /* @__PURE__ */ jsx15(GithubIcon, { size: isDownMd ? 36 : 40 }),
|
|
4141
4170
|
name: "Github",
|
|
4142
4171
|
onClick: () => login("github")
|
|
4143
4172
|
},
|
|
4144
4173
|
discord: {
|
|
4145
|
-
icon: /* @__PURE__ */
|
|
4174
|
+
icon: /* @__PURE__ */ jsx15(DiscordIcon, { size: isDownMd ? 36 : 40 }),
|
|
4146
4175
|
name: "Discord",
|
|
4147
4176
|
onClick: () => login("discord")
|
|
4148
4177
|
},
|
|
4149
4178
|
linkedin: {
|
|
4150
|
-
icon: /* @__PURE__ */
|
|
4179
|
+
icon: /* @__PURE__ */ jsx15(LinkedinIcon, { size: isDownMd ? 36 : 40 }),
|
|
4151
4180
|
name: "LinkedIn",
|
|
4152
4181
|
onClick: () => login("linkedin")
|
|
4153
4182
|
},
|
|
4154
4183
|
facebook: {
|
|
4155
|
-
icon: /* @__PURE__ */
|
|
4184
|
+
icon: /* @__PURE__ */ jsx15(FacebookIcon, { size: isDownMd ? 36 : 40 }),
|
|
4156
4185
|
name: "Facebook",
|
|
4157
4186
|
onClick: () => login("facebook")
|
|
4158
4187
|
},
|
|
4159
4188
|
youtube: {
|
|
4160
|
-
icon: /* @__PURE__ */
|
|
4189
|
+
icon: /* @__PURE__ */ jsx15(YoutubeIcon, { size: isDownMd ? 36 : 40 }),
|
|
4161
4190
|
name: "Youtube",
|
|
4162
4191
|
onClick: () => login("youtube")
|
|
4163
4192
|
}
|
|
4164
4193
|
};
|
|
4165
4194
|
const { walletMap } = useWalletConfig();
|
|
4166
|
-
return /* @__PURE__ */
|
|
4167
|
-
(!inModal || !emailOpen) && /* @__PURE__ */
|
|
4168
|
-
/* @__PURE__ */
|
|
4169
|
-
return /* @__PURE__ */
|
|
4195
|
+
return /* @__PURE__ */ jsxs10(Fragment2, { children: [
|
|
4196
|
+
(!inModal || !emailOpen) && /* @__PURE__ */ jsxs10("div", { className: "matchid-login-box", children: [
|
|
4197
|
+
/* @__PURE__ */ jsx15("div", { className: "matchid-login-recommend-list", children: methodConfig.recommendMethods.map((m) => {
|
|
4198
|
+
return /* @__PURE__ */ jsx15(
|
|
4170
4199
|
RecommendItem,
|
|
4171
4200
|
{
|
|
4172
4201
|
icon: methodMap[m]?.icon,
|
|
4173
4202
|
name: methodMap[m]?.name,
|
|
4174
4203
|
onClick: methodMap[m]?.onClick,
|
|
4175
4204
|
showChildren: m == "wallet" && showWallet,
|
|
4176
|
-
children: m == "wallet" && /* @__PURE__ */
|
|
4177
|
-
/* @__PURE__ */
|
|
4178
|
-
/* @__PURE__ */
|
|
4205
|
+
children: m == "wallet" && /* @__PURE__ */ jsxs10(Fragment2, { children: [
|
|
4206
|
+
/* @__PURE__ */ jsx15("div", { className: "matchid-login-recommend-wallet-divider" }),
|
|
4207
|
+
/* @__PURE__ */ jsx15("div", { className: "matchid-login-recommend-wallet-list", children: methodConfig.walletMethods.map((n) => {
|
|
4179
4208
|
const m2 = walletMap[n];
|
|
4180
|
-
return /* @__PURE__ */
|
|
4209
|
+
return /* @__PURE__ */ jsxs10(
|
|
4181
4210
|
"div",
|
|
4182
4211
|
{
|
|
4183
4212
|
className: "matchid-login-recommend-wallet-item",
|
|
@@ -4185,16 +4214,16 @@ function LoginBox({
|
|
|
4185
4214
|
login(m2.method);
|
|
4186
4215
|
},
|
|
4187
4216
|
children: [
|
|
4188
|
-
/* @__PURE__ */
|
|
4189
|
-
/* @__PURE__ */
|
|
4190
|
-
/* @__PURE__ */
|
|
4217
|
+
/* @__PURE__ */ jsxs10("div", { className: "matchid-login-recommend-wallet-item-content", children: [
|
|
4218
|
+
/* @__PURE__ */ jsx15("div", { className: "matchid-login-recommend-wallet-item-icon", children: m2.icon }),
|
|
4219
|
+
/* @__PURE__ */ jsx15(
|
|
4191
4220
|
"div",
|
|
4192
4221
|
{
|
|
4193
4222
|
className: "matchid-login-recommend-wallet-item-hover-icon",
|
|
4194
4223
|
children: m2.activeIcon
|
|
4195
4224
|
}
|
|
4196
4225
|
),
|
|
4197
|
-
/* @__PURE__ */
|
|
4226
|
+
/* @__PURE__ */ jsx15(
|
|
4198
4227
|
"span",
|
|
4199
4228
|
{
|
|
4200
4229
|
className: "matchid-login-recommend-wallet-item-name",
|
|
@@ -4202,7 +4231,7 @@ function LoginBox({
|
|
|
4202
4231
|
}
|
|
4203
4232
|
)
|
|
4204
4233
|
] }),
|
|
4205
|
-
/* @__PURE__ */
|
|
4234
|
+
/* @__PURE__ */ jsx15(
|
|
4206
4235
|
ArrowRightIcon,
|
|
4207
4236
|
{
|
|
4208
4237
|
className: "matchid-login-recommend-wallet-item-arrow",
|
|
@@ -4220,10 +4249,10 @@ function LoginBox({
|
|
|
4220
4249
|
m
|
|
4221
4250
|
);
|
|
4222
4251
|
}) }),
|
|
4223
|
-
methodConfig.methods.length > 0 && /* @__PURE__ */
|
|
4224
|
-
/* @__PURE__ */
|
|
4225
|
-
/* @__PURE__ */
|
|
4226
|
-
return /* @__PURE__ */
|
|
4252
|
+
methodConfig.methods.length > 0 && /* @__PURE__ */ jsxs10("div", { className: "matchid-login-other", children: [
|
|
4253
|
+
/* @__PURE__ */ jsx15("div", { className: "matchid-login-other-text", children: /* @__PURE__ */ jsx15(FormattedMessage6, { id: "otherLoginMethods" }) }),
|
|
4254
|
+
/* @__PURE__ */ jsx15("div", { className: "matchid-login-method-box", children: methodConfig.methods.map((m) => {
|
|
4255
|
+
return /* @__PURE__ */ jsx15(
|
|
4227
4256
|
"div",
|
|
4228
4257
|
{
|
|
4229
4258
|
className: "matchid-login-method-item",
|
|
@@ -4236,7 +4265,7 @@ function LoginBox({
|
|
|
4236
4265
|
}) })
|
|
4237
4266
|
] })
|
|
4238
4267
|
] }),
|
|
4239
|
-
/* @__PURE__ */
|
|
4268
|
+
/* @__PURE__ */ jsx15(
|
|
4240
4269
|
EmailModal,
|
|
4241
4270
|
{
|
|
4242
4271
|
isOpen: emailOpen,
|
|
@@ -4252,56 +4281,56 @@ function LoginBox({
|
|
|
4252
4281
|
}
|
|
4253
4282
|
|
|
4254
4283
|
// src/components/LoginButton/index.tsx
|
|
4255
|
-
import { useState as
|
|
4284
|
+
import { useState as useState17 } from "react";
|
|
4256
4285
|
|
|
4257
4286
|
// src/components/LoginPanel/index.tsx
|
|
4258
|
-
import { FormattedMessage as
|
|
4259
|
-
import { jsx as
|
|
4287
|
+
import { FormattedMessage as FormattedMessage7 } from "react-intl";
|
|
4288
|
+
import { jsx as jsx16, jsxs as jsxs11 } from "react/jsx-runtime";
|
|
4260
4289
|
function LoginPanel({
|
|
4261
4290
|
header,
|
|
4262
4291
|
onClose,
|
|
4263
4292
|
...props
|
|
4264
4293
|
}) {
|
|
4265
4294
|
const isDownMd = useDownMd();
|
|
4266
|
-
return /* @__PURE__ */
|
|
4267
|
-
header ? header : /* @__PURE__ */
|
|
4268
|
-
/* @__PURE__ */
|
|
4269
|
-
/* @__PURE__ */
|
|
4270
|
-
/* @__PURE__ */
|
|
4295
|
+
return /* @__PURE__ */ jsxs11("div", { className: "matchid-login-panel", children: [
|
|
4296
|
+
header ? header : /* @__PURE__ */ jsxs11("div", { className: "matchid-login-panel-header", children: [
|
|
4297
|
+
/* @__PURE__ */ jsxs11("div", { className: "matchid-login-panel-header-content", children: [
|
|
4298
|
+
/* @__PURE__ */ jsx16("div", { className: "matchid-login-panel-header-title", children: /* @__PURE__ */ jsx16(FormattedMessage7, { id: "loginTitle" }) }),
|
|
4299
|
+
/* @__PURE__ */ jsx16("div", { className: "matchid-login-panel-header-subtilte", children: /* @__PURE__ */ jsx16(FormattedMessage7, { id: "loginTips" }) })
|
|
4271
4300
|
] }),
|
|
4272
|
-
onClose && /* @__PURE__ */
|
|
4301
|
+
onClose && /* @__PURE__ */ jsx16("div", { className: "matchid-login-panel-header-close", onClick: onClose, children: /* @__PURE__ */ jsx16(CloseRoundIcon, { size: isDownMd ? 24 : 30 }) })
|
|
4273
4302
|
] }),
|
|
4274
|
-
/* @__PURE__ */
|
|
4275
|
-
/* @__PURE__ */
|
|
4303
|
+
/* @__PURE__ */ jsx16("div", { className: "matchid-login-panel-divide" }),
|
|
4304
|
+
/* @__PURE__ */ jsx16("div", { className: "matchid-login-panel-box", children: /* @__PURE__ */ jsx16(LoginBox, { ...props }) })
|
|
4276
4305
|
] });
|
|
4277
4306
|
}
|
|
4278
4307
|
|
|
4279
4308
|
// src/components/LoginModal/index.tsx
|
|
4280
|
-
import { jsx as
|
|
4309
|
+
import { jsx as jsx17 } from "react/jsx-runtime";
|
|
4281
4310
|
function LoginModal({
|
|
4282
4311
|
isOpen = false,
|
|
4283
4312
|
width = 480,
|
|
4284
4313
|
...props
|
|
4285
4314
|
}) {
|
|
4286
4315
|
const { isLogin } = useUserInfo();
|
|
4287
|
-
return /* @__PURE__ */
|
|
4316
|
+
return /* @__PURE__ */ jsx17(
|
|
4288
4317
|
Modal,
|
|
4289
4318
|
{
|
|
4290
4319
|
isOpen: isOpen && !isLogin,
|
|
4291
4320
|
width,
|
|
4292
|
-
children: /* @__PURE__ */
|
|
4321
|
+
children: /* @__PURE__ */ jsx17(LoginPanel, { ...props, inModal: true })
|
|
4293
4322
|
}
|
|
4294
4323
|
);
|
|
4295
4324
|
}
|
|
4296
4325
|
|
|
4297
4326
|
// src/components/UserPopover/index.tsx
|
|
4298
|
-
import { useState as
|
|
4327
|
+
import { useState as useState16 } from "react";
|
|
4299
4328
|
|
|
4300
4329
|
// src/assets/icon/ProfileIcon.tsx
|
|
4301
|
-
import { jsx as
|
|
4330
|
+
import { jsx as jsx18, jsxs as jsxs12 } from "react/jsx-runtime";
|
|
4302
4331
|
function ProfileIcon({ size = 24, color = "black", ...props }) {
|
|
4303
|
-
return /* @__PURE__ */
|
|
4304
|
-
/* @__PURE__ */
|
|
4332
|
+
return /* @__PURE__ */ jsxs12("svg", { width: size, height: size, viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [
|
|
4333
|
+
/* @__PURE__ */ jsx18(
|
|
4305
4334
|
"path",
|
|
4306
4335
|
{
|
|
4307
4336
|
fillRule: "evenodd",
|
|
@@ -4310,7 +4339,7 @@ function ProfileIcon({ size = 24, color = "black", ...props }) {
|
|
|
4310
4339
|
fill: color
|
|
4311
4340
|
}
|
|
4312
4341
|
),
|
|
4313
|
-
/* @__PURE__ */
|
|
4342
|
+
/* @__PURE__ */ jsx18(
|
|
4314
4343
|
"path",
|
|
4315
4344
|
{
|
|
4316
4345
|
fillRule: "evenodd",
|
|
@@ -4323,11 +4352,11 @@ function ProfileIcon({ size = 24, color = "black", ...props }) {
|
|
|
4323
4352
|
}
|
|
4324
4353
|
|
|
4325
4354
|
// src/components/UserPopover/index.tsx
|
|
4326
|
-
import { FormattedMessage as
|
|
4327
|
-
import { jsx as
|
|
4355
|
+
import { FormattedMessage as FormattedMessage8, useIntl as useIntl8 } from "react-intl";
|
|
4356
|
+
import { jsx as jsx19, jsxs as jsxs13 } from "react/jsx-runtime";
|
|
4328
4357
|
function UserContent() {
|
|
4329
4358
|
const { logout, address, username } = useUserInfo();
|
|
4330
|
-
const [logouting, setLogouting] =
|
|
4359
|
+
const [logouting, setLogouting] = useState16(false);
|
|
4331
4360
|
const onLogout = async () => {
|
|
4332
4361
|
if (logouting) return;
|
|
4333
4362
|
try {
|
|
@@ -4345,34 +4374,34 @@ function UserContent() {
|
|
|
4345
4374
|
rightIcon,
|
|
4346
4375
|
onClick
|
|
4347
4376
|
}) => {
|
|
4348
|
-
return /* @__PURE__ */
|
|
4349
|
-
/* @__PURE__ */
|
|
4377
|
+
return /* @__PURE__ */ jsxs13("div", { className: "matchid-user-popover-item", onClick, children: [
|
|
4378
|
+
/* @__PURE__ */ jsxs13("div", { className: `matchid-user-popover-item-content`, children: [
|
|
4350
4379
|
icon,
|
|
4351
|
-
/* @__PURE__ */
|
|
4380
|
+
/* @__PURE__ */ jsx19("div", { className: "matchid-user-popover-item-text", children })
|
|
4352
4381
|
] }),
|
|
4353
4382
|
rightIcon
|
|
4354
4383
|
] });
|
|
4355
4384
|
};
|
|
4356
4385
|
const UserDivider = () => {
|
|
4357
|
-
return /* @__PURE__ */
|
|
4386
|
+
return /* @__PURE__ */ jsx19("div", { className: `matchid-user-popover-divider` });
|
|
4358
4387
|
};
|
|
4359
|
-
const [usernameOpen, setUsernameOpen] =
|
|
4388
|
+
const [usernameOpen, setUsernameOpen] = useState16(false);
|
|
4360
4389
|
const [copied, setCopied] = useCopyClipboard();
|
|
4361
|
-
const intl =
|
|
4362
|
-
return /* @__PURE__ */
|
|
4363
|
-
/* @__PURE__ */
|
|
4364
|
-
/* @__PURE__ */
|
|
4390
|
+
const intl = useIntl8();
|
|
4391
|
+
return /* @__PURE__ */ jsxs13("div", { className: "matchid-user-popover-content", children: [
|
|
4392
|
+
/* @__PURE__ */ jsxs13("div", { className: "matchid-user-popover-list", children: [
|
|
4393
|
+
/* @__PURE__ */ jsx19(UserItem, { onClick: () => {
|
|
4365
4394
|
setCopied(address);
|
|
4366
|
-
}, icon: copied ? /* @__PURE__ */
|
|
4367
|
-
/* @__PURE__ */
|
|
4368
|
-
/* @__PURE__ */
|
|
4395
|
+
}, icon: copied ? /* @__PURE__ */ jsx19(CheckIcon, { size: 20, color: "#0ecb81" }) : /* @__PURE__ */ jsx19(CopyIcon, { size: 20, color: "var(--icon-color)" }), rightIcon: /* @__PURE__ */ jsx19(CheckIcon, { size: 20, color: "var(--icon-color)" }), children: truncateAddress(address) }),
|
|
4396
|
+
/* @__PURE__ */ jsx19(UserDivider, {}),
|
|
4397
|
+
/* @__PURE__ */ jsx19(UserItem, { onClick: () => {
|
|
4369
4398
|
setUsernameOpen(true);
|
|
4370
|
-
}, icon: /* @__PURE__ */
|
|
4399
|
+
}, icon: /* @__PURE__ */ jsx19(ProfileIcon, { size: 20, color: "var(--icon-color)" }), rightIcon: /* @__PURE__ */ jsx19(ArrowRightIcon, { size: 20, color: "var(--icon-color)" }), children: username || intl.formatMessage({
|
|
4371
4400
|
id: "setUsername"
|
|
4372
4401
|
}) })
|
|
4373
4402
|
] }),
|
|
4374
|
-
/* @__PURE__ */
|
|
4375
|
-
/* @__PURE__ */
|
|
4403
|
+
/* @__PURE__ */ jsx19(Button, { onClick: onLogout, loading: logouting, children: /* @__PURE__ */ jsx19(FormattedMessage8, { id: "disconnect" }) }),
|
|
4404
|
+
/* @__PURE__ */ jsx19(UsernameModal, { isOpen: usernameOpen, onClose: () => {
|
|
4376
4405
|
setUsernameOpen(false);
|
|
4377
4406
|
}, onSuccess: () => {
|
|
4378
4407
|
setUsernameOpen(false);
|
|
@@ -4383,12 +4412,12 @@ function UserPopover({
|
|
|
4383
4412
|
children,
|
|
4384
4413
|
...props
|
|
4385
4414
|
}) {
|
|
4386
|
-
return /* @__PURE__ */
|
|
4415
|
+
return /* @__PURE__ */ jsx19(Popover, { ...props, content: /* @__PURE__ */ jsx19(UserContent, {}), children });
|
|
4387
4416
|
}
|
|
4388
4417
|
|
|
4389
4418
|
// src/components/LoginButton/index.tsx
|
|
4390
|
-
import { FormattedMessage as
|
|
4391
|
-
import { Fragment as Fragment3, jsx as
|
|
4419
|
+
import { FormattedMessage as FormattedMessage9, useIntl as useIntl9 } from "react-intl";
|
|
4420
|
+
import { Fragment as Fragment3, jsx as jsx20, jsxs as jsxs14 } from "react/jsx-runtime";
|
|
4392
4421
|
function LoginButton({
|
|
4393
4422
|
loginRender,
|
|
4394
4423
|
methods,
|
|
@@ -4400,12 +4429,12 @@ function LoginButton({
|
|
|
4400
4429
|
walletMethods,
|
|
4401
4430
|
...props
|
|
4402
4431
|
}) {
|
|
4403
|
-
const intl =
|
|
4432
|
+
const intl = useIntl9();
|
|
4404
4433
|
const { isLogin, username } = useUserInfo();
|
|
4405
|
-
const [loginOpen, setLoginOpen] =
|
|
4434
|
+
const [loginOpen, setLoginOpen] = useState17(false);
|
|
4406
4435
|
if (!isLogin) {
|
|
4407
|
-
return /* @__PURE__ */
|
|
4408
|
-
/* @__PURE__ */
|
|
4436
|
+
return /* @__PURE__ */ jsxs14(Fragment3, { children: [
|
|
4437
|
+
/* @__PURE__ */ jsx20(
|
|
4409
4438
|
LoginModal,
|
|
4410
4439
|
{
|
|
4411
4440
|
methods,
|
|
@@ -4415,32 +4444,32 @@ function LoginButton({
|
|
|
4415
4444
|
onClose: () => setLoginOpen(false)
|
|
4416
4445
|
}
|
|
4417
4446
|
),
|
|
4418
|
-
/* @__PURE__ */
|
|
4419
|
-
/* @__PURE__ */
|
|
4420
|
-
/* @__PURE__ */
|
|
4447
|
+
/* @__PURE__ */ jsxs14(Button, { className: "matchid-unlogin-btn", ...props, highlight: true, onClick: () => setLoginOpen(true), children: [
|
|
4448
|
+
/* @__PURE__ */ jsx20(UnLoginIcon_default, {}),
|
|
4449
|
+
/* @__PURE__ */ jsx20("span", { children: /* @__PURE__ */ jsx20(FormattedMessage9, { id: "login" }) })
|
|
4421
4450
|
] })
|
|
4422
4451
|
] });
|
|
4423
4452
|
}
|
|
4424
|
-
return loginRender ? /* @__PURE__ */
|
|
4425
|
-
/* @__PURE__ */
|
|
4426
|
-
/* @__PURE__ */
|
|
4453
|
+
return loginRender ? /* @__PURE__ */ jsx20(Fragment3, { children: loginRender }) : /* @__PURE__ */ jsx20(UserPopover, { position: popoverPosition, type: popoverType, gap: popoverGap, children: /* @__PURE__ */ jsxs14(Button, { onClick: onLoginClick, className: "matchid-login-btn", ...props, children: [
|
|
4454
|
+
/* @__PURE__ */ jsx20(LoginIcon_default, {}),
|
|
4455
|
+
/* @__PURE__ */ jsx20("span", { children: username ? truncateAddress(username) : "MatchID " + intl.formatMessage({
|
|
4427
4456
|
id: "user"
|
|
4428
4457
|
}) })
|
|
4429
4458
|
] }) });
|
|
4430
4459
|
}
|
|
4431
4460
|
|
|
4432
4461
|
// src/components/UsernameModal/index.tsx
|
|
4433
|
-
import { useEffect as
|
|
4434
|
-
import { FormattedMessage as
|
|
4435
|
-
import { jsx as
|
|
4462
|
+
import { useEffect as useEffect16, useMemo as useMemo10, useState as useState18 } from "react";
|
|
4463
|
+
import { FormattedMessage as FormattedMessage10, useIntl as useIntl10 } from "react-intl";
|
|
4464
|
+
import { jsx as jsx21, jsxs as jsxs15 } from "react/jsx-runtime";
|
|
4436
4465
|
var ValidItem = ({
|
|
4437
4466
|
success = false,
|
|
4438
4467
|
text
|
|
4439
4468
|
}) => {
|
|
4440
4469
|
const isDownMd = useDownMd();
|
|
4441
|
-
return /* @__PURE__ */
|
|
4442
|
-
success ? /* @__PURE__ */
|
|
4443
|
-
/* @__PURE__ */
|
|
4470
|
+
return /* @__PURE__ */ jsxs15("div", { className: `matchid-valid-status-item matchid-valid-status-${success ? "success" : "error"}`, children: [
|
|
4471
|
+
success ? /* @__PURE__ */ jsx21(CheckRoundIcon, { size: isDownMd ? 12 : 16 }) : /* @__PURE__ */ jsx21(InfoLineIcon, { size: isDownMd ? 12 : 16 }),
|
|
4472
|
+
/* @__PURE__ */ jsx21("span", { children: text })
|
|
4444
4473
|
] });
|
|
4445
4474
|
};
|
|
4446
4475
|
function UsernameModal({
|
|
@@ -4451,23 +4480,23 @@ function UsernameModal({
|
|
|
4451
4480
|
}) {
|
|
4452
4481
|
const { username, refreshOverview } = useUserInfo();
|
|
4453
4482
|
const { isLogin } = useUserInfo();
|
|
4454
|
-
const [val, setVal] =
|
|
4455
|
-
const [error, setError] =
|
|
4483
|
+
const [val, setVal] = useState18(username);
|
|
4484
|
+
const [error, setError] = useState18("");
|
|
4456
4485
|
const isDownMd = useDownMd();
|
|
4457
|
-
|
|
4486
|
+
useEffect16(() => {
|
|
4458
4487
|
if (isOpen) {
|
|
4459
4488
|
setVal(username);
|
|
4460
4489
|
setError("");
|
|
4461
4490
|
}
|
|
4462
4491
|
}, [isOpen]);
|
|
4463
|
-
const isValid =
|
|
4492
|
+
const isValid = useMemo10(() => {
|
|
4464
4493
|
return isValidUsername(val);
|
|
4465
4494
|
}, [val]);
|
|
4466
|
-
const isLength =
|
|
4495
|
+
const isLength = useMemo10(() => {
|
|
4467
4496
|
return val.length >= 2 && val.length <= 32;
|
|
4468
4497
|
}, [val]);
|
|
4469
4498
|
const isSafe = isValid && isLength;
|
|
4470
|
-
const [isSubmitting, setIsSubmitting] =
|
|
4499
|
+
const [isSubmitting, setIsSubmitting] = useState18(false);
|
|
4471
4500
|
const onSubmit = async () => {
|
|
4472
4501
|
if (isSubmitting) return;
|
|
4473
4502
|
try {
|
|
@@ -4487,13 +4516,13 @@ function UsernameModal({
|
|
|
4487
4516
|
setIsSubmitting(false);
|
|
4488
4517
|
}
|
|
4489
4518
|
};
|
|
4490
|
-
const intl =
|
|
4491
|
-
return /* @__PURE__ */
|
|
4519
|
+
const intl = useIntl10();
|
|
4520
|
+
return /* @__PURE__ */ jsx21(ModalWithHeader, { isOpen: isOpen && isLogin, ...props, title: title || intl.formatMessage({
|
|
4492
4521
|
id: username ? "editUsernameTitle" : "setUsernameTitle"
|
|
4493
|
-
}), children: /* @__PURE__ */
|
|
4494
|
-
/* @__PURE__ */
|
|
4522
|
+
}), children: /* @__PURE__ */ jsxs15("div", { className: "matchid-username-box", children: [
|
|
4523
|
+
/* @__PURE__ */ jsx21(Field, { label: intl.formatMessage({
|
|
4495
4524
|
id: "username"
|
|
4496
|
-
}), error, children: /* @__PURE__ */
|
|
4525
|
+
}), error, children: /* @__PURE__ */ jsx21(
|
|
4497
4526
|
Input,
|
|
4498
4527
|
{
|
|
4499
4528
|
placeholder: intl.formatMessage({
|
|
@@ -4506,8 +4535,8 @@ function UsernameModal({
|
|
|
4506
4535
|
value: val
|
|
4507
4536
|
}
|
|
4508
4537
|
) }),
|
|
4509
|
-
/* @__PURE__ */
|
|
4510
|
-
/* @__PURE__ */
|
|
4538
|
+
/* @__PURE__ */ jsxs15("div", { className: "matchid-valid", children: [
|
|
4539
|
+
/* @__PURE__ */ jsx21(
|
|
4511
4540
|
ValidItem,
|
|
4512
4541
|
{
|
|
4513
4542
|
success: isValid,
|
|
@@ -4516,21 +4545,21 @@ function UsernameModal({
|
|
|
4516
4545
|
})
|
|
4517
4546
|
}
|
|
4518
4547
|
),
|
|
4519
|
-
/* @__PURE__ */
|
|
4548
|
+
/* @__PURE__ */ jsx21(ValidItem, { success: isLength, text: intl.formatMessage({
|
|
4520
4549
|
id: "usernameLengthError"
|
|
4521
4550
|
}) })
|
|
4522
4551
|
] }),
|
|
4523
|
-
/* @__PURE__ */
|
|
4552
|
+
/* @__PURE__ */ jsx21(Button, { disabled: !isSafe, loading: isSubmitting, style: {
|
|
4524
4553
|
marginTop: isDownMd ? "36px" : "64px"
|
|
4525
|
-
}, onClick: onSubmit, size: "lg", block: true, highlight: true, children: /* @__PURE__ */
|
|
4526
|
-
/* @__PURE__ */
|
|
4554
|
+
}, onClick: onSubmit, size: "lg", block: true, highlight: true, children: /* @__PURE__ */ jsx21(FormattedMessage10, { id: "confirm" }) }),
|
|
4555
|
+
/* @__PURE__ */ jsx21(Button, { style: {
|
|
4527
4556
|
marginTop: isDownMd ? "12px" : "24px"
|
|
4528
|
-
}, onClick: props.onClose, size: "lg", block: true, children: /* @__PURE__ */
|
|
4557
|
+
}, onClick: props.onClose, size: "lg", block: true, children: /* @__PURE__ */ jsx21(FormattedMessage10, { id: "cancel" }) })
|
|
4529
4558
|
] }) });
|
|
4530
4559
|
}
|
|
4531
4560
|
|
|
4532
4561
|
// src/components/SOLModal/index.tsx
|
|
4533
|
-
import React7, { useEffect as
|
|
4562
|
+
import React7, { useEffect as useEffect17, useState as useState19 } from "react";
|
|
4534
4563
|
import { clusterApiUrl } from "@solana/web3.js";
|
|
4535
4564
|
import { useWallet as useWallet2, WalletProvider, ConnectionProvider } from "@solana/wallet-adapter-react";
|
|
4536
4565
|
import { WalletModalProvider, useWalletModal } from "@solana/wallet-adapter-react-ui";
|
|
@@ -4581,10 +4610,10 @@ import {
|
|
|
4581
4610
|
XDEFIWalletAdapter
|
|
4582
4611
|
} from "@solana/wallet-adapter-wallets";
|
|
4583
4612
|
import "@solana/wallet-adapter-react-ui/styles.css";
|
|
4584
|
-
import { useIntl as
|
|
4613
|
+
import { useIntl as useIntl11 } from "react-intl";
|
|
4585
4614
|
|
|
4586
4615
|
// src/components/WalletModalContent/index.tsx
|
|
4587
|
-
import { useMemo as
|
|
4616
|
+
import { useMemo as useMemo11 } from "react";
|
|
4588
4617
|
|
|
4589
4618
|
// src/assets/wallet.ts
|
|
4590
4619
|
var walletErrorImage = "data:image/png;base64,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";
|
|
@@ -4594,7 +4623,7 @@ var walletConnectImage = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQAAAAEA
|
|
|
4594
4623
|
var walletSigningImage = "data:image/png;base64,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";
|
|
4595
4624
|
|
|
4596
4625
|
// src/components/WalletModalContent/index.tsx
|
|
4597
|
-
import { jsx as
|
|
4626
|
+
import { jsx as jsx22, jsxs as jsxs16 } from "react/jsx-runtime";
|
|
4598
4627
|
function WalletModalContent({
|
|
4599
4628
|
status,
|
|
4600
4629
|
error,
|
|
@@ -4605,7 +4634,7 @@ function WalletModalContent({
|
|
|
4605
4634
|
address,
|
|
4606
4635
|
connected
|
|
4607
4636
|
}) {
|
|
4608
|
-
const pageData =
|
|
4637
|
+
const pageData = useMemo11(() => {
|
|
4609
4638
|
if (status == "success") {
|
|
4610
4639
|
return {
|
|
4611
4640
|
btnText: "Disconnect Wallet",
|
|
@@ -4664,12 +4693,12 @@ function WalletModalContent({
|
|
|
4664
4693
|
statusImage: walletConnectImage
|
|
4665
4694
|
};
|
|
4666
4695
|
}, [visible, connected, status, error, address]);
|
|
4667
|
-
return /* @__PURE__ */
|
|
4668
|
-
/* @__PURE__ */
|
|
4669
|
-
/* @__PURE__ */
|
|
4670
|
-
/* @__PURE__ */
|
|
4696
|
+
return /* @__PURE__ */ jsx22("div", { className: "matchid-wallet-container", children: /* @__PURE__ */ jsxs16("div", { className: `matchid-wallet-box`, children: [
|
|
4697
|
+
/* @__PURE__ */ jsxs16("div", { className: `matchid-wallet-content`, children: [
|
|
4698
|
+
/* @__PURE__ */ jsx22("img", { src: pageData.statusImage }),
|
|
4699
|
+
/* @__PURE__ */ jsx22("div", { className: pageData.isError ? "text-[#F7585E]" : "", children: pageData.text })
|
|
4671
4700
|
] }),
|
|
4672
|
-
/* @__PURE__ */
|
|
4701
|
+
/* @__PURE__ */ jsx22(
|
|
4673
4702
|
Button,
|
|
4674
4703
|
{
|
|
4675
4704
|
block: true,
|
|
@@ -4684,7 +4713,7 @@ function WalletModalContent({
|
|
|
4684
4713
|
}
|
|
4685
4714
|
|
|
4686
4715
|
// src/components/SOLModal/index.tsx
|
|
4687
|
-
import { jsx as
|
|
4716
|
+
import { jsx as jsx23 } from "react/jsx-runtime";
|
|
4688
4717
|
function WalletContent({
|
|
4689
4718
|
onSuccess,
|
|
4690
4719
|
type
|
|
@@ -4692,17 +4721,17 @@ function WalletContent({
|
|
|
4692
4721
|
const { setVisible, visible } = useWalletModal();
|
|
4693
4722
|
const wallet = useWallet2();
|
|
4694
4723
|
const { events, login } = useMatch();
|
|
4695
|
-
const [status, setStatus] =
|
|
4724
|
+
const [status, setStatus] = useState19("");
|
|
4696
4725
|
const statusRef = React7.useRef(status);
|
|
4697
|
-
const [error, setError] =
|
|
4698
|
-
|
|
4726
|
+
const [error, setError] = useState19("");
|
|
4727
|
+
useEffect17(() => {
|
|
4699
4728
|
const init = async () => {
|
|
4700
4729
|
await wallet.disconnect();
|
|
4701
4730
|
setVisible(true);
|
|
4702
4731
|
};
|
|
4703
4732
|
init();
|
|
4704
4733
|
}, []);
|
|
4705
|
-
|
|
4734
|
+
useEffect17(() => {
|
|
4706
4735
|
if (wallet.connected) {
|
|
4707
4736
|
console.log("wallet.connected", wallet.connected);
|
|
4708
4737
|
toLoginInWallet();
|
|
@@ -4766,7 +4795,7 @@ function WalletContent({
|
|
|
4766
4795
|
statusRef.current = "";
|
|
4767
4796
|
}
|
|
4768
4797
|
};
|
|
4769
|
-
return /* @__PURE__ */
|
|
4798
|
+
return /* @__PURE__ */ jsx23(
|
|
4770
4799
|
WalletModalContent,
|
|
4771
4800
|
{
|
|
4772
4801
|
connected: wallet.connected,
|
|
@@ -4826,20 +4855,20 @@ function SOLConnectModal({
|
|
|
4826
4855
|
onSuccess,
|
|
4827
4856
|
...props
|
|
4828
4857
|
}) {
|
|
4829
|
-
const intl =
|
|
4830
|
-
return /* @__PURE__ */
|
|
4858
|
+
const intl = useIntl11();
|
|
4859
|
+
return /* @__PURE__ */ jsx23(ModalWithHeader, { ...props, title: props.title || intl.formatMessage({
|
|
4831
4860
|
id: type == "bind" ? "bindWith" : "loginWith"
|
|
4832
4861
|
}, {
|
|
4833
4862
|
name: "SOL"
|
|
4834
|
-
}), children: /* @__PURE__ */
|
|
4863
|
+
}), children: /* @__PURE__ */ jsx23(ConnectionProvider, { endpoint: clusterApiUrl("devnet"), children: /* @__PURE__ */ jsx23(WalletProvider, { wallets, autoConnect: true, children: /* @__PURE__ */ jsx23(WalletModalProvider, { children: /* @__PURE__ */ jsx23(WalletContent, { onSuccess, type }) }) }) }) });
|
|
4835
4864
|
}
|
|
4836
4865
|
function SOLModal(props) {
|
|
4837
|
-
return props.isOpen && /* @__PURE__ */
|
|
4866
|
+
return props.isOpen && /* @__PURE__ */ jsx23(SOLConnectModal, { ...props });
|
|
4838
4867
|
}
|
|
4839
4868
|
|
|
4840
4869
|
// src/components/TRONModal/index.tsx
|
|
4841
|
-
import React8, { useEffect as
|
|
4842
|
-
import { useIntl as
|
|
4870
|
+
import React8, { useEffect as useEffect19, useMemo as useMemo12, useState as useState21 } from "react";
|
|
4871
|
+
import { useIntl as useIntl12 } from "react-intl";
|
|
4843
4872
|
|
|
4844
4873
|
// src/lib/tron/TronLinkAdapter.ts
|
|
4845
4874
|
var TronLinkAdapter = class {
|
|
@@ -4872,7 +4901,7 @@ var TronLinkAdapter = class {
|
|
|
4872
4901
|
};
|
|
4873
4902
|
|
|
4874
4903
|
// src/hooks/useTRONWallet.ts
|
|
4875
|
-
import { useEffect as
|
|
4904
|
+
import { useEffect as useEffect18, useState as useState20 } from "react";
|
|
4876
4905
|
|
|
4877
4906
|
// src/lib/tron/BitgetAdapter.ts
|
|
4878
4907
|
var BitgetAdapter = class {
|
|
@@ -4917,9 +4946,9 @@ var OKXAdapter = class {
|
|
|
4917
4946
|
// src/hooks/useTRONWallet.ts
|
|
4918
4947
|
var useTRONWallet = () => {
|
|
4919
4948
|
const wallets2 = [new TronLinkAdapter(), new BitgetAdapter(), new OKXAdapter()];
|
|
4920
|
-
const [installedWallets, setInstalledWallets] =
|
|
4921
|
-
const [address, setAddress] =
|
|
4922
|
-
|
|
4949
|
+
const [installedWallets, setInstalledWallets] = useState20([]);
|
|
4950
|
+
const [address, setAddress] = useState20(null);
|
|
4951
|
+
useEffect18(() => {
|
|
4923
4952
|
const getInstalled = async () => {
|
|
4924
4953
|
const installed = await Promise.all(wallets2.map((wallet2) => wallet2.isInstalled().then((isInstalled) => ({
|
|
4925
4954
|
wallet: wallet2,
|
|
@@ -4929,11 +4958,11 @@ var useTRONWallet = () => {
|
|
|
4929
4958
|
};
|
|
4930
4959
|
getInstalled();
|
|
4931
4960
|
}, []);
|
|
4932
|
-
const [wallet, chooseWallet] =
|
|
4961
|
+
const [wallet, chooseWallet] = useState20(null);
|
|
4933
4962
|
const onConnect = async () => {
|
|
4934
4963
|
setAddress(await wallet.connect());
|
|
4935
4964
|
};
|
|
4936
|
-
|
|
4965
|
+
useEffect18(() => {
|
|
4937
4966
|
if (!wallet) {
|
|
4938
4967
|
setAddress(null);
|
|
4939
4968
|
}
|
|
@@ -4949,25 +4978,25 @@ var useTRONWallet = () => {
|
|
|
4949
4978
|
};
|
|
4950
4979
|
|
|
4951
4980
|
// src/components/TRONModal/index.tsx
|
|
4952
|
-
import { jsx as
|
|
4981
|
+
import { jsx as jsx24, jsxs as jsxs17 } from "react/jsx-runtime";
|
|
4953
4982
|
function TRONConnectModal({
|
|
4954
4983
|
type = "login",
|
|
4955
4984
|
onSuccess,
|
|
4956
4985
|
...props
|
|
4957
4986
|
}) {
|
|
4958
4987
|
const isDownMd = useDownMd();
|
|
4959
|
-
const intl =
|
|
4988
|
+
const intl = useIntl12();
|
|
4960
4989
|
const { wallets: wallets2, installedWallets, chooseWallet, wallet, address, onConnect } = useTRONWallet();
|
|
4961
4990
|
const iconMaps = {
|
|
4962
|
-
tronlink: /* @__PURE__ */
|
|
4963
|
-
bitget: /* @__PURE__ */
|
|
4964
|
-
okx: /* @__PURE__ */
|
|
4991
|
+
tronlink: /* @__PURE__ */ jsx24(TronLinkIcon, { size: isDownMd ? 36 : 40 }),
|
|
4992
|
+
bitget: /* @__PURE__ */ jsx24(BitgetIcon, { size: isDownMd ? 36 : 40 }),
|
|
4993
|
+
okx: /* @__PURE__ */ jsx24(OKXIcon, { size: isDownMd ? 36 : 40 })
|
|
4965
4994
|
};
|
|
4966
4995
|
const { events, login } = useMatch();
|
|
4967
|
-
const [status, setStatus] =
|
|
4996
|
+
const [status, setStatus] = useState21("");
|
|
4968
4997
|
const statusRef = React8.useRef(status);
|
|
4969
|
-
const [error, setError] =
|
|
4970
|
-
const connected =
|
|
4998
|
+
const [error, setError] = useState21("");
|
|
4999
|
+
const connected = useMemo12(() => {
|
|
4971
5000
|
return !!address;
|
|
4972
5001
|
}, [address]);
|
|
4973
5002
|
const disconnect = async () => {
|
|
@@ -5035,7 +5064,7 @@ function TRONConnectModal({
|
|
|
5035
5064
|
statusRef.current = "";
|
|
5036
5065
|
}
|
|
5037
5066
|
};
|
|
5038
|
-
|
|
5067
|
+
useEffect19(() => {
|
|
5039
5068
|
if (wallet) {
|
|
5040
5069
|
console.log("onConnect");
|
|
5041
5070
|
onConnect();
|
|
@@ -5043,21 +5072,21 @@ function TRONConnectModal({
|
|
|
5043
5072
|
setStatus("");
|
|
5044
5073
|
}
|
|
5045
5074
|
}, [wallet]);
|
|
5046
|
-
|
|
5075
|
+
useEffect19(() => {
|
|
5047
5076
|
if (address) {
|
|
5048
5077
|
toLoginInWallet();
|
|
5049
5078
|
}
|
|
5050
5079
|
}, [address]);
|
|
5051
|
-
|
|
5080
|
+
useEffect19(() => {
|
|
5052
5081
|
if (!props.isOpen) {
|
|
5053
5082
|
disconnect();
|
|
5054
5083
|
}
|
|
5055
5084
|
}, [props.isOpen]);
|
|
5056
|
-
return /* @__PURE__ */
|
|
5085
|
+
return /* @__PURE__ */ jsx24(ModalWithHeader, { ...props, title: props.title || intl.formatMessage({
|
|
5057
5086
|
id: type == "bind" ? "bindWith" : "loginWith"
|
|
5058
5087
|
}, {
|
|
5059
5088
|
name: "TRON"
|
|
5060
|
-
}), onBack: wallet ? onBack : void 0, children: wallet ? /* @__PURE__ */
|
|
5089
|
+
}), onBack: wallet ? onBack : void 0, children: wallet ? /* @__PURE__ */ jsx24(
|
|
5061
5090
|
WalletModalContent,
|
|
5062
5091
|
{
|
|
5063
5092
|
error,
|
|
@@ -5070,9 +5099,9 @@ function TRONConnectModal({
|
|
|
5070
5099
|
setVisible: () => {
|
|
5071
5100
|
}
|
|
5072
5101
|
}
|
|
5073
|
-
) : /* @__PURE__ */
|
|
5102
|
+
) : /* @__PURE__ */ jsx24("div", { className: "matchid-login-box", children: /* @__PURE__ */ jsxs17("div", { className: "matchid-login-recommend-list", children: [
|
|
5074
5103
|
installedWallets.map((wallet2) => {
|
|
5075
|
-
return /* @__PURE__ */
|
|
5104
|
+
return /* @__PURE__ */ jsx24(
|
|
5076
5105
|
RecommendItem,
|
|
5077
5106
|
{
|
|
5078
5107
|
icon: iconMaps[wallet2.walletKey],
|
|
@@ -5085,14 +5114,14 @@ function TRONConnectModal({
|
|
|
5085
5114
|
);
|
|
5086
5115
|
}),
|
|
5087
5116
|
wallets2.filter((wallet2) => !installedWallets.find((installedWallet) => installedWallet.walletKey == wallet2.walletKey)).map((wallet2) => {
|
|
5088
|
-
return /* @__PURE__ */
|
|
5117
|
+
return /* @__PURE__ */ jsx24(
|
|
5089
5118
|
RecommendItem,
|
|
5090
5119
|
{
|
|
5091
5120
|
icon: iconMaps[wallet2.walletKey],
|
|
5092
5121
|
name: wallet2.name,
|
|
5093
5122
|
onClick: () => {
|
|
5094
5123
|
},
|
|
5095
|
-
footer: /* @__PURE__ */
|
|
5124
|
+
footer: /* @__PURE__ */ jsx24(Button, { size: "sm", onClick: () => {
|
|
5096
5125
|
window.open(wallet2.website);
|
|
5097
5126
|
}, children: "Install" })
|
|
5098
5127
|
},
|
|
@@ -5102,12 +5131,12 @@ function TRONConnectModal({
|
|
|
5102
5131
|
] }) }) });
|
|
5103
5132
|
}
|
|
5104
5133
|
function TRONModal(props) {
|
|
5105
|
-
return props.isOpen && /* @__PURE__ */
|
|
5134
|
+
return props.isOpen && /* @__PURE__ */ jsx24(TRONConnectModal, { ...props, type: props.type });
|
|
5106
5135
|
}
|
|
5107
5136
|
|
|
5108
5137
|
// src/components/TONModal/index.tsx
|
|
5109
|
-
import React9, { useEffect as
|
|
5110
|
-
import { useIntl as
|
|
5138
|
+
import React9, { useEffect as useEffect20, useState as useState22 } from "react";
|
|
5139
|
+
import { useIntl as useIntl13 } from "react-intl";
|
|
5111
5140
|
import {
|
|
5112
5141
|
TonConnectUIProvider,
|
|
5113
5142
|
useTonAddress,
|
|
@@ -5115,21 +5144,21 @@ import {
|
|
|
5115
5144
|
useTonConnectUI,
|
|
5116
5145
|
useTonWallet
|
|
5117
5146
|
} from "@tonconnect/ui-react";
|
|
5118
|
-
import { jsx as
|
|
5147
|
+
import { jsx as jsx25 } from "react/jsx-runtime";
|
|
5119
5148
|
function WalletContent2({
|
|
5120
5149
|
onSuccess,
|
|
5121
5150
|
type
|
|
5122
5151
|
}) {
|
|
5123
5152
|
const { events, login } = useMatch();
|
|
5124
|
-
const [connected, setConnected] =
|
|
5153
|
+
const [connected, setConnected] = useState22(false);
|
|
5125
5154
|
const wallet = useTonWallet();
|
|
5126
5155
|
const userFriendlyAddress = useTonAddress();
|
|
5127
5156
|
const [tonConnectUI] = useTonConnectUI();
|
|
5128
5157
|
const { state, open, close } = useTonConnectModal();
|
|
5129
|
-
const [status, setStatus] =
|
|
5158
|
+
const [status, setStatus] = useState22("");
|
|
5130
5159
|
const statusRef = React9.useRef(status);
|
|
5131
|
-
const [error, setError] =
|
|
5132
|
-
|
|
5160
|
+
const [error, setError] = useState22("");
|
|
5161
|
+
useEffect20(() => {
|
|
5133
5162
|
const init = async () => {
|
|
5134
5163
|
if (wallet) {
|
|
5135
5164
|
await tonConnectUI.disconnect();
|
|
@@ -5202,7 +5231,7 @@ function WalletContent2({
|
|
|
5202
5231
|
}
|
|
5203
5232
|
});
|
|
5204
5233
|
}, []);
|
|
5205
|
-
|
|
5234
|
+
useEffect20(() => {
|
|
5206
5235
|
if (wallet) {
|
|
5207
5236
|
setConnected(true);
|
|
5208
5237
|
console.log("Wallet connected:", wallet);
|
|
@@ -5213,7 +5242,7 @@ function WalletContent2({
|
|
|
5213
5242
|
setStatus("");
|
|
5214
5243
|
}
|
|
5215
5244
|
}, [wallet]);
|
|
5216
|
-
|
|
5245
|
+
useEffect20(() => {
|
|
5217
5246
|
console.log({
|
|
5218
5247
|
state,
|
|
5219
5248
|
wallet
|
|
@@ -5242,7 +5271,7 @@ function WalletContent2({
|
|
|
5242
5271
|
}
|
|
5243
5272
|
}
|
|
5244
5273
|
}, [state]);
|
|
5245
|
-
return /* @__PURE__ */
|
|
5274
|
+
return /* @__PURE__ */ jsx25(
|
|
5246
5275
|
WalletModalContent,
|
|
5247
5276
|
{
|
|
5248
5277
|
connected,
|
|
@@ -5273,28 +5302,28 @@ function TONConnectModal({
|
|
|
5273
5302
|
onSuccess,
|
|
5274
5303
|
...props
|
|
5275
5304
|
}) {
|
|
5276
|
-
const intl =
|
|
5305
|
+
const intl = useIntl13();
|
|
5277
5306
|
const { endpoints, appid } = useLocalStore_default();
|
|
5278
5307
|
const manifestUrl = `${endpoints.back}api/v1/wallet/ton?appid=${appid}&url=` + encodeURIComponent(window.location.origin);
|
|
5279
|
-
return /* @__PURE__ */
|
|
5308
|
+
return /* @__PURE__ */ jsx25(ModalWithHeader, { ...props, title: props.title || intl.formatMessage({
|
|
5280
5309
|
id: type == "bind" ? "bindWith" : "loginWith"
|
|
5281
5310
|
}, {
|
|
5282
5311
|
name: "TON"
|
|
5283
|
-
}), children: /* @__PURE__ */
|
|
5312
|
+
}), children: /* @__PURE__ */ jsx25(
|
|
5284
5313
|
TonConnectUIProvider,
|
|
5285
5314
|
{
|
|
5286
5315
|
manifestUrl,
|
|
5287
|
-
children: /* @__PURE__ */
|
|
5316
|
+
children: /* @__PURE__ */ jsx25(WalletContent2, { onSuccess, type })
|
|
5288
5317
|
}
|
|
5289
5318
|
) });
|
|
5290
5319
|
}
|
|
5291
5320
|
function TONModal(props) {
|
|
5292
|
-
return props.isOpen && /* @__PURE__ */
|
|
5321
|
+
return props.isOpen && /* @__PURE__ */ jsx25(TONConnectModal, { ...props });
|
|
5293
5322
|
}
|
|
5294
5323
|
|
|
5295
5324
|
// src/components/BTCModal/index.tsx
|
|
5296
|
-
import React10, { useEffect as
|
|
5297
|
-
import { useIntl as
|
|
5325
|
+
import React10, { useEffect as useEffect22, useMemo as useMemo13, useState as useState24 } from "react";
|
|
5326
|
+
import { useIntl as useIntl14 } from "react-intl";
|
|
5298
5327
|
|
|
5299
5328
|
// src/lib/btc/UnisatAdapter.ts
|
|
5300
5329
|
var UnisatAdapter = class {
|
|
@@ -5448,12 +5477,12 @@ var LeatherAdapter = class {
|
|
|
5448
5477
|
};
|
|
5449
5478
|
|
|
5450
5479
|
// src/hooks/useBTCWallet.ts
|
|
5451
|
-
import { useEffect as
|
|
5480
|
+
import { useEffect as useEffect21, useState as useState23 } from "react";
|
|
5452
5481
|
var useBTCWallet = () => {
|
|
5453
5482
|
const wallets2 = [new UnisatAdapter(), new XverseAdapter(), new LeatherAdapter()];
|
|
5454
|
-
const [installedWallets, setInstalledWallets] =
|
|
5455
|
-
const [address, setAddress] =
|
|
5456
|
-
|
|
5483
|
+
const [installedWallets, setInstalledWallets] = useState23([]);
|
|
5484
|
+
const [address, setAddress] = useState23(null);
|
|
5485
|
+
useEffect21(() => {
|
|
5457
5486
|
const getInstalled = async () => {
|
|
5458
5487
|
const installed = await Promise.all(wallets2.map((wallet2) => wallet2.isInstalled().then((isInstalled) => ({
|
|
5459
5488
|
wallet: wallet2,
|
|
@@ -5463,11 +5492,11 @@ var useBTCWallet = () => {
|
|
|
5463
5492
|
};
|
|
5464
5493
|
getInstalled();
|
|
5465
5494
|
}, []);
|
|
5466
|
-
const [wallet, chooseWallet] =
|
|
5495
|
+
const [wallet, chooseWallet] = useState23(null);
|
|
5467
5496
|
const onConnect = async () => {
|
|
5468
5497
|
setAddress(await wallet.connect());
|
|
5469
5498
|
};
|
|
5470
|
-
|
|
5499
|
+
useEffect21(() => {
|
|
5471
5500
|
if (!wallet) {
|
|
5472
5501
|
setAddress(null);
|
|
5473
5502
|
}
|
|
@@ -5483,25 +5512,25 @@ var useBTCWallet = () => {
|
|
|
5483
5512
|
};
|
|
5484
5513
|
|
|
5485
5514
|
// src/components/BTCModal/index.tsx
|
|
5486
|
-
import { jsx as
|
|
5515
|
+
import { jsx as jsx26, jsxs as jsxs18 } from "react/jsx-runtime";
|
|
5487
5516
|
function BTCConnectModal({
|
|
5488
5517
|
type = "login",
|
|
5489
5518
|
onSuccess,
|
|
5490
5519
|
...props
|
|
5491
5520
|
}) {
|
|
5492
5521
|
const isDownMd = useDownMd();
|
|
5493
|
-
const intl =
|
|
5522
|
+
const intl = useIntl14();
|
|
5494
5523
|
const { wallets: wallets2, installedWallets, chooseWallet, wallet, address, onConnect } = useBTCWallet();
|
|
5495
5524
|
const iconMaps = {
|
|
5496
|
-
leather: /* @__PURE__ */
|
|
5497
|
-
unisat: /* @__PURE__ */
|
|
5498
|
-
xverse: /* @__PURE__ */
|
|
5525
|
+
leather: /* @__PURE__ */ jsx26(LeatherIcon, { size: isDownMd ? 36 : 40 }),
|
|
5526
|
+
unisat: /* @__PURE__ */ jsx26(UnisatIcon, { size: isDownMd ? 36 : 40 }),
|
|
5527
|
+
xverse: /* @__PURE__ */ jsx26(XverseIcon, { size: isDownMd ? 36 : 40 })
|
|
5499
5528
|
};
|
|
5500
5529
|
const { events, login } = useMatch();
|
|
5501
|
-
const [status, setStatus] =
|
|
5530
|
+
const [status, setStatus] = useState24("");
|
|
5502
5531
|
const statusRef = React10.useRef(status);
|
|
5503
|
-
const [error, setError] =
|
|
5504
|
-
const connected =
|
|
5532
|
+
const [error, setError] = useState24("");
|
|
5533
|
+
const connected = useMemo13(() => {
|
|
5505
5534
|
return !!address;
|
|
5506
5535
|
}, [address]);
|
|
5507
5536
|
const disconnect = async () => {
|
|
@@ -5565,7 +5594,7 @@ function BTCConnectModal({
|
|
|
5565
5594
|
statusRef.current = "";
|
|
5566
5595
|
}
|
|
5567
5596
|
};
|
|
5568
|
-
|
|
5597
|
+
useEffect22(() => {
|
|
5569
5598
|
if (wallet) {
|
|
5570
5599
|
console.log("onConnect");
|
|
5571
5600
|
try {
|
|
@@ -5578,12 +5607,12 @@ function BTCConnectModal({
|
|
|
5578
5607
|
setStatus("");
|
|
5579
5608
|
}
|
|
5580
5609
|
}, [wallet]);
|
|
5581
|
-
|
|
5610
|
+
useEffect22(() => {
|
|
5582
5611
|
if (address) {
|
|
5583
5612
|
toLoginInWallet();
|
|
5584
5613
|
}
|
|
5585
5614
|
}, [address]);
|
|
5586
|
-
|
|
5615
|
+
useEffect22(() => {
|
|
5587
5616
|
if (!props.isOpen) {
|
|
5588
5617
|
disconnect();
|
|
5589
5618
|
}
|
|
@@ -5595,11 +5624,11 @@ function BTCConnectModal({
|
|
|
5595
5624
|
statusRef.current = "";
|
|
5596
5625
|
setError("");
|
|
5597
5626
|
};
|
|
5598
|
-
return /* @__PURE__ */
|
|
5627
|
+
return /* @__PURE__ */ jsx26(ModalWithHeader, { ...props, title: props.title || intl.formatMessage({
|
|
5599
5628
|
id: type == "bind" ? "bindWith" : "loginWith"
|
|
5600
5629
|
}, {
|
|
5601
5630
|
name: "BTC"
|
|
5602
|
-
}), onBack: wallet ? onBack : void 0, children: wallet ? /* @__PURE__ */
|
|
5631
|
+
}), onBack: wallet ? onBack : void 0, children: wallet ? /* @__PURE__ */ jsx26(
|
|
5603
5632
|
WalletModalContent,
|
|
5604
5633
|
{
|
|
5605
5634
|
error,
|
|
@@ -5612,9 +5641,9 @@ function BTCConnectModal({
|
|
|
5612
5641
|
setVisible: () => {
|
|
5613
5642
|
}
|
|
5614
5643
|
}
|
|
5615
|
-
) : /* @__PURE__ */
|
|
5644
|
+
) : /* @__PURE__ */ jsx26("div", { className: "matchid-login-box", children: /* @__PURE__ */ jsxs18("div", { className: "matchid-login-recommend-list", children: [
|
|
5616
5645
|
installedWallets.map((wallet2) => {
|
|
5617
|
-
return /* @__PURE__ */
|
|
5646
|
+
return /* @__PURE__ */ jsx26(
|
|
5618
5647
|
RecommendItem,
|
|
5619
5648
|
{
|
|
5620
5649
|
icon: iconMaps[wallet2.walletKey],
|
|
@@ -5627,14 +5656,14 @@ function BTCConnectModal({
|
|
|
5627
5656
|
);
|
|
5628
5657
|
}),
|
|
5629
5658
|
wallets2.filter((wallet2) => !installedWallets.find((installedWallet) => installedWallet.walletKey == wallet2.walletKey)).map((wallet2) => {
|
|
5630
|
-
return /* @__PURE__ */
|
|
5659
|
+
return /* @__PURE__ */ jsx26(
|
|
5631
5660
|
RecommendItem,
|
|
5632
5661
|
{
|
|
5633
5662
|
icon: iconMaps[wallet2.walletKey],
|
|
5634
5663
|
name: wallet2.name,
|
|
5635
5664
|
onClick: () => {
|
|
5636
5665
|
},
|
|
5637
|
-
footer: /* @__PURE__ */
|
|
5666
|
+
footer: /* @__PURE__ */ jsx26(Button, { size: "sm", onClick: () => {
|
|
5638
5667
|
window.open(wallet2.website);
|
|
5639
5668
|
}, children: "Install" })
|
|
5640
5669
|
},
|
|
@@ -5644,23 +5673,23 @@ function BTCConnectModal({
|
|
|
5644
5673
|
] }) }) });
|
|
5645
5674
|
}
|
|
5646
5675
|
function BTCModal(props) {
|
|
5647
|
-
return props.isOpen && /* @__PURE__ */
|
|
5676
|
+
return props.isOpen && /* @__PURE__ */ jsx26(BTCConnectModal, { ...props });
|
|
5648
5677
|
}
|
|
5649
5678
|
|
|
5650
5679
|
// src/components/WalletModal/index.tsx
|
|
5651
|
-
import { useMemo as
|
|
5652
|
-
import { useIntl as
|
|
5653
|
-
import { jsx as
|
|
5680
|
+
import { useMemo as useMemo14 } from "react";
|
|
5681
|
+
import { useIntl as useIntl15 } from "react-intl";
|
|
5682
|
+
import { jsx as jsx27 } from "react/jsx-runtime";
|
|
5654
5683
|
function WalletConnectModal({
|
|
5655
5684
|
type,
|
|
5656
5685
|
methods: _methods,
|
|
5657
5686
|
...props
|
|
5658
5687
|
}) {
|
|
5659
|
-
const intl =
|
|
5688
|
+
const intl = useIntl15();
|
|
5660
5689
|
const { walletMap } = useWalletConfig();
|
|
5661
5690
|
const { bind, login } = useUserInfo();
|
|
5662
5691
|
const config = useAppConfig();
|
|
5663
|
-
const methods =
|
|
5692
|
+
const methods = useMemo14(() => {
|
|
5664
5693
|
if (_methods) return _methods;
|
|
5665
5694
|
if (!config.platform) {
|
|
5666
5695
|
return [];
|
|
@@ -5668,13 +5697,13 @@ function WalletConnectModal({
|
|
|
5668
5697
|
const platform = config.platform.map((p) => p.toLowerCase());
|
|
5669
5698
|
return WALLET_METHODS.filter((m) => platform.includes(m));
|
|
5670
5699
|
}, [config.platform, _methods]);
|
|
5671
|
-
return /* @__PURE__ */
|
|
5700
|
+
return /* @__PURE__ */ jsx27(ModalWithHeader, { ...props, title: props.title || intl.formatMessage({
|
|
5672
5701
|
id: type == "bind" ? "bindWith" : "loginWith"
|
|
5673
5702
|
}, {
|
|
5674
5703
|
name: ""
|
|
5675
|
-
}), children: /* @__PURE__ */
|
|
5704
|
+
}), children: /* @__PURE__ */ jsx27("div", { className: "matchid-login-box", children: /* @__PURE__ */ jsx27("div", { className: "matchid-login-recommend-list", children: methods.map((method, index) => {
|
|
5676
5705
|
const m = walletMap[method];
|
|
5677
|
-
return /* @__PURE__ */
|
|
5706
|
+
return /* @__PURE__ */ jsx27(
|
|
5678
5707
|
RecommendItem,
|
|
5679
5708
|
{
|
|
5680
5709
|
icon: m?.icon,
|
|
@@ -5688,21 +5717,21 @@ function WalletConnectModal({
|
|
|
5688
5717
|
}) }) }) });
|
|
5689
5718
|
}
|
|
5690
5719
|
function WalletModal(props) {
|
|
5691
|
-
return props.isOpen && /* @__PURE__ */
|
|
5720
|
+
return props.isOpen && /* @__PURE__ */ jsx27(WalletConnectModal, { ...props });
|
|
5692
5721
|
}
|
|
5693
5722
|
|
|
5694
5723
|
// src/components/AlphaAvatar/index.tsx
|
|
5695
|
-
import { useEffect as
|
|
5696
|
-
import { jsx as
|
|
5724
|
+
import { useEffect as useEffect23, useState as useState25 } from "react";
|
|
5725
|
+
import { jsx as jsx28 } from "react/jsx-runtime";
|
|
5697
5726
|
function AlphaAvatar2({ name, size = 40, className = "" }) {
|
|
5698
|
-
const [avatar, setAvatar] =
|
|
5699
|
-
|
|
5727
|
+
const [avatar, setAvatar] = useState25(void 0);
|
|
5728
|
+
useEffect23(() => {
|
|
5700
5729
|
if (name) {
|
|
5701
5730
|
const char = name[0].toUpperCase();
|
|
5702
5731
|
setAvatar(char);
|
|
5703
5732
|
}
|
|
5704
5733
|
}, [name]);
|
|
5705
|
-
return /* @__PURE__ */
|
|
5734
|
+
return /* @__PURE__ */ jsx28("div", { className: `matchid-alpha-avatar ${className}`, style: {
|
|
5706
5735
|
width: size,
|
|
5707
5736
|
height: size,
|
|
5708
5737
|
fontSize: Math.ceil(size / 2)
|
|
@@ -5710,7 +5739,7 @@ function AlphaAvatar2({ name, size = 40, className = "" }) {
|
|
|
5710
5739
|
}
|
|
5711
5740
|
|
|
5712
5741
|
// src/components/WalletAsset/index.tsx
|
|
5713
|
-
import { jsx as
|
|
5742
|
+
import { jsx as jsx29, jsxs as jsxs19 } from "react/jsx-runtime";
|
|
5714
5743
|
function WalletAsset({
|
|
5715
5744
|
onAssetClick,
|
|
5716
5745
|
matchWalletAssetsOptions
|
|
@@ -5720,7 +5749,7 @@ function WalletAsset({
|
|
|
5720
5749
|
list: walletAssets.mergedAssets
|
|
5721
5750
|
});
|
|
5722
5751
|
const { list } = useMatchChain();
|
|
5723
|
-
return /* @__PURE__ */
|
|
5752
|
+
return /* @__PURE__ */ jsx29("div", { className: "matchid-wallet-asset-list", children: matchWalletAssetList.list.map((n, index) => {
|
|
5724
5753
|
const clickFunc = onAssetClick && onAssetClick(n);
|
|
5725
5754
|
const chain = list?.find((m) => m.id.toString() === n.chain_id);
|
|
5726
5755
|
const getFooterColor = () => {
|
|
@@ -5735,11 +5764,11 @@ function WalletAsset({
|
|
|
5735
5764
|
}
|
|
5736
5765
|
return "";
|
|
5737
5766
|
};
|
|
5738
|
-
return /* @__PURE__ */
|
|
5767
|
+
return /* @__PURE__ */ jsxs19("div", { className: `matchid-wallet-asset-item`, onClick: clickFunc, style: {
|
|
5739
5768
|
cursor: clickFunc ? "pointer" : "default"
|
|
5740
5769
|
}, children: [
|
|
5741
|
-
/* @__PURE__ */
|
|
5742
|
-
n.icon ? /* @__PURE__ */
|
|
5770
|
+
/* @__PURE__ */ jsxs19("div", { className: "matchid-wallet-asset-logo", title: n.symbol || n.name || "", children: [
|
|
5771
|
+
n.icon ? /* @__PURE__ */ jsx29("img", { src: n.icon, alt: n.symbol, className: `matchid-wallet-asset-icon` }) : /* @__PURE__ */ jsx29(
|
|
5743
5772
|
AlphaAvatar2,
|
|
5744
5773
|
{
|
|
5745
5774
|
className: `matchid-wallet-asset-icon`,
|
|
@@ -5747,12 +5776,12 @@ function WalletAsset({
|
|
|
5747
5776
|
name: n.symbol || n.name || ""
|
|
5748
5777
|
}
|
|
5749
5778
|
),
|
|
5750
|
-
chain?.iconUrl && /* @__PURE__ */
|
|
5779
|
+
chain?.iconUrl && /* @__PURE__ */ jsx29("img", { src: chain.iconUrl, alt: chain.name, className: `matchid-wallet-asset-chain` })
|
|
5751
5780
|
] }),
|
|
5752
|
-
/* @__PURE__ */
|
|
5753
|
-
/* @__PURE__ */
|
|
5754
|
-
"price" in n && /* @__PURE__ */
|
|
5755
|
-
/* @__PURE__ */
|
|
5781
|
+
/* @__PURE__ */ jsxs19("div", { className: `matchid-wallet-asset-info`, children: [
|
|
5782
|
+
/* @__PURE__ */ jsx29("div", { className: `matchid-wallet-asset-name`, children: n.symbol }),
|
|
5783
|
+
"price" in n && /* @__PURE__ */ jsxs19("div", { className: `matchid-wallet-asset-content`, children: [
|
|
5784
|
+
/* @__PURE__ */ jsx29("div", { className: "matchid-wallet-asset-price", children: /* @__PURE__ */ jsx29(
|
|
5756
5785
|
NumberFormatter,
|
|
5757
5786
|
{
|
|
5758
5787
|
value: n.price,
|
|
@@ -5760,7 +5789,7 @@ function WalletAsset({
|
|
|
5760
5789
|
tFixNum: 2
|
|
5761
5790
|
}
|
|
5762
5791
|
) }),
|
|
5763
|
-
/* @__PURE__ */
|
|
5792
|
+
/* @__PURE__ */ jsx29("div", { className: "matchid-wallet-asset-value", children: /* @__PURE__ */ jsx29(
|
|
5764
5793
|
NumberFormatter,
|
|
5765
5794
|
{
|
|
5766
5795
|
value: n.value,
|
|
@@ -5769,15 +5798,15 @@ function WalletAsset({
|
|
|
5769
5798
|
}
|
|
5770
5799
|
) })
|
|
5771
5800
|
] }),
|
|
5772
|
-
/* @__PURE__ */
|
|
5773
|
-
/* @__PURE__ */
|
|
5801
|
+
/* @__PURE__ */ jsxs19("div", { className: `matchid-wallet-asset-footer`, children: [
|
|
5802
|
+
/* @__PURE__ */ jsx29("div", { className: `matchid-wallet-asset-balance`, children: /* @__PURE__ */ jsx29(
|
|
5774
5803
|
NumberFormatter,
|
|
5775
5804
|
{
|
|
5776
5805
|
value: n.balance,
|
|
5777
5806
|
tFixNum: 3
|
|
5778
5807
|
}
|
|
5779
5808
|
) }),
|
|
5780
|
-
"price_change_24h" in n && /* @__PURE__ */
|
|
5809
|
+
"price_change_24h" in n && /* @__PURE__ */ jsx29("div", { className: `matchid-wallet-asset-change ${getFooterColor()}`, children: /* @__PURE__ */ jsx29(
|
|
5781
5810
|
NumberFormatter,
|
|
5782
5811
|
{
|
|
5783
5812
|
prefix: `${(n?.price_change_24h || 0) < 0 ? "-" : "+"} `,
|
|
@@ -5793,10 +5822,10 @@ function WalletAsset({
|
|
|
5793
5822
|
}
|
|
5794
5823
|
|
|
5795
5824
|
// src/components/TokenSend/index.tsx
|
|
5796
|
-
import { useEffect as
|
|
5825
|
+
import { useEffect as useEffect24, useMemo as useMemo15, useState as useState26 } from "react";
|
|
5797
5826
|
import { defineChain as defineChain3, encodeFunctionData as encodeFunctionData2, http as http5, parseUnits as parseUnits2 } from "viem";
|
|
5798
|
-
import { FormattedMessage as
|
|
5799
|
-
import { jsx as
|
|
5827
|
+
import { FormattedMessage as FormattedMessage11, useIntl as useIntl16 } from "react-intl";
|
|
5828
|
+
import { jsx as jsx30, jsxs as jsxs20 } from "react/jsx-runtime";
|
|
5800
5829
|
function Input2({
|
|
5801
5830
|
onChange,
|
|
5802
5831
|
placeholder,
|
|
@@ -5806,8 +5835,8 @@ function Input2({
|
|
|
5806
5835
|
error,
|
|
5807
5836
|
size = "df"
|
|
5808
5837
|
}) {
|
|
5809
|
-
return /* @__PURE__ */
|
|
5810
|
-
/* @__PURE__ */
|
|
5838
|
+
return /* @__PURE__ */ jsxs20("div", { className: `matchid-token-input-box ${"matchid-token-input-" + size}`, children: [
|
|
5839
|
+
/* @__PURE__ */ jsx30(
|
|
5811
5840
|
"input",
|
|
5812
5841
|
{
|
|
5813
5842
|
placeholder,
|
|
@@ -5818,7 +5847,7 @@ function Input2({
|
|
|
5818
5847
|
className: `matchid-token-input ${error ? "matchid-token-input-error" : ""}`
|
|
5819
5848
|
}
|
|
5820
5849
|
),
|
|
5821
|
-
error && /* @__PURE__ */
|
|
5850
|
+
error && /* @__PURE__ */ jsx30("div", { className: "matchid-token-input-error-text", children: error })
|
|
5822
5851
|
] });
|
|
5823
5852
|
}
|
|
5824
5853
|
function TokenSend({
|
|
@@ -5828,25 +5857,25 @@ function TokenSend({
|
|
|
5828
5857
|
onBack
|
|
5829
5858
|
}) {
|
|
5830
5859
|
const { list: chainList } = useMatchChain();
|
|
5831
|
-
const intl =
|
|
5860
|
+
const intl = useIntl16();
|
|
5832
5861
|
const { createWalletClient: createWalletClient2 } = useWallet();
|
|
5833
5862
|
const isNative = token.address.toLowerCase() == NATIVE_TOKEN_ADDRESS;
|
|
5834
|
-
const chain =
|
|
5863
|
+
const chain = useMemo15(() => {
|
|
5835
5864
|
return chainList?.find((m) => m.id.toString() === token.chain_id);
|
|
5836
5865
|
}, [chainList, token.chain_id]);
|
|
5837
|
-
const walletClient =
|
|
5866
|
+
const walletClient = useMemo15(() => {
|
|
5838
5867
|
return createWalletClient2({
|
|
5839
5868
|
// @ts-ignore
|
|
5840
5869
|
chain: defineChain3(chain),
|
|
5841
5870
|
transport: http5()
|
|
5842
5871
|
});
|
|
5843
5872
|
}, [chain]);
|
|
5844
|
-
const [amount, setAmount] =
|
|
5845
|
-
const [address, setAddress] =
|
|
5846
|
-
const [loading, setLoading] =
|
|
5847
|
-
const [sending, setSending] =
|
|
5848
|
-
const [txError, setTxError] =
|
|
5849
|
-
const transaction =
|
|
5873
|
+
const [amount, setAmount] = useState26("");
|
|
5874
|
+
const [address, setAddress] = useState26("");
|
|
5875
|
+
const [loading, setLoading] = useState26(false);
|
|
5876
|
+
const [sending, setSending] = useState26(false);
|
|
5877
|
+
const [txError, setTxError] = useState26("");
|
|
5878
|
+
const transaction = useMemo15(() => {
|
|
5850
5879
|
if (!amount || !address) {
|
|
5851
5880
|
return;
|
|
5852
5881
|
}
|
|
@@ -5901,7 +5930,7 @@ function TokenSend({
|
|
|
5901
5930
|
setLoading(false);
|
|
5902
5931
|
}
|
|
5903
5932
|
};
|
|
5904
|
-
const error =
|
|
5933
|
+
const error = useMemo15(() => {
|
|
5905
5934
|
setTxError("");
|
|
5906
5935
|
let amountError = "";
|
|
5907
5936
|
let addressError = "";
|
|
@@ -5944,7 +5973,7 @@ function TokenSend({
|
|
|
5944
5973
|
setAmount(value);
|
|
5945
5974
|
}
|
|
5946
5975
|
};
|
|
5947
|
-
const canSend =
|
|
5976
|
+
const canSend = useMemo15(() => {
|
|
5948
5977
|
return !error.amount && !error.address && amount && address;
|
|
5949
5978
|
}, [error]);
|
|
5950
5979
|
const onNext = async () => {
|
|
@@ -5954,7 +5983,7 @@ function TokenSend({
|
|
|
5954
5983
|
}
|
|
5955
5984
|
onClose();
|
|
5956
5985
|
};
|
|
5957
|
-
|
|
5986
|
+
useEffect24(() => {
|
|
5958
5987
|
const receiveMessage = (event) => {
|
|
5959
5988
|
if (event.data) {
|
|
5960
5989
|
if (event.data.source == "match-wallet") {
|
|
@@ -5970,24 +5999,24 @@ function TokenSend({
|
|
|
5970
5999
|
window.removeEventListener("message", receiveMessage);
|
|
5971
6000
|
};
|
|
5972
6001
|
}, []);
|
|
5973
|
-
return /* @__PURE__ */
|
|
5974
|
-
/* @__PURE__ */
|
|
5975
|
-
/* @__PURE__ */
|
|
5976
|
-
/* @__PURE__ */
|
|
5977
|
-
/* @__PURE__ */
|
|
5978
|
-
/* @__PURE__ */
|
|
5979
|
-
token.icon ? /* @__PURE__ */
|
|
6002
|
+
return /* @__PURE__ */ jsx30(ModalDrawer, { isOpen: true, onClose, zIndex, title: /* @__PURE__ */ jsx30(FormattedMessage11, { id: "send" }), onBack, children: /* @__PURE__ */ jsxs20("div", { className: `matchid-token-send-box`, children: [
|
|
6003
|
+
/* @__PURE__ */ jsxs20("div", { className: "matchid-token-send-content", children: [
|
|
6004
|
+
/* @__PURE__ */ jsxs20("div", { className: `matchid-token-amount-content`, children: [
|
|
6005
|
+
/* @__PURE__ */ jsxs20("div", { className: `matchid-token-amount-header`, children: [
|
|
6006
|
+
/* @__PURE__ */ jsx30("div", { className: `matchid-token-amount-title`, children: /* @__PURE__ */ jsx30(FormattedMessage11, { id: "amount" }) }),
|
|
6007
|
+
/* @__PURE__ */ jsxs20("div", { className: `matchid-token-amount-chain`, children: [
|
|
6008
|
+
token.icon ? /* @__PURE__ */ jsx30(
|
|
5980
6009
|
"img",
|
|
5981
6010
|
{
|
|
5982
6011
|
src: token?.icon,
|
|
5983
6012
|
alt: token?.symbol,
|
|
5984
6013
|
className: `matchid-token-amount-chain-icon`
|
|
5985
6014
|
}
|
|
5986
|
-
) : /* @__PURE__ */
|
|
5987
|
-
/* @__PURE__ */
|
|
6015
|
+
) : /* @__PURE__ */ jsx30(AlphaAvatar, { name: token.symbol || token.name || "", size: 16 }),
|
|
6016
|
+
/* @__PURE__ */ jsx30("span", { children: token?.symbol })
|
|
5988
6017
|
] })
|
|
5989
6018
|
] }),
|
|
5990
|
-
/* @__PURE__ */
|
|
6019
|
+
/* @__PURE__ */ jsx30(
|
|
5991
6020
|
Input2,
|
|
5992
6021
|
{
|
|
5993
6022
|
type: "text",
|
|
@@ -6000,18 +6029,18 @@ function TokenSend({
|
|
|
6000
6029
|
error: error.amount || txError
|
|
6001
6030
|
}
|
|
6002
6031
|
),
|
|
6003
|
-
/* @__PURE__ */
|
|
6004
|
-
/* @__PURE__ */
|
|
6005
|
-
/* @__PURE__ */
|
|
6032
|
+
/* @__PURE__ */ jsxs20("div", { className: `matchid-token-amount-footer`, children: [
|
|
6033
|
+
/* @__PURE__ */ jsxs20("div", { className: `matchid-token-amount-title`, children: [
|
|
6034
|
+
/* @__PURE__ */ jsx30(FormattedMessage11, { id: "balance" }),
|
|
6006
6035
|
":"
|
|
6007
6036
|
] }),
|
|
6008
|
-
/* @__PURE__ */
|
|
6037
|
+
/* @__PURE__ */ jsx30("div", { className: `matchid-token-amount-value`, children: /* @__PURE__ */ jsx30(NumberFormatter, { value: token.balance, tFixNum: 10, suffix: " " + token.symbol }) })
|
|
6009
6038
|
] }),
|
|
6010
|
-
/* @__PURE__ */
|
|
6039
|
+
/* @__PURE__ */ jsx30(TransferIcon, { className: "matchid-token-amount-transfer" })
|
|
6011
6040
|
] }),
|
|
6012
|
-
/* @__PURE__ */
|
|
6013
|
-
/* @__PURE__ */
|
|
6014
|
-
/* @__PURE__ */
|
|
6041
|
+
/* @__PURE__ */ jsxs20("div", { className: `matchid-token-address-content`, children: [
|
|
6042
|
+
/* @__PURE__ */ jsx30("div", { className: `matchid-token-address-header`, children: /* @__PURE__ */ jsx30("div", { className: `matchid-token-address-title`, children: /* @__PURE__ */ jsx30(FormattedMessage11, { id: "receiveTitle" }) }) }),
|
|
6043
|
+
/* @__PURE__ */ jsx30(
|
|
6015
6044
|
Input2,
|
|
6016
6045
|
{
|
|
6017
6046
|
type: "text",
|
|
@@ -6027,7 +6056,7 @@ function TokenSend({
|
|
|
6027
6056
|
)
|
|
6028
6057
|
] })
|
|
6029
6058
|
] }),
|
|
6030
|
-
/* @__PURE__ */
|
|
6059
|
+
/* @__PURE__ */ jsx30(
|
|
6031
6060
|
Button,
|
|
6032
6061
|
{
|
|
6033
6062
|
size: "lg",
|
|
@@ -6036,15 +6065,15 @@ function TokenSend({
|
|
|
6036
6065
|
disabled: !canSend || !!txError,
|
|
6037
6066
|
onClick: onNext,
|
|
6038
6067
|
loading: loading || sending,
|
|
6039
|
-
children: /* @__PURE__ */
|
|
6068
|
+
children: /* @__PURE__ */ jsx30(FormattedMessage11, { id: "next" })
|
|
6040
6069
|
}
|
|
6041
6070
|
)
|
|
6042
6071
|
] }) });
|
|
6043
6072
|
}
|
|
6044
6073
|
|
|
6045
6074
|
// src/components/TokenDetail/index.tsx
|
|
6046
|
-
import { FormattedMessage as
|
|
6047
|
-
import { jsx as
|
|
6075
|
+
import { FormattedMessage as FormattedMessage12, useIntl as useIntl17 } from "react-intl";
|
|
6076
|
+
import { jsx as jsx31, jsxs as jsxs21 } from "react/jsx-runtime";
|
|
6048
6077
|
function TokenDetail({
|
|
6049
6078
|
onClose,
|
|
6050
6079
|
token
|
|
@@ -6054,61 +6083,61 @@ function TokenDetail({
|
|
|
6054
6083
|
const chain = chainList?.find((m) => m.id.toString() === token.chain_id);
|
|
6055
6084
|
const onSend = () => {
|
|
6056
6085
|
modal.show((props) => {
|
|
6057
|
-
return /* @__PURE__ */
|
|
6086
|
+
return /* @__PURE__ */ jsx31(TokenSend, { onClose: () => {
|
|
6058
6087
|
props.close();
|
|
6059
6088
|
onClose();
|
|
6060
6089
|
}, onBack: props.close, zIndex: props.zIndex, token });
|
|
6061
6090
|
});
|
|
6062
6091
|
};
|
|
6063
|
-
const intl =
|
|
6064
|
-
return /* @__PURE__ */
|
|
6092
|
+
const intl = useIntl17();
|
|
6093
|
+
return /* @__PURE__ */ jsx31(ModalDrawer, { isOpen: true, title: intl.formatMessage({
|
|
6065
6094
|
id: "tokenDetails"
|
|
6066
|
-
}), onClose, children: /* @__PURE__ */
|
|
6067
|
-
/* @__PURE__ */
|
|
6068
|
-
/* @__PURE__ */
|
|
6069
|
-
/* @__PURE__ */
|
|
6070
|
-
token.icon ? /* @__PURE__ */
|
|
6071
|
-
chain?.iconUrl && /* @__PURE__ */
|
|
6095
|
+
}), onClose, children: /* @__PURE__ */ jsxs21("div", { className: `matchid-token-detail`, children: [
|
|
6096
|
+
/* @__PURE__ */ jsxs21("div", { className: `matchid-token-main`, children: [
|
|
6097
|
+
/* @__PURE__ */ jsxs21("div", { className: `matchid-token-info`, children: [
|
|
6098
|
+
/* @__PURE__ */ jsxs21("div", { className: `matchid-token-logo`, children: [
|
|
6099
|
+
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 || "" }),
|
|
6100
|
+
chain?.iconUrl && /* @__PURE__ */ jsx31("img", { src: chain.iconUrl, alt: chain.name, className: `matchid-token-chain` })
|
|
6072
6101
|
] }),
|
|
6073
|
-
/* @__PURE__ */
|
|
6074
|
-
/* @__PURE__ */
|
|
6102
|
+
/* @__PURE__ */ jsxs21("div", { className: `matchid-token-name`, children: [
|
|
6103
|
+
/* @__PURE__ */ jsx31(NumberFormatter, { value: token.balance, tFixNum: 10 }),
|
|
6075
6104
|
" ",
|
|
6076
6105
|
token.symbol
|
|
6077
6106
|
] })
|
|
6078
6107
|
] }),
|
|
6079
|
-
token.address.toLowerCase() != NATIVE_TOKEN_ADDRESS && /* @__PURE__ */
|
|
6080
|
-
/* @__PURE__ */
|
|
6081
|
-
/* @__PURE__ */
|
|
6108
|
+
token.address.toLowerCase() != NATIVE_TOKEN_ADDRESS && /* @__PURE__ */ jsxs21("div", { className: `matchid-token-contract`, children: [
|
|
6109
|
+
/* @__PURE__ */ jsx31("div", { className: "matchid-token-contract-title", children: "Contract address" }),
|
|
6110
|
+
/* @__PURE__ */ jsx31("div", { className: "matchid-token-contract-address", children: token.address })
|
|
6082
6111
|
] })
|
|
6083
6112
|
] }),
|
|
6084
|
-
/* @__PURE__ */
|
|
6113
|
+
/* @__PURE__ */ jsx31(Button, { size: "lg", block: true, highlight: true, onClick: onSend, children: /* @__PURE__ */ jsx31(FormattedMessage12, { id: "send" }) })
|
|
6085
6114
|
] }) });
|
|
6086
6115
|
}
|
|
6087
6116
|
|
|
6088
6117
|
// src/components/TokenSendList/index.tsx
|
|
6089
|
-
import { useState as
|
|
6090
|
-
import { FormattedMessage as
|
|
6091
|
-
import { jsx as
|
|
6118
|
+
import { useState as useState27 } from "react";
|
|
6119
|
+
import { FormattedMessage as FormattedMessage13 } from "react-intl";
|
|
6120
|
+
import { jsx as jsx32, jsxs as jsxs22 } from "react/jsx-runtime";
|
|
6092
6121
|
function TokenSendList({ close }) {
|
|
6093
6122
|
const walletAssets = useMatchWalletAssets();
|
|
6094
6123
|
const matchWalletAssetList = useMatchWalletAssetList({
|
|
6095
6124
|
list: walletAssets.mergedAssets
|
|
6096
6125
|
});
|
|
6097
6126
|
const { list } = useMatchChain();
|
|
6098
|
-
const [checked, setChecked] =
|
|
6127
|
+
const [checked, setChecked] = useState27();
|
|
6099
6128
|
const modal = useModal();
|
|
6100
6129
|
const onNext = () => {
|
|
6101
6130
|
checked && modal.show((props) => {
|
|
6102
|
-
return /* @__PURE__ */
|
|
6131
|
+
return /* @__PURE__ */ jsx32(TokenSend, { onClose: () => {
|
|
6103
6132
|
props.close();
|
|
6104
6133
|
close();
|
|
6105
6134
|
}, onBack: props.close, zIndex: props.zIndex, token: checked });
|
|
6106
6135
|
});
|
|
6107
6136
|
};
|
|
6108
|
-
return /* @__PURE__ */
|
|
6109
|
-
/* @__PURE__ */
|
|
6137
|
+
return /* @__PURE__ */ jsxs22("div", { className: "matchid-token-send-list-box", children: [
|
|
6138
|
+
/* @__PURE__ */ jsx32("div", { className: "matchid-token-send-list", children: matchWalletAssetList.list.map((n, index) => {
|
|
6110
6139
|
const chain = list?.find((m) => m.id.toString() === n.chain_id);
|
|
6111
|
-
return /* @__PURE__ */
|
|
6140
|
+
return /* @__PURE__ */ jsxs22(
|
|
6112
6141
|
"div",
|
|
6113
6142
|
{
|
|
6114
6143
|
className: `matchid-token-send-item ${checked?.address == n.address ? "matchid-token-send-chekced" : ""}`,
|
|
@@ -6116,10 +6145,10 @@ function TokenSendList({ close }) {
|
|
|
6116
6145
|
setChecked(n);
|
|
6117
6146
|
},
|
|
6118
6147
|
children: [
|
|
6119
|
-
/* @__PURE__ */
|
|
6120
|
-
/* @__PURE__ */
|
|
6121
|
-
/* @__PURE__ */
|
|
6122
|
-
n.icon ? /* @__PURE__ */
|
|
6148
|
+
/* @__PURE__ */ jsx32(Radio, { checked: checked?.address == n.address }),
|
|
6149
|
+
/* @__PURE__ */ jsxs22("div", { className: "matchid-token-send-content", children: [
|
|
6150
|
+
/* @__PURE__ */ jsxs22("div", { className: "matchid-token-send-logo", children: [
|
|
6151
|
+
n.icon ? /* @__PURE__ */ jsx32("img", { src: n.icon, alt: n.symbol, className: `matchid-token-send-icon` }) : /* @__PURE__ */ jsx32(
|
|
6123
6152
|
AlphaAvatar2,
|
|
6124
6153
|
{
|
|
6125
6154
|
className: `matchid-token-send-icon`,
|
|
@@ -6127,7 +6156,7 @@ function TokenSendList({ close }) {
|
|
|
6127
6156
|
name: n.symbol || n.name || ""
|
|
6128
6157
|
}
|
|
6129
6158
|
),
|
|
6130
|
-
chain?.iconUrl && /* @__PURE__ */
|
|
6159
|
+
chain?.iconUrl && /* @__PURE__ */ jsx32(
|
|
6131
6160
|
"img",
|
|
6132
6161
|
{
|
|
6133
6162
|
src: chain.iconUrl,
|
|
@@ -6136,9 +6165,9 @@ function TokenSendList({ close }) {
|
|
|
6136
6165
|
}
|
|
6137
6166
|
)
|
|
6138
6167
|
] }),
|
|
6139
|
-
/* @__PURE__ */
|
|
6140
|
-
/* @__PURE__ */
|
|
6141
|
-
/* @__PURE__ */
|
|
6168
|
+
/* @__PURE__ */ jsxs22("div", { className: `matchid-token-send-info`, children: [
|
|
6169
|
+
/* @__PURE__ */ jsx32("div", { className: `matchid-token-send-name`, children: n.symbol }),
|
|
6170
|
+
/* @__PURE__ */ jsx32("div", { className: `matchid-token-send-balance`, children: /* @__PURE__ */ jsx32(NumberFormatter, { value: n.balance, tFixNum: 3 }) })
|
|
6142
6171
|
] })
|
|
6143
6172
|
] })
|
|
6144
6173
|
]
|
|
@@ -6146,23 +6175,24 @@ function TokenSendList({ close }) {
|
|
|
6146
6175
|
index
|
|
6147
6176
|
);
|
|
6148
6177
|
}) }),
|
|
6149
|
-
/* @__PURE__ */
|
|
6178
|
+
/* @__PURE__ */ jsx32(Button, { size: "lg", highlight: true, block: true, disabled: !checked, onClick: onNext, children: /* @__PURE__ */ jsx32(FormattedMessage13, { id: "next" }) })
|
|
6150
6179
|
] });
|
|
6151
6180
|
}
|
|
6152
6181
|
|
|
6153
6182
|
// src/components/TransactionList/index.tsx
|
|
6154
6183
|
import InfiniteScroll from "react-infinite-scroll-component";
|
|
6155
|
-
import { useEffect as
|
|
6184
|
+
import { useEffect as useEffect25, useMemo as useMemo16, useState as useState28 } from "react";
|
|
6156
6185
|
import { decodeFunctionData, defineChain as defineChain4, formatUnits as formatUnits3 } from "viem";
|
|
6157
|
-
import { erc20Abi as
|
|
6158
|
-
import {
|
|
6186
|
+
import { erc20Abi as erc20Abi3 } from "viem";
|
|
6187
|
+
import { FormattedMessage as FormattedMessage14 } from "react-intl";
|
|
6188
|
+
import { jsx as jsx33, jsxs as jsxs23 } from "react/jsx-runtime";
|
|
6159
6189
|
var Item = ({ data }) => {
|
|
6160
6190
|
const { address } = useWallet();
|
|
6161
6191
|
const isOut = data.from == address;
|
|
6162
6192
|
const { chain, chainId, explorerLink, formatUnits: chainFormatUnits } = useMatchChain();
|
|
6163
6193
|
const { getContract } = useContractStore_default();
|
|
6164
|
-
const [shouldRefetch, setShouldRefetch] =
|
|
6165
|
-
const transferType =
|
|
6194
|
+
const [shouldRefetch, setShouldRefetch] = useState28(true);
|
|
6195
|
+
const transferType = useMemo16(() => {
|
|
6166
6196
|
const methodId = data.input.substring(2, 10);
|
|
6167
6197
|
if (methodId == "095ea7b3") {
|
|
6168
6198
|
return "erc20_approve";
|
|
@@ -6172,20 +6202,20 @@ var Item = ({ data }) => {
|
|
|
6172
6202
|
}
|
|
6173
6203
|
return "unknown";
|
|
6174
6204
|
}, [data.input]);
|
|
6175
|
-
const to =
|
|
6205
|
+
const to = useMemo16(() => {
|
|
6176
6206
|
if (transferType == "erc20_transfer") {
|
|
6177
6207
|
const decodeData = decodeFunctionData({
|
|
6178
|
-
abi:
|
|
6208
|
+
abi: erc20Abi3,
|
|
6179
6209
|
data: data.input
|
|
6180
6210
|
});
|
|
6181
6211
|
return decodeData.args[0];
|
|
6182
6212
|
}
|
|
6183
6213
|
return data.to;
|
|
6184
6214
|
}, [data.input, transferType, data.to]);
|
|
6185
|
-
const amount =
|
|
6215
|
+
const amount = useMemo16(() => {
|
|
6186
6216
|
if (transferType == "erc20_transfer") {
|
|
6187
6217
|
const decodeData = decodeFunctionData({
|
|
6188
|
-
abi:
|
|
6218
|
+
abi: erc20Abi3,
|
|
6189
6219
|
data: data.input
|
|
6190
6220
|
});
|
|
6191
6221
|
const value = decodeData.args[1];
|
|
@@ -6193,7 +6223,7 @@ var Item = ({ data }) => {
|
|
|
6193
6223
|
}
|
|
6194
6224
|
return chainFormatUnits(BigInt(data.value));
|
|
6195
6225
|
}, [data.input, transferType, data.value, getContract, chainId, data.to]);
|
|
6196
|
-
|
|
6226
|
+
useEffect25(() => {
|
|
6197
6227
|
if (data.hash) {
|
|
6198
6228
|
setShouldRefetch(true);
|
|
6199
6229
|
}
|
|
@@ -6205,7 +6235,7 @@ var Item = ({ data }) => {
|
|
|
6205
6235
|
refetchInterval: shouldRefetch ? 3e3 : false,
|
|
6206
6236
|
enabled: shouldRefetch
|
|
6207
6237
|
});
|
|
6208
|
-
const status =
|
|
6238
|
+
const status = useMemo16(() => {
|
|
6209
6239
|
if (data.source == "matchain") {
|
|
6210
6240
|
switch (data.extra.status) {
|
|
6211
6241
|
case "ok":
|
|
@@ -6232,27 +6262,27 @@ var Item = ({ data }) => {
|
|
|
6232
6262
|
}
|
|
6233
6263
|
return "loading";
|
|
6234
6264
|
}, [data.extra?.status, data.source, hashQuery.data]);
|
|
6235
|
-
|
|
6265
|
+
useEffect25(() => {
|
|
6236
6266
|
setShouldRefetch(status == "loading");
|
|
6237
6267
|
}, [status]);
|
|
6238
|
-
const symbol =
|
|
6268
|
+
const symbol = useMemo16(() => {
|
|
6239
6269
|
if (transferType == "erc20_transfer") {
|
|
6240
6270
|
return getContract(chainId || 0, data.to)?.symbol || getContract(chainId || 0, data.to)?.name || "unknown";
|
|
6241
6271
|
}
|
|
6242
6272
|
return chain?.nativeCurrency.symbol || chain?.nativeCurrency.name;
|
|
6243
6273
|
}, [transferType, chain, getContract, chainId, data.to]);
|
|
6244
|
-
return /* @__PURE__ */
|
|
6274
|
+
return /* @__PURE__ */ jsxs23(
|
|
6245
6275
|
"a",
|
|
6246
6276
|
{
|
|
6247
6277
|
href: explorerLink(`tx/${data.hash}`),
|
|
6248
6278
|
target: "_blank",
|
|
6249
6279
|
className: `matchid-transaction-item`,
|
|
6250
6280
|
children: [
|
|
6251
|
-
/* @__PURE__ */
|
|
6252
|
-
/* @__PURE__ */
|
|
6253
|
-
/* @__PURE__ */
|
|
6254
|
-
/* @__PURE__ */
|
|
6255
|
-
/* @__PURE__ */
|
|
6281
|
+
/* @__PURE__ */ jsxs23("div", { className: `matchid-transacton-item-container`, children: [
|
|
6282
|
+
/* @__PURE__ */ jsx33("div", { className: "matchid-transaction-item-icon", children: /* @__PURE__ */ jsx33(ArrowSendIcon, { className: !isOut ? "rotate-180" : "" }) }),
|
|
6283
|
+
/* @__PURE__ */ jsxs23("div", { className: `matchid-transaction-item-details`, children: [
|
|
6284
|
+
/* @__PURE__ */ jsx33("div", { className: `matchid-transaction-item-address`, children: formatAddress(to, 6, 4) }),
|
|
6285
|
+
/* @__PURE__ */ jsx33(
|
|
6256
6286
|
"div",
|
|
6257
6287
|
{
|
|
6258
6288
|
className: `matchid-transaction-item-timestamp`,
|
|
@@ -6261,11 +6291,11 @@ var Item = ({ data }) => {
|
|
|
6261
6291
|
)
|
|
6262
6292
|
] })
|
|
6263
6293
|
] }),
|
|
6264
|
-
/* @__PURE__ */
|
|
6265
|
-
/* @__PURE__ */
|
|
6266
|
-
status == "loading" && /* @__PURE__ */
|
|
6267
|
-
status == "success" && /* @__PURE__ */
|
|
6268
|
-
status == "error" && /* @__PURE__ */
|
|
6294
|
+
/* @__PURE__ */ jsxs23("div", { className: `matchid-transaction-item-amount ${"matchid-transaction-item-" + status}`, children: [
|
|
6295
|
+
/* @__PURE__ */ jsx33(NumberFormatter, { value: amount, tFixNum: 6, prefix: isOut ? "-" : "+", suffix: " " + symbol }),
|
|
6296
|
+
status == "loading" && /* @__PURE__ */ jsx33(LoadingIcon_default, { color: "#000000", size: 16, rotate: true }),
|
|
6297
|
+
status == "success" && /* @__PURE__ */ jsx33(CheckRoundIcon, { size: 16 }),
|
|
6298
|
+
status == "error" && /* @__PURE__ */ jsx33(InfoRoundIcon, { size: 16 })
|
|
6269
6299
|
] })
|
|
6270
6300
|
]
|
|
6271
6301
|
}
|
|
@@ -6275,19 +6305,19 @@ function TransactionList({
|
|
|
6275
6305
|
scrollableTarget
|
|
6276
6306
|
}) {
|
|
6277
6307
|
const { fetchMoreData, hasMore, items } = useMatchWalletRecords();
|
|
6278
|
-
return /* @__PURE__ */
|
|
6308
|
+
return /* @__PURE__ */ jsx33(
|
|
6279
6309
|
InfiniteScroll,
|
|
6280
6310
|
{
|
|
6281
6311
|
scrollableTarget,
|
|
6282
6312
|
dataLength: items.length,
|
|
6283
6313
|
next: fetchMoreData,
|
|
6284
6314
|
hasMore,
|
|
6285
|
-
loader: /* @__PURE__ */
|
|
6286
|
-
/* @__PURE__ */
|
|
6315
|
+
loader: /* @__PURE__ */ jsxs23("div", { className: "matchid-list-nomore", children: [
|
|
6316
|
+
/* @__PURE__ */ jsx33(LoadingIcon_default, { rotate: true, size: 16, color: "black" }),
|
|
6287
6317
|
"Loading..."
|
|
6288
6318
|
] }),
|
|
6289
|
-
endMessage: items.length > 0 ? /* @__PURE__ */
|
|
6290
|
-
children: items.length == 0 && !hasMore ? /* @__PURE__ */
|
|
6319
|
+
endMessage: items.length > 0 ? /* @__PURE__ */ jsx33("div", { className: `matchid-list-nomore`, children: /* @__PURE__ */ jsx33(FormattedMessage14, { id: "noMoreRecords" }) }) : /* @__PURE__ */ jsx33("div", { className: `matchid-list-nomore`, children: /* @__PURE__ */ jsx33(FormattedMessage14, { id: "noRecords" }) }),
|
|
6320
|
+
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)) })
|
|
6291
6321
|
}
|
|
6292
6322
|
);
|
|
6293
6323
|
}
|
|
@@ -6338,4 +6368,4 @@ export {
|
|
|
6338
6368
|
MatchProvider,
|
|
6339
6369
|
useMatch
|
|
6340
6370
|
};
|
|
6341
|
-
//# sourceMappingURL=chunk-
|
|
6371
|
+
//# sourceMappingURL=chunk-FYW4P7HS.mjs.map
|