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 .
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).
⛽ No gas cost
Resources:
import * as ethers from 'ethers'; //V6
//Set one of Hedera's JSON RPC Relay as the provider
const provider = new ethers.JsonRpcProvider(hederaJsonRelayUrl, '', {
batchMaxCount: 1, //workaround for V6
});
//load ABI data containing Factory's pairCreateFee function
const interfaces = new ethers.Interface(abi);
//get pool creation fee in tinycent
const 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 API
const 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 HBAR
const tinybar = BigNumber(tinycent / centToHbarRatio).decimalPlaces(0);
const poolCreateFeeInHbar = Hbar.from(tinybar, HbarUnit.Tinybar);
console.log(`Pool creation fee: ${poolCreateFeeInHbar.toString(HbarUnit.Hbar)}`);