@reclaimprotocol/attestor-core 4.0.2 → 5.0.1-beta.1

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 (243) hide show
  1. package/LICENSE +660 -660
  2. package/README.md +1 -2
  3. package/package.json +72 -60
  4. package/lib/avs/abis/avsDirectoryABI.d.ts +0 -60
  5. package/lib/avs/abis/avsDirectoryABI.js +0 -344
  6. package/lib/avs/abis/delegationABI.d.ts +0 -126
  7. package/lib/avs/abis/delegationABI.js +0 -5
  8. package/lib/avs/abis/registryABI.d.ts +0 -136
  9. package/lib/avs/abis/registryABI.js +0 -729
  10. package/lib/avs/client/create-claim-on-avs.d.ts +0 -12
  11. package/lib/avs/client/create-claim-on-avs.js +0 -147
  12. package/lib/avs/config.d.ts +0 -7
  13. package/lib/avs/config.js +0 -24
  14. package/lib/avs/contracts/ReclaimServiceManager.d.ts +0 -697
  15. package/lib/avs/contracts/ReclaimServiceManager.js +0 -3
  16. package/lib/avs/contracts/common.d.ts +0 -21
  17. package/lib/avs/contracts/common.js +0 -3
  18. package/lib/avs/contracts/factories/ReclaimServiceManager__factory.d.ts +0 -888
  19. package/lib/avs/contracts/factories/ReclaimServiceManager__factory.js +0 -1174
  20. package/lib/avs/contracts/factories/index.d.ts +0 -1
  21. package/lib/avs/contracts/factories/index.js +0 -9
  22. package/lib/avs/contracts/index.d.ts +0 -3
  23. package/lib/avs/contracts/index.js +0 -40
  24. package/lib/avs/tests/test.operator.d.ts +0 -11
  25. package/lib/avs/tests/test.operator.js +0 -313
  26. package/lib/avs/tests/utils.d.ts +0 -2
  27. package/lib/avs/tests/utils.js +0 -50
  28. package/lib/avs/types/index.d.ts +0 -55
  29. package/lib/avs/types/index.js +0 -3
  30. package/lib/avs/utils/contracts.d.ts +0 -21
  31. package/lib/avs/utils/contracts.js +0 -38
  32. package/lib/avs/utils/register.d.ts +0 -27
  33. package/lib/avs/utils/register.js +0 -82
  34. package/lib/avs/utils/tasks.d.ts +0 -22
  35. package/lib/avs/utils/tasks.js +0 -45
  36. package/lib/client/create-claim.d.ts +0 -5
  37. package/lib/client/create-claim.js +0 -424
  38. package/lib/client/index.d.ts +0 -3
  39. package/lib/client/index.js +0 -20
  40. package/lib/client/tunnels/make-rpc-tcp-tunnel.d.ts +0 -16
  41. package/lib/client/tunnels/make-rpc-tcp-tunnel.js +0 -60
  42. package/lib/client/tunnels/make-rpc-tls-tunnel.d.ts +0 -25
  43. package/lib/client/tunnels/make-rpc-tls-tunnel.js +0 -135
  44. package/lib/client/utils/attestor-pool.d.ts +0 -6
  45. package/lib/client/utils/attestor-pool.js +0 -28
  46. package/lib/client/utils/client-socket.d.ts +0 -11
  47. package/lib/client/utils/client-socket.js +0 -100
  48. package/lib/client/utils/message-handler.d.ts +0 -4
  49. package/lib/client/utils/message-handler.js +0 -94
  50. package/lib/config/index.d.ts +0 -28
  51. package/lib/config/index.js +0 -39
  52. package/lib/index.d.ts +0 -10
  53. package/lib/index.js +0 -50
  54. package/lib/mechain/abis/governanceABI.d.ts +0 -50
  55. package/lib/mechain/abis/governanceABI.js +0 -462
  56. package/lib/mechain/abis/taskABI.d.ts +0 -157
  57. package/lib/mechain/abis/taskABI.js +0 -513
  58. package/lib/mechain/client/create-claim-on-mechain.d.ts +0 -10
  59. package/lib/mechain/client/create-claim-on-mechain.js +0 -32
  60. package/lib/mechain/client/index.d.ts +0 -1
  61. package/lib/mechain/client/index.js +0 -18
  62. package/lib/mechain/constants/index.d.ts +0 -3
  63. package/lib/mechain/constants/index.js +0 -7
  64. package/lib/mechain/index.d.ts +0 -2
  65. package/lib/mechain/index.js +0 -19
  66. package/lib/mechain/types/index.d.ts +0 -23
  67. package/lib/mechain/types/index.js +0 -3
  68. package/lib/proto/api.d.ts +0 -508
  69. package/lib/proto/api.js +0 -3700
  70. package/lib/providers/http/index.d.ts +0 -3
  71. package/lib/providers/http/index.js +0 -613
  72. package/lib/providers/http/utils.d.ts +0 -74
  73. package/lib/providers/http/utils.js +0 -360
  74. package/lib/providers/index.d.ts +0 -4
  75. package/lib/providers/index.js +0 -11
  76. package/lib/scripts/check-avs-registration.d.ts +0 -1
  77. package/lib/scripts/check-avs-registration.js +0 -29
  78. package/lib/scripts/generate-provider-types.d.ts +0 -5
  79. package/lib/scripts/generate-provider-types.js +0 -82
  80. package/lib/scripts/generate-receipt.d.ts +0 -9
  81. package/lib/scripts/generate-receipt.js +0 -90
  82. package/lib/scripts/generate-toprf-keys.d.ts +0 -1
  83. package/lib/scripts/generate-toprf-keys.js +0 -23
  84. package/lib/scripts/register-avs-operator.d.ts +0 -1
  85. package/lib/scripts/register-avs-operator.js +0 -7
  86. package/lib/scripts/start-server.d.ts +0 -1
  87. package/lib/scripts/start-server.js +0 -13
  88. package/lib/scripts/update-avs-metadata.d.ts +0 -1
  89. package/lib/scripts/update-avs-metadata.js +0 -22
  90. package/lib/scripts/utils.d.ts +0 -1
  91. package/lib/scripts/utils.js +0 -11
  92. package/lib/scripts/verify-root-ca.d.ts +0 -1
  93. package/lib/scripts/verify-root-ca.js +0 -51
  94. package/lib/scripts/whitelist-operator.d.ts +0 -1
  95. package/lib/scripts/whitelist-operator.js +0 -18
  96. package/lib/server/create-server.d.ts +0 -7
  97. package/lib/server/create-server.js +0 -92
  98. package/lib/server/handlers/claimTunnel.d.ts +0 -2
  99. package/lib/server/handlers/claimTunnel.js +0 -78
  100. package/lib/server/handlers/completeClaimOnChain.d.ts +0 -2
  101. package/lib/server/handlers/completeClaimOnChain.js +0 -28
  102. package/lib/server/handlers/createClaimOnChain.d.ts +0 -2
  103. package/lib/server/handlers/createClaimOnChain.js +0 -31
  104. package/lib/server/handlers/createTaskOnMechain.d.ts +0 -2
  105. package/lib/server/handlers/createTaskOnMechain.js +0 -52
  106. package/lib/server/handlers/createTunnel.d.ts +0 -2
  107. package/lib/server/handlers/createTunnel.js +0 -101
  108. package/lib/server/handlers/disconnectTunnel.d.ts +0 -2
  109. package/lib/server/handlers/disconnectTunnel.js +0 -10
  110. package/lib/server/handlers/index.d.ts +0 -4
  111. package/lib/server/handlers/index.js +0 -22
  112. package/lib/server/handlers/init.d.ts +0 -2
  113. package/lib/server/handlers/init.js +0 -36
  114. package/lib/server/handlers/toprf.d.ts +0 -2
  115. package/lib/server/handlers/toprf.js +0 -21
  116. package/lib/server/index.d.ts +0 -4
  117. package/lib/server/index.js +0 -21
  118. package/lib/server/socket.d.ts +0 -13
  119. package/lib/server/socket.js +0 -114
  120. package/lib/server/tunnels/make-tcp-tunnel.d.ts +0 -20
  121. package/lib/server/tunnels/make-tcp-tunnel.js +0 -175
  122. package/lib/server/utils/apm.d.ts +0 -11
  123. package/lib/server/utils/apm.js +0 -43
  124. package/lib/server/utils/assert-valid-claim-request.d.ts +0 -30
  125. package/lib/server/utils/assert-valid-claim-request.js +0 -200
  126. package/lib/server/utils/config-env.d.ts +0 -1
  127. package/lib/server/utils/config-env.js +0 -7
  128. package/lib/server/utils/dns.d.ts +0 -1
  129. package/lib/server/utils/dns.js +0 -22
  130. package/lib/server/utils/generics.d.ts +0 -22
  131. package/lib/server/utils/generics.js +0 -59
  132. package/lib/server/utils/iso.d.ts +0 -1
  133. package/lib/server/utils/iso.js +0 -260
  134. package/lib/server/utils/keep-alive.d.ts +0 -7
  135. package/lib/server/utils/keep-alive.js +0 -42
  136. package/lib/server/utils/process-handshake.d.ts +0 -13
  137. package/lib/server/utils/process-handshake.js +0 -191
  138. package/lib/tests/describe-with-server.d.ts +0 -20
  139. package/lib/tests/describe-with-server.js +0 -64
  140. package/lib/tests/mock-provider-server.d.ts +0 -13
  141. package/lib/tests/mock-provider-server.js +0 -65
  142. package/lib/tests/mocks.d.ts +0 -4
  143. package/lib/tests/mocks.js +0 -23
  144. package/lib/tests/test.auth.d.ts +0 -1
  145. package/lib/tests/test.auth.js +0 -75
  146. package/lib/tests/test.bgp-listener.d.ts +0 -1
  147. package/lib/tests/test.bgp-listener.js +0 -169
  148. package/lib/tests/test.claim-creation.d.ts +0 -1
  149. package/lib/tests/test.claim-creation.js +0 -280
  150. package/lib/tests/test.http-parser.d.ts +0 -1
  151. package/lib/tests/test.http-parser.js +0 -120
  152. package/lib/tests/test.http-provider-utils.d.ts +0 -1
  153. package/lib/tests/test.http-provider-utils.js +0 -2416
  154. package/lib/tests/test.http-provider.d.ts +0 -1
  155. package/lib/tests/test.http-provider.js +0 -114
  156. package/lib/tests/test.rpc-communication.d.ts +0 -1
  157. package/lib/tests/test.rpc-communication.js +0 -64
  158. package/lib/tests/test.rpc-tunnel.d.ts +0 -1
  159. package/lib/tests/test.rpc-tunnel.js +0 -172
  160. package/lib/tests/test.signatures.d.ts +0 -1
  161. package/lib/tests/test.signatures.js +0 -24
  162. package/lib/tests/test.tcp-tunnel.d.ts +0 -1
  163. package/lib/tests/test.tcp-tunnel.js +0 -64
  164. package/lib/tests/test.zk.d.ts +0 -1
  165. package/lib/tests/test.zk.js +0 -337
  166. package/lib/tests/utils.d.ts +0 -18
  167. package/lib/tests/utils.js +0 -64
  168. package/lib/types/bgp.d.ts +0 -11
  169. package/lib/types/bgp.js +0 -3
  170. package/lib/types/claims.d.ts +0 -73
  171. package/lib/types/claims.js +0 -3
  172. package/lib/types/client.d.ts +0 -163
  173. package/lib/types/client.js +0 -3
  174. package/lib/types/general.d.ts +0 -51
  175. package/lib/types/general.js +0 -3
  176. package/lib/types/handlers.d.ts +0 -10
  177. package/lib/types/handlers.js +0 -3
  178. package/lib/types/index.d.ts +0 -10
  179. package/lib/types/index.js +0 -27
  180. package/lib/types/providers.d.ts +0 -150
  181. package/lib/types/providers.gen.d.ts +0 -429
  182. package/lib/types/providers.gen.js +0 -14
  183. package/lib/types/providers.js +0 -3
  184. package/lib/types/rpc.d.ts +0 -35
  185. package/lib/types/rpc.js +0 -3
  186. package/lib/types/signatures.d.ts +0 -28
  187. package/lib/types/signatures.js +0 -3
  188. package/lib/types/tunnel.d.ts +0 -18
  189. package/lib/types/tunnel.js +0 -3
  190. package/lib/types/zk.d.ts +0 -23
  191. package/lib/types/zk.js +0 -3
  192. package/lib/utils/auth.d.ts +0 -7
  193. package/lib/utils/auth.js +0 -64
  194. package/lib/utils/b64-json.d.ts +0 -2
  195. package/lib/utils/b64-json.js +0 -23
  196. package/lib/utils/benchmark.d.ts +0 -1
  197. package/lib/utils/benchmark.js +0 -70
  198. package/lib/utils/bgp-listener.d.ts +0 -7
  199. package/lib/utils/bgp-listener.js +0 -126
  200. package/lib/utils/claims.d.ts +0 -33
  201. package/lib/utils/claims.js +0 -112
  202. package/lib/utils/env.d.ts +0 -3
  203. package/lib/utils/env.js +0 -20
  204. package/lib/utils/error.d.ts +0 -27
  205. package/lib/utils/error.js +0 -43
  206. package/lib/utils/generics.d.ts +0 -112
  207. package/lib/utils/generics.js +0 -348
  208. package/lib/utils/http-parser.d.ts +0 -59
  209. package/lib/utils/http-parser.js +0 -252
  210. package/lib/utils/index.d.ts +0 -12
  211. package/lib/utils/index.js +0 -29
  212. package/lib/utils/logger.d.ts +0 -13
  213. package/lib/utils/logger.js +0 -100
  214. package/lib/utils/prepare-packets.d.ts +0 -16
  215. package/lib/utils/prepare-packets.js +0 -61
  216. package/lib/utils/redactions.d.ts +0 -54
  217. package/lib/utils/redactions.js +0 -148
  218. package/lib/utils/retries.d.ts +0 -12
  219. package/lib/utils/retries.js +0 -28
  220. package/lib/utils/signatures/eth.d.ts +0 -2
  221. package/lib/utils/signatures/eth.js +0 -33
  222. package/lib/utils/signatures/index.d.ts +0 -5
  223. package/lib/utils/signatures/index.js +0 -11
  224. package/lib/utils/socket-base.d.ts +0 -22
  225. package/lib/utils/socket-base.js +0 -95
  226. package/lib/utils/tls.d.ts +0 -2
  227. package/lib/utils/tls.js +0 -32
  228. package/lib/utils/validation.d.ts +0 -2
  229. package/lib/utils/validation.js +0 -46
  230. package/lib/utils/ws.d.ts +0 -12
  231. package/lib/utils/ws.js +0 -38
  232. package/lib/utils/zk.d.ts +0 -55
  233. package/lib/utils/zk.js +0 -444
  234. package/lib/window-rpc/index.d.ts +0 -3
  235. package/lib/window-rpc/index.js +0 -20
  236. package/lib/window-rpc/setup-window-rpc.d.ts +0 -5
  237. package/lib/window-rpc/setup-window-rpc.js +0 -291
  238. package/lib/window-rpc/types.d.ts +0 -192
  239. package/lib/window-rpc/types.js +0 -3
  240. package/lib/window-rpc/utils.d.ts +0 -14
  241. package/lib/window-rpc/utils.js +0 -102
  242. package/lib/window-rpc/window-rpc-zk.d.ts +0 -15
  243. package/lib/window-rpc/window-rpc-zk.js +0 -85
