@openzeppelin/confidential-contracts 0.2.0-rc.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (31) hide show
  1. package/README.md +24 -0
  2. package/build/contracts/Checkpoints.json +16 -0
  3. package/build/contracts/CheckpointsConfidential.json +16 -0
  4. package/build/contracts/ConfidentialFungibleToken.json +614 -0
  5. package/build/contracts/ConfidentialFungibleTokenERC20Wrapper.json +793 -0
  6. package/build/contracts/ConfidentialFungibleTokenUtils.json +10 -0
  7. package/build/contracts/ConfidentialFungibleTokenVotes.json +1002 -0
  8. package/build/contracts/ERC7821WithExecutor.json +145 -0
  9. package/build/contracts/IConfidentialFungibleToken.json +458 -0
  10. package/build/contracts/IConfidentialFungibleTokenReceiver.json +45 -0
  11. package/build/contracts/TFHESafeMath.json +10 -0
  12. package/build/contracts/VestingWalletCliffConfidential.json +275 -0
  13. package/build/contracts/VestingWalletCliffExecutorConfidential.json +424 -0
  14. package/build/contracts/VestingWalletCliffExecutorConfidentialFactory.json +290 -0
  15. package/build/contracts/VestingWalletConfidential.json +246 -0
  16. package/build/contracts/VotesConfidential.json +412 -0
  17. package/finance/ERC7821WithExecutor.sol +46 -0
  18. package/finance/VestingWalletCliffConfidential.sol +62 -0
  19. package/finance/VestingWalletCliffExecutorConfidentialFactory.sol +203 -0
  20. package/finance/VestingWalletConfidential.sol +130 -0
  21. package/governance/utils/VotesConfidential.sol +202 -0
  22. package/interfaces/IConfidentialFungibleToken.sol +135 -0
  23. package/interfaces/IConfidentialFungibleTokenReceiver.sol +19 -0
  24. package/package.json +39 -0
  25. package/token/ConfidentialFungibleToken.sol +314 -0
  26. package/token/extensions/ConfidentialFungibleTokenERC20Wrapper.sol +175 -0
  27. package/token/extensions/ConfidentialFungibleTokenVotes.sol +29 -0
  28. package/token/utils/ConfidentialFungibleTokenUtils.sol +46 -0
  29. package/utils/TFHESafeMath.sol +37 -0
  30. package/utils/structs/CheckpointsConfidential.sol +193 -0
  31. package/utils/structs/temporary-Checkpoints.sol +835 -0
