@juicedollar/jusd 3.0.0 → 4.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 (47) hide show
  1. package/contracts/Leadrate.sol +1 -1
  2. package/contracts/{MintingHubV2 → MintingHubV3}/MintingHub.sol +93 -100
  3. package/contracts/{MintingHubV2 → MintingHubV3}/Position.sol +20 -13
  4. package/contracts/{MintingHubV2 → MintingHubV3}/PositionRoller.sol +17 -37
  5. package/contracts/{MintingHubV2 → MintingHubV3}/interface/IMintingHub.sol +2 -2
  6. package/contracts/{MintingHubV2 → MintingHubV3}/interface/IPosition.sol +3 -3
  7. package/contracts/Savings.sol +36 -6
  8. package/contracts/interface/ISavingsJUSD.sol +10 -1
  9. package/contracts/test/PositionExpirationTest.sol +17 -38
  10. package/contracts/test/PositionRollingTest.sol +3 -3
  11. package/contracts/test/ReentrantAttacker.sol +1 -1
  12. package/dist/index.d.mts +5609 -3568
  13. package/dist/index.d.ts +5609 -3568
  14. package/dist/index.js +9360 -6681
  15. package/dist/index.mjs +9350 -6675
  16. package/exports/abis/shared/Equity.ts +1286 -0
  17. package/exports/abis/shared/JuiceDollar.ts +1366 -0
  18. package/exports/abis/shared/StablecoinBridge.ts +279 -0
  19. package/exports/abis/utils/StartUSD.ts +213 -213
  20. package/exports/abis/{core → v2}/FrontendGateway.ts +1 -1
  21. package/exports/abis/{core → v2}/MintingHubGateway.ts +1 -1
  22. package/exports/abis/{MintingHubV2 → v2}/PositionRoller.ts +1 -1
  23. package/exports/abis/{core → v2}/SavingsGateway.ts +1 -1
  24. package/exports/abis/{core → v2}/SavingsVaultJUSD.ts +1 -1
  25. package/exports/abis/v3/MintingHub.ts +1024 -0
  26. package/exports/abis/v3/Position.ts +1142 -0
  27. package/exports/abis/v3/PositionFactory.ts +90 -0
  28. package/exports/abis/v3/PositionRoller.ts +255 -0
  29. package/exports/abis/v3/Savings.ts +553 -0
  30. package/exports/abis/v3/SavingsVaultJUSD.ts +925 -0
  31. package/exports/address.config.ts +43 -15
  32. package/exports/index.ts +22 -14
  33. package/package.json +9 -9
  34. package/contracts/gateway/FrontendGateway.sol +0 -224
  35. package/contracts/gateway/MintingHubGateway.sol +0 -82
  36. package/contracts/gateway/SavingsGateway.sol +0 -51
  37. package/contracts/gateway/interface/IFrontendGateway.sol +0 -49
  38. package/contracts/gateway/interface/IMintingHubGateway.sol +0 -12
  39. package/exports/abis/core/Equity.ts +0 -1286
  40. package/exports/abis/core/JuiceDollar.ts +0 -1366
  41. package/exports/abis/utils/MintingHubV2.ts +0 -888
  42. package/exports/abis/utils/Savings.ts +0 -453
  43. package/exports/abis/utils/StablecoinBridge.ts +0 -279
  44. /package/contracts/{MintingHubV2 → MintingHubV3}/PositionFactory.sol +0 -0
  45. /package/contracts/{MintingHubV2 → MintingHubV3}/interface/IPositionFactory.sol +0 -0
  46. /package/exports/abis/{MintingHubV2 → v2}/PositionFactoryV2.ts +0 -0
  47. /package/exports/abis/{MintingHubV2 → v2}/PositionV2.ts +0 -0
