Tickets
Tezos has so-called tickets, which are authenticated quantities issued by contracts. A ticket of type sp.ticket[t]
has three elements:
A source, indicating the contract that issued the ticket.
A value of type
t
.A quantity of type
sp.nat
.
- sp.ticket(content: t, quantity: sp.nat) → sp.ticket[t]
Create a ticket with the given content and quantity. The ticket source is the address of
sp.self_address
.
- sp.read_ticket(ticket: sp.ticket[t]) → sp.pair[sp.tuple[sp.address, t, sp.nat], sp.ticket[t]]
Reads the contents of a ticket. Returns a pair of:
The ticket data, itself a triple of the ticket's source, value, and quantity.
A copy of the original ticket that can still be used.
Note that mentioning a ticket consumes it, i.e. the argument to
sp.read_ticket
cannot be used again. Instead the returned copy can still be used.
- sp.join_tickets(sp.pair[sp.ticket[t], sp.ticket[t]]) → sp.option[sp.ticket[t]]
Makes two tickets into one by adding up their quantities. Returns
None
if the tickets differ in their source or value.
- sp.split_ticket(ticket: sp.ticket[t], amounts: sp.pair[sp.nat, sp.nat]) → sp.option[sp.pair[sp.ticket[t], sp.ticket[t]]]
Splits a ticket into two parts.
sp.split_ticket(ticket, (amount1, amount2))
returns two tickets with the specified amounts.None
is returned ifamount1 + amount2
is not equal toticket
's amount.