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_forgedintoallow_ticketsandallow_lazy_storage_id: #2964 (closed) !11090 (merged) - Introduce
Ticketconstructor in Michelson #6643 (closed)-
Add new Ticketconstructor: !11599 (merged) !11602 (merged) -
Switch unparsing mode to Optimized_legacyfor rollups: !12030 (merged) -
Unparsing D_Ticketconstructor: !11619 (merged) - Fix the
Ticketdata encoding used inside kernel SDK-
Add MichelsonTickettype 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
stringrepresentation of tz1 address instead ofbytes#6756 (closed) - see %Ticket UX Improvement followups for more follow-ups