Rust implementation for Bundler - ERC-4337 (Account Abstraction).
Stable Diffusion prompt: ethereum bundler account abstraction rust vector logo
For more information: https://hackmd.io/@Vid201/aa-bundler-rust
Rust version: 1.69.0
- libclang,
libclang-dev
on Debian/Ubuntu. - Ethereum execution client JSON-RPC API with enabled
debug_traceCall
. For production, you can use Geth or Erigon. For testing, we are using Geth dev mode; so you need to install Geth for running tests. solc
>=0.8.12.cargo-sort
.
Set up third-party dependencies (ERC-4337 smart contracts and bundler tests):
make fetch-thirdparty
make setup-thirdparty
Create wallet for bundler:
cargo run --release --bin create-wallet -- --output-path ${HOME}/.aa-bundler --chain-id 5
Run bundler (with user operation pool and JSON-RPC API):
cargo run --release -- --eth-client-address http://127.0.0.1:8545 --mnemonic-file ${HOME}/.aa-bundler/0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266 --beneficiary 0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266 --gas-factor 600 --min-balance 1 --entry-points 0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789 --min-stake 1 --min-unstake-delay 0 --min-priority-fee-per-gas 0 --max-verification-gas 1500000
Run only user operation pool:
cargo run --release --bin bundler-uopool -- --eth-client-address http://127.0.0.1:8545 --entry-points 0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789 --min-stake 1 --min-unstake-delay 0 --min-priority-fee-per-gas 0 --max-verification-gas 1500000
Run only JSON-RPC API:
cargo run --release --bin bundler-rpc
Thank you for showing interest in contributing to the project!
There is a contributing guide to help get you started.
There are some additional prerequisites for testing:
Before making a PR, make sure to run the following commands:
make format
make lint
make test
The best place for the discussion is the dedicated Telegram group.
This project is dual-licensed under Apache 2.0 and MIT terms:
- Apache License, Version 2.0, (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT License (LICENSE-MIT or http://opensource.org/licenses/MIT)