Check if the liquidity pool for a pair of HTS tokens exists on-chain
When adding a new or existing liquidity pool, the initial step is typically to verify if the liquidity pool already exists before determining the next course of action. The factory contract provides a method to retrieve the pool address, if it exists, as shown below.
Checking if the liquidity pool exists using SaucerSwapโs REST API is also a suitable alternative. For more information, see Get V1 liquidity pools
โฝ No gas costGet the existing liquidity poolโs CREATE2 EVM address if it exists. If the pool does not exist on-chain, a zero address will be returned.Function name: getPair
import * as ethers from 'ethers'; //V6//Set one of Hedera's JSON RPC Relay as the providerconst provider = new ethers.JsonRpcProvider(hederaJsonRelayUrl, '', { batchMaxCount: 1, //workaround for V6});//load ABI data containing the Factory's getPair functionconst interfaces = new ethers.Interface(abi);const factoryContract = new ethers.Contract(factoryEvmAddress, interfaces.fragments, provider);const result = await factoryContract.getPair(tokenA, tokenB); //(tokenB, tokenA) will give same resultconst poolEvmAddress = result; //address pool