Getting Pangea Pool Info

Getting every deployed pool info

/// MasterDeployer address
const masterDeployerAddress = "0x..."; 

///Getting every pool address

async function readAllPools() {  
  /// MasterDeployer__factory is a typechain object under types/
  /// You can interact via typechain and ethers.js in JavaScript env.

  const masterDeployer = await MasterDeployer__factory.connect(
    masterDeployerAddress, provider);
  
  /// number of deployed pools in Pangea
  const totalPools = (await masterDeployer.totalPoolsCount()).toNumber();

  for (let i = 0; i < totalPools; i++) {
    /// Getting pool address
    const poolAddress = await masterDeployer.getPoolAddress(i);
    const pool = await ConcentratedLiquidityPool__factory.connect(
      poolAddress, provider);
  
    /// Token0 address
    const token0 = await pool.token0();
    /// Token1 address
    const token1 = await pool.token1();
    /// Swap Fee Rate
    const swapFee = (await pool.swapFee()) / 1e6;
    /// Pool Price. price = √(token1/token0) * 2 ^ 96. Price changes when swap occurs
    const price = (await pool.price()).toString();
    /// Pool token reserve
    const reserves = await pool.getReserves();
  
    console.log(`${poolAddress} | ${token0} | ${token1} | ${swapFee} | ${price} | ${reserves._reserve0} | ${reserves._reserve1}`);
  }
}

Last updated