Open
Milestone
started on Nov 3, 2023
Sponsored Operations
-
Review/adapt the design to ensure that it does not break protocol invariants -
Design approved and fitting application requirements -
Validation of sponsored operations @dianegalloiswong -
Sources and counters (days) !13138 (merged) -
Reveal position (hours) !13290 (merged) -
Guest operation kind (hours) -
Guest public key retrieval and empty guest batch (hours) -
Guest signature check gas (hours) -
Guest signature check (hours)
-
-
Application of sponsored operations (days) @dianegalloiswong -
Tests -
Validation KO @polubelova -
Source consistency !13092 (merged) -
Counters !13114 (merged) -
Reveal position !13115 -
Empty guest batch !13116 -
Forbidden guest operations !13117 -
Gas !13118 -
Invalid signatures !13119 -
Sponsor cannot pay fees !13120 -
1M !13121
-
-
Validation OK + application observables (days) @lrand -
Simple client command for tests (1 day) @polubelova -
Tezt (3 days) @polubelova -
using Operation_core
-
using client command
-
-
Update 1M PBT generators (days) @dianegalloiswong & @polubelova
-
-
Rename Host
toPay_fees_for
(hours) @dianegalloiswong -
Allow creation of guest account in same batch (1 day) @dianegalloiswong -
Refactor validation (1 day) @dianegalloiswong -
Share the API with the community to gather feedback on potential issues (days) -
Discuss feedback -
Documentation @dianegalloiswong -
in code for developers (1 day) -
for users (days)
-
Can be done after Q injection
-
Add/improve client command (week)
Protocol R
-
Enable feature flag -
Tool providers (wallets, indexers, etc.) support Sponsored Operations -
Demonstration of a Sponsored Operations application
Partially outdated
Goal: enable users to submit operations while having the fee paid by a sponsor.
- Owner: @linoscope, @jaiyalas, @RRUOISZ
- design doc slide
Deliverables
- Design doc with clear rationale and prototype
- E2E test with scenario matching the expected use case
- Features landed in the protocol that enables the sponsored operations for at least transaction and reveal
- An explanatory post as its tutorial
Expected usage
- Wallet asks the user to sign an operation or a batch of operations.
- The user signs the batched operation.
- The signed batched operation is sent to the sponsor.
- The sponsor
- checks it's content,
- additionally signs the batched operation if it looks good,
- then injects to L1.
- Wallet gets confirmation about the result.
Detailed Requirement
- [Must] Support sponsoring of batched operations.
- [Must] Support at least manager operations Transfer and Reveal.
- [Nice-to-have] Support manager operations Origination and Ticket_transfer.
- [Nice-to-have] Support sending tez within the sponsored transaction.
- [Future-work] Support expired time for sponsored operation
Known limitations and concerns
- Only the implicit account can be a sponsor.
- The sponsored operations cannot transfer tez without modifying the 1M restriction (TODO: link).
Work breakdown
-
add a feature flag for sponsored operations !11207 (merged) -
add Host operation !11209 (merged) -
add validation for host operation !11210 -
add code for hosted operations !11404 -
add tests for sponsored operations !11405