@interchain-kit/react 0.0.1-beta.9 → 0.2.0

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.
Files changed (86) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +173 -24
  3. package/esm/hooks/index.js +0 -4
  4. package/esm/hooks/useChain.js +28 -30
  5. package/esm/hooks/useChainWallet.js +25 -12
  6. package/esm/hooks/useWalletManager.js +4 -3
  7. package/esm/index.js +1 -0
  8. package/esm/modal/modal.js +96 -24
  9. package/esm/modal/provider.js +2 -2
  10. package/esm/modal/views/Connected.js +16 -17
  11. package/esm/modal/views/Connecting.js +14 -23
  12. package/esm/modal/views/NotExist.js +44 -0
  13. package/esm/modal/views/QRCode.js +19 -0
  14. package/esm/modal/views/Reject.js +4 -9
  15. package/esm/modal/views/WalletList.js +27 -19
  16. package/esm/modal/views/index.js +2 -0
  17. package/esm/provider.js +13 -13
  18. package/esm/store/chain-wallet.js +59 -0
  19. package/esm/store/index.js +191 -0
  20. package/esm/types/index.js +1 -1
  21. package/esm/utils/index.js +1 -8
  22. package/esm/utils/wallet.js +8 -1
  23. package/hooks/index.d.ts +0 -4
  24. package/hooks/index.js +0 -4
  25. package/hooks/useChain.d.ts +2 -2
  26. package/hooks/useChain.js +28 -30
  27. package/hooks/useChainWallet.d.ts +2 -2
  28. package/hooks/useChainWallet.js +25 -12
  29. package/hooks/useWalletManager.d.ts +1 -2
  30. package/hooks/useWalletManager.js +3 -2
  31. package/index.d.ts +1 -0
  32. package/index.js +1 -0
  33. package/modal/modal.js +95 -23
  34. package/modal/provider.d.ts +1 -1
  35. package/modal/provider.js +2 -2
  36. package/modal/views/Astronaut.js +1 -2
  37. package/modal/views/Connected.d.ts +6 -2
  38. package/modal/views/Connected.js +15 -16
  39. package/modal/views/Connecting.d.ts +6 -2
  40. package/modal/views/Connecting.js +12 -21
  41. package/modal/views/NotExist.d.ts +8 -0
  42. package/modal/views/NotExist.js +49 -0
  43. package/modal/views/QRCode.d.ts +4 -0
  44. package/modal/views/QRCode.js +24 -0
  45. package/modal/views/Reject.d.ts +7 -2
  46. package/modal/views/Reject.js +4 -9
  47. package/modal/views/WalletList.d.ts +4 -1
  48. package/modal/views/WalletList.js +27 -19
  49. package/modal/views/index.d.ts +2 -0
  50. package/modal/views/index.js +2 -0
  51. package/package.json +15 -9
  52. package/provider.d.ts +11 -11
  53. package/provider.js +13 -13
  54. package/store/chain-wallet.d.ts +26 -0
  55. package/store/chain-wallet.js +63 -0
  56. package/store/index.d.ts +45 -0
  57. package/store/index.js +195 -0
  58. package/types/chain.d.ts +12 -13
  59. package/types/index.d.ts +1 -1
  60. package/types/index.js +1 -1
  61. package/types/sign-client.d.ts +2 -0
  62. package/utils/index.d.ts +1 -7
  63. package/utils/index.js +15 -10
  64. package/utils/wallet.d.ts +7 -1
  65. package/utils/wallet.js +10 -15
  66. package/esm/hooks/useAccount.js +0 -28
  67. package/esm/hooks/useActiveWallet.js +0 -13
  68. package/esm/hooks/useConfig.js +0 -10
  69. package/esm/hooks/useConnect.js +0 -11
  70. package/esm/hooks/useInterchainClient.js +0 -52
  71. package/esm/hooks/useOfflineSigner.js +0 -15
  72. package/hooks/useAccount.d.ts +0 -2
  73. package/hooks/useAccount.js +0 -32
  74. package/hooks/useActiveWallet.d.ts +0 -1
  75. package/hooks/useActiveWallet.js +0 -17
  76. package/hooks/useConfig.d.ts +0 -8
  77. package/hooks/useConfig.js +0 -14
  78. package/hooks/useConnect.d.ts +0 -1
  79. package/hooks/useConnect.js +0 -15
  80. package/hooks/useInterchainClient.d.ts +0 -14
  81. package/hooks/useInterchainClient.js +0 -56
  82. package/hooks/useOfflineSigner.d.ts +0 -4
  83. package/hooks/useOfflineSigner.js +0 -19
  84. package/types/wallet.d.ts +0 -11
  85. /package/esm/types/{wallet.js → sign-client.js} +0 -0
  86. /package/types/{wallet.js → sign-client.js} +0 -0
package/index.js CHANGED
@@ -19,3 +19,4 @@ __exportStar(require("./hooks"), exports);
19
19
  __exportStar(require("./types"), exports);
20
20
  __exportStar(require("./enum"), exports);
21
21
  __exportStar(require("./modal"), exports);
22
+ __exportStar(require("./store"), exports);
package/modal/modal.js CHANGED
@@ -2,34 +2,106 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.WalletModal = void 0;
4
4
  const jsx_runtime_1 = require("react/jsx-runtime");
5
- const react_1 = require("@interchain-ui/react");
6
5
  const views_1 = require("./views");
7
6
  const provider_1 = require("./provider");
8
7
  const hooks_1 = require("../hooks");
9
- const react_2 = require("react");
10
- const defaultModalView = {
11
- header: (0, jsx_runtime_1.jsx)(views_1.WalletListHeader, {}), content: (0, jsx_runtime_1.jsx)(views_1.WalletListContent, {})
12
- };
8
+ const react_1 = require("react");
9
+ const core_1 = require("@interchain-kit/core");
10
+ const react_2 = require("@interchain-ui/react");
13
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
14
  const { modalIsOpen, open, close } = (0, provider_1.useWalletModal)();
