@tristeroresearch/mach-sdk
Version:
A TypeScript SDK for integrating with Mach's API.
30 lines (29 loc) • 1.11 kB
JavaScript
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;
}
}
};