Module Mavryk_raw_protocol_001_PtAtLas.Frozen_staker_repr

type t = private
  1. | Baker of Mavryk_protocol_environment_001_PtAtLas.Signature.public_key_hash
    (*

    The baker itself.

    *)
  2. | Single_staker of {
    1. staker : Contract_repr.t;
    2. delegate : Mavryk_protocol_environment_001_PtAtLas.Signature.public_key_hash;
    }
    (*

    A single staker, cannot be the delegate.

    *)
  3. | Shared_between_stakers of {
    1. delegate : Mavryk_protocol_environment_001_PtAtLas.Signature.public_key_hash;
    }
    (*

    The delegate's stakers simultaneously (delegate excluded).

    *)

Adding and removing stake can be done from/toward a delegate, one of its staker, or all its stakers at once. We need to distinguish these cases to enforce the staking over baking limit.

val compare : t -> t -> int