eco-solver 0.0.1-security → 1.5.0

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.

Potentially problematic release.


This version of eco-solver might be problematic. Click here for more details.

Files changed (244) hide show
  1. package/.eslintignore +8 -0
  2. package/.eslintrc.js +24 -0
  3. package/.github/workflows/ci.yaml +38 -0
  4. package/.nvmrc +1 -0
  5. package/.prettierignore +3 -0
  6. package/.prettierrc +8 -0
  7. package/Dockerfile +11 -0
  8. package/LICENSE +21 -0
  9. package/README.md +29 -5
  10. package/config/default.ts +135 -0
  11. package/config/development.ts +95 -0
  12. package/config/preproduction.ts +17 -0
  13. package/config/production.ts +17 -0
  14. package/config/staging.ts +17 -0
  15. package/config/test.ts +7 -0
  16. package/index.js +66 -0
  17. package/jest.config.ts +14 -0
  18. package/nest-cli.json +8 -0
  19. package/package.json +115 -6
  20. package/src/api/api.module.ts +27 -0
  21. package/src/api/balance.controller.ts +41 -0
  22. package/src/api/quote.controller.ts +54 -0
  23. package/src/api/tests/balance.controller.spec.ts +113 -0
  24. package/src/api/tests/quote.controller.spec.ts +83 -0
  25. package/src/app.module.ts +74 -0
  26. package/src/balance/balance.module.ts +14 -0
  27. package/src/balance/balance.service.ts +230 -0
  28. package/src/balance/balance.ws.service.ts +104 -0
  29. package/src/balance/types.ts +16 -0
  30. package/src/bullmq/bullmq.helper.ts +41 -0
  31. package/src/bullmq/processors/eth-ws.processor.ts +47 -0
  32. package/src/bullmq/processors/inbox.processor.ts +55 -0
  33. package/src/bullmq/processors/interval.processor.ts +54 -0
  34. package/src/bullmq/processors/processor.module.ts +14 -0
  35. package/src/bullmq/processors/signer.processor.ts +41 -0
  36. package/src/bullmq/processors/solve-intent.processor.ts +73 -0
  37. package/src/bullmq/processors/tests/solve-intent.processor.spec.ts +3 -0
  38. package/src/bullmq/utils/queue.ts +22 -0
  39. package/src/chain-monitor/chain-monitor.module.ts +12 -0
  40. package/src/chain-monitor/chain-sync.service.ts +134 -0
  41. package/src/chain-monitor/tests/chain-sync.service.spec.ts +190 -0
  42. package/src/commander/.eslintrc.js +6 -0
  43. package/src/commander/balance/balance-command.module.ts +12 -0
  44. package/src/commander/balance/balance.command.ts +73 -0
  45. package/src/commander/command-main.ts +15 -0
  46. package/src/commander/commander-app.module.ts +31 -0
  47. package/src/commander/eco-config.command.ts +20 -0
  48. package/src/commander/safe/safe-command.module.ts +11 -0
  49. package/src/commander/safe/safe.command.ts +70 -0
  50. package/src/commander/transfer/client.command.ts +24 -0
  51. package/src/commander/transfer/transfer-command.module.ts +26 -0
  52. package/src/commander/transfer/transfer.command.ts +138 -0
  53. package/src/commander/utils.ts +8 -0
  54. package/src/common/chains/definitions/arbitrum.ts +12 -0
  55. package/src/common/chains/definitions/base.ts +21 -0
  56. package/src/common/chains/definitions/eco.ts +54 -0
  57. package/src/common/chains/definitions/ethereum.ts +22 -0
  58. package/src/common/chains/definitions/helix.ts +53 -0
  59. package/src/common/chains/definitions/mantle.ts +12 -0
  60. package/src/common/chains/definitions/optimism.ts +22 -0
  61. package/src/common/chains/definitions/polygon.ts +12 -0
  62. package/src/common/chains/supported.ts +26 -0
  63. package/src/common/chains/transport.ts +19 -0
  64. package/src/common/errors/eco-error.ts +155 -0
  65. package/src/common/events/constants.ts +3 -0
  66. package/src/common/events/viem.ts +22 -0
  67. package/src/common/logging/eco-log-message.ts +74 -0
  68. package/src/common/redis/constants.ts +55 -0
  69. package/src/common/redis/redis-connection-utils.ts +106 -0
  70. package/src/common/routes/constants.ts +3 -0
  71. package/src/common/utils/objects.ts +34 -0
  72. package/src/common/utils/strings.ts +49 -0
  73. package/src/common/utils/tests/objects.spec.ts +23 -0
  74. package/src/common/utils/tests/strings.spec.ts +22 -0
  75. package/src/common/viem/contracts.ts +25 -0
  76. package/src/common/viem/tests/utils.spec.ts +115 -0
  77. package/src/common/viem/utils.ts +78 -0
  78. package/src/contracts/ERC20.contract.ts +389 -0
  79. package/src/contracts/EntryPoint.V6.contract.ts +1309 -0
  80. package/src/contracts/KernelAccount.abi.ts +87 -0
  81. package/src/contracts/OwnableExecutor.abi.ts +128 -0
  82. package/src/contracts/SimpleAccount.contract.ts +524 -0
  83. package/src/contracts/inbox.ts +8 -0
  84. package/src/contracts/index.ts +9 -0
  85. package/src/contracts/intent-source.ts +55 -0
  86. package/src/contracts/interfaces/index.ts +1 -0
  87. package/src/contracts/interfaces/prover.interface.ts +22 -0
  88. package/src/contracts/prover.ts +9 -0
  89. package/src/contracts/tests/erc20.contract.spec.ts +59 -0
  90. package/src/contracts/utils.ts +31 -0
  91. package/src/decoder/decoder.interface.ts +3 -0
  92. package/src/decoder/tests/utils.spec.ts +36 -0
  93. package/src/decoder/utils.ts +24 -0
  94. package/src/decorators/cacheable.decorator.ts +48 -0
  95. package/src/eco-configs/aws-config.service.ts +75 -0
  96. package/src/eco-configs/eco-config.module.ts +44 -0
  97. package/src/eco-configs/eco-config.service.ts +220 -0
  98. package/src/eco-configs/eco-config.types.ts +278 -0
  99. package/src/eco-configs/interfaces/config-source.interface.ts +3 -0
  100. package/src/eco-configs/tests/aws-config.service.spec.ts +52 -0
  101. package/src/eco-configs/tests/eco-config.service.spec.ts +137 -0
  102. package/src/eco-configs/tests/utils.spec.ts +84 -0
  103. package/src/eco-configs/utils.ts +49 -0
  104. package/src/fee/fee.module.ts +10 -0
  105. package/src/fee/fee.service.ts +467 -0
  106. package/src/fee/tests/fee.service.spec.ts +909 -0
  107. package/src/fee/tests/utils.spec.ts +49 -0
  108. package/src/fee/types.ts +44 -0
  109. package/src/fee/utils.ts +23 -0
  110. package/src/flags/flags.module.ts +10 -0
  111. package/src/flags/flags.service.ts +112 -0
  112. package/src/flags/tests/flags.service.spec.ts +68 -0
  113. package/src/flags/utils.ts +22 -0
  114. package/src/health/constants.ts +1 -0
  115. package/src/health/health.controller.ts +23 -0
  116. package/src/health/health.module.ts +25 -0
  117. package/src/health/health.service.ts +40 -0
  118. package/src/health/indicators/balance.indicator.ts +196 -0
  119. package/src/health/indicators/eco-redis.indicator.ts +23 -0
  120. package/src/health/indicators/git-commit.indicator.ts +67 -0
  121. package/src/health/indicators/mongodb.indicator.ts +11 -0
  122. package/src/health/indicators/permission.indicator.ts +64 -0
  123. package/src/intent/create-intent.service.ts +129 -0
  124. package/src/intent/feasable-intent.service.ts +80 -0
  125. package/src/intent/fulfill-intent.service.ts +318 -0
  126. package/src/intent/intent.controller.ts +199 -0
  127. package/src/intent/intent.module.ts +49 -0
  128. package/src/intent/schemas/intent-call-data.schema.ts +16 -0
  129. package/src/intent/schemas/intent-data.schema.ts +114 -0
  130. package/src/intent/schemas/intent-source.schema.ts +33 -0
  131. package/src/intent/schemas/intent-token-amount.schema.ts +14 -0
  132. package/src/intent/schemas/reward-data.schema.ts +48 -0
  133. package/src/intent/schemas/route-data.schema.ts +52 -0
  134. package/src/intent/schemas/watch-event.schema.ts +32 -0
  135. package/src/intent/tests/create-intent.service.spec.ts +215 -0
  136. package/src/intent/tests/feasable-intent.service.spec.ts +155 -0
  137. package/src/intent/tests/fulfill-intent.service.spec.ts +564 -0
  138. package/src/intent/tests/utils-intent.service.spec.ts +308 -0
  139. package/src/intent/tests/utils.spec.ts +62 -0
  140. package/src/intent/tests/validate-intent.service.spec.ts +297 -0
  141. package/src/intent/tests/validation.service.spec.ts +337 -0
  142. package/src/intent/utils-intent.service.ts +168 -0
  143. package/src/intent/utils.ts +37 -0
  144. package/src/intent/validate-intent.service.ts +176 -0
  145. package/src/intent/validation.sevice.ts +223 -0
  146. package/src/interceptors/big-int.interceptor.ts +30 -0
  147. package/src/intervals/interval.module.ts +18 -0
  148. package/src/intervals/retry-infeasable-intents.service.ts +89 -0
  149. package/src/intervals/tests/retry-infeasable-intents.service.spec.ts +167 -0
  150. package/src/kms/errors.ts +0 -0
  151. package/src/kms/kms.module.ts +12 -0
  152. package/src/kms/kms.service.ts +65 -0
  153. package/src/kms/tests/kms.service.spec.ts +60 -0
  154. package/src/liquidity-manager/jobs/check-balances-cron.job.ts +229 -0
  155. package/src/liquidity-manager/jobs/liquidity-manager.job.ts +52 -0
  156. package/src/liquidity-manager/jobs/rebalance.job.ts +61 -0
  157. package/src/liquidity-manager/liquidity-manager.module.ts +29 -0
  158. package/src/liquidity-manager/processors/base.processor.ts +117 -0
  159. package/src/liquidity-manager/processors/eco-protocol-intents.processor.ts +34 -0
  160. package/src/liquidity-manager/processors/grouped-jobs.processor.ts +103 -0
  161. package/src/liquidity-manager/queues/liquidity-manager.queue.ts +48 -0
  162. package/src/liquidity-manager/schemas/rebalance-token.schema.ts +32 -0
  163. package/src/liquidity-manager/schemas/rebalance.schema.ts +32 -0
  164. package/src/liquidity-manager/services/liquidity-manager.service.ts +188 -0
  165. package/src/liquidity-manager/services/liquidity-provider.service.ts +25 -0
  166. package/src/liquidity-manager/services/liquidity-providers/LiFi/lifi-provider.service.spec.ts +125 -0
  167. package/src/liquidity-manager/services/liquidity-providers/LiFi/lifi-provider.service.ts +117 -0
  168. package/src/liquidity-manager/services/liquidity-providers/LiFi/utils/get-transaction-hashes.ts +16 -0
  169. package/src/liquidity-manager/tests/liquidity-manager.service.spec.ts +142 -0
  170. package/src/liquidity-manager/types/token-state.enum.ts +5 -0
  171. package/src/liquidity-manager/types/types.d.ts +52 -0
  172. package/src/liquidity-manager/utils/address.ts +5 -0
  173. package/src/liquidity-manager/utils/math.ts +9 -0
  174. package/src/liquidity-manager/utils/serialize.spec.ts +24 -0
  175. package/src/liquidity-manager/utils/serialize.ts +47 -0
  176. package/src/liquidity-manager/utils/token.ts +91 -0
  177. package/src/main.ts +63 -0
  178. package/src/nest-redlock/nest-redlock.config.ts +14 -0
  179. package/src/nest-redlock/nest-redlock.interface.ts +5 -0
  180. package/src/nest-redlock/nest-redlock.module.ts +64 -0
  181. package/src/nest-redlock/nest-redlock.service.ts +59 -0
  182. package/src/prover/proof.service.ts +184 -0
  183. package/src/prover/prover.module.ts +10 -0
  184. package/src/prover/tests/proof.service.spec.ts +154 -0
  185. package/src/quote/dto/quote.intent.data.dto.ts +35 -0
  186. package/src/quote/dto/quote.reward.data.dto.ts +67 -0
  187. package/src/quote/dto/quote.route.data.dto.ts +71 -0
  188. package/src/quote/dto/types.ts +18 -0
  189. package/src/quote/errors.ts +215 -0
  190. package/src/quote/quote.module.ts +17 -0
  191. package/src/quote/quote.service.ts +299 -0
  192. package/src/quote/schemas/quote-call.schema.ts +16 -0
  193. package/src/quote/schemas/quote-intent.schema.ts +27 -0
  194. package/src/quote/schemas/quote-reward.schema.ts +24 -0
  195. package/src/quote/schemas/quote-route.schema.ts +30 -0
  196. package/src/quote/schemas/quote-token.schema.ts +14 -0
  197. package/src/quote/tests/quote.service.spec.ts +444 -0
  198. package/src/sign/atomic-signer.service.ts +24 -0
  199. package/src/sign/atomic.nonce.service.ts +114 -0
  200. package/src/sign/kms-account/kmsToAccount.ts +73 -0
  201. package/src/sign/kms-account/signKms.ts +30 -0
  202. package/src/sign/kms-account/signKmsTransaction.ts +37 -0
  203. package/src/sign/kms-account/signKmsTypedData.ts +21 -0
  204. package/src/sign/nonce.service.ts +89 -0
  205. package/src/sign/schemas/nonce.schema.ts +36 -0
  206. package/src/sign/sign.controller.ts +52 -0
  207. package/src/sign/sign.helper.ts +23 -0
  208. package/src/sign/sign.module.ts +27 -0
  209. package/src/sign/signer-kms.service.ts +27 -0
  210. package/src/sign/signer.service.ts +26 -0
  211. package/src/solver/filters/tests/valid-smart-wallet.service.spec.ts +87 -0
  212. package/src/solver/filters/valid-smart-wallet.service.ts +58 -0
  213. package/src/solver/solver.module.ts +10 -0
  214. package/src/transaction/multichain-public-client.service.ts +15 -0
  215. package/src/transaction/smart-wallets/kernel/actions/encodeData.kernel.ts +57 -0
  216. package/src/transaction/smart-wallets/kernel/create-kernel-client-v2.account.ts +183 -0
  217. package/src/transaction/smart-wallets/kernel/create.kernel.account.ts +270 -0
  218. package/src/transaction/smart-wallets/kernel/index.ts +2 -0
  219. package/src/transaction/smart-wallets/kernel/kernel-account-client-v2.service.ts +90 -0
  220. package/src/transaction/smart-wallets/kernel/kernel-account-client.service.ts +107 -0
  221. package/src/transaction/smart-wallets/kernel/kernel-account.client.ts +105 -0
  222. package/src/transaction/smart-wallets/kernel/kernel-account.config.ts +34 -0
  223. package/src/transaction/smart-wallets/simple-account/create.simple.account.ts +19 -0
  224. package/src/transaction/smart-wallets/simple-account/index.ts +2 -0
  225. package/src/transaction/smart-wallets/simple-account/simple-account-client.service.ts +42 -0
  226. package/src/transaction/smart-wallets/simple-account/simple-account.client.ts +83 -0
  227. package/src/transaction/smart-wallets/simple-account/simple-account.config.ts +5 -0
  228. package/src/transaction/smart-wallets/smart-wallet.types.ts +38 -0
  229. package/src/transaction/smart-wallets/utils.ts +14 -0
  230. package/src/transaction/transaction.module.ts +25 -0
  231. package/src/transaction/viem_multichain_client.service.ts +100 -0
  232. package/src/transforms/viem-address.decorator.ts +14 -0
  233. package/src/utils/bigint.ts +44 -0
  234. package/src/utils/types.ts +18 -0
  235. package/src/watch/intent/tests/watch-create-intent.service.spec.ts +257 -0
  236. package/src/watch/intent/tests/watch-fulfillment.service.spec.ts +141 -0
  237. package/src/watch/intent/watch-create-intent.service.ts +106 -0
  238. package/src/watch/intent/watch-event.service.ts +133 -0
  239. package/src/watch/intent/watch-fulfillment.service.ts +115 -0
  240. package/src/watch/watch.module.ts +13 -0
  241. package/test/app.e2e-spec.ts +21 -0
  242. package/test/jest-e2e.json +9 -0
  243. package/tsconfig.build.json +4 -0
  244. package/tsconfig.json +29 -0
