UNPKG

@iam4x/bsc-scan

Version:

An efficient BNB and token balance scanner

67 lines 3.75 kB
import{encode}from"@findeth/abi";import{callSingle,toNestedBalanceMap}from"./api";import{ETHER_BALANCES_ID,ETHER_BALANCES_TYPE,TOKEN_BALANCES_ID,TOKEN_BALANCES_TYPE,TOKENS_BALANCE_ID,TOKENS_BALANCE_TYPE,PENDING_POOLS_AUTO_BALANCES_ID,PENDING_POOLS_AUTO_BALANCES_TYPE,STAKED_POOLS_WANT_TOKENS_ID,STAKED_POOLS_WANT_TOKENS_TYPE}from"./constants";import{withId}from"./utils";/** * Get the Ether balances for the addresses specified. * * @param {ProviderLike} provider * @param {string[]} addresses * @param {EthScanOptions} options * @return {Promise<BalanceMap>} */export const getEtherBalances=(a,b,c)=>callSingle(a,b,a=>withId(ETHER_BALANCES_ID,encode(ETHER_BALANCES_TYPE,[a])),c);/** * Get the ERC-20 token balances of the token with the address `tokenAddress` for the addresses * specified. * * @param {ProviderLike} provider * @param {string[]} addresses * @param {string} tokenAddress * @param {EthScanOptions} options * @return {Promise<BalanceMap>} */export const getTokenBalances=async(a,b,c,d)=>callSingle(a,b,a=>withId(TOKEN_BALANCES_ID,encode(TOKEN_BALANCES_TYPE,[a,c])),d);/** * Get the ERC-20 token balances for multiple contracts, for multiple addresses. * * @param {ProviderLike} provider * @param {string[]} addresses * @param {string[]} tokenAddresses * @param {EthScanOptions} options * @return {Promise<BalanceMap<BalanceMap>>} */export const getTokensBalances=async(a,b,c,d)=>{const e=await Promise.all(b.map(async b=>Object.values(await getTokensBalance(a,b,c,d))));return toNestedBalanceMap(b,c,e)};/** * Get the ERC-20 token balance of the tokens with the addresses `tokenAddresses` for the single * address specified. * * @param {ProviderLike} provider * @param {string} address * @param {string[]} tokenAddresses * @param {EthScanOptions} options * @return {Promise<BalanceMap>} */export const getTokensBalance=(a,b,c,d)=>callSingle(a,c,a=>withId(TOKENS_BALANCE_ID,encode(TOKENS_BALANCE_TYPE,[b,a])),d);/** * Get the pending AUTO token balances for multiple pools, for multiple addresses. * * @param {ProviderLike} provider * @param {string[]} addresses * @param {string[]} tokenAddresses * @param {EthScanOptions} options * @return {Promise<BalanceMap<BalanceMap>>} */export const getPendingPoolsAUTOBalances=async(a,b,c,d)=>{const e=await Promise.all(b.map(async b=>Object.values(await getPendingPoolsAUTOBalance(a,b,c,d))));return toNestedBalanceMap(b,c,e)};/** * Get the pending AUTO token balances for multiple pools, for single address. * * @param {ProviderLike} provider * @param {string} address * @param {string[]} tokenAddresses * @param {EthScanOptions} options * @return {Promise<BalanceMap>} */export const getPendingPoolsAUTOBalance=(a,b,c,d)=>callSingle(a,c,a=>withId(PENDING_POOLS_AUTO_BALANCES_ID,encode(PENDING_POOLS_AUTO_BALANCES_TYPE,[b,a])),d);/** * Get the staked token balances for multiple pools, for multiple addresses. * * @param {ProviderLike} provider * @param {string[]} addresses * @param {string[]} tokenAddresses * @param {EthScanOptions} options * @return {Promise<BalanceMap<BalanceMap>>} */export const getStakedPoolsWantTokensBalances=async(a,b,c,d)=>{const e=await Promise.all(b.map(async(b)=>Object.values(await getStakedPoolsWantTokensBalance(a,b,c,d))));return toNestedBalanceMap(b,c,e)};/** * Get the staked token balances for multiple pools, for single address. * * @param {ProviderLike} provider * @param {string} address * @param {string[]} tokenAddresses * @param {EthScanOptions} options * @return {Promise<BalanceMap>} */export const getStakedPoolsWantTokensBalance=(a,b,c,d)=>callSingle(a,c,a=>withId(STAKED_POOLS_WANT_TOKENS_ID,encode(STAKED_POOLS_WANT_TOKENS_TYPE,[b,a])),d); //# sourceMappingURL=eth-scan.js.map