15
- const activeWallet = (0, hooks_1.useActiveWallet)();
16
- const [modalView, setModalView] = (0, react_2.useState)(defaultModalView);
17
- const gotoWalletList = () => setModalView(defaultModalView);
18
- (0, react_2.useEffect)(() => {
19
- switch (true) {
20
- case activeWallet?.walletState === "Connecting" /* WalletState.Connecting */:
21
- setModalView({ header: (0, jsx_runtime_1.jsx)(views_1.ConnectingHeader, { onBack: gotoWalletList }), content: (0, jsx_runtime_1.jsx)(views_1.ConnectingContent, {}) });
22
- break;
23
- case activeWallet?.walletState === "Connected" /* WalletState.Connected */:
24
- setModalView({ header: (0, jsx_runtime_1.jsx)(views_1.ConnectedHeader, { onBack: gotoWalletList }), content: (0, jsx_runtime_1.jsx)(views_1.ConnectedContent, {}) });
25
- break;
26
- case activeWallet?.walletState === "Reject" /* WalletState.Reject */:
27
- setModalView({ header: (0, jsx_runtime_1.jsx)(views_1.RejectHeader, { onBack: gotoWalletList }), content: (0, jsx_runtime_1.jsx)(views_1.RejectContent, {}) });
28
- break;
29
- default:
30
- setModalView(defaultModalView);
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
+ if (wallet.originalWallet instanceof core_1.WCWallet) {
20
+ wallet.originalWallet.setOnPairingUriCreatedCallback((uri) => {
21
+ setQRCode(uri);
22
+ });
23
+ }
24
+ await connect(selectedWallet?.info?.name, chain.chainName);
25
+ await getAccount(selectedWallet?.info?.name, chain.chainName);
26
+ setSelectedWallet(null);
27
+ };
28
+ (0, react_1.useEffect)(() => {
29
+ if (selectedWallet && currentWalletName && currentChainName) {
30
+ handleConnect();
31
+ }
32
+ }, [selectedWallet]);
33
+ const handleSelectWallet = async (selectedWallet) => {
34
+ setSelectedWallet(selectedWallet);
35
+ setCurrentWalletName(selectedWallet?.info?.name);
36
+ };
37
+ (0, react_1.useEffect)(() => {
38
+ if (!selectedWallet) {
39
+ setModalType("wallet-list");
40
+ }
41
+ if (currentWalletName && currentChainName) {
42
+ if (status === core_1.WalletState.Connecting) {
43
+ setModalType("connecting");
44
+ }
45
+ if (status === core_1.WalletState.Connected) {
46
+ setModalType("connected");
47
+ }
48
+ if (status === core_1.WalletState.Rejected) {
49
+ setModalType("reject");
50
+ }
51
+ if (status === core_1.WalletState.Disconnected) {
52
+ setModalType("wallet-list");
53
+ }
54
+ if (qrCode) {
55
+ setModalType("qr-code");
56
+ }
57
+ }
58
+ }, [
59
+ currentWalletName,
60
+ currentChainName,
61
+ status,
62
+ modalIsOpen,
63
+ selectedWallet,
64
+ qrCode
65
+ ]);
66
+ const goBackList = () => setModalType("wallet-list");
67
+ const { header, content } = (0, react_1.useMemo)(() => {
68
+ switch (modalType) {
69
+ case "wallet-list":
70
+ return {
71
+ header: (0, jsx_runtime_1.jsx)(views_1.WalletListHeader, {}),
72
+ content: (0, jsx_runtime_1.jsx)(views_1.WalletListContent, { onSelectWallet: handleSelectWallet }),
73
+ };
74
+ case "connecting":
75
+ return {
76
+ header: (0, jsx_runtime_1.jsx)(views_1.ConnectingHeader, { wallet: wallet, onBack: goBackList }),
77
+ content: (0, jsx_runtime_1.jsx)(views_1.ConnectingContent, { wallet: wallet }),
78
+ };
79
+ case "connected":
80
+ return {
81
+ header: (0, jsx_runtime_1.jsx)(views_1.ConnectedHeader, { wallet: wallet, onBack: goBackList }),
82
+ content: (0, jsx_runtime_1.jsx)(views_1.ConnectedContent, { afterDisconnect: goBackList }),
83
+ };
84
+ case "reject":
85
+ return {
86
+ header: (0, jsx_runtime_1.jsx)(views_1.RejectHeader, { wallet: wallet, onBack: goBackList }),
87
+ content: ((0, jsx_runtime_1.jsx)(views_1.RejectContent, { wallet: wallet, onReconnect: () => {
88
+ setModalType("connecting");
89
+ wallet.connect(chain.chainId);
90
+ wallet.getAccount(chain.chainId);
91
+ } })),
92
+ };
93
+ case "not-exist":
94
+ return {
95
+ header: (0, jsx_runtime_1.jsx)(views_1.NotExistHeader, { wallet: wallet, onBack: goBackList }),
96
+ content: (0, jsx_runtime_1.jsx)(views_1.NotExistContent, { wallet: wallet }),
97
+ };
98
+ case "qr-code":
99
+ return {
100
+ header: (0, jsx_runtime_1.jsx)(views_1.QRCodeHeader, { onBack: goBackList }),
101
+ content: (0, jsx_runtime_1.jsx)(views_1.QRCodeContent, {}),
102
+ };
31
103
  }
32
- }, [activeWallet, activeWallet?.walletState]);
33
- return ((0, jsx_runtime_1.jsx)(react_1.ConnectModal, { isOpen: modalIsOpen, header: modalView.header, onOpen: open, onClose: close, children: modalView.content }));
104
+ }, [modalType]);
105
+ return ((0, jsx_runtime_1.jsx)(react_2.ConnectModal, { isOpen: modalIsOpen, header: header, onOpen: open, onClose: close, children: content }));
34
106
  };
35
107
  exports.WalletModal = WalletModal;
@@ -3,7 +3,7 @@ type WalletModalContextType = {
3
3
  open: () => void;
4
4
  close: () => void;
5
5
  };
