@interchain-kit/react 0.2.207 → 0.2.211

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/modal/modal.js CHANGED
@@ -3,110 +3,56 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.WalletModal = void 0;
4
4
  const jsx_runtime_1 = require("react/jsx-runtime");
5
5
  const views_1 = require("./views");
6
- const provider_1 = require("./provider");
7
- const hooks_1 = require("../hooks");
8
6
  const react_1 = require("react");
9
- const core_1 = require("@interchain-kit/core");
10
7
  const react_2 = require("@interchain-ui/react");
11
- const WalletModal = () => {
12
- const [qrCode, setQRCode] = (0, react_1.useState)(null);
13
- const { currentWalletName, currentChainName, wallets, connect, getAccount, setCurrentWalletName, } = (0, hooks_1.useWalletManager)();
14
- const { modalIsOpen, open, close } = (0, provider_1.useWalletModal)();
15
- const [modalType, setModalType] = (0, react_1.useState)("wallet-list");
16
- const [selectedWallet, setSelectedWallet] = (0, react_1.useState)(null);
17
- const { chain, status, wallet } = (0, hooks_1.useChainWallet)(currentChainName, currentWalletName);
18
- const handleConnect = async () => {
19
- try {
20
- if (wallet.originalWallet instanceof core_1.WCWallet) {
21
- wallet.originalWallet.setOnPairingUriCreatedCallback((uri) => {
22
- setQRCode(uri);
23
- });
24
- }
25
- await connect(selectedWallet?.info?.name, chain.chainName);
26
- await getAccount(selectedWallet?.info?.name, chain.chainName);
27
- setSelectedWallet(null);
8
+ const WalletModal = ({ shouldShowList, isOpen, walletConnectQRCodeUri, wallets, username, address, currentWallet, isConnecting, isConnected, isRejected, isDisconnected, isNotExist, errorMessage, open, close, disconnect, onSelectWallet, onBack, onReconnect, getDownloadLink, getEnv, }) => {
9
+ const { header, content } = (0, react_1.useMemo)(() => {
10
+ if (shouldShowList || isDisconnected) {
11
+ return {
12
+ header: (0, jsx_runtime_1.jsx)(views_1.WalletListHeader, { close: close }),
13
+ content: ((0, jsx_runtime_1.jsx)(views_1.WalletListContent, { onSelectWallet: onSelectWallet, wallets: wallets })),
14
+ };
15
+ }
16
+ if (currentWallet &&
17
+ walletConnectQRCodeUri &&
18
+ currentWallet.info.name === "WalletConnect") {
19
+ return {
20
+ header: ((0, jsx_runtime_1.jsx)(views_1.QRCodeHeader, { wallet: currentWallet, close: close, onBack: onBack })),
21
+ content: ((0, jsx_runtime_1.jsx)(views_1.QRCodeContent, { walletConnectQRCodeUri: walletConnectQRCodeUri, errorMessage: errorMessage, onReconnect: onReconnect })),
22
+ };
28
23
  }
29
- catch (error) {
30
- console.error("Failed to connect wallet:", error);
24
+ if (currentWallet && isNotExist) {
25
+ return {
26
+ header: ((0, jsx_runtime_1.jsx)(views_1.NotExistHeader, { wallet: currentWallet, close: close, onBack: onBack })),
27
+ content: ((0, jsx_runtime_1.jsx)(views_1.NotExistContent, { wallet: currentWallet, getDownloadLink: getDownloadLink, getEnv: getEnv })),
28
+ };
31
29
  }
32
- };
33
- (0, react_1.useEffect)(() => {
34
- if (selectedWallet && currentWalletName && currentChainName) {
35
- handleConnect();
30
+ if (currentWallet && isRejected) {
31
+ return {
32
+ header: ((0, jsx_runtime_1.jsx)(views_1.RejectHeader, { wallet: currentWallet, close: close, onBack: onBack })),
33
+ content: ((0, jsx_runtime_1.jsx)(views_1.RejectContent, { wallet: currentWallet, onReconnect: onReconnect })),
34
+ };
36
35
  }
37
- }, [selectedWallet]);
38
- const handleSelectWallet = async (selectedWallet) => {
39
- setSelectedWallet(selectedWallet);
40
- setCurrentWalletName(selectedWallet?.info?.name);
41
- };
42
- (0, react_1.useEffect)(() => {
43
- if (!selectedWallet) {
44
- setModalType("wallet-list");
36
+ if (currentWallet && isConnected) {
37
+ return {
38
+ header: ((0, jsx_runtime_1.jsx)(views_1.ConnectedHeader, { wallet: currentWallet, onBack: onBack, close: close })),
39
+ content: ((0, jsx_runtime_1.jsx)(views_1.ConnectedContent, { wallet: currentWallet, username: username, address: address, disconnect: disconnect })),
40
+ };
45
41
  }
46
- if (currentWalletName && currentChainName) {
47
- if (status === core_1.WalletState.Connecting) {
48
- setModalType("connecting");
49
- }
50
- if (status === core_1.WalletState.Connected) {
51
- setModalType("connected");
52
- }
53
- if (status === core_1.WalletState.Rejected) {
54
- setModalType("reject");
55
- }
56
- if (status === core_1.WalletState.Disconnected) {
57
- setModalType("wallet-list");
58
- }
59
- if (qrCode) {
60
- setModalType("qr-code");
61
- }
42
+ if (currentWallet && isConnecting) {
43
+ return {
44
+ header: ((0, jsx_runtime_1.jsx)(views_1.ConnectingHeader, { wallet: currentWallet, close: close, onBack: onBack })),
45
+ content: (0, jsx_runtime_1.jsx)(views_1.ConnectingContent, { wallet: currentWallet }),
46
+ };
62
47
  }
63
48
  }, [
64
- currentWalletName,
65
- currentChainName,
66
- status,
67
- modalIsOpen,
68
- selectedWallet,
69
- qrCode,
49
+ currentWallet,
50
+ isConnected,
51
+ isConnecting,
52
+ address,
53
+ shouldShowList,
54
+ walletConnectQRCodeUri,
70
55
  ]);
71
- const goBackList = () => setModalType("wallet-list");
72
- const { header, content } = (0, react_1.useMemo)(() => {
73
- switch (modalType) {
74
- case "wallet-list":
75
- return {
76
- header: (0, jsx_runtime_1.jsx)(views_1.WalletListHeader, {}),
77
- content: (0, jsx_runtime_1.jsx)(views_1.WalletListContent, { onSelectWallet: handleSelectWallet }),
78
- };
79
- case "connecting":
80
- return {
81
- header: (0, jsx_runtime_1.jsx)(views_1.ConnectingHeader, { wallet: wallet, onBack: goBackList }),
82
- content: (0, jsx_runtime_1.jsx)(views_1.ConnectingContent, { wallet: wallet }),
83
- };
84
- case "connected":
85
- return {
86
- header: (0, jsx_runtime_1.jsx)(views_1.ConnectedHeader, { wallet: wallet, onBack: goBackList }),
87
- content: (0, jsx_runtime_1.jsx)(views_1.ConnectedContent, { afterDisconnect: goBackList }),
88
- };
89
- case "reject":
90
- return {
91
- header: (0, jsx_runtime_1.jsx)(views_1.RejectHeader, { wallet: wallet, onBack: goBackList }),
92
- content: ((0, jsx_runtime_1.jsx)(views_1.RejectContent, { wallet: wallet, onReconnect: () => {
93
- setModalType("connecting");
94
- wallet.connect(chain.chainId);
95
- wallet.getAccount(chain.chainId);
96
- } })),
97
- };
98
- case "not-exist":
99
- return {
100
- header: (0, jsx_runtime_1.jsx)(views_1.NotExistHeader, { wallet: wallet, onBack: goBackList }),
101
- content: (0, jsx_runtime_1.jsx)(views_1.NotExistContent, { wallet: wallet }),
102
- };
103
- case "qr-code":
104
- return {
105
- header: (0, jsx_runtime_1.jsx)(views_1.QRCodeHeader, { onBack: goBackList }),
106
- content: (0, jsx_runtime_1.jsx)(views_1.QRCodeContent, {}),
107
- };
108
- }
109
- }, [modalType]);
110
- return ((0, jsx_runtime_1.jsx)(react_2.ConnectModal, { isOpen: modalIsOpen, header: header, onOpen: open, onClose: close, children: content }));
56
+ return ((0, jsx_runtime_1.jsx)(react_2.ConnectModal, { isOpen: isOpen, header: header, onOpen: open, onClose: close, children: content }));
111
57
  };
112
58
  exports.WalletModal = WalletModal;
package/modal/provider.js CHANGED
@@ -4,12 +4,40 @@ exports.useWalletModal = exports.WalletModalProvider = void 0;
4
4
  const jsx_runtime_1 = require("react/jsx-runtime");
5
5
  const react_1 = require("react");
6
6
  const modal_1 = require("./modal");
7
+ const core_1 = require("@interchain-kit/core");
8
+ const hooks_1 = require("../hooks");
9
+ const utils_1 = require("../utils");
7
10
  const WalletModalContext = (0, react_1.createContext)(null);
8
11
  const WalletModalProvider = ({ children, }) => {
9
12
  const [modalIsOpen, setModalIsOpen] = (0, react_1.useState)(false);
10
13
  const open = () => setModalIsOpen(true);
11
14
  const close = () => setModalIsOpen(false);
12
- return ((0, jsx_runtime_1.jsxs)(WalletModalContext.Provider, { value: { modalIsOpen, open, close }, children: [children, (0, jsx_runtime_1.jsx)(modal_1.WalletModal, {})] }));
15
+ const [walletNameToConnect, setWalletNameToConnect] = (0, react_1.useState)(null);
16
+ const { chains, wallets, setCurrentWalletName, currentChainName, currentWalletName, walletConnectQRCodeUri, getDownloadLink, getEnv, } = (0, hooks_1.useWalletManager)();
17
+ const { wallet, status, connect, disconnect, username, address, message } = (0, hooks_1.useChainWallet)(currentChainName || chains[0].chainName, currentWalletName);
18
+ const [shouldShowList, setShouldShowList] = (0, react_1.useState)(!(currentChainName && currentWalletName));
19
+ const walletsForUI = wallets.map(utils_1.transferToWalletUISchema);
20
+ (0, react_1.useEffect)(() => {
21
+ if (walletNameToConnect) {
22
+ try {
23
+ connect();
24
+ setWalletNameToConnect(null);
25
+ setShouldShowList(false);
26
+ }
27
+ catch (error) {
28
+ console.error("Error connecting to wallet:", error);
29
+ throw error;
30
+ }
31
+ }
32
+ }, [walletNameToConnect]);
33
+ const handleCloseModal = () => {
34
+ close();
35
+ setShouldShowList(false);
36
+ };
37
+ return ((0, jsx_runtime_1.jsxs)(WalletModalContext.Provider, { value: { modalIsOpen, open, close }, children: [children, (0, jsx_runtime_1.jsx)(modal_1.WalletModal, { shouldShowList: shouldShowList, username: username, address: address, disconnect: disconnect, isOpen: modalIsOpen, open: open, close: handleCloseModal, wallets: walletsForUI, walletConnectQRCodeUri: walletConnectQRCodeUri, currentWallet: wallet?.originalWallet, isConnecting: status === core_1.WalletState.Connecting, isConnected: status === core_1.WalletState.Connected, isRejected: status === core_1.WalletState.Rejected, isDisconnected: status === core_1.WalletState.Disconnected, isNotExist: status === core_1.WalletState.NotExist, errorMessage: message, onSelectWallet: (w) => {
38
+ setWalletNameToConnect(w.info.name);
39
+ setCurrentWalletName(w.info.name);
40
+ }, onBack: () => setShouldShowList(true), onReconnect: connect, getDownloadLink: () => getDownloadLink(wallet?.info.name), getEnv: getEnv })] }));
13
41
  };
14
42
  exports.WalletModalProvider = WalletModalProvider;
15
43
  const useWalletModal = () => {
@@ -1,8 +1,12 @@
1
1
  import { BaseWallet } from "@interchain-kit/core";
2
- export declare const ConnectedHeader: ({ wallet, onBack, }: {
2
+ export declare const ConnectedHeader: ({ wallet, close, onBack, }: {
3
3
  wallet: BaseWallet;
4
+ close: () => void;
4
5
  onBack: () => void;
5
6
  }) => import("react/jsx-runtime").JSX.Element;
6
- export declare const ConnectedContent: ({ afterDisconnect, }: {
7
- afterDisconnect: () => void;
7
+ export declare const ConnectedContent: ({ address, username, wallet, disconnect, }: {
8
+ address: string;
9
+ username: string | null;
10
+ wallet: BaseWallet;
11
+ disconnect: () => void;
8
12
  }) => import("react/jsx-runtime").JSX.Element;
@@ -3,22 +3,13 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ConnectedContent = exports.ConnectedHeader = void 0;
4
4
  const jsx_runtime_1 = require("react/jsx-runtime");
5
5
  const react_1 = require("@interchain-ui/react");
6
- const hooks_1 = require("../../hooks");
7
- const provider_1 = require("../provider");
8
6
  const utils_1 = require("../../utils");
9
7
  const Astronaut_1 = require("./Astronaut");
10
- const ConnectedHeader = ({ wallet, onBack, }) => {
11
- const { close } = (0, provider_1.useWalletModal)();
8
+ const ConnectedHeader = ({ wallet, close, onBack, }) => {
12
9
  return ((0, jsx_runtime_1.jsx)(react_1.ConnectModalHead, { title: wallet?.info?.prettyName || "", hasBackButton: true, onClose: close, onBack: onBack, closeButtonProps: { onClick: close } }));
13
10
  };
14
11
  exports.ConnectedHeader = ConnectedHeader;
15
- const ConnectedContent = ({ afterDisconnect, }) => {
16
- const { currentChainName, currentWalletName } = (0, hooks_1.useWalletManager)();
17
- const { address, username, wallet } = (0, hooks_1.useChainWallet)(currentChainName, currentWalletName);
18
- const { close } = (0, provider_1.useWalletModal)();
19
- if (!wallet) {
20
- return null;
21
- }
12
+ const ConnectedContent = ({ address, username, wallet, disconnect, }) => {
22
13
  return ((0, jsx_runtime_1.jsx)(react_1.ConnectModalStatus, { wallet: (0, utils_1.getWalletInfo)(wallet), status: "Connected", connectedInfo: {
23
14
  name: username || "Wallet",
24
15
  avatar: ((0, jsx_runtime_1.jsx)(Astronaut_1.AstronautSvg, { style: {
@@ -27,9 +18,6 @@ const ConnectedContent = ({ afterDisconnect, }) => {
27
18
  height: "100%",
28
19
  } })),
29
20
  address: address,
30
- }, onDisconnect: async () => {
31
- await wallet.disconnect(currentChainName);
32
- afterDisconnect();
33
- } }));
21
+ }, onDisconnect: disconnect }));
34
22
  };
35
23
  exports.ConnectedContent = ConnectedContent;
@@ -1,6 +1,7 @@
1
1
  import { BaseWallet } from "@interchain-kit/core";
2
- export declare const ConnectingHeader: ({ wallet, onBack, }: {
2
+ export declare const ConnectingHeader: ({ wallet, close, onBack, }: {
3
3
  wallet: BaseWallet;
4
+ close: () => void;
4
5
  onBack: () => void;
5
6
  }) => import("react/jsx-runtime").JSX.Element;
6
7
  export declare const ConnectingContent: ({ wallet }: {
@@ -3,9 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ConnectingContent = exports.ConnectingHeader = void 0;
4
4
  const jsx_runtime_1 = require("react/jsx-runtime");
5
5
  const react_1 = require("@interchain-ui/react");
6
- const provider_1 = require("../provider");
7
- const ConnectingHeader = ({ wallet, onBack, }) => {
8
- const { close } = (0, provider_1.useWalletModal)();
6
+ const ConnectingHeader = ({ wallet, close, onBack, }) => {
9
7
  return ((0, jsx_runtime_1.jsx)(react_1.ConnectModalHead, { title: wallet.info.prettyName, hasBackButton: true, onClose: close, onBack: onBack, closeButtonProps: {
10
8
  onClick: close,
11
9
  } }));
@@ -1,8 +1,15 @@
1
- import { BaseWallet } from "@interchain-kit/core";
2
- export declare const NotExistHeader: ({ wallet, onBack, }: {
1
+ import { BaseWallet, DownloadInfo } from "@interchain-kit/core";
2
+ export declare const NotExistHeader: ({ wallet, close, onBack, }: {
3
3
  wallet: BaseWallet;
4
+ close: () => void;
4
5
  onBack: () => void;
5
6
  }) => import("react/jsx-runtime").JSX.Element;
6
- export declare const NotExistContent: ({ wallet }: {
7
+ export declare const NotExistContent: ({ wallet, getDownloadLink, getEnv, }: {
7
8
  wallet: BaseWallet;
9
+ getDownloadLink: (walletName: string) => DownloadInfo;
10
+ getEnv: () => {
11
+ browser?: string;
12
+ device?: string;
13
+ os?: string;
14
+ };
8
15
  }) => import("react/jsx-runtime").JSX.Element;
@@ -3,30 +3,26 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.NotExistContent = exports.NotExistHeader = void 0;
4
4
  const jsx_runtime_1 = require("react/jsx-runtime");
5
5
  const react_1 = require("@interchain-ui/react");
6
- const hooks_1 = require("../../hooks"); // replace with the actual path
7
- const provider_1 = require("../provider");
8
6
  const react_2 = require("react");
9
7
  const FaAndroid_1 = require("@react-icons/all-files/fa/FaAndroid");
10
8
  const GoDesktopDownload_1 = require("@react-icons/all-files/go/GoDesktopDownload");
11
9
  const GrFirefox_1 = require("@react-icons/all-files/gr/GrFirefox");
12
10
  const RiAppStoreFill_1 = require("@react-icons/all-files/ri/RiAppStoreFill");
13
11
  const RiChromeFill_1 = require("@react-icons/all-files/ri/RiChromeFill");
14
- const NotExistHeader = ({ wallet, onBack, }) => {
15
- const { close } = (0, provider_1.useWalletModal)();
12
+ const NotExistHeader = ({ wallet, close, onBack, }) => {
16
13
  return ((0, jsx_runtime_1.jsx)(react_1.ConnectModalHead, { title: wallet?.info?.prettyName || "", hasBackButton: true, onClose: close, onBack: onBack, closeButtonProps: { onClick: close } }));
17
14
  };
18
15
  exports.NotExistHeader = NotExistHeader;
19
- const NotExistContent = ({ wallet }) => {
20
- const walletManager = (0, hooks_1.useWalletManager)();
16
+ const NotExistContent = ({ wallet, getDownloadLink, getEnv, }) => {
21
17
  const downloadLink = (0, react_2.useMemo)(() => {
22
- return walletManager.getDownloadLink(wallet.info.name);
18
+ return getDownloadLink(wallet.info.name);
23
19
  }, [wallet?.info?.name]);
24
20
  const onInstall = () => {
25
21
  if (downloadLink) {
26
22
  window.open(downloadLink.link, "_blank");
27
23
  }
28
24
  };
29
- const IconComp = getIcon(walletManager.getEnv());
25
+ const IconComp = getIcon(getEnv());
30
26
  return ((0, jsx_runtime_1.jsx)(react_1.ConnectModalStatus, { status: "NotExist", wallet: {
31
27
  name: wallet?.info?.prettyName,
32
28
  logo: typeof wallet?.info?.logo === "string" ? wallet?.info?.logo : "",
@@ -1,4 +1,11 @@
1
- export declare const QRCodeHeader: ({ onBack }: {
1
+ import { BaseWallet } from "@interchain-kit/core";
2
+ export declare const QRCodeHeader: ({ wallet, close, onBack, }: {
3
+ wallet: BaseWallet;
4
+ close: () => void;
2
5
  onBack: () => void;
3
6
  }) => import("react/jsx-runtime").JSX.Element;
4
- export declare const QRCodeContent: () => import("react/jsx-runtime").JSX.Element;
7
+ export declare const QRCodeContent: ({ errorMessage, walletConnectQRCodeUri, onReconnect, }: {
8
+ errorMessage: string;
9
+ walletConnectQRCodeUri: string;
10
+ onReconnect: () => void;
11
+ }) => import("react/jsx-runtime").JSX.Element;
@@ -3,22 +3,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.QRCodeContent = exports.QRCodeHeader = void 0;
4
4
  const jsx_runtime_1 = require("react/jsx-runtime");
5
5
  const react_1 = require("@interchain-ui/react");
6
- const hooks_1 = require("../../hooks");
7
- const provider_1 = require("../provider");
8
- const QRCodeHeader = ({ onBack }) => {
9
- const { currentChainName, currentWalletName, getWalletByName, disconnect } = (0, hooks_1.useWalletManager)();
10
- const { close } = (0, provider_1.useWalletModal)();
11
- const currentWallet = getWalletByName(currentWalletName);
12
- return ((0, jsx_runtime_1.jsx)(react_1.ConnectModalHead, { title: currentWallet?.info?.prettyName || "", hasBackButton: true, onClose: () => void 0, onBack: async () => {
13
- await disconnect(currentWallet?.info?.name || "", currentChainName);
14
- onBack();
15
- }, closeButtonProps: { onClick: close } }));
6
+ const QRCodeHeader = ({ wallet, close, onBack, }) => {
7
+ return ((0, jsx_runtime_1.jsx)(react_1.ConnectModalHead, { title: wallet?.info?.prettyName || "", hasBackButton: true, onClose: () => void 0, onBack: onBack, closeButtonProps: { onClick: close } }));
16
8
  };
17
9
  exports.QRCodeHeader = QRCodeHeader;
18
- const QRCodeContent = () => {
19
- const { currentChainName, currentWalletName, getWalletByName, connect } = (0, hooks_1.useWalletManager)();
20
- const currentWallet = getWalletByName(currentWalletName);
21
- const data = currentWallet.pairingUri;
22
- return ((0, jsx_runtime_1.jsx)(react_1.ConnectModalQRCode, { status: data ? "Done" : "Pending", link: data, description: "Open App to connect", errorTitle: "errorTitle", errorDesc: currentWallet.errorMessage || "", onRefresh: () => connect(currentWallet?.info?.name || "", currentChainName) }));
10
+ const QRCodeContent = ({ errorMessage, walletConnectQRCodeUri, onReconnect, }) => {
11
+ return ((0, jsx_runtime_1.jsx)(react_1.ConnectModalQRCode, { status: walletConnectQRCodeUri ? "Done" : "Pending", link: walletConnectQRCodeUri, description: "Open App to connect", errorTitle: "errorTitle", errorDesc: errorMessage || "", onRefresh: onReconnect }));
23
12
  };
24
13
  exports.QRCodeContent = QRCodeContent;
@@ -1,6 +1,7 @@
1
1
  import { BaseWallet } from "@interchain-kit/core";
2
- export declare const RejectHeader: ({ wallet, onBack, }: {
2
+ export declare const RejectHeader: ({ wallet, close, onBack, }: {
3
3
  wallet: BaseWallet;
4
+ close: () => void;
4
5
  onBack: () => void;
5
6
  }) => import("react/jsx-runtime").JSX.Element;
6
7
  export declare const RejectContent: ({ wallet, onReconnect, }: {
@@ -3,10 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.RejectContent = exports.RejectHeader = void 0;
4
4
  const jsx_runtime_1 = require("react/jsx-runtime");
5
5
  const react_1 = require("@interchain-ui/react");
6
- const provider_1 = require("../provider");
7
6
  const utils_1 = require("../../utils");
8
- const RejectHeader = ({ wallet, onBack, }) => {
9
- const { close } = (0, provider_1.useWalletModal)();
7
+ const RejectHeader = ({ wallet, close, onBack, }) => {
10
8
  return ((0, jsx_runtime_1.jsx)(react_1.ConnectModalHead, { title: wallet?.info?.prettyName, hasBackButton: true, onClose: close, onBack: onBack, closeButtonProps: { onClick: close } }));
11
9
  };
12
10
  exports.RejectHeader = RejectHeader;
@@ -1,5 +1,8 @@
1
- import { BaseWallet } from "@interchain-kit/core";
2
- export declare const WalletListHeader: () => import("react/jsx-runtime").JSX.Element;
3
- export declare const WalletListContent: ({ onSelectWallet, }: {
4
- onSelectWallet: (wallet: BaseWallet) => void;
1
+ import { Wallet as InterchainUIWalletType } from "@interchain-ui/react";
2
+ export declare const WalletListHeader: ({ close }: {
3
+ close: () => void;
4
+ }) => import("react/jsx-runtime").JSX.Element;
5
+ export declare const WalletListContent: ({ wallets, onSelectWallet, }: {
6
+ wallets: InterchainUIWalletType[];
7
+ onSelectWallet: (wallet: any) => void;
5
8
  }) => import("react/jsx-runtime").JSX.Element;
@@ -3,43 +3,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.WalletListContent = exports.WalletListHeader = void 0;
4
4
  const jsx_runtime_1 = require("react/jsx-runtime");
5
5
  const react_1 = require("@interchain-ui/react");
6
- const provider_1 = require("../provider");
7
- const hooks_1 = require("../../hooks");
8
- const WalletListHeader = () => {
9
- const { close } = (0, provider_1.useWalletModal)();
6
+ const WalletListHeader = ({ close }) => {
10
7
  return ((0, jsx_runtime_1.jsx)(react_1.ConnectModalHead, { title: "Select your wallet", hasBackButton: false, onClose: close, closeButtonProps: { onClick: close } }));
11
8
  };
12
9
  exports.WalletListHeader = WalletListHeader;
13
- const WalletListContent = ({ onSelectWallet, }) => {
14
- const walletManager = (0, hooks_1.useWalletManager)();
15
- const wallets = walletManager.wallets.map((w) => {
16
- return {
17
- name: w.info.name,
18
- prettyName: w.info.prettyName,
19
- logo: w.info.logo,
20
- mobileDisabled: true,
21
- shape: "list",
22
- originalWallet: {
23
- ...w,
24
- pairing: null,
25
- },
26
- };
27
- });
28
- const wcWallet = walletManager.wallets.find((w) => w.info.mode === "wallet-connect");
29
- if (wcWallet) {
30
- const activePairings = wcWallet.getActivePairing();
31
- activePairings.forEach((pairing) => {
32
- wallets.push({
33
- name: pairing?.peerMetadata?.name,
34
- prettyName: pairing?.peerMetadata?.name,
35
- logo: pairing?.peerMetadata?.icons?.[0],
36
- mobileDisabled: true,
37
- shape: "list",
38
- originalWallet: { ...wcWallet, pairing },
39
- subLogo: wcWallet.info.logo,
40
- });
41
- });
42
- }
10
+ const WalletListContent = ({ wallets, onSelectWallet, }) => {
43
11
  return ((0, jsx_runtime_1.jsx)(react_1.ConnectModalWalletList, { wallets: wallets, onWalletItemClick: onSelectWallet }));
44
12
  };
45
13
  exports.WalletListContent = WalletListContent;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@interchain-kit/react",
3
- "version": "0.2.207",
3
+ "version": "0.2.211",
4
4
  "author": "Hyperweb <developers@hyperweb.io>",
5
5
  "description": "interchain-kit wallet connector react package",
6
6
  "main": "index.js",
@@ -28,23 +28,38 @@
28
28
  "lint": "eslint . --fix",
29
29
  "test": "jest",
30
30
  "test:watch": "jest --watch",
31
+ "test:coverage": "jest --coverage --watch",
31
32
  "watch:dev": "tsc -w -p tsconfig.esm.json & tsc -w"
32
33
  },
33
34
  "keywords": [],
34
35
  "dependencies": {
35
36
  "@chain-registry/v2-types": "^0.53.40",
36
- "@interchain-kit/core": "0.2.207",
37
- "@interchain-ui/react": "1.26.1",
38
- "@interchainjs/cosmos": "1.9.16",
39
- "@interchainjs/cosmos-types": "1.9.16",
37
+ "@interchain-kit/core": "0.2.211",
38
+ "@interchain-ui/react": "1.26.3",
39
+ "@interchainjs/cosmos": "1.10.1",
40
+ "@interchainjs/cosmos-types": "1.10.1",
40
41
  "@react-icons/all-files": "^4.1.0",
41
42
  "@types/react": "^18.3.3",
42
43
  "@types/react-dom": "^18.3.0",
43
44
  "@walletconnect/types": "^2.17.3",
44
- "interchainjs": "1.9.16",
45
+ "interchainjs": "1.10.1",
45
46
  "react": "^18.3.1",
46
47
  "react-dom": "^18.3.1",
47
48
  "zustand": "^5.0.3"
48
49
  },
49
- "gitHead": "74ba6aca78de888649b4a23726e96dd0ad2b6827"
50
+ "devDependencies": {
51
+ "@babel/cli": "^7.27.0",
52
+ "@babel/core": "^7.26.10",
53
+ "@babel/preset-env": "^7.26.9",
54
+ "@babel/preset-react": "^7.26.3",
55
+ "@babel/preset-typescript": "^7.26.10",
56
+ "@testing-library/dom": "^10.4.0",
57
+ "@testing-library/jest-dom": "^6.6.3",
58
+ "@testing-library/react": "^15.0.0",
59
+ "@testing-library/react-hooks": "^8.0.1",
60
+ "babel-jest": "^29.7.0",
61
+ "jest-environment-jsdom": "^29.7.0",
62
+ "ts-jest": "^29.3.0"
63
+ },
64
+ "gitHead": "20a586e588edb6db91e641da1c1199343779f593"
50
65
  }
@@ -1,26 +1,17 @@
1
- import { Chain, AssetList } from "@chain-registry/v2-types";
2
- import { BaseWallet, BroadcastMode, DirectSignDoc, SignOptions, SimpleAccount, WalletAccount } from "@interchain-kit/core";
3
- import { OfflineSigner, OfflineAminoSigner, OfflineDirectSigner, AminoSignResponse, StdSignature, DirectSignResponse } from "@interchainjs/cosmos/types/wallet";
4
- import { StdSignDoc } from "@interchainjs/types";
1
+ import { Chain } from "@chain-registry/v2-types";
2
+ import { BaseWallet, WalletAccount } from "@interchain-kit/core";
3
+ import { IGenericOfflineSigner } from "@interchainjs/types";
5
4
  export declare class ChainWallet<TWallet extends BaseWallet> extends BaseWallet {
5
+ getProvider(chainId: Chain["chainId"]): unknown;
6
6
  originalWallet: TWallet;
7
7
  connectWithState: TWallet['connect'];
8
8
  disconnectWithState: TWallet['disconnect'];
9
9
  getAccountWithState: TWallet['getAccount'];
10
10
  constructor(originalWallet: TWallet, connectWithState: TWallet['connect'], disconnectWithState: TWallet['disconnect'], getAccountWithState: TWallet['getAccount']);
11
11
  init(meta?: unknown): Promise<void>;
12
- connect(chainId: string | string[]): Promise<void>;
13
- disconnect(chainId: string | string[]): Promise<void>;
12
+ connect(chainId: string): Promise<void>;
13
+ disconnect(chainId: string): Promise<void>;
14
14
  getAccount(chainId: string): Promise<WalletAccount>;
15
- getAccounts(chainIds: string[]): Promise<WalletAccount[]>;
16
- getSimpleAccount(chainId: string): Promise<SimpleAccount>;
17
- getOfflineSigner(chainId: string): OfflineSigner;
18
- getOfflineSignerAmino(chainId: string): OfflineAminoSigner;
19
- getOfflineSignerDirect(chainId: string): OfflineDirectSigner;
20
- signAmino(chainId: string, signer: string, signDoc: StdSignDoc, signOptions?: SignOptions): Promise<AminoSignResponse>;
21
- signArbitrary(chainId: string, signer: string, data: string | Uint8Array): Promise<StdSignature>;
22
- verifyArbitrary(chainId: string, signer: string, data: string | Uint8Array): Promise<boolean>;
23
- signDirect(chainId: string, signer: string, signDoc: DirectSignDoc, signOptions?: SignOptions): Promise<DirectSignResponse>;
24
- sendTx(chainId: string, tx: Uint8Array, mode: BroadcastMode): Promise<Uint8Array>;
25
- addSuggestChain(chain: Chain, assetLists: AssetList[]): Promise<void>;
15
+ getOfflineSigner(chainId: string): Promise<IGenericOfflineSigner>;
16
+ addSuggestChain(chainId: Chain['chainId']): Promise<void>;
26
17
  }
@@ -3,6 +3,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ChainWallet = void 0;
4
4
  const core_1 = require("@interchain-kit/core");
5
5
  class ChainWallet extends core_1.BaseWallet {
6
+ getProvider(chainId) {
7
+ return this.originalWallet.getProvider(chainId);
8
+ }
6
9
  originalWallet;
7
10
  connectWithState;
8
11
  disconnectWithState;
@@ -15,7 +18,7 @@ class ChainWallet extends core_1.BaseWallet {
15
18
  this.getAccountWithState = getAccountWithState;
16
19
  }
17
20
  async init(meta) {
18
- return this.originalWallet.init(meta);
21
+ return this.originalWallet.init();
19
22
  }
20
23
  async connect(chainId) {
21
24
  return this.connectWithState(chainId);
@@ -26,38 +29,11 @@ class ChainWallet extends core_1.BaseWallet {
26
29
  async getAccount(chainId) {
27
30
  return this.getAccountWithState(chainId);
28
31
  }
29
- async getAccounts(chainIds) {
30
- return this.originalWallet.getAccounts(chainIds);
31
- }
32
- async getSimpleAccount(chainId) {
33
- return this.originalWallet.getSimpleAccount(chainId);
34
- }
35
- getOfflineSigner(chainId) {
32
+ async getOfflineSigner(chainId) {
36
33
  return this.originalWallet.getOfflineSigner(chainId);
37
34
  }
38
- getOfflineSignerAmino(chainId) {
39
- return this.originalWallet.getOfflineSignerAmino(chainId);
40
- }
41
- getOfflineSignerDirect(chainId) {
42
- return this.originalWallet.getOfflineSignerDirect(chainId);
43
- }
44
- async signAmino(chainId, signer, signDoc, signOptions) {
45
- return this.originalWallet.signAmino(chainId, signer, signDoc, signOptions);
46
- }
47
- async signArbitrary(chainId, signer, data) {
48
- return this.originalWallet.signArbitrary(chainId, signer, data);
49
- }
50
- async verifyArbitrary(chainId, signer, data) {
51
- return this.originalWallet.verifyArbitrary(chainId, signer, data);
52
- }
53
- async signDirect(chainId, signer, signDoc, signOptions) {
54
- return this.originalWallet.signDirect(chainId, signer, signDoc, signOptions);
55
- }
56
- async sendTx(chainId, tx, mode) {
57
- return this.originalWallet.sendTx(chainId, tx, mode);
58
- }
59
- async addSuggestChain(chain, assetLists) {
60
- return this.originalWallet.addSuggestChain(chain, assetLists);
35
+ async addSuggestChain(chainId) {
36
+ return this.originalWallet.addSuggestChain(chainId);
61
37
  }
62
38
  }
63
39
  exports.ChainWallet = ChainWallet;