@@ -0,0 +1,1309 @@
1
+ export const EntryPointAbi_v6 = [
2
+ {
3
+ inputs: [
4
+ {
5
+ internalType: 'uint256',
6
+ name: 'preOpGas',
7
+ type: 'uint256',
8
+ },
9
+ {
10
+ internalType: 'uint256',
11
+ name: 'paid',
12
+ type: 'uint256',
13
+ },
14
+ {
15
+ internalType: 'uint48',
16
+ name: 'validAfter',
17
+ type: 'uint48',
18
+ },
19
+ {
20
+ internalType: 'uint48',
21
+ name: 'validUntil',
22
+ type: 'uint48',
23
+ },
24
+ {
25
+ internalType: 'bool',
26
+ name: 'targetSuccess',
27
+ type: 'bool',
28
+ },
29
+ {
30
+ internalType: 'bytes',
31
+ name: 'targetResult',
32
+ type: 'bytes',
33
+ },
34
+ ],
35
+ name: 'ExecutionResult',
36
+ type: 'error',
37
+ },
38
+ {
39
+ inputs: [
40
+ {
41
+ internalType: 'uint256',
42
+ name: 'opIndex',
43
+ type: 'uint256',
44
+ },
45
+ {
46
+ internalType: 'string',
47
+ name: 'reason',
48
+ type: 'string',
49
+ },
50
+ ],
51
+ name: 'FailedOp',
52
+ type: 'error',
53
+ },
54
+ {
55
+ inputs: [
56
+ {
57
+ internalType: 'address',
58
+ name: 'sender',
59
+ type: 'address',
60
+ },
61
+ ],
62
+ name: 'SenderAddressResult',
63
+ type: 'error',
64
+ },
65
+ {
66
+ inputs: [
67
+ {
68
+ internalType: 'address',
69
+ name: 'aggregator',
70
+ type: 'address',
71
+ },
72
+ ],
73
+ name: 'SignatureValidationFailed',
74
+ type: 'error',
75
+ },
76
+ {
77
+ inputs: [
78
+ {
79
+ components: [
80
+ {
81
+ internalType: 'uint256',
82
+ name: 'preOpGas',
83
+ type: 'uint256',
84
+ },
85
+ {
86
+ internalType: 'uint256',
87
+ name: 'prefund',
88
+ type: 'uint256',
89
+ },
90
+ {
91
+ internalType: 'bool',
92
+ name: 'sigFailed',
93
+ type: 'bool',
94
+ },
95
+ {
96
+ internalType: 'uint48',
97
+ name: 'validAfter',
98
+ type: 'uint48',
99
+ },
100
+ {
101
+ internalType: 'uint48',
102
+ name: 'validUntil',
103
+ type: 'uint48',
104
+ },
105
+ {
106
+ internalType: 'bytes',
107
+ name: 'paymasterContext',
108
+ type: 'bytes',
109
+ },
110
+ ],
111
+ internalType: 'struct IEntryPoint.ReturnInfo',
112
+ name: 'returnInfo',
113
+ type: 'tuple',
114
+ },
115
+ {
116
+ components: [
117
+ {
118
+ internalType: 'uint256',
119
+ name: 'stake',
120
+ type: 'uint256',
121
+ },
122
+ {
123
+ internalType: 'uint256',
124
+ name: 'unstakeDelaySec',
125
+ type: 'uint256',
126
+ },
127
+ ],
128
+ internalType: 'struct IStakeManager.StakeInfo',
129
+ name: 'senderInfo',
130
+ type: 'tuple',
131
+ },
132
+ {
133
+ components: [
134
+ {
135
+ internalType: 'uint256',
136
+ name: 'stake',
137
+ type: 'uint256',
138
+ },
139
+ {
140
+ internalType: 'uint256',
141
+ name: 'unstakeDelaySec',
142
+ type: 'uint256',
143
+ },
144
+ ],
145
+ internalType: 'struct IStakeManager.StakeInfo',
146
+ name: 'factoryInfo',
147
+ type: 'tuple',
148
+ },
149
+ {
150
+ components: [
151
+ {
152
+ internalType: 'uint256',
153
+ name: 'stake',
154
+ type: 'uint256',
155
+ },
156
+ {
157
+ internalType: 'uint256',
158
+ name: 'unstakeDelaySec',
159
+ type: 'uint256',
160
+ },
161
+ ],
162
+ internalType: 'struct IStakeManager.StakeInfo',
163
+ name: 'paymasterInfo',
164
+ type: 'tuple',
165
+ },
166
+ ],
167
+ name: 'ValidationResult',
168
+ type: 'error',
169
+ },
170
+ {
171
+ inputs: [
172
+ {
173
+ components: [
174
+ {
175
+ internalType: 'uint256',
176
+ name: 'preOpGas',
177
+ type: 'uint256',
178
+ },
179
+ {
180
+ internalType: 'uint256',
181
+ name: 'prefund',
182
+ type: 'uint256',
183
+ },
184
+ {
185
+ internalType: 'bool',
186
+ name: 'sigFailed',
187
+ type: 'bool',
188
+ },
189
+ {
190
+ internalType: 'uint48',
191
+ name: 'validAfter',
192
+ type: 'uint48',
193
+ },
194
+ {
195
+ internalType: 'uint48',
196
+ name: 'validUntil',
197
+ type: 'uint48',
198
+ },
199
+ {
200
+ internalType: 'bytes',
201
+ name: 'paymasterContext',
202
+ type: 'bytes',
203
+ },
204
+ ],
205
+ internalType: 'struct IEntryPoint.ReturnInfo',
206
+ name: 'returnInfo',
207
+ type: 'tuple',
208
+ },
209
+ {
210
+ components: [
211
+ {
212
+ internalType: 'uint256',
213
+ name: 'stake',
214
+ type: 'uint256',
215
+ },
216
+ {
217
+ internalType: 'uint256',
218
+ name: 'unstakeDelaySec',
219
+ type: 'uint256',
220
+ },
221
+ ],
222
+ internalType: 'struct IStakeManager.StakeInfo',
223
+ name: 'senderInfo',
224
+ type: 'tuple',
225
+ },
226
+ {
227
+ components: [
228
+ {
229
+ internalType: 'uint256',
230
+ name: 'stake',
231
+ type: 'uint256',
232
+ },
233
+ {
234
+ internalType: 'uint256',
235
+ name: 'unstakeDelaySec',
236
+ type: 'uint256',
237
+ },
238
+ ],
239
+ internalType: 'struct IStakeManager.StakeInfo',
240
+ name: 'factoryInfo',
241
+ type: 'tuple',
242
+ },
243
+ {
244
+ components: [
245
+ {
246
+ internalType: 'uint256',
247
+ name: 'stake',
248
+ type: 'uint256',
249
+ },
250
+ {
251
+ internalType: 'uint256',
252
+ name: 'unstakeDelaySec',
253
+ type: 'uint256',
254
+ },
255
+ ],
256
+ internalType: 'struct IStakeManager.StakeInfo',
257
+ name: 'paymasterInfo',
258
+ type: 'tuple',
259
+ },
260
+ {
261
+ components: [
262
+ {
263
+ internalType: 'address',
264
+ name: 'aggregator',
265
+ type: 'address',
266
+ },
267
+ {
268
+ components: [
269
+ {
270
+ internalType: 'uint256',
271
+ name: 'stake',
272
+ type: 'uint256',
273
+ },
274
+ {
275
+ internalType: 'uint256',
276
+ name: 'unstakeDelaySec',
277
+ type: 'uint256',
278
+ },
279
+ ],
280
+ internalType: 'struct IStakeManager.StakeInfo',
281
+ name: 'stakeInfo',
282
+ type: 'tuple',
283
+ },
284
+ ],
285
+ internalType: 'struct IEntryPoint.AggregatorStakeInfo',
286
+ name: 'aggregatorInfo',
287
+ type: 'tuple',
288
+ },
289
+ ],
290
+ name: 'ValidationResultWithAggregation',
291
+ type: 'error',
292
+ },
293
+ {
294
+ anonymous: false,
295
+ inputs: [
296
+ {
297
+ indexed: true,
298
+ internalType: 'bytes32',
299
+ name: 'userOpHash',
300
+ type: 'bytes32',
301
+ },
302
+ {
303
+ indexed: true,
304
+ internalType: 'address',
305
+ name: 'sender',
306
+ type: 'address',
307
+ },
308
+ {
309
+ indexed: false,
310
+ internalType: 'address',
311
+ name: 'factory',
312
+ type: 'address',
313
+ },
314
+ {
315
+ indexed: false,
316
+ internalType: 'address',
317
+ name: 'paymaster',
318
+ type: 'address',
319
+ },
320
+ ],
321
+ name: 'AccountDeployed',
322
+ type: 'event',
323
+ },
324
+ {
325
+ anonymous: false,
326
+ inputs: [],
327
+ name: 'BeforeExecution',
328
+ type: 'event',
329
+ },
330
+ {
331
+ anonymous: false,
332
+ inputs: [
333
+ {
334
+ indexed: true,
335
+ internalType: 'address',
336
+ name: 'account',
337
+ type: 'address',
338
+ },
339
+ {
340
+ indexed: false,
341
+ internalType: 'uint256',
342
+ name: 'totalDeposit',
343
+ type: 'uint256',
344
+ },
345
+ ],
346
+ name: 'Deposited',
347
+ type: 'event',
348
+ },
349
+ {
350
+ anonymous: false,
351
+ inputs: [
352
+ {
353
+ indexed: true,
354
+ internalType: 'address',
355
+ name: 'aggregator',
356
+ type: 'address',
357
+ },
358
+ ],
359
+ name: 'SignatureAggregatorChanged',
360
+ type: 'event',
361
+ },
362
+ {
363
+ anonymous: false,
364
+ inputs: [
365
+ {
366
+ indexed: true,
367
+ internalType: 'address',
368
+ name: 'account',
369
+ type: 'address',
370
+ },
371
+ {
372
+ indexed: false,
373
+ internalType: 'uint256',
374
+ name: 'totalStaked',
375
+ type: 'uint256',
376
+ },
377
+ {
378
+ indexed: false,
379
+ internalType: 'uint256',
380
+ name: 'unstakeDelaySec',
381
+ type: 'uint256',
382
+ },
383
+ ],
384
+ name: 'StakeLocked',
385
+ type: 'event',
386
+ },
387
+ {
388
+ anonymous: false,
389
+ inputs: [
390
+ {
391
+ indexed: true,
392
+ internalType: 'address',
393
+ name: 'account',
394
+ type: 'address',
395
+ },
396
+ {
397
+ indexed: false,
398
+ internalType: 'uint256',
399
+ name: 'withdrawTime',
400
+ type: 'uint256',
401
+ },
402
+ ],
403
+ name: 'StakeUnlocked',
404
+ type: 'event',
405
+ },
406
+ {
407
+ anonymous: false,
408
+ inputs: [
409
+ {
410
+ indexed: true,
411
+ internalType: 'address',
412
+ name: 'account',
413
+ type: 'address',
414
+ },
415
+ {
416
+ indexed: false,
417
+ internalType: 'address',
418
+ name: 'withdrawAddress',
419
+ type: 'address',
420
+ },
421
+ {
422
+ indexed: false,
423
+ internalType: 'uint256',
424
+ name: 'amount',
425
+ type: 'uint256',
426
+ },
427
+ ],
428
+ name: 'StakeWithdrawn',
429
+ type: 'event',
430
+ },
431
+ {
432
+ anonymous: false,
433
+ inputs: [
434
+ {
435
+ indexed: true,
436
+ internalType: 'bytes32',
437
+ name: 'userOpHash',
438
+ type: 'bytes32',
439
+ },
440
+ {
441
+ indexed: true,
442
+ internalType: 'address',
443
+ name: 'sender',
444
+ type: 'address',
445
+ },
446
+ {
447
+ indexed: true,
448
+ internalType: 'address',
449
+ name: 'paymaster',
450
+ type: 'address',
451
+ },
452
+ {
453
+ indexed: false,
454
+ internalType: 'uint256',
455
+ name: 'nonce',
456
+ type: 'uint256',
457
+ },
458
+ {
459
+ indexed: false,
460
+ internalType: 'bool',
461
+ name: 'success',
462
+ type: 'bool',
463
+ },
464
+ {
465
+ indexed: false,
466
+ internalType: 'uint256',
467
+ name: 'actualGasCost',
468
+ type: 'uint256',
469
+ },
470
+ {
471
+ indexed: false,
472
+ internalType: 'uint256',
473
+ name: 'actualGasUsed',
474
+ type: 'uint256',
475
+ },
476
+ ],
477
+ name: 'UserOperationEvent',
478
+ type: 'event',
479
+ },
480
+ {
481
+ anonymous: false,
482
+ inputs: [
483
+ {
484
+ indexed: true,
485
+ internalType: 'bytes32',
486
+ name: 'userOpHash',
487
+ type: 'bytes32',
488
+ },
489
+ {
490
+ indexed: true,
491
+ internalType: 'address',
492
+ name: 'sender',
493
+ type: 'address',
494
+ },
495
+ {
496
+ indexed: false,
497
+ internalType: 'uint256',
498
+ name: 'nonce',
499
+ type: 'uint256',
500
+ },
501
+ {
502
+ indexed: false,
503
+ internalType: 'bytes',
504
+ name: 'revertReason',
505
+ type: 'bytes',
506
+ },
507
+ ],
508
+ name: 'UserOperationRevertReason',
509
+ type: 'event',
510
+ },
511
+ {
512
+ anonymous: false,
513
+ inputs: [
514
+ {
515
+ indexed: true,
516
+ internalType: 'address',
517
+ name: 'account',
518
+ type: 'address',
519
+ },
520
+ {
521
+ indexed: false,
522
+ internalType: 'address',
523
+ name: 'withdrawAddress',
524
+ type: 'address',
525
+ },
526
+ {
527
+ indexed: false,
528
+ internalType: 'uint256',
529
+ name: 'amount',
530
+ type: 'uint256',
531
+ },
532
+ ],
533
+ name: 'Withdrawn',
534
+ type: 'event',
535
+ },
536
+ {
537
+ inputs: [],
538
+ name: 'SIG_VALIDATION_FAILED',
539
+ outputs: [
540
+ {
541
+ internalType: 'uint256',
542
+ name: '',
543
+ type: 'uint256',
544
+ },
545
+ ],
546
+ stateMutability: 'view',
547
+ type: 'function',
548
+ },
549
+ {
550
+ inputs: [
551
+ {
552
+ internalType: 'bytes',
553
+ name: 'initCode',
554
+ type: 'bytes',
555
+ },
556
+ {
557
+ internalType: 'address',
558
+ name: 'sender',
559
+ type: 'address',
560
+ },
561
+ {
562
+ internalType: 'bytes',
563
+ name: 'paymasterAndData',
564
+ type: 'bytes',
565
+ },
566
+ ],
567
+ name: '_validateSenderAndPaymaster',
568
+ outputs: [],
569
+ stateMutability: 'view',
570
+ type: 'function',
571
+ },
572
+ {
573
+ inputs: [
574
+ {
575
+ internalType: 'uint32',
576
+ name: 'unstakeDelaySec',
577
+ type: 'uint32',
578
+ },
579
+ ],
580
+ name: 'addStake',
581
+ outputs: [],
582
+ stateMutability: 'payable',
583
+ type: 'function',
584
+ },
585
+ {
586
+ inputs: [
587
+ {
588
+ internalType: 'address',
589
+ name: 'account',
590
+ type: 'address',
591
+ },
592
+ ],
593
+ name: 'balanceOf',
594
+ outputs: [
595
+ {
596
+ internalType: 'uint256',
597
+ name: '',
598
+ type: 'uint256',
599
+ },
600
+ ],
601
+ stateMutability: 'view',
602
+ type: 'function',
603
+ },
604
+ {
605
+ inputs: [
606
+ {
607
+ internalType: 'address',
608
+ name: 'account',
609
+ type: 'address',
610
+ },
611
+ ],
612
+ name: 'depositTo',
613
+ outputs: [],
614
+ stateMutability: 'payable',
615
+ type: 'function',
616
+ },
617
+ {
618
+ inputs: [
619
+ {
620
+ internalType: 'address',
621
+ name: '',
622
+ type: 'address',
623
+ },
624
+ ],
625
+ name: 'deposits',
626
+ outputs: [
627
+ {
628
+ internalType: 'uint112',
629
+ name: 'deposit',
630
+ type: 'uint112',
631
+ },
632
+ {
633
+ internalType: 'bool',
634
+ name: 'staked',
635
+ type: 'bool',
636
+ },
637
+ {
638
+ internalType: 'uint112',
639
+ name: 'stake',
640
+ type: 'uint112',
641
+ },
642
+ {
643
+ internalType: 'uint32',
644
+ name: 'unstakeDelaySec',
645
+ type: 'uint32',
646
+ },
647
+ {
648
+ internalType: 'uint48',
649
+ name: 'withdrawTime',
650
+ type: 'uint48',
651
+ },
652
+ ],
653
+ stateMutability: 'view',
654
+ type: 'function',
655
+ },
656
+ {
657
+ inputs: [
658
+ {
659
+ internalType: 'address',
660
+ name: 'account',
661
+ type: 'address',
662
+ },
663
+ ],
664
+ name: 'getDepositInfo',
665
+ outputs: [
666
+ {
667
+ components: [
668
+ {
669
+ internalType: 'uint112',
670
+ name: 'deposit',
671
+ type: 'uint112',
672
+ },
673
+ {
674
+ internalType: 'bool',
675
+ name: 'staked',
676
+ type: 'bool',
677
+ },
678
+ {
679
+ internalType: 'uint112',
680
+ name: 'stake',
681
+ type: 'uint112',
682
+ },
683
+ {
684
+ internalType: 'uint32',
685
+ name: 'unstakeDelaySec',
686
+ type: 'uint32',
687
+ },
688
+ {
689
+ internalType: 'uint48',
690
+ name: 'withdrawTime',
691
+ type: 'uint48',
692
+ },
693
+ ],
694
+ internalType: 'struct IStakeManager.DepositInfo',
695
+ name: 'info',
696
+ type: 'tuple',
697
+ },
698
+ ],
699
+ stateMutability: 'view',
700
+ type: 'function',
701
+ },
702
+ {
703
+ inputs: [
704
+ {
705
+ internalType: 'address',
706
+ name: 'sender',
707
+ type: 'address',
708
+ },
709
+ {
710
+ internalType: 'uint192',
711
+ name: 'key',
712
+ type: 'uint192',
713
+ },
714
+ ],
715
+ name: 'getNonce',
716
+ outputs: [
717
+ {
718
+ internalType: 'uint256',
719
+ name: 'nonce',
720
+ type: 'uint256',
721
+ },
722
+ ],
723
+ stateMutability: 'view',
724
+ type: 'function',
725
+ },
726
+ {
727
+ inputs: [
728
+ {
729
+ internalType: 'bytes',
730
+ name: 'initCode',
731
+ type: 'bytes',
732
+ },
733
+ ],
734
+ name: 'getSenderAddress',
735
+ outputs: [],
736
+ stateMutability: 'nonpayable',
737
+ type: 'function',
738
+ },
739
+ {
740
+ inputs: [
741
+ {
742
+ components: [
743
+ {
744
+ internalType: 'address',
745
+ name: 'sender',
746
+ type: 'address',
747
+ },
748
+ {
749
+ internalType: 'uint256',
750
+ name: 'nonce',
751
+ type: 'uint256',
752
+ },
753
+ {
754
+ internalType: 'bytes',
755
+ name: 'initCode',
756
+ type: 'bytes',
757
+ },
758
+ {
759
+ internalType: 'bytes',
760
+ name: 'callData',
761
+ type: 'bytes',
762
+ },
763
+ {
764
+ internalType: 'uint256',
765
+ name: 'callGasLimit',
766
+ type: 'uint256',
767
+ },
768
+ {
769
+ internalType: 'uint256',
770
+ name: 'verificationGasLimit',
771
+ type: 'uint256',
772
+ },
773
+ {
774
+ internalType: 'uint256',
775
+ name: 'preVerificationGas',
776
+ type: 'uint256',
777
+ },
778
+ {
779
+ internalType: 'uint256',
780
+ name: 'maxFeePerGas',
781
+ type: 'uint256',
782
+ },
783
+ {
784
+ internalType: 'uint256',
785
+ name: 'maxPriorityFeePerGas',
786
+ type: 'uint256',
787
+ },
788
+ {
789
+ internalType: 'bytes',
790
+ name: 'paymasterAndData',
791
+ type: 'bytes',
792
+ },
793
+ {
794
+ internalType: 'bytes',
795
+ name: 'signature',
796
+ type: 'bytes',
797
+ },
798
+ ],
799
+ internalType: 'struct UserOperation',
800
+ name: 'userOp',
801
+ type: 'tuple',
802
+ },
803
+ ],
804
+ name: 'getUserOpHash',
805
+ outputs: [
806
+ {
807
+ internalType: 'bytes32',
808
+ name: '',
809
+ type: 'bytes32',
810
+ },
811
+ ],
812
+ stateMutability: 'view',
813
+ type: 'function',
814
+ },
815
+ {
816
+ inputs: [
817
+ {
818
+ components: [
819
+ {
820
+ components: [
821
+ {
822
+ internalType: 'address',
823
+ name: 'sender',
824
+ type: 'address',
825
+ },
826
+ {
827
+ internalType: 'uint256',
828
+ name: 'nonce',
829
+ type: 'uint256',
830
+ },
831
+ {
832
+ internalType: 'bytes',
833
+ name: 'initCode',
834
+ type: 'bytes',
835
+ },
836
+ {
837
+ internalType: 'bytes',
838
+ name: 'callData',
839
+ type: 'bytes',
840
+ },
841
+ {
842
+ internalType: 'uint256',
843
+ name: 'callGasLimit',
844
+ type: 'uint256',
845
+ },
846
+ {
847
+ internalType: 'uint256',
848
+ name: 'verificationGasLimit',
849
+ type: 'uint256',
850
+ },
851
+ {
852
+ internalType: 'uint256',
853
+ name: 'preVerificationGas',
854
+ type: 'uint256',
855
+ },
856
+ {
857
+ internalType: 'uint256',
858
+ name: 'maxFeePerGas',
859
+ type: 'uint256',
860
+ },
861
+ {
862
+ internalType: 'uint256',
863
+ name: 'maxPriorityFeePerGas',
864
+ type: 'uint256',
865
+ },
866
+ {
867
+ internalType: 'bytes',
868
+ name: 'paymasterAndData',
869
+ type: 'bytes',
870
+ },
871
+ {
872
+ internalType: 'bytes',
873
+ name: 'signature',
874
+ type: 'bytes',
875
+ },
876
+ ],
877
+ internalType: 'struct UserOperation[]',
878
+ name: 'userOps',
879
+ type: 'tuple[]',
880
+ },
881
+ {
882
+ internalType: 'contract IAggregator',
883
+ name: 'aggregator',
884
+ type: 'address',
885
+ },
886
+ {
887
+ internalType: 'bytes',
888
+ name: 'signature',
889
+ type: 'bytes',
890
+ },
891
+ ],
892
+ internalType: 'struct IEntryPoint.UserOpsPerAggregator[]',
893
+ name: 'opsPerAggregator',
894
+ type: 'tuple[]',
895
+ },
896
+ {
897
+ internalType: 'address payable',
898
+ name: 'beneficiary',
899
+ type: 'address',
900
+ },
901
+ ],
902
+ name: 'handleAggregatedOps',
903
+ outputs: [],
904
+ stateMutability: 'nonpayable',
905
+ type: 'function',
906
+ },
907
+ {
908
+ inputs: [
909
+ {
910
+ components: [
911
+ {
912
+ internalType: 'address',
913
+ name: 'sender',
914
+ type: 'address',
915
+ },
916
+ {
917
+ internalType: 'uint256',
918
+ name: 'nonce',
919
+ type: 'uint256',
920
+ },
921
+ {
922
+ internalType: 'bytes',
923
+ name: 'initCode',
924
+ type: 'bytes',
925
+ },
926
+ {
927
+ internalType: 'bytes',
928
+ name: 'callData',
929
+ type: 'bytes',
930
+ },
931
+ {
932
+ internalType: 'uint256',
933
+ name: 'callGasLimit',
934
+ type: 'uint256',
935
+ },
936
+ {
937
+ internalType: 'uint256',
938
+ name: 'verificationGasLimit',
939
+ type: 'uint256',
940
+ },
941
+ {
942
+ internalType: 'uint256',
943
+ name: 'preVerificationGas',
944
+ type: 'uint256',
945
+ },
946
+ {
947
+ internalType: 'uint256',
948
+ name: 'maxFeePerGas',
949
+ type: 'uint256',
950
+ },
951
+ {
952
+ internalType: 'uint256',
953
+ name: 'maxPriorityFeePerGas',
954
+ type: 'uint256',
955
+ },
956
+ {
957
+ internalType: 'bytes',
958
+ name: 'paymasterAndData',
959
+ type: 'bytes',
960
+ },
961
+ {
962
+ internalType: 'bytes',
963
+ name: 'signature',
964
+ type: 'bytes',
965
+ },
966
+ ],
967
+ internalType: 'struct UserOperation[]',
968
+ name: 'ops',
969
+ type: 'tuple[]',
970
+ },
971
+ {
972
+ internalType: 'address payable',
973
+ name: 'beneficiary',
974
+ type: 'address',
975
+ },
976
+ ],
977
+ name: 'handleOps',
978
+ outputs: [],
979
+ stateMutability: 'nonpayable',
980
+ type: 'function',
981
+ },
982
+ {
983
+ inputs: [
984
+ {
985
+ internalType: 'uint192',
986
+ name: 'key',
987
+ type: 'uint192',
988
+ },
989
+ ],
990
+ name: 'incrementNonce',
991
+ outputs: [],
992
+ stateMutability: 'nonpayable',
993
+ type: 'function',
994
+ },
995
+ {
996
+ inputs: [
997
+ {
998
+ internalType: 'bytes',
999
+ name: 'callData',
1000
+ type: 'bytes',
1001
+ },
1002
+ {
1003
+ components: [
1004
+ {
1005
+ components: [
1006
+ {
1007
+ internalType: 'address',
1008
+ name: 'sender',
1009
+ type: 'address',
1010
+ },
1011
+ {
1012
+ internalType: 'uint256',
1013
+ name: 'nonce',
1014
+ type: 'uint256',
1015
+ },
1016
+ {
1017
+ internalType: 'uint256',
1018
+ name: 'callGasLimit',
1019
+ type: 'uint256',
1020
+ },
1021
+ {
1022
+ internalType: 'uint256',
1023
+ name: 'verificationGasLimit',
1024
+ type: 'uint256',
1025
+ },
1026
+ {
1027
+ internalType: 'uint256',
1028
+ name: 'preVerificationGas',
1029
+ type: 'uint256',
1030
+ },
1031
+ {
1032
+ internalType: 'address',
1033
+ name: 'paymaster',
1034
+ type: 'address',
1035
+ },
1036
+ {
1037
+ internalType: 'uint256',
1038
+ name: 'maxFeePerGas',
1039
+ type: 'uint256',
1040
+ },
1041
+ {
1042
+ internalType: 'uint256',
1043
+ name: 'maxPriorityFeePerGas',
1044
+ type: 'uint256',
1045
+ },
1046
+ ],
1047
+ internalType: 'struct EntryPoint.MemoryUserOp',
1048
+ name: 'mUserOp',
1049
+ type: 'tuple',
1050
+ },
1051
+ {
1052
+ internalType: 'bytes32',
1053
+ name: 'userOpHash',
1054
+ type: 'bytes32',
1055
+ },
1056
+ {
1057
+ internalType: 'uint256',
1058
+ name: 'prefund',
1059
+ type: 'uint256',
1060
+ },
1061
+ {
1062
+ internalType: 'uint256',
1063
+ name: 'contextOffset',
1064
+ type: 'uint256',
1065
+ },
1066
+ {
1067
+ internalType: 'uint256',
1068
+ name: 'preOpGas',
1069
+ type: 'uint256',
1070
+ },
1071
+ ],
1072
+ internalType: 'struct EntryPoint.UserOpInfo',
1073
+ name: 'opInfo',
1074
+ type: 'tuple',
1075
+ },
1076
+ {
1077
+ internalType: 'bytes',
1078
+ name: 'context',
1079
+ type: 'bytes',
1080
+ },
1081
+ ],
1082
+ name: 'innerHandleOp',
1083
+ outputs: [
1084
+ {
1085
+ internalType: 'uint256',
1086
+ name: 'actualGasCost',
1087
+ type: 'uint256',
1088
+ },
1089
+ ],
1090
+ stateMutability: 'nonpayable',
1091
+ type: 'function',
1092
+ },
1093
+ {
1094
+ inputs: [
1095
+ {
1096
+ internalType: 'address',
1097
+ name: '',
1098
+ type: 'address',
1099
+ },
1100
+ {
1101
+ internalType: 'uint192',
1102
+ name: '',
1103
+ type: 'uint192',
1104
+ },
1105
+ ],
1106
+ name: 'nonceSequenceNumber',
1107
+ outputs: [
1108
+ {
1109
+ internalType: 'uint256',
1110
+ name: '',
1111
+ type: 'uint256',
1112
+ },
1113
+ ],
1114
+ stateMutability: 'view',
1115
+ type: 'function',
1116
+ },
1117
+ {
1118
+ inputs: [
1119
+ {
1120
+ components: [
1121
+ {
1122
+ internalType: 'address',
1123
+ name: 'sender',
1124
+ type: 'address',
1125
+ },
1126
+ {
1127
+ internalType: 'uint256',
1128
+ name: 'nonce',
1129
+ type: 'uint256',
1130
+ },
1131
+ {
1132
+ internalType: 'bytes',
1133
+ name: 'initCode',
1134
+ type: 'bytes',
1135
+ },
1136
+ {
1137
+ internalType: 'bytes',
1138
+ name: 'callData',
1139
+ type: 'bytes',
1140
+ },
1141
+ {
1142
+ internalType: 'uint256',
1143
+ name: 'callGasLimit',
1144
+ type: 'uint256',
1145
+ },
1146
+ {
1147
+ internalType: 'uint256',
1148
+ name: 'verificationGasLimit',
1149
+ type: 'uint256',
1150
+ },
1151
+ {
1152
+ internalType: 'uint256',
1153
+ name: 'preVerificationGas',
1154
+ type: 'uint256',
1155
+ },
1156
+ {
1157
+ internalType: 'uint256',
1158
+ name: 'maxFeePerGas',
1159
+ type: 'uint256',
1160
+ },
1161
+ {
1162
+ internalType: 'uint256',
1163
+ name: 'maxPriorityFeePerGas',
1164
+ type: 'uint256',
1165
+ },
1166
+ {
1167
+ internalType: 'bytes',
1168
+ name: 'paymasterAndData',
1169
+ type: 'bytes',
1170
+ },
1171
+ {
1172
+ internalType: 'bytes',
1173
+ name: 'signature',
1174
+ type: 'bytes',
1175
+ },
1176
+ ],
1177
+ internalType: 'struct UserOperation',
1178
+ name: 'op',
1179
+ type: 'tuple',
1180
+ },
1181
+ {
1182
+ internalType: 'address',
1183
+ name: 'target',
1184
+ type: 'address',
1185
+ },
1186
+ {
1187
+ internalType: 'bytes',
1188
+ name: 'targetCallData',
1189
+ type: 'bytes',
1190
+ },
1191
+ ],
1192
+ name: 'simulateHandleOp',
1193
+ outputs: [],
1194
+ stateMutability: 'nonpayable',
1195
+ type: 'function',
1196
+ },
1197
+ {
1198
+ inputs: [
1199
+ {
1200
+ components: [
1201
+ {
1202
+ internalType: 'address',
1203
+ name: 'sender',
1204
+ type: 'address',
1205
+ },
1206
+ {
1207
+ internalType: 'uint256',
1208
+ name: 'nonce',
1209
+ type: 'uint256',
1210
+ },
1211
+ {
1212
+ internalType: 'bytes',
1213
+ name: 'initCode',
1214
+ type: 'bytes',
1215
+ },
1216
+ {
1217
+ internalType: 'bytes',
1218
+ name: 'callData',
1219
+ type: 'bytes',
1220
+ },
1221
+ {
1222
+ internalType: 'uint256',
1223
+ name: 'callGasLimit',
1224
+ type: 'uint256',
1225
+ },
1226
+ {
1227
+ internalType: 'uint256',
1228
+ name: 'verificationGasLimit',
1229
+ type: 'uint256',
1230
+ },
1231
+ {
1232
+ internalType: 'uint256',
1233
+ name: 'preVerificationGas',
1234
+ type: 'uint256',
1235
+ },
1236
+ {
1237
+ internalType: 'uint256',
1238
+ name: 'maxFeePerGas',
1239
+ type: 'uint256',
1240
+ },
1241
+ {
1242
+ internalType: 'uint256',
1243
+ name: 'maxPriorityFeePerGas',
1244
+ type: 'uint256',
1245
+ },
1246
+ {
1247
+ internalType: 'bytes',
1248
+ name: 'paymasterAndData',
1249
+ type: 'bytes',
1250
+ },
1251
+ {
1252
+ internalType: 'bytes',
1253
+ name: 'signature',
1254
+ type: 'bytes',
1255
+ },
1256
+ ],
1257
+ internalType: 'struct UserOperation',
1258
+ name: 'userOp',
1259
+ type: 'tuple',
1260
+ },
1261
+ ],
1262
+ name: 'simulateValidation',
1263
+ outputs: [],
1264
+ stateMutability: 'nonpayable',
1265
+ type: 'function',
1266
+ },
1267
+ {
1268
+ inputs: [],
1269
+ name: 'unlockStake',
1270
+ outputs: [],
1271
+ stateMutability: 'nonpayable',
1272
+ type: 'function',
1273
+ },
1274
+ {
1275
+ inputs: [
1276
+ {
1277
+ internalType: 'address payable',
1278
+ name: 'withdrawAddress',
1279
+ type: 'address',
1280
+ },
1281
+ ],
1282
+ name: 'withdrawStake',
1283
+ outputs: [],
1284
+ stateMutability: 'nonpayable',
1285
+ type: 'function',
1286
+ },
1287
+ {
1288
+ inputs: [
1289
+ {
1290
+ internalType: 'address payable',
1291
+ name: 'withdrawAddress',
1292
+ type: 'address',
1293
+ },
1294
+ {
1295
+ internalType: 'uint256',
1296
+ name: 'withdrawAmount',
1297
+ type: 'uint256',
1298
+ },
1299
+ ],
1300
+ name: 'withdrawTo',
1301
+ outputs: [],
1302
+ stateMutability: 'nonpayable',
1303
+ type: 'function',
1304
+ },
1305
+ {
1306
+ stateMutability: 'payable',
1307
+ type: 'receive',
1308
+ },
1309
+ ] as const