Fetch the pool creation fee from the Factory contract
The following code demonstrates how to accurately the current pool creation fee in HBAR using a combination of JSON RPC and REST API. The pool creation fee is used when creating a new liquidity pool.
The current fee for creating V1 liquidity pools is $50 USD, paid in HBAR. The exchange rate information is used to accurately determine the equivalent value in HBAR.
The pairCreateFee() function will return the current fee expressed in Tinycent (US).
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 Factory's pairCreateFee functionconst interfaces = new ethers.Interface(abi);//get pool creation fee in tinycentconst factoryContract = new ethers.Contract(factoryEvmAddress, interfaces.fragments, provider);const result = await factoryContract.pairCreateFee();const tinycent = Number(result); //amount in tinycent (US)//get the current exchange rate via REST APIconst url = `${mirrorNodeBaseUrl}/api/v1/network/exchangerate`;const response = await axios.get(url);const currentRate = response.data.current_rate;const centEquivalent = Number(currentRate.cent_equivalent);const hbarEquivalent = Number(currentRate.hbar_equivalent);const centToHbarRatio = centEquivalent/hbarEquivalent;//calculate the fee in terms of HBARconst tinybar = BigNumber(tinycent / centToHbarRatio).decimalPlaces(0);const poolCreateFeeInHbar = Hbar.from(tinybar, HbarUnit.Tinybar);console.log(`Pool creation fee: ${poolCreateFeeInHbar.toString(HbarUnit.Hbar)}`);