@@ -1,1174 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ReclaimServiceManager__factory = void 0;
4
- /* Autogenerated file. Do not edit manually. */
5
- /* tslint:disable */
6
- /* eslint-disable */
7
- const ethers_1 = require("ethers");
8
- const _abi = [
9
- {
10
- type: "constructor",
11
- inputs: [
12
- {
13
- name: "_avsDirectory",
14
- type: "address",
15
- internalType: "address",
16
- },
17
- {
18
- name: "_stakeRegistry",
19
- type: "address",
20
- internalType: "address",
21
- },
22
- {
23
- name: "_delegationManager",
24
- type: "address",
25
- internalType: "address",
26
- },
27
- ],
28
- stateMutability: "nonpayable",
29
- },
30
- {
31
- type: "function",
32
- name: "admins",
33
- inputs: [
34
- {
35
- name: "",
36
- type: "uint256",
37
- internalType: "uint256",
38
- },
39
- ],
40
- outputs: [
41
- {
42
- name: "",
43
- type: "address",
44
- internalType: "address",
45
- },
46
- ],
47
- stateMutability: "view",
48
- },
49
- {
50
- type: "function",
51
- name: "allTaskHashes",
52
- inputs: [
53
- {
54
- name: "",
55
- type: "uint32",
56
- internalType: "uint32",
57
- },
58
- ],
59
- outputs: [
60
- {
61
- name: "",
62
- type: "bytes32",
63
- internalType: "bytes32",
64
- },
65
- ],
66
- stateMutability: "view",
67
- },
68
- {
69
- type: "function",
70
- name: "avsDirectory",
71
- inputs: [],
72
- outputs: [
73
- {
74
- name: "",
75
- type: "address",
76
- internalType: "address",
77
- },
78
- ],
79
- stateMutability: "view",
80
- },
81
- {
82
- type: "function",
83
- name: "checkSignerAddress",
84
- inputs: [
85
- {
86
- name: "request",
87
- type: "tuple",
88
- internalType: "struct IReclaimServiceManager.ClaimRequest",
89
- components: [
90
- {
91
- name: "provider",
92
- type: "string",
93
- internalType: "string",
94
- },
95
- {
96
- name: "claimUserId",
97
- type: "bytes32",
98
- internalType: "bytes32",
99
- },
100
- {
101
- name: "claimHash",
102
- type: "bytes32",
103
- internalType: "bytes32",
104
- },
105
- {
106
- name: "requestedAt",
107
- type: "uint32",
108
- internalType: "uint32",
109
- },
110
- {
111
- name: "owner",
112
- type: "address",
113
- internalType: "address",
114
- },
115
- ],
116
- },
117
- {
118
- name: "requestSignature",
119
- type: "bytes",
120
- internalType: "bytes",
121
- },
122
- ],
123
- outputs: [
124
- {
125
- name: "",
126
- type: "address",
127
- internalType: "address",
128
- },
129
- ],
130
- stateMutability: "pure",
131
- },
132
- {
133
- type: "function",
134
- name: "createNewTask",
135
- inputs: [
136
- {
137
- name: "request",
138
- type: "tuple",
139
- internalType: "struct IReclaimServiceManager.ClaimRequest",
140
- components: [
141
- {
142
- name: "provider",
143
- type: "string",
144
- internalType: "string",
145
- },
146
- {
147
- name: "claimUserId",
148
- type: "bytes32",
149
- internalType: "bytes32",
150
- },
151
- {
152
- name: "claimHash",
153
- type: "bytes32",
154
- internalType: "bytes32",
155
- },
156
- {
157
- name: "requestedAt",
158
- type: "uint32",
159
- internalType: "uint32",
160
- },
161
- {
162
- name: "owner",
163
- type: "address",
164
- internalType: "address",
165
- },
166
- ],
167
- },
168
- {
169
- name: "requestSignature",
170
- type: "bytes",
171
- internalType: "bytes",
172
- },
173
- ],
174
- outputs: [],
175
- stateMutability: "nonpayable",
176
- },
177
- {
178
- type: "function",
179
- name: "deregisterOperatorFromAVS",
180
- inputs: [
181
- {
182
- name: "operator",
183
- type: "address",
184
- internalType: "address",
185
- },
186
- ],
187
- outputs: [],
188
- stateMutability: "nonpayable",
189
- },
190
- {
191
- type: "function",
192
- name: "encodeClaimRequest",
193
- inputs: [
194
- {
195
- name: "request",
196
- type: "tuple",
197
- internalType: "struct IReclaimServiceManager.ClaimRequest",
198
- components: [
199
- {
200
- name: "provider",
201
- type: "string",
202
- internalType: "string",
203
- },
204
- {
205
- name: "claimUserId",
206
- type: "bytes32",
207
- internalType: "bytes32",
208
- },
209
- {
210
- name: "claimHash",
211
- type: "bytes32",
212
- internalType: "bytes32",
213
- },
214
- {
215
- name: "requestedAt",
216
- type: "uint32",
217
- internalType: "uint32",
218
- },
219
- {
220
- name: "owner",
221
- type: "address",
222
- internalType: "address",
223
- },
224
- ],
225
- },
226
- ],
227
- outputs: [
228
- {
229
- name: "",
230
- type: "bytes",
231
- internalType: "bytes",
232
- },
233
- ],
234
- stateMutability: "pure",
235
- },
236
- {
237
- type: "function",
238
- name: "getMetadataForOperator",
239
- inputs: [
240
- {
241
- name: "operator",
242
- type: "address",
243
- internalType: "address",
244
- },
245
- ],
246
- outputs: [
247
- {
248
- name: "",
249
- type: "tuple",
250
- internalType: "struct IReclaimServiceManager.OperatorMetadata",
251
- components: [
252
- {
253
- name: "addr",
254
- type: "address",
255
- internalType: "address",
256
- },
257
- {
258
- name: "url",
259
- type: "string",
260
- internalType: "string",
261
- },
262
- ],
263
- },
264
- ],
265
- stateMutability: "view",
266
- },
267
- {
268
- type: "function",
269
- name: "getOperatorRestakedStrategies",
270
- inputs: [
271
- {
272
- name: "_operator",
273
- type: "address",
274
- internalType: "address",
275
- },
276
- ],
277
- outputs: [
278
- {
279
- name: "",
280
- type: "address[]",
281
- internalType: "address[]",
282
- },
283
- ],
284
- stateMutability: "view",
285
- },
286
- {
287
- type: "function",
288
- name: "getRestakeableStrategies",
289
- inputs: [],
290
- outputs: [
291
- {
292
- name: "",
293
- type: "address[]",
294
- internalType: "address[]",
295
- },
296
- ],
297
- stateMutability: "view",
298
- },
299
- {
300
- type: "function",
301
- name: "isAdmin",
302
- inputs: [
303
- {
304
- name: "_admin",
305
- type: "address",
306
- internalType: "address",
307
- },
308
- ],
309
- outputs: [
310
- {
311
- name: "",
312
- type: "bool",
313
- internalType: "bool",
314
- },
315
- ],
316
- stateMutability: "view",
317
- },
318
- {
319
- type: "function",
320
- name: "isOperatorWhitelisted",
321
- inputs: [
322
- {
323
- name: "operator",
324
- type: "address",
325
- internalType: "address",
326
- },
327
- ],
328
- outputs: [
329
- {
330
- name: "",
331
- type: "bool",
332
- internalType: "bool",
333
- },
334
- ],
335
- stateMutability: "view",
336
- },
337
- {
338
- type: "function",
339
- name: "latestTaskNum",
340
- inputs: [],
341
- outputs: [
342
- {
343
- name: "",
344
- type: "uint32",
345
- internalType: "uint32",
346
- },
347
- ],
348
- stateMutability: "view",
349
- },
350
- {
351
- type: "function",
352
- name: "operatorHasMinimumWeight",
353
- inputs: [
354
- {
355
- name: "operator",
356
- type: "address",
357
- internalType: "address",
358
- },
359
- ],
360
- outputs: [
361
- {
362
- name: "",
363
- type: "bool",
364
- internalType: "bool",
365
- },
366
- ],
367
- stateMutability: "view",
368
- },
369
- {
370
- type: "function",
371
- name: "owner",
372
- inputs: [],
373
- outputs: [
374
- {
375
- name: "",
376
- type: "address",
377
- internalType: "address",
378
- },
379
- ],
380
- stateMutability: "view",
381
- },
382
- {
383
- type: "function",
384
- name: "pause",
385
- inputs: [
386
- {
387
- name: "newPausedStatus",
388
- type: "uint256",
389
- internalType: "uint256",
390
- },
391
- ],
392
- outputs: [],
393
- stateMutability: "nonpayable",
394
- },
395
- {
396
- type: "function",
397
- name: "pauseAll",
398
- inputs: [],
399
- outputs: [],
400
- stateMutability: "nonpayable",
401
- },
402
- {
403
- type: "function",
404
- name: "paused",
405
- inputs: [
406
- {
407
- name: "index",
408
- type: "uint8",
409
- internalType: "uint8",
410
- },
411
- ],
412
- outputs: [
413
- {
414
- name: "",
415
- type: "bool",
416
- internalType: "bool",
417
- },
418
- ],
419
- stateMutability: "view",
420
- },
421
- {
422
- type: "function",
423
- name: "paused",
424
- inputs: [],
425
- outputs: [
426
- {
427
- name: "",
428
- type: "uint256",
429
- internalType: "uint256",
430
- },
431
- ],
432
- stateMutability: "view",
433
- },
434
- {
435
- type: "function",
436
- name: "pauserRegistry",
437
- inputs: [],
438
- outputs: [
439
- {
440
- name: "",
441
- type: "address",
442
- internalType: "contract IPauserRegistry",
443
- },
444
- ],
445
- stateMutability: "view",
446
- },
447
- {
448
- type: "function",
449
- name: "payForRange",
450
- inputs: [
451
- {
452
- name: "rangePayments",
453
- type: "tuple[]",
454
- internalType: "struct IPaymentCoordinator.RangePayment[]",
455
- components: [
456
- {
457
- name: "strategiesAndMultipliers",
458
- type: "tuple[]",
459
- internalType: "struct IPaymentCoordinator.StrategyAndMultiplier[]",
460
- components: [
461
- {
462
- name: "strategy",
463
- type: "address",
464
- internalType: "contract IStrategy",
465
- },
466
- {
467
- name: "multiplier",
468
- type: "uint96",
469
- internalType: "uint96",
470
- },
471
- ],
472
- },
473
- {
474
- name: "token",
475
- type: "address",
476
- internalType: "contract IERC20",
477
- },
478
- {
479
- name: "amount",
480
- type: "uint256",
481
- internalType: "uint256",
482
- },
483
- {
484
- name: "startTimestamp",
485
- type: "uint32",
486
- internalType: "uint32",
487
- },
488
- {
489
- name: "duration",
490
- type: "uint32",
491
- internalType: "uint32",
492
- },
493
- ],
494
- },
495
- ],
496
- outputs: [],
497
- stateMutability: "nonpayable",
498
- },
499
- {
500
- type: "function",
501
- name: "registerOperatorToAVS",
502
- inputs: [
503
- {
504
- name: "operator",
505
- type: "address",
506
- internalType: "address",
507
- },
508
- {
509
- name: "operatorSignature",
510
- type: "tuple",
511
- internalType: "struct ISignatureUtils.SignatureWithSaltAndExpiry",
512
- components: [
513
- {
514
- name: "signature",
515
- type: "bytes",
516
- internalType: "bytes",
517
- },
518
- {
519
- name: "salt",
520
- type: "bytes32",
521
- internalType: "bytes32",
522
- },
523
- {
524
- name: "expiry",
525
- type: "uint256",
526
- internalType: "uint256",
527
- },
528
- ],
529
- },
530
- ],
531
- outputs: [],
532
- stateMutability: "nonpayable",
533
- },
534
- {
535
- type: "function",
536
- name: "registeredOperators",
537
- inputs: [
538
- {
539
- name: "",
540
- type: "uint256",
541
- internalType: "uint256",
542
- },
543
- ],
544
- outputs: [
545
- {
546
- name: "addr",
547
- type: "address",
548
- internalType: "address",
549
- },
550
- {
551
- name: "url",
552
- type: "string",
553
- internalType: "string",
554
- },
555
- ],
556
- stateMutability: "view",
557
- },
558
- {
559
- type: "function",
560
- name: "renounceOwnership",
561
- inputs: [],
562
- outputs: [],
563
- stateMutability: "nonpayable",
564
- },
565
- {
566
- type: "function",
567
- name: "setPauserRegistry",
568
- inputs: [
569
- {
570
- name: "newPauserRegistry",
571
- type: "address",
572
- internalType: "contract IPauserRegistry",
573
- },
574
- ],
575
- outputs: [],
576
- stateMutability: "nonpayable",
577
- },
578
- {
579
- type: "function",
580
- name: "setup",
581
- inputs: [
582
- {
583
- name: "initialAdmin",
584
- type: "address",
585
- internalType: "address",
586
- },
587
- ],
588
- outputs: [],
589
- stateMutability: "nonpayable",
590
- },
591
- {
592
- type: "function",
593
- name: "stakeRegistry",
594
- inputs: [],
595
- outputs: [
596
- {
597
- name: "",
598
- type: "address",
599
- internalType: "address",
600
- },
601
- ],
602
- stateMutability: "view",
603
- },
604
- {
605
- type: "function",
606
- name: "taskCompleted",
607
- inputs: [
608
- {
609
- name: "completedTask",
610
- type: "tuple",
611
- internalType: "struct IReclaimServiceManager.CompletedTask",
612
- components: [
613
- {
614
- name: "task",
615
- type: "tuple",
616
- internalType: "struct IReclaimServiceManager.Task",
617
- components: [
618
- {
619
- name: "request",
620
- type: "tuple",
621
- internalType: "struct IReclaimServiceManager.ClaimRequest",
622
- components: [
623
- {
624
- name: "provider",
625
- type: "string",
626
- internalType: "string",
627
- },
628
- {
629
- name: "claimUserId",
630
- type: "bytes32",
631
- internalType: "bytes32",
632
- },
633
- {
634
- name: "claimHash",
635
- type: "bytes32",
636
- internalType: "bytes32",
637
- },
638
- {
639
- name: "requestedAt",
640
- type: "uint32",
641
- internalType: "uint32",
642
- },
643
- {
644
- name: "owner",
645
- type: "address",
646
- internalType: "address",
647
- },
648
- ],
649
- },
650
- {
651
- name: "createdAt",
652
- type: "uint32",
653
- internalType: "uint32",
654
- },
655
- {
656
- name: "expiresAt",
657
- type: "uint32",
658
- internalType: "uint32",
659
- },
660
- {
661
- name: "minimumSignatures",
662
- type: "uint8",
663
- internalType: "uint8",
664
- },
665
- {
666
- name: "operators",
667
- type: "tuple[]",
668
- internalType: "struct IReclaimServiceManager.Operator[]",
669
- components: [
670
- {
671
- name: "addr",
672
- type: "address",
673
- internalType: "address",
674
- },
675
- {
676
- name: "url",
677
- type: "string",
678
- internalType: "string",
679
- },
680
- ],
681
- },
682
- {
683
- name: "feePaid",
684
- type: "uint256",
685
- internalType: "uint256",
686
- },
687
- ],
688
- },
689
- {
690
- name: "signatures",
691
- type: "bytes[]",
692
- internalType: "bytes[]",
693
- },
694
- ],
695
- },
696
- {
697
- name: "referenceTaskIndex",
698
- type: "uint32",
699
- internalType: "uint32",
700
- },
701
- ],
702
- outputs: [],
703
- stateMutability: "nonpayable",
704
- },
705
- {
706
- type: "function",
707
- name: "taskCreationMetadata",
708
- inputs: [],
709
- outputs: [
710
- {
711
- name: "maxTaskLifetimeS",
712
- type: "uint32",
713
- internalType: "uint32",
714
- },
715
- {
716
- name: "minSignaturesPerTask",
717
- type: "uint8",
718
- internalType: "uint8",
719
- },
720
- {
721
- name: "maxTaskCreationDelayS",
722
- type: "uint32",
723
- internalType: "uint32",
724
- },
725
- ],
726
- stateMutability: "view",
727
- },
728
- {
729
- type: "function",
730
- name: "transferOwnership",
731
- inputs: [
732
- {
733
- name: "newOwner",
734
- type: "address",
735
- internalType: "address",
736
- },
737
- ],
738
- outputs: [],
739
- stateMutability: "nonpayable",
740
- },
741
- {
742
- type: "function",
743
- name: "unpause",
744
- inputs: [
745
- {
746
- name: "newPausedStatus",
747
- type: "uint256",
748
- internalType: "uint256",
749
- },
750
- ],
751
- outputs: [],
752
- stateMutability: "nonpayable",
753
- },
754
- {
755
- type: "function",
756
- name: "updateAVSMetadataURI",
757
- inputs: [
758
- {
759
- name: "_metadataURI",
760
- type: "string",
761
- internalType: "string",
762
- },
763
- ],
764
- outputs: [],
765
- stateMutability: "nonpayable",
766
- },
767
- {
768
- type: "function",
769
- name: "updateOperatorMetadata",
770
- inputs: [
771
- {
772
- name: "metadata",
773
- type: "tuple",
774
- internalType: "struct IReclaimServiceManager.OperatorMetadata",
775
- components: [
776
- {
777
- name: "addr",
778
- type: "address",
779
- internalType: "address",
780
- },
781
- {
782
- name: "url",
783
- type: "string",
784
- internalType: "string",
785
- },
786
- ],
787
- },
788
- ],
789
- outputs: [],
790
- stateMutability: "nonpayable",
791
- },
792
- {
793
- type: "function",
794
- name: "updateTaskCreationMetadata",
795
- inputs: [
796
- {
797
- name: "newMetadata",
798
- type: "tuple",
799
- internalType: "struct IReclaimServiceManager.TaskCreationMetadata",
800
- components: [
801
- {
802
- name: "maxTaskLifetimeS",
803
- type: "uint32",
804
- internalType: "uint32",
805
- },
806
- {
807
- name: "minSignaturesPerTask",
808
- type: "uint8",
809
- internalType: "uint8",
810
- },
811
- {
812
- name: "maxTaskCreationDelayS",
813
- type: "uint32",
814
- internalType: "uint32",
815
- },
816
- ],
817
- },
818
- ],
819
- outputs: [],
820
- stateMutability: "nonpayable",
821
- },
822
- {
823
- type: "function",
824
- name: "whitelistAddressAsOperator",
825
- inputs: [
826
- {
827
- name: "operator",
828
- type: "address",
829
- internalType: "address",
830
- },
831
- {
832
- name: "isWhitelisted",
833
- type: "bool",
834
- internalType: "bool",
835
- },
836
- ],
837
- outputs: [],
838
- stateMutability: "nonpayable",
839
- },
840
- {
841
- type: "function",
842
- name: "whitelistedOperators",
843
- inputs: [
844
- {
845
- name: "",
846
- type: "uint256",
847
- internalType: "uint256",
848
- },
849
- ],
850
- outputs: [
851
- {
852
- name: "",
853
- type: "address",
854
- internalType: "address",
855
- },
856
- ],
857
- stateMutability: "view",
858
- },
859
- {
860
- type: "event",
861
- name: "Initialized",
862
- inputs: [
863
- {
864
- name: "version",
865
- type: "uint8",
866
- indexed: false,
867
- internalType: "uint8",
868
- },
869
- ],
870
- anonymous: false,
871
- },
872
- {
873
- type: "event",
874
- name: "NewTaskCreated",
875
- inputs: [
876
- {
877
- name: "taskIndex",
878
- type: "uint32",
879
- indexed: true,
880
- internalType: "uint32",
881
- },
882
- {
883
- name: "task",
884
- type: "tuple",
885
- indexed: false,
886
- internalType: "struct IReclaimServiceManager.Task",
887
- components: [
888
- {
889
- name: "request",
890
- type: "tuple",
891
- internalType: "struct IReclaimServiceManager.ClaimRequest",
892
- components: [
893
- {
894
- name: "provider",
895
- type: "string",
896
- internalType: "string",
897
- },
898
- {
899
- name: "claimUserId",
900
- type: "bytes32",
901
- internalType: "bytes32",
902
- },
903
- {
904
- name: "claimHash",
905
- type: "bytes32",
906
- internalType: "bytes32",
907
- },
908
- {
909
- name: "requestedAt",
910
- type: "uint32",
911
- internalType: "uint32",
912
- },
913
- {
914
- name: "owner",
915
- type: "address",
916
- internalType: "address",
917
- },
918
- ],
919
- },
920
- {
921
- name: "createdAt",
922
- type: "uint32",
923
- internalType: "uint32",
924
- },
925
- {
926
- name: "expiresAt",
927
- type: "uint32",
928
- internalType: "uint32",
929
- },
930
- {
931
- name: "minimumSignatures",
932
- type: "uint8",
933
- internalType: "uint8",
934
- },
935
- {
936
- name: "operators",
937
- type: "tuple[]",
938
- internalType: "struct IReclaimServiceManager.Operator[]",
939
- components: [
940
- {
941
- name: "addr",
942
- type: "address",
943
- internalType: "address",
944
- },
945
- {
946
- name: "url",
947
- type: "string",
948
- internalType: "string",
949
- },
950
- ],
951
- },
952
- {
953
- name: "feePaid",
954
- type: "uint256",
955
- internalType: "uint256",
956
- },
957
- ],
958
- },
959
- ],
960
- anonymous: false,
961
- },
962
- {
963
- type: "event",
964
- name: "OwnershipTransferred",
965
- inputs: [
966
- {
967
- name: "previousOwner",
968
- type: "address",
969
- indexed: true,
970
- internalType: "address",
971
- },
972
- {
973
- name: "newOwner",
974
- type: "address",
975
- indexed: true,
976
- internalType: "address",
977
- },
978
- ],
979
- anonymous: false,
980
- },
981
- {
982
- type: "event",
983
- name: "Paused",
984
- inputs: [
985
- {
986
- name: "account",
987
- type: "address",
988
- indexed: true,
989
- internalType: "address",
990
- },
991
- {
992
- name: "newPausedStatus",
993
- type: "uint256",
994
- indexed: false,
995
- internalType: "uint256",
996
- },
997
- ],
998
- anonymous: false,
999
- },
1000
- {
1001
- type: "event",
1002
- name: "PauserRegistrySet",
1003
- inputs: [
1004
- {
1005
- name: "pauserRegistry",
1006
- type: "address",
1007
- indexed: false,
1008
- internalType: "contract IPauserRegistry",
1009
- },
1010
- {
1011
- name: "newPauserRegistry",
1012
- type: "address",
1013
- indexed: false,
1014
- internalType: "contract IPauserRegistry",
1015
- },
1016
- ],
1017
- anonymous: false,
1018
- },
1019
- {
1020
- type: "event",
1021
- name: "TaskCompleted",
1022
- inputs: [
1023
- {
1024
- name: "taskIndex",
1025
- type: "uint32",
1026
- indexed: true,
1027
- internalType: "uint32",
1028
- },
1029
- {
1030
- name: "task",
1031
- type: "tuple",
1032
- indexed: false,
1033
- internalType: "struct IReclaimServiceManager.CompletedTask",
1034
- components: [
1035
- {
1036
- name: "task",
1037
- type: "tuple",
1038
- internalType: "struct IReclaimServiceManager.Task",
1039
- components: [
1040
- {
1041
- name: "request",
1042
- type: "tuple",
1043
- internalType: "struct IReclaimServiceManager.ClaimRequest",
1044
- components: [
1045
- {
1046
- name: "provider",
1047
- type: "string",
1048
- internalType: "string",
1049
- },
1050
- {
1051
- name: "claimUserId",
1052
- type: "bytes32",
1053
- internalType: "bytes32",
1054
- },
1055
- {
1056
- name: "claimHash",
1057
- type: "bytes32",
1058
- internalType: "bytes32",
1059
- },
1060
- {
1061
- name: "requestedAt",
1062
- type: "uint32",
1063
- internalType: "uint32",
1064
- },
1065
- {
1066
- name: "owner",
1067
- type: "address",
1068
- internalType: "address",
1069
- },
1070
- ],
1071
- },
1072
- {
1073
- name: "createdAt",
1074
- type: "uint32",
1075
- internalType: "uint32",
1076
- },
1077
- {
1078
- name: "expiresAt",
1079
- type: "uint32",
1080
- internalType: "uint32",
1081
- },
1082
- {
1083
- name: "minimumSignatures",
1084
- type: "uint8",
1085
- internalType: "uint8",
1086
- },
1087
- {
1088
- name: "operators",
1089
- type: "tuple[]",
1090
- internalType: "struct IReclaimServiceManager.Operator[]",
1091
- components: [
1092
- {
1093
- name: "addr",
1094
- type: "address",
1095
- internalType: "address",
1096
- },
1097
- {
1098
- name: "url",
1099
- type: "string",
1100
- internalType: "string",
1101
- },
1102
- ],
1103
- },
1104
- {
1105
- name: "feePaid",
1106
- type: "uint256",
1107
- internalType: "uint256",
1108
- },
1109
- ],
1110
- },
1111
- {
1112
- name: "signatures",
1113
- type: "bytes[]",
1114
- internalType: "bytes[]",
1115
- },
1116
- ],
1117
- },
1118
- ],
1119
- anonymous: false,
1120
- },
1121
- {
1122
- type: "event",
1123
- name: "Unpaused",
1124
- inputs: [
1125
- {
1126
- name: "account",
1127
- type: "address",
1128
- indexed: true,
1129
- internalType: "address",
1130
- },
1131
- {
1132
- name: "newPausedStatus",
1133
- type: "uint256",
1134
- indexed: false,
1135
- internalType: "uint256",
1136
- },
1137
- ],
1138
- anonymous: false,
1139
- },
1140
- ];
1141
- const _bytecode = "0x61010060405234801561001157600080fd5b50604051614c04380380614c0483398101604081905261003091610146565b6001600160a01b0380841660a052808316608052600060c081905290821660e052839083908361005e61006a565b50505050505050610189565b600054610100900460ff16156100d65760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff9081161015610128576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b80516001600160a01b038116811461014157600080fd5b919050565b60008060006060848603121561015b57600080fd5b6101648461012a565b92506101726020850161012a565b91506101806040850161012a565b90509250925092565b60805160a05160c05160e0516149f561020f600039600061214c015260008181611ec30152611f990152600081816103ce015281816123930152818161250d015261257d0152600081816103a7015281816107e2015281816111cd015281816114dd01528181611960015281816119d10152818161200401526129d901526149f56000f3fe608060405234801561001057600080fd5b506004361061021c5760003560e01c8063715018a611610125578063a98fb355116100ad578063d5dba76d1161007c578063d5dba76d14610514578063e481af9d14610527578063f289a7fb1461052f578063f2fde38b14610582578063fabc1cbc1461059557600080fd5b8063a98fb355146104bb578063aa5b9cad146104ce578063abd3b6bd146104e1578063b224b9791461050157600080fd5b806394bb371b116100f457806394bb371b146104415780639926ee7d14610461578063a3524f9514610474578063a364f4da14610487578063a551c1b81461049a57600080fd5b8063715018a6146103f0578063886f1195146103f85780638b00ce7c1461040b5780638da5cb5b1461043057600080fd5b80632e8da829116101a85780635c975abb116101775780635c975abb14610374578063630868dc1461037c57806366d382031461038f57806368304835146103a25780636b3aa72e146103c957600080fd5b80632e8da8291461031657806333cfb7b714610329578063595c6a67146103495780635ac86ab71461035157600080fd5b80631b445516116101ef5780631b4455161461028c5780631be785ac1461029f5780631ee3ca10146102b257806324d7806c146102c55780632d89f6fc146102e857600080fd5b806310d67a2f14610221578063136439dd1461023657806314bfd6d01461024957806316bd83c314610279575b600080fd5b61023461022f36600461349a565b6105a8565b005b6102346102443660046134b7565b610664565b61025c6102573660046134b7565b6107a3565b6040516001600160a01b0390911681526020015b60405180910390f35b610234610287366004613674565b6107cd565b61023461029a3660046136a8565b610b35565b6102346102ad36600461372b565b610b4b565b6102346102c0366004613789565b610c44565b6102d86102d336600461349a565b610d03565b6040519015158152602001610270565b6103086102f63660046137d9565b60cb6020526000908152604090205481565b604051908152602001610270565b6102d861032436600461349a565b610d8c565b61033c61033736600461349a565b610df9565b60405161027091906137f4565b610234610e0a565b6102d861035f366004613840565b609854600160ff9092169190911b9081161490565b609854610308565b61025c61038a3660046134b7565b610ed1565b61023461039d36600461349a565b610ee1565b61025c7f000000000000000000000000000000000000000000000000000000000000000081565b61025c7f000000000000000000000000000000000000000000000000000000000000000081565b61023461106c565b60975461025c906001600160a01b031681565b60c95461041b9063ffffffff1681565b60405163ffffffff9091168152602001610270565b6033546001600160a01b031661025c565b61045461044f36600461349a565b611080565b60405161027091906138d2565b61023461046f3660046138e5565b6111c2565b610234610482366004613b4a565b611269565b61023461049536600461349a565b6114d2565b6104ad6104a83660046134b7565b611523565b604051610270929190613c94565b6102346104c9366004613cb8565b6115e5565b61025c6104dc366004613cec565b611613565b6104f46104ef366004613d53565b61164a565b6040516102709190613d87565b61023461050f366004613cec565b611673565b6102d861052236600461349a565b61193c565b61033c611a5c565b60ca546105599063ffffffff8082169160ff64010000000082041691650100000000009091041683565b6040805163ffffffff948516815260ff9093166020840152921691810191909152606001610270565b61023461059036600461349a565b611a6b565b6102346105a33660046134b7565b611ae1565b609760009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061061f9190613d9a565b6001600160a01b0316336001600160a01b0316146106585760405162461bcd60e51b815260040161064f90613db7565b60405180910390fd5b61066181611c3d565b50565b60975460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156106ac573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106d09190613e01565b6106ec5760405162461bcd60e51b815260040161064f90613e1e565b609854818116146107655760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c6974790000000000000000606482015260840161064f565b609881905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b60cd81815481106107b357600080fd5b6000918252602090912001546001600160a01b0316905081565b60405163ec7fbb3160e01b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063ec7fbb3190602401602060405180830381865afa158015610831573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108559190613e01565b15156001146108a65760405162461bcd60e51b815260206004820152601b60248201527f4f70657261746f72206d757374206265207468652063616c6c65720000000000604482015260640161064f565b80516001600160a01b0316331461090e5760405162461bcd60e51b815260206004820152602660248201527f4d657461646174612061646472657373206d757374206d61746368207468652060448201526531b0b63632b960d11b606482015260840161064f565b6020810151511580156109f35760005b60ce548110156109b55782600001516001600160a01b031660ce828154811061094957610949613e66565b60009182526020909120600290910201546001600160a01b0316036109ad5760ce818154811061097b5761097b613e66565b60009182526020822060029091020180546001600160a01b0319168155906109a66001830182613437565b5050505050565b60010161091e565b5060405162461bcd60e51b815260206004820152601260248201527113dc195c985d1bdc881b9bdd08199bdd5b9960721b604482015260640161064f565b60005b60ce54811015610aa85782600001516001600160a01b031660ce8281548110610a2157610a21613e66565b60009182526020909120600290910201546001600160a01b031603610aa0578260ce8281548110610a5457610a54613e66565b600091825260209182902083516002929092020180546001600160a01b0319166001600160a01b03909216919091178155908201516001820190610a989082613f02565b505050505050565b6001016109f6565b5060ce805460018101825560009190915282517fd36cd1c74ef8d7326d8021b776c18fb5a5724b7f7bc93c2f42e43e10ef27d12a600290920291820180546001600160a01b0319166001600160a01b03909216919091178155602084015184927fd36cd1c74ef8d7326d8021b776c18fb5a5724b7f7bc93c2f42e43e10ef27d12b01906109a69082613f02565b610b3d611d34565b610b478282611d8e565b5050565b610b5433610d03565b610b705760405162461bcd60e51b815260040161064f90613fc0565b8015610bc75760cc80546001810182556000919091527f47197230e1e4b29fc0bd84d7d78966c0925452aff72a2a121538b102457e9ebe0180546001600160a01b0384166001600160a01b03199091161790555050565b60005b60cc548110156109b557826001600160a01b031660cc8281548110610bf157610bf1613e66565b6000918252602090912001546001600160a01b031603610c3c5760cc8181548110610c1e57610c1e613e66565b600091825260209091200180546001600160a01b0319169055505050565b600101610bca565b610c4d33610d03565b610c695760405162461bcd60e51b815260040161064f90613fc0565b805163ffffffff1615610c9257805160ca805463ffffffff191663ffffffff9092169190911790555b602081015160ff1615610cc557602081015160ca805460ff9092166401000000000264ff00000000199092169190911790555b604081015163ffffffff1615610661576040015160ca805463ffffffff909216650100000000000268ffffffff000000000019909216919091179055565b6000610d176033546001600160a01b031690565b6001600160a01b03163303610d2e57506001919050565b60005b60cd54811015610d8357826001600160a01b031660cd8281548110610d5857610d58613e66565b6000918252602090912001546001600160a01b031603610d7b5750600192915050565b600101610d31565b50600092915050565b6000610d9782610d03565b15610da457506001919050565b60005b60cc54811015610d8357826001600160a01b031660cc8281548110610dce57610dce613e66565b6000918252602090912001546001600160a01b031603610df15750600192915050565b600101610da7565b6060610e0482611ffe565b92915050565b60975460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610e52573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e769190613e01565b610e925760405162461bcd60e51b815260040161064f90613e1e565b600019609881905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b60cc81815481106107b357600080fd5b600054610100900460ff1615808015610f015750600054600160ff909116105b80610f1b5750303b158015610f1b575060005460ff166001145b610f7e5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161064f565b6000805460ff191660011790558015610fa1576000805461ff0019166101001790555b60408051606081018252610708815260016020820181905261012c919092015260ca805468ffffffffffffffffff191666012c010000070817905560cd805491820181556000527f83978b4c69c48dd978ab43fe30f077615294f938fb7f936d9eb340e51ea7db2e0180546001600160a01b0319166001600160a01b0384161790558015610b47576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b611074611d34565b61107e600061232a565b565b60408051808201909152600081526060602082015260005b60ce548110156109b557826001600160a01b031660ce82815481106110bf576110bf613e66565b60009182526020909120600290910201546001600160a01b0316036111ba5760ce81815481106110f1576110f1613e66565b60009182526020918290206040805180820190915260029092020180546001600160a01b03168252600181018054929391929184019161113090613e7c565b80601f016020809104026020016040519081016040528092919081815260200182805461115c90613e7c565b80156111a95780601f1061117e576101008083540402835291602001916111a9565b820191906000526020600020905b81548152906001019060200180831161118c57829003601f168201915b505050505081525050915050919050565b600101611098565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461120a5760405162461bcd60e51b815260040161064f90613fed565b61121382610d8c565b61125f5760405162461bcd60e51b815260206004820152601860248201527f4f70657261746f72206e6f742077686974656c69737465640000000000000000604482015260640161064f565b610b47828261237c565b63ffffffff8116600090815260cb6020908152604091829020548451925190926112959290910161416d565b604051602081830303815290604052805190602001201461131e5760405162461bcd60e51b815260206004820152603d60248201527f737570706c696564207461736b20646f6573206e6f74206d617463682074686560448201527f206f6e65207265636f7264656420696e2074686520636f6e7472616374000000606482015260840161064f565b81516040015163ffffffff42811691161161136e5760405162461bcd60e51b815260206004820152601060248201526f15185cdac81a185cc8195e1c1a5c995960821b604482015260640161064f565b6040805160c0810182528351518201519181019182528351516080908101516001600160a01b03166060830152845160209081015163ffffffff1682840152600160a08401529282528285015192820192909252835190910151516000906001600160401b038111156113e3576113e36134d0565b60405190808252806020026020018201604052801561140c578160200160208202803683370190505b50905060005b81518110156114715784516080015180518290811061143357611433613e66565b60200260200101516000015182828151811061145157611451613e66565b6001600160a01b0390921660209283029190910190910152600101611412565b5061147c82826123ca565b63ffffffff8316600081815260cb602052604080822091909155517fa5be567caa88ff11b6da2cf017f9cefffcafa24111a9ecbf0b0bc476944f0f09906114c4908790614180565b60405180910390a250505050565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461151a5760405162461bcd60e51b815260040161064f90613fed565b610661816124ee565b60ce818154811061153357600080fd5b6000918252602090912060029091020180546001820180546001600160a01b0390921693509061156290613e7c565b80601f016020809104026020016040519081016040528092919081815260200182805461158e90613e7c565b80156115db5780601f106115b0576101008083540402835291602001916115db565b820191906000526020600020905b8154815290600101906020018083116115be57829003601f168201915b5050505050905082565b6115ee33610d03565b61160a5760405162461bcd60e51b815260040161064f90613fc0565b61066181612566565b600080836040516020016116279190614205565b604051602081830303815290604052905061164281846125b2565b949350505050565b60608160405160200161165d9190614205565b6040516020818303038152906040529050919050565b60808201516001600160a01b031633146117395760008260405160200161169a9190614205565b604051602081830303815290604052905060006116b782846125b2565b905083608001516001600160a01b0316816001600160a01b0316146117365760405162461bcd60e51b815260206004820152602f60248201527f5369676e6572206f6620726571756573745369676e6174757265206973206e6f60448201526e3a103932b8bab2b9ba1737bbb732b960891b606482015260840161064f565b50505b60006117498360600151426125f3565b60ca5490915063ffffffff65010000000000909104811690821611156117b15760405162461bcd60e51b815260206004820152601e60248201527f526571756573742074696d657374616d7020746f6f2066617220617761790000604482015260640161064f565b6040805161016081018252606060c08201819052600060e08301819052610100830181905261012083018190526101408301819052928201839052808201839052608082015260a081019190915283815263ffffffff4281166020830181905260ca5461181f92169061422e565b63ffffffff1660408281019190915260ca54640100000000900460ff1660608301525160009061185390839060200161416d565b60408051808303601f19018152919052805160209091012060ca5490915061188690640100000000900460ff1682612628565b608083015260405161189c90839060200161416d565b60408051601f19818403018152828252805160209182012060c9805463ffffffff908116600090815260cb90945293909220555416907f7738d1b30deac7824a0580de02efde3bb766c7b7b5ea79da34869ebd887cebf3906118ff90859061416d565b60405180910390a260c95461191b9063ffffffff16600161422e565b60c9805463ffffffff191663ffffffff929092169190911790555050505050565b6040516398ec1ac960e01b81526001600160a01b03828116600483015260009182917f000000000000000000000000000000000000000000000000000000000000000016906398ec1ac990602401602060405180830381865afa1580156119a7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119cb919061424a565b905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166340bf2fb76040518163ffffffff1660e01b8152600401602060405180830381865afa158015611a2d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a51919061424a565b909110159392505050565b6060611a666129d3565b905090565b611a73611d34565b6001600160a01b038116611ad85760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161064f565b6106618161232a565b609760009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b34573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b589190613d9a565b6001600160a01b0316336001600160a01b031614611b885760405162461bcd60e51b815260040161064f90613db7565b609854198119609854191614611c065760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c6974790000000000000000606482015260840161064f565b609881905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c90602001610798565b6001600160a01b038116611ccb5760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a40161064f565b609754604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1609780546001600160a01b0319166001600160a01b0392909216919091179055565b6033546001600160a01b0316331461107e5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161064f565b60005b81811015611f8157828282818110611dab57611dab613e66565b9050602002810190611dbd9190614263565b611dce90604081019060200161349a565b6001600160a01b03166323b872dd3330868686818110611df057611df0613e66565b9050602002810190611e029190614263565b604080516001600160e01b031960e087901b1681526001600160a01b039485166004820152939092166024840152013560448201526064016020604051808303816000875af1158015611e59573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e7d9190613e01565b50828282818110611e9057611e90613e66565b9050602002810190611ea29190614263565b611eb390604081019060200161349a565b6001600160a01b031663095ea7b37f0000000000000000000000000000000000000000000000000000000000000000858585818110611ef457611ef4613e66565b9050602002810190611f069190614263565b604080516001600160e01b031960e086901b1681526001600160a01b039093166004840152013560248201526044016020604051808303816000875af1158015611f54573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f789190613e01565b50600101611d91565b50604051630da22a8b60e11b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690631b44551690611fd09085908590600401614313565b600060405180830381600087803b158015611fea57600080fd5b505af1158015610a98573d6000803e3d6000fd5b606060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316631703a0186040518163ffffffff1660e01b8152600401600060405180830381865afa158015612060573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612088919081019061442d565b8051519091506000816001600160401b038111156120a8576120a86134d0565b6040519080825280602002602001820160405280156120d1578160200160208202803683370190505b50905060005b828110156121315783518051829081106120f3576120f3613e66565b60200260200101516000015182828151811061211157612111613e66565b6001600160a01b03909216602092830291909101909101526001016120d7565b50604051639004134760e01b81526000906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906390041347906121839089908690600401614535565b600060405180830381865afa1580156121a0573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526121c89190810190614594565b90506000836001600160401b038111156121e4576121e46134d0565b60405190808252806020026020018201604052801561220d578160200160208202803683370190505b5090506000805b8581101561225457600084828151811061223057612230613e66565b6020026020010151111561224c578161224881614629565b9250505b600101612214565b506000816001600160401b0381111561226f5761226f6134d0565b604051908082528060200260200182016040528015612298578160200160208202803683370190505b50905060005b8681101561231d5760008582815181106122ba576122ba613e66565b60200260200101511115612315578381815181106122da576122da613e66565b60200260200101518282815181106122f4576122f4613e66565b60200260200101906001600160a01b031690816001600160a01b0316815250505b60010161229e565b5098975050505050505050565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b604051639926ee7d60e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690639926ee7d90611fd09085908590600401614642565b60008260200151511161240f5760405162461bcd60e51b815260206004820152600d60248201526c4e6f207369676e61747572657360981b604482015260640161064f565b600061241a83612b10565b905060005b82518110156124e8576000805b83518110156124915784838151811061244757612447613e66565b60200260200101516001600160a01b031684828151811061246a5761246a613e66565b60200260200101516001600160a01b0316036124895760019150612491565b60010161242c565b50806124df5760405162461bcd60e51b815260206004820152601960248201527f4d697373696e67207769746e657373207369676e617475726500000000000000604482015260640161064f565b5060010161241f565b50505050565b6040516351b27a6d60e11b81526001600160a01b0382811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063a364f4da906024015b600060405180830381600087803b15801561255257600080fd5b505af11580156109a6573d6000803e3d6000fd5b60405163a98fb35560e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063a98fb35590612538908490600401613d87565b6000806125bf8451612bdf565b846040516020016125d192919061468d565b6040516020818303038152906040528051906020012090506116428184612d0a565b60008163ffffffff168363ffffffff16116126175761261283836146e8565b612621565b61262182846146e8565b9392505050565b60ce5460609060ff841611156126805760405162461bcd60e51b815260206004820152601e60248201527f496e7465726e616c3a204e6f7420656e6f756768206f70657261746f72730000604482015260640161064f565b600060ce805480602002602001604051908101604052809291908181526020016000905b8282101561277d576000848152602090819020604080518082019091526002850290910180546001600160a01b0316825260018101805492939192918401916126ec90613e7c565b80601f016020809104026020016040519081016040528092919081815260200182805461271890613e7c565b80156127655780601f1061273a57610100808354040283529160200191612765565b820191906000526020600020905b81548152906001019060200180831161274857829003601f168201915b505050505081525050815260200190600101906126a4565b50508251929350600091505060ff86166001600160401b038111156127a4576127a46134d0565b6040519080825280602002602001820160405280156127ea57816020015b6040805180820190915260008152606060208201528152602001906001900390816127c25790505b50905060005b81518160ff1610156129c957600083116128725760405162461bcd60e51b815260206004820152603760248201527f496e7465726e616c3a204665657320746f6f206c6f772e204e6f206f7065726160448201527f746f7273206c65667420746f207069636b2066726f6d2e000000000000000000606482015260840161064f565b6000836128bb61288560ff85168a614704565b60408051446020808301919091524282840152606080830194909452825180830390940184526080909101909152815191012090565b6128c5919061472d565b905060008582815181106128db576128db613e66565b60200260200101519050856001866128f39190614741565b8151811061290357612903613e66565b602002602001015186838151811061291d5761291d613e66565b6020908102919091010152612933600186614741565b9450612942816000015161193c565b61294d5750506127f0565b8060000151848460ff168151811061296757612967613e66565b6020026020010151600001906001600160a01b031690816001600160a01b0316815250508060200151848460ff16815181106129a5576129a5613e66565b60200260200101516020018190525082806129bf90614754565b93505050506127f0565b5095945050505050565b606060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316631703a0186040518163ffffffff1660e01b8152600401600060405180830381865afa158015612a35573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612a5d919081019061442d565b905060008160000151516001600160401b03811115612a7e57612a7e6134d0565b604051908082528060200260200182016040528015612aa7578160200160208202803683370190505b50905060005b825151811015612b09578251805182908110612acb57612acb613e66565b602002602001015160000151828281518110612ae957612ae9613e66565b6001600160a01b0390921660209283029190910190910152600101612aad565b5092915050565b60606000612b218360000151612d26565b905060008360200151516001600160401b03811115612b4257612b426134d0565b604051908082528060200260200182016040528015612b6b578160200160208202803683370190505b50905060005b846020015151811015612bd757612ba58386602001518381518110612b9857612b98613e66565b60200260200101516125b2565b828281518110612bb757612bb7613e66565b6001600160a01b0390921660209283029190910190910152600101612b71565b509392505050565b606081600003612c065750506040805180820190915260018152600360fc1b602082015290565b8160005b8115612c305780612c1a81614629565b9150612c299050600a83614773565b9150612c0a565b6000816001600160401b03811115612c4a57612c4a6134d0565b6040519080825280601f01601f191660200182016040528015612c74576020820181803683370190505b509050815b8515612d0157612c8a600182614741565b90506000612c99600a88614773565b612ca490600a614787565b612cae9088614741565b612cb990603061479e565b905060008160f81b905080848481518110612cd657612cd6613e66565b60200101906001600160f81b031916908160001a905350612cf8600a89614773565b97505050612c79565b50949350505050565b6000806000612d198585612d96565b91509150612bd781612e04565b6060612d568260000151604051602001612d4291815260200190565b604051602081830303815290604052612fba565b612d638360200151613173565b612d76846040015163ffffffff16612bdf565b612d838560600151612bdf565b60405160200161165d94939291906147b7565b6000808251604103612dcc5760208301516040840151606085015160001a612dc0878285856132d5565b94509450505050612dfd565b8251604003612df55760208301516040840151612dea8683836133c2565b935093505050612dfd565b506000905060025b9250929050565b6000816004811115612e1857612e1861483d565b03612e205750565b6001816004811115612e3457612e3461483d565b03612e815760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015260640161064f565b6002816004811115612e9557612e9561483d565b03612ee25760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e67746800604482015260640161064f565b6003816004811115612ef657612ef661483d565b03612f4e5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b606482015260840161064f565b6004816004811115612f6257612f6261483d565b036106615760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b606482015260840161064f565b6060600082516002612fcc9190614787565b6001600160401b03811115612fe357612fe36134d0565b6040519080825280601f01601f19166020018201604052801561300d576020820181803683370190505b5060408051808201909152601081526f181899199a1a9b1b9c1cb0b131b232b360811b602082015290915060005b84518110156131495781825186838151811061305957613059613e66565b016020015161306b919060f81c614773565b8151811061307b5761307b613e66565b01602001516001600160f81b03191683613096836002614787565b815181106130a6576130a6613e66565b60200101906001600160f81b031916908160001a9053508182518683815181106130d2576130d2613e66565b01602001516130e4919060f81c61472d565b815181106130f4576130f4613e66565b01602001516001600160f81b0319168361310f836002614787565b61311a906001614704565b8151811061312a5761312a613e66565b60200101906001600160f81b031916908160001a90535060010161303b565b508160405160200161315b9190614853565b60405160208183030381529060405292505050919050565b60408051602880825260608281019093526000919060208201818036833701905050905060005b60148110156132ac5760006131b0826013614741565b6131bb906008614787565b6131c690600261495c565b6131d9906001600160a01b038716614773565b60f81b9050600060108260f81c6131f09190614968565b60f81b905060008160f81c6010613207919061498a565b8360f81c61321591906149a6565b60f81b9050613223826133fc565b8561322f866002614787565b8151811061323f5761323f613e66565b60200101906001600160f81b031916908160001a90535061325f816133fc565b8561326b866002614787565b613276906001614704565b8151811061328657613286613e66565b60200101906001600160f81b031916908160001a905350506001909201915061319a9050565b50806040516020016132be9190614853565b604051602081830303815290604052915050919050565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a083111561330c57506000905060036133b9565b8460ff16601b1415801561332457508460ff16601c14155b1561333557506000905060046133b9565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015613389573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166133b2576000600192509250506133b9565b9150600090505b94509492505050565b6000806001600160ff1b038316816133df60ff86901c601b614704565b90506133ed878288856132d5565b9350935050505b935093915050565b6000600a60f883901c10156134235761341a60f883901c603061479e565b60f81b92915050565b61341a60f883901c605761479e565b919050565b50805461344390613e7c565b6000825580601f10613453575050565b601f01602090049060005260206000209081019061066191905b80821115613481576000815560010161346d565b5090565b6001600160a01b038116811461066157600080fd5b6000602082840312156134ac57600080fd5b813561262181613485565b6000602082840312156134c957600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b0381118282101715613508576135086134d0565b60405290565b604051606081016001600160401b0381118282101715613508576135086134d0565b60405160c081016001600160401b0381118282101715613508576135086134d0565b604051602081016001600160401b0381118282101715613508576135086134d0565b604051601f8201601f191681016001600160401b038111828210171561359c5761359c6134d0565b604052919050565b600082601f8301126135b557600080fd5b8135602083016000806001600160401b038411156135d5576135d56134d0565b50601f8301601f19166020016135ea81613574565b9150508281528583830111156135ff57600080fd5b82826020830137600092810160200192909252509392505050565b60006040828403121561362c57600080fd5b6136346134e6565b9050813561364181613485565b815260208201356001600160401b0381111561365c57600080fd5b613668848285016135a4565b60208301525092915050565b60006020828403121561368657600080fd5b81356001600160401b0381111561369c57600080fd5b6116428482850161361a565b600080602083850312156136bb57600080fd5b82356001600160401b038111156136d157600080fd5b8301601f810185136136e257600080fd5b80356001600160401b038111156136f857600080fd5b8560208260051b840101111561370d57600080fd5b6020919091019590945092505050565b801515811461066157600080fd5b6000806040838503121561373e57600080fd5b823561374981613485565b915060208301356137598161371d565b809150509250929050565b803563ffffffff8116811461343257600080fd5b803560ff8116811461343257600080fd5b6000606082840312801561379c57600080fd5b506137a561350e565b6137ae83613764565b81526137bc60208401613778565b60208201526137cd60408401613764565b60408201529392505050565b6000602082840312156137eb57600080fd5b61262182613764565b602080825282518282018190526000918401906040840190835b818110156138355783516001600160a01b031683526020938401939092019160010161380e565b509095945050505050565b60006020828403121561385257600080fd5b61262182613778565b60005b8381101561387657818101518382015260200161385e565b50506000910152565b6000815180845261389781602086016020860161385b565b601f01601f19169290920160200192915050565b60018060a01b0381511682526000602082015160406020850152611642604085018261387f565b60208152600061262160208301846138ab565b600080604083850312156138f857600080fd5b823561390381613485565b915060208301356001600160401b0381111561391e57600080fd5b83016060818603121561393057600080fd5b61393861350e565b81356001600160401b0381111561394e57600080fd5b61395a878285016135a4565b8252506020828101359082015260409182013591810191909152919491935090915050565b600060a0828403121561399157600080fd5b60405160a081016001600160401b03811182821017156139b3576139b36134d0565b60405290508082356001600160401b038111156139cf57600080fd5b6139db858286016135a4565b82525060208381013590820152604080840135908201526139fe60608401613764565b60608201526080830135613a1181613485565b6080919091015292915050565b60006001600160401b03821115613a3757613a376134d0565b5060051b60200190565b600082601f830112613a5257600080fd5b8135613a65613a6082613a1e565b613574565b8082825260208201915060208360051b860101925085831115613a8757600080fd5b602085015b838110156129c95780356001600160401b03811115613aaa57600080fd5b613ab9886020838a010161361a565b84525060209283019201613a8c565b600082601f830112613ad957600080fd5b8135613ae7613a6082613a1e565b8082825260208201915060208360051b860101925085831115613b0957600080fd5b602085015b838110156129c95780356001600160401b03811115613b2c57600080fd5b613b3b886020838a01016135a4565b84525060209283019201613b0e565b60008060408385031215613b5d57600080fd5b82356001600160401b03811115613b7357600080fd5b830160408186031215613b8557600080fd5b613b8d6134e6565b81356001600160401b03811115613ba357600080fd5b820160c08188031215613bb557600080fd5b613bbd613530565b81356001600160401b03811115613bd357600080fd5b613bdf8982850161397f565b825250613bee60208301613764565b6020820152613bff60408301613764565b6040820152613c1060608301613778565b606082015260808201356001600160401b03811115613c2e57600080fd5b613c3a89828501613a41565b60808301525060a09182013591810191909152815260208201356001600160401b03811115613c6857600080fd5b613c7487828501613ac8565b6020830152508093505050613c8b60208401613764565b90509250929050565b6001600160a01b03831681526040602082018190526000906116429083018461387f565b600060208284031215613cca57600080fd5b81356001600160401b03811115613ce057600080fd5b611642848285016135a4565b60008060408385031215613cff57600080fd5b82356001600160401b03811115613d1557600080fd5b613d218582860161397f565b92505060208301356001600160401b03811115613d3d57600080fd5b613d49858286016135a4565b9150509250929050565b600060208284031215613d6557600080fd5b81356001600160401b03811115613d7b57600080fd5b6116428482850161397f565b602081526000612621602083018461387f565b600060208284031215613dac57600080fd5b815161262181613485565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b600060208284031215613e1357600080fd5b81516126218161371d565b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b600181811c90821680613e9057607f821691505b602082108103613eb057634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115613efd57806000526020600020601f840160051c81016020851015613edd5750805b601f840160051c820191505b818110156109a65760008155600101613ee9565b505050565b81516001600160401b03811115613f1b57613f1b6134d0565b613f2f81613f298454613e7c565b84613eb6565b6020601f821160018114613f635760008315613f4b5750848201515b600019600385901b1c1916600184901b1784556109a6565b600084815260208120601f198516915b82811015613f935787850151825560209485019460019092019101613f73565b5084821015613fb15786840151600019600387901b60f8161c191681555b50505050600190811b01905550565b60208082526013908201527221b0b63632b91034b9903737ba1030b236b4b760691b604082015260600190565b6020808252604a908201527f4543445341536572766963654d616e61676572426173652e6f6e6c795374616b60408201527f6552656769737472793a2063616c6c6572206973206e6f7420746865207374616060820152696b65526567697374727960b01b608082015260a00190565b6000815160a0845261407260a085018261387f565b602084810151908601526040808501519086015260608085015163ffffffff16908601526080938401516001600160a01b031693909401929092525090919050565b6000815160c084526140c960c085018261405d565b905063ffffffff602084015116602085015263ffffffff604084015116604085015260ff60608401511660608501526080830151848203608086015281815180845260208401915060208160051b85010160208401935060005b8281101561415457601f1986830301845261413f8286516138ab565b60209586019594909401939150600101614123565b5060a087015160a0890152809550505050505092915050565b60208152600061262160208301846140b4565b60208152600082516040602084015261419c60608401826140b4565b602085810151858303601f19016040870152805180845292935081019181840191600582901b85010160005b828110156141f957601f198683030184526141e482865161387f565b602095860195949094019391506001016141c8565b50979650505050505050565b602081526000612621602083018461405d565b634e487b7160e01b600052601160045260246000fd5b63ffffffff8181168382160190811115610e0457610e04614218565b60006020828403121561425c57600080fd5b5051919050565b60008235609e1983360301811261427957600080fd5b9190910192915050565b803561343281613485565b6bffffffffffffffffffffffff8116811461066157600080fd5b81835260208301925060008160005b848110156143095781356142ca81613485565b6001600160a01b0316865260208201356142e38161428e565b6bffffffffffffffffffffffff16602087015260409586019591909101906001016142b7565b5093949350505050565b6020808252810182905260006040600584901b830181019083018583609e1936839003015b8782101561442057868503603f19018452823581811261435757600080fd5b8901803536829003601e1901811261436e57600080fd5b81016020810190356001600160401b0381111561438a57600080fd5b8060061b360382131561439c57600080fd5b60a088526143ae60a0890182846142a8565b9150506143bd60208301614283565b6001600160a01b03166020880152604082810135908801526143e160608301613764565b63ffffffff1660608801526143f860808301613764565b63ffffffff811660808901529150955050602093840193929092019160019190910190614338565b5092979650505050505050565b60006020828403121561443f57600080fd5b81516001600160401b0381111561445557600080fd5b82016020818503121561446757600080fd5b61446f613552565b81516001600160401b0381111561448557600080fd5b80830192505084601f83011261449a57600080fd5b81516144a8613a6082613a1e565b8082825260208201915060208360061b8601019250878311156144ca57600080fd5b6020850194505b8285101561452857604085890312156144e957600080fd5b6144f16134e6565b85516144fc81613485565b8152602086015161450c8161428e565b80602083015250808352506020820191506040850194506144d1565b8352509095945050505050565b6001600160a01b0383168152604060208083018290528351918301829052600091908401906060840190835b818110156145885783516001600160a01b0316835260209384019390920191600101614561565b50909695505050505050565b6000602082840312156145a657600080fd5b81516001600160401b038111156145bc57600080fd5b8201601f810184136145cd57600080fd5b80516145db613a6082613a1e565b8082825260208201915060208360051b8501019250868311156145fd57600080fd5b6020840193505b8284101561461f578351825260209384019390910190614604565b9695505050505050565b60006001820161463b5761463b614218565b5060010190565b60018060a01b038316815260406020820152600082516060604084015261466c60a084018261387f565b90506020840151606084015260408401516080840152809150509392505050565b7f19457468657265756d205369676e6564204d6573736167653a0a0000000000008152600083516146c581601a85016020880161385b565b8351908301906146dc81601a84016020880161385b565b01601a01949350505050565b63ffffffff8281168282160390811115610e0457610e04614218565b80820180821115610e0457610e04614218565b634e487b7160e01b600052601260045260246000fd5b60008261473c5761473c614717565b500690565b81810381811115610e0457610e04614218565b600060ff821660ff810361476a5761476a614218565b60010192915050565b60008261478257614782614717565b500490565b8082028115828204841417610e0457610e04614218565b60ff8181168382160190811115610e0457610e04614218565b600085516147c9818460208a0161385b565b600560f91b90830190815285516147e7816001840160208a0161385b565b600560f91b60019290910191820152845161480981600284016020890161385b565b600181830101915050600560f91b6001820152835161482f81600284016020880161385b565b016002019695505050505050565b634e487b7160e01b600052602160045260246000fd5b61060f60f31b81526000825161487081600285016020870161385b565b9190910160020192915050565b6001815b60018411156133f45780850481111561489c5761489c614218565b60018416156148aa57908102905b60019390931c928002614881565b6000826148c757506001610e04565b816148d457506000610e04565b81600181146148ea57600281146148f457614910565b6001915050610e04565b60ff84111561490557614905614218565b50506001821b610e04565b5060208310610133831016604e8410600b8410161715614933575081810a610e04565b614940600019848461487d565b806000190482111561495457614954614218565b029392505050565b600061262183836148b8565b600060ff83168061497b5761497b614717565b8060ff84160491505092915050565b60ff8181168382160290811690818114612b0957612b09614218565b60ff8281168282160390811115610e0457610e0461421856fea26469706673582212205b54d39db01ec87955542a63c3a53e876a29b21585e12d554ae6989e796dedf764736f6c634300081a0033";
1142
- const isSuperArgs = (xs) => xs.length > 1;
1143
- class ReclaimServiceManager__factory extends ethers_1.ContractFactory {
1144
- constructor(...args) {
1145
- if (isSuperArgs(args)) {
1146
- super(...args);
1147
- }
1148
- else {
1149
- super(_abi, _bytecode, args[0]);
1150
- }
1151
- }
1152
- deploy(_avsDirectory, _stakeRegistry, _delegationManager, overrides) {
1153
- return super.deploy(_avsDirectory, _stakeRegistry, _delegationManager, overrides || {});
1154
- }
1155
- getDeployTransaction(_avsDirectory, _stakeRegistry, _delegationManager, overrides) {
1156
- return super.getDeployTransaction(_avsDirectory, _stakeRegistry, _delegationManager, overrides || {});
1157
- }
1158
- attach(address) {
1159
- return super.attach(address);
1160
- }
1161
- connect(signer) {
1162
- return super.connect(signer);
1163
- }
1164
- static createInterface() {
1165
- return new ethers_1.utils.Interface(_abi);
1166
- }
1167
- static connect(address, signerOrProvider) {
1168
- return new ethers_1.Contract(address, _abi, signerOrProvider);
1169
- }
1170
- }
1171
- exports.ReclaimServiceManager__factory = ReclaimServiceManager__factory;
1172
- ReclaimServiceManager__factory.bytecode = _bytecode;
1173
- ReclaimServiceManager__factory.abi = _abi;
1174
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVjbGFpbVNlcnZpY2VNYW5hZ2VyX19mYWN0b3J5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2F2cy9jb250cmFjdHMvZmFjdG9yaWVzL1JlY2xhaW1TZXJ2aWNlTWFuYWdlcl9fZmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwrQ0FBK0M7QUFDL0Msb0JBQW9CO0FBQ3BCLG9CQUFvQjtBQUNwQixtQ0FBNkU7QUFPN0UsTUFBTSxJQUFJLEdBQUc7SUFDWDtRQUNFLElBQUksRUFBRSxhQUFhO1FBQ25CLE1BQU0sRUFBRTtZQUNOO2dCQUNFLElBQUksRUFBRSxlQUFlO2dCQUNyQixJQUFJLEVBQUUsU0FBUztnQkFDZixZQUFZLEVBQUUsU0FBUzthQUN4QjtZQUNEO2dCQUNFLElBQUksRUFBRSxnQkFBZ0I7Z0JBQ3RCLElBQUksRUFBRSxTQUFTO2dCQUNmLFlBQVksRUFBRSxTQUFTO2FBQ3hCO1lBQ0Q7Z0JBQ0UsSUFBSSxFQUFFLG9CQUFvQjtnQkFDMUIsSUFBSSxFQUFFLFNBQVM7Z0JBQ2YsWUFBWSxFQUFFLFNBQVM7YUFDeEI7U0FDRjtRQUNELGVBQWUsRUFBRSxZQUFZO0tBQzlCO0lBQ0Q7UUFDRSxJQUFJLEVBQUUsVUFBVTtRQUNoQixJQUFJLEVBQUUsUUFBUTtRQUNkLE1BQU0sRUFBRTtZQUNOO2dCQUNFLElBQUksRUFBRSxFQUFFO2dCQUNSLElBQUksRUFBRSxTQUFTO2dCQUNmLFlBQVksRUFBRSxTQUFTO2FBQ3hCO1NBQ0Y7UUFDRCxPQUFPLEVBQUU7WUFDUDtnQkFDRSxJQUFJLEVBQUUsRUFBRTtnQkFDUixJQUFJLEVBQUUsU0FBUztnQkFDZixZQUFZLEVBQUUsU0FBUzthQUN4QjtTQUNGO1FBQ0QsZUFBZSxFQUFFLE1BQU07S0FDeEI7SUFDRDtRQUNFLElBQUksRUFBRSxVQUFVO1FBQ2hCLElBQUksRUFBRSxlQUFlO1FBQ3JCLE1BQU0sRUFBRTtZQUNOO2dCQUNFLElBQUksRUFB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