package tezos-protocol-017-PtNairob

  1. Overview
  2. Docs
Legend:
Library
Module
Module type
Parameter
Class
Class type

Options available for the Liquidity Baking per-block vote

type liquidity_baking_toggle_vote =
  1. | LB_on
  2. | LB_off
  3. | LB_pass

Exponential moving average of toggle votes. Represented as an int32 between 0 and 2,000,000. It is an exponential moving average of the LB_off votes over a window of the most recent 2000 blocks that did not vote LB_pass.

module Toggle_EMA : sig ... end
val compute_new_ema : toggle_vote:liquidity_baking_toggle_vote -> Toggle_EMA.t -> Toggle_EMA.t

compute_new_ema ~toggle_vote old_ema returns the value new_ema of the exponential moving average old_ema updated by the vote toggle_vote.

It is updated as follows:

  • if toggle_vote is LB_pass then new_ema = old_ema,
  • if toggle_vote is LB_off, then new_ema = (1999 * eman // 2000) + 1,000,000,
  • if toggle_vote is LB_on, then new_ema = (1999 * eman // 2000).

The multiplication is performed in Z.t to avoid overflows, division is rounded toward 1,000,000,000 (the middle of the interval).

OCaml

Innovation. Community. Security.