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], 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 if amount1 + amount2
is not equal to ticket
's amount.