Mavryk_raw_protocol_alpha.Ticket_transfer
val parse_ticket :
consume_deserialization_gas:Alpha_context.Script.consume_deserialization_gas ->
ticketer:Alpha_context.Contract.t ->
contents:Alpha_context.Script.lazy_expr ->
ty:Alpha_context.Script.lazy_expr ->
Alpha_context.context ->
(Alpha_context.context * Ticket_token.ex_token,
Mavryk_protocol_environment_alpha.Error_monad.error
Mavryk_protocol_environment_alpha.Error_monad.trace)
Mavryk_protocol_environment_alpha.Pervasives.result
Mavryk_protocol_environment_alpha.Lwt.t
parse_ticket ~ticketer ~contents ~ty
ctxt
reconstructs a ticket from individual parts submitted as part of a layer-1 operation.
val parse_ticket_and_operation :
consume_deserialization_gas:Alpha_context.Script.consume_deserialization_gas ->
ticketer:Alpha_context.Contract.t ->
contents:Alpha_context.Script.lazy_expr ->
ty:Alpha_context.Script.lazy_expr ->
sender:Alpha_context.Destination.t ->
destination:Contract_hash.t ->
entrypoint:Alpha_context.Entrypoint.t ->
amount:Script_typed_ir.ticket_amount ->
Alpha_context.context ->
(Alpha_context.context
* Ticket_token.ex_token
* Script_typed_ir.packed_internal_operation)
Mavryk_protocol_environment_alpha.Error_monad.tzresult
Mavryk_protocol_environment_alpha.Lwt.t
Same as parse_ticket
, but in addition, build a transaction to let sender
transfers amount
units of said ticket to destination
.
val transfer_ticket_with_hashes :
Alpha_context.context ->
sender_hash:Alpha_context.Ticket_hash.t ->
dst_hash:Alpha_context.Ticket_hash.t ->
Ticket_amount.t ->
(Alpha_context.context * Mavryk_protocol_environment_alpha.Z.t)
Mavryk_protocol_environment_alpha.Error_monad.tzresult
Mavryk_protocol_environment_alpha.Lwt.t
transfer_ticket_with_hashes ctxt ~sender_hash ~dst_hash qty
updates the table of tickets moves qty
units of a given ticket from a sender to a destination, as encoded by sender_hash
and dst_hash
.
Consistency between sender_hash
and dst_hash
is the responsibility of the caller. Whenever possible, transfer_ticket
should be preferred, but transfer_ticket_with_hashes
could be preferred to reduce gas comsumption (e.g., to reuse hashes already computed).
In addition to an updated context, this function returns the number of bytes that were newly allocated for the table of tickets.
val transfer_ticket :
Alpha_context.context ->
sender:Alpha_context.Destination.t ->
dst:Alpha_context.Destination.t ->
Ticket_token.ex_token ->
Ticket_amount.t ->
(Alpha_context.context * Mavryk_protocol_environment_alpha.Z.t,
Mavryk_protocol_environment_alpha.Error_monad.error
Mavryk_protocol_environment_alpha.Error_monad.trace)
Mavryk_protocol_environment_alpha.Pervasives.result
Mavryk_protocol_environment_alpha.Lwt.t
transfer_ticket ctxt ~sender ~dst ex_token qty
updates the table of tickets moves qty
units of ex_token
from sender
to dst
, as encoded by sender_hash
and dst_hash
.
In addition to an updated context, this function returns the number of bytes that were newly allocated for the table of tickets.
val transfer_tickets_in_parameters :
Alpha_context.context ->
'a ->
('a, 'b) Script_typed_ir.ty ->
source:Alpha_context.Destination.t ->
dst:Alpha_context.Destination.t ->
(Alpha_context.context
* Ticket_receipt.t
* Mavryk_protocol_environment_alpha.Z.t,
Mavryk_protocol_environment_alpha.Error_monad.error
Mavryk_protocol_environment_alpha.Error_monad.trace)
Mavryk_protocol_environment_alpha.Pervasives.result
Mavryk_protocol_environment_alpha.Lwt.t
transfer_tickets_in_parameters ctxt param param_ty ~source ~dst
Scans the param
for tickets and transfers ownership of those tickets from source
to dst
by updating the ticket table. The function returns the updated context, the ticket receipt, and the number of newly allocated bytes for the ticket table.