bernoulliFeeRate function

BigInt bernoulliFeeRate(
  1. BigInt baseFee,
  2. BigInt probability
)

strike_exposure_config::raw_bernoulli_fee_rate — base_fee · sqrt(p·(1−p)), the fee rate before the min_fee floor and the expiry ramp. Zero at the certain ends.

Implementation

BigInt bernoulliFeeRate(BigInt baseFee, BigInt probability) {
  _assertUint(baseFee, 'baseFee', maximum: FLOAT_SCALING);
  _assertUint(probability, 'probability (EInvalidFeeProbability)',
      maximum: FLOAT_SCALING);
  if (probability == BigInt.zero || probability == FLOAT_SCALING) {
    return BigInt.zero;
  }
  return _mulDown(
      baseFee, sqrtDown(_mulDown(probability, FLOAT_SCALING - probability)));
}