Module V.T

module Schnorr : sig ... end
module Merkle : sig ... end
module Bounded_u : sig ... end
type curve_t_u = (L.scalar * L.scalar) L.repr
type curve_base_t_u = L.scalar L.repr
type curve_scalar_t_u = L.scalar L.repr
type !'a ticket_u = {
  1. id : L.scalar L.repr;
  2. amount : 'a Bounded_u.t;
}
type mavryk_pkh_u = L.scalar L.repr
type mavryk_zkru_u = L.scalar L.repr
type account_u = {
  1. pk : Schnorr.pk L.repr;
  2. tez_balance : Constants.balance Bounded_u.t;
  3. cnt : Constants.counter Bounded_u.t;
  4. tickets_root : L.scalar L.repr;
}
type proof_u = {
  1. path : Merkle.path;
  2. root : L.scalar L.repr;
}
type account_tree_el_u = {
  1. before : account_u;
  2. after : account_u;
  3. proof : proof_u;
}
type leaf_tree_el_u = {
  1. before : leaf_u;
  2. after : leaf_u;
  3. path : Merkle.path;
}
type tree_el_u = {
  1. account : account_tree_el_u;
  2. leaf : leaf_tree_el_u;
}
type header_u = {
  1. op_code : Constants.op_code Bounded_u.t;
  2. price : Constants.balance ticket_u;
  3. l1_dst : mavryk_pkh_u;
  4. rollup_id : mavryk_zkru_u;
}
type transfer_payload_u = {
  1. msg : unsigned_transfer_payload_u;
  2. signature : Schnorr.signature;
}
type transfer_u = {
  1. header : header_u;
  2. payload : transfer_payload_u;
}
type transfer_storage_u = {
  1. src : tree_el_u;
  2. dst : tree_el_u;
  3. valid : bool L.repr;
}
type unsigned_create_payload_u = {
  1. pk : Schnorr.pk L.repr;
  2. fee : Constants.fee Bounded_u.t;
}
type create_payload_u = {
  1. msg : unsigned_create_payload_u;
  2. signature : Schnorr.signature;
}
type create_u = {
  1. header : header_u;
  2. payload : create_payload_u;
}
type create_storage_u = {
  1. dst : tree_el_u;
  2. next_empty : tree_el_u;
  3. valid : bool L.repr;
}
type credit_u = {
  1. header : header_u;
  2. payload : credit_payload_u;
}
type credit_storage_u = {
  1. dst : tree_el_u;
  2. valid : bool L.repr;
}
type unsigned_debit_payload_u = {
  1. cnt : Constants.counter Bounded_u.t;
  2. src : Constants.position Bounded_u.t;
  3. amount : Constants.amount ticket_u;
}
type debit_payload_u = {
  1. msg : unsigned_debit_payload_u;
  2. signature : Schnorr.signature;
}
type debit_u = {
  1. header : header_u;
  2. payload : debit_payload_u;
}
type debit_storage_u = {
  1. src : tree_el_u;
  2. valid : bool L.repr;
}