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