@@ -0,0 +1,1002 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "ConfidentialFungibleTokenVotes",
4
+ "sourceName": "contracts/token/extensions/ConfidentialFungibleTokenVotes.sol",
5
+ "abi": [
6
+ {
7
+ "inputs": [],
8
+ "name": "CheckpointUnorderedInsertion",
9
+ "type": "error"
10
+ },
11
+ {
12
+ "inputs": [
13
+ {
14
+ "internalType": "uint256",
15
+ "name": "requestId",
16
+ "type": "uint256"
17
+ }
18
+ ],
19
+ "name": "ConfidentialFungibleTokenInvalidGatewayRequest",
20
+ "type": "error"
21
+ },
22
+ {
23
+ "inputs": [
24
+ {
25
+ "internalType": "address",
26
+ "name": "receiver",
27
+ "type": "address"
28
+ }
29
+ ],
30
+ "name": "ConfidentialFungibleTokenInvalidReceiver",
31
+ "type": "error"
32
+ },
33
+ {
34
+ "inputs": [
35
+ {
36
+ "internalType": "address",
37
+ "name": "sender",
38
+ "type": "address"
39
+ }
40
+ ],
41
+ "name": "ConfidentialFungibleTokenInvalidSender",
42
+ "type": "error"
43
+ },
44
+ {
45
+ "inputs": [
46
+ {
47
+ "internalType": "address",
48
+ "name": "caller",
49
+ "type": "address"
50
+ }
51
+ ],
52
+ "name": "ConfidentialFungibleTokenUnauthorizedCaller",
53
+ "type": "error"
54
+ },
55
+ {
56
+ "inputs": [
57
+ {
58
+ "internalType": "address",
59
+ "name": "holder",
60
+ "type": "address"
61
+ },
62
+ {
63
+ "internalType": "address",
64
+ "name": "spender",
65
+ "type": "address"
66
+ }
67
+ ],
68
+ "name": "ConfidentialFungibleTokenUnauthorizedSpender",
69
+ "type": "error"
70
+ },
71
+ {
72
+ "inputs": [
73
+ {
74
+ "internalType": "euint64",
75
+ "name": "amount",
76
+ "type": "bytes32"
77
+ },
78
+ {
79
+ "internalType": "address",
80
+ "name": "user",
81
+ "type": "address"
82
+ }
83
+ ],
84
+ "name": "ConfidentialFungibleTokenUnauthorizedUseOfEncryptedAmount",
85
+ "type": "error"
86
+ },
87
+ {
88
+ "inputs": [
89
+ {
90
+ "internalType": "address",
91
+ "name": "holder",
92
+ "type": "address"
93
+ }
94
+ ],
95
+ "name": "ConfidentialFungibleTokenZeroBalance",
96
+ "type": "error"
97
+ },
98
+ {
99
+ "inputs": [],
100
+ "name": "ECDSAInvalidSignature",
101
+ "type": "error"
102
+ },
103
+ {
104
+ "inputs": [
105
+ {
106
+ "internalType": "uint256",
107
+ "name": "length",
108
+ "type": "uint256"
109
+ }
110
+ ],
111
+ "name": "ECDSAInvalidSignatureLength",
112
+ "type": "error"
113
+ },
114
+ {
115
+ "inputs": [
116
+ {
117
+ "internalType": "bytes32",
118
+ "name": "s",
119
+ "type": "bytes32"
120
+ }
121
+ ],
122
+ "name": "ECDSAInvalidSignatureS",
123
+ "type": "error"
124
+ },
125
+ {
126
+ "inputs": [
127
+ {
128
+ "internalType": "uint256",
129
+ "name": "timepoint",
130
+ "type": "uint256"
131
+ },
132
+ {
133
+ "internalType": "uint48",
134
+ "name": "clock",
135
+ "type": "uint48"
136
+ }
137
+ ],
138
+ "name": "ERC5805FutureLookup",
139
+ "type": "error"
140
+ },
141
+ {
142
+ "inputs": [],
143
+ "name": "ERC6372InconsistentClock",
144
+ "type": "error"
145
+ },
146
+ {
147
+ "inputs": [],
148
+ "name": "HandlesAlreadySavedForRequestID",
149
+ "type": "error"
150
+ },
151
+ {
152
+ "inputs": [
153
+ {
154
+ "internalType": "address",
155
+ "name": "account",
156
+ "type": "address"
157
+ },
158
+ {
159
+ "internalType": "uint256",
160
+ "name": "currentNonce",
161
+ "type": "uint256"
162
+ }
163
+ ],
164
+ "name": "InvalidAccountNonce",
165
+ "type": "error"
166
+ },
167
+ {
168
+ "inputs": [],
169
+ "name": "InvalidKMSSignatures",
170
+ "type": "error"
171
+ },
172
+ {
173
+ "inputs": [],
174
+ "name": "InvalidShortString",
175
+ "type": "error"
176
+ },
177
+ {
178
+ "inputs": [],
179
+ "name": "NoHandleFoundForRequestID",
180
+ "type": "error"
181
+ },
182
+ {
183
+ "inputs": [
184
+ {
185
+ "internalType": "uint8",
186
+ "name": "bits",
187
+ "type": "uint8"
188
+ },
189
+ {
190
+ "internalType": "uint256",
191
+ "name": "value",
192
+ "type": "uint256"
193
+ }
194
+ ],
195
+ "name": "SafeCastOverflowedUintDowncast",
196
+ "type": "error"
197
+ },
198
+ {
199
+ "inputs": [
200
+ {
201
+ "internalType": "string",
202
+ "name": "str",
203
+ "type": "string"
204
+ }
205
+ ],
206
+ "name": "StringTooLong",
207
+ "type": "error"
208
+ },
209
+ {
210
+ "inputs": [],
211
+ "name": "UnsupportedHandleType",
212
+ "type": "error"
213
+ },
214
+ {
215
+ "inputs": [
216
+ {
217
+ "internalType": "uint256",
218
+ "name": "expiry",
219
+ "type": "uint256"
220
+ }
221
+ ],
222
+ "name": "VotesExpiredSignature",
223
+ "type": "error"
224
+ },
225
+ {
226
+ "anonymous": false,
227
+ "inputs": [
228
+ {
229
+ "indexed": true,
230
+ "internalType": "euint64",
231
+ "name": "encryptedAmount",
232
+ "type": "bytes32"
233
+ },
234
+ {
235
+ "indexed": false,
236
+ "internalType": "uint64",
237
+ "name": "amount",
238
+ "type": "uint64"
239
+ }
240
+ ],
241
+ "name": "AmountDisclosed",
242
+ "type": "event"
243
+ },
244
+ {
245
+ "anonymous": false,
246
+ "inputs": [
247
+ {
248
+ "indexed": true,
249
+ "internalType": "address",
250
+ "name": "from",
251
+ "type": "address"
252
+ },
253
+ {
254
+ "indexed": true,
255
+ "internalType": "address",
256
+ "name": "to",
257
+ "type": "address"
258
+ },
259
+ {
260
+ "indexed": true,
261
+ "internalType": "euint64",
262
+ "name": "amount",
263
+ "type": "bytes32"
264
+ }
265
+ ],
266
+ "name": "ConfidentialTransfer",
267
+ "type": "event"
268
+ },
269
+ {
270
+ "anonymous": false,
271
+ "inputs": [
272
+ {
273
+ "indexed": true,
274
+ "internalType": "uint256",
275
+ "name": "requestID",
276
+ "type": "uint256"
277
+ }
278
+ ],
279
+ "name": "DecryptionFulfilled",
280
+ "type": "event"
281
+ },
282
+ {
283
+ "anonymous": false,
284
+ "inputs": [
285
+ {
286
+ "indexed": true,
287
+ "internalType": "address",
288
+ "name": "delegator",
289
+ "type": "address"
290
+ },
291
+ {
292
+ "indexed": true,
293
+ "internalType": "address",
294
+ "name": "fromDelegate",
295
+ "type": "address"
296
+ },
297
+ {
298
+ "indexed": true,
299
+ "internalType": "address",
300
+ "name": "toDelegate",
301
+ "type": "address"
302
+ }
303
+ ],
304
+ "name": "DelegateChanged",
305
+ "type": "event"
306
+ },
307
+ {
308
+ "anonymous": false,
309
+ "inputs": [
310
+ {
311
+ "indexed": true,
312
+ "internalType": "address",
313
+ "name": "delegate",
314
+ "type": "address"
315
+ },
316
+ {
317
+ "indexed": false,
318
+ "internalType": "euint64",
319
+ "name": "previousVotes",
320
+ "type": "bytes32"
321
+ },
322
+ {
323
+ "indexed": false,
324
+ "internalType": "euint64",
325
+ "name": "newVotes",
326
+ "type": "bytes32"
327
+ }
328
+ ],
329
+ "name": "DelegateVotesChanged",
330
+ "type": "event"
331
+ },
332
+ {
333
+ "anonymous": false,
334
+ "inputs": [],
335
+ "name": "EIP712DomainChanged",
336
+ "type": "event"
337
+ },
338
+ {
339
+ "anonymous": false,
340
+ "inputs": [
341
+ {
342
+ "indexed": true,
343
+ "internalType": "address",
344
+ "name": "holder",
345
+ "type": "address"
346
+ },
347
+ {
348
+ "indexed": true,
349
+ "internalType": "address",
350
+ "name": "operator",
351
+ "type": "address"
352
+ },
353
+ {
354
+ "indexed": false,
355
+ "internalType": "uint48",
356
+ "name": "until",
357
+ "type": "uint48"
358
+ }
359
+ ],
360
+ "name": "OperatorSet",
361
+ "type": "event"
362
+ },
363
+ {
364
+ "inputs": [],
365
+ "name": "CLOCK_MODE",
366
+ "outputs": [
367
+ {
368
+ "internalType": "string",
369
+ "name": "",
370
+ "type": "string"
371
+ }
372
+ ],
373
+ "stateMutability": "view",
374
+ "type": "function"
375
+ },
376
+ {
377
+ "inputs": [],
378
+ "name": "clock",
379
+ "outputs": [
380
+ {
381
+ "internalType": "uint48",
382
+ "name": "",
383
+ "type": "uint48"
384
+ }
385
+ ],
386
+ "stateMutability": "view",
387
+ "type": "function"
388
+ },
389
+ {
390
+ "inputs": [
391
+ {
392
+ "internalType": "address",
393
+ "name": "account",
394
+ "type": "address"
395
+ }
396
+ ],
397
+ "name": "confidentialBalanceOf",
398
+ "outputs": [
399
+ {
400
+ "internalType": "euint64",
401
+ "name": "",
402
+ "type": "bytes32"
403
+ }
404
+ ],
405
+ "stateMutability": "view",
406
+ "type": "function"
407
+ },
408
+ {
409
+ "inputs": [],
410
+ "name": "confidentialTotalSupply",
411
+ "outputs": [
412
+ {
413
+ "internalType": "euint64",
414
+ "name": "",
415
+ "type": "bytes32"
416
+ }
417
+ ],
418
+ "stateMutability": "view",
419
+ "type": "function"
420
+ },
421
+ {
422
+ "inputs": [
423
+ {
424
+ "internalType": "address",
425
+ "name": "to",
426
+ "type": "address"
427
+ },
428
+ {
429
+ "internalType": "externalEuint64",
430
+ "name": "encryptedAmount",
431
+ "type": "bytes32"
432
+ },
433
+ {
434
+ "internalType": "bytes",
435
+ "name": "inputProof",
436
+ "type": "bytes"
437
+ }
438
+ ],
439
+ "name": "confidentialTransfer",
440
+ "outputs": [
441
+ {
442
+ "internalType": "euint64",
443
+ "name": "",
444
+ "type": "bytes32"
445
+ }
446
+ ],
447
+ "stateMutability": "nonpayable",
448
+ "type": "function"
449
+ },
450
+ {
451
+ "inputs": [
452
+ {
453
+ "internalType": "address",
454
+ "name": "to",
455
+ "type": "address"
456
+ },
457
+ {
458
+ "internalType": "euint64",
459
+ "name": "amount",
460
+ "type": "bytes32"
461
+ }
462
+ ],
463
+ "name": "confidentialTransfer",
464
+ "outputs": [
465
+ {
466
+ "internalType": "euint64",
467
+ "name": "",
468
+ "type": "bytes32"
469
+ }
470
+ ],
471
+ "stateMutability": "nonpayable",
472
+ "type": "function"
473
+ },
474
+ {
475
+ "inputs": [
476
+ {
477
+ "internalType": "address",
478
+ "name": "to",
479
+ "type": "address"
480
+ },
481
+ {
482
+ "internalType": "euint64",
483
+ "name": "amount",
484
+ "type": "bytes32"
485
+ },
486
+ {
487
+ "internalType": "bytes",
488
+ "name": "data",
489
+ "type": "bytes"
490
+ }
491
+ ],
492
+ "name": "confidentialTransferAndCall",
493
+ "outputs": [
494
+ {
495
+ "internalType": "euint64",
496
+ "name": "transferred",
497
+ "type": "bytes32"
498
+ }
499
+ ],
500
+ "stateMutability": "nonpayable",
501
+ "type": "function"
502
+ },
503
+ {
504
+ "inputs": [
505
+ {
506
+ "internalType": "address",
507
+ "name": "to",
508
+ "type": "address"
509
+ },
510
+ {
511
+ "internalType": "externalEuint64",
512
+ "name": "encryptedAmount",
513
+ "type": "bytes32"
514
+ },
515
+ {
516
+ "internalType": "bytes",
517
+ "name": "inputProof",
518
+ "type": "bytes"
519
+ },
520
+ {
521
+ "internalType": "bytes",
522
+ "name": "data",
523
+ "type": "bytes"
524
+ }
525
+ ],
526
+ "name": "confidentialTransferAndCall",
527
+ "outputs": [
528
+ {
529
+ "internalType": "euint64",
530
+ "name": "transferred",
531
+ "type": "bytes32"
532
+ }
533
+ ],
534
+ "stateMutability": "nonpayable",
535
+ "type": "function"
536
+ },
537
+ {
538
+ "inputs": [
539
+ {
540
+ "internalType": "address",
541
+ "name": "from",
542
+ "type": "address"
543
+ },
544
+ {
545
+ "internalType": "address",
546
+ "name": "to",
547
+ "type": "address"
548
+ },
549
+ {
550
+ "internalType": "externalEuint64",
551
+ "name": "encryptedAmount",
552
+ "type": "bytes32"
553
+ },
554
+ {
555
+ "internalType": "bytes",
556
+ "name": "inputProof",
557
+ "type": "bytes"
558
+ }
559
+ ],
560
+ "name": "confidentialTransferFrom",
561
+ "outputs": [
562
+ {
563
+ "internalType": "euint64",
564
+ "name": "transferred",
565
+ "type": "bytes32"
566
+ }
567
+ ],
568
+ "stateMutability": "nonpayable",
569
+ "type": "function"
570
+ },
571
+ {
572
+ "inputs": [
573
+ {
574
+ "internalType": "address",
575
+ "name": "from",
576
+ "type": "address"
577
+ },
578
+ {
579
+ "internalType": "address",
580
+ "name": "to",
581
+ "type": "address"
582
+ },
583
+ {
584
+ "internalType": "euint64",
585
+ "name": "amount",
586
+ "type": "bytes32"
587
+ }
588
+ ],
589
+ "name": "confidentialTransferFrom",
590
+ "outputs": [
591
+ {
592
+ "internalType": "euint64",
593
+ "name": "transferred",
594
+ "type": "bytes32"
595
+ }
596
+ ],
597
+ "stateMutability": "nonpayable",
598
+ "type": "function"
599
+ },
600
+ {
601
+ "inputs": [
602
+ {
603
+ "internalType": "address",
604
+ "name": "from",
605
+ "type": "address"
606
+ },
607
+ {
608
+ "internalType": "address",
609
+ "name": "to",
610
+ "type": "address"
611
+ },
612
+ {
613
+ "internalType": "externalEuint64",
614
+ "name": "encryptedAmount",
615
+ "type": "bytes32"
616
+ },
617
+ {
618
+ "internalType": "bytes",
619
+ "name": "inputProof",
620
+ "type": "bytes"
621
+ },
622
+ {
623
+ "internalType": "bytes",
624
+ "name": "data",
625
+ "type": "bytes"
626
+ }
627
+ ],
628
+ "name": "confidentialTransferFromAndCall",
629
+ "outputs": [
630
+ {
631
+ "internalType": "euint64",
632
+ "name": "transferred",
633
+ "type": "bytes32"
634
+ }
635
+ ],
636
+ "stateMutability": "nonpayable",
637
+ "type": "function"
638
+ },
639
+ {
640
+ "inputs": [
641
+ {
642
+ "internalType": "address",
643
+ "name": "from",
644
+ "type": "address"
645
+ },
646
+ {
647
+ "internalType": "address",
648
+ "name": "to",
649
+ "type": "address"
650
+ },
651
+ {
652
+ "internalType": "euint64",
653
+ "name": "amount",
654
+ "type": "bytes32"
655
+ },
656
+ {
657
+ "internalType": "bytes",
658
+ "name": "data",
659
+ "type": "bytes"
660
+ }
661
+ ],
662
+ "name": "confidentialTransferFromAndCall",
663
+ "outputs": [
664
+ {
665
+ "internalType": "euint64",
666
+ "name": "transferred",
667
+ "type": "bytes32"
668
+ }
669
+ ],
670
+ "stateMutability": "nonpayable",
671
+ "type": "function"
672
+ },
673
+ {
674
+ "inputs": [],
675
+ "name": "decimals",
676
+ "outputs": [
677
+ {
678
+ "internalType": "uint8",
679
+ "name": "",
680
+ "type": "uint8"
681
+ }
682
+ ],
683
+ "stateMutability": "view",
684
+ "type": "function"
685
+ },
686
+ {
687
+ "inputs": [
688
+ {
689
+ "internalType": "address",
690
+ "name": "delegatee",
691
+ "type": "address"
692
+ }
693
+ ],
694
+ "name": "delegate",
695
+ "outputs": [],
696
+ "stateMutability": "nonpayable",
697
+ "type": "function"
698
+ },
699
+ {
700
+ "inputs": [
701
+ {
702
+ "internalType": "address",
703
+ "name": "delegatee",
704
+ "type": "address"
705
+ },
706
+ {
707
+ "internalType": "uint256",
708
+ "name": "nonce",
709
+ "type": "uint256"
710
+ },
711
+ {
712
+ "internalType": "uint256",
713
+ "name": "expiry",
714
+ "type": "uint256"
715
+ },
716
+ {
717
+ "internalType": "uint8",
718
+ "name": "v",
719
+ "type": "uint8"
720
+ },
721
+ {
722
+ "internalType": "bytes32",
723
+ "name": "r",
724
+ "type": "bytes32"
725
+ },
726
+ {
727
+ "internalType": "bytes32",
728
+ "name": "s",
729
+ "type": "bytes32"
730
+ }
731
+ ],
732
+ "name": "delegateBySig",
733
+ "outputs": [],
734
+ "stateMutability": "nonpayable",
735
+ "type": "function"
736
+ },
737
+ {
738
+ "inputs": [
739
+ {
740
+ "internalType": "address",
741
+ "name": "account",
742
+ "type": "address"
743
+ }
744
+ ],
745
+ "name": "delegates",
746
+ "outputs": [
747
+ {
748
+ "internalType": "address",
749
+ "name": "",
750
+ "type": "address"
751
+ }
752
+ ],
753
+ "stateMutability": "view",
754
+ "type": "function"
755
+ },
756
+ {
757
+ "inputs": [
758
+ {
759
+ "internalType": "euint64",
760
+ "name": "encryptedAmount",
761
+ "type": "bytes32"
762
+ }
763
+ ],
764
+ "name": "discloseEncryptedAmount",
765
+ "outputs": [],
766
+ "stateMutability": "nonpayable",
767
+ "type": "function"
768
+ },
769
+ {
770
+ "inputs": [],
771
+ "name": "eip712Domain",
772
+ "outputs": [
773
+ {
774
+ "internalType": "bytes1",
775
+ "name": "fields",
776
+ "type": "bytes1"
777
+ },
778
+ {
779
+ "internalType": "string",
780
+ "name": "name",
781
+ "type": "string"
782
+ },
783
+ {
784
+ "internalType": "string",
785
+ "name": "version",
786
+ "type": "string"
787
+ },
788
+ {
789
+ "internalType": "uint256",
790
+ "name": "chainId",
791
+ "type": "uint256"
792
+ },
793
+ {
794
+ "internalType": "address",
795
+ "name": "verifyingContract",
796
+ "type": "address"
797
+ },
798
+ {
799
+ "internalType": "bytes32",
800
+ "name": "salt",
801
+ "type": "bytes32"
802
+ },
803
+ {
804
+ "internalType": "uint256[]",
805
+ "name": "extensions",
806
+ "type": "uint256[]"
807
+ }
808
+ ],
809
+ "stateMutability": "view",
810
+ "type": "function"
811
+ },
812
+ {
813
+ "inputs": [
814
+ {
815
+ "internalType": "uint256",
816
+ "name": "requestId",
817
+ "type": "uint256"
818
+ },
819
+ {
820
+ "internalType": "uint64",
821
+ "name": "amount",
822
+ "type": "uint64"
823
+ },
824
+ {
825
+ "internalType": "bytes[]",
826
+ "name": "signatures",
827
+ "type": "bytes[]"
828
+ }
829
+ ],
830
+ "name": "finalizeDiscloseEncryptedAmount",
831
+ "outputs": [],
832
+ "stateMutability": "nonpayable",
833
+ "type": "function"
834
+ },
835
+ {
836
+ "inputs": [
837
+ {
838
+ "internalType": "uint256",
839
+ "name": "timepoint",
840
+ "type": "uint256"
841
+ }
842
+ ],
843
+ "name": "getPastTotalSupply",
844
+ "outputs": [
845
+ {
846
+ "internalType": "euint64",
847
+ "name": "",
848
+ "type": "bytes32"
849
+ }
850
+ ],
851
+ "stateMutability": "view",
852
+ "type": "function"
853
+ },
854
+ {
855
+ "inputs": [
856
+ {
857
+ "internalType": "address",
858
+ "name": "account",
859
+ "type": "address"
860
+ },
861
+ {
862
+ "internalType": "uint256",
863
+ "name": "timepoint",
864
+ "type": "uint256"
865
+ }
866
+ ],
867
+ "name": "getPastVotes",
868
+ "outputs": [
869
+ {
870
+ "internalType": "euint64",
871
+ "name": "",
872
+ "type": "bytes32"
873
+ }
874
+ ],
875
+ "stateMutability": "view",
876
+ "type": "function"
877
+ },
878
+ {
879
+ "inputs": [
880
+ {
881
+ "internalType": "address",
882
+ "name": "account",
883
+ "type": "address"
884
+ }
885
+ ],
886
+ "name": "getVotes",
887
+ "outputs": [
888
+ {
889
+ "internalType": "euint64",
890
+ "name": "",
891
+ "type": "bytes32"
892
+ }
893
+ ],
894
+ "stateMutability": "view",
895
+ "type": "function"
896
+ },
897
+ {
898
+ "inputs": [
899
+ {
900
+ "internalType": "address",
901
+ "name": "holder",
902
+ "type": "address"
903
+ },
904
+ {
905
+ "internalType": "address",
906
+ "name": "spender",
907
+ "type": "address"
908
+ }
909
+ ],
910
+ "name": "isOperator",
911
+ "outputs": [
912
+ {
913
+ "internalType": "bool",
914
+ "name": "",
915
+ "type": "bool"
916
+ }
917
+ ],
918
+ "stateMutability": "view",
919
+ "type": "function"
920
+ },
921
+ {
922
+ "inputs": [],
923
+ "name": "name",
924
+ "outputs": [
925
+ {
926
+ "internalType": "string",
927
+ "name": "",
928
+ "type": "string"
929
+ }
930
+ ],
931
+ "stateMutability": "view",
932
+ "type": "function"
933
+ },
934
+ {
935
+ "inputs": [
936
+ {
937
+ "internalType": "address",
938
+ "name": "owner",
939
+ "type": "address"
940
+ }
941
+ ],
942
+ "name": "nonces",
943
+ "outputs": [
944
+ {
945
+ "internalType": "uint256",
946
+ "name": "",
947
+ "type": "uint256"
948
+ }
949
+ ],
950
+ "stateMutability": "view",
951
+ "type": "function"
952
+ },
953
+ {
954
+ "inputs": [
955
+ {
956
+ "internalType": "address",
957
+ "name": "operator",
958
+ "type": "address"
959
+ },
960
+ {
961
+ "internalType": "uint48",
962
+ "name": "until",
963
+ "type": "uint48"
964
+ }
965
+ ],
966
+ "name": "setOperator",
967
+ "outputs": [],
968
+ "stateMutability": "nonpayable",
969
+ "type": "function"
970
+ },
971
+ {
972
+ "inputs": [],
973
+ "name": "symbol",
974
+ "outputs": [
975
+ {
976
+ "internalType": "string",
977
+ "name": "",
978
+ "type": "string"
979
+ }
980
+ ],
981
+ "stateMutability": "view",
982
+ "type": "function"
983
+ },
984
+ {
985
+ "inputs": [],
986
+ "name": "tokenURI",
987
+ "outputs": [
988
+ {
989
+ "internalType": "string",
990
+ "name": "",
991
+ "type": "string"
992
+ }
993
+ ],
994
+ "stateMutability": "view",
995
+ "type": "function"
996
+ }
997
+ ],
998
+ "bytecode": "0x",
999
+ "deployedBytecode": "0x",
1000
+ "linkReferences": {},
1001
+ "deployedLinkReferences": {}
1002
+ }