Prerequisites:
- Rust & Cargo
- Nightly rust required for
rustfmt
:
- Nightly rust required for
rustup toolchain add nightly
Run tests:
git clone https://github.com/OMGWINNING/rundler
cd rundler
cargo test --all
Running locally requires access to an Ethereum RPC node on the network the Rundler is running on. For testing it is recommended to run a local devlopment node.
Steps to run Geth
in dev mode locally:
cd test
docker compose up
(use-d
) to run in background.
Steps to run Rundler
locally:
- Copy the default .env file. By default, this will be pointing at the local
Geth
node.
cp test/.env.default .env
- (Optional) Fund and deploy contracts. Contracts are deployed from the account-abstraction repo. This does the following:
- Creates an account for the bundler to use.
- Deploys the
EntryPoint
. - Deploys a
SimpleAccountFactory
. - Deploys a
VerifyingPaymaster
. - Deploys a
SimpleAccount
. - Funds each of the accounts.
cargo run --bin deploy_dev_contracts
-
(Optional) Modify the
BUNDLER_PRIVATE_KEY
field if using a different account than was funded in #2. -
Start the Rundler
cargo run node
- Commit messages must follow conventional commits sytle.