Skip to content

Commit

Permalink
Revert "add deposit override during estimations (#444)"
Browse files Browse the repository at this point in the history
This reverts commit 141b555.
  • Loading branch information
mouseless0x authored Feb 25, 2025
1 parent 141b555 commit ade4bca
Show file tree
Hide file tree
Showing 4 changed files with 21 additions and 42 deletions.
49 changes: 14 additions & 35 deletions src/rpc/estimation/gasEstimationHandler.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,47 +2,27 @@ import type { UserOperation } from "@alto/types"
import type { StateOverrides, UserOperationV07 } from "@alto/types"
import { deepHexlify, isVersion06 } from "@alto/utils"
import type { Hex } from "viem"
import {
toHex,
type Address,
parseEther,
keccak256,
encodeAbiParameters
} from "viem"
import { toHex, type Address, parseEther } from "viem"
import { GasEstimatorV06 } from "./gasEstimationsV06"
import { GasEstimatorV07 } from "./gasEstimationsV07"
import type { SimulateHandleOpResult } from "./types"
import type { AltoConfig } from "../../createConfig"

function getStateOverrides({
addSenderDepositOverride,
addSenderBalanceOverride,
userOperation,
entryPoint,
stateOverrides = {}
}: {
addSenderDepositOverride: boolean
addSenderBalanceOverride: boolean
stateOverrides: StateOverrides
entryPoint: Address
userOperation: UserOperation
}) {
const result: StateOverrides = { ...stateOverrides }
const balanceOverride = parseEther("1000000")

if (addSenderDepositOverride) {
// Add deposit override.
const depositsMappingSlot = keccak256(
encodeAbiParameters(
[{ type: "address" }, { type: "uint256" }],
[userOperation.sender, 0n]
)
)

result[entryPoint] = {
...deepHexlify(stateOverrides?.[entryPoint] || {}),
stateDiff: {
...(stateOverrides?.[entryPoint]?.stateDiff || {}),
[depositsMappingSlot]: toHex(balanceOverride, { size: 32 })
}
if (addSenderBalanceOverride) {
result[userOperation.sender] = {
...deepHexlify(stateOverrides?.[userOperation.sender] || {}),
balance: toHex(parseEther("1000000"))
}
}

Expand All @@ -62,17 +42,17 @@ export class GasEstimationHandler {
simulateHandleOp({
userOperation,
queuedUserOperations,
addSenderDepositOverride,
stateOverrideEnabled,
addSenderBalanceOverride,
balanceOverrideEnabled,
entryPoint,
targetAddress,
targetCallData,
stateOverrides = {}
}: {
userOperation: UserOperation
queuedUserOperations: UserOperation[]
addSenderDepositOverride: boolean
stateOverrideEnabled: boolean
addSenderBalanceOverride: boolean
balanceOverrideEnabled: boolean
entryPoint: Address
targetAddress: Address
targetCallData: Hex
Expand All @@ -81,12 +61,11 @@ export class GasEstimationHandler {
let finalStateOverride = undefined

// Add balance override only for v0.6 userOperations (so that prefund check during simulation passes).
if (stateOverrideEnabled && isVersion06(userOperation)) {
if (balanceOverrideEnabled && isVersion06(userOperation)) {
finalStateOverride = getStateOverrides({
userOperation,
addSenderDepositOverride,
stateOverrides,
entryPoint
addSenderBalanceOverride,
stateOverrides
})
}

Expand Down
4 changes: 2 additions & 2 deletions src/rpc/rpcHandler.ts
Original file line number Diff line number Diff line change
Expand Up @@ -486,7 +486,7 @@ export class RpcHandler {
userOperation: simulationUserOperation,
entryPoint,
queuedUserOperations,
addSenderDepositOverride: true,
addSenderBalanceOverride: true,
stateOverrides: deepHexlify(stateOverrides)
})

Expand Down Expand Up @@ -607,7 +607,7 @@ export class RpcHandler {
},
entryPoint,
queuedUserOperations,
addSenderDepositOverride: false,
addSenderBalanceOverride: false,
stateOverrides: deepHexlify(stateOverrides)
})
}
Expand Down
8 changes: 4 additions & 4 deletions src/rpc/validation/UnsafeValidator.ts
Original file line number Diff line number Diff line change
Expand Up @@ -155,20 +155,20 @@ export class UnsafeValidator implements InterfaceValidator {
userOperation,
entryPoint,
queuedUserOperations,
addSenderDepositOverride,
addSenderBalanceOverride,
stateOverrides
}: {
userOperation: UserOperation
entryPoint: Address
queuedUserOperations: UserOperation[]
addSenderDepositOverride: boolean
addSenderBalanceOverride: boolean
stateOverrides?: StateOverrides
}): Promise<SimulateHandleOpResult<"execution">> {
const error = await this.gasEstimationHandler.simulateHandleOp({
userOperation,
queuedUserOperations,
addSenderDepositOverride,
stateOverrideEnabled: this.config.balanceOverride,
addSenderBalanceOverride,
balanceOverrideEnabled: this.config.balanceOverride,
entryPoint,
targetAddress: zeroAddress,
targetCallData: "0x",
Expand Down
2 changes: 1 addition & 1 deletion src/types/interfaces.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ export interface InterfaceValidator {
userOperation: UserOperation
entryPoint: Address
queuedUserOperations: UserOperation[]
addSenderDepositOverride: boolean
addSenderBalanceOverride: boolean
stateOverrides?: StateOverrides
}): Promise<SimulateHandleOpResult<"execution">>

Expand Down

0 comments on commit ade4bca

Please sign in to comment.