@matchain/matchid-sdk-react 0.1.48-alpha.5 → 0.1.48-alpha.7
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 +5 -1
- package/dist/assets/icon/index.d.ts +5 -1
- package/dist/assets/icon/index.js +39 -0
- package/dist/assets/icon/index.js.map +1 -1
- package/dist/assets/icon/index.mjs +5 -1
- package/dist/{chunk-6GQ2H4L2.mjs → chunk-2CK7JQWH.mjs} +302 -174
- package/dist/chunk-2CK7JQWH.mjs.map +1 -0
- package/dist/{chunk-A5D3NKTK.mjs → chunk-7UTR37EJ.mjs} +39 -2
- package/dist/chunk-7UTR37EJ.mjs.map +1 -0
- package/dist/{chunk-LNSJ3ZXG.mjs → chunk-USKUYOYJ.mjs} +2 -2
- package/dist/{chunk-ZYDJICK4.mjs → chunk-YXPWZXPT.mjs} +2 -2
- package/dist/components/index.js +331 -324
- package/dist/components/index.js.map +1 -1
- package/dist/components/index.mjs +3 -3
- package/dist/hooks/api/index.js +64 -57
- package/dist/hooks/api/index.js.map +1 -1
- package/dist/hooks/api/index.mjs +4 -4
- package/dist/hooks/index.d.mts +1 -1
- package/dist/hooks/index.d.ts +1 -1
- package/dist/hooks/index.js +213 -62
- package/dist/hooks/index.js.map +1 -1
- package/dist/hooks/index.mjs +5 -3
- package/dist/{index-TkB89QxX.d.ts → index-DaEFoDv_.d.ts} +8 -2
- package/dist/{index-DKyt0for.d.mts → index-DktvxNJc.d.mts} +8 -2
- package/dist/index.d.mts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +495 -345
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +4 -4
- package/dist/ui/index.js +64 -58
- package/dist/ui/index.js.map +1 -1
- package/dist/ui/index.mjs +2 -2
- package/package.json +1 -1
- package/dist/chunk-6GQ2H4L2.mjs.map +0 -1
- package/dist/chunk-A5D3NKTK.mjs.map +0 -1
- /package/dist/{chunk-LNSJ3ZXG.mjs.map → chunk-USKUYOYJ.mjs.map} +0 -0
- /package/dist/{chunk-ZYDJICK4.mjs.map → chunk-YXPWZXPT.mjs.map} +0 -0
|
@@ -12,7 +12,7 @@ import {
|
|
|
12
12
|
matchlog_default,
|
|
13
13
|
useDownMd,
|
|
14
14
|
useLayout_exports
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-USKUYOYJ.mjs";
|
|
16
16
|
import {
|
|
17
17
|
ArrowDownIcon,
|
|
18
18
|
ArrowRightIcon,
|
|
@@ -32,6 +32,7 @@ import {
|
|
|
32
32
|
FacebookIcon,
|
|
33
33
|
GithubIcon,
|
|
34
34
|
GoogleIcon,
|
|
35
|
+
InfoLineIcon,
|
|
35
36
|
LeatherIcon,
|
|
36
37
|
LinkedinIcon,
|
|
37
38
|
LoginIcon_default,
|
|
@@ -50,7 +51,7 @@ import {
|
|
|
50
51
|
XIcon,
|
|
51
52
|
XverseIcon,
|
|
52
53
|
YoutubeIcon
|
|
53
|
-
} from "./chunk-
|
|
54
|
+
} from "./chunk-7UTR37EJ.mjs";
|
|
54
55
|
import {
|
|
55
56
|
__export
|
|
56
57
|
} from "./chunk-J5LGTIGS.mjs";
|
|
@@ -79,7 +80,7 @@ __export(components_exports, {
|
|
|
79
80
|
});
|
|
80
81
|
|
|
81
82
|
// src/components/EmailModal/index.tsx
|
|
82
|
-
import { useEffect as
|
|
83
|
+
import { useEffect as useEffect14, useState as useState13 } from "react";
|
|
83
84
|
|
|
84
85
|
// src/components/EmailModal/StepEmail.tsx
|
|
85
86
|
import { useEffect, useMemo, useState } from "react";
|
|
@@ -596,6 +597,7 @@ __export(hooks_exports, {
|
|
|
596
597
|
useModal: () => useModal,
|
|
597
598
|
useReceipt: () => useReceipt,
|
|
598
599
|
useToast: () => useToast,
|
|
600
|
+
useTransaction: () => useTransaction,
|
|
599
601
|
useUserInfo: () => useUserInfo,
|
|
600
602
|
useWallet: () => useWallet
|
|
601
603
|
});
|
|
@@ -1238,7 +1240,7 @@ function useMatchChain() {
|
|
|
1238
1240
|
|
|
1239
1241
|
// src/hooks/useMatchWallet.tsx
|
|
1240
1242
|
import { QRCode } from "react-qrcode";
|
|
1241
|
-
import { useEffect as useEffect6, useState as useState7 } from "react";
|
|
1243
|
+
import { useEffect as useEffect6, useRef, useState as useState7 } from "react";
|
|
1242
1244
|
|
|
1243
1245
|
// example/src/config/contract.ts
|
|
1244
1246
|
var address = "0x4143e29770fd63e24bb1f32d50bf8a590e34de4b";
|
|
@@ -1297,8 +1299,9 @@ function useMatchWalletRecords({
|
|
|
1297
1299
|
const [hasMore, setHasMore] = useState7(true);
|
|
1298
1300
|
const [items, setItems] = useState7([]);
|
|
1299
1301
|
const { chainId } = useMatchChain();
|
|
1302
|
+
const hasMoreRef = useRef(hasMore);
|
|
1300
1303
|
const fetchMoreData = async () => {
|
|
1301
|
-
if (!
|
|
1304
|
+
if (!hasMoreRef.current) {
|
|
1302
1305
|
return;
|
|
1303
1306
|
}
|
|
1304
1307
|
const chainIdStr = chainId ? chainId.toString() : "";
|
|
@@ -1311,12 +1314,14 @@ function useMatchWalletRecords({
|
|
|
1311
1314
|
if (res.data && res.data.transactions.length > 0) {
|
|
1312
1315
|
setItems(items.concat(res.data.transactions));
|
|
1313
1316
|
}
|
|
1317
|
+
hasMoreRef.current = res.data && res.data.transactions.length >= pageSize;
|
|
1314
1318
|
setHasMore(res.data && res.data.transactions.length >= pageSize);
|
|
1315
1319
|
}
|
|
1316
1320
|
};
|
|
1317
1321
|
const onInit = async () => {
|
|
1318
1322
|
setItems([]);
|
|
1319
1323
|
setHasMore(true);
|
|
1324
|
+
hasMoreRef.current = true;
|
|
1320
1325
|
fetchMoreData();
|
|
1321
1326
|
};
|
|
1322
1327
|
useEffect6(() => {
|
|
@@ -1456,7 +1461,7 @@ function useReceipt({
|
|
|
1456
1461
|
chain: defineChain(chain),
|
|
1457
1462
|
transport: http()
|
|
1458
1463
|
});
|
|
1459
|
-
const receipt = await publicClient.
|
|
1464
|
+
const receipt = await publicClient.getTransactionReceipt({ hash });
|
|
1460
1465
|
if (!receipt) {
|
|
1461
1466
|
return false;
|
|
1462
1467
|
}
|
|
@@ -1476,8 +1481,153 @@ function useReceipt({
|
|
|
1476
1481
|
return query;
|
|
1477
1482
|
}
|
|
1478
1483
|
|
|
1484
|
+
// src/hooks/useTransaction.tsx
|
|
1485
|
+
import { useState as useState9, useCallback as useCallback5, useEffect as useEffect8 } from "react";
|
|
1486
|
+
import { useQuery as useQuery3 } from "@tanstack/react-query";
|
|
1487
|
+
import { createPublicClient as createPublicClient2, defineChain as defineChain2, http as http2 } from "viem";
|
|
1488
|
+
var CACHE_TTL2 = 86400 * 30 * 1e3;
|
|
1489
|
+
var MAX_CACHE_SIZE2 = 500;
|
|
1490
|
+
var STORAGE_KEY2 = "match_transaction_logs";
|
|
1491
|
+
function useTransactionCache() {
|
|
1492
|
+
const [cache, setCache] = useState9(/* @__PURE__ */ new Map());
|
|
1493
|
+
const isLocalStorageAvailable = (() => {
|
|
1494
|
+
try {
|
|
1495
|
+
const testKey = "__test__";
|
|
1496
|
+
localStorage.setItem(testKey, "1");
|
|
1497
|
+
localStorage.removeItem(testKey);
|
|
1498
|
+
return true;
|
|
1499
|
+
} catch (e) {
|
|
1500
|
+
return false;
|
|
1501
|
+
}
|
|
1502
|
+
})();
|
|
1503
|
+
useEffect8(() => {
|
|
1504
|
+
if (isLocalStorageAvailable) {
|
|
1505
|
+
try {
|
|
1506
|
+
const storedData = localStorage.getItem(STORAGE_KEY2);
|
|
1507
|
+
if (storedData) {
|
|
1508
|
+
try {
|
|
1509
|
+
const parsed = JSON.parse(storedData);
|
|
1510
|
+
const now = Date.now();
|
|
1511
|
+
const validEntries = Object.entries(parsed).filter(([_, entry]) => typeof entry === "object" && entry !== null && "timestamp" in entry && now - entry.timestamp <= CACHE_TTL2).map(([key, entry]) => [key, entry]);
|
|
1512
|
+
setCache(new Map(validEntries));
|
|
1513
|
+
} catch (e) {
|
|
1514
|
+
console.error("Failed to parse cache from localStorage:", e);
|
|
1515
|
+
}
|
|
1516
|
+
}
|
|
1517
|
+
} catch (e) {
|
|
1518
|
+
console.error("Failed to load cache from localStorage:", e);
|
|
1519
|
+
}
|
|
1520
|
+
}
|
|
1521
|
+
}, []);
|
|
1522
|
+
const updateLocalStorage = useCallback5((updatedCache) => {
|
|
1523
|
+
if (isLocalStorageAvailable) {
|
|
1524
|
+
try {
|
|
1525
|
+
const storedData = localStorage.getItem(STORAGE_KEY2);
|
|
1526
|
+
let parsed = {};
|
|
1527
|
+
if (storedData) {
|
|
1528
|
+
parsed = JSON.parse(storedData);
|
|
1529
|
+
}
|
|
1530
|
+
updatedCache.forEach((entry, key) => {
|
|
1531
|
+
parsed[key] = entry;
|
|
1532
|
+
});
|
|
1533
|
+
localStorage.setItem(STORAGE_KEY2, JSON.stringify(parsed));
|
|
1534
|
+
} catch (e) {
|
|
1535
|
+
console.error("Failed to update localStorage:", e);
|
|
1536
|
+
}
|
|
1537
|
+
}
|
|
1538
|
+
}, []);
|
|
1539
|
+
const set = useCallback5((key, value) => {
|
|
1540
|
+
const now = Date.now();
|
|
1541
|
+
const newCache = new Map(cache);
|
|
1542
|
+
newCache.forEach((entry, k) => {
|
|
1543
|
+
if (now - entry.timestamp > CACHE_TTL2) {
|
|
1544
|
+
newCache.delete(k);
|
|
1545
|
+
}
|
|
1546
|
+
});
|
|
1547
|
+
if (newCache.size >= MAX_CACHE_SIZE2) {
|
|
1548
|
+
const firstKey = newCache.keys().next().value;
|
|
1549
|
+
if (firstKey !== void 0) {
|
|
1550
|
+
newCache.delete(firstKey);
|
|
1551
|
+
}
|
|
1552
|
+
}
|
|
1553
|
+
newCache.set(key, { value, timestamp: now });
|
|
1554
|
+
setCache(newCache);
|
|
1555
|
+
updateLocalStorage(newCache);
|
|
1556
|
+
}, [cache, updateLocalStorage]);
|
|
1557
|
+
const get = useCallback5((key) => {
|
|
1558
|
+
const entry = cache.get(key);
|
|
1559
|
+
if (entry) {
|
|
1560
|
+
if (Date.now() - entry.timestamp > CACHE_TTL2) {
|
|
1561
|
+
const newCache = new Map(cache);
|
|
1562
|
+
newCache.delete(key);
|
|
1563
|
+
setCache(newCache);
|
|
1564
|
+
updateLocalStorage(newCache);
|
|
1565
|
+
return void 0;
|
|
1566
|
+
}
|
|
1567
|
+
return entry.value;
|
|
1568
|
+
}
|
|
1569
|
+
return void 0;
|
|
1570
|
+
}, [cache, updateLocalStorage]);
|
|
1571
|
+
const del = useCallback5((key) => {
|
|
1572
|
+
if (cache.has(key)) {
|
|
1573
|
+
const newCache = new Map(cache);
|
|
1574
|
+
newCache.delete(key);
|
|
1575
|
+
setCache(newCache);
|
|
1576
|
+
updateLocalStorage(newCache);
|
|
1577
|
+
}
|
|
1578
|
+
}, [cache, updateLocalStorage]);
|
|
1579
|
+
const clear = useCallback5(() => {
|
|
1580
|
+
setCache(/* @__PURE__ */ new Map());
|
|
1581
|
+
if (isLocalStorageAvailable) {
|
|
1582
|
+
localStorage.removeItem(STORAGE_KEY2);
|
|
1583
|
+
}
|
|
1584
|
+
}, [isLocalStorageAvailable]);
|
|
1585
|
+
return { set, get, del, clear };
|
|
1586
|
+
}
|
|
1587
|
+
function useTransaction({
|
|
1588
|
+
chainId,
|
|
1589
|
+
hash
|
|
1590
|
+
}) {
|
|
1591
|
+
const { list } = useMatchChain();
|
|
1592
|
+
const cache = useTransactionCache();
|
|
1593
|
+
const chain = list?.find((item) => item.id === chainId);
|
|
1594
|
+
const [shouldRefetch, setShouldRefetch] = useState9(true);
|
|
1595
|
+
const query = useQuery3({
|
|
1596
|
+
queryKey: ["match-tx-transaction", hash, chain],
|
|
1597
|
+
queryFn: async () => {
|
|
1598
|
+
if (!chain || !hash) return false;
|
|
1599
|
+
const cacheKey = `${chain.id}-${hash}`;
|
|
1600
|
+
if (cache.get(cacheKey)) {
|
|
1601
|
+
return cache.get(cacheKey);
|
|
1602
|
+
}
|
|
1603
|
+
try {
|
|
1604
|
+
const publicClient = createPublicClient2({
|
|
1605
|
+
//@ts-ignore
|
|
1606
|
+
chain: defineChain2(chain),
|
|
1607
|
+
transport: http2()
|
|
1608
|
+
});
|
|
1609
|
+
const transaction = await publicClient.getTransaction({ hash });
|
|
1610
|
+
if (!transaction) {
|
|
1611
|
+
return false;
|
|
1612
|
+
}
|
|
1613
|
+
cache.set(cacheKey, transaction);
|
|
1614
|
+
return transaction;
|
|
1615
|
+
} catch (e) {
|
|
1616
|
+
return false;
|
|
1617
|
+
}
|
|
1618
|
+
},
|
|
1619
|
+
refetchInterval: shouldRefetch ? 1e4 : false
|
|
1620
|
+
});
|
|
1621
|
+
useEffect8(() => {
|
|
1622
|
+
if (query.data) {
|
|
1623
|
+
setShouldRefetch(false);
|
|
1624
|
+
}
|
|
1625
|
+
}, [query.data]);
|
|
1626
|
+
return query;
|
|
1627
|
+
}
|
|
1628
|
+
|
|
1479
1629
|
// src/components/CEXBindModal/index.tsx
|
|
1480
|
-
import { useEffect as
|
|
1630
|
+
import { useEffect as useEffect9, useMemo as useMemo5, useState as useState10 } from "react";
|
|
1481
1631
|
import { FormattedMessage as FormattedMessage2, useIntl as useIntl2 } from "react-intl";
|
|
1482
1632
|
import { jsx as jsx7, jsxs as jsxs6 } from "react/jsx-runtime";
|
|
1483
1633
|
function CEXBindModal({
|
|
@@ -1488,16 +1638,16 @@ function CEXBindModal({
|
|
|
1488
1638
|
}) {
|
|
1489
1639
|
const intl = useIntl2();
|
|
1490
1640
|
const { events } = useMatch();
|
|
1491
|
-
const [APIPassphrase, setAPIPassphrase] =
|
|
1641
|
+
const [APIPassphrase, setAPIPassphrase] = useState10("");
|
|
1492
1642
|
const { refreshOverview } = useUserInfo();
|
|
1493
|
-
const [loading, setLoading] =
|
|
1494
|
-
const [key, setKey] =
|
|
1495
|
-
const [secret, setSecret] =
|
|
1496
|
-
const [error, setError] =
|
|
1643
|
+
const [loading, setLoading] = useState10(false);
|
|
1644
|
+
const [key, setKey] = useState10("");
|
|
1645
|
+
const [secret, setSecret] = useState10("");
|
|
1646
|
+
const [error, setError] = useState10("");
|
|
1497
1647
|
const needPassphrase = useMemo5(() => {
|
|
1498
1648
|
return ["bitget", "okx"].includes(type.toLowerCase());
|
|
1499
1649
|
}, [type]);
|
|
1500
|
-
|
|
1650
|
+
useEffect9(() => {
|
|
1501
1651
|
if (isOpen) {
|
|
1502
1652
|
setSecret("");
|
|
1503
1653
|
setKey("");
|
|
@@ -1677,7 +1827,7 @@ var Providers = ({ children }) => {
|
|
|
1677
1827
|
var context_default = Providers;
|
|
1678
1828
|
|
|
1679
1829
|
// src/hooks/useWalletInit.ts
|
|
1680
|
-
import { useEffect as
|
|
1830
|
+
import { useEffect as useEffect10, useRef as useRef2 } from "react";
|
|
1681
1831
|
|
|
1682
1832
|
// src/utils/wallet.ts
|
|
1683
1833
|
var sendMessage = ({ method, data, resolve, reject, timeout }) => {
|
|
@@ -1710,11 +1860,11 @@ function useWalletInit({
|
|
|
1710
1860
|
}) {
|
|
1711
1861
|
const { endpoints, token, overview, setWallet, wallet, appid, locale, refreshOverview } = useLocalStore_default();
|
|
1712
1862
|
const { setWalletReady, walletReady } = useStore_default();
|
|
1713
|
-
const iframeReadyRef =
|
|
1714
|
-
|
|
1863
|
+
const iframeReadyRef = useRef2(walletReady);
|
|
1864
|
+
useEffect10(() => {
|
|
1715
1865
|
setWallet(config);
|
|
1716
1866
|
}, [config]);
|
|
1717
|
-
|
|
1867
|
+
useEffect10(() => {
|
|
1718
1868
|
matchlog_default.log("sdk.mpc.status", walletReady, iframeReadyRef.current);
|
|
1719
1869
|
iframeReadyRef.current = walletReady;
|
|
1720
1870
|
if (iframeReadyRef.current) {
|
|
@@ -1731,7 +1881,7 @@ function useWalletInit({
|
|
|
1731
1881
|
onReady();
|
|
1732
1882
|
}
|
|
1733
1883
|
}, [walletReady]);
|
|
1734
|
-
|
|
1884
|
+
useEffect10(() => {
|
|
1735
1885
|
if (!endpoints.auth || !appid || !token || !config) {
|
|
1736
1886
|
const existingIframe = getWalletIframe();
|
|
1737
1887
|
if (existingIframe) {
|
|
@@ -1831,7 +1981,7 @@ function useWalletInit({
|
|
|
1831
1981
|
}
|
|
1832
1982
|
}
|
|
1833
1983
|
}, [endpoints.auth, appid, token, config]);
|
|
1834
|
-
|
|
1984
|
+
useEffect10(() => {
|
|
1835
1985
|
const messageHandle = async (e) => {
|
|
1836
1986
|
if (e.origin !== endpoints.auth.substring(0, endpoints.auth.length - 1)) {
|
|
1837
1987
|
return;
|
|
@@ -1912,7 +2062,7 @@ function useWalletInit({
|
|
|
1912
2062
|
}
|
|
1913
2063
|
|
|
1914
2064
|
// src/hooks/useInit.tsx
|
|
1915
|
-
import { useEffect as
|
|
2065
|
+
import { useEffect as useEffect11, useRef as useRef3 } from "react";
|
|
1916
2066
|
function useInit({
|
|
1917
2067
|
theme,
|
|
1918
2068
|
appid,
|
|
@@ -1932,23 +2082,23 @@ function useInit({
|
|
|
1932
2082
|
locale: realLocale
|
|
1933
2083
|
} = useLocalStore_default();
|
|
1934
2084
|
const walletModalStore = useWalletModalStore();
|
|
1935
|
-
const overviewLoadingRef =
|
|
2085
|
+
const overviewLoadingRef = useRef3(false);
|
|
1936
2086
|
const searchParams = new URLSearchParams(window.location.search);
|
|
1937
2087
|
const matchToken = searchParams.get("matchToken");
|
|
1938
2088
|
const realEndpoints = endpoints || env_default.endpoints;
|
|
1939
|
-
|
|
2089
|
+
useEffect11(() => {
|
|
1940
2090
|
setTheme(theme);
|
|
1941
2091
|
}, [theme]);
|
|
1942
|
-
|
|
2092
|
+
useEffect11(() => {
|
|
1943
2093
|
setAppid(appid);
|
|
1944
2094
|
}, [appid]);
|
|
1945
|
-
|
|
2095
|
+
useEffect11(() => {
|
|
1946
2096
|
setEndpoints(realEndpoints);
|
|
1947
2097
|
}, [realEndpoints]);
|
|
1948
|
-
|
|
2098
|
+
useEffect11(() => {
|
|
1949
2099
|
setLocale(locale || "en");
|
|
1950
2100
|
}, [locale]);
|
|
1951
|
-
|
|
2101
|
+
useEffect11(() => {
|
|
1952
2102
|
if (matchToken) {
|
|
1953
2103
|
const tokenData = JSON.parse(atob(matchToken));
|
|
1954
2104
|
if (tokenData && tokenData.mid && tokenData.token) {
|
|
@@ -1959,7 +2109,7 @@ function useInit({
|
|
|
1959
2109
|
}
|
|
1960
2110
|
}
|
|
1961
2111
|
}, [matchToken]);
|
|
1962
|
-
|
|
2112
|
+
useEffect11(() => {
|
|
1963
2113
|
const onLoginMessage = (event) => {
|
|
1964
2114
|
const res = event.data;
|
|
1965
2115
|
if (res.event === "login" && res.data && (res.data.token || res.data.token_type && res.data.access_token)) {
|
|
@@ -1996,7 +2146,7 @@ function useInit({
|
|
|
1996
2146
|
overviewLoadingRef.current = false;
|
|
1997
2147
|
}
|
|
1998
2148
|
};
|
|
1999
|
-
|
|
2149
|
+
useEffect11(() => {
|
|
2000
2150
|
if (token) {
|
|
2001
2151
|
loadOverview();
|
|
2002
2152
|
}
|
|
@@ -2811,7 +2961,7 @@ function useUserInfo() {
|
|
|
2811
2961
|
}
|
|
2812
2962
|
|
|
2813
2963
|
// src/components/EmailModal/StepVerify.tsx
|
|
2814
|
-
import { useEffect as
|
|
2964
|
+
import { useEffect as useEffect13, useMemo as useMemo7, useRef as useRef4, useState as useState12 } from "react";
|
|
2815
2965
|
|
|
2816
2966
|
// src/config/index.tsx
|
|
2817
2967
|
var EMAIL_INTERVAL = 60;
|
|
@@ -2823,17 +2973,17 @@ import { jsx as jsx11, jsxs as jsxs8 } from "react/jsx-runtime";
|
|
|
2823
2973
|
function StepVerify(props) {
|
|
2824
2974
|
const intl = useIntl3();
|
|
2825
2975
|
const { getLoginEmailCode, loginByEmail } = useUserInfo();
|
|
2826
|
-
const [error, setError] =
|
|
2827
|
-
const [code, setCode] =
|
|
2828
|
-
const [sending, setSending] =
|
|
2829
|
-
const [submitting, setSubmitting] =
|
|
2830
|
-
const sendTimeRef =
|
|
2831
|
-
const [sendBtnText, setSendBtnText] =
|
|
2976
|
+
const [error, setError] = useState12("");
|
|
2977
|
+
const [code, setCode] = useState12("");
|
|
2978
|
+
const [sending, setSending] = useState12(false);
|
|
2979
|
+
const [submitting, setSubmitting] = useState12(false);
|
|
2980
|
+
const sendTimeRef = useRef4(0);
|
|
2981
|
+
const [sendBtnText, setSendBtnText] = useState12(intl.formatMessage({
|
|
2832
2982
|
id: "send"
|
|
2833
2983
|
}));
|
|
2834
2984
|
const intervalTime = EMAIL_INTERVAL;
|
|
2835
2985
|
const codeLength = EMAIL_CODE_LENGTH;
|
|
2836
|
-
const intervalRef =
|
|
2986
|
+
const intervalRef = useRef4(null);
|
|
2837
2987
|
const isDownMd = useDownMd();
|
|
2838
2988
|
const onSend = async () => {
|
|
2839
2989
|
if (sendTimeRef.current > 0) {
|
|
@@ -2864,7 +3014,7 @@ function StepVerify(props) {
|
|
|
2864
3014
|
setSending(false);
|
|
2865
3015
|
}
|
|
2866
3016
|
};
|
|
2867
|
-
|
|
3017
|
+
useEffect13(() => {
|
|
2868
3018
|
onSend();
|
|
2869
3019
|
return () => {
|
|
2870
3020
|
if (intervalRef.current) {
|
|
@@ -2949,10 +3099,10 @@ function EmailModal({
|
|
|
2949
3099
|
onBack,
|
|
2950
3100
|
onLogin
|
|
2951
3101
|
}) {
|
|
2952
|
-
const [step, setStep] =
|
|
2953
|
-
const [emailVal, setEmailVal] =
|
|
3102
|
+
const [step, setStep] = useState13("input");
|
|
3103
|
+
const [emailVal, setEmailVal] = useState13("");
|
|
2954
3104
|
const intl = useIntl4();
|
|
2955
|
-
|
|
3105
|
+
useEffect14(() => {
|
|
2956
3106
|
if (!isOpen) {
|
|
2957
3107
|
setStep("input");
|
|
2958
3108
|
setEmailVal("");
|
|
@@ -2977,13 +3127,13 @@ function EmailModal({
|
|
|
2977
3127
|
}
|
|
2978
3128
|
|
|
2979
3129
|
// src/components/LoginBox/index.tsx
|
|
2980
|
-
import { useMemo as useMemo8, useState as
|
|
3130
|
+
import { useMemo as useMemo8, useState as useState14 } from "react";
|
|
2981
3131
|
import { FormattedMessage as FormattedMessage4, useIntl as useIntl5 } from "react-intl";
|
|
2982
3132
|
|
|
2983
3133
|
// src/hooks/useAppConfig.ts
|
|
2984
|
-
import { useQuery as
|
|
3134
|
+
import { useQuery as useQuery4 } from "@tanstack/react-query";
|
|
2985
3135
|
function useAppConfig() {
|
|
2986
|
-
const query =
|
|
3136
|
+
const query = useQuery4({
|
|
2987
3137
|
queryKey: ["appConfig"],
|
|
2988
3138
|
queryFn: async () => {
|
|
2989
3139
|
const res = await getAppConfigApi();
|
|
@@ -3090,9 +3240,9 @@ function LoginBox({
|
|
|
3090
3240
|
walletMethods: walletMethodList
|
|
3091
3241
|
};
|
|
3092
3242
|
}, [config.platform, recommendMethods, methods, walletMethods]);
|
|
3093
|
-
const [emailOpen, setEmailOpen] =
|
|
3243
|
+
const [emailOpen, setEmailOpen] = useState14(false);
|
|
3094
3244
|
const { login } = useUserInfo();
|
|
3095
|
-
const [showWallet, setShowWallet] =
|
|
3245
|
+
const [showWallet, setShowWallet] = useState14(false);
|
|
3096
3246
|
const intl = useIntl5();
|
|
3097
3247
|
const isDownMd = useDownMd();
|
|
3098
3248
|
const methodMap = {
|
|
@@ -3240,7 +3390,7 @@ function LoginBox({
|
|
|
3240
3390
|
}
|
|
3241
3391
|
|
|
3242
3392
|
// src/components/LoginButton/index.tsx
|
|
3243
|
-
import { useState as
|
|
3393
|
+
import { useState as useState16 } from "react";
|
|
3244
3394
|
|
|
3245
3395
|
// src/components/LoginPanel/index.tsx
|
|
3246
3396
|
import { FormattedMessage as FormattedMessage5 } from "react-intl";
|
|
@@ -3283,7 +3433,7 @@ function LoginModal({
|
|
|
3283
3433
|
}
|
|
3284
3434
|
|
|
3285
3435
|
// src/components/UserPopover/index.tsx
|
|
3286
|
-
import { useState as
|
|
3436
|
+
import { useState as useState15 } from "react";
|
|
3287
3437
|
|
|
3288
3438
|
// src/assets/icon/ProfileIcon.tsx
|
|
3289
3439
|
import { jsx as jsx16, jsxs as jsxs11 } from "react/jsx-runtime";
|
|
@@ -3315,7 +3465,7 @@ import { FormattedMessage as FormattedMessage6, useIntl as useIntl6 } from "reac
|
|
|
3315
3465
|
import { jsx as jsx17, jsxs as jsxs12 } from "react/jsx-runtime";
|
|
3316
3466
|
function UserContent() {
|
|
3317
3467
|
const { logout, address: address2, username } = useUserInfo();
|
|
3318
|
-
const [logouting, setLogouting] =
|
|
3468
|
+
const [logouting, setLogouting] = useState15(false);
|
|
3319
3469
|
const onLogout = async () => {
|
|
3320
3470
|
if (logouting) return;
|
|
3321
3471
|
try {
|
|
@@ -3344,7 +3494,7 @@ function UserContent() {
|
|
|
3344
3494
|
const UserDivider = () => {
|
|
3345
3495
|
return /* @__PURE__ */ jsx17("div", { className: `matchid-user-popover-divider` });
|
|
3346
3496
|
};
|
|
3347
|
-
const [usernameOpen, setUsernameOpen] =
|
|
3497
|
+
const [usernameOpen, setUsernameOpen] = useState15(false);
|
|
3348
3498
|
const [copied, setCopied] = useCopyClipboard();
|
|
3349
3499
|
const intl = useIntl6();
|
|
3350
3500
|
return /* @__PURE__ */ jsxs12("div", { className: "matchid-user-popover-content", children: [
|
|
@@ -3390,7 +3540,7 @@ function LoginButton({
|
|
|
3390
3540
|
}) {
|
|
3391
3541
|
const intl = useIntl7();
|
|
3392
3542
|
const { isLogin, username } = useUserInfo();
|
|
3393
|
-
const [loginOpen, setLoginOpen] =
|
|
3543
|
+
const [loginOpen, setLoginOpen] = useState16(false);
|
|
3394
3544
|
if (!isLogin) {
|
|
3395
3545
|
return /* @__PURE__ */ jsxs13(Fragment3, { children: [
|
|
3396
3546
|
/* @__PURE__ */ jsx18(
|
|
@@ -3418,40 +3568,17 @@ function LoginButton({
|
|
|
3418
3568
|
}
|
|
3419
3569
|
|
|
3420
3570
|
// src/components/UsernameModal/index.tsx
|
|
3421
|
-
import { useEffect as
|
|
3422
|
-
|
|
3423
|
-
// src/assets/icon/InfoRoundIcon.tsx
|
|
3424
|
-
import { jsx as jsx19, jsxs as jsxs14 } from "react/jsx-runtime";
|
|
3425
|
-
function InfoRoundIcon({
|
|
3426
|
-
size,
|
|
3427
|
-
color = "#6E6E6E",
|
|
3428
|
-
...props
|
|
3429
|
-
}) {
|
|
3430
|
-
return /* @__PURE__ */ jsxs14("svg", { width: size, height: size, viewBox: "0 0 16 16", fill: "none", xmlns: "http://www.w3.org/2000/svg", ...props, children: [
|
|
3431
|
-
/* @__PURE__ */ jsx19("g", { clipPath: "url(#clip0_418_7746)", children: /* @__PURE__ */ jsx19(
|
|
3432
|
-
"path",
|
|
3433
|
-
{
|
|
3434
|
-
fillRule: "evenodd",
|
|
3435
|
-
clipRule: "evenodd",
|
|
3436
|
-
d: "M7.99984 0.666504C3.94975 0.666504 0.666504 3.94975 0.666504 7.99984C0.666504 12.0499 3.94975 15.3332 7.99984 15.3332C12.0499 15.3332 15.3332 12.0499 15.3332 7.99984C15.3332 3.94975 12.0499 0.666504 7.99984 0.666504ZM1.99984 7.99984C1.99984 4.68613 4.68613 1.99984 7.99984 1.99984C11.3135 1.99984 13.9998 4.68613 13.9998 7.99984C13.9998 11.3135 11.3135 13.9998 7.99984 13.9998C4.68613 13.9998 1.99984 11.3135 1.99984 7.99984ZM8.6665 7.33317C8.6665 6.96498 8.36803 6.6665 7.99984 6.6665C7.63165 6.6665 7.33317 6.96498 7.33317 7.33317V11.3332C7.33317 11.7014 7.63165 11.9998 7.99984 11.9998C8.36803 11.9998 8.6665 11.7014 8.6665 11.3332V7.33317ZM7.99984 5.33317C8.36803 5.33317 8.6665 5.03469 8.6665 4.6665C8.6665 4.29831 8.36803 3.99984 7.99984 3.99984C7.63165 3.99984 7.33317 4.29831 7.33317 4.6665C7.33317 5.03469 7.63165 5.33317 7.99984 5.33317Z",
|
|
3437
|
-
fill: color
|
|
3438
|
-
}
|
|
3439
|
-
) }),
|
|
3440
|
-
/* @__PURE__ */ jsx19("defs", { children: /* @__PURE__ */ jsx19("clipPath", { id: "clip0_418_7746", children: /* @__PURE__ */ jsx19("rect", { width: "16", height: "16", fill: "white" }) }) })
|
|
3441
|
-
] });
|
|
3442
|
-
}
|
|
3443
|
-
|
|
3444
|
-
// src/components/UsernameModal/index.tsx
|
|
3571
|
+
import { useEffect as useEffect15, useMemo as useMemo9, useState as useState17 } from "react";
|
|
3445
3572
|
import { FormattedMessage as FormattedMessage8, useIntl as useIntl8 } from "react-intl";
|
|
3446
|
-
import { jsx as
|
|
3573
|
+
import { jsx as jsx19, jsxs as jsxs14 } from "react/jsx-runtime";
|
|
3447
3574
|
var ValidItem = ({
|
|
3448
3575
|
success = false,
|
|
3449
3576
|
text
|
|
3450
3577
|
}) => {
|
|
3451
3578
|
const isDownMd = useDownMd();
|
|
3452
|
-
return /* @__PURE__ */
|
|
3453
|
-
success ? /* @__PURE__ */
|
|
3454
|
-
/* @__PURE__ */
|
|
3579
|
+
return /* @__PURE__ */ jsxs14("div", { className: `matchid-valid-status-item matchid-valid-status-${success ? "success" : "error"}`, children: [
|
|
3580
|
+
success ? /* @__PURE__ */ jsx19(CheckRoundIcon, { size: isDownMd ? 12 : 16 }) : /* @__PURE__ */ jsx19(InfoLineIcon, { size: isDownMd ? 12 : 16 }),
|
|
3581
|
+
/* @__PURE__ */ jsx19("span", { children: text })
|
|
3455
3582
|
] });
|
|
3456
3583
|
};
|
|
3457
3584
|
function UsernameModal({
|
|
@@ -3462,10 +3589,10 @@ function UsernameModal({
|
|
|
3462
3589
|
}) {
|
|
3463
3590
|
const { username, refreshOverview } = useUserInfo();
|
|
3464
3591
|
const { isLogin } = useUserInfo();
|
|
3465
|
-
const [val, setVal] =
|
|
3466
|
-
const [error, setError] =
|
|
3592
|
+
const [val, setVal] = useState17(username);
|
|
3593
|
+
const [error, setError] = useState17("");
|
|
3467
3594
|
const isDownMd = useDownMd();
|
|
3468
|
-
|
|
3595
|
+
useEffect15(() => {
|
|
3469
3596
|
if (isOpen) {
|
|
3470
3597
|
setVal(username);
|
|
3471
3598
|
setError("");
|
|
@@ -3478,7 +3605,7 @@ function UsernameModal({
|
|
|
3478
3605
|
return val.length >= 2 && val.length <= 32;
|
|
3479
3606
|
}, [val]);
|
|
3480
3607
|
const isSafe = isValid && isLength;
|
|
3481
|
-
const [isSubmitting, setIsSubmitting] =
|
|
3608
|
+
const [isSubmitting, setIsSubmitting] = useState17(false);
|
|
3482
3609
|
const onSubmit = async () => {
|
|
3483
3610
|
if (isSubmitting) return;
|
|
3484
3611
|
try {
|
|
@@ -3499,12 +3626,12 @@ function UsernameModal({
|
|
|
3499
3626
|
}
|
|
3500
3627
|
};
|
|
3501
3628
|
const intl = useIntl8();
|
|
3502
|
-
return /* @__PURE__ */
|
|
3629
|
+
return /* @__PURE__ */ jsx19(ModalWithHeader, { isOpen: isOpen && isLogin, ...props, title: title || intl.formatMessage({
|
|
3503
3630
|
id: username ? "editUsernameTitle" : "setUsernameTitle"
|
|
3504
|
-
}), children: /* @__PURE__ */
|
|
3505
|
-
/* @__PURE__ */
|
|
3631
|
+
}), children: /* @__PURE__ */ jsxs14("div", { className: "matchid-username-box", children: [
|
|
3632
|
+
/* @__PURE__ */ jsx19(Field, { label: intl.formatMessage({
|
|
3506
3633
|
id: "username"
|
|
3507
|
-
}), error, children: /* @__PURE__ */
|
|
3634
|
+
}), error, children: /* @__PURE__ */ jsx19(
|
|
3508
3635
|
Input,
|
|
3509
3636
|
{
|
|
3510
3637
|
placeholder: intl.formatMessage({
|
|
@@ -3517,8 +3644,8 @@ function UsernameModal({
|
|
|
3517
3644
|
value: val
|
|
3518
3645
|
}
|
|
3519
3646
|
) }),
|
|
3520
|
-
/* @__PURE__ */
|
|
3521
|
-
/* @__PURE__ */
|
|
3647
|
+
/* @__PURE__ */ jsxs14("div", { className: "matchid-valid", children: [
|
|
3648
|
+
/* @__PURE__ */ jsx19(
|
|
3522
3649
|
ValidItem,
|
|
3523
3650
|
{
|
|
3524
3651
|
success: isValid,
|
|
@@ -3527,21 +3654,21 @@ function UsernameModal({
|
|
|
3527
3654
|
})
|
|
3528
3655
|
}
|
|
3529
3656
|
),
|
|
3530
|
-
/* @__PURE__ */
|
|
3657
|
+
/* @__PURE__ */ jsx19(ValidItem, { success: isLength, text: intl.formatMessage({
|
|
3531
3658
|
id: "usernameLengthError"
|
|
3532
3659
|
}) })
|
|
3533
3660
|
] }),
|
|
3534
|
-
/* @__PURE__ */
|
|
3661
|
+
/* @__PURE__ */ jsx19(Button, { disabled: !isSafe, loading: isSubmitting, style: {
|
|
3535
3662
|
marginTop: isDownMd ? "36px" : "64px"
|
|
3536
|
-
}, onClick: onSubmit, size: "lg", block: true, highlight: true, children: /* @__PURE__ */
|
|
3537
|
-
/* @__PURE__ */
|
|
3663
|
+
}, onClick: onSubmit, size: "lg", block: true, highlight: true, children: /* @__PURE__ */ jsx19(FormattedMessage8, { id: "confirm" }) }),
|
|
3664
|
+
/* @__PURE__ */ jsx19(Button, { style: {
|
|
3538
3665
|
marginTop: isDownMd ? "12px" : "24px"
|
|
3539
|
-
}, onClick: props.onClose, size: "lg", block: true, children: /* @__PURE__ */
|
|
3666
|
+
}, onClick: props.onClose, size: "lg", block: true, children: /* @__PURE__ */ jsx19(FormattedMessage8, { id: "cancel" }) })
|
|
3540
3667
|
] }) });
|
|
3541
3668
|
}
|
|
3542
3669
|
|
|
3543
3670
|
// src/components/SOLModal/index.tsx
|
|
3544
|
-
import React7, { useEffect as
|
|
3671
|
+
import React7, { useEffect as useEffect16, useState as useState18 } from "react";
|
|
3545
3672
|
import { clusterApiUrl } from "@solana/web3.js";
|
|
3546
3673
|
import { useWallet as useWallet2, WalletProvider, ConnectionProvider } from "@solana/wallet-adapter-react";
|
|
3547
3674
|
import { WalletModalProvider, useWalletModal } from "@solana/wallet-adapter-react-ui";
|
|
@@ -3605,7 +3732,7 @@ var walletConnectImage = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQAAAAEA
|
|
|
3605
3732
|
var walletSigningImage = "data:image/png;base64,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";
|
|
3606
3733
|
|
|
3607
3734
|
// src/components/WalletModalContent/index.tsx
|
|
3608
|
-
import { jsx as
|
|
3735
|
+
import { jsx as jsx20, jsxs as jsxs15 } from "react/jsx-runtime";
|
|
3609
3736
|
function WalletModalContent({
|
|
3610
3737
|
status,
|
|
3611
3738
|
error,
|
|
@@ -3675,12 +3802,12 @@ function WalletModalContent({
|
|
|
3675
3802
|
statusImage: walletConnectImage
|
|
3676
3803
|
};
|
|
3677
3804
|
}, [visible, connected, status, error, address2]);
|
|
3678
|
-
return /* @__PURE__ */
|
|
3679
|
-
/* @__PURE__ */
|
|
3680
|
-
/* @__PURE__ */
|
|
3681
|
-
/* @__PURE__ */
|
|
3805
|
+
return /* @__PURE__ */ jsx20("div", { className: "matchid-wallet-container", children: /* @__PURE__ */ jsxs15("div", { className: `matchid-wallet-box`, children: [
|
|
3806
|
+
/* @__PURE__ */ jsxs15("div", { className: `matchid-wallet-content`, children: [
|
|
3807
|
+
/* @__PURE__ */ jsx20("img", { src: pageData.statusImage }),
|
|
3808
|
+
/* @__PURE__ */ jsx20("div", { className: pageData.isError ? "text-[#F7585E]" : "", children: pageData.text })
|
|
3682
3809
|
] }),
|
|
3683
|
-
/* @__PURE__ */
|
|
3810
|
+
/* @__PURE__ */ jsx20(
|
|
3684
3811
|
Button,
|
|
3685
3812
|
{
|
|
3686
3813
|
block: true,
|
|
@@ -3695,7 +3822,7 @@ function WalletModalContent({
|
|
|
3695
3822
|
}
|
|
3696
3823
|
|
|
3697
3824
|
// src/components/SOLModal/index.tsx
|
|
3698
|
-
import { jsx as
|
|
3825
|
+
import { jsx as jsx21 } from "react/jsx-runtime";
|
|
3699
3826
|
function WalletContent({
|
|
3700
3827
|
onSuccess,
|
|
3701
3828
|
type
|
|
@@ -3703,17 +3830,17 @@ function WalletContent({
|
|
|
3703
3830
|
const { setVisible, visible } = useWalletModal();
|
|
3704
3831
|
const wallet = useWallet2();
|
|
3705
3832
|
const { events, login } = useMatch();
|
|
3706
|
-
const [status, setStatus] =
|
|
3833
|
+
const [status, setStatus] = useState18("");
|
|
3707
3834
|
const statusRef = React7.useRef(status);
|
|
3708
|
-
const [error, setError] =
|
|
3709
|
-
|
|
3835
|
+
const [error, setError] = useState18("");
|
|
3836
|
+
useEffect16(() => {
|
|
3710
3837
|
const init = async () => {
|
|
3711
3838
|
await wallet.disconnect();
|
|
3712
3839
|
setVisible(true);
|
|
3713
3840
|
};
|
|
3714
3841
|
init();
|
|
3715
3842
|
}, []);
|
|
3716
|
-
|
|
3843
|
+
useEffect16(() => {
|
|
3717
3844
|
if (wallet.connected) {
|
|
3718
3845
|
console.log("wallet.connected", wallet.connected);
|
|
3719
3846
|
toLoginInWallet();
|
|
@@ -3777,7 +3904,7 @@ function WalletContent({
|
|
|
3777
3904
|
statusRef.current = "";
|
|
3778
3905
|
}
|
|
3779
3906
|
};
|
|
3780
|
-
return /* @__PURE__ */
|
|
3907
|
+
return /* @__PURE__ */ jsx21(
|
|
3781
3908
|
WalletModalContent,
|
|
3782
3909
|
{
|
|
3783
3910
|
connected: wallet.connected,
|
|
@@ -3838,18 +3965,18 @@ function SOLConnectModal({
|
|
|
3838
3965
|
...props
|
|
3839
3966
|
}) {
|
|
3840
3967
|
const intl = useIntl9();
|
|
3841
|
-
return /* @__PURE__ */
|
|
3968
|
+
return /* @__PURE__ */ jsx21(ModalWithHeader, { ...props, title: props.title || intl.formatMessage({
|
|
3842
3969
|
id: type == "bind" ? "bindWith" : "loginWith"
|
|
3843
3970
|
}, {
|
|
3844
3971
|
name: "SOL"
|
|
3845
|
-
}), children: /* @__PURE__ */
|
|
3972
|
+
}), children: /* @__PURE__ */ jsx21(ConnectionProvider, { endpoint: clusterApiUrl("devnet"), children: /* @__PURE__ */ jsx21(WalletProvider, { wallets, autoConnect: true, children: /* @__PURE__ */ jsx21(WalletModalProvider, { children: /* @__PURE__ */ jsx21(WalletContent, { onSuccess, type }) }) }) }) });
|
|
3846
3973
|
}
|
|
3847
3974
|
function SOLModal(props) {
|
|
3848
|
-
return props.isOpen && /* @__PURE__ */
|
|
3975
|
+
return props.isOpen && /* @__PURE__ */ jsx21(SOLConnectModal, { ...props });
|
|
3849
3976
|
}
|
|
3850
3977
|
|
|
3851
3978
|
// src/components/TRONModal/index.tsx
|
|
3852
|
-
import React8, { useEffect as
|
|
3979
|
+
import React8, { useEffect as useEffect18, useMemo as useMemo11, useState as useState20 } from "react";
|
|
3853
3980
|
import { useIntl as useIntl10 } from "react-intl";
|
|
3854
3981
|
|
|
3855
3982
|
// src/lib/tron/TronLinkAdapter.ts
|
|
@@ -3883,7 +4010,7 @@ var TronLinkAdapter = class {
|
|
|
3883
4010
|
};
|
|
3884
4011
|
|
|
3885
4012
|
// src/hooks/useTRONWallet.ts
|
|
3886
|
-
import { useEffect as
|
|
4013
|
+
import { useEffect as useEffect17, useState as useState19 } from "react";
|
|
3887
4014
|
|
|
3888
4015
|
// src/lib/tron/BitgetAdapter.ts
|
|
3889
4016
|
var BitgetAdapter = class {
|
|
@@ -3928,9 +4055,9 @@ var OKXAdapter = class {
|
|
|
3928
4055
|
// src/hooks/useTRONWallet.ts
|
|
3929
4056
|
var useTRONWallet = () => {
|
|
3930
4057
|
const wallets2 = [new TronLinkAdapter(), new BitgetAdapter(), new OKXAdapter()];
|
|
3931
|
-
const [installedWallets, setInstalledWallets] =
|
|
3932
|
-
const [address2, setAddress] =
|
|
3933
|
-
|
|
4058
|
+
const [installedWallets, setInstalledWallets] = useState19([]);
|
|
4059
|
+
const [address2, setAddress] = useState19(null);
|
|
4060
|
+
useEffect17(() => {
|
|
3934
4061
|
const getInstalled = async () => {
|
|
3935
4062
|
const installed = await Promise.all(wallets2.map((wallet2) => wallet2.isInstalled().then((isInstalled) => ({
|
|
3936
4063
|
wallet: wallet2,
|
|
@@ -3940,11 +4067,11 @@ var useTRONWallet = () => {
|
|
|
3940
4067
|
};
|
|
3941
4068
|
getInstalled();
|
|
3942
4069
|
}, []);
|
|
3943
|
-
const [wallet, chooseWallet] =
|
|
4070
|
+
const [wallet, chooseWallet] = useState19(null);
|
|
3944
4071
|
const onConnect = async () => {
|
|
3945
4072
|
setAddress(await wallet.connect());
|
|
3946
4073
|
};
|
|
3947
|
-
|
|
4074
|
+
useEffect17(() => {
|
|
3948
4075
|
if (!wallet) {
|
|
3949
4076
|
setAddress(null);
|
|
3950
4077
|
}
|
|
@@ -3960,7 +4087,7 @@ var useTRONWallet = () => {
|
|
|
3960
4087
|
};
|
|
3961
4088
|
|
|
3962
4089
|
// src/components/TRONModal/index.tsx
|
|
3963
|
-
import { jsx as
|
|
4090
|
+
import { jsx as jsx22, jsxs as jsxs16 } from "react/jsx-runtime";
|
|
3964
4091
|
function TRONConnectModal({
|
|
3965
4092
|
type = "login",
|
|
3966
4093
|
onSuccess,
|
|
@@ -3970,14 +4097,14 @@ function TRONConnectModal({
|
|
|
3970
4097
|
const intl = useIntl10();
|
|
3971
4098
|
const { wallets: wallets2, installedWallets, chooseWallet, wallet, address: address2, onConnect } = useTRONWallet();
|
|
3972
4099
|
const iconMaps = {
|
|
3973
|
-
tronlink: /* @__PURE__ */
|
|
3974
|
-
bitget: /* @__PURE__ */
|
|
3975
|
-
okx: /* @__PURE__ */
|
|
4100
|
+
tronlink: /* @__PURE__ */ jsx22(TronLinkIcon, { size: isDownMd ? 36 : 40 }),
|
|
4101
|
+
bitget: /* @__PURE__ */ jsx22(BitgetIcon, { size: isDownMd ? 36 : 40 }),
|
|
4102
|
+
okx: /* @__PURE__ */ jsx22(OKXIcon, { size: isDownMd ? 36 : 40 })
|
|
3976
4103
|
};
|
|
3977
4104
|
const { events, login } = useMatch();
|
|
3978
|
-
const [status, setStatus] =
|
|
4105
|
+
const [status, setStatus] = useState20("");
|
|
3979
4106
|
const statusRef = React8.useRef(status);
|
|
3980
|
-
const [error, setError] =
|
|
4107
|
+
const [error, setError] = useState20("");
|
|
3981
4108
|
const connected = useMemo11(() => {
|
|
3982
4109
|
return !!address2;
|
|
3983
4110
|
}, [address2]);
|
|
@@ -4046,7 +4173,7 @@ function TRONConnectModal({
|
|
|
4046
4173
|
statusRef.current = "";
|
|
4047
4174
|
}
|
|
4048
4175
|
};
|
|
4049
|
-
|
|
4176
|
+
useEffect18(() => {
|
|
4050
4177
|
if (wallet) {
|
|
4051
4178
|
console.log("onConnect");
|
|
4052
4179
|
onConnect();
|
|
@@ -4054,21 +4181,21 @@ function TRONConnectModal({
|
|
|
4054
4181
|
setStatus("");
|
|
4055
4182
|
}
|
|
4056
4183
|
}, [wallet]);
|
|
4057
|
-
|
|
4184
|
+
useEffect18(() => {
|
|
4058
4185
|
if (address2) {
|
|
4059
4186
|
toLoginInWallet();
|
|
4060
4187
|
}
|
|
4061
4188
|
}, [address2]);
|
|
4062
|
-
|
|
4189
|
+
useEffect18(() => {
|
|
4063
4190
|
if (!props.isOpen) {
|
|
4064
4191
|
disconnect();
|
|
4065
4192
|
}
|
|
4066
4193
|
}, [props.isOpen]);
|
|
4067
|
-
return /* @__PURE__ */
|
|
4194
|
+
return /* @__PURE__ */ jsx22(ModalWithHeader, { ...props, title: props.title || intl.formatMessage({
|
|
4068
4195
|
id: type == "bind" ? "bindWith" : "loginWith"
|
|
4069
4196
|
}, {
|
|
4070
4197
|
name: "TRON"
|
|
4071
|
-
}), onBack: wallet ? onBack : void 0, children: wallet ? /* @__PURE__ */
|
|
4198
|
+
}), onBack: wallet ? onBack : void 0, children: wallet ? /* @__PURE__ */ jsx22(
|
|
4072
4199
|
WalletModalContent,
|
|
4073
4200
|
{
|
|
4074
4201
|
error,
|
|
@@ -4081,9 +4208,9 @@ function TRONConnectModal({
|
|
|
4081
4208
|
setVisible: () => {
|
|
4082
4209
|
}
|
|
4083
4210
|
}
|
|
4084
|
-
) : /* @__PURE__ */
|
|
4211
|
+
) : /* @__PURE__ */ jsx22("div", { className: "matchid-login-box", children: /* @__PURE__ */ jsxs16("div", { className: "matchid-login-recommend-list", children: [
|
|
4085
4212
|
installedWallets.map((wallet2) => {
|
|
4086
|
-
return /* @__PURE__ */
|
|
4213
|
+
return /* @__PURE__ */ jsx22(
|
|
4087
4214
|
RecommendItem,
|
|
4088
4215
|
{
|
|
4089
4216
|
icon: iconMaps[wallet2.walletKey],
|
|
@@ -4096,14 +4223,14 @@ function TRONConnectModal({
|
|
|
4096
4223
|
);
|
|
4097
4224
|
}),
|
|
4098
4225
|
wallets2.filter((wallet2) => !installedWallets.find((installedWallet) => installedWallet.walletKey == wallet2.walletKey)).map((wallet2) => {
|
|
4099
|
-
return /* @__PURE__ */
|
|
4226
|
+
return /* @__PURE__ */ jsx22(
|
|
4100
4227
|
RecommendItem,
|
|
4101
4228
|
{
|
|
4102
4229
|
icon: iconMaps[wallet2.walletKey],
|
|
4103
4230
|
name: wallet2.name,
|
|
4104
4231
|
onClick: () => {
|
|
4105
4232
|
},
|
|
4106
|
-
footer: /* @__PURE__ */
|
|
4233
|
+
footer: /* @__PURE__ */ jsx22(Button, { size: "sm", onClick: () => {
|
|
4107
4234
|
window.open(wallet2.website);
|
|
4108
4235
|
}, children: "Install" })
|
|
4109
4236
|
},
|
|
@@ -4113,11 +4240,11 @@ function TRONConnectModal({
|
|
|
4113
4240
|
] }) }) });
|
|
4114
4241
|
}
|
|
4115
4242
|
function TRONModal(props) {
|
|
4116
|
-
return props.isOpen && /* @__PURE__ */
|
|
4243
|
+
return props.isOpen && /* @__PURE__ */ jsx22(TRONConnectModal, { ...props, type: props.type });
|
|
4117
4244
|
}
|
|
4118
4245
|
|
|
4119
4246
|
// src/components/TONModal/index.tsx
|
|
4120
|
-
import React9, { useEffect as
|
|
4247
|
+
import React9, { useEffect as useEffect19, useState as useState21 } from "react";
|
|
4121
4248
|
import { useIntl as useIntl11 } from "react-intl";
|
|
4122
4249
|
import {
|
|
4123
4250
|
TonConnectUIProvider,
|
|
@@ -4126,21 +4253,21 @@ import {
|
|
|
4126
4253
|
useTonConnectUI,
|
|
4127
4254
|
useTonWallet
|
|
4128
4255
|
} from "@tonconnect/ui-react";
|
|
4129
|
-
import { jsx as
|
|
4256
|
+
import { jsx as jsx23 } from "react/jsx-runtime";
|
|
4130
4257
|
function WalletContent2({
|
|
4131
4258
|
onSuccess,
|
|
4132
4259
|
type
|
|
4133
4260
|
}) {
|
|
4134
4261
|
const { events, login } = useMatch();
|
|
4135
|
-
const [connected, setConnected] =
|
|
4262
|
+
const [connected, setConnected] = useState21(false);
|
|
4136
4263
|
const wallet = useTonWallet();
|
|
4137
4264
|
const userFriendlyAddress = useTonAddress();
|
|
4138
4265
|
const [tonConnectUI] = useTonConnectUI();
|
|
4139
4266
|
const { state, open, close } = useTonConnectModal();
|
|
4140
|
-
const [status, setStatus] =
|
|
4267
|
+
const [status, setStatus] = useState21("");
|
|
4141
4268
|
const statusRef = React9.useRef(status);
|
|
4142
|
-
const [error, setError] =
|
|
4143
|
-
|
|
4269
|
+
const [error, setError] = useState21("");
|
|
4270
|
+
useEffect19(() => {
|
|
4144
4271
|
const init = async () => {
|
|
4145
4272
|
if (wallet) {
|
|
4146
4273
|
await tonConnectUI.disconnect();
|
|
@@ -4213,7 +4340,7 @@ function WalletContent2({
|
|
|
4213
4340
|
}
|
|
4214
4341
|
});
|
|
4215
4342
|
}, []);
|
|
4216
|
-
|
|
4343
|
+
useEffect19(() => {
|
|
4217
4344
|
if (wallet) {
|
|
4218
4345
|
setConnected(true);
|
|
4219
4346
|
console.log("Wallet connected:", wallet);
|
|
@@ -4224,7 +4351,7 @@ function WalletContent2({
|
|
|
4224
4351
|
setStatus("");
|
|
4225
4352
|
}
|
|
4226
4353
|
}, [wallet]);
|
|
4227
|
-
|
|
4354
|
+
useEffect19(() => {
|
|
4228
4355
|
console.log({
|
|
4229
4356
|
state,
|
|
4230
4357
|
wallet
|
|
@@ -4253,7 +4380,7 @@ function WalletContent2({
|
|
|
4253
4380
|
}
|
|
4254
4381
|
}
|
|
4255
4382
|
}, [state]);
|
|
4256
|
-
return /* @__PURE__ */
|
|
4383
|
+
return /* @__PURE__ */ jsx23(
|
|
4257
4384
|
WalletModalContent,
|
|
4258
4385
|
{
|
|
4259
4386
|
connected,
|
|
@@ -4287,24 +4414,24 @@ function TONConnectModal({
|
|
|
4287
4414
|
const intl = useIntl11();
|
|
4288
4415
|
const { endpoints, appid } = useLocalStore_default();
|
|
4289
4416
|
const manifestUrl = `${endpoints.back}api/v1/wallet/ton?appid=${appid}&url=` + encodeURIComponent(window.location.origin);
|
|
4290
|
-
return /* @__PURE__ */
|
|
4417
|
+
return /* @__PURE__ */ jsx23(ModalWithHeader, { ...props, title: props.title || intl.formatMessage({
|
|
4291
4418
|
id: type == "bind" ? "bindWith" : "loginWith"
|
|
4292
4419
|
}, {
|
|
4293
4420
|
name: "TON"
|
|
4294
|
-
}), children: /* @__PURE__ */
|
|
4421
|
+
}), children: /* @__PURE__ */ jsx23(
|
|
4295
4422
|
TonConnectUIProvider,
|
|
4296
4423
|
{
|
|
4297
4424
|
manifestUrl,
|
|
4298
|
-
children: /* @__PURE__ */
|
|
4425
|
+
children: /* @__PURE__ */ jsx23(WalletContent2, { onSuccess, type })
|
|
4299
4426
|
}
|
|
4300
4427
|
) });
|
|
4301
4428
|
}
|
|
4302
4429
|
function TONModal(props) {
|
|
4303
|
-
return props.isOpen && /* @__PURE__ */
|
|
4430
|
+
return props.isOpen && /* @__PURE__ */ jsx23(TONConnectModal, { ...props });
|
|
4304
4431
|
}
|
|
4305
4432
|
|
|
4306
4433
|
// src/components/BTCModal/index.tsx
|
|
4307
|
-
import React10, { useEffect as
|
|
4434
|
+
import React10, { useEffect as useEffect21, useMemo as useMemo12, useState as useState23 } from "react";
|
|
4308
4435
|
import { useIntl as useIntl12 } from "react-intl";
|
|
4309
4436
|
|
|
4310
4437
|
// src/lib/btc/UnisatAdapter.ts
|
|
@@ -4459,12 +4586,12 @@ var LeatherAdapter = class {
|
|
|
4459
4586
|
};
|
|
4460
4587
|
|
|
4461
4588
|
// src/hooks/useBTCWallet.ts
|
|
4462
|
-
import { useEffect as
|
|
4589
|
+
import { useEffect as useEffect20, useState as useState22 } from "react";
|
|
4463
4590
|
var useBTCWallet = () => {
|
|
4464
4591
|
const wallets2 = [new UnisatAdapter(), new XverseAdapter(), new LeatherAdapter()];
|
|
4465
|
-
const [installedWallets, setInstalledWallets] =
|
|
4466
|
-
const [address2, setAddress] =
|
|
4467
|
-
|
|
4592
|
+
const [installedWallets, setInstalledWallets] = useState22([]);
|
|
4593
|
+
const [address2, setAddress] = useState22(null);
|
|
4594
|
+
useEffect20(() => {
|
|
4468
4595
|
const getInstalled = async () => {
|
|
4469
4596
|
const installed = await Promise.all(wallets2.map((wallet2) => wallet2.isInstalled().then((isInstalled) => ({
|
|
4470
4597
|
wallet: wallet2,
|
|
@@ -4474,11 +4601,11 @@ var useBTCWallet = () => {
|
|
|
4474
4601
|
};
|
|
4475
4602
|
getInstalled();
|
|
4476
4603
|
}, []);
|
|
4477
|
-
const [wallet, chooseWallet] =
|
|
4604
|
+
const [wallet, chooseWallet] = useState22(null);
|
|
4478
4605
|
const onConnect = async () => {
|
|
4479
4606
|
setAddress(await wallet.connect());
|
|
4480
4607
|
};
|
|
4481
|
-
|
|
4608
|
+
useEffect20(() => {
|
|
4482
4609
|
if (!wallet) {
|
|
4483
4610
|
setAddress(null);
|
|
4484
4611
|
}
|
|
@@ -4494,7 +4621,7 @@ var useBTCWallet = () => {
|
|
|
4494
4621
|
};
|
|
4495
4622
|
|
|
4496
4623
|
// src/components/BTCModal/index.tsx
|
|
4497
|
-
import { jsx as
|
|
4624
|
+
import { jsx as jsx24, jsxs as jsxs17 } from "react/jsx-runtime";
|
|
4498
4625
|
function BTCConnectModal({
|
|
4499
4626
|
type = "login",
|
|
4500
4627
|
onSuccess,
|
|
@@ -4504,14 +4631,14 @@ function BTCConnectModal({
|
|
|
4504
4631
|
const intl = useIntl12();
|
|
4505
4632
|
const { wallets: wallets2, installedWallets, chooseWallet, wallet, address: address2, onConnect } = useBTCWallet();
|
|
4506
4633
|
const iconMaps = {
|
|
4507
|
-
leather: /* @__PURE__ */
|
|
4508
|
-
unisat: /* @__PURE__ */
|
|
4509
|
-
xverse: /* @__PURE__ */
|
|
4634
|
+
leather: /* @__PURE__ */ jsx24(LeatherIcon, { size: isDownMd ? 36 : 40 }),
|
|
4635
|
+
unisat: /* @__PURE__ */ jsx24(UnisatIcon, { size: isDownMd ? 36 : 40 }),
|
|
4636
|
+
xverse: /* @__PURE__ */ jsx24(XverseIcon, { size: isDownMd ? 36 : 40 })
|
|
4510
4637
|
};
|
|
4511
4638
|
const { events, login } = useMatch();
|
|
4512
|
-
const [status, setStatus] =
|
|
4639
|
+
const [status, setStatus] = useState23("");
|
|
4513
4640
|
const statusRef = React10.useRef(status);
|
|
4514
|
-
const [error, setError] =
|
|
4641
|
+
const [error, setError] = useState23("");
|
|
4515
4642
|
const connected = useMemo12(() => {
|
|
4516
4643
|
return !!address2;
|
|
4517
4644
|
}, [address2]);
|
|
@@ -4576,7 +4703,7 @@ function BTCConnectModal({
|
|
|
4576
4703
|
statusRef.current = "";
|
|
4577
4704
|
}
|
|
4578
4705
|
};
|
|
4579
|
-
|
|
4706
|
+
useEffect21(() => {
|
|
4580
4707
|
if (wallet) {
|
|
4581
4708
|
console.log("onConnect");
|
|
4582
4709
|
try {
|
|
@@ -4589,12 +4716,12 @@ function BTCConnectModal({
|
|
|
4589
4716
|
setStatus("");
|
|
4590
4717
|
}
|
|
4591
4718
|
}, [wallet]);
|
|
4592
|
-
|
|
4719
|
+
useEffect21(() => {
|
|
4593
4720
|
if (address2) {
|
|
4594
4721
|
toLoginInWallet();
|
|
4595
4722
|
}
|
|
4596
4723
|
}, [address2]);
|
|
4597
|
-
|
|
4724
|
+
useEffect21(() => {
|
|
4598
4725
|
if (!props.isOpen) {
|
|
4599
4726
|
disconnect();
|
|
4600
4727
|
}
|
|
@@ -4606,11 +4733,11 @@ function BTCConnectModal({
|
|
|
4606
4733
|
statusRef.current = "";
|
|
4607
4734
|
setError("");
|
|
4608
4735
|
};
|
|
4609
|
-
return /* @__PURE__ */
|
|
4736
|
+
return /* @__PURE__ */ jsx24(ModalWithHeader, { ...props, title: props.title || intl.formatMessage({
|
|
4610
4737
|
id: type == "bind" ? "bindWith" : "loginWith"
|
|
4611
4738
|
}, {
|
|
4612
4739
|
name: "BTC"
|
|
4613
|
-
}), onBack: wallet ? onBack : void 0, children: wallet ? /* @__PURE__ */
|
|
4740
|
+
}), onBack: wallet ? onBack : void 0, children: wallet ? /* @__PURE__ */ jsx24(
|
|
4614
4741
|
WalletModalContent,
|
|
4615
4742
|
{
|
|
4616
4743
|
error,
|
|
@@ -4623,9 +4750,9 @@ function BTCConnectModal({
|
|
|
4623
4750
|
setVisible: () => {
|
|
4624
4751
|
}
|
|
4625
4752
|
}
|
|
4626
|
-
) : /* @__PURE__ */
|
|
4753
|
+
) : /* @__PURE__ */ jsx24("div", { className: "matchid-login-box", children: /* @__PURE__ */ jsxs17("div", { className: "matchid-login-recommend-list", children: [
|
|
4627
4754
|
installedWallets.map((wallet2) => {
|
|
4628
|
-
return /* @__PURE__ */
|
|
4755
|
+
return /* @__PURE__ */ jsx24(
|
|
4629
4756
|
RecommendItem,
|
|
4630
4757
|
{
|
|
4631
4758
|
icon: iconMaps[wallet2.walletKey],
|
|
@@ -4638,14 +4765,14 @@ function BTCConnectModal({
|
|
|
4638
4765
|
);
|
|
4639
4766
|
}),
|
|
4640
4767
|
wallets2.filter((wallet2) => !installedWallets.find((installedWallet) => installedWallet.walletKey == wallet2.walletKey)).map((wallet2) => {
|
|
4641
|
-
return /* @__PURE__ */
|
|
4768
|
+
return /* @__PURE__ */ jsx24(
|
|
4642
4769
|
RecommendItem,
|
|
4643
4770
|
{
|
|
4644
4771
|
icon: iconMaps[wallet2.walletKey],
|
|
4645
4772
|
name: wallet2.name,
|
|
4646
4773
|
onClick: () => {
|
|
4647
4774
|
},
|
|
4648
|
-
footer: /* @__PURE__ */
|
|
4775
|
+
footer: /* @__PURE__ */ jsx24(Button, { size: "sm", onClick: () => {
|
|
4649
4776
|
window.open(wallet2.website);
|
|
4650
4777
|
}, children: "Install" })
|
|
4651
4778
|
},
|
|
@@ -4655,13 +4782,13 @@ function BTCConnectModal({
|
|
|
4655
4782
|
] }) }) });
|
|
4656
4783
|
}
|
|
4657
4784
|
function BTCModal(props) {
|
|
4658
|
-
return props.isOpen && /* @__PURE__ */
|
|
4785
|
+
return props.isOpen && /* @__PURE__ */ jsx24(BTCConnectModal, { ...props });
|
|
4659
4786
|
}
|
|
4660
4787
|
|
|
4661
4788
|
// src/components/WalletModal/index.tsx
|
|
4662
4789
|
import { useMemo as useMemo13 } from "react";
|
|
4663
4790
|
import { useIntl as useIntl13 } from "react-intl";
|
|
4664
|
-
import { jsx as
|
|
4791
|
+
import { jsx as jsx25 } from "react/jsx-runtime";
|
|
4665
4792
|
function WalletConnectModal({
|
|
4666
4793
|
type,
|
|
4667
4794
|
methods: _methods,
|
|
@@ -4679,13 +4806,13 @@ function WalletConnectModal({
|
|
|
4679
4806
|
const platform = config.platform.map((p) => p.toLowerCase());
|
|
4680
4807
|
return WALLET_METHODS.filter((m) => platform.includes(m));
|
|
4681
4808
|
}, [config.platform, _methods]);
|
|
4682
|
-
return /* @__PURE__ */
|
|
4809
|
+
return /* @__PURE__ */ jsx25(ModalWithHeader, { ...props, title: props.title || intl.formatMessage({
|
|
4683
4810
|
id: type == "bind" ? "bindWith" : "loginWith"
|
|
4684
4811
|
}, {
|
|
4685
4812
|
name: ""
|
|
4686
|
-
}), children: /* @__PURE__ */
|
|
4813
|
+
}), children: /* @__PURE__ */ jsx25("div", { className: "matchid-login-box", children: /* @__PURE__ */ jsx25("div", { className: "matchid-login-recommend-list", children: methods.map((method, index) => {
|
|
4687
4814
|
const m = walletMap[method];
|
|
4688
|
-
return /* @__PURE__ */
|
|
4815
|
+
return /* @__PURE__ */ jsx25(
|
|
4689
4816
|
RecommendItem,
|
|
4690
4817
|
{
|
|
4691
4818
|
icon: m?.icon,
|
|
@@ -4699,7 +4826,7 @@ function WalletConnectModal({
|
|
|
4699
4826
|
}) }) }) });
|
|
4700
4827
|
}
|
|
4701
4828
|
function WalletModal(props) {
|
|
4702
|
-
return props.isOpen && /* @__PURE__ */
|
|
4829
|
+
return props.isOpen && /* @__PURE__ */ jsx25(WalletConnectModal, { ...props });
|
|
4703
4830
|
}
|
|
4704
4831
|
|
|
4705
4832
|
export {
|
|
@@ -4736,8 +4863,9 @@ export {
|
|
|
4736
4863
|
useMatchWallet,
|
|
4737
4864
|
useMatchWalletRecords,
|
|
4738
4865
|
useReceipt,
|
|
4866
|
+
useTransaction,
|
|
4739
4867
|
hooks_exports,
|
|
4740
4868
|
MatchProvider,
|
|
4741
4869
|
useMatch
|
|
4742
4870
|
};
|
|
4743
|
-
//# sourceMappingURL=chunk-
|
|
4871
|
+
//# sourceMappingURL=chunk-2CK7JQWH.mjs.map
|