UNPKG

@lido-sdk/react

Version:

This project is being slowly deprecated and may not receive further updates. Check out [modern Lido SDK](https://github.com/lidofinance/lido-ethereum-sdk/pulls) to access latest functionality. It is actively maintained and is built for interacting with Li

58 lines (55 loc) 2.84 kB
import { getTokenAddress, TOKENS } from '@lido-sdk/constants'; import { useSDK } from '../hooks/useSDK.js'; import { useTokenBalance } from '../hooks/useTokenBalance.js'; import { useTotalSupply } from '../hooks/useTotalSupply.js'; import { useDecimals } from '../hooks/useDecimals.js'; import { useAllowance } from '../hooks/useAllowance.js'; import { useApprove } from '../hooks/useApprove.js'; const hooksFactory = (getTokenAddress) => { return { useTokenBalance: (config) => { const { chainId } = useSDK(); const tokenAddress = getTokenAddress(chainId); return useTokenBalance(tokenAddress, undefined, config); }, useTotalSupply: (config) => { const { chainId } = useSDK(); const tokenAddress = getTokenAddress(chainId); return useTotalSupply(tokenAddress, config); }, useDecimals: (config) => { const { chainId } = useSDK(); const tokenAddress = getTokenAddress(chainId); return useDecimals(tokenAddress, config); }, useAllowance: (spender, config) => { const { chainId } = useSDK(); const tokenAddress = getTokenAddress(chainId); return useAllowance(tokenAddress, spender, undefined, config); }, useApprove: (amount, spender, wrapper) => { const { chainId, account } = useSDK(); const tokenAddress = getTokenAddress(chainId); return useApprove(amount, tokenAddress, spender, account, wrapper); }, }; }; const wsteth = hooksFactory((chainId) => getTokenAddress(chainId, TOKENS.WSTETH)); const useWSTETHBalance = wsteth.useTokenBalance; const useWSTETHTotalSupply = wsteth.useTotalSupply; const useWSTETHDecimals = wsteth.useDecimals; const useWSTETHAllowance = wsteth.useAllowance; const useWSTETHApprove = wsteth.useApprove; const steth = hooksFactory((chainId) => getTokenAddress(chainId, TOKENS.STETH)); const useSTETHBalance = steth.useTokenBalance; const useSTETHTotalSupply = steth.useTotalSupply; const useSTETHDecimals = steth.useDecimals; const useSTETHAllowance = steth.useAllowance; const useSTETHApprove = steth.useApprove; const ldo = hooksFactory((chainId) => getTokenAddress(chainId, TOKENS.LDO)); const useLDOBalance = ldo.useTokenBalance; const useLDOTotalSupply = ldo.useTotalSupply; const useLDODecimals = ldo.useDecimals; const useLDOAllowance = ldo.useAllowance; const useLDOApprove = ldo.useApprove; export { hooksFactory, useLDOAllowance, useLDOApprove, useLDOBalance, useLDODecimals, useLDOTotalSupply, useSTETHAllowance, useSTETHApprove, useSTETHBalance, useSTETHDecimals, useSTETHTotalSupply, useWSTETHAllowance, useWSTETHApprove, useWSTETHBalance, useWSTETHDecimals, useWSTETHTotalSupply };