@juicedollar/jusd 1.0.0

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 (65) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +356 -0
  3. package/contracts/Equity.sol +457 -0
  4. package/contracts/JuiceDollar.sol +363 -0
  5. package/contracts/Leadrate.sol +79 -0
  6. package/contracts/MintingHubV2/MintingHub.sol +445 -0
  7. package/contracts/MintingHubV2/Position.sol +810 -0
  8. package/contracts/MintingHubV2/PositionFactory.sol +69 -0
  9. package/contracts/MintingHubV2/PositionRoller.sol +159 -0
  10. package/contracts/MintingHubV2/interface/IMintingHub.sol +26 -0
  11. package/contracts/MintingHubV2/interface/IPosition.sol +90 -0
  12. package/contracts/MintingHubV2/interface/IPositionFactory.sol +20 -0
  13. package/contracts/Savings.sol +141 -0
  14. package/contracts/SavingsVaultJUSD.sol +140 -0
  15. package/contracts/StablecoinBridge.sol +109 -0
  16. package/contracts/StartUSD.sol +16 -0
  17. package/contracts/gateway/CoinLendingGateway.sol +223 -0
  18. package/contracts/gateway/FrontendGateway.sol +224 -0
  19. package/contracts/gateway/MintingHubGateway.sol +87 -0
  20. package/contracts/gateway/SavingsGateway.sol +51 -0
  21. package/contracts/gateway/interface/ICoinLendingGateway.sol +73 -0
  22. package/contracts/gateway/interface/IFrontendGateway.sol +49 -0
  23. package/contracts/gateway/interface/IMintingHubGateway.sol +12 -0
  24. package/contracts/impl/ERC3009.sol +171 -0
  25. package/contracts/interface/IJuiceDollar.sol +54 -0
  26. package/contracts/interface/ILeadrate.sol +7 -0
  27. package/contracts/interface/IReserve.sol +9 -0
  28. package/contracts/interface/ISavingsJUSD.sol +49 -0
  29. package/contracts/test/FreakToken.sol +25 -0
  30. package/contracts/test/Math.sol +339 -0
  31. package/contracts/test/MockEquity.sol +15 -0
  32. package/contracts/test/PositionExpirationTest.sol +75 -0
  33. package/contracts/test/PositionRollingTest.sol +65 -0
  34. package/contracts/test/TestFlashLoan.sol +84 -0
  35. package/contracts/test/TestFlashLoanGateway.sol +49 -0
  36. package/contracts/test/TestMathUtil.sol +40 -0
  37. package/contracts/test/TestToken.sol +45 -0
  38. package/contracts/test/TestWcBTC.sol +35 -0
  39. package/contracts/utils/MathUtil.sol +61 -0
  40. package/dist/index.d.mts +8761 -0
  41. package/dist/index.d.ts +8761 -0
  42. package/dist/index.js +11119 -0
  43. package/dist/index.mjs +11073 -0
  44. package/exports/abis/MintingHubV2/PositionFactoryV2.ts +90 -0
  45. package/exports/abis/MintingHubV2/PositionRoller.ts +183 -0
  46. package/exports/abis/MintingHubV2/PositionV2.ts +999 -0
  47. package/exports/abis/core/CoinLendingGateway.ts +427 -0
  48. package/exports/abis/core/Equity.ts +1286 -0
  49. package/exports/abis/core/FrontendGateway.ts +906 -0
  50. package/exports/abis/core/JuiceDollar.ts +1366 -0
  51. package/exports/abis/core/MintingHubGateway.ts +865 -0
  52. package/exports/abis/core/SavingsGateway.ts +559 -0
  53. package/exports/abis/core/SavingsVaultJUSD.ts +920 -0
  54. package/exports/abis/utils/ERC20.ts +310 -0
  55. package/exports/abis/utils/ERC20PermitLight.ts +520 -0
  56. package/exports/abis/utils/Leadrate.ts +175 -0
  57. package/exports/abis/utils/MintingHubV2.ts +682 -0
  58. package/exports/abis/utils/Ownable.ts +76 -0
  59. package/exports/abis/utils/Savings.ts +453 -0
  60. package/exports/abis/utils/StablecoinBridge.ts +209 -0
  61. package/exports/abis/utils/StartUSD.ts +315 -0
  62. package/exports/abis/utils/UniswapV3Pool.ts +638 -0
  63. package/exports/address.config.ts +48 -0
  64. package/exports/index.ts +28 -0
  65. package/package.json +87 -0
@@ -0,0 +1,1286 @@
1
+ export const EquityABI = [
2
+ {
3
+ inputs: [
4
+ {
5
+ internalType: 'contract JuiceDollar',
6
+ name: 'JUSD_',
7
+ type: 'address',
8
+ },
9
+ ],
10
+ stateMutability: 'nonpayable',
11
+ type: 'constructor',
12
+ },
13
+ {
14
+ inputs: [],
15
+ name: 'ECDSAInvalidSignature',
16
+ type: 'error',
17
+ },
18
+ {
19
+ inputs: [
20
+ {
21
+ internalType: 'uint256',
22
+ name: 'length',
23
+ type: 'uint256',
24
+ },
25
+ ],
26
+ name: 'ECDSAInvalidSignatureLength',
27
+ type: 'error',
28
+ },
29
+ {
30
+ inputs: [
31
+ {
32
+ internalType: 'bytes32',
33
+ name: 's',
34
+ type: 'bytes32',
35
+ },
36
+ ],
37
+ name: 'ECDSAInvalidSignatureS',
38
+ type: 'error',
39
+ },
40
+ {
41
+ inputs: [
42
+ {
43
+ internalType: 'address',
44
+ name: 'spender',
45
+ type: 'address',
46
+ },
47
+ {
48
+ internalType: 'uint256',
49
+ name: 'allowance',
50
+ type: 'uint256',
51
+ },
52
+ {
53
+ internalType: 'uint256',
54
+ name: 'needed',
55
+ type: 'uint256',
56
+ },
57
+ ],
58
+ name: 'ERC20InsufficientAllowance',
59
+ type: 'error',
60
+ },
61
+ {
62
+ inputs: [
63
+ {
64
+ internalType: 'address',
65
+ name: 'sender',
66
+ type: 'address',
67
+ },
68
+ {
69
+ internalType: 'uint256',
70
+ name: 'balance',
71
+ type: 'uint256',
72
+ },
73
+ {
74
+ internalType: 'uint256',
75
+ name: 'needed',
76
+ type: 'uint256',
77
+ },
78
+ ],
79
+ name: 'ERC20InsufficientBalance',
80
+ type: 'error',
81
+ },
82
+ {
83
+ inputs: [
84
+ {
85
+ internalType: 'address',
86
+ name: 'approver',
87
+ type: 'address',
88
+ },
89
+ ],
90
+ name: 'ERC20InvalidApprover',
91
+ type: 'error',
92
+ },
93
+ {
94
+ inputs: [
95
+ {
96
+ internalType: 'address',
97
+ name: 'receiver',
98
+ type: 'address',
99
+ },
100
+ ],
101
+ name: 'ERC20InvalidReceiver',
102
+ type: 'error',
103
+ },
104
+ {
105
+ inputs: [
106
+ {
107
+ internalType: 'address',
108
+ name: 'sender',
109
+ type: 'address',
110
+ },
111
+ ],
112
+ name: 'ERC20InvalidSender',
113
+ type: 'error',
114
+ },
115
+ {
116
+ inputs: [
117
+ {
118
+ internalType: 'address',
119
+ name: 'spender',
120
+ type: 'address',
121
+ },
122
+ ],
123
+ name: 'ERC20InvalidSpender',
124
+ type: 'error',
125
+ },
126
+ {
127
+ inputs: [
128
+ {
129
+ internalType: 'uint256',
130
+ name: 'deadline',
131
+ type: 'uint256',
132
+ },
133
+ ],
134
+ name: 'ERC2612ExpiredSignature',
135
+ type: 'error',
136
+ },
137
+ {
138
+ inputs: [
139
+ {
140
+ internalType: 'address',
141
+ name: 'signer',
142
+ type: 'address',
143
+ },
144
+ {
145
+ internalType: 'address',
146
+ name: 'owner',
147
+ type: 'address',
148
+ },
149
+ ],
150
+ name: 'ERC2612InvalidSigner',
151
+ type: 'error',
152
+ },
153
+ {
154
+ inputs: [],
155
+ name: 'InsufficientEquity',
156
+ type: 'error',
157
+ },
158
+ {
159
+ inputs: [
160
+ {
161
+ internalType: 'address',
162
+ name: 'account',
163
+ type: 'address',
164
+ },
165
+ {
166
+ internalType: 'uint256',
167
+ name: 'currentNonce',
168
+ type: 'uint256',
169
+ },
170
+ ],
171
+ name: 'InvalidAccountNonce',
172
+ type: 'error',
173
+ },
174
+ {
175
+ inputs: [],
176
+ name: 'InvalidShortString',
177
+ type: 'error',
178
+ },
179
+ {
180
+ inputs: [],
181
+ name: 'NotMinter',
182
+ type: 'error',
183
+ },
184
+ {
185
+ inputs: [],
186
+ name: 'NotQualified',
187
+ type: 'error',
188
+ },
189
+ {
190
+ inputs: [],
191
+ name: 'SameBlockRedemption',
192
+ type: 'error',
193
+ },
194
+ {
195
+ inputs: [
196
+ {
197
+ internalType: 'string',
198
+ name: 'str',
199
+ type: 'string',
200
+ },
201
+ ],
202
+ name: 'StringTooLong',
203
+ type: 'error',
204
+ },
205
+ {
206
+ inputs: [],
207
+ name: 'TooManyShares',
208
+ type: 'error',
209
+ },
210
+ {
211
+ inputs: [],
212
+ name: 'TotalSupplyExceeded',
213
+ type: 'error',
214
+ },
215
+ {
216
+ anonymous: false,
217
+ inputs: [
218
+ {
219
+ indexed: true,
220
+ internalType: 'address',
221
+ name: 'owner',
222
+ type: 'address',
223
+ },
224
+ {
225
+ indexed: true,
226
+ internalType: 'address',
227
+ name: 'spender',
228
+ type: 'address',
229
+ },
230
+ {
231
+ indexed: false,
232
+ internalType: 'uint256',
233
+ name: 'value',
234
+ type: 'uint256',
235
+ },
236
+ ],
237
+ name: 'Approval',
238
+ type: 'event',
239
+ },
240
+ {
241
+ anonymous: false,
242
+ inputs: [
243
+ {
244
+ indexed: true,
245
+ internalType: 'address',
246
+ name: 'authorizer',
247
+ type: 'address',
248
+ },
249
+ {
250
+ indexed: true,
251
+ internalType: 'bytes32',
252
+ name: 'nonce',
253
+ type: 'bytes32',
254
+ },
255
+ ],
256
+ name: 'AuthorizationCanceled',
257
+ type: 'event',
258
+ },
259
+ {
260
+ anonymous: false,
261
+ inputs: [
262
+ {
263
+ indexed: true,
264
+ internalType: 'address',
265
+ name: 'authorizer',
266
+ type: 'address',
267
+ },
268
+ {
269
+ indexed: true,
270
+ internalType: 'bytes32',
271
+ name: 'nonce',
272
+ type: 'bytes32',
273
+ },
274
+ ],
275
+ name: 'AuthorizationUsed',
276
+ type: 'event',
277
+ },
278
+ {
279
+ anonymous: false,
280
+ inputs: [
281
+ {
282
+ indexed: true,
283
+ internalType: 'address',
284
+ name: 'from',
285
+ type: 'address',
286
+ },
287
+ {
288
+ indexed: true,
289
+ internalType: 'address',
290
+ name: 'to',
291
+ type: 'address',
292
+ },
293
+ ],
294
+ name: 'Delegation',
295
+ type: 'event',
296
+ },
297
+ {
298
+ anonymous: false,
299
+ inputs: [],
300
+ name: 'EIP712DomainChanged',
301
+ type: 'event',
302
+ },
303
+ {
304
+ anonymous: false,
305
+ inputs: [
306
+ {
307
+ indexed: false,
308
+ internalType: 'address',
309
+ name: 'who',
310
+ type: 'address',
311
+ },
312
+ {
313
+ indexed: false,
314
+ internalType: 'int256',
315
+ name: 'amount',
316
+ type: 'int256',
317
+ },
318
+ {
319
+ indexed: false,
320
+ internalType: 'uint256',
321
+ name: 'totPrice',
322
+ type: 'uint256',
323
+ },
324
+ {
325
+ indexed: false,
326
+ internalType: 'uint256',
327
+ name: 'newprice',
328
+ type: 'uint256',
329
+ },
330
+ ],
331
+ name: 'Trade',
332
+ type: 'event',
333
+ },
334
+ {
335
+ anonymous: false,
336
+ inputs: [
337
+ {
338
+ indexed: true,
339
+ internalType: 'address',
340
+ name: 'from',
341
+ type: 'address',
342
+ },
343
+ {
344
+ indexed: true,
345
+ internalType: 'address',
346
+ name: 'to',
347
+ type: 'address',
348
+ },
349
+ {
350
+ indexed: false,
351
+ internalType: 'uint256',
352
+ name: 'value',
353
+ type: 'uint256',
354
+ },
355
+ ],
356
+ name: 'Transfer',
357
+ type: 'event',
358
+ },
359
+ {
360
+ inputs: [],
361
+ name: 'CANCEL_AUTHORIZATION_TYPEHASH',
362
+ outputs: [
363
+ {
364
+ internalType: 'bytes32',
365
+ name: '',
366
+ type: 'bytes32',
367
+ },
368
+ ],
369
+ stateMutability: 'view',
370
+ type: 'function',
371
+ },
372
+ {
373
+ inputs: [],
374
+ name: 'DOMAIN_SEPARATOR',
375
+ outputs: [
376
+ {
377
+ internalType: 'bytes32',
378
+ name: '',
379
+ type: 'bytes32',
380
+ },
381
+ ],
382
+ stateMutability: 'view',
383
+ type: 'function',
384
+ },
385
+ {
386
+ inputs: [],
387
+ name: 'JUSD',
388
+ outputs: [
389
+ {
390
+ internalType: 'contract JuiceDollar',
391
+ name: '',
392
+ type: 'address',
393
+ },
394
+ ],
395
+ stateMutability: 'view',
396
+ type: 'function',
397
+ },
398
+ {
399
+ inputs: [],
400
+ name: 'RECEIVE_WITH_AUTHORIZATION_TYPEHASH',
401
+ outputs: [
402
+ {
403
+ internalType: 'bytes32',
404
+ name: '',
405
+ type: 'bytes32',
406
+ },
407
+ ],
408
+ stateMutability: 'view',
409
+ type: 'function',
410
+ },
411
+ {
412
+ inputs: [],
413
+ name: 'TRANSFER_WITH_AUTHORIZATION_TYPEHASH',
414
+ outputs: [
415
+ {
416
+ internalType: 'bytes32',
417
+ name: '',
418
+ type: 'bytes32',
419
+ },
420
+ ],
421
+ stateMutability: 'view',
422
+ type: 'function',
423
+ },
424
+ {
425
+ inputs: [],
426
+ name: 'VALUATION_FACTOR',
427
+ outputs: [
428
+ {
429
+ internalType: 'uint32',
430
+ name: '',
431
+ type: 'uint32',
432
+ },
433
+ ],
434
+ stateMutability: 'view',
435
+ type: 'function',
436
+ },
437
+ {
438
+ inputs: [
439
+ {
440
+ internalType: 'address',
441
+ name: 'owner',
442
+ type: 'address',
443
+ },
444
+ {
445
+ internalType: 'address',
446
+ name: 'spender',
447
+ type: 'address',
448
+ },
449
+ ],
450
+ name: 'allowance',
451
+ outputs: [
452
+ {
453
+ internalType: 'uint256',
454
+ name: '',
455
+ type: 'uint256',
456
+ },
457
+ ],
458
+ stateMutability: 'view',
459
+ type: 'function',
460
+ },
461
+ {
462
+ inputs: [
463
+ {
464
+ internalType: 'address',
465
+ name: 'spender',
466
+ type: 'address',
467
+ },
468
+ {
469
+ internalType: 'uint256',
470
+ name: 'value',
471
+ type: 'uint256',
472
+ },
473
+ ],
474
+ name: 'approve',
475
+ outputs: [
476
+ {
477
+ internalType: 'bool',
478
+ name: '',
479
+ type: 'bool',
480
+ },
481
+ ],
482
+ stateMutability: 'nonpayable',
483
+ type: 'function',
484
+ },
485
+ {
486
+ inputs: [
487
+ {
488
+ internalType: 'address',
489
+ name: 'authorizer',
490
+ type: 'address',
491
+ },
492
+ {
493
+ internalType: 'bytes32',
494
+ name: 'nonce',
495
+ type: 'bytes32',
496
+ },
497
+ ],
498
+ name: 'authorizationState',
499
+ outputs: [
500
+ {
501
+ internalType: 'bool',
502
+ name: '',
503
+ type: 'bool',
504
+ },
505
+ ],
506
+ stateMutability: 'view',
507
+ type: 'function',
508
+ },
509
+ {
510
+ inputs: [
511
+ {
512
+ internalType: 'address',
513
+ name: 'account',
514
+ type: 'address',
515
+ },
516
+ ],
517
+ name: 'balanceOf',
518
+ outputs: [
519
+ {
520
+ internalType: 'uint256',
521
+ name: '',
522
+ type: 'uint256',
523
+ },
524
+ ],
525
+ stateMutability: 'view',
526
+ type: 'function',
527
+ },
528
+ {
529
+ inputs: [
530
+ {
531
+ internalType: 'uint256',
532
+ name: 'shares',
533
+ type: 'uint256',
534
+ },
535
+ ],
536
+ name: 'calculateProceeds',
537
+ outputs: [
538
+ {
539
+ internalType: 'uint256',
540
+ name: '',
541
+ type: 'uint256',
542
+ },
543
+ ],
544
+ stateMutability: 'view',
545
+ type: 'function',
546
+ },
547
+ {
548
+ inputs: [
549
+ {
550
+ internalType: 'uint256',
551
+ name: 'investment',
552
+ type: 'uint256',
553
+ },
554
+ ],
555
+ name: 'calculateShares',
556
+ outputs: [
557
+ {
558
+ internalType: 'uint256',
559
+ name: '',
560
+ type: 'uint256',
561
+ },
562
+ ],
563
+ stateMutability: 'view',
564
+ type: 'function',
565
+ },
566
+ {
567
+ inputs: [
568
+ {
569
+ internalType: 'address',
570
+ name: 'authorizer',
571
+ type: 'address',
572
+ },
573
+ {
574
+ internalType: 'bytes32',
575
+ name: 'nonce',
576
+ type: 'bytes32',
577
+ },
578
+ {
579
+ internalType: 'uint8',
580
+ name: 'v',
581
+ type: 'uint8',
582
+ },
583
+ {
584
+ internalType: 'bytes32',
585
+ name: 'r',
586
+ type: 'bytes32',
587
+ },
588
+ {
589
+ internalType: 'bytes32',
590
+ name: 's',
591
+ type: 'bytes32',
592
+ },
593
+ ],
594
+ name: 'cancelAuthorization',
595
+ outputs: [],
596
+ stateMutability: 'nonpayable',
597
+ type: 'function',
598
+ },
599
+ {
600
+ inputs: [
601
+ {
602
+ internalType: 'address',
603
+ name: 'sender',
604
+ type: 'address',
605
+ },
606
+ {
607
+ internalType: 'address[]',
608
+ name: 'helpers',
609
+ type: 'address[]',
610
+ },
611
+ ],
612
+ name: 'checkQualified',
613
+ outputs: [],
614
+ stateMutability: 'view',
615
+ type: 'function',
616
+ },
617
+ {
618
+ inputs: [],
619
+ name: 'decimals',
620
+ outputs: [
621
+ {
622
+ internalType: 'uint8',
623
+ name: '',
624
+ type: 'uint8',
625
+ },
626
+ ],
627
+ stateMutability: 'view',
628
+ type: 'function',
629
+ },
630
+ {
631
+ inputs: [
632
+ {
633
+ internalType: 'address',
634
+ name: 'delegate',
635
+ type: 'address',
636
+ },
637
+ ],
638
+ name: 'delegateVoteTo',
639
+ outputs: [],
640
+ stateMutability: 'nonpayable',
641
+ type: 'function',
642
+ },
643
+ {
644
+ inputs: [
645
+ {
646
+ internalType: 'address',
647
+ name: 'owner',
648
+ type: 'address',
649
+ },
650
+ ],
651
+ name: 'delegates',
652
+ outputs: [
653
+ {
654
+ internalType: 'address',
655
+ name: 'delegate',
656
+ type: 'address',
657
+ },
658
+ ],
659
+ stateMutability: 'view',
660
+ type: 'function',
661
+ },
662
+ {
663
+ inputs: [],
664
+ name: 'eip712Domain',
665
+ outputs: [
666
+ {
667
+ internalType: 'bytes1',
668
+ name: 'fields',
669
+ type: 'bytes1',
670
+ },
671
+ {
672
+ internalType: 'string',
673
+ name: 'name',
674
+ type: 'string',
675
+ },
676
+ {
677
+ internalType: 'string',
678
+ name: 'version',
679
+ type: 'string',
680
+ },
681
+ {
682
+ internalType: 'uint256',
683
+ name: 'chainId',
684
+ type: 'uint256',
685
+ },
686
+ {
687
+ internalType: 'address',
688
+ name: 'verifyingContract',
689
+ type: 'address',
690
+ },
691
+ {
692
+ internalType: 'bytes32',
693
+ name: 'salt',
694
+ type: 'bytes32',
695
+ },
696
+ {
697
+ internalType: 'uint256[]',
698
+ name: 'extensions',
699
+ type: 'uint256[]',
700
+ },
701
+ ],
702
+ stateMutability: 'view',
703
+ type: 'function',
704
+ },
705
+ {
706
+ inputs: [
707
+ {
708
+ internalType: 'address',
709
+ name: 'holder',
710
+ type: 'address',
711
+ },
712
+ ],
713
+ name: 'holdingDuration',
714
+ outputs: [
715
+ {
716
+ internalType: 'uint256',
717
+ name: '',
718
+ type: 'uint256',
719
+ },
720
+ ],
721
+ stateMutability: 'view',
722
+ type: 'function',
723
+ },
724
+ {
725
+ inputs: [
726
+ {
727
+ internalType: 'uint256',
728
+ name: 'amount',
729
+ type: 'uint256',
730
+ },
731
+ {
732
+ internalType: 'uint256',
733
+ name: 'expectedShares',
734
+ type: 'uint256',
735
+ },
736
+ ],
737
+ name: 'invest',
738
+ outputs: [
739
+ {
740
+ internalType: 'uint256',
741
+ name: '',
742
+ type: 'uint256',
743
+ },
744
+ ],
745
+ stateMutability: 'nonpayable',
746
+ type: 'function',
747
+ },
748
+ {
749
+ inputs: [
750
+ {
751
+ internalType: 'address',
752
+ name: 'investor',
753
+ type: 'address',
754
+ },
755
+ {
756
+ internalType: 'uint256',
757
+ name: 'amount',
758
+ type: 'uint256',
759
+ },
760
+ {
761
+ internalType: 'uint256',
762
+ name: 'expectedShares',
763
+ type: 'uint256',
764
+ },
765
+ ],
766
+ name: 'investFor',
767
+ outputs: [
768
+ {
769
+ internalType: 'uint256',
770
+ name: '',
771
+ type: 'uint256',
772
+ },
773
+ ],
774
+ stateMutability: 'nonpayable',
775
+ type: 'function',
776
+ },
777
+ {
778
+ inputs: [
779
+ {
780
+ internalType: 'address[]',
781
+ name: 'targets',
782
+ type: 'address[]',
783
+ },
784
+ {
785
+ internalType: 'uint256',
786
+ name: 'votesToDestroy',
787
+ type: 'uint256',
788
+ },
789
+ ],
790
+ name: 'kamikaze',
791
+ outputs: [],
792
+ stateMutability: 'nonpayable',
793
+ type: 'function',
794
+ },
795
+ {
796
+ inputs: [
797
+ {
798
+ internalType: 'address',
799
+ name: 'owner',
800
+ type: 'address',
801
+ },
802
+ ],
803
+ name: 'lastInboundBlock',
804
+ outputs: [
805
+ {
806
+ internalType: 'uint256',
807
+ name: 'blockNumber',
808
+ type: 'uint256',
809
+ },
810
+ ],
811
+ stateMutability: 'view',
812
+ type: 'function',
813
+ },
814
+ {
815
+ inputs: [],
816
+ name: 'name',
817
+ outputs: [
818
+ {
819
+ internalType: 'string',
820
+ name: '',
821
+ type: 'string',
822
+ },
823
+ ],
824
+ stateMutability: 'view',
825
+ type: 'function',
826
+ },
827
+ {
828
+ inputs: [
829
+ {
830
+ internalType: 'address',
831
+ name: 'owner',
832
+ type: 'address',
833
+ },
834
+ ],
835
+ name: 'nonces',
836
+ outputs: [
837
+ {
838
+ internalType: 'uint256',
839
+ name: '',
840
+ type: 'uint256',
841
+ },
842
+ ],
843
+ stateMutability: 'view',
844
+ type: 'function',
845
+ },
846
+ {
847
+ inputs: [
848
+ {
849
+ internalType: 'address',
850
+ name: 'owner',
851
+ type: 'address',
852
+ },
853
+ {
854
+ internalType: 'address',
855
+ name: 'spender',
856
+ type: 'address',
857
+ },
858
+ {
859
+ internalType: 'uint256',
860
+ name: 'value',
861
+ type: 'uint256',
862
+ },
863
+ {
864
+ internalType: 'uint256',
865
+ name: 'deadline',
866
+ type: 'uint256',
867
+ },
868
+ {
869
+ internalType: 'uint8',
870
+ name: 'v',
871
+ type: 'uint8',
872
+ },
873
+ {
874
+ internalType: 'bytes32',
875
+ name: 'r',
876
+ type: 'bytes32',
877
+ },
878
+ {
879
+ internalType: 'bytes32',
880
+ name: 's',
881
+ type: 'bytes32',
882
+ },
883
+ ],
884
+ name: 'permit',
885
+ outputs: [],
886
+ stateMutability: 'nonpayable',
887
+ type: 'function',
888
+ },
889
+ {
890
+ inputs: [],
891
+ name: 'price',
892
+ outputs: [
893
+ {
894
+ internalType: 'uint256',
895
+ name: '',
896
+ type: 'uint256',
897
+ },
898
+ ],
899
+ stateMutability: 'view',
900
+ type: 'function',
901
+ },
902
+ {
903
+ inputs: [
904
+ {
905
+ internalType: 'address',
906
+ name: 'from',
907
+ type: 'address',
908
+ },
909
+ {
910
+ internalType: 'address',
911
+ name: 'to',
912
+ type: 'address',
913
+ },
914
+ {
915
+ internalType: 'uint256',
916
+ name: 'value',
917
+ type: 'uint256',
918
+ },
919
+ {
920
+ internalType: 'uint256',
921
+ name: 'validAfter',
922
+ type: 'uint256',
923
+ },
924
+ {
925
+ internalType: 'uint256',
926
+ name: 'validBefore',
927
+ type: 'uint256',
928
+ },
929
+ {
930
+ internalType: 'bytes32',
931
+ name: 'nonce',
932
+ type: 'bytes32',
933
+ },
934
+ {
935
+ internalType: 'uint8',
936
+ name: 'v',
937
+ type: 'uint8',
938
+ },
939
+ {
940
+ internalType: 'bytes32',
941
+ name: 'r',
942
+ type: 'bytes32',
943
+ },
944
+ {
945
+ internalType: 'bytes32',
946
+ name: 's',
947
+ type: 'bytes32',
948
+ },
949
+ ],
950
+ name: 'receiveWithAuthorization',
951
+ outputs: [],
952
+ stateMutability: 'nonpayable',
953
+ type: 'function',
954
+ },
955
+ {
956
+ inputs: [
957
+ {
958
+ internalType: 'address',
959
+ name: 'target',
960
+ type: 'address',
961
+ },
962
+ {
963
+ internalType: 'uint256',
964
+ name: 'shares',
965
+ type: 'uint256',
966
+ },
967
+ ],
968
+ name: 'redeem',
969
+ outputs: [
970
+ {
971
+ internalType: 'uint256',
972
+ name: '',
973
+ type: 'uint256',
974
+ },
975
+ ],
976
+ stateMutability: 'nonpayable',
977
+ type: 'function',
978
+ },
979
+ {
980
+ inputs: [
981
+ {
982
+ internalType: 'address',
983
+ name: 'target',
984
+ type: 'address',
985
+ },
986
+ {
987
+ internalType: 'uint256',
988
+ name: 'shares',
989
+ type: 'uint256',
990
+ },
991
+ {
992
+ internalType: 'uint256',
993
+ name: 'expectedProceeds',
994
+ type: 'uint256',
995
+ },
996
+ ],
997
+ name: 'redeemExpected',
998
+ outputs: [
999
+ {
1000
+ internalType: 'uint256',
1001
+ name: '',
1002
+ type: 'uint256',
1003
+ },
1004
+ ],
1005
+ stateMutability: 'nonpayable',
1006
+ type: 'function',
1007
+ },
1008
+ {
1009
+ inputs: [
1010
+ {
1011
+ internalType: 'address',
1012
+ name: 'owner',
1013
+ type: 'address',
1014
+ },
1015
+ {
1016
+ internalType: 'address',
1017
+ name: 'target',
1018
+ type: 'address',
1019
+ },
1020
+ {
1021
+ internalType: 'uint256',
1022
+ name: 'shares',
1023
+ type: 'uint256',
1024
+ },
1025
+ {
1026
+ internalType: 'uint256',
1027
+ name: 'expectedProceeds',
1028
+ type: 'uint256',
1029
+ },
1030
+ ],
1031
+ name: 'redeemFrom',
1032
+ outputs: [
1033
+ {
1034
+ internalType: 'uint256',
1035
+ name: '',
1036
+ type: 'uint256',
1037
+ },
1038
+ ],
1039
+ stateMutability: 'nonpayable',
1040
+ type: 'function',
1041
+ },
1042
+ {
1043
+ inputs: [
1044
+ {
1045
+ internalType: 'address',
1046
+ name: 'holder',
1047
+ type: 'address',
1048
+ },
1049
+ ],
1050
+ name: 'relativeVotes',
1051
+ outputs: [
1052
+ {
1053
+ internalType: 'uint256',
1054
+ name: '',
1055
+ type: 'uint256',
1056
+ },
1057
+ ],
1058
+ stateMutability: 'view',
1059
+ type: 'function',
1060
+ },
1061
+ {
1062
+ inputs: [
1063
+ {
1064
+ internalType: 'address[]',
1065
+ name: 'helpers',
1066
+ type: 'address[]',
1067
+ },
1068
+ {
1069
+ internalType: 'address[]',
1070
+ name: 'addressesToWipe',
1071
+ type: 'address[]',
1072
+ },
1073
+ ],
1074
+ name: 'restructureCapTable',
1075
+ outputs: [],
1076
+ stateMutability: 'nonpayable',
1077
+ type: 'function',
1078
+ },
1079
+ {
1080
+ inputs: [
1081
+ {
1082
+ internalType: 'bytes4',
1083
+ name: 'interfaceId',
1084
+ type: 'bytes4',
1085
+ },
1086
+ ],
1087
+ name: 'supportsInterface',
1088
+ outputs: [
1089
+ {
1090
+ internalType: 'bool',
1091
+ name: '',
1092
+ type: 'bool',
1093
+ },
1094
+ ],
1095
+ stateMutability: 'view',
1096
+ type: 'function',
1097
+ },
1098
+ {
1099
+ inputs: [],
1100
+ name: 'symbol',
1101
+ outputs: [
1102
+ {
1103
+ internalType: 'string',
1104
+ name: '',
1105
+ type: 'string',
1106
+ },
1107
+ ],
1108
+ stateMutability: 'view',
1109
+ type: 'function',
1110
+ },
1111
+ {
1112
+ inputs: [],
1113
+ name: 'totalSupply',
1114
+ outputs: [
1115
+ {
1116
+ internalType: 'uint256',
1117
+ name: '',
1118
+ type: 'uint256',
1119
+ },
1120
+ ],
1121
+ stateMutability: 'view',
1122
+ type: 'function',
1123
+ },
1124
+ {
1125
+ inputs: [],
1126
+ name: 'totalVotes',
1127
+ outputs: [
1128
+ {
1129
+ internalType: 'uint256',
1130
+ name: '',
1131
+ type: 'uint256',
1132
+ },
1133
+ ],
1134
+ stateMutability: 'view',
1135
+ type: 'function',
1136
+ },
1137
+ {
1138
+ inputs: [
1139
+ {
1140
+ internalType: 'address',
1141
+ name: 'to',
1142
+ type: 'address',
1143
+ },
1144
+ {
1145
+ internalType: 'uint256',
1146
+ name: 'value',
1147
+ type: 'uint256',
1148
+ },
1149
+ ],
1150
+ name: 'transfer',
1151
+ outputs: [
1152
+ {
1153
+ internalType: 'bool',
1154
+ name: '',
1155
+ type: 'bool',
1156
+ },
1157
+ ],
1158
+ stateMutability: 'nonpayable',
1159
+ type: 'function',
1160
+ },
1161
+ {
1162
+ inputs: [
1163
+ {
1164
+ internalType: 'address',
1165
+ name: 'from',
1166
+ type: 'address',
1167
+ },
1168
+ {
1169
+ internalType: 'address',
1170
+ name: 'to',
1171
+ type: 'address',
1172
+ },
1173
+ {
1174
+ internalType: 'uint256',
1175
+ name: 'value',
1176
+ type: 'uint256',
1177
+ },
1178
+ ],
1179
+ name: 'transferFrom',
1180
+ outputs: [
1181
+ {
1182
+ internalType: 'bool',
1183
+ name: '',
1184
+ type: 'bool',
1185
+ },
1186
+ ],
1187
+ stateMutability: 'nonpayable',
1188
+ type: 'function',
1189
+ },
1190
+ {
1191
+ inputs: [
1192
+ {
1193
+ internalType: 'address',
1194
+ name: 'from',
1195
+ type: 'address',
1196
+ },
1197
+ {
1198
+ internalType: 'address',
1199
+ name: 'to',
1200
+ type: 'address',
1201
+ },
1202
+ {
1203
+ internalType: 'uint256',
1204
+ name: 'value',
1205
+ type: 'uint256',
1206
+ },
1207
+ {
1208
+ internalType: 'uint256',
1209
+ name: 'validAfter',
1210
+ type: 'uint256',
1211
+ },
1212
+ {
1213
+ internalType: 'uint256',
1214
+ name: 'validBefore',
1215
+ type: 'uint256',
1216
+ },
1217
+ {
1218
+ internalType: 'bytes32',
1219
+ name: 'nonce',
1220
+ type: 'bytes32',
1221
+ },
1222
+ {
1223
+ internalType: 'uint8',
1224
+ name: 'v',
1225
+ type: 'uint8',
1226
+ },
1227
+ {
1228
+ internalType: 'bytes32',
1229
+ name: 'r',
1230
+ type: 'bytes32',
1231
+ },
1232
+ {
1233
+ internalType: 'bytes32',
1234
+ name: 's',
1235
+ type: 'bytes32',
1236
+ },
1237
+ ],
1238
+ name: 'transferWithAuthorization',
1239
+ outputs: [],
1240
+ stateMutability: 'nonpayable',
1241
+ type: 'function',
1242
+ },
1243
+ {
1244
+ inputs: [
1245
+ {
1246
+ internalType: 'address',
1247
+ name: 'holder',
1248
+ type: 'address',
1249
+ },
1250
+ ],
1251
+ name: 'votes',
1252
+ outputs: [
1253
+ {
1254
+ internalType: 'uint256',
1255
+ name: '',
1256
+ type: 'uint256',
1257
+ },
1258
+ ],
1259
+ stateMutability: 'view',
1260
+ type: 'function',
1261
+ },
1262
+ {
1263
+ inputs: [
1264
+ {
1265
+ internalType: 'address',
1266
+ name: 'sender',
1267
+ type: 'address',
1268
+ },
1269
+ {
1270
+ internalType: 'address[]',
1271
+ name: 'helpers',
1272
+ type: 'address[]',
1273
+ },
1274
+ ],
1275
+ name: 'votesDelegated',
1276
+ outputs: [
1277
+ {
1278
+ internalType: 'uint256',
1279
+ name: '',
1280
+ type: 'uint256',
1281
+ },
1282
+ ],
1283
+ stateMutability: 'view',
1284
+ type: 'function',
1285
+ },
1286
+ ] as const;