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

[Prototype] AragonApp: signed calls and multi call execution (aka meta-txs support) #442

Open
wants to merge 3 commits into
base: dev
from

Conversation

Projects
None yet
2 participants
@izqui
Member

izqui commented Oct 18, 2018

Super early prototype of how we could add a way to execute signed calls in a contract inheriting AragonApp. Signed calls allow the entity performing an action doing so without ever having to own any ETH to pay for transaction fees, by having a relayer submit their signed calls on-chain. There seems to be some momentum around the EIP1077 standard, which could be interesting to support, as a standard interface could help create a ecosystem of relayer services.

By putting this in the AragonApp contract, any Aragon app would automatically benefit from this functionality. There is native support for ACL checks, but apps willing to use this for custom logic (e.g. Voting) should use AragonApp.sender() instead of msg.sender.

It uses volatile storage, AragonApp will write to a storage slot who the actual sender of the call is before calling itself with that calldata. After the sub-call ends executing, that storage slot is emptied. This would be quite expensive to do right now, but the new net gas metering in Constantinople this is quite cheap to do.

Got down this rabbit-hole after having a discussing with @bingen about whether it would make sense to add multicall to the Staking app, and his proposal to add it directly to AragonApp.

The current implementation doesn't allow to perform multiple calls from sender as in multicall, but it could be implemented by accepting empty signatures as calls executed by their sender.

@coveralls

This comment has been minimized.

coveralls commented Oct 18, 2018

Coverage Status

Coverage decreased (-3.8%) to 94.978% when pulling b98c382 on signed-exec into a684791 on dev.

@izqui izqui added the aragonOS 5 label Nov 6, 2018

@izqui izqui referenced this pull request Nov 9, 2018

Closed

Add Delegated Depositing #566

@izqui izqui changed the title from [Prototype] AragonApp: signed calls and multi call execution to [Prototype] AragonApp: signed calls and multi call execution (aka meta-txs support) Nov 11, 2018

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment