diff --git a/integrations/voltaire/README.md b/integrations/voltaire/README.md new file mode 100644 index 00000000..5f69f79b --- /dev/null +++ b/integrations/voltaire/README.md @@ -0,0 +1,48 @@ +# Voltaire Bundler +Modular and lighting-fast Python Bundler for Ethereum EIP-4337 Account Abstraction + +## Deployment +Run a Voltaire bundler docker container for each of the 3 chains by running the start_bundlers.sh script +``` +source start_bundlers.sh +``` +## See logs + +### see L1Chain bundler logs: +```docker logs -f L1Chain_Bundler``` + +### see OPChainA bundler logs: +```docker logs -f OPChainA_Bundler``` + +### see OPChainb bundler logs: +```docker logs -f OPChainB_Bundler``` + +## Stop the 3 bundlers + +Stop Voltaire bundler docker container for each of the 3 chains by running the stop_bundlers.sh script + +``` +source stop_bundlers.sh +``` + +If you are using fork mode, you can modify the start_bundlers.sh script for the target chains. + +## rpc url + +### L1Chain bundler rpc url: http://127.0.0.1:3000/rpc + +### OpChainA bundler rpc url: http://127.0.0.1:3001/rpc + +### OpChainB bundler rpc url: http://127.0.0.1:3002/rpc + +# docs + +Voltaire github: https://github.com/candidelabs/voltaire + +Candide Atelier: https://docs.candide.dev/ + +Bundler rpc docs: https://docs.candide.dev/wallet/bundler/rpc-methods/ + +# Notes +* Voltaire supports both Entrypoint v0.6.0 and v0.7.0 +* Bundlers are running in the unsafe mode as debug_traceCall with javascript tracer is not supported in anvil currently \ No newline at end of file diff --git a/integrations/voltaire/start_bundlers.sh b/integrations/voltaire/start_bundlers.sh new file mode 100644 index 00000000..07dd37bb --- /dev/null +++ b/integrations/voltaire/start_bundlers.sh @@ -0,0 +1,45 @@ +IMAGE_NAME=ghcr.io/candidelabs/voltaire/voltaire-bundler:0.1.0a36 +RPC_URL=127.0.0.1 +SECRET=0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80 + +L1Chain_PORT=3000 +L1Chain_NODE=http://127.0.0.1:8545 +L1Chain_CHAIN_ID=900 + +docker run --name L1Chain_Bundler --rm --net=host \ + -d $IMAGE_NAME \ + --bundler_secret $SECRET \ + --rpc_url $RPC_URL \ + --rpc_port $L1Chain_PORT \ + --ethereum_node_url $L1Chain_NODE \ + --chain_id $L1Chain_CHAIN_ID \ + --unsafe \ + --verbose + +OPChainA_PORT=3001 +OPChainA_NODE=http://127.0.0.1:9545 +OPChainA_CHAIN_ID=901 + +docker run --name OPChainA_Bundler --rm --net=host \ + -d $IMAGE_NAME \ + --bundler_secret $SECRET \ + --rpc_url $RPC_URL \ + --rpc_port $OPChainA_PORT \ + --ethereum_node_url $OPChainA_NODE \ + --chain_id $OPChainA_CHAIN_ID \ + --unsafe \ + --verbose + +OPChainB_PORT=3002 +OPChainB_NODE=http://127.0.0.1:9546 +OPChainB_CHAIN_ID=902 + +docker run --name OPChainB_Bundler --rm --net=host \ + -d $IMAGE_NAME \ + --bundler_secret $SECRET \ + --rpc_url $RPC_URL \ + --rpc_port $OPChainB_PORT \ + --ethereum_node_url $OPChainB_NODE \ + --chain_id $OPChainB_CHAIN_ID \ + --unsafe \ + --verbose diff --git a/integrations/voltaire/stop_bundlers.sh b/integrations/voltaire/stop_bundlers.sh new file mode 100644 index 00000000..c2ac0524 --- /dev/null +++ b/integrations/voltaire/stop_bundlers.sh @@ -0,0 +1 @@ +docker stop L1Chain_Bundler OPChainA_Bundler OPChainB_Bundler \ No newline at end of file