package tezos-protocol-015-PtLimaPt
Install
    
    dune-project
 Dependency
Authors
Maintainers
Sources
sha256=ad9e08819871c75ba6f4530b125f7d157799398e4d77a1e6bfea9d91ff37ff55
    
    
  sha512=c5dc4d40cc09bc6980fbbdb5c2e105bf4252cf9cfcb2b49660b0ebe4dc789f6709ec3b3bf2f87d81580d3eed9521eeb1c960f24d9b14eb0285aaba1f84d10a9b
    
    
  doc/tezos-protocol-015-PtLimaPt.raw/Tezos_raw_protocol_015_PtLimaPt/Ticket_scanner/index.html
Module Tezos_raw_protocol_015_PtLimaPt.Ticket_scannerSource
This module provides an API for extracting tickets of arbitrary types from an OCaml values, given a type-witness.
type ex_ticket = | Ex_ticket : 'a Script_typed_ir.comparable_ty * 'a Script_typed_ir.ticket -> ex_ticket
A type for representing existentially quantified tickets (tickets with different types of payloads). An ex_ticket value consists of:
- A type-witness representing the type of the content of the ticket.
 - A ticket value of the particular content type.
 
A type-witness that contains information about which branches of a type 'a include tickets. This value is used for traversing only the relevant branches of values when scanning for tickets.
val type_has_tickets : 
  Alpha_context.context ->
  ('a, _) Script_typed_ir.ty ->
  ('a has_tickets * Alpha_context.context)
    Tezos_protocol_environment_015_PtLimaPt.Error_monad.tzresulttype_has_tickets ctxt ty returns a has_tickets witness of the given shape ty.
val tickets_of_value : 
  Alpha_context.context ->
  include_lazy:bool ->
  'a has_tickets ->
  'a ->
  (ex_ticket list * Alpha_context.context)
    Tezos_protocol_environment_015_PtLimaPt.Error_monad.tzresult
    Tezos_protocol_environment_015_PtLimaPt.Lwt.ttickets_of_value ctxt ~include_lazy ht value extracts all tickets from the given value, using the type-witness ht. The include_lazy flag determines whether or not to traverse lazy structures (values from the context). In case the include_lazy flag is true, any big-map contained in the value must have an empty overlay or else an error of type Unsupported_non_empty_overlay is returned. The reason for this restriction is that we assume that all lazy big-map diffs should be applied before calling this function. Dealing with non-empty overlays would be possible in theory, but practically difficult. The challenge is to distinguish between overlapping keys between the context and the overlay.
val tickets_of_node : 
  Alpha_context.context ->
  include_lazy:bool ->
  'a has_tickets ->
  Alpha_context.Script.node ->
  (ex_ticket list * Alpha_context.context)
    Tezos_protocol_environment_015_PtLimaPt.Error_monad.tzresult
    Tezos_protocol_environment_015_PtLimaPt.Lwt.ttickets_of_node ctxt ~include_lazy ht node extracts all tickets from the given node, using the type-witness ht.If ht indicates that values of the corresponding type may not contain tickets, the node value is not parsed. The include_lazy flag determines whether or not to traverse lazy structures (values from the context). In case the include_lazy flag is true, any big-map contained in the value must have an empty overlay or else an error of type Unsupported_non_empty_overlay is returned. The reason for this restriction is that we assume that all lazy big-map diffs should be applied before calling this function. Dealing with non-empty overlays would be possible in theory, but practically difficult. The challenge is to distinguish between overlapping keys between the context and the overlay.
has_tickets ht returns whether or not the type of the given has_tickets witness ht has tickets.
val ex_ticket_size : 
  Alpha_context.context ->
  ex_ticket ->
  (int * Alpha_context.context)
    Tezos_protocol_environment_015_PtLimaPt.Error_monad.tzresult
    Tezos_protocol_environment_015_PtLimaPt.Lwt.tex_ticket_size ctxt ex_ticket returns the size of the in-memory representation of ex_ticket in bytes.