UNPKG

@tristeroresearch/mach-sdk

Version:

A TypeScript SDK for integrating with Mach's API.

30 lines (29 loc) 1.11 kB
import { getMachGasRecommendation } from '../api'; import { config } from '../config'; import { ErrorMessage } from '../errors/constants'; export const getGasForTransaction = async (chainName, gasData) => { const _config = await config; if (_config.getGasRecommendationOverride()) { if (!gasData) { return { gas_limit: _config.getGasLimit(), gas_price: _config.getGasFee(), priority_fee: _config.getPriorityFee(), }; } return gasData; } else { const recommendedGas = await getMachGasRecommendation(chainName); if (!recommendedGas) throw new Error(ErrorMessage.FailedToFetchGasRecommendation); else { const gasForTransaction = { gas_limit: BigInt(recommendedGas.gas_estimate) * _config.getGasLimitMultiplier(), gas_price: BigInt(recommendedGas.gas_price) * _config.getGasFeeMultiplier(), priority_fee: BigInt(_config.getPriorityFee()), }; return gasForTransaction; } } };