-
Notifications
You must be signed in to change notification settings - Fork 275
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Intent accumulator for forwarding multiple actions at once #363
Comments
Capturing @bpierre thoughts that a good place for the 'shopping cart' to live would be in the notifications/transaction queue view. The bundled pending transactions could show up with a different state there, and a button to execute them which would make the signer pop up. |
I like this, but we need to be careful about its UX. @jounih can you give it some thought? What I want to avoid is having users asking themselves when to perform the transaction. Should I add two more items? Which actions can I add and which not? When should I bundle them? Users don't know any of the technicalities of atomicly executing transactions, so we need to be careful about that |
Use cases right now: voting in the Voting app and upgrades in the App Center. |
Bumping an old but awesome issue! Wondering if another use case for this would be for organizations which have non-transferrable assets handling minting a new token and burning an existing token to effectively switch balances between accounts atomically? |
Another use case yet! Installing apps and assigning permissions to them. Do you know if EVMscripts can return parameters? That would be needed for getting the app address and pass it as parameter to the next function in the EVMscript. |
No; this is specifically the problem that has made this very hard for us to design app installation :). |
Thanks to EVMScripts, forwarders support performing more than one action at the same time. Rather than creating two separate votes to perform two actions that require a vote passing, these two actions can be bundled into a single proposal that can be voted on. This also has the advantage that the bundled actions are performed atomically and one after the other, meaning that the side-effects of actions become effective at the same time.
My idea of how this would work is when we present the signing panel telling the user how the transaction can be executed, we would add a button to defer signing the transaction and add the intent to a transaction 'shopping cart' or accumulator. I'm unsure whether this accumulator would need a view of its own (maybe accessible from the header in the navbar to the right of the Aragon logo) or would be good enough to just interact with it from the signing panel. Actions from different apps could be accumulated.
When the user finishes selecting all the actions that they wish to perform at the same time through a forwarder, we should give the chance to change the order in which they will be executed or even remove some previously added intents. One the user decides to move forward, we would then try to find all the possible forwarders with permission to perform all the selected actions, and then prompt the user to sign.
Some immediate uses for this:
This will require adding support for multi-intent transaction pathing in aragon.js and making sure that the Voting app provides correct descriptions for votes executing multiple actions. Given the amount of complexity, it is unclear whether we would be able to have this before launch, but I think it would be beneficial to start designing and thinking about how the interaction will work.
Please let me know if the explanation is not clear enough and some mockups/wireframes would be appreciated.
The text was updated successfully, but these errors were encountered: