stackup-wallet / stackup-bundler

A fast, reliable, and modular ERC-4337 Bundler written in Go.
https://docs.stackup.sh
GNU General Public License v3.0
226 stars 128 forks source link

Bundler: factory has forbidden write to factory slot #383

Closed TSKHot closed 7 months ago

TSKHot commented 7 months ago

Deployed a local Bundler running in private mode against a Geth node (version 1.13.13-stable-7f131dcb) in dev mode (geth --http --http.api eth,net,web3,debug --dev --dev.period 13 --keystore c:\temp\gethkeys --ipcdisable). When trying to submit a UserOperation through the Bundler, getting { "level": "error", "bundler_mode": "private", "entrypoint": "0x9DeCd0823a4D84FaC1f400c316781cB5b047d95C", "chain_id": "1337", "userop_hash": "0xa9836a25b1b0e7926c858c7170425e7aebb0ea8452b7e4108e939535aa4d006b", "error": "factory has forbidden write to factory slot 0x0e42a5c8605986aaf1fab719abda81e87d7793549e47e765191b8c12c69383ba", "logger": "stackup_bundler/client/eth_sendUserOperation", "caller": "C:/Temp/Bundler/stackup-bundler-main/pkg/client/client.go:153", "time": "2024-02-23T10:00:14+10:00", "message": "eth_sendUserOperation error" }

Same UserOperation works when submitted directly to the Entrypoint via Geth.

TSKHot commented 7 months ago

Issue was within the account factory contract - it was updating its own mutable state during initCode execution, which is a no-no and fails simulation. Closing this issue.