Note: This repo is not complete and a work in progress
EoAs are now smart contracts. That's all account abstraction is.
But what does that mean?
Right now, every single transaction in web3 stems from a single private key.
account abstraction means that not only the execution of a transaction can be arbitrarily complex computation logic as specified by the EVM, but also the authorization logic.
- A minimal EVM "Smart Wallet" using alt-mempool AA
- We even send a transactoin to the
EntryPoint.sol
- We even send a transactoin to the
- A minimal zkSync "Smart Wallet" using native AA
- zkSync uses native AA, which is slightly different than ERC-4337
- We do send our zkSync transaction to the alt-mempool
- Sending your userop to the alt-mempool
- You can learn how to do this via the alchemy docs
- git
- You'll know you did it right if you can run
git --version
and you see a response likegit version x.x.x
- You'll know you did it right if you can run
- foundry
- You'll know you did it right if you can run
forge --version
and you see a response likeforge 0.2.0 (816e00b 2023-03-16T00:05:26.396218Z)
- You'll know you did it right if you can run
- foundry-zksync
- You'll know you did it right if you can run
forge-zksync --help
and you seezksync
somewhere in the output
- You'll know you did it right if you can run
git clone https://github.com/PatrickAlphaC/minimal-account-abstraction
cd minimal-account-abstraction
make
make test
- TODO
This codebase is for educational purposes only and has not undergone a security review.