Skip to content
Open
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Next Next commit
feat: atomic batch wallet capability
  • Loading branch information
defispartan committed May 30, 2025
commit c872e45e4e34a449720ef28c167cdb0dea78e94c
31 changes: 31 additions & 0 deletions src/hooks/useGetWalletCapabilities.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
import { useQuery } from '@tanstack/react-query';
import { useAccount } from 'wagmi';
import { useWalletClient } from 'wagmi';

export type WalletCapabilities = {
[chainId: number]: boolean;
};

export const useGetWalletCapabilities = () => {
const { address } = useAccount();
const { data: walletClient } = useWalletClient();

return useQuery({
queryFn: async () => {
if (!walletClient || !address) return null;

const capabilities = await walletClient.getCapabilities();

// Transform capabilities into a simple boolean map
const simplifiedCapabilities: WalletCapabilities = {};
Object.entries(capabilities).forEach(([chainId, chainCapabilities]) => {
const atomicStatus = (chainCapabilities as any)?.atomic?.status;
simplifiedCapabilities[Number(chainId)] = atomicStatus === 'supported' || atomicStatus === 'ready';
});

return simplifiedCapabilities;
},
queryKey: ['walletCapabilities', address],
enabled: !!walletClient && !!address,
});
};