You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
[sdk, simplex]: sign and submit bids against EntryPoint v0.9 #1367
The SDK and simplex build, sign and submit bids as user operations for EntryPoint v0.8 only. Once SolverAccount (#1366) and SimplexPaymaster (#1365) move to v0.9, bids have to be signed for and sent to the v0.9 EntryPoint (0x433709009B8330FDa32311DF1C2AFA402eD8D009).
What is pinned to v0.8
EntryPointV08 in sdk/packages/sdk/src/configs/chain.ts (16 chains) and getEntryPointV08Address in ChainConfigService.ts, used by Bid.ts and GasEstimator.ts
simplex's FillerConfigService.getEntryPointAddress, which returns the v0.8 address
The SolverAccount address per chain, which the delegation check compares against
Proposed change
Add the v0.9 EntryPoint to the chain config and make the lookup version-aware instead of V08-named.
Sign against v0.9. CryptoUtils already takes the EntryPoint address as a parameter, and v0.9 keeps the ERC4337 / 1 domain and the same type hash, so only the address changes.
Read nonces from the v0.9 EntryPoint. Each EntryPoint keeps its own.
Point the config at the new SolverAccount addresses, and confirm DelegationService re-delegates a wallet that is still delegated to the old one.
At startup, call eth_supportedEntryPoints on each configured bundler and fail with a clear message if v0.9 is missing.
Post open orderbook bids again. Posted user operations are signed for one EntryPoint, so everything posted before the cutover has to be withdrawn and signed again.
To confirm
The bundlers solvers use accept v0.9 on every supported chain, including the default the simplex init wizard picks. The custom bundler is tracked in HyperFx Custom Bundler Tracking issue #1363.
External signers that check the typed-data domain or the delegate address (Turnkey and MPCVault policies) are updated for the v0.9 EntryPoint and the new SolverAccount.
BID_PVG_ESTIMATION_ACCOUNT_CODE still gives a sound preVerificationGas estimate on a v0.9 bundler.
Background
The SDK and simplex build, sign and submit bids as user operations for EntryPoint v0.8 only. Once
SolverAccount(#1366) andSimplexPaymaster(#1365) move to v0.9, bids have to be signed for and sent to the v0.9 EntryPoint (0x433709009B8330FDa32311DF1C2AFA402eD8D009).What is pinned to v0.8
EntryPointV08insdk/packages/sdk/src/configs/chain.ts(16 chains) andgetEntryPointV08AddressinChainConfigService.ts, used byBid.tsandGasEstimator.tsFillerConfigService.getEntryPointAddress, which returns the v0.8 addressSolverAccountaddress per chain, which the delegation check compares againstProposed change
V08-named.CryptoUtilsalready takes the EntryPoint address as a parameter, and v0.9 keeps theERC4337/1domain and the same type hash, so only the address changes.SolverAccountaddresses, and confirmDelegationServicere-delegates a wallet that is still delegated to the old one.eth_supportedEntryPointson each configured bundler and fail with a clear message if v0.9 is missing.To confirm
simplex initwizard picks. The custom bundler is tracked in HyperFx Custom Bundler Tracking issue #1363.SolverAccount.BID_PVG_ESTIMATION_ACCOUNT_CODEstill gives a soundpreVerificationGasestimate on a v0.9 bundler.Affected files
sdk/packages/sdk/src/configs/chain.ts,ChainConfigService.tssdk/packages/sdk/src/protocols/intents/Bid.ts,BidManager.ts,GasEstimator.ts,CryptoUtils.tssdk/packages/simplex/src/services/FillerConfigService.ts,DelegationService.ts,ContractInteractionService.tssdk/packages/simplex/src/orderbook/limit-orders.tssimplex initwizardAcceptance