https://blog.particle.network/bundler-predicting-gas/

可以设置大的Gas Limit避不可知的复杂情况,但这需要用户或者Paymaster有大额余额才能扣除费用,所以就需要一个合适的gas计算接口准确估算gas 消耗,在保证成功率都同时降低门槛

preVerificationGas v0.6 0.7

(callData 使用成本)

这部分是补贴bundler,因为交易发生前,消费了隐gas,并且无法计算,(比如?)

创建合约会扣除 53,000 个 gas,而调用合约会扣除 21,000 个 gas。

Gas 是根据合约代码的长度和字节类型扣除的。

(enough to pay for the calldata gas cost of serializing the UserOperation plus PRE_VERIFICATION_OVERHEAD_GAS)

(go 客户端代码实现 https://github.com/ethereum/go-ethereum/blob/v1.13.4/core/state_transition.go#L68)

算法如下

https://github.com/eth-infinitism/bundler/blob/main/packages/sdk/src/calcPreVerificationGas.ts

verificationGasLimit v0.6

验证阶段

  1. 初始化账号 ()

Untitled

  1. Account.ValidateUserop

Untitled