@ape.swap/bonds-sdk 6.2.3 → 6.2.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -60,7 +60,7 @@ const getTokenAllowance = async (currency, spender, account, chainId) => {
60
60
  },
61
61
  ];
62
62
  const data = await multicall(chainId, erc20ABI, calls);
63
- return getBalanceNumber(data[0] ?? 0, currency.decimals[chainId]);
63
+ return getBalanceNumber(data[0][0] ?? 0, currency.decimals[chainId]);
64
64
  };
65
65
  const useApproval = (amount, currency, spender, account, chainId) => {
66
66
  const apiUrl = useURLByEnvironment('apiV2');
@@ -1 +1 @@
1
- {"version":3,"file":"useAllowance.js","sources":["../../../src/state/allowance/useAllowance.ts"],"sourcesContent":["import { useQuery, UseQueryResult } from '@tanstack/react-query'\nimport { ChainId, Token } from '@ape.swap/apeswap-lists'\nimport erc20ABI from '../../config/abi/erc20.json'\nimport { QUERY_KEYS } from '../../config/constants/queryKeys'\nimport multicall, { Call } from '../../utils/multicall'\nimport { convertToBigish } from '../../utils/convertToBigish'\nimport { getBalanceNumber } from '../../utils/getBalanceNumber'\nimport ERC_20_ABI from '../../config/abi/erc20.json'\nimport USDT_ETH_ABI from '../../config/abi/usdtETH.json'\nimport { useCallback, useEffect, useState } from 'react'\nimport { useWriteContract } from 'wagmi'\nimport { useMonitorTx } from '../../hooks/useMonitorTx'\nimport { usePopups } from '../popups/usePopups'\nimport { reportError } from '../../utils/reportError'\nimport { useURLByEnvironment } from '../useSDKConfig'\n\n/**\n * useAllowance hook: fetches the amount approved by the user for a given token\n * useApproval hook: returns the approval state (not approved, pending or approved) and a function to approve on chain\n * getTokenAllowance function fetches the allowance on chain\n */\n\nexport enum ApprovalState {\n NOT_APPROVED = 'NOT_APPROVED',\n PENDING = 'PENDING',\n APPROVED = 'APPROVED',\n}\n\nexport default function useAllowance(\n currency: 'NATIVE' | Token | null,\n spender: string | null,\n account: string | null,\n chainId: ChainId | null,\n): UseQueryResult<number | null> {\n return useQuery({\n queryKey: [\n QUERY_KEYS.ALLOWANCE,\n account ?? '',\n chainId,\n currency === 'NATIVE' ? currency : currency?.symbol,\n spender,\n ],\n queryFn: () => getTokenAllowance(currency, spender, account, chainId),\n refetchInterval: 10000, // i.e. 10 sec\n refetchOnWindowFocus: false,\n retry: 1,\n })\n}\n\nexport const getTokenAllowance = async (\n currency: 'NATIVE' | Token | null,\n spender: string | null,\n account: string | null,\n chainId: ChainId | null,\n): Promise<number | null> => {\n if (currency === 'NATIVE') return null\n // if (!account) {\n // console.log('Account disconnected')\n // } else if (!currency) {\n // console.log('No currency selected')\n // } else if (!chainId) {\n // console.log('No chainId selected')\n // } else if (!spender) {\n // console.log('No spender selected')\n // }\n if (!account || !currency || !chainId || !spender) return null\n const calls: Call[] = [\n {\n address: currency.address[chainId]!,\n name: 'allowance',\n params: [account, spender],\n },\n ]\n const data = await multicall(chainId, erc20ABI, calls)\n return getBalanceNumber(data[0] ?? 0, currency.decimals![chainId]!)\n}\n\nexport const useApproval = (\n amount: string,\n currency: 'NATIVE' | Token | null,\n spender: string | null,\n account: string | null,\n chainId: ChainId | null,\n): [ApprovalState, () => Promise<string | null | undefined>] => {\n const apiUrl = useURLByEnvironment('apiV2')\n const [confirmingTxOnWallet, setConfirmingTxOnWallet] = useState(false)\n const { data: allowance, refetch } = useAllowance(currency, spender, account, chainId)\n\n const { writeContractAsync, data: txHash, reset } = useWriteContract()\n const { isLoading: isConfirming, isSuccess: isConfirmed } = useMonitorTx(txHash, chainId as ChainId)\n const { addToastError } = usePopups()\n const confirmingTxOnChain = isConfirming && !isConfirmed\n\n useEffect(() => {\n if (txHash && isConfirmed) {\n setTimeout(() => {\n refetch()\n console.log('refetch allowance')\n reset()\n }, 1500)\n }\n /* eslint-disable react-hooks/exhaustive-deps */\n }, [txHash, confirmingTxOnChain, isConfirmed])\n\n const handleApprove = useCallback(async () => {\n if (!chainId || !amount || currency === 'NATIVE' || !currency) return null\n const decimals = currency.decimals![chainId]\n const tokenAddress = currency.address[chainId] as `0x${string}`\n if (!decimals || !tokenAddress) return null\n try {\n const bigishAmount = convertToBigish(amount, decimals)\n setConfirmingTxOnWallet(true)\n const hash = await writeContractAsync({\n address: tokenAddress,\n abi:\n tokenAddress?.toLowerCase() === '0xdAC17F958D2ee523a2206206994597C13D831ec7'.toLowerCase()\n ? USDT_ETH_ABI\n : ERC_20_ABI,\n functionName: 'approve',\n args: [spender, bigishAmount],\n account: account as `0x${string}`,\n chain: chainId as any,\n })\n setConfirmingTxOnWallet(false)\n // Adding a delay as I suspect RPCs need to catch up as the txs are indexed onchain too fast\n await new Promise((resolve) => setTimeout(resolve, 1500))\n return hash\n } catch (error: any) {\n setConfirmingTxOnWallet(false)\n console.error('Approval failed:', error)\n addToastError(error?.shortMessage || error?.details || error?.message)\n reportError({\n apiUrl,\n error,\n extraInfo: { type: 'approval', tokenAddress: tokenAddress, spenderAddress: spender, error },\n chainId,\n account: account!,\n })\n throw error\n }\n /* eslint-disable react-hooks/exhaustive-deps */\n }, [amount, currency, chainId])\n\n let approvalState: ApprovalState = ApprovalState.NOT_APPROVED\n\n if (allowance && amount) {\n approvalState = allowance >= parseFloat(amount) ? ApprovalState.APPROVED : ApprovalState.NOT_APPROVED\n }\n if (currency === 'NATIVE') {\n approvalState = ApprovalState.APPROVED\n }\n if (confirmingTxOnChain || confirmingTxOnWallet) {\n approvalState = ApprovalState.PENDING\n }\n\n return [approvalState ?? ApprovalState.NOT_APPROVED, handleApprove]\n}\n"],"names":["ERC_20_ABI"],"mappings":"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"}
1
+ {"version":3,"file":"useAllowance.js","sources":["../../../src/state/allowance/useAllowance.ts"],"sourcesContent":["import { useQuery, UseQueryResult } from '@tanstack/react-query'\nimport { ChainId, Token } from '@ape.swap/apeswap-lists'\nimport erc20ABI from '../../config/abi/erc20.json'\nimport { QUERY_KEYS } from '../../config/constants/queryKeys'\nimport multicall, { Call } from '../../utils/multicall'\nimport { convertToBigish } from '../../utils/convertToBigish'\nimport { getBalanceNumber } from '../../utils/getBalanceNumber'\nimport ERC_20_ABI from '../../config/abi/erc20.json'\nimport USDT_ETH_ABI from '../../config/abi/usdtETH.json'\nimport { useCallback, useEffect, useState } from 'react'\nimport { useWriteContract } from 'wagmi'\nimport { useMonitorTx } from '../../hooks/useMonitorTx'\nimport { usePopups } from '../popups/usePopups'\nimport { reportError } from '../../utils/reportError'\nimport { useURLByEnvironment } from '../useSDKConfig'\n\n/**\n * useAllowance hook: fetches the amount approved by the user for a given token\n * useApproval hook: returns the approval state (not approved, pending or approved) and a function to approve on chain\n * getTokenAllowance function fetches the allowance on chain\n */\n\nexport enum ApprovalState {\n NOT_APPROVED = 'NOT_APPROVED',\n PENDING = 'PENDING',\n APPROVED = 'APPROVED',\n}\n\nexport default function useAllowance(\n currency: 'NATIVE' | Token | null,\n spender: string | null,\n account: string | null,\n chainId: ChainId | null,\n): UseQueryResult<number | null> {\n return useQuery({\n queryKey: [\n QUERY_KEYS.ALLOWANCE,\n account ?? '',\n chainId,\n currency === 'NATIVE' ? currency : currency?.symbol,\n spender,\n ],\n queryFn: () => getTokenAllowance(currency, spender, account, chainId),\n refetchInterval: 10000, // i.e. 10 sec\n refetchOnWindowFocus: false,\n retry: 1,\n })\n}\n\nexport const getTokenAllowance = async (\n currency: 'NATIVE' | Token | null,\n spender: string | null,\n account: string | null,\n chainId: ChainId | null,\n): Promise<number | null> => {\n if (currency === 'NATIVE') return null\n // if (!account) {\n // console.log('Account disconnected')\n // } else if (!currency) {\n // console.log('No currency selected')\n // } else if (!chainId) {\n // console.log('No chainId selected')\n // } else if (!spender) {\n // console.log('No spender selected')\n // }\n if (!account || !currency || !chainId || !spender) return null\n const calls: Call[] = [\n {\n address: currency.address[chainId]!,\n name: 'allowance',\n params: [account, spender],\n },\n ]\n const data = await multicall(chainId, erc20ABI, calls)\n return getBalanceNumber(data[0][0] ?? 0, currency.decimals![chainId]!)\n}\n\nexport const useApproval = (\n amount: string,\n currency: 'NATIVE' | Token | null,\n spender: string | null,\n account: string | null,\n chainId: ChainId | null,\n): [ApprovalState, () => Promise<string | null | undefined>] => {\n const apiUrl = useURLByEnvironment('apiV2')\n const [confirmingTxOnWallet, setConfirmingTxOnWallet] = useState(false)\n const { data: allowance, refetch } = useAllowance(currency, spender, account, chainId)\n\n const { writeContractAsync, data: txHash, reset } = useWriteContract()\n const { isLoading: isConfirming, isSuccess: isConfirmed } = useMonitorTx(txHash, chainId as ChainId)\n const { addToastError } = usePopups()\n const confirmingTxOnChain = isConfirming && !isConfirmed\n\n useEffect(() => {\n if (txHash && isConfirmed) {\n setTimeout(() => {\n refetch()\n console.log('refetch allowance')\n reset()\n }, 1500)\n }\n /* eslint-disable react-hooks/exhaustive-deps */\n }, [txHash, confirmingTxOnChain, isConfirmed])\n\n const handleApprove = useCallback(async () => {\n if (!chainId || !amount || currency === 'NATIVE' || !currency) return null\n const decimals = currency.decimals![chainId]\n const tokenAddress = currency.address[chainId] as `0x${string}`\n if (!decimals || !tokenAddress) return null\n try {\n const bigishAmount = convertToBigish(amount, decimals)\n setConfirmingTxOnWallet(true)\n const hash = await writeContractAsync({\n address: tokenAddress,\n abi:\n tokenAddress?.toLowerCase() === '0xdAC17F958D2ee523a2206206994597C13D831ec7'.toLowerCase()\n ? USDT_ETH_ABI\n : ERC_20_ABI,\n functionName: 'approve',\n args: [spender, bigishAmount],\n account: account as `0x${string}`,\n chain: chainId as any,\n })\n setConfirmingTxOnWallet(false)\n // Adding a delay as I suspect RPCs need to catch up as the txs are indexed onchain too fast\n await new Promise((resolve) => setTimeout(resolve, 1500))\n return hash\n } catch (error: any) {\n setConfirmingTxOnWallet(false)\n console.error('Approval failed:', error)\n addToastError(error?.shortMessage || error?.details || error?.message)\n reportError({\n apiUrl,\n error,\n extraInfo: { type: 'approval', tokenAddress: tokenAddress, spenderAddress: spender, error },\n chainId,\n account: account!,\n })\n throw error\n }\n /* eslint-disable react-hooks/exhaustive-deps */\n }, [amount, currency, chainId])\n\n let approvalState: ApprovalState = ApprovalState.NOT_APPROVED\n\n if (allowance && amount) {\n approvalState = allowance >= parseFloat(amount) ? ApprovalState.APPROVED : ApprovalState.NOT_APPROVED\n }\n if (currency === 'NATIVE') {\n approvalState = ApprovalState.APPROVED\n }\n if (confirmingTxOnChain || confirmingTxOnWallet) {\n approvalState = ApprovalState.PENDING\n }\n\n return [approvalState ?? ApprovalState.NOT_APPROVED, handleApprove]\n}\n"],"names":["ERC_20_ABI"],"mappings":"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"}
@@ -74,13 +74,13 @@ const getTokensBalance = async (account, tokens, chainId, apiUrl) => {
74
74
  token?.address?.[chainId]?.toLowerCase() === callsToken[i].address.toLowerCase());
75
75
  return {
76
76
  address: token?.address[chainId],
77
- balance: formatUnits(balance, token.decimals[chainId]),
77
+ balance: formatUnits(balance[0], token.decimals[chainId]),
78
78
  };
79
79
  });
