Module Mavryk_raw_protocol_alpha.Zk_rollup_operation_repr

The price of an L2 operation represents the net ticket transfer from L1 to L2 that it will produce. id is a ticket hash used as a ticket identifier and amount is positive if the operation transfers tickets from L1 to L2, negative if it does so from L2 to L1, and zero when no transfer is done between layers.

type t = {
  1. op_code : int;
  2. price : price;
  3. l1_dst : Mavryk_protocol_environment_alpha.Signature.Public_key_hash.t;
  4. rollup_id : Zk_rollup_repr.t;
  5. payload : Zk_rollup_scalar.t array;
}

A ZK rollup L2 operation has two parts: a transparent header and an opaque payload. The header is made up by:

  • An op_code in the range [0, nb_ops)
  • The price of this L2 operation
  • l1_dst is the public key hash of the implicit account that will be credited with the withdrawal generated by this operation, if any
  • rollup_id is the address of the rollup this operation targets

This type represents the L1's view of L2 operations. It's important to remember that this is only used for public operations, as the protocol isn't aware of private ones.

val to_scalar_array : t -> Zk_rollup_scalar.t array

Special encoding needed to feed L2 operations to the Plonk verifier