Skip to content

Geth Tracing Incorrectly Reporting Signature Error for EIP-7702 Account #264

Description

@nlordell

As far as I can tell, the Geth tracing path is not working for EIP-7702 accounts. It does not appear to work for either new, or existing accounts.

Versions

  • Geth geth version 1.16.1-stable-12b4131f (latest stable as of writing)
  • Bundler aae77140e5c2b1386d04eaeba2d23fc17a62bd87

Reproduce

  • Run the bundler yarn preprocess && yarn bundler --network=http://my-node:8545 --tracerRpcUrl http://my-node:8545 --auto
  • Submit a user operation from a 7702 account
  • Bundler incorrectly reports FailedOp(0,"AA24 signature error")

Note that I am quite sure that the FailedOp error is incorrectly reported - running the bundler in --unsafe mode results in a successful execution of the user op.


  • If run without the tracerRpcUrl, then the following internal error happens, and an empty message is reported in the JSON RPC response:
ex= Error: Not a validateUserOp
    at ValidationManager.decodeValidateUserOp (.../eth-infinitism/bundler/packages/validation-manager/dist/src/ValidationManager.js:459:19)
    at ValidationManager.generateValidationResult (.../eth-infinitism/bundler/packages/validation-manager/dist/src/ValidationManager.js:107:37)
    at ValidationManager._geth_traceCall_SimulateValidation (.../eth-infinitism/bundler/packages/validation-manager/dist/src/ValidationManager.js:223:49)
    at processTicksAndRejections (node:internal/process/task_queues:105:5)
    at async ValidationManager.validateUserOp (.../eth-infinitism/bundler/packages/validation-manager/dist/src/ValidationManager.js:285:55)
    at async .../eth-infinitism/bundler/packages/bundler/src/modules/ExecutionManager.ts:61:28
failed:  eth_sendUserOperation error: {"message":"","code":-32000} RpcError
    at ValidationManager._geth_traceCall_SimulateValidation (.../eth-infinitism/bundler/packages/validation-manager/dist/src/ValidationManager.js:245:19)
    at processTicksAndRejections (node:internal/process/task_queues:105:5)
    at async ValidationManager.validateUserOp (.../eth-infinitism/bundler/packages/validation-manager/dist/src/ValidationManager.js:285:55)
    at async .../eth-infinitism/bundler/packages/bundler/src/modules/ExecutionManager.ts:61:28 {
  code: -32000,
  data: undefined
}

Note this seems to happen when the EIP-7702 account has not been delegated yet.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions