Module Mina_state.Protocol_state

include Protocol_state_intf.Full with type ('state_hash, 'blockchain_state, 'consensus_state, 'constants) Body.Poly.Stable.V1.t = ( 'state_hash, 'blockchain_state, 'consensus_state, 'constants ) Mina_wire_types.Mina_state.Protocol_state.Body.Poly.V1.t and type Body.Value.Stable.V2.t = Mina_wire_types.Mina_state.Protocol_state.Body.Value.V2.t and type ('state_hash, 'body) Poly.Stable.V1.t = ( 'state_hash, 'body ) Mina_wire_types.Mina_state.Protocol_state.Poly.V1.t and type Value.Stable.V2.t = Mina_wire_types.Mina_state.Protocol_state.Value.V2.t
module Poly : sig ... end
val hashes_abstract : hash_body:( 'body -> Mina_base.State_body_hash.t ) -> ( Mina_base.State_hash.t, 'body ) Poly.t -> Mina_base.State_hash.State_hashes.t
module Body : sig ... end
module Value : sig ... end
type value = Value.t
val value_to_yojson : value -> Yojson.Safe.t
val value_of_yojson : Yojson.Safe.t -> value Ppx_deriving_yojson_runtime.error_or
val sexp_of_value : value -> Ppx_sexp_conv_lib.Sexp.t
val value_of_sexp : Ppx_sexp_conv_lib.Sexp.t -> value
val create : previous_state_hash:'a -> body:'b -> ( 'a, 'b ) Poly.t
val create_value : previous_state_hash:Mina_base.State_hash.t -> genesis_state_hash:Mina_base.State_hash.t -> blockchain_state:Blockchain_state.Value.t -> consensus_state:Consensus.Data.Consensus_state.Value.t -> constants:Mina_base.Protocol_constants_checked.Value.t -> Value.t
val create_var : previous_state_hash:Mina_base.State_hash.var -> genesis_state_hash:Mina_base.State_hash.var -> blockchain_state:Blockchain_state.var -> consensus_state:Consensus.Data.Consensus_state.var -> constants:Mina_base.Protocol_constants_checked.var -> var
val previous_state_hash : ( 'a, _ ) Poly.t -> 'a
val body : ( _, 'a ) Poly.t -> 'a
val blockchain_state : ( _, ( _, 'a, _, _ ) Body.t ) Poly.t -> 'a
val genesis_state_hash : ?state_hash:Mina_base.State_hash.t option -> Value.t -> Mina_base.State_hash.t
val genesis_state_hash_checked : state_hash:Mina_base.State_hash.var -> var -> Mina_base.State_hash.var Snark_params.Tick.Checked.t
val consensus_state : ( _, ( _, _, 'a, _ ) Body.t ) Poly.t -> 'a
val constants : ( _, ( _, _, _, 'a ) Body.t ) Poly.t -> 'a
val negative_one : genesis_ledger:Mina_ledger.Ledger.t Core_kernel.Lazy.t -> genesis_epoch_data:Consensus.Genesis_epoch_data.t -> constraint_constants:Genesis_constants.Constraint_constants.t -> consensus_constants:Consensus.Constants.t -> genesis_body_reference:Consensus.Body_reference.t -> Value.t

Same as hash, but accept the body_hash directly to avoid re-computing it.