-
Notifications
You must be signed in to change notification settings - Fork 90
Open
Description
Describe the feature
Reduce dynamic RPC usage. That is, requests that occur either (1) in response to an external RPC request, (2) during bundle building, (3) when UOs are mined.
TODO double check this:
eth_estimateUserOperationGas:- 1x
eth_getBlockByNumber- to get a block hash to anchor subsequent calls- get this from pool?
- VGL: 2+
eth_call - CGL: 2+
eth_call - PVGL: 2+
eth_call - PVG: 1x
eth_callfor DA - Can we limit this? Upwards of 7+
eth_callfor a single estimation. Need to price accordingly. Metrics for avg.
- 1x
eth_sendUserOperation:- Precheck:
- up to 3x
eth_getCode- to check if entities are contracts (4x when we have aggregators) - 1x
eth_call- to get entry point deposit - 1x
eth_getBalance- to get payer balance - 1x
eth_call- to get DA gas costs - May be able to consolidate
- up to 3x
- Simulation:
- 1x
debug_traceCallw/ custom tracer - 1x
eth_call- to get code hashes - 1x
eth_call- signature aggregator check (refactor this)
- 1x
- When entering pool:
- 1x
eth_getBlock- race condition, see code - 1x
eth_call- get paymaster balance if new paymaster- make sure this isn't getting called 2x.
- 1x
eth_call- for gas limit eff check
- 1x
- Precheck:
eth_getUserOperationByHash:- 1x
eth_getLogs - (if to != entry point) 1x
debug_traceTransaction - This is best we can do, need to handle known
toaddresses for entry point proxies
- 1x
eth_getUserOperationReceipt:- 1x
eth_getLogs - 1x
eth_getTransactionReceipt - This is best we can do
- 1x
rundler_maxPriorityFeePerGas:- (depends on fee oracle, below is for bedrock)
- 2x
eth_feeHistorycalls - Should consolidate this to 1, or potentially 0 by moving ownership of this to the mempool and calling once per block.
Low hanging fruit:
- Refactor fee estimation, make it owned by the pool & called by RPC
- Add list of entry point proxies to limit traces during by hash
- Add a cache for precheck
isContractcheck - Consolidate other precheck async calls into a single multicall
- Refactor paymaster balance code
- Refactor signature aggregator code
- Look into gas estimation
eth_callusage
TODO fill this out:
Bundle building RPC calls:
Pool RPC calls:
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or request