@pimlico/alto 0.0.3 → 0.0.5

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.
Files changed (247) hide show
  1. package/esm/cli/alto.js +0 -4
  2. package/esm/cli/alto.js.map +1 -1
  3. package/esm/cli/config/bundler.d.ts +2302 -22
  4. package/esm/cli/config/bundler.js +32 -4
  5. package/esm/cli/config/bundler.js.map +1 -1
  6. package/esm/cli/config/options.js +59 -4
  7. package/esm/cli/config/options.js.map +1 -1
  8. package/esm/cli/customTransport.js +5 -1
  9. package/esm/cli/customTransport.js.map +1 -1
  10. package/esm/cli/handler.js +39 -4
  11. package/esm/cli/handler.js.map +1 -1
  12. package/esm/cli/instrumentation.js +2 -2
  13. package/esm/cli/instrumentation.js.map +1 -1
  14. package/esm/cli/setupServer.d.ts +2 -1
  15. package/esm/cli/setupServer.js +51 -27
  16. package/esm/cli/setupServer.js.map +1 -1
  17. package/esm/executor/executor.d.ts +7 -14
  18. package/esm/executor/executor.js +139 -128
  19. package/esm/executor/executor.js.map +1 -1
  20. package/esm/executor/executorManager.d.ts +58 -4
  21. package/esm/executor/executorManager.js +206 -52
  22. package/esm/executor/executorManager.js.map +1 -1
  23. package/esm/executor/senderManager.d.ts +2 -1
  24. package/esm/executor/senderManager.js +3 -0
  25. package/esm/executor/senderManager.js.map +1 -1
  26. package/esm/executor/utilityWalletMonitor.d.ts +15 -0
  27. package/esm/executor/utilityWalletMonitor.js +38 -0
  28. package/esm/executor/utilityWalletMonitor.js.map +1 -0
  29. package/esm/executor/utils.d.ts +1 -2
  30. package/esm/executor/utils.js +49 -38
  31. package/esm/executor/utils.js.map +1 -1
  32. package/esm/handlers/compressionHandler.js.map +1 -0
  33. package/esm/handlers/eventManager.d.ts +21 -0
  34. package/esm/handlers/eventManager.js +166 -0
  35. package/esm/handlers/eventManager.js.map +1 -0
  36. package/{lib/utils → esm/handlers}/gasPriceManager.d.ts +19 -5
  37. package/esm/{utils → handlers}/gasPriceManager.js +58 -13
  38. package/esm/handlers/gasPriceManager.js.map +1 -0
  39. package/esm/handlers/index.d.ts +4 -0
  40. package/esm/handlers/index.js +4 -0
  41. package/esm/handlers/index.js.map +1 -0
  42. package/esm/mempool/index.d.ts +0 -1
  43. package/esm/mempool/index.js +0 -1
  44. package/esm/mempool/index.js.map +1 -1
  45. package/esm/mempool/mempool.d.ts +4 -2
  46. package/esm/mempool/mempool.js +70 -26
  47. package/esm/mempool/mempool.js.map +1 -1
  48. package/esm/mempool/reputationManager.js +7 -3
  49. package/esm/mempool/reputationManager.js.map +1 -1
  50. package/esm/rpc/EntryPointSimulationsV07.d.ts +7 -3
  51. package/esm/rpc/EntryPointSimulationsV07.js +12 -9
  52. package/esm/rpc/EntryPointSimulationsV07.js.map +1 -1
  53. package/esm/rpc/gasEstimation.d.ts +3 -3
  54. package/esm/rpc/gasEstimation.js +23 -14
  55. package/esm/rpc/gasEstimation.js.map +1 -1
  56. package/esm/rpc/nonceQueuer.d.ts +4 -1
  57. package/esm/rpc/nonceQueuer.js +9 -3
  58. package/esm/rpc/nonceQueuer.js.map +1 -1
  59. package/esm/rpc/rpcHandler.d.ts +53 -3
  60. package/esm/rpc/rpcHandler.js +150 -238
  61. package/esm/rpc/rpcHandler.js.map +1 -1
  62. package/esm/rpc/server.d.ts +2 -1
  63. package/esm/rpc/server.js +10 -1
  64. package/esm/rpc/server.js.map +1 -1
  65. package/esm/rpc/validation/SafeValidator.d.ts +5 -8
  66. package/esm/rpc/validation/SafeValidator.js +51 -208
  67. package/esm/rpc/validation/SafeValidator.js.map +1 -1
  68. package/esm/rpc/validation/TracerResultParserV07.js +6 -2
  69. package/esm/rpc/validation/TracerResultParserV07.js.map +1 -1
  70. package/esm/rpc/validation/UnsafeValidator.d.ts +7 -3
  71. package/esm/rpc/validation/UnsafeValidator.js +52 -48
  72. package/esm/rpc/validation/UnsafeValidator.js.map +1 -1
  73. package/esm/rpc/validation/tracer.js +1 -0
  74. package/esm/rpc/validation/tracer.js.map +1 -1
  75. package/esm/types/contracts/EntryPointSimulations.d.ts +0 -1
  76. package/esm/types/contracts/EntryPointSimulations.js +1941 -2
  77. package/esm/types/contracts/EntryPointSimulations.js.map +1 -1
  78. package/esm/types/contracts/PimlicoEntryPointSimulations.d.ts +1 -1
  79. package/esm/types/contracts/PimlicoEntryPointSimulations.js +1 -1
  80. package/esm/types/contracts/PimlicoEntryPointSimulations.js.map +1 -1
  81. package/esm/types/schemas.d.ts +1029 -333
  82. package/esm/types/schemas.js +94 -20
  83. package/esm/types/schemas.js.map +1 -1
  84. package/esm/types/utils.d.ts +1 -1
  85. package/esm/types/validation.js +7 -2
  86. package/esm/types/validation.js.map +1 -1
  87. package/esm/utils/bigInt.d.ts +1 -0
  88. package/esm/utils/bigInt.js +4 -0
  89. package/esm/utils/bigInt.js.map +1 -1
  90. package/esm/utils/helpers.d.ts +1 -0
  91. package/esm/utils/helpers.js +6 -0
  92. package/esm/utils/helpers.js.map +1 -1
  93. package/esm/utils/index.d.ts +0 -3
  94. package/esm/utils/index.js +0 -3
  95. package/esm/utils/index.js.map +1 -1
  96. package/esm/utils/metrics.d.ts +4 -0
  97. package/esm/utils/metrics.js +29 -1
  98. package/esm/utils/metrics.js.map +1 -1
  99. package/esm/utils/rpc-reply.d.ts +1 -1
  100. package/esm/utils/rpc-reply.js +2 -1
  101. package/esm/utils/rpc-reply.js.map +1 -1
  102. package/esm/utils/userop.d.ts +66 -6
  103. package/esm/utils/userop.js +182 -95
  104. package/esm/utils/userop.js.map +1 -1
  105. package/esm/utils/validation.d.ts +1 -1
  106. package/esm/utils/validation.js +9 -13
  107. package/esm/utils/validation.js.map +1 -1
  108. package/lib/cli/alto.js +0 -4
  109. package/lib/cli/alto.js.map +1 -1
  110. package/lib/cli/config/bundler.d.ts +2302 -22
  111. package/lib/cli/config/bundler.js +31 -3
  112. package/lib/cli/config/bundler.js.map +1 -1
  113. package/lib/cli/config/options.js +59 -4
  114. package/lib/cli/config/options.js.map +1 -1
  115. package/lib/cli/customTransport.js +5 -1
  116. package/lib/cli/customTransport.js.map +1 -1
  117. package/lib/cli/handler.js +38 -3
  118. package/lib/cli/handler.js.map +1 -1
  119. package/lib/cli/instrumentation.js +2 -2
  120. package/lib/cli/instrumentation.js.map +1 -1
  121. package/lib/cli/setupServer.d.ts +2 -1
  122. package/lib/cli/setupServer.js +52 -28
  123. package/lib/cli/setupServer.js.map +1 -1
  124. package/lib/executor/executor.d.ts +7 -14
  125. package/lib/executor/executor.js +138 -128
  126. package/lib/executor/executor.js.map +1 -1
  127. package/lib/executor/executorManager.d.ts +58 -4
  128. package/lib/executor/executorManager.js +204 -50
  129. package/lib/executor/executorManager.js.map +1 -1
  130. package/lib/executor/senderManager.d.ts +2 -1
  131. package/lib/executor/senderManager.js +3 -0
  132. package/lib/executor/senderManager.js.map +1 -1
  133. package/lib/executor/utilityWalletMonitor.d.ts +15 -0
  134. package/lib/executor/utilityWalletMonitor.js +42 -0
  135. package/lib/executor/utilityWalletMonitor.js.map +1 -0
  136. package/lib/executor/utils.d.ts +1 -2
  137. package/lib/executor/utils.js +48 -37
  138. package/lib/executor/utils.js.map +1 -1
  139. package/lib/handlers/compressionHandler.js.map +1 -0
  140. package/lib/handlers/eventManager.d.ts +21 -0
  141. package/lib/handlers/eventManager.js +196 -0
  142. package/lib/handlers/eventManager.js.map +1 -0
  143. package/{esm/utils → lib/handlers}/gasPriceManager.d.ts +19 -5
  144. package/lib/{utils → handlers}/gasPriceManager.js +58 -13
  145. package/lib/handlers/gasPriceManager.js.map +1 -0
  146. package/lib/handlers/index.d.ts +4 -0
  147. package/lib/handlers/index.js +20 -0
  148. package/lib/handlers/index.js.map +1 -0
  149. package/lib/mempool/index.d.ts +0 -1
  150. package/lib/mempool/index.js +0 -1
  151. package/lib/mempool/index.js.map +1 -1
  152. package/lib/mempool/mempool.d.ts +4 -2
  153. package/lib/mempool/mempool.js +70 -26
  154. package/lib/mempool/mempool.js.map +1 -1
  155. package/lib/mempool/reputationManager.js +7 -3
  156. package/lib/mempool/reputationManager.js.map +1 -1
  157. package/lib/rpc/EntryPointSimulationsV07.d.ts +7 -3
  158. package/lib/rpc/EntryPointSimulationsV07.js +13 -9
  159. package/lib/rpc/EntryPointSimulationsV07.js.map +1 -1
  160. package/lib/rpc/gasEstimation.d.ts +3 -3
  161. package/lib/rpc/gasEstimation.js +23 -14
  162. package/lib/rpc/gasEstimation.js.map +1 -1
  163. package/lib/rpc/nonceQueuer.d.ts +4 -1
  164. package/lib/rpc/nonceQueuer.js +9 -3
  165. package/lib/rpc/nonceQueuer.js.map +1 -1
  166. package/lib/rpc/rpcHandler.d.ts +53 -3
  167. package/lib/rpc/rpcHandler.js +147 -258
  168. package/lib/rpc/rpcHandler.js.map +1 -1
  169. package/lib/rpc/server.d.ts +2 -1
  170. package/lib/rpc/server.js +10 -1
  171. package/lib/rpc/server.js.map +1 -1
  172. package/lib/rpc/validation/SafeValidator.d.ts +5 -8
  173. package/lib/rpc/validation/SafeValidator.js +50 -207
  174. package/lib/rpc/validation/SafeValidator.js.map +1 -1
  175. package/lib/rpc/validation/TracerResultParserV07.js +6 -2
  176. package/lib/rpc/validation/TracerResultParserV07.js.map +1 -1
  177. package/lib/rpc/validation/UnsafeValidator.d.ts +7 -3
  178. package/lib/rpc/validation/UnsafeValidator.js +52 -48
  179. package/lib/rpc/validation/UnsafeValidator.js.map +1 -1
  180. package/lib/rpc/validation/tracer.js +1 -0
  181. package/lib/rpc/validation/tracer.js.map +1 -1
  182. package/lib/types/contracts/EntryPointSimulations.d.ts +0 -1
  183. package/lib/types/contracts/EntryPointSimulations.js +1942 -3
  184. package/lib/types/contracts/EntryPointSimulations.js.map +1 -1
  185. package/lib/types/contracts/PimlicoEntryPointSimulations.d.ts +1 -1
  186. package/lib/types/contracts/PimlicoEntryPointSimulations.js +2 -2
  187. package/lib/types/contracts/PimlicoEntryPointSimulations.js.map +1 -1
  188. package/lib/types/schemas.d.ts +1029 -333
  189. package/lib/types/schemas.js +93 -19
  190. package/lib/types/schemas.js.map +1 -1
  191. package/lib/types/utils.d.ts +1 -1
  192. package/lib/types/validation.js +7 -2
  193. package/lib/types/validation.js.map +1 -1
  194. package/lib/utils/bigInt.d.ts +1 -0
  195. package/lib/utils/bigInt.js +6 -1
  196. package/lib/utils/bigInt.js.map +1 -1
  197. package/lib/utils/helpers.d.ts +1 -0
  198. package/lib/utils/helpers.js +8 -1
  199. package/lib/utils/helpers.js.map +1 -1
  200. package/lib/utils/index.d.ts +0 -3
  201. package/lib/utils/index.js +0 -3
  202. package/lib/utils/index.js.map +1 -1
  203. package/lib/utils/metrics.d.ts +4 -0
  204. package/lib/utils/metrics.js +29 -1
  205. package/lib/utils/metrics.js.map +1 -1
  206. package/lib/utils/rpc-reply.d.ts +1 -1
  207. package/lib/utils/rpc-reply.js +2 -1
  208. package/lib/utils/rpc-reply.js.map +1 -1
  209. package/lib/utils/userop.d.ts +66 -6
  210. package/lib/utils/userop.js +184 -95
  211. package/lib/utils/userop.js.map +1 -1
  212. package/lib/utils/validation.d.ts +1 -1
  213. package/lib/utils/validation.js +9 -36
  214. package/lib/utils/validation.js.map +1 -1
  215. package/package.json +16 -14
  216. package/esm/executor/test/utils.d.ts +0 -13
  217. package/esm/executor/test/utils.js +0 -75
  218. package/esm/executor/test/utils.js.map +0 -1
  219. package/esm/mempool/nullMempool.d.ts +0 -15
  220. package/esm/mempool/nullMempool.js +0 -36
  221. package/esm/mempool/nullMempool.js.map +0 -1
  222. package/esm/types/test/validationTestErrors.d.ts +0 -3
  223. package/esm/types/test/validationTestErrors.js +0 -229
  224. package/esm/types/test/validationTestErrors.js.map +0 -1
  225. package/esm/utils/compressionHandler.js.map +0 -1
  226. package/esm/utils/gasPriceManager.js.map +0 -1
  227. package/esm/utils/test.d.ts +0 -17
  228. package/esm/utils/test.js +0 -130
  229. package/esm/utils/test.js.map +0 -1
  230. package/lib/executor/test/utils.d.ts +0 -13
  231. package/lib/executor/test/utils.js +0 -81
  232. package/lib/executor/test/utils.js.map +0 -1
  233. package/lib/mempool/nullMempool.d.ts +0 -15
  234. package/lib/mempool/nullMempool.js +0 -40
  235. package/lib/mempool/nullMempool.js.map +0 -1
  236. package/lib/types/test/validationTestErrors.d.ts +0 -3
  237. package/lib/types/test/validationTestErrors.js +0 -232
  238. package/lib/types/test/validationTestErrors.js.map +0 -1
  239. package/lib/utils/compressionHandler.js.map +0 -1
  240. package/lib/utils/gasPriceManager.js.map +0 -1
  241. package/lib/utils/test.d.ts +0 -17
  242. package/lib/utils/test.js +0 -161
  243. package/lib/utils/test.js.map +0 -1
  244. /package/esm/{utils → handlers}/compressionHandler.d.ts +0 -0
  245. /package/esm/{utils → handlers}/compressionHandler.js +0 -0
  246. /package/lib/{utils → handlers}/compressionHandler.d.ts +0 -0
  247. /package/lib/{utils → handlers}/compressionHandler.js +0 -0
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.EntryPointV07SimulationsBytecode = exports.EntryPointV07SimulationsAbi = exports.EntryPointV06SimulationsAbi = void 0;
3
+ exports.EntryPointV07SimulationsAbi = exports.EntryPointV06SimulationsAbi = void 0;
4
4
  exports.EntryPointV06SimulationsAbi = [
5
5
  {
6
6
  inputs: [
@@ -13,6 +13,1945 @@ exports.EntryPointV06SimulationsAbi = [
13
13
  type: "error"
14
14
  }
15
15
  ];
16
- exports.EntryPointV07SimulationsAbi = [{ "type": "constructor", "inputs": [], "stateMutability": "nonpayable" }, { "type": "receive", "stateMutability": "payable" }, { "type": "function", "name": "addStake", "inputs": [{ "name": "unstakeDelaySec", "type": "uint32", "internalType": "uint32" }], "outputs": [], "stateMutability": "payable" }, { "type": "function", "name": "balanceOf", "inputs": [{ "name": "account", "type": "address", "internalType": "address" }], "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }], "stateMutability": "view" }, { "type": "function", "name": "depositTo", "inputs": [{ "name": "account", "type": "address", "internalType": "address" }], "outputs": [], "stateMutability": "payable" }, { "type": "function", "name": "deposits", "inputs": [{ "name": "", "type": "address", "internalType": "address" }], "outputs": [{ "name": "deposit", "type": "uint256", "internalType": "uint256" }, { "name": "staked", "type": "bool", "internalType": "bool" }, { "name": "stake", "type": "uint112", "internalType": "uint112" }, { "name": "unstakeDelaySec", "type": "uint32", "internalType": "uint32" }, { "name": "withdrawTime", "type": "uint48", "internalType": "uint48" }], "stateMutability": "view" }, { "type": "function", "name": "getDepositInfo", "inputs": [{ "name": "account", "type": "address", "internalType": "address" }], "outputs": [{ "name": "info", "type": "tuple", "internalType": "struct IStakeManager.DepositInfo", "components": [{ "name": "deposit", "type": "uint256", "internalType": "uint256" }, { "name": "staked", "type": "bool", "internalType": "bool" }, { "name": "stake", "type": "uint112", "internalType": "uint112" }, { "name": "unstakeDelaySec", "type": "uint32", "internalType": "uint32" }, { "name": "withdrawTime", "type": "uint48", "internalType": "uint48" }] }], "stateMutability": "view" }, { "type": "function", "name": "getNonce", "inputs": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "key", "type": "uint192", "internalType": "uint192" }], "outputs": [{ "name": "nonce", "type": "uint256", "internalType": "uint256" }], "stateMutability": "view" }, { "type": "function", "name": "getUserOpHash", "inputs": [{ "name": "userOp", "type": "tuple", "internalType": "struct PackedUserOperation", "components": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "initCode", "type": "bytes", "internalType": "bytes" }, { "name": "callData", "type": "bytes", "internalType": "bytes" }, { "name": "accountGasLimits", "type": "bytes32", "internalType": "bytes32" }, { "name": "preVerificationGas", "type": "uint256", "internalType": "uint256" }, { "name": "gasFees", "type": "bytes32", "internalType": "bytes32" }, { "name": "paymasterAndData", "type": "bytes", "internalType": "bytes" }, { "name": "signature", "type": "bytes", "internalType": "bytes" }] }], "outputs": [{ "name": "", "type": "bytes32", "internalType": "bytes32" }], "stateMutability": "view" }, { "type": "function", "name": "incrementNonce", "inputs": [{ "name": "key", "type": "uint192", "internalType": "uint192" }], "outputs": [], "stateMutability": "nonpayable" }, { "type": "function", "name": "innerHandleOp", "inputs": [{ "name": "callData", "type": "bytes", "internalType": "bytes" }, { "name": "opInfo", "type": "tuple", "internalType": "struct EntryPoint.UserOpInfo", "components": [{ "name": "mUserOp", "type": "tuple", "internalType": "struct EntryPoint.MemoryUserOp", "components": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "verificationGasLimit", "type": "uint256", "internalType": "uint256" }, { "name": "callGasLimit", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterVerificationGasLimit", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterPostOpGasLimit", "type": "uint256", "internalType": "uint256" }, { "name": "preVerificationGas", "type": "uint256", "internalType": "uint256" }, { "name": "paymaster", "type": "address", "internalType": "address" }, { "name": "maxFeePerGas", "type": "uint256", "internalType": "uint256" }, { "name": "maxPriorityFeePerGas", "type": "uint256", "internalType": "uint256" }] }, { "name": "userOpHash", "type": "bytes32", "internalType": "bytes32" }, { "name": "prefund", "type": "uint256", "internalType": "uint256" }, { "name": "contextOffset", "type": "uint256", "internalType": "uint256" }, { "name": "preOpGas", "type": "uint256", "internalType": "uint256" }] }, { "name": "context", "type": "bytes", "internalType": "bytes" }, { "name": "preGas", "type": "uint256", "internalType": "uint256" }], "outputs": [{ "name": "actualGasCost", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterPostOpGasLimit", "type": "uint256", "internalType": "uint256" }], "stateMutability": "nonpayable" }, { "type": "function", "name": "nonceSequenceNumber", "inputs": [{ "name": "", "type": "address", "internalType": "address" }, { "name": "", "type": "uint192", "internalType": "uint192" }], "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }], "stateMutability": "view" }, { "type": "function", "name": "simulateCallData", "inputs": [{ "name": "op", "type": "tuple", "internalType": "struct PackedUserOperation", "components": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "initCode", "type": "bytes", "internalType": "bytes" }, { "name": "callData", "type": "bytes", "internalType": "bytes" }, { "name": "accountGasLimits", "type": "bytes32", "internalType": "bytes32" }, { "name": "preVerificationGas", "type": "uint256", "internalType": "uint256" }, { "name": "gasFees", "type": "bytes32", "internalType": "bytes32" }, { "name": "paymasterAndData", "type": "bytes", "internalType": "bytes" }, { "name": "signature", "type": "bytes", "internalType": "bytes" }] }, { "name": "target", "type": "address", "internalType": "address" }, { "name": "targetCallData", "type": "bytes", "internalType": "bytes" }], "outputs": [{ "name": "", "type": "tuple", "internalType": "struct IEntryPointSimulations.TargetCallResult", "components": [{ "name": "gasUsed", "type": "uint256", "internalType": "uint256" }, { "name": "success", "type": "bool", "internalType": "bool" }, { "name": "returnData", "type": "bytes", "internalType": "bytes" }] }], "stateMutability": "nonpayable" }, { "type": "function", "name": "simulateCallDataBulk", "inputs": [{ "name": "ops", "type": "tuple[]", "internalType": "struct PackedUserOperation[]", "components": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "initCode", "type": "bytes", "internalType": "bytes" }, { "name": "callData", "type": "bytes", "internalType": "bytes" }, { "name": "accountGasLimits", "type": "bytes32", "internalType": "bytes32" }, { "name": "preVerificationGas", "type": "uint256", "internalType": "uint256" }, { "name": "gasFees", "type": "bytes32", "internalType": "bytes32" }, { "name": "paymasterAndData", "type": "bytes", "internalType": "bytes" }, { "name": "signature", "type": "bytes", "internalType": "bytes" }] }, { "name": "targets", "type": "address[]", "internalType": "address[]" }, { "name": "targetCallData", "type": "bytes[]", "internalType": "bytes[]" }], "outputs": [{ "name": "", "type": "tuple[]", "internalType": "struct IEntryPointSimulations.TargetCallResult[]", "components": [{ "name": "gasUsed", "type": "uint256", "internalType": "uint256" }, { "name": "success", "type": "bool", "internalType": "bool" }, { "name": "returnData", "type": "bytes", "internalType": "bytes" }] }], "stateMutability": "nonpayable" }, { "type": "function", "name": "simulateCallDataLast", "inputs": [{ "name": "ops", "type": "tuple[]", "internalType": "struct PackedUserOperation[]", "components": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "initCode", "type": "bytes", "internalType": "bytes" }, { "name": "callData", "type": "bytes", "internalType": "bytes" }, { "name": "accountGasLimits", "type": "bytes32", "internalType": "bytes32" }, { "name": "preVerificationGas", "type": "uint256", "internalType": "uint256" }, { "name": "gasFees", "type": "bytes32", "internalType": "bytes32" }, { "name": "paymasterAndData", "type": "bytes", "internalType": "bytes" }, { "name": "signature", "type": "bytes", "internalType": "bytes" }] }, { "name": "targets", "type": "address[]", "internalType": "address[]" }, { "name": "targetCallData", "type": "bytes[]", "internalType": "bytes[]" }], "outputs": [{ "name": "", "type": "tuple", "internalType": "struct IEntryPointSimulations.TargetCallResult", "components": [{ "name": "gasUsed", "type": "uint256", "internalType": "uint256" }, { "name": "success", "type": "bool", "internalType": "bool" }, { "name": "returnData", "type": "bytes", "internalType": "bytes" }] }], "stateMutability": "nonpayable" }, { "type": "function", "name": "simulateHandleOp", "inputs": [{ "name": "op", "type": "tuple", "internalType": "struct PackedUserOperation", "components": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "initCode", "type": "bytes", "internalType": "bytes" }, { "name": "callData", "type": "bytes", "internalType": "bytes" }, { "name": "accountGasLimits", "type": "bytes32", "internalType": "bytes32" }, { "name": "preVerificationGas", "type": "uint256", "internalType": "uint256" }, { "name": "gasFees", "type": "bytes32", "internalType": "bytes32" }, { "name": "paymasterAndData", "type": "bytes", "internalType": "bytes" }, { "name": "signature", "type": "bytes", "internalType": "bytes" }] }], "outputs": [{ "name": "", "type": "tuple", "internalType": "struct IEntryPointSimulations.ExecutionResult", "components": [{ "name": "preOpGas", "type": "uint256", "internalType": "uint256" }, { "name": "paid", "type": "uint256", "internalType": "uint256" }, { "name": "accountValidationData", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterValidationData", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterVerificationGasLimit", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterPostOpGasLimit", "type": "uint256", "internalType": "uint256" }, { "name": "targetSuccess", "type": "bool", "internalType": "bool" }, { "name": "targetResult", "type": "bytes", "internalType": "bytes" }] }], "stateMutability": "nonpayable" }, { "type": "function", "name": "simulateHandleOpBulk", "inputs": [{ "name": "ops", "type": "tuple[]", "internalType": "struct PackedUserOperation[]", "components": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "initCode", "type": "bytes", "internalType": "bytes" }, { "name": "callData", "type": "bytes", "internalType": "bytes" }, { "name": "accountGasLimits", "type": "bytes32", "internalType": "bytes32" }, { "name": "preVerificationGas", "type": "uint256", "internalType": "uint256" }, { "name": "gasFees", "type": "bytes32", "internalType": "bytes32" }, { "name": "paymasterAndData", "type": "bytes", "internalType": "bytes" }, { "name": "signature", "type": "bytes", "internalType": "bytes" }] }], "outputs": [{ "name": "", "type": "tuple[]", "internalType": "struct IEntryPointSimulations.ExecutionResult[]", "components": [{ "name": "preOpGas", "type": "uint256", "internalType": "uint256" }, { "name": "paid", "type": "uint256", "internalType": "uint256" }, { "name": "accountValidationData", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterValidationData", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterVerificationGasLimit", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterPostOpGasLimit", "type": "uint256", "internalType": "uint256" }, { "name": "targetSuccess", "type": "bool", "internalType": "bool" }, { "name": "targetResult", "type": "bytes", "internalType": "bytes" }] }], "stateMutability": "nonpayable" }, { "type": "function", "name": "simulateHandleOpLast", "inputs": [{ "name": "ops", "type": "tuple[]", "internalType": "struct PackedUserOperation[]", "components": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "initCode", "type": "bytes", "internalType": "bytes" }, { "name": "callData", "type": "bytes", "internalType": "bytes" }, { "name": "accountGasLimits", "type": "bytes32", "internalType": "bytes32" }, { "name": "preVerificationGas", "type": "uint256", "internalType": "uint256" }, { "name": "gasFees", "type": "bytes32", "internalType": "bytes32" }, { "name": "paymasterAndData", "type": "bytes", "internalType": "bytes" }, { "name": "signature", "type": "bytes", "internalType": "bytes" }] }], "outputs": [{ "name": "", "type": "tuple", "internalType": "struct IEntryPointSimulations.ExecutionResult", "components": [{ "name": "preOpGas", "type": "uint256", "internalType": "uint256" }, { "name": "paid", "type": "uint256", "internalType": "uint256" }, { "name": "accountValidationData", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterValidationData", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterVerificationGasLimit", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterPostOpGasLimit", "type": "uint256", "internalType": "uint256" }, { "name": "targetSuccess", "type": "bool", "internalType": "bool" }, { "name": "targetResult", "type": "bytes", "internalType": "bytes" }] }], "stateMutability": "nonpayable" }, { "type": "function", "name": "simulateValidation", "inputs": [{ "name": "userOp", "type": "tuple", "internalType": "struct PackedUserOperation", "components": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "initCode", "type": "bytes", "internalType": "bytes" }, { "name": "callData", "type": "bytes", "internalType": "bytes" }, { "name": "accountGasLimits", "type": "bytes32", "internalType": "bytes32" }, { "name": "preVerificationGas", "type": "uint256", "internalType": "uint256" }, { "name": "gasFees", "type": "bytes32", "internalType": "bytes32" }, { "name": "paymasterAndData", "type": "bytes", "internalType": "bytes" }, { "name": "signature", "type": "bytes", "internalType": "bytes" }] }], "outputs": [{ "name": "", "type": "tuple", "internalType": "struct IEntryPointSimulations.ValidationResult", "components": [{ "name": "returnInfo", "type": "tuple", "internalType": "struct IEntryPoint.ReturnInfo", "components": [{ "name": "preOpGas", "type": "uint256", "internalType": "uint256" }, { "name": "prefund", "type": "uint256", "internalType": "uint256" }, { "name": "accountValidationData", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterValidationData", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterContext", "type": "bytes", "internalType": "bytes" }] }, { "name": "senderInfo", "type": "tuple", "internalType": "struct IStakeManager.StakeInfo", "components": [{ "name": "stake", "type": "uint256", "internalType": "uint256" }, { "name": "unstakeDelaySec", "type": "uint256", "internalType": "uint256" }] }, { "name": "factoryInfo", "type": "tuple", "internalType": "struct IStakeManager.StakeInfo", "components": [{ "name": "stake", "type": "uint256", "internalType": "uint256" }, { "name": "unstakeDelaySec", "type": "uint256", "internalType": "uint256" }] }, { "name": "paymasterInfo", "type": "tuple", "internalType": "struct IStakeManager.StakeInfo", "components": [{ "name": "stake", "type": "uint256", "internalType": "uint256" }, { "name": "unstakeDelaySec", "type": "uint256", "internalType": "uint256" }] }, { "name": "aggregatorInfo", "type": "tuple", "internalType": "struct IEntryPoint.AggregatorStakeInfo", "components": [{ "name": "aggregator", "type": "address", "internalType": "address" }, { "name": "stakeInfo", "type": "tuple", "internalType": "struct IStakeManager.StakeInfo", "components": [{ "name": "stake", "type": "uint256", "internalType": "uint256" }, { "name": "unstakeDelaySec", "type": "uint256", "internalType": "uint256" }] }] }] }], "stateMutability": "nonpayable" }, { "type": "function", "name": "simulateValidationBulk", "inputs": [{ "name": "userOps", "type": "tuple[]", "internalType": "struct PackedUserOperation[]", "components": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "initCode", "type": "bytes", "internalType": "bytes" }, { "name": "callData", "type": "bytes", "internalType": "bytes" }, { "name": "accountGasLimits", "type": "bytes32", "internalType": "bytes32" }, { "name": "preVerificationGas", "type": "uint256", "internalType": "uint256" }, { "name": "gasFees", "type": "bytes32", "internalType": "bytes32" }, { "name": "paymasterAndData", "type": "bytes", "internalType": "bytes" }, { "name": "signature", "type": "bytes", "internalType": "bytes" }] }], "outputs": [{ "name": "", "type": "tuple[]", "internalType": "struct IEntryPointSimulations.ValidationResult[]", "components": [{ "name": "returnInfo", "type": "tuple", "internalType": "struct IEntryPoint.ReturnInfo", "components": [{ "name": "preOpGas", "type": "uint256", "internalType": "uint256" }, { "name": "prefund", "type": "uint256", "internalType": "uint256" }, { "name": "accountValidationData", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterValidationData", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterContext", "type": "bytes", "internalType": "bytes" }] }, { "name": "senderInfo", "type": "tuple", "internalType": "struct IStakeManager.StakeInfo", "components": [{ "name": "stake", "type": "uint256", "internalType": "uint256" }, { "name": "unstakeDelaySec", "type": "uint256", "internalType": "uint256" }] }, { "name": "factoryInfo", "type": "tuple", "internalType": "struct IStakeManager.StakeInfo", "components": [{ "name": "stake", "type": "uint256", "internalType": "uint256" }, { "name": "unstakeDelaySec", "type": "uint256", "internalType": "uint256" }] }, { "name": "paymasterInfo", "type": "tuple", "internalType": "struct IStakeManager.StakeInfo", "components": [{ "name": "stake", "type": "uint256", "internalType": "uint256" }, { "name": "unstakeDelaySec", "type": "uint256", "internalType": "uint256" }] }, { "name": "aggregatorInfo", "type": "tuple", "internalType": "struct IEntryPoint.AggregatorStakeInfo", "components": [{ "name": "aggregator", "type": "address", "internalType": "address" }, { "name": "stakeInfo", "type": "tuple", "internalType": "struct IStakeManager.StakeInfo", "components": [{ "name": "stake", "type": "uint256", "internalType": "uint256" }, { "name": "unstakeDelaySec", "type": "uint256", "internalType": "uint256" }] }] }] }], "stateMutability": "nonpayable" }, { "type": "function", "name": "simulateValidationLast", "inputs": [{ "name": "userOps", "type": "tuple[]", "internalType": "struct PackedUserOperation[]", "components": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "initCode", "type": "bytes", "internalType": "bytes" }, { "name": "callData", "type": "bytes", "internalType": "bytes" }, { "name": "accountGasLimits", "type": "bytes32", "internalType": "bytes32" }, { "name": "preVerificationGas", "type": "uint256", "internalType": "uint256" }, { "name": "gasFees", "type": "bytes32", "internalType": "bytes32" }, { "name": "paymasterAndData", "type": "bytes", "internalType": "bytes" }, { "name": "signature", "type": "bytes", "internalType": "bytes" }] }], "outputs": [{ "name": "", "type": "tuple", "internalType": "struct IEntryPointSimulations.ValidationResult", "components": [{ "name": "returnInfo", "type": "tuple", "internalType": "struct IEntryPoint.ReturnInfo", "components": [{ "name": "preOpGas", "type": "uint256", "internalType": "uint256" }, { "name": "prefund", "type": "uint256", "internalType": "uint256" }, { "name": "accountValidationData", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterValidationData", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterContext", "type": "bytes", "internalType": "bytes" }] }, { "name": "senderInfo", "type": "tuple", "internalType": "struct IStakeManager.StakeInfo", "components": [{ "name": "stake", "type": "uint256", "internalType": "uint256" }, { "name": "unstakeDelaySec", "type": "uint256", "internalType": "uint256" }] }, { "name": "factoryInfo", "type": "tuple", "internalType": "struct IStakeManager.StakeInfo", "components": [{ "name": "stake", "type": "uint256", "internalType": "uint256" }, { "name": "unstakeDelaySec", "type": "uint256", "internalType": "uint256" }] }, { "name": "paymasterInfo", "type": "tuple", "internalType": "struct IStakeManager.StakeInfo", "components": [{ "name": "stake", "type": "uint256", "internalType": "uint256" }, { "name": "unstakeDelaySec", "type": "uint256", "internalType": "uint256" }] }, { "name": "aggregatorInfo", "type": "tuple", "internalType": "struct IEntryPoint.AggregatorStakeInfo", "components": [{ "name": "aggregator", "type": "address", "internalType": "address" }, { "name": "stakeInfo", "type": "tuple", "internalType": "struct IStakeManager.StakeInfo", "components": [{ "name": "stake", "type": "uint256", "internalType": "uint256" }, { "name": "unstakeDelaySec", "type": "uint256", "internalType": "uint256" }] }] }] }], "stateMutability": "nonpayable" }, { "type": "function", "name": "unlockStake", "inputs": [], "outputs": [], "stateMutability": "nonpayable" }, { "type": "function", "name": "withdrawStake", "inputs": [{ "name": "withdrawAddress", "type": "address", "internalType": "address payable" }], "outputs": [], "stateMutability": "nonpayable" }, { "type": "function", "name": "withdrawTo", "inputs": [{ "name": "withdrawAddress", "type": "address", "internalType": "address payable" }, { "name": "withdrawAmount", "type": "uint256", "internalType": "uint256" }], "outputs": [], "stateMutability": "nonpayable" }, { "type": "event", "name": "AccountDeployed", "inputs": [{ "name": "userOpHash", "type": "bytes32", "indexed": true, "internalType": "bytes32" }, { "name": "sender", "type": "address", "indexed": true, "internalType": "address" }, { "name": "factory", "type": "address", "indexed": false, "internalType": "address" }, { "name": "paymaster", "type": "address", "indexed": false, "internalType": "address" }], "anonymous": false }, { "type": "event", "name": "BeforeExecution", "inputs": [], "anonymous": false }, { "type": "event", "name": "Deposited", "inputs": [{ "name": "account", "type": "address", "indexed": true, "internalType": "address" }, { "name": "totalDeposit", "type": "uint256", "indexed": false, "internalType": "uint256" }], "anonymous": false }, { "type": "event", "name": "PostOpRevertReason", "inputs": [{ "name": "userOpHash", "type": "bytes32", "indexed": true, "internalType": "bytes32" }, { "name": "sender", "type": "address", "indexed": true, "internalType": "address" }, { "name": "nonce", "type": "uint256", "indexed": false, "internalType": "uint256" }, { "name": "revertReason", "type": "bytes", "indexed": false, "internalType": "bytes" }], "anonymous": false }, { "type": "event", "name": "SignatureAggregatorChanged", "inputs": [{ "name": "aggregator", "type": "address", "indexed": true, "internalType": "address" }], "anonymous": false }, { "type": "event", "name": "StakeLocked", "inputs": [{ "name": "account", "type": "address", "indexed": true, "internalType": "address" }, { "name": "totalStaked", "type": "uint256", "indexed": false, "internalType": "uint256" }, { "name": "unstakeDelaySec", "type": "uint256", "indexed": false, "internalType": "uint256" }], "anonymous": false }, { "type": "event", "name": "StakeUnlocked", "inputs": [{ "name": "account", "type": "address", "indexed": true, "internalType": "address" }, { "name": "withdrawTime", "type": "uint256", "indexed": false, "internalType": "uint256" }], "anonymous": false }, { "type": "event", "name": "StakeWithdrawn", "inputs": [{ "name": "account", "type": "address", "indexed": true, "internalType": "address" }, { "name": "withdrawAddress", "type": "address", "indexed": false, "internalType": "address" }, { "name": "amount", "type": "uint256", "indexed": false, "internalType": "uint256" }], "anonymous": false }, { "type": "event", "name": "UserOperationEvent", "inputs": [{ "name": "userOpHash", "type": "bytes32", "indexed": true, "internalType": "bytes32" }, { "name": "sender", "type": "address", "indexed": true, "internalType": "address" }, { "name": "paymaster", "type": "address", "indexed": true, "internalType": "address" }, { "name": "nonce", "type": "uint256", "indexed": false, "internalType": "uint256" }, { "name": "success", "type": "bool", "indexed": false, "internalType": "bool" }, { "name": "actualGasCost", "type": "uint256", "indexed": false, "internalType": "uint256" }, { "name": "actualGasUsed", "type": "uint256", "indexed": false, "internalType": "uint256" }], "anonymous": false }, { "type": "event", "name": "UserOperationPrefundTooLow", "inputs": [{ "name": "userOpHash", "type": "bytes32", "indexed": true, "internalType": "bytes32" }, { "name": "sender", "type": "address", "indexed": true, "internalType": "address" }, { "name": "nonce", "type": "uint256", "indexed": false, "internalType": "uint256" }], "anonymous": false }, { "type": "event", "name": "UserOperationRevertReason", "inputs": [{ "name": "userOpHash", "type": "bytes32", "indexed": true, "internalType": "bytes32" }, { "name": "sender", "type": "address", "indexed": true, "internalType": "address" }, { "name": "nonce", "type": "uint256", "indexed": false, "internalType": "uint256" }, { "name": "revertReason", "type": "bytes", "indexed": false, "internalType": "bytes" }], "anonymous": false }, { "type": "event", "name": "Withdrawn", "inputs": [{ "name": "account", "type": "address", "indexed": true, "internalType": "address" }, { "name": "withdrawAddress", "type": "address", "indexed": false, "internalType": "address" }, { "name": "amount", "type": "uint256", "indexed": false, "internalType": "uint256" }], "anonymous": false }, { "type": "error", "name": "FailedOp", "inputs": [{ "name": "opIndex", "type": "uint256", "internalType": "uint256" }, { "name": "reason", "type": "string", "internalType": "string" }] }, { "type": "error", "name": "FailedOpWithRevert", "inputs": [{ "name": "opIndex", "type": "uint256", "internalType": "uint256" }, { "name": "reason", "type": "string", "internalType": "string" }, { "name": "inner", "type": "bytes", "internalType": "bytes" }] }, { "type": "error", "name": "PostOpReverted", "inputs": [{ "name": "returnData", "type": "bytes", "internalType": "bytes" }] }, { "type": "error", "name": "ReentrancyGuardReentrantCall", "inputs": [] }, { "type": "error", "name": "SenderAddressResult", "inputs": [{ "name": "sender", "type": "address", "internalType": "address" }] }, { "type": "error", "name": "SignatureValidationFailed", "inputs": [{ "name": "aggregator", "type": "address", "internalType": "address" }] }];
17
- exports.EntryPointV07SimulationsBytecode = "0x60a060405260405162000012906200009d565b604051809103906000f0801580156200002f573d6000803e3d6000fd5b506001600160a01b0390811660805260408051808201825260008082528251808401909352808352602080840191825282018390529051600380546001600160a01b031916919094161790925551600455516005553480156200009157600080fd5b506001600255620000ab565b610233806200519583390190565b6080516150d1620000c4600039600050506150d16000f3fe60806040526004361061016d5760003560e01c806370a08231116100cb578063bb9fe6bf1161007f578063c5f996e611610059578063c5f996e6146105b9578063dbed18e0146105d9578063fc7e286d146105f957600080fd5b8063bb9fe6bf14610557578063c23a5cea1461056c578063c3bce0091461058c57600080fd5b8063850aaf62116100b0578063850aaf62146105045780639b249f6914610524578063b760faf91461054457600080fd5b806370a08231146104a1578063765e827f146104e457600080fd5b8063205c28781161012257806335567e1a1161010757806335567e1a146102905780635287ce12146103255780635895273b1461047457600080fd5b8063205c28781461025057806322cdde4c1461027057600080fd5b80630396cb60116101535780630396cb60146101e55780630bd28e3b146101f85780631b2e01b81461021857600080fd5b806242dc531461018257806301ffc9a7146101b557600080fd5b3661017d5761017b336106cb565b005b600080fd5b34801561018e57600080fd5b506101a261019d36600461420a565b6106ec565b6040519081526020015b60405180910390f35b3480156101c157600080fd5b506101d56101d03660046142ca565b6108b5565b60405190151581526020016101ac565b61017b6101f336600461430c565b610a32565b34801561020457600080fd5b5061017b61021336600461435a565b610dc8565b34801561022457600080fd5b506101a2610233366004614375565b600160209081526000928352604080842090915290825290205481565b34801561025c57600080fd5b5061017b61026b3660046143aa565b610e10565b34801561027c57600080fd5b506101a261028b3660046143ef565b610fba565b34801561029c57600080fd5b506101a26102ab366004614375565b73ffffffffffffffffffffffffffffffffffffffff8216600090815260016020908152604080832077ffffffffffffffffffffffffffffffffffffffffffffffff8516845290915290819020549082901b7fffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000161792915050565b34801561033157600080fd5b50610412610340366004614424565b6040805160a0810182526000808252602082018190529181018290526060810182905260808101919091525073ffffffffffffffffffffffffffffffffffffffff1660009081526020818152604091829020825160a0810184528154815260019091015460ff811615159282019290925261010082046dffffffffffffffffffffffffffff16928101929092526f01000000000000000000000000000000810463ffffffff166060830152730100000000000000000000000000000000000000900465ffffffffffff16608082015290565b6040516101ac9190600060a082019050825182526020830151151560208301526dffffffffffffffffffffffffffff604084015116604083015263ffffffff606084015116606083015265ffffffffffff608084015116608083015292915050565b34801561048057600080fd5b5061049461048f3660046143ef565b610ffc565b6040516101ac91906144af565b3480156104ad57600080fd5b506101a26104bc366004614424565b73ffffffffffffffffffffffffffffffffffffffff1660009081526020819052604090205490565b3480156104f057600080fd5b5061017b6104ff366004614543565b6110f1565b34801561051057600080fd5b5061017b61051f36600461459a565b61126e565b34801561053057600080fd5b5061017b61053f3660046145ef565b611313565b61017b610552366004614424565b6106cb565b34801561056357600080fd5b5061017b6113fe565b34801561057857600080fd5b5061017b610587366004614424565b6115de565b34801561059857600080fd5b506105ac6105a73660046143ef565b6118cb565b6040516101ac9190614631565b3480156105c557600080fd5b5061017b6105d4366004614711565b611bcf565b3480156105e557600080fd5b5061017b6105f4366004614543565b611cb5565b34801561060557600080fd5b50610681610614366004614424565b6000602081905290815260409020805460019091015460ff81169061010081046dffffffffffffffffffffffffffff16906f01000000000000000000000000000000810463ffffffff1690730100000000000000000000000000000000000000900465ffffffffffff1685565b6040805195865293151560208601526dffffffffffffffffffffffffffff9092169284019290925263ffffffff909116606083015265ffffffffffff16608082015260a0016101ac565b60015b60058110156106df576001016106ce565b6106e882612161565b5050565b6000805a9050333014610760576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f4141393220696e7465726e616c2063616c6c206f6e6c7900000000000000000060448201526064015b60405180910390fd5b8451606081015160a082015181016127100160405a603f028161078557610785614773565b0410156107b6577fdeaddead0000000000000000000000000000000000000000000000000000000060005260206000fd5b8751600090156108575760006107d3846000015160008c866121b7565b9050806108555760006107e76108006121cf565b80519091501561084f57846000015173ffffffffffffffffffffffffffffffffffffffff168a602001517f1c4fada7374c0a9ee8841fc38afe82932dc0f8e69012e927f061a8bae611a2018760200151846040516108469291906147a2565b60405180910390a35b60019250505b505b600088608001515a86030190506108a7828a8a8a8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508792506121fb915050565b9a9950505050505050505050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f60fc6b6e00000000000000000000000000000000000000000000000000000000148061094857507fffffffff0000000000000000000000000000000000000000000000000000000082167f915074d800000000000000000000000000000000000000000000000000000000145b8061099457507fffffffff0000000000000000000000000000000000000000000000000000000082167fcf28ef9700000000000000000000000000000000000000000000000000000000145b806109e057507fffffffff0000000000000000000000000000000000000000000000000000000082167f3e84f02100000000000000000000000000000000000000000000000000000000145b80610a2c57507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b33600090815260208190526040902063ffffffff8216610aae576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f6d757374207370656369667920756e7374616b652064656c61790000000000006044820152606401610757565b600181015463ffffffff6f0100000000000000000000000000000090910481169083161015610b39576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f63616e6e6f7420646563726561736520756e7374616b652074696d65000000006044820152606401610757565b6001810154600090610b6190349061010090046dffffffffffffffffffffffffffff166147ea565b905060008111610bcd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f6e6f207374616b652073706563696669656400000000000000000000000000006044820152606401610757565b6dffffffffffffffffffffffffffff811115610c45576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f7374616b65206f766572666c6f770000000000000000000000000000000000006044820152606401610757565b6040805160a08101825283548152600160208083018281526dffffffffffffffffffffffffffff86811685870190815263ffffffff8a811660608801818152600060808a0181815233808352828a52918c90209a518b55965199909801805494519151965165ffffffffffff16730100000000000000000000000000000000000000027fffffffffffffff000000000000ffffffffffffffffffffffffffffffffffffff979094166f0100000000000000000000000000000002969096167fffffffffffffff00000000000000000000ffffffffffffffffffffffffffffff91909516610100027fffffffffffffffffffffffffffffffffff0000000000000000000000000000ff991515999099167fffffffffffffffffffffffffffffffffff00000000000000000000000000000090941693909317979097179190911691909117179055835185815290810192909252917fa5ae833d0bb1dcd632d98a8b70973e8516812898e19bf27b70071ebc8dc52c01910160405180910390a2505050565b33600090815260016020908152604080832077ffffffffffffffffffffffffffffffffffffffffffffffff851684529091528120805491610e08836147fd565b919050555050565b3360009081526020819052604090208054821115610e8a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f576974686472617720616d6f756e7420746f6f206c61726765000000000000006044820152606401610757565b8054610e97908390614835565b81556040805173ffffffffffffffffffffffffffffffffffffffff851681526020810184905233917fd1c19fbcd4551a5edfb66d43d2e337c04837afda3482b42bdf569a8fccdae5fb910160405180910390a260008373ffffffffffffffffffffffffffffffffffffffff168360405160006040518083038185875af1925050503d8060008114610f44576040519150601f19603f3d011682016040523d82523d6000602084013e610f49565b606091505b5050905080610fb4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f6661696c656420746f20776974686472617700000000000000000000000000006044820152606401610757565b50505050565b6000610fc582612423565b6040805160208101929092523090820152466060820152608001604051602081830303815290604052805190602001209050919050565b6110376040518060c0016040528060008152602001600081526020016000815260200160008152602001600015158152602001606081525090565b61103f61243c565b611047613dfc565b6110508361247d565b60008061105f600086856125f0565b9150915060006110716000878661284f565b90506040518060c00160405280856080015181526020018281526020018481526020018381526020016000151581526020016040518060400160405280600281526020017f30780000000000000000000000000000000000000000000000000000000000008152508152509450505050506110ec6001600255565b919050565b6110f961243c565b8160008167ffffffffffffffff81111561111557611115613fa8565b60405190808252806020026020018201604052801561114e57816020015b61113b613dfc565b8152602001906001900390816111335790505b50905060005b828110156111c757600082828151811061117057611170614848565b602002602001015190506000806111ab848a8a8781811061119357611193614848565b90506020028101906111a59190614877565b856125f0565b915091506111bc8483836000612c25565b505050600101611154565b506040516000907fbb47ee3e183a558b1a2ff0874b079f3fc5478b7454eacf2bfc5af2ff5878f972908290a160005b83811015611251576112458188888481811061121457611214614848565b90506020028101906112269190614877565b85848151811061123857611238614848565b602002602001015161284f565b909101906001016111f6565b5061125c8482612e7a565b5050506112696001600255565b505050565b6000808473ffffffffffffffffffffffffffffffffffffffff1684846040516112989291906148b5565b600060405180830381855af49150503d80600081146112d3576040519150601f19603f3d011682016040523d82523d6000602084013e6112d8565b606091505b509150915081816040517f994105540000000000000000000000000000000000000000000000000000000081526004016107579291906148c5565b600061133460065473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff1663570e1a3684846040518363ffffffff1660e01b815260040161136e929190614929565b6020604051808303816000875af115801561138d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113b1919061493d565b6040517f6ca7b80600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82166004820152909150602401610757565b336000908152602081905260408120600181015490916f0100000000000000000000000000000090910463ffffffff169003611496576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f6e6f74207374616b6564000000000000000000000000000000000000000000006044820152606401610757565b600181015460ff16611504576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f616c726561647920756e7374616b696e670000000000000000000000000000006044820152606401610757565b600181015460009061152f906f01000000000000000000000000000000900463ffffffff164261495a565b6001830180547fffffffffffffff000000000000ffffffffffffffffffffffffffffffffffff001673010000000000000000000000000000000000000065ffffffffffff84169081027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169190911790915560405190815290915033907ffa9b3c14cc825c412c9ed81b3ba365a5b459439403f18829e572ed53a4180f0a906020015b60405180910390a25050565b336000908152602081905260409020600181015461010090046dffffffffffffffffffffffffffff168061166e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f4e6f207374616b6520746f2077697468647261770000000000000000000000006044820152606401610757565b6001820154730100000000000000000000000000000000000000900465ffffffffffff166116f8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f6d7573742063616c6c20756e6c6f636b5374616b6528292066697273740000006044820152606401610757565b60018201544273010000000000000000000000000000000000000090910465ffffffffffff161115611786576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f5374616b65207769746864726177616c206973206e6f742064756500000000006044820152606401610757565b6001820180547fffffffffffffff000000000000000000000000000000000000000000000000ff1690556040805173ffffffffffffffffffffffffffffffffffffffff851681526020810183905233917fb7c918e0e249f999e965cafeb6c664271b3f4317d296461500e71da39f0cbda3910160405180910390a260008373ffffffffffffffffffffffffffffffffffffffff168260405160006040518083038185875af1925050503d806000811461185b576040519150601f19603f3d011682016040523d82523d6000602084013e611860565b606091505b5050905080610fb4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f6661696c656420746f207769746864726177207374616b6500000000000000006044820152606401610757565b6118d3613eae565b6118db613dfc565b6118e48361247d565b6000806118f3600086856125f0565b845160e001516040805180820182526000808252602080830182815273ffffffffffffffffffffffffffffffffffffffff95861683528282528483206001908101546dffffffffffffffffffffffffffff6101008083048216885263ffffffff6f010000000000000000000000000000009384900481169095528e51518951808b018b5288815280880189815291909b1688528787528988209094015490810490911689520490911690528351808501909452818452830152939550919350903660006119c360408b018b614980565b9092509050600060148210156119da5760006119f5565b6119e86014600084866149e5565b6119f191614a0f565b60601c5b6040805180820182526000808252602080830182815273ffffffffffffffffffffffffffffffffffffffff86168352908290529290206001015461010081046dffffffffffffffffffffffffffff1682526f01000000000000000000000000000000900463ffffffff169091529091509350505050600085905060006040518060a001604052808960800151815260200189604001518152602001888152602001878152602001611aa78a6060015190565b905260408051808201825260035473ffffffffffffffffffffffffffffffffffffffff908116825282518084019093526004548352600554602084810191909152820192909252919250831615801590611b18575060018373ffffffffffffffffffffffffffffffffffffffff1614155b15611b9c5760408051808201825273ffffffffffffffffffffffffffffffffffffffff851680825282518084018452600080825260208083018281529382528181529490206001015461010081046dffffffffffffffffffffffffffff1682526f01000000000000000000000000000000900463ffffffff16909152909182015290505b6040805160a081018252928352602083019590955293810192909252506060810192909252608082015295945050505050565b611bd7613dfc565b611be08561247d565b611bec600086836125f0565b5060009050606073ffffffffffffffffffffffffffffffffffffffff861615611c7f578573ffffffffffffffffffffffffffffffffffffffff168585604051611c369291906148b5565b6000604051808303816000865af19150503d8060008114611c73576040519150601f19603f3d011682016040523d82523d6000602084013e611c78565b606091505b5090925090505b81816040517fd12c41340000000000000000000000000000000000000000000000000000000081526004016107579291906148c5565b611cbd61243c565b816000805b82811015611eaf5736868683818110611cdd57611cdd614848565b9050602002810190611cef9190614a57565b9050366000611cfe8380614a8b565b90925090506000611d156040850160208601614424565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff73ffffffffffffffffffffffffffffffffffffffff821601611db6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f4141393620696e76616c69642061676772656761746f720000000000000000006044820152606401610757565b73ffffffffffffffffffffffffffffffffffffffff811615611e935773ffffffffffffffffffffffffffffffffffffffff8116632dd811338484611dfd6040890189614980565b6040518563ffffffff1660e01b8152600401611e1c9493929190614c43565b60006040518083038186803b158015611e3457600080fd5b505afa925050508015611e45575060015b611e93576040517f86a9f75000000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82166004820152602401610757565b611e9d82876147ea565b95505060019093019250611cc2915050565b5060008167ffffffffffffffff811115611ecb57611ecb613fa8565b604051908082528060200260200182016040528015611f0457816020015b611ef1613dfc565b815260200190600190039081611ee95790505b5090506000805b84811015611fe15736888883818110611f2657611f26614848565b9050602002810190611f389190614a57565b9050366000611f478380614a8b565b90925090506000611f5e6040850160208601614424565b90508160005b81811015611fcf576000898981518110611f8057611f80614848565b60200260200101519050600080611fa38b89898781811061119357611193614848565b91509150611fb384838389612c25565b8a611fbd816147fd565b9b505060019093019250611f64915050565b505060019094019350611f0b92505050565b506040517fbb47ee3e183a558b1a2ff0874b079f3fc5478b7454eacf2bfc5af2ff5878f97290600090a150600080805b8581101561211c573689898381811061202c5761202c614848565b905060200281019061203e9190614a57565b90506120506040820160208301614424565b73ffffffffffffffffffffffffffffffffffffffff167f575ff3acadd5ab348fe1855e217e0f3678f8d767d7494c9f9fefbee2e17cca4d60405160405180910390a236600061209f8380614a8b565b90925090508060005b8181101561210b576120ea888585848181106120c6576120c6614848565b90506020028101906120d89190614877565b8b8b8151811061123857611238614848565b6120f490886147ea565b965087612100816147fd565b9850506001016120a8565b505060019093019250612011915050565b506040516000907f575ff3acadd5ab348fe1855e217e0f3678f8d767d7494c9f9fefbee2e17cca4d908290a26121528682612e7a565b50505050506112696001600255565b600061216d8234612fc1565b90508173ffffffffffffffffffffffffffffffffffffffff167f2da466a7b24304f47e87fa2e1e5a81b9831ce54fec19055ce277ca2f39ba42c4826040516115d291815260200190565b6000806000845160208601878987f195945050505050565b60603d828111156121dd5750815b604051602082018101604052818152816000602083013e9392505050565b6000805a85519091506000908161221182613001565b60e083015190915073ffffffffffffffffffffffffffffffffffffffff811661223d5782519350612338565b80935060008851111561233857868202955060028a600281111561226357612263614cfa565b146123385760a08301516040517f7c627b2100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff831691637c627b21916122c5908e908d908c908990600401614d29565b600060405180830381600088803b1580156122df57600080fd5b5087f1935050505080156122f1575060015b6123385760006123026108006121cf565b9050806040517fad7954bc0000000000000000000000000000000000000000000000000000000081526004016107579190614d8c565b5a60a0840151606085015160808c01519288039990990198019088038082111561236b576064600a828403020498909801975b505060408901518783029650868110156123e05760028b600281111561239357612393614cfa565b036123b6578096506123a48a613033565b6123b18a6000898b61308f565b612415565b7fdeadaa510000000000000000000000000000000000000000000000000000000060005260206000fd5b8681036123ed8682612fc1565b506000808d600281111561240357612403614cfa565b1490506124128c828b8d61308f565b50505b505050505050949350505050565b600061242e82613117565b805190602001209050919050565b6002805403612477576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60028055565b61257d6040517fd69400000000000000000000000000000000000000000000000000000000000060208201527fffffffffffffffffffffffffffffffffffffffff0000000000000000000000003060601b1660228201527f01000000000000000000000000000000000000000000000000000000000000006036820152600090603701604080518083037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe00181529190528051602090910120600680547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff90921691909117905550565b60006125ae61258f6040840184614980565b61259c6020860186614424565b6125a960e0870187614980565b6131dc565b905080516000146106e8576000816040517f220266b60000000000000000000000000000000000000000000000000000000081526004016107579291906147a2565b60008060005a845190915061260586826132c5565b61260e86610fba565b6020860152604081015161012082015161010083015160a08401516080850151606086015160c0870151861717171717176effffffffffffffffffffffffffffff8111156126b8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f41413934206761732076616c756573206f766572666c6f7700000000000000006044820152606401610757565b60006126e78460c081015160a08201516080830151606084015160408501516101009095015194010101010290565b90506126f68a8a8a8487613410565b965061270a84600001518560200151613651565b61277957896040517f220266b6000000000000000000000000000000000000000000000000000000008152600401610757918152604060208201819052601a908201527f4141323520696e76616c6964206163636f756e74206e6f6e6365000000000000606082015260800190565b825a860311156127ee57896040517f220266b6000000000000000000000000000000000000000000000000000000008152600401610757918152604060208201819052601e908201527f41413236206f76657220766572696669636174696f6e4761734c696d69740000606082015260800190565b60e084015160609073ffffffffffffffffffffffffffffffffffffffff16156128225761281d8b8b8b856136ac565b975090505b604089018290528060608a015260a08a01355a870301896080018181525050505050505050935093915050565b6000805a90506000612862846060015190565b604051909150600090368261287a60608a018a614980565b915091506060600082600381111561289157843591505b507f72288ed1000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008216016129d15760008b8b602001516040516024016128f4929190614d9f565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f8dd7712f000000000000000000000000000000000000000000000000000000001790525190915030906242dc53906129879084908f908d90602401614e85565b604051602081830303815290604052915060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050925050612a48565b3073ffffffffffffffffffffffffffffffffffffffff166242dc5385858d8b604051602401612a039493929190614ec5565b604051602081830303815290604052915060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505091505b602060008351602085016000305af19550600051985084604052505050505080612c1b5760003d80602003612a835760206000803e60005191505b507fdeaddead000000000000000000000000000000000000000000000000000000008103612b1657876040517f220266b6000000000000000000000000000000000000000000000000000000008152600401610757918152604060208201819052600f908201527f41413935206f7574206f66206761730000000000000000000000000000000000606082015260800190565b7fdeadaa51000000000000000000000000000000000000000000000000000000008103612b8057600086608001515a612b4f9087614835565b612b5991906147ea565b6040880151909150612b6a88613033565b612b77886000838561308f565b9550612c199050565b8551805160208089015192015173ffffffffffffffffffffffffffffffffffffffff90911691907ff62676f440ff169a3a9afdbf812e89e7f95975ee8e5c31214ffdef631c5f479290612bd46108006121cf565b604051612be29291906147a2565b60405180910390a3600086608001515a612bfc9087614835565b612c0691906147ea565b9050612c1560028886846121fb565b9550505b505b5050509392505050565b600080612c3185613903565b915091508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614612cd357856040517f220266b60000000000000000000000000000000000000000000000000000000081526004016107579181526040602082018190526014908201527f41413234207369676e6174757265206572726f72000000000000000000000000606082015260800190565b8015612d4457856040517f220266b60000000000000000000000000000000000000000000000000000000081526004016107579181526040602082018190526017908201527f414132322065787069726564206f72206e6f7420647565000000000000000000606082015260800190565b6000612d4f85613903565b9250905073ffffffffffffffffffffffffffffffffffffffff811615612dda57866040517f220266b60000000000000000000000000000000000000000000000000000000081526004016107579181526040602082018190526014908201527f41413334207369676e6174757265206572726f72000000000000000000000000606082015260800190565b8115612e7157866040517f220266b60000000000000000000000000000000000000000000000000000000081526004016107579181526040602082018190526021908201527f41413332207061796d61737465722065787069726564206f72206e6f7420647560608201527f6500000000000000000000000000000000000000000000000000000000000000608082015260a00190565b50505050505050565b73ffffffffffffffffffffffffffffffffffffffff8216612ef7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f4141393020696e76616c69642062656e656669636961727900000000000000006044820152606401610757565b60008273ffffffffffffffffffffffffffffffffffffffff168260405160006040518083038185875af1925050503d8060008114612f51576040519150601f19603f3d011682016040523d82523d6000602084013e612f56565b606091505b5050905080611269576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f41413931206661696c65642073656e6420746f2062656e6566696369617279006044820152606401610757565b73ffffffffffffffffffffffffffffffffffffffff8216600090815260208190526040812080548290612ff59085906147ea565b91829055509392505050565b6101008101516101208201516000919080820361301f575092915050565b61302b82488301613956565b949350505050565b805180516020808401519281015160405190815273ffffffffffffffffffffffffffffffffffffffff90921692917f67b4fa9642f42120bf031f3051d1824b0fe25627945b27b8a6a65d5761d5482e910160405180910390a350565b835160e0810151815160208088015193015160405173ffffffffffffffffffffffffffffffffffffffff9384169492909316927f49628fd1471006c1482da88028e9ce4dbb080b815c9b0344d39e5a8e6ec1419f916131099189908990899093845291151560208401526040830152606082015260800190565b60405180910390a450505050565b60608135602083013560006131376131326040870187614980565b61396e565b9050600061314b6131326060880188614980565b9050608086013560a087013560c0880135600061316e61313260e08c018c614980565b6040805173ffffffffffffffffffffffffffffffffffffffff9a909a1660208b015289810198909852606089019690965250608087019390935260a086019190915260c085015260e08401526101008084019190915281518084039091018152610120909201905292915050565b606084158015613201575073ffffffffffffffffffffffffffffffffffffffff84163b155b15613240575060408051808201909152601981527f41413230206163636f756e74206e6f74206465706c6f7965640000000000000060208201526132bc565b601482106132ab57600061325760148285876149e5565b61326091614a0f565b60601c9050803b6000036132a957505060408051808201909152601b81527f41413330207061796d6173746572206e6f74206465706c6f796564000000000060208201526132bc565b505b506040805160208101909152600081525b95945050505050565b6132d26020830183614424565b73ffffffffffffffffffffffffffffffffffffffff168152602082810135908201526fffffffffffffffffffffffffffffffff6080808401358281166060850152811c604084015260a084013560c0808501919091528401359182166101008401521c61012082015236600061334b60e0850185614980565b909250905080156133f55760348110156133c1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f4141393320696e76616c6964207061796d6173746572416e64446174610000006044820152606401610757565b6133cb8282613981565b60a0860152608085015273ffffffffffffffffffffffffffffffffffffffff1660e0840152610fb4565b600060e084018190526080840181905260a084015250505050565b825180516000919061342f888761342a60408b018b614980565b6139f2565b60e0820151600073ffffffffffffffffffffffffffffffffffffffff821661348d5773ffffffffffffffffffffffffffffffffffffffff831660009081526020819052604090205487811161348657808803613489565b60005b9150505b60208801516040517f19822f7c00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8516916319822f7c9189916134e9918e91908790600401614efc565b60206040518083038160008887f193505050508015613543575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820190925261354091810190614f21565b60015b61358757896135536108006121cf565b6040517f65c8fd4d000000000000000000000000000000000000000000000000000000008152600401610757929190614f3a565b945073ffffffffffffffffffffffffffffffffffffffff82166136445773ffffffffffffffffffffffffffffffffffffffff8316600090815260208190526040902080548089111561363e578b6040517f220266b60000000000000000000000000000000000000000000000000000000081526004016107579181526040602082018190526017908201527f41413231206469646e2774207061792070726566756e64000000000000000000606082015260800190565b88900390555b5050505095945050505050565b73ffffffffffffffffffffffffffffffffffffffff8216600090815260016020908152604080832084821c808552925282208054849167ffffffffffffffff831691908561369e836147fd565b909155501495945050505050565b60606000805a855160e081015173ffffffffffffffffffffffffffffffffffffffff81166000908152602081905260409020805493945091929091908781101561375b578a6040517f220266b6000000000000000000000000000000000000000000000000000000008152600401610757918152604060208201819052601e908201527f41413331207061796d6173746572206465706f73697420746f6f206c6f770000606082015260800190565b87810382600001819055506000846080015190508373ffffffffffffffffffffffffffffffffffffffff166352b7512c828d8d602001518d6040518563ffffffff1660e01b81526004016137b193929190614efc565b60006040518083038160008887f19350505050801561381057506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820160405261380d9190810190614f87565b60015b613854578b6138206108006121cf565b6040517f65c8fd4d000000000000000000000000000000000000000000000000000000008152600401610757929190615008565b9098509650805a870311156138f4578b6040517f220266b60000000000000000000000000000000000000000000000000000000081526004016107579181526040602082018190526027908201527f41413336206f766572207061796d6173746572566572696669636174696f6e4760608201527f61734c696d697400000000000000000000000000000000000000000000000000608082015260a00190565b50505050505094509492505050565b6000808260000361391957506000928392509050565b600061392484613d7e565b9050806040015165ffffffffffff1642118061394b5750806020015165ffffffffffff1642105b905194909350915050565b60008183106139655781613967565b825b9392505050565b6000604051828085833790209392505050565b6000808061399260148286886149e5565b61399b91614a0f565b60601c6139ac6024601487896149e5565b6139b591615055565b60801c6139c660346024888a6149e5565b6139cf91615055565b9194506fffffffffffffffffffffffffffffffff16925060801c90509250925092565b8015610fb45782515173ffffffffffffffffffffffffffffffffffffffff81163b15613a8357846040517f220266b6000000000000000000000000000000000000000000000000000000008152600401610757918152604060208201819052601f908201527f414131302073656e64657220616c726561647920636f6e737472756374656400606082015260800190565b6000613aa460065473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff1663570e1a3686600001516040015186866040518463ffffffff1660e01b8152600401613ae7929190614929565b60206040518083038160008887f1158015613b06573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190613b2b919061493d565b905073ffffffffffffffffffffffffffffffffffffffff8116613bb357856040517f220266b6000000000000000000000000000000000000000000000000000000008152600401610757918152604060208201819052601b908201527f4141313320696e6974436f6465206661696c6564206f72204f4f470000000000606082015260800190565b8173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614613c5057856040517f220266b600000000000000000000000000000000000000000000000000000000815260040161075791815260406020808301829052908201527f4141313420696e6974436f6465206d7573742072657475726e2073656e646572606082015260800190565b8073ffffffffffffffffffffffffffffffffffffffff163b600003613cd957856040517f220266b600000000000000000000000000000000000000000000000000000000815260040161075791815260406020808301829052908201527f4141313520696e6974436f6465206d757374206372656174652073656e646572606082015260800190565b6000613ce860148286886149e5565b613cf191614a0f565b60601c90508273ffffffffffffffffffffffffffffffffffffffff1686602001517fd51a9c61267aa6196961883ecf5ff2da6619c37dac0fa92122513fb32c032d2d83896000015160e00151604051613d6d92919073ffffffffffffffffffffffffffffffffffffffff92831681529116602082015260400190565b60405180910390a350505050505050565b60408051606081018252600080825260208201819052918101919091528160a081901c65ffffffffffff8116600003613dba575065ffffffffffff5b6040805160608101825273ffffffffffffffffffffffffffffffffffffffff909316835260d09490941c602083015265ffffffffffff16928101929092525090565b6040518060a00160405280613e89604051806101400160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152602001600081525090565b8152602001600080191681526020016000815260200160008152602001600081525090565b6040518060a00160405280613eeb6040518060a0016040528060008152602001600081526020016000815260200160008152602001606081525090565b8152602001613f0d604051806040016040528060008152602001600081525090565b8152602001613f2f604051806040016040528060008152602001600081525090565b8152602001613f51604051806040016040528060008152602001600081525090565b8152602001613f5e613f63565b905290565b6040518060400160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001613f5e604051806040016040528060008152602001600081525090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405160a0810167ffffffffffffffff81118282101715613ffa57613ffa613fa8565b60405290565b604051610140810167ffffffffffffffff81118282101715613ffa57613ffa613fa8565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff8111828210171561406b5761406b613fa8565b604052919050565b600067ffffffffffffffff82111561408d5761408d613fa8565b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b73ffffffffffffffffffffffffffffffffffffffff811681146140db57600080fd5b50565b80356110ec816140b9565b60008183036101c08112156140fd57600080fd5b614105613fd7565b91506101408082121561411757600080fd5b61411f614000565b915061412a846140de565b82526020840135602083015260408401356040830152606084013560608301526080840135608083015260a084013560a083015260c084013560c083015261417460e085016140de565b60e0830152610100848101359083015261012080850135908301529082528201356020820152610160820135604082015261018082013560608201526101a0909101356080820152919050565b60008083601f8401126141d357600080fd5b50813567ffffffffffffffff8111156141eb57600080fd5b60208301915083602082850101111561420357600080fd5b9250929050565b600080600080610200858703121561422157600080fd5b843567ffffffffffffffff8082111561423957600080fd5b818701915087601f83011261424d57600080fd5b813561426061425b82614073565b614024565b81815289602083860101111561427557600080fd5b81602085016020830137600060208383010152809750505061429a88602089016140e9565b94506101e08701359150808211156142b157600080fd5b506142be878288016141c1565b95989497509550505050565b6000602082840312156142dc57600080fd5b81357fffffffff000000000000000000000000000000000000000000000000000000008116811461396757600080fd5b60006020828403121561431e57600080fd5b813563ffffffff8116811461396757600080fd5b803577ffffffffffffffffffffffffffffffffffffffffffffffff811681146110ec57600080fd5b60006020828403121561436c57600080fd5b61396782614332565b6000806040838503121561438857600080fd5b8235614393816140b9565b91506143a160208401614332565b90509250929050565b600080604083850312156143bd57600080fd5b82356143c8816140b9565b946020939093013593505050565b600061012082840312156143e957600080fd5b50919050565b60006020828403121561440157600080fd5b813567ffffffffffffffff81111561441857600080fd5b61302b848285016143d6565b60006020828403121561443657600080fd5b8135613967816140b9565b60005b8381101561445c578181015183820152602001614444565b50506000910152565b6000815180845261447d816020860160208601614441565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b60208152815160208201526020820151604082015260408201516060820152606082015160808201526080820151151560a0820152600060a083015160c08084015261302b60e0840182614465565b60008083601f84011261451057600080fd5b50813567ffffffffffffffff81111561452857600080fd5b6020830191508360208260051b850101111561420357600080fd5b60008060006040848603121561455857600080fd5b833567ffffffffffffffff81111561456f57600080fd5b61457b868287016144fe565b909450925050602084013561458f816140b9565b809150509250925092565b6000806000604084860312156145af57600080fd5b83356145ba816140b9565b9250602084013567ffffffffffffffff8111156145d657600080fd5b6145e2868287016141c1565b9497909650939450505050565b6000806020838503121561460257600080fd5b823567ffffffffffffffff81111561461957600080fd5b614625858286016141c1565b90969095509350505050565b602080825282516101408383015280516101608401529081015161018083015260408101516101a083015260608101516101c08301526080015160a06101e0830152600090614684610200840182614465565b905060208401516146a2604085018280518252602090810151910152565b506040840151805160808581019190915260209182015160a08601526060860151805160c087015282015160e0860152850151805173ffffffffffffffffffffffffffffffffffffffff1661010086015280820151805161012087015290910151610140850152509392505050565b6000806000806060858703121561472757600080fd5b843567ffffffffffffffff8082111561473f57600080fd5b61474b888389016143d6565b95506020870135915061475d826140b9565b909350604086013590808211156142b157600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b82815260406020820152600061302b6040830184614465565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b80820180821115610a2c57610a2c6147bb565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361482e5761482e6147bb565b5060010190565b81810381811115610a2c57610a2c6147bb565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600082357ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffee18336030181126148ab57600080fd5b9190910192915050565b8183823760009101908152919050565b821515815260406020820152600061302b6040830184614465565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b60208152600061302b6020830184866148e0565b60006020828403121561494f57600080fd5b8151613967816140b9565b65ffffffffffff818116838216019080821115614979576149796147bb565b5092915050565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18436030181126149b557600080fd5b83018035915067ffffffffffffffff8211156149d057600080fd5b60200191503681900382131561420357600080fd5b600080858511156149f557600080fd5b83861115614a0257600080fd5b5050820193919092039150565b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008135818116916014851015614a4f5780818660140360031b1b83161692505b505092915050565b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa18336030181126148ab57600080fd5b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112614ac057600080fd5b83018035915067ffffffffffffffff821115614adb57600080fd5b6020019150600581901b360382131561420357600080fd5b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112614b2857600080fd5b830160208101925035905067ffffffffffffffff811115614b4857600080fd5b80360382131561420357600080fd5b6000610120614b8384614b69856140de565b73ffffffffffffffffffffffffffffffffffffffff169052565b60208301356020850152614b9a6040840184614af3565b826040870152614bad83870182846148e0565b92505050614bbe6060840184614af3565b8583036060870152614bd18382846148e0565b925050506080830135608085015260a083013560a085015260c083013560c0850152614c0060e0840184614af3565b85830360e0870152614c138382846148e0565b92505050610100614c2681850185614af3565b86840383880152614c388482846148e0565b979650505050505050565b6040808252810184905260006060600586901b830181019083018783805b89811015614ce3577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa087860301845282357ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffee18c3603018112614cc1578283fd5b614ccd868d8301614b57565b9550506020938401939290920191600101614c61565b505050508281036020840152614c388185876148e0565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b600060038610614d62577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b85825260806020830152614d796080830186614465565b6040830194909452506060015292915050565b6020815260006139676020830184614465565b604081526000614db26040830185614b57565b90508260208301529392505050565b8051805173ffffffffffffffffffffffffffffffffffffffff1683526020810151602084015260408101516040840152606081015160608401526080810151608084015260a081015160a084015260c081015160c084015260e0810151614e4060e085018273ffffffffffffffffffffffffffffffffffffffff169052565b5061010081810151908401526101209081015190830152602081015161014083015260408101516101608301526060810151610180830152608001516101a090910152565b6000610200808352614e9981840187614465565b9050614ea86020840186614dc1565b8281036101e0840152614ebb8185614465565b9695505050505050565b6000610200808352614eda81840187896148e0565b9050614ee96020840186614dc1565b8281036101e0840152614c388185614465565b606081526000614f0f6060830186614b57565b60208301949094525060400152919050565b600060208284031215614f3357600080fd5b5051919050565b82815260606020820152600d60608201527f4141323320726576657274656400000000000000000000000000000000000000608082015260a06040820152600061302b60a0830184614465565b60008060408385031215614f9a57600080fd5b825167ffffffffffffffff811115614fb157600080fd5b8301601f81018513614fc257600080fd5b8051614fd061425b82614073565b818152866020838501011115614fe557600080fd5b614ff6826020830160208601614441565b60209590950151949694955050505050565b82815260606020820152600d60608201527f4141333320726576657274656400000000000000000000000000000000000000608082015260a06040820152600061302b60a0830184614465565b7fffffffffffffffffffffffffffffffff000000000000000000000000000000008135818116916010851015614a4f5760109490940360031b84901b169092169291505056fea264697066735822122022e02178dc569768380168e9e3ea80c02f334e22212a424c7e3d8b24376c948964736f6c63430008170033608060405234801561001057600080fd5b50610213806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063570e1a3614610030575b600080fd5b61004361003e3660046100f9565b61006c565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60008061007c601482858761016b565b61008591610195565b60601c90506000610099846014818861016b565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092018290525084519495509360209350849250905082850182875af190506000519350806100f057600093505b50505092915050565b6000806020838503121561010c57600080fd5b823567ffffffffffffffff8082111561012457600080fd5b818501915085601f83011261013857600080fd5b81358181111561014757600080fd5b86602082850101111561015957600080fd5b60209290920196919550909350505050565b6000808585111561017b57600080fd5b8386111561018857600080fd5b5050820193919092039150565b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000081358181169160148510156101d55780818660140360031b1b83161692505b50509291505056fea2646970667358221220f4eeea3c52e568afe7af0cb6d22e9eba322f25189228e2d96485c8f1d485112464736f6c63430008170033";
16
+ exports.EntryPointV07SimulationsAbi = [
17
+ {
18
+ type: "constructor",
19
+ inputs: [],
20
+ stateMutability: "nonpayable"
21
+ },
22
+ {
23
+ type: "receive",
24
+ stateMutability: "payable"
25
+ },
26
+ {
27
+ type: "function",
28
+ name: "addStake",
29
+ inputs: [
30
+ {
31
+ name: "unstakeDelaySec",
32
+ type: "uint32",
33
+ internalType: "uint32"
34
+ }
35
+ ],
36
+ outputs: [],
37
+ stateMutability: "payable"
38
+ },
39
+ {
40
+ type: "function",
41
+ name: "balanceOf",
42
+ inputs: [
43
+ {
44
+ name: "account",
45
+ type: "address",
46
+ internalType: "address"
47
+ }
48
+ ],
49
+ outputs: [
50
+ {
51
+ name: "",
52
+ type: "uint256",
53
+ internalType: "uint256"
54
+ }
55
+ ],
56
+ stateMutability: "view"
57
+ },
58
+ {
59
+ type: "function",
60
+ name: "depositTo",
61
+ inputs: [
62
+ {
63
+ name: "account",
64
+ type: "address",
65
+ internalType: "address"
66
+ }
67
+ ],
68
+ outputs: [],
69
+ stateMutability: "payable"
70
+ },
71
+ {
72
+ type: "function",
73
+ name: "deposits",
74
+ inputs: [
75
+ {
76
+ name: "",
77
+ type: "address",
78
+ internalType: "address"
79
+ }
80
+ ],
81
+ outputs: [
82
+ {
83
+ name: "deposit",
84
+ type: "uint256",
85
+ internalType: "uint256"
86
+ },
87
+ {
88
+ name: "staked",
89
+ type: "bool",
90
+ internalType: "bool"
91
+ },
92
+ {
93
+ name: "stake",
94
+ type: "uint112",
95
+ internalType: "uint112"
96
+ },
97
+ {
98
+ name: "unstakeDelaySec",
99
+ type: "uint32",
100
+ internalType: "uint32"
101
+ },
102
+ {
103
+ name: "withdrawTime",
104
+ type: "uint48",
105
+ internalType: "uint48"
106
+ }
107
+ ],
108
+ stateMutability: "view"
109
+ },
110
+ {
111
+ type: "function",
112
+ name: "getDepositInfo",
113
+ inputs: [
114
+ {
115
+ name: "account",
116
+ type: "address",
117
+ internalType: "address"
118
+ }
119
+ ],
120
+ outputs: [
121
+ {
122
+ name: "info",
123
+ type: "tuple",
124
+ internalType: "struct IStakeManager.DepositInfo",
125
+ components: [
126
+ {
127
+ name: "deposit",
128
+ type: "uint256",
129
+ internalType: "uint256"
130
+ },
131
+ {
132
+ name: "staked",
133
+ type: "bool",
134
+ internalType: "bool"
135
+ },
136
+ {
137
+ name: "stake",
138
+ type: "uint112",
139
+ internalType: "uint112"
140
+ },
141
+ {
142
+ name: "unstakeDelaySec",
143
+ type: "uint32",
144
+ internalType: "uint32"
145
+ },
146
+ {
147
+ name: "withdrawTime",
148
+ type: "uint48",
149
+ internalType: "uint48"
150
+ }
151
+ ]
152
+ }
153
+ ],
154
+ stateMutability: "view"
155
+ },
156
+ {
157
+ type: "function",
158
+ name: "getNonce",
159
+ inputs: [
160
+ {
161
+ name: "sender",
162
+ type: "address",
163
+ internalType: "address"
164
+ },
165
+ {
166
+ name: "key",
167
+ type: "uint192",
168
+ internalType: "uint192"
169
+ }
170
+ ],
171
+ outputs: [
172
+ {
173
+ name: "nonce",
174
+ type: "uint256",
175
+ internalType: "uint256"
176
+ }
177
+ ],
178
+ stateMutability: "view"
179
+ },
180
+ {
181
+ type: "function",
182
+ name: "getUserOpHash",
183
+ inputs: [
184
+ {
185
+ name: "userOp",
186
+ type: "tuple",
187
+ internalType: "struct PackedUserOperation",
188
+ components: [
189
+ {
190
+ name: "sender",
191
+ type: "address",
192
+ internalType: "address"
193
+ },
194
+ {
195
+ name: "nonce",
196
+ type: "uint256",
197
+ internalType: "uint256"
198
+ },
199
+ {
200
+ name: "initCode",
201
+ type: "bytes",
202
+ internalType: "bytes"
203
+ },
204
+ {
205
+ name: "callData",
206
+ type: "bytes",
207
+ internalType: "bytes"
208
+ },
209
+ {
210
+ name: "accountGasLimits",
211
+ type: "bytes32",
212
+ internalType: "bytes32"
213
+ },
214
+ {
215
+ name: "preVerificationGas",
216
+ type: "uint256",
217
+ internalType: "uint256"
218
+ },
219
+ {
220
+ name: "gasFees",
221
+ type: "bytes32",
222
+ internalType: "bytes32"
223
+ },
224
+ {
225
+ name: "paymasterAndData",
226
+ type: "bytes",
227
+ internalType: "bytes"
228
+ },
229
+ {
230
+ name: "signature",
231
+ type: "bytes",
232
+ internalType: "bytes"
233
+ }
234
+ ]
235
+ }
236
+ ],
237
+ outputs: [
238
+ {
239
+ name: "",
240
+ type: "bytes32",
241
+ internalType: "bytes32"
242
+ }
243
+ ],
244
+ stateMutability: "view"
245
+ },
246
+ {
247
+ type: "function",
248
+ name: "incrementNonce",
249
+ inputs: [
250
+ {
251
+ name: "key",
252
+ type: "uint192",
253
+ internalType: "uint192"
254
+ }
255
+ ],
256
+ outputs: [],
257
+ stateMutability: "nonpayable"
258
+ },
259
+ {
260
+ type: "function",
261
+ name: "innerHandleOp",
262
+ inputs: [
263
+ {
264
+ name: "callData",
265
+ type: "bytes",
266
+ internalType: "bytes"
267
+ },
268
+ {
269
+ name: "opInfo",
270
+ type: "tuple",
271
+ internalType: "struct EntryPoint.UserOpInfo",
272
+ components: [
273
+ {
274
+ name: "mUserOp",
275
+ type: "tuple",
276
+ internalType: "struct EntryPoint.MemoryUserOp",
277
+ components: [
278
+ {
279
+ name: "sender",
280
+ type: "address",
281
+ internalType: "address"
282
+ },
283
+ {
284
+ name: "nonce",
285
+ type: "uint256",
286
+ internalType: "uint256"
287
+ },
288
+ {
289
+ name: "verificationGasLimit",
290
+ type: "uint256",
291
+ internalType: "uint256"
292
+ },
293
+ {
294
+ name: "callGasLimit",
295
+ type: "uint256",
296
+ internalType: "uint256"
297
+ },
298
+ {
299
+ name: "paymasterVerificationGasLimit",
300
+ type: "uint256",
301
+ internalType: "uint256"
302
+ },
303
+ {
304
+ name: "paymasterPostOpGasLimit",
305
+ type: "uint256",
306
+ internalType: "uint256"
307
+ },
308
+ {
309
+ name: "preVerificationGas",
310
+ type: "uint256",
311
+ internalType: "uint256"
312
+ },
313
+ {
314
+ name: "paymaster",
315
+ type: "address",
316
+ internalType: "address"
317
+ },
318
+ {
319
+ name: "maxFeePerGas",
320
+ type: "uint256",
321
+ internalType: "uint256"
322
+ },
323
+ {
324
+ name: "maxPriorityFeePerGas",
325
+ type: "uint256",
326
+ internalType: "uint256"
327
+ }
328
+ ]
329
+ },
330
+ {
331
+ name: "userOpHash",
332
+ type: "bytes32",
333
+ internalType: "bytes32"
334
+ },
335
+ {
336
+ name: "prefund",
337
+ type: "uint256",
338
+ internalType: "uint256"
339
+ },
340
+ {
341
+ name: "contextOffset",
342
+ type: "uint256",
343
+ internalType: "uint256"
344
+ },
345
+ {
346
+ name: "preOpGas",
347
+ type: "uint256",
348
+ internalType: "uint256"
349
+ }
350
+ ]
351
+ },
352
+ {
353
+ name: "context",
354
+ type: "bytes",
355
+ internalType: "bytes"
356
+ },
357
+ {
358
+ name: "preGas",
359
+ type: "uint256",
360
+ internalType: "uint256"
361
+ }
362
+ ],
363
+ outputs: [
364
+ {
365
+ name: "actualGasCost",
366
+ type: "uint256",
367
+ internalType: "uint256"
368
+ },
369
+ {
370
+ name: "paymasterPostOpGasLimit",
371
+ type: "uint256",
372
+ internalType: "uint256"
373
+ }
374
+ ],
375
+ stateMutability: "nonpayable"
376
+ },
377
+ {
378
+ type: "function",
379
+ name: "nonceSequenceNumber",
380
+ inputs: [
381
+ {
382
+ name: "",
383
+ type: "address",
384
+ internalType: "address"
385
+ },
386
+ {
387
+ name: "",
388
+ type: "uint192",
389
+ internalType: "uint192"
390
+ }
391
+ ],
392
+ outputs: [
393
+ {
394
+ name: "",
395
+ type: "uint256",
396
+ internalType: "uint256"
397
+ }
398
+ ],
399
+ stateMutability: "view"
400
+ },
401
+ {
402
+ type: "function",
403
+ name: "simulateCallData",
404
+ inputs: [
405
+ {
406
+ name: "op",
407
+ type: "tuple",
408
+ internalType: "struct PackedUserOperation",
409
+ components: [
410
+ {
411
+ name: "sender",
412
+ type: "address",
413
+ internalType: "address"
414
+ },
415
+ {
416
+ name: "nonce",
417
+ type: "uint256",
418
+ internalType: "uint256"
419
+ },
420
+ {
421
+ name: "initCode",
422
+ type: "bytes",
423
+ internalType: "bytes"
424
+ },
425
+ {
426
+ name: "callData",
427
+ type: "bytes",
428
+ internalType: "bytes"
429
+ },
430
+ {
431
+ name: "accountGasLimits",
432
+ type: "bytes32",
433
+ internalType: "bytes32"
434
+ },
435
+ {
436
+ name: "preVerificationGas",
437
+ type: "uint256",
438
+ internalType: "uint256"
439
+ },
440
+ {
441
+ name: "gasFees",
442
+ type: "bytes32",
443
+ internalType: "bytes32"
444
+ },
445
+ {
446
+ name: "paymasterAndData",
447
+ type: "bytes",
448
+ internalType: "bytes"
449
+ },
450
+ {
451
+ name: "signature",
452
+ type: "bytes",
453
+ internalType: "bytes"
454
+ }
455
+ ]
456
+ },
457
+ {
458
+ name: "target",
459
+ type: "address",
460
+ internalType: "address"
461
+ },
462
+ {
463
+ name: "targetCallData",
464
+ type: "bytes",
465
+ internalType: "bytes"
466
+ }
467
+ ],
468
+ outputs: [
469
+ {
470
+ name: "",
471
+ type: "tuple",
472
+ internalType: "struct IEntryPointSimulations.TargetCallResult",
473
+ components: [
474
+ {
475
+ name: "gasUsed",
476
+ type: "uint256",
477
+ internalType: "uint256"
478
+ },
479
+ {
480
+ name: "success",
481
+ type: "bool",
482
+ internalType: "bool"
483
+ },
484
+ {
485
+ name: "returnData",
486
+ type: "bytes",
487
+ internalType: "bytes"
488
+ }
489
+ ]
490
+ }
491
+ ],
492
+ stateMutability: "nonpayable"
493
+ },
494
+ {
495
+ type: "function",
496
+ name: "simulateCallDataBulk",
497
+ inputs: [
498
+ {
499
+ name: "ops",
500
+ type: "tuple[]",
501
+ internalType: "struct PackedUserOperation[]",
502
+ components: [
503
+ {
504
+ name: "sender",
505
+ type: "address",
506
+ internalType: "address"
507
+ },
508
+ {
509
+ name: "nonce",
510
+ type: "uint256",
511
+ internalType: "uint256"
512
+ },
513
+ {
514
+ name: "initCode",
515
+ type: "bytes",
516
+ internalType: "bytes"
517
+ },
518
+ {
519
+ name: "callData",
520
+ type: "bytes",
521
+ internalType: "bytes"
522
+ },
523
+ {
524
+ name: "accountGasLimits",
525
+ type: "bytes32",
526
+ internalType: "bytes32"
527
+ },
528
+ {
529
+ name: "preVerificationGas",
530
+ type: "uint256",
531
+ internalType: "uint256"
532
+ },
533
+ {
534
+ name: "gasFees",
535
+ type: "bytes32",
536
+ internalType: "bytes32"
537
+ },
538
+ {
539
+ name: "paymasterAndData",
540
+ type: "bytes",
541
+ internalType: "bytes"
542
+ },
543
+ {
544
+ name: "signature",
545
+ type: "bytes",
546
+ internalType: "bytes"
547
+ }
548
+ ]
549
+ },
550
+ {
551
+ name: "targets",
552
+ type: "address[]",
553
+ internalType: "address[]"
554
+ },
555
+ {
556
+ name: "targetCallData",
557
+ type: "bytes[]",
558
+ internalType: "bytes[]"
559
+ }
560
+ ],
561
+ outputs: [
562
+ {
563
+ name: "",
564
+ type: "tuple[]",
565
+ internalType: "struct IEntryPointSimulations.TargetCallResult[]",
566
+ components: [
567
+ {
568
+ name: "gasUsed",
569
+ type: "uint256",
570
+ internalType: "uint256"
571
+ },
572
+ {
573
+ name: "success",
574
+ type: "bool",
575
+ internalType: "bool"
576
+ },
577
+ {
578
+ name: "returnData",
579
+ type: "bytes",
580
+ internalType: "bytes"
581
+ }
582
+ ]
583
+ }
584
+ ],
585
+ stateMutability: "nonpayable"
586
+ },
587
+ {
588
+ type: "function",
589
+ name: "simulateCallDataLast",
590
+ inputs: [
591
+ {
592
+ name: "ops",
593
+ type: "tuple[]",
594
+ internalType: "struct PackedUserOperation[]",
595
+ components: [
596
+ {
597
+ name: "sender",
598
+ type: "address",
599
+ internalType: "address"
600
+ },
601
+ {
602
+ name: "nonce",
603
+ type: "uint256",
604
+ internalType: "uint256"
605
+ },
606
+ {
607
+ name: "initCode",
608
+ type: "bytes",
609
+ internalType: "bytes"
610
+ },
611
+ {
612
+ name: "callData",
613
+ type: "bytes",
614
+ internalType: "bytes"
615
+ },
616
+ {
617
+ name: "accountGasLimits",
618
+ type: "bytes32",
619
+ internalType: "bytes32"
620
+ },
621
+ {
622
+ name: "preVerificationGas",
623
+ type: "uint256",
624
+ internalType: "uint256"
625
+ },
626
+ {
627
+ name: "gasFees",
628
+ type: "bytes32",
629
+ internalType: "bytes32"
630
+ },
631
+ {
632
+ name: "paymasterAndData",
633
+ type: "bytes",
634
+ internalType: "bytes"
635
+ },
636
+ {
637
+ name: "signature",
638
+ type: "bytes",
639
+ internalType: "bytes"
640
+ }
641
+ ]
642
+ },
643
+ {
644
+ name: "targets",
645
+ type: "address[]",
646
+ internalType: "address[]"
647
+ },
648
+ {
649
+ name: "targetCallData",
650
+ type: "bytes[]",
651
+ internalType: "bytes[]"
652
+ }
653
+ ],
654
+ outputs: [
655
+ {
656
+ name: "",
657
+ type: "tuple",
658
+ internalType: "struct IEntryPointSimulations.TargetCallResult",
659
+ components: [
660
+ {
661
+ name: "gasUsed",
662
+ type: "uint256",
663
+ internalType: "uint256"
664
+ },
665
+ {
666
+ name: "success",
667
+ type: "bool",
668
+ internalType: "bool"
669
+ },
670
+ {
671
+ name: "returnData",
672
+ type: "bytes",
673
+ internalType: "bytes"
674
+ }
675
+ ]
676
+ }
677
+ ],
678
+ stateMutability: "nonpayable"
679
+ },
680
+ {
681
+ type: "function",
682
+ name: "simulateHandleOp",
683
+ inputs: [
684
+ {
685
+ name: "op",
686
+ type: "tuple",
687
+ internalType: "struct PackedUserOperation",
688
+ components: [
689
+ {
690
+ name: "sender",
691
+ type: "address",
692
+ internalType: "address"
693
+ },
694
+ {
695
+ name: "nonce",
696
+ type: "uint256",
697
+ internalType: "uint256"
698
+ },
699
+ {
700
+ name: "initCode",
701
+ type: "bytes",
702
+ internalType: "bytes"
703
+ },
704
+ {
705
+ name: "callData",
706
+ type: "bytes",
707
+ internalType: "bytes"
708
+ },
709
+ {
710
+ name: "accountGasLimits",
711
+ type: "bytes32",
712
+ internalType: "bytes32"
713
+ },
714
+ {
715
+ name: "preVerificationGas",
716
+ type: "uint256",
717
+ internalType: "uint256"
718
+ },
719
+ {
720
+ name: "gasFees",
721
+ type: "bytes32",
722
+ internalType: "bytes32"
723
+ },
724
+ {
725
+ name: "paymasterAndData",
726
+ type: "bytes",
727
+ internalType: "bytes"
728
+ },
729
+ {
730
+ name: "signature",
731
+ type: "bytes",
732
+ internalType: "bytes"
733
+ }
734
+ ]
735
+ }
736
+ ],
737
+ outputs: [
738
+ {
739
+ name: "",
740
+ type: "tuple",
741
+ internalType: "struct IEntryPointSimulations.ExecutionResult",
742
+ components: [
743
+ {
744
+ name: "preOpGas",
745
+ type: "uint256",
746
+ internalType: "uint256"
747
+ },
748
+ {
749
+ name: "paid",
750
+ type: "uint256",
751
+ internalType: "uint256"
752
+ },
753
+ {
754
+ name: "accountValidationData",
755
+ type: "uint256",
756
+ internalType: "uint256"
757
+ },
758
+ {
759
+ name: "paymasterValidationData",
760
+ type: "uint256",
761
+ internalType: "uint256"
762
+ },
763
+ {
764
+ name: "paymasterVerificationGasLimit",
765
+ type: "uint256",
766
+ internalType: "uint256"
767
+ },
768
+ {
769
+ name: "paymasterPostOpGasLimit",
770
+ type: "uint256",
771
+ internalType: "uint256"
772
+ },
773
+ {
774
+ name: "targetSuccess",
775
+ type: "bool",
776
+ internalType: "bool"
777
+ },
778
+ {
779
+ name: "targetResult",
780
+ type: "bytes",
781
+ internalType: "bytes"
782
+ }
783
+ ]
784
+ }
785
+ ],
786
+ stateMutability: "nonpayable"
787
+ },
788
+ {
789
+ type: "function",
790
+ name: "simulateHandleOpBulk",
791
+ inputs: [
792
+ {
793
+ name: "ops",
794
+ type: "tuple[]",
795
+ internalType: "struct PackedUserOperation[]",
796
+ components: [
797
+ {
798
+ name: "sender",
799
+ type: "address",
800
+ internalType: "address"
801
+ },
802
+ {
803
+ name: "nonce",
804
+ type: "uint256",
805
+ internalType: "uint256"
806
+ },
807
+ {
808
+ name: "initCode",
809
+ type: "bytes",
810
+ internalType: "bytes"
811
+ },
812
+ {
813
+ name: "callData",
814
+ type: "bytes",
815
+ internalType: "bytes"
816
+ },
817
+ {
818
+ name: "accountGasLimits",
819
+ type: "bytes32",
820
+ internalType: "bytes32"
821
+ },
822
+ {
823
+ name: "preVerificationGas",
824
+ type: "uint256",
825
+ internalType: "uint256"
826
+ },
827
+ {
828
+ name: "gasFees",
829
+ type: "bytes32",
830
+ internalType: "bytes32"
831
+ },
832
+ {
833
+ name: "paymasterAndData",
834
+ type: "bytes",
835
+ internalType: "bytes"
836
+ },
837
+ {
838
+ name: "signature",
839
+ type: "bytes",
840
+ internalType: "bytes"
841
+ }
842
+ ]
843
+ }
844
+ ],
845
+ outputs: [
846
+ {
847
+ name: "",
848
+ type: "tuple[]",
849
+ internalType: "struct IEntryPointSimulations.ExecutionResult[]",
850
+ components: [
851
+ {
852
+ name: "preOpGas",
853
+ type: "uint256",
854
+ internalType: "uint256"
855
+ },
856
+ {
857
+ name: "paid",
858
+ type: "uint256",
859
+ internalType: "uint256"
860
+ },
861
+ {
862
+ name: "accountValidationData",
863
+ type: "uint256",
864
+ internalType: "uint256"
865
+ },
866
+ {
867
+ name: "paymasterValidationData",
868
+ type: "uint256",
869
+ internalType: "uint256"
870
+ },
871
+ {
872
+ name: "paymasterVerificationGasLimit",
873
+ type: "uint256",
874
+ internalType: "uint256"
875
+ },
876
+ {
877
+ name: "paymasterPostOpGasLimit",
878
+ type: "uint256",
879
+ internalType: "uint256"
880
+ },
881
+ {
882
+ name: "targetSuccess",
883
+ type: "bool",
884
+ internalType: "bool"
885
+ },
886
+ {
887
+ name: "targetResult",
888
+ type: "bytes",
889
+ internalType: "bytes"
890
+ }
891
+ ]
892
+ }
893
+ ],
894
+ stateMutability: "nonpayable"
895
+ },
896
+ {
897
+ type: "function",
898
+ name: "simulateHandleOpLast",
899
+ inputs: [
900
+ {
901
+ name: "ops",
902
+ type: "tuple[]",
903
+ internalType: "struct PackedUserOperation[]",
904
+ components: [
905
+ {
906
+ name: "sender",
907
+ type: "address",
908
+ internalType: "address"
909
+ },
910
+ {
911
+ name: "nonce",
912
+ type: "uint256",
913
+ internalType: "uint256"
914
+ },
915
+ {
916
+ name: "initCode",
917
+ type: "bytes",
918
+ internalType: "bytes"
919
+ },
920
+ {
921
+ name: "callData",
922
+ type: "bytes",
923
+ internalType: "bytes"
924
+ },
925
+ {
926
+ name: "accountGasLimits",
927
+ type: "bytes32",
928
+ internalType: "bytes32"
929
+ },
930
+ {
931
+ name: "preVerificationGas",
932
+ type: "uint256",
933
+ internalType: "uint256"
934
+ },
935
+ {
936
+ name: "gasFees",
937
+ type: "bytes32",
938
+ internalType: "bytes32"
939
+ },
940
+ {
941
+ name: "paymasterAndData",
942
+ type: "bytes",
943
+ internalType: "bytes"
944
+ },
945
+ {
946
+ name: "signature",
947
+ type: "bytes",
948
+ internalType: "bytes"
949
+ }
950
+ ]
951
+ }
952
+ ],
953
+ outputs: [
954
+ {
955
+ name: "",
956
+ type: "tuple",
957
+ internalType: "struct IEntryPointSimulations.ExecutionResult",
958
+ components: [
959
+ {
960
+ name: "preOpGas",
961
+ type: "uint256",
962
+ internalType: "uint256"
963
+ },
964
+ {
965
+ name: "paid",
966
+ type: "uint256",
967
+ internalType: "uint256"
968
+ },
969
+ {
970
+ name: "accountValidationData",
971
+ type: "uint256",
972
+ internalType: "uint256"
973
+ },
974
+ {
975
+ name: "paymasterValidationData",
976
+ type: "uint256",
977
+ internalType: "uint256"
978
+ },
979
+ {
980
+ name: "paymasterVerificationGasLimit",
981
+ type: "uint256",
982
+ internalType: "uint256"
983
+ },
984
+ {
985
+ name: "paymasterPostOpGasLimit",
986
+ type: "uint256",
987
+ internalType: "uint256"
988
+ },
989
+ {
990
+ name: "targetSuccess",
991
+ type: "bool",
992
+ internalType: "bool"
993
+ },
994
+ {
995
+ name: "targetResult",
996
+ type: "bytes",
997
+ internalType: "bytes"
998
+ }
999
+ ]
1000
+ }
1001
+ ],
1002
+ stateMutability: "nonpayable"
1003
+ },
1004
+ {
1005
+ type: "function",
1006
+ name: "simulateValidation",
1007
+ inputs: [
1008
+ {
1009
+ name: "userOp",
1010
+ type: "tuple",
1011
+ internalType: "struct PackedUserOperation",
1012
+ components: [
1013
+ {
1014
+ name: "sender",
1015
+ type: "address",
1016
+ internalType: "address"
1017
+ },
1018
+ {
1019
+ name: "nonce",
1020
+ type: "uint256",
1021
+ internalType: "uint256"
1022
+ },
1023
+ {
1024
+ name: "initCode",
1025
+ type: "bytes",
1026
+ internalType: "bytes"
1027
+ },
1028
+ {
1029
+ name: "callData",
1030
+ type: "bytes",
1031
+ internalType: "bytes"
1032
+ },
1033
+ {
1034
+ name: "accountGasLimits",
1035
+ type: "bytes32",
1036
+ internalType: "bytes32"
1037
+ },
1038
+ {
1039
+ name: "preVerificationGas",
1040
+ type: "uint256",
1041
+ internalType: "uint256"
1042
+ },
1043
+ {
1044
+ name: "gasFees",
1045
+ type: "bytes32",
1046
+ internalType: "bytes32"
1047
+ },
1048
+ {
1049
+ name: "paymasterAndData",
1050
+ type: "bytes",
1051
+ internalType: "bytes"
1052
+ },
1053
+ {
1054
+ name: "signature",
1055
+ type: "bytes",
1056
+ internalType: "bytes"
1057
+ }
1058
+ ]
1059
+ }
1060
+ ],
1061
+ outputs: [
1062
+ {
1063
+ name: "",
1064
+ type: "tuple",
1065
+ internalType: "struct IEntryPointSimulations.ValidationResult",
1066
+ components: [
1067
+ {
1068
+ name: "returnInfo",
1069
+ type: "tuple",
1070
+ internalType: "struct IEntryPoint.ReturnInfo",
1071
+ components: [
1072
+ {
1073
+ name: "preOpGas",
1074
+ type: "uint256",
1075
+ internalType: "uint256"
1076
+ },
1077
+ {
1078
+ name: "prefund",
1079
+ type: "uint256",
1080
+ internalType: "uint256"
1081
+ },
1082
+ {
1083
+ name: "accountValidationData",
1084
+ type: "uint256",
1085
+ internalType: "uint256"
1086
+ },
1087
+ {
1088
+ name: "paymasterValidationData",
1089
+ type: "uint256",
1090
+ internalType: "uint256"
1091
+ },
1092
+ {
1093
+ name: "paymasterContext",
1094
+ type: "bytes",
1095
+ internalType: "bytes"
1096
+ }
1097
+ ]
1098
+ },
1099
+ {
1100
+ name: "senderInfo",
1101
+ type: "tuple",
1102
+ internalType: "struct IStakeManager.StakeInfo",
1103
+ components: [
1104
+ {
1105
+ name: "stake",
1106
+ type: "uint256",
1107
+ internalType: "uint256"
1108
+ },
1109
+ {
1110
+ name: "unstakeDelaySec",
1111
+ type: "uint256",
1112
+ internalType: "uint256"
1113
+ }
1114
+ ]
1115
+ },
1116
+ {
1117
+ name: "factoryInfo",
1118
+ type: "tuple",
1119
+ internalType: "struct IStakeManager.StakeInfo",
1120
+ components: [
1121
+ {
1122
+ name: "stake",
1123
+ type: "uint256",
1124
+ internalType: "uint256"
1125
+ },
1126
+ {
1127
+ name: "unstakeDelaySec",
1128
+ type: "uint256",
1129
+ internalType: "uint256"
1130
+ }
1131
+ ]
1132
+ },
1133
+ {
1134
+ name: "paymasterInfo",
1135
+ type: "tuple",
1136
+ internalType: "struct IStakeManager.StakeInfo",
1137
+ components: [
1138
+ {
1139
+ name: "stake",
1140
+ type: "uint256",
1141
+ internalType: "uint256"
1142
+ },
1143
+ {
1144
+ name: "unstakeDelaySec",
1145
+ type: "uint256",
1146
+ internalType: "uint256"
1147
+ }
1148
+ ]
1149
+ },
1150
+ {
1151
+ name: "aggregatorInfo",
1152
+ type: "tuple",
1153
+ internalType: "struct IEntryPoint.AggregatorStakeInfo",
1154
+ components: [
1155
+ {
1156
+ name: "aggregator",
1157
+ type: "address",
1158
+ internalType: "address"
1159
+ },
1160
+ {
1161
+ name: "stakeInfo",
1162
+ type: "tuple",
1163
+ internalType: "struct IStakeManager.StakeInfo",
1164
+ components: [
1165
+ {
1166
+ name: "stake",
1167
+ type: "uint256",
1168
+ internalType: "uint256"
1169
+ },
1170
+ {
1171
+ name: "unstakeDelaySec",
1172
+ type: "uint256",
1173
+ internalType: "uint256"
1174
+ }
1175
+ ]
1176
+ }
1177
+ ]
1178
+ }
1179
+ ]
1180
+ }
1181
+ ],
1182
+ stateMutability: "nonpayable"
1183
+ },
1184
+ {
1185
+ type: "function",
1186
+ name: "simulateValidationBulk",
1187
+ inputs: [
1188
+ {
1189
+ name: "userOps",
1190
+ type: "tuple[]",
1191
+ internalType: "struct PackedUserOperation[]",
1192
+ components: [
1193
+ {
1194
+ name: "sender",
1195
+ type: "address",
1196
+ internalType: "address"
1197
+ },
1198
+ {
1199
+ name: "nonce",
1200
+ type: "uint256",
1201
+ internalType: "uint256"
1202
+ },
1203
+ {
1204
+ name: "initCode",
1205
+ type: "bytes",
1206
+ internalType: "bytes"
1207
+ },
1208
+ {
1209
+ name: "callData",
1210
+ type: "bytes",
1211
+ internalType: "bytes"
1212
+ },
1213
+ {
1214
+ name: "accountGasLimits",
1215
+ type: "bytes32",
1216
+ internalType: "bytes32"
1217
+ },
1218
+ {
1219
+ name: "preVerificationGas",
1220
+ type: "uint256",
1221
+ internalType: "uint256"
1222
+ },
1223
+ {
1224
+ name: "gasFees",
1225
+ type: "bytes32",
1226
+ internalType: "bytes32"
1227
+ },
1228
+ {
1229
+ name: "paymasterAndData",
1230
+ type: "bytes",
1231
+ internalType: "bytes"
1232
+ },
1233
+ {
1234
+ name: "signature",
1235
+ type: "bytes",
1236
+ internalType: "bytes"
1237
+ }
1238
+ ]
1239
+ }
1240
+ ],
1241
+ outputs: [
1242
+ {
1243
+ name: "",
1244
+ type: "tuple[]",
1245
+ internalType: "struct IEntryPointSimulations.ValidationResult[]",
1246
+ components: [
1247
+ {
1248
+ name: "returnInfo",
1249
+ type: "tuple",
1250
+ internalType: "struct IEntryPoint.ReturnInfo",
1251
+ components: [
1252
+ {
1253
+ name: "preOpGas",
1254
+ type: "uint256",
1255
+ internalType: "uint256"
1256
+ },
1257
+ {
1258
+ name: "prefund",
1259
+ type: "uint256",
1260
+ internalType: "uint256"
1261
+ },
1262
+ {
1263
+ name: "accountValidationData",
1264
+ type: "uint256",
1265
+ internalType: "uint256"
1266
+ },
1267
+ {
1268
+ name: "paymasterValidationData",
1269
+ type: "uint256",
1270
+ internalType: "uint256"
1271
+ },
1272
+ {
1273
+ name: "paymasterContext",
1274
+ type: "bytes",
1275
+ internalType: "bytes"
1276
+ }
1277
+ ]
1278
+ },
1279
+ {
1280
+ name: "senderInfo",
1281
+ type: "tuple",
1282
+ internalType: "struct IStakeManager.StakeInfo",
1283
+ components: [
1284
+ {
1285
+ name: "stake",
1286
+ type: "uint256",
1287
+ internalType: "uint256"
1288
+ },
1289
+ {
1290
+ name: "unstakeDelaySec",
1291
+ type: "uint256",
1292
+ internalType: "uint256"
1293
+ }
1294
+ ]
1295
+ },
1296
+ {
1297
+ name: "factoryInfo",
1298
+ type: "tuple",
1299
+ internalType: "struct IStakeManager.StakeInfo",
1300
+ components: [
1301
+ {
1302
+ name: "stake",
1303
+ type: "uint256",
1304
+ internalType: "uint256"
1305
+ },
1306
+ {
1307
+ name: "unstakeDelaySec",
1308
+ type: "uint256",
1309
+ internalType: "uint256"
1310
+ }
1311
+ ]
1312
+ },
1313
+ {
1314
+ name: "paymasterInfo",
1315
+ type: "tuple",
1316
+ internalType: "struct IStakeManager.StakeInfo",
1317
+ components: [
1318
+ {
1319
+ name: "stake",
1320
+ type: "uint256",
1321
+ internalType: "uint256"
1322
+ },
1323
+ {
1324
+ name: "unstakeDelaySec",
1325
+ type: "uint256",
1326
+ internalType: "uint256"
1327
+ }
1328
+ ]
1329
+ },
1330
+ {
1331
+ name: "aggregatorInfo",
1332
+ type: "tuple",
1333
+ internalType: "struct IEntryPoint.AggregatorStakeInfo",
1334
+ components: [
1335
+ {
1336
+ name: "aggregator",
1337
+ type: "address",
1338
+ internalType: "address"
1339
+ },
1340
+ {
1341
+ name: "stakeInfo",
1342
+ type: "tuple",
1343
+ internalType: "struct IStakeManager.StakeInfo",
1344
+ components: [
1345
+ {
1346
+ name: "stake",
1347
+ type: "uint256",
1348
+ internalType: "uint256"
1349
+ },
1350
+ {
1351
+ name: "unstakeDelaySec",
1352
+ type: "uint256",
1353
+ internalType: "uint256"
1354
+ }
1355
+ ]
1356
+ }
1357
+ ]
1358
+ }
1359
+ ]
1360
+ }
1361
+ ],
1362
+ stateMutability: "nonpayable"
1363
+ },
1364
+ {
1365
+ type: "function",
1366
+ name: "simulateValidationLast",
1367
+ inputs: [
1368
+ {
1369
+ name: "userOps",
1370
+ type: "tuple[]",
1371
+ internalType: "struct PackedUserOperation[]",
1372
+ components: [
1373
+ {
1374
+ name: "sender",
1375
+ type: "address",
1376
+ internalType: "address"
1377
+ },
1378
+ {
1379
+ name: "nonce",
1380
+ type: "uint256",
1381
+ internalType: "uint256"
1382
+ },
1383
+ {
1384
+ name: "initCode",
1385
+ type: "bytes",
1386
+ internalType: "bytes"
1387
+ },
1388
+ {
1389
+ name: "callData",
1390
+ type: "bytes",
1391
+ internalType: "bytes"
1392
+ },
1393
+ {
1394
+ name: "accountGasLimits",
1395
+ type: "bytes32",
1396
+ internalType: "bytes32"
1397
+ },
1398
+ {
1399
+ name: "preVerificationGas",
1400
+ type: "uint256",
1401
+ internalType: "uint256"
1402
+ },
1403
+ {
1404
+ name: "gasFees",
1405
+ type: "bytes32",
1406
+ internalType: "bytes32"
1407
+ },
1408
+ {
1409
+ name: "paymasterAndData",
1410
+ type: "bytes",
1411
+ internalType: "bytes"
1412
+ },
1413
+ {
1414
+ name: "signature",
1415
+ type: "bytes",
1416
+ internalType: "bytes"
1417
+ }
1418
+ ]
1419
+ }
1420
+ ],
1421
+ outputs: [
1422
+ {
1423
+ name: "",
1424
+ type: "tuple",
1425
+ internalType: "struct IEntryPointSimulations.ValidationResult",
1426
+ components: [
1427
+ {
1428
+ name: "returnInfo",
1429
+ type: "tuple",
1430
+ internalType: "struct IEntryPoint.ReturnInfo",
1431
+ components: [
1432
+ {
1433
+ name: "preOpGas",
1434
+ type: "uint256",
1435
+ internalType: "uint256"
1436
+ },
1437
+ {
1438
+ name: "prefund",
1439
+ type: "uint256",
1440
+ internalType: "uint256"
1441
+ },
1442
+ {
1443
+ name: "accountValidationData",
1444
+ type: "uint256",
1445
+ internalType: "uint256"
1446
+ },
1447
+ {
1448
+ name: "paymasterValidationData",
1449
+ type: "uint256",
1450
+ internalType: "uint256"
1451
+ },
1452
+ {
1453
+ name: "paymasterContext",
1454
+ type: "bytes",
1455
+ internalType: "bytes"
1456
+ }
1457
+ ]
1458
+ },
1459
+ {
1460
+ name: "senderInfo",
1461
+ type: "tuple",
1462
+ internalType: "struct IStakeManager.StakeInfo",
1463
+ components: [
1464
+ {
1465
+ name: "stake",
1466
+ type: "uint256",
1467
+ internalType: "uint256"
1468
+ },
1469
+ {
1470
+ name: "unstakeDelaySec",
1471
+ type: "uint256",
1472
+ internalType: "uint256"
1473
+ }
1474
+ ]
1475
+ },
1476
+ {
1477
+ name: "factoryInfo",
1478
+ type: "tuple",
1479
+ internalType: "struct IStakeManager.StakeInfo",
1480
+ components: [
1481
+ {
1482
+ name: "stake",
1483
+ type: "uint256",
1484
+ internalType: "uint256"
1485
+ },
1486
+ {
1487
+ name: "unstakeDelaySec",
1488
+ type: "uint256",
1489
+ internalType: "uint256"
1490
+ }
1491
+ ]
1492
+ },
1493
+ {
1494
+ name: "paymasterInfo",
1495
+ type: "tuple",
1496
+ internalType: "struct IStakeManager.StakeInfo",
1497
+ components: [
1498
+ {
1499
+ name: "stake",
1500
+ type: "uint256",
1501
+ internalType: "uint256"
1502
+ },
1503
+ {
1504
+ name: "unstakeDelaySec",
1505
+ type: "uint256",
1506
+ internalType: "uint256"
1507
+ }
1508
+ ]
1509
+ },
1510
+ {
1511
+ name: "aggregatorInfo",
1512
+ type: "tuple",
1513
+ internalType: "struct IEntryPoint.AggregatorStakeInfo",
1514
+ components: [
1515
+ {
1516
+ name: "aggregator",
1517
+ type: "address",
1518
+ internalType: "address"
1519
+ },
1520
+ {
1521
+ name: "stakeInfo",
1522
+ type: "tuple",
1523
+ internalType: "struct IStakeManager.StakeInfo",
1524
+ components: [
1525
+ {
1526
+ name: "stake",
1527
+ type: "uint256",
1528
+ internalType: "uint256"
1529
+ },
1530
+ {
1531
+ name: "unstakeDelaySec",
1532
+ type: "uint256",
1533
+ internalType: "uint256"
1534
+ }
1535
+ ]
1536
+ }
1537
+ ]
1538
+ }
1539
+ ]
1540
+ }
1541
+ ],
1542
+ stateMutability: "nonpayable"
1543
+ },
1544
+ {
1545
+ type: "function",
1546
+ name: "unlockStake",
1547
+ inputs: [],
1548
+ outputs: [],
1549
+ stateMutability: "nonpayable"
1550
+ },
1551
+ {
1552
+ type: "function",
1553
+ name: "withdrawStake",
1554
+ inputs: [
1555
+ {
1556
+ name: "withdrawAddress",
1557
+ type: "address",
1558
+ internalType: "address payable"
1559
+ }
1560
+ ],
1561
+ outputs: [],
1562
+ stateMutability: "nonpayable"
1563
+ },
1564
+ {
1565
+ type: "function",
1566
+ name: "withdrawTo",
1567
+ inputs: [
1568
+ {
1569
+ name: "withdrawAddress",
1570
+ type: "address",
1571
+ internalType: "address payable"
1572
+ },
1573
+ {
1574
+ name: "withdrawAmount",
1575
+ type: "uint256",
1576
+ internalType: "uint256"
1577
+ }
1578
+ ],
1579
+ outputs: [],
1580
+ stateMutability: "nonpayable"
1581
+ },
1582
+ {
1583
+ type: "event",
1584
+ name: "AccountDeployed",
1585
+ inputs: [
1586
+ {
1587
+ name: "userOpHash",
1588
+ type: "bytes32",
1589
+ indexed: true,
1590
+ internalType: "bytes32"
1591
+ },
1592
+ {
1593
+ name: "sender",
1594
+ type: "address",
1595
+ indexed: true,
1596
+ internalType: "address"
1597
+ },
1598
+ {
1599
+ name: "factory",
1600
+ type: "address",
1601
+ indexed: false,
1602
+ internalType: "address"
1603
+ },
1604
+ {
1605
+ name: "paymaster",
1606
+ type: "address",
1607
+ indexed: false,
1608
+ internalType: "address"
1609
+ }
1610
+ ],
1611
+ anonymous: false
1612
+ },
1613
+ {
1614
+ type: "event",
1615
+ name: "BeforeExecution",
1616
+ inputs: [],
1617
+ anonymous: false
1618
+ },
1619
+ {
1620
+ type: "event",
1621
+ name: "Deposited",
1622
+ inputs: [
1623
+ {
1624
+ name: "account",
1625
+ type: "address",
1626
+ indexed: true,
1627
+ internalType: "address"
1628
+ },
1629
+ {
1630
+ name: "totalDeposit",
1631
+ type: "uint256",
1632
+ indexed: false,
1633
+ internalType: "uint256"
1634
+ }
1635
+ ],
1636
+ anonymous: false
1637
+ },
1638
+ {
1639
+ type: "event",
1640
+ name: "PostOpRevertReason",
1641
+ inputs: [
1642
+ {
1643
+ name: "userOpHash",
1644
+ type: "bytes32",
1645
+ indexed: true,
1646
+ internalType: "bytes32"
1647
+ },
1648
+ {
1649
+ name: "sender",
1650
+ type: "address",
1651
+ indexed: true,
1652
+ internalType: "address"
1653
+ },
1654
+ {
1655
+ name: "nonce",
1656
+ type: "uint256",
1657
+ indexed: false,
1658
+ internalType: "uint256"
1659
+ },
1660
+ {
1661
+ name: "revertReason",
1662
+ type: "bytes",
1663
+ indexed: false,
1664
+ internalType: "bytes"
1665
+ }
1666
+ ],
1667
+ anonymous: false
1668
+ },
1669
+ {
1670
+ type: "event",
1671
+ name: "SignatureAggregatorChanged",
1672
+ inputs: [
1673
+ {
1674
+ name: "aggregator",
1675
+ type: "address",
1676
+ indexed: true,
1677
+ internalType: "address"
1678
+ }
1679
+ ],
1680
+ anonymous: false
1681
+ },
1682
+ {
1683
+ type: "event",
1684
+ name: "StakeLocked",
1685
+ inputs: [
1686
+ {
1687
+ name: "account",
1688
+ type: "address",
1689
+ indexed: true,
1690
+ internalType: "address"
1691
+ },
1692
+ {
1693
+ name: "totalStaked",
1694
+ type: "uint256",
1695
+ indexed: false,
1696
+ internalType: "uint256"
1697
+ },
1698
+ {
1699
+ name: "unstakeDelaySec",
1700
+ type: "uint256",
1701
+ indexed: false,
1702
+ internalType: "uint256"
1703
+ }
1704
+ ],
1705
+ anonymous: false
1706
+ },
1707
+ {
1708
+ type: "event",
1709
+ name: "StakeUnlocked",
1710
+ inputs: [
1711
+ {
1712
+ name: "account",
1713
+ type: "address",
1714
+ indexed: true,
1715
+ internalType: "address"
1716
+ },
1717
+ {
1718
+ name: "withdrawTime",
1719
+ type: "uint256",
1720
+ indexed: false,
1721
+ internalType: "uint256"
1722
+ }
1723
+ ],
1724
+ anonymous: false
1725
+ },
1726
+ {
1727
+ type: "event",
1728
+ name: "StakeWithdrawn",
1729
+ inputs: [
1730
+ {
1731
+ name: "account",
1732
+ type: "address",
1733
+ indexed: true,
1734
+ internalType: "address"
1735
+ },
1736
+ {
1737
+ name: "withdrawAddress",
1738
+ type: "address",
1739
+ indexed: false,
1740
+ internalType: "address"
1741
+ },
1742
+ {
1743
+ name: "amount",
1744
+ type: "uint256",
1745
+ indexed: false,
1746
+ internalType: "uint256"
1747
+ }
1748
+ ],
1749
+ anonymous: false
1750
+ },
1751
+ {
1752
+ type: "event",
1753
+ name: "UserOperationEvent",
1754
+ inputs: [
1755
+ {
1756
+ name: "userOpHash",
1757
+ type: "bytes32",
1758
+ indexed: true,
1759
+ internalType: "bytes32"
1760
+ },
1761
+ {
1762
+ name: "sender",
1763
+ type: "address",
1764
+ indexed: true,
1765
+ internalType: "address"
1766
+ },
1767
+ {
1768
+ name: "paymaster",
1769
+ type: "address",
1770
+ indexed: true,
1771
+ internalType: "address"
1772
+ },
1773
+ {
1774
+ name: "nonce",
1775
+ type: "uint256",
1776
+ indexed: false,
1777
+ internalType: "uint256"
1778
+ },
1779
+ {
1780
+ name: "success",
1781
+ type: "bool",
1782
+ indexed: false,
1783
+ internalType: "bool"
1784
+ },
1785
+ {
1786
+ name: "actualGasCost",
1787
+ type: "uint256",
1788
+ indexed: false,
1789
+ internalType: "uint256"
1790
+ },
1791
+ {
1792
+ name: "actualGasUsed",
1793
+ type: "uint256",
1794
+ indexed: false,
1795
+ internalType: "uint256"
1796
+ }
1797
+ ],
1798
+ anonymous: false
1799
+ },
1800
+ {
1801
+ type: "event",
1802
+ name: "UserOperationPrefundTooLow",
1803
+ inputs: [
1804
+ {
1805
+ name: "userOpHash",
1806
+ type: "bytes32",
1807
+ indexed: true,
1808
+ internalType: "bytes32"
1809
+ },
1810
+ {
1811
+ name: "sender",
1812
+ type: "address",
1813
+ indexed: true,
1814
+ internalType: "address"
1815
+ },
1816
+ {
1817
+ name: "nonce",
1818
+ type: "uint256",
1819
+ indexed: false,
1820
+ internalType: "uint256"
1821
+ }
1822
+ ],
1823
+ anonymous: false
1824
+ },
1825
+ {
1826
+ type: "event",
1827
+ name: "UserOperationRevertReason",
1828
+ inputs: [
1829
+ {
1830
+ name: "userOpHash",
1831
+ type: "bytes32",
1832
+ indexed: true,
1833
+ internalType: "bytes32"
1834
+ },
1835
+ {
1836
+ name: "sender",
1837
+ type: "address",
1838
+ indexed: true,
1839
+ internalType: "address"
1840
+ },
1841
+ {
1842
+ name: "nonce",
1843
+ type: "uint256",
1844
+ indexed: false,
1845
+ internalType: "uint256"
1846
+ },
1847
+ {
1848
+ name: "revertReason",
1849
+ type: "bytes",
1850
+ indexed: false,
1851
+ internalType: "bytes"
1852
+ }
1853
+ ],
1854
+ anonymous: false
1855
+ },
1856
+ {
1857
+ type: "event",
1858
+ name: "Withdrawn",
1859
+ inputs: [
1860
+ {
1861
+ name: "account",
1862
+ type: "address",
1863
+ indexed: true,
1864
+ internalType: "address"
1865
+ },
1866
+ {
1867
+ name: "withdrawAddress",
1868
+ type: "address",
1869
+ indexed: false,
1870
+ internalType: "address"
1871
+ },
1872
+ {
1873
+ name: "amount",
1874
+ type: "uint256",
1875
+ indexed: false,
1876
+ internalType: "uint256"
1877
+ }
1878
+ ],
1879
+ anonymous: false
1880
+ },
1881
+ {
1882
+ type: "error",
1883
+ name: "FailedOp",
1884
+ inputs: [
1885
+ {
1886
+ name: "opIndex",
1887
+ type: "uint256",
1888
+ internalType: "uint256"
1889
+ },
1890
+ {
1891
+ name: "reason",
1892
+ type: "string",
1893
+ internalType: "string"
1894
+ }
1895
+ ]
1896
+ },
1897
+ {
1898
+ type: "error",
1899
+ name: "FailedOpWithRevert",
1900
+ inputs: [
1901
+ {
1902
+ name: "opIndex",
1903
+ type: "uint256",
1904
+ internalType: "uint256"
1905
+ },
1906
+ {
1907
+ name: "reason",
1908
+ type: "string",
1909
+ internalType: "string"
1910
+ },
1911
+ {
1912
+ name: "inner",
1913
+ type: "bytes",
1914
+ internalType: "bytes"
1915
+ }
1916
+ ]
1917
+ },
1918
+ {
1919
+ type: "error",
1920
+ name: "PostOpReverted",
1921
+ inputs: [
1922
+ {
1923
+ name: "returnData",
1924
+ type: "bytes",
1925
+ internalType: "bytes"
1926
+ }
1927
+ ]
1928
+ },
1929
+ {
1930
+ type: "error",
1931
+ name: "ReentrancyGuardReentrantCall",
1932
+ inputs: []
1933
+ },
1934
+ {
1935
+ type: "error",
1936
+ name: "SenderAddressResult",
1937
+ inputs: [
1938
+ {
1939
+ name: "sender",
1940
+ type: "address",
1941
+ internalType: "address"
1942
+ }
1943
+ ]
1944
+ },
1945
+ {
1946
+ type: "error",
1947
+ name: "SignatureValidationFailed",
1948
+ inputs: [
1949
+ {
1950
+ name: "aggregator",
1951
+ type: "address",
1952
+ internalType: "address"
1953
+ }
1954
+ ]
1955
+ }
1956
+ ];
18
1957
  //# sourceMappingURL=EntryPointSimulations.js.map