This hook provides tools for connecting to a wallet, accessing account information, and disconnecting from a wallet. Account information will update in real time when changes are made in the wallet extension.
Copy import { useWallet, useAllWallets } from 'useink'
export const WalletConnect = () => {
const wallets = useAllWallets()
const { isConnected, connect, disconnect, setAccount } = useWallet()
if (isConnected) return <button onClick={disconnect}>Disconnect</button>
return (
<ul>
{wallets.map(w => (
<li key={w.title}>
{w.installed ? (
<button onClick={() => connect(w.extensionName)}>
<img src={w.logo.src} alt={w.logo.alt} />
Connect to {w.title}
</button>
) : (
<a href={w.installUrl}>
<img src={w.logo.src} alt={w.logo.alt} />
Install {w.title}
</a>
)}
</li>
))}
</ul>
)
}
Copy import { useWallet } from 'useink'
export const Accounts = () => {
const { account, accounts, setAccount } = useWallet()
if (!account) return null
return (
<div>
<h1>You are connected as {account.name || account.address}</h1>
<ul>
{accounts.map(a => (
<li key={a.address}>
<button onClick={() => setAccount(a)} disabled={account === a}>
Set account to {a.name || a.address}
</button>
</li>
))}
</ul>
</div>
)
}
Copy {
account?: WalletAccount | undefined;
accounts: WalletAccount[] | undefined;
connect: (walletName: WalletName) => void;
disconnect: () => void;
walletError?: WalletError;
isConnected: boolean;
setAccount: (account: WalletAccount) => void;
getWallets: typeof getWallets;
getWalletBySource: typeof getWalletBySource;
}