Module Mavryk_raw_protocol_alpha.Stake_repr

type t = private {
  1. frozen : Tez_repr.t;
  2. weighted_delegated : Tez_repr.t;
}

Stake of a delegate.

It has the invariants enforced by Stake_context.apply_limits: frozen excludes any overstaked tez, and weighted_delegated includes overstaked tez but excludes overdelegated tez.

val zero : t
val make : frozen:Tez_repr.t -> weighted_delegated:Tez_repr.t -> t

Builds a t. Should only be called in Stake_context.apply_limits to enforce the invariants.

val get_frozen : t -> Tez_repr.t

Returns only the frozen part of a stake. This includes the frozen balances from the delegate and any stakers, but excludes any overstaked tez.

val staking_weight : t -> int64

The weight of a staker or a set of stakers. Since this function is applied on a Stake_repr.t, the limits should already have been applied using apply_limits if necessary.

val compare : t -> t -> int
val has_minimal_stake_to_participate : minimal_stake:Tez_repr.t -> t -> bool