Module Game.V1

type dissection_chunk = {
  1. state_hash : State_hash.t option;
  2. tick : Z.t;
}
type step =
  1. | Dissection of dissection_chunk list
  2. | Proof of string
type refutation =
  1. | Start of {
    1. player_commitment_hash : Mavkit_smart_rollup.Commitment.Hash.t;
    2. opponent_commitment_hash : Mavkit_smart_rollup.Commitment.Hash.t;
    }
  2. | Move of {
    1. choice : Z.t;
    2. step : step;
    }
val dissection_chunk_encoding : dissection_chunk Mavryk_base.TzPervasives.Data_encoding.t
val dissection_encoding : dissection_chunk list Mavryk_base.TzPervasives.Data_encoding.t
val step_encoding : step Mavryk_base.TzPervasives.Data_encoding.t
val refutation_encoding : refutation Mavryk_base.TzPervasives.Data_encoding.t
val index_encoding : index Mavryk_base.TzPervasives.Data_encoding.t
type player =
  1. | Alice
  2. | Bob
type game_state =
  1. | Dissecting of {
    1. dissection : dissection_chunk list;
    2. default_number_of_sections : int;
    }
  2. | Final_move of {
    1. agreed_start_chunk : dissection_chunk;
    2. refuted_stop_chunk : dissection_chunk;
    }
type t = {
  1. turn : player;
  2. inbox_snapshot : Inbox.V1.history_proof;
  3. dal_snapshot : Dal.Slot_history.t;
  4. start_level : int32;
  5. inbox_level : int32;
  6. game_state : game_state;
}
type conflict = {
  1. other : Mavryk_crypto.Signature.Public_key_hash.t;
  2. their_commitment : Commitment.t;
  3. our_commitment : Commitment.t;
  4. parent_commitment : Mavkit_smart_rollup.Commitment.Hash.t;
}
val game_state_equal : game_state -> game_state -> bool
val player_encoding : player Mavryk_base.TzPervasives.Data_encoding.t
val game_state_encoding : game_state Mavryk_base.TzPervasives.Data_encoding.t
val encoding : t Mavryk_base.TzPervasives.Data_encoding.t
val conflict_encoding : conflict Mavryk_base.TzPervasives.Data_encoding.t