@@ -0,0 +1,925 @@
1
+ export const SavingsVaultJUSDABI = [
2
+ {
3
+ "inputs": [
4
+ {
5
+ "internalType": "contract IERC20",
6
+ "name": "_coin",
7
+ "type": "address"
8
+ },
9
+ {
10
+ "internalType": "contract ISavingsJUSD",
11
+ "name": "_savings",
12
+ "type": "address"
13
+ },
14
+ {
15
+ "internalType": "string",
16
+ "name": "_name",
17
+ "type": "string"
18
+ },
19
+ {
20
+ "internalType": "string",
21
+ "name": "_symbol",
22
+ "type": "string"
23
+ }
24
+ ],
25
+ "stateMutability": "nonpayable",
26
+ "type": "constructor"
27
+ },
28
+ {
29
+ "inputs": [
30
+ {
31
+ "internalType": "address",
32
+ "name": "spender",
33
+ "type": "address"
34
+ },
35
+ {
36
+ "internalType": "uint256",
37
+ "name": "allowance",
38
+ "type": "uint256"
39
+ },
40
+ {
41
+ "internalType": "uint256",
42
+ "name": "needed",
43
+ "type": "uint256"
44
+ }
45
+ ],
46
+ "name": "ERC20InsufficientAllowance",
47
+ "type": "error"
48
+ },
49
+ {
50
+ "inputs": [
51
+ {
52
+ "internalType": "address",
53
+ "name": "sender",
54
+ "type": "address"
55
+ },
56
+ {
57
+ "internalType": "uint256",
58
+ "name": "balance",
59
+ "type": "uint256"
60
+ },
61
+ {
62
+ "internalType": "uint256",
63
+ "name": "needed",
64
+ "type": "uint256"
65
+ }
66
+ ],
67
+ "name": "ERC20InsufficientBalance",
68
+ "type": "error"
69
+ },
70
+ {
71
+ "inputs": [
72
+ {
73
+ "internalType": "address",
74
+ "name": "approver",
75
+ "type": "address"
76
+ }
77
+ ],
78
+ "name": "ERC20InvalidApprover",
79
+ "type": "error"
80
+ },
81
+ {
82
+ "inputs": [
83
+ {
84
+ "internalType": "address",
85
+ "name": "receiver",
86
+ "type": "address"
87
+ }
88
+ ],
89
+ "name": "ERC20InvalidReceiver",
90
+ "type": "error"
91
+ },
92
+ {
93
+ "inputs": [
94
+ {
95
+ "internalType": "address",
96
+ "name": "sender",
97
+ "type": "address"
98
+ }
99
+ ],
100
+ "name": "ERC20InvalidSender",
101
+ "type": "error"
102
+ },
103
+ {
104
+ "inputs": [
105
+ {
106
+ "internalType": "address",
107
+ "name": "spender",
108
+ "type": "address"
109
+ }
110
+ ],
111
+ "name": "ERC20InvalidSpender",
112
+ "type": "error"
113
+ },
114
+ {
115
+ "inputs": [
116
+ {
117
+ "internalType": "address",
118
+ "name": "receiver",
119
+ "type": "address"
120
+ },
121
+ {
122
+ "internalType": "uint256",
123
+ "name": "assets",
124
+ "type": "uint256"
125
+ },
126
+ {
127
+ "internalType": "uint256",
128
+ "name": "max",
129
+ "type": "uint256"
130
+ }
131
+ ],
132
+ "name": "ERC4626ExceededMaxDeposit",
133
+ "type": "error"
134
+ },
135
+ {
136
+ "inputs": [
137
+ {
138
+ "internalType": "address",
139
+ "name": "receiver",
140
+ "type": "address"
141
+ },
142
+ {
143
+ "internalType": "uint256",
144
+ "name": "shares",
145
+ "type": "uint256"
146
+ },
147
+ {
148
+ "internalType": "uint256",
149
+ "name": "max",
150
+ "type": "uint256"
151
+ }
152
+ ],
153
+ "name": "ERC4626ExceededMaxMint",
154
+ "type": "error"
155
+ },
156
+ {
157
+ "inputs": [
158
+ {
159
+ "internalType": "address",
160
+ "name": "owner",
161
+ "type": "address"
162
+ },
163
+ {
164
+ "internalType": "uint256",
165
+ "name": "shares",
166
+ "type": "uint256"
167
+ },
168
+ {
169
+ "internalType": "uint256",
170
+ "name": "max",
171
+ "type": "uint256"
172
+ }
173
+ ],
174
+ "name": "ERC4626ExceededMaxRedeem",
175
+ "type": "error"
176
+ },
177
+ {
178
+ "inputs": [
179
+ {
180
+ "internalType": "address",
181
+ "name": "owner",
182
+ "type": "address"
183
+ },
184
+ {
185
+ "internalType": "uint256",
186
+ "name": "assets",
187
+ "type": "uint256"
188
+ },
189
+ {
190
+ "internalType": "uint256",
191
+ "name": "max",
192
+ "type": "uint256"
193
+ }
194
+ ],
195
+ "name": "ERC4626ExceededMaxWithdraw",
196
+ "type": "error"
197
+ },
198
+ {
199
+ "inputs": [
200
+ {
201
+ "internalType": "uint8",
202
+ "name": "bits",
203
+ "type": "uint8"
204
+ },
205
+ {
206
+ "internalType": "uint256",
207
+ "name": "value",
208
+ "type": "uint256"
209
+ }
210
+ ],
211
+ "name": "SafeCastOverflowedUintDowncast",
212
+ "type": "error"
213
+ },
214
+ {
215
+ "inputs": [
216
+ {
217
+ "internalType": "address",
218
+ "name": "token",
219
+ "type": "address"
220
+ }
221
+ ],
222
+ "name": "SafeERC20FailedOperation",
223
+ "type": "error"
224
+ },
225
+ {
226
+ "inputs": [],
227
+ "name": "ZeroShares",
228
+ "type": "error"
229
+ },
230
+ {
231
+ "anonymous": false,
232
+ "inputs": [
233
+ {
234
+ "indexed": true,
235
+ "internalType": "address",
236
+ "name": "owner",
237
+ "type": "address"
238
+ },
239
+ {
240
+ "indexed": true,
241
+ "internalType": "address",
242
+ "name": "spender",
243
+ "type": "address"
244
+ },
245
+ {
246
+ "indexed": false,
247
+ "internalType": "uint256",
248
+ "name": "value",
249
+ "type": "uint256"
250
+ }
251
+ ],
252
+ "name": "Approval",
253
+ "type": "event"
254
+ },
255
+ {
256
+ "anonymous": false,
257
+ "inputs": [
258
+ {
259
+ "indexed": true,
260
+ "internalType": "address",
261
+ "name": "sender",
262
+ "type": "address"
263
+ },
264
+ {
265
+ "indexed": true,
266
+ "internalType": "address",
267
+ "name": "owner",
268
+ "type": "address"
269
+ },
270
+ {
271
+ "indexed": false,
272
+ "internalType": "uint256",
273
+ "name": "assets",
274
+ "type": "uint256"
275
+ },
276
+ {
277
+ "indexed": false,
278
+ "internalType": "uint256",
279
+ "name": "shares",
280
+ "type": "uint256"
281
+ }
282
+ ],
283
+ "name": "Deposit",
284
+ "type": "event"
285
+ },
286
+ {
287
+ "anonymous": false,
288
+ "inputs": [
289
+ {
290
+ "indexed": false,
291
+ "internalType": "uint256",
292
+ "name": "interest",
293
+ "type": "uint256"
294
+ },
295
+ {
296
+ "indexed": false,
297
+ "internalType": "uint256",
298
+ "name": "totalClaimed",
299
+ "type": "uint256"
300
+ }
301
+ ],
302
+ "name": "InterestClaimed",
303
+ "type": "event"
304
+ },
305
+ {
306
+ "anonymous": false,
307
+ "inputs": [
308
+ {
309
+ "indexed": true,
310
+ "internalType": "address",
311
+ "name": "from",
312
+ "type": "address"
313
+ },
314
+ {
315
+ "indexed": true,
316
+ "internalType": "address",
317
+ "name": "to",
318
+ "type": "address"
319
+ },
320
+ {
321
+ "indexed": false,
322
+ "internalType": "uint256",
323
+ "name": "value",
324
+ "type": "uint256"
325
+ }
326
+ ],
327
+ "name": "Transfer",
328
+ "type": "event"
329
+ },
330
+ {
331
+ "anonymous": false,
332
+ "inputs": [
333
+ {
334
+ "indexed": true,
335
+ "internalType": "address",
336
+ "name": "sender",
337
+ "type": "address"
338
+ },
339
+ {
340
+ "indexed": true,
341
+ "internalType": "address",
342
+ "name": "receiver",
343
+ "type": "address"
344
+ },
345
+ {
346
+ "indexed": true,
347
+ "internalType": "address",
348
+ "name": "owner",
349
+ "type": "address"
350
+ },
351
+ {
352
+ "indexed": false,
353
+ "internalType": "uint256",
354
+ "name": "assets",
355
+ "type": "uint256"
356
+ },
357
+ {
358
+ "indexed": false,
359
+ "internalType": "uint256",
360
+ "name": "shares",
361
+ "type": "uint256"
362
+ }
363
+ ],
364
+ "name": "Withdraw",
365
+ "type": "event"
366
+ },
367
+ {
368
+ "inputs": [],
369
+ "name": "SAVINGS",
370
+ "outputs": [
371
+ {
372
+ "internalType": "contract ISavingsJUSD",
373
+ "name": "",
374
+ "type": "address"
375
+ }
376
+ ],
377
+ "stateMutability": "view",
378
+ "type": "function"
379
+ },
380
+ {
381
+ "inputs": [
382
+ {
383
+ "internalType": "address",
384
+ "name": "owner",
385
+ "type": "address"
386
+ },
387
+ {
388
+ "internalType": "address",
389
+ "name": "spender",
390
+ "type": "address"
391
+ }
392
+ ],
393
+ "name": "allowance",
394
+ "outputs": [
395
+ {
396
+ "internalType": "uint256",
397
+ "name": "",
398
+ "type": "uint256"
399
+ }
400
+ ],
401
+ "stateMutability": "view",
402
+ "type": "function"
403
+ },
404
+ {
405
+ "inputs": [
406
+ {
407
+ "internalType": "address",
408
+ "name": "spender",
409
+ "type": "address"
410
+ },
411
+ {
412
+ "internalType": "uint256",
413
+ "name": "value",
414
+ "type": "uint256"
415
+ }
416
+ ],
417
+ "name": "approve",
418
+ "outputs": [
419
+ {
420
+ "internalType": "bool",
421
+ "name": "",
422
+ "type": "bool"
423
+ }
424
+ ],
425
+ "stateMutability": "nonpayable",
426
+ "type": "function"
427
+ },
428
+ {
429
+ "inputs": [],
430
+ "name": "asset",
431
+ "outputs": [
432
+ {
433
+ "internalType": "address",
434
+ "name": "",
435
+ "type": "address"
436
+ }
437
+ ],
438
+ "stateMutability": "view",
439
+ "type": "function"
440
+ },
441
+ {
442
+ "inputs": [
443
+ {
444
+ "internalType": "address",
445
+ "name": "account",
446
+ "type": "address"
447
+ }
448
+ ],
449
+ "name": "balanceOf",
450
+ "outputs": [
451
+ {
452
+ "internalType": "uint256",
453
+ "name": "",
454
+ "type": "uint256"
455
+ }
456
+ ],
457
+ "stateMutability": "view",
458
+ "type": "function"
459
+ },
460
+ {
461
+ "inputs": [
462
+ {
463
+ "internalType": "uint256",
464
+ "name": "shares",
465
+ "type": "uint256"
466
+ }
467
+ ],
468
+ "name": "convertToAssets",
469
+ "outputs": [
470
+ {
471
+ "internalType": "uint256",
472
+ "name": "",
473
+ "type": "uint256"
474
+ }
475
+ ],
476
+ "stateMutability": "view",
477
+ "type": "function"
478
+ },
479
+ {
480
+ "inputs": [
481
+ {
482
+ "internalType": "uint256",
483
+ "name": "assets",
484
+ "type": "uint256"
485
+ }
486
+ ],
487
+ "name": "convertToShares",
488
+ "outputs": [
489
+ {
490
+ "internalType": "uint256",
491
+ "name": "",
492
+ "type": "uint256"
493
+ }
494
+ ],
495
+ "stateMutability": "view",
496
+ "type": "function"
497
+ },
498
+ {
499
+ "inputs": [],
500
+ "name": "decimals",
501
+ "outputs": [
502
+ {
503
+ "internalType": "uint8",
504
+ "name": "",
505
+ "type": "uint8"
506
+ }
507
+ ],
508
+ "stateMutability": "view",
509
+ "type": "function"
510
+ },
511
+ {
512
+ "inputs": [
513
+ {
514
+ "internalType": "uint256",
515
+ "name": "assets",
516
+ "type": "uint256"
517
+ },
518
+ {
519
+ "internalType": "address",
520
+ "name": "receiver",
521
+ "type": "address"
522
+ }
523
+ ],
524
+ "name": "deposit",
525
+ "outputs": [
526
+ {
527
+ "internalType": "uint256",
528
+ "name": "",
529
+ "type": "uint256"
530
+ }
531
+ ],
532
+ "stateMutability": "nonpayable",
533
+ "type": "function"
534
+ },
535
+ {
536
+ "inputs": [],
537
+ "name": "info",
538
+ "outputs": [
539
+ {
540
+ "components": [
541
+ {
542
+ "internalType": "uint192",
543
+ "name": "saved",
544
+ "type": "uint192"
545
+ },
546
+ {
547
+ "internalType": "uint64",
548
+ "name": "ticks",
549
+ "type": "uint64"
550
+ }
551
+ ],
552
+ "internalType": "struct ISavingsJUSD.Account",
553
+ "name": "",
554
+ "type": "tuple"
555
+ }
556
+ ],
557
+ "stateMutability": "view",
558
+ "type": "function"
559
+ },
560
+ {
561
+ "inputs": [
562
+ {
563
+ "internalType": "address",
564
+ "name": "",
565
+ "type": "address"
566
+ }
567
+ ],
568
+ "name": "maxDeposit",
569
+ "outputs": [
570
+ {
571
+ "internalType": "uint256",
572
+ "name": "",
573
+ "type": "uint256"
574
+ }
575
+ ],
576
+ "stateMutability": "view",
577
+ "type": "function"
578
+ },
579
+ {
580
+ "inputs": [
581
+ {
582
+ "internalType": "address",
583
+ "name": "",
584
+ "type": "address"
585
+ }
586
+ ],
587
+ "name": "maxMint",
588
+ "outputs": [
589
+ {
590
+ "internalType": "uint256",
591
+ "name": "",
592
+ "type": "uint256"
593
+ }
594
+ ],
595
+ "stateMutability": "view",
596
+ "type": "function"
597
+ },
598
+ {
599
+ "inputs": [
600
+ {
601
+ "internalType": "address",
602
+ "name": "owner",
603
+ "type": "address"
604
+ }
605
+ ],
606
+ "name": "maxRedeem",
607
+ "outputs": [
608
+ {
609
+ "internalType": "uint256",
610
+ "name": "",
611
+ "type": "uint256"
612
+ }
613
+ ],
614
+ "stateMutability": "view",
615
+ "type": "function"
616
+ },
617
+ {
618
+ "inputs": [
619
+ {
620
+ "internalType": "address",
621
+ "name": "owner",
622
+ "type": "address"
623
+ }
624
+ ],
625
+ "name": "maxWithdraw",
626
+ "outputs": [
627
+ {
628
+ "internalType": "uint256",
629
+ "name": "",
630
+ "type": "uint256"
631
+ }
632
+ ],
633
+ "stateMutability": "view",
634
+ "type": "function"
635
+ },
636
+ {
637
+ "inputs": [
638
+ {
639
+ "internalType": "uint256",
640
+ "name": "shares",
641
+ "type": "uint256"
642
+ },
643
+ {
644
+ "internalType": "address",
645
+ "name": "receiver",
646
+ "type": "address"
647
+ }
648
+ ],
649
+ "name": "mint",
650
+ "outputs": [
651
+ {
652
+ "internalType": "uint256",
653
+ "name": "",
654
+ "type": "uint256"
655
+ }
656
+ ],
657
+ "stateMutability": "nonpayable",
658
+ "type": "function"
659
+ },
660
+ {
661
+ "inputs": [],
662
+ "name": "name",
663
+ "outputs": [
664
+ {
665
+ "internalType": "string",
666
+ "name": "",
667
+ "type": "string"
668
+ }
669
+ ],
670
+ "stateMutability": "view",
671
+ "type": "function"
672
+ },
673
+ {
674
+ "inputs": [
675
+ {
676
+ "internalType": "uint256",
677
+ "name": "assets",
678
+ "type": "uint256"
679
+ }
680
+ ],
681
+ "name": "previewDeposit",
682
+ "outputs": [
683
+ {
684
+ "internalType": "uint256",
685
+ "name": "",
686
+ "type": "uint256"
687
+ }
688
+ ],
689
+ "stateMutability": "view",
690
+ "type": "function"
691
+ },
692
+ {
693
+ "inputs": [
694
+ {
695
+ "internalType": "uint256",
696
+ "name": "shares",
697
+ "type": "uint256"
698
+ }
699
+ ],
700
+ "name": "previewMint",
701
+ "outputs": [
702
+ {
703
+ "internalType": "uint256",
704
+ "name": "",
705
+ "type": "uint256"
706
+ }
707
+ ],
708
+ "stateMutability": "view",
709
+ "type": "function"
710
+ },
711
+ {
712
+ "inputs": [
713
+ {
714
+ "internalType": "uint256",
715
+ "name": "shares",
716
+ "type": "uint256"
717
+ }
718
+ ],
719
+ "name": "previewRedeem",
720
+ "outputs": [
721
+ {
722
+ "internalType": "uint256",
723
+ "name": "",
724
+ "type": "uint256"
725
+ }
726
+ ],
727
+ "stateMutability": "view",
728
+ "type": "function"
729
+ },
730
+ {
731
+ "inputs": [
732
+ {
733
+ "internalType": "uint256",
734
+ "name": "assets",
735
+ "type": "uint256"
736
+ }
737
+ ],
738
+ "name": "previewWithdraw",
739
+ "outputs": [
740
+ {
741
+ "internalType": "uint256",
742
+ "name": "",
743
+ "type": "uint256"
744
+ }
745
+ ],
746
+ "stateMutability": "view",
747
+ "type": "function"
748
+ },
749
+ {
750
+ "inputs": [],
751
+ "name": "price",
752
+ "outputs": [
753
+ {
754
+ "internalType": "uint256",
755
+ "name": "",
756
+ "type": "uint256"
757
+ }
758
+ ],
759
+ "stateMutability": "view",
760
+ "type": "function"
761
+ },
762
+ {
763
+ "inputs": [
764
+ {
765
+ "internalType": "uint256",
766
+ "name": "shares",
767
+ "type": "uint256"
768
+ },
769
+ {
770
+ "internalType": "address",
771
+ "name": "receiver",
772
+ "type": "address"
773
+ },
774
+ {
775
+ "internalType": "address",
776
+ "name": "owner",
777
+ "type": "address"
778
+ }
779
+ ],
780
+ "name": "redeem",
781
+ "outputs": [
782
+ {
783
+ "internalType": "uint256",
784
+ "name": "",
785
+ "type": "uint256"
786
+ }
787
+ ],
788
+ "stateMutability": "nonpayable",
789
+ "type": "function"
790
+ },
791
+ {
792
+ "inputs": [],
793
+ "name": "symbol",
794
+ "outputs": [
795
+ {
796
+ "internalType": "string",
797
+ "name": "",
798
+ "type": "string"
799
+ }
800
+ ],
801
+ "stateMutability": "view",
802
+ "type": "function"
803
+ },
804
+ {
805
+ "inputs": [],
806
+ "name": "totalAssets",
807
+ "outputs": [
808
+ {
809
+ "internalType": "uint256",
810
+ "name": "",
811
+ "type": "uint256"
812
+ }
813
+ ],
814
+ "stateMutability": "view",
815
+ "type": "function"
816
+ },
817
+ {
818
+ "inputs": [],
819
+ "name": "totalClaimed",
820
+ "outputs": [
821
+ {
822
+ "internalType": "uint256",
823
+ "name": "",
824
+ "type": "uint256"
825
+ }
826
+ ],
827
+ "stateMutability": "view",
828
+ "type": "function"
829
+ },
830
+ {
831
+ "inputs": [],
832
+ "name": "totalSupply",
833
+ "outputs": [
834
+ {
835
+ "internalType": "uint256",
836
+ "name": "",
837
+ "type": "uint256"
838
+ }
839
+ ],
840
+ "stateMutability": "view",
841
+ "type": "function"
842
+ },
843
+ {
844
+ "inputs": [
845
+ {
846
+ "internalType": "address",
847
+ "name": "to",
848
+ "type": "address"
849
+ },
850
+ {
851
+ "internalType": "uint256",
852
+ "name": "value",
853
+ "type": "uint256"
854
+ }
855
+ ],
856
+ "name": "transfer",
857
+ "outputs": [
858
+ {
859
+ "internalType": "bool",
860
+ "name": "",
861
+ "type": "bool"
862
+ }
863
+ ],
864
+ "stateMutability": "nonpayable",
865
+ "type": "function"
866
+ },
867
+ {
868
+ "inputs": [
869
+ {
870
+ "internalType": "address",
871
+ "name": "from",
872
+ "type": "address"
873
+ },
874
+ {
875
+ "internalType": "address",
876
+ "name": "to",
877
+ "type": "address"
878
+ },
879
+ {
880
+ "internalType": "uint256",
881
+ "name": "value",
882
+ "type": "uint256"
883
+ }
884
+ ],
885
+ "name": "transferFrom",
886
+ "outputs": [
887
+ {
888
+ "internalType": "bool",
889
+ "name": "",
890
+ "type": "bool"
891
+ }
892
+ ],
893
+ "stateMutability": "nonpayable",
894
+ "type": "function"
895
+ },
896
+ {
897
+ "inputs": [
898
+ {
899
+ "internalType": "uint256",
900
+ "name": "assets",
901
+ "type": "uint256"
902
+ },
903
+ {
904
+ "internalType": "address",
905
+ "name": "receiver",
906
+ "type": "address"
907
+ },
908
+ {
909
+ "internalType": "address",
910
+ "name": "owner",
911
+ "type": "address"
912
+ }
913
+ ],
914
+ "name": "withdraw",
915
+ "outputs": [
916
+ {
917
+ "internalType": "uint256",
918
+ "name": "",
919
+ "type": "uint256"
920
+ }
921
+ ],
922
+ "stateMutability": "nonpayable",
923
+ "type": "function"
924
+ }
925
+ ] as const;