@cofhe/mock-contracts 0.0.0-alpha-20260409113701

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.
@@ -0,0 +1,3193 @@
1
+ import { DeferredTopicFilter, EventFragment, EventLog, TransactionRequest, Typed, ContractTransactionResponse, FunctionFragment, ContractTransaction, LogDescription, BaseContract, ContractRunner, Interface, BigNumberish, AddressLike, BytesLike, Result, Listener, ContractMethod } from 'ethers';
2
+
3
+ type MockArtifact = {
4
+ contractName: string;
5
+ abi: any;
6
+ } & ({
7
+ isFixed: true;
8
+ fixedAddress: string;
9
+ deployedBytecode: string;
10
+ } | {
11
+ isFixed: false;
12
+ bytecode: string;
13
+ });
14
+
15
+ declare const MockTaskManagerArtifact: {
16
+ readonly contractName: "MockTaskManager";
17
+ readonly isFixed: true;
18
+ readonly fixedAddress: "0xeA30c4B8b44078Bbf8a6ef5b9f1eC1626C7848D9";
19
+ readonly abi: readonly [{
20
+ readonly type: "constructor";
21
+ readonly inputs: readonly [];
22
+ readonly stateMutability: "nonpayable";
23
+ }, {
24
+ readonly type: "function";
25
+ readonly name: "MOCK_logAllow";
26
+ readonly inputs: readonly [{
27
+ readonly name: "operation";
28
+ readonly type: "string";
29
+ readonly internalType: "string";
30
+ }, {
31
+ readonly name: "ctHash";
32
+ readonly type: "uint256";
33
+ readonly internalType: "uint256";
34
+ }, {
35
+ readonly name: "account";
36
+ readonly type: "address";
37
+ readonly internalType: "address";
38
+ }];
39
+ readonly outputs: readonly [];
40
+ readonly stateMutability: "view";
41
+ }, {
42
+ readonly type: "function";
43
+ readonly name: "MOCK_setInEuintKey";
44
+ readonly inputs: readonly [{
45
+ readonly name: "ctHash";
46
+ readonly type: "uint256";
47
+ readonly internalType: "uint256";
48
+ }, {
49
+ readonly name: "value";
50
+ readonly type: "uint256";
51
+ readonly internalType: "uint256";
52
+ }];
53
+ readonly outputs: readonly [];
54
+ readonly stateMutability: "nonpayable";
55
+ }, {
56
+ readonly type: "function";
57
+ readonly name: "acl";
58
+ readonly inputs: readonly [];
59
+ readonly outputs: readonly [{
60
+ readonly name: "";
61
+ readonly type: "address";
62
+ readonly internalType: "contract MockACL";
63
+ }];
64
+ readonly stateMutability: "view";
65
+ }, {
66
+ readonly type: "function";
67
+ readonly name: "aggregator";
68
+ readonly inputs: readonly [];
69
+ readonly outputs: readonly [{
70
+ readonly name: "";
71
+ readonly type: "address";
72
+ readonly internalType: "address";
73
+ }];
74
+ readonly stateMutability: "view";
75
+ }, {
76
+ readonly type: "function";
77
+ readonly name: "allow";
78
+ readonly inputs: readonly [{
79
+ readonly name: "ctHash";
80
+ readonly type: "uint256";
81
+ readonly internalType: "uint256";
82
+ }, {
83
+ readonly name: "account";
84
+ readonly type: "address";
85
+ readonly internalType: "address";
86
+ }];
87
+ readonly outputs: readonly [];
88
+ readonly stateMutability: "nonpayable";
89
+ }, {
90
+ readonly type: "function";
91
+ readonly name: "allowForDecryption";
92
+ readonly inputs: readonly [{
93
+ readonly name: "ctHash";
94
+ readonly type: "uint256";
95
+ readonly internalType: "uint256";
96
+ }];
97
+ readonly outputs: readonly [];
98
+ readonly stateMutability: "nonpayable";
99
+ }, {
100
+ readonly type: "function";
101
+ readonly name: "allowGlobal";
102
+ readonly inputs: readonly [{
103
+ readonly name: "ctHash";
104
+ readonly type: "uint256";
105
+ readonly internalType: "uint256";
106
+ }];
107
+ readonly outputs: readonly [];
108
+ readonly stateMutability: "nonpayable";
109
+ }, {
110
+ readonly type: "function";
111
+ readonly name: "allowTransient";
112
+ readonly inputs: readonly [{
113
+ readonly name: "ctHash";
114
+ readonly type: "uint256";
115
+ readonly internalType: "uint256";
116
+ }, {
117
+ readonly name: "account";
118
+ readonly type: "address";
119
+ readonly internalType: "address";
120
+ }];
121
+ readonly outputs: readonly [];
122
+ readonly stateMutability: "nonpayable";
123
+ }, {
124
+ readonly type: "function";
125
+ readonly name: "createDecryptTask";
126
+ readonly inputs: readonly [{
127
+ readonly name: "ctHash";
128
+ readonly type: "uint256";
129
+ readonly internalType: "uint256";
130
+ }, {
131
+ readonly name: "";
132
+ readonly type: "address";
133
+ readonly internalType: "address";
134
+ }];
135
+ readonly outputs: readonly [];
136
+ readonly stateMutability: "nonpayable";
137
+ }, {
138
+ readonly type: "function";
139
+ readonly name: "createRandomTask";
140
+ readonly inputs: readonly [{
141
+ readonly name: "returnType";
142
+ readonly type: "uint8";
143
+ readonly internalType: "uint8";
144
+ }, {
145
+ readonly name: "seed";
146
+ readonly type: "uint256";
147
+ readonly internalType: "uint256";
148
+ }, {
149
+ readonly name: "securityZone";
150
+ readonly type: "int32";
151
+ readonly internalType: "int32";
152
+ }];
153
+ readonly outputs: readonly [{
154
+ readonly name: "";
155
+ readonly type: "uint256";
156
+ readonly internalType: "uint256";
157
+ }];
158
+ readonly stateMutability: "nonpayable";
159
+ }, {
160
+ readonly type: "function";
161
+ readonly name: "createTask";
162
+ readonly inputs: readonly [{
163
+ readonly name: "returnType";
164
+ readonly type: "uint8";
165
+ readonly internalType: "uint8";
166
+ }, {
167
+ readonly name: "funcId";
168
+ readonly type: "uint8";
169
+ readonly internalType: "enum FunctionId";
170
+ }, {
171
+ readonly name: "encryptedHashes";
172
+ readonly type: "uint256[]";
173
+ readonly internalType: "uint256[]";
174
+ }, {
175
+ readonly name: "extraInputs";
176
+ readonly type: "uint256[]";
177
+ readonly internalType: "uint256[]";
178
+ }];
179
+ readonly outputs: readonly [{
180
+ readonly name: "";
181
+ readonly type: "uint256";
182
+ readonly internalType: "uint256";
183
+ }];
184
+ readonly stateMutability: "nonpayable";
185
+ }, {
186
+ readonly type: "function";
187
+ readonly name: "decryptResultSigner";
188
+ readonly inputs: readonly [];
189
+ readonly outputs: readonly [{
190
+ readonly name: "";
191
+ readonly type: "address";
192
+ readonly internalType: "address";
193
+ }];
194
+ readonly stateMutability: "view";
195
+ }, {
196
+ readonly type: "function";
197
+ readonly name: "exists";
198
+ readonly inputs: readonly [];
199
+ readonly outputs: readonly [{
200
+ readonly name: "";
201
+ readonly type: "bool";
202
+ readonly internalType: "bool";
203
+ }];
204
+ readonly stateMutability: "pure";
205
+ }, {
206
+ readonly type: "function";
207
+ readonly name: "getDecryptResult";
208
+ readonly inputs: readonly [{
209
+ readonly name: "ctHash";
210
+ readonly type: "uint256";
211
+ readonly internalType: "uint256";
212
+ }];
213
+ readonly outputs: readonly [{
214
+ readonly name: "";
215
+ readonly type: "uint256";
216
+ readonly internalType: "uint256";
217
+ }];
218
+ readonly stateMutability: "view";
219
+ }, {
220
+ readonly type: "function";
221
+ readonly name: "getDecryptResultSafe";
222
+ readonly inputs: readonly [{
223
+ readonly name: "ctHash";
224
+ readonly type: "uint256";
225
+ readonly internalType: "uint256";
226
+ }];
227
+ readonly outputs: readonly [{
228
+ readonly name: "result";
229
+ readonly type: "uint256";
230
+ readonly internalType: "uint256";
231
+ }, {
232
+ readonly name: "decrypted";
233
+ readonly type: "bool";
234
+ readonly internalType: "bool";
235
+ }];
236
+ readonly stateMutability: "view";
237
+ }, {
238
+ readonly type: "function";
239
+ readonly name: "handleDecryptResult";
240
+ readonly inputs: readonly [{
241
+ readonly name: "ctHash";
242
+ readonly type: "uint256";
243
+ readonly internalType: "uint256";
244
+ }, {
245
+ readonly name: "result";
246
+ readonly type: "uint256";
247
+ readonly internalType: "uint256";
248
+ }, {
249
+ readonly name: "";
250
+ readonly type: "address[]";
251
+ readonly internalType: "address[]";
252
+ }];
253
+ readonly outputs: readonly [];
254
+ readonly stateMutability: "nonpayable";
255
+ }, {
256
+ readonly type: "function";
257
+ readonly name: "handleError";
258
+ readonly inputs: readonly [{
259
+ readonly name: "ctHash";
260
+ readonly type: "uint256";
261
+ readonly internalType: "uint256";
262
+ }, {
263
+ readonly name: "operation";
264
+ readonly type: "string";
265
+ readonly internalType: "string";
266
+ }, {
267
+ readonly name: "errorMessage";
268
+ readonly type: "string";
269
+ readonly internalType: "string";
270
+ }];
271
+ readonly outputs: readonly [];
272
+ readonly stateMutability: "nonpayable";
273
+ }, {
274
+ readonly type: "function";
275
+ readonly name: "inMockStorage";
276
+ readonly inputs: readonly [{
277
+ readonly name: "";
278
+ readonly type: "uint256";
279
+ readonly internalType: "uint256";
280
+ }];
281
+ readonly outputs: readonly [{
282
+ readonly name: "";
283
+ readonly type: "bool";
284
+ readonly internalType: "bool";
285
+ }];
286
+ readonly stateMutability: "view";
287
+ }, {
288
+ readonly type: "function";
289
+ readonly name: "initialize";
290
+ readonly inputs: readonly [{
291
+ readonly name: "initialOwner";
292
+ readonly type: "address";
293
+ readonly internalType: "address";
294
+ }];
295
+ readonly outputs: readonly [];
296
+ readonly stateMutability: "nonpayable";
297
+ }, {
298
+ readonly type: "function";
299
+ readonly name: "isAllowed";
300
+ readonly inputs: readonly [{
301
+ readonly name: "ctHash";
302
+ readonly type: "uint256";
303
+ readonly internalType: "uint256";
304
+ }, {
305
+ readonly name: "account";
306
+ readonly type: "address";
307
+ readonly internalType: "address";
308
+ }];
309
+ readonly outputs: readonly [{
310
+ readonly name: "";
311
+ readonly type: "bool";
312
+ readonly internalType: "bool";
313
+ }];
314
+ readonly stateMutability: "view";
315
+ }, {
316
+ readonly type: "function";
317
+ readonly name: "isAllowedWithPermission";
318
+ readonly inputs: readonly [{
319
+ readonly name: "permission";
320
+ readonly type: "tuple";
321
+ readonly internalType: "struct Permission";
322
+ readonly components: readonly [{
323
+ readonly name: "issuer";
324
+ readonly type: "address";
325
+ readonly internalType: "address";
326
+ }, {
327
+ readonly name: "expiration";
328
+ readonly type: "uint64";
329
+ readonly internalType: "uint64";
330
+ }, {
331
+ readonly name: "recipient";
332
+ readonly type: "address";
333
+ readonly internalType: "address";
334
+ }, {
335
+ readonly name: "validatorId";
336
+ readonly type: "uint256";
337
+ readonly internalType: "uint256";
338
+ }, {
339
+ readonly name: "validatorContract";
340
+ readonly type: "address";
341
+ readonly internalType: "address";
342
+ }, {
343
+ readonly name: "sealingKey";
344
+ readonly type: "bytes32";
345
+ readonly internalType: "bytes32";
346
+ }, {
347
+ readonly name: "issuerSignature";
348
+ readonly type: "bytes";
349
+ readonly internalType: "bytes";
350
+ }, {
351
+ readonly name: "recipientSignature";
352
+ readonly type: "bytes";
353
+ readonly internalType: "bytes";
354
+ }];
355
+ }, {
356
+ readonly name: "handle";
357
+ readonly type: "uint256";
358
+ readonly internalType: "uint256";
359
+ }];
360
+ readonly outputs: readonly [{
361
+ readonly name: "";
362
+ readonly type: "bool";
363
+ readonly internalType: "bool";
364
+ }];
365
+ readonly stateMutability: "view";
366
+ }, {
367
+ readonly type: "function";
368
+ readonly name: "isInitialized";
369
+ readonly inputs: readonly [];
370
+ readonly outputs: readonly [{
371
+ readonly name: "";
372
+ readonly type: "bool";
373
+ readonly internalType: "bool";
374
+ }];
375
+ readonly stateMutability: "view";
376
+ }, {
377
+ readonly type: "function";
378
+ readonly name: "isPubliclyAllowed";
379
+ readonly inputs: readonly [{
380
+ readonly name: "ctHash";
381
+ readonly type: "uint256";
382
+ readonly internalType: "uint256";
383
+ }];
384
+ readonly outputs: readonly [{
385
+ readonly name: "";
386
+ readonly type: "bool";
387
+ readonly internalType: "bool";
388
+ }];
389
+ readonly stateMutability: "view";
390
+ }, {
391
+ readonly type: "function";
392
+ readonly name: "logOps";
393
+ readonly inputs: readonly [];
394
+ readonly outputs: readonly [{
395
+ readonly name: "";
396
+ readonly type: "bool";
397
+ readonly internalType: "bool";
398
+ }];
399
+ readonly stateMutability: "view";
400
+ }, {
401
+ readonly type: "function";
402
+ readonly name: "mockStorage";
403
+ readonly inputs: readonly [{
404
+ readonly name: "";
405
+ readonly type: "uint256";
406
+ readonly internalType: "uint256";
407
+ }];
408
+ readonly outputs: readonly [{
409
+ readonly name: "";
410
+ readonly type: "uint256";
411
+ readonly internalType: "uint256";
412
+ }];
413
+ readonly stateMutability: "view";
414
+ }, {
415
+ readonly type: "function";
416
+ readonly name: "publishDecryptResult";
417
+ readonly inputs: readonly [{
418
+ readonly name: "ctHash";
419
+ readonly type: "uint256";
420
+ readonly internalType: "uint256";
421
+ }, {
422
+ readonly name: "result";
423
+ readonly type: "uint256";
424
+ readonly internalType: "uint256";
425
+ }, {
426
+ readonly name: "signature";
427
+ readonly type: "bytes";
428
+ readonly internalType: "bytes";
429
+ }];
430
+ readonly outputs: readonly [];
431
+ readonly stateMutability: "nonpayable";
432
+ }, {
433
+ readonly type: "function";
434
+ readonly name: "publishDecryptResultBatch";
435
+ readonly inputs: readonly [{
436
+ readonly name: "ctHashes";
437
+ readonly type: "uint256[]";
438
+ readonly internalType: "uint256[]";
439
+ }, {
440
+ readonly name: "results";
441
+ readonly type: "uint256[]";
442
+ readonly internalType: "uint256[]";
443
+ }, {
444
+ readonly name: "signatures";
445
+ readonly type: "bytes[]";
446
+ readonly internalType: "bytes[]";
447
+ }];
448
+ readonly outputs: readonly [];
449
+ readonly stateMutability: "nonpayable";
450
+ }, {
451
+ readonly type: "function";
452
+ readonly name: "removeFirstLetter";
453
+ readonly inputs: readonly [{
454
+ readonly name: "str";
455
+ readonly type: "string";
456
+ readonly internalType: "string";
457
+ }];
458
+ readonly outputs: readonly [{
459
+ readonly name: "";
460
+ readonly type: "string";
461
+ readonly internalType: "string";
462
+ }];
463
+ readonly stateMutability: "pure";
464
+ }, {
465
+ readonly type: "function";
466
+ readonly name: "setACLContract";
467
+ readonly inputs: readonly [{
468
+ readonly name: "_aclAddress";
469
+ readonly type: "address";
470
+ readonly internalType: "address";
471
+ }];
472
+ readonly outputs: readonly [];
473
+ readonly stateMutability: "nonpayable";
474
+ }, {
475
+ readonly type: "function";
476
+ readonly name: "setAggregator";
477
+ readonly inputs: readonly [{
478
+ readonly name: "_aggregatorAddress";
479
+ readonly type: "address";
480
+ readonly internalType: "address";
481
+ }];
482
+ readonly outputs: readonly [];
483
+ readonly stateMutability: "nonpayable";
484
+ }, {
485
+ readonly type: "function";
486
+ readonly name: "setDecryptResultSigner";
487
+ readonly inputs: readonly [{
488
+ readonly name: "signer";
489
+ readonly type: "address";
490
+ readonly internalType: "address";
491
+ }];
492
+ readonly outputs: readonly [];
493
+ readonly stateMutability: "nonpayable";
494
+ }, {
495
+ readonly type: "function";
496
+ readonly name: "setLogOps";
497
+ readonly inputs: readonly [{
498
+ readonly name: "_logOps";
499
+ readonly type: "bool";
500
+ readonly internalType: "bool";
501
+ }];
502
+ readonly outputs: readonly [];
503
+ readonly stateMutability: "nonpayable";
504
+ }, {
505
+ readonly type: "function";
506
+ readonly name: "setSecurityZoneMax";
507
+ readonly inputs: readonly [{
508
+ readonly name: "securityZone";
509
+ readonly type: "int32";
510
+ readonly internalType: "int32";
511
+ }];
512
+ readonly outputs: readonly [];
513
+ readonly stateMutability: "nonpayable";
514
+ }, {
515
+ readonly type: "function";
516
+ readonly name: "setSecurityZoneMin";
517
+ readonly inputs: readonly [{
518
+ readonly name: "securityZone";
519
+ readonly type: "int32";
520
+ readonly internalType: "int32";
521
+ }];
522
+ readonly outputs: readonly [];
523
+ readonly stateMutability: "nonpayable";
524
+ }, {
525
+ readonly type: "function";
526
+ readonly name: "setSecurityZones";
527
+ readonly inputs: readonly [{
528
+ readonly name: "minSZ";
529
+ readonly type: "int32";
530
+ readonly internalType: "int32";
531
+ }, {
532
+ readonly name: "maxSZ";
533
+ readonly type: "int32";
534
+ readonly internalType: "int32";
535
+ }];
536
+ readonly outputs: readonly [];
537
+ readonly stateMutability: "nonpayable";
538
+ }, {
539
+ readonly type: "function";
540
+ readonly name: "setVerifierSigner";
541
+ readonly inputs: readonly [{
542
+ readonly name: "signer";
543
+ readonly type: "address";
544
+ readonly internalType: "address";
545
+ }];
546
+ readonly outputs: readonly [];
547
+ readonly stateMutability: "nonpayable";
548
+ }, {
549
+ readonly type: "function";
550
+ readonly name: "sliceString";
551
+ readonly inputs: readonly [{
552
+ readonly name: "str";
553
+ readonly type: "string";
554
+ readonly internalType: "string";
555
+ }, {
556
+ readonly name: "start";
557
+ readonly type: "uint256";
558
+ readonly internalType: "uint256";
559
+ }, {
560
+ readonly name: "length";
561
+ readonly type: "uint256";
562
+ readonly internalType: "uint256";
563
+ }];
564
+ readonly outputs: readonly [{
565
+ readonly name: "";
566
+ readonly type: "string";
567
+ readonly internalType: "string";
568
+ }];
569
+ readonly stateMutability: "pure";
570
+ }, {
571
+ readonly type: "function";
572
+ readonly name: "verifyDecryptResult";
573
+ readonly inputs: readonly [{
574
+ readonly name: "ctHash";
575
+ readonly type: "uint256";
576
+ readonly internalType: "uint256";
577
+ }, {
578
+ readonly name: "result";
579
+ readonly type: "uint256";
580
+ readonly internalType: "uint256";
581
+ }, {
582
+ readonly name: "signature";
583
+ readonly type: "bytes";
584
+ readonly internalType: "bytes";
585
+ }];
586
+ readonly outputs: readonly [{
587
+ readonly name: "";
588
+ readonly type: "bool";
589
+ readonly internalType: "bool";
590
+ }];
591
+ readonly stateMutability: "view";
592
+ }, {
593
+ readonly type: "function";
594
+ readonly name: "verifyDecryptResultSafe";
595
+ readonly inputs: readonly [{
596
+ readonly name: "ctHash";
597
+ readonly type: "uint256";
598
+ readonly internalType: "uint256";
599
+ }, {
600
+ readonly name: "result";
601
+ readonly type: "uint256";
602
+ readonly internalType: "uint256";
603
+ }, {
604
+ readonly name: "signature";
605
+ readonly type: "bytes";
606
+ readonly internalType: "bytes";
607
+ }];
608
+ readonly outputs: readonly [{
609
+ readonly name: "";
610
+ readonly type: "bool";
611
+ readonly internalType: "bool";
612
+ }];
613
+ readonly stateMutability: "view";
614
+ }, {
615
+ readonly type: "function";
616
+ readonly name: "verifyInput";
617
+ readonly inputs: readonly [{
618
+ readonly name: "input";
619
+ readonly type: "tuple";
620
+ readonly internalType: "struct EncryptedInput";
621
+ readonly components: readonly [{
622
+ readonly name: "ctHash";
623
+ readonly type: "uint256";
624
+ readonly internalType: "uint256";
625
+ }, {
626
+ readonly name: "securityZone";
627
+ readonly type: "uint8";
628
+ readonly internalType: "uint8";
629
+ }, {
630
+ readonly name: "utype";
631
+ readonly type: "uint8";
632
+ readonly internalType: "uint8";
633
+ }, {
634
+ readonly name: "signature";
635
+ readonly type: "bytes";
636
+ readonly internalType: "bytes";
637
+ }];
638
+ }, {
639
+ readonly name: "sender";
640
+ readonly type: "address";
641
+ readonly internalType: "address";
642
+ }];
643
+ readonly outputs: readonly [{
644
+ readonly name: "";
645
+ readonly type: "uint256";
646
+ readonly internalType: "uint256";
647
+ }];
648
+ readonly stateMutability: "nonpayable";
649
+ }, {
650
+ readonly type: "event";
651
+ readonly name: "DecryptionResult";
652
+ readonly inputs: readonly [{
653
+ readonly name: "ctHash";
654
+ readonly type: "uint256";
655
+ readonly indexed: false;
656
+ readonly internalType: "uint256";
657
+ }, {
658
+ readonly name: "result";
659
+ readonly type: "uint256";
660
+ readonly indexed: false;
661
+ readonly internalType: "uint256";
662
+ }, {
663
+ readonly name: "requestor";
664
+ readonly type: "address";
665
+ readonly indexed: true;
666
+ readonly internalType: "address";
667
+ }];
668
+ readonly anonymous: false;
669
+ }, {
670
+ readonly type: "event";
671
+ readonly name: "ProtocolNotification";
672
+ readonly inputs: readonly [{
673
+ readonly name: "ctHash";
674
+ readonly type: "uint256";
675
+ readonly indexed: false;
676
+ readonly internalType: "uint256";
677
+ }, {
678
+ readonly name: "operation";
679
+ readonly type: "string";
680
+ readonly indexed: false;
681
+ readonly internalType: "string";
682
+ }, {
683
+ readonly name: "errorMessage";
684
+ readonly type: "string";
685
+ readonly indexed: false;
686
+ readonly internalType: "string";
687
+ }];
688
+ readonly anonymous: false;
689
+ }, {
690
+ readonly type: "event";
691
+ readonly name: "TaskCreated";
692
+ readonly inputs: readonly [{
693
+ readonly name: "ctHash";
694
+ readonly type: "uint256";
695
+ readonly indexed: false;
696
+ readonly internalType: "uint256";
697
+ }, {
698
+ readonly name: "operation";
699
+ readonly type: "string";
700
+ readonly indexed: false;
701
+ readonly internalType: "string";
702
+ }, {
703
+ readonly name: "input1";
704
+ readonly type: "uint256";
705
+ readonly indexed: false;
706
+ readonly internalType: "uint256";
707
+ }, {
708
+ readonly name: "input2";
709
+ readonly type: "uint256";
710
+ readonly indexed: false;
711
+ readonly internalType: "uint256";
712
+ }, {
713
+ readonly name: "input3";
714
+ readonly type: "uint256";
715
+ readonly indexed: false;
716
+ readonly internalType: "uint256";
717
+ }];
718
+ readonly anonymous: false;
719
+ }, {
720
+ readonly type: "error";
721
+ readonly name: "ACLNotAllowed";
722
+ readonly inputs: readonly [{
723
+ readonly name: "handle";
724
+ readonly type: "uint256";
725
+ readonly internalType: "uint256";
726
+ }, {
727
+ readonly name: "account";
728
+ readonly type: "address";
729
+ readonly internalType: "address";
730
+ }];
731
+ }, {
732
+ readonly type: "error";
733
+ readonly name: "DecryptionResultNotReady";
734
+ readonly inputs: readonly [{
735
+ readonly name: "ctHash";
736
+ readonly type: "uint256";
737
+ readonly internalType: "uint256";
738
+ }];
739
+ }, {
740
+ readonly type: "error";
741
+ readonly name: "ECDSAInvalidSignature";
742
+ readonly inputs: readonly [];
743
+ }, {
744
+ readonly type: "error";
745
+ readonly name: "ECDSAInvalidSignatureLength";
746
+ readonly inputs: readonly [{
747
+ readonly name: "length";
748
+ readonly type: "uint256";
749
+ readonly internalType: "uint256";
750
+ }];
751
+ }, {
752
+ readonly type: "error";
753
+ readonly name: "ECDSAInvalidSignatureS";
754
+ readonly inputs: readonly [{
755
+ readonly name: "s";
756
+ readonly type: "bytes32";
757
+ readonly internalType: "bytes32";
758
+ }];
759
+ }, {
760
+ readonly type: "error";
761
+ readonly name: "InputNotInMockStorage";
762
+ readonly inputs: readonly [{
763
+ readonly name: "ctHash";
764
+ readonly type: "uint256";
765
+ readonly internalType: "uint256";
766
+ }];
767
+ }, {
768
+ readonly type: "error";
769
+ readonly name: "InvalidAddress";
770
+ readonly inputs: readonly [];
771
+ }, {
772
+ readonly type: "error";
773
+ readonly name: "InvalidInputForFunction";
774
+ readonly inputs: readonly [{
775
+ readonly name: "functionName";
776
+ readonly type: "string";
777
+ readonly internalType: "string";
778
+ }, {
779
+ readonly name: "inputType";
780
+ readonly type: "uint8";
781
+ readonly internalType: "uint8";
782
+ }];
783
+ }, {
784
+ readonly type: "error";
785
+ readonly name: "InvalidInputType";
786
+ readonly inputs: readonly [{
787
+ readonly name: "actual";
788
+ readonly type: "uint8";
789
+ readonly internalType: "uint8";
790
+ }, {
791
+ readonly name: "expected";
792
+ readonly type: "uint8";
793
+ readonly internalType: "uint8";
794
+ }];
795
+ }, {
796
+ readonly type: "error";
797
+ readonly name: "InvalidInputsAmount";
798
+ readonly inputs: readonly [{
799
+ readonly name: "operation";
800
+ readonly type: "string";
801
+ readonly internalType: "string";
802
+ }, {
803
+ readonly name: "got";
804
+ readonly type: "uint256";
805
+ readonly internalType: "uint256";
806
+ }, {
807
+ readonly name: "expected";
808
+ readonly type: "uint256";
809
+ readonly internalType: "uint256";
810
+ }];
811
+ }, {
812
+ readonly type: "error";
813
+ readonly name: "InvalidOperationInputs";
814
+ readonly inputs: readonly [{
815
+ readonly name: "operation";
816
+ readonly type: "string";
817
+ readonly internalType: "string";
818
+ }];
819
+ }, {
820
+ readonly type: "error";
821
+ readonly name: "InvalidSecurityZone";
822
+ readonly inputs: readonly [{
823
+ readonly name: "zone";
824
+ readonly type: "int32";
825
+ readonly internalType: "int32";
826
+ }, {
827
+ readonly name: "min";
828
+ readonly type: "int32";
829
+ readonly internalType: "int32";
830
+ }, {
831
+ readonly name: "max";
832
+ readonly type: "int32";
833
+ readonly internalType: "int32";
834
+ }];
835
+ }, {
836
+ readonly type: "error";
837
+ readonly name: "InvalidSignature";
838
+ readonly inputs: readonly [];
839
+ }, {
840
+ readonly type: "error";
841
+ readonly name: "InvalidSigner";
842
+ readonly inputs: readonly [{
843
+ readonly name: "signer";
844
+ readonly type: "address";
845
+ readonly internalType: "address";
846
+ }, {
847
+ readonly name: "expectedSigner";
848
+ readonly type: "address";
849
+ readonly internalType: "address";
850
+ }];
851
+ }, {
852
+ readonly type: "error";
853
+ readonly name: "InvalidThreeInputOperation";
854
+ readonly inputs: readonly [{
855
+ readonly name: "operation";
856
+ readonly type: "string";
857
+ readonly internalType: "string";
858
+ }];
859
+ }, {
860
+ readonly type: "error";
861
+ readonly name: "InvalidTwoInputOperation";
862
+ readonly inputs: readonly [{
863
+ readonly name: "operation";
864
+ readonly type: "string";
865
+ readonly internalType: "string";
866
+ }];
867
+ }, {
868
+ readonly type: "error";
869
+ readonly name: "InvalidTypeOrSecurityZone";
870
+ readonly inputs: readonly [{
871
+ readonly name: "operation";
872
+ readonly type: "string";
873
+ readonly internalType: "string";
874
+ }];
875
+ }, {
876
+ readonly type: "error";
877
+ readonly name: "InvalidUnaryOperation";
878
+ readonly inputs: readonly [{
879
+ readonly name: "operation";
880
+ readonly type: "string";
881
+ readonly internalType: "string";
882
+ }];
883
+ }, {
884
+ readonly type: "error";
885
+ readonly name: "NotImplemented";
886
+ readonly inputs: readonly [];
887
+ }, {
888
+ readonly type: "error";
889
+ readonly name: "OnlyAggregatorAllowed";
890
+ readonly inputs: readonly [{
891
+ readonly name: "caller";
892
+ readonly type: "address";
893
+ readonly internalType: "address";
894
+ }];
895
+ }, {
896
+ readonly type: "error";
897
+ readonly name: "OnlyOwnerAllowed";
898
+ readonly inputs: readonly [{
899
+ readonly name: "caller";
900
+ readonly type: "address";
901
+ readonly internalType: "address";
902
+ }];
903
+ }, {
904
+ readonly type: "error";
905
+ readonly name: "RandomFunctionNotSupported";
906
+ readonly inputs: readonly [];
907
+ }, {
908
+ readonly type: "error";
909
+ readonly name: "StringsInsufficientHexLength";
910
+ readonly inputs: readonly [{
911
+ readonly name: "value";
912
+ readonly type: "uint256";
913
+ readonly internalType: "uint256";
914
+ }, {
915
+ readonly name: "length";
916
+ readonly type: "uint256";
917
+ readonly internalType: "uint256";
918
+ }];
919
+ }, {
920
+ readonly type: "error";
921
+ readonly name: "TooManyInputs";
922
+ readonly inputs: readonly [{
923
+ readonly name: "operation";
924
+ readonly type: "string";
925
+ readonly internalType: "string";
926
+ }, {
927
+ readonly name: "got";
928
+ readonly type: "uint256";
929
+ readonly internalType: "uint256";
930
+ }, {
931
+ readonly name: "maxAllowed";
932
+ readonly type: "uint256";
933
+ readonly internalType: "uint256";
934
+ }];
935
+ }];
936
+ readonly deployedBytecode: "0x608060405234801561000f575f5ffd5b5060043610610246575f3560e01c806365d0509c11610139578063938fb3d9116100b6578063d521ed4b1161007a578063d521ed4b14610717578063de28735914610747578063e68d826f14610765578063f6bc7f3f14610783578063f9120af6146107b357610246565b8063938fb3d914610661578063a307d21d1461067f578063a33b4b0a1461069b578063ae79f04a146106cb578063c4d66de8146106fb57610246565b80638b2b9c23116100fd5780638b2b9c23146105c15780638d9c9c92146105dd5780638db39c8d146105f95780638eef9ae71461061557806392bd6c951461064557610246565b806365d0509c1461050d57806373301651146105295780637e5cf5191461054557806380d55b691461057557806381ba0986146105a557610246565b806327f9c762116101c75780634d7cb0c01161018b5780634d7cb0c014610459578063591363c7146104895780635faa299a146104a55780635fb0bf91146104d5578063642b3f19146104f157610246565b806327f9c762146103a257806334ef1e5a146103d2578063392e53cd146103ee578063458693c91461040c5780634bc982631461043d57610246565b80631d0319311161020e5780631d031931146102fe578063245a7bfc1461032e5780632605ab9f1461034c57806326594a0c14610368578063267c4ae41461038457610246565b8063082898271461024a57806315a486fe1461026657806318683701146102825780631888debd1461029e5780631c76642b146102ce575b5f5ffd5b610264600480360381019061025f9190616823565b6107cf565b005b610280600480360381019061027b9190616861565b610882565b005b61029c60048036038101906102979190616900565b610890565b005b6102b860048036038101906102b39190616b12565b61096b565b6040516102c59190616bbd565b60405180910390f35b6102e860048036038101906102e39190616bd6565b610b0f565b6040516102f59190616bbd565b60405180910390f35b61031860048036038101906103139190616bd6565b610b24565b6040516103259190616c1b565b60405180910390f35b610336610b41565b6040516103439190616c43565b60405180910390f35b61036660048036038101906103619190616c5c565b610b67565b005b610382600480360381019061037d9190616cbd565b610c3b565b005b61038c610d17565b6040516103999190616c1b565b60405180910390f35b6103bc60048036038101906103b79190616e44565b610d1f565b6040516103c99190616bbd565b60405180910390f35b6103ec60048036038101906103e79190616bd6565b610f59565b005b6103f6611033565b6040516104039190616c1b565b60405180910390f35b61042660048036038101906104219190616bd6565b611049565b604051610434929190616e9e565b60405180910390f35b61045760048036038101906104529190616f63565b6110d7565b005b610473600480360381019061046e9190616900565b6111a9565b6040516104809190616c1b565b60405180910390f35b6104a3600480360381019061049e9190616feb565b6111c2565b005b6104bf60048036038101906104ba9190616823565b6112f4565b6040516104cc9190616c1b565b60405180910390f35b6104ef60048036038101906104ea9190616feb565b6113b0565b005b61050b60048036038101906105069190617040565b6114e2565b005b61052760048036038101906105229190616823565b6114fd565b005b610543600480360381019061053e9190617115565b611649565b005b61055f600480360381019061055a91906171c5565b611730565b60405161056c9190617291565b60405180910390f35b61058f600480360381019061058a91906172b1565b611866565b60405161059c9190616bbd565b60405180910390f35b6105bf60048036038101906105ba9190617356565b61189f565b005b6105db60048036038101906105d691906173c7565b6119ad565b005b6105f760048036038101906105f29190616823565b6119bd565b005b610613600480360381019061060e9190616c5c565b611a9a565b005b61062f600480360381019061062a9190616bd6565b611b6e565b60405161063c9190616c1b565b60405180910390f35b61065f600480360381019061065a9190616c5c565b611ba1565b005b610669611cda565b6040516106769190616c43565b60405180910390f35b61069960048036038101906106949190616bd6565b611cff565b005b6106b560048036038101906106b09190616900565b611e47565b6040516106c29190616c1b565b60405180910390f35b6106e560048036038101906106e091906175a2565b611e5f565b6040516106f29190616c1b565b60405180910390f35b61071560048036038101906107109190616c5c565b611f03565b005b610731600480360381019061072c91906175fc565b611fe1565b60405161073e9190617291565b60405180910390f35b61074f6120f6565b60405161075c919061769e565b60405180910390f35b61076d61211b565b60405161077a9190616c1b565b60405180910390f35b61079d60048036038101906107989190616bd6565b61212c565b6040516107aa9190616bbd565b60405180910390f35b6107cd60048036038101906107c89190616c5c565b612188565b005b6107d8826122c2565b600160055f8481526020019081526020015f205f6101000a81548160ff02191690831515021790555061080a826123b1565b60045f8481526020019081526020015f20819055505f6001600a4261082f91906176e4565b6108399190617741565b905080426108479190617774565b60065f8581526020019081526020015f205f6101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550505050565b61088c8282612439565b5050565b61089e848484846001612457565b50600160055f8681526020019081526020015f205f6101000a81548160ff0219169083151502179055508260045f8681526020019081526020015f20819055504260065f8681526020019081526020015f205f6101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055503373ffffffffffffffffffffffffffffffffffffffff167f023b156100bf14eedc41deb8cef114c1fce662c306697f3bfaf3dbca58130bf7858560405161095d9291906177af565b60405180910390a250505050565b5f601b601f8111156109805761097f6177d6565b5b84601f811115610993576109926177d6565b5b036109ca576040517f98e08ab000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f825184516109d99190617741565b90506003811115610a2e576109ed856126b1565b8160036040517f2b0399d5000000000000000000000000000000000000000000000000000000008152600401610a259392919061783c565b60405180910390fd5b610a388486613246565b5f610a4385856134c0565b90505f610a51878787613602565b90505f610a608983858b61366d565b905060085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663484de8228233306040518463ffffffff1660e01b8152600401610ac093929190617878565b5f604051808303815f87803b158015610ad7575f5ffd5b505af1158015610ae9573d5f5f3e3d5ffd5b50505050610b0081610afa8a6126b1565b856137f2565b80945050505050949350505050565b6001602052805f5260405f205f915090505481565b6002602052805f5260405f205f915054906101000a900460ff1681565b600760089054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610bf857336040517f7238ea56000000000000000000000000000000000000000000000000000000008152600401610bef9190616c43565b60405180910390fd5b80600a5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610ccc57336040517f7238ea56000000000000000000000000000000000000000000000000000000008152600401610cc39190616c43565b60405180910390fd5b81600760046101000a81548163ffffffff021916908360030b63ffffffff1602179055508060075f6101000a81548163ffffffff021916908360030b63ffffffff1602179055505050565b5f6001905090565b5f5f836020015160ff1690505f73ffffffffffffffffffffffffffffffffffffffff1660095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ead57610d8881613a47565b610dea5780600760049054906101000a900460030b60075f9054906101000a900460030b6040517f24cbcf36000000000000000000000000000000000000000000000000000000008152600401610de1939291906178bc565b60405180910390fd5b5f610df58585613a88565b905060095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610eab578060095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040517f7ba5ffb5000000000000000000000000000000000000000000000000000000008152600401610ea29291906178f1565b60405180910390fd5b505b5f610ec1855f01518387604001515f613b4c565b905060085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663484de8228233306040518463ffffffff1660e01b8152600401610f2193929190617878565b5f604051808303815f87803b158015610f38575f5ffd5b505af1158015610f4a573d5f5f3e3d5ffd5b50505050809250505092915050565b610f6281613ba5565b6110305760085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663846cd43382336040518363ffffffff1660e01b8152600401610fc2929190617918565b5f604051808303815f87803b158015610fd9575f5ffd5b505af1158015610feb573d5f5f3e3d5ffd5b5050505061102f6040518060400160405280600f81526020017f4648452e616c6c6f77476c6f62616c000000000000000000000000000000000081525082336119ad565b5b50565b5f600360149054906101000a900460ff16905090565b5f5f60055f8481526020019081526020015f205f9054906101000a900460ff16611078575f5f915091506110d2565b60065f8481526020019081526020015f205f9054906101000a900467ffffffffffffffff1667ffffffffffffffff164210156110b9575f5f915091506110d2565b60045f8481526020019081526020015f20546001915091505b915091565b600760089054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461116957336040517fa974a0fe0000000000000000000000000000000000000000000000000000000081526004016111609190616c43565b60405180910390fd5b7f66d3f531abdf188fde59b6d2b282dc7c725ef2bb1c6c93954054721a13c1a3fa83838360405161119c9392919061793f565b60405180910390a1505050565b5f6111b8858585856001612457565b9050949350505050565b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461125357336040517f7238ea5600000000000000000000000000000000000000000000000000000000815260040161124a9190616c43565b60405180910390fd5b600760049054906101000a900460030b60030b8160030b12156112ce5780600760049054906101000a900460030b60075f9054906101000a900460030b6040517f24cbcf360000000000000000000000000000000000000000000000000000000081526004016112c5939291906178bc565b60405180910390fd5b8060075f6101000a81548163ffffffff021916908360030b63ffffffff16021790555050565b5f6112fe83613ba5565b1561130c57600190506113aa565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635faa299a84846040518363ffffffff1660e01b8152600401611368929190617918565b602060405180830381865afa158015611383573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113a79190617996565b90505b92915050565b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461144157336040517f7238ea560000000000000000000000000000000000000000000000000000000081526004016114389190616c43565b60405180910390fd5b60075f9054906101000a900460030b60030b8160030b13156114bb5780600760049054906101000a900460030b60075f9054906101000a900460030b6040517f24cbcf360000000000000000000000000000000000000000000000000000000081526004016114b2939291906178bc565b60405180910390fd5b80600760046101000a81548163ffffffff021916908360030b63ffffffff16021790555050565b805f5f6101000a81548160ff02191690831515021790555050565b61150682613ba5565b6116455760085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166379a3a7fb8383336040518463ffffffff1660e01b815260040161156893929190617878565b5f604051808303815f87803b15801561157f575f5ffd5b505af1158015611591573d5f5f3e3d5ffd5b505050506116443373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611606576040518060400160405280600981526020017f4648452e616c6c6f77000000000000000000000000000000000000000000000081525061163d565b6040518060400160405280600d81526020017f4648452e616c6c6f7754686973000000000000000000000000000000000000008152505b83836119ad565b5b5050565b5f5f90505b86869050811015611727573073ffffffffffffffffffffffffffffffffffffffff166318683701888884818110611688576116876179c1565b5b905060200201358787858181106116a2576116a16179c1565b5b905060200201358686868181106116bc576116bb6179c1565b5b90506020028101906116ce91906179fa565b6040518563ffffffff1660e01b81526004016116ed9493929190617a98565b5f604051808303815f87803b158015611704575f5ffd5b505af1158015611716573d5f5f3e3d5ffd5b50505050808060010191505061164e565b50505050505050565b60605f849050805183856117449190617741565b1115611785576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177c90617b20565b60405180910390fd5b5f8367ffffffffffffffff8111156117a05761179f6169da565b5b6040519080825280601f01601f1916602001820160405280156117d25781602001600182028036833780820191505090505b5090505f5f90505b84811015611859578281876117ef9190617741565b81518110611800576117ff6179c1565b5b602001015160f81c60f81b82828151811061181e5761181d6179c1565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a90535080806001019150506117da565b5080925050509392505050565b5f8383834260405160200161187e9493929190617b4d565b604051602081830303815290604052805190602001205f1c90509392505050565b600760089054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461193157336040517fa974a0fe0000000000000000000000000000000000000000000000000000000081526004016119289190616c43565b60405180910390fd5b600160055f8681526020019081526020015f205f6101000a81548160ff0219169083151502179055508260045f8681526020019081526020015f20819055504260065f8681526020019081526020015f205f6101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555050505050565b6119b8838383613be2565b505050565b6119c682613ba5565b611a965760085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663484de8228383336040518463ffffffff1660e01b8152600401611a2893929190617878565b5f604051808303815f87803b158015611a3f575f5ffd5b505af1158015611a51573d5f5f3e3d5ffd5b50505050611a956040518060400160405280601281526020017f4648452e616c6c6f775472616e7369656e74000000000000000000000000000081525083836119ad565b5b5050565b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611b2b57336040517f7238ea56000000000000000000000000000000000000000000000000000000008152600401611b229190616c43565b60405180910390fd5b8060095f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f6040517fd623472500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611c3257336040517f7238ea56000000000000000000000000000000000000000000000000000000008152600401611c299190616c43565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611c97576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060085f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611d0881613ba5565b611e44575f600167ffffffffffffffff811115611d2857611d276169da565b5b604051908082528060200260200182016040528015611d565781602001602082028036833780820191505090505b50905081815f81518110611d6d57611d6c6179c1565b5b60200260200101818152505060085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633c3839ba82336040518363ffffffff1660e01b8152600401611dd5929190617c47565b5f604051808303815f87803b158015611dec575f5ffd5b505af1158015611dfe573d5f5f3e3d5ffd5b50505050611e426040518060400160405280601681526020017f4648452e616c6c6f77466f7244656372797074696f6e0000000000000000000081525083336119ad565b505b50565b5f611e55858585855f612457565b9050949350505050565b5f60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ae79f04a84846040518363ffffffff1660e01b8152600401611ebc929190617da8565b602060405180830381865afa158015611ed7573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611efb9190617996565b905092915050565b8060035f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600360146101000a81548160ff0219169083151502179055505f60095f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f600a5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60605f8290505f8151036120065760405180602001604052805f8152509150506120f1565b5f600182516120159190617dd6565b67ffffffffffffffff81111561202e5761202d6169da565b5b6040519080825280601f01601f1916602001820160405280156120605781602001600182028036833780820191505090505b5090505f600190505b82518110156120ea57828181518110612085576120846179c1565b5b602001015160f81c60f81b8260018361209e9190617dd6565b815181106120af576120ae6179c1565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a9053508080600101915050612069565b5080925050505b919050565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f5f9054906101000a900460ff1681565b5f5f5f61213884611049565b915091508061217e57836040517f70cf65540000000000000000000000000000000000000000000000000000000081526004016121759190616bbd565b60405180910390fd5b8192505050919050565b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461221957336040517f7238ea560000000000000000000000000000000000000000000000000000000081526004016122109190616c43565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361227e576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600760086101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6122cb81613ba5565b6123ae5760085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635faa299a82336040518363ffffffff1660e01b815260040161232b929190617918565b602060405180830381865afa158015612346573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061236a9190617996565b6123ad5780336040517f4d13139e0000000000000000000000000000000000000000000000000000000081526004016123a4929190617918565b60405180910390fd5b5b50565b5f60025f8381526020019081526020015f205f9054906101000a900460ff1661241157816040517f850a796d0000000000000000000000000000000000000000000000000000000081526004016124089190616bbd565b60405180910390fd5b5f61241b83613cd0565b90508060015f8581526020019081526020015f205416915050919050565b5f61244383613cd0565b9050612452838284165f613ced565b505050565b5f5f73ffffffffffffffffffffffffffffffffffffffff16600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16036124b557600190506126a8565b5f86866040516020016124c9929190617e29565b6040516020818303038152906040528051906020012090505f5f6125308388888080601f0160208091040260200160405190810160405280939291908181526020018383808284375f81840152601f19601f82011690508083019250505050505050613d8e565b50915091505f6003811115612548576125476177d6565b5b81600381111561255b5761255a6177d6565b5b14158061259357505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b156125db5784156125d0576040517f8baa579f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f93505050506126a8565b600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146126a05784156126955781600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040517f7ba5ffb500000000000000000000000000000000000000000000000000000000815260040161268c9291906178f1565b60405180910390fd5b5f93505050506126a8565b600193505050505b95945050505050565b60606002601f8111156126c7576126c66177d6565b5b82601f8111156126da576126d96177d6565b5b0361271c576040518060400160405280600481526020017f63617374000000000000000000000000000000000000000000000000000000008152509050613241565b6003601f8111156127305761272f6177d6565b5b82601f811115612743576127426177d6565b5b03612785576040518060400160405280600a81526020017f7365616c4f7574707574000000000000000000000000000000000000000000008152509050613241565b6004601f811115612799576127986177d6565b5b82601f8111156127ac576127ab6177d6565b5b036127ee576040518060400160405280600681526020017f73656c65637400000000000000000000000000000000000000000000000000008152509050613241565b6006601f811115612802576128016177d6565b5b82601f811115612815576128146177d6565b5b03612857576040518060400160405280600781526020017f64656372797074000000000000000000000000000000000000000000000000008152509050613241565b6007601f81111561286b5761286a6177d6565b5b82601f81111561287e5761287d6177d6565b5b036128c0576040518060400160405280600381526020017f73756200000000000000000000000000000000000000000000000000000000008152509050613241565b6008601f8111156128d4576128d36177d6565b5b82601f8111156128e7576128e66177d6565b5b03612929576040518060400160405280600381526020017f61646400000000000000000000000000000000000000000000000000000000008152509050613241565b6009601f81111561293d5761293c6177d6565b5b82601f8111156129505761294f6177d6565b5b03612992576040518060400160405280600381526020017f786f7200000000000000000000000000000000000000000000000000000000008152509050613241565b600a601f8111156129a6576129a56177d6565b5b82601f8111156129b9576129b86177d6565b5b036129fb576040518060400160405280600381526020017f616e6400000000000000000000000000000000000000000000000000000000008152509050613241565b600b601f811115612a0f57612a0e6177d6565b5b82601f811115612a2257612a216177d6565b5b03612a64576040518060400160405280600281526020017f6f720000000000000000000000000000000000000000000000000000000000008152509050613241565b600c601f811115612a7857612a776177d6565b5b82601f811115612a8b57612a8a6177d6565b5b03612acd576040518060400160405280600381526020017f6e6f7400000000000000000000000000000000000000000000000000000000008152509050613241565b600d601f811115612ae157612ae06177d6565b5b82601f811115612af457612af36177d6565b5b03612b36576040518060400160405280600381526020017f64697600000000000000000000000000000000000000000000000000000000008152509050613241565b600e601f811115612b4a57612b496177d6565b5b82601f811115612b5d57612b5c6177d6565b5b03612b9f576040518060400160405280600381526020017f72656d00000000000000000000000000000000000000000000000000000000008152509050613241565b600f601f811115612bb357612bb26177d6565b5b82601f811115612bc657612bc56177d6565b5b03612c08576040518060400160405280600381526020017f6d756c00000000000000000000000000000000000000000000000000000000008152509050613241565b6010601f811115612c1c57612c1b6177d6565b5b82601f811115612c2f57612c2e6177d6565b5b03612c71576040518060400160405280600381526020017f73686c00000000000000000000000000000000000000000000000000000000008152509050613241565b6011601f811115612c8557612c846177d6565b5b82601f811115612c9857612c976177d6565b5b03612cda576040518060400160405280600381526020017f73687200000000000000000000000000000000000000000000000000000000008152509050613241565b6012601f811115612cee57612ced6177d6565b5b82601f811115612d0157612d006177d6565b5b03612d43576040518060400160405280600381526020017f67746500000000000000000000000000000000000000000000000000000000008152509050613241565b6013601f811115612d5757612d566177d6565b5b82601f811115612d6a57612d696177d6565b5b03612dac576040518060400160405280600381526020017f6c746500000000000000000000000000000000000000000000000000000000008152509050613241565b6014601f811115612dc057612dbf6177d6565b5b82601f811115612dd357612dd26177d6565b5b03612e15576040518060400160405280600281526020017f6c740000000000000000000000000000000000000000000000000000000000008152509050613241565b6015601f811115612e2957612e286177d6565b5b82601f811115612e3c57612e3b6177d6565b5b03612e7e576040518060400160405280600281526020017f67740000000000000000000000000000000000000000000000000000000000008152509050613241565b6016601f811115612e9257612e916177d6565b5b82601f811115612ea557612ea46177d6565b5b03612ee7576040518060400160405280600381526020017f6d696e00000000000000000000000000000000000000000000000000000000008152509050613241565b6017601f811115612efb57612efa6177d6565b5b82601f811115612f0e57612f0d6177d6565b5b03612f50576040518060400160405280600381526020017f6d617800000000000000000000000000000000000000000000000000000000008152509050613241565b6018601f811115612f6457612f636177d6565b5b82601f811115612f7757612f766177d6565b5b03612fb9576040518060400160405280600281526020017f65710000000000000000000000000000000000000000000000000000000000008152509050613241565b6019601f811115612fcd57612fcc6177d6565b5b82601f811115612fe057612fdf6177d6565b5b03613022576040518060400160405280600281526020017f6e650000000000000000000000000000000000000000000000000000000000008152509050613241565b601a601f811115613036576130356177d6565b5b82601f811115613049576130486177d6565b5b0361308b576040518060400160405280600e81526020017f7472697669616c456e63727970740000000000000000000000000000000000008152509050613241565b601b601f81111561309f5761309e6177d6565b5b82601f8111156130b2576130b16177d6565b5b036130f4576040518060400160405280600681526020017f72616e646f6d00000000000000000000000000000000000000000000000000008152509050613241565b601c601f811115613108576131076177d6565b5b82601f81111561311b5761311a6177d6565b5b0361315d576040518060400160405280600381526020017f726f6c00000000000000000000000000000000000000000000000000000000008152509050613241565b601d601f811115613171576131706177d6565b5b82601f811115613184576131836177d6565b5b036131c6576040518060400160405280600381526020017f726f7200000000000000000000000000000000000000000000000000000000008152509050613241565b601e601f8111156131da576131d96177d6565b5b82601f8111156131ed576131ec6177d6565b5b0361322f576040518060400160405280600681526020017f73717561726500000000000000000000000000000000000000000000000000008152509050613241565b60405180602001604052805f81525090505b919050565b5f613250826126b1565b90505f8351036132aa5761326382613de3565b6132a457806040517fb31612aa00000000000000000000000000000000000000000000000000000000815260040161329b9190617291565b60405180910390fd5b506134bc565b6004601f8111156132be576132bd6177d6565b5b82601f8111156132d1576132d06177d6565b5b036132e4576132df83613e42565b613414565b6132ed82613f83565b1561334357600183511461333e5780835160016040517f9a84351c00000000000000000000000000000000000000000000000000000000815260040161333593929190617e8d565b60405180910390fd5b613413565b600283511461338f5780835160026040517f9a84351c00000000000000000000000000000000000000000000000000000000815260040161338693929190617f02565b60405180910390fd5b5f6133d0846001815181106133a7576133a66179c1565b5b6020026020010151855f815181106133c2576133c16179c1565b5b602002602001015118614011565b1461341257806040517f52b50ae10000000000000000000000000000000000000000000000000000000081526004016134099190617291565b60405180910390fd5b5b5b5f613438845f8151811061342b5761342a6179c1565b5b602002602001015161402f565b905061344381613a47565b6134a55780600760049054906101000a900460030b60075f9054906101000a900460030b6040517f24cbcf3600000000000000000000000000000000000000000000000000000000815260040161349c939291906178bc565b60405180910390fd5b6134ae8461403f565b6134b983838661408d565b50505b5050565b60605f825184516134d19190617741565b67ffffffffffffffff8111156134ea576134e96169da565b5b6040519080825280602002602001820160405280156135185781602001602082028036833780820191505090505b5090505f5f90505b84518160ff16101561357f57848160ff1681518110613542576135416179c1565b5b6020026020010151828260ff16815181106135605761355f6179c1565b5b602002602001018181525050808061357790617f3e565b915050613520565b5b8351855161358e9190617741565b8160ff1610156135f7578385518260ff166135a99190617dd6565b815181106135ba576135b96179c1565b5b6020026020010151828260ff16815181106135d8576135d76179c1565b5b60200260200101818152505080806135ef90617f3e565b915050613580565b819250505092915050565b5f61360c84613de3565b156136405781600183516136209190617dd6565b81518110613631576136306179c1565b5b60200260200101519050613666565b613663835f81518110613656576136556179c1565b5b602002602001015161402f565b90505b9392505050565b5f60605f601a601f811115613685576136846177d6565b5b84601f811115613698576136976177d6565b5b1490505f5f90505b85518160ff16101561370857826136d3878360ff16815181106136c6576136c56179c1565b5b60200260200101516141fb565b6040516020016136e4929190617fa0565b6040516020818303038152906040529250808061370090617f3e565b9150506136a0565b50601e601f81111561371d5761371c6177d6565b5b84601f8111156137305761372f6177d6565b5b0361378057600f93508161375d865f815181106137505761374f6179c1565b5b60200260200101516141fb565b60405160200161376e929190617fa0565b60405160208183030381529060405291505b5f84601f811115613794576137936177d6565b5b60f81b905082816040516020016137ac92919061800e565b60405160208183030381529060405292505f838051906020012090505f6137e0825f1c8a6137da8a8e61425d565b87613b4c565b90508095505050505050949350505050565b6001815114806138095750613808826002614388565b5b15613891577fe9de54a3e7ddf0c48cc6e1134185300d5a71acbf2d8c21fcdefa9d9dd9e20ac18383835f81518110613844576138436179c1565b5b60200260200101515f5f60405161385f95949392919061806e565b60405180910390a161388c8383835f8151811061387f5761387e6179c1565b5b60200260200101516143a3565b613a42565b6002815103613954577fe9de54a3e7ddf0c48cc6e1134185300d5a71acbf2d8c21fcdefa9d9dd9e20ac18383835f815181106138d0576138cf6179c1565b5b6020026020010151846001815181106138ec576138eb6179c1565b5b60200260200101515f6040516139069594939291906180c6565b60405180910390a161394f8383835f81518110613926576139256179c1565b5b602002602001015184600181518110613942576139416179c1565b5b602002602001015161460a565b613a41565b7fe9de54a3e7ddf0c48cc6e1134185300d5a71acbf2d8c21fcdefa9d9dd9e20ac18383835f8151811061398a576139896179c1565b5b6020026020010151846001815181106139a6576139a56179c1565b5b6020026020010151856002815181106139c2576139c16179c1565b5b60200260200101516040516139db95949392919061811e565b60405180910390a1613a408383835f815181106139fb576139fa6179c1565b5b602002602001015184600181518110613a1757613a166179c1565b5b602002602001015185600281518110613a3357613a326179c1565b5b6020026020010151615436565b5b5b505050565b5f600760049054906101000a900460030b60030b8260030b12158015613a81575060075f9054906101000a900460030b60030b8260030b13155b9050919050565b5f5f835f0151846040015185602001518546604051602001613aae9594939291906181ef565b60405160208183030381529060405290505f818051906020012090505f613ad98287606001516155dd565b90505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603613b40576040517f8baa579f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80935050505092915050565b5f61ffff80167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff613b7d9190617dd6565b851690505f8460ff166008613b928587615607565b901b179050808217915050949350505050565b5f600160ff8016901c60ff1660ff8016613bbf9190617dd6565b600160ff8016901c60ff1660ff8016613bd89190617dd6565b8316149050919050565b5f5f9054906101000a900460ff1615613ccb57613cca6040518060400160405280600481526020017fe2949c2000000000000000000000000000000000000000000000000000000000815250613c5a8560107f2000000000000000000000000000000000000000000000000000000000000000615646565b6040518060400160405280600381526020017f207c200000000000000000000000000000000000000000000000000000000000815250613c998661578d565b613ca286615929565b604051602001613cb69594939291906182ad565b604051602081830303815290604052615956565b5b505050565b5f5f613cdb836159ef565b90506001816001901b03915050919050565b8160015f8581526020019081526020015f2081905550600160025f8581526020019081526020015f205f6101000a81548160ff0219169083151502179055508015613d8957613d886040518060400160405280600381526020017f736574000000000000000000000000000000000000000000000000000000000081525060405180602001604052805f815250613d838661578d565b615ac6565b5b505050565b5f5f5f6041845103613dce575f5f5f602087015192506040870151915060608701515f1a9050613dc088828585615ba4565b955095509550505050613ddc565b5f600285515f1b9250925092505b9250925092565b5f601b601f811115613df857613df76177d6565b5b82601f811115613e0b57613e0a6177d6565b5b1480613e3b5750601a601f811115613e2657613e256177d6565b5b82601f811115613e3957613e386177d6565b5b145b9050919050565b6003815114613e8c57805160036040517f9a84351c000000000000000000000000000000000000000000000000000000008152600401613e83929190618350565b60405180910390fd5b5f613ece82600281518110613ea457613ea36179c1565b5b602002602001015183600181518110613ec057613ebf6179c1565b5b602002602001015118614011565b14613f0e576040517f52b50ae1000000000000000000000000000000000000000000000000000000008152600401613f059061838a565b60405180910390fd5b5f613f32825f81518110613f2557613f246179c1565b5b6020026020010151615c8b565b90505f5f821860ff1614613f7f57805f6040517f884a0e9d000000000000000000000000000000000000000000000000000000008152600401613f769291906183a8565b60405180910390fd5b5050565b5f600c601f811115613f9857613f976177d6565b5b82601f811115613fab57613faa6177d6565b5b1480613fdb5750601e601f811115613fc657613fc56177d6565b5b82601f811115613fd957613fd86177d6565b5b145b8061400a57506002601f811115613ff557613ff46177d6565b5b82601f811115614008576140076177d6565b5b145b9050919050565b5f8160ff80166008600160ff8016901c60ff16901b17169050919050565b5f60ff801682165f0b9050919050565b5f5f90505b81518160ff16101561408957614076828260ff1681518110614069576140686179c1565b5b60200260200101516122c2565b808061408190617f3e565b915050614044565b5050565b61409683615ca7565b6141f6576140a383615d64565b15614149575f5f90505b81518160ff161015614143575f6140e0838360ff16815181106140d3576140d26179c1565b5b6020026020010151615c8b565b90505f6007821860ff160361412f578360076040517f91b4b3780000000000000000000000000000000000000000000000000000000081526004016141269291906183cf565b60405180910390fd5b50808061413b90617f3e565b9150506140ad565b506141f5565b5f5f90505b81518160ff1610156141f3575f614181838360ff1681518110614174576141736179c1565b5b6020026020010151615c8b565b90505f6007821860ff16148061419b57505f5f821860ff16145b156141df5783816040517f91b4b3780000000000000000000000000000000000000000000000000000000081526004016141d69291906183cf565b60405180910390fd5b5080806141eb90617f3e565b91505061414e565b505b5b505050565b60605f602067ffffffffffffffff811115614219576142186169da565b5b6040519080825280601f01601f19166020018201604052801561424b5781602001600182028036833780820191505090505b50905082602082015280915050919050565b5f6013601f811115614272576142716177d6565b5b83601f811115614285576142846177d6565b5b14806142b557506014601f8111156142a05761429f6177d6565b5b83601f8111156142b3576142b26177d6565b5b145b806142e457506012601f8111156142cf576142ce6177d6565b5b83601f8111156142e2576142e16177d6565b5b145b8061431357506015601f8111156142fe576142fd6177d6565b5b83601f811115614311576143106177d6565b5b145b8061434257506018601f81111561432d5761432c6177d6565b5b83601f8111156143405761433f6177d6565b5b145b8061437157506019601f81111561435c5761435b6177d6565b5b83601f81111561436f5761436e6177d6565b5b145b1561437e575f9050614382565b8190505b92915050565b5f61439b83614396846126b1565b615e21565b905092915050565b6143ae82601b614388565b15614427576143cc836001436143c49190617dd6565b405f1c612439565b6144226040518060400160405280600a81526020017f4648452e72616e646f6d0000000000000000000000000000000000000000000081525060405180602001604052805f81525061441d8661578d565b615ac6565b614605565b614432826002614388565b1561449e5761444983614444836123b1565b612439565b6144996040518060400160405280600881526020017f4648452e6361737400000000000000000000000000000000000000000000000081525061448b8361578d565b6144948661578d565b615ac6565b614605565b6144a982600c614388565b1561451e575f60016144ba836123b1565b1490506144c8848215615e79565b6145186040518060400160405280600781526020017f4648452e6e6f740000000000000000000000000000000000000000000000000081525061450a8461578d565b6145138761578d565b615ac6565b50614605565b61452982601e614388565b156145c85761454a8361453b836123b1565b614544846123b1565b02612439565b6145c36040518060400160405280600a81526020017f4648452e7371756172650000000000000000000000000000000000000000000081525061458c8361578d565b6145958461578d565b6040516020016145a6929190618423565b6040516020818303038152906040526145be8661578d565b615ac6565b614605565b816040517fd952ce7c0000000000000000000000000000000000000000000000000000000081526004016145fc9190617291565b60405180910390fd5b505050565b614615836007614388565b156146b45761463684614627836123b1565b614630856123b1565b03612439565b6146af6040518060400160405280600781526020017f4648452e737562000000000000000000000000000000000000000000000000008152506146788461578d565b6146818461578d565b60405160200161469292919061847b565b6040516020818303038152906040526146aa8761578d565b615ac6565b615430565b6146bf836008614388565b1561475e576146e0846146d1836123b1565b6146da856123b1565b01612439565b6147596040518060400160405280600781526020017f4648452e616464000000000000000000000000000000000000000000000000008152506147228461578d565b61472b8461578d565b60405160200161473c9291906184d3565b6040516020818303038152906040526147548761578d565b615ac6565b615430565b614769836009614388565b156148085761478a8461477b836123b1565b614784856123b1565b18612439565b6148036040518060400160405280600781526020017f4648452e786f72000000000000000000000000000000000000000000000000008152506147cc8461578d565b6147d58461578d565b6040516020016147e692919061852b565b6040516020818303038152906040526147fe8761578d565b615ac6565b615430565b61481383600a614388565b156148b25761483484614825836123b1565b61482e856123b1565b16612439565b6148ad6040518060400160405280600781526020017f4648452e616e64000000000000000000000000000000000000000000000000008152506148768461578d565b61487f8461578d565b604051602001614890929190618583565b6040516020818303038152906040526148a88761578d565b615ac6565b615430565b6148bd83600b614388565b1561495c576148de846148cf836123b1565b6148d8856123b1565b17612439565b6149576040518060400160405280600681526020017f4648452e6f7200000000000000000000000000000000000000000000000000008152506149208461578d565b6149298461578d565b60405160200161493a9291906185db565b6040516020818303038152906040526149528761578d565b615ac6565b615430565b61496783600d614388565b15614a50575f614976826123b1565b90505f81036149ae576149a9857fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff612439565b6149d1565b6149d085826149bc866123b1565b816149ca576149c96176b7565b5b04612439565b5b614a4a6040518060400160405280600781526020017f4648452e64697600000000000000000000000000000000000000000000000000815250614a138561578d565b614a1c8561578d565b604051602001614a2d929190618633565b604051602081830303815290604052614a458861578d565b615ac6565b50615430565b614a5b83600e614388565b15614b0857614a8a84614a6d836123b1565b614a76856123b1565b81614a8457614a836176b7565b5b06612439565b614b036040518060400160405280600781526020017f4648452e72656d00000000000000000000000000000000000000000000000000815250614acc8461578d565b614ad58461578d565b604051602001614ae692919061868b565b604051602081830303815290604052614afe8761578d565b615ac6565b615430565b614b1383600f614388565b15614bb257614b3484614b25836123b1565b614b2e856123b1565b02612439565b614bad6040518060400160405280600781526020017f4648452e6d756c00000000000000000000000000000000000000000000000000815250614b768461578d565b614b7f8461578d565b604051602001614b90929190618423565b604051602081830303815290604052614ba88761578d565b615ac6565b615430565b614bbd836010614388565b15614c5d57614bdf84614bcf836123b1565b614bd8856123b1565b901b612439565b614c586040518060400160405280600781526020017f4648452e73686c00000000000000000000000000000000000000000000000000815250614c218461578d565b614c2a8461578d565b604051602001614c3b9291906186e3565b604051602081830303815290604052614c538761578d565b615ac6565b615430565b614c68836011614388565b15614d0857614c8a84614c7a836123b1565b614c83856123b1565b901c612439565b614d036040518060400160405280600781526020017f4648452e73687200000000000000000000000000000000000000000000000000815250614ccc8461578d565b614cd58461578d565b604051602001614ce692919061873b565b604051602081830303815290604052614cfe8761578d565b615ac6565b615430565b614d13836012614388565b15614db357614d3584614d25836123b1565b614d2e856123b1565b1015615e79565b614dae6040518060400160405280600781526020017f4648452e67746500000000000000000000000000000000000000000000000000815250614d778461578d565b614d808461578d565b604051602001614d91929190618793565b604051602081830303815290604052614da98761578d565b615ac6565b615430565b614dbe836013614388565b15614e5e57614de084614dd0836123b1565b614dd9856123b1565b1115615e79565b614e596040518060400160405280600781526020017f4648452e6c746500000000000000000000000000000000000000000000000000815250614e228461578d565b614e2b8461578d565b604051602001614e3c9291906187eb565b604051602081830303815290604052614e548761578d565b615ac6565b615430565b614e69836014614388565b15614f0857614e8a84614e7b836123b1565b614e84856123b1565b10615e79565b614f036040518060400160405280600681526020017f4648452e6c740000000000000000000000000000000000000000000000000000815250614ecc8461578d565b614ed58461578d565b604051602001614ee6929190618843565b604051602081830303815290604052614efe8761578d565b615ac6565b615430565b614f13836015614388565b15614fb257614f3484614f25836123b1565b614f2e856123b1565b11615e79565b614fad6040518060400160405280600681526020017f4648452e67740000000000000000000000000000000000000000000000000000815250614f768461578d565b614f7f8461578d565b604051602001614f9092919061889b565b604051602081830303815290604052614fa88761578d565b615ac6565b615430565b614fbd836016614388565b1561507d575f614fcc826123b1565b614fd5846123b1565b10614fe857614fe3826123b1565b614ff2565b614ff1836123b1565b5b9050614ffe8582612439565b6150776040518060400160405280600781526020017f4648452e6d696e000000000000000000000000000000000000000000000000008152506150408561578d565b6150498561578d565b60405160200161505a92919061893f565b6040516020818303038152906040526150728861578d565b615ac6565b50615430565b615088836017614388565b15615148575f615097826123b1565b6150a0846123b1565b116150b3576150ae826123b1565b6150bd565b6150bc836123b1565b5b90506150c98582612439565b6151426040518060400160405280600781526020017f4648452e6d61780000000000000000000000000000000000000000000000000081525061510b8561578d565b6151148561578d565b6040516020016151259291906189b5565b60405160208183030381529060405261513d8861578d565b615ac6565b50615430565b615153836018614388565b156151f25761517484615165836123b1565b61516e856123b1565b14615e79565b6151ed6040518060400160405280600681526020017f4648452e657100000000000000000000000000000000000000000000000000008152506151b68461578d565b6151bf8461578d565b6040516020016151d0929190618a2b565b6040516020818303038152906040526151e88761578d565b615ac6565b615430565b6151fd836019614388565b1561529d5761521f8461520f836123b1565b615218856123b1565b1415615e79565b6152986040518060400160405280600681526020017f4648452e6e6500000000000000000000000000000000000000000000000000008152506152618461578d565b61526a8461578d565b60405160200161527b929190618a83565b6040516020818303038152906040526152938761578d565b615ac6565b615430565b6152a883601c614388565b15615348576152ca846152ba836123b1565b6152c3856123b1565b901b612439565b6153436040518060400160405280600781526020017f4648452e726f6c0000000000000000000000000000000000000000000000000081525061530c8461578d565b6153158461578d565b6040516020016153269291906186e3565b60405160208183030381529060405261533e8761578d565b615ac6565b615430565b61535383601d614388565b156153f35761537584615365836123b1565b61536e856123b1565b901c612439565b6153ee6040518060400160405280600781526020017f4648452e726f72000000000000000000000000000000000000000000000000008152506153b78461578d565b6153c08461578d565b6040516020016153d192919061873b565b6040516020818303038152906040526153e98761578d565b615ac6565b615430565b826040517fcef608850000000000000000000000000000000000000000000000000000000081526004016154279190617291565b60405180910390fd5b50505050565b61544184601a614388565b156154d0576154508584612439565b6154cb61546461545f87615e97565b611fe1565b6040516020016154749190618adb565b60405160208183030381529060405261549461548f88615e97565b611fe1565b61549d86616143565b6040516020016154ae929190618b26565b6040516020818303038152906040526154c68861578d565b615ac6565b6155d6565b6154db846004614388565b15615599576155118560016154ef866123b1565b14615502576154fd836123b1565b61550c565b61550b846123b1565b5b612439565b6155946040518060400160405280600a81526020017f4648452e73656c656374000000000000000000000000000000000000000000008152506155538561578d565b61555c8561578d565b6155658561578d565b60405160200161557793929190618bb3565b60405160208183030381529060405261558f8861578d565b615ac6565b6155d6565b836040517f5e45fa010000000000000000000000000000000000000000000000000000000081526004016155cd9190617291565b60405180910390fd5b5050505050565b5f5f5f5f6155eb8686613d8e565b9250925092506155fb828261620d565b82935050505092915050565b5f600160ff8016901c60ff168260ff161683615623575f61563d565b600160ff8016901c60ff1660ff801661563c9190617dd6565b5b17905092915050565b60605f8490508381511061565d5784915050615786565b5f8467ffffffffffffffff811115615678576156776169da565b5b6040519080825280601f01601f1916602001820160405280156156aa5781602001600182028036833780820191505090505b5090505f5f90505b8251811015615727578281815181106156ce576156cd6179c1565b5b602001015160f81c60f81b8282815181106156ec576156eb6179c1565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a90535080806001019150506156b2565b5b8581101561577f5784828281518110615744576157436179c1565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a9053508080600101915050615728565b8193505050505b9392505050565b60605f61579983616143565b90505f81519050600681116157b2578192505050615924565b5f60025f8681526020019081526020015f205f9054906101000a900460ff1690505f60015f8781526020019081526020015f205490505f6157f28761636f565b90505f816158085761580383616143565b615883565b6001831461584b576040518060400160405280600581526020017f66616c7365000000000000000000000000000000000000000000000000000000815250615882565b6040518060400160405280600481526020017f74727565000000000000000000000000000000000000000000000000000000008152505b5b90505f61588f89615e97565b61589b885f6004611730565b6158b38960048a6158ac9190617dd6565b6004611730565b876158f3576040518060400160405280600581526020017f454d5054590000000000000000000000000000000000000000000000000000008152506158f5565b845b6040516020016159089493929190618c73565b6040516020818303038152906040529050809750505050505050505b919050565b606061594f8273ffffffffffffffffffffffffffffffffffffffff16601460ff1661638c565b9050919050565b6159ec8160405160240161596a9190617291565b6040516020818303038152906040527f41304fac000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506165ca565b50565b5f5f6159fa836165e4565b90505f60ff168160ff1603615a13576008915050615ac1565b600260ff168160ff1603615a2b576008915050615ac1565b600360ff168160ff1603615a43576010915050615ac1565b600460ff168160ff1603615a5b576020915050615ac1565b600560ff168160ff1603615a73576040915050615ac1565b600660ff168160ff1603615a8b576080915050615ac1565b600860ff168160ff1603615aa457610100915050615ac1565b600760ff168160ff1603615abc5760a0915050615ac1565b5f9150505b919050565b5f5f9054906101000a900460ff1615615b9f57615b9e6040518060400160405280600481526020017fe2949c2000000000000000000000000000000000000000000000000000000000815250615b3e8560107f2000000000000000000000000000000000000000000000000000000000000000615646565b6040518060400160405280600381526020017f207c2000000000000000000000000000000000000000000000000000000000008152508585604051602001615b8a959493929190618d12565b604051602081830303815290604052615956565b5b505050565b5f5f5f7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0845f1c1115615be0575f600385925092509250615c81565b5f6001888888886040515f8152602001604052604051615c039493929190618d7a565b6020604051602081039080840390855afa158015615c23573d5f5f3e3d5ffd5b5050506020604051035190505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603615c74575f60015f5f1b93509350935050615c81565b805f5f5f1b935093509350505b9450945094915050565b5f600880600160ff8016901c60ff16901b8316901c9050919050565b5f6004601f811115615cbc57615cbb6177d6565b5b82601f811115615ccf57615cce6177d6565b5b1480615cff57506018601f811115615cea57615ce96177d6565b5b82601f811115615cfd57615cfc6177d6565b5b145b80615d2e57506019601f811115615d1957615d186177d6565b5b82601f811115615d2c57615d2b6177d6565b5b145b80615d5d57506002601f811115615d4857615d476177d6565b5b82601f811115615d5b57615d5a6177d6565b5b145b9050919050565b5f6009601f811115615d7957615d786177d6565b5b82601f811115615d8c57615d8b6177d6565b5b1480615dbc5750600a601f811115615da757615da66177d6565b5b82601f811115615dba57615db96177d6565b5b145b80615deb5750600b601f811115615dd657615dd56177d6565b5b82601f811115615de957615de86177d6565b5b145b80615e1a5750600c601f811115615e0557615e046177d6565b5b82601f811115615e1857615e176177d6565b5b145b9050919050565b5f81604051602001615e339190618dbd565b6040516020818303038152906040528051906020012083604051602001615e5a9190618dbd565b6040516020818303038152906040528051906020012014905092915050565b615e938282615e88575f615e8b565b60015b60ff16612439565b5050565b60605f615ea3836165e4565b90505f60ff168160ff1603615ef0576040518060400160405280600581526020017f65626f6f6c00000000000000000000000000000000000000000000000000000081525091505061613e565b600260ff168160ff1603615f3c576040518060400160405280600681526020017f6575696e7438000000000000000000000000000000000000000000000000000081525091505061613e565b600360ff168160ff1603615f88576040518060400160405280600781526020017f6575696e7431360000000000000000000000000000000000000000000000000081525091505061613e565b600460ff168160ff1603615fd4576040518060400160405280600781526020017f6575696e7433320000000000000000000000000000000000000000000000000081525091505061613e565b600560ff168160ff1603616020576040518060400160405280600781526020017f6575696e7436340000000000000000000000000000000000000000000000000081525091505061613e565b600660ff168160ff160361606c576040518060400160405280600881526020017f6575696e7431323800000000000000000000000000000000000000000000000081525091505061613e565b600860ff168160ff16036160b8576040518060400160405280600881526020017f6575696e7432353600000000000000000000000000000000000000000000000081525091505061613e565b600760ff168160ff1603616104576040518060400160405280600881526020017f656164647265737300000000000000000000000000000000000000000000000081525091505061613e565b6040518060400160405280600781526020017f756e6b6e6f776e000000000000000000000000000000000000000000000000008152509150505b919050565b60605f600161615184616600565b0190505f8167ffffffffffffffff81111561616f5761616e6169da565b5b6040519080825280601f01601f1916602001820160405280156161a15781602001600182028036833780820191505090505b5090505f82602083010190505b600115616202578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a85816161f7576161f66176b7565b5b0494505f85036161ae575b819350505050919050565b5f60038111156162205761621f6177d6565b5b826003811115616233576162326177d6565b5b031561636b576001600381111561624d5761624c6177d6565b5b8260038111156162605761625f6177d6565b5b03616297576040517ff645eedf00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600260038111156162ab576162aa6177d6565b5b8260038111156162be576162bd6177d6565b5b0361630257805f1c6040517ffce698f70000000000000000000000000000000000000000000000000000000081526004016162f99190616bbd565b60405180910390fd5b600380811115616315576163146177d6565b5b826003811115616328576163276177d6565b5b0361636a57806040517fd78bce0c0000000000000000000000000000000000000000000000000000000081526004016163619190618dd3565b60405180910390fd5b5b5050565b5f5f61637a836165e4565b90505f5f821860ff1614915050919050565b60605f8390505f60028460026163a29190618dec565b6163ac9190617741565b67ffffffffffffffff8111156163c5576163c46169da565b5b6040519080825280601f01601f1916602001820160405280156163f75781602001600182028036833780820191505090505b5090507f3000000000000000000000000000000000000000000000000000000000000000815f8151811061642e5761642d6179c1565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a9053507f780000000000000000000000000000000000000000000000000000000000000081600181518110616491576164906179c1565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a9053505f60018560026164cf9190618dec565b6164d99190617741565b90505b6001811115616578577f3031323334353637383961626364656600000000000000000000000000000000600f84166010811061651b5761651a6179c1565b5b1a60f81b828281518110616532576165316179c1565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a905350600483901c92508061657190618e2d565b90506164dc565b505f82146165bf5784846040517fe22e27eb0000000000000000000000000000000000000000000000000000000081526004016165b69291906177af565b60405180910390fd5b809250505092915050565b6165e1816165d9616751616770565b63ffffffff16565b50565b5f600880600160ff8016901c60ff16901b8316901c9050919050565b5f5f5f90507a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000831061665c577a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008381616652576166516176b7565b5b0492506040810190505b6d04ee2d6d415b85acef81000000008310616699576d04ee2d6d415b85acef8100000000838161668f5761668e6176b7565b5b0492506020810190505b662386f26fc1000083106166c857662386f26fc1000083816166be576166bd6176b7565b5b0492506010810190505b6305f5e10083106166f1576305f5e10083816166e7576166e66176b7565b5b0492506008810190505b612710831061671657612710838161670c5761670b6176b7565b5b0492506004810190505b60648310616739576064838161672f5761672e6176b7565b5b0492506002810190505b600a8310616748576001810190505b80915050919050565b5f6a636f6e736f6c652e6c6f6790505f5f835160208501845afa505050565b61677b819050919050565b616783618e54565b565b5f604051905090565b5f5ffd5b5f5ffd5b5f819050919050565b6167a881616796565b81146167b2575f5ffd5b50565b5f813590506167c38161679f565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6167f2826167c9565b9050919050565b616802816167e8565b811461680c575f5ffd5b50565b5f8135905061681d816167f9565b92915050565b5f5f604083850312156168395761683861678e565b5b5f616846858286016167b5565b92505060206168578582860161680f565b9150509250929050565b5f5f604083850312156168775761687661678e565b5b5f616884858286016167b5565b9250506020616895858286016167b5565b9150509250929050565b5f5ffd5b5f5ffd5b5f5ffd5b5f5f83601f8401126168c0576168bf61689f565b5b8235905067ffffffffffffffff8111156168dd576168dc6168a3565b5b6020830191508360018202830111156168f9576168f86168a7565b5b9250929050565b5f5f5f5f606085870312156169185761691761678e565b5b5f616925878288016167b5565b9450506020616936878288016167b5565b935050604085013567ffffffffffffffff81111561695757616956616792565b5b616963878288016168ab565b925092505092959194509250565b5f60ff82169050919050565b61698681616971565b8114616990575f5ffd5b50565b5f813590506169a18161697d565b92915050565b602081106169b3575f5ffd5b50565b5f813590506169c4816169a7565b92915050565b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b616a10826169ca565b810181811067ffffffffffffffff82111715616a2f57616a2e6169da565b5b80604052505050565b5f616a41616785565b9050616a4d8282616a07565b919050565b5f67ffffffffffffffff821115616a6c57616a6b6169da565b5b602082029050602081019050919050565b5f616a8f616a8a84616a52565b616a38565b90508083825260208201905060208402830185811115616ab257616ab16168a7565b5b835b81811015616adb5780616ac788826167b5565b845260208401935050602081019050616ab4565b5050509392505050565b5f82601f830112616af957616af861689f565b5b8135616b09848260208601616a7d565b91505092915050565b5f5f5f5f60808587031215616b2a57616b2961678e565b5b5f616b3787828801616993565b9450506020616b48878288016169b6565b935050604085013567ffffffffffffffff811115616b6957616b68616792565b5b616b7587828801616ae5565b925050606085013567ffffffffffffffff811115616b9657616b95616792565b5b616ba287828801616ae5565b91505092959194509250565b616bb781616796565b82525050565b5f602082019050616bd05f830184616bae565b92915050565b5f60208284031215616beb57616bea61678e565b5b5f616bf8848285016167b5565b91505092915050565b5f8115159050919050565b616c1581616c01565b82525050565b5f602082019050616c2e5f830184616c0c565b92915050565b616c3d816167e8565b82525050565b5f602082019050616c565f830184616c34565b92915050565b5f60208284031215616c7157616c7061678e565b5b5f616c7e8482850161680f565b91505092915050565b5f8160030b9050919050565b616c9c81616c87565b8114616ca6575f5ffd5b50565b5f81359050616cb781616c93565b92915050565b5f5f60408385031215616cd357616cd261678e565b5b5f616ce085828601616ca9565b9250506020616cf185828601616ca9565b9150509250929050565b5f5ffd5b5f5ffd5b5f5ffd5b5f67ffffffffffffffff821115616d2157616d206169da565b5b616d2a826169ca565b9050602081019050919050565b828183375f83830152505050565b5f616d57616d5284616d07565b616a38565b905082815260208101848484011115616d7357616d72616d03565b5b616d7e848285616d37565b509392505050565b5f82601f830112616d9a57616d9961689f565b5b8135616daa848260208601616d45565b91505092915050565b5f60808284031215616dc857616dc7616cfb565b5b616dd26080616a38565b90505f616de1848285016167b5565b5f830152506020616df484828501616993565b6020830152506040616e0884828501616993565b604083015250606082013567ffffffffffffffff811115616e2c57616e2b616cff565b5b616e3884828501616d86565b60608301525092915050565b5f5f60408385031215616e5a57616e5961678e565b5b5f83013567ffffffffffffffff811115616e7757616e76616792565b5b616e8385828601616db3565b9250506020616e948582860161680f565b9150509250929050565b5f604082019050616eb15f830185616bae565b616ebe6020830184616c0c565b9392505050565b5f67ffffffffffffffff821115616edf57616ede6169da565b5b616ee8826169ca565b9050602081019050919050565b5f616f07616f0284616ec5565b616a38565b905082815260208101848484011115616f2357616f22616d03565b5b616f2e848285616d37565b509392505050565b5f82601f830112616f4a57616f4961689f565b5b8135616f5a848260208601616ef5565b91505092915050565b5f5f5f60608486031215616f7a57616f7961678e565b5b5f616f87868287016167b5565b935050602084013567ffffffffffffffff811115616fa857616fa7616792565b5b616fb486828701616f36565b925050604084013567ffffffffffffffff811115616fd557616fd4616792565b5b616fe186828701616f36565b9150509250925092565b5f6020828403121561700057616fff61678e565b5b5f61700d84828501616ca9565b91505092915050565b61701f81616c01565b8114617029575f5ffd5b50565b5f8135905061703a81617016565b92915050565b5f602082840312156170555761705461678e565b5b5f6170628482850161702c565b91505092915050565b5f5f83601f8401126170805761707f61689f565b5b8235905067ffffffffffffffff81111561709d5761709c6168a3565b5b6020830191508360208202830111156170b9576170b86168a7565b5b9250929050565b5f5f83601f8401126170d5576170d461689f565b5b8235905067ffffffffffffffff8111156170f2576170f16168a3565b5b60208301915083602082028301111561710e5761710d6168a7565b5b9250929050565b5f5f5f5f5f5f6060878903121561712f5761712e61678e565b5b5f87013567ffffffffffffffff81111561714c5761714b616792565b5b61715889828a0161706b565b9650965050602087013567ffffffffffffffff81111561717b5761717a616792565b5b61718789828a0161706b565b9450945050604087013567ffffffffffffffff8111156171aa576171a9616792565b5b6171b689828a016170c0565b92509250509295509295509295565b5f5f5f606084860312156171dc576171db61678e565b5b5f84013567ffffffffffffffff8111156171f9576171f8616792565b5b61720586828701616f36565b9350506020617216868287016167b5565b9250506040617227868287016167b5565b9150509250925092565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f61726382617231565b61726d818561723b565b935061727d81856020860161724b565b617286816169ca565b840191505092915050565b5f6020820190508181035f8301526172a98184617259565b905092915050565b5f5f5f606084860312156172c8576172c761678e565b5b5f6172d586828701616993565b93505060206172e6868287016167b5565b92505060406172f786828701616ca9565b9150509250925092565b5f5f83601f8401126173165761731561689f565b5b8235905067ffffffffffffffff811115617333576173326168a3565b5b60208301915083602082028301111561734f5761734e6168a7565b5b9250929050565b5f5f5f5f6060858703121561736e5761736d61678e565b5b5f61737b878288016167b5565b945050602061738c878288016167b5565b935050604085013567ffffffffffffffff8111156173ad576173ac616792565b5b6173b987828801617301565b925092505092959194509250565b5f5f5f606084860312156173de576173dd61678e565b5b5f84013567ffffffffffffffff8111156173fb576173fa616792565b5b61740786828701616f36565b9350506020617418868287016167b5565b92505060406174298682870161680f565b9150509250925092565b5f67ffffffffffffffff82169050919050565b61744f81617433565b8114617459575f5ffd5b50565b5f8135905061746a81617446565b92915050565b5f819050919050565b61748281617470565b811461748c575f5ffd5b50565b5f8135905061749d81617479565b92915050565b5f61010082840312156174b9576174b8616cfb565b5b6174c4610100616a38565b90505f6174d38482850161680f565b5f8301525060206174e68482850161745c565b60208301525060406174fa8482850161680f565b604083015250606061750e848285016167b5565b60608301525060806175228482850161680f565b60808301525060a06175368482850161748f565b60a08301525060c082013567ffffffffffffffff81111561755a57617559616cff565b5b61756684828501616d86565b60c08301525060e082013567ffffffffffffffff81111561758a57617589616cff565b5b61759684828501616d86565b60e08301525092915050565b5f5f604083850312156175b8576175b761678e565b5b5f83013567ffffffffffffffff8111156175d5576175d4616792565b5b6175e1858286016174a3565b92505060206175f2858286016167b5565b9150509250929050565b5f602082840312156176115761761061678e565b5b5f82013567ffffffffffffffff81111561762e5761762d616792565b5b61763a84828501616f36565b91505092915050565b5f819050919050565b5f61766661766161765c846167c9565b617643565b6167c9565b9050919050565b5f6176778261764c565b9050919050565b5f6176888261766d565b9050919050565b6176988161767e565b82525050565b5f6020820190506176b15f83018461768f565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6176ee82616796565b91506176f983616796565b925082617709576177086176b7565b5b828206905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61774b82616796565b915061775683616796565b925082820190508082111561776e5761776d617714565b5b92915050565b5f61777e82617433565b915061778983617433565b9250828201905067ffffffffffffffff8111156177a9576177a8617714565b5b92915050565b5f6040820190506177c25f830185616bae565b6177cf6020830184616bae565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b5f819050919050565b5f61782661782161781c84617803565b617643565b616796565b9050919050565b6178368161780c565b82525050565b5f6060820190508181035f8301526178548186617259565b90506178636020830185616bae565b617870604083018461782d565b949350505050565b5f60608201905061788b5f830186616bae565b6178986020830185616c34565b6178a56040830184616c34565b949350505050565b6178b681616c87565b82525050565b5f6060820190506178cf5f8301866178ad565b6178dc60208301856178ad565b6178e960408301846178ad565b949350505050565b5f6040820190506179045f830185616c34565b6179116020830184616c34565b9392505050565b5f60408201905061792b5f830185616bae565b6179386020830184616c34565b9392505050565b5f6060820190506179525f830186616bae565b81810360208301526179648185617259565b905081810360408301526179788184617259565b9050949350505050565b5f8151905061799081617016565b92915050565b5f602082840312156179ab576179aa61678e565b5b5f6179b884828501617982565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f5ffd5b5f5ffd5b5f5ffd5b5f5f83356001602003843603038112617a1657617a156179ee565b5b80840192508235915067ffffffffffffffff821115617a3857617a376179f2565b5b602083019250600182023603831315617a5457617a536179f6565b5b509250929050565b5f82825260208201905092915050565b5f617a778385617a5c565b9350617a84838584616d37565b617a8d836169ca565b840190509392505050565b5f606082019050617aab5f830187616bae565b617ab86020830186616bae565b8181036040830152617acb818486617a6c565b905095945050505050565b7f4f7574206f6620626f756e6473000000000000000000000000000000000000005f82015250565b5f617b0a600d8361723b565b9150617b1582617ad6565b602082019050919050565b5f6020820190508181035f830152617b3781617afe565b9050919050565b617b4781616971565b82525050565b5f608082019050617b605f830187617b3e565b617b6d6020830186616bae565b617b7a60408301856178ad565b617b876060830184616bae565b95945050505050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b617bc281616796565b82525050565b5f617bd38383617bb9565b60208301905092915050565b5f602082019050919050565b5f617bf582617b90565b617bff8185617b9a565b9350617c0a83617baa565b805f5b83811015617c3a578151617c218882617bc8565b9750617c2c83617bdf565b925050600181019050617c0d565b5085935050505092915050565b5f6040820190508181035f830152617c5f8185617beb565b9050617c6e6020830184616c34565b9392505050565b617c7e816167e8565b82525050565b617c8d81617433565b82525050565b617c9c81617470565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f617cc682617ca2565b617cd08185617cac565b9350617ce081856020860161724b565b617ce9816169ca565b840191505092915050565b5f61010083015f830151617d0a5f860182617c75565b506020830151617d1d6020860182617c84565b506040830151617d306040860182617c75565b506060830151617d436060860182617bb9565b506080830151617d566080860182617c75565b5060a0830151617d6960a0860182617c93565b5060c083015184820360c0860152617d818282617cbc565b91505060e083015184820360e0860152617d9b8282617cbc565b9150508091505092915050565b5f6040820190508181035f830152617dc08185617cf4565b9050617dcf6020830184616bae565b9392505050565b5f617de082616796565b9150617deb83616796565b9250828203905081811115617e0357617e02617714565b5b92915050565b5f819050919050565b617e23617e1e82616796565b617e09565b82525050565b5f617e348285617e12565b602082019150617e448284617e12565b6020820191508190509392505050565b5f819050919050565b5f617e77617e72617e6d84617e54565b617643565b616796565b9050919050565b617e8781617e5d565b82525050565b5f6060820190508181035f830152617ea58186617259565b9050617eb46020830185616bae565b617ec16040830184617e7e565b949350505050565b5f819050919050565b5f617eec617ee7617ee284617ec9565b617643565b616796565b9050919050565b617efc81617ed2565b82525050565b5f6060820190508181035f830152617f1a8186617259565b9050617f296020830185616bae565b617f366040830184617ef3565b949350505050565b5f617f4882616971565b915060ff8203617f5b57617f5a617714565b5b600182019050919050565b5f81905092915050565b5f617f7a82617ca2565b617f848185617f66565b9350617f9481856020860161724b565b80840191505092915050565b5f617fab8285617f70565b9150617fb78284617f70565b91508190509392505050565b5f7fff0000000000000000000000000000000000000000000000000000000000000082169050919050565b5f819050919050565b61800861800382617fc3565b617fee565b82525050565b5f6180198285617f70565b91506180258284617ff7565b6001820191508190509392505050565b5f819050919050565b5f61805861805361804e84618035565b617643565b616796565b9050919050565b6180688161803e565b82525050565b5f60a0820190506180815f830188616bae565b81810360208301526180938187617259565b90506180a26040830186616bae565b6180af606083018561805f565b6180bc608083018461805f565b9695505050505050565b5f60a0820190506180d95f830188616bae565b81810360208301526180eb8187617259565b90506180fa6040830186616bae565b6181076060830185616bae565b618114608083018461805f565b9695505050505050565b5f60a0820190506181315f830188616bae565b81810360208301526181438187617259565b90506181526040830186616bae565b61815f6060830185616bae565b61816c6080830184616bae565b9695505050505050565b5f8160f81b9050919050565b5f61818c82618176565b9050919050565b6181a461819f82616971565b618182565b82525050565b5f8160601b9050919050565b5f6181c0826181aa565b9050919050565b5f6181d1826181b6565b9050919050565b6181e96181e4826167e8565b6181c7565b82525050565b5f6181fa8288617e12565b60208201915061820a8287618193565b60018201915061821a8286618193565b60018201915061822a82856181d8565b60148201915061823a8284617e12565b6020820191508190509695505050505050565b5f81905092915050565b5f61826182617231565b61826b818561824d565b935061827b81856020860161724b565b80840191505092915050565b7f202d3e2000000000000000000000000000000000000000000000000000000000815250565b5f6182b88288618257565b91506182c48287618257565b91506182d08286618257565b91506182dc8285618257565b91506182e782618287565b6004820191506182f78284618257565b91508190509695505050505050565b7f73656c65637400000000000000000000000000000000000000000000000000005f82015250565b5f61833a60068361723b565b915061834582618306565b602082019050919050565b5f6060820190508181035f8301526183678161832e565b90506183766020830185616bae565b618383604083018461782d565b9392505050565b5f6020820190508181035f8301526183a18161832e565b9050919050565b5f6040820190506183bb5f830185617b3e565b6183c86020830184617b3e565b9392505050565b5f6040820190508181035f8301526183e78185617259565b90506183f66020830184617b3e565b9392505050565b7f202a200000000000000000000000000000000000000000000000000000000000815250565b5f61842e8285618257565b9150618439826183fd565b6003820191506184498284618257565b91508190509392505050565b7f202d200000000000000000000000000000000000000000000000000000000000815250565b5f6184868285618257565b915061849182618455565b6003820191506184a18284618257565b91508190509392505050565b7f202b200000000000000000000000000000000000000000000000000000000000815250565b5f6184de8285618257565b91506184e9826184ad565b6003820191506184f98284618257565b91508190509392505050565b7f205e200000000000000000000000000000000000000000000000000000000000815250565b5f6185368285618257565b915061854182618505565b6003820191506185518284618257565b91508190509392505050565b7f2026200000000000000000000000000000000000000000000000000000000000815250565b5f61858e8285618257565b91506185998261855d565b6003820191506185a98284618257565b91508190509392505050565b7f207c200000000000000000000000000000000000000000000000000000000000815250565b5f6185e68285618257565b91506185f1826185b5565b6003820191506186018284618257565b91508190509392505050565b7f202f200000000000000000000000000000000000000000000000000000000000815250565b5f61863e8285618257565b91506186498261860d565b6003820191506186598284618257565b91508190509392505050565b7f2025200000000000000000000000000000000000000000000000000000000000815250565b5f6186968285618257565b91506186a182618665565b6003820191506186b18284618257565b91508190509392505050565b7f203c3c2000000000000000000000000000000000000000000000000000000000815250565b5f6186ee8285618257565b91506186f9826186bd565b6004820191506187098284618257565b91508190509392505050565b7f203e3e2000000000000000000000000000000000000000000000000000000000815250565b5f6187468285618257565b915061875182618715565b6004820191506187618284618257565b91508190509392505050565b7f203e3d2000000000000000000000000000000000000000000000000000000000815250565b5f61879e8285618257565b91506187a98261876d565b6004820191506187b98284618257565b91508190509392505050565b7f203c3d2000000000000000000000000000000000000000000000000000000000815250565b5f6187f68285618257565b9150618801826187c5565b6004820191506188118284618257565b91508190509392505050565b7f203c200000000000000000000000000000000000000000000000000000000000815250565b5f61884e8285618257565b91506188598261881d565b6003820191506188698284618257565b91508190509392505050565b7f203e200000000000000000000000000000000000000000000000000000000000815250565b5f6188a68285618257565b91506188b182618875565b6003820191506188c18284618257565b91508190509392505050565b7f6d696e2800000000000000000000000000000000000000000000000000000000815250565b7f2c20000000000000000000000000000000000000000000000000000000000000815250565b7f2900000000000000000000000000000000000000000000000000000000000000815250565b5f618949826188cd565b6004820191506189598285618257565b9150618964826188f3565b6002820191506189748284618257565b915061897f82618919565b6001820191508190509392505050565b7f6d61782800000000000000000000000000000000000000000000000000000000815250565b5f6189bf8261898f565b6004820191506189cf8285618257565b91506189da826188f3565b6002820191506189ea8284618257565b91506189f582618919565b6001820191508190509392505050565b7f203d3d2000000000000000000000000000000000000000000000000000000000815250565b5f618a368285618257565b9150618a4182618a05565b600482019150618a518284618257565b91508190509392505050565b7f20213d2000000000000000000000000000000000000000000000000000000000815250565b5f618a8e8285618257565b9150618a9982618a5d565b600482019150618aa98284618257565b91508190509392505050565b7f4648452e61734500000000000000000000000000000000000000000000000000815250565b5f618ae582618ab5565b600782019150618af58284618257565b915081905092915050565b7f2800000000000000000000000000000000000000000000000000000000000000815250565b5f618b318285618257565b9150618b3c82618b00565b600182019150618b4c8284618257565b9150618b5782618919565b6001820191508190509392505050565b7f203f200000000000000000000000000000000000000000000000000000000000815250565b7f203a200000000000000000000000000000000000000000000000000000000000815250565b5f618bbe8286618257565b9150618bc982618b67565b600382019150618bd98285618257565b9150618be482618b8d565b600382019150618bf48284618257565b9150819050949350505050565b7f2e2e000000000000000000000000000000000000000000000000000000000000815250565b7f295b000000000000000000000000000000000000000000000000000000000000815250565b7f5d00000000000000000000000000000000000000000000000000000000000000815250565b5f618c7e8287618257565b9150618c8982618b00565b600182019150618c998286618257565b9150618ca482618c01565b600282019150618cb48285618257565b9150618cbf82618c27565b600282019150618ccf8284618257565b9150618cda82618c4d565b60018201915081905095945050505050565b7f20203d3e20200000000000000000000000000000000000000000000000000000815250565b5f618d1d8288618257565b9150618d298287618257565b9150618d358286618257565b9150618d418285618257565b9150618d4c82618cec565b600682019150618d5c8284618257565b91508190509695505050505050565b618d7481617470565b82525050565b5f608082019050618d8d5f830187618d6b565b618d9a6020830186617b3e565b618da76040830185618d6b565b618db46060830184618d6b565b95945050505050565b5f618dc88284618257565b915081905092915050565b5f602082019050618de65f830184618d6b565b92915050565b5f618df682616796565b9150618e0183616796565b9250828202618e0f81616796565b91508282048414831517618e2657618e25617714565b5b5092915050565b5f618e3782616796565b91505f8203618e4957618e48617714565b5b600182039050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52605160045260245ffdfea26469706673582212208748b8bcaf83a35ceea5a1af25cc3520a39b1fe1ace0f782e8accd39a200e45b64736f6c63430008210033";
937
+ };
938
+
939
+ declare const MockACLArtifact: {
940
+ readonly contractName: "MockACL";
941
+ readonly isFixed: false;
942
+ readonly abi: readonly [{
943
+ readonly type: "constructor";
944
+ readonly inputs: readonly [];
945
+ readonly stateMutability: "nonpayable";
946
+ }, {
947
+ readonly type: "function";
948
+ readonly name: "TASK_MANAGER_ADDRESS_";
949
+ readonly inputs: readonly [];
950
+ readonly outputs: readonly [{
951
+ readonly name: "";
952
+ readonly type: "address";
953
+ readonly internalType: "address";
954
+ }];
955
+ readonly stateMutability: "view";
956
+ }, {
957
+ readonly type: "function";
958
+ readonly name: "allow";
959
+ readonly inputs: readonly [{
960
+ readonly name: "handle";
961
+ readonly type: "uint256";
962
+ readonly internalType: "uint256";
963
+ }, {
964
+ readonly name: "account";
965
+ readonly type: "address";
966
+ readonly internalType: "address";
967
+ }, {
968
+ readonly name: "requester";
969
+ readonly type: "address";
970
+ readonly internalType: "address";
971
+ }];
972
+ readonly outputs: readonly [];
973
+ readonly stateMutability: "nonpayable";
974
+ }, {
975
+ readonly type: "function";
976
+ readonly name: "allowForDecryption";
977
+ readonly inputs: readonly [{
978
+ readonly name: "handlesList";
979
+ readonly type: "uint256[]";
980
+ readonly internalType: "uint256[]";
981
+ }, {
982
+ readonly name: "requester";
983
+ readonly type: "address";
984
+ readonly internalType: "address";
985
+ }];
986
+ readonly outputs: readonly [];
987
+ readonly stateMutability: "nonpayable";
988
+ }, {
989
+ readonly type: "function";
990
+ readonly name: "allowGlobal";
991
+ readonly inputs: readonly [{
992
+ readonly name: "handle";
993
+ readonly type: "uint256";
994
+ readonly internalType: "uint256";
995
+ }, {
996
+ readonly name: "requester";
997
+ readonly type: "address";
998
+ readonly internalType: "address";
999
+ }];
1000
+ readonly outputs: readonly [];
1001
+ readonly stateMutability: "nonpayable";
1002
+ }, {
1003
+ readonly type: "function";
1004
+ readonly name: "allowTransient";
1005
+ readonly inputs: readonly [{
1006
+ readonly name: "handle";
1007
+ readonly type: "uint256";
1008
+ readonly internalType: "uint256";
1009
+ }, {
1010
+ readonly name: "account";
1011
+ readonly type: "address";
1012
+ readonly internalType: "address";
1013
+ }, {
1014
+ readonly name: "requester";
1015
+ readonly type: "address";
1016
+ readonly internalType: "address";
1017
+ }];
1018
+ readonly outputs: readonly [];
1019
+ readonly stateMutability: "nonpayable";
1020
+ }, {
1021
+ readonly type: "function";
1022
+ readonly name: "allowedOnBehalf";
1023
+ readonly inputs: readonly [{
1024
+ readonly name: "delegatee";
1025
+ readonly type: "address";
1026
+ readonly internalType: "address";
1027
+ }, {
1028
+ readonly name: "handle";
1029
+ readonly type: "uint256";
1030
+ readonly internalType: "uint256";
1031
+ }, {
1032
+ readonly name: "contractAddress";
1033
+ readonly type: "address";
1034
+ readonly internalType: "address";
1035
+ }, {
1036
+ readonly name: "account";
1037
+ readonly type: "address";
1038
+ readonly internalType: "address";
1039
+ }];
1040
+ readonly outputs: readonly [{
1041
+ readonly name: "";
1042
+ readonly type: "bool";
1043
+ readonly internalType: "bool";
1044
+ }];
1045
+ readonly stateMutability: "view";
1046
+ }, {
1047
+ readonly type: "function";
1048
+ readonly name: "allowedTransient";
1049
+ readonly inputs: readonly [{
1050
+ readonly name: "handle";
1051
+ readonly type: "uint256";
1052
+ readonly internalType: "uint256";
1053
+ }, {
1054
+ readonly name: "account";
1055
+ readonly type: "address";
1056
+ readonly internalType: "address";
1057
+ }];
1058
+ readonly outputs: readonly [{
1059
+ readonly name: "";
1060
+ readonly type: "bool";
1061
+ readonly internalType: "bool";
1062
+ }];
1063
+ readonly stateMutability: "view";
1064
+ }, {
1065
+ readonly type: "function";
1066
+ readonly name: "checkPermitValidity";
1067
+ readonly inputs: readonly [{
1068
+ readonly name: "permission";
1069
+ readonly type: "tuple";
1070
+ readonly internalType: "struct Permission";
1071
+ readonly components: readonly [{
1072
+ readonly name: "issuer";
1073
+ readonly type: "address";
1074
+ readonly internalType: "address";
1075
+ }, {
1076
+ readonly name: "expiration";
1077
+ readonly type: "uint64";
1078
+ readonly internalType: "uint64";
1079
+ }, {
1080
+ readonly name: "recipient";
1081
+ readonly type: "address";
1082
+ readonly internalType: "address";
1083
+ }, {
1084
+ readonly name: "validatorId";
1085
+ readonly type: "uint256";
1086
+ readonly internalType: "uint256";
1087
+ }, {
1088
+ readonly name: "validatorContract";
1089
+ readonly type: "address";
1090
+ readonly internalType: "address";
1091
+ }, {
1092
+ readonly name: "sealingKey";
1093
+ readonly type: "bytes32";
1094
+ readonly internalType: "bytes32";
1095
+ }, {
1096
+ readonly name: "issuerSignature";
1097
+ readonly type: "bytes";
1098
+ readonly internalType: "bytes";
1099
+ }, {
1100
+ readonly name: "recipientSignature";
1101
+ readonly type: "bytes";
1102
+ readonly internalType: "bytes";
1103
+ }];
1104
+ }];
1105
+ readonly outputs: readonly [{
1106
+ readonly name: "";
1107
+ readonly type: "bool";
1108
+ readonly internalType: "bool";
1109
+ }];
1110
+ readonly stateMutability: "view";
1111
+ }, {
1112
+ readonly type: "function";
1113
+ readonly name: "cleanTransientStorage";
1114
+ readonly inputs: readonly [];
1115
+ readonly outputs: readonly [];
1116
+ readonly stateMutability: "nonpayable";
1117
+ }, {
1118
+ readonly type: "function";
1119
+ readonly name: "delegateAccount";
1120
+ readonly inputs: readonly [{
1121
+ readonly name: "delegatee";
1122
+ readonly type: "address";
1123
+ readonly internalType: "address";
1124
+ }, {
1125
+ readonly name: "delegateeContract";
1126
+ readonly type: "address";
1127
+ readonly internalType: "address";
1128
+ }];
1129
+ readonly outputs: readonly [];
1130
+ readonly stateMutability: "nonpayable";
1131
+ }, {
1132
+ readonly type: "function";
1133
+ readonly name: "eip712Domain";
1134
+ readonly inputs: readonly [];
1135
+ readonly outputs: readonly [{
1136
+ readonly name: "fields";
1137
+ readonly type: "bytes1";
1138
+ readonly internalType: "bytes1";
1139
+ }, {
1140
+ readonly name: "name";
1141
+ readonly type: "string";
1142
+ readonly internalType: "string";
1143
+ }, {
1144
+ readonly name: "version";
1145
+ readonly type: "string";
1146
+ readonly internalType: "string";
1147
+ }, {
1148
+ readonly name: "chainId";
1149
+ readonly type: "uint256";
1150
+ readonly internalType: "uint256";
1151
+ }, {
1152
+ readonly name: "verifyingContract";
1153
+ readonly type: "address";
1154
+ readonly internalType: "address";
1155
+ }, {
1156
+ readonly name: "salt";
1157
+ readonly type: "bytes32";
1158
+ readonly internalType: "bytes32";
1159
+ }, {
1160
+ readonly name: "extensions";
1161
+ readonly type: "uint256[]";
1162
+ readonly internalType: "uint256[]";
1163
+ }];
1164
+ readonly stateMutability: "view";
1165
+ }, {
1166
+ readonly type: "function";
1167
+ readonly name: "exists";
1168
+ readonly inputs: readonly [];
1169
+ readonly outputs: readonly [{
1170
+ readonly name: "";
1171
+ readonly type: "bool";
1172
+ readonly internalType: "bool";
1173
+ }];
1174
+ readonly stateMutability: "pure";
1175
+ }, {
1176
+ readonly type: "function";
1177
+ readonly name: "getTaskManagerAddress";
1178
+ readonly inputs: readonly [];
1179
+ readonly outputs: readonly [{
1180
+ readonly name: "";
1181
+ readonly type: "address";
1182
+ readonly internalType: "address";
1183
+ }];
1184
+ readonly stateMutability: "view";
1185
+ }, {
1186
+ readonly type: "function";
1187
+ readonly name: "getVersion";
1188
+ readonly inputs: readonly [];
1189
+ readonly outputs: readonly [{
1190
+ readonly name: "";
1191
+ readonly type: "string";
1192
+ readonly internalType: "string";
1193
+ }];
1194
+ readonly stateMutability: "pure";
1195
+ }, {
1196
+ readonly type: "function";
1197
+ readonly name: "globalAllowed";
1198
+ readonly inputs: readonly [{
1199
+ readonly name: "handle";
1200
+ readonly type: "uint256";
1201
+ readonly internalType: "uint256";
1202
+ }];
1203
+ readonly outputs: readonly [{
1204
+ readonly name: "";
1205
+ readonly type: "bool";
1206
+ readonly internalType: "bool";
1207
+ }];
1208
+ readonly stateMutability: "view";
1209
+ }, {
1210
+ readonly type: "function";
1211
+ readonly name: "hashTypedDataV4";
1212
+ readonly inputs: readonly [{
1213
+ readonly name: "structHash";
1214
+ readonly type: "bytes32";
1215
+ readonly internalType: "bytes32";
1216
+ }];
1217
+ readonly outputs: readonly [{
1218
+ readonly name: "";
1219
+ readonly type: "bytes32";
1220
+ readonly internalType: "bytes32";
1221
+ }];
1222
+ readonly stateMutability: "view";
1223
+ }, {
1224
+ readonly type: "function";
1225
+ readonly name: "isAllowed";
1226
+ readonly inputs: readonly [{
1227
+ readonly name: "handle";
1228
+ readonly type: "uint256";
1229
+ readonly internalType: "uint256";
1230
+ }, {
1231
+ readonly name: "account";
1232
+ readonly type: "address";
1233
+ readonly internalType: "address";
1234
+ }];
1235
+ readonly outputs: readonly [{
1236
+ readonly name: "";
1237
+ readonly type: "bool";
1238
+ readonly internalType: "bool";
1239
+ }];
1240
+ readonly stateMutability: "view";
1241
+ }, {
1242
+ readonly type: "function";
1243
+ readonly name: "isAllowedForDecryption";
1244
+ readonly inputs: readonly [{
1245
+ readonly name: "handle";
1246
+ readonly type: "uint256";
1247
+ readonly internalType: "uint256";
1248
+ }];
1249
+ readonly outputs: readonly [{
1250
+ readonly name: "";
1251
+ readonly type: "bool";
1252
+ readonly internalType: "bool";
1253
+ }];
1254
+ readonly stateMutability: "view";
1255
+ }, {
1256
+ readonly type: "function";
1257
+ readonly name: "isAllowedWithPermission";
1258
+ readonly inputs: readonly [{
1259
+ readonly name: "permission";
1260
+ readonly type: "tuple";
1261
+ readonly internalType: "struct Permission";
1262
+ readonly components: readonly [{
1263
+ readonly name: "issuer";
1264
+ readonly type: "address";
1265
+ readonly internalType: "address";
1266
+ }, {
1267
+ readonly name: "expiration";
1268
+ readonly type: "uint64";
1269
+ readonly internalType: "uint64";
1270
+ }, {
1271
+ readonly name: "recipient";
1272
+ readonly type: "address";
1273
+ readonly internalType: "address";
1274
+ }, {
1275
+ readonly name: "validatorId";
1276
+ readonly type: "uint256";
1277
+ readonly internalType: "uint256";
1278
+ }, {
1279
+ readonly name: "validatorContract";
1280
+ readonly type: "address";
1281
+ readonly internalType: "address";
1282
+ }, {
1283
+ readonly name: "sealingKey";
1284
+ readonly type: "bytes32";
1285
+ readonly internalType: "bytes32";
1286
+ }, {
1287
+ readonly name: "issuerSignature";
1288
+ readonly type: "bytes";
1289
+ readonly internalType: "bytes";
1290
+ }, {
1291
+ readonly name: "recipientSignature";
1292
+ readonly type: "bytes";
1293
+ readonly internalType: "bytes";
1294
+ }];
1295
+ }, {
1296
+ readonly name: "handle";
1297
+ readonly type: "uint256";
1298
+ readonly internalType: "uint256";
1299
+ }];
1300
+ readonly outputs: readonly [{
1301
+ readonly name: "";
1302
+ readonly type: "bool";
1303
+ readonly internalType: "bool";
1304
+ }];
1305
+ readonly stateMutability: "view";
1306
+ }, {
1307
+ readonly type: "function";
1308
+ readonly name: "persistAllowed";
1309
+ readonly inputs: readonly [{
1310
+ readonly name: "handle";
1311
+ readonly type: "uint256";
1312
+ readonly internalType: "uint256";
1313
+ }, {
1314
+ readonly name: "account";
1315
+ readonly type: "address";
1316
+ readonly internalType: "address";
1317
+ }];
1318
+ readonly outputs: readonly [{
1319
+ readonly name: "";
1320
+ readonly type: "bool";
1321
+ readonly internalType: "bool";
1322
+ }];
1323
+ readonly stateMutability: "view";
1324
+ }, {
1325
+ readonly type: "event";
1326
+ readonly name: "AllowedForDecryption";
1327
+ readonly inputs: readonly [{
1328
+ readonly name: "handlesList";
1329
+ readonly type: "uint256[]";
1330
+ readonly indexed: false;
1331
+ readonly internalType: "uint256[]";
1332
+ }];
1333
+ readonly anonymous: false;
1334
+ }, {
1335
+ readonly type: "event";
1336
+ readonly name: "EIP712DomainChanged";
1337
+ readonly inputs: readonly [];
1338
+ readonly anonymous: false;
1339
+ }, {
1340
+ readonly type: "event";
1341
+ readonly name: "NewDelegation";
1342
+ readonly inputs: readonly [{
1343
+ readonly name: "sender";
1344
+ readonly type: "address";
1345
+ readonly indexed: true;
1346
+ readonly internalType: "address";
1347
+ }, {
1348
+ readonly name: "delegatee";
1349
+ readonly type: "address";
1350
+ readonly indexed: true;
1351
+ readonly internalType: "address";
1352
+ }, {
1353
+ readonly name: "contractAddress";
1354
+ readonly type: "address";
1355
+ readonly indexed: true;
1356
+ readonly internalType: "address";
1357
+ }];
1358
+ readonly anonymous: false;
1359
+ }, {
1360
+ readonly type: "error";
1361
+ readonly name: "AlreadyDelegated";
1362
+ readonly inputs: readonly [];
1363
+ }, {
1364
+ readonly type: "error";
1365
+ readonly name: "DirectAllowForbidden";
1366
+ readonly inputs: readonly [{
1367
+ readonly name: "sender";
1368
+ readonly type: "address";
1369
+ readonly internalType: "address";
1370
+ }];
1371
+ }, {
1372
+ readonly type: "error";
1373
+ readonly name: "InvalidShortString";
1374
+ readonly inputs: readonly [];
1375
+ }, {
1376
+ readonly type: "error";
1377
+ readonly name: "PermissionInvalid_Disabled";
1378
+ readonly inputs: readonly [];
1379
+ }, {
1380
+ readonly type: "error";
1381
+ readonly name: "PermissionInvalid_Expired";
1382
+ readonly inputs: readonly [];
1383
+ }, {
1384
+ readonly type: "error";
1385
+ readonly name: "PermissionInvalid_IssuerSignature";
1386
+ readonly inputs: readonly [];
1387
+ }, {
1388
+ readonly type: "error";
1389
+ readonly name: "PermissionInvalid_RecipientSignature";
1390
+ readonly inputs: readonly [];
1391
+ }, {
1392
+ readonly type: "error";
1393
+ readonly name: "SenderCannotBeDelegateeAddress";
1394
+ readonly inputs: readonly [];
1395
+ }, {
1396
+ readonly type: "error";
1397
+ readonly name: "SenderNotAllowed";
1398
+ readonly inputs: readonly [{
1399
+ readonly name: "sender";
1400
+ readonly type: "address";
1401
+ readonly internalType: "address";
1402
+ }];
1403
+ }, {
1404
+ readonly type: "error";
1405
+ readonly name: "StringTooLong";
1406
+ readonly inputs: readonly [{
1407
+ readonly name: "str";
1408
+ readonly type: "string";
1409
+ readonly internalType: "string";
1410
+ }];
1411
+ }];
1412
+ readonly bytecode: "0x610160604052348015610010575f5ffd5b506040518060400160405280600381526020017f41434c00000000000000000000000000000000000000000000000000000000008152506040518060400160405280600181526020017f31000000000000000000000000000000000000000000000000000000000000008152506100905f8361012b60201b90919060201c565b61012081815250506100ac60018261012b60201b90919060201c565b6101408181525050818051906020012060e08181525050808051906020012061010081815250504660a081815250506100e961017860201b60201c565b608081815250503073ffffffffffffffffffffffffffffffffffffffff1660c08173ffffffffffffffffffffffffffffffffffffffff1681525050505061072d565b5f60208351101561014c57610145836101d260201b60201c565b9050610172565b8261015c8361023760201b60201c565b5f01908161016a919061048e565b5060ff5f1b90505b92915050565b5f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60e0516101005146306040516020016101b79594939291906105c3565b60405160208183030381529060405280519060200120905090565b5f5f829050601f8151111561021e57826040517f305a27a9000000000000000000000000000000000000000000000000000000008152600401610215919061067a565b60405180910390fd5b80518161022a906106c7565b5f1c175f1b915050919050565b5f819050919050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806102bb57607f821691505b6020821081036102ce576102cd610277565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026103307fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826102f5565b61033a86836102f5565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f61037e61037961037484610352565b61035b565b610352565b9050919050565b5f819050919050565b61039783610364565b6103ab6103a382610385565b848454610301565b825550505050565b5f5f905090565b6103c26103b3565b6103cd81848461038e565b505050565b5f5b828110156103f3576103e85f8284016103ba565b6001810190506103d4565b505050565b601f821115610446578282111561044557610412816102d4565b61041b836102e6565b610424856102e6565b6020861015610431575f90505b808301610440828403826103d2565b505050505b5b505050565b5f82821c905092915050565b5f6104665f198460080261044b565b1980831691505092915050565b5f61047e8383610457565b9150826002028217905092915050565b61049782610240565b67ffffffffffffffff8111156104b0576104af61024a565b5b6104ba82546102a4565b6104c58282856103f8565b5f60209050601f8311600181146104f6575f84156104e4578287015190505b6104ee8582610473565b865550610555565b601f198416610504866102d4565b5f5b8281101561052b57848901518255600182019150602085019450602081019050610506565b868310156105485784890151610544601f891682610457565b8355505b6001600288020188555050505b505050505050565b5f819050919050565b61056f8161055d565b82525050565b61057e81610352565b82525050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6105ad82610584565b9050919050565b6105bd816105a3565b82525050565b5f60a0820190506105d65f830188610566565b6105e36020830187610566565b6105f06040830186610566565b6105fd6060830185610575565b61060a60808301846105b4565b9695505050505050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61064c82610240565b6106568185610614565b9350610666818560208601610624565b61066f81610632565b840191505092915050565b5f6020820190508181035f8301526106928184610642565b905092915050565b5f81519050919050565b5f819050602082019050919050565b5f6106be825161055d565b80915050919050565b5f6106d18261069a565b826106db846106a4565b90506106e6816106b3565b92506020821015610726576107217fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff836020036008026102f5565b831692505b5050919050565b60805160a05160c05160e05161010051610120516101405161309261077e5f395f6117a301525f61176801525f611ec701525f611ea601525f611a9001525f611ae601525f611b0f01526130925ff3fe608060405234801561000f575f5ffd5b506004361061012a575f3560e01c806365ce8df7116100ab57806394d9184c1161006f57806394d9184c14610334578063a8b7010014610364578063ae79f04a14610380578063cbf4f703146103b0578063ccd9a7cd146103e05761012a565b806365ce8df71461028a57806379a3a7fb146102a85780637a9a598e146102c4578063846cd433146102f457806384b0196e146103105761012a565b8063484de822116100f2578063484de822146101c05780634980f288146101dc57806351b8fd201461020c5780635faa299a1461022a5780636330a7091461025a5761012a565b80630d8e6e2c1461012e578063267c4ae41461014c57806335334c231461016a57806337e6b44f146101745780633c3839ba146101a4575b5f5ffd5b610136610410565b604051610143919061212e565b60405180910390f35b61015461048b565b6040516101619190612168565b60405180910390f35b610172610493565b005b61018e6004803603810190610189919061221f565b610544565b60405161019b9190612168565b60405180910390f35b6101be60048036038101906101b9919061239d565b6105b4565b005b6101da60048036038101906101d591906123f7565b610735565b005b6101f660048036038101906101f1919061247a565b610896565b60405161020391906124b4565b60405180910390f35b6102146108a7565b60405161022191906124dc565b60405180910390f35b610244600480360381019061023f919061221f565b6108bf565b6040516102519190612168565b60405180910390f35b610274600480360381019061026f91906124f5565b6108f3565b6040516102819190612168565b60405180910390f35b610292610927565b60405161029f91906124dc565b60405180910390f35b6102c260048036038101906102bd91906123f7565b610942565b005b6102de60048036038101906102d9919061221f565b610a88565b6040516102eb9190612168565b60405180910390f35b61030e6004803603810190610309919061221f565b610ac5565b005b610318610bce565b60405161032b9796959493929190612620565b60405180910390f35b61034e600480360381019061034991906124f5565b610c73565b60405161035b9190612168565b60405180910390f35b61037e600480360381019061037991906126a2565b610ca6565b005b61039a600480360381019061039591906128d4565b610fd6565b6040516103a79190612168565b60405180910390f35b6103ca60048036038101906103c5919061292e565b61122d565b6040516103d79190612168565b60405180910390f35b6103fa60048036038101906103f59190612975565b611478565b6040516104079190612168565b60405180910390f35b60606040518060400160405280600381526020017f41434c00000000000000000000000000000000000000000000000000000000008152506104515f611617565b61045b6001611617565b6104645f611617565b6040516020016104779493929190612aa7565b604051602081830303815290604052905090565b5f6001905090565b73ea30c4b8b44078bbf8a6ef5b9f1ec1626c7848d973ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461051757336040517f3809a24300000000000000000000000000000000000000000000000000000000815260040161050e91906124dc565b60405180910390fd5b5f5c5f5f5d6001810160015b8181101561053f57805c5f825d5f815d50600181019050610523565b505050565b5f5f61054e6116e1565b9050806001015f8581526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1691505092915050565b73ea30c4b8b44078bbf8a6ef5b9f1ec1626c7848d973ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461063857336040517f3809a24300000000000000000000000000000000000000000000000000000000815260040161062f91906124dc565b60405180910390fd5b5f825190505f6106466116e1565b90505f5f90505b828110156106f7575f85828151811061066957610668612b05565b5b6020026020010151905061067d81866108bf565b6106be57846040517fd0d259760000000000000000000000000000000000000000000000000000000081526004016106b591906124dc565b60405180910390fd5b6001836002015f8381526020019081526020015f205f6101000a81548160ff02191690831515021790555050808060010191505061064d565b507f2fd616621b8415a2efb27b224024340ac767797553ce6fdf4c1adefd160504c6846040516107279190612b32565b60405180910390a150505050565b73ea30c4b8b44078bbf8a6ef5b9f1ec1626c7848d973ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146107b957336040517f3809a2430000000000000000000000000000000000000000000000000000000081526004016107b091906124dc565b60405180910390fd5b6107c383826108bf565b158015610810575073ea30c4b8b44078bbf8a6ef5b9f1ec1626c7848d973ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1561085257806040517fd0d2597600000000000000000000000000000000000000000000000000000000815260040161084991906124dc565b60405180910390fd5b5f8383604051602001610866929190612bb7565b6040516020818303038152906040528051906020012090506001815d5f5c6001810182815d805f5d505050505050565b5f6108a082611747565b9050919050565b73ea30c4b8b44078bbf8a6ef5b9f1ec1626c7848d981565b5f6108ca8383610a88565b806108db57506108da8383610544565b5b806108eb57506108ea83610c73565b5b905092915050565b5f5f6108fd6116e1565b9050806002015f8481526020019081526020015f205f9054906101000a900460ff16915050919050565b5f73ea30c4b8b44078bbf8a6ef5b9f1ec1626c7848d9905090565b73ea30c4b8b44078bbf8a6ef5b9f1ec1626c7848d973ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146109c657336040517f3809a2430000000000000000000000000000000000000000000000000000000081526004016109bd91906124dc565b60405180910390fd5b6109d083826108bf565b610a1157806040517fd0d25976000000000000000000000000000000000000000000000000000000008152600401610a0891906124dc565b60405180910390fd5b5f610a1a6116e1565b90506001816001015f8681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050505050565b5f5f5f8484604051602001610a9e929190612bb7565b604051602081830303815290604052805190602001209050805c9150819250505092915050565b73ea30c4b8b44078bbf8a6ef5b9f1ec1626c7848d973ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610b4957336040517f3809a243000000000000000000000000000000000000000000000000000000008152600401610b4091906124dc565b60405180910390fd5b610b5382826108bf565b610b9457806040517fd0d25976000000000000000000000000000000000000000000000000000000008152600401610b8b91906124dc565b60405180910390fd5b5f610b9d6116e1565b90506001815f015f8581526020019081526020015f205f6101000a81548160ff021916908315150217905550505050565b5f6060805f5f5f6060610bdf611760565b610be761179a565b46305f5f1b5f67ffffffffffffffff811115610c0657610c05612261565b5b604051908082528060200260200182016040528015610c345781602001602082028036833780820191505090505b507f0f00000000000000000000000000000000000000000000000000000000000000959493929190965096509650965096509650965090919293949596565b5f5f610c7d6116e1565b9050805f015f8481526020019081526020015f205f9054906101000a900460ff16915050919050565b73ea30c4b8b44078bbf8a6ef5b9f1ec1626c7848d973ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610d2a57336040517f3809a243000000000000000000000000000000000000000000000000000000008152600401610d2191906124dc565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610d8f576040517f30dc920300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f610d986116e1565b9050806003015f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615610e93576040517fd186046800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001816003015f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167ff03b7c0d4879b0bcbbf440794871f139c96fd13a145a8172b33b9cab5fa2830a60405160405180910390a4505050565b5f8242816020015167ffffffffffffffff161015611020576040517fed0764a100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611042815f0151611038611033846117d5565b611747565b8360c0015161182e565b611078576040517f4c40eccb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff16816040015173ffffffffffffffffffffffffffffffffffffffff16141580156110d857506110d681604001516110cc6110c7846118da565b611747565b8360e0015161182e565b155b1561110f576040517f8e143bf700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f81606001511415801561115357505f73ffffffffffffffffffffffffffffffffffffffff16816080015173ffffffffffffffffffffffffffffffffffffffff1614155b80156111e05750806080015173ffffffffffffffffffffffffffffffffffffffff1663b63391e8825f015183606001516040518363ffffffff1660e01b81526004016111a0929190612be2565b602060405180830381865afa1580156111bb573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111df9190612c33565b5b15611217576040517fcbd3a96600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61122483855f01516108bf565b91505092915050565b5f8142816020015167ffffffffffffffff161015611277576040517fed0764a100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611299815f015161128f61128a846117d5565b611747565b8360c0015161182e565b6112cf576040517f4c40eccb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff16816040015173ffffffffffffffffffffffffffffffffffffffff161415801561132f575061132d816040015161132361131e846118da565b611747565b8360e0015161182e565b155b15611366576040517f8e143bf700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8160600151141580156113aa57505f73ffffffffffffffffffffffffffffffffffffffff16816080015173ffffffffffffffffffffffffffffffffffffffff1614155b80156114375750806080015173ffffffffffffffffffffffffffffffffffffffff1663b63391e8825f015183606001516040518363ffffffff1660e01b81526004016113f7929190612be2565b602060405180830381865afa158015611412573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114369190612c33565b5b1561146e576040517fcbd3a96600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001915050919050565b5f5f6114826116e1565b9050806001015f8681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680156115425750806001015f8681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b801561160c5750806003015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b915050949350505050565b60605f60016116258461193c565b0190505f8167ffffffffffffffff81111561164357611642612261565b5b6040519080825280601f01601f1916602001820160405280156116755781602001600182028036833780820191505090505b5090505f82602083010190505b6001156116d6578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a85816116cb576116ca612c5e565b5b0494505f8503611682575b819350505050919050565b5f5f60ff5f1b1960017fc4eb438ffad04c606bb4f9c3576c0f142d5dc3782731029ea1ab95b6483220115f1c6117179190612cb8565b6040516020016117279190612ceb565b604051602081830303815290604052805190602001201690508091505090565b5f611759611753611a8d565b83611b43565b9050919050565b60606117955f7f0000000000000000000000000000000000000000000000000000000000000000611b8390919063ffffffff16565b905090565b60606117d060017f0000000000000000000000000000000000000000000000000000000000000000611b8390919063ffffffff16565b905090565b5f5f73ffffffffffffffffffffffffffffffffffffffff16826040015173ffffffffffffffffffffffffffffffffffffffff160361181d5761181682611c30565b9050611829565b61182682611ca2565b90505b919050565b5f5f8473ffffffffffffffffffffffffffffffffffffffff163b036118c5575f5f6118598585611d0e565b50915091505f600381111561187157611870612d04565b5b81600381111561188457611883612d04565b5b1480156118bc57508573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b925050506118d3565b6118d0848484611d63565b90505b9392505050565b5f7f82af07a6c9eb6bb31a0c86f7f5cad0039589750ad5b4b925ed5741f7ad4e8d4b8260a001518360c001518051906020012060405160200161191f93929190612d31565b604051602081830303815290604052805190602001209050919050565b5f5f5f90507a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310611998577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000838161198e5761198d612c5e565b5b0492506040810190505b6d04ee2d6d415b85acef810000000083106119d5576d04ee2d6d415b85acef810000000083816119cb576119ca612c5e565b5b0492506020810190505b662386f26fc100008310611a0457662386f26fc1000083816119fa576119f9612c5e565b5b0492506010810190505b6305f5e1008310611a2d576305f5e1008381611a2357611a22612c5e565b5b0492506008810190505b6127108310611a52576127108381611a4857611a47612c5e565b5b0492506004810190505b60648310611a755760648381611a6b57611a6a612c5e565b5b0492506002810190505b600a8310611a84576001810190505b80915050919050565b5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff16148015611b0857507f000000000000000000000000000000000000000000000000000000000000000046145b15611b35577f00000000000000000000000000000000000000000000000000000000000000009050611b40565b611b3d611e82565b90505b90565b5f6040517f190100000000000000000000000000000000000000000000000000000000000081528360028201528260228201526042812091505092915050565b606060ff5f1b8314611b9f57611b9883611f17565b9050611c2a565b818054611bab90612d93565b80601f0160208091040260200160405190810160405280929190818152602001828054611bd790612d93565b8015611c225780601f10611bf957610100808354040283529160200191611c22565b820191905f5260205f20905b815481529060010190602001808311611c0557829003601f168201915b505050505090505b92915050565b5f7f0ce0d938c38f948b8f9cf16098cd15ec62de132c8d422719ad270c5e2a101102825f015183602001518460400151856060015186608001518760a00151604051602001611c859796959493929190612dd2565b604051602081830303815290604052805190602001209050919050565b5f7f8549e986c64faf9b741179c61561f9d39f337cf9739f86178d84dabc6ca4cad5825f01518360200151846040015185606001518660800151604051602001611cf196959493929190612e3f565b604051602081830303815290604052805190602001209050919050565b5f5f5f6041845103611d4e575f5f5f602087015192506040870151915060608701515f1a9050611d4088828585611f89565b955095509550505050611d5c565b5f600285515f1b9250925092505b9250925092565b5f5f5f8573ffffffffffffffffffffffffffffffffffffffff168585604051602401611d90929190612ef0565b604051602081830303815290604052631626ba7e60e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051611de29190612f58565b5f60405180830381855afa9150503d805f8114611e1a576040519150601f19603f3d011682016040523d82523d5f602084013e611e1f565b606091505b5091509150818015611e3357506020815110155b8015611e775750631626ba7e60e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681806020019051810190611e759190612f82565b145b925050509392505050565b5f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000004630604051602001611efc959493929190612fad565b60405160208183030381529060405280519060200120905090565b60605f611f2383612070565b90505f602067ffffffffffffffff811115611f4157611f40612261565b5b6040519080825280601f01601f191660200182016040528015611f735781602001600182028036833780820191505090505b5090508181528360208201528092505050919050565b5f5f5f7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0845f1c1115611fc5575f600385925092509250612066565b5f6001888888886040515f8152602001604052604051611fe89493929190613019565b6020604051602081039080840390855afa158015612008573d5f5f3e3d5ffd5b5050506020604051035190505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612059575f60015f5f1b93509350935050612066565b805f5f5f1b935093509350505b9450945094915050565b5f5f60ff835f1c169050601f8111156120b5576040517fb3512b0c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80915050919050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f612100826120be565b61210a81856120c8565b935061211a8185602086016120d8565b612123816120e6565b840191505092915050565b5f6020820190508181035f83015261214681846120f6565b905092915050565b5f8115159050919050565b6121628161214e565b82525050565b5f60208201905061217b5f830184612159565b92915050565b5f604051905090565b5f5ffd5b5f5ffd5b5f819050919050565b6121a481612192565b81146121ae575f5ffd5b50565b5f813590506121bf8161219b565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6121ee826121c5565b9050919050565b6121fe816121e4565b8114612208575f5ffd5b50565b5f81359050612219816121f5565b92915050565b5f5f604083850312156122355761223461218a565b5b5f612242858286016121b1565b92505060206122538582860161220b565b9150509250929050565b5f5ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b612297826120e6565b810181811067ffffffffffffffff821117156122b6576122b5612261565b5b80604052505050565b5f6122c8612181565b90506122d4828261228e565b919050565b5f67ffffffffffffffff8211156122f3576122f2612261565b5b602082029050602081019050919050565b5f5ffd5b5f61231a612315846122d9565b6122bf565b9050808382526020820190506020840283018581111561233d5761233c612304565b5b835b81811015612366578061235288826121b1565b84526020840193505060208101905061233f565b5050509392505050565b5f82601f8301126123845761238361225d565b5b8135612394848260208601612308565b91505092915050565b5f5f604083850312156123b3576123b261218a565b5b5f83013567ffffffffffffffff8111156123d0576123cf61218e565b5b6123dc85828601612370565b92505060206123ed8582860161220b565b9150509250929050565b5f5f5f6060848603121561240e5761240d61218a565b5b5f61241b868287016121b1565b935050602061242c8682870161220b565b925050604061243d8682870161220b565b9150509250925092565b5f819050919050565b61245981612447565b8114612463575f5ffd5b50565b5f8135905061247481612450565b92915050565b5f6020828403121561248f5761248e61218a565b5b5f61249c84828501612466565b91505092915050565b6124ae81612447565b82525050565b5f6020820190506124c75f8301846124a5565b92915050565b6124d6816121e4565b82525050565b5f6020820190506124ef5f8301846124cd565b92915050565b5f6020828403121561250a5761250961218a565b5b5f612517848285016121b1565b91505092915050565b5f7fff0000000000000000000000000000000000000000000000000000000000000082169050919050565b61255481612520565b82525050565b61256381612192565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61259b81612192565b82525050565b5f6125ac8383612592565b60208301905092915050565b5f602082019050919050565b5f6125ce82612569565b6125d88185612573565b93506125e383612583565b805f5b838110156126135781516125fa88826125a1565b9750612605836125b8565b9250506001810190506125e6565b5085935050505092915050565b5f60e0820190506126335f83018a61254b565b818103602083015261264581896120f6565b9050818103604083015261265981886120f6565b9050612668606083018761255a565b61267560808301866124cd565b61268260a08301856124a5565b81810360c083015261269481846125c4565b905098975050505050505050565b5f5f604083850312156126b8576126b761218a565b5b5f6126c58582860161220b565b92505060206126d68582860161220b565b9150509250929050565b5f5ffd5b5f5ffd5b5f67ffffffffffffffff82169050919050565b612704816126e8565b811461270e575f5ffd5b50565b5f8135905061271f816126fb565b92915050565b5f5ffd5b5f67ffffffffffffffff82111561274357612742612261565b5b61274c826120e6565b9050602081019050919050565b828183375f83830152505050565b5f61277961277484612729565b6122bf565b90508281526020810184848401111561279557612794612725565b5b6127a0848285612759565b509392505050565b5f82601f8301126127bc576127bb61225d565b5b81356127cc848260208601612767565b91505092915050565b5f61010082840312156127eb576127ea6126e0565b5b6127f66101006122bf565b90505f6128058482850161220b565b5f83015250602061281884828501612711565b602083015250604061282c8482850161220b565b6040830152506060612840848285016121b1565b60608301525060806128548482850161220b565b60808301525060a061286884828501612466565b60a08301525060c082013567ffffffffffffffff81111561288c5761288b6126e4565b5b612898848285016127a8565b60c08301525060e082013567ffffffffffffffff8111156128bc576128bb6126e4565b5b6128c8848285016127a8565b60e08301525092915050565b5f5f604083850312156128ea576128e961218a565b5b5f83013567ffffffffffffffff8111156129075761290661218e565b5b612913858286016127d5565b9250506020612924858286016121b1565b9150509250929050565b5f602082840312156129435761294261218a565b5b5f82013567ffffffffffffffff8111156129605761295f61218e565b5b61296c848285016127d5565b91505092915050565b5f5f5f5f6080858703121561298d5761298c61218a565b5b5f61299a8782880161220b565b94505060206129ab878288016121b1565b93505060406129bc8782880161220b565b92505060606129cd8782880161220b565b91505092959194509250565b5f81905092915050565b5f6129ed826120be565b6129f781856129d9565b9350612a078185602086016120d8565b80840191505092915050565b7f20760000000000000000000000000000000000000000000000000000000000005f82015250565b5f612a476002836129d9565b9150612a5282612a13565b600282019050919050565b7f2e000000000000000000000000000000000000000000000000000000000000005f82015250565b5f612a916001836129d9565b9150612a9c82612a5d565b600182019050919050565b5f612ab282876129e3565b9150612abd82612a3b565b9150612ac982866129e3565b9150612ad482612a85565b9150612ae082856129e3565b9150612aeb82612a85565b9150612af782846129e3565b915081905095945050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f6020820190508181035f830152612b4a81846125c4565b905092915050565b5f819050919050565b612b6c612b6782612192565b612b52565b82525050565b5f8160601b9050919050565b5f612b8882612b72565b9050919050565b5f612b9982612b7e565b9050919050565b612bb1612bac826121e4565b612b8f565b82525050565b5f612bc28285612b5b565b602082019150612bd28284612ba0565b6014820191508190509392505050565b5f604082019050612bf55f8301856124cd565b612c02602083018461255a565b9392505050565b612c128161214e565b8114612c1c575f5ffd5b50565b5f81519050612c2d81612c09565b92915050565b5f60208284031215612c4857612c4761218a565b5b5f612c5584828501612c1f565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f612cc282612192565b9150612ccd83612192565b9250828203905081811115612ce557612ce4612c8b565b5b92915050565b5f602082019050612cfe5f83018461255a565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b5f606082019050612d445f8301866124a5565b612d5160208301856124a5565b612d5e60408301846124a5565b949350505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680612daa57607f821691505b602082108103612dbd57612dbc612d66565b5b50919050565b612dcc816126e8565b82525050565b5f60e082019050612de55f83018a6124a5565b612df260208301896124cd565b612dff6040830188612dc3565b612e0c60608301876124cd565b612e19608083018661255a565b612e2660a08301856124cd565b612e3360c08301846124a5565b98975050505050505050565b5f60c082019050612e525f8301896124a5565b612e5f60208301886124cd565b612e6c6040830187612dc3565b612e7960608301866124cd565b612e86608083018561255a565b612e9360a08301846124cd565b979650505050505050565b5f81519050919050565b5f82825260208201905092915050565b5f612ec282612e9e565b612ecc8185612ea8565b9350612edc8185602086016120d8565b612ee5816120e6565b840191505092915050565b5f604082019050612f035f8301856124a5565b8181036020830152612f158184612eb8565b90509392505050565b5f81905092915050565b5f612f3282612e9e565b612f3c8185612f1e565b9350612f4c8185602086016120d8565b80840191505092915050565b5f612f638284612f28565b915081905092915050565b5f81519050612f7c81612450565b92915050565b5f60208284031215612f9757612f9661218a565b5b5f612fa484828501612f6e565b91505092915050565b5f60a082019050612fc05f8301886124a5565b612fcd60208301876124a5565b612fda60408301866124a5565b612fe7606083018561255a565b612ff460808301846124cd565b9695505050505050565b5f60ff82169050919050565b61301381612ffe565b82525050565b5f60808201905061302c5f8301876124a5565b613039602083018661300a565b61304660408301856124a5565b61305360608301846124a5565b9594505050505056fea2646970667358221220c5d6e82239a714c525252082469fbf71070b387cd176f4ba7dce187b64d2ae3964736f6c63430008210033";
1413
+ };
1414
+
1415
+ declare const MockZkVerifierArtifact: {
1416
+ readonly contractName: "MockZkVerifier";
1417
+ readonly isFixed: true;
1418
+ readonly fixedAddress: "0x0000000000000000000000000000000000005001";
1419
+ readonly abi: readonly [{
1420
+ readonly type: "function";
1421
+ readonly name: "exists";
1422
+ readonly inputs: readonly [];
1423
+ readonly outputs: readonly [{
1424
+ readonly name: "";
1425
+ readonly type: "bool";
1426
+ readonly internalType: "bool";
1427
+ }];
1428
+ readonly stateMutability: "pure";
1429
+ }, {
1430
+ readonly type: "function";
1431
+ readonly name: "insertCtHash";
1432
+ readonly inputs: readonly [{
1433
+ readonly name: "ctHash";
1434
+ readonly type: "uint256";
1435
+ readonly internalType: "uint256";
1436
+ }, {
1437
+ readonly name: "value";
1438
+ readonly type: "uint256";
1439
+ readonly internalType: "uint256";
1440
+ }];
1441
+ readonly outputs: readonly [];
1442
+ readonly stateMutability: "nonpayable";
1443
+ }, {
1444
+ readonly type: "function";
1445
+ readonly name: "insertPackedCtHashes";
1446
+ readonly inputs: readonly [{
1447
+ readonly name: "ctHashes";
1448
+ readonly type: "uint256[]";
1449
+ readonly internalType: "uint256[]";
1450
+ }, {
1451
+ readonly name: "values";
1452
+ readonly type: "uint256[]";
1453
+ readonly internalType: "uint256[]";
1454
+ }];
1455
+ readonly outputs: readonly [];
1456
+ readonly stateMutability: "nonpayable";
1457
+ }, {
1458
+ readonly type: "function";
1459
+ readonly name: "zkVerify";
1460
+ readonly inputs: readonly [{
1461
+ readonly name: "value";
1462
+ readonly type: "uint256";
1463
+ readonly internalType: "uint256";
1464
+ }, {
1465
+ readonly name: "utype";
1466
+ readonly type: "uint8";
1467
+ readonly internalType: "uint8";
1468
+ }, {
1469
+ readonly name: "user";
1470
+ readonly type: "address";
1471
+ readonly internalType: "address";
1472
+ }, {
1473
+ readonly name: "securityZone";
1474
+ readonly type: "uint8";
1475
+ readonly internalType: "uint8";
1476
+ }, {
1477
+ readonly name: "";
1478
+ readonly type: "uint256";
1479
+ readonly internalType: "uint256";
1480
+ }];
1481
+ readonly outputs: readonly [{
1482
+ readonly name: "";
1483
+ readonly type: "tuple";
1484
+ readonly internalType: "struct EncryptedInput";
1485
+ readonly components: readonly [{
1486
+ readonly name: "ctHash";
1487
+ readonly type: "uint256";
1488
+ readonly internalType: "uint256";
1489
+ }, {
1490
+ readonly name: "securityZone";
1491
+ readonly type: "uint8";
1492
+ readonly internalType: "uint8";
1493
+ }, {
1494
+ readonly name: "utype";
1495
+ readonly type: "uint8";
1496
+ readonly internalType: "uint8";
1497
+ }, {
1498
+ readonly name: "signature";
1499
+ readonly type: "bytes";
1500
+ readonly internalType: "bytes";
1501
+ }];
1502
+ }];
1503
+ readonly stateMutability: "nonpayable";
1504
+ }, {
1505
+ readonly type: "function";
1506
+ readonly name: "zkVerifyCalcCtHash";
1507
+ readonly inputs: readonly [{
1508
+ readonly name: "value";
1509
+ readonly type: "uint256";
1510
+ readonly internalType: "uint256";
1511
+ }, {
1512
+ readonly name: "utype";
1513
+ readonly type: "uint8";
1514
+ readonly internalType: "uint8";
1515
+ }, {
1516
+ readonly name: "user";
1517
+ readonly type: "address";
1518
+ readonly internalType: "address";
1519
+ }, {
1520
+ readonly name: "securityZone";
1521
+ readonly type: "uint8";
1522
+ readonly internalType: "uint8";
1523
+ }, {
1524
+ readonly name: "";
1525
+ readonly type: "uint256";
1526
+ readonly internalType: "uint256";
1527
+ }];
1528
+ readonly outputs: readonly [{
1529
+ readonly name: "ctHash";
1530
+ readonly type: "uint256";
1531
+ readonly internalType: "uint256";
1532
+ }];
1533
+ readonly stateMutability: "view";
1534
+ }, {
1535
+ readonly type: "function";
1536
+ readonly name: "zkVerifyCalcCtHashesPacked";
1537
+ readonly inputs: readonly [{
1538
+ readonly name: "values";
1539
+ readonly type: "uint256[]";
1540
+ readonly internalType: "uint256[]";
1541
+ }, {
1542
+ readonly name: "utypes";
1543
+ readonly type: "uint8[]";
1544
+ readonly internalType: "uint8[]";
1545
+ }, {
1546
+ readonly name: "user";
1547
+ readonly type: "address";
1548
+ readonly internalType: "address";
1549
+ }, {
1550
+ readonly name: "securityZone";
1551
+ readonly type: "uint8";
1552
+ readonly internalType: "uint8";
1553
+ }, {
1554
+ readonly name: "chainId";
1555
+ readonly type: "uint256";
1556
+ readonly internalType: "uint256";
1557
+ }];
1558
+ readonly outputs: readonly [{
1559
+ readonly name: "ctHashes";
1560
+ readonly type: "uint256[]";
1561
+ readonly internalType: "uint256[]";
1562
+ }];
1563
+ readonly stateMutability: "view";
1564
+ }, {
1565
+ readonly type: "function";
1566
+ readonly name: "zkVerifyPacked";
1567
+ readonly inputs: readonly [{
1568
+ readonly name: "values";
1569
+ readonly type: "uint256[]";
1570
+ readonly internalType: "uint256[]";
1571
+ }, {
1572
+ readonly name: "utypes";
1573
+ readonly type: "uint8[]";
1574
+ readonly internalType: "uint8[]";
1575
+ }, {
1576
+ readonly name: "user";
1577
+ readonly type: "address";
1578
+ readonly internalType: "address";
1579
+ }, {
1580
+ readonly name: "securityZone";
1581
+ readonly type: "uint8";
1582
+ readonly internalType: "uint8";
1583
+ }, {
1584
+ readonly name: "chainId";
1585
+ readonly type: "uint256";
1586
+ readonly internalType: "uint256";
1587
+ }];
1588
+ readonly outputs: readonly [{
1589
+ readonly name: "inputs";
1590
+ readonly type: "tuple[]";
1591
+ readonly internalType: "struct EncryptedInput[]";
1592
+ readonly components: readonly [{
1593
+ readonly name: "ctHash";
1594
+ readonly type: "uint256";
1595
+ readonly internalType: "uint256";
1596
+ }, {
1597
+ readonly name: "securityZone";
1598
+ readonly type: "uint8";
1599
+ readonly internalType: "uint8";
1600
+ }, {
1601
+ readonly name: "utype";
1602
+ readonly type: "uint8";
1603
+ readonly internalType: "uint8";
1604
+ }, {
1605
+ readonly name: "signature";
1606
+ readonly type: "bytes";
1607
+ readonly internalType: "bytes";
1608
+ }];
1609
+ }];
1610
+ readonly stateMutability: "nonpayable";
1611
+ }, {
1612
+ readonly type: "error";
1613
+ readonly name: "InvalidInputs";
1614
+ readonly inputs: readonly [];
1615
+ }];
1616
+ readonly deployedBytecode: "0x608060405234801561000f575f5ffd5b506004361061007b575f3560e01c8063772de59611610059578063772de596146100e9578063a2616ba914610119578063a9f046cd14610149578063d2a0693e146101655761007b565b8063267c4ae41461007f5780635946761f1461009d57806366dfcfc6146100cd575b5f5ffd5b610087610195565b6040516100949190610750565b60405180910390f35b6100b760048036038101906100b29190610a4d565b61019d565b6040516100c49190610c95565b60405180910390f35b6100e760048036038101906100e29190610cb5565b6102b5565b005b61010360048036038101906100fe9190610a4d565b61034d565b6040516101109190610d9b565b60405180910390f35b610133600480360381019061012e9190610dbb565b61045b565b6040516101409190610e92565b60405180910390f35b610163600480360381019061015e9190610eb2565b6104bd565b005b61017f600480360381019061017a9190610dbb565b61051b565b60405161018c9190610f37565b60405180910390f35b5f6001905090565b606085518551146101da576040517ff34cfab600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b845167ffffffffffffffff8111156101f5576101f461078e565b5b60405190808252806020026020018201604052801561022e57816020015b61021b61070b565b8152602001906001900390816102135790505b5090505f5f90505b85518110156102ab5761028087828151811061025557610254610f50565b5b60200260200101518783815181106102705761026f610f50565b5b602002602001015187878761045b565b82828151811061029357610292610f50565b5b60200260200101819052508080600101915050610236565b5095945050505050565b73ea30c4b8b44078bbf8a6ef5b9f1ec1626c7848d973ffffffffffffffffffffffffffffffffffffffff166315a486fe83836040518363ffffffff1660e01b8152600401610304929190610f7d565b5f604051808303815f87803b15801561031b575f5ffd5b505af115801561032d573d5f5f3e3d5ffd5b5050505060015f5f8282546103429190610fd1565b925050819055505050565b6060855185511461038a576040517ff34cfab600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b845167ffffffffffffffff8111156103a5576103a461078e565b5b6040519080825280602002602001820160405280156103d35781602001602082028036833780820191505090505b5090505f5f90505b8551811015610451576104258782815181106103fa576103f9610f50565b5b602002602001015187838151811061041557610414610f50565b5b602002602001015187878761051b565b82828151811061043857610437610f50565b5b60200260200101818152505080806001019150506103db565b5095945050505050565b61046361070b565b5f6104708587868a610533565b905061047c81886102b5565b60405180608001604052808281526020018560ff1681526020018760ff16815260200160405180602001604052805f81525081525091505095945050505050565b5f5f90505b8251811015610516576105098382815181106104e1576104e0610f50565b5b60200260200101518383815181106104fc576104fb610f50565b5b60200260200101516102b5565b80806001019150506104c2565b505050565b5f61052884868589610533565b905095945050505050565b5f5f61053e83610611565b60405160200161054e919061103e565b60405160208183030381529060405290508061057f8773ffffffffffffffffffffffffffffffffffffffff16610611565b604051602001610590929190611054565b6040516020818303038152906040529050805f546040516020016105b49190611097565b604051602081830303815290604052805190602001206040516020016105db9291906110da565b60405160208183030381529060405290505f81805190602001209050610605815f1c86885f610673565b92505050949350505050565b60605f602067ffffffffffffffff81111561062f5761062e61078e565b5b6040519080825280601f01601f1916602001820160405280156106615781602001600182028036833780820191505090505b50905082602082015280915050919050565b5f61ffff80167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6106a49190611101565b851690505f8460ff1660086106b985876106cc565b901b179050808217915050949350505050565b5f600160ff8016901c60ff168260ff1616836106e8575f610702565b600160ff8016901c60ff1660ff80166107019190611101565b5b17905092915050565b60405180608001604052805f81526020015f60ff1681526020015f60ff168152602001606081525090565b5f8115159050919050565b61074a81610736565b82525050565b5f6020820190506107635f830184610741565b92915050565b5f604051905090565b5f5ffd5b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6107c48261077e565b810181811067ffffffffffffffff821117156107e3576107e261078e565b5b80604052505050565b5f6107f5610769565b905061080182826107bb565b919050565b5f67ffffffffffffffff8211156108205761081f61078e565b5b602082029050602081019050919050565b5f5ffd5b5f819050919050565b61084781610835565b8114610851575f5ffd5b50565b5f813590506108628161083e565b92915050565b5f61087a61087584610806565b6107ec565b9050808382526020820190506020840283018581111561089d5761089c610831565b5b835b818110156108c657806108b28882610854565b84526020840193505060208101905061089f565b5050509392505050565b5f82601f8301126108e4576108e361077a565b5b81356108f4848260208601610868565b91505092915050565b5f67ffffffffffffffff8211156109175761091661078e565b5b602082029050602081019050919050565b5f60ff82169050919050565b61093d81610928565b8114610947575f5ffd5b50565b5f8135905061095881610934565b92915050565b5f61097061096b846108fd565b6107ec565b9050808382526020820190506020840283018581111561099357610992610831565b5b835b818110156109bc57806109a8888261094a565b845260208401935050602081019050610995565b5050509392505050565b5f82601f8301126109da576109d961077a565b5b81356109ea84826020860161095e565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610a1c826109f3565b9050919050565b610a2c81610a12565b8114610a36575f5ffd5b50565b5f81359050610a4781610a23565b92915050565b5f5f5f5f5f60a08688031215610a6657610a65610772565b5b5f86013567ffffffffffffffff811115610a8357610a82610776565b5b610a8f888289016108d0565b955050602086013567ffffffffffffffff811115610ab057610aaf610776565b5b610abc888289016109c6565b9450506040610acd88828901610a39565b9350506060610ade8882890161094a565b9250506080610aef88828901610854565b9150509295509295909350565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b610b2e81610835565b82525050565b610b3d81610928565b82525050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f610b7582610b43565b610b7f8185610b4d565b9350610b8f818560208601610b5d565b610b988161077e565b840191505092915050565b5f608083015f830151610bb85f860182610b25565b506020830151610bcb6020860182610b34565b506040830151610bde6040860182610b34565b5060608301518482036060860152610bf68282610b6b565b9150508091505092915050565b5f610c0e8383610ba3565b905092915050565b5f602082019050919050565b5f610c2c82610afc565b610c368185610b06565b935083602082028501610c4885610b16565b805f5b85811015610c835784840389528151610c648582610c03565b9450610c6f83610c16565b925060208a01995050600181019050610c4b565b50829750879550505050505092915050565b5f6020820190508181035f830152610cad8184610c22565b905092915050565b5f5f60408385031215610ccb57610cca610772565b5b5f610cd885828601610854565b9250506020610ce985828601610854565b9150509250929050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f610d278383610b25565b60208301905092915050565b5f602082019050919050565b5f610d4982610cf3565b610d538185610cfd565b9350610d5e83610d0d565b805f5b83811015610d8e578151610d758882610d1c565b9750610d8083610d33565b925050600181019050610d61565b5085935050505092915050565b5f6020820190508181035f830152610db38184610d3f565b905092915050565b5f5f5f5f5f60a08688031215610dd457610dd3610772565b5b5f610de188828901610854565b9550506020610df28882890161094a565b9450506040610e0388828901610a39565b9350506060610e148882890161094a565b9250506080610e2588828901610854565b9150509295509295909350565b5f608083015f830151610e475f860182610b25565b506020830151610e5a6020860182610b34565b506040830151610e6d6040860182610b34565b5060608301518482036060860152610e858282610b6b565b9150508091505092915050565b5f6020820190508181035f830152610eaa8184610e32565b905092915050565b5f5f60408385031215610ec857610ec7610772565b5b5f83013567ffffffffffffffff811115610ee557610ee4610776565b5b610ef1858286016108d0565b925050602083013567ffffffffffffffff811115610f1257610f11610776565b5b610f1e858286016108d0565b9150509250929050565b610f3181610835565b82525050565b5f602082019050610f4a5f830184610f28565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f604082019050610f905f830185610f28565b610f9d6020830184610f28565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610fdb82610835565b9150610fe683610835565b9250828201905080821115610ffe57610ffd610fa4565b5b92915050565b5f81905092915050565b5f61101882610b43565b6110228185611004565b9350611032818560208601610b5d565b80840191505092915050565b5f611049828461100e565b915081905092915050565b5f61105f828561100e565b915061106b828461100e565b91508190509392505050565b5f819050919050565b61109161108c82610835565b611077565b82525050565b5f6110a28284611080565b60208201915081905092915050565b5f819050919050565b5f819050919050565b6110d46110cf826110b1565b6110ba565b82525050565b5f6110e5828561100e565b91506110f182846110c3565b6020820191508190509392505050565b5f61110b82610835565b915061111683610835565b925082820390508181111561112e5761112d610fa4565b5b9291505056fea26469706673582212205ac62186288ac4a4028b2b0b67b58a9e0c52950cc677276012e68fc94b7d5c1b64736f6c63430008210033";
1617
+ };
1618
+
1619
+ declare const MockThresholdNetworkArtifact: {
1620
+ readonly contractName: "MockThresholdNetwork";
1621
+ readonly isFixed: true;
1622
+ readonly fixedAddress: "0x0000000000000000000000000000000000005002";
1623
+ readonly abi: readonly [{
1624
+ readonly type: "function";
1625
+ readonly name: "decodeLowLevelReversion";
1626
+ readonly inputs: readonly [{
1627
+ readonly name: "data";
1628
+ readonly type: "bytes";
1629
+ readonly internalType: "bytes";
1630
+ }];
1631
+ readonly outputs: readonly [{
1632
+ readonly name: "error";
1633
+ readonly type: "string";
1634
+ readonly internalType: "string";
1635
+ }];
1636
+ readonly stateMutability: "pure";
1637
+ }, {
1638
+ readonly type: "function";
1639
+ readonly name: "decryptForTxWithPermit";
1640
+ readonly inputs: readonly [{
1641
+ readonly name: "ctHash";
1642
+ readonly type: "uint256";
1643
+ readonly internalType: "uint256";
1644
+ }, {
1645
+ readonly name: "permission";
1646
+ readonly type: "tuple";
1647
+ readonly internalType: "struct Permission";
1648
+ readonly components: readonly [{
1649
+ readonly name: "issuer";
1650
+ readonly type: "address";
1651
+ readonly internalType: "address";
1652
+ }, {
1653
+ readonly name: "expiration";
1654
+ readonly type: "uint64";
1655
+ readonly internalType: "uint64";
1656
+ }, {
1657
+ readonly name: "recipient";
1658
+ readonly type: "address";
1659
+ readonly internalType: "address";
1660
+ }, {
1661
+ readonly name: "validatorId";
1662
+ readonly type: "uint256";
1663
+ readonly internalType: "uint256";
1664
+ }, {
1665
+ readonly name: "validatorContract";
1666
+ readonly type: "address";
1667
+ readonly internalType: "address";
1668
+ }, {
1669
+ readonly name: "sealingKey";
1670
+ readonly type: "bytes32";
1671
+ readonly internalType: "bytes32";
1672
+ }, {
1673
+ readonly name: "issuerSignature";
1674
+ readonly type: "bytes";
1675
+ readonly internalType: "bytes";
1676
+ }, {
1677
+ readonly name: "recipientSignature";
1678
+ readonly type: "bytes";
1679
+ readonly internalType: "bytes";
1680
+ }];
1681
+ }];
1682
+ readonly outputs: readonly [{
1683
+ readonly name: "allowed";
1684
+ readonly type: "bool";
1685
+ readonly internalType: "bool";
1686
+ }, {
1687
+ readonly name: "error";
1688
+ readonly type: "string";
1689
+ readonly internalType: "string";
1690
+ }, {
1691
+ readonly name: "decryptedValue";
1692
+ readonly type: "uint256";
1693
+ readonly internalType: "uint256";
1694
+ }];
1695
+ readonly stateMutability: "view";
1696
+ }, {
1697
+ readonly type: "function";
1698
+ readonly name: "decryptForTxWithoutPermit";
1699
+ readonly inputs: readonly [{
1700
+ readonly name: "ctHash";
1701
+ readonly type: "uint256";
1702
+ readonly internalType: "uint256";
1703
+ }];
1704
+ readonly outputs: readonly [{
1705
+ readonly name: "allowed";
1706
+ readonly type: "bool";
1707
+ readonly internalType: "bool";
1708
+ }, {
1709
+ readonly name: "error";
1710
+ readonly type: "string";
1711
+ readonly internalType: "string";
1712
+ }, {
1713
+ readonly name: "decryptedValue";
1714
+ readonly type: "uint256";
1715
+ readonly internalType: "uint256";
1716
+ }];
1717
+ readonly stateMutability: "view";
1718
+ }, {
1719
+ readonly type: "function";
1720
+ readonly name: "exists";
1721
+ readonly inputs: readonly [];
1722
+ readonly outputs: readonly [{
1723
+ readonly name: "";
1724
+ readonly type: "bool";
1725
+ readonly internalType: "bool";
1726
+ }];
1727
+ readonly stateMutability: "pure";
1728
+ }, {
1729
+ readonly type: "function";
1730
+ readonly name: "initialize";
1731
+ readonly inputs: readonly [{
1732
+ readonly name: "_taskManager";
1733
+ readonly type: "address";
1734
+ readonly internalType: "address";
1735
+ }, {
1736
+ readonly name: "_acl";
1737
+ readonly type: "address";
1738
+ readonly internalType: "address";
1739
+ }];
1740
+ readonly outputs: readonly [];
1741
+ readonly stateMutability: "nonpayable";
1742
+ }, {
1743
+ readonly type: "function";
1744
+ readonly name: "mockAcl";
1745
+ readonly inputs: readonly [];
1746
+ readonly outputs: readonly [{
1747
+ readonly name: "";
1748
+ readonly type: "address";
1749
+ readonly internalType: "contract MockACL";
1750
+ }];
1751
+ readonly stateMutability: "view";
1752
+ }, {
1753
+ readonly type: "function";
1754
+ readonly name: "mockQueryDecrypt";
1755
+ readonly inputs: readonly [{
1756
+ readonly name: "ctHash";
1757
+ readonly type: "uint256";
1758
+ readonly internalType: "uint256";
1759
+ }, {
1760
+ readonly name: "";
1761
+ readonly type: "uint256";
1762
+ readonly internalType: "uint256";
1763
+ }, {
1764
+ readonly name: "issuer";
1765
+ readonly type: "address";
1766
+ readonly internalType: "address";
1767
+ }];
1768
+ readonly outputs: readonly [{
1769
+ readonly name: "allowed";
1770
+ readonly type: "bool";
1771
+ readonly internalType: "bool";
1772
+ }, {
1773
+ readonly name: "error";
1774
+ readonly type: "string";
1775
+ readonly internalType: "string";
1776
+ }, {
1777
+ readonly name: "";
1778
+ readonly type: "uint256";
1779
+ readonly internalType: "uint256";
1780
+ }];
1781
+ readonly stateMutability: "view";
1782
+ }, {
1783
+ readonly type: "function";
1784
+ readonly name: "mockTaskManager";
1785
+ readonly inputs: readonly [];
1786
+ readonly outputs: readonly [{
1787
+ readonly name: "";
1788
+ readonly type: "address";
1789
+ readonly internalType: "contract MockTaskManager";
1790
+ }];
1791
+ readonly stateMutability: "view";
1792
+ }, {
1793
+ readonly type: "function";
1794
+ readonly name: "queryDecrypt";
1795
+ readonly inputs: readonly [{
1796
+ readonly name: "ctHash";
1797
+ readonly type: "uint256";
1798
+ readonly internalType: "uint256";
1799
+ }, {
1800
+ readonly name: "";
1801
+ readonly type: "uint256";
1802
+ readonly internalType: "uint256";
1803
+ }, {
1804
+ readonly name: "permission";
1805
+ readonly type: "tuple";
1806
+ readonly internalType: "struct Permission";
1807
+ readonly components: readonly [{
1808
+ readonly name: "issuer";
1809
+ readonly type: "address";
1810
+ readonly internalType: "address";
1811
+ }, {
1812
+ readonly name: "expiration";
1813
+ readonly type: "uint64";
1814
+ readonly internalType: "uint64";
1815
+ }, {
1816
+ readonly name: "recipient";
1817
+ readonly type: "address";
1818
+ readonly internalType: "address";
1819
+ }, {
1820
+ readonly name: "validatorId";
1821
+ readonly type: "uint256";
1822
+ readonly internalType: "uint256";
1823
+ }, {
1824
+ readonly name: "validatorContract";
1825
+ readonly type: "address";
1826
+ readonly internalType: "address";
1827
+ }, {
1828
+ readonly name: "sealingKey";
1829
+ readonly type: "bytes32";
1830
+ readonly internalType: "bytes32";
1831
+ }, {
1832
+ readonly name: "issuerSignature";
1833
+ readonly type: "bytes";
1834
+ readonly internalType: "bytes";
1835
+ }, {
1836
+ readonly name: "recipientSignature";
1837
+ readonly type: "bytes";
1838
+ readonly internalType: "bytes";
1839
+ }];
1840
+ }];
1841
+ readonly outputs: readonly [{
1842
+ readonly name: "allowed";
1843
+ readonly type: "bool";
1844
+ readonly internalType: "bool";
1845
+ }, {
1846
+ readonly name: "error";
1847
+ readonly type: "string";
1848
+ readonly internalType: "string";
1849
+ }, {
1850
+ readonly name: "";
1851
+ readonly type: "uint256";
1852
+ readonly internalType: "uint256";
1853
+ }];
1854
+ readonly stateMutability: "view";
1855
+ }, {
1856
+ readonly type: "function";
1857
+ readonly name: "querySealOutput";
1858
+ readonly inputs: readonly [{
1859
+ readonly name: "ctHash";
1860
+ readonly type: "uint256";
1861
+ readonly internalType: "uint256";
1862
+ }, {
1863
+ readonly name: "";
1864
+ readonly type: "uint256";
1865
+ readonly internalType: "uint256";
1866
+ }, {
1867
+ readonly name: "permission";
1868
+ readonly type: "tuple";
1869
+ readonly internalType: "struct Permission";
1870
+ readonly components: readonly [{
1871
+ readonly name: "issuer";
1872
+ readonly type: "address";
1873
+ readonly internalType: "address";
1874
+ }, {
1875
+ readonly name: "expiration";
1876
+ readonly type: "uint64";
1877
+ readonly internalType: "uint64";
1878
+ }, {
1879
+ readonly name: "recipient";
1880
+ readonly type: "address";
1881
+ readonly internalType: "address";
1882
+ }, {
1883
+ readonly name: "validatorId";
1884
+ readonly type: "uint256";
1885
+ readonly internalType: "uint256";
1886
+ }, {
1887
+ readonly name: "validatorContract";
1888
+ readonly type: "address";
1889
+ readonly internalType: "address";
1890
+ }, {
1891
+ readonly name: "sealingKey";
1892
+ readonly type: "bytes32";
1893
+ readonly internalType: "bytes32";
1894
+ }, {
1895
+ readonly name: "issuerSignature";
1896
+ readonly type: "bytes";
1897
+ readonly internalType: "bytes";
1898
+ }, {
1899
+ readonly name: "recipientSignature";
1900
+ readonly type: "bytes";
1901
+ readonly internalType: "bytes";
1902
+ }];
1903
+ }];
1904
+ readonly outputs: readonly [{
1905
+ readonly name: "allowed";
1906
+ readonly type: "bool";
1907
+ readonly internalType: "bool";
1908
+ }, {
1909
+ readonly name: "error";
1910
+ readonly type: "string";
1911
+ readonly internalType: "string";
1912
+ }, {
1913
+ readonly name: "";
1914
+ readonly type: "bytes32";
1915
+ readonly internalType: "bytes32";
1916
+ }];
1917
+ readonly stateMutability: "view";
1918
+ }, {
1919
+ readonly type: "function";
1920
+ readonly name: "seal";
1921
+ readonly inputs: readonly [{
1922
+ readonly name: "input";
1923
+ readonly type: "uint256";
1924
+ readonly internalType: "uint256";
1925
+ }, {
1926
+ readonly name: "key";
1927
+ readonly type: "bytes32";
1928
+ readonly internalType: "bytes32";
1929
+ }];
1930
+ readonly outputs: readonly [{
1931
+ readonly name: "";
1932
+ readonly type: "bytes32";
1933
+ readonly internalType: "bytes32";
1934
+ }];
1935
+ readonly stateMutability: "pure";
1936
+ }, {
1937
+ readonly type: "function";
1938
+ readonly name: "unseal";
1939
+ readonly inputs: readonly [{
1940
+ readonly name: "hashed";
1941
+ readonly type: "bytes32";
1942
+ readonly internalType: "bytes32";
1943
+ }, {
1944
+ readonly name: "key";
1945
+ readonly type: "bytes32";
1946
+ readonly internalType: "bytes32";
1947
+ }];
1948
+ readonly outputs: readonly [{
1949
+ readonly name: "";
1950
+ readonly type: "uint256";
1951
+ readonly internalType: "uint256";
1952
+ }];
1953
+ readonly stateMutability: "pure";
1954
+ }, {
1955
+ readonly type: "error";
1956
+ readonly name: "NotAllowed";
1957
+ readonly inputs: readonly [];
1958
+ }, {
1959
+ readonly type: "error";
1960
+ readonly name: "SealingKeyInvalid";
1961
+ readonly inputs: readonly [];
1962
+ }, {
1963
+ readonly type: "error";
1964
+ readonly name: "SealingKeyMissing";
1965
+ readonly inputs: readonly [];
1966
+ }];
1967
+ readonly deployedBytecode: "0x608060405234801561000f575f5ffd5b50600436106100b2575f3560e01c80638a5c8c7f1161006f5780638a5c8c7f1461018e5780638ca07b48146101be578063a02eb534146101f0578063a0639f5414610222578063b4bc28f814610254578063ff6957d314610286576100b2565b806309ba3156146100b65780631a1992a9146100e8578063267c4ae414610118578063485cc955146101365780634cdc014d146101525780637e0f4b5b14610170575b5f5ffd5b6100d060048036038101906100cb9190611723565b6102b6565b6040516100df93929190611818565b60405180910390f35b61010260048036038101906100fd9190611854565b610599565b60405161010f9190611892565b60405180910390f35b6101206105a7565b60405161012d91906118ab565b60405180910390f35b610150600480360381019061014b91906118c4565b6105af565b005b61015a610632565b604051610167919061195d565b60405180910390f35b610178610657565b6040516101859190611996565b60405180910390f35b6101a860048036038101906101a391906119af565b61067b565b6040516101b591906119fc565b60405180910390f35b6101d860048036038101906101d39190611a15565b610689565b6040516101e793929190611a6f565b60405180910390f35b61020a60048036038101906102059190611aab565b6107eb565b60405161021993929190611a6f565b60405180910390f35b61023c60048036038101906102379190611723565b610a7a565b60405161024b93929190611a6f565b60405180910390f35b61026e60048036038101906102699190611afb565b610d04565b60405161027d93929190611a6f565b60405180910390f35b6102a0600480360381019061029b9190611b26565b610deb565b6040516102ad9190611b6d565b60405180910390f35b5f60605f5f5f1b8460a00151036102f9576040517fb78926d800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ae79f04a86896040518363ffffffff1660e01b8152600401610356929190611ccf565b602060405180830381865afa92505050801561039057506040513d601f19601f8201168201806040525081019061038d9190611d27565b60015b61047c5761039c611d5e565b806308c379a0036103cd57506103b0611d7d565b806103bb5750610432565b5f815f5f1b9450945094505050610590565b634e487b7103610432576103df611e0c565b906103ea5750610432565b5f5f5f1b6040518060400160405280600581526020017f50616e6963000000000000000000000000000000000000000000000000000000815250909450945094505050610590565b3d805f811461045c576040519150601f19603f3d011682016040523d82523d5f602084013e610461565b606091505b505f61046c82610deb565b5f5f1b9450945094505050610590565b80915050806104cc575f5f5f1b6040518060400160405280600a81526020017f4e6f74416c6c6f776564000000000000000000000000000000000000000000008152509093509350935050610590565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16631c76642b896040518263ffffffff1660e01b815260040161052691906119fc565b602060405180830381865afa158015610541573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105659190611e3e565b90506001610577828860a00151610599565b60405180602001604052805f8152509094509450945050505b93509350939050565b5f81835f1b18905092915050565b5f6001905090565b815f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f8183185f1c905092915050565b5f60605f5f73ffffffffffffffffffffffffffffffffffffffff16845f015173ffffffffffffffffffffffffffffffffffffffff1603610707575f5f6040518060400160405280601181526020017f5065726d697373696f6e4d697373696e67000000000000000000000000000000815250909250925092506107e4565b5f5f6107138787611027565b915091508161072c575f815f94509450945050506107e4565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16631c76642b896040518263ffffffff1660e01b815260040161078691906119fc565b602060405180830381865afa1580156107a1573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107c59190611e3e565b905060018160405180602001604052805f815250909550955095505050505b9250925092565b5f60605f5f60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635faa299a88876040518363ffffffff1660e01b815260040161084c929190611e78565b602060405180830381865afa92505050801561088657506040513d601f19601f820116820180604052508101906108839190611d27565b60015b61096c57610892611d5e565b806308c379a0036108c157506108a6611d7d565b806108b15750610924565b5f815f9450945094505050610a71565b634e487b7103610924576108d3611e0c565b906108de5750610924565b5f5f6040518060400160405280600581526020017f50616e6963000000000000000000000000000000000000000000000000000000815250909450945094505050610a71565b3d805f811461094e576040519150601f19603f3d011682016040523d82523d5f602084013e610953565b606091505b505f61095e82610deb565b5f9450945094505050610a71565b80915050806109ba575f5f6040518060400160405280600a81526020017f4e6f74416c6c6f776564000000000000000000000000000000000000000000008152509093509350935050610a71565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16631c76642b896040518263ffffffff1660e01b8152600401610a1491906119fc565b602060405180830381865afa158015610a2f573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a539190611e3e565b905060018160405180602001604052805f8152509094509450945050505b93509350939050565b5f60605f5f60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ae79f04a86896040518363ffffffff1660e01b8152600401610adb929190611ccf565b602060405180830381865afa925050508015610b1557506040513d601f19601f82011682018060405250810190610b129190611d27565b60015b610bfb57610b21611d5e565b806308c379a003610b505750610b35611d7d565b80610b405750610bb3565b5f815f9450945094505050610cfb565b634e487b7103610bb357610b62611e0c565b90610b6d5750610bb3565b5f5f6040518060400160405280600581526020017f50616e6963000000000000000000000000000000000000000000000000000000815250909450945094505050610cfb565b3d805f8114610bdd576040519150601f19603f3d011682016040523d82523d5f602084013e610be2565b606091505b505f610bed82610deb565b5f9450945094505050610cfb565b8091505080610c49575f5f6040518060400160405280600a81526020017f4e6f74416c6c6f776564000000000000000000000000000000000000000000008152509093509350935050610cfb565b60015f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16631c76642b896040518263ffffffff1660e01b8152600401610ca491906119fc565b602060405180830381865afa158015610cbf573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ce39190611e3e565b60405180602001604052805f81525090935093509350505b93509350939050565b5f60605f5f5f610d13866111fe565b9150915081610d2c575f815f9450945094505050610de4565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16631c76642b886040518263ffffffff1660e01b8152600401610d8691906119fc565b602060405180830381865afa158015610da1573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610dc59190611e3e565b905060018160405180602001604052805f815250909550955095505050505b9193909250565b60605f82610df890611ef9565b905063ed0764a160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191603610e84576040518060400160405280601981526020017f5065726d697373696f6e496e76616c69645f4578706972656400000000000000815250915050611022565b634c40eccb60e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191603610ef157604051806060016040528060218152602001611f8460219139915050611022565b638e143bf760e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191603610f5e57604051806060016040528060248152602001611f6060249139915050611022565b63cbd3a96660e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191603610fe8576040518060400160405280601a81526020017f5065726d697373696f6e496e76616c69645f44697361626c6564000000000000815250915050611022565b6040518060400160405280600f81526020017f4c6f77204c6576656c204572726f7200000000000000000000000000000000008152509150505b919050565b5f60605f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ae79f04a84866040518363ffffffff1660e01b8152600401611085929190611ccf565b602060405180830381865afa9250505080156110bf57506040513d601f19601f820116820180604052508101906110bc9190611d27565b60015b611198576110cb611d5e565b806308c379a0036110f657506110df611d7d565b806110ea5750611154565b5f8192509250506111f7565b634e487b710361115457611108611e0c565b906111135750611154565b5f6040518060400160405280600581526020017f50616e696300000000000000000000000000000000000000000000000000000081525092509250506111f7565b3d805f811461117e576040519150601f19603f3d011682016040523d82523d5f602084013e611183565b606091505b505f61118e82610deb565b92509250506111f7565b80925050816111e1575f6040518060400160405280600a81526020017f4e6f74416c6c6f77656400000000000000000000000000000000000000000000815250915091506111f7565b600160405180602001604052805f815250915091505b9250929050565b5f606060015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166394d9184c846040518263ffffffff1660e01b815260040161125b91906119fc565b602060405180830381865afa92505050801561129557506040513d601f19601f820116820180604052508101906112929190611d27565b60015b61136e576112a1611d5e565b806308c379a0036112cc57506112b5611d7d565b806112c0575061132a565b5f8192509250506113cd565b634e487b710361132a576112de611e0c565b906112e9575061132a565b5f6040518060400160405280600581526020017f50616e696300000000000000000000000000000000000000000000000000000081525092509250506113cd565b3d805f8114611354576040519150601f19603f3d011682016040523d82523d5f602084013e611359565b606091505b505f61136482610deb565b92509250506113cd565b80925050816113b7575f6040518060400160405280600a81526020017f4e6f74416c6c6f77656400000000000000000000000000000000000000000000815250915091506113cd565b600160405180602001604052805f815250915091505b915091565b5f604051905090565b5f5ffd5b5f5ffd5b5f819050919050565b6113f5816113e3565b81146113ff575f5ffd5b50565b5f81359050611410816113ec565b92915050565b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6114608261141a565b810181811067ffffffffffffffff8211171561147f5761147e61142a565b5b80604052505050565b5f6114916113d2565b905061149d8282611457565b919050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6114cf826114a6565b9050919050565b6114df816114c5565b81146114e9575f5ffd5b50565b5f813590506114fa816114d6565b92915050565b5f67ffffffffffffffff82169050919050565b61151c81611500565b8114611526575f5ffd5b50565b5f8135905061153781611513565b92915050565b5f819050919050565b61154f8161153d565b8114611559575f5ffd5b50565b5f8135905061156a81611546565b92915050565b5f5ffd5b5f5ffd5b5f67ffffffffffffffff8211156115925761159161142a565b5b61159b8261141a565b9050602081019050919050565b828183375f83830152505050565b5f6115c86115c384611578565b611488565b9050828152602081018484840111156115e4576115e3611574565b5b6115ef8482856115a8565b509392505050565b5f82601f83011261160b5761160a611570565b5b813561161b8482602086016115b6565b91505092915050565b5f610100828403121561163a57611639611416565b5b611645610100611488565b90505f611654848285016114ec565b5f83015250602061166784828501611529565b602083015250604061167b848285016114ec565b604083015250606061168f84828501611402565b60608301525060806116a3848285016114ec565b60808301525060a06116b78482850161155c565b60a08301525060c082013567ffffffffffffffff8111156116db576116da6114a2565b5b6116e7848285016115f7565b60c08301525060e082013567ffffffffffffffff81111561170b5761170a6114a2565b5b611717848285016115f7565b60e08301525092915050565b5f5f5f6060848603121561173a576117396113db565b5b5f61174786828701611402565b935050602061175886828701611402565b925050604084013567ffffffffffffffff811115611779576117786113df565b5b61178586828701611624565b9150509250925092565b5f8115159050919050565b6117a38161178f565b82525050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f6117db826117a9565b6117e581856117b3565b93506117f58185602086016117c3565b6117fe8161141a565b840191505092915050565b6118128161153d565b82525050565b5f60608201905061182b5f83018661179a565b818103602083015261183d81856117d1565b905061184c6040830184611809565b949350505050565b5f5f6040838503121561186a576118696113db565b5b5f61187785828601611402565b92505060206118888582860161155c565b9150509250929050565b5f6020820190506118a55f830184611809565b92915050565b5f6020820190506118be5f83018461179a565b92915050565b5f5f604083850312156118da576118d96113db565b5b5f6118e7858286016114ec565b92505060206118f8858286016114ec565b9150509250929050565b5f819050919050565b5f61192561192061191b846114a6565b611902565b6114a6565b9050919050565b5f6119368261190b565b9050919050565b5f6119478261192c565b9050919050565b6119578161193d565b82525050565b5f6020820190506119705f83018461194e565b92915050565b5f6119808261192c565b9050919050565b61199081611976565b82525050565b5f6020820190506119a95f830184611987565b92915050565b5f5f604083850312156119c5576119c46113db565b5b5f6119d28582860161155c565b92505060206119e38582860161155c565b9150509250929050565b6119f6816113e3565b82525050565b5f602082019050611a0f5f8301846119ed565b92915050565b5f5f60408385031215611a2b57611a2a6113db565b5b5f611a3885828601611402565b925050602083013567ffffffffffffffff811115611a5957611a586113df565b5b611a6585828601611624565b9150509250929050565b5f606082019050611a825f83018661179a565b8181036020830152611a9481856117d1565b9050611aa360408301846119ed565b949350505050565b5f5f5f60608486031215611ac257611ac16113db565b5b5f611acf86828701611402565b9350506020611ae086828701611402565b9250506040611af1868287016114ec565b9150509250925092565b5f60208284031215611b1057611b0f6113db565b5b5f611b1d84828501611402565b91505092915050565b5f60208284031215611b3b57611b3a6113db565b5b5f82013567ffffffffffffffff811115611b5857611b576113df565b5b611b64848285016115f7565b91505092915050565b5f6020820190508181035f830152611b8581846117d1565b905092915050565b611b96816114c5565b82525050565b611ba581611500565b82525050565b611bb4816113e3565b82525050565b611bc38161153d565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f611bed82611bc9565b611bf78185611bd3565b9350611c078185602086016117c3565b611c108161141a565b840191505092915050565b5f61010083015f830151611c315f860182611b8d565b506020830151611c446020860182611b9c565b506040830151611c576040860182611b8d565b506060830151611c6a6060860182611bab565b506080830151611c7d6080860182611b8d565b5060a0830151611c9060a0860182611bba565b5060c083015184820360c0860152611ca88282611be3565b91505060e083015184820360e0860152611cc28282611be3565b9150508091505092915050565b5f6040820190508181035f830152611ce78185611c1b565b9050611cf660208301846119ed565b9392505050565b611d068161178f565b8114611d10575f5ffd5b50565b5f81519050611d2181611cfd565b92915050565b5f60208284031215611d3c57611d3b6113db565b5b5f611d4984828501611d13565b91505092915050565b5f8160e01c9050919050565b5f60033d1115611d7a5760045f5f3e611d775f51611d52565b90505b90565b5f60443d10611e0957611d8e6113d2565b60043d036004823e80513d602482011167ffffffffffffffff82111715611db6575050611e09565b808201805167ffffffffffffffff811115611dd45750505050611e09565b80602083010160043d038501811115611df1575050505050611e09565b611e0082602001850186611457565b82955050505050505b90565b5f5f60233d1115611e2657602060045f3e600191505f5190505b9091565b5f81519050611e38816113ec565b92915050565b5f60208284031215611e5357611e526113db565b5b5f611e6084828501611e2a565b91505092915050565b611e72816114c5565b82525050565b5f604082019050611e8b5f8301856119ed565b611e986020830184611e69565b9392505050565b5f819050602082019050919050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b5f611ee48251611eae565b80915050919050565b5f82821b905092915050565b5f611f0382611bc9565b82611f0d84611e9f565b9050611f1881611ed9565b92506004821015611f5857611f537fffffffff0000000000000000000000000000000000000000000000000000000083600403600802611eed565b831692505b505091905056fe5065726d697373696f6e496e76616c69645f526563697069656e745369676e61747572655065726d697373696f6e496e76616c69645f4973737565725369676e6174757265a2646970667358221220aece29c216b18cc865bd3b0e61b184ba9cfb61e418c49ed4cbf2e2e152b5bf4f64736f6c63430008210033";
1968
+ };
1969
+
1970
+ declare const TestBedArtifact: {
1971
+ readonly contractName: "TestBed";
1972
+ readonly isFixed: true;
1973
+ readonly fixedAddress: "0x0000000000000000000000000000000000005003";
1974
+ readonly abi: readonly [{
1975
+ readonly type: "function";
1976
+ readonly name: "add";
1977
+ readonly inputs: readonly [{
1978
+ readonly name: "inNumber";
1979
+ readonly type: "tuple";
1980
+ readonly internalType: "struct InEuint32";
1981
+ readonly components: readonly [{
1982
+ readonly name: "ctHash";
1983
+ readonly type: "uint256";
1984
+ readonly internalType: "uint256";
1985
+ }, {
1986
+ readonly name: "securityZone";
1987
+ readonly type: "uint8";
1988
+ readonly internalType: "uint8";
1989
+ }, {
1990
+ readonly name: "utype";
1991
+ readonly type: "uint8";
1992
+ readonly internalType: "uint8";
1993
+ }, {
1994
+ readonly name: "signature";
1995
+ readonly type: "bytes";
1996
+ readonly internalType: "bytes";
1997
+ }];
1998
+ }];
1999
+ readonly outputs: readonly [];
2000
+ readonly stateMutability: "nonpayable";
2001
+ }, {
2002
+ readonly type: "function";
2003
+ readonly name: "decrypt";
2004
+ readonly inputs: readonly [];
2005
+ readonly outputs: readonly [];
2006
+ readonly stateMutability: "nonpayable";
2007
+ }, {
2008
+ readonly type: "function";
2009
+ readonly name: "eNumber";
2010
+ readonly inputs: readonly [];
2011
+ readonly outputs: readonly [{
2012
+ readonly name: "";
2013
+ readonly type: "bytes32";
2014
+ readonly internalType: "euint32";
2015
+ }];
2016
+ readonly stateMutability: "view";
2017
+ }, {
2018
+ readonly type: "function";
2019
+ readonly name: "exists";
2020
+ readonly inputs: readonly [];
2021
+ readonly outputs: readonly [{
2022
+ readonly name: "";
2023
+ readonly type: "bool";
2024
+ readonly internalType: "bool";
2025
+ }];
2026
+ readonly stateMutability: "pure";
2027
+ }, {
2028
+ readonly type: "function";
2029
+ readonly name: "getDecryptResult";
2030
+ readonly inputs: readonly [{
2031
+ readonly name: "input1";
2032
+ readonly type: "bytes32";
2033
+ readonly internalType: "euint32";
2034
+ }];
2035
+ readonly outputs: readonly [{
2036
+ readonly name: "";
2037
+ readonly type: "uint32";
2038
+ readonly internalType: "uint32";
2039
+ }];
2040
+ readonly stateMutability: "view";
2041
+ }, {
2042
+ readonly type: "function";
2043
+ readonly name: "getDecryptResultSafe";
2044
+ readonly inputs: readonly [{
2045
+ readonly name: "input1";
2046
+ readonly type: "bytes32";
2047
+ readonly internalType: "euint32";
2048
+ }];
2049
+ readonly outputs: readonly [{
2050
+ readonly name: "value";
2051
+ readonly type: "uint32";
2052
+ readonly internalType: "uint32";
2053
+ }, {
2054
+ readonly name: "decrypted";
2055
+ readonly type: "bool";
2056
+ readonly internalType: "bool";
2057
+ }];
2058
+ readonly stateMutability: "view";
2059
+ }, {
2060
+ readonly type: "function";
2061
+ readonly name: "increment";
2062
+ readonly inputs: readonly [];
2063
+ readonly outputs: readonly [];
2064
+ readonly stateMutability: "nonpayable";
2065
+ }, {
2066
+ readonly type: "function";
2067
+ readonly name: "mul";
2068
+ readonly inputs: readonly [{
2069
+ readonly name: "inNumber";
2070
+ readonly type: "tuple";
2071
+ readonly internalType: "struct InEuint32";
2072
+ readonly components: readonly [{
2073
+ readonly name: "ctHash";
2074
+ readonly type: "uint256";
2075
+ readonly internalType: "uint256";
2076
+ }, {
2077
+ readonly name: "securityZone";
2078
+ readonly type: "uint8";
2079
+ readonly internalType: "uint8";
2080
+ }, {
2081
+ readonly name: "utype";
2082
+ readonly type: "uint8";
2083
+ readonly internalType: "uint8";
2084
+ }, {
2085
+ readonly name: "signature";
2086
+ readonly type: "bytes";
2087
+ readonly internalType: "bytes";
2088
+ }];
2089
+ }];
2090
+ readonly outputs: readonly [];
2091
+ readonly stateMutability: "nonpayable";
2092
+ }, {
2093
+ readonly type: "function";
2094
+ readonly name: "numberHash";
2095
+ readonly inputs: readonly [];
2096
+ readonly outputs: readonly [{
2097
+ readonly name: "";
2098
+ readonly type: "bytes32";
2099
+ readonly internalType: "bytes32";
2100
+ }];
2101
+ readonly stateMutability: "view";
2102
+ }, {
2103
+ readonly type: "function";
2104
+ readonly name: "publishDecryptResult";
2105
+ readonly inputs: readonly [{
2106
+ readonly name: "input";
2107
+ readonly type: "bytes32";
2108
+ readonly internalType: "euint32";
2109
+ }, {
2110
+ readonly name: "result";
2111
+ readonly type: "uint32";
2112
+ readonly internalType: "uint32";
2113
+ }, {
2114
+ readonly name: "signature";
2115
+ readonly type: "bytes";
2116
+ readonly internalType: "bytes";
2117
+ }];
2118
+ readonly outputs: readonly [];
2119
+ readonly stateMutability: "nonpayable";
2120
+ }, {
2121
+ readonly type: "function";
2122
+ readonly name: "setNumber";
2123
+ readonly inputs: readonly [{
2124
+ readonly name: "inNumber";
2125
+ readonly type: "tuple";
2126
+ readonly internalType: "struct InEuint32";
2127
+ readonly components: readonly [{
2128
+ readonly name: "ctHash";
2129
+ readonly type: "uint256";
2130
+ readonly internalType: "uint256";
2131
+ }, {
2132
+ readonly name: "securityZone";
2133
+ readonly type: "uint8";
2134
+ readonly internalType: "uint8";
2135
+ }, {
2136
+ readonly name: "utype";
2137
+ readonly type: "uint8";
2138
+ readonly internalType: "uint8";
2139
+ }, {
2140
+ readonly name: "signature";
2141
+ readonly type: "bytes";
2142
+ readonly internalType: "bytes";
2143
+ }];
2144
+ }];
2145
+ readonly outputs: readonly [];
2146
+ readonly stateMutability: "nonpayable";
2147
+ }, {
2148
+ readonly type: "function";
2149
+ readonly name: "setNumberTrivial";
2150
+ readonly inputs: readonly [{
2151
+ readonly name: "inNumber";
2152
+ readonly type: "uint32";
2153
+ readonly internalType: "uint32";
2154
+ }];
2155
+ readonly outputs: readonly [];
2156
+ readonly stateMutability: "nonpayable";
2157
+ }, {
2158
+ readonly type: "function";
2159
+ readonly name: "sub";
2160
+ readonly inputs: readonly [{
2161
+ readonly name: "inNumber";
2162
+ readonly type: "tuple";
2163
+ readonly internalType: "struct InEuint32";
2164
+ readonly components: readonly [{
2165
+ readonly name: "ctHash";
2166
+ readonly type: "uint256";
2167
+ readonly internalType: "uint256";
2168
+ }, {
2169
+ readonly name: "securityZone";
2170
+ readonly type: "uint8";
2171
+ readonly internalType: "uint8";
2172
+ }, {
2173
+ readonly name: "utype";
2174
+ readonly type: "uint8";
2175
+ readonly internalType: "uint8";
2176
+ }, {
2177
+ readonly name: "signature";
2178
+ readonly type: "bytes";
2179
+ readonly internalType: "bytes";
2180
+ }];
2181
+ }];
2182
+ readonly outputs: readonly [];
2183
+ readonly stateMutability: "nonpayable";
2184
+ }, {
2185
+ readonly type: "error";
2186
+ readonly name: "InvalidEncryptedInput";
2187
+ readonly inputs: readonly [{
2188
+ readonly name: "got";
2189
+ readonly type: "uint8";
2190
+ readonly internalType: "uint8";
2191
+ }, {
2192
+ readonly name: "expected";
2193
+ readonly type: "uint8";
2194
+ readonly internalType: "uint8";
2195
+ }];
2196
+ }, {
2197
+ readonly type: "error";
2198
+ readonly name: "SecurityZoneOutOfBounds";
2199
+ readonly inputs: readonly [{
2200
+ readonly name: "value";
2201
+ readonly type: "int32";
2202
+ readonly internalType: "int32";
2203
+ }];
2204
+ }];
2205
+ readonly deployedBytecode: "0x608060405234801561000f575f5ffd5b50600436106100cd575f3560e01c806367c651741161008a5780638562354e116100645780638562354e146101ea57806388762d8114610206578063b5872e8c14610222578063d09de08a1461023e576100cd565b806367c651741461019457806384f091db146101b257806384ff25c6146101ce576100cd565b80631292f65a146100d157806319d8a05b14610101578063260ec8891461011f578063267c4ae4146101505780633983d4301461016e5780636470960914610178575b5f5ffd5b6100eb60048036038101906100e691906110b8565b610248565b6040516100f89190611101565b60405180910390f35b610109610259565b604051610116919061113a565b60405180910390f35b610139600480360381019061013491906110b8565b61025e565b60405161014792919061116d565b60405180910390f35b610158610272565b6040516101659190611194565b60405180910390f35b61017661027a565b005b610192600480360381019061018d91906113eb565b610286565b005b61019c6102db565b6040516101a99190611441565b60405180910390f35b6101cc60048036038101906101c791906113eb565b6102e1565b005b6101e860048036038101906101e391906113eb565b610310565b005b61020460048036038101906101ff9190611484565b61033f565b005b610220600480360381019061021b91906114af565b610372565b005b61023c600480360381019061023791906113eb565b610382565b005b6102466103af565b005b5f610252826103de565b9050919050565b5f5481565b5f5f610269836103ef565b91509150915091565b5f6001905090565b6102845f5461040d565b565b5f61029082610433565b90505f6102b06102a1835f5461045b565b836102ab5f6104a4565b6104b6565b90506102bd5f5482610518565b5f819055506102cc5f54610561565b6102d65f546105e2565b505050565b60015481565b6102f45f546102ef83610433565b610663565b5f819055506103035f54610561565b61030d5f546105e2565b50565b6103235f5461031e83610433565b6106ac565b5f819055506103325f54610561565b61033c5f546105e2565b50565b61034e8163ffffffff166104a4565b5f819055505f546001819055506103655f54610561565b61036f5f546105e2565b50565b61037d8383836106f5565b505050565b61038b81610433565b5f819055505f546001819055506103a25f54610561565b6103ac5f546105e2565b50565b6103c35f546103be60016104a4565b6106ac565b5f819055506103d25f54610561565b6103dc5f546105e2565b565b5f6103e88261070b565b9050919050565b5f5f5f5f6103fc856107a1565b915091508181935093505050915091565b61041681610839565b610426576104235f6104a4565b90505b61042f8161084a565b5050565b5f610443826040015160046108d1565b61045461044f83610921565b610963565b9050919050565b5f61046583610839565b610475576104725f6104a4565b92505b61047e82610839565b61048e5761048b5f6104a4565b91505b61049c6004848460136109fc565b905092915050565b5f6104af825f610aed565b9050919050565b5f6104c084610b07565b6104d0576104cd5f610b18565b93505b6104d983610839565b6104e9576104e65f6104a4565b92505b6104f282610839565b610502576104ff5f6104a4565b91505b61050f6004858585610b2a565b90509392505050565b5f61052283610839565b6105325761052f5f6104a4565b92505b61053b82610839565b61054b576105485f6104a4565b91505b6105596004848460076109fc565b905092915050565b73ea30c4b8b44078bbf8a6ef5b9f1ec1626c7848d973ffffffffffffffffffffffffffffffffffffffff166365d0509c825f1c306040518363ffffffff1660e01b81526004016105b2929190611569565b5f604051808303815f87803b1580156105c9575f5ffd5b505af11580156105db573d5f5f3e3d5ffd5b5050505050565b73ea30c4b8b44078bbf8a6ef5b9f1ec1626c7848d973ffffffffffffffffffffffffffffffffffffffff166365d0509c825f1c336040518363ffffffff1660e01b8152600401610633929190611569565b5f604051808303815f87803b15801561064a575f5ffd5b505af115801561065c573d5f5f3e3d5ffd5b5050505050565b5f61066d83610839565b61067d5761067a5f6104a4565b92505b61068682610839565b610696576106935f6104a4565b91505b6106a460048484600f6109fc565b905092915050565b5f6106b683610839565b6106c6576106c35f6104a4565b92505b6106cf82610839565b6106df576106dc5f6104a4565b91505b6106ed6004848460086109fc565b905092915050565b610706838363ffffffff1683610c1d565b505050565b5f73ea30c4b8b44078bbf8a6ef5b9f1ec1626c7848d973ffffffffffffffffffffffffffffffffffffffff1663f6bc7f3f835f1c6040518263ffffffff1660e01b815260040161075b9190611590565b602060405180830381865afa158015610776573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061079a91906115bd565b9050919050565b5f5f73ea30c4b8b44078bbf8a6ef5b9f1ec1626c7848d973ffffffffffffffffffffffffffffffffffffffff1663458693c9845f1c6040518263ffffffff1660e01b81526004016107f29190611590565b6040805180830381865afa15801561080c573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108309190611612565b91509150915091565b5f61084382610ca2565b9050919050565b5f73ea30c4b8b44078bbf8a6ef5b9f1ec1626c7848d973ffffffffffffffffffffffffffffffffffffffff166308289827835f1c336040518363ffffffff1660e01b815260040161089c929190611569565b5f604051808303815f87803b1580156108b3575f5ffd5b505af11580156108c5573d5f5f3e3d5ffd5b50505050819050919050565b8060ff168260ff161461091d5781816040517f67cf307100000000000000000000000000000000000000000000000000000000815260040161091492919061165f565b60405180910390fd5b5050565b610929611049565b6040518060800160405280835f01518152602001836020015160ff168152602001600460ff16815260200183606001518152509050919050565b5f73ea30c4b8b44078bbf8a6ef5b9f1ec1626c7848d973ffffffffffffffffffffffffffffffffffffffff166327f9c76283336040518363ffffffff1660e01b81526004016109b3929190611764565b6020604051808303815f875af11580156109cf573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109f391906115bd565b5f1b9050919050565b5f73ea30c4b8b44078bbf8a6ef5b9f1ec1626c7848d973ffffffffffffffffffffffffffffffffffffffff16631888debd8684610a398888610cb0565b5f67ffffffffffffffff811115610a5357610a526111c1565b5b604051908082528060200260200182016040528015610a815781602001602082028036833780820191505090505b506040518563ffffffff1660e01b8152600401610aa194939291906118ad565b6020604051808303815f875af1158015610abd573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ae191906115bd565b5f1b9050949350505050565b5f5f610afb84600485610d4e565b90508091505092915050565b5f610b1182610ca2565b9050919050565b5f610b23825f610e4b565b9050919050565b5f73ea30c4b8b44078bbf8a6ef5b9f1ec1626c7848d973ffffffffffffffffffffffffffffffffffffffff16631888debd866004610b69888888610e74565b5f67ffffffffffffffff811115610b8357610b826111c1565b5b604051908082528060200260200182016040528015610bb15781602001602082028036833780820191505090505b506040518563ffffffff1660e01b8152600401610bd194939291906118ad565b6020604051808303815f875af1158015610bed573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c1191906115bd565b5f1b9050949350505050565b73ea30c4b8b44078bbf8a6ef5b9f1ec1626c7848d973ffffffffffffffffffffffffffffffffffffffff166318683701845f1c84846040518463ffffffff1660e01b8152600401610c7093929190611946565b5f604051808303815f87803b158015610c87575f5ffd5b505af1158015610c99573d5f5f3e3d5ffd5b50505050505050565b5f5f5f1b8214159050919050565b60605f600267ffffffffffffffff811115610cce57610ccd6111c1565b5b604051908082528060200260200182016040528015610cfc5781602001602082028036833780820191505090505b509050835f1c815f81518110610d1557610d14611982565b5b602002602001018181525050825f1c81600181518110610d3857610d37611982565b5b6020026020010181815250508091505092915050565b5f73ea30c4b8b44078bbf8a6ef5b9f1ec1626c7848d973ffffffffffffffffffffffffffffffffffffffff16631888debd84601a5f67ffffffffffffffff811115610d9c57610d9b6111c1565b5b604051908082528060200260200182016040528015610dca5781602001602082028036833780820191505090505b50610de1898960ff16610ddc8a610f36565b610f8d565b6040518563ffffffff1660e01b8152600401610e0094939291906118ad565b6020604051808303815f875af1158015610e1c573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e4091906115bd565b5f1b90509392505050565b5f5f5f90508315610e5b57600190505b5f610e67825f86610d4e565b9050809250505092915050565b60605f600367ffffffffffffffff811115610e9257610e916111c1565b5b604051908082528060200260200182016040528015610ec05781602001602082028036833780820191505090505b509050845f1c815f81518110610ed957610ed8611982565b5b602002602001018181525050835f1c81600181518110610efc57610efb611982565b5b602002602001018181525050825f1c81600281518110610f1f57610f1e611982565b5b602002602001018181525050809150509392505050565b5f5f8260030b1215610f7f57816040517f8f568bf8000000000000000000000000000000000000000000000000000000008152600401610f7691906119ca565b60405180910390fd5b8163ffffffff169050919050565b60605f600367ffffffffffffffff811115610fab57610faa6111c1565b5b604051908082528060200260200182016040528015610fd95781602001602082028036833780820191505090505b50905084815f81518110610ff057610fef611982565b5b602002602001018181525050838160018151811061101157611010611982565b5b602002602001018181525050828160028151811061103257611031611982565b5b602002602001018181525050809150509392505050565b60405180608001604052805f81526020015f60ff1681526020015f60ff168152602001606081525090565b5f604051905090565b5f5ffd5b5f5ffd5b5f819050919050565b61109781611085565b81146110a1575f5ffd5b50565b5f813590506110b28161108e565b92915050565b5f602082840312156110cd576110cc61107d565b5b5f6110da848285016110a4565b91505092915050565b5f63ffffffff82169050919050565b6110fb816110e3565b82525050565b5f6020820190506111145f8301846110f2565b92915050565b5f61112482611085565b9050919050565b6111348161111a565b82525050565b5f60208201905061114d5f83018461112b565b92915050565b5f8115159050919050565b61116781611153565b82525050565b5f6040820190506111805f8301856110f2565b61118d602083018461115e565b9392505050565b5f6020820190506111a75f83018461115e565b92915050565b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6111f7826111b1565b810181811067ffffffffffffffff82111715611216576112156111c1565b5b80604052505050565b5f611228611074565b905061123482826111ee565b919050565b5f5ffd5b5f819050919050565b61124f8161123d565b8114611259575f5ffd5b50565b5f8135905061126a81611246565b92915050565b5f60ff82169050919050565b61128581611270565b811461128f575f5ffd5b50565b5f813590506112a08161127c565b92915050565b5f5ffd5b5f5ffd5b5f67ffffffffffffffff8211156112c8576112c76111c1565b5b6112d1826111b1565b9050602081019050919050565b828183375f83830152505050565b5f6112fe6112f9846112ae565b61121f565b90508281526020810184848401111561131a576113196112aa565b5b6113258482856112de565b509392505050565b5f82601f830112611341576113406112a6565b5b81356113518482602086016112ec565b91505092915050565b5f6080828403121561136f5761136e6111ad565b5b611379608061121f565b90505f6113888482850161125c565b5f83015250602061139b84828501611292565b60208301525060406113af84828501611292565b604083015250606082013567ffffffffffffffff8111156113d3576113d2611239565b5b6113df8482850161132d565b60608301525092915050565b5f60208284031215611400576113ff61107d565b5b5f82013567ffffffffffffffff81111561141d5761141c611081565b5b6114298482850161135a565b91505092915050565b61143b81611085565b82525050565b5f6020820190506114545f830184611432565b92915050565b611463816110e3565b811461146d575f5ffd5b50565b5f8135905061147e8161145a565b92915050565b5f602082840312156114995761149861107d565b5b5f6114a684828501611470565b91505092915050565b5f5f5f606084860312156114c6576114c561107d565b5b5f6114d3868287016110a4565b93505060206114e486828701611470565b925050604084013567ffffffffffffffff81111561150557611504611081565b5b6115118682870161132d565b9150509250925092565b6115248161123d565b82525050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6115538261152a565b9050919050565b61156381611549565b82525050565b5f60408201905061157c5f83018561151b565b611589602083018461155a565b9392505050565b5f6020820190506115a35f83018461151b565b92915050565b5f815190506115b781611246565b92915050565b5f602082840312156115d2576115d161107d565b5b5f6115df848285016115a9565b91505092915050565b6115f181611153565b81146115fb575f5ffd5b50565b5f8151905061160c816115e8565b92915050565b5f5f604083850312156116285761162761107d565b5b5f611635858286016115a9565b9250506020611646858286016115fe565b9150509250929050565b61165981611270565b82525050565b5f6040820190506116725f830185611650565b61167f6020830184611650565b9392505050565b61168f8161123d565b82525050565b61169e81611270565b82525050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f6116d6826116a4565b6116e081856116ae565b93506116f08185602086016116be565b6116f9816111b1565b840191505092915050565b5f608083015f8301516117195f860182611686565b50602083015161172c6020860182611695565b50604083015161173f6040860182611695565b506060830151848203606086015261175782826116cc565b9150508091505092915050565b5f6040820190508181035f83015261177c8185611704565b905061178b602083018461155a565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b602081106117d0576117cf611792565b5b50565b5f8190506117e0826117bf565b919050565b5f6117ef826117d3565b9050919050565b6117ff816117e5565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f6118398383611686565b60208301905092915050565b5f602082019050919050565b5f61185b82611805565b611865818561180f565b93506118708361181f565b805f5b838110156118a0578151611887888261182e565b975061189283611845565b925050600181019050611873565b5085935050505092915050565b5f6080820190506118c05f830187611650565b6118cd60208301866117f6565b81810360408301526118df8185611851565b905081810360608301526118f38184611851565b905095945050505050565b5f82825260208201905092915050565b5f611918826116a4565b61192281856118fe565b93506119328185602086016116be565b61193b816111b1565b840191505092915050565b5f6060820190506119595f83018661151b565b611966602083018561151b565b8181036040830152611978818461190e565b9050949350505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f8160030b9050919050565b6119c4816119af565b82525050565b5f6020820190506119dd5f8301846119bb565b9291505056fea2646970667358221220675beae239b364d7819668f820ab0ee5e5e31d4f00b27a9c8fa858af782f789764736f6c63430008210033";
2206
+ };
2207
+
2208
+ interface TypedDeferredTopicFilter<_TCEvent extends TypedContractEvent> extends DeferredTopicFilter {
2209
+ }
2210
+ interface TypedContractEvent<InputTuple extends Array<any> = any, OutputTuple extends Array<any> = any, OutputObject = any> {
2211
+ (...args: Partial<InputTuple>): TypedDeferredTopicFilter<TypedContractEvent<InputTuple, OutputTuple, OutputObject>>;
2212
+ name: string;
2213
+ fragment: EventFragment;
2214
+ getFragment(...args: Partial<InputTuple>): EventFragment;
2215
+ }
2216
+ type __TypechainAOutputTuple<T> = T extends TypedContractEvent<infer _U, infer W> ? W : never;
2217
+ type __TypechainOutputObject<T> = T extends TypedContractEvent<infer _U, infer _W, infer V> ? V : never;
2218
+ interface TypedEventLog<TCEvent extends TypedContractEvent> extends Omit<EventLog, 'args'> {
2219
+ args: __TypechainAOutputTuple<TCEvent> & __TypechainOutputObject<TCEvent>;
2220
+ }
2221
+ interface TypedLogDescription<TCEvent extends TypedContractEvent> extends Omit<LogDescription, 'args'> {
2222
+ args: __TypechainAOutputTuple<TCEvent> & __TypechainOutputObject<TCEvent>;
2223
+ }
2224
+ type TypedListener<TCEvent extends TypedContractEvent> = (...listenerArg: [...__TypechainAOutputTuple<TCEvent>, TypedEventLog<TCEvent>, ...undefined[]]) => void;
2225
+ type StateMutability = 'nonpayable' | 'payable' | 'view';
2226
+ type BaseOverrides = Omit<TransactionRequest, 'to' | 'data'>;
2227
+ type NonPayableOverrides = Omit<BaseOverrides, 'value' | 'blockTag' | 'enableCcipRead'>;
2228
+ type PayableOverrides = Omit<BaseOverrides, 'blockTag' | 'enableCcipRead'>;
2229
+ type ViewOverrides = Omit<TransactionRequest, 'to' | 'data'>;
2230
+ type Overrides<S extends StateMutability> = S extends 'nonpayable' ? NonPayableOverrides : S extends 'payable' ? PayableOverrides : ViewOverrides;
2231
+ type PostfixOverrides<A extends Array<any>, S extends StateMutability> = A | [...A, Overrides<S>];
2232
+ type ContractMethodArgs<A extends Array<any>, S extends StateMutability> = PostfixOverrides<{
2233
+ [I in keyof A]-?: A[I] | Typed;
2234
+ }, S>;
2235
+ type DefaultReturnType<R> = R extends Array<any> ? R[0] : R;
2236
+ interface TypedContractMethod<A extends Array<any> = Array<any>, R = any, S extends StateMutability = 'payable'> {
2237
+ (...args: ContractMethodArgs<A, S>): S extends 'view' ? Promise<DefaultReturnType<R>> : Promise<ContractTransactionResponse>;
2238
+ name: string;
2239
+ fragment: FunctionFragment;
2240
+ getFragment(...args: ContractMethodArgs<A, S>): FunctionFragment;
2241
+ populateTransaction(...args: ContractMethodArgs<A, S>): Promise<ContractTransaction>;
2242
+ staticCall(...args: ContractMethodArgs<A, 'view'>): Promise<DefaultReturnType<R>>;
2243
+ send(...args: ContractMethodArgs<A, S>): Promise<ContractTransactionResponse>;
2244
+ estimateGas(...args: ContractMethodArgs<A, S>): Promise<bigint>;
2245
+ staticCallResult(...args: ContractMethodArgs<A, 'view'>): Promise<R>;
2246
+ }
2247
+
2248
+ type PermissionStruct$2 = {
2249
+ issuer: AddressLike;
2250
+ expiration: BigNumberish;
2251
+ recipient: AddressLike;
2252
+ validatorId: BigNumberish;
2253
+ validatorContract: AddressLike;
2254
+ sealingKey: BytesLike;
2255
+ issuerSignature: BytesLike;
2256
+ recipientSignature: BytesLike;
2257
+ };
2258
+ interface MockACLInterface extends Interface {
2259
+ getFunction(nameOrSignature: 'TASK_MANAGER_ADDRESS_' | 'allow' | 'allowForDecryption' | 'allowGlobal' | 'allowTransient' | 'allowedOnBehalf' | 'allowedTransient' | 'checkPermitValidity' | 'cleanTransientStorage' | 'delegateAccount' | 'eip712Domain' | 'exists' | 'getTaskManagerAddress' | 'getVersion' | 'globalAllowed' | 'hashTypedDataV4' | 'isAllowed' | 'isAllowedForDecryption' | 'isAllowedWithPermission' | 'persistAllowed'): FunctionFragment;
2260
+ getEvent(nameOrSignatureOrTopic: 'AllowedForDecryption' | 'EIP712DomainChanged' | 'NewDelegation'): EventFragment;
2261
+ encodeFunctionData(functionFragment: 'TASK_MANAGER_ADDRESS_', values?: undefined): string;
2262
+ encodeFunctionData(functionFragment: 'allow', values: [BigNumberish, AddressLike, AddressLike]): string;
2263
+ encodeFunctionData(functionFragment: 'allowForDecryption', values: [BigNumberish[], AddressLike]): string;
2264
+ encodeFunctionData(functionFragment: 'allowGlobal', values: [BigNumberish, AddressLike]): string;
2265
+ encodeFunctionData(functionFragment: 'allowTransient', values: [BigNumberish, AddressLike, AddressLike]): string;
2266
+ encodeFunctionData(functionFragment: 'allowedOnBehalf', values: [AddressLike, BigNumberish, AddressLike, AddressLike]): string;
2267
+ encodeFunctionData(functionFragment: 'allowedTransient', values: [BigNumberish, AddressLike]): string;
2268
+ encodeFunctionData(functionFragment: 'checkPermitValidity', values: [PermissionStruct$2]): string;
2269
+ encodeFunctionData(functionFragment: 'cleanTransientStorage', values?: undefined): string;
2270
+ encodeFunctionData(functionFragment: 'delegateAccount', values: [AddressLike, AddressLike]): string;
2271
+ encodeFunctionData(functionFragment: 'eip712Domain', values?: undefined): string;
2272
+ encodeFunctionData(functionFragment: 'exists', values?: undefined): string;
2273
+ encodeFunctionData(functionFragment: 'getTaskManagerAddress', values?: undefined): string;
2274
+ encodeFunctionData(functionFragment: 'getVersion', values?: undefined): string;
2275
+ encodeFunctionData(functionFragment: 'globalAllowed', values: [BigNumberish]): string;
2276
+ encodeFunctionData(functionFragment: 'hashTypedDataV4', values: [BytesLike]): string;
2277
+ encodeFunctionData(functionFragment: 'isAllowed', values: [BigNumberish, AddressLike]): string;
2278
+ encodeFunctionData(functionFragment: 'isAllowedForDecryption', values: [BigNumberish]): string;
2279
+ encodeFunctionData(functionFragment: 'isAllowedWithPermission', values: [PermissionStruct$2, BigNumberish]): string;
2280
+ encodeFunctionData(functionFragment: 'persistAllowed', values: [BigNumberish, AddressLike]): string;
2281
+ decodeFunctionResult(functionFragment: 'TASK_MANAGER_ADDRESS_', data: BytesLike): Result;
2282
+ decodeFunctionResult(functionFragment: 'allow', data: BytesLike): Result;
2283
+ decodeFunctionResult(functionFragment: 'allowForDecryption', data: BytesLike): Result;
2284
+ decodeFunctionResult(functionFragment: 'allowGlobal', data: BytesLike): Result;
2285
+ decodeFunctionResult(functionFragment: 'allowTransient', data: BytesLike): Result;
2286
+ decodeFunctionResult(functionFragment: 'allowedOnBehalf', data: BytesLike): Result;
2287
+ decodeFunctionResult(functionFragment: 'allowedTransient', data: BytesLike): Result;
2288
+ decodeFunctionResult(functionFragment: 'checkPermitValidity', data: BytesLike): Result;
2289
+ decodeFunctionResult(functionFragment: 'cleanTransientStorage', data: BytesLike): Result;
2290
+ decodeFunctionResult(functionFragment: 'delegateAccount', data: BytesLike): Result;
2291
+ decodeFunctionResult(functionFragment: 'eip712Domain', data: BytesLike): Result;
2292
+ decodeFunctionResult(functionFragment: 'exists', data: BytesLike): Result;
2293
+ decodeFunctionResult(functionFragment: 'getTaskManagerAddress', data: BytesLike): Result;
2294
+ decodeFunctionResult(functionFragment: 'getVersion', data: BytesLike): Result;
2295
+ decodeFunctionResult(functionFragment: 'globalAllowed', data: BytesLike): Result;
2296
+ decodeFunctionResult(functionFragment: 'hashTypedDataV4', data: BytesLike): Result;
2297
+ decodeFunctionResult(functionFragment: 'isAllowed', data: BytesLike): Result;
2298
+ decodeFunctionResult(functionFragment: 'isAllowedForDecryption', data: BytesLike): Result;
2299
+ decodeFunctionResult(functionFragment: 'isAllowedWithPermission', data: BytesLike): Result;
2300
+ decodeFunctionResult(functionFragment: 'persistAllowed', data: BytesLike): Result;
2301
+ }
2302
+ declare namespace AllowedForDecryptionEvent {
2303
+ type InputTuple = [handlesList: BigNumberish[]];
2304
+ type OutputTuple = [handlesList: bigint[]];
2305
+ interface OutputObject {
2306
+ handlesList: bigint[];
2307
+ }
2308
+ type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
2309
+ type Filter = TypedDeferredTopicFilter<Event>;
2310
+ type Log = TypedEventLog<Event>;
2311
+ type LogDescription = TypedLogDescription<Event>;
2312
+ }
2313
+ declare namespace EIP712DomainChangedEvent {
2314
+ type InputTuple = [];
2315
+ type OutputTuple = [];
2316
+ interface OutputObject {
2317
+ }
2318
+ type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
2319
+ type Filter = TypedDeferredTopicFilter<Event>;
2320
+ type Log = TypedEventLog<Event>;
2321
+ type LogDescription = TypedLogDescription<Event>;
2322
+ }
2323
+ declare namespace NewDelegationEvent {
2324
+ type InputTuple = [sender: AddressLike, delegatee: AddressLike, contractAddress: AddressLike];
2325
+ type OutputTuple = [sender: string, delegatee: string, contractAddress: string];
2326
+ interface OutputObject {
2327
+ sender: string;
2328
+ delegatee: string;
2329
+ contractAddress: string;
2330
+ }
2331
+ type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
2332
+ type Filter = TypedDeferredTopicFilter<Event>;
2333
+ type Log = TypedEventLog<Event>;
2334
+ type LogDescription = TypedLogDescription<Event>;
2335
+ }
2336
+ interface MockACL extends BaseContract {
2337
+ connect(runner?: ContractRunner | null): MockACL;
2338
+ waitForDeployment(): Promise<this>;
2339
+ interface: MockACLInterface;
2340
+ queryFilter<TCEvent extends TypedContractEvent>(event: TCEvent, fromBlockOrBlockhash?: string | number | undefined, toBlock?: string | number | undefined): Promise<Array<TypedEventLog<TCEvent>>>;
2341
+ queryFilter<TCEvent extends TypedContractEvent>(filter: TypedDeferredTopicFilter<TCEvent>, fromBlockOrBlockhash?: string | number | undefined, toBlock?: string | number | undefined): Promise<Array<TypedEventLog<TCEvent>>>;
2342
+ on<TCEvent extends TypedContractEvent>(event: TCEvent, listener: TypedListener<TCEvent>): Promise<this>;
2343
+ on<TCEvent extends TypedContractEvent>(filter: TypedDeferredTopicFilter<TCEvent>, listener: TypedListener<TCEvent>): Promise<this>;
2344
+ once<TCEvent extends TypedContractEvent>(event: TCEvent, listener: TypedListener<TCEvent>): Promise<this>;
2345
+ once<TCEvent extends TypedContractEvent>(filter: TypedDeferredTopicFilter<TCEvent>, listener: TypedListener<TCEvent>): Promise<this>;
2346
+ listeners<TCEvent extends TypedContractEvent>(event: TCEvent): Promise<Array<TypedListener<TCEvent>>>;
2347
+ listeners(eventName?: string): Promise<Array<Listener>>;
2348
+ removeAllListeners<TCEvent extends TypedContractEvent>(event?: TCEvent): Promise<this>;
2349
+ TASK_MANAGER_ADDRESS_: TypedContractMethod<[], [string], 'view'>;
2350
+ allow: TypedContractMethod<[
2351
+ handle: BigNumberish,
2352
+ account: AddressLike,
2353
+ requester: AddressLike
2354
+ ], [
2355
+ void
2356
+ ], 'nonpayable'>;
2357
+ allowForDecryption: TypedContractMethod<[handlesList: BigNumberish[], requester: AddressLike], [void], 'nonpayable'>;
2358
+ allowGlobal: TypedContractMethod<[handle: BigNumberish, requester: AddressLike], [void], 'nonpayable'>;
2359
+ allowTransient: TypedContractMethod<[
2360
+ handle: BigNumberish,
2361
+ account: AddressLike,
2362
+ requester: AddressLike
2363
+ ], [
2364
+ void
2365
+ ], 'nonpayable'>;
2366
+ allowedOnBehalf: TypedContractMethod<[
2367
+ delegatee: AddressLike,
2368
+ handle: BigNumberish,
2369
+ contractAddress: AddressLike,
2370
+ account: AddressLike
2371
+ ], [
2372
+ boolean
2373
+ ], 'view'>;
2374
+ allowedTransient: TypedContractMethod<[handle: BigNumberish, account: AddressLike], [boolean], 'view'>;
2375
+ checkPermitValidity: TypedContractMethod<[permission: PermissionStruct$2], [boolean], 'view'>;
2376
+ cleanTransientStorage: TypedContractMethod<[], [void], 'nonpayable'>;
2377
+ delegateAccount: TypedContractMethod<[delegatee: AddressLike, delegateeContract: AddressLike], [void], 'nonpayable'>;
2378
+ eip712Domain: TypedContractMethod<[
2379
+ ], [
2380
+ [
2381
+ string,
2382
+ string,
2383
+ string,
2384
+ bigint,
2385
+ string,
2386
+ string,
2387
+ bigint[]
2388
+ ] & {
2389
+ fields: string;
2390
+ name: string;
2391
+ version: string;
2392
+ chainId: bigint;
2393
+ verifyingContract: string;
2394
+ salt: string;
2395
+ extensions: bigint[];
2396
+ }
2397
+ ], 'view'>;
2398
+ exists: TypedContractMethod<[], [boolean], 'view'>;
2399
+ getTaskManagerAddress: TypedContractMethod<[], [string], 'view'>;
2400
+ getVersion: TypedContractMethod<[], [string], 'view'>;
2401
+ globalAllowed: TypedContractMethod<[handle: BigNumberish], [boolean], 'view'>;
2402
+ hashTypedDataV4: TypedContractMethod<[structHash: BytesLike], [string], 'view'>;
2403
+ isAllowed: TypedContractMethod<[handle: BigNumberish, account: AddressLike], [boolean], 'view'>;
2404
+ isAllowedForDecryption: TypedContractMethod<[handle: BigNumberish], [boolean], 'view'>;
2405
+ isAllowedWithPermission: TypedContractMethod<[permission: PermissionStruct$2, handle: BigNumberish], [boolean], 'view'>;
2406
+ persistAllowed: TypedContractMethod<[handle: BigNumberish, account: AddressLike], [boolean], 'view'>;
2407
+ getFunction<T extends ContractMethod = ContractMethod>(key: string | FunctionFragment): T;
2408
+ getFunction(nameOrSignature: 'TASK_MANAGER_ADDRESS_'): TypedContractMethod<[], [string], 'view'>;
2409
+ getFunction(nameOrSignature: 'allow'): TypedContractMethod<[handle: BigNumberish, account: AddressLike, requester: AddressLike], [void], 'nonpayable'>;
2410
+ getFunction(nameOrSignature: 'allowForDecryption'): TypedContractMethod<[handlesList: BigNumberish[], requester: AddressLike], [void], 'nonpayable'>;
2411
+ getFunction(nameOrSignature: 'allowGlobal'): TypedContractMethod<[handle: BigNumberish, requester: AddressLike], [void], 'nonpayable'>;
2412
+ getFunction(nameOrSignature: 'allowTransient'): TypedContractMethod<[handle: BigNumberish, account: AddressLike, requester: AddressLike], [void], 'nonpayable'>;
2413
+ getFunction(nameOrSignature: 'allowedOnBehalf'): TypedContractMethod<[
2414
+ delegatee: AddressLike,
2415
+ handle: BigNumberish,
2416
+ contractAddress: AddressLike,
2417
+ account: AddressLike
2418
+ ], [
2419
+ boolean
2420
+ ], 'view'>;
2421
+ getFunction(nameOrSignature: 'allowedTransient'): TypedContractMethod<[handle: BigNumberish, account: AddressLike], [boolean], 'view'>;
2422
+ getFunction(nameOrSignature: 'checkPermitValidity'): TypedContractMethod<[permission: PermissionStruct$2], [boolean], 'view'>;
2423
+ getFunction(nameOrSignature: 'cleanTransientStorage'): TypedContractMethod<[], [void], 'nonpayable'>;
2424
+ getFunction(nameOrSignature: 'delegateAccount'): TypedContractMethod<[delegatee: AddressLike, delegateeContract: AddressLike], [void], 'nonpayable'>;
2425
+ getFunction(nameOrSignature: 'eip712Domain'): TypedContractMethod<[
2426
+ ], [
2427
+ [
2428
+ string,
2429
+ string,
2430
+ string,
2431
+ bigint,
2432
+ string,
2433
+ string,
2434
+ bigint[]
2435
+ ] & {
2436
+ fields: string;
2437
+ name: string;
2438
+ version: string;
2439
+ chainId: bigint;
2440
+ verifyingContract: string;
2441
+ salt: string;
2442
+ extensions: bigint[];
2443
+ }
2444
+ ], 'view'>;
2445
+ getFunction(nameOrSignature: 'exists'): TypedContractMethod<[], [boolean], 'view'>;
2446
+ getFunction(nameOrSignature: 'getTaskManagerAddress'): TypedContractMethod<[], [string], 'view'>;
2447
+ getFunction(nameOrSignature: 'getVersion'): TypedContractMethod<[], [string], 'view'>;
2448
+ getFunction(nameOrSignature: 'globalAllowed'): TypedContractMethod<[handle: BigNumberish], [boolean], 'view'>;
2449
+ getFunction(nameOrSignature: 'hashTypedDataV4'): TypedContractMethod<[structHash: BytesLike], [string], 'view'>;
2450
+ getFunction(nameOrSignature: 'isAllowed'): TypedContractMethod<[handle: BigNumberish, account: AddressLike], [boolean], 'view'>;
2451
+ getFunction(nameOrSignature: 'isAllowedForDecryption'): TypedContractMethod<[handle: BigNumberish], [boolean], 'view'>;
2452
+ getFunction(nameOrSignature: 'isAllowedWithPermission'): TypedContractMethod<[permission: PermissionStruct$2, handle: BigNumberish], [boolean], 'view'>;
2453
+ getFunction(nameOrSignature: 'persistAllowed'): TypedContractMethod<[handle: BigNumberish, account: AddressLike], [boolean], 'view'>;
2454
+ getEvent(key: 'AllowedForDecryption'): TypedContractEvent<AllowedForDecryptionEvent.InputTuple, AllowedForDecryptionEvent.OutputTuple, AllowedForDecryptionEvent.OutputObject>;
2455
+ getEvent(key: 'EIP712DomainChanged'): TypedContractEvent<EIP712DomainChangedEvent.InputTuple, EIP712DomainChangedEvent.OutputTuple, EIP712DomainChangedEvent.OutputObject>;
2456
+ getEvent(key: 'NewDelegation'): TypedContractEvent<NewDelegationEvent.InputTuple, NewDelegationEvent.OutputTuple, NewDelegationEvent.OutputObject>;
2457
+ filters: {
2458
+ 'AllowedForDecryption(uint256[])': TypedContractEvent<AllowedForDecryptionEvent.InputTuple, AllowedForDecryptionEvent.OutputTuple, AllowedForDecryptionEvent.OutputObject>;
2459
+ AllowedForDecryption: TypedContractEvent<AllowedForDecryptionEvent.InputTuple, AllowedForDecryptionEvent.OutputTuple, AllowedForDecryptionEvent.OutputObject>;
2460
+ 'EIP712DomainChanged()': TypedContractEvent<EIP712DomainChangedEvent.InputTuple, EIP712DomainChangedEvent.OutputTuple, EIP712DomainChangedEvent.OutputObject>;
2461
+ EIP712DomainChanged: TypedContractEvent<EIP712DomainChangedEvent.InputTuple, EIP712DomainChangedEvent.OutputTuple, EIP712DomainChangedEvent.OutputObject>;
2462
+ 'NewDelegation(address,address,address)': TypedContractEvent<NewDelegationEvent.InputTuple, NewDelegationEvent.OutputTuple, NewDelegationEvent.OutputObject>;
2463
+ NewDelegation: TypedContractEvent<NewDelegationEvent.InputTuple, NewDelegationEvent.OutputTuple, NewDelegationEvent.OutputObject>;
2464
+ };
2465
+ }
2466
+
2467
+ type PermissionStruct$1 = {
2468
+ issuer: AddressLike;
2469
+ expiration: BigNumberish;
2470
+ recipient: AddressLike;
2471
+ validatorId: BigNumberish;
2472
+ validatorContract: AddressLike;
2473
+ sealingKey: BytesLike;
2474
+ issuerSignature: BytesLike;
2475
+ recipientSignature: BytesLike;
2476
+ };
2477
+ type EncryptedInputStruct = {
2478
+ ctHash: BigNumberish;
2479
+ securityZone: BigNumberish;
2480
+ utype: BigNumberish;
2481
+ signature: BytesLike;
2482
+ };
2483
+ interface MockTaskManagerInterface extends Interface {
2484
+ getFunction(nameOrSignature: 'MOCK_logAllow' | 'MOCK_setInEuintKey' | 'acl' | 'aggregator' | 'allow' | 'allowForDecryption' | 'allowGlobal' | 'allowTransient' | 'createDecryptTask' | 'createRandomTask' | 'createTask' | 'decryptResultSigner' | 'exists' | 'getDecryptResult' | 'getDecryptResultSafe' | 'handleDecryptResult' | 'handleError' | 'inMockStorage' | 'initialize' | 'isAllowed' | 'isAllowedWithPermission' | 'isInitialized' | 'isPubliclyAllowed' | 'logOps' | 'mockStorage' | 'publishDecryptResult' | 'publishDecryptResultBatch' | 'removeFirstLetter' | 'setACLContract' | 'setAggregator' | 'setDecryptResultSigner' | 'setLogOps' | 'setSecurityZoneMax' | 'setSecurityZoneMin' | 'setSecurityZones' | 'setVerifierSigner' | 'sliceString' | 'verifyDecryptResult' | 'verifyDecryptResultSafe' | 'verifyInput'): FunctionFragment;
2485
+ getEvent(nameOrSignatureOrTopic: 'DecryptionResult' | 'ProtocolNotification' | 'TaskCreated'): EventFragment;
2486
+ encodeFunctionData(functionFragment: 'MOCK_logAllow', values: [string, BigNumberish, AddressLike]): string;
2487
+ encodeFunctionData(functionFragment: 'MOCK_setInEuintKey', values: [BigNumberish, BigNumberish]): string;
2488
+ encodeFunctionData(functionFragment: 'acl', values?: undefined): string;
2489
+ encodeFunctionData(functionFragment: 'aggregator', values?: undefined): string;
2490
+ encodeFunctionData(functionFragment: 'allow', values: [BigNumberish, AddressLike]): string;
2491
+ encodeFunctionData(functionFragment: 'allowForDecryption', values: [BigNumberish]): string;
2492
+ encodeFunctionData(functionFragment: 'allowGlobal', values: [BigNumberish]): string;
2493
+ encodeFunctionData(functionFragment: 'allowTransient', values: [BigNumberish, AddressLike]): string;
2494
+ encodeFunctionData(functionFragment: 'createDecryptTask', values: [BigNumberish, AddressLike]): string;
2495
+ encodeFunctionData(functionFragment: 'createRandomTask', values: [BigNumberish, BigNumberish, BigNumberish]): string;
2496
+ encodeFunctionData(functionFragment: 'createTask', values: [BigNumberish, BigNumberish, BigNumberish[], BigNumberish[]]): string;
2497
+ encodeFunctionData(functionFragment: 'decryptResultSigner', values?: undefined): string;
2498
+ encodeFunctionData(functionFragment: 'exists', values?: undefined): string;
2499
+ encodeFunctionData(functionFragment: 'getDecryptResult', values: [BigNumberish]): string;
2500
+ encodeFunctionData(functionFragment: 'getDecryptResultSafe', values: [BigNumberish]): string;
2501
+ encodeFunctionData(functionFragment: 'handleDecryptResult', values: [BigNumberish, BigNumberish, AddressLike[]]): string;
2502
+ encodeFunctionData(functionFragment: 'handleError', values: [BigNumberish, string, string]): string;
2503
+ encodeFunctionData(functionFragment: 'inMockStorage', values: [BigNumberish]): string;
2504
+ encodeFunctionData(functionFragment: 'initialize', values: [AddressLike]): string;
2505
+ encodeFunctionData(functionFragment: 'isAllowed', values: [BigNumberish, AddressLike]): string;
2506
+ encodeFunctionData(functionFragment: 'isAllowedWithPermission', values: [PermissionStruct$1, BigNumberish]): string;
2507
+ encodeFunctionData(functionFragment: 'isInitialized', values?: undefined): string;
2508
+ encodeFunctionData(functionFragment: 'isPubliclyAllowed', values: [BigNumberish]): string;
2509
+ encodeFunctionData(functionFragment: 'logOps', values?: undefined): string;
2510
+ encodeFunctionData(functionFragment: 'mockStorage', values: [BigNumberish]): string;
2511
+ encodeFunctionData(functionFragment: 'publishDecryptResult', values: [BigNumberish, BigNumberish, BytesLike]): string;
2512
+ encodeFunctionData(functionFragment: 'publishDecryptResultBatch', values: [BigNumberish[], BigNumberish[], BytesLike[]]): string;
2513
+ encodeFunctionData(functionFragment: 'removeFirstLetter', values: [string]): string;
2514
+ encodeFunctionData(functionFragment: 'setACLContract', values: [AddressLike]): string;
2515
+ encodeFunctionData(functionFragment: 'setAggregator', values: [AddressLike]): string;
2516
+ encodeFunctionData(functionFragment: 'setDecryptResultSigner', values: [AddressLike]): string;
2517
+ encodeFunctionData(functionFragment: 'setLogOps', values: [boolean]): string;
2518
+ encodeFunctionData(functionFragment: 'setSecurityZoneMax', values: [BigNumberish]): string;
2519
+ encodeFunctionData(functionFragment: 'setSecurityZoneMin', values: [BigNumberish]): string;
2520
+ encodeFunctionData(functionFragment: 'setSecurityZones', values: [BigNumberish, BigNumberish]): string;
2521
+ encodeFunctionData(functionFragment: 'setVerifierSigner', values: [AddressLike]): string;
2522
+ encodeFunctionData(functionFragment: 'sliceString', values: [string, BigNumberish, BigNumberish]): string;
2523
+ encodeFunctionData(functionFragment: 'verifyDecryptResult', values: [BigNumberish, BigNumberish, BytesLike]): string;
2524
+ encodeFunctionData(functionFragment: 'verifyDecryptResultSafe', values: [BigNumberish, BigNumberish, BytesLike]): string;
2525
+ encodeFunctionData(functionFragment: 'verifyInput', values: [EncryptedInputStruct, AddressLike]): string;
2526
+ decodeFunctionResult(functionFragment: 'MOCK_logAllow', data: BytesLike): Result;
2527
+ decodeFunctionResult(functionFragment: 'MOCK_setInEuintKey', data: BytesLike): Result;
2528
+ decodeFunctionResult(functionFragment: 'acl', data: BytesLike): Result;
2529
+ decodeFunctionResult(functionFragment: 'aggregator', data: BytesLike): Result;
2530
+ decodeFunctionResult(functionFragment: 'allow', data: BytesLike): Result;
2531
+ decodeFunctionResult(functionFragment: 'allowForDecryption', data: BytesLike): Result;
2532
+ decodeFunctionResult(functionFragment: 'allowGlobal', data: BytesLike): Result;
2533
+ decodeFunctionResult(functionFragment: 'allowTransient', data: BytesLike): Result;
2534
+ decodeFunctionResult(functionFragment: 'createDecryptTask', data: BytesLike): Result;
2535
+ decodeFunctionResult(functionFragment: 'createRandomTask', data: BytesLike): Result;
2536
+ decodeFunctionResult(functionFragment: 'createTask', data: BytesLike): Result;
2537
+ decodeFunctionResult(functionFragment: 'decryptResultSigner', data: BytesLike): Result;
2538
+ decodeFunctionResult(functionFragment: 'exists', data: BytesLike): Result;
2539
+ decodeFunctionResult(functionFragment: 'getDecryptResult', data: BytesLike): Result;
2540
+ decodeFunctionResult(functionFragment: 'getDecryptResultSafe', data: BytesLike): Result;
2541
+ decodeFunctionResult(functionFragment: 'handleDecryptResult', data: BytesLike): Result;
2542
+ decodeFunctionResult(functionFragment: 'handleError', data: BytesLike): Result;
2543
+ decodeFunctionResult(functionFragment: 'inMockStorage', data: BytesLike): Result;
2544
+ decodeFunctionResult(functionFragment: 'initialize', data: BytesLike): Result;
2545
+ decodeFunctionResult(functionFragment: 'isAllowed', data: BytesLike): Result;
2546
+ decodeFunctionResult(functionFragment: 'isAllowedWithPermission', data: BytesLike): Result;
2547
+ decodeFunctionResult(functionFragment: 'isInitialized', data: BytesLike): Result;
2548
+ decodeFunctionResult(functionFragment: 'isPubliclyAllowed', data: BytesLike): Result;
2549
+ decodeFunctionResult(functionFragment: 'logOps', data: BytesLike): Result;
2550
+ decodeFunctionResult(functionFragment: 'mockStorage', data: BytesLike): Result;
2551
+ decodeFunctionResult(functionFragment: 'publishDecryptResult', data: BytesLike): Result;
2552
+ decodeFunctionResult(functionFragment: 'publishDecryptResultBatch', data: BytesLike): Result;
2553
+ decodeFunctionResult(functionFragment: 'removeFirstLetter', data: BytesLike): Result;
2554
+ decodeFunctionResult(functionFragment: 'setACLContract', data: BytesLike): Result;
2555
+ decodeFunctionResult(functionFragment: 'setAggregator', data: BytesLike): Result;
2556
+ decodeFunctionResult(functionFragment: 'setDecryptResultSigner', data: BytesLike): Result;
2557
+ decodeFunctionResult(functionFragment: 'setLogOps', data: BytesLike): Result;
2558
+ decodeFunctionResult(functionFragment: 'setSecurityZoneMax', data: BytesLike): Result;
2559
+ decodeFunctionResult(functionFragment: 'setSecurityZoneMin', data: BytesLike): Result;
2560
+ decodeFunctionResult(functionFragment: 'setSecurityZones', data: BytesLike): Result;
2561
+ decodeFunctionResult(functionFragment: 'setVerifierSigner', data: BytesLike): Result;
2562
+ decodeFunctionResult(functionFragment: 'sliceString', data: BytesLike): Result;
2563
+ decodeFunctionResult(functionFragment: 'verifyDecryptResult', data: BytesLike): Result;
2564
+ decodeFunctionResult(functionFragment: 'verifyDecryptResultSafe', data: BytesLike): Result;
2565
+ decodeFunctionResult(functionFragment: 'verifyInput', data: BytesLike): Result;
2566
+ }
2567
+ declare namespace DecryptionResultEvent {
2568
+ type InputTuple = [ctHash: BigNumberish, result: BigNumberish, requestor: AddressLike];
2569
+ type OutputTuple = [ctHash: bigint, result: bigint, requestor: string];
2570
+ interface OutputObject {
2571
+ ctHash: bigint;
2572
+ result: bigint;
2573
+ requestor: string;
2574
+ }
2575
+ type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
2576
+ type Filter = TypedDeferredTopicFilter<Event>;
2577
+ type Log = TypedEventLog<Event>;
2578
+ type LogDescription = TypedLogDescription<Event>;
2579
+ }
2580
+ declare namespace ProtocolNotificationEvent {
2581
+ type InputTuple = [ctHash: BigNumberish, operation: string, errorMessage: string];
2582
+ type OutputTuple = [ctHash: bigint, operation: string, errorMessage: string];
2583
+ interface OutputObject {
2584
+ ctHash: bigint;
2585
+ operation: string;
2586
+ errorMessage: string;
2587
+ }
2588
+ type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
2589
+ type Filter = TypedDeferredTopicFilter<Event>;
2590
+ type Log = TypedEventLog<Event>;
2591
+ type LogDescription = TypedLogDescription<Event>;
2592
+ }
2593
+ declare namespace TaskCreatedEvent {
2594
+ type InputTuple = [
2595
+ ctHash: BigNumberish,
2596
+ operation: string,
2597
+ input1: BigNumberish,
2598
+ input2: BigNumberish,
2599
+ input3: BigNumberish
2600
+ ];
2601
+ type OutputTuple = [ctHash: bigint, operation: string, input1: bigint, input2: bigint, input3: bigint];
2602
+ interface OutputObject {
2603
+ ctHash: bigint;
2604
+ operation: string;
2605
+ input1: bigint;
2606
+ input2: bigint;
2607
+ input3: bigint;
2608
+ }
2609
+ type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
2610
+ type Filter = TypedDeferredTopicFilter<Event>;
2611
+ type Log = TypedEventLog<Event>;
2612
+ type LogDescription = TypedLogDescription<Event>;
2613
+ }
2614
+ interface MockTaskManager extends BaseContract {
2615
+ connect(runner?: ContractRunner | null): MockTaskManager;
2616
+ waitForDeployment(): Promise<this>;
2617
+ interface: MockTaskManagerInterface;
2618
+ queryFilter<TCEvent extends TypedContractEvent>(event: TCEvent, fromBlockOrBlockhash?: string | number | undefined, toBlock?: string | number | undefined): Promise<Array<TypedEventLog<TCEvent>>>;
2619
+ queryFilter<TCEvent extends TypedContractEvent>(filter: TypedDeferredTopicFilter<TCEvent>, fromBlockOrBlockhash?: string | number | undefined, toBlock?: string | number | undefined): Promise<Array<TypedEventLog<TCEvent>>>;
2620
+ on<TCEvent extends TypedContractEvent>(event: TCEvent, listener: TypedListener<TCEvent>): Promise<this>;
2621
+ on<TCEvent extends TypedContractEvent>(filter: TypedDeferredTopicFilter<TCEvent>, listener: TypedListener<TCEvent>): Promise<this>;
2622
+ once<TCEvent extends TypedContractEvent>(event: TCEvent, listener: TypedListener<TCEvent>): Promise<this>;
2623
+ once<TCEvent extends TypedContractEvent>(filter: TypedDeferredTopicFilter<TCEvent>, listener: TypedListener<TCEvent>): Promise<this>;
2624
+ listeners<TCEvent extends TypedContractEvent>(event: TCEvent): Promise<Array<TypedListener<TCEvent>>>;
2625
+ listeners(eventName?: string): Promise<Array<Listener>>;
2626
+ removeAllListeners<TCEvent extends TypedContractEvent>(event?: TCEvent): Promise<this>;
2627
+ MOCK_logAllow: TypedContractMethod<[operation: string, ctHash: BigNumberish, account: AddressLike], [void], 'view'>;
2628
+ MOCK_setInEuintKey: TypedContractMethod<[ctHash: BigNumberish, value: BigNumberish], [void], 'nonpayable'>;
2629
+ acl: TypedContractMethod<[], [string], 'view'>;
2630
+ aggregator: TypedContractMethod<[], [string], 'view'>;
2631
+ allow: TypedContractMethod<[ctHash: BigNumberish, account: AddressLike], [void], 'nonpayable'>;
2632
+ allowForDecryption: TypedContractMethod<[ctHash: BigNumberish], [void], 'nonpayable'>;
2633
+ allowGlobal: TypedContractMethod<[ctHash: BigNumberish], [void], 'nonpayable'>;
2634
+ allowTransient: TypedContractMethod<[ctHash: BigNumberish, account: AddressLike], [void], 'nonpayable'>;
2635
+ createDecryptTask: TypedContractMethod<[ctHash: BigNumberish, arg1: AddressLike], [void], 'nonpayable'>;
2636
+ createRandomTask: TypedContractMethod<[
2637
+ returnType: BigNumberish,
2638
+ seed: BigNumberish,
2639
+ securityZone: BigNumberish
2640
+ ], [
2641
+ bigint
2642
+ ], 'nonpayable'>;
2643
+ createTask: TypedContractMethod<[
2644
+ returnType: BigNumberish,
2645
+ funcId: BigNumberish,
2646
+ encryptedHashes: BigNumberish[],
2647
+ extraInputs: BigNumberish[]
2648
+ ], [
2649
+ bigint
2650
+ ], 'nonpayable'>;
2651
+ decryptResultSigner: TypedContractMethod<[], [string], 'view'>;
2652
+ exists: TypedContractMethod<[], [boolean], 'view'>;
2653
+ getDecryptResult: TypedContractMethod<[ctHash: BigNumberish], [bigint], 'view'>;
2654
+ getDecryptResultSafe: TypedContractMethod<[
2655
+ ctHash: BigNumberish
2656
+ ], [
2657
+ [bigint, boolean] & {
2658
+ result: bigint;
2659
+ decrypted: boolean;
2660
+ }
2661
+ ], 'view'>;
2662
+ handleDecryptResult: TypedContractMethod<[
2663
+ ctHash: BigNumberish,
2664
+ result: BigNumberish,
2665
+ arg2: AddressLike[]
2666
+ ], [
2667
+ void
2668
+ ], 'nonpayable'>;
2669
+ handleError: TypedContractMethod<[
2670
+ ctHash: BigNumberish,
2671
+ operation: string,
2672
+ errorMessage: string
2673
+ ], [
2674
+ void
2675
+ ], 'nonpayable'>;
2676
+ inMockStorage: TypedContractMethod<[arg0: BigNumberish], [boolean], 'view'>;
2677
+ initialize: TypedContractMethod<[initialOwner: AddressLike], [void], 'nonpayable'>;
2678
+ isAllowed: TypedContractMethod<[ctHash: BigNumberish, account: AddressLike], [boolean], 'view'>;
2679
+ isAllowedWithPermission: TypedContractMethod<[permission: PermissionStruct$1, handle: BigNumberish], [boolean], 'view'>;
2680
+ isInitialized: TypedContractMethod<[], [boolean], 'view'>;
2681
+ isPubliclyAllowed: TypedContractMethod<[ctHash: BigNumberish], [boolean], 'view'>;
2682
+ logOps: TypedContractMethod<[], [boolean], 'view'>;
2683
+ mockStorage: TypedContractMethod<[arg0: BigNumberish], [bigint], 'view'>;
2684
+ publishDecryptResult: TypedContractMethod<[
2685
+ ctHash: BigNumberish,
2686
+ result: BigNumberish,
2687
+ signature: BytesLike
2688
+ ], [
2689
+ void
2690
+ ], 'nonpayable'>;
2691
+ publishDecryptResultBatch: TypedContractMethod<[
2692
+ ctHashes: BigNumberish[],
2693
+ results: BigNumberish[],
2694
+ signatures: BytesLike[]
2695
+ ], [
2696
+ void
2697
+ ], 'nonpayable'>;
2698
+ removeFirstLetter: TypedContractMethod<[str: string], [string], 'view'>;
2699
+ setACLContract: TypedContractMethod<[_aclAddress: AddressLike], [void], 'nonpayable'>;
2700
+ setAggregator: TypedContractMethod<[_aggregatorAddress: AddressLike], [void], 'nonpayable'>;
2701
+ setDecryptResultSigner: TypedContractMethod<[signer: AddressLike], [void], 'nonpayable'>;
2702
+ setLogOps: TypedContractMethod<[_logOps: boolean], [void], 'nonpayable'>;
2703
+ setSecurityZoneMax: TypedContractMethod<[securityZone: BigNumberish], [void], 'nonpayable'>;
2704
+ setSecurityZoneMin: TypedContractMethod<[securityZone: BigNumberish], [void], 'nonpayable'>;
2705
+ setSecurityZones: TypedContractMethod<[minSZ: BigNumberish, maxSZ: BigNumberish], [void], 'nonpayable'>;
2706
+ setVerifierSigner: TypedContractMethod<[signer: AddressLike], [void], 'nonpayable'>;
2707
+ sliceString: TypedContractMethod<[str: string, start: BigNumberish, length: BigNumberish], [string], 'view'>;
2708
+ verifyDecryptResult: TypedContractMethod<[
2709
+ ctHash: BigNumberish,
2710
+ result: BigNumberish,
2711
+ signature: BytesLike
2712
+ ], [
2713
+ boolean
2714
+ ], 'view'>;
2715
+ verifyDecryptResultSafe: TypedContractMethod<[
2716
+ ctHash: BigNumberish,
2717
+ result: BigNumberish,
2718
+ signature: BytesLike
2719
+ ], [
2720
+ boolean
2721
+ ], 'view'>;
2722
+ verifyInput: TypedContractMethod<[input: EncryptedInputStruct, sender: AddressLike], [bigint], 'nonpayable'>;
2723
+ getFunction<T extends ContractMethod = ContractMethod>(key: string | FunctionFragment): T;
2724
+ getFunction(nameOrSignature: 'MOCK_logAllow'): TypedContractMethod<[operation: string, ctHash: BigNumberish, account: AddressLike], [void], 'view'>;
2725
+ getFunction(nameOrSignature: 'MOCK_setInEuintKey'): TypedContractMethod<[ctHash: BigNumberish, value: BigNumberish], [void], 'nonpayable'>;
2726
+ getFunction(nameOrSignature: 'acl'): TypedContractMethod<[], [string], 'view'>;
2727
+ getFunction(nameOrSignature: 'aggregator'): TypedContractMethod<[], [string], 'view'>;
2728
+ getFunction(nameOrSignature: 'allow'): TypedContractMethod<[ctHash: BigNumberish, account: AddressLike], [void], 'nonpayable'>;
2729
+ getFunction(nameOrSignature: 'allowForDecryption'): TypedContractMethod<[ctHash: BigNumberish], [void], 'nonpayable'>;
2730
+ getFunction(nameOrSignature: 'allowGlobal'): TypedContractMethod<[ctHash: BigNumberish], [void], 'nonpayable'>;
2731
+ getFunction(nameOrSignature: 'allowTransient'): TypedContractMethod<[ctHash: BigNumberish, account: AddressLike], [void], 'nonpayable'>;
2732
+ getFunction(nameOrSignature: 'createDecryptTask'): TypedContractMethod<[ctHash: BigNumberish, arg1: AddressLike], [void], 'nonpayable'>;
2733
+ getFunction(nameOrSignature: 'createRandomTask'): TypedContractMethod<[
2734
+ returnType: BigNumberish,
2735
+ seed: BigNumberish,
2736
+ securityZone: BigNumberish
2737
+ ], [
2738
+ bigint
2739
+ ], 'nonpayable'>;
2740
+ getFunction(nameOrSignature: 'createTask'): TypedContractMethod<[
2741
+ returnType: BigNumberish,
2742
+ funcId: BigNumberish,
2743
+ encryptedHashes: BigNumberish[],
2744
+ extraInputs: BigNumberish[]
2745
+ ], [
2746
+ bigint
2747
+ ], 'nonpayable'>;
2748
+ getFunction(nameOrSignature: 'decryptResultSigner'): TypedContractMethod<[], [string], 'view'>;
2749
+ getFunction(nameOrSignature: 'exists'): TypedContractMethod<[], [boolean], 'view'>;
2750
+ getFunction(nameOrSignature: 'getDecryptResult'): TypedContractMethod<[ctHash: BigNumberish], [bigint], 'view'>;
2751
+ getFunction(nameOrSignature: 'getDecryptResultSafe'): TypedContractMethod<[ctHash: BigNumberish], [[bigint, boolean] & {
2752
+ result: bigint;
2753
+ decrypted: boolean;
2754
+ }], 'view'>;
2755
+ getFunction(nameOrSignature: 'handleDecryptResult'): TypedContractMethod<[ctHash: BigNumberish, result: BigNumberish, arg2: AddressLike[]], [void], 'nonpayable'>;
2756
+ getFunction(nameOrSignature: 'handleError'): TypedContractMethod<[ctHash: BigNumberish, operation: string, errorMessage: string], [void], 'nonpayable'>;
2757
+ getFunction(nameOrSignature: 'inMockStorage'): TypedContractMethod<[arg0: BigNumberish], [boolean], 'view'>;
2758
+ getFunction(nameOrSignature: 'initialize'): TypedContractMethod<[initialOwner: AddressLike], [void], 'nonpayable'>;
2759
+ getFunction(nameOrSignature: 'isAllowed'): TypedContractMethod<[ctHash: BigNumberish, account: AddressLike], [boolean], 'view'>;
2760
+ getFunction(nameOrSignature: 'isAllowedWithPermission'): TypedContractMethod<[permission: PermissionStruct$1, handle: BigNumberish], [boolean], 'view'>;
2761
+ getFunction(nameOrSignature: 'isInitialized'): TypedContractMethod<[], [boolean], 'view'>;
2762
+ getFunction(nameOrSignature: 'isPubliclyAllowed'): TypedContractMethod<[ctHash: BigNumberish], [boolean], 'view'>;
2763
+ getFunction(nameOrSignature: 'logOps'): TypedContractMethod<[], [boolean], 'view'>;
2764
+ getFunction(nameOrSignature: 'mockStorage'): TypedContractMethod<[arg0: BigNumberish], [bigint], 'view'>;
2765
+ getFunction(nameOrSignature: 'publishDecryptResult'): TypedContractMethod<[ctHash: BigNumberish, result: BigNumberish, signature: BytesLike], [void], 'nonpayable'>;
2766
+ getFunction(nameOrSignature: 'publishDecryptResultBatch'): TypedContractMethod<[
2767
+ ctHashes: BigNumberish[],
2768
+ results: BigNumberish[],
2769
+ signatures: BytesLike[]
2770
+ ], [
2771
+ void
2772
+ ], 'nonpayable'>;
2773
+ getFunction(nameOrSignature: 'removeFirstLetter'): TypedContractMethod<[str: string], [string], 'view'>;
2774
+ getFunction(nameOrSignature: 'setACLContract'): TypedContractMethod<[_aclAddress: AddressLike], [void], 'nonpayable'>;
2775
+ getFunction(nameOrSignature: 'setAggregator'): TypedContractMethod<[_aggregatorAddress: AddressLike], [void], 'nonpayable'>;
2776
+ getFunction(nameOrSignature: 'setDecryptResultSigner'): TypedContractMethod<[signer: AddressLike], [void], 'nonpayable'>;
2777
+ getFunction(nameOrSignature: 'setLogOps'): TypedContractMethod<[_logOps: boolean], [void], 'nonpayable'>;
2778
+ getFunction(nameOrSignature: 'setSecurityZoneMax'): TypedContractMethod<[securityZone: BigNumberish], [void], 'nonpayable'>;
2779
+ getFunction(nameOrSignature: 'setSecurityZoneMin'): TypedContractMethod<[securityZone: BigNumberish], [void], 'nonpayable'>;
2780
+ getFunction(nameOrSignature: 'setSecurityZones'): TypedContractMethod<[minSZ: BigNumberish, maxSZ: BigNumberish], [void], 'nonpayable'>;
2781
+ getFunction(nameOrSignature: 'setVerifierSigner'): TypedContractMethod<[signer: AddressLike], [void], 'nonpayable'>;
2782
+ getFunction(nameOrSignature: 'sliceString'): TypedContractMethod<[str: string, start: BigNumberish, length: BigNumberish], [string], 'view'>;
2783
+ getFunction(nameOrSignature: 'verifyDecryptResult'): TypedContractMethod<[ctHash: BigNumberish, result: BigNumberish, signature: BytesLike], [boolean], 'view'>;
2784
+ getFunction(nameOrSignature: 'verifyDecryptResultSafe'): TypedContractMethod<[ctHash: BigNumberish, result: BigNumberish, signature: BytesLike], [boolean], 'view'>;
2785
+ getFunction(nameOrSignature: 'verifyInput'): TypedContractMethod<[input: EncryptedInputStruct, sender: AddressLike], [bigint], 'nonpayable'>;
2786
+ getEvent(key: 'DecryptionResult'): TypedContractEvent<DecryptionResultEvent.InputTuple, DecryptionResultEvent.OutputTuple, DecryptionResultEvent.OutputObject>;
2787
+ getEvent(key: 'ProtocolNotification'): TypedContractEvent<ProtocolNotificationEvent.InputTuple, ProtocolNotificationEvent.OutputTuple, ProtocolNotificationEvent.OutputObject>;
2788
+ getEvent(key: 'TaskCreated'): TypedContractEvent<TaskCreatedEvent.InputTuple, TaskCreatedEvent.OutputTuple, TaskCreatedEvent.OutputObject>;
2789
+ filters: {
2790
+ 'DecryptionResult(uint256,uint256,address)': TypedContractEvent<DecryptionResultEvent.InputTuple, DecryptionResultEvent.OutputTuple, DecryptionResultEvent.OutputObject>;
2791
+ DecryptionResult: TypedContractEvent<DecryptionResultEvent.InputTuple, DecryptionResultEvent.OutputTuple, DecryptionResultEvent.OutputObject>;
2792
+ 'ProtocolNotification(uint256,string,string)': TypedContractEvent<ProtocolNotificationEvent.InputTuple, ProtocolNotificationEvent.OutputTuple, ProtocolNotificationEvent.OutputObject>;
2793
+ ProtocolNotification: TypedContractEvent<ProtocolNotificationEvent.InputTuple, ProtocolNotificationEvent.OutputTuple, ProtocolNotificationEvent.OutputObject>;
2794
+ 'TaskCreated(uint256,string,uint256,uint256,uint256)': TypedContractEvent<TaskCreatedEvent.InputTuple, TaskCreatedEvent.OutputTuple, TaskCreatedEvent.OutputObject>;
2795
+ TaskCreated: TypedContractEvent<TaskCreatedEvent.InputTuple, TaskCreatedEvent.OutputTuple, TaskCreatedEvent.OutputObject>;
2796
+ };
2797
+ }
2798
+
2799
+ type PermissionStruct = {
2800
+ issuer: AddressLike;
2801
+ expiration: BigNumberish;
2802
+ recipient: AddressLike;
2803
+ validatorId: BigNumberish;
2804
+ validatorContract: AddressLike;
2805
+ sealingKey: BytesLike;
2806
+ issuerSignature: BytesLike;
2807
+ recipientSignature: BytesLike;
2808
+ };
2809
+ interface MockThresholdNetworkInterface extends Interface {
2810
+ getFunction(nameOrSignature: 'decodeLowLevelReversion' | 'decryptForTxWithPermit' | 'decryptForTxWithoutPermit' | 'exists' | 'initialize' | 'mockAcl' | 'mockQueryDecrypt' | 'mockTaskManager' | 'queryDecrypt' | 'querySealOutput' | 'seal' | 'unseal'): FunctionFragment;
2811
+ encodeFunctionData(functionFragment: 'decodeLowLevelReversion', values: [BytesLike]): string;
2812
+ encodeFunctionData(functionFragment: 'decryptForTxWithPermit', values: [BigNumberish, PermissionStruct]): string;
2813
+ encodeFunctionData(functionFragment: 'decryptForTxWithoutPermit', values: [BigNumberish]): string;
2814
+ encodeFunctionData(functionFragment: 'exists', values?: undefined): string;
2815
+ encodeFunctionData(functionFragment: 'initialize', values: [AddressLike, AddressLike]): string;
2816
+ encodeFunctionData(functionFragment: 'mockAcl', values?: undefined): string;
2817
+ encodeFunctionData(functionFragment: 'mockQueryDecrypt', values: [BigNumberish, BigNumberish, AddressLike]): string;
2818
+ encodeFunctionData(functionFragment: 'mockTaskManager', values?: undefined): string;
2819
+ encodeFunctionData(functionFragment: 'queryDecrypt', values: [BigNumberish, BigNumberish, PermissionStruct]): string;
2820
+ encodeFunctionData(functionFragment: 'querySealOutput', values: [BigNumberish, BigNumberish, PermissionStruct]): string;
2821
+ encodeFunctionData(functionFragment: 'seal', values: [BigNumberish, BytesLike]): string;
2822
+ encodeFunctionData(functionFragment: 'unseal', values: [BytesLike, BytesLike]): string;
2823
+ decodeFunctionResult(functionFragment: 'decodeLowLevelReversion', data: BytesLike): Result;
2824
+ decodeFunctionResult(functionFragment: 'decryptForTxWithPermit', data: BytesLike): Result;
2825
+ decodeFunctionResult(functionFragment: 'decryptForTxWithoutPermit', data: BytesLike): Result;
2826
+ decodeFunctionResult(functionFragment: 'exists', data: BytesLike): Result;
2827
+ decodeFunctionResult(functionFragment: 'initialize', data: BytesLike): Result;
2828
+ decodeFunctionResult(functionFragment: 'mockAcl', data: BytesLike): Result;
2829
+ decodeFunctionResult(functionFragment: 'mockQueryDecrypt', data: BytesLike): Result;
2830
+ decodeFunctionResult(functionFragment: 'mockTaskManager', data: BytesLike): Result;
2831
+ decodeFunctionResult(functionFragment: 'queryDecrypt', data: BytesLike): Result;
2832
+ decodeFunctionResult(functionFragment: 'querySealOutput', data: BytesLike): Result;
2833
+ decodeFunctionResult(functionFragment: 'seal', data: BytesLike): Result;
2834
+ decodeFunctionResult(functionFragment: 'unseal', data: BytesLike): Result;
2835
+ }
2836
+ interface MockThresholdNetwork extends BaseContract {
2837
+ connect(runner?: ContractRunner | null): MockThresholdNetwork;
2838
+ waitForDeployment(): Promise<this>;
2839
+ interface: MockThresholdNetworkInterface;
2840
+ queryFilter<TCEvent extends TypedContractEvent>(event: TCEvent, fromBlockOrBlockhash?: string | number | undefined, toBlock?: string | number | undefined): Promise<Array<TypedEventLog<TCEvent>>>;
2841
+ queryFilter<TCEvent extends TypedContractEvent>(filter: TypedDeferredTopicFilter<TCEvent>, fromBlockOrBlockhash?: string | number | undefined, toBlock?: string | number | undefined): Promise<Array<TypedEventLog<TCEvent>>>;
2842
+ on<TCEvent extends TypedContractEvent>(event: TCEvent, listener: TypedListener<TCEvent>): Promise<this>;
2843
+ on<TCEvent extends TypedContractEvent>(filter: TypedDeferredTopicFilter<TCEvent>, listener: TypedListener<TCEvent>): Promise<this>;
2844
+ once<TCEvent extends TypedContractEvent>(event: TCEvent, listener: TypedListener<TCEvent>): Promise<this>;
2845
+ once<TCEvent extends TypedContractEvent>(filter: TypedDeferredTopicFilter<TCEvent>, listener: TypedListener<TCEvent>): Promise<this>;
2846
+ listeners<TCEvent extends TypedContractEvent>(event: TCEvent): Promise<Array<TypedListener<TCEvent>>>;
2847
+ listeners(eventName?: string): Promise<Array<Listener>>;
2848
+ removeAllListeners<TCEvent extends TypedContractEvent>(event?: TCEvent): Promise<this>;
2849
+ decodeLowLevelReversion: TypedContractMethod<[data: BytesLike], [string], 'view'>;
2850
+ decryptForTxWithPermit: TypedContractMethod<[
2851
+ ctHash: BigNumberish,
2852
+ permission: PermissionStruct
2853
+ ], [
2854
+ [
2855
+ boolean,
2856
+ string,
2857
+ bigint
2858
+ ] & {
2859
+ allowed: boolean;
2860
+ error: string;
2861
+ decryptedValue: bigint;
2862
+ }
2863
+ ], 'view'>;
2864
+ decryptForTxWithoutPermit: TypedContractMethod<[
2865
+ ctHash: BigNumberish
2866
+ ], [
2867
+ [
2868
+ boolean,
2869
+ string,
2870
+ bigint
2871
+ ] & {
2872
+ allowed: boolean;
2873
+ error: string;
2874
+ decryptedValue: bigint;
2875
+ }
2876
+ ], 'view'>;
2877
+ exists: TypedContractMethod<[], [boolean], 'view'>;
2878
+ initialize: TypedContractMethod<[_taskManager: AddressLike, _acl: AddressLike], [void], 'nonpayable'>;
2879
+ mockAcl: TypedContractMethod<[], [string], 'view'>;
2880
+ mockQueryDecrypt: TypedContractMethod<[
2881
+ ctHash: BigNumberish,
2882
+ arg1: BigNumberish,
2883
+ issuer: AddressLike
2884
+ ], [
2885
+ [boolean, string, bigint] & {
2886
+ allowed: boolean;
2887
+ error: string;
2888
+ }
2889
+ ], 'view'>;
2890
+ mockTaskManager: TypedContractMethod<[], [string], 'view'>;
2891
+ queryDecrypt: TypedContractMethod<[
2892
+ ctHash: BigNumberish,
2893
+ arg1: BigNumberish,
2894
+ permission: PermissionStruct
2895
+ ], [
2896
+ [boolean, string, bigint] & {
2897
+ allowed: boolean;
2898
+ error: string;
2899
+ }
2900
+ ], 'view'>;
2901
+ querySealOutput: TypedContractMethod<[
2902
+ ctHash: BigNumberish,
2903
+ arg1: BigNumberish,
2904
+ permission: PermissionStruct
2905
+ ], [
2906
+ [boolean, string, string] & {
2907
+ allowed: boolean;
2908
+ error: string;
2909
+ }
2910
+ ], 'view'>;
2911
+ seal: TypedContractMethod<[input: BigNumberish, key: BytesLike], [string], 'view'>;
2912
+ unseal: TypedContractMethod<[hashed: BytesLike, key: BytesLike], [bigint], 'view'>;
2913
+ getFunction<T extends ContractMethod = ContractMethod>(key: string | FunctionFragment): T;
2914
+ getFunction(nameOrSignature: 'decodeLowLevelReversion'): TypedContractMethod<[data: BytesLike], [string], 'view'>;
2915
+ getFunction(nameOrSignature: 'decryptForTxWithPermit'): TypedContractMethod<[
2916
+ ctHash: BigNumberish,
2917
+ permission: PermissionStruct
2918
+ ], [
2919
+ [
2920
+ boolean,
2921
+ string,
2922
+ bigint
2923
+ ] & {
2924
+ allowed: boolean;
2925
+ error: string;
2926
+ decryptedValue: bigint;
2927
+ }
2928
+ ], 'view'>;
2929
+ getFunction(nameOrSignature: 'decryptForTxWithoutPermit'): TypedContractMethod<[
2930
+ ctHash: BigNumberish
2931
+ ], [
2932
+ [
2933
+ boolean,
2934
+ string,
2935
+ bigint
2936
+ ] & {
2937
+ allowed: boolean;
2938
+ error: string;
2939
+ decryptedValue: bigint;
2940
+ }
2941
+ ], 'view'>;
2942
+ getFunction(nameOrSignature: 'exists'): TypedContractMethod<[], [boolean], 'view'>;
2943
+ getFunction(nameOrSignature: 'initialize'): TypedContractMethod<[_taskManager: AddressLike, _acl: AddressLike], [void], 'nonpayable'>;
2944
+ getFunction(nameOrSignature: 'mockAcl'): TypedContractMethod<[], [string], 'view'>;
2945
+ getFunction(nameOrSignature: 'mockQueryDecrypt'): TypedContractMethod<[
2946
+ ctHash: BigNumberish,
2947
+ arg1: BigNumberish,
2948
+ issuer: AddressLike
2949
+ ], [
2950
+ [boolean, string, bigint] & {
2951
+ allowed: boolean;
2952
+ error: string;
2953
+ }
2954
+ ], 'view'>;
2955
+ getFunction(nameOrSignature: 'mockTaskManager'): TypedContractMethod<[], [string], 'view'>;
2956
+ getFunction(nameOrSignature: 'queryDecrypt'): TypedContractMethod<[
2957
+ ctHash: BigNumberish,
2958
+ arg1: BigNumberish,
2959
+ permission: PermissionStruct
2960
+ ], [
2961
+ [boolean, string, bigint] & {
2962
+ allowed: boolean;
2963
+ error: string;
2964
+ }
2965
+ ], 'view'>;
2966
+ getFunction(nameOrSignature: 'querySealOutput'): TypedContractMethod<[
2967
+ ctHash: BigNumberish,
2968
+ arg1: BigNumberish,
2969
+ permission: PermissionStruct
2970
+ ], [
2971
+ [boolean, string, string] & {
2972
+ allowed: boolean;
2973
+ error: string;
2974
+ }
2975
+ ], 'view'>;
2976
+ getFunction(nameOrSignature: 'seal'): TypedContractMethod<[input: BigNumberish, key: BytesLike], [string], 'view'>;
2977
+ getFunction(nameOrSignature: 'unseal'): TypedContractMethod<[hashed: BytesLike, key: BytesLike], [bigint], 'view'>;
2978
+ filters: {};
2979
+ }
2980
+
2981
+ type EncryptedInputStructOutput = [ctHash: bigint, securityZone: bigint, utype: bigint, signature: string] & {
2982
+ ctHash: bigint;
2983
+ securityZone: bigint;
2984
+ utype: bigint;
2985
+ signature: string;
2986
+ };
2987
+ interface MockZkVerifierInterface extends Interface {
2988
+ getFunction(nameOrSignature: 'exists' | 'insertCtHash' | 'insertPackedCtHashes' | 'zkVerify' | 'zkVerifyCalcCtHash' | 'zkVerifyCalcCtHashesPacked' | 'zkVerifyPacked'): FunctionFragment;
2989
+ encodeFunctionData(functionFragment: 'exists', values?: undefined): string;
2990
+ encodeFunctionData(functionFragment: 'insertCtHash', values: [BigNumberish, BigNumberish]): string;
2991
+ encodeFunctionData(functionFragment: 'insertPackedCtHashes', values: [BigNumberish[], BigNumberish[]]): string;
2992
+ encodeFunctionData(functionFragment: 'zkVerify', values: [BigNumberish, BigNumberish, AddressLike, BigNumberish, BigNumberish]): string;
2993
+ encodeFunctionData(functionFragment: 'zkVerifyCalcCtHash', values: [BigNumberish, BigNumberish, AddressLike, BigNumberish, BigNumberish]): string;
2994
+ encodeFunctionData(functionFragment: 'zkVerifyCalcCtHashesPacked', values: [BigNumberish[], BigNumberish[], AddressLike, BigNumberish, BigNumberish]): string;
2995
+ encodeFunctionData(functionFragment: 'zkVerifyPacked', values: [BigNumberish[], BigNumberish[], AddressLike, BigNumberish, BigNumberish]): string;
2996
+ decodeFunctionResult(functionFragment: 'exists', data: BytesLike): Result;
2997
+ decodeFunctionResult(functionFragment: 'insertCtHash', data: BytesLike): Result;
2998
+ decodeFunctionResult(functionFragment: 'insertPackedCtHashes', data: BytesLike): Result;
2999
+ decodeFunctionResult(functionFragment: 'zkVerify', data: BytesLike): Result;
3000
+ decodeFunctionResult(functionFragment: 'zkVerifyCalcCtHash', data: BytesLike): Result;
3001
+ decodeFunctionResult(functionFragment: 'zkVerifyCalcCtHashesPacked', data: BytesLike): Result;
3002
+ decodeFunctionResult(functionFragment: 'zkVerifyPacked', data: BytesLike): Result;
3003
+ }
3004
+ interface MockZkVerifier extends BaseContract {
3005
+ connect(runner?: ContractRunner | null): MockZkVerifier;
3006
+ waitForDeployment(): Promise<this>;
3007
+ interface: MockZkVerifierInterface;
3008
+ queryFilter<TCEvent extends TypedContractEvent>(event: TCEvent, fromBlockOrBlockhash?: string | number | undefined, toBlock?: string | number | undefined): Promise<Array<TypedEventLog<TCEvent>>>;
3009
+ queryFilter<TCEvent extends TypedContractEvent>(filter: TypedDeferredTopicFilter<TCEvent>, fromBlockOrBlockhash?: string | number | undefined, toBlock?: string | number | undefined): Promise<Array<TypedEventLog<TCEvent>>>;
3010
+ on<TCEvent extends TypedContractEvent>(event: TCEvent, listener: TypedListener<TCEvent>): Promise<this>;
3011
+ on<TCEvent extends TypedContractEvent>(filter: TypedDeferredTopicFilter<TCEvent>, listener: TypedListener<TCEvent>): Promise<this>;
3012
+ once<TCEvent extends TypedContractEvent>(event: TCEvent, listener: TypedListener<TCEvent>): Promise<this>;
3013
+ once<TCEvent extends TypedContractEvent>(filter: TypedDeferredTopicFilter<TCEvent>, listener: TypedListener<TCEvent>): Promise<this>;
3014
+ listeners<TCEvent extends TypedContractEvent>(event: TCEvent): Promise<Array<TypedListener<TCEvent>>>;
3015
+ listeners(eventName?: string): Promise<Array<Listener>>;
3016
+ removeAllListeners<TCEvent extends TypedContractEvent>(event?: TCEvent): Promise<this>;
3017
+ exists: TypedContractMethod<[], [boolean], 'view'>;
3018
+ insertCtHash: TypedContractMethod<[ctHash: BigNumberish, value: BigNumberish], [void], 'nonpayable'>;
3019
+ insertPackedCtHashes: TypedContractMethod<[ctHashes: BigNumberish[], values: BigNumberish[]], [void], 'nonpayable'>;
3020
+ zkVerify: TypedContractMethod<[
3021
+ value: BigNumberish,
3022
+ utype: BigNumberish,
3023
+ user: AddressLike,
3024
+ securityZone: BigNumberish,
3025
+ arg4: BigNumberish
3026
+ ], [
3027
+ EncryptedInputStructOutput
3028
+ ], 'nonpayable'>;
3029
+ zkVerifyCalcCtHash: TypedContractMethod<[
3030
+ value: BigNumberish,
3031
+ utype: BigNumberish,
3032
+ user: AddressLike,
3033
+ securityZone: BigNumberish,
3034
+ arg4: BigNumberish
3035
+ ], [
3036
+ bigint
3037
+ ], 'view'>;
3038
+ zkVerifyCalcCtHashesPacked: TypedContractMethod<[
3039
+ values: BigNumberish[],
3040
+ utypes: BigNumberish[],
3041
+ user: AddressLike,
3042
+ securityZone: BigNumberish,
3043
+ chainId: BigNumberish
3044
+ ], [
3045
+ bigint[]
3046
+ ], 'view'>;
3047
+ zkVerifyPacked: TypedContractMethod<[
3048
+ values: BigNumberish[],
3049
+ utypes: BigNumberish[],
3050
+ user: AddressLike,
3051
+ securityZone: BigNumberish,
3052
+ chainId: BigNumberish
3053
+ ], [
3054
+ EncryptedInputStructOutput[]
3055
+ ], 'nonpayable'>;
3056
+ getFunction<T extends ContractMethod = ContractMethod>(key: string | FunctionFragment): T;
3057
+ getFunction(nameOrSignature: 'exists'): TypedContractMethod<[], [boolean], 'view'>;
3058
+ getFunction(nameOrSignature: 'insertCtHash'): TypedContractMethod<[ctHash: BigNumberish, value: BigNumberish], [void], 'nonpayable'>;
3059
+ getFunction(nameOrSignature: 'insertPackedCtHashes'): TypedContractMethod<[ctHashes: BigNumberish[], values: BigNumberish[]], [void], 'nonpayable'>;
3060
+ getFunction(nameOrSignature: 'zkVerify'): TypedContractMethod<[
3061
+ value: BigNumberish,
3062
+ utype: BigNumberish,
3063
+ user: AddressLike,
3064
+ securityZone: BigNumberish,
3065
+ arg4: BigNumberish
3066
+ ], [
3067
+ EncryptedInputStructOutput
3068
+ ], 'nonpayable'>;
3069
+ getFunction(nameOrSignature: 'zkVerifyCalcCtHash'): TypedContractMethod<[
3070
+ value: BigNumberish,
3071
+ utype: BigNumberish,
3072
+ user: AddressLike,
3073
+ securityZone: BigNumberish,
3074
+ arg4: BigNumberish
3075
+ ], [
3076
+ bigint
3077
+ ], 'view'>;
3078
+ getFunction(nameOrSignature: 'zkVerifyCalcCtHashesPacked'): TypedContractMethod<[
3079
+ values: BigNumberish[],
3080
+ utypes: BigNumberish[],
3081
+ user: AddressLike,
3082
+ securityZone: BigNumberish,
3083
+ chainId: BigNumberish
3084
+ ], [
3085
+ bigint[]
3086
+ ], 'view'>;
3087
+ getFunction(nameOrSignature: 'zkVerifyPacked'): TypedContractMethod<[
3088
+ values: BigNumberish[],
3089
+ utypes: BigNumberish[],
3090
+ user: AddressLike,
3091
+ securityZone: BigNumberish,
3092
+ chainId: BigNumberish
3093
+ ], [
3094
+ EncryptedInputStructOutput[]
3095
+ ], 'nonpayable'>;
3096
+ filters: {};
3097
+ }
3098
+
3099
+ type InEuint32Struct = {
3100
+ ctHash: BigNumberish;
3101
+ securityZone: BigNumberish;
3102
+ utype: BigNumberish;
3103
+ signature: BytesLike;
3104
+ };
3105
+ interface TestBedInterface extends Interface {
3106
+ getFunction(nameOrSignature: 'add' | 'decrypt' | 'eNumber' | 'exists' | 'getDecryptResult' | 'getDecryptResultSafe' | 'increment' | 'mul' | 'numberHash' | 'publishDecryptResult' | 'setNumber' | 'setNumberTrivial' | 'sub'): FunctionFragment;
3107
+ encodeFunctionData(functionFragment: 'add', values: [InEuint32Struct]): string;
3108
+ encodeFunctionData(functionFragment: 'decrypt', values?: undefined): string;
3109
+ encodeFunctionData(functionFragment: 'eNumber', values?: undefined): string;
3110
+ encodeFunctionData(functionFragment: 'exists', values?: undefined): string;
3111
+ encodeFunctionData(functionFragment: 'getDecryptResult', values: [BytesLike]): string;
3112
+ encodeFunctionData(functionFragment: 'getDecryptResultSafe', values: [BytesLike]): string;
3113
+ encodeFunctionData(functionFragment: 'increment', values?: undefined): string;
3114
+ encodeFunctionData(functionFragment: 'mul', values: [InEuint32Struct]): string;
3115
+ encodeFunctionData(functionFragment: 'numberHash', values?: undefined): string;
3116
+ encodeFunctionData(functionFragment: 'publishDecryptResult', values: [BytesLike, BigNumberish, BytesLike]): string;
3117
+ encodeFunctionData(functionFragment: 'setNumber', values: [InEuint32Struct]): string;
3118
+ encodeFunctionData(functionFragment: 'setNumberTrivial', values: [BigNumberish]): string;
3119
+ encodeFunctionData(functionFragment: 'sub', values: [InEuint32Struct]): string;
3120
+ decodeFunctionResult(functionFragment: 'add', data: BytesLike): Result;
3121
+ decodeFunctionResult(functionFragment: 'decrypt', data: BytesLike): Result;
3122
+ decodeFunctionResult(functionFragment: 'eNumber', data: BytesLike): Result;
3123
+ decodeFunctionResult(functionFragment: 'exists', data: BytesLike): Result;
3124
+ decodeFunctionResult(functionFragment: 'getDecryptResult', data: BytesLike): Result;
3125
+ decodeFunctionResult(functionFragment: 'getDecryptResultSafe', data: BytesLike): Result;
3126
+ decodeFunctionResult(functionFragment: 'increment', data: BytesLike): Result;
3127
+ decodeFunctionResult(functionFragment: 'mul', data: BytesLike): Result;
3128
+ decodeFunctionResult(functionFragment: 'numberHash', data: BytesLike): Result;
3129
+ decodeFunctionResult(functionFragment: 'publishDecryptResult', data: BytesLike): Result;
3130
+ decodeFunctionResult(functionFragment: 'setNumber', data: BytesLike): Result;
3131
+ decodeFunctionResult(functionFragment: 'setNumberTrivial', data: BytesLike): Result;
3132
+ decodeFunctionResult(functionFragment: 'sub', data: BytesLike): Result;
3133
+ }
3134
+ interface TestBed extends BaseContract {
3135
+ connect(runner?: ContractRunner | null): TestBed;
3136
+ waitForDeployment(): Promise<this>;
3137
+ interface: TestBedInterface;
3138
+ queryFilter<TCEvent extends TypedContractEvent>(event: TCEvent, fromBlockOrBlockhash?: string | number | undefined, toBlock?: string | number | undefined): Promise<Array<TypedEventLog<TCEvent>>>;
3139
+ queryFilter<TCEvent extends TypedContractEvent>(filter: TypedDeferredTopicFilter<TCEvent>, fromBlockOrBlockhash?: string | number | undefined, toBlock?: string | number | undefined): Promise<Array<TypedEventLog<TCEvent>>>;
3140
+ on<TCEvent extends TypedContractEvent>(event: TCEvent, listener: TypedListener<TCEvent>): Promise<this>;
3141
+ on<TCEvent extends TypedContractEvent>(filter: TypedDeferredTopicFilter<TCEvent>, listener: TypedListener<TCEvent>): Promise<this>;
3142
+ once<TCEvent extends TypedContractEvent>(event: TCEvent, listener: TypedListener<TCEvent>): Promise<this>;
3143
+ once<TCEvent extends TypedContractEvent>(filter: TypedDeferredTopicFilter<TCEvent>, listener: TypedListener<TCEvent>): Promise<this>;
3144
+ listeners<TCEvent extends TypedContractEvent>(event: TCEvent): Promise<Array<TypedListener<TCEvent>>>;
3145
+ listeners(eventName?: string): Promise<Array<Listener>>;
3146
+ removeAllListeners<TCEvent extends TypedContractEvent>(event?: TCEvent): Promise<this>;
3147
+ add: TypedContractMethod<[inNumber: InEuint32Struct], [void], 'nonpayable'>;
3148
+ decrypt: TypedContractMethod<[], [void], 'nonpayable'>;
3149
+ eNumber: TypedContractMethod<[], [string], 'view'>;
3150
+ exists: TypedContractMethod<[], [boolean], 'view'>;
3151
+ getDecryptResult: TypedContractMethod<[input1: BytesLike], [bigint], 'view'>;
3152
+ getDecryptResultSafe: TypedContractMethod<[
3153
+ input1: BytesLike
3154
+ ], [
3155
+ [bigint, boolean] & {
3156
+ value: bigint;
3157
+ decrypted: boolean;
3158
+ }
3159
+ ], 'view'>;
3160
+ increment: TypedContractMethod<[], [void], 'nonpayable'>;
3161
+ mul: TypedContractMethod<[inNumber: InEuint32Struct], [void], 'nonpayable'>;
3162
+ numberHash: TypedContractMethod<[], [string], 'view'>;
3163
+ publishDecryptResult: TypedContractMethod<[
3164
+ input: BytesLike,
3165
+ result: BigNumberish,
3166
+ signature: BytesLike
3167
+ ], [
3168
+ void
3169
+ ], 'nonpayable'>;
3170
+ setNumber: TypedContractMethod<[inNumber: InEuint32Struct], [void], 'nonpayable'>;
3171
+ setNumberTrivial: TypedContractMethod<[inNumber: BigNumberish], [void], 'nonpayable'>;
3172
+ sub: TypedContractMethod<[inNumber: InEuint32Struct], [void], 'nonpayable'>;
3173
+ getFunction<T extends ContractMethod = ContractMethod>(key: string | FunctionFragment): T;
3174
+ getFunction(nameOrSignature: 'add'): TypedContractMethod<[inNumber: InEuint32Struct], [void], 'nonpayable'>;
3175
+ getFunction(nameOrSignature: 'decrypt'): TypedContractMethod<[], [void], 'nonpayable'>;
3176
+ getFunction(nameOrSignature: 'eNumber'): TypedContractMethod<[], [string], 'view'>;
3177
+ getFunction(nameOrSignature: 'exists'): TypedContractMethod<[], [boolean], 'view'>;
3178
+ getFunction(nameOrSignature: 'getDecryptResult'): TypedContractMethod<[input1: BytesLike], [bigint], 'view'>;
3179
+ getFunction(nameOrSignature: 'getDecryptResultSafe'): TypedContractMethod<[input1: BytesLike], [[bigint, boolean] & {
3180
+ value: bigint;
3181
+ decrypted: boolean;
3182
+ }], 'view'>;
3183
+ getFunction(nameOrSignature: 'increment'): TypedContractMethod<[], [void], 'nonpayable'>;
3184
+ getFunction(nameOrSignature: 'mul'): TypedContractMethod<[inNumber: InEuint32Struct], [void], 'nonpayable'>;
3185
+ getFunction(nameOrSignature: 'numberHash'): TypedContractMethod<[], [string], 'view'>;
3186
+ getFunction(nameOrSignature: 'publishDecryptResult'): TypedContractMethod<[input: BytesLike, result: BigNumberish, signature: BytesLike], [void], 'nonpayable'>;
3187
+ getFunction(nameOrSignature: 'setNumber'): TypedContractMethod<[inNumber: InEuint32Struct], [void], 'nonpayable'>;
3188
+ getFunction(nameOrSignature: 'setNumberTrivial'): TypedContractMethod<[inNumber: BigNumberish], [void], 'nonpayable'>;
3189
+ getFunction(nameOrSignature: 'sub'): TypedContractMethod<[inNumber: InEuint32Struct], [void], 'nonpayable'>;
3190
+ filters: {};
3191
+ }
3192
+
3193
+ export { type MockACL, MockACLArtifact, type MockArtifact, type MockTaskManager, MockTaskManagerArtifact, type MockThresholdNetwork, MockThresholdNetworkArtifact, type MockZkVerifier, MockZkVerifierArtifact, type TestBed, TestBedArtifact };