Direct ticket transfer from implicit to originated
Context
Currently, our ticket transfer process relies on the Transfer_ticket
manager operation, which accepts only a single ticket as its argument. This is problematic in scenarios where we need to include additional data along with the ticket. For instance, when we are sending tickets to an L2 proxy contract, we would want to include information like the L2 address to which we are depositing, in addition to the tickets.
Moreover, from an engineering standpoint, it's unfortunate that we depend on a specific manager operation (Transfer_ticket
) for ticket transfers, even in cases where we can achive the same result by leveraging the more general Transaction
manager operation.
In this milestone, we will enable implicit accounts to "directly" send tickets to originated together with additional data by using the Transaction
operation.
Addresses first item from Michael Zaikin's proposal: https://hackmd.io/@m-kus/BJsQS4kJT
Tasks
-
Send tickets for implicit->originated directly via [Transaction] (behind feature flag): #2924 (closed) !10919 (merged) -
Split allow_forged
intoallow_tickets
andallow_lazy_storage_id
: #2964 (closed) !11090 (merged) - Introduce
Ticket
constructor in Michelson #6643 (closed)-
Add new Ticket
constructor: !11599 (merged) !11602 (merged) -
Switch unparsing mode to Optimized_legacy
for rollups: !12030 (merged) -
Unparsing D_Ticket
constructor: !11619 (merged) - Fix the
Ticket
data encoding used inside kernel SDK-
Add MichelsonTicket
type in Kernel SDK: #6795 (closed) !11588 (merged)
-
-
Put pair representation of tickets under legacy flag: #6833 (closed) !11620 (merged) -
Switch back from Optimized instead of Optimized_legacy: !12048 (merged)
-
- Enable feature flag
Backlog
- Tezt: Use
string
representation of tz1 address instead ofbytes
#6756 (closed) - see %Ticket UX Improvement followups for more follow-ups