I’d like to see a JSON Schema definition for the parameters of eth_signUserOperation
. These things always end up underspecified and have slight differences between wallets.
For example:
- Does the dapp have to provide the nonce, or does the wallet figure that out? Would it be useful to support both?
- Can
chainId
be omitted? If so, does that mean “create aUserOperation
that can work on multiple chains” or “use the currently active chain in the wallet”? - Does the dapp have to provide
callGasLimit
/verificationGasLimit
/preVerificationGas
/maxFeePerGas
/maxPriorityFeePerGas
?
Is eth_signTypedData
sufficient? Can we standardize a signature format using that, and not create a new RPC endpoint, or is there information in the UserOperation
that only the wallet would know?
Not saying this is the correct approach, but I wanted to raise it as an option.
Is it important to define how to hash the UserOperation
? That seems like it only matters between the account/aggregator and the wallet doing the signing.