package tezos-protocol-014-PtKathma
Install
Dune Dependency
Authors
Maintainers
Sources
sha256=43723d096307603703a1a89ed1b2eb202b365f5e7824b96b0cbf813b343a6cf7
sha512=b2a637f2e965000d3d49ad85277ca24d6cb07a1a7cf2bc69d296d8b03ad78c3eaa8e21e94b9162e62c2e11649cd03bc845b2a3dafe623b91065df69d47dc8e4f
doc/tezos-protocol-014-PtKathma.raw/Tezos_raw_protocol_014_PtKathma/Ticket_scanner/index.html
Module Tezos_raw_protocol_014_PtKathma.Ticket_scanner
Source
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_014_PtKathma.Error_monad.tzresult
type_has_tickets ctxt ty
returns a has_tickets
witness of the given shape ty
.
val tickets_of_value :
Alpha_context.context ->
include_lazy:bool ->
allow_zero_amount_tickets:bool ->
'a has_tickets ->
'a ->
(ex_ticket list * Alpha_context.context)
Tezos_protocol_environment_014_PtKathma.Error_monad.tzresult
Tezos_protocol_environment_014_PtKathma.Lwt.t
tickets_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 ->
allow_zero_amount_tickets:bool ->
'a has_tickets ->
Alpha_context.Script.node ->
(ex_ticket list * Alpha_context.context)
Tezos_protocol_environment_014_PtKathma.Error_monad.tzresult
Tezos_protocol_environment_014_PtKathma.Lwt.t
tickets_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.