Files
orionprotocol-sdk/src/utils/calculateFeeInFeeAsset.ts
2023-05-18 22:33:20 +04:00

37 lines
1.1 KiB
TypeScript

import { BigNumber } from 'bignumber.js';
import { FILL_ORDERS_GAS_LIMIT } from '../constants/index.js';
import calculateNetworkFeeInFeeAsset from './calculateNetworkFeeInFeeAsset.js';
import calculateServiceFeeInFeeAsset from './calculateServiceFeeInFeeAsset.js';
const calculateFeeInFeeAsset = (
amount: BigNumber.Value,
feeAssetPriceInServiceToken: BigNumber.Value,
baseAssetPriceInServiceToken: BigNumber.Value,
baseCurrencyPriceInServiceToken: BigNumber.Value,
gasPriceGwei: BigNumber.Value,
feePercent: BigNumber.Value,
) => {
const serviceFeeInFeeAsset = calculateServiceFeeInFeeAsset(
amount,
feeAssetPriceInServiceToken,
baseAssetPriceInServiceToken,
feePercent,
);
const networkFeeInFeeAsset = calculateNetworkFeeInFeeAsset(
gasPriceGwei,
FILL_ORDERS_GAS_LIMIT,
baseCurrencyPriceInServiceToken,
feeAssetPriceInServiceToken,
);
return {
serviceFeeInFeeAsset,
networkFeeInFeeAsset,
totalFeeInFeeAsset: new BigNumber(serviceFeeInFeeAsset)
.plus(networkFeeInFeeAsset)
.toString(),
};
};
export default calculateFeeInFeeAsset;