@@ -10,6 +10,7 @@ import type { GetBalanceReturnType } from '@wagmi/core'
1010import { getBalanceQueryOptions , readContractsQueryOptions } from '@wagmi/core/query'
1111
1212type TokenQuery = { tokenAddress : Address }
13+ type TokenBalanceQuery = ChainQuery & UserQuery & TokenQuery
1314
1415/** Convert user collateral from GetBalanceReturnType to number */
1516const convertBalance = ( { value, decimals } : Partial < GetBalanceReturnType > ) =>
@@ -23,7 +24,7 @@ const getNativeBalanceQueryOptions = (config: Config, { chainId, userAddress }:
2324 } )
2425
2526/** Create query contracts for ERC-20 token balance and decimals */
26- const getERC20QueryContracts = ( { chainId, userAddress, tokenAddress } : ChainQuery & UserQuery & TokenQuery ) =>
27+ const getERC20QueryContracts = ( { chainId, userAddress, tokenAddress } : TokenBalanceQuery ) =>
2728 [
2829 { chainId, address : tokenAddress , abi : erc20Abi , functionName : 'balanceOf' , args : [ userAddress ] } ,
2930 { chainId, address : tokenAddress , abi : erc20Abi , functionName : 'decimals' } ,
@@ -33,7 +34,7 @@ const getERC20QueryContracts = ({ chainId, userAddress, tokenAddress }: ChainQue
3334const isNative = ( { tokenAddress } : TokenQuery ) => isAddressEqual ( tokenAddress , ethAddress )
3435
3536/** Imperatively fetch token balance. Uses a staletime of 0 to always be guaranteed of a fresh result. */
36- export const fetchTokenBalance = async ( config : Config , query : ChainQuery & UserQuery & TokenQuery ) =>
37+ export const fetchTokenBalance = async ( config : Config , query : TokenBalanceQuery ) =>
3738 isNative ( query )
3839 ? await queryClient
3940 . fetchQuery ( { ...getNativeBalanceQueryOptions ( config , query ) , staleTime : 0 } )
@@ -49,7 +50,7 @@ export const fetchTokenBalance = async (config: Config, query: ChainQuery & User
4950 . then ( ( balance ) => convertBalance ( { value : balance [ 0 ] , decimals : balance [ 1 ] } ) )
5051
5152/** Hook to fetch the token balance */
52- export function useTokenBalance ( { chainId, userAddress, tokenAddress } : FieldsOf < ChainQuery & UserQuery & TokenQuery > ) {
53+ export function useTokenBalance ( { chainId, userAddress, tokenAddress } : FieldsOf < TokenBalanceQuery > ) {
5354 const config = useConfig ( )
5455
5556 const isEnabled = chainId != null && userAddress != null && tokenAddress != null
0 commit comments