UNPKG

@knine-sdk/react

Version:

React helpers for Knine Finance projects. Part of Knine JS SDK

79 lines (76 loc) 5.14 kB
import { getTokenAddress, TOKENS, reflectMainChainToSubChain } from '@knine-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, opts) => { var _a, _b; const { chainId: currentChainId, findProviderByChainId } = useSDK(); const chosenChainId = (_a = opts === null || opts === void 0 ? void 0 : opts.chainId) !== null && _a !== void 0 ? _a : currentChainId; const forcedProvider = ((_b = findProviderByChainId(chosenChainId)) === null || _b === void 0 ? void 0 : _b.provider) || undefined; const tokenAddress = getTokenAddress(chosenChainId); return useTokenBalance(tokenAddress, undefined, config, forcedProvider); }, useTotalSupply: (config, opts) => { var _a, _b; const { chainId: currentChainId, findProviderByChainId } = useSDK(); const chosenChainId = (_a = opts === null || opts === void 0 ? void 0 : opts.chainId) !== null && _a !== void 0 ? _a : currentChainId; const forcedProvider = ((_b = findProviderByChainId(chosenChainId)) === null || _b === void 0 ? void 0 : _b.provider) || undefined; const tokenAddress = getTokenAddress(chosenChainId); return useTotalSupply(tokenAddress, config, forcedProvider); }, useDecimals: (config, opts) => { var _a, _b; const { chainId: currentChainId, findProviderByChainId } = useSDK(); const chosenChainId = (_a = opts === null || opts === void 0 ? void 0 : opts.chainId) !== null && _a !== void 0 ? _a : currentChainId; const forcedProvider = ((_b = findProviderByChainId(chosenChainId)) === null || _b === void 0 ? void 0 : _b.provider) || undefined; const tokenAddress = getTokenAddress(chosenChainId); return useDecimals(tokenAddress, config, forcedProvider); }, useAllowance: (spender, config, opts) => { var _a, _b; const { chainId: currentChainId, findProviderByChainId } = useSDK(); const chosenChainId = (_a = opts === null || opts === void 0 ? void 0 : opts.chainId) !== null && _a !== void 0 ? _a : currentChainId; const forcedProvider = ((_b = findProviderByChainId(chosenChainId)) === null || _b === void 0 ? void 0 : _b.provider) || undefined; const tokenAddress = getTokenAddress(chosenChainId); return useAllowance(tokenAddress, spender, undefined, config, forcedProvider); }, useApprove: (amount, spender, wrapper, opts) => { var _a; const { chainId: currentChainId, account } = useSDK(); const tokenAddress = getTokenAddress((_a = opts === null || opts === void 0 ? void 0 : opts.chainId) !== null && _a !== void 0 ? _a : currentChainId); return useApprove(amount, tokenAddress, spender, account, wrapper); }, }; }; const knBone = hooksFactory((chainId) => getTokenAddress(chainId, TOKENS.KNBONE)); const useKnBoneBalance = knBone.useTokenBalance; // TODO: useKnBoneotalSupply > useKnBoneTotalSupply const useKnBoneotalSupply = knBone.useTotalSupply; const useKnBoneDecimals = knBone.useDecimals; const useKnBoneAllowance = knBone.useAllowance; const useKnBoneApprove = knBone.useApprove; const bone = hooksFactory((chainId) => getTokenAddress(reflectMainChainToSubChain(chainId), TOKENS.BONE)); const useBoneBalance = bone.useTokenBalance; // TODO: useBoneotalSupply > useBoneTotalSupply const useBoneotalSupply = bone.useTotalSupply; const useBoneDecimals = bone.useDecimals; const useBoneAllowance = bone.useAllowance; const useBoneApprove = bone.useApprove; const knine = hooksFactory((chainId) => getTokenAddress(chainId, TOKENS.KNINE)); const useKnineBalance = knine.useTokenBalance; const useKnineTotalSupply = knine.useTotalSupply; const useKnineDecimals = knine.useDecimals; const useKnineAllowance = knine.useAllowance; const useKnineApprove = knine.useApprove; const esKnine = hooksFactory((chainId) => getTokenAddress(chainId, TOKENS.esKNINE)); const useEsKnineBalance = esKnine.useTokenBalance; const useEsKnineTotalSupply = esKnine.useTotalSupply; const useEsKnineDecimals = esKnine.useDecimals; const useEsKnineAllowance = esKnine.useAllowance; const useEsKnineApprove = esKnine.useApprove; export { hooksFactory, useBoneAllowance, useBoneApprove, useBoneBalance, useBoneDecimals, useBoneotalSupply, useEsKnineAllowance, useEsKnineApprove, useEsKnineBalance, useEsKnineDecimals, useEsKnineTotalSupply, useKnBoneAllowance, useKnBoneApprove, useKnBoneBalance, useKnBoneDecimals, useKnBoneotalSupply, useKnineAllowance, useKnineApprove, useKnineBalance, useKnineDecimals, useKnineTotalSupply };