Files
sre-01-tokenization/packages/nextjs/hooks/scaffold-eth/useWatchBalance.ts
2026-01-10 18:17:37 +07:00

22 lines
837 B
TypeScript

import { useEffect } from "react";
import { useTargetNetwork } from "./useTargetNetwork";
import { useQueryClient } from "@tanstack/react-query";
import { UseBalanceParameters, useBalance, useBlockNumber } from "wagmi";
/**
* Wrapper around wagmi's useBalance hook. Updates data on every block change.
*/
export const useWatchBalance = (useBalanceParameters: UseBalanceParameters) => {
const { targetNetwork } = useTargetNetwork();
const queryClient = useQueryClient();
const { data: blockNumber } = useBlockNumber({ watch: true, chainId: targetNetwork.id });
const { queryKey, ...restUseBalanceReturn } = useBalance(useBalanceParameters);
useEffect(() => {
queryClient.invalidateQueries({ queryKey });
// eslint-disable-next-line react-hooks/exhaustive-deps
}, [blockNumber]);
return restUseBalanceReturn;
};