@reclaimprotocol/attestor-core 5.0.1-beta.2 → 5.0.1-beta.21

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