Skip to main content
Version: 1.0.0

getTokenReserves

This function fetches Uniswap reserve data for a given token address on a given network.

  • If only a chain id is specified, the Ethereum node used to fulfill data requests is determined by ethers.getDefaultProvider, else it is the one specified by the passed provider.
  • This function throws an error if the provided tokenAddress is not a token with a Uniswap exchange.

Function Signature#

export async function getTokenReserves(  tokenAddress: string,  chainIdOrProvider: ChainIdOrProvider = 1): Promise<TokenReservesNormalized>;

Input Parameters#

ParameterTypeDescription
tokenAddressstringThe checksummed address of a token with a Uniswap exchange.
chainIdOrProviderChainIdOrProviderA supported chain id (1, 3, 4, or 42), or an underlying web3 provider connected to a chain with a supported chain id.

Example Usage#

const tokenAddress = "0x89d24A6b4CcB1B6fAA2625fE562bDD9a23260359"; // DAI Mainnetconst chainIdOrProvider: ChainIdOrProvider = 1; // could be e.g. window.ethereum instead
const tokenReserves: TokenReservesNormalized = await getTokenReserves(  tokenAddress,  chainIdOrProvider);
/*{  // details for the passed token  token: {    chainId: 1,    address: '0x89d24A6b4CcB1B6fAA2625fE562bDD9a23260359',    decimals: 18  },
  // details for the Uniswap exchange of the passed token  exchange: {    chainId: 1,    address: '0x09cabEC1eAd1c0Ba254B09efb3EE13841712bE14',    decimals: 18  },
  // details for the ETH portion of the reserves of the passed token  ethReserve: {    token: {      chainId: 1,      address: 'ETH',      decimals: 18    },    amount: <BigNumber>  },
  // details for the token portion of the reserves of the passed token  tokenReserve: {    token: {      chainId: 1,      address: '0x89d24A6b4CcB1B6fAA2625fE562bDD9a23260359',      decimals: 18    },    amount: <BigNumber>  }}*/