Modular and lighting-fast Python Bundler for Ethereum EIP-4337 Account Abstraction, modded to support oracle data injection
This mod extends the bundler to provide 4 new endpoints:
eth_sendDataDependentUserOperation
: to send data-dependent user operation, with the data requirements as an additional parameth_estimateDataDependentUserOperationGas
: to estimate gas for data-dependent user operation, with the data requirements as an additional parameth_oracleDataKeys
: to list the available data provided by the oracleeth_oracleDataPreview
: to get a preview of the current data for a particular key, unsigned
curl -sSL https://install.python-poetry.org | python3 -
poetry install
poetry env use python3.11
The node must allow debug_traceCall
with custom tracers and eth_call
with state overrides.
Some nodes (e.g. Erigon) have problems with state overrides slots starting with 0s (i.e. "0x01...abc"). In that case, you have to launch the bundler with the flag --cut_slot_leading_zeros
set to true
.
poetry run python3 -m voltaire_bundler --bundler_secret $YOUR_EOA_PK --bundler_smart_wallet_v6 $YOUR_SCA_V6_ADDRESS --bundler_smart_wallet_v7 $YOUR_SCA_V7_ADDRESS --chain_id $CHAIN_ID --ethereum_node_url $YOUR_RPC --oracle $ORACLE_ADDRESS --verbose
Oracle entrypoint is already deployed on Sepolia at address 0x9F82E17fb4d5815cf261a9AafFE53A9834F55b9F
.
The bundler will fetch data from your own data server. See the example folder for the server specs.
LGPL
The project is forked from the Voltaire bundler from the Voltaire team