80
80
  const balancesNative = dataNative.map((balance) => {
81
81
  return {
82
82
  address: 'NATIVE',
83
- balance: formatUnits(balance, 18),
83
+ balance: formatUnits(balance[0], 18),
84
84
  };
85
85
  });
86
86
  return [...balancesToken, ...balancesNative];
@@ -1 +1 @@
1
- {"version":3,"file":"useUserTokensBalance.js","sources":["../../../src/state/balance/useUserTokensBalance.ts"],"sourcesContent":["import { useQuery, UseQueryResult } from '@tanstack/react-query'\nimport { QUERY_KEYS } from '../../config/constants/queryKeys'\nimport multicallV2Abi from '../../config/abi/multicallv2.json'\nimport erc20ABI from '../../config/abi/erc20.json'\nimport { ChainId, Token } from '@ape.swap/apeswap-lists'\nimport multicall, { Call } from '../../utils/multicall'\nimport { MULTICALL_V2 } from '../../config/constants/addresses'\nimport { formatUnits } from '../../utils/fixedPoint'\nimport { reportError } from '../../utils/reportError'\nimport { useURLByEnvironment } from '../useSDKConfig'\nimport useEVMAccount from '../../hooks/accounts/useEVMAccount'\nimport { getTokenBalanceSolana } from './useCurrencyBalanceSolana'\nimport useSOLAccount from '../../hooks/accounts/useSOLAccount'\nimport useAPTAccount from '../../hooks/accounts/useAPTAccount'\nimport useSUIAccount from '../../hooks/accounts/useSUIAccount'\nimport { getTokensBalanceAptos } from './useCurrencyBalanceAptos'\nimport { getTokensBalanceSui } from './useCurrencyBalanceSui'\n\nexport default function useUserTokensBalance(\n tokens: ('NATIVE' | Token)[],\n chainId: number,\n): UseQueryResult<{ address: string; balance: string }[]> {\n const keys = tokens.map((token) => (token === 'NATIVE' ? 'NATIVE' : token.address[chainId as ChainId]))\n const { address: account } = useEVMAccount()\n const { publicKey: accountSolana } = useSOLAccount()\n const { address: aptosAccount } = useAPTAccount()\n const { address: suiAccount } = useSUIAccount()\n const accountToUse =\n chainId === ChainId.SOL\n ? accountSolana?.toString()\n : chainId === ChainId.APTOS\n ? aptosAccount\n : chainId === ChainId.SUI\n ? suiAccount\n : account\n const apiUrl = useURLByEnvironment('apiV2')\n return useQuery({\n queryKey: [`${QUERY_KEYS.USER_TOKENS_BALANCES}-${keys}-${accountToUse}`],\n queryFn: () => getTokensBalance(accountToUse!, tokens, chainId, apiUrl),\n staleTime: 45000,\n refetchOnWindowFocus: false,\n enabled: !!accountToUse,\n })\n}\n\nexport const getTokensBalance = async (\n account: string,\n tokens: ('NATIVE' | Token)[],\n chainId: number,\n apiUrl?: string,\n): Promise<{ address: string; balance: string }[]> => {\n try {\n if (chainId === ChainId.APTOS) {\n return getTokensBalanceAptos(account, tokens)\n }\n\n if (chainId === ChainId.SUI) {\n return getTokensBalanceSui(account, tokens)\n }\n\n if (chainId !== ChainId.SOL) {\n const callsToken: Call[] = tokens\n .filter((token) => token !== 'NATIVE')\n .map((token) => {\n return {\n address: token?.address?.[chainId as ChainId] ?? '',\n name: 'balanceOf',\n params: [account],\n }\n })\n const callNative: Call[] = tokens\n .filter((token) => token === 'NATIVE')\n .map(() => {\n return {\n address: MULTICALL_V2[chainId]!,\n name: 'getEthBalance',\n params: [account],\n }\n })\n const [dataToken, dataNative] = await Promise.all([\n multicall(chainId, erc20ABI, callsToken),\n multicall(chainId, multicallV2Abi, callNative),\n ])\n\n const balancesToken = dataToken.map((balance: any, i: number) => {\n const token = tokens.find(\n (token) =>\n token !== 'NATIVE' &&\n (token as Token)?.address?.[chainId as ChainId]?.toLowerCase() === callsToken[i].address.toLowerCase(),\n )\n return {\n address: (token as Token)?.address[chainId as ChainId],\n balance: formatUnits(balance, (token as Token).decimals![chainId as ChainId]!),\n }\n })\n const balancesNative = dataNative.map((balance: any) => {\n return {\n address: 'NATIVE',\n balance: formatUnits(balance, 18),\n }\n })\n return [...balancesToken, ...balancesNative]\n } else {\n return await Promise.all(\n tokens.map(async (token) => {\n const balance = await getTokenBalanceSolana(token, account)\n return {\n address: token === 'NATIVE' ? 'NATIVE' : ((token as Token).address[ChainId.SOL] as string),\n balance: balance || '0',\n }\n }),\n )\n }\n } catch (e) {\n reportError({\n apiUrl,\n error: e,\n extraInfo: { type: 'getTokensBalance', tokens, e },\n account,\n chainId,\n })\n return []\n }\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useUserTokensBalance.js","sources":["../../../src/state/balance/useUserTokensBalance.ts"],"sourcesContent":["import { useQuery, UseQueryResult } from '@tanstack/react-query'\nimport { QUERY_KEYS } from '../../config/constants/queryKeys'\nimport multicallV2Abi from '../../config/abi/multicallv2.json'\nimport erc20ABI from '../../config/abi/erc20.json'\nimport { ChainId, Token } from '@ape.swap/apeswap-lists'\nimport multicall, { Call } from '../../utils/multicall'\nimport { MULTICALL_V2 } from '../../config/constants/addresses'\nimport { formatUnits } from '../../utils/fixedPoint'\nimport { reportError } from '../../utils/reportError'\nimport { useURLByEnvironment } from '../useSDKConfig'\nimport useEVMAccount from '../../hooks/accounts/useEVMAccount'\nimport { getTokenBalanceSolana } from './useCurrencyBalanceSolana'\nimport useSOLAccount from '../../hooks/accounts/useSOLAccount'\nimport useAPTAccount from '../../hooks/accounts/useAPTAccount'\nimport useSUIAccount from '../../hooks/accounts/useSUIAccount'\nimport { getTokensBalanceAptos } from './useCurrencyBalanceAptos'\nimport { getTokensBalanceSui } from './useCurrencyBalanceSui'\n\nexport default function useUserTokensBalance(\n tokens: ('NATIVE' | Token)[],\n chainId: number,\n): UseQueryResult<{ address: string; balance: string }[]> {\n const keys = tokens.map((token) => (token === 'NATIVE' ? 'NATIVE' : token.address[chainId as ChainId]))\n const { address: account } = useEVMAccount()\n const { publicKey: accountSolana } = useSOLAccount()\n const { address: aptosAccount } = useAPTAccount()\n const { address: suiAccount } = useSUIAccount()\n const accountToUse =\n chainId === ChainId.SOL\n ? accountSolana?.toString()\n : chainId === ChainId.APTOS\n ? aptosAccount\n : chainId === ChainId.SUI\n ? suiAccount\n : account\n const apiUrl = useURLByEnvironment('apiV2')\n return useQuery({\n queryKey: [`${QUERY_KEYS.USER_TOKENS_BALANCES}-${keys}-${accountToUse}`],\n queryFn: () => getTokensBalance(accountToUse!, tokens, chainId, apiUrl),\n staleTime: 45000,\n refetchOnWindowFocus: false,\n enabled: !!accountToUse,\n })\n}\n\nexport const getTokensBalance = async (\n account: string,\n tokens: ('NATIVE' | Token)[],\n chainId: number,\n apiUrl?: string,\n): Promise<{ address: string; balance: string }[]> => {\n try {\n if (chainId === ChainId.APTOS) {\n return getTokensBalanceAptos(account, tokens)\n }\n\n if (chainId === ChainId.SUI) {\n return getTokensBalanceSui(account, tokens)\n }\n\n if (chainId !== ChainId.SOL) {\n const callsToken: Call[] = tokens\n .filter((token) => token !== 'NATIVE')\n .map((token) => {\n return {\n address: token?.address?.[chainId as ChainId] ?? '',\n name: 'balanceOf',\n params: [account],\n }\n })\n const callNative: Call[] = tokens\n .filter((token) => token === 'NATIVE')\n .map(() => {\n return {\n address: MULTICALL_V2[chainId]!,\n name: 'getEthBalance',\n params: [account],\n }\n })\n const [dataToken, dataNative] = await Promise.all([\n multicall(chainId, erc20ABI, callsToken),\n multicall(chainId, multicallV2Abi, callNative),\n ])\n\n const balancesToken = dataToken.map((balance: any, i: number) => {\n const token = tokens.find(\n (token) =>\n token !== 'NATIVE' &&\n (token as Token)?.address?.[chainId as ChainId]?.toLowerCase() === callsToken[i].address.toLowerCase(),\n )\n return {\n address: (token as Token)?.address[chainId as ChainId],\n balance: formatUnits(balance[0], (token as Token).decimals![chainId as ChainId]!),\n }\n })\n const balancesNative = dataNative.map((balance: any) => {\n return {\n address: 'NATIVE',\n balance: formatUnits(balance[0], 18),\n }\n })\n return [...balancesToken, ...balancesNative]\n } else {\n return await Promise.all(\n tokens.map(async (token) => {\n const balance = await getTokenBalanceSolana(token, account)\n return {\n address: token === 'NATIVE' ? 'NATIVE' : ((token as Token).address[ChainId.SOL] as string),\n balance: balance || '0',\n }\n }),\n )\n }\n } catch (e) {\n reportError({\n apiUrl,\n error: e,\n extraInfo: { type: 'getTokensBalance', tokens, e },\n account,\n chainId,\n })\n return []\n }\n}\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "description": "Ape Bond SDK",
4
4
  "author": "Ape Bond",
5
5
  "license": "MIT",
6
- "version": "6.2.3",
6
+ "version": "6.2.4",
7
7
  "module": "dist/main.js",
8
8
  "type": "module",
9
9
  "types": "dist/main.d.ts",