-
Notifications
You must be signed in to change notification settings - Fork 5.3k
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
ERC: Executable Signed Messages refunded by the contract #1077
Conversation
Allowing users to sign messages to show intent of execution, but allowing a third party relayer to execute them is an emerging pattern being used in many projects. Standardizing a common format for them, as well as a way in which the user allows the transaction to be paid in tokens, gives app developers a lot of flexibility and can become the main way in which app users interact with the Blockchain.
@alexvandesande I've edited the doc to fix the header formatting, but you still have build failures - please see the details message and fix. |
Ok, it seems the issue was a dependency on #735 which doesn't exist in the new format. Removed it as it wasn't very important for the standard. |
@Arachnid
|
@alexvandesande It's up to you - either of those are fine. |
It's ready to merge now. The other depends on this |
* ERC: Executable Signed Messages refunded by the contract Allowing users to sign messages to show intent of execution, but allowing a third party relayer to execute them is an emerging pattern being used in many projects. Standardizing a common format for them, as well as a way in which the user allows the transaction to be paid in tokens, gives app developers a lot of flexibility and can become the main way in which app users interact with the Blockchain. * Update eip-1077.md * Update eip-1077.md * Added uPort and Gnosis examples * Swarm city * change dependencies * moves reference to 877
I've implemented a version of this standard here: https://github.com/shine2lay/SmartContracts @alexvandesande I have a question about |
Hey @alexvandesande, I am not convinced the I think we should better detail what the gas refund process are. Currently, |
Hi all, This is a great initiative. Few comments: 1) It seems that the current draft focuses on contract wallet/identity contract as the sole processors of such messages.But such message could also work at the token level. An ERC20/ERC777 token contract could process such messages and perform the transaction without being an identity contract itself. As such the 2) There are several ambiguities that might make hard for users to know what they are signing.The draft states :
This would be a nightmare for wallet UX. I think we should define unambiguously what each field represent so that a wallet receiving such message signature request could let the user know what is being transfered. It also states :
Again I think the standard would benefit in being less ambiguous and define exactly what the smart contract should do so wallet can inform the users accurately. If want different behavior, we add more signature format options |
@PhABC if we wanted to add extra options to the message format we would not necessarily want to pollute the data being used to call a function. Else this would require the contract processing the message to extract and remove that info from Regarding Good point about This way the message signer is in control of the tx gasPrice (at least a minimum) |
Pardon the pedantic comment @alexvandesande, but I think I spotted a typo here:
Shouldn't that be "2" or other integer for the create opcode? |
There are some problems with the current spec merged.
For 1. the best way is to have separate optional functions for each type supporting. The use of ERC165 could be useful here, although, when gas abstraction is achieved it wont matter. An optional EVM consensus change can be implemented to support "validator functions" in the contracts, which would enable block creators to call a contract without a sender, this special transactions cannot use For 1. I guess we should update the spec, for 2. I guess we need to fork an eth client, experiment, make some more EIPs to suggest what exactly would be changed for this soft fork and also for the potential hard fork. Let me know what you think by replying here or you can e-mail me |
Allowing users to sign messages to show intent of execution, but allowing a third party relayer to execute them is an emerging pattern being used in many projects. Standardizing a common format for them, as well as a way in which the user allows the transaction to be paid in tokens, gives app developers a lot of flexibility and can become the main way in which app users interact with the Blockchain.