https://blog.particle.network/bundler-predicting-gas/
可以设置大的Gas Limit避不可知的复杂情况,但这需要用户或者Paymaster有大额余额才能扣除费用,所以就需要一个合适的gas计算接口准确估算gas 消耗,在保证成功率都同时降低门槛
(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
验证阶段