@pimlico/alto 0.0.0-main.20250714T140908 → 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 +20 -20
- 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/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/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/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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"}
|
|
@@ -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";
|