fee calculation

This commit is contained in:
Kirill Litvinov
2023-08-01 16:19:52 +03:00
parent b32957f528
commit 7eebb2bb9e
7 changed files with 34 additions and 20 deletions

View File

@@ -5,23 +5,32 @@ import calculateServiceFeeInFeeAsset from './calculateServiceFeeInFeeAsset.js';
const calculateFeeInFeeAsset = (
amount: BigNumber.Value,
feeAssetPriceInServiceToken: BigNumber.Value,
baseAssetPriceInServiceToken: BigNumber.Value,
baseCurrencyPriceInServiceToken: BigNumber.Value,
feeAssetPrice: BigNumber.Value,
baseAssetPrice: BigNumber.Value,
baseCurrencyPrice: BigNumber.Value,
gasPriceGwei: BigNumber.Value,
feePercent: BigNumber.Value,
feeAsset: string,
assetPrices: Partial<Record<string, string>>,
) => {
const feeAssetPriceInQuoteAsset = assetPrices[feeAsset];
if (feeAssetPriceInQuoteAsset === undefined) throw Error('feeAssetPriceInQuoteAsset is undefined');
const feeAssetPriceInQuoteAssetBN = new BigNumber(feeAssetPriceInQuoteAsset);
const serviceFeeInFeeAsset = calculateServiceFeeInFeeAsset(
amount,
feeAssetPriceInServiceToken,
baseAssetPriceInServiceToken,
feeAssetPrice,
baseAssetPrice,
feePercent,
feeAssetPriceInQuoteAssetBN
);
const networkFeeInFeeAsset = calculateNetworkFeeInFeeAsset(
gasPriceGwei,
FILL_ORDERS_GAS_LIMIT,
baseCurrencyPriceInServiceToken,
feeAssetPriceInServiceToken,
baseCurrencyPrice,
feeAssetPrice,
feeAssetPriceInQuoteAssetBN
);
return {