@matchain/matchid-sdk-react 0.1.48-alpha.1 → 0.1.48-alpha.2

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.
@@ -52,7 +52,7 @@ __export(components_exports, {
52
52
  module.exports = __toCommonJS(components_exports);
53
53
 
54
54
  // src/components/EmailModal/index.tsx
55
- var import_react20 = require("react");
55
+ var import_react22 = require("react");
56
56
 
57
57
  // src/assets/icon/ArrowLeftIcon.tsx
58
58
  var import_jsx_runtime = require("react/jsx-runtime");
@@ -1196,12 +1196,12 @@ var isValidEmail = (email) => {
1196
1196
  var isValidUsername = (username) => {
1197
1197
  return /^[a-zA-Z0-9_-]+$/.test(username);
1198
1198
  };
1199
- function truncateAddress(address) {
1200
- if (address.length <= 6) {
1201
- return address;
1199
+ function truncateAddress(address2) {
1200
+ if (address2.length <= 6) {
1201
+ return address2;
1202
1202
  }
1203
- const start = address.slice(0, 4);
1204
- const end = address.slice(-2);
1203
+ const start = address2.slice(0, 4);
1204
+ const end = address2.slice(-2);
1205
1205
  return `${start}...${end}`;
1206
1206
  }
1207
1207
  function getAppClientId() {
@@ -1559,7 +1559,7 @@ var getWalletNonceApi = (data) => {
1559
1559
  };
1560
1560
  var loginByWalletApi = ({
1561
1561
  type,
1562
- address,
1562
+ address: address2,
1563
1563
  signature,
1564
1564
  message,
1565
1565
  connector_type,
@@ -1568,7 +1568,7 @@ var loginByWalletApi = ({
1568
1568
  return request_default({
1569
1569
  url: `/api/v1/login/wallet`,
1570
1570
  method: "POST",
1571
- data: { type, address, signature, message, connector_type, wallet_client_type }
1571
+ data: { type, address: address2, signature, message, connector_type, wallet_client_type }
1572
1572
  });
1573
1573
  };
1574
1574
  var getWalletInitApi = (data) => {
@@ -1580,7 +1580,7 @@ var getWalletInitApi = (data) => {
1580
1580
  };
1581
1581
  var toBindWalletApi = ({
1582
1582
  type,
1583
- address,
1583
+ address: address2,
1584
1584
  signature,
1585
1585
  message,
1586
1586
  connector_type,
@@ -1589,7 +1589,7 @@ var toBindWalletApi = ({
1589
1589
  return request_default({
1590
1590
  url: `/api/v1/wallet/bind`,
1591
1591
  method: "POST",
1592
- data: { type, address, signature, message, connector_type, wallet_client_type }
1592
+ data: { type, address: address2, signature, message, connector_type, wallet_client_type }
1593
1593
  });
1594
1594
  };
1595
1595
  var getAppConfigApi = () => {
@@ -1635,7 +1635,7 @@ var persistedState = (0, import_middleware.persist)(
1635
1635
  setTheme: (theme) => set({ theme }),
1636
1636
  setEndpoints: (endpoints) => set({ endpoints }),
1637
1637
  address: "",
1638
- setAddress: (address) => set({ address }),
1638
+ setAddress: (address2) => set({ address: address2 }),
1639
1639
  locale: "en",
1640
1640
  setLocale: (locale) => set({ locale }),
1641
1641
  wallet: {
@@ -1652,10 +1652,10 @@ var localStore = useLocalStore;
1652
1652
  var useLocalStore_default = useLocalStore;
1653
1653
 
1654
1654
  // src/hooks/useUserInfo.tsx
1655
- var import_react18 = require("react");
1655
+ var import_react20 = require("react");
1656
1656
 
1657
1657
  // src/MatchContext.tsx
1658
- var import_react17 = require("react");
1658
+ var import_react19 = require("react");
1659
1659
 
1660
1660
  // src/hooks/useMatchEvents.ts
1661
1661
  var import_react5 = require("react");
@@ -1904,10 +1904,17 @@ var import_jsx_runtime61 = require("react/jsx-runtime");
1904
1904
 
1905
1905
  // src/hooks/useMatchWallet.tsx
1906
1906
  var import_react_qrcode = require("react-qrcode");
1907
+ var import_react14 = require("react");
1907
1908
  var import_jsx_runtime62 = require("react/jsx-runtime");
1908
1909
 
1910
+ // src/hooks/useReceipt.tsx
1911
+ var import_react15 = require("react");
1912
+ var import_react_query3 = require("@tanstack/react-query");
1913
+ var import_viem5 = require("viem");
1914
+ var CACHE_TTL = 86400 * 30 * 1e3;
1915
+
1909
1916
  // src/components/CEXBindModal/index.tsx
1910
- var import_react14 = require("react");
1917
+ var import_react16 = require("react");
1911
1918
  var import_react_intl2 = require("react-intl");
1912
1919
  var import_jsx_runtime63 = require("react/jsx-runtime");
1913
1920
 
@@ -1918,20 +1925,20 @@ var import_jsx_runtime64 = require("react/jsx-runtime");
1918
1925
  var import_jsx_runtime65 = require("react/jsx-runtime");
1919
1926
 
1920
1927
  // src/hooks/useWalletInit.ts
1921
- var import_react15 = require("react");
1928
+ var import_react17 = require("react");
1922
1929
  var AppClientId2 = getAppClientId();
1923
1930
 
1924
1931
  // src/hooks/useInit.tsx
1925
- var import_react16 = require("react");
1932
+ var import_react18 = require("react");
1926
1933
 
1927
1934
  // src/MatchContext.tsx
1928
- var import_react_query3 = require("@tanstack/react-query");
1935
+ var import_react_query4 = require("@tanstack/react-query");
1929
1936
  var import_react_intl3 = require("react-intl");
1930
1937
  var import_jsx_runtime66 = require("react/jsx-runtime");
1931
- var queryClient = new import_react_query3.QueryClient();
1932
- var MatchContext = (0, import_react17.createContext)(void 0);
1938
+ var queryClient = new import_react_query4.QueryClient();
1939
+ var MatchContext = (0, import_react19.createContext)(void 0);
1933
1940
  var useMatch = () => {
1934
- const context = (0, import_react17.useContext)(MatchContext);
1941
+ const context = (0, import_react19.useContext)(MatchContext);
1935
1942
  if (context === void 0) {
1936
1943
  throw new Error("useMatch must be used within a MatchProvider");
1937
1944
  }
@@ -1948,7 +1955,7 @@ function useUserInfo() {
1948
1955
  logout: logoutStore,
1949
1956
  setOverview,
1950
1957
  overview,
1951
- address,
1958
+ address: address2,
1952
1959
  endpoints,
1953
1960
  locale,
1954
1961
  refreshOverview
@@ -1960,7 +1967,7 @@ function useUserInfo() {
1960
1967
  const { open: BTCOpen } = useBTCModalStore();
1961
1968
  const { open: CEXBindOpen } = useCEXBindModalStore();
1962
1969
  const walletModalStore = useWalletModalStore();
1963
- const isLogin = (0, import_react18.useMemo)(() => !!token && !!overview, [token, overview]);
1970
+ const isLogin = (0, import_react20.useMemo)(() => !!token && !!overview, [token, overview]);
1964
1971
  const logout = async () => {
1965
1972
  try {
1966
1973
  await toLogoutApi();
@@ -2176,7 +2183,7 @@ function useUserInfo() {
2176
2183
  token,
2177
2184
  mid,
2178
2185
  did,
2179
- address,
2186
+ address: address2,
2180
2187
  isLogin,
2181
2188
  logout,
2182
2189
  getLoginEmailCode,
@@ -2192,7 +2199,7 @@ function useUserInfo() {
2192
2199
  }
2193
2200
 
2194
2201
  // src/components/EmailModal/StepVerify.tsx
2195
- var import_react19 = require("react");
2202
+ var import_react21 = require("react");
2196
2203
 
2197
2204
  // src/config/index.tsx
2198
2205
  var EMAIL_INTERVAL = 60;
@@ -2204,17 +2211,17 @@ var import_jsx_runtime67 = require("react/jsx-runtime");
2204
2211
  function StepVerify(props) {
2205
2212
  const intl = (0, import_react_intl4.useIntl)();
2206
2213
  const { getLoginEmailCode, loginByEmail } = useUserInfo();
2207
- const [error, setError] = (0, import_react19.useState)("");
2208
- const [code, setCode] = (0, import_react19.useState)("");
2209
- const [sending, setSending] = (0, import_react19.useState)(false);
2210
- const [submitting, setSubmitting] = (0, import_react19.useState)(false);
2211
- const sendTimeRef = (0, import_react19.useRef)(0);
2212
- const [sendBtnText, setSendBtnText] = (0, import_react19.useState)(intl.formatMessage({
2214
+ const [error, setError] = (0, import_react21.useState)("");
2215
+ const [code, setCode] = (0, import_react21.useState)("");
2216
+ const [sending, setSending] = (0, import_react21.useState)(false);
2217
+ const [submitting, setSubmitting] = (0, import_react21.useState)(false);
2218
+ const sendTimeRef = (0, import_react21.useRef)(0);
2219
+ const [sendBtnText, setSendBtnText] = (0, import_react21.useState)(intl.formatMessage({
2213
2220
  id: "send"
2214
2221
  }));
2215
2222
  const intervalTime = EMAIL_INTERVAL;
2216
2223
  const codeLength = EMAIL_CODE_LENGTH;
2217
- const intervalRef = (0, import_react19.useRef)(null);
2224
+ const intervalRef = (0, import_react21.useRef)(null);
2218
2225
  const isDownMd = useDownMd();
2219
2226
  const onSend = async () => {
2220
2227
  if (sendTimeRef.current > 0) {
@@ -2245,7 +2252,7 @@ function StepVerify(props) {
2245
2252
  setSending(false);
2246
2253
  }
2247
2254
  };
2248
- (0, import_react19.useEffect)(() => {
2255
+ (0, import_react21.useEffect)(() => {
2249
2256
  onSend();
2250
2257
  return () => {
2251
2258
  if (intervalRef.current) {
@@ -2253,7 +2260,7 @@ function StepVerify(props) {
2253
2260
  }
2254
2261
  };
2255
2262
  }, []);
2256
- const canContinue = (0, import_react19.useMemo)(() => {
2263
+ const canContinue = (0, import_react21.useMemo)(() => {
2257
2264
  return code.length === codeLength;
2258
2265
  }, [code]);
2259
2266
  const onContinue = async () => {
@@ -2330,10 +2337,10 @@ function EmailModal({
2330
2337
  onBack,
2331
2338
  onLogin
2332
2339
  }) {
2333
- const [step, setStep] = (0, import_react20.useState)("input");
2334
- const [emailVal, setEmailVal] = (0, import_react20.useState)("");
2340
+ const [step, setStep] = (0, import_react22.useState)("input");
2341
+ const [emailVal, setEmailVal] = (0, import_react22.useState)("");
2335
2342
  const intl = (0, import_react_intl5.useIntl)();
2336
- (0, import_react20.useEffect)(() => {
2343
+ (0, import_react22.useEffect)(() => {
2337
2344
  if (!isOpen) {
2338
2345
  setStep("input");
2339
2346
  setEmailVal("");
@@ -2358,13 +2365,13 @@ function EmailModal({
2358
2365
  }
2359
2366
 
2360
2367
  // src/components/LoginBox/index.tsx
2361
- var import_react21 = require("react");
2368
+ var import_react23 = require("react");
2362
2369
  var import_react_intl6 = require("react-intl");
2363
2370
 
2364
2371
  // src/hooks/useAppConfig.ts
2365
- var import_react_query4 = require("@tanstack/react-query");
2372
+ var import_react_query5 = require("@tanstack/react-query");
2366
2373
  function useAppConfig() {
2367
- const query = (0, import_react_query4.useQuery)({
2374
+ const query = (0, import_react_query5.useQuery)({
2368
2375
  queryKey: ["appConfig"],
2369
2376
  queryFn: async () => {
2370
2377
  const res = await getAppConfigApi();
@@ -2429,7 +2436,7 @@ function LoginBox({
2429
2436
  inModal = false
2430
2437
  }) {
2431
2438
  const config = useAppConfig();
2432
- const methodConfig = (0, import_react21.useMemo)(() => {
2439
+ const methodConfig = (0, import_react23.useMemo)(() => {
2433
2440
  if (recommendMethods || methods || walletMethods) {
2434
2441
  return {
2435
2442
  recommendMethods: recommendMethods ? recommendMethods : walletMethods ? ["wallet"] : [],
@@ -2471,9 +2478,9 @@ function LoginBox({
2471
2478
  walletMethods: walletMethodList
2472
2479
  };
2473
2480
  }, [config.platform, recommendMethods, methods, walletMethods]);
2474
- const [emailOpen, setEmailOpen] = (0, import_react21.useState)(false);
2481
+ const [emailOpen, setEmailOpen] = (0, import_react23.useState)(false);
2475
2482
  const { login } = useUserInfo();
2476
- const [showWallet, setShowWallet] = (0, import_react21.useState)(false);
2483
+ const [showWallet, setShowWallet] = (0, import_react23.useState)(false);
2477
2484
  const intl = (0, import_react_intl6.useIntl)();
2478
2485
  const isDownMd = useDownMd();
2479
2486
  const methodMap = {
@@ -2621,7 +2628,7 @@ function LoginBox({
2621
2628
  }
2622
2629
 
2623
2630
  // src/components/LoginButton/index.tsx
2624
- var import_react23 = require("react");
2631
+ var import_react25 = require("react");
2625
2632
 
2626
2633
  // src/components/LoginPanel/index.tsx
2627
2634
  var import_react_intl7 = require("react-intl");
@@ -2664,7 +2671,7 @@ function LoginModal({
2664
2671
  }
2665
2672
 
2666
2673
  // src/components/UserPopover/index.tsx
2667
- var import_react22 = require("react");
2674
+ var import_react24 = require("react");
2668
2675
 
2669
2676
  // src/assets/icon/ProfileIcon.tsx
2670
2677
  var import_jsx_runtime72 = require("react/jsx-runtime");
@@ -2695,8 +2702,8 @@ function ProfileIcon({ size = 24, color = "black", ...props }) {
2695
2702
  var import_react_intl8 = require("react-intl");
2696
2703
  var import_jsx_runtime73 = require("react/jsx-runtime");
2697
2704
  function UserContent() {
2698
- const { logout, address, username } = useUserInfo();
2699
- const [logouting, setLogouting] = (0, import_react22.useState)(false);
2705
+ const { logout, address: address2, username } = useUserInfo();
2706
+ const [logouting, setLogouting] = (0, import_react24.useState)(false);
2700
2707
  const onLogout = async () => {
2701
2708
  if (logouting) return;
2702
2709
  try {
@@ -2725,14 +2732,14 @@ function UserContent() {
2725
2732
  const UserDivider = () => {
2726
2733
  return /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("div", { className: `matchid-user-popover-divider` });
2727
2734
  };
2728
- const [usernameOpen, setUsernameOpen] = (0, import_react22.useState)(false);
2735
+ const [usernameOpen, setUsernameOpen] = (0, import_react24.useState)(false);
2729
2736
  const [copied, setCopied] = useCopyClipboard();
2730
2737
  const intl = (0, import_react_intl8.useIntl)();
2731
2738
  return /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)("div", { className: "matchid-user-popover-content", children: [
2732
2739
  /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)("div", { className: "matchid-user-popover-list", children: [
2733
2740
  /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(UserItem, { onClick: () => {
2734
- setCopied(address);
2735
- }, icon: copied ? /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(CheckIcon, { size: 20, color: "#0ecb81" }) : /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(CopyIcon, { size: 20, color: "var(--icon-color)" }), rightIcon: /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(CheckIcon, { size: 20, color: "var(--icon-color)" }), children: truncateAddress(address) }),
2741
+ setCopied(address2);
2742
+ }, icon: copied ? /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(CheckIcon, { size: 20, color: "#0ecb81" }) : /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(CopyIcon, { size: 20, color: "var(--icon-color)" }), rightIcon: /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(CheckIcon, { size: 20, color: "var(--icon-color)" }), children: truncateAddress(address2) }),
2736
2743
  /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(UserDivider, {}),
2737
2744
  /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(UserItem, { onClick: () => {
2738
2745
  setUsernameOpen(true);
@@ -2771,7 +2778,7 @@ function LoginButton({
2771
2778
  }) {
2772
2779
  const intl = (0, import_react_intl9.useIntl)();
2773
2780
  const { isLogin, username } = useUserInfo();
2774
- const [loginOpen, setLoginOpen] = (0, import_react23.useState)(false);
2781
+ const [loginOpen, setLoginOpen] = (0, import_react25.useState)(false);
2775
2782
  if (!isLogin) {
2776
2783
  return /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)(import_jsx_runtime74.Fragment, { children: [
2777
2784
  /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(
@@ -2799,7 +2806,7 @@ function LoginButton({
2799
2806
  }
2800
2807
 
2801
2808
  // src/components/UsernameModal/index.tsx
2802
- var import_react24 = require("react");
2809
+ var import_react26 = require("react");
2803
2810
 
2804
2811
  // src/assets/icon/InfoRoundIcon.tsx
2805
2812
  var import_jsx_runtime75 = require("react/jsx-runtime");
@@ -2843,23 +2850,23 @@ function UsernameModal({
2843
2850
  }) {
2844
2851
  const { username, refreshOverview } = useUserInfo();
2845
2852
  const { isLogin } = useUserInfo();
2846
- const [val, setVal] = (0, import_react24.useState)(username);
2847
- const [error, setError] = (0, import_react24.useState)("");
2853
+ const [val, setVal] = (0, import_react26.useState)(username);
2854
+ const [error, setError] = (0, import_react26.useState)("");
2848
2855
  const isDownMd = useDownMd();
2849
- (0, import_react24.useEffect)(() => {
2856
+ (0, import_react26.useEffect)(() => {
2850
2857
  if (isOpen) {
2851
2858
  setVal(username);
2852
2859
  setError("");
2853
2860
  }
2854
2861
  }, [isOpen]);
2855
- const isValid = (0, import_react24.useMemo)(() => {
2862
+ const isValid = (0, import_react26.useMemo)(() => {
2856
2863
  return isValidUsername(val);
2857
2864
  }, [val]);
2858
- const isLength = (0, import_react24.useMemo)(() => {
2865
+ const isLength = (0, import_react26.useMemo)(() => {
2859
2866
  return val.length >= 2 && val.length <= 32;
2860
2867
  }, [val]);
2861
2868
  const isSafe = isValid && isLength;
2862
- const [isSubmitting, setIsSubmitting] = (0, import_react24.useState)(false);
2869
+ const [isSubmitting, setIsSubmitting] = (0, import_react26.useState)(false);
2863
2870
  const onSubmit = async () => {
2864
2871
  if (isSubmitting) return;
2865
2872
  try {
@@ -2922,7 +2929,7 @@ function UsernameModal({
2922
2929
  }
2923
2930
 
2924
2931
  // src/components/SOLModal/index.tsx
2925
- var import_react26 = __toESM(require("react"));
2932
+ var import_react28 = __toESM(require("react"));
2926
2933
  var import_web3 = require("@solana/web3.js");
2927
2934
  var import_wallet_adapter_react = require("@solana/wallet-adapter-react");
2928
2935
  var import_wallet_adapter_react_ui = require("@solana/wallet-adapter-react-ui");
@@ -2941,7 +2948,7 @@ var import_styles = require("@solana/wallet-adapter-react-ui/styles.css");
2941
2948
  var import_react_intl11 = require("react-intl");
2942
2949
 
2943
2950
  // src/components/WalletModalContent/index.tsx
2944
- var import_react25 = require("react");
2951
+ var import_react27 = require("react");
2945
2952
 
2946
2953
  // src/assets/wallet.ts
2947
2954
  var walletErrorImage = "data:image/png;base64,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";
@@ -2959,10 +2966,10 @@ function WalletModalContent({
2959
2966
  setError,
2960
2967
  setVisible,
2961
2968
  visible,
2962
- address,
2969
+ address: address2,
2963
2970
  connected
2964
2971
  }) {
2965
- const pageData = (0, import_react25.useMemo)(() => {
2972
+ const pageData = (0, import_react27.useMemo)(() => {
2966
2973
  if (status == "success") {
2967
2974
  return {
2968
2975
  btnText: "Disconnect Wallet",
@@ -3020,7 +3027,7 @@ function WalletModalContent({
3020
3027
  text: "Please Connect your wallet",
3021
3028
  statusImage: walletConnectImage
3022
3029
  };
3023
- }, [visible, connected, status, error, address]);
3030
+ }, [visible, connected, status, error, address2]);
3024
3031
  return /* @__PURE__ */ (0, import_jsx_runtime77.jsx)("div", { className: "matchid-wallet-container", children: /* @__PURE__ */ (0, import_jsx_runtime77.jsxs)("div", { className: `matchid-wallet-box`, children: [
3025
3032
  /* @__PURE__ */ (0, import_jsx_runtime77.jsxs)("div", { className: `matchid-wallet-content`, children: [
3026
3033
  /* @__PURE__ */ (0, import_jsx_runtime77.jsx)("img", { src: pageData.statusImage }),
@@ -3049,17 +3056,17 @@ function WalletContent({
3049
3056
  const { setVisible, visible } = (0, import_wallet_adapter_react_ui.useWalletModal)();
3050
3057
  const wallet = (0, import_wallet_adapter_react.useWallet)();
3051
3058
  const { events, login } = useMatch();
3052
- const [status, setStatus] = (0, import_react26.useState)("");
3053
- const statusRef = import_react26.default.useRef(status);
3054
- const [error, setError] = (0, import_react26.useState)("");
3055
- (0, import_react26.useEffect)(() => {
3059
+ const [status, setStatus] = (0, import_react28.useState)("");
3060
+ const statusRef = import_react28.default.useRef(status);
3061
+ const [error, setError] = (0, import_react28.useState)("");
3062
+ (0, import_react28.useEffect)(() => {
3056
3063
  const init = async () => {
3057
3064
  await wallet.disconnect();
3058
3065
  setVisible(true);
3059
3066
  };
3060
3067
  init();
3061
3068
  }, []);
3062
- (0, import_react26.useEffect)(() => {
3069
+ (0, import_react28.useEffect)(() => {
3063
3070
  if (wallet.connected) {
3064
3071
  console.log("wallet.connected", wallet.connected);
3065
3072
  toLoginInWallet();
@@ -3067,14 +3074,14 @@ function WalletContent({
3067
3074
  }, [wallet.connected]);
3068
3075
  const toLoginInWallet = async () => {
3069
3076
  if (statusRef.current) return;
3070
- const address = wallet.publicKey?.toBase58() || "";
3077
+ const address2 = wallet.publicKey?.toBase58() || "";
3071
3078
  try {
3072
3079
  setStatus("nonce");
3073
3080
  statusRef.current = "nonce";
3074
3081
  const res = type == "bind" ? await getWalletInitApi({
3075
- address,
3082
+ address: address2,
3076
3083
  type: "SOL"
3077
- }) : await getWalletNonceApi({ address, type: "SOL" });
3084
+ }) : await getWalletNonceApi({ address: address2, type: "SOL" });
3078
3085
  if (!isSuccess(res)) {
3079
3086
  throw new Error(res.message);
3080
3087
  }
@@ -3087,7 +3094,7 @@ function WalletContent({
3087
3094
  const signedMessage = await wallet.signMessage(encodedMessage);
3088
3095
  let obj = {
3089
3096
  type: "SOL",
3090
- address,
3097
+ address: address2,
3091
3098
  signature: Buffer.from(signedMessage).toString("base64"),
3092
3099
  message,
3093
3100
  connector_type: "SOL",
@@ -3195,7 +3202,7 @@ function SOLModal(props) {
3195
3202
  }
3196
3203
 
3197
3204
  // src/components/TRONModal/index.tsx
3198
- var import_react28 = __toESM(require("react"));
3205
+ var import_react30 = __toESM(require("react"));
3199
3206
  var import_react_intl12 = require("react-intl");
3200
3207
 
3201
3208
  // src/lib/tron/TronLinkAdapter.ts
@@ -3229,7 +3236,7 @@ var TronLinkAdapter = class {
3229
3236
  };
3230
3237
 
3231
3238
  // src/hooks/useTRONWallet.ts
3232
- var import_react27 = require("react");
3239
+ var import_react29 = require("react");
3233
3240
 
3234
3241
  // src/lib/tron/BitgetAdapter.ts
3235
3242
  var BitgetAdapter = class {
@@ -3274,9 +3281,9 @@ var OKXAdapter = class {
3274
3281
  // src/hooks/useTRONWallet.ts
3275
3282
  var useTRONWallet = () => {
3276
3283
  const wallets2 = [new TronLinkAdapter(), new BitgetAdapter(), new OKXAdapter()];
3277
- const [installedWallets, setInstalledWallets] = (0, import_react27.useState)([]);
3278
- const [address, setAddress] = (0, import_react27.useState)(null);
3279
- (0, import_react27.useEffect)(() => {
3284
+ const [installedWallets, setInstalledWallets] = (0, import_react29.useState)([]);
3285
+ const [address2, setAddress] = (0, import_react29.useState)(null);
3286
+ (0, import_react29.useEffect)(() => {
3280
3287
  const getInstalled = async () => {
3281
3288
  const installed = await Promise.all(wallets2.map((wallet2) => wallet2.isInstalled().then((isInstalled) => ({
3282
3289
  wallet: wallet2,
@@ -3286,11 +3293,11 @@ var useTRONWallet = () => {
3286
3293
  };
3287
3294
  getInstalled();
3288
3295
  }, []);
3289
- const [wallet, chooseWallet] = (0, import_react27.useState)(null);
3296
+ const [wallet, chooseWallet] = (0, import_react29.useState)(null);
3290
3297
  const onConnect = async () => {
3291
3298
  setAddress(await wallet.connect());
3292
3299
  };
3293
- (0, import_react27.useEffect)(() => {
3300
+ (0, import_react29.useEffect)(() => {
3294
3301
  if (!wallet) {
3295
3302
  setAddress(null);
3296
3303
  }
@@ -3300,7 +3307,7 @@ var useTRONWallet = () => {
3300
3307
  wallets: wallets2,
3301
3308
  chooseWallet,
3302
3309
  wallet,
3303
- address,
3310
+ address: address2,
3304
3311
  onConnect
3305
3312
  };
3306
3313
  };
@@ -3314,19 +3321,19 @@ function TRONConnectModal({
3314
3321
  }) {
3315
3322
  const isDownMd = useDownMd();
3316
3323
  const intl = (0, import_react_intl12.useIntl)();
3317
- const { wallets: wallets2, installedWallets, chooseWallet, wallet, address, onConnect } = useTRONWallet();
3324
+ const { wallets: wallets2, installedWallets, chooseWallet, wallet, address: address2, onConnect } = useTRONWallet();
3318
3325
  const iconMaps = {
3319
3326
  tronlink: /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(TronLinkIcon, { size: isDownMd ? 36 : 40 }),
3320
3327
  bitget: /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(BitgetIcon, { size: isDownMd ? 36 : 40 }),
3321
3328
  okx: /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(OKXIcon, { size: isDownMd ? 36 : 40 })
3322
3329
  };
3323
3330
  const { events, login } = useMatch();
3324
- const [status, setStatus] = (0, import_react28.useState)("");
3325
- const statusRef = import_react28.default.useRef(status);
3326
- const [error, setError] = (0, import_react28.useState)("");
3327
- const connected = (0, import_react28.useMemo)(() => {
3328
- return !!address;
3329
- }, [address]);
3331
+ const [status, setStatus] = (0, import_react30.useState)("");
3332
+ const statusRef = import_react30.default.useRef(status);
3333
+ const [error, setError] = (0, import_react30.useState)("");
3334
+ const connected = (0, import_react30.useMemo)(() => {
3335
+ return !!address2;
3336
+ }, [address2]);
3330
3337
  const disconnect = async () => {
3331
3338
  setStatus("");
3332
3339
  chooseWallet(null);
@@ -3340,11 +3347,11 @@ function TRONConnectModal({
3340
3347
  setError("");
3341
3348
  };
3342
3349
  const toLoginInWallet = async () => {
3343
- if (statusRef.current || !address || !wallet) return;
3350
+ if (statusRef.current || !address2 || !wallet) return;
3344
3351
  try {
3345
3352
  setStatus("nonce");
3346
3353
  statusRef.current = "nonce";
3347
- const res = type == "bind" ? await getWalletInitApi({ address, type: "TRON" }) : await getWalletNonceApi({ address, type: "TRON" });
3354
+ const res = type == "bind" ? await getWalletInitApi({ address: address2, type: "TRON" }) : await getWalletNonceApi({ address: address2, type: "TRON" });
3348
3355
  if (!isSuccess(res)) {
3349
3356
  throw new Error(res.message);
3350
3357
  }
@@ -3356,7 +3363,7 @@ function TRONConnectModal({
3356
3363
  const signedMessage = await wallet.signMessage(message);
3357
3364
  let obj = {
3358
3365
  type: "TRON",
3359
- address,
3366
+ address: address2,
3360
3367
  signature: signedMessage,
3361
3368
  message,
3362
3369
  connector_type: "TRON",
@@ -3392,7 +3399,7 @@ function TRONConnectModal({
3392
3399
  statusRef.current = "";
3393
3400
  }
3394
3401
  };
3395
- (0, import_react28.useEffect)(() => {
3402
+ (0, import_react30.useEffect)(() => {
3396
3403
  if (wallet) {
3397
3404
  console.log("onConnect");
3398
3405
  onConnect();
@@ -3400,12 +3407,12 @@ function TRONConnectModal({
3400
3407
  setStatus("");
3401
3408
  }
3402
3409
  }, [wallet]);
3403
- (0, import_react28.useEffect)(() => {
3404
- if (address) {
3410
+ (0, import_react30.useEffect)(() => {
3411
+ if (address2) {
3405
3412
  toLoginInWallet();
3406
3413
  }
3407
- }, [address]);
3408
- (0, import_react28.useEffect)(() => {
3414
+ }, [address2]);
3415
+ (0, import_react30.useEffect)(() => {
3409
3416
  if (!props.isOpen) {
3410
3417
  disconnect();
3411
3418
  }
@@ -3421,7 +3428,7 @@ function TRONConnectModal({
3421
3428
  setError,
3422
3429
  status,
3423
3430
  disconnect,
3424
- address: address || "",
3431
+ address: address2 || "",
3425
3432
  connected,
3426
3433
  visible: true,
3427
3434
  setVisible: () => {
@@ -3463,7 +3470,7 @@ function TRONModal(props) {
3463
3470
  }
3464
3471
 
3465
3472
  // src/components/TONModal/index.tsx
3466
- var import_react29 = __toESM(require("react"));
3473
+ var import_react31 = __toESM(require("react"));
3467
3474
  var import_react_intl13 = require("react-intl");
3468
3475
  var import_ui_react = require("@tonconnect/ui-react");
3469
3476
  var import_jsx_runtime80 = require("react/jsx-runtime");
@@ -3472,15 +3479,15 @@ function WalletContent2({
3472
3479
  type
3473
3480
  }) {
3474
3481
  const { events, login } = useMatch();
3475
- const [connected, setConnected] = (0, import_react29.useState)(false);
3482
+ const [connected, setConnected] = (0, import_react31.useState)(false);
3476
3483
  const wallet = (0, import_ui_react.useTonWallet)();
3477
3484
  const userFriendlyAddress = (0, import_ui_react.useTonAddress)();
3478
3485
  const [tonConnectUI] = (0, import_ui_react.useTonConnectUI)();
3479
3486
  const { state, open, close } = (0, import_ui_react.useTonConnectModal)();
3480
- const [status, setStatus] = (0, import_react29.useState)("");
3481
- const statusRef = import_react29.default.useRef(status);
3482
- const [error, setError] = (0, import_react29.useState)("");
3483
- (0, import_react29.useEffect)(() => {
3487
+ const [status, setStatus] = (0, import_react31.useState)("");
3488
+ const statusRef = import_react31.default.useRef(status);
3489
+ const [error, setError] = (0, import_react31.useState)("");
3490
+ (0, import_react31.useEffect)(() => {
3484
3491
  const init = async () => {
3485
3492
  if (wallet) {
3486
3493
  await tonConnectUI.disconnect();
@@ -3553,7 +3560,7 @@ function WalletContent2({
3553
3560
  }
3554
3561
  });
3555
3562
  }, []);
3556
- (0, import_react29.useEffect)(() => {
3563
+ (0, import_react31.useEffect)(() => {
3557
3564
  if (wallet) {
3558
3565
  setConnected(true);
3559
3566
  console.log("Wallet connected:", wallet);
@@ -3564,7 +3571,7 @@ function WalletContent2({
3564
3571
  setStatus("");
3565
3572
  }
3566
3573
  }, [wallet]);
3567
- (0, import_react29.useEffect)(() => {
3574
+ (0, import_react31.useEffect)(() => {
3568
3575
  console.log({
3569
3576
  state,
3570
3577
  wallet
@@ -3644,7 +3651,7 @@ function TONModal(props) {
3644
3651
  }
3645
3652
 
3646
3653
  // src/components/BTCModal/index.tsx
3647
- var import_react31 = __toESM(require("react"));
3654
+ var import_react33 = __toESM(require("react"));
3648
3655
  var import_react_intl14 = require("react-intl");
3649
3656
 
3650
3657
  // src/lib/btc/UnisatAdapter.ts
@@ -3730,7 +3737,7 @@ var XverseAdapter = class {
3730
3737
  matchlog_default.log("getAccounts ~ response:", response);
3731
3738
  if (response.status === "success") {
3732
3739
  const ordinalsAddressItem = response.result.find(
3733
- (address) => address.purpose === import_sats_connect.AddressPurpose.Ordinals
3740
+ (address2) => address2.purpose === import_sats_connect.AddressPurpose.Ordinals
3734
3741
  );
3735
3742
  this.address = ordinalsAddressItem?.address || "";
3736
3743
  return ordinalsAddressItem?.address || "";
@@ -3793,12 +3800,12 @@ var LeatherAdapter = class {
3793
3800
  };
3794
3801
 
3795
3802
  // src/hooks/useBTCWallet.ts
3796
- var import_react30 = require("react");
3803
+ var import_react32 = require("react");
3797
3804
  var useBTCWallet = () => {
3798
3805
  const wallets2 = [new UnisatAdapter(), new XverseAdapter(), new LeatherAdapter()];
3799
- const [installedWallets, setInstalledWallets] = (0, import_react30.useState)([]);
3800
- const [address, setAddress] = (0, import_react30.useState)(null);
3801
- (0, import_react30.useEffect)(() => {
3806
+ const [installedWallets, setInstalledWallets] = (0, import_react32.useState)([]);
3807
+ const [address2, setAddress] = (0, import_react32.useState)(null);
3808
+ (0, import_react32.useEffect)(() => {
3802
3809
  const getInstalled = async () => {
3803
3810
  const installed = await Promise.all(wallets2.map((wallet2) => wallet2.isInstalled().then((isInstalled) => ({
3804
3811
  wallet: wallet2,
@@ -3808,11 +3815,11 @@ var useBTCWallet = () => {
3808
3815
  };
3809
3816
  getInstalled();
3810
3817
  }, []);
3811
- const [wallet, chooseWallet] = (0, import_react30.useState)(null);
3818
+ const [wallet, chooseWallet] = (0, import_react32.useState)(null);
3812
3819
  const onConnect = async () => {
3813
3820
  setAddress(await wallet.connect());
3814
3821
  };
3815
- (0, import_react30.useEffect)(() => {
3822
+ (0, import_react32.useEffect)(() => {
3816
3823
  if (!wallet) {
3817
3824
  setAddress(null);
3818
3825
  }
@@ -3822,7 +3829,7 @@ var useBTCWallet = () => {
3822
3829
  wallets: wallets2,
3823
3830
  chooseWallet,
3824
3831
  wallet,
3825
- address,
3832
+ address: address2,
3826
3833
  onConnect
3827
3834
  };
3828
3835
  };
@@ -3836,19 +3843,19 @@ function BTCConnectModal({
3836
3843
  }) {
3837
3844
  const isDownMd = useDownMd();
3838
3845
  const intl = (0, import_react_intl14.useIntl)();
3839
- const { wallets: wallets2, installedWallets, chooseWallet, wallet, address, onConnect } = useBTCWallet();
3846
+ const { wallets: wallets2, installedWallets, chooseWallet, wallet, address: address2, onConnect } = useBTCWallet();
3840
3847
  const iconMaps = {
3841
3848
  leather: /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(LeatherIcon, { size: isDownMd ? 36 : 40 }),
3842
3849
  unisat: /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(UnisatIcon, { size: isDownMd ? 36 : 40 }),
3843
3850
  xverse: /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(XverseIcon, { size: isDownMd ? 36 : 40 })
3844
3851
  };
3845
3852
  const { events, login } = useMatch();
3846
- const [status, setStatus] = (0, import_react31.useState)("");
3847
- const statusRef = import_react31.default.useRef(status);
3848
- const [error, setError] = (0, import_react31.useState)("");
3849
- const connected = (0, import_react31.useMemo)(() => {
3850
- return !!address;
3851
- }, [address]);
3853
+ const [status, setStatus] = (0, import_react33.useState)("");
3854
+ const statusRef = import_react33.default.useRef(status);
3855
+ const [error, setError] = (0, import_react33.useState)("");
3856
+ const connected = (0, import_react33.useMemo)(() => {
3857
+ return !!address2;
3858
+ }, [address2]);
3852
3859
  const disconnect = async () => {
3853
3860
  wallet && wallet.disconnet && wallet.disconnet();
3854
3861
  setStatus("");
@@ -3857,11 +3864,11 @@ function BTCConnectModal({
3857
3864
  setError("");
3858
3865
  };
3859
3866
  const toLoginInWallet = async () => {
3860
- if (statusRef.current || !address || !wallet) return;
3867
+ if (statusRef.current || !address2 || !wallet) return;
3861
3868
  try {
3862
3869
  setStatus("nonce");
3863
3870
  statusRef.current = "nonce";
3864
- const res = type == "bind" ? await getWalletInitApi({ address, type: "BTC" }) : await getWalletNonceApi({ address, type: "BTC" });
3871
+ const res = type == "bind" ? await getWalletInitApi({ address: address2, type: "BTC" }) : await getWalletNonceApi({ address: address2, type: "BTC" });
3865
3872
  if (!isSuccess(res)) {
3866
3873
  throw new Error(res.message);
3867
3874
  }
@@ -3873,7 +3880,7 @@ function BTCConnectModal({
3873
3880
  const signedMessage = await wallet.signMessage(message);
3874
3881
  let obj = {
3875
3882
  type: "BTC",
3876
- address,
3883
+ address: address2,
3877
3884
  signature: signedMessage,
3878
3885
  message,
3879
3886
  connector_type: "BTC",
@@ -3910,7 +3917,7 @@ function BTCConnectModal({
3910
3917
  statusRef.current = "";
3911
3918
  }
3912
3919
  };
3913
- (0, import_react31.useEffect)(() => {
3920
+ (0, import_react33.useEffect)(() => {
3914
3921
  if (wallet) {
3915
3922
  console.log("onConnect");
3916
3923
  try {
@@ -3923,12 +3930,12 @@ function BTCConnectModal({
3923
3930
  setStatus("");
3924
3931
  }
3925
3932
  }, [wallet]);
3926
- (0, import_react31.useEffect)(() => {
3927
- if (address) {
3933
+ (0, import_react33.useEffect)(() => {
3934
+ if (address2) {
3928
3935
  toLoginInWallet();
3929
3936
  }
3930
- }, [address]);
3931
- (0, import_react31.useEffect)(() => {
3937
+ }, [address2]);
3938
+ (0, import_react33.useEffect)(() => {
3932
3939
  if (!props.isOpen) {
3933
3940
  disconnect();
3934
3941
  }
@@ -3951,7 +3958,7 @@ function BTCConnectModal({
3951
3958
  setError,
3952
3959
  status,
3953
3960
  disconnect,
3954
- address: address || "",
3961
+ address: address2 || "",
3955
3962
  connected,
3956
3963
  visible: true,
3957
3964
  setVisible: () => {
@@ -3993,7 +4000,7 @@ function BTCModal(props) {
3993
4000
  }
3994
4001
 
3995
4002
  // src/components/WalletModal/index.tsx
3996
- var import_react32 = require("react");
4003
+ var import_react34 = require("react");
3997
4004
  var import_react_intl15 = require("react-intl");
3998
4005
  var import_jsx_runtime82 = require("react/jsx-runtime");
3999
4006
  function WalletConnectModal({
@@ -4005,7 +4012,7 @@ function WalletConnectModal({
4005
4012
  const { walletMap } = useWalletConfig();
4006
4013
  const { bind, login } = useUserInfo();
4007
4014
  const config = useAppConfig();
4008
- const methods = (0, import_react32.useMemo)(() => {
4015
+ const methods = (0, import_react34.useMemo)(() => {
4009
4016
  if (_methods) return _methods;
4010
4017
  if (!config.platform) {
4011
4018
  return [];