@shogun-sdk/money-legos
Version:
Shogun Money Legos: clients and types for quotes, memes, prices, balances, fees, validations, etc.
26 lines • 1.22 kB
JavaScript
import { getFeeAmount } from './fee.js';
import { formatAffiliateData } from './fee.js';
import { getTransferTokenFeeCall } from './fee.js';
import { isNativeToken } from './address.js';
export function calculateAffiliateFeeAndUpdateAmountIn(config) {
const affiliateFeeAmount = getFeeAmount(Number(config.affiliateFee), BigInt(config.amount));
const updatedAmountIn = BigInt(config.amount) - affiliateFeeAmount;
const formattedAffiliateFeeData = formatAffiliateData({
feeAmount: affiliateFeeAmount,
feeToken: config.srcToken,
}, config);
return {
formattedAffiliateFeeData,
updatedAmountIn,
};
}
/**
* Adds first call that collects affiliate fee as native token
* @param bridgeCalls Bridge calls arrays that should be modified (mutated)
* @param config Trade config
* @param formattedAffiliateFeeData Formatted affiliate fee data
*/
export function collectAffiliateFeeBeforeSwap(bridgeCalls, config, formattedAffiliateFeeData) {
bridgeCalls.unshift(getTransferTokenFeeCall(BigInt(formattedAffiliateFeeData.affiliateFee.feeAmount), config.affiliateWallet, config.srcToken, isNativeToken(config.srcToken)));
}
//# sourceMappingURL=bridgeHelpers.js.map