@cosmos-kit/react-lite
Version:
cosmos-kit wallet connector
32 lines (31 loc) • 1.13 kB
JavaScript
import { State, WalletStatus, } from '@cosmos-kit/core';
import { useContext } from 'react';
import { walletContext } from '../provider';
export const useWallet = (walletName, activeOnly = true) => {
const context = useContext(walletContext);
if (!context) {
throw new Error('You have forgot to use ChainProvider.');
}
const { walletManager } = context;
const mainWallet = walletName
? walletManager.getMainWallet(walletName)
: walletManager.mainWallets.find((w) => w.isActive && w.clientMutable.state !== State.Error);
if (!mainWallet) {
return {
mainWallet,
chainWallets: [],
wallet: void 0,
status: WalletStatus.Disconnected,
message: void 0,
};
}
const { walletInfo, getChainWalletList, getGlobalStatusAndMessage } = mainWallet;
const [globalStatus, globalMessage] = getGlobalStatusAndMessage(activeOnly);
return {
mainWallet,
chainWallets: getChainWalletList(false),
wallet: walletInfo,
status: globalStatus,
message: globalMessage,
};
};