@@ -2,6 +2,7 @@ import type { SenderManager } from "@alto/executor"
2
2
import type { GasPriceManager } from "@alto/handlers"
3
3
import type {
4
4
InterfaceValidator ,
5
+ StateOverrides ,
5
6
UserOperationV06 ,
6
7
UserOperationV07 ,
7
8
ValidationResult ,
@@ -27,7 +28,7 @@ import {
27
28
} from "@alto/types"
28
29
import type { Metrics } from "@alto/utils"
29
30
import {
30
- getAuthorizationStateOverrides ,
31
+ addAuthorizationStateOverrides ,
31
32
getAddressFromInitCodeOrPaymasterAndData ,
32
33
isVersion06 ,
33
34
isVersion07 ,
@@ -82,11 +83,13 @@ export class SafeValidator
82
83
userOperation,
83
84
queuedUserOperations,
84
85
entryPoint,
86
+ stateOverrides,
85
87
referencedContracts
86
88
} : {
87
89
userOperation : UserOperation
88
90
queuedUserOperations : UserOperation [ ]
89
91
entryPoint : Address
92
+ stateOverrides ?: StateOverrides
90
93
referencedContracts ?: ReferencedCodeHashes
91
94
} ) : Promise <
92
95
( ValidationResult | ValidationResultWithAggregation ) & {
@@ -109,6 +112,7 @@ export class SafeValidator
109
112
queuedUserOperations :
110
113
queuedUserOperations as UserOperationV07 [ ] ,
111
114
entryPoint,
115
+ stateOverrides,
112
116
preCodeHashes : referencedContracts
113
117
} )
114
118
} else {
@@ -158,11 +162,13 @@ export class SafeValidator
158
162
userOperation,
159
163
queuedUserOperations,
160
164
entryPoint,
165
+ stateOverrides,
161
166
preCodeHashes
162
167
} : {
163
168
userOperation : UserOperationV07
164
169
queuedUserOperations : UserOperationV07 [ ]
165
170
entryPoint : Address
171
+ stateOverrides ?: StateOverrides
166
172
preCodeHashes ?: ReferencedCodeHashes
167
173
} ) : Promise <
168
174
( ValidationResultV07 | ValidationResultWithAggregationV07 ) & {
@@ -183,7 +189,8 @@ export class SafeValidator
183
189
const [ res , tracerResult ] = await this . getValidationResultWithTracerV07 (
184
190
userOperation ,
185
191
queuedUserOperations ,
186
- entryPoint
192
+ entryPoint ,
193
+ stateOverrides
187
194
)
188
195
189
196
const [ contractAddresses , storageMap ] = tracerResultParserV07 (
@@ -227,10 +234,12 @@ export class SafeValidator
227
234
async getValidationResultV06 ( {
228
235
userOperation,
229
236
entryPoint,
237
+ stateOverrides,
230
238
preCodeHashes
231
239
} : {
232
240
userOperation : UserOperationV06
233
241
entryPoint : Address
242
+ stateOverrides ?: StateOverrides
234
243
preCodeHashes ?: ReferencedCodeHashes
235
244
} ) : Promise <
236
245
( ValidationResultV06 | ValidationResultWithAggregationV06 ) & {
@@ -250,7 +259,8 @@ export class SafeValidator
250
259
251
260
const [ res , tracerResult ] = await this . getValidationResultWithTracerV06 (
252
261
userOperation ,
253
- entryPoint
262
+ entryPoint ,
263
+ stateOverrides
254
264
)
255
265
256
266
const [ contractAddresses , storageMap ] = tracerResultParserV06 (
@@ -309,9 +319,10 @@ export class SafeValidator
309
319
310
320
async getValidationResultWithTracerV06 (
311
321
userOperation : UserOperationV06 ,
312
- entryPoint : Address
322
+ entryPoint : Address ,
323
+ stateOverrides ?: StateOverrides
313
324
) : Promise < [ ValidationResultV06 , BundlerTracerResult ] > {
314
- const stateOverrides = await getAuthorizationStateOverrides ( {
325
+ stateOverrides = await addAuthorizationStateOverrides ( {
315
326
userOperations : [ userOperation ] ,
316
327
publicClient : this . config . publicClient
317
328
} )
@@ -461,7 +472,8 @@ export class SafeValidator
461
472
async getValidationResultWithTracerV07 (
462
473
userOperation : UserOperationV07 ,
463
474
queuedUserOperations : UserOperationV07 [ ] ,
464
- entryPoint : Address
475
+ entryPoint : Address ,
476
+ stateOverrides ?: StateOverrides
465
477
) : Promise < [ ValidationResultV07 , BundlerTracerResult ] > {
466
478
const packedUserOperation = toPackedUserOperation ( userOperation )
467
479
const packedQueuedUserOperations = queuedUserOperations . map ( ( uop ) =>
@@ -483,7 +495,7 @@ export class SafeValidator
483
495
const entryPointSimulationsAddress =
484
496
this . config . entrypointSimulationContract
485
497
486
- const stateOverrides = await getAuthorizationStateOverrides ( {
498
+ stateOverrides = await addAuthorizationStateOverrides ( {
487
499
userOperations : [ userOperation ] ,
488
500
publicClient : this . config . publicClient
489
501
} )
0 commit comments