Data

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 Mainnet
const 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>
}
}
*/