@pimlico/alto 0.0.0-main.20250713T195225 → 0.0.0-main.20250714T160357
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/contracts/ERC20.sol/ERC20.json +1 -0
- package/contracts/EntryPointSimulations.sol/EntryPointSimulations07.json +1 -1
- package/contracts/EntryPointSimulations.sol/EntryPointSimulations08.json +1 -1
- package/contracts/IEntryPointSimulations.sol/IEntryPointSimulations.json +1 -1
- package/contracts/LibBytes.sol/LibBytes.json +1 -1
- package/contracts/PimlicoSimulations.sol/PimlicoSimulations.json +1 -1
- package/contracts/SenderCreator.sol/SenderCreator.json +1 -1
- package/contracts/build-info/{db6850b431aca366.json → 7710b5a048396e70.json} +1 -1
- package/contracts/build-info/880955d5786bfdae.json +1 -0
- package/contracts/contracts/interfaces/IAggregator.sol/IAggregator.json +1 -1
- package/contracts/contracts/interfaces/IEntryPoint.sol/IEntryPoint.json +1 -1
- package/contracts/contracts/interfaces/INonceManager.sol/INonceManager.json +1 -1
- package/contracts/contracts/interfaces/IStakeManager.sol/IStakeManager.json +1 -1
- package/contracts/interfaces/IAggregator.sol/IAggregator.json +1 -1
- package/contracts/interfaces/IEntryPoint.sol/IEntryPoint.json +1 -1
- package/contracts/interfaces/INonceManager.sol/INonceManager.json +1 -1
- package/contracts/interfaces/IStakeManager.sol/IStakeManager.json +1 -1
- package/contracts/utils/Exec.sol/Exec.json +1 -0
- package/esm/cli/config/bundler.d.ts +32 -20
- package/esm/cli/config/bundler.js +2 -0
- package/esm/cli/config/bundler.js.map +1 -1
- package/esm/cli/config/options.js +11 -0
- package/esm/cli/config/options.js.map +1 -1
- package/esm/contracts/EntryPointSimulations.sol/EntryPointSimulations07.json +1 -1
- package/esm/contracts/EntryPointSimulations.sol/EntryPointSimulations08.json +1 -1
- package/esm/contracts/PimlicoSimulations.sol/PimlicoSimulations.json +1 -1
- package/esm/mempool/monitoring.d.ts +1 -0
- package/esm/mempool/monitoring.js +29 -11
- package/esm/mempool/monitoring.js.map +1 -1
- package/esm/rpc/estimation/gasEstimations06.js +7 -26
- package/esm/rpc/estimation/gasEstimations06.js.map +1 -1
- package/esm/rpc/estimation/gasEstimations07.js +13 -25
- package/esm/rpc/estimation/gasEstimations07.js.map +1 -1
- package/esm/rpc/estimation/utils.d.ts +17 -1
- package/esm/rpc/estimation/utils.js +52 -2
- package/esm/rpc/estimation/utils.js.map +1 -1
- package/esm/rpc/methods/index.js +2 -0
- package/esm/rpc/methods/index.js.map +1 -1
- package/esm/rpc/methods/pimlico_simulateAssetChange.d.ts +1841 -0
- package/esm/rpc/methods/pimlico_simulateAssetChange.js +118 -0
- package/esm/rpc/methods/pimlico_simulateAssetChange.js.map +1 -0
- package/esm/store/createMempoolStore.js +87 -24
- package/esm/store/createMempoolStore.js.map +1 -1
- package/esm/types/contracts/PimlicoSimulations.d.ts +309 -0
- package/esm/types/contracts/PimlicoSimulations.js +399 -0
- package/esm/types/contracts/PimlicoSimulations.js.map +1 -1
- package/esm/types/schemas.d.ts +12335 -7489
- package/esm/types/schemas.js +32 -2
- package/esm/types/schemas.js.map +1 -1
- package/esm/utils/minMaxQueue/createRedisMinMaxQueue.js +59 -43
- package/esm/utils/minMaxQueue/createRedisMinMaxQueue.js.map +1 -1
- package/package.json +1 -1
- package/contracts/build-info/7a4c5850aabacc3b.json +0 -1
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
import { ExecutionErrors, RpcError, ValidationErrors, pimlicoSimulateAssetChangeSchema, pimlicoSimulationsAbi } from "../../types/index.js";
|
|
2
|
+
import { isVersion06, isVersion07, isVersion08, toPackedUserOp } from "../../utils/index.js";
|
|
3
|
+
import { getContract } from "viem";
|
|
4
|
+
import { getFilterOpsStateOverride } from "../../utils/entryPointOverrides.js";
|
|
5
|
+
import { createMethodHandler } from "../createMethodHandler.js";
|
|
6
|
+
import { decodeSimulateHandleOpError, prepareSimulationOverrides07, simulationErrors } from "../estimation/utils.js";
|
|
7
|
+
export const pimlicoSimulateAssetChangeHandler = createMethodHandler({
|
|
8
|
+
method: "pimlico_simulateAssetChange",
|
|
9
|
+
schema: pimlicoSimulateAssetChangeSchema,
|
|
10
|
+
handler: async ({ rpcHandler, params }) => {
|
|
11
|
+
const [userOp, entryPoint, trackingParams, stateOverrides] = params;
|
|
12
|
+
const { addresses, tokens } = trackingParams;
|
|
13
|
+
const logger = rpcHandler.logger.child({
|
|
14
|
+
entryPoint,
|
|
15
|
+
addresses,
|
|
16
|
+
tokens
|
|
17
|
+
});
|
|
18
|
+
// Check if pimlico simulation contract is configured
|
|
19
|
+
if (!rpcHandler.config.pimlicoSimulationContract) {
|
|
20
|
+
logger.warn("pimlicoSimulation must be provided");
|
|
21
|
+
throw new RpcError("pimlicoSimulation must be provided", ValidationErrors.InvalidFields);
|
|
22
|
+
}
|
|
23
|
+
const is07 = isVersion07(userOp);
|
|
24
|
+
const is08 = isVersion08(userOp, entryPoint);
|
|
25
|
+
const pimlicoSimulation = getContract({
|
|
26
|
+
abi: [...pimlicoSimulationsAbi, ...simulationErrors],
|
|
27
|
+
address: rpcHandler.config.pimlicoSimulationContract,
|
|
28
|
+
client: rpcHandler.config.publicClient
|
|
29
|
+
});
|
|
30
|
+
let epSimulationsAddress;
|
|
31
|
+
if (is08) {
|
|
32
|
+
epSimulationsAddress =
|
|
33
|
+
rpcHandler.config.entrypointSimulationContractV8;
|
|
34
|
+
}
|
|
35
|
+
else if (is07) {
|
|
36
|
+
epSimulationsAddress =
|
|
37
|
+
rpcHandler.config.entrypointSimulationContractV7;
|
|
38
|
+
}
|
|
39
|
+
// Prepare state override based on version
|
|
40
|
+
let stateOverride;
|
|
41
|
+
if (isVersion06(userOp) && rpcHandler.config.codeOverrideSupport) {
|
|
42
|
+
stateOverride = getFilterOpsStateOverride({
|
|
43
|
+
version: "0.6",
|
|
44
|
+
entryPoint,
|
|
45
|
+
baseFeePerGas: await rpcHandler.gasPriceManager
|
|
46
|
+
.getBaseFee()
|
|
47
|
+
.catch(() => 0n)
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
else if (is07 || is08) {
|
|
51
|
+
stateOverride = await prepareSimulationOverrides07({
|
|
52
|
+
userOp: userOp,
|
|
53
|
+
queuedUserOps: [],
|
|
54
|
+
epSimulationsAddress: epSimulationsAddress,
|
|
55
|
+
gasPriceManager: rpcHandler.gasPriceManager,
|
|
56
|
+
userStateOverrides: stateOverrides,
|
|
57
|
+
config: rpcHandler.config
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
try {
|
|
61
|
+
let result;
|
|
62
|
+
if (is08) {
|
|
63
|
+
// For EntryPoint v0.8
|
|
64
|
+
const { result: simResult } = await pimlicoSimulation.simulate.simulateAssetChange08([
|
|
65
|
+
toPackedUserOp(userOp),
|
|
66
|
+
entryPoint,
|
|
67
|
+
epSimulationsAddress,
|
|
68
|
+
addresses,
|
|
69
|
+
tokens
|
|
70
|
+
], {
|
|
71
|
+
stateOverride
|
|
72
|
+
});
|
|
73
|
+
result = [...simResult];
|
|
74
|
+
}
|
|
75
|
+
else if (is07) {
|
|
76
|
+
// For EntryPoint v0.7
|
|
77
|
+
const { result: simResult } = await pimlicoSimulation.simulate.simulateAssetChange07([
|
|
78
|
+
toPackedUserOp(userOp),
|
|
79
|
+
entryPoint,
|
|
80
|
+
epSimulationsAddress,
|
|
81
|
+
addresses,
|
|
82
|
+
tokens
|
|
83
|
+
], {
|
|
84
|
+
stateOverride
|
|
85
|
+
});
|
|
86
|
+
result = [...simResult];
|
|
87
|
+
}
|
|
88
|
+
else {
|
|
89
|
+
const { result: simResult } = await pimlicoSimulation.simulate.simulateAssetChange06([
|
|
90
|
+
userOp,
|
|
91
|
+
entryPoint,
|
|
92
|
+
addresses,
|
|
93
|
+
tokens
|
|
94
|
+
], {
|
|
95
|
+
stateOverride
|
|
96
|
+
});
|
|
97
|
+
result = [...simResult];
|
|
98
|
+
}
|
|
99
|
+
return result.map(({ addr: address, token, balanceBefore, balanceAfter }) => {
|
|
100
|
+
return {
|
|
101
|
+
address,
|
|
102
|
+
token,
|
|
103
|
+
balanceBefore,
|
|
104
|
+
balanceAfter
|
|
105
|
+
};
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
catch (error) {
|
|
109
|
+
const decodedError = decodeSimulateHandleOpError(error, logger);
|
|
110
|
+
if (decodedError.result === "failed") {
|
|
111
|
+
throw new RpcError(`UserOperation reverted during simulation with reason: ${decodedError.data}`, ExecutionErrors.UserOperationReverted);
|
|
112
|
+
}
|
|
113
|
+
logger.warn("Failed to decode simulation error");
|
|
114
|
+
throw new RpcError("Failed to decode simulation error", ValidationErrors.InvalidFields);
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
});
|
|
118
|
+
//# sourceMappingURL=pimlico_simulateAssetChange.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pimlico_simulateAssetChange.js","sourceRoot":"","sources":["../../../rpc/methods/pimlico_simulateAssetChange.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import * as sentry from "@sentry/node";
|
|
1
2
|
import { createMemoryOutstandingQueue } from "./createMemoryOutstandingStore.js";
|
|
2
3
|
import { createRedisOutstandingQueue } from "./createRedisOutstandingStore.js";
|
|
3
4
|
import { createRedisStore } from "./createRedisStore.js";
|
|
@@ -74,45 +75,100 @@ export const createMempoolStore = ({ config, metrics }) => {
|
|
|
74
75
|
return {
|
|
75
76
|
// Methods used for bundling
|
|
76
77
|
popOutstanding: async (entryPoint) => {
|
|
77
|
-
|
|
78
|
-
|
|
78
|
+
try {
|
|
79
|
+
const { outstanding } = getStoreHandlers(entryPoint);
|
|
80
|
+
return await outstanding.pop();
|
|
81
|
+
}
|
|
82
|
+
catch (err) {
|
|
83
|
+
logger.error({ err }, "Failed to pop from outstanding mempool, defaulting to undefined");
|
|
84
|
+
sentry.captureException(err);
|
|
85
|
+
return undefined;
|
|
86
|
+
}
|
|
79
87
|
},
|
|
80
88
|
peekOutstanding: async (entryPoint) => {
|
|
81
|
-
|
|
82
|
-
|
|
89
|
+
try {
|
|
90
|
+
const { outstanding } = getStoreHandlers(entryPoint);
|
|
91
|
+
return await outstanding.peek();
|
|
92
|
+
}
|
|
93
|
+
catch (err) {
|
|
94
|
+
logger.error({ err }, "Failed to peek from outstanding mempool, defaulting to undefined");
|
|
95
|
+
sentry.captureException(err);
|
|
96
|
+
return undefined;
|
|
97
|
+
}
|
|
83
98
|
},
|
|
84
99
|
// State handling
|
|
85
100
|
addOutstanding: async ({ entryPoint, userOpInfo }) => {
|
|
86
101
|
const { outstanding } = getStoreHandlers(entryPoint);
|
|
87
102
|
logAddOperation(userOpInfo.userOpHash, "outstanding");
|
|
88
|
-
|
|
103
|
+
try {
|
|
104
|
+
await outstanding.add(userOpInfo);
|
|
105
|
+
}
|
|
106
|
+
catch (err) {
|
|
107
|
+
logger.error({ err }, "Failed to add to outstanding mempool");
|
|
108
|
+
sentry.captureException(err);
|
|
109
|
+
}
|
|
89
110
|
},
|
|
90
111
|
addProcessing: ({ entryPoint, userOpInfo }) => {
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
112
|
+
try {
|
|
113
|
+
const { processing } = getStoreHandlers(entryPoint);
|
|
114
|
+
logAddOperation(userOpInfo.userOpHash, "processing");
|
|
115
|
+
processing.add(userOpInfo);
|
|
116
|
+
return Promise.resolve();
|
|
117
|
+
}
|
|
118
|
+
catch (err) {
|
|
119
|
+
logger.error({ err }, "Failed to add to processing mempool");
|
|
120
|
+
sentry.captureException(err);
|
|
121
|
+
return Promise.resolve();
|
|
122
|
+
}
|
|
95
123
|
},
|
|
96
124
|
addSubmitted: ({ entryPoint, userOpInfo }) => {
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
125
|
+
try {
|
|
126
|
+
const { submitted } = getStoreHandlers(entryPoint);
|
|
127
|
+
logAddOperation(userOpInfo.userOpHash, "submitted");
|
|
128
|
+
submitted.add(userOpInfo);
|
|
129
|
+
return Promise.resolve();
|
|
130
|
+
}
|
|
131
|
+
catch (err) {
|
|
132
|
+
logger.error({ err }, "Failed to add to submitted mempool");
|
|
133
|
+
sentry.captureException(err);
|
|
134
|
+
return Promise.resolve();
|
|
135
|
+
}
|
|
101
136
|
},
|
|
102
137
|
removeOutstanding: async ({ entryPoint, userOpHash }) => {
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
138
|
+
try {
|
|
139
|
+
const { outstanding } = getStoreHandlers(entryPoint);
|
|
140
|
+
const removed = await outstanding.remove(userOpHash);
|
|
141
|
+
logRemoveOperation(userOpHash, "outstanding", removed);
|
|
142
|
+
}
|
|
143
|
+
catch (err) {
|
|
144
|
+
logger.error({ err }, "Failed to remove from outstanding mempool");
|
|
145
|
+
sentry.captureException(err);
|
|
146
|
+
return Promise.resolve();
|
|
147
|
+
}
|
|
106
148
|
},
|
|
107
149
|
removeProcessing: async ({ entryPoint, userOpHash }) => {
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
150
|
+
try {
|
|
151
|
+
const { processing } = getStoreHandlers(entryPoint);
|
|
152
|
+
const removed = await processing.remove(userOpHash);
|
|
153
|
+
logRemoveOperation(userOpHash, "processing", removed);
|
|
154
|
+
}
|
|
155
|
+
catch (err) {
|
|
156
|
+
logger.error({ err }, "Failed to remove from processing mempool");
|
|
157
|
+
sentry.captureException(err);
|
|
158
|
+
return Promise.resolve();
|
|
159
|
+
}
|
|
111
160
|
},
|
|
112
161
|
removeSubmitted: async ({ entryPoint, userOpHash }) => {
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
162
|
+
try {
|
|
163
|
+
const { submitted } = getStoreHandlers(entryPoint);
|
|
164
|
+
const removed = await submitted.remove(userOpHash);
|
|
165
|
+
logRemoveOperation(userOpHash, "submitted", removed);
|
|
166
|
+
}
|
|
167
|
+
catch (err) {
|
|
168
|
+
logger.error({ err }, "Failed to remove from submitted mempool");
|
|
169
|
+
sentry.captureException(err);
|
|
170
|
+
return Promise.resolve();
|
|
171
|
+
}
|
|
116
172
|
},
|
|
117
173
|
dumpOutstanding: async (entryPoint) => {
|
|
118
174
|
const { outstanding } = getStoreHandlers(entryPoint);
|
|
@@ -161,8 +217,15 @@ export const createMempoolStore = ({ config, metrics }) => {
|
|
|
161
217
|
return { valid: true };
|
|
162
218
|
},
|
|
163
219
|
popConflictingOustanding: async ({ entryPoint, userOp }) => {
|
|
164
|
-
|
|
165
|
-
|
|
220
|
+
try {
|
|
221
|
+
const { outstanding } = getStoreHandlers(entryPoint);
|
|
222
|
+
return await outstanding.popConflicting(userOp);
|
|
223
|
+
}
|
|
224
|
+
catch (err) {
|
|
225
|
+
logger.error({ err }, "Failed to popConflicting from outstanding mempool, defaulting to undefined");
|
|
226
|
+
sentry.captureException(err);
|
|
227
|
+
return undefined;
|
|
228
|
+
}
|
|
166
229
|
},
|
|
167
230
|
validateSenderLimits: ({ entryPoint, userOp }) => {
|
|
168
231
|
const { outstanding } = getStoreHandlers(entryPoint);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createMempoolStore.js","sourceRoot":"","sources":["../../store/createMempoolStore.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"createMempoolStore.js","sourceRoot":"","sources":["../../store/createMempoolStore.ts"],"names":[],"mappings":"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"}
|
|
@@ -706,6 +706,37 @@ export declare const pimlicoSimulationsAbi: readonly [{
|
|
|
706
706
|
}];
|
|
707
707
|
}];
|
|
708
708
|
readonly stateMutability: "nonpayable";
|
|
709
|
+
}, {
|
|
710
|
+
readonly type: "function";
|
|
711
|
+
readonly name: "getBalances";
|
|
712
|
+
readonly inputs: readonly [{
|
|
713
|
+
readonly name: "addresses";
|
|
714
|
+
readonly type: "address[]";
|
|
715
|
+
readonly internalType: "address[]";
|
|
716
|
+
}, {
|
|
717
|
+
readonly name: "tokens";
|
|
718
|
+
readonly type: "address[]";
|
|
719
|
+
readonly internalType: "address[]";
|
|
720
|
+
}];
|
|
721
|
+
readonly outputs: readonly [{
|
|
722
|
+
readonly name: "";
|
|
723
|
+
readonly type: "tuple[]";
|
|
724
|
+
readonly internalType: "struct PimlicoSimulations.AssetBalance[]";
|
|
725
|
+
readonly components: readonly [{
|
|
726
|
+
readonly name: "addr";
|
|
727
|
+
readonly type: "address";
|
|
728
|
+
readonly internalType: "address";
|
|
729
|
+
}, {
|
|
730
|
+
readonly name: "token";
|
|
731
|
+
readonly type: "address";
|
|
732
|
+
readonly internalType: "address";
|
|
733
|
+
}, {
|
|
734
|
+
readonly name: "amount";
|
|
735
|
+
readonly type: "uint256";
|
|
736
|
+
readonly internalType: "uint256";
|
|
737
|
+
}];
|
|
738
|
+
}];
|
|
739
|
+
readonly stateMutability: "view";
|
|
709
740
|
}, {
|
|
710
741
|
readonly type: "function";
|
|
711
742
|
readonly name: "simulateAndEstimateGas";
|
|
@@ -942,6 +973,284 @@ export declare const pimlicoSimulationsAbi: readonly [{
|
|
|
942
973
|
}];
|
|
943
974
|
}];
|
|
944
975
|
readonly stateMutability: "nonpayable";
|
|
976
|
+
}, {
|
|
977
|
+
readonly type: "function";
|
|
978
|
+
readonly name: "simulateAssetChange06";
|
|
979
|
+
readonly inputs: readonly [{
|
|
980
|
+
readonly name: "userOp";
|
|
981
|
+
readonly type: "tuple";
|
|
982
|
+
readonly internalType: "struct UserOperation";
|
|
983
|
+
readonly components: readonly [{
|
|
984
|
+
readonly name: "sender";
|
|
985
|
+
readonly type: "address";
|
|
986
|
+
readonly internalType: "address";
|
|
987
|
+
}, {
|
|
988
|
+
readonly name: "nonce";
|
|
989
|
+
readonly type: "uint256";
|
|
990
|
+
readonly internalType: "uint256";
|
|
991
|
+
}, {
|
|
992
|
+
readonly name: "initCode";
|
|
993
|
+
readonly type: "bytes";
|
|
994
|
+
readonly internalType: "bytes";
|
|
995
|
+
}, {
|
|
996
|
+
readonly name: "callData";
|
|
997
|
+
readonly type: "bytes";
|
|
998
|
+
readonly internalType: "bytes";
|
|
999
|
+
}, {
|
|
1000
|
+
readonly name: "callGasLimit";
|
|
1001
|
+
readonly type: "uint256";
|
|
1002
|
+
readonly internalType: "uint256";
|
|
1003
|
+
}, {
|
|
1004
|
+
readonly name: "verificationGasLimit";
|
|
1005
|
+
readonly type: "uint256";
|
|
1006
|
+
readonly internalType: "uint256";
|
|
1007
|
+
}, {
|
|
1008
|
+
readonly name: "preVerificationGas";
|
|
1009
|
+
readonly type: "uint256";
|
|
1010
|
+
readonly internalType: "uint256";
|
|
1011
|
+
}, {
|
|
1012
|
+
readonly name: "maxFeePerGas";
|
|
1013
|
+
readonly type: "uint256";
|
|
1014
|
+
readonly internalType: "uint256";
|
|
1015
|
+
}, {
|
|
1016
|
+
readonly name: "maxPriorityFeePerGas";
|
|
1017
|
+
readonly type: "uint256";
|
|
1018
|
+
readonly internalType: "uint256";
|
|
1019
|
+
}, {
|
|
1020
|
+
readonly name: "paymasterAndData";
|
|
1021
|
+
readonly type: "bytes";
|
|
1022
|
+
readonly internalType: "bytes";
|
|
1023
|
+
}, {
|
|
1024
|
+
readonly name: "signature";
|
|
1025
|
+
readonly type: "bytes";
|
|
1026
|
+
readonly internalType: "bytes";
|
|
1027
|
+
}];
|
|
1028
|
+
}, {
|
|
1029
|
+
readonly name: "entryPoint";
|
|
1030
|
+
readonly type: "address";
|
|
1031
|
+
readonly internalType: "contract IEntryPoint";
|
|
1032
|
+
}, {
|
|
1033
|
+
readonly name: "addresses";
|
|
1034
|
+
readonly type: "address[]";
|
|
1035
|
+
readonly internalType: "address[]";
|
|
1036
|
+
}, {
|
|
1037
|
+
readonly name: "tokens";
|
|
1038
|
+
readonly type: "address[]";
|
|
1039
|
+
readonly internalType: "address[]";
|
|
1040
|
+
}];
|
|
1041
|
+
readonly outputs: readonly [{
|
|
1042
|
+
readonly name: "";
|
|
1043
|
+
readonly type: "tuple[]";
|
|
1044
|
+
readonly internalType: "struct PimlicoSimulations.AssetChange[]";
|
|
1045
|
+
readonly components: readonly [{
|
|
1046
|
+
readonly name: "addr";
|
|
1047
|
+
readonly type: "address";
|
|
1048
|
+
readonly internalType: "address";
|
|
1049
|
+
}, {
|
|
1050
|
+
readonly name: "token";
|
|
1051
|
+
readonly type: "address";
|
|
1052
|
+
readonly internalType: "address";
|
|
1053
|
+
}, {
|
|
1054
|
+
readonly name: "balanceBefore";
|
|
1055
|
+
readonly type: "uint256";
|
|
1056
|
+
readonly internalType: "uint256";
|
|
1057
|
+
}, {
|
|
1058
|
+
readonly name: "balanceAfter";
|
|
1059
|
+
readonly type: "uint256";
|
|
1060
|
+
readonly internalType: "uint256";
|
|
1061
|
+
}];
|
|
1062
|
+
}];
|
|
1063
|
+
readonly stateMutability: "nonpayable";
|
|
1064
|
+
}, {
|
|
1065
|
+
readonly type: "function";
|
|
1066
|
+
readonly name: "simulateAssetChange07";
|
|
1067
|
+
readonly inputs: readonly [{
|
|
1068
|
+
readonly name: "userOp";
|
|
1069
|
+
readonly type: "tuple";
|
|
1070
|
+
readonly internalType: "struct PackedUserOperation";
|
|
1071
|
+
readonly components: readonly [{
|
|
1072
|
+
readonly name: "sender";
|
|
1073
|
+
readonly type: "address";
|
|
1074
|
+
readonly internalType: "address";
|
|
1075
|
+
}, {
|
|
1076
|
+
readonly name: "nonce";
|
|
1077
|
+
readonly type: "uint256";
|
|
1078
|
+
readonly internalType: "uint256";
|
|
1079
|
+
}, {
|
|
1080
|
+
readonly name: "initCode";
|
|
1081
|
+
readonly type: "bytes";
|
|
1082
|
+
readonly internalType: "bytes";
|
|
1083
|
+
}, {
|
|
1084
|
+
readonly name: "callData";
|
|
1085
|
+
readonly type: "bytes";
|
|
1086
|
+
readonly internalType: "bytes";
|
|
1087
|
+
}, {
|
|
1088
|
+
readonly name: "accountGasLimits";
|
|
1089
|
+
readonly type: "bytes32";
|
|
1090
|
+
readonly internalType: "bytes32";
|
|
1091
|
+
}, {
|
|
1092
|
+
readonly name: "preVerificationGas";
|
|
1093
|
+
readonly type: "uint256";
|
|
1094
|
+
readonly internalType: "uint256";
|
|
1095
|
+
}, {
|
|
1096
|
+
readonly name: "gasFees";
|
|
1097
|
+
readonly type: "bytes32";
|
|
1098
|
+
readonly internalType: "bytes32";
|
|
1099
|
+
}, {
|
|
1100
|
+
readonly name: "paymasterAndData";
|
|
1101
|
+
readonly type: "bytes";
|
|
1102
|
+
readonly internalType: "bytes";
|
|
1103
|
+
}, {
|
|
1104
|
+
readonly name: "signature";
|
|
1105
|
+
readonly type: "bytes";
|
|
1106
|
+
readonly internalType: "bytes";
|
|
1107
|
+
}];
|
|
1108
|
+
}, {
|
|
1109
|
+
readonly name: "entryPoint";
|
|
1110
|
+
readonly type: "address";
|
|
1111
|
+
readonly internalType: "contract IEntryPoint";
|
|
1112
|
+
}, {
|
|
1113
|
+
readonly name: "entryPointSimulations";
|
|
1114
|
+
readonly type: "address";
|
|
1115
|
+
readonly internalType: "address";
|
|
1116
|
+
}, {
|
|
1117
|
+
readonly name: "addresses";
|
|
1118
|
+
readonly type: "address[]";
|
|
1119
|
+
readonly internalType: "address[]";
|
|
1120
|
+
}, {
|
|
1121
|
+
readonly name: "tokens";
|
|
1122
|
+
readonly type: "address[]";
|
|
1123
|
+
readonly internalType: "address[]";
|
|
1124
|
+
}];
|
|
1125
|
+
readonly outputs: readonly [{
|
|
1126
|
+
readonly name: "";
|
|
1127
|
+
readonly type: "tuple[]";
|
|
1128
|
+
readonly internalType: "struct PimlicoSimulations.AssetChange[]";
|
|
1129
|
+
readonly components: readonly [{
|
|
1130
|
+
readonly name: "addr";
|
|
1131
|
+
readonly type: "address";
|
|
1132
|
+
readonly internalType: "address";
|
|
1133
|
+
}, {
|
|
1134
|
+
readonly name: "token";
|
|
1135
|
+
readonly type: "address";
|
|
1136
|
+
readonly internalType: "address";
|
|
1137
|
+
}, {
|
|
1138
|
+
readonly name: "balanceBefore";
|
|
1139
|
+
readonly type: "uint256";
|
|
1140
|
+
readonly internalType: "uint256";
|
|
1141
|
+
}, {
|
|
1142
|
+
readonly name: "balanceAfter";
|
|
1143
|
+
readonly type: "uint256";
|
|
1144
|
+
readonly internalType: "uint256";
|
|
1145
|
+
}];
|
|
1146
|
+
}];
|
|
1147
|
+
readonly stateMutability: "nonpayable";
|
|
1148
|
+
}, {
|
|
1149
|
+
readonly type: "function";
|
|
1150
|
+
readonly name: "simulateAssetChange08";
|
|
1151
|
+
readonly inputs: readonly [{
|
|
1152
|
+
readonly name: "userOp";
|
|
1153
|
+
readonly type: "tuple";
|
|
1154
|
+
readonly internalType: "struct PackedUserOperation";
|
|
1155
|
+
readonly components: readonly [{
|
|
1156
|
+
readonly name: "sender";
|
|
1157
|
+
readonly type: "address";
|
|
1158
|
+
readonly internalType: "address";
|
|
1159
|
+
}, {
|
|
1160
|
+
readonly name: "nonce";
|
|
1161
|
+
readonly type: "uint256";
|
|
1162
|
+
readonly internalType: "uint256";
|
|
1163
|
+
}, {
|
|
1164
|
+
readonly name: "initCode";
|
|
1165
|
+
readonly type: "bytes";
|
|
1166
|
+
readonly internalType: "bytes";
|
|
1167
|
+
}, {
|
|
1168
|
+
readonly name: "callData";
|
|
1169
|
+
readonly type: "bytes";
|
|
1170
|
+
readonly internalType: "bytes";
|
|
1171
|
+
}, {
|
|
1172
|
+
readonly name: "accountGasLimits";
|
|
1173
|
+
readonly type: "bytes32";
|
|
1174
|
+
readonly internalType: "bytes32";
|
|
1175
|
+
}, {
|
|
1176
|
+
readonly name: "preVerificationGas";
|
|
1177
|
+
readonly type: "uint256";
|
|
1178
|
+
readonly internalType: "uint256";
|
|
1179
|
+
}, {
|
|
1180
|
+
readonly name: "gasFees";
|
|
1181
|
+
readonly type: "bytes32";
|
|
1182
|
+
readonly internalType: "bytes32";
|
|
1183
|
+
}, {
|
|
1184
|
+
readonly name: "paymasterAndData";
|
|
1185
|
+
readonly type: "bytes";
|
|
1186
|
+
readonly internalType: "bytes";
|
|
1187
|
+
}, {
|
|
1188
|
+
readonly name: "signature";
|
|
1189
|
+
readonly type: "bytes";
|
|
1190
|
+
readonly internalType: "bytes";
|
|
1191
|
+
}];
|
|
1192
|
+
}, {
|
|
1193
|
+
readonly name: "entryPoint";
|
|
1194
|
+
readonly type: "address";
|
|
1195
|
+
readonly internalType: "contract IEntryPoint";
|
|
1196
|
+
}, {
|
|
1197
|
+
readonly name: "entryPointSimulations";
|
|
1198
|
+
readonly type: "address";
|
|
1199
|
+
readonly internalType: "address";
|
|
1200
|
+
}, {
|
|
1201
|
+
readonly name: "addresses";
|
|
1202
|
+
readonly type: "address[]";
|
|
1203
|
+
readonly internalType: "address[]";
|
|
1204
|
+
}, {
|
|
1205
|
+
readonly name: "tokens";
|
|
1206
|
+
readonly type: "address[]";
|
|
1207
|
+
readonly internalType: "address[]";
|
|
1208
|
+
}];
|
|
1209
|
+
readonly outputs: readonly [{
|
|
1210
|
+
readonly name: "";
|
|
1211
|
+
readonly type: "tuple[]";
|
|
1212
|
+
readonly internalType: "struct PimlicoSimulations.AssetChange[]";
|
|
1213
|
+
readonly components: readonly [{
|
|
1214
|
+
readonly name: "addr";
|
|
1215
|
+
readonly type: "address";
|
|
1216
|
+
readonly internalType: "address";
|
|
1217
|
+
}, {
|
|
1218
|
+
readonly name: "token";
|
|
1219
|
+
readonly type: "address";
|
|
1220
|
+
readonly internalType: "address";
|
|
1221
|
+
}, {
|
|
1222
|
+
readonly name: "balanceBefore";
|
|
1223
|
+
readonly type: "uint256";
|
|
1224
|
+
readonly internalType: "uint256";
|
|
1225
|
+
}, {
|
|
1226
|
+
readonly name: "balanceAfter";
|
|
1227
|
+
readonly type: "uint256";
|
|
1228
|
+
readonly internalType: "uint256";
|
|
1229
|
+
}];
|
|
1230
|
+
}];
|
|
1231
|
+
readonly stateMutability: "nonpayable";
|
|
1232
|
+
}, {
|
|
1233
|
+
readonly type: "function";
|
|
1234
|
+
readonly name: "simulateEntryPointBulk";
|
|
1235
|
+
readonly inputs: readonly [{
|
|
1236
|
+
readonly name: "entryPointSimulation";
|
|
1237
|
+
readonly type: "address";
|
|
1238
|
+
readonly internalType: "address";
|
|
1239
|
+
}, {
|
|
1240
|
+
readonly name: "entryPoint";
|
|
1241
|
+
readonly type: "address";
|
|
1242
|
+
readonly internalType: "address payable";
|
|
1243
|
+
}, {
|
|
1244
|
+
readonly name: "data";
|
|
1245
|
+
readonly type: "bytes[]";
|
|
1246
|
+
readonly internalType: "bytes[]";
|
|
1247
|
+
}];
|
|
1248
|
+
readonly outputs: readonly [{
|
|
1249
|
+
readonly name: "";
|
|
1250
|
+
readonly type: "bytes[]";
|
|
1251
|
+
readonly internalType: "bytes[]";
|
|
1252
|
+
}];
|
|
1253
|
+
readonly stateMutability: "nonpayable";
|
|
945
1254
|
}, {
|
|
946
1255
|
readonly type: "function";
|
|
947
1256
|
readonly name: "simulateHandleOp";
|