restructures computeInteresAndFeeParts

This commit is contained in:
Vito
2025-11-19 10:31:52 +01:00
parent d2c1506c21
commit 970acf1bb1

View File

@@ -170,8 +170,8 @@ loanPrincipalFromPeriodicPayment(
computePaymentFactor(periodicRate, paymentsRemaining);
}
/* Splits gross interest into net interest (to vault) and management fee (to broker).
* Returns pair of (net interest, management fee).
/* Splits gross interest into net interest (to vault) and management fee (to
* broker). Returns pair of (net interest, management fee).
*
* Equation (33) from XLS-66 spec, Section A-2 Equation Glossary
*/
@@ -185,6 +185,24 @@ computeInterestAndFeeParts(
return std::make_pair(interest - fee, fee);
}
/*
* Computes the interest and management fee parts from interest amount.
*
* Equation (33) from XLS-66 spec, Section A-2 Equation Glossary
*/
std::pair<Number, Number>
computeInterestAndFeeParts(
Asset const& asset,
Number const& interest,
TenthBips16 managementFeeRate,
std::int32_t loanScale)
{
auto const fee =
computeManagementFee(asset, interest, managementFeeRate, loanScale);
return std::make_pair(interest - fee, fee);
}
/* Calculates penalty interest accrued on overdue payments.
* Returns 0 if payment is not late.
*
@@ -639,24 +657,6 @@ doOverpayment(
return loanPaymentParts;
}
/*
* Computes the interest and management fee parts from interest amount.
*
* Equation (33) from XLS-66 spec, Section A-2 Equation Glossary
*/
std::pair<Number, Number>
computeInterestAndFeeParts(
Asset const& asset,
Number const& interest,
TenthBips16 managementFeeRate,
std::int32_t loanScale)
{
auto const fee =
computeManagementFee(asset, interest, managementFeeRate, loanScale);
return std::make_pair(interest - fee, fee);
}
/* Computes the payment components for a late payment.
*
* A late payment is made after the grace period has expired and includes: