@reclaimprotocol/attestor-core 3.0.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 (204) hide show
  1. package/README.md +39 -0
  2. package/lib/avs/abis/avsDirectoryABI.d.ts +60 -0
  3. package/lib/avs/abis/avsDirectoryABI.js +344 -0
  4. package/lib/avs/abis/delegationABI.d.ts +126 -0
  5. package/lib/avs/abis/delegationABI.js +5 -0
  6. package/lib/avs/abis/registryABI.d.ts +136 -0
  7. package/lib/avs/abis/registryABI.js +729 -0
  8. package/lib/avs/client/create-claim-on-avs.d.ts +10 -0
  9. package/lib/avs/client/create-claim-on-avs.js +147 -0
  10. package/lib/avs/config.d.ts +7 -0
  11. package/lib/avs/config.js +24 -0
  12. package/lib/avs/contracts/ReclaimServiceManager.d.ts +697 -0
  13. package/lib/avs/contracts/ReclaimServiceManager.js +3 -0
  14. package/lib/avs/contracts/common.d.ts +21 -0
  15. package/lib/avs/contracts/common.js +3 -0
  16. package/lib/avs/contracts/factories/ReclaimServiceManager__factory.d.ts +888 -0
  17. package/lib/avs/contracts/factories/ReclaimServiceManager__factory.js +1174 -0
  18. package/lib/avs/contracts/factories/index.d.ts +1 -0
  19. package/lib/avs/contracts/factories/index.js +9 -0
  20. package/lib/avs/contracts/index.d.ts +3 -0
  21. package/lib/avs/contracts/index.js +30 -0
  22. package/lib/avs/tests/test.operator.d.ts +11 -0
  23. package/lib/avs/tests/test.operator.js +313 -0
  24. package/lib/avs/tests/utils.d.ts +2 -0
  25. package/lib/avs/tests/utils.js +50 -0
  26. package/lib/avs/types/index.d.ts +55 -0
  27. package/lib/avs/types/index.js +3 -0
  28. package/lib/avs/utils/contracts.d.ts +21 -0
  29. package/lib/avs/utils/contracts.js +38 -0
  30. package/lib/avs/utils/register.d.ts +27 -0
  31. package/lib/avs/utils/register.js +76 -0
  32. package/lib/avs/utils/tasks.d.ts +22 -0
  33. package/lib/avs/utils/tasks.js +45 -0
  34. package/lib/client/create-claim.d.ts +5 -0
  35. package/lib/client/create-claim.js +357 -0
  36. package/lib/client/index.d.ts +3 -0
  37. package/lib/client/index.js +20 -0
  38. package/lib/client/tunnels/make-rpc-tcp-tunnel.d.ts +16 -0
  39. package/lib/client/tunnels/make-rpc-tcp-tunnel.js +60 -0
  40. package/lib/client/tunnels/make-rpc-tls-tunnel.d.ts +25 -0
  41. package/lib/client/tunnels/make-rpc-tls-tunnel.js +135 -0
  42. package/lib/client/utils/attestor-pool.d.ts +6 -0
  43. package/lib/client/utils/attestor-pool.js +28 -0
  44. package/lib/client/utils/client-socket.d.ts +9 -0
  45. package/lib/client/utils/client-socket.js +77 -0
  46. package/lib/client/utils/message-handler.d.ts +4 -0
  47. package/lib/client/utils/message-handler.js +93 -0
  48. package/lib/config/index.d.ts +23 -0
  49. package/lib/config/index.js +35 -0
  50. package/lib/index.d.ts +9 -0
  51. package/lib/index.js +39 -0
  52. package/lib/proto/api.d.ts +414 -0
  53. package/lib/proto/api.js +2756 -0
  54. package/lib/providers/http/index.d.ts +3 -0
  55. package/lib/providers/http/index.js +472 -0
  56. package/lib/providers/http/utils.d.ts +44 -0
  57. package/lib/providers/http/utils.js +302 -0
  58. package/lib/providers/index.d.ts +4 -0
  59. package/lib/providers/index.js +11 -0
  60. package/lib/scripts/check-avs-registration.d.ts +1 -0
  61. package/lib/scripts/check-avs-registration.js +28 -0
  62. package/lib/scripts/generate-provider-types.d.ts +5 -0
  63. package/lib/scripts/generate-provider-types.js +82 -0
  64. package/lib/scripts/generate-receipt.d.ts +9 -0
  65. package/lib/scripts/generate-receipt.js +93 -0
  66. package/lib/scripts/register-avs-operator.d.ts +1 -0
  67. package/lib/scripts/register-avs-operator.js +6 -0
  68. package/lib/scripts/start-server.d.ts +1 -0
  69. package/lib/scripts/start-server.js +6 -0
  70. package/lib/scripts/verify-root-ca.d.ts +1 -0
  71. package/lib/scripts/verify-root-ca.js +51 -0
  72. package/lib/server/create-server.d.ts +7 -0
  73. package/lib/server/create-server.js +85 -0
  74. package/lib/server/handlers/claimTunnel.d.ts +2 -0
  75. package/lib/server/handlers/claimTunnel.js +55 -0
  76. package/lib/server/handlers/completeClaimOnChain.d.ts +2 -0
  77. package/lib/server/handlers/completeClaimOnChain.js +28 -0
  78. package/lib/server/handlers/createClaimOnChain.d.ts +2 -0
  79. package/lib/server/handlers/createClaimOnChain.js +31 -0
  80. package/lib/server/handlers/createTunnel.d.ts +2 -0
  81. package/lib/server/handlers/createTunnel.js +65 -0
  82. package/lib/server/handlers/disconnectTunnel.d.ts +2 -0
  83. package/lib/server/handlers/disconnectTunnel.js +10 -0
  84. package/lib/server/handlers/index.d.ts +4 -0
  85. package/lib/server/handlers/index.js +18 -0
  86. package/lib/server/handlers/init.d.ts +2 -0
  87. package/lib/server/handlers/init.js +21 -0
  88. package/lib/server/index.d.ts +4 -0
  89. package/lib/server/index.js +21 -0
  90. package/lib/server/socket.d.ts +11 -0
  91. package/lib/server/socket.js +95 -0
  92. package/lib/server/tunnels/make-tcp-tunnel.d.ts +20 -0
  93. package/lib/server/tunnels/make-tcp-tunnel.js +182 -0
  94. package/lib/server/utils/apm.d.ts +11 -0
  95. package/lib/server/utils/apm.js +39 -0
  96. package/lib/server/utils/assert-valid-claim-request.d.ts +29 -0
  97. package/lib/server/utils/assert-valid-claim-request.js +189 -0
  98. package/lib/server/utils/config-env.d.ts +1 -0
  99. package/lib/server/utils/config-env.js +7 -0
  100. package/lib/server/utils/generics.d.ts +22 -0
  101. package/lib/server/utils/generics.js +59 -0
  102. package/lib/server/utils/iso.d.ts +1 -0
  103. package/lib/server/utils/iso.js +260 -0
  104. package/lib/server/utils/keep-alive.d.ts +7 -0
  105. package/lib/server/utils/keep-alive.js +42 -0
  106. package/lib/server/utils/process-handshake.d.ts +13 -0
  107. package/lib/server/utils/process-handshake.js +179 -0
  108. package/lib/server/utils/verify-server-certificates.d.ts +7 -0
  109. package/lib/server/utils/verify-server-certificates.js +102 -0
  110. package/lib/tests/describe-with-server.d.ts +21 -0
  111. package/lib/tests/describe-with-server.js +67 -0
  112. package/lib/tests/mock-provider-server.d.ts +13 -0
  113. package/lib/tests/mock-provider-server.js +65 -0
  114. package/lib/tests/mocks.d.ts +4 -0
  115. package/lib/tests/mocks.js +23 -0
  116. package/lib/tests/test.claim-creation.d.ts +1 -0
  117. package/lib/tests/test.claim-creation.js +187 -0
  118. package/lib/tests/test.http-parser.d.ts +1 -0
  119. package/lib/tests/test.http-parser.js +118 -0
  120. package/lib/tests/test.http-provider-utils.d.ts +1 -0
  121. package/lib/tests/test.http-provider-utils.js +1932 -0
  122. package/lib/tests/test.http-provider.d.ts +1 -0
  123. package/lib/tests/test.http-provider.js +43 -0
  124. package/lib/tests/test.rpc-communication.d.ts +1 -0
  125. package/lib/tests/test.rpc-communication.js +64 -0
  126. package/lib/tests/test.rpc-tunnel.d.ts +1 -0
  127. package/lib/tests/test.rpc-tunnel.js +168 -0
  128. package/lib/tests/test.signatures.d.ts +1 -0
  129. package/lib/tests/test.signatures.js +24 -0
  130. package/lib/tests/test.tcp-tunnel.d.ts +1 -0
  131. package/lib/tests/test.tcp-tunnel.js +64 -0
  132. package/lib/tests/test.zk.d.ts +1 -0
  133. package/lib/tests/test.zk.js +169 -0
  134. package/lib/tests/utils.d.ts +12 -0
  135. package/lib/tests/utils.js +49 -0
  136. package/lib/types/claims.d.ts +64 -0
  137. package/lib/types/claims.js +3 -0
  138. package/lib/types/client.d.ts +136 -0
  139. package/lib/types/client.js +3 -0
  140. package/lib/types/general.d.ts +39 -0
  141. package/lib/types/general.js +3 -0
  142. package/lib/types/handlers.d.ts +10 -0
  143. package/lib/types/handlers.js +3 -0
  144. package/lib/types/index.d.ts +9 -0
  145. package/lib/types/index.js +26 -0
  146. package/lib/types/providers.d.ts +135 -0
  147. package/lib/types/providers.gen.d.ts +414 -0
  148. package/lib/types/providers.gen.js +14 -0
  149. package/lib/types/providers.js +3 -0
  150. package/lib/types/rpc.d.ts +35 -0
  151. package/lib/types/rpc.js +3 -0
  152. package/lib/types/signatures.d.ts +28 -0
  153. package/lib/types/signatures.js +3 -0
  154. package/lib/types/tunnel.d.ts +18 -0
  155. package/lib/types/tunnel.js +3 -0
  156. package/lib/types/zk.d.ts +16 -0
  157. package/lib/types/zk.js +3 -0
  158. package/lib/utils/benchmark.d.ts +1 -0
  159. package/lib/utils/benchmark.js +70 -0
  160. package/lib/utils/claims.d.ts +33 -0
  161. package/lib/utils/claims.js +112 -0
  162. package/lib/utils/env.d.ts +3 -0
  163. package/lib/utils/env.js +20 -0
  164. package/lib/utils/error.d.ts +27 -0
  165. package/lib/utils/error.js +43 -0
  166. package/lib/utils/generics.d.ts +112 -0
  167. package/lib/utils/generics.js +348 -0
  168. package/lib/utils/http-parser.d.ts +55 -0
  169. package/lib/utils/http-parser.js +249 -0
  170. package/lib/utils/index.d.ts +10 -0
  171. package/lib/utils/index.js +27 -0
  172. package/lib/utils/logger.d.ts +13 -0
  173. package/lib/utils/logger.js +100 -0
  174. package/lib/utils/prepare-packets.d.ts +16 -0
  175. package/lib/utils/prepare-packets.js +61 -0
  176. package/lib/utils/redactions.d.ts +41 -0
  177. package/lib/utils/redactions.js +111 -0
  178. package/lib/utils/retries.d.ts +12 -0
  179. package/lib/utils/retries.js +28 -0
  180. package/lib/utils/signatures/eth.d.ts +2 -0
  181. package/lib/utils/signatures/eth.js +33 -0
  182. package/lib/utils/signatures/index.d.ts +5 -0
  183. package/lib/utils/signatures/index.js +11 -0
  184. package/lib/utils/socket-base.d.ts +21 -0
  185. package/lib/utils/socket-base.js +89 -0
  186. package/lib/utils/tls.d.ts +2 -0
  187. package/lib/utils/tls.js +32 -0
  188. package/lib/utils/validation.d.ts +2 -0
  189. package/lib/utils/validation.js +46 -0
  190. package/lib/utils/ws.d.ts +12 -0
  191. package/lib/utils/ws.js +21 -0
  192. package/lib/utils/zk.d.ts +50 -0
  193. package/lib/utils/zk.js +282 -0
  194. package/lib/window-rpc/index.d.ts +3 -0
  195. package/lib/window-rpc/index.js +20 -0
  196. package/lib/window-rpc/setup-window-rpc.d.ts +5 -0
  197. package/lib/window-rpc/setup-window-rpc.js +239 -0
  198. package/lib/window-rpc/types.d.ts +184 -0
  199. package/lib/window-rpc/types.js +3 -0
  200. package/lib/window-rpc/utils.d.ts +13 -0
  201. package/lib/window-rpc/utils.js +76 -0
  202. package/lib/window-rpc/window-rpc-zk.d.ts +11 -0
  203. package/lib/window-rpc/window-rpc-zk.js +72 -0
  204. package/package.json +117 -0
@@ -0,0 +1,729 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.registryABI = void 0;
4
+ exports.registryABI = [
5
+ {
6
+ "type": "constructor",
7
+ "inputs": [
8
+ {
9
+ "name": "_delegationManager",
10
+ "type": "address",
11
+ "internalType": "contract IDelegationManager"
12
+ }
13
+ ],
14
+ "stateMutability": "nonpayable"
15
+ },
16
+ {
17
+ "type": "function",
18
+ "name": "deregisterOperator",
19
+ "inputs": [],
20
+ "outputs": [],
21
+ "stateMutability": "nonpayable"
22
+ },
23
+ {
24
+ "type": "function",
25
+ "name": "getLastCheckpointOperatorWeight",
26
+ "inputs": [
27
+ {
28
+ "name": "_operator",
29
+ "type": "address",
30
+ "internalType": "address"
31
+ }
32
+ ],
33
+ "outputs": [
34
+ {
35
+ "name": "",
36
+ "type": "uint256",
37
+ "internalType": "uint256"
38
+ }
39
+ ],
40
+ "stateMutability": "view"
41
+ },
42
+ {
43
+ "type": "function",
44
+ "name": "getLastCheckpointThresholdWeight",
45
+ "inputs": [],
46
+ "outputs": [
47
+ {
48
+ "name": "",
49
+ "type": "uint256",
50
+ "internalType": "uint256"
51
+ }
52
+ ],
53
+ "stateMutability": "view"
54
+ },
55
+ {
56
+ "type": "function",
57
+ "name": "getLastCheckpointThresholdWeightAtBlock",
58
+ "inputs": [
59
+ {
60
+ "name": "_blockNumber",
61
+ "type": "uint32",
62
+ "internalType": "uint32"
63
+ }
64
+ ],
65
+ "outputs": [
66
+ {
67
+ "name": "",
68
+ "type": "uint256",
69
+ "internalType": "uint256"
70
+ }
71
+ ],
72
+ "stateMutability": "view"
73
+ },
74
+ {
75
+ "type": "function",
76
+ "name": "getLastCheckpointTotalWeight",
77
+ "inputs": [],
78
+ "outputs": [
79
+ {
80
+ "name": "",
81
+ "type": "uint256",
82
+ "internalType": "uint256"
83
+ }
84
+ ],
85
+ "stateMutability": "view"
86
+ },
87
+ {
88
+ "type": "function",
89
+ "name": "getLastCheckpointTotalWeightAtBlock",
90
+ "inputs": [
91
+ {
92
+ "name": "_blockNumber",
93
+ "type": "uint32",
94
+ "internalType": "uint32"
95
+ }
96
+ ],
97
+ "outputs": [
98
+ {
99
+ "name": "",
100
+ "type": "uint256",
101
+ "internalType": "uint256"
102
+ }
103
+ ],
104
+ "stateMutability": "view"
105
+ },
106
+ {
107
+ "type": "function",
108
+ "name": "getOperatorWeight",
109
+ "inputs": [
110
+ {
111
+ "name": "_operator",
112
+ "type": "address",
113
+ "internalType": "address"
114
+ }
115
+ ],
116
+ "outputs": [
117
+ {
118
+ "name": "",
119
+ "type": "uint256",
120
+ "internalType": "uint256"
121
+ }
122
+ ],
123
+ "stateMutability": "view"
124
+ },
125
+ {
126
+ "type": "function",
127
+ "name": "getOperatorWeightAtBlock",
128
+ "inputs": [
129
+ {
130
+ "name": "_operator",
131
+ "type": "address",
132
+ "internalType": "address"
133
+ },
134
+ {
135
+ "name": "_blockNumber",
136
+ "type": "uint32",
137
+ "internalType": "uint32"
138
+ }
139
+ ],
140
+ "outputs": [
141
+ {
142
+ "name": "",
143
+ "type": "uint256",
144
+ "internalType": "uint256"
145
+ }
146
+ ],
147
+ "stateMutability": "view"
148
+ },
149
+ {
150
+ "type": "function",
151
+ "name": "initialize",
152
+ "inputs": [
153
+ {
154
+ "name": "_serviceManager",
155
+ "type": "address",
156
+ "internalType": "address"
157
+ },
158
+ {
159
+ "name": "_thresholdWeight",
160
+ "type": "uint256",
161
+ "internalType": "uint256"
162
+ },
163
+ {
164
+ "name": "_quorum",
165
+ "type": "tuple",
166
+ "internalType": "struct Quorum",
167
+ "components": [
168
+ {
169
+ "name": "strategies",
170
+ "type": "tuple[]",
171
+ "internalType": "struct StrategyParams[]",
172
+ "components": [
173
+ {
174
+ "name": "strategy",
175
+ "type": "address",
176
+ "internalType": "contract IStrategy"
177
+ },
178
+ {
179
+ "name": "multiplier",
180
+ "type": "uint96",
181
+ "internalType": "uint96"
182
+ }
183
+ ]
184
+ }
185
+ ]
186
+ }
187
+ ],
188
+ "outputs": [],
189
+ "stateMutability": "nonpayable"
190
+ },
191
+ {
192
+ "type": "function",
193
+ "name": "isValidSignature",
194
+ "inputs": [
195
+ {
196
+ "name": "_dataHash",
197
+ "type": "bytes32",
198
+ "internalType": "bytes32"
199
+ },
200
+ {
201
+ "name": "_signatureData",
202
+ "type": "bytes",
203
+ "internalType": "bytes"
204
+ }
205
+ ],
206
+ "outputs": [
207
+ {
208
+ "name": "",
209
+ "type": "bytes4",
210
+ "internalType": "bytes4"
211
+ }
212
+ ],
213
+ "stateMutability": "view"
214
+ },
215
+ {
216
+ "type": "function",
217
+ "name": "minimumWeight",
218
+ "inputs": [],
219
+ "outputs": [
220
+ {
221
+ "name": "",
222
+ "type": "uint256",
223
+ "internalType": "uint256"
224
+ }
225
+ ],
226
+ "stateMutability": "view"
227
+ },
228
+ {
229
+ "type": "function",
230
+ "name": "operatorRegistered",
231
+ "inputs": [
232
+ {
233
+ "name": "_operator",
234
+ "type": "address",
235
+ "internalType": "address"
236
+ }
237
+ ],
238
+ "outputs": [
239
+ {
240
+ "name": "",
241
+ "type": "bool",
242
+ "internalType": "bool"
243
+ }
244
+ ],
245
+ "stateMutability": "view"
246
+ },
247
+ {
248
+ "type": "function",
249
+ "name": "owner",
250
+ "inputs": [],
251
+ "outputs": [
252
+ {
253
+ "name": "",
254
+ "type": "address",
255
+ "internalType": "address"
256
+ }
257
+ ],
258
+ "stateMutability": "view"
259
+ },
260
+ {
261
+ "type": "function",
262
+ "name": "quorum",
263
+ "inputs": [],
264
+ "outputs": [
265
+ {
266
+ "name": "",
267
+ "type": "tuple",
268
+ "internalType": "struct Quorum",
269
+ "components": [
270
+ {
271
+ "name": "strategies",
272
+ "type": "tuple[]",
273
+ "internalType": "struct StrategyParams[]",
274
+ "components": [
275
+ {
276
+ "name": "strategy",
277
+ "type": "address",
278
+ "internalType": "contract IStrategy"
279
+ },
280
+ {
281
+ "name": "multiplier",
282
+ "type": "uint96",
283
+ "internalType": "uint96"
284
+ }
285
+ ]
286
+ }
287
+ ]
288
+ }
289
+ ],
290
+ "stateMutability": "view"
291
+ },
292
+ {
293
+ "type": "function",
294
+ "name": "registerOperatorWithSignature",
295
+ "inputs": [
296
+ {
297
+ "name": "_operator",
298
+ "type": "address",
299
+ "internalType": "address"
300
+ },
301
+ {
302
+ "name": "_operatorSignature",
303
+ "type": "tuple",
304
+ "internalType": "struct ISignatureUtils.SignatureWithSaltAndExpiry",
305
+ "components": [
306
+ {
307
+ "name": "signature",
308
+ "type": "bytes",
309
+ "internalType": "bytes"
310
+ },
311
+ {
312
+ "name": "salt",
313
+ "type": "bytes32",
314
+ "internalType": "bytes32"
315
+ },
316
+ {
317
+ "name": "expiry",
318
+ "type": "uint256",
319
+ "internalType": "uint256"
320
+ }
321
+ ]
322
+ }
323
+ ],
324
+ "outputs": [],
325
+ "stateMutability": "nonpayable"
326
+ },
327
+ {
328
+ "type": "function",
329
+ "name": "renounceOwnership",
330
+ "inputs": [],
331
+ "outputs": [],
332
+ "stateMutability": "nonpayable"
333
+ },
334
+ {
335
+ "type": "function",
336
+ "name": "transferOwnership",
337
+ "inputs": [
338
+ {
339
+ "name": "newOwner",
340
+ "type": "address",
341
+ "internalType": "address"
342
+ }
343
+ ],
344
+ "outputs": [],
345
+ "stateMutability": "nonpayable"
346
+ },
347
+ {
348
+ "type": "function",
349
+ "name": "updateMinimumWeight",
350
+ "inputs": [
351
+ {
352
+ "name": "_newMinimumWeight",
353
+ "type": "uint256",
354
+ "internalType": "uint256"
355
+ },
356
+ {
357
+ "name": "_operators",
358
+ "type": "address[]",
359
+ "internalType": "address[]"
360
+ }
361
+ ],
362
+ "outputs": [],
363
+ "stateMutability": "nonpayable"
364
+ },
365
+ {
366
+ "type": "function",
367
+ "name": "updateOperators",
368
+ "inputs": [
369
+ {
370
+ "name": "_operators",
371
+ "type": "address[]",
372
+ "internalType": "address[]"
373
+ }
374
+ ],
375
+ "outputs": [],
376
+ "stateMutability": "nonpayable"
377
+ },
378
+ {
379
+ "type": "function",
380
+ "name": "updateOperatorsForQuorum",
381
+ "inputs": [
382
+ {
383
+ "name": "operatorsPerQuorum",
384
+ "type": "address[][]",
385
+ "internalType": "address[][]"
386
+ },
387
+ {
388
+ "name": "",
389
+ "type": "bytes",
390
+ "internalType": "bytes"
391
+ }
392
+ ],
393
+ "outputs": [],
394
+ "stateMutability": "nonpayable"
395
+ },
396
+ {
397
+ "type": "function",
398
+ "name": "updateQuorumConfig",
399
+ "inputs": [
400
+ {
401
+ "name": "_quorum",
402
+ "type": "tuple",
403
+ "internalType": "struct Quorum",
404
+ "components": [
405
+ {
406
+ "name": "strategies",
407
+ "type": "tuple[]",
408
+ "internalType": "struct StrategyParams[]",
409
+ "components": [
410
+ {
411
+ "name": "strategy",
412
+ "type": "address",
413
+ "internalType": "contract IStrategy"
414
+ },
415
+ {
416
+ "name": "multiplier",
417
+ "type": "uint96",
418
+ "internalType": "uint96"
419
+ }
420
+ ]
421
+ }
422
+ ]
423
+ },
424
+ {
425
+ "name": "_operators",
426
+ "type": "address[]",
427
+ "internalType": "address[]"
428
+ }
429
+ ],
430
+ "outputs": [],
431
+ "stateMutability": "nonpayable"
432
+ },
433
+ {
434
+ "type": "function",
435
+ "name": "updateStakeThreshold",
436
+ "inputs": [
437
+ {
438
+ "name": "_thresholdWeight",
439
+ "type": "uint256",
440
+ "internalType": "uint256"
441
+ }
442
+ ],
443
+ "outputs": [],
444
+ "stateMutability": "nonpayable"
445
+ },
446
+ {
447
+ "type": "event",
448
+ "name": "Initialized",
449
+ "inputs": [
450
+ {
451
+ "name": "version",
452
+ "type": "uint8",
453
+ "indexed": false,
454
+ "internalType": "uint8"
455
+ }
456
+ ],
457
+ "anonymous": false
458
+ },
459
+ {
460
+ "type": "event",
461
+ "name": "MinimumWeightUpdated",
462
+ "inputs": [
463
+ {
464
+ "name": "_old",
465
+ "type": "uint256",
466
+ "indexed": false,
467
+ "internalType": "uint256"
468
+ },
469
+ {
470
+ "name": "_new",
471
+ "type": "uint256",
472
+ "indexed": false,
473
+ "internalType": "uint256"
474
+ }
475
+ ],
476
+ "anonymous": false
477
+ },
478
+ {
479
+ "type": "event",
480
+ "name": "OperatorDeregistered",
481
+ "inputs": [
482
+ {
483
+ "name": "_operator",
484
+ "type": "address",
485
+ "indexed": true,
486
+ "internalType": "address"
487
+ },
488
+ {
489
+ "name": "_avs",
490
+ "type": "address",
491
+ "indexed": true,
492
+ "internalType": "address"
493
+ }
494
+ ],
495
+ "anonymous": false
496
+ },
497
+ {
498
+ "type": "event",
499
+ "name": "OperatorRegistered",
500
+ "inputs": [
501
+ {
502
+ "name": "_operator",
503
+ "type": "address",
504
+ "indexed": true,
505
+ "internalType": "address"
506
+ },
507
+ {
508
+ "name": "_avs",
509
+ "type": "address",
510
+ "indexed": true,
511
+ "internalType": "address"
512
+ }
513
+ ],
514
+ "anonymous": false
515
+ },
516
+ {
517
+ "type": "event",
518
+ "name": "OperatorWeightUpdated",
519
+ "inputs": [
520
+ {
521
+ "name": "_operator",
522
+ "type": "address",
523
+ "indexed": true,
524
+ "internalType": "address"
525
+ },
526
+ {
527
+ "name": "oldWeight",
528
+ "type": "uint256",
529
+ "indexed": false,
530
+ "internalType": "uint256"
531
+ },
532
+ {
533
+ "name": "newWeight",
534
+ "type": "uint256",
535
+ "indexed": false,
536
+ "internalType": "uint256"
537
+ }
538
+ ],
539
+ "anonymous": false
540
+ },
541
+ {
542
+ "type": "event",
543
+ "name": "OwnershipTransferred",
544
+ "inputs": [
545
+ {
546
+ "name": "previousOwner",
547
+ "type": "address",
548
+ "indexed": true,
549
+ "internalType": "address"
550
+ },
551
+ {
552
+ "name": "newOwner",
553
+ "type": "address",
554
+ "indexed": true,
555
+ "internalType": "address"
556
+ }
557
+ ],
558
+ "anonymous": false
559
+ },
560
+ {
561
+ "type": "event",
562
+ "name": "QuorumUpdated",
563
+ "inputs": [
564
+ {
565
+ "name": "_old",
566
+ "type": "tuple",
567
+ "indexed": false,
568
+ "internalType": "struct Quorum",
569
+ "components": [
570
+ {
571
+ "name": "strategies",
572
+ "type": "tuple[]",
573
+ "internalType": "struct StrategyParams[]",
574
+ "components": [
575
+ {
576
+ "name": "strategy",
577
+ "type": "address",
578
+ "internalType": "contract IStrategy"
579
+ },
580
+ {
581
+ "name": "multiplier",
582
+ "type": "uint96",
583
+ "internalType": "uint96"
584
+ }
585
+ ]
586
+ }
587
+ ]
588
+ },
589
+ {
590
+ "name": "_new",
591
+ "type": "tuple",
592
+ "indexed": false,
593
+ "internalType": "struct Quorum",
594
+ "components": [
595
+ {
596
+ "name": "strategies",
597
+ "type": "tuple[]",
598
+ "internalType": "struct StrategyParams[]",
599
+ "components": [
600
+ {
601
+ "name": "strategy",
602
+ "type": "address",
603
+ "internalType": "contract IStrategy"
604
+ },
605
+ {
606
+ "name": "multiplier",
607
+ "type": "uint96",
608
+ "internalType": "uint96"
609
+ }
610
+ ]
611
+ }
612
+ ]
613
+ }
614
+ ],
615
+ "anonymous": false
616
+ },
617
+ {
618
+ "type": "event",
619
+ "name": "ThresholdWeightUpdated",
620
+ "inputs": [
621
+ {
622
+ "name": "_thresholdWeight",
623
+ "type": "uint256",
624
+ "indexed": false,
625
+ "internalType": "uint256"
626
+ }
627
+ ],
628
+ "anonymous": false
629
+ },
630
+ {
631
+ "type": "event",
632
+ "name": "TotalWeightUpdated",
633
+ "inputs": [
634
+ {
635
+ "name": "oldTotalWeight",
636
+ "type": "uint256",
637
+ "indexed": false,
638
+ "internalType": "uint256"
639
+ },
640
+ {
641
+ "name": "newTotalWeight",
642
+ "type": "uint256",
643
+ "indexed": false,
644
+ "internalType": "uint256"
645
+ }
646
+ ],
647
+ "anonymous": false
648
+ },
649
+ {
650
+ "type": "event",
651
+ "name": "UpdateMinimumWeight",
652
+ "inputs": [
653
+ {
654
+ "name": "oldMinimumWeight",
655
+ "type": "uint256",
656
+ "indexed": false,
657
+ "internalType": "uint256"
658
+ },
659
+ {
660
+ "name": "newMinimumWeight",
661
+ "type": "uint256",
662
+ "indexed": false,
663
+ "internalType": "uint256"
664
+ }
665
+ ],
666
+ "anonymous": false
667
+ },
668
+ {
669
+ "type": "error",
670
+ "name": "InsufficientSignedStake",
671
+ "inputs": []
672
+ },
673
+ {
674
+ "type": "error",
675
+ "name": "InsufficientWeight",
676
+ "inputs": []
677
+ },
678
+ {
679
+ "type": "error",
680
+ "name": "InvalidLength",
681
+ "inputs": []
682
+ },
683
+ {
684
+ "type": "error",
685
+ "name": "InvalidQuorum",
686
+ "inputs": []
687
+ },
688
+ {
689
+ "type": "error",
690
+ "name": "InvalidSignature",
691
+ "inputs": []
692
+ },
693
+ {
694
+ "type": "error",
695
+ "name": "InvalidSignedWeight",
696
+ "inputs": []
697
+ },
698
+ {
699
+ "type": "error",
700
+ "name": "InvalidThreshold",
701
+ "inputs": []
702
+ },
703
+ {
704
+ "type": "error",
705
+ "name": "LengthMismatch",
706
+ "inputs": []
707
+ },
708
+ {
709
+ "type": "error",
710
+ "name": "MustUpdateAllOperators",
711
+ "inputs": []
712
+ },
713
+ {
714
+ "type": "error",
715
+ "name": "NotSorted",
716
+ "inputs": []
717
+ },
718
+ {
719
+ "type": "error",
720
+ "name": "OperatorAlreadyRegistered",
721
+ "inputs": []
722
+ },
723
+ {
724
+ "type": "error",
725
+ "name": "OperatorNotRegistered",
726
+ "inputs": []
727
+ }
728
+ ];
729
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnaXN0cnlBQkkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXZzL2FiaXMvcmVnaXN0cnlBQkkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQWEsUUFBQSxXQUFXLEdBQUc7SUFDMUI7UUFDQyxNQUFNLEVBQUUsYUFBYTtRQUNyQixRQUFRLEVBQUU7WUFDVDtnQkFDQyxNQUFNLEVBQUUsb0JBQW9CO2dCQUM1QixNQUFNLEVBQUUsU0FBUztnQkFDakIsY0FBYyxFQUFFLDZCQUE2QjthQUM3QztTQUNEO1FBQ0QsaUJBQWlCLEVBQUUsWUFBWTtLQUMvQjtJQUNEO1FBQ0MsTUFBTSxFQUFFLFVBQVU7UUFDbEIsTUFBTSxFQUFFLG9CQUFvQjtRQUM1QixRQUFRLEVBQUUsRUFBRTtRQUNaLFNBQVMsRUFBRSxFQUFFO1FBQ2IsaUJBQWlCLEVBQUUsWUFBWTtLQUMvQjtJQUNEO1FBQ0MsTUFBTSxFQUFFLFVBQVU7UUFDbEIsTUFBTSxFQUFFLGlDQUFpQztRQUN6QyxRQUFRLEVBQUU7WUFDVDtnQkFDQyxNQUFNLEVBQUUsV0FBVztnQkFDbkIsTUFBTSxFQUFFLFNBQVM7Z0JBQ2pCLGNBQWMsRUFBRSxTQUFTO2FBQ3pCO1NBQ0Q7UUFDRCxTQUFTLEVBQUU7WUFDVjtnQkFDQyxNQUFNLEVBQUUsRUFBRTtnQkFDVixNQUFNLEVBQUUsU0FBUztnQkFDakIsY0FBYyxFQUFFLFNBQVM7YUFDekI7U0FDRDtRQUNELGlCQUFpQixFQUFFLE1BQU07S0FDekI7SUFDRDtRQUNDLE1BQU0sRUFBRSxVQUFVO1FBQ2xCLE1BQU0sRUFBRSxrQ0FBa0M7UUFDMUMsUUFBUSxFQUFFLEVBQUU7UUFDWixTQUFTLEVBQUU7WUFDVjtnQkFDQyxNQUFNLEVBQUUsRUFBRTtnQkFDVixNQUFNLEVBQUUsU0FBUztnQkFDakIsY0FBYyxFQUFFLFNBQVM7YUFDekI7U0FDRDtRQUNELGlCQUFpQixFQUFFLE1BQU07S0FDekI7SUFDRDtRQUNDLE1BQU0sRUFB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