expiryFeeMultiplier function

BigInt expiryFeeMultiplier(
  1. FeePolicy policy,
  2. BigInt timeToExpiryMs
)

strike_exposure_config::expiry_fee_multiplier — 1.0 outside the window, rising linearly to expiry_fee_max_multiplier at expiry.

Implementation

BigInt expiryFeeMultiplier(FeePolicy policy, BigInt timeToExpiryMs) {
  _assertFeePolicy(policy);
  _assertUint(timeToExpiryMs, 'timeToExpiryMs');
  if (timeToExpiryMs >= policy.expiryFeeWindowMs) return FLOAT_SCALING;
  return FLOAT_SCALING +
      _mulDivDown(
        policy.expiryFeeMaxMultiplier - FLOAT_SCALING,
        policy.expiryFeeWindowMs - timeToExpiryMs,
        policy.expiryFeeWindowMs,
      );
}