6
- export declare const WalletModalProvider: ({ children }: {
6
+ export declare const WalletModalProvider: ({ children, }: {
7
7
  children: React.ReactNode;
8
8
  }) => import("react/jsx-runtime").JSX.Element;
9
9
  export declare const useWalletModal: () => WalletModalContextType;
package/modal/provider.js CHANGED
@@ -5,7 +5,7 @@ const jsx_runtime_1 = require("react/jsx-runtime");
5
5
  const react_1 = require("react");
6
6
  const modal_1 = require("./modal");
7
7
  const WalletModalContext = (0, react_1.createContext)(null);
8
- const WalletModalProvider = ({ children }) => {
8
+ const WalletModalProvider = ({ children, }) => {
9
9
  const [modalIsOpen, setModalIsOpen] = (0, react_1.useState)(false);
10
10
  const open = () => setModalIsOpen(true);
11
11
  const close = () => setModalIsOpen(false);
@@ -15,7 +15,7 @@ exports.WalletModalProvider = WalletModalProvider;
15
15
  const useWalletModal = () => {
16
16
  const context = (0, react_1.useContext)(WalletModalContext);
17
17
  if (!context) {
18
- throw new Error('useWalletModal must be used within a WalletModalProvider');
18
+ throw new Error("useWalletModal must be used within a WalletModalProvider");
19
19
  }
20
20
  return context;
21
21
  };
@@ -1,8 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.AstronautSvg = void 0;
3
+ exports.AstronautSvg = AstronautSvg;
4
4
  const jsx_runtime_1 = require("react/jsx-runtime");
5
5
  function AstronautSvg(props) {
6
6
  return ((0, jsx_runtime_1.jsxs)("svg", { xmlns: "http://www.w3.org/2000/svg", fill: "none", className: "chakra-icon css-1plqj06", viewBox: "0 0 278 255", ...props, children: [(0, jsx_runtime_1.jsx)("path", { fill: "#030609", d: "M136.844 254.8c70.527 0 127.7-57.039 127.7-127.4S207.371 0 136.844 0 9.144 57.039 9.144 127.4s57.173 127.4 127.7 127.4Z" }), (0, jsx_runtime_1.jsx)("path", { fill: "#F6F5F3", d: "M85.444 22.2a2.9 2.9 0 1 0 0-5.8 2.9 2.9 0 0 0 0 5.8Zm122.7 19.9a2.9 2.9 0 1 0 0-5.801 2.9 2.9 0 0 0 0 5.8Zm18.5 68.5a2.9 2.9 0 1 0-.002-5.802 2.9 2.9 0 0 0 .002 5.802Zm-15.6 71.5a2.9 2.9 0 1 0-.002-5.802 2.9 2.9 0 0 0 .002 5.802Zm-8.8 36a2.9 2.9 0 1 0-.002-5.802 2.9 2.9 0 0 0 .002 5.802Zm-57.5 12.2a2.9 2.9 0 1 0-.002-5.802 2.9 2.9 0 0 0 .002 5.802Zm-32.9-24.2a2.9 2.9 0 1 0-.002-5.802 2.9 2.9 0 0 0 .002 5.802Zm-97.7-94a2.9 2.9 0 1 0-.001-5.8 2.9 2.9 0 0 0 0 5.8Zm34-62.1a2.9 2.9 0 1 0 0-5.8 2.9 2.9 0 0 0 0 5.8Z" }), (0, jsx_runtime_1.jsx)("path", { fill: "#BA536A", d: "M235.944 47.1c9.6 11.7 17 25.1 22 39.7-4.5 4.5-10.7 7.4-17.6 7.4-13.4 0-24.2-10.7-24.2-23.8 0-11.6 8.5-21.3 19.8-23.3Z" }), (0, jsx_runtime_1.jsx)("path", { fill: "#FF6B84", d: "M242.544 92.9c-13 0-23.6-10.6-23.6-23.7 0-10.6 7-19.6 16.7-22.6 9.7 11.9 17.4 25.6 22.4 40.5-4.2 3.6-9.6 5.8-15.5 5.8Z" }), (0, jsx_runtime_1.jsx)("path", { fill: "#124899", d: "M144.744 246.7c0 2.8-.6 5.4-1.5 7.9-2.067.133-4.2.2-6.4.2-14.2 0-28-2.4-40.8-6.7 0-.5-.1-1-.1-1.4 0-13.1 10.9-23.8 24.4-23.8 13.5 0 24.4 10.7 24.4 23.8Z" }), (0, jsx_runtime_1.jsx)("path", { fill: "#4CBAB6", d: "M145.644 249.2c0 1.8-.2 3.567-.6 5.3-2.667.2-5.4.3-8.2.3-13.5 0-26.5-2.1-38.7-6 .2-13.4 10.8-24.3 23.7-24.3 13.1 0 23.8 11.1 23.8 24.7Z" }), (0, jsx_runtime_1.jsx)("path", { fill: "#D8DEDC", d: "M205.144 117.7c5.9 6.3 17.1 16.7 27.6 23.5 21.8 13.9 20.8 11.7 26.1 14l-8.8 27.9c-13.334-9.733-24.167-17.033-32.5-21.9-10.2-6.067-21.8-12.033-34.8-17.9l22.4-25.6Z" }), (0, jsx_runtime_1.jsx)("path", { fill: "#839091", d: "M207.344 119.9c.4.467 2.066 2.1 5 4.9-2.667 5.933-5.067 10.333-7.2 13.2-5 6.8-5.3 6.5-10 11.2l-7.9-3.8 20.1-25.5Z" }), (0, jsx_runtime_1.jsx)("path", { fill: "#9CA9A8", d: "M242.844 196.2c-6.934 1.333-10.367.2-10.3-3.4 0-8.4 5.1-7.8 18.6-10.2l-8.3 13.6Z" }), (0, jsx_runtime_1.jsx)("path", { fill: "#DAE0DF", d: "M234.844 190.9c-.267-1.6.466-3.067 2.2-4.4 1.666-1.267 4.933-1.933 9.8-2-4.534 1.4-7.334 2.533-8.4 3.4-1 .867-2.2 1.867-3.6 3Z" }), (0, jsx_runtime_1.jsx)("path", { fill: "#030609", d: "M251.844 156.9c-4.134-6.6-4.734-10.433-1.8-11.5 4.5-1.6 11.2-1 16.1 1 6.2 2.5 11.7 6.9 11.7 10.5 0 3.133-2.6 5.233-7.8 6.3 3.866 4.6 4.866 7.933 3 10-1.8 2.067-5.267 2.8-10.4 2.2 5 5.133 6.333 8.767 4 10.9-2.6 2.3-12.1 1.6-18.1-.9-5.2-2.1-14.2-12.6-11.5-15.8 1.733-2.133 5.5-3.2 11.3-3.2-5.334-3.067-7-5.567-5-7.5 2-1.867 4.833-2.533 8.5-2Z" }), (0, jsx_runtime_1.jsx)("path", { fill: "#9CA9A8", d: "M252.344 148.9c2.9-1.1 8.3.5 12.3 1.8 3.9 1.2 10.5 5.7 9 8-1 1.6-3.267 2.567-6.8 2.9 4.133 5.933 4.966 9.267 2.5 10-3.7 1-11.8.8-11.3 1.3s11.1 10.2 6.5 12.5c-4.5 2.3-10.9.8-15.7-1.8-5.7-3-10.4-10-8.5-12 .733-.8 4.466-1.7 11.2-2.7-5.334-4-7.8-6.533-7.4-7.6.7-1.7 3-2.6 6.4-2.6h6.5c-5.934-5.533-7.5-8.8-4.7-9.8Z" }), (0, jsx_runtime_1.jsx)("path", { fill: "#DAE0DF", d: "M256.544 155.2c-3.134-2.733-4.134-4.333-3-4.8 1.066-.4 2.9-.3 5.5.3-1.6 0-2.6.3-3 .9-.4.6-.234 1.8.5 3.6Zm-7.7 6.2c-.534 1.2-.3 2.367.7 3.5-3.2-1.4-4.434-2.666-3.7-3.8.733-1.133 3.4-1.533 8-1.2-2.8-.2-4.467.3-5 1.5Zm-4.3 12.4c-.467 1.067-.167 2.867.9 5.4-3.334-2.933-4.367-5.133-3.1-6.6 1.266-1.533 3.433-2.133 6.5-1.8-2.467.867-3.9 1.867-4.3 3Z" }), (0, jsx_runtime_1.jsx)("path", { fill: "#D8DEDC", d: "M180.844 148.9c1.933 5.933 3.933 13.767 6 23.5 3.7 17.5 2.9 36.9-4.1 39.9-2.8 1.2-5.4 3.6-16.1 0-7.2-2.4-22.134-12.133-44.8-29.2l59-34.2Z" }), (0, jsx_runtime_1.jsx)("path", { fill: "#687476", d: "M182.744 155.2c-3.2 10.933-12.3 19.7-27.3 26.3-7.334 3.267-16.334 5.4-27 6.4l-10.2-7.5 46.5-25.2h18Z" }), (0, jsx_runtime_1.jsx)("path", { fill: "#D8DEDC", d: "M74.044 99.2c-7.467.867-13.3 1.533-17.5 2-1.934.2-4.767 1.167-8.5 2.9-3.2-4.333-5.434-8.533-6.7-12.6-1.5-4.6-3-15.4.2-21.7 2.2-4.2 14.366-9.067 36.5-14.6l-4 44Z" }), (0, jsx_runtime_1.jsx)("path", { fill: "#839091", d: "m82.544 53.7-3.5 43.9-23.9 3.9c-1-4.333-1.434-7.933-1.3-10.8.8-14.133 2.466-24.1 5-29.9l23.7-7.1Z" }), (0, jsx_runtime_1.jsx)("path", { fill: "#030609", d: "m189.144 137.5-6.4 17.7c-12.4 14.067-26.967 23.533-43.7 28.4-16.8 4.867-34.934 5.467-54.4 1.8l-68.8-32.5c.733-5.933 2.766-11.667 6.1-17.2 5-8.3 15.9-29.3 28.5-33 8.4-2.533 17.6-3.7 27.6-3.5l111.1 38.3Z" }), (0, jsx_runtime_1.jsx)("path", { fill: "#D8DEDC", d: "M174.844 148.9c-15.334 26-42.1 37.233-80.3 33.7-16.6-1.6-41.934-12.333-76-32.2 3.666-4.733 5.833-8.467 6.5-11.2 1.1-4 2.4-7.2 6.5-9.5 4.1-2.4 9-6.9 11.7-8.8 4.8-3.5 4.6-9.7 7.2-10.4 4.266-1 12.3-1.933 24.1-2.8l100.3 41.2Z" }), (0, jsx_runtime_1.jsx)("path", { fill: "#687476", d: "M113.844 150.7h63.5c-4.334 6.133-11.3 12.2-20.9 18.2-9.6 6-16.4 9-20.4 9-3.334 0-8.6-2.067-15.8-6.2-9.6-5.533-15.734-10.467-18.4-14.8l12-6.2Z" }), (0, jsx_runtime_1.jsx)("path", { fill: "#839091", d: "m79.844 106.3 14.8 30.1-20.1 6.9c-5.8-7.667-9.534-12.967-11.2-15.9-1.667-2.933-4.267-8.867-7.8-17.8l24.3-3.3Z" }), (0, jsx_runtime_1.jsx)("path", { fill: "#030609", d: "M142.144 166.5c40.869 0 74-33.937 74-75.8s-33.131-75.8-74-75.8-74 33.937-74 75.8 33.131 75.8 74 75.8Z" }), (0, jsx_runtime_1.jsx)("path", { fill: "#D8DEDC", d: "M143.444 158.8c37.334 0 67.6-31.027 67.6-69.3 0-38.273-30.266-69.3-67.6-69.3-37.335 0-67.6 31.027-67.6 69.3 0 38.273 30.265 69.3 67.6 69.3Z" }), (0, jsx_runtime_1.jsx)("path", { fill: "#fff", d: "M172.344 29.4c9.066 4.133 15.9 10.033 20.5 17.7-.534 1.933-7.367 4.033-20.5 6.3-4.667.8-8.934 1.4-12.8 1.8.066-5.467-.5-10.667-1.7-15.6-1.867-7.467-3.867-12.034-6-13.7 6.6-.867 13.433.3 20.5 3.5Z" }), (0, jsx_runtime_1.jsx)("path", { fill: "#030609", d: "M85.444 50c23.133 6.6 44.366 9.566 63.7 8.9 19.333-.667 37.033-3.634 53.1-8.9 6.533 14.4 10.433 25.266 11.7 32.6 1.266 7.333.3 16.633-2.9 27.9-16.334 16.666-38.9 24.3-67.7 22.9-35.8-1.734-58.633-11.267-68.5-28.6-2.6-15.467-2.7-27.134-.3-35 2.4-7.934 6.033-14.534 10.9-19.8Z" }), (0, jsx_runtime_1.jsx)("path", { fill: "#173D3E", d: "M96.744 75.6c5.7 1.4 15.8-.4 20.1 1.3 4.2 1.8 11.7 12.8 16.3 14.4 4.6 1.5 11.7-5.4 14-5 2.3.3 1.9 4.4 4.9 6.6 1.2.9 3.2 1.9 7.3 3 3.066.866 6.233 1.866 9.5 3-20.334 11.666-40.3 15.533-59.9 11.6-19.6-3.867-30.067-8.267-31.4-13.2-.467-4.667-.3-10.367.5-17.1.666-5.134 1.7-9.567 3.1-13.3 6.666 4.866 11.866 7.766 15.6 8.7Z" }), (0, jsx_runtime_1.jsx)("path", { fill: "#276A69", d: "M77.344 91.7c2.733-.6 5.166-.2 7.3 1.2 3.1 2.1 14.7 9.3 18.7 10.8s24.9-.2 26.8-1.5c1.2-.934 3.1-1.7 5.7-2.3 3.333 2.733 5.933 4 7.8 3.8 2.7-.4 6 1.2 9.9-1.3 4-2.5 6-5.6 8.8-5.6 2.7 0 5.9 1.8 8 2.1 6.5 1.1 8.2-1.5 11-.5 2.8 1 4.2 1.5 8.8 1.3 3.066-.2 9.033-.834 17.9-1.9 1.6 4.466-3.534 11.333-15.4 20.6-6.3 4.9-19.3 12-55 12-5.8 0-27.9-1.1-46-14.5-11.4-8.334-16.167-16.4-14.3-24.2Z" }), (0, jsx_runtime_1.jsx)("path", { fill: "#388688", d: "M122.844 103.5c4.466-.467 8.566-2.434 12.3-5.9l1.7 2.7c.133 2.266-.767 4.266-2.7 6-2.9 2.6-7.3 4.6-12.3 4.2-3.267-.2-7.934-2.334-14-6.4 5.4.133 10.4-.067 15-.6Zm27.8-.9c3.6-.6 6.7-2.7 9.2-5 1.666-1.534 3.9-1.534 6.7 0-1 .733-2 1.433-3 2.1-1.4 1-2.6 1.1-5.2 2.2s-6.6 4.4-13.8 4.4c-3 0-5.134-1.6-6.4-4.8 4.266 1.466 8.4 1.833 12.4 1.1h.1Z" }), (0, jsx_runtime_1.jsx)("path", { fill: "#fff", d: "m159.344 60.9 20-2.5c4.2 14.266 4.833 36.333 1.9 66.2-4.067 1.266-7.634 2.3-10.7 3.1-4.6 1.2-8.934 1.866-13 2 2.533-7.667 3.633-19.5 3.3-35.5-.2-11.867-.7-22.967-1.5-33.3Zm40-6c2.4 2.7 7.5 10.9 8.8 20 1.9 14.4 1.3 21.5-.6 27.8-2.134 4-4.634 7.1-7.5 9.3-2.867 2.266-5.434 4.466-7.7 6.6 3.2-5.067 4.466-14.734 3.8-29-.667-15.134-2.534-26.134-5.6-33l8.8-1.7Z", opacity: 0.4 }), (0, jsx_runtime_1.jsx)("path", { fill: "#030609", d: "M74.544 142.9c15.733-15.333 28.166-21.9 37.3-19.7 15.3 3.6 14.9 13.9 11.4 24.4-2.334 6.933-15.2 12.7-38.6 17.3l-10.1-22Z" }), (0, jsx_runtime_1.jsx)("path", { fill: "#9CA9A8", d: "M78.144 146.2c4-4.667 11.233-8.5 21.7-11.5 15.8-4.5 18.3 4.3 18.4 7.2.2 3-1.4 7.2-6.4 8.8-3.334 1.067-11.567 3.8-24.7 8.2l-9-12.7Z" }), (0, jsx_runtime_1.jsx)("path", { fill: "#515C5C", d: "m78.144 144.9 4.2-2.3c3.933 4.6 6.6 6.867 8 6.8 4.2-.1 9.3.4 9.5-.5.2-.6.866-2.7 2-6.3-.134 2.8-.134 4.5 0 5.1.2.9 9.1-.2 11.3-1.3 2-1 3.7-2.5 5.1-4.5.2 3.2-.534 5.367-2.2 6.5-3.6 2.6-13.234 6.1-28.9 10.5l-9-14Z" }), (0, jsx_runtime_1.jsx)("path", { fill: "#DAE0DF", d: "M105.144 136.1c1-.3 6.2-.7 7.7 0 1 .467 1.633 1.5 1.9 3.1-.8-.733-1.767-1.433-2.9-2.1-.934-.533-3.167-.867-6.7-1Zm-4.5 7.8-1.5 4.2c-.267.867-2.367 1.067-6.3.6 2.466-.2 4.233-.8 5.3-1.8 1.133-.933 1.966-1.933 2.5-3Z" }), (0, jsx_runtime_1.jsx)("path", { fill: "#030609", d: "M57.844 227.4c-.1 2.8 0 7.5-3.3 9.3-3.2 1.7-31 3.2-36.5-2.8-5.4-6-15.4-25.5-17.2-36.5-1.2-7.3-2-20.5 4-22.2 4-1.2 8.066-.833 12.2 1.1-3.934-5.933-5.9-11.4-5.9-16.4 0-3.6 1.3-9.5 5.9-10.5 3.066-.667 9.333-.167 18.8 1.5-2-7.2-2-12.2 0-15 6-8.5 22.5-7.2 27-6 4.5 1.3 39.8 37 42 46.4 1.4 5.7-2.3 21.4-6.7 24-1.867 1.133-6.1 2.1-12.7 2.9 4.2 8 4.2 13.4 0 16.2-4.267 2.867-13.467 2.867-27.6 0v8Z" }), (0, jsx_runtime_1.jsx)("path", { fill: "#9CA9A8", d: "M38.844 152.9c-1.2-6.867-.7-11.034 1.5-12.5 3.2-2.3 12-2.7 16.5-2.2s5.1 8 11.5 12.2c11 7.3 24 25.3 25.5 28.8s.3 6 0 8.5-12.5 6.6-16 3.7c-1.4-1.1-7.2-8.4-12-12.2-4.667-3.8-9.1-6.567-13.3-8.3 7 7.8 10.933 12.566 11.8 14.3 1.3 2.6 4.1 10.2 7 12.2 2.9 2 10.1 7.8 11.2 8.6 1.1.9 1.6 8.9 1.1 10.4-1.8 2-15.3-4.6-17.3-5-2-.3-7.2-1.2-11.7-2.5-3.067-.8-10.5-7.8-22.3-21 2.733 8.866 5.333 14.9 7.8 18.1 3.6 4.8 6 12 9.2 12 4.5 0 3.8 9.2 1.7 10.9-2.2 1.8-18.3 1.4-24.7-1.5-4.7-2.1-24.5-46.5-19-48.2 7-2.3 11.8-1 14.2 1.3 1.533 1.533 3.133 3.1 4.8 4.7-6.867-19.067-8.367-28.834-4.5-29.3 4.466-.534 9.4-.934 14.8-1.2l1.5 4.7.5-4.2 3.2 1-3-3.3Z" }), (0, jsx_runtime_1.jsx)("path", { fill: "#515C5C", d: "M12.244 178.1c-2 2.533-2.367 5.566-1.1 9.1 2 5.2 5.4 15 7.7 18.8 2.3 3.9 9.2 16.4 10.8 18.5 1 1.466 2.4 3.066 4.2 4.8-2.867-.267-5.367-.9-7.5-1.9-4.1-1.8-16.2-25.1-19-38.5-1.3-6.3-1.5-8.9 0-9.7 2.533-1.334 4.166-1.7 4.9-1.1Zm21.6 51.2c4.666-3 7.6-5.134 8.8-6.4a99.173 99.173 0 0 1 5.2-5.4c2.666.266 4.333.9 5 1.9 1 1.5-.4 8.9-1.8 9.5-2.4 1.1-5.1 1.3-6.9 1.4-3.867.133-7.3-.2-10.3-1Zm1.4-33c.9 3 3.7 7.6 6.1 11.6 2.533 4.266 4.233 7.033 5.1 8.3-8.2-7-12.9-12.667-14.1-17-1.2-4.334-1.2-8.1 0-11.3.533.533 1.5 3.333 2.9 8.4Zm47.3 9.7c1.6 2.9 2.3 7.7 1 10.4-.8 1.866-6.534.2-17.2-5 1.6-1.334 3-3.134 4.2-5.4 3.2-5.7 3.2-5.7 3.5-6.6 4.533 2.533 7.366 4.733 8.5 6.6Zm-20-23.4c2.533 3.533 5.033 8.066 7.5 13.6-6.334-4-11-8.534-14-13.6-2.334-4.067-4-8.634-5-13.7 5.733 6.466 9.566 11.033 11.5 13.7Zm12 5.3c3.2-.734 6.433-2.034 9.7-3.9 4.266-2.4 7.266-4.4 9-6 1.8 2.666 2 5.9.6 9.7-1.4 3.5-11.3 7.2-16 3.7-2-1.467-3.1-2.634-3.3-3.5Z" }), (0, jsx_runtime_1.jsx)("path", { fill: "#DAE0DF", d: "M43.344 150.7c-.867-6.6.733-10.367 4.8-11.3 4-.867 8.133.566 12.4 4.3-4.534-1.2-7.9-1.634-10.1-1.3-2.134.333-4.5 3.1-7.1 8.3Zm-17.5 11c-.667 2-.334 7.833 1 17.5-5.2-12.4-6.467-19.4-3.8-21 3.2-1.934 6.8-1.934 10.8 0-4.667.333-7.334 1.5-8 3.5Zm-10.2 20.3c-1.134.533-2 2.5-2.6 5.9-1.667-5.8-1.334-8.7 1-8.7 3.666-.067 6.3 1.533 7.9 4.8-2.134-2.334-4.267-3-6.4-2h.1Z" })] }));
7
7
  }
8
- exports.AstronautSvg = AstronautSvg;
@@ -1,4 +1,8 @@
1
- export declare const ConnectedHeader: ({ onBack }: {
1
+ import { BaseWallet } from "@interchain-kit/core";
2
+ export declare const ConnectedHeader: ({ wallet, onBack, }: {
3
+ wallet: BaseWallet;
2
4
  onBack: () => void;
3
5
  }) => import("react/jsx-runtime").JSX.Element;
4
- export declare const ConnectedContent: () => import("react/jsx-runtime").JSX.Element;
6
+ export declare const ConnectedContent: ({ afterDisconnect, }: {
7
+ afterDisconnect: () => void;
8
+ }) => import("react/jsx-runtime").JSX.Element;
@@ -7,31 +7,30 @@ const hooks_1 = require("../../hooks");
7
7
  const provider_1 = require("../provider");
8
8
  const utils_1 = require("../../utils");
9
9
  const Astronaut_1 = require("./Astronaut");
10
- const ConnectedHeader = ({ onBack }) => {
11
- const activeWallet = (0, hooks_1.useActiveWallet)();
10
+ const ConnectedHeader = ({ wallet, onBack, }) => {
12
11
  const { close } = (0, provider_1.useWalletModal)();
13
- return ((0, jsx_runtime_1.jsx)(react_1.ConnectModalHead, { title: activeWallet?.option?.prettyName || '', hasBackButton: true, onClose: close, onBack: onBack, closeButtonProps: { onClick: close } }));
12
+ return ((0, jsx_runtime_1.jsx)(react_1.ConnectModalHead, { title: wallet?.info?.prettyName || "", hasBackButton: true, onClose: close, onBack: onBack, closeButtonProps: { onClick: close } }));
14
13
  };
15
14
  exports.ConnectedHeader = ConnectedHeader;
16
- const ConnectedContent = () => {
17
- const activeWallet = (0, hooks_1.useActiveWallet)();
18
- const walletManager = (0, hooks_1.useWalletManager)();
19
- const account = (0, hooks_1.useAccount)(walletManager.chains[0].chainName, activeWallet?.option?.name);
15
+ const ConnectedContent = ({ afterDisconnect, }) => {
16
+ const { currentChainName, currentWalletName } = (0, hooks_1.useWalletManager)();
17
+ console.log({ currentChainName, currentWalletName });
18
+ const { address, username, wallet } = (0, hooks_1.useChainWallet)(currentChainName, currentWalletName);
20
19
  const { close } = (0, provider_1.useWalletModal)();
21
- if (!activeWallet) {
20
+ if (!wallet) {
22
21
  return null;
23
22
  }
24
- return ((0, jsx_runtime_1.jsx)(react_1.ConnectModalStatus, { wallet: (0, utils_1.getWalletInfo)(activeWallet), status: 'Connected', connectedInfo: {
25
- name: account?.username || 'Wallet',
23
+ return ((0, jsx_runtime_1.jsx)(react_1.ConnectModalStatus, { wallet: (0, utils_1.getWalletInfo)(wallet), status: "Connected", connectedInfo: {
24
+ name: username || "Wallet",
26
25
  avatar: ((0, jsx_runtime_1.jsx)(Astronaut_1.AstronautSvg, { style: {
27
- fontSize: 'inherit',
28
- width: '100%',
29
- height: '100%',
26
+ fontSize: "inherit",
27
+ width: "100%",
28
+ height: "100%",
30
29
  } })),
31
- address: account?.address,
30
+ address: address,
32
31
  }, onDisconnect: async () => {
33
- await walletManager.disconnect(activeWallet?.option?.name);
34
- close();
32
+ await wallet.disconnect(currentChainName);
33
+ afterDisconnect();
35
34
  } }));
36
35
  };
37
36
  exports.ConnectedContent = ConnectedContent;
@@ -1,4 +1,8 @@
1
- export declare const ConnectingHeader: ({ onBack }: {
1
+ import { BaseWallet } from "@interchain-kit/core";
2
+ export declare const ConnectingHeader: ({ wallet, onBack, }: {
3
+ wallet: BaseWallet;
2
4
  onBack: () => void;
3
5
  }) => import("react/jsx-runtime").JSX.Element;
4
- export declare const ConnectingContent: () => import("react/jsx-runtime").JSX.Element;
6
+ export declare const ConnectingContent: ({ wallet }: {
7
+ wallet: BaseWallet;
8
+ }) => import("react/jsx-runtime").JSX.Element;
@@ -3,36 +3,27 @@ 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 hooks_1 = require("../../hooks");
7
6
  const provider_1 = require("../provider");
8
- const ConnectingHeader = ({ onBack }) => {
9
- const wallet = (0, hooks_1.useActiveWallet)();
7
+ const ConnectingHeader = ({ wallet, onBack, }) => {
10
8
  const { close } = (0, provider_1.useWalletModal)();
11
- const walletManager = (0, hooks_1.useWalletManager)();
12
- if (!wallet)
13
- return null;
14
- return ((0, jsx_runtime_1.jsx)(react_1.ConnectModalHead, { title: wallet.option.prettyName, hasBackButton: true, onClose: close, onBack: onBack, closeButtonProps: {
15
- onClick: async () => {
16
- await walletManager.disconnect(wallet.option.name);
17
- close();
18
- }
9
+ return ((0, jsx_runtime_1.jsx)(react_1.ConnectModalHead, { title: wallet.info.prettyName, hasBackButton: true, onClose: close, onBack: onBack, closeButtonProps: {
10
+ onClick: close,
19
11
  } }));
20
12
  };
21
13
  exports.ConnectingHeader = ConnectingHeader;
22
- const ConnectingContent = () => {
23
- const activeWallet = (0, hooks_1.useActiveWallet)();
24
- const { option: { prettyName, mode } } = activeWallet;
25
- let title = 'Requesting Connection';
26
- let desc = mode === 'wallet-connect'
14
+ const ConnectingContent = ({ wallet }) => {
15
+ const { info: { prettyName, mode }, } = wallet;
16
+ let title = "Requesting Connection";
17
+ let desc = mode === "wallet-connect"
27
18
  ? `Approve ${prettyName} connection request on your mobile.`
28
19
  : `Open the ${prettyName} browser extension to connect your wallet.`;
29
- if (!activeWallet)
20
+ if (!wallet)
30
21
  return null;
31
22
  return ((0, jsx_runtime_1.jsx)(react_1.ConnectModalStatus, { wallet: {
32
- name: activeWallet.option.name,
33
- prettyName: activeWallet.option.prettyName,
34
- logo: activeWallet.option.logo,
23
+ name: wallet.info.name,
24
+ prettyName: wallet.info.prettyName,
25
+ logo: wallet.info.logo,
35
26
  mobileDisabled: true,
36
- }, status: 'Connecting', contentHeader: title, contentDesc: desc }));
27
+ }, status: "Connecting", contentHeader: title, contentDesc: desc }));
37
28
  };
38
29
  exports.ConnectingContent = ConnectingContent;
@@ -0,0 +1,8 @@
1
+ import { BaseWallet } from "@interchain-kit/core";
2
+ export declare const NotExistHeader: ({ wallet, onBack, }: {
3
+ wallet: BaseWallet;
4
+ onBack: () => void;
5
+ }) => import("react/jsx-runtime").JSX.Element;
6
+ export declare const NotExistContent: ({ wallet }: {
7
+ wallet: BaseWallet;
8
+ }) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.NotExistContent = exports.NotExistHeader = void 0;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
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
+ const react_2 = require("react");
9
+ const FaAndroid_1 = require("@react-icons/all-files/fa/FaAndroid");
10
+ const GoDesktopDownload_1 = require("@react-icons/all-files/go/GoDesktopDownload");
11
+ const GrFirefox_1 = require("@react-icons/all-files/gr/GrFirefox");
12
+ const RiAppStoreFill_1 = require("@react-icons/all-files/ri/RiAppStoreFill");
13
+ const RiChromeFill_1 = require("@react-icons/all-files/ri/RiChromeFill");
14
+ const NotExistHeader = ({ wallet, onBack, }) => {
15
+ const { close } = (0, provider_1.useWalletModal)();
16
+ return ((0, jsx_runtime_1.jsx)(react_1.ConnectModalHead, { title: wallet?.info?.prettyName || "", hasBackButton: true, onClose: close, onBack: onBack, closeButtonProps: { onClick: close } }));
17
+ };
18
+ exports.NotExistHeader = NotExistHeader;
19
+ const NotExistContent = ({ wallet }) => {
20
+ const walletManager = (0, hooks_1.useWalletManager)();
21
+ const downloadLink = (0, react_2.useMemo)(() => {
22
+ return walletManager.getDownloadLink(wallet.info.name);
23
+ }, [wallet?.info?.name]);
24
+ const onInstall = () => {
25
+ if (downloadLink) {
26
+ window.open(downloadLink.link, "_blank");
27
+ }
28
+ };
29
+ const IconComp = getIcon(walletManager.getEnv());
30
+ return ((0, jsx_runtime_1.jsx)(react_1.ConnectModalStatus, { status: "NotExist", wallet: {
31
+ name: wallet?.info?.prettyName,
32
+ logo: typeof wallet?.info?.logo === "string" ? wallet?.info?.logo : "",
33
+ mobileDisabled: true,
34
+ }, contentHeader: `${wallet?.info?.prettyName} Not Installed`, contentDesc: true
35
+ ? `If ${wallet?.info?.prettyName.toLowerCase()} is installed on your device, please refresh this page or follow the browser instruction.`
36
+ : `Download link not provided. Try searching it or consulting the developer team.`, onInstall: onInstall, installIcon: (0, jsx_runtime_1.jsx)(IconComp, {}), disableInstall: downloadLink === null }));
37
+ };
38
+ exports.NotExistContent = NotExistContent;
39
+ function getIcon(env) {
40
+ if (env?.browser === "chrome")
41
+ return RiChromeFill_1.RiChromeFill;
42
+ if (env?.browser === "firefox")
43
+ return GrFirefox_1.GrFirefox;
44
+ if (env?.os === "android")
45
+ return FaAndroid_1.FaAndroid;
46
+ if (env?.os === "ios")
47
+ return RiAppStoreFill_1.RiAppStoreFill;
48
+ return GoDesktopDownload_1.GoDesktopDownload;
49
+ }
@@ -0,0 +1,4 @@
1
+ export declare const QRCodeHeader: ({ onBack }: {
2
+ onBack: () => void;
3
+ }) => import("react/jsx-runtime").JSX.Element;
4
+ export declare const QRCodeContent: () => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.QRCodeContent = exports.QRCodeHeader = void 0;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
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 } }));
16
+ };
17
+ 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) }));
23
+ };
24
+ exports.QRCodeContent = QRCodeContent;
@@ -1,4 +1,9 @@
1
- export declare const RejectHeader: ({ onBack }: {
1
+ import { BaseWallet } from "@interchain-kit/core";
2
+ export declare const RejectHeader: ({ wallet, onBack, }: {
3
+ wallet: BaseWallet;
2
4
  onBack: () => void;
3
5
  }) => import("react/jsx-runtime").JSX.Element;
4
- export declare const RejectContent: () => import("react/jsx-runtime").JSX.Element;
6
+ export declare const RejectContent: ({ wallet, onReconnect, }: {
7
+ wallet: BaseWallet;
8
+ onReconnect: () => void;
9
+ }) => import("react/jsx-runtime").JSX.Element;
@@ -4,18 +4,13 @@ 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
6
  const provider_1 = require("../provider");
7
- const hooks_1 = require("../../hooks");
8
7
  const utils_1 = require("../../utils");
9
- const RejectHeader = ({ onBack }) => {
8
+ const RejectHeader = ({ wallet, onBack, }) => {
10
9
  const { close } = (0, provider_1.useWalletModal)();
11
- const activeWallet = (0, hooks_1.useActiveWallet)();
12
- return ((0, jsx_runtime_1.jsx)(react_1.ConnectModalHead, { title: activeWallet.option.prettyName, hasBackButton: true, onClose: close, onBack: onBack, closeButtonProps: { onClick: close } }));
10
+ return ((0, jsx_runtime_1.jsx)(react_1.ConnectModalHead, { title: wallet?.info?.prettyName, hasBackButton: true, onClose: close, onBack: onBack, closeButtonProps: { onClick: close } }));
13
11
  };
14
12
  exports.RejectHeader = RejectHeader;
15
- const RejectContent = () => {
16
- const activeWallet = (0, hooks_1.useActiveWallet)();
17
- const walletManager = (0, hooks_1.useWalletManager)();
18
- const { close } = (0, provider_1.useWalletModal)();
19
- return ((0, jsx_runtime_1.jsx)(react_1.ConnectModalStatus, { status: "Rejected", wallet: (0, utils_1.getWalletInfo)(activeWallet), contentHeader: 'Request Rejected', contentDesc: activeWallet.errorMessage || 'Connection permission is denied.', onConnect: () => walletManager.connect(activeWallet.option.name).then(close) }));
13
+ const RejectContent = ({ wallet, onReconnect, }) => {
14
+ return ((0, jsx_runtime_1.jsx)(react_1.ConnectModalStatus, { status: "Rejected", wallet: (0, utils_1.getWalletInfo)(wallet), contentHeader: "Request Rejected", contentDesc: wallet.errorMessage || "Connection permission is denied.", onConnect: onReconnect }));
20
15
  };
21
16
  exports.RejectContent = RejectContent;
@@ -1,2 +1,5 @@
1
+ import { BaseWallet } from "@interchain-kit/core";
1
2
  export declare const WalletListHeader: () => import("react/jsx-runtime").JSX.Element;
2
- export declare const WalletListContent: () => import("react/jsx-runtime").JSX.Element;
3
+ export declare const WalletListContent: ({ onSelectWallet, }: {
4
+ onSelectWallet: (wallet: BaseWallet) => void;
5
+ }) => import("react/jsx-runtime").JSX.Element;
@@ -10,28 +10,36 @@ const WalletListHeader = () => {
10
10
  return ((0, jsx_runtime_1.jsx)(react_1.ConnectModalHead, { title: "Select your wallet", hasBackButton: false, onClose: close, closeButtonProps: { onClick: close } }));
11
11
  };
12
12
  exports.WalletListHeader = WalletListHeader;
13
- const WalletListContent = () => {
13
+ const WalletListContent = ({ onSelectWallet, }) => {
14
14
  const walletManager = (0, hooks_1.useWalletManager)();
15
- const { close } = (0, provider_1.useWalletModal)();
16
15
  const wallets = walletManager.wallets.map((w) => {
17
- return ({
18
- name: w.option.name,
19
- prettyName: w.option.prettyName,
20
- logo: w.option.logo,
16
+ return {
17
+ name: w.info.name,
18
+ prettyName: w.info.prettyName,
19
+ logo: w.info.logo,
21
20
  mobileDisabled: true,
22
- shape: 'list',
23
- originalWallet: w
24
- });
21
+ shape: "list",
22
+ originalWallet: {
23
+ ...w,
24
+ pairing: null,
25
+ },
26
+ };
25
27
  });
26
- const onWalletClick = async (wallet) => {
27
- try {
28
- await walletManager.connect(wallet.option.name);
29
- close();
30
- }
31
- catch (error) {
32
- console.log(error);
33
- }
34
- };
35
- return (0, jsx_runtime_1.jsx)(react_1.ConnectModalWalletList, { wallets: wallets, onWalletItemClick: onWalletClick });
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
+ }
43
+ return ((0, jsx_runtime_1.jsx)(react_1.ConnectModalWalletList, { wallets: wallets, onWalletItemClick: onSelectWallet }));
36
44
  };
37
45
  exports.WalletListContent = WalletListContent;
@@ -2,3 +2,5 @@ export * from './Connecting';
2
2
  export * from './WalletList';
3
3
  export * from './Connected';
4
4
  export * from './Reject';
5
+ export * from './QRCode';
6
+ export * from './NotExist';
@@ -18,3 +18,5 @@ __exportStar(require("./Connecting"), exports);
18
18
  __exportStar(require("./WalletList"), exports);
19
19
  __exportStar(require("./Connected"), exports);
20
20
  __exportStar(require("./Reject"), exports);
21
+ __exportStar(require("./QRCode"), exports);
22
+ __exportStar(require("./NotExist"), exports);
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@interchain-kit/react",
3
- "version": "0.0.1-beta.9",
4
- "author": "cosmology-tech <developers@cosmology.zone>",
3
+ "version": "0.2.0",
4
+ "author": "Hyperweb <developers@hyperweb.io>",
5
5
  "description": "interchain-kit wallet connector react package",
6
6
  "main": "index.js",
7
7
  "module": "esm/index.js",
@@ -27,18 +27,24 @@
27
27
  "build:dev": "npm run clean; tsc --declarationMap; tsc -p tsconfig.esm.json; npm run copy",
28
28
  "lint": "eslint . --fix",
29
29
  "test": "jest",
30
- "test:watch": "jest --watch"
30
+ "test:watch": "jest --watch",
31
+ "watch:dev": "tsc -w -p tsconfig.esm.json & tsc -w"
31
32
  },
32
33
  "keywords": [],
33
34
  "dependencies": {
34
- "@chain-registry/v2-types": "^0.49.6",
35
- "@interchain-kit/core": "0.0.1-beta.9",
36
- "@interchain-ui/react": "^1.23.31",
35
+ "@chain-registry/v2-types": "^0.53.40",
36
+ "@interchain-kit/core": "^0.2.0",
37
+ "@interchain-ui/react": "1.26.1",
38
+ "@interchainjs/cosmos": "1.6.3",
39
+ "@interchainjs/cosmos-types": "1.6.3",
40
+ "@react-icons/all-files": "^4.1.0",
37
41
  "@types/react": "^18.3.3",
38
42
  "@types/react-dom": "^18.3.0",
39
- "interchainjs": "^0.0.1-beta.12",
43
+ "@walletconnect/types": "^2.17.3",
44
+ "interchainjs": "1.6.3",
40
45
  "react": "^18.3.1",
41
- "react-dom": "^18.3.1"
46
+ "react-dom": "^18.3.1",
47
+ "zustand": "^5.0.3"
42
48
  },
43
- "gitHead": "94194bd0eb8bef794d9d180c584d69600c0bb478"
49
+ "gitHead": "945d8f8820de66145509613f675a5004577d2c2f"
44
50
  }
package/provider.d.ts CHANGED
@@ -1,17 +1,17 @@
1
- import React from 'react';
2
- import { BaseWallet, SignerOptions, WalletManager, EndpointOptions } from '@interChain-kit/core';
3
- import { AssetList, Chain } from '@chain-registry/v2-types';
4
- type InterchainWalletContextType = {
5
- walletManager: WalletManager;
6
- };
7
- type InterchianWalletProviderProps = {
1
+ import React from "react";
2
+ import { BaseWallet, SignerOptions, EndpointOptions } from "@interchain-kit/core";
3
+ import { AssetList, Chain } from "@chain-registry/v2-types";
4
+ import { InterchainStore } from "./store";
5
+ import { StoreApi } from "zustand";
6
+ type InterchainWalletContextType = StoreApi<InterchainStore>;
7
+ type InterchainWalletProviderProps = {
8
8
  chains: Chain[];
9
9
  assetLists: AssetList[];
10
10
  wallets: BaseWallet[];
11
- signerOptions: SignerOptions;
12
- endpointOptions: EndpointOptions;
11
+ signerOptions?: SignerOptions;
12
+ endpointOptions?: EndpointOptions;
13
13
  children: React.ReactNode;
14
14
  };
15
- export declare const ChainProvider: ({ chains, assetLists, wallets, signerOptions, endpointOptions, children }: InterchianWalletProviderProps) => import("react/jsx-runtime").JSX.Element;
16
- export declare const useInterChainWalletContext: () => InterchainWalletContextType;
15
+ export declare const ChainProvider: ({ chains, assetLists, wallets, signerOptions, endpointOptions, children, }: InterchainWalletProviderProps) => import("react/jsx-runtime").JSX.Element;
16
+ export declare const useInterchainWalletContext: () => InterchainWalletContextType;
17
17
  export {};