Skip to content
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: Account Abstraction via Entry Point Contract specification #4337

Merged
merged 17 commits into from
Oct 8, 2021

Conversation

vbuterin
Copy link
Contributor

An account abstraction proposal which completely avoids the need for consensus-layer protocol changes, instead relying on a separate mempool of UserOperation objects and miners either running custom code or connecting to a bundle marketplace.

An account abstraction proposal which completely avoids the need for consensus-layer protocol changes, instead relying on a separate mempool of `UserOperation` objects and miners either running custom code or connecting to a bundle marketplace.
@vbuterin vbuterin changed the title Account Abstraction via Entry Point Contract specification ERC: Account Abstraction via Entry Point Contract specification Sep 29, 2021
@eth-bot eth-bot enabled auto-merge (squash) September 29, 2021 08:57
@luziusmeisser
Copy link

luziusmeisser commented Sep 29, 2021

Nice work!

It would be nice to allow out-of-order execution of transactions, which could be done by creating a wallet with a more elaborate nonce than just an integer. Here's an example of a Nonce implementation that stores the actual nonce (a 128-bit number) and a bitregister (of 128 bits) in the same uint256 in order to support out-of-order execution of up to 100 or so transactions:

https://github.com/aktionariat/contracts/blob/master/src/Nonce.sol

Copy link
Member

@lightclient lightclient left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Left a few comments - the Security Considerations and Copyright sections are missing currently. Thanks!

EIPS/eip-4337.md Outdated Show resolved Hide resolved
EIPS/eip-4337.md Outdated Show resolved Hide resolved
EIPS/eip-4337.md Outdated Show resolved Hide resolved
EIPS/eip-4337.md Outdated Show resolved Hide resolved
EIPS/eip-4337.md Outdated Show resolved Hide resolved
EIPS/eip-4337.md Outdated Show resolved Hide resolved
EIPS/eip-4337.md Outdated Show resolved Hide resolved
EIPS/eip-4337.md Outdated Show resolved Hide resolved
EIPS/eip-4337.md Outdated Show resolved Hide resolved
EIPS/eip-4337.md Outdated Show resolved Hide resolved
@MicahZoltu
Copy link
Contributor

I'm trying to stay out of ERCs... but since I happened to read this one:
This appears to be missing some required sections. See https://raw.githubusercontent.com/ethereum/EIPs/master/eip-template.md for the list of required/optional sections (backward compatibility, security considerations, copyright).

EIPS/eip-4337.md Outdated Show resolved Hide resolved
@eth-bot
Copy link
Collaborator

eth-bot commented Oct 3, 2021

EIP file name must be eip-###.md

@MicahZoltu
Copy link
Contributor

- ./_site/EIPS/eip-4337.html
  *  linking to internal hash #Reputation-scoring-and-throttlingbanning-for-paymasters that does not exist (line 299)
     <a href="#Reputation-scoring-and-throttlingbanning-for-paymasters">reputation, throttling and banning section</a>
  *  linking to internal hash #Simulation that does not exist (line 281)
     <a href="#Simulation">Simulation section below</a>
eip-4337.md:	trailing whitespace

The latter is referring to one of the lines in the frontmatter.

EIPS/eip-4337.md Outdated Show resolved Hide resolved
@timelinefunds
Copy link

timelinefunds commented Oct 4, 2021 via email

Co-authored-by: Micah Zoltu <micah@zoltu.net>
EIPS/eip-4337.md Outdated Show resolved Hide resolved
Co-authored-by: Micah Zoltu <micah@zoltu.net>
EIPS/eip-4337.md Outdated Show resolved Hide resolved
EIPS/eip-4337.md Outdated Show resolved Hide resolved
EIPS/eip-4337.md Outdated Show resolved Hide resolved
@MicahZoltu MicahZoltu closed this Oct 7, 2021
auto-merge was automatically disabled October 7, 2021 09:43

Pull request was closed

@MicahZoltu MicahZoltu reopened this Oct 7, 2021
@eth-bot eth-bot enabled auto-merge (squash) October 7, 2021 09:44
@MicahZoltu
Copy link
Contributor

@alita-moore Any idea why CI is failing on this? This is the error, but the file name appears to correctly match the desired pattern.

Error: EIP file name must be eip-###.md

@alita-moore
Copy link
Contributor

@alita-moore Any idea why CI is failing on this? This is the error, but the file name appears to correctly match the desired pattern.

Error: EIP file name must be eip-###.md

It's likely just because it also touches assets which is not supported. Even still it should be giving a much more detailed report so I'll look into that.

@MicahZoltu
Copy link
Contributor

Gah, that was my bad. I didn't see the asset files in the list. I think we already have a ticket for allowing asset changes for an EIP being allowed under the same rules as changing an EIP.

@lightclient
Copy link
Member

lightclient commented Oct 8, 2021

@MicahZoltu do you mind merging? I don't have admin access to override the bot. Ty.

@MicahZoltu MicahZoltu merged commit 1672431 into master Oct 8, 2021
@MicahZoltu MicahZoltu deleted the vbuterin-patch-1 branch October 8, 2021 03:28
PhABC pushed a commit to PhABC/EIPs that referenced this pull request Jan 25, 2022
…reum#4337)

* Account Abstraction via Entry Point Contract specification

An account abstraction proposal which completely avoids the need for consensus-layer protocol changes, instead relying on a separate mempool of `UserOperation` objects and miners either running custom code or connecting to a bundle marketplace.

* Rename file to match ERC number

* Update eip-4337.md

* Apply suggestions from code review

Co-authored-by: lightclient <14004106+lightclient@users.noreply.github.com>

* Replaced simple summary with abstract

* Apply suggestions from code review

* Changing to relative links for images

* Update EIPS/eip-4337.md

* Added mandatory sections

* reference EIP-2470 (create2 deployer) (ethereum#4344)

* Made EIP links relative

* Update EIPS/eip-4337.md

Co-authored-by: Micah Zoltu <micah@zoltu.net>

* Update EIPS/eip-4337.md

Co-authored-by: Micah Zoltu <micah@zoltu.net>

* Update EIPS/eip-4337.md

* Update EIPS/eip-4337.md

* Update EIPS/eip-4337.md

* add images for eip-4337

Co-authored-by: lightclient <14004106+lightclient@users.noreply.github.com>
Co-authored-by: Dror Tirosh <dror@opengsn.org>
Co-authored-by: Micah Zoltu <micah@zoltu.net>
Co-authored-by: lightclient@protonmail.com <lightclient@protonmail.com>
@dfixx
Copy link

dfixx commented Apr 13, 2023

cool!!!

@Gonzalez1988
Copy link

¡Buen trabajo!

Sería bueno permitir la ejecución fuera de orden de transacciones, lo que podría hacerse mediante la creación de una billetera con un nonce más elaborado que un simple entero. Aquí hay un ejemplo de una implementación de Nonce que almacena el nonce real (un número de 128 bits) y un bitregister (de 128 bits) en el mismo uint256 para admitir la ejecución fuera de orden de hasta 100 transacciones aproximadamente:

https://github.com/aktionariat/contracts/blob/master/src/Nonce.sol

vbuterin-patch-1

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.