Module Mavryk_raw_protocol_001_PtAtLas.Ticket_storage

type Mavryk_protocol_environment_001_PtAtLas.Error_monad.error +=
  1. | Negative_ticket_balance of {
    1. key : Ticket_hash_repr.t;
    2. balance : Mavryk_protocol_environment_001_PtAtLas.Z.t;
    }
  2. | Used_storage_space_underflow

get_balance ctxt key receives the ticket balance for the given key in the context ctxt. The key represents a ticket content and a ticket creator pair. In case there exists no value for the given key, None is returned.

adjust_balance ctxt key ~delta adjusts the balance of the given key (representing a ticket content, creator and owner pair) and delta. The value of delta can be positive as well as negative. If there is no pre-exising balance for the given ticket type and owner, it is assumed to be 0 and the new balance is delta. The function also returns the difference between the old and the new size of the storage. Note that the difference may be negative. For example, because when setting the balance to zero, an entry is removed.

The function fails with a Negative_ticket_balance error in case the resulting balance is negative.

adjust_storage_space ctxt ~storage_diff updates the used storage space for the ticket-table according to storage_diff. The additional positive amount of unpaid storage is returned. If no unpaid storage is consumed, this amount is 0.

Note that when storage space for the ticket table is released we may later use that space for free. For this reason, the amount returned may be less than the given (positive) storage_diff.

module Internal_for_tests : sig ... end