@pimlico/alto 0.0.0-staging.20240606T093925 → 0.0.0-staging.20240606T100452
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/cli/alto.d.ts +6 -0
- package/lib/cli/alto.js +92 -0
- package/lib/cli/alto.js.map +1 -0
- package/lib/cli/config/bundler.js +73 -76
- package/lib/cli/config/bundler.js.map +1 -1
- package/lib/cli/config/index.js +2 -18
- package/lib/cli/config/index.js.map +1 -1
- package/lib/cli/config/options.js +10 -13
- package/lib/cli/config/options.js.map +1 -1
- package/lib/cli/customTransport.js +7 -11
- package/lib/cli/customTransport.js.map +1 -1
- package/lib/cli/handler.js +24 -28
- package/lib/cli/handler.js.map +1 -1
- package/lib/cli/index.js +2 -18
- package/lib/cli/index.js.map +1 -1
- package/lib/cli/instrumentation.js +20 -22
- package/lib/cli/instrumentation.js.map +1 -1
- package/lib/cli/setupServer.js +17 -21
- package/lib/cli/setupServer.js.map +1 -1
- package/lib/cli/util.js +1 -5
- package/lib/cli/util.js.map +1 -1
- package/lib/executor/executor.js +56 -84
- package/lib/executor/executor.js.map +1 -1
- package/lib/executor/executorManager.js +7 -11
- package/lib/executor/executorManager.js.map +1 -1
- package/lib/executor/index.js +4 -20
- package/lib/executor/index.js.map +1 -1
- package/lib/executor/senderManager.js +8 -12
- package/lib/executor/senderManager.js.map +1 -1
- package/lib/executor/test/utils.js +22 -28
- package/lib/executor/test/utils.js.map +1 -1
- package/lib/executor/utils.js +31 -61
- package/lib/executor/utils.js.map +1 -1
- package/lib/index.d.ts +1 -5
- package/lib/index.js +1 -122
- package/lib/index.js.map +1 -1
- package/lib/mempool/index.js +4 -20
- package/lib/mempool/index.js.map +1 -1
- package/lib/mempool/mempool.js +55 -59
- package/lib/mempool/mempool.js.map +1 -1
- package/lib/mempool/monitoring.js +1 -5
- package/lib/mempool/monitoring.js.map +1 -1
- package/lib/mempool/nullMempool.js +1 -5
- package/lib/mempool/nullMempool.js.map +1 -1
- package/lib/mempool/reputationManager.js +44 -49
- package/lib/mempool/reputationManager.js.map +1 -1
- package/lib/mempool/store.js +1 -5
- package/lib/mempool/store.js.map +1 -1
- package/lib/rpc/EntryPointSimulationsV07.js +44 -50
- package/lib/rpc/EntryPointSimulationsV07.js.map +1 -1
- package/lib/rpc/ExecuteSimulator.js +2 -5
- package/lib/rpc/ExecuteSimulator.js.map +1 -1
- package/lib/rpc/gasEstimation.js +62 -69
- package/lib/rpc/gasEstimation.js.map +1 -1
- package/lib/rpc/index.js +4 -20
- package/lib/rpc/index.js.map +1 -1
- package/lib/rpc/nonceQueuer.js +16 -20
- package/lib/rpc/nonceQueuer.js.map +1 -1
- package/lib/rpc/rpcHandler.js +76 -103
- package/lib/rpc/rpcHandler.js.map +1 -1
- package/lib/rpc/server.js +26 -56
- package/lib/rpc/server.js.map +1 -1
- package/lib/rpc/validation/BundlerCollectorTracerV06.js +1 -5
- package/lib/rpc/validation/BundlerCollectorTracerV06.js.map +1 -1
- package/lib/rpc/validation/BundlerCollectorTracerV07.js +1 -5
- package/lib/rpc/validation/BundlerCollectorTracerV07.js.map +1 -1
- package/lib/rpc/validation/SafeValidator.js +65 -69
- package/lib/rpc/validation/SafeValidator.js.map +1 -1
- package/lib/rpc/validation/TracerResultParserV06.js +26 -30
- package/lib/rpc/validation/TracerResultParserV06.js.map +1 -1
- package/lib/rpc/validation/TracerResultParserV07.js +29 -36
- package/lib/rpc/validation/TracerResultParserV07.js.map +1 -1
- package/lib/rpc/validation/UnsafeValidator.js +46 -73
- package/lib/rpc/validation/UnsafeValidator.js.map +1 -1
- package/lib/rpc/validation/index.js +2 -18
- package/lib/rpc/validation/index.js.map +1 -1
- package/lib/rpc/validation/tracer.js +7 -37
- package/lib/rpc/validation/tracer.js.map +1 -1
- package/lib/types/contracts/BundleBulker.js +1 -4
- package/lib/types/contracts/BundleBulker.js.map +1 -1
- package/lib/types/contracts/CallEngine.js +1 -4
- package/lib/types/contracts/CallEngine.js.map +1 -1
- package/lib/types/contracts/CodeHashGetter.js +2 -5
- package/lib/types/contracts/CodeHashGetter.js.map +1 -1
- package/lib/types/contracts/EntryPoint.js +4 -7
- package/lib/types/contracts/EntryPoint.js.map +1 -1
- package/lib/types/contracts/EntryPointSimulations.js +3 -6
- package/lib/types/contracts/EntryPointSimulations.js.map +1 -1
- package/lib/types/contracts/IOpInflator.js +1 -4
- package/lib/types/contracts/IOpInflator.js.map +1 -1
- package/lib/types/contracts/IPaymaster.js +1 -4
- package/lib/types/contracts/IPaymaster.js.map +1 -1
- package/lib/types/contracts/Inflator.js +1 -4
- package/lib/types/contracts/Inflator.js.map +1 -1
- package/lib/types/contracts/PerOpInflator.js +1 -4
- package/lib/types/contracts/PerOpInflator.js.map +1 -1
- package/lib/types/contracts/PimlicoEntryPointSimulations.js +2 -5
- package/lib/types/contracts/PimlicoEntryPointSimulations.js.map +1 -1
- package/lib/types/contracts/SenderCreator.js +2 -5
- package/lib/types/contracts/SenderCreator.js.map +1 -1
- package/lib/types/contracts/SimpleAccountFactory.js +2 -5
- package/lib/types/contracts/SimpleAccountFactory.js.map +1 -1
- package/lib/types/contracts/TestOpcodesAccount.js +2 -5
- package/lib/types/contracts/TestOpcodesAccount.js.map +1 -1
- package/lib/types/contracts/TestOpcodesAccountFactory.js +2 -5
- package/lib/types/contracts/TestOpcodesAccountFactory.js.map +1 -1
- package/lib/types/contracts/TestStorageAccount.js +2 -5
- package/lib/types/contracts/TestStorageAccount.js.map +1 -1
- package/lib/types/contracts/index.js +16 -32
- package/lib/types/contracts/index.js.map +1 -1
- package/lib/types/gasPrice.js +14 -17
- package/lib/types/gasPrice.js.map +1 -1
- package/lib/types/index.js +10 -26
- package/lib/types/index.js.map +1 -1
- package/lib/types/interfaces.js +1 -2
- package/lib/types/mempool.js +5 -10
- package/lib/types/mempool.js.map +1 -1
- package/lib/types/schemas.js +254 -284
- package/lib/types/schemas.js.map +1 -1
- package/lib/types/test/validationTestErrors.js +2 -5
- package/lib/types/test/validationTestErrors.js.map +1 -1
- package/lib/types/utils.js +5 -9
- package/lib/types/utils.js.map +1 -1
- package/lib/types/validation.js +139 -142
- package/lib/types/validation.js.map +1 -1
- package/lib/utils/bigInt.js +2 -7
- package/lib/utils/bigInt.js.map +1 -1
- package/lib/utils/compressionHandler.js +7 -11
- package/lib/utils/compressionHandler.js.map +1 -1
- package/lib/utils/gasPriceManager.js +30 -57
- package/lib/utils/gasPriceManager.js.map +1 -1
- package/lib/utils/helpers.js +5 -10
- package/lib/utils/helpers.js.map +1 -1
- package/lib/utils/index.js +9 -25
- package/lib/utils/index.js.map +1 -1
- package/lib/utils/logger.js +10 -19
- package/lib/utils/logger.js.map +1 -1
- package/lib/utils/metrics.js +20 -24
- package/lib/utils/metrics.js.map +1 -1
- package/lib/utils/rpc-reply.js +1 -3
- package/lib/utils/rpc-reply.js.map +1 -1
- package/lib/utils/test.js +36 -67
- package/lib/utils/test.js.map +1 -1
- package/lib/utils/userop.js +62 -107
- package/lib/utils/userop.js.map +1 -1
- package/lib/utils/validation.js +64 -99
- package/lib/utils/validation.js.map +1 -1
- package/package.json +6 -4
|
@@ -1,16 +1,13 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
const UnsafeValidator_1 = require("./UnsafeValidator.js");
|
|
12
|
-
const tracer_1 = require("./tracer.js");
|
|
13
|
-
class SafeValidator extends UnsafeValidator_1.UnsafeValidator {
|
|
1
|
+
import { CodeHashGetterAbi, CodeHashGetterBytecode, EntryPointV06Abi, EntryPointV07Abi, EntryPointV07SimulationsAbi, PimlicoEntryPointSimulationsAbi, PimlicoEntryPointSimulationsBytecode, RpcError, ValidationErrors } from "../../types/index.js";
|
|
2
|
+
import { calcVerificationGasAndCallGasLimit, getAddressFromInitCodeOrPaymasterAndData, isVersion06, isVersion07, toPackedUserOperation } from "../../utils/index.js";
|
|
3
|
+
import { decodeAbiParameters, decodeErrorResult, encodeDeployData, encodeFunctionData, zeroAddress } from "viem";
|
|
4
|
+
import { parseFailedOpWithRevert } from "../EntryPointSimulationsV07.js";
|
|
5
|
+
import { bundlerCollectorTracer } from "./BundlerCollectorTracerV06.js";
|
|
6
|
+
import { tracerResultParserV06 } from "./TracerResultParserV06.js";
|
|
7
|
+
import { tracerResultParserV07 } from "./TracerResultParserV07.js";
|
|
8
|
+
import { UnsafeValidator } from "./UnsafeValidator.js";
|
|
9
|
+
import { debug_traceCall } from "./tracer.js";
|
|
10
|
+
export class SafeValidator extends UnsafeValidator {
|
|
14
11
|
senderManager;
|
|
15
12
|
constructor(publicClient, senderManager, logger, metrics, gasPriceManager, chainType, entryPointSimulationsAddress, fixedGasLimitForEstimation, usingTenderly = false, balanceOverrideEnabled = false) {
|
|
16
13
|
super(publicClient, logger, metrics, gasPriceManager, chainType, entryPointSimulationsAddress, fixedGasLimitForEstimation, usingTenderly, balanceOverrideEnabled);
|
|
@@ -21,16 +18,16 @@ class SafeValidator extends UnsafeValidator_1.UnsafeValidator {
|
|
|
21
18
|
const validationResult = await this.getValidationResult(userOperation, queuedUserOperations, entryPoint, referencedContracts);
|
|
22
19
|
if (shouldCheckPrefund) {
|
|
23
20
|
const prefund = validationResult.returnInfo.prefund;
|
|
24
|
-
const { verificationGasLimit, callGasLimit } =
|
|
21
|
+
const { verificationGasLimit, callGasLimit } = calcVerificationGasAndCallGasLimit(userOperation, {
|
|
25
22
|
preOpGas: validationResult.returnInfo.preOpGas,
|
|
26
23
|
paid: validationResult.returnInfo.prefund
|
|
27
24
|
}, this.chainId);
|
|
28
25
|
let mul = 1n;
|
|
29
|
-
if (
|
|
26
|
+
if (isVersion06(userOperation) &&
|
|
30
27
|
userOperation.paymasterAndData) {
|
|
31
28
|
mul = 3n;
|
|
32
29
|
}
|
|
33
|
-
if (
|
|
30
|
+
if (isVersion07(userOperation) &&
|
|
34
31
|
userOperation.paymaster === "0x") {
|
|
35
32
|
mul = 3n;
|
|
36
33
|
}
|
|
@@ -38,7 +35,7 @@ class SafeValidator extends UnsafeValidator_1.UnsafeValidator {
|
|
|
38
35
|
verificationGasLimit * mul +
|
|
39
36
|
userOperation.preVerificationGas;
|
|
40
37
|
if (requiredPreFund > prefund) {
|
|
41
|
-
throw new
|
|
38
|
+
throw new RpcError(`prefund is not enough, required: ${requiredPreFund}, got: ${prefund}`, ValidationErrors.SimulateValidation);
|
|
42
39
|
}
|
|
43
40
|
// TODO prefund should be greater than it costs us to add it to mempool
|
|
44
41
|
}
|
|
@@ -51,9 +48,9 @@ class SafeValidator extends UnsafeValidator_1.UnsafeValidator {
|
|
|
51
48
|
}
|
|
52
49
|
}
|
|
53
50
|
async getCodeHashes(addresses) {
|
|
54
|
-
const deployData =
|
|
55
|
-
abi:
|
|
56
|
-
bytecode:
|
|
51
|
+
const deployData = encodeDeployData({
|
|
52
|
+
abi: CodeHashGetterAbi,
|
|
53
|
+
bytecode: CodeHashGetterBytecode,
|
|
57
54
|
args: [addresses]
|
|
58
55
|
});
|
|
59
56
|
const wallet = await this.senderManager.getWallet();
|
|
@@ -82,30 +79,30 @@ class SafeValidator extends UnsafeValidator_1.UnsafeValidator {
|
|
|
82
79
|
if (preCodeHashes && preCodeHashes.addresses.length > 0) {
|
|
83
80
|
const { hash } = await this.getCodeHashes(preCodeHashes.addresses);
|
|
84
81
|
if (hash !== preCodeHashes.hash) {
|
|
85
|
-
throw new
|
|
82
|
+
throw new RpcError("code hashes mismatch", ValidationErrors.OpcodeValidation);
|
|
86
83
|
}
|
|
87
84
|
}
|
|
88
85
|
const [res, tracerResult] = await this.getValidationResultWithTracerV07(userOperation, entryPoint);
|
|
89
|
-
const [contractAddresses, storageMap] =
|
|
86
|
+
const [contractAddresses, storageMap] = tracerResultParserV07(userOperation, tracerResult, res, entryPoint.toLowerCase());
|
|
90
87
|
const codeHashes = preCodeHashes || (await this.getCodeHashes(contractAddresses));
|
|
91
88
|
// biome-ignore lint/suspicious/noExplicitAny: it's a generic type
|
|
92
89
|
if (res === "0x") {
|
|
93
90
|
throw new Error("simulateValidation reverted with no revert string!");
|
|
94
91
|
}
|
|
95
92
|
if (res.returnInfo.accountSigFailed) {
|
|
96
|
-
throw new
|
|
93
|
+
throw new RpcError("Invalid UserOp signature", ValidationErrors.InvalidSignature);
|
|
97
94
|
}
|
|
98
95
|
if (res.returnInfo.paymasterSigFailed) {
|
|
99
|
-
throw new
|
|
96
|
+
throw new RpcError("Invalid UserOp paymasterData", ValidationErrors.InvalidSignature);
|
|
100
97
|
}
|
|
101
98
|
const now = Math.floor(Date.now() / 1000);
|
|
102
99
|
if (res.returnInfo.validAfter === undefined ||
|
|
103
100
|
res.returnInfo.validAfter > now - 5) {
|
|
104
|
-
throw new
|
|
101
|
+
throw new RpcError(`User operation is not valid yet, validAfter=${res.returnInfo.validAfter}, now=${now}`, ValidationErrors.ExpiresShortly);
|
|
105
102
|
}
|
|
106
103
|
if (res.returnInfo.validUntil === undefined ||
|
|
107
104
|
res.returnInfo.validUntil < now + 30) {
|
|
108
|
-
throw new
|
|
105
|
+
throw new RpcError(`UserOperation expires too soon, validUntil=${res.returnInfo.validUntil}, now=${now}`, ValidationErrors.ExpiresShortly);
|
|
109
106
|
}
|
|
110
107
|
return {
|
|
111
108
|
...res,
|
|
@@ -120,11 +117,11 @@ class SafeValidator extends UnsafeValidator_1.UnsafeValidator {
|
|
|
120
117
|
if (preCodeHashes && preCodeHashes.addresses.length > 0) {
|
|
121
118
|
const { hash } = await this.getCodeHashes(preCodeHashes.addresses);
|
|
122
119
|
if (hash !== preCodeHashes.hash) {
|
|
123
|
-
throw new
|
|
120
|
+
throw new RpcError("code hashes mismatch", ValidationErrors.OpcodeValidation);
|
|
124
121
|
}
|
|
125
122
|
}
|
|
126
123
|
const [res, tracerResult] = await this.getValidationResultWithTracerV06(userOperation, entryPoint);
|
|
127
|
-
const [contractAddresses, storageMap] =
|
|
124
|
+
const [contractAddresses, storageMap] = tracerResultParserV06(userOperation, tracerResult, res, entryPoint.toLowerCase());
|
|
128
125
|
const codeHashes = preCodeHashes || (await this.getCodeHashes(contractAddresses));
|
|
129
126
|
// biome-ignore lint/suspicious/noExplicitAny: it's a generic type
|
|
130
127
|
if (res === "0x") {
|
|
@@ -136,7 +133,7 @@ class SafeValidator extends UnsafeValidator_1.UnsafeValidator {
|
|
|
136
133
|
storageMap
|
|
137
134
|
};
|
|
138
135
|
if (validationResult.returnInfo.sigFailed) {
|
|
139
|
-
throw new
|
|
136
|
+
throw new RpcError("Invalid UserOp signature or paymaster signature", ValidationErrors.InvalidSignature);
|
|
140
137
|
}
|
|
141
138
|
const now = Date.now() / 1000;
|
|
142
139
|
this.logger.debug({
|
|
@@ -145,24 +142,24 @@ class SafeValidator extends UnsafeValidator_1.UnsafeValidator {
|
|
|
145
142
|
now: now
|
|
146
143
|
});
|
|
147
144
|
if (validationResult.returnInfo.validAfter > now - 5) {
|
|
148
|
-
throw new
|
|
145
|
+
throw new RpcError("User operation is not valid yet", ValidationErrors.ExpiresShortly);
|
|
149
146
|
}
|
|
150
147
|
if (validationResult.returnInfo.validUntil < now + 30) {
|
|
151
|
-
throw new
|
|
148
|
+
throw new RpcError("expires too soon", ValidationErrors.ExpiresShortly);
|
|
152
149
|
}
|
|
153
150
|
return validationResult;
|
|
154
151
|
}
|
|
155
152
|
async getValidationResultWithTracerV06(userOperation, entryPoint) {
|
|
156
|
-
const tracerResult = await
|
|
157
|
-
from:
|
|
153
|
+
const tracerResult = await debug_traceCall(this.publicClient, {
|
|
154
|
+
from: zeroAddress,
|
|
158
155
|
to: entryPoint,
|
|
159
|
-
data:
|
|
160
|
-
abi:
|
|
156
|
+
data: encodeFunctionData({
|
|
157
|
+
abi: EntryPointV06Abi,
|
|
161
158
|
functionName: "simulateValidation",
|
|
162
159
|
args: [userOperation]
|
|
163
160
|
})
|
|
164
161
|
}, {
|
|
165
|
-
tracer:
|
|
162
|
+
tracer: bundlerCollectorTracer
|
|
166
163
|
});
|
|
167
164
|
const lastResult = tracerResult.calls.slice(-1)[0];
|
|
168
165
|
if (lastResult.type !== "REVERT") {
|
|
@@ -174,8 +171,8 @@ class SafeValidator extends UnsafeValidator_1.UnsafeValidator {
|
|
|
174
171
|
return [data, tracerResult];
|
|
175
172
|
}
|
|
176
173
|
try {
|
|
177
|
-
const { errorName, args: errorArgs } =
|
|
178
|
-
abi:
|
|
174
|
+
const { errorName, args: errorArgs } = decodeErrorResult({
|
|
175
|
+
abi: EntryPointV06Abi,
|
|
179
176
|
data
|
|
180
177
|
});
|
|
181
178
|
const errFullName = `${errorName}(${errorArgs.toString()})`;
|
|
@@ -196,7 +193,7 @@ class SafeValidator extends UnsafeValidator_1.UnsafeValidator {
|
|
|
196
193
|
if (e.code != null) {
|
|
197
194
|
throw e;
|
|
198
195
|
}
|
|
199
|
-
throw new
|
|
196
|
+
throw new RpcError(data);
|
|
200
197
|
}
|
|
201
198
|
}
|
|
202
199
|
parseErrorResultV06(userOperation,
|
|
@@ -206,15 +203,15 @@ class SafeValidator extends UnsafeValidator_1.UnsafeValidator {
|
|
|
206
203
|
// parse it as FailedOp
|
|
207
204
|
// if its FailedOp, then we have the paymaster param... otherwise its an Error(string)
|
|
208
205
|
let paymaster = errorResult.errorArgs.paymaster;
|
|
209
|
-
if (paymaster ===
|
|
206
|
+
if (paymaster === zeroAddress) {
|
|
210
207
|
paymaster = undefined;
|
|
211
208
|
}
|
|
212
209
|
// eslint-disable-next-line
|
|
213
210
|
const msg = errorResult.errorArgs[1] ?? errorResult.toString();
|
|
214
211
|
if (paymaster == null) {
|
|
215
|
-
throw new
|
|
212
|
+
throw new RpcError(`account validation failed: ${msg}`, ValidationErrors.SimulateValidation);
|
|
216
213
|
}
|
|
217
|
-
throw new
|
|
214
|
+
throw new RpcError(`paymaster validation failed: ${msg}`, ValidationErrors.SimulatePaymasterValidation, {
|
|
218
215
|
paymaster
|
|
219
216
|
});
|
|
220
217
|
}
|
|
@@ -224,7 +221,7 @@ class SafeValidator extends UnsafeValidator_1.UnsafeValidator {
|
|
|
224
221
|
// add it as "addr" member to the "stakeinfo" struct
|
|
225
222
|
// if no address, then return "undefined" instead of struct.
|
|
226
223
|
function fillEntity(data, info) {
|
|
227
|
-
const addr =
|
|
224
|
+
const addr = getAddressFromInitCodeOrPaymasterAndData(data);
|
|
228
225
|
return addr == null
|
|
229
226
|
? undefined
|
|
230
227
|
: {
|
|
@@ -233,7 +230,7 @@ class SafeValidator extends UnsafeValidator_1.UnsafeValidator {
|
|
|
233
230
|
};
|
|
234
231
|
}
|
|
235
232
|
function fillEntityAggregator(data, info) {
|
|
236
|
-
const addr =
|
|
233
|
+
const addr = getAddressFromInitCodeOrPaymasterAndData(data);
|
|
237
234
|
return addr == null
|
|
238
235
|
? undefined
|
|
239
236
|
: {
|
|
@@ -256,22 +253,22 @@ class SafeValidator extends UnsafeValidator_1.UnsafeValidator {
|
|
|
256
253
|
};
|
|
257
254
|
}
|
|
258
255
|
async getValidationResultWithTracerV07(userOperation, entryPoint) {
|
|
259
|
-
const packedUserOperation =
|
|
260
|
-
const entryPointSimulationsCallData =
|
|
261
|
-
abi:
|
|
256
|
+
const packedUserOperation = toPackedUserOperation(userOperation);
|
|
257
|
+
const entryPointSimulationsCallData = encodeFunctionData({
|
|
258
|
+
abi: EntryPointV07SimulationsAbi,
|
|
262
259
|
functionName: "simulateValidation",
|
|
263
260
|
args: [packedUserOperation]
|
|
264
261
|
});
|
|
265
|
-
const callData =
|
|
266
|
-
abi:
|
|
267
|
-
bytecode:
|
|
262
|
+
const callData = encodeDeployData({
|
|
263
|
+
abi: PimlicoEntryPointSimulationsAbi,
|
|
264
|
+
bytecode: PimlicoEntryPointSimulationsBytecode,
|
|
268
265
|
args: [entryPoint, entryPointSimulationsCallData]
|
|
269
266
|
});
|
|
270
|
-
const tracerResult = await
|
|
271
|
-
from:
|
|
267
|
+
const tracerResult = await debug_traceCall(this.publicClient, {
|
|
268
|
+
from: zeroAddress,
|
|
272
269
|
data: callData
|
|
273
270
|
}, {
|
|
274
|
-
tracer:
|
|
271
|
+
tracer: bundlerCollectorTracer
|
|
275
272
|
});
|
|
276
273
|
const lastResult = tracerResult.calls.slice(-1)[0];
|
|
277
274
|
if (lastResult.type !== "REVERT") {
|
|
@@ -283,8 +280,8 @@ class SafeValidator extends UnsafeValidator_1.UnsafeValidator {
|
|
|
283
280
|
return [data, tracerResult];
|
|
284
281
|
}
|
|
285
282
|
try {
|
|
286
|
-
const { errorName, args: errorArgs } =
|
|
287
|
-
abi:
|
|
283
|
+
const { errorName, args: errorArgs } = decodeErrorResult({
|
|
284
|
+
abi: EntryPointV07Abi,
|
|
288
285
|
data
|
|
289
286
|
});
|
|
290
287
|
const errorResult = this.parseErrorResultV07(userOperation, {
|
|
@@ -300,7 +297,7 @@ class SafeValidator extends UnsafeValidator_1.UnsafeValidator {
|
|
|
300
297
|
if (e.code != null) {
|
|
301
298
|
throw e;
|
|
302
299
|
}
|
|
303
|
-
throw new
|
|
300
|
+
throw new RpcError(data);
|
|
304
301
|
}
|
|
305
302
|
}
|
|
306
303
|
parseErrorResultV07(userOperation,
|
|
@@ -308,35 +305,35 @@ class SafeValidator extends UnsafeValidator_1.UnsafeValidator {
|
|
|
308
305
|
errorResult) {
|
|
309
306
|
let decodedResult;
|
|
310
307
|
try {
|
|
311
|
-
|
|
312
|
-
abi:
|
|
308
|
+
decodeErrorResult({
|
|
309
|
+
abi: EntryPointV07SimulationsAbi,
|
|
313
310
|
data: errorResult.errorArgs[1]
|
|
314
311
|
});
|
|
315
|
-
const result =
|
|
316
|
-
abi:
|
|
312
|
+
const result = decodeErrorResult({
|
|
313
|
+
abi: EntryPointV07SimulationsAbi,
|
|
317
314
|
data: errorResult.errorArgs[1]
|
|
318
315
|
});
|
|
319
316
|
if (result.errorName === "FailedOp") {
|
|
320
317
|
if ((result.args?.[1]).includes("AA24")) {
|
|
321
|
-
throw new
|
|
318
|
+
throw new RpcError("Invalid UserOp signature", ValidationErrors.InvalidSignature);
|
|
322
319
|
}
|
|
323
320
|
if ((result.args?.[1]).includes("AA34")) {
|
|
324
|
-
throw new
|
|
321
|
+
throw new RpcError("Invalid UserOp paymasterData", ValidationErrors.InvalidSignature);
|
|
325
322
|
}
|
|
326
|
-
throw new
|
|
323
|
+
throw new RpcError(`ValidationResult error: ${result.args?.[1]}`, ValidationErrors.SimulateValidation);
|
|
327
324
|
}
|
|
328
325
|
if (result.errorName === "FailedOpWithRevert") {
|
|
329
326
|
const data = result.args?.[2];
|
|
330
|
-
const error =
|
|
331
|
-
throw new
|
|
327
|
+
const error = parseFailedOpWithRevert(data);
|
|
328
|
+
throw new RpcError(`ValidationResult error: ${result.args?.[1]} with revert error as: Panic(${error})`, ValidationErrors.SimulateValidation);
|
|
332
329
|
}
|
|
333
|
-
throw new
|
|
330
|
+
throw new RpcError(`ValidationResult error: ${result.errorName}`, ValidationErrors.SimulateValidation);
|
|
334
331
|
}
|
|
335
332
|
catch (e) {
|
|
336
|
-
if (e instanceof
|
|
333
|
+
if (e instanceof RpcError) {
|
|
337
334
|
throw e;
|
|
338
335
|
}
|
|
339
|
-
decodedResult =
|
|
336
|
+
decodedResult = decodeAbiParameters([
|
|
340
337
|
{
|
|
341
338
|
components: [
|
|
342
339
|
{
|
|
@@ -487,5 +484,4 @@ class SafeValidator extends UnsafeValidator_1.UnsafeValidator {
|
|
|
487
484
|
};
|
|
488
485
|
}
|
|
489
486
|
}
|
|
490
|
-
exports.SafeValidator = SafeValidator;
|
|
491
487
|
//# sourceMappingURL=SafeValidator.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SafeValidator.js","sourceRoot":"","sources":["../../../rpc/validation/SafeValidator.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"SafeValidator.js","sourceRoot":"","sources":["../../../rpc/validation/SafeValidator.ts"],"names":[],"mappings":"AAYA,OAAO,EACH,iBAAiB,EACjB,sBAAsB,EACtB,gBAAgB,EAChB,gBAAgB,EAChB,2BAA2B,EAC3B,+BAA+B,EAC/B,oCAAoC,EACpC,QAAQ,EACR,gBAAgB,EAOnB,MAAM,aAAa,CAAA;AAEpB,OAAO,EACH,kCAAkC,EAClC,wCAAwC,EACxC,WAAW,EACX,WAAW,EACX,qBAAqB,EACxB,MAAM,aAAa,CAAA;AACpB,OAAO,EACH,mBAAmB,EACnB,iBAAiB,EACjB,gBAAgB,EAChB,kBAAkB,EAClB,WAAW,EAMd,MAAM,MAAM,CAAA;AACb,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAA;AACrE,OAAO,EACH,sBAAsB,EAGzB,MAAM,6BAA6B,CAAA;AACpC,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAA;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAA;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAE1C,MAAM,OAAO,aACT,SAAQ,eAAe;IAGf,aAAa,CAAe;IAEpC,YACI,YAA4C,EAC5C,aAA4B,EAC5B,MAAc,EACd,OAAgB,EAChB,eAAgC,EAChC,SAAoB,EACpB,4BAAsC,EACtC,0BAAmC,EACnC,aAAa,GAAG,KAAK,EACrB,sBAAsB,GAAG,KAAK;QAE9B,KAAK,CACD,YAAY,EACZ,MAAM,EACN,OAAO,EACP,eAAe,EACf,SAAS,EACT,4BAA4B,EAC5B,0BAA0B,EAC1B,aAAa,EACb,sBAAsB,CACzB,CAAA;QACD,IAAI,CAAC,aAAa,GAAG,aAAa,CAAA;IACtC,CAAC;IAED,KAAK,CAAC,qBAAqB,CACvB,kBAA2B,EAC3B,aAA4B,EAC5B,oBAAqC,EACrC,UAAmB,EACnB,mBAA0C;QAO1C,IAAI,CAAC;YACD,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,mBAAmB,CACnD,aAAa,EACb,oBAAoB,EACpB,UAAU,EACV,mBAAmB,CACtB,CAAA;YAED,IAAI,kBAAkB,EAAE,CAAC;gBACrB,MAAM,OAAO,GAAG,gBAAgB,CAAC,UAAU,CAAC,OAAO,CAAA;gBAEnD,MAAM,EAAE,oBAAoB,EAAE,YAAY,EAAE,GACxC,kCAAkC,CAC9B,aAAa,EACb;oBACI,QAAQ,EAAE,gBAAgB,CAAC,UAAU,CAAC,QAAQ;oBAC9C,IAAI,EAAE,gBAAgB,CAAC,UAAU,CAAC,OAAO;iBAC5C,EACD,IAAI,CAAC,OAAO,CACf,CAAA;gBAEL,IAAI,GAAG,GAAG,EAAE,CAAA;gBAEZ,IACI,WAAW,CAAC,aAAa,CAAC;oBAC1B,aAAa,CAAC,gBAAgB,EAChC,CAAC;oBACC,GAAG,GAAG,EAAE,CAAA;gBACZ,CAAC;gBAED,IACI,WAAW,CAAC,aAAa,CAAC;oBAC1B,aAAa,CAAC,SAAS,KAAK,IAAI,EAClC,CAAC;oBACC,GAAG,GAAG,EAAE,CAAA;gBACZ,CAAC;gBAED,MAAM,eAAe,GACjB,YAAY;oBACZ,oBAAoB,GAAG,GAAG;oBAC1B,aAAa,CAAC,kBAAkB,CAAA;gBAEpC,IAAI,eAAe,GAAG,OAAO,EAAE,CAAC;oBAC5B,MAAM,IAAI,QAAQ,CACd,oCAAoC,eAAe,UAAU,OAAO,EAAE,EACtE,gBAAgB,CAAC,kBAAkB,CACtC,CAAA;gBACL,CAAC;gBAED,uEAAuE;YAC3E,CAAC;YAED,IAAI,CAAC,OAAO,CAAC,+BAA+B,CAAC,GAAG,EAAE,CAAA;YAElD,OAAO,gBAAgB,CAAA;QAC3B,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACT,IAAI,CAAC,OAAO,CAAC,+BAA+B,CAAC,GAAG,EAAE,CAAA;YAClD,MAAM,CAAC,CAAA;QACX,CAAC;IACL,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,SAAmB;QACnC,MAAM,UAAU,GAAG,gBAAgB,CAAC;YAChC,GAAG,EAAE,iBAAiB;YACtB,QAAQ,EAAE,sBAAsB;YAChC,IAAI,EAAE,CAAC,SAAS,CAAC;SACpB,CAAC,CAAA;QAEF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,CAAA;QAEnD,IAAI,IAAI,GAAG,EAAE,CAAA;QAEb,IAAI,CAAC;YACD,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;gBACzB,OAAO,EAAE,MAAM;gBACf,IAAI,EAAE,UAAU;aACnB,CAAC,CAAA;QACN,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACT,MAAM,KAAK,GAAG,CAA2B,CAAA;YACzC,kEAAkE;YAClE,IAAI,GAAI,KAAK,CAAC,IAAI,EAAU,CAAC,IAAI,CAAA;QACrC,CAAC;QAED,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;QAErC,OAAO;YACH,IAAI;YACJ,SAAS;SACZ,CAAA;IACL,CAAC;IAED,KAAK,CAAC,sBAAsB,CACxB,aAA+B,EAC/B,oBAAwC,EACxC,UAAmB,EACnB,aAAoC;QAOpC,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACrB,OAAO,KAAK,CAAC,sBAAsB,CAC/B,aAAa,EACb,oBAAoB,EACpB,UAAU,CACb,CAAA;QACL,CAAC;QAED,IAAI,aAAa,IAAI,aAAa,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtD,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,SAAS,CAAC,CAAA;YAClE,IAAI,IAAI,KAAK,aAAa,CAAC,IAAI,EAAE,CAAC;gBAC9B,MAAM,IAAI,QAAQ,CACd,sBAAsB,EACtB,gBAAgB,CAAC,gBAAgB,CACpC,CAAA;YACL,CAAC;QACL,CAAC;QAED,MAAM,CAAC,GAAG,EAAE,YAAY,CAAC,GAAG,MAAM,IAAI,CAAC,gCAAgC,CACnE,aAAa,EACb,UAAU,CACb,CAAA;QAED,MAAM,CAAC,iBAAiB,EAAE,UAAU,CAAC,GAAG,qBAAqB,CACzD,aAAa,EACb,YAAY,EACZ,GAAG,EACH,UAAU,CAAC,WAAW,EAAa,CACtC,CAAA;QAED,MAAM,UAAU,GACZ,aAAa,IAAI,CAAC,MAAM,IAAI,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAAC,CAAA;QAElE,kEAAkE;QAClE,IAAK,GAAW,KAAK,IAAI,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CACX,oDAAoD,CACvD,CAAA;QACL,CAAC;QAED,IAAI,GAAG,CAAC,UAAU,CAAC,gBAAgB,EAAE,CAAC;YAClC,MAAM,IAAI,QAAQ,CACd,0BAA0B,EAC1B,gBAAgB,CAAC,gBAAgB,CACpC,CAAA;QACL,CAAC;QAED,IAAI,GAAG,CAAC,UAAU,CAAC,kBAAkB,EAAE,CAAC;YACpC,MAAM,IAAI,QAAQ,CACd,8BAA8B,EAC9B,gBAAgB,CAAC,gBAAgB,CACpC,CAAA;QACL,CAAC;QAED,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAA;QAEzC,IACI,GAAG,CAAC,UAAU,CAAC,UAAU,KAAK,SAAS;YACvC,GAAG,CAAC,UAAU,CAAC,UAAU,GAAG,GAAG,GAAG,CAAC,EACrC,CAAC;YACC,MAAM,IAAI,QAAQ,CACd,+CAA+C,GAAG,CAAC,UAAU,CAAC,UAAU,SAAS,GAAG,EAAE,EACtF,gBAAgB,CAAC,cAAc,CAClC,CAAA;QACL,CAAC;QAED,IACI,GAAG,CAAC,UAAU,CAAC,UAAU,KAAK,SAAS;YACvC,GAAG,CAAC,UAAU,CAAC,UAAU,GAAG,GAAG,GAAG,EAAE,EACtC,CAAC;YACC,MAAM,IAAI,QAAQ,CACd,8CAA8C,GAAG,CAAC,UAAU,CAAC,UAAU,SAAS,GAAG,EAAE,EACrF,gBAAgB,CAAC,cAAc,CAClC,CAAA;QACL,CAAC;QAED,OAAO;YACH,GAAG,GAAG;YACN,mBAAmB,EAAE,UAAU;YAC/B,UAAU;SACb,CAAA;IACL,CAAC;IAED,KAAK,CAAC,sBAAsB,CACxB,aAA+B,EAC/B,UAAmB,EACnB,aAAoC;QAOpC,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACrB,OAAO,KAAK,CAAC,sBAAsB,CAAC,aAAa,EAAE,UAAU,CAAC,CAAA;QAClE,CAAC;QAED,IAAI,aAAa,IAAI,aAAa,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtD,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,SAAS,CAAC,CAAA;YAClE,IAAI,IAAI,KAAK,aAAa,CAAC,IAAI,EAAE,CAAC;gBAC9B,MAAM,IAAI,QAAQ,CACd,sBAAsB,EACtB,gBAAgB,CAAC,gBAAgB,CACpC,CAAA;YACL,CAAC;QACL,CAAC;QAED,MAAM,CAAC,GAAG,EAAE,YAAY,CAAC,GAAG,MAAM,IAAI,CAAC,gCAAgC,CACnE,aAAa,EACb,UAAU,CACb,CAAA;QAED,MAAM,CAAC,iBAAiB,EAAE,UAAU,CAAC,GAAG,qBAAqB,CACzD,aAAa,EACb,YAAY,EACZ,GAAG,EACH,UAAU,CAAC,WAAW,EAAa,CACtC,CAAA;QAED,MAAM,UAAU,GACZ,aAAa,IAAI,CAAC,MAAM,IAAI,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAAC,CAAA;QAElE,kEAAkE;QAClE,IAAK,GAAW,KAAK,IAAI,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CACX,oDAAoD,CACvD,CAAA;QACL,CAAC;QACD,MAAM,gBAAgB,GAAG;YACrB,GAAG,GAAG;YACN,mBAAmB,EAAE,UAAU;YAC/B,UAAU;SACb,CAAA;QAED,IAAI,gBAAgB,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC;YACxC,MAAM,IAAI,QAAQ,CACd,iDAAiD,EACjD,gBAAgB,CAAC,gBAAgB,CACpC,CAAA;QACL,CAAC;QAED,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAA;QAE7B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;YACd,UAAU,EAAE,gBAAgB,CAAC,UAAU,CAAC,UAAU;YAClD,UAAU,EAAE,gBAAgB,CAAC,UAAU,CAAC,UAAU;YAClD,GAAG,EAAE,GAAG;SACX,CAAC,CAAA;QAEF,IAAI,gBAAgB,CAAC,UAAU,CAAC,UAAU,GAAG,GAAG,GAAG,CAAC,EAAE,CAAC;YACnD,MAAM,IAAI,QAAQ,CACd,iCAAiC,EACjC,gBAAgB,CAAC,cAAc,CAClC,CAAA;QACL,CAAC;QAED,IAAI,gBAAgB,CAAC,UAAU,CAAC,UAAU,GAAG,GAAG,GAAG,EAAE,EAAE,CAAC;YACpD,MAAM,IAAI,QAAQ,CACd,kBAAkB,EAClB,gBAAgB,CAAC,cAAc,CAClC,CAAA;QACL,CAAC;QAED,OAAO,gBAAgB,CAAA;IAC3B,CAAC;IAED,KAAK,CAAC,gCAAgC,CAClC,aAA+B,EAC/B,UAAmB;QAEnB,MAAM,YAAY,GAAG,MAAM,eAAe,CACtC,IAAI,CAAC,YAAY,EACjB;YACI,IAAI,EAAE,WAAW;YACjB,EAAE,EAAE,UAAU;YACd,IAAI,EAAE,kBAAkB,CAAC;gBACrB,GAAG,EAAE,gBAAgB;gBACrB,YAAY,EAAE,oBAAoB;gBAClC,IAAI,EAAE,CAAC,aAAa,CAAC;aACxB,CAAC;SACL,EACD;YACI,MAAM,EAAE,sBAAsB;SACjC,CACJ,CAAA;QAED,MAAM,UAAU,GAAG,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QAClD,IAAI,UAAU,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC/B,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAA;QACjE,CAAC;QAED,MAAM,IAAI,GAAI,UAAuB,CAAC,IAAI,CAAA;QAC1C,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YAChB,kEAAkE;YAClE,OAAO,CAAC,IAAW,EAAE,YAAY,CAAC,CAAA;QACtC,CAAC;QAED,IAAI,CAAC;YACD,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,iBAAiB,CAAC;gBACrD,GAAG,EAAE,gBAAgB;gBACrB,IAAI;aACP,CAAC,CAAA;YAEF,MAAM,WAAW,GAAG,GAAG,SAAS,IAAI,SAAS,CAAC,QAAQ,EAAE,GAAG,CAAA;YAC3D,MAAM,WAAW,GAAG,IAAI,CAAC,mBAAmB,CAAC,aAAa,EAAE;gBACxD,SAAS;gBACT,SAAS;aACZ,CAAC,CAAA;YACF,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAChC,8BAA8B;gBAC9B,MAAM,IAAI,KAAK,CAAC,WAAW,CAAC,CAAA;YAChC,CAAC;YACD,aAAa;YACb,OAAO,CAAC,WAAW,EAAE,YAAY,CAAC,CAAA;YAClC,kEAAkE;QACtE,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YACd,iCAAiC;YACjC,IAAI,CAAC,CAAC,IAAI,IAAI,IAAI,EAAE,CAAC;gBACjB,MAAM,CAAC,CAAA;YACX,CAAC;YACD,MAAM,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAA;QAC5B,CAAC;IACL,CAAC;IAED,mBAAmB,CACf,aAA+B;IAC/B,kEAAkE;IAClE,WAAkD;QAElD,IAAI,CAAC,WAAW,EAAE,SAAS,EAAE,UAAU,CAAC,kBAAkB,CAAC,EAAE,CAAC;YAC1D,uBAAuB;YACvB,sFAAsF;YACtF,IAAI,SAAS,GAAG,WAAW,CAAC,SAAS,CAAC,SAAS,CAAA;YAC/C,IAAI,SAAS,KAAK,WAAW,EAAE,CAAC;gBAC5B,SAAS,GAAG,SAAS,CAAA;YACzB,CAAC;YAED,2BAA2B;YAC3B,MAAM,GAAG,GACL,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,WAAW,CAAC,QAAQ,EAAE,CAAA;YAEtD,IAAI,SAAS,IAAI,IAAI,EAAE,CAAC;gBACpB,MAAM,IAAI,QAAQ,CACd,8BAA8B,GAAG,EAAE,EACnC,gBAAgB,CAAC,kBAAkB,CACtC,CAAA;YACL,CAAC;YACD,MAAM,IAAI,QAAQ,CACd,gCAAgC,GAAG,EAAE,EACrC,gBAAgB,CAAC,2BAA2B,EAC5C;gBACI,SAAS;aACZ,CACJ,CAAA;QACL,CAAC;QAED,MAAM,CACF,UAAU,EACV,UAAU,EACV,WAAW,EACX,aAAa,EACb,cAAc,CAAC,8DAA8D;SAChF,GAAG,WAAW,CAAC,SAAS,CAAA;QAEzB,+CAA+C;QAC/C,oDAAoD;QACpD,4DAA4D;QAC5D,SAAS,UAAU,CAAC,IAAS,EAAE,IAAe;YAC1C,MAAM,IAAI,GAAG,wCAAwC,CAAC,IAAI,CAAC,CAAA;YAC3D,OAAO,IAAI,IAAI,IAAI;gBACf,CAAC,CAAC,SAAS;gBACX,CAAC,CAAC;oBACI,GAAG,IAAI;oBACP,IAAI;iBACP,CAAA;QACX,CAAC;QAED,SAAS,oBAAoB,CACzB,IAAS,EACT,IAAe;YAEf,MAAM,IAAI,GAAG,wCAAwC,CAAC,IAAI,CAAC,CAAA;YAC3D,OAAO,IAAI,IAAI,IAAI;gBACf,CAAC,CAAC,SAAS;gBACX,CAAC,CAAC;oBACI,UAAU,EAAE,IAAI;oBAChB,SAAS,EAAE;wBACP,GAAG,IAAI;wBACP,IAAI;qBACP;iBACJ,CAAA;QACX,CAAC;QAED,OAAO;YACH,UAAU;YACV,UAAU,EAAE;gBACR,GAAG,UAAU;gBACb,IAAI,EAAE,aAAa,CAAC,MAAM;aAC7B;YACD,WAAW,EAAE,UAAU,CAAC,aAAa,CAAC,QAAQ,EAAE,WAAW,CAAC;YAC5D,aAAa,EAAE,UAAU,CACrB,aAAa,CAAC,gBAAgB,EAC9B,aAAa,CAChB;YACD,cAAc,EAAE,oBAAoB,CAChC,cAAc,EAAE,gBAAgB,EAChC,cAAc,EAAE,SAAS,CAC5B;SACJ,CAAA;IACL,CAAC;IAED,KAAK,CAAC,gCAAgC,CAClC,aAA+B,EAC/B,UAAmB;QAEnB,MAAM,mBAAmB,GAAG,qBAAqB,CAAC,aAAa,CAAC,CAAA;QAEhE,MAAM,6BAA6B,GAAG,kBAAkB,CAAC;YACrD,GAAG,EAAE,2BAA2B;YAChC,YAAY,EAAE,oBAAoB;YAClC,IAAI,EAAE,CAAC,mBAAmB,CAAC;SAC9B,CAAC,CAAA;QAEF,MAAM,QAAQ,GAAG,gBAAgB,CAAC;YAC9B,GAAG,EAAE,+BAA+B;YACpC,QAAQ,EAAE,oCAAoC;YAC9C,IAAI,EAAE,CAAC,UAAU,EAAE,6BAA6B,CAAC;SACpD,CAAC,CAAA;QAEF,MAAM,YAAY,GAAG,MAAM,eAAe,CACtC,IAAI,CAAC,YAAY,EACjB;YACI,IAAI,EAAE,WAAW;YACjB,IAAI,EAAE,QAAQ;SACjB,EACD;YACI,MAAM,EAAE,sBAAsB;SACjC,CACJ,CAAA;QAED,MAAM,UAAU,GAAG,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QAClD,IAAI,UAAU,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC/B,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAA;QACjE,CAAC;QAED,MAAM,IAAI,GAAI,UAAuB,CAAC,IAAI,CAAA;QAC1C,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YAChB,kEAAkE;YAClE,OAAO,CAAC,IAAW,EAAE,YAAY,CAAC,CAAA;QACtC,CAAC;QAED,IAAI,CAAC;YACD,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,iBAAiB,CAAC;gBACrD,GAAG,EAAE,gBAAgB;gBACrB,IAAI;aACP,CAAC,CAAA;YAEF,MAAM,WAAW,GAAG,IAAI,CAAC,mBAAmB,CAAC,aAAa,EAAE;gBACxD,SAAS;gBACT,SAAS;aACZ,CAAC,CAAA;YAEF,aAAa;YACb,OAAO,CAAC,WAAW,EAAE,YAAY,CAAC,CAAA;YAClC,kEAAkE;QACtE,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YACd,iCAAiC;YACjC,IAAI,CAAC,CAAC,IAAI,IAAI,IAAI,EAAE,CAAC;gBACjB,MAAM,CAAC,CAAA;YACX,CAAC;YACD,MAAM,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAA;QAC5B,CAAC;IACL,CAAC;IAED,mBAAmB,CACf,aAA+B;IAC/B,kEAAkE;IAClE,WAAkD;QAElD,IAAI,aAAkB,CAAA;QAEtB,IAAI,CAAC;YACD,iBAAiB,CAAC;gBACd,GAAG,EAAE,2BAA2B;gBAChC,IAAI,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC,CAAQ;aACxC,CAAC,CAAA;YAEF,MAAM,MAAM,GAAG,iBAAiB,CAAC;gBAC7B,GAAG,EAAE,2BAA2B;gBAChC,IAAI,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC,CAAQ;aACxC,CAAC,CAAA;YAEF,IAAI,MAAM,CAAC,SAAS,KAAK,UAAU,EAAE,CAAC;gBAClC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAY,CAAA,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;oBAChD,MAAM,IAAI,QAAQ,CACd,0BAA0B,EAC1B,gBAAgB,CAAC,gBAAgB,CACpC,CAAA;gBACL,CAAC;gBAED,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAY,CAAA,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;oBAChD,MAAM,IAAI,QAAQ,CACd,8BAA8B,EAC9B,gBAAgB,CAAC,gBAAgB,CACpC,CAAA;gBACL,CAAC;gBAED,MAAM,IAAI,QAAQ,CACd,2BAA2B,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,EAC7C,gBAAgB,CAAC,kBAAkB,CACtC,CAAA;YACL,CAAC;YAED,IAAI,MAAM,CAAC,SAAS,KAAK,oBAAoB,EAAE,CAAC;gBAC5C,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAQ,CAAA;gBACpC,MAAM,KAAK,GAAG,uBAAuB,CAAC,IAAI,CAAC,CAAA;gBAE3C,MAAM,IAAI,QAAQ,CACd,2BAA2B,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,gCAAgC,KAAK,GAAG,EACnF,gBAAgB,CAAC,kBAAkB,CACtC,CAAA;YACL,CAAC;YAED,MAAM,IAAI,QAAQ,CACd,2BAA2B,MAAM,CAAC,SAAS,EAAE,EAC7C,gBAAgB,CAAC,kBAAkB,CACtC,CAAA;QACL,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACT,IAAI,CAAC,YAAY,QAAQ,EAAE,CAAC;gBACxB,MAAM,CAAC,CAAA;YACX,CAAC;YACD,aAAa,GAAG,mBAAmB,CAC/B;gBACI;oBACI,UAAU,EAAE;wBACR;4BACI,UAAU,EAAE;gCACR;oCACI,YAAY,EAAE,SAAS;oCACvB,IAAI,EAAE,UAAU;oCAChB,IAAI,EAAE,SAAS;iCAClB;gCACD;oCACI,YAAY,EAAE,SAAS;oCACvB,IAAI,EAAE,SAAS;oCACf,IAAI,EAAE,SAAS;iCAClB;gCACD;oCACI,YAAY,EAAE,SAAS;oCACvB,IAAI,EAAE,uBAAuB;oCAC7B,IAAI,EAAE,SAAS;iCAClB;gCACD;oCACI,YAAY,EAAE,SAAS;oCACvB,IAAI,EAAE,yBAAyB;oCAC/B,IAAI,EAAE,SAAS;iCAClB;gCACD;oCACI,YAAY,EAAE,OAAO;oCACrB,IAAI,EAAE,kBAAkB;oCACxB,IAAI,EAAE,OAAO;iCAChB;6BACJ;4BACD,YAAY,EAAE,+BAA+B;4BAC7C,IAAI,EAAE,YAAY;4BAClB,IAAI,EAAE,OAAO;yBAChB;wBACD;4BACI,UAAU,EAAE;gCACR;oCACI,YAAY,EAAE,SAAS;oCACvB,IAAI,EAAE,OAAO;oCACb,IAAI,EAAE,SAAS;iCAClB;gCACD;oCACI,YAAY,EAAE,SAAS;oCACvB,IAAI,EAAE,iBAAiB;oCACvB,IAAI,EAAE,SAAS;iCAClB;6BACJ;4BACD,YAAY,EAAE,gCAAgC;4BAC9C,IAAI,EAAE,YAAY;4BAClB,IAAI,EAAE,OAAO;yBAChB;wBACD;4BACI,UAAU,EAAE;gCACR;oCACI,YAAY,EAAE,SAAS;oCACvB,IAAI,EAAE,OAAO;oCACb,IAAI,EAAE,SAAS;iCAClB;gCACD;oCACI,YAAY,EAAE,SAAS;oCACvB,IAAI,EAAE,iBAAiB;oCACvB,IAAI,EAAE,SAAS;iCAClB;6BACJ;4BACD,YAAY,EAAE,gCAAgC;4BAC9C,IAAI,EAAE,aAAa;4BACnB,IAAI,EAAE,OAAO;yBAChB;wBACD;4BACI,UAAU,EAAE;gCACR;oCACI,YAAY,EAAE,SAAS;oCACvB,IAAI,EAAE,OAAO;oCACb,IAAI,EAAE,SAAS;iCAClB;gCACD;oCACI,YAAY,EAAE,SAAS;oCACvB,IAAI,EAAE,iBAAiB;oCACvB,IAAI,EAAE,SAAS;iCAClB;6BACJ;4BACD,YAAY,EAAE,gCAAgC;4BAC9C,IAAI,EAAE,eAAe;4BACrB,IAAI,EAAE,OAAO;yBAChB;wBACD;4BACI,UAAU,EAAE;gCACR;oCACI,YAAY,EAAE,SAAS;oCACvB,IAAI,EAAE,YAAY;oCAClB,IAAI,EAAE,SAAS;iCAClB;gCACD;oCACI,UAAU,EAAE;wCACR;4CACI,YAAY,EAAE,SAAS;4CACvB,IAAI,EAAE,OAAO;4CACb,IAAI,EAAE,SAAS;yCAClB;wCACD;4CACI,YAAY,EAAE,SAAS;4CACvB,IAAI,EAAE,iBAAiB;4CACvB,IAAI,EAAE,SAAS;yCAClB;qCACJ;oCACD,YAAY,EACR,gCAAgC;oCACpC,IAAI,EAAE,WAAW;oCACjB,IAAI,EAAE,OAAO;iCAChB;6BACJ;4BACD,YAAY,EACR,wCAAwC;4BAC5C,IAAI,EAAE,gBAAgB;4BACtB,IAAI,EAAE,OAAO;yBAChB;qBACJ;oBACD,YAAY,EACR,gDAAgD;oBACpD,IAAI,EAAE,EAAE;oBACR,IAAI,EAAE,OAAO;iBAChB;aACJ,EACD,WAAW,CAAC,SAAS,CAAC,CAAC,CAAQ,CAClC,CAAC,CAAC,CAAC,CAAA;QACR,CAAC;QAED,MAAM,gBAAgB,GAAG,IAAI,CAAC,yBAAyB,CACnD,aAAa,CAAC,UAAU,CAAC,qBAAqB,EAC9C,aAAa,CAAC,UAAU,CAAC,uBAAuB,CACnD,CAAA;QAED,OAAO;YACH,UAAU,EAAE;gBACR,GAAG,aAAa,CAAC,UAAU;gBAC3B,gBAAgB,EAAE,gBAAgB,CAAC,gBAAgB;gBACnD,kBAAkB,EAAE,gBAAgB,CAAC,kBAAkB;gBACvD,UAAU,EAAE,gBAAgB,CAAC,UAAU;gBACvC,UAAU,EAAE,gBAAgB,CAAC,UAAU;aAC1C;YACD,UAAU,EAAE;gBACR,GAAG,aAAa,CAAC,UAAU;gBAC3B,IAAI,EAAE,aAAa,CAAC,MAAM;aAC7B;YACD,WAAW,EACP,aAAa,CAAC,OAAO,IAAI,aAAa,CAAC,WAAW;gBAC9C,CAAC,CAAC;oBACI,GAAG,aAAa,CAAC,WAAW;oBAC5B,IAAI,EAAE,aAAa,CAAC,OAAO;iBAC9B;gBACH,CAAC,CAAC,SAAS;YACnB,aAAa,EACT,aAAa,CAAC,SAAS,IAAI,aAAa,CAAC,aAAa;gBAClD,CAAC,CAAC;oBACI,GAAG,aAAa,CAAC,aAAa;oBAC9B,IAAI,EAAE,aAAa,CAAC,SAAS;iBAChC;gBACH,CAAC,CAAC,SAAS;YACnB,cAAc,EAAE,aAAa,CAAC,cAAc;SAC/C,CAAA;IACL,CAAC;CACJ"}
|
|
@@ -1,17 +1,14 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.tracerResultParserV06 = void 0;
|
|
4
|
-
const types_1 = require("../../types/index.js");
|
|
1
|
+
import { EntryPointV06Abi, PaymasterAbi, RpcError, SenderCreatorAbi, ValidationErrors } from "../../types/index.js";
|
|
5
2
|
// This file contains references to validation rules, in the format [xxx-###]
|
|
6
3
|
// where xxx is OP/STO/COD/EP/SREP/EREP/UREP/ALT, and ### is a number
|
|
7
4
|
// the validation rules are defined in erc-aa-validation.md
|
|
8
|
-
|
|
9
|
-
const abi = [...
|
|
5
|
+
import { decodeErrorResult, decodeFunctionResult, getFunctionSelector, hexToBigInt, keccak256, pad } from "viem";
|
|
6
|
+
const abi = [...SenderCreatorAbi, ...EntryPointV06Abi, ...PaymasterAbi];
|
|
10
7
|
// biome-ignore lint/suspicious/noExplicitAny: it's a generic type
|
|
11
8
|
const functionSignatureToMethodName = (hash) => {
|
|
12
9
|
let functionName = undefined;
|
|
13
10
|
for (const item of abi) {
|
|
14
|
-
const signature =
|
|
11
|
+
const signature = getFunctionSelector(item);
|
|
15
12
|
if (signature === hash) {
|
|
16
13
|
functionName = item.name;
|
|
17
14
|
}
|
|
@@ -61,7 +58,7 @@ function parseCallStack(tracerResults) {
|
|
|
61
58
|
else {
|
|
62
59
|
const method = callCatch(() => functionSignatureToMethodName(top.method), top.method);
|
|
63
60
|
if (c.type === "REVERT") {
|
|
64
|
-
const parsedError = callCatch(() =>
|
|
61
|
+
const parsedError = callCatch(() => decodeErrorResult({ abi: abi, data: returnData }), returnData);
|
|
65
62
|
out.push({
|
|
66
63
|
to: top.to,
|
|
67
64
|
from: top.from,
|
|
@@ -72,7 +69,7 @@ function parseCallStack(tracerResults) {
|
|
|
72
69
|
});
|
|
73
70
|
}
|
|
74
71
|
else {
|
|
75
|
-
const ret = callCatch(() =>
|
|
72
|
+
const ret = callCatch(() => decodeFunctionResult({
|
|
76
73
|
abi: abi,
|
|
77
74
|
functionName: method,
|
|
78
75
|
data: returnData
|
|
@@ -114,14 +111,14 @@ function parseEntitySlots(stakeInfoEntities, keccak) {
|
|
|
114
111
|
if (!addr) {
|
|
115
112
|
continue;
|
|
116
113
|
}
|
|
117
|
-
const addrPadded =
|
|
114
|
+
const addrPadded = pad(addr).toLowerCase();
|
|
118
115
|
if (!entitySlots[addr]) {
|
|
119
116
|
entitySlots[addr] = new Set();
|
|
120
117
|
}
|
|
121
118
|
const currentEntitySlots = entitySlots[addr];
|
|
122
119
|
// valid slot: the slot was generated by keccak(entityAddr || ...)
|
|
123
120
|
if (k.startsWith(addrPadded)) {
|
|
124
|
-
currentEntitySlots.add(
|
|
121
|
+
currentEntitySlots.add(keccak256(k));
|
|
125
122
|
}
|
|
126
123
|
// disabled 2nd rule: .. or by keccak( ... || OWN) where OWN is previous allowed slot
|
|
127
124
|
// if (k.length === 130 && currentEntitySlots.has(k.slice(-64))) {
|
|
@@ -133,7 +130,7 @@ function parseEntitySlots(stakeInfoEntities, keccak) {
|
|
|
133
130
|
}
|
|
134
131
|
// method-signature for calls from entryPoint
|
|
135
132
|
const callsFromEntryPointMethodSigs = {
|
|
136
|
-
factory:
|
|
133
|
+
factory: getFunctionSelector({
|
|
137
134
|
inputs: [
|
|
138
135
|
{
|
|
139
136
|
internalType: "bytes",
|
|
@@ -152,7 +149,7 @@ const callsFromEntryPointMethodSigs = {
|
|
|
152
149
|
stateMutability: "nonpayable",
|
|
153
150
|
type: "function"
|
|
154
151
|
}),
|
|
155
|
-
account:
|
|
152
|
+
account: getFunctionSelector({
|
|
156
153
|
inputs: [
|
|
157
154
|
{
|
|
158
155
|
components: [
|
|
@@ -238,7 +235,7 @@ const callsFromEntryPointMethodSigs = {
|
|
|
238
235
|
stateMutability: "nonpayable",
|
|
239
236
|
type: "function"
|
|
240
237
|
}),
|
|
241
|
-
paymaster:
|
|
238
|
+
paymaster: getFunctionSelector({
|
|
242
239
|
inputs: [
|
|
243
240
|
{
|
|
244
241
|
components: [
|
|
@@ -338,7 +335,7 @@ const callsFromEntryPointMethodSigs = {
|
|
|
338
335
|
* @param entryPoint the entryPoint that hosted the "simulatedValidation" traced call.
|
|
339
336
|
* @return list of contract addresses referenced by this UserOp
|
|
340
337
|
*/
|
|
341
|
-
function tracerResultParserV06(userOperation, tracerResults, validationResult, entryPointAddress) {
|
|
338
|
+
export function tracerResultParserV06(userOperation, tracerResults, validationResult, entryPointAddress) {
|
|
342
339
|
// todo: block access to no-code addresses (might need update to tracer)
|
|
343
340
|
// opcodes from [OP-011]
|
|
344
341
|
const bannedOpCodes = new Set([
|
|
@@ -372,13 +369,13 @@ function tracerResultParserV06(userOperation, tracerResults, validationResult, e
|
|
|
372
369
|
call.method !== "depositTo");
|
|
373
370
|
// [OP-054]
|
|
374
371
|
if (callInfoEntryPoint) {
|
|
375
|
-
throw new
|
|
372
|
+
throw new RpcError(`illegal call into EntryPoint during validation ${callInfoEntryPoint?.method}`, ValidationErrors.OpcodeValidation);
|
|
376
373
|
}
|
|
377
374
|
// [OP-061]
|
|
378
375
|
const illegalNonZeroValueCall = callStack.find((call) => call.to !== entryPointAddress &&
|
|
379
|
-
|
|
376
|
+
hexToBigInt(call.value ?? "0x0") !== 0n);
|
|
380
377
|
if (illegalNonZeroValueCall) {
|
|
381
|
-
throw new
|
|
378
|
+
throw new RpcError("May not may CALL with value", ValidationErrors.OpcodeValidation);
|
|
382
379
|
}
|
|
383
380
|
const sender = userOperation.sender.toLowerCase();
|
|
384
381
|
// stake info per "number" level (factory, sender, paymaster)
|
|
@@ -405,22 +402,22 @@ function tracerResultParserV06(userOperation, tracerResults, validationResult, e
|
|
|
405
402
|
const access = currentNumLevel.access;
|
|
406
403
|
// [OP-020]
|
|
407
404
|
if (currentNumLevel.oog ?? false) {
|
|
408
|
-
throw new
|
|
405
|
+
throw new RpcError(`${entityTitle} internally reverts on oog`, ValidationErrors.OpcodeValidation);
|
|
409
406
|
}
|
|
410
407
|
// opcodes from [OP-011]
|
|
411
408
|
for (const opcode of Object.keys(opcodes)) {
|
|
412
409
|
if (bannedOpCodes.has(opcode)) {
|
|
413
|
-
throw new
|
|
410
|
+
throw new RpcError(`${entityTitle} uses banned opcode: ${opcode}`, ValidationErrors.OpcodeValidation);
|
|
414
411
|
}
|
|
415
412
|
}
|
|
416
413
|
// [OP-031]
|
|
417
414
|
if (entityTitle === "factory") {
|
|
418
415
|
if ((opcodes.CREATE2 ?? 0) > 1) {
|
|
419
|
-
throw new
|
|
416
|
+
throw new RpcError(`${entityTitle} with too many CREATE2`, ValidationErrors.OpcodeValidation);
|
|
420
417
|
}
|
|
421
418
|
}
|
|
422
419
|
else if (opcodes.CREATE2) {
|
|
423
|
-
throw new
|
|
420
|
+
throw new RpcError(`${entityTitle} uses banned opcode: CREATE2`, ValidationErrors.OpcodeValidation);
|
|
424
421
|
}
|
|
425
422
|
for (const [addr, { reads, writes }] of Object.entries(access)) {
|
|
426
423
|
// testing read/write access on contract "addr"
|
|
@@ -439,7 +436,7 @@ function tracerResultParserV06(userOperation, tracerResults, validationResult, e
|
|
|
439
436
|
// @param addr - the address we try to check for association with
|
|
440
437
|
// @param reverseKeccak - a mapping we built for keccak values that contained the address
|
|
441
438
|
function associatedWith(slot, addr, entitySlots) {
|
|
442
|
-
const addrPadded =
|
|
439
|
+
const addrPadded = pad(addr, {
|
|
443
440
|
size: 32
|
|
444
441
|
}).toLowerCase();
|
|
445
442
|
if (slot.toLowerCase() === addrPadded) {
|
|
@@ -449,11 +446,11 @@ function tracerResultParserV06(userOperation, tracerResults, validationResult, e
|
|
|
449
446
|
if (!k) {
|
|
450
447
|
return false;
|
|
451
448
|
}
|
|
452
|
-
const slotN =
|
|
449
|
+
const slotN = hexToBigInt(slot);
|
|
453
450
|
// scan all slot entries to check of the given slot is within a structure, starting at that offset.
|
|
454
451
|
// assume a maximum size on a (static) structure size.
|
|
455
452
|
for (const k1 of k.keys()) {
|
|
456
|
-
const kn =
|
|
453
|
+
const kn = hexToBigInt(k1);
|
|
457
454
|
if (slotN >= kn && slotN < kn + 128n) {
|
|
458
455
|
return true;
|
|
459
456
|
}
|
|
@@ -497,7 +494,7 @@ function tracerResultParserV06(userOperation, tracerResults, validationResult, e
|
|
|
497
494
|
? "write to"
|
|
498
495
|
: "read from";
|
|
499
496
|
const message = `${entityTitle} has forbidden ${readWrite} ${nameAddr(addr, entityTitle)} slot ${slot}`;
|
|
500
|
-
throw new
|
|
497
|
+
throw new RpcError(message, ValidationErrors.OpcodeValidation, {
|
|
501
498
|
[entityTitle]: entStakes?.addr
|
|
502
499
|
});
|
|
503
500
|
}
|
|
@@ -534,7 +531,7 @@ function tracerResultParserV06(userOperation, tracerResults, validationResult, e
|
|
|
534
531
|
throw new Error(`internal: ${entityTitle} not in userOp, but has storage accesses in ${JSON.stringify(access)}`);
|
|
535
532
|
}
|
|
536
533
|
if (!isStaked(entStake)) {
|
|
537
|
-
throw new
|
|
534
|
+
throw new RpcError(failureMessage, ValidationErrors.OpcodeValidation, {
|
|
538
535
|
[entityTitle]: entStakes?.addr
|
|
539
536
|
});
|
|
540
537
|
}
|
|
@@ -554,7 +551,7 @@ function tracerResultParserV06(userOperation, tracerResults, validationResult, e
|
|
|
554
551
|
}
|
|
555
552
|
// [OP-041]
|
|
556
553
|
if (illegalZeroCodeAccess) {
|
|
557
|
-
throw new
|
|
554
|
+
throw new RpcError(`${entityTitle} accesses un-deployed contract address ${illegalZeroCodeAccess?.address} with opcode ${illegalZeroCodeAccess?.opcode}`, ValidationErrors.OpcodeValidation);
|
|
558
555
|
}
|
|
559
556
|
let illegalEntryPointCodeAccess = undefined;
|
|
560
557
|
for (const addr of Object.keys(currentNumLevel.extCodeAccessInfo)) {
|
|
@@ -565,7 +562,7 @@ function tracerResultParserV06(userOperation, tracerResults, validationResult, e
|
|
|
565
562
|
}
|
|
566
563
|
}
|
|
567
564
|
if (illegalEntryPointCodeAccess) {
|
|
568
|
-
throw new
|
|
565
|
+
throw new RpcError(`${entityTitle} accesses EntryPoint contract address ${entryPointAddress} with opcode ${illegalEntryPointCodeAccess}`, ValidationErrors.OpcodeValidation);
|
|
569
566
|
}
|
|
570
567
|
}
|
|
571
568
|
// return list of contract addresses by this UserOp. already known not to contain zero-sized addresses.
|
|
@@ -578,5 +575,4 @@ function tracerResultParserV06(userOperation, tracerResults, validationResult, e
|
|
|
578
575
|
}
|
|
579
576
|
return [addresses, storageMap];
|
|
580
577
|
}
|
|
581
|
-
exports.tracerResultParserV06 = tracerResultParserV06;
|
|
582
578
|
//# sourceMappingURL=TracerResultParserV06.js.map
|