Skip to content

Commit 0d978bf

Browse files
committed
refactor: add helper type TokenBalanceQuery
1 parent 7088f6b commit 0d978bf

File tree

1 file changed

+4
-3
lines changed

1 file changed

+4
-3
lines changed

packages/curve-ui-kit/src/queries/token-balance.query.ts

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import type { GetBalanceReturnType } from '@wagmi/core'
1010
import { getBalanceQueryOptions, readContractsQueryOptions } from '@wagmi/core/query'
1111

1212
type TokenQuery = { tokenAddress: Address }
13+
type TokenBalanceQuery = ChainQuery & UserQuery & TokenQuery
1314

1415
/** Convert user collateral from GetBalanceReturnType to number */
1516
const 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
3334
const 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

Comments
 (0)