class Sorare::Rewards::Supply::ComputeForQuality

ComputeForQuality computes the rewardable supply for a given quality between the divisions of a league

Public Instance Methods

call() click to toggle source
# File lib/sorare/rewards/interactors/supply/compute_for_quality.rb, line 14
def call
  context.quality_supply = total_supply.zero? ? 0 : quality_supply
end
quality_supply() click to toggle source
# File lib/sorare/rewards/interactors/supply/compute_for_quality.rb, line 18
def quality_supply
  plain, extra = (tier_supply.to_f * rewardable).divmod(total_supply)

  plain + remaining_supply(plain, extra)
end
remaining_supply(plain, extra) click to toggle source
# File lib/sorare/rewards/interactors/supply/compute_for_quality.rb, line 24
def remaining_supply(plain, extra)
  reward_probability = randomizer.rand
  return 0 if rewarded.sum + plain >= rewardable
  return 0 if extra.zero?
  return 0 if reward_probability > (extra.to_f / total_supply)

  1
end