@kamino-finance/klend-sdk 5.7.0 → 5.9.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.
@@ -0,0 +1,2157 @@
1
+ {
2
+ "version": "0.1.0",
3
+ "name": "kamino_vault",
4
+ "instructions": [
5
+ {
6
+ "name": "initVault",
7
+ "accounts": [
8
+ {
9
+ "name": "adminAuthority",
10
+ "isMut": true,
11
+ "isSigner": true
12
+ },
13
+ {
14
+ "name": "vaultState",
15
+ "isMut": true,
16
+ "isSigner": false
17
+ },
18
+ {
19
+ "name": "baseVaultAuthority",
20
+ "isMut": false,
21
+ "isSigner": false
22
+ },
23
+ {
24
+ "name": "tokenVault",
25
+ "isMut": true,
26
+ "isSigner": false
27
+ },
28
+ {
29
+ "name": "baseTokenMint",
30
+ "isMut": false,
31
+ "isSigner": false
32
+ },
33
+ {
34
+ "name": "sharesMint",
35
+ "isMut": true,
36
+ "isSigner": false
37
+ },
38
+ {
39
+ "name": "systemProgram",
40
+ "isMut": false,
41
+ "isSigner": false
42
+ },
43
+ {
44
+ "name": "rent",
45
+ "isMut": false,
46
+ "isSigner": false
47
+ },
48
+ {
49
+ "name": "tokenProgram",
50
+ "isMut": false,
51
+ "isSigner": false
52
+ },
53
+ {
54
+ "name": "sharesTokenProgram",
55
+ "isMut": false,
56
+ "isSigner": false
57
+ }
58
+ ],
59
+ "args": []
60
+ },
61
+ {
62
+ "name": "updateReserveAllocation",
63
+ "accounts": [
64
+ {
65
+ "name": "adminAuthority",
66
+ "isMut": true,
67
+ "isSigner": true
68
+ },
69
+ {
70
+ "name": "vaultState",
71
+ "isMut": true,
72
+ "isSigner": false
73
+ },
74
+ {
75
+ "name": "baseVaultAuthority",
76
+ "isMut": false,
77
+ "isSigner": false
78
+ },
79
+ {
80
+ "name": "reserveCollateralMint",
81
+ "isMut": true,
82
+ "isSigner": false
83
+ },
84
+ {
85
+ "name": "reserve",
86
+ "isMut": false,
87
+ "isSigner": false
88
+ },
89
+ {
90
+ "name": "ctokenVault",
91
+ "isMut": true,
92
+ "isSigner": false
93
+ },
94
+ {
95
+ "name": "systemProgram",
96
+ "isMut": false,
97
+ "isSigner": false
98
+ },
99
+ {
100
+ "name": "rent",
101
+ "isMut": false,
102
+ "isSigner": false
103
+ },
104
+ {
105
+ "name": "tokenProgram",
106
+ "isMut": false,
107
+ "isSigner": false
108
+ }
109
+ ],
110
+ "args": [
111
+ {
112
+ "name": "weight",
113
+ "type": "u64"
114
+ },
115
+ {
116
+ "name": "cap",
117
+ "type": "u64"
118
+ }
119
+ ]
120
+ },
121
+ {
122
+ "name": "deposit",
123
+ "accounts": [
124
+ {
125
+ "name": "user",
126
+ "isMut": true,
127
+ "isSigner": true
128
+ },
129
+ {
130
+ "name": "vaultState",
131
+ "isMut": true,
132
+ "isSigner": false
133
+ },
134
+ {
135
+ "name": "tokenVault",
136
+ "isMut": true,
137
+ "isSigner": false
138
+ },
139
+ {
140
+ "name": "tokenMint",
141
+ "isMut": false,
142
+ "isSigner": false
143
+ },
144
+ {
145
+ "name": "baseVaultAuthority",
146
+ "isMut": false,
147
+ "isSigner": false
148
+ },
149
+ {
150
+ "name": "sharesMint",
151
+ "isMut": true,
152
+ "isSigner": false
153
+ },
154
+ {
155
+ "name": "userTokenAta",
156
+ "isMut": true,
157
+ "isSigner": false
158
+ },
159
+ {
160
+ "name": "userSharesAta",
161
+ "isMut": true,
162
+ "isSigner": false
163
+ },
164
+ {
165
+ "name": "klendProgram",
166
+ "isMut": false,
167
+ "isSigner": false
168
+ },
169
+ {
170
+ "name": "tokenProgram",
171
+ "isMut": false,
172
+ "isSigner": false
173
+ },
174
+ {
175
+ "name": "sharesTokenProgram",
176
+ "isMut": false,
177
+ "isSigner": false
178
+ },
179
+ {
180
+ "name": "instructionSysvarAccount",
181
+ "isMut": false,
182
+ "isSigner": false
183
+ }
184
+ ],
185
+ "args": [
186
+ {
187
+ "name": "maxAmount",
188
+ "type": "u64"
189
+ }
190
+ ]
191
+ },
192
+ {
193
+ "name": "withdraw",
194
+ "accounts": [
195
+ {
196
+ "name": "withdrawFromAvailable",
197
+ "accounts": [
198
+ {
199
+ "name": "user",
200
+ "isMut": true,
201
+ "isSigner": true
202
+ },
203
+ {
204
+ "name": "vaultState",
205
+ "isMut": true,
206
+ "isSigner": false
207
+ },
208
+ {
209
+ "name": "tokenVault",
210
+ "isMut": true,
211
+ "isSigner": false
212
+ },
213
+ {
214
+ "name": "baseVaultAuthority",
215
+ "isMut": false,
216
+ "isSigner": false
217
+ },
218
+ {
219
+ "name": "userTokenAta",
220
+ "isMut": true,
221
+ "isSigner": false
222
+ },
223
+ {
224
+ "name": "tokenMint",
225
+ "isMut": true,
226
+ "isSigner": false
227
+ },
228
+ {
229
+ "name": "userSharesAta",
230
+ "isMut": true,
231
+ "isSigner": false
232
+ },
233
+ {
234
+ "name": "sharesMint",
235
+ "isMut": true,
236
+ "isSigner": false
237
+ },
238
+ {
239
+ "name": "tokenProgram",
240
+ "isMut": false,
241
+ "isSigner": false
242
+ },
243
+ {
244
+ "name": "sharesTokenProgram",
245
+ "isMut": false,
246
+ "isSigner": false
247
+ },
248
+ {
249
+ "name": "klendProgram",
250
+ "isMut": false,
251
+ "isSigner": false
252
+ }
253
+ ]
254
+ },
255
+ {
256
+ "name": "withdrawFromReserveAccounts",
257
+ "accounts": [
258
+ {
259
+ "name": "vaultState",
260
+ "isMut": true,
261
+ "isSigner": false
262
+ },
263
+ {
264
+ "name": "reserve",
265
+ "isMut": true,
266
+ "isSigner": false
267
+ },
268
+ {
269
+ "name": "ctokenVault",
270
+ "isMut": true,
271
+ "isSigner": false
272
+ },
273
+ {
274
+ "name": "lendingMarket",
275
+ "isMut": false,
276
+ "isSigner": false
277
+ },
278
+ {
279
+ "name": "lendingMarketAuthority",
280
+ "isMut": false,
281
+ "isSigner": false
282
+ },
283
+ {
284
+ "name": "reserveLiquiditySupply",
285
+ "isMut": true,
286
+ "isSigner": false
287
+ },
288
+ {
289
+ "name": "reserveCollateralMint",
290
+ "isMut": true,
291
+ "isSigner": false
292
+ },
293
+ {
294
+ "name": "reserveCollateralTokenProgram",
295
+ "isMut": false,
296
+ "isSigner": false
297
+ },
298
+ {
299
+ "name": "instructionSysvarAccount",
300
+ "isMut": false,
301
+ "isSigner": false
302
+ }
303
+ ]
304
+ }
305
+ ],
306
+ "args": [
307
+ {
308
+ "name": "sharesAmount",
309
+ "type": "u64"
310
+ }
311
+ ]
312
+ },
313
+ {
314
+ "name": "invest",
315
+ "accounts": [
316
+ {
317
+ "name": "payer",
318
+ "isMut": true,
319
+ "isSigner": true
320
+ },
321
+ {
322
+ "name": "payerTokenAccount",
323
+ "isMut": true,
324
+ "isSigner": false
325
+ },
326
+ {
327
+ "name": "vaultState",
328
+ "isMut": true,
329
+ "isSigner": false
330
+ },
331
+ {
332
+ "name": "tokenVault",
333
+ "isMut": true,
334
+ "isSigner": false
335
+ },
336
+ {
337
+ "name": "tokenMint",
338
+ "isMut": true,
339
+ "isSigner": false
340
+ },
341
+ {
342
+ "name": "baseVaultAuthority",
343
+ "isMut": true,
344
+ "isSigner": false
345
+ },
346
+ {
347
+ "name": "ctokenVault",
348
+ "isMut": true,
349
+ "isSigner": false
350
+ },
351
+ {
352
+ "name": "reserve",
353
+ "isMut": true,
354
+ "isSigner": false,
355
+ "docs": [
356
+ "CPI accounts"
357
+ ]
358
+ },
359
+ {
360
+ "name": "lendingMarket",
361
+ "isMut": false,
362
+ "isSigner": false
363
+ },
364
+ {
365
+ "name": "lendingMarketAuthority",
366
+ "isMut": false,
367
+ "isSigner": false
368
+ },
369
+ {
370
+ "name": "reserveLiquiditySupply",
371
+ "isMut": true,
372
+ "isSigner": false
373
+ },
374
+ {
375
+ "name": "reserveCollateralMint",
376
+ "isMut": true,
377
+ "isSigner": false
378
+ },
379
+ {
380
+ "name": "klendProgram",
381
+ "isMut": false,
382
+ "isSigner": false
383
+ },
384
+ {
385
+ "name": "reserveCollateralTokenProgram",
386
+ "isMut": false,
387
+ "isSigner": false
388
+ },
389
+ {
390
+ "name": "tokenProgram",
391
+ "isMut": false,
392
+ "isSigner": false
393
+ },
394
+ {
395
+ "name": "instructionSysvarAccount",
396
+ "isMut": false,
397
+ "isSigner": false
398
+ }
399
+ ],
400
+ "args": []
401
+ },
402
+ {
403
+ "name": "updateVaultConfig",
404
+ "accounts": [
405
+ {
406
+ "name": "adminAuthority",
407
+ "isMut": false,
408
+ "isSigner": true
409
+ },
410
+ {
411
+ "name": "vaultState",
412
+ "isMut": true,
413
+ "isSigner": false
414
+ },
415
+ {
416
+ "name": "klendProgram",
417
+ "isMut": false,
418
+ "isSigner": false
419
+ }
420
+ ],
421
+ "args": [
422
+ {
423
+ "name": "entry",
424
+ "type": {
425
+ "defined": "VaultConfigField"
426
+ }
427
+ },
428
+ {
429
+ "name": "data",
430
+ "type": "bytes"
431
+ }
432
+ ]
433
+ },
434
+ {
435
+ "name": "withdrawPendingFees",
436
+ "accounts": [
437
+ {
438
+ "name": "adminAuthority",
439
+ "isMut": true,
440
+ "isSigner": true
441
+ },
442
+ {
443
+ "name": "vaultState",
444
+ "isMut": true,
445
+ "isSigner": false
446
+ },
447
+ {
448
+ "name": "reserve",
449
+ "isMut": true,
450
+ "isSigner": false
451
+ },
452
+ {
453
+ "name": "tokenVault",
454
+ "isMut": true,
455
+ "isSigner": false
456
+ },
457
+ {
458
+ "name": "ctokenVault",
459
+ "isMut": true,
460
+ "isSigner": false
461
+ },
462
+ {
463
+ "name": "baseVaultAuthority",
464
+ "isMut": true,
465
+ "isSigner": false
466
+ },
467
+ {
468
+ "name": "tokenAta",
469
+ "isMut": true,
470
+ "isSigner": false
471
+ },
472
+ {
473
+ "name": "tokenMint",
474
+ "isMut": true,
475
+ "isSigner": false
476
+ },
477
+ {
478
+ "name": "lendingMarket",
479
+ "isMut": false,
480
+ "isSigner": false,
481
+ "docs": [
482
+ "CPI accounts"
483
+ ]
484
+ },
485
+ {
486
+ "name": "lendingMarketAuthority",
487
+ "isMut": false,
488
+ "isSigner": false
489
+ },
490
+ {
491
+ "name": "reserveLiquiditySupply",
492
+ "isMut": true,
493
+ "isSigner": false
494
+ },
495
+ {
496
+ "name": "reserveCollateralMint",
497
+ "isMut": true,
498
+ "isSigner": false
499
+ },
500
+ {
501
+ "name": "klendProgram",
502
+ "isMut": false,
503
+ "isSigner": false
504
+ },
505
+ {
506
+ "name": "tokenProgram",
507
+ "isMut": false,
508
+ "isSigner": false
509
+ },
510
+ {
511
+ "name": "reserveCollateralTokenProgram",
512
+ "isMut": false,
513
+ "isSigner": false
514
+ },
515
+ {
516
+ "name": "instructionSysvarAccount",
517
+ "isMut": false,
518
+ "isSigner": false
519
+ }
520
+ ],
521
+ "args": []
522
+ },
523
+ {
524
+ "name": "updateAdmin",
525
+ "accounts": [
526
+ {
527
+ "name": "pendingAdmin",
528
+ "isMut": true,
529
+ "isSigner": true
530
+ },
531
+ {
532
+ "name": "vaultState",
533
+ "isMut": true,
534
+ "isSigner": false
535
+ }
536
+ ],
537
+ "args": []
538
+ },
539
+ {
540
+ "name": "giveUpPendingFees",
541
+ "accounts": [
542
+ {
543
+ "name": "adminAuthority",
544
+ "isMut": true,
545
+ "isSigner": true
546
+ },
547
+ {
548
+ "name": "vaultState",
549
+ "isMut": true,
550
+ "isSigner": false
551
+ },
552
+ {
553
+ "name": "klendProgram",
554
+ "isMut": false,
555
+ "isSigner": false
556
+ }
557
+ ],
558
+ "args": [
559
+ {
560
+ "name": "maxAmountToGiveUp",
561
+ "type": "u64"
562
+ }
563
+ ]
564
+ },
565
+ {
566
+ "name": "initializeSharesMetadata",
567
+ "accounts": [
568
+ {
569
+ "name": "adminAuthority",
570
+ "isMut": true,
571
+ "isSigner": true
572
+ },
573
+ {
574
+ "name": "vaultState",
575
+ "isMut": false,
576
+ "isSigner": false
577
+ },
578
+ {
579
+ "name": "sharesMint",
580
+ "isMut": false,
581
+ "isSigner": false
582
+ },
583
+ {
584
+ "name": "baseVaultAuthority",
585
+ "isMut": false,
586
+ "isSigner": false
587
+ },
588
+ {
589
+ "name": "sharesMetadata",
590
+ "isMut": true,
591
+ "isSigner": false
592
+ },
593
+ {
594
+ "name": "systemProgram",
595
+ "isMut": false,
596
+ "isSigner": false
597
+ },
598
+ {
599
+ "name": "rent",
600
+ "isMut": false,
601
+ "isSigner": false
602
+ },
603
+ {
604
+ "name": "metadataProgram",
605
+ "isMut": false,
606
+ "isSigner": false
607
+ }
608
+ ],
609
+ "args": [
610
+ {
611
+ "name": "name",
612
+ "type": "string"
613
+ },
614
+ {
615
+ "name": "symbol",
616
+ "type": "string"
617
+ },
618
+ {
619
+ "name": "uri",
620
+ "type": "string"
621
+ }
622
+ ]
623
+ },
624
+ {
625
+ "name": "updateSharesMetadata",
626
+ "accounts": [
627
+ {
628
+ "name": "adminAuthority",
629
+ "isMut": true,
630
+ "isSigner": true
631
+ },
632
+ {
633
+ "name": "vaultState",
634
+ "isMut": false,
635
+ "isSigner": false
636
+ },
637
+ {
638
+ "name": "baseVaultAuthority",
639
+ "isMut": false,
640
+ "isSigner": false
641
+ },
642
+ {
643
+ "name": "sharesMetadata",
644
+ "isMut": true,
645
+ "isSigner": false
646
+ },
647
+ {
648
+ "name": "metadataProgram",
649
+ "isMut": false,
650
+ "isSigner": false
651
+ }
652
+ ],
653
+ "args": [
654
+ {
655
+ "name": "name",
656
+ "type": "string"
657
+ },
658
+ {
659
+ "name": "symbol",
660
+ "type": "string"
661
+ },
662
+ {
663
+ "name": "uri",
664
+ "type": "string"
665
+ }
666
+ ]
667
+ },
668
+ {
669
+ "name": "withdrawFromAvailable",
670
+ "accounts": [
671
+ {
672
+ "name": "user",
673
+ "isMut": true,
674
+ "isSigner": true
675
+ },
676
+ {
677
+ "name": "vaultState",
678
+ "isMut": true,
679
+ "isSigner": false
680
+ },
681
+ {
682
+ "name": "tokenVault",
683
+ "isMut": true,
684
+ "isSigner": false
685
+ },
686
+ {
687
+ "name": "baseVaultAuthority",
688
+ "isMut": false,
689
+ "isSigner": false
690
+ },
691
+ {
692
+ "name": "userTokenAta",
693
+ "isMut": true,
694
+ "isSigner": false
695
+ },
696
+ {
697
+ "name": "tokenMint",
698
+ "isMut": true,
699
+ "isSigner": false
700
+ },
701
+ {
702
+ "name": "userSharesAta",
703
+ "isMut": true,
704
+ "isSigner": false
705
+ },
706
+ {
707
+ "name": "sharesMint",
708
+ "isMut": true,
709
+ "isSigner": false
710
+ },
711
+ {
712
+ "name": "tokenProgram",
713
+ "isMut": false,
714
+ "isSigner": false
715
+ },
716
+ {
717
+ "name": "sharesTokenProgram",
718
+ "isMut": false,
719
+ "isSigner": false
720
+ },
721
+ {
722
+ "name": "klendProgram",
723
+ "isMut": false,
724
+ "isSigner": false
725
+ }
726
+ ],
727
+ "args": [
728
+ {
729
+ "name": "sharesAmount",
730
+ "type": "u64"
731
+ }
732
+ ]
733
+ }
734
+ ],
735
+ "accounts": [
736
+ {
737
+ "name": "Reserve",
738
+ "type": {
739
+ "kind": "struct",
740
+ "fields": [
741
+ {
742
+ "name": "version",
743
+ "docs": [
744
+ "Version of the reserve"
745
+ ],
746
+ "type": "u64"
747
+ },
748
+ {
749
+ "name": "lastUpdate",
750
+ "docs": [
751
+ "Last slot when supply and rates updated"
752
+ ],
753
+ "type": {
754
+ "defined": "LastUpdate"
755
+ }
756
+ },
757
+ {
758
+ "name": "lendingMarket",
759
+ "docs": [
760
+ "Lending market address"
761
+ ],
762
+ "type": "publicKey"
763
+ },
764
+ {
765
+ "name": "farmCollateral",
766
+ "type": "publicKey"
767
+ },
768
+ {
769
+ "name": "farmDebt",
770
+ "type": "publicKey"
771
+ },
772
+ {
773
+ "name": "liquidity",
774
+ "docs": [
775
+ "Reserve liquidity"
776
+ ],
777
+ "type": {
778
+ "defined": "ReserveLiquidity"
779
+ }
780
+ },
781
+ {
782
+ "name": "reserveLiquidityPadding",
783
+ "type": {
784
+ "array": [
785
+ "u64",
786
+ 150
787
+ ]
788
+ }
789
+ },
790
+ {
791
+ "name": "collateral",
792
+ "docs": [
793
+ "Reserve collateral"
794
+ ],
795
+ "type": {
796
+ "defined": "ReserveCollateral"
797
+ }
798
+ },
799
+ {
800
+ "name": "reserveCollateralPadding",
801
+ "type": {
802
+ "array": [
803
+ "u64",
804
+ 150
805
+ ]
806
+ }
807
+ },
808
+ {
809
+ "name": "config",
810
+ "docs": [
811
+ "Reserve configuration values"
812
+ ],
813
+ "type": {
814
+ "defined": "ReserveConfig"
815
+ }
816
+ },
817
+ {
818
+ "name": "configPadding",
819
+ "type": {
820
+ "array": [
821
+ "u64",
822
+ 116
823
+ ]
824
+ }
825
+ },
826
+ {
827
+ "name": "borrowedAmountOutsideElevationGroup",
828
+ "type": "u64"
829
+ },
830
+ {
831
+ "name": "borrowedAmountsAgainstThisReserveInElevationGroups",
832
+ "docs": [
833
+ "Amount of token borrowed in lamport of debt asset in the given",
834
+ "elevation group when this reserve is part of the collaterals."
835
+ ],
836
+ "type": {
837
+ "array": [
838
+ "u64",
839
+ 32
840
+ ]
841
+ }
842
+ },
843
+ {
844
+ "name": "padding",
845
+ "type": {
846
+ "array": [
847
+ "u64",
848
+ 207
849
+ ]
850
+ }
851
+ }
852
+ ]
853
+ }
854
+ },
855
+ {
856
+ "name": "VaultState",
857
+ "type": {
858
+ "kind": "struct",
859
+ "fields": [
860
+ {
861
+ "name": "adminAuthority",
862
+ "type": "publicKey"
863
+ },
864
+ {
865
+ "name": "baseVaultAuthority",
866
+ "type": "publicKey"
867
+ },
868
+ {
869
+ "name": "baseVaultAuthorityBump",
870
+ "type": "u64"
871
+ },
872
+ {
873
+ "name": "tokenMint",
874
+ "type": "publicKey"
875
+ },
876
+ {
877
+ "name": "tokenMintDecimals",
878
+ "type": "u64"
879
+ },
880
+ {
881
+ "name": "tokenVault",
882
+ "type": "publicKey"
883
+ },
884
+ {
885
+ "name": "tokenProgram",
886
+ "type": "publicKey"
887
+ },
888
+ {
889
+ "name": "sharesMint",
890
+ "type": "publicKey"
891
+ },
892
+ {
893
+ "name": "sharesMintDecimals",
894
+ "type": "u64"
895
+ },
896
+ {
897
+ "name": "tokenAvailable",
898
+ "type": "u64"
899
+ },
900
+ {
901
+ "name": "sharesIssued",
902
+ "type": "u64"
903
+ },
904
+ {
905
+ "name": "availableCrankFunds",
906
+ "type": "u64"
907
+ },
908
+ {
909
+ "name": "padding0",
910
+ "type": "u64"
911
+ },
912
+ {
913
+ "name": "performanceFeeBps",
914
+ "type": "u64"
915
+ },
916
+ {
917
+ "name": "managementFeeBps",
918
+ "type": "u64"
919
+ },
920
+ {
921
+ "name": "lastFeeChargeTimestamp",
922
+ "type": "u64"
923
+ },
924
+ {
925
+ "name": "prevAumSf",
926
+ "type": "u128"
927
+ },
928
+ {
929
+ "name": "pendingFeesSf",
930
+ "type": "u128"
931
+ },
932
+ {
933
+ "name": "vaultAllocationStrategy",
934
+ "type": {
935
+ "array": [
936
+ {
937
+ "defined": "VaultAllocation"
938
+ },
939
+ 10
940
+ ]
941
+ }
942
+ },
943
+ {
944
+ "name": "minDepositAmount",
945
+ "type": "u64"
946
+ },
947
+ {
948
+ "name": "minWithdrawAmount",
949
+ "type": "u64"
950
+ },
951
+ {
952
+ "name": "minInvestAmount",
953
+ "type": "u64"
954
+ },
955
+ {
956
+ "name": "minInvestDelaySlots",
957
+ "type": "u64"
958
+ },
959
+ {
960
+ "name": "crankFundFeePerReserve",
961
+ "type": "u64"
962
+ },
963
+ {
964
+ "name": "pendingAdmin",
965
+ "type": "publicKey"
966
+ },
967
+ {
968
+ "name": "cumulativeEarnedInterestSf",
969
+ "type": "u128"
970
+ },
971
+ {
972
+ "name": "cumulativeMgmtFeesSf",
973
+ "type": "u128"
974
+ },
975
+ {
976
+ "name": "cumulativePerfFeesSf",
977
+ "type": "u128"
978
+ },
979
+ {
980
+ "name": "name",
981
+ "type": {
982
+ "array": [
983
+ "u8",
984
+ 40
985
+ ]
986
+ }
987
+ },
988
+ {
989
+ "name": "vaultLookupTable",
990
+ "type": "publicKey"
991
+ },
992
+ {
993
+ "name": "vaultFarm",
994
+ "type": "publicKey"
995
+ },
996
+ {
997
+ "name": "creationTimestamp",
998
+ "type": "u64"
999
+ },
1000
+ {
1001
+ "name": "padding1",
1002
+ "type": "u64"
1003
+ },
1004
+ {
1005
+ "name": "padding2",
1006
+ "type": {
1007
+ "array": [
1008
+ "u128",
1009
+ 244
1010
+ ]
1011
+ }
1012
+ }
1013
+ ]
1014
+ }
1015
+ }
1016
+ ],
1017
+ "types": [
1018
+ {
1019
+ "name": "LastUpdate",
1020
+ "docs": [
1021
+ "Last update state"
1022
+ ],
1023
+ "type": {
1024
+ "kind": "struct",
1025
+ "fields": [
1026
+ {
1027
+ "name": "slot",
1028
+ "docs": [
1029
+ "Last slot when updated"
1030
+ ],
1031
+ "type": "u64"
1032
+ },
1033
+ {
1034
+ "name": "stale",
1035
+ "docs": [
1036
+ "True when marked stale, false when slot updated"
1037
+ ],
1038
+ "type": "u8"
1039
+ },
1040
+ {
1041
+ "name": "priceStatus",
1042
+ "docs": [
1043
+ "Status of the prices used to calculate the last update"
1044
+ ],
1045
+ "type": "u8"
1046
+ },
1047
+ {
1048
+ "name": "placeholder",
1049
+ "type": {
1050
+ "array": [
1051
+ "u8",
1052
+ 6
1053
+ ]
1054
+ }
1055
+ }
1056
+ ]
1057
+ }
1058
+ },
1059
+ {
1060
+ "name": "BigFractionBytes",
1061
+ "type": {
1062
+ "kind": "struct",
1063
+ "fields": [
1064
+ {
1065
+ "name": "value",
1066
+ "type": {
1067
+ "array": [
1068
+ "u64",
1069
+ 4
1070
+ ]
1071
+ }
1072
+ },
1073
+ {
1074
+ "name": "padding",
1075
+ "type": {
1076
+ "array": [
1077
+ "u64",
1078
+ 2
1079
+ ]
1080
+ }
1081
+ }
1082
+ ]
1083
+ }
1084
+ },
1085
+ {
1086
+ "name": "ReserveCollateral",
1087
+ "docs": [
1088
+ "Reserve collateral"
1089
+ ],
1090
+ "type": {
1091
+ "kind": "struct",
1092
+ "fields": [
1093
+ {
1094
+ "name": "mintPubkey",
1095
+ "docs": [
1096
+ "Reserve collateral mint address"
1097
+ ],
1098
+ "type": "publicKey"
1099
+ },
1100
+ {
1101
+ "name": "mintTotalSupply",
1102
+ "docs": [
1103
+ "Reserve collateral mint supply, used for exchange rate"
1104
+ ],
1105
+ "type": "u64"
1106
+ },
1107
+ {
1108
+ "name": "supplyVault",
1109
+ "docs": [
1110
+ "Reserve collateral supply address"
1111
+ ],
1112
+ "type": "publicKey"
1113
+ },
1114
+ {
1115
+ "name": "padding1",
1116
+ "type": {
1117
+ "array": [
1118
+ "u128",
1119
+ 32
1120
+ ]
1121
+ }
1122
+ },
1123
+ {
1124
+ "name": "padding2",
1125
+ "type": {
1126
+ "array": [
1127
+ "u128",
1128
+ 32
1129
+ ]
1130
+ }
1131
+ }
1132
+ ]
1133
+ }
1134
+ },
1135
+ {
1136
+ "name": "ReserveConfig",
1137
+ "docs": [
1138
+ "Reserve configuration values"
1139
+ ],
1140
+ "type": {
1141
+ "kind": "struct",
1142
+ "fields": [
1143
+ {
1144
+ "name": "status",
1145
+ "docs": [
1146
+ "Status of the reserve Active/Obsolete/Hidden"
1147
+ ],
1148
+ "type": "u8"
1149
+ },
1150
+ {
1151
+ "name": "assetTier",
1152
+ "docs": [
1153
+ "Asset tier -> 0 - regular (collateral & debt), 1 - isolated collateral, 2 - isolated debt"
1154
+ ],
1155
+ "type": "u8"
1156
+ },
1157
+ {
1158
+ "name": "hostFixedInterestRateBps",
1159
+ "docs": [
1160
+ "Flat rate that goes to the host"
1161
+ ],
1162
+ "type": "u16"
1163
+ },
1164
+ {
1165
+ "name": "reserved2",
1166
+ "docs": [
1167
+ "[DEPRECATED] Boost for side (debt or collateral)"
1168
+ ],
1169
+ "type": {
1170
+ "array": [
1171
+ "u8",
1172
+ 2
1173
+ ]
1174
+ }
1175
+ },
1176
+ {
1177
+ "name": "reserved3",
1178
+ "docs": [
1179
+ "[DEPRECATED] Reward points multiplier per obligation type"
1180
+ ],
1181
+ "type": {
1182
+ "array": [
1183
+ "u8",
1184
+ 8
1185
+ ]
1186
+ }
1187
+ },
1188
+ {
1189
+ "name": "protocolTakeRatePct",
1190
+ "docs": [
1191
+ "Protocol take rate is the amount borrowed interest protocol receives, as a percentage"
1192
+ ],
1193
+ "type": "u8"
1194
+ },
1195
+ {
1196
+ "name": "protocolLiquidationFeePct",
1197
+ "docs": [
1198
+ "Cut of the liquidation bonus that the protocol receives, as a percentage"
1199
+ ],
1200
+ "type": "u8"
1201
+ },
1202
+ {
1203
+ "name": "loanToValuePct",
1204
+ "docs": [
1205
+ "Target ratio of the value of borrows to deposits, as a percentage",
1206
+ "0 if use as collateral is disabled"
1207
+ ],
1208
+ "type": "u8"
1209
+ },
1210
+ {
1211
+ "name": "liquidationThresholdPct",
1212
+ "docs": [
1213
+ "Loan to value ratio at which an obligation can be liquidated, as percentage"
1214
+ ],
1215
+ "type": "u8"
1216
+ },
1217
+ {
1218
+ "name": "minLiquidationBonusBps",
1219
+ "docs": [
1220
+ "Minimum bonus a liquidator receives when repaying part of an unhealthy obligation, as bps"
1221
+ ],
1222
+ "type": "u16"
1223
+ },
1224
+ {
1225
+ "name": "maxLiquidationBonusBps",
1226
+ "docs": [
1227
+ "Maximum bonus a liquidator receives when repaying part of an unhealthy obligation, as bps"
1228
+ ],
1229
+ "type": "u16"
1230
+ },
1231
+ {
1232
+ "name": "badDebtLiquidationBonusBps",
1233
+ "docs": [
1234
+ "Bad debt liquidation bonus for an undercollateralized obligation, as bps"
1235
+ ],
1236
+ "type": "u16"
1237
+ },
1238
+ {
1239
+ "name": "deleveragingMarginCallPeriodSecs",
1240
+ "docs": [
1241
+ "Time in seconds that must pass before redemptions are enabled after the deposit limit is",
1242
+ "crossed.",
1243
+ "Only relevant when `autodeleverage_enabled == 1`, and must not be 0 in such case."
1244
+ ],
1245
+ "type": "u64"
1246
+ },
1247
+ {
1248
+ "name": "deleveragingThresholdDecreaseBpsPerDay",
1249
+ "docs": [
1250
+ "The rate at which the deleveraging threshold decreases, in bps per day.",
1251
+ "Only relevant when `autodeleverage_enabled == 1`, and must not be 0 in such case."
1252
+ ],
1253
+ "type": "u64"
1254
+ },
1255
+ {
1256
+ "name": "fees",
1257
+ "docs": [
1258
+ "Program owner fees assessed, separate from gains due to interest accrual"
1259
+ ],
1260
+ "type": {
1261
+ "defined": "ReserveFees"
1262
+ }
1263
+ },
1264
+ {
1265
+ "name": "borrowRateCurve",
1266
+ "docs": [
1267
+ "Borrow rate curve based on utilization"
1268
+ ],
1269
+ "type": {
1270
+ "defined": "BorrowRateCurve"
1271
+ }
1272
+ },
1273
+ {
1274
+ "name": "borrowFactorPct",
1275
+ "docs": [
1276
+ "Borrow factor in percentage - used for risk adjustment"
1277
+ ],
1278
+ "type": "u64"
1279
+ },
1280
+ {
1281
+ "name": "depositLimit",
1282
+ "docs": [
1283
+ "Maximum deposit limit of liquidity in native units, u64::MAX for inf"
1284
+ ],
1285
+ "type": "u64"
1286
+ },
1287
+ {
1288
+ "name": "borrowLimit",
1289
+ "docs": [
1290
+ "Maximum amount borrowed, u64::MAX for inf, 0 to disable borrows (protected deposits)"
1291
+ ],
1292
+ "type": "u64"
1293
+ },
1294
+ {
1295
+ "name": "tokenInfo",
1296
+ "docs": [
1297
+ "Token id from TokenInfos struct"
1298
+ ],
1299
+ "type": {
1300
+ "defined": "TokenInfo"
1301
+ }
1302
+ },
1303
+ {
1304
+ "name": "depositWithdrawalCap",
1305
+ "docs": [
1306
+ "Deposit withdrawal caps - deposit & redeem"
1307
+ ],
1308
+ "type": {
1309
+ "defined": "WithdrawalCaps"
1310
+ }
1311
+ },
1312
+ {
1313
+ "name": "debtWithdrawalCap",
1314
+ "docs": [
1315
+ "Debt withdrawal caps - borrow & repay"
1316
+ ],
1317
+ "type": {
1318
+ "defined": "WithdrawalCaps"
1319
+ }
1320
+ },
1321
+ {
1322
+ "name": "elevationGroups",
1323
+ "type": {
1324
+ "array": [
1325
+ "u8",
1326
+ 20
1327
+ ]
1328
+ }
1329
+ },
1330
+ {
1331
+ "name": "disableUsageAsCollOutsideEmode",
1332
+ "type": "u8"
1333
+ },
1334
+ {
1335
+ "name": "utilizationLimitBlockBorrowingAbove",
1336
+ "type": "u8"
1337
+ },
1338
+ {
1339
+ "name": "autodeleverageEnabled",
1340
+ "docs": [
1341
+ "Whether this reserve should be subject to auto-deleveraging after deposit or borrow limit is",
1342
+ "crossed.",
1343
+ "Besides this flag, the lending market's flag also needs to be enabled (logical `AND`).",
1344
+ "**NOTE:** the manual \"target LTV\" deleveraging (enabled by the risk council for individual",
1345
+ "obligations) is NOT affected by this flag."
1346
+ ],
1347
+ "type": "u8"
1348
+ },
1349
+ {
1350
+ "name": "reserved1",
1351
+ "type": {
1352
+ "array": [
1353
+ "u8",
1354
+ 1
1355
+ ]
1356
+ }
1357
+ },
1358
+ {
1359
+ "name": "borrowLimitOutsideElevationGroup",
1360
+ "docs": [
1361
+ "Maximum amount liquidity of this reserve borrowed outside all elevation groups",
1362
+ "- u64::MAX for inf",
1363
+ "- 0 to disable borrows outside elevation groups"
1364
+ ],
1365
+ "type": "u64"
1366
+ },
1367
+ {
1368
+ "name": "borrowLimitAgainstThisCollateralInElevationGroup",
1369
+ "docs": [
1370
+ "Defines the maximum amount (in lamports of elevation group debt asset)",
1371
+ "that can be borrowed when this reserve is used as collateral.",
1372
+ "- u64::MAX for inf",
1373
+ "- 0 to disable borrows in this elevation group (expected value for the debt asset)"
1374
+ ],
1375
+ "type": {
1376
+ "array": [
1377
+ "u64",
1378
+ 32
1379
+ ]
1380
+ }
1381
+ },
1382
+ {
1383
+ "name": "deleveragingBonusIncreaseBpsPerDay",
1384
+ "docs": [
1385
+ "The rate at which the deleveraging-related liquidation bonus increases, in bps per day.",
1386
+ "Only relevant when `autodeleverage_enabled == 1`, and must not be 0 in such case."
1387
+ ],
1388
+ "type": "u64"
1389
+ }
1390
+ ]
1391
+ }
1392
+ },
1393
+ {
1394
+ "name": "ReserveFees",
1395
+ "docs": [
1396
+ "Additional fee information on a reserve",
1397
+ "",
1398
+ "These exist separately from interest accrual fees, and are specifically for the program owner",
1399
+ "and referral fee. The fees are paid out as a percentage of liquidity token amounts during",
1400
+ "repayments and liquidations."
1401
+ ],
1402
+ "type": {
1403
+ "kind": "struct",
1404
+ "fields": [
1405
+ {
1406
+ "name": "borrowFeeSf",
1407
+ "docs": [
1408
+ "Fee assessed on `BorrowObligationLiquidity`, as scaled fraction (60 bits fractional part)",
1409
+ "Must be between `0` and `2^60`, such that `2^60 = 1`. A few examples for",
1410
+ "clarity:",
1411
+ "1% = (1 << 60) / 100 = 11529215046068470",
1412
+ "0.01% (1 basis point) = 115292150460685",
1413
+ "0.00001% (Aave borrow fee) = 115292150461"
1414
+ ],
1415
+ "type": "u64"
1416
+ },
1417
+ {
1418
+ "name": "flashLoanFeeSf",
1419
+ "docs": [
1420
+ "Fee for flash loan, expressed as scaled fraction.",
1421
+ "0.3% (Aave flash loan fee) = 0.003 * 2^60 = 3458764513820541"
1422
+ ],
1423
+ "type": "u64"
1424
+ },
1425
+ {
1426
+ "name": "padding",
1427
+ "docs": [
1428
+ "Used for allignment"
1429
+ ],
1430
+ "type": {
1431
+ "array": [
1432
+ "u8",
1433
+ 8
1434
+ ]
1435
+ }
1436
+ }
1437
+ ]
1438
+ }
1439
+ },
1440
+ {
1441
+ "name": "ReserveLiquidity",
1442
+ "docs": [
1443
+ "Reserve liquidity"
1444
+ ],
1445
+ "type": {
1446
+ "kind": "struct",
1447
+ "fields": [
1448
+ {
1449
+ "name": "mintPubkey",
1450
+ "docs": [
1451
+ "Reserve liquidity mint address"
1452
+ ],
1453
+ "type": "publicKey"
1454
+ },
1455
+ {
1456
+ "name": "supplyVault",
1457
+ "docs": [
1458
+ "Reserve liquidity supply address"
1459
+ ],
1460
+ "type": "publicKey"
1461
+ },
1462
+ {
1463
+ "name": "feeVault",
1464
+ "docs": [
1465
+ "Reserve liquidity fee collection address"
1466
+ ],
1467
+ "type": "publicKey"
1468
+ },
1469
+ {
1470
+ "name": "availableAmount",
1471
+ "docs": [
1472
+ "Reserve liquidity available"
1473
+ ],
1474
+ "type": "u64"
1475
+ },
1476
+ {
1477
+ "name": "borrowedAmountSf",
1478
+ "docs": [
1479
+ "Reserve liquidity borrowed (scaled fraction)"
1480
+ ],
1481
+ "type": "u128"
1482
+ },
1483
+ {
1484
+ "name": "marketPriceSf",
1485
+ "docs": [
1486
+ "Reserve liquidity market price in quote currency (scaled fraction)"
1487
+ ],
1488
+ "type": "u128"
1489
+ },
1490
+ {
1491
+ "name": "marketPriceLastUpdatedTs",
1492
+ "docs": [
1493
+ "Unix timestamp of the market price (from the oracle)"
1494
+ ],
1495
+ "type": "u64"
1496
+ },
1497
+ {
1498
+ "name": "mintDecimals",
1499
+ "docs": [
1500
+ "Reserve liquidity mint decimals"
1501
+ ],
1502
+ "type": "u64"
1503
+ },
1504
+ {
1505
+ "name": "depositLimitCrossedTimestamp",
1506
+ "docs": [
1507
+ "Timestamp when the last refresh reserve detected that the liquidity amount is above the deposit cap. When this threshold is crossed, then redemptions (auto-deleverage) are enabled.",
1508
+ "If the threshold is not crossed, then the timestamp is set to 0"
1509
+ ],
1510
+ "type": "u64"
1511
+ },
1512
+ {
1513
+ "name": "borrowLimitCrossedTimestamp",
1514
+ "docs": [
1515
+ "Timestamp when the last refresh reserve detected that the borrowed amount is above the borrow cap. When this threshold is crossed, then redemptions (auto-deleverage) are enabled.",
1516
+ "If the threshold is not crossed, then the timestamp is set to 0"
1517
+ ],
1518
+ "type": "u64"
1519
+ },
1520
+ {
1521
+ "name": "cumulativeBorrowRateBsf",
1522
+ "docs": [
1523
+ "Reserve liquidity cumulative borrow rate (scaled fraction)"
1524
+ ],
1525
+ "type": {
1526
+ "defined": "BigFractionBytes"
1527
+ }
1528
+ },
1529
+ {
1530
+ "name": "accumulatedProtocolFeesSf",
1531
+ "docs": [
1532
+ "Reserve cumulative protocol fees (scaled fraction)"
1533
+ ],
1534
+ "type": "u128"
1535
+ },
1536
+ {
1537
+ "name": "accumulatedReferrerFeesSf",
1538
+ "docs": [
1539
+ "Reserve cumulative referrer fees (scaled fraction)"
1540
+ ],
1541
+ "type": "u128"
1542
+ },
1543
+ {
1544
+ "name": "pendingReferrerFeesSf",
1545
+ "docs": [
1546
+ "Reserve pending referrer fees, to be claimed in refresh_obligation by referrer or protocol (scaled fraction)"
1547
+ ],
1548
+ "type": "u128"
1549
+ },
1550
+ {
1551
+ "name": "absoluteReferralRateSf",
1552
+ "docs": [
1553
+ "Reserve referrer fee absolute rate calculated at each refresh_reserve operation (scaled fraction)"
1554
+ ],
1555
+ "type": "u128"
1556
+ },
1557
+ {
1558
+ "name": "tokenProgram",
1559
+ "docs": [
1560
+ "Token program of the liquidity mint"
1561
+ ],
1562
+ "type": "publicKey"
1563
+ },
1564
+ {
1565
+ "name": "padding2",
1566
+ "type": {
1567
+ "array": [
1568
+ "u64",
1569
+ 51
1570
+ ]
1571
+ }
1572
+ },
1573
+ {
1574
+ "name": "padding3",
1575
+ "type": {
1576
+ "array": [
1577
+ "u128",
1578
+ 32
1579
+ ]
1580
+ }
1581
+ }
1582
+ ]
1583
+ }
1584
+ },
1585
+ {
1586
+ "name": "WithdrawalCaps",
1587
+ "docs": [
1588
+ "Reserve Withdrawal Caps State"
1589
+ ],
1590
+ "type": {
1591
+ "kind": "struct",
1592
+ "fields": [
1593
+ {
1594
+ "name": "configCapacity",
1595
+ "type": "i64"
1596
+ },
1597
+ {
1598
+ "name": "currentTotal",
1599
+ "type": "i64"
1600
+ },
1601
+ {
1602
+ "name": "lastIntervalStartTimestamp",
1603
+ "type": "u64"
1604
+ },
1605
+ {
1606
+ "name": "configIntervalLengthSeconds",
1607
+ "type": "u64"
1608
+ }
1609
+ ]
1610
+ }
1611
+ },
1612
+ {
1613
+ "name": "PriceHeuristic",
1614
+ "type": {
1615
+ "kind": "struct",
1616
+ "fields": [
1617
+ {
1618
+ "name": "lower",
1619
+ "docs": [
1620
+ "Lower value of acceptable price"
1621
+ ],
1622
+ "type": "u64"
1623
+ },
1624
+ {
1625
+ "name": "upper",
1626
+ "docs": [
1627
+ "Upper value of acceptable price"
1628
+ ],
1629
+ "type": "u64"
1630
+ },
1631
+ {
1632
+ "name": "exp",
1633
+ "docs": [
1634
+ "Number of decimals of the previously defined values"
1635
+ ],
1636
+ "type": "u64"
1637
+ }
1638
+ ]
1639
+ }
1640
+ },
1641
+ {
1642
+ "name": "PythConfiguration",
1643
+ "type": {
1644
+ "kind": "struct",
1645
+ "fields": [
1646
+ {
1647
+ "name": "price",
1648
+ "docs": [
1649
+ "Pubkey of the base price feed (disabled if `null` or `default`)"
1650
+ ],
1651
+ "type": "publicKey"
1652
+ }
1653
+ ]
1654
+ }
1655
+ },
1656
+ {
1657
+ "name": "ScopeConfiguration",
1658
+ "type": {
1659
+ "kind": "struct",
1660
+ "fields": [
1661
+ {
1662
+ "name": "priceFeed",
1663
+ "docs": [
1664
+ "Pubkey of the scope price feed (disabled if `null` or `default`)"
1665
+ ],
1666
+ "type": "publicKey"
1667
+ },
1668
+ {
1669
+ "name": "priceChain",
1670
+ "docs": [
1671
+ "This is the scope_id price chain that results in a price for the token"
1672
+ ],
1673
+ "type": {
1674
+ "array": [
1675
+ "u16",
1676
+ 4
1677
+ ]
1678
+ }
1679
+ },
1680
+ {
1681
+ "name": "twapChain",
1682
+ "docs": [
1683
+ "This is the scope_id price chain for the twap"
1684
+ ],
1685
+ "type": {
1686
+ "array": [
1687
+ "u16",
1688
+ 4
1689
+ ]
1690
+ }
1691
+ }
1692
+ ]
1693
+ }
1694
+ },
1695
+ {
1696
+ "name": "SwitchboardConfiguration",
1697
+ "type": {
1698
+ "kind": "struct",
1699
+ "fields": [
1700
+ {
1701
+ "name": "priceAggregator",
1702
+ "docs": [
1703
+ "Pubkey of the base price feed (disabled if `null` or `default`)"
1704
+ ],
1705
+ "type": "publicKey"
1706
+ },
1707
+ {
1708
+ "name": "twapAggregator",
1709
+ "type": "publicKey"
1710
+ }
1711
+ ]
1712
+ }
1713
+ },
1714
+ {
1715
+ "name": "TokenInfo",
1716
+ "type": {
1717
+ "kind": "struct",
1718
+ "fields": [
1719
+ {
1720
+ "name": "name",
1721
+ "docs": [
1722
+ "UTF-8 encoded name of the token (null-terminated)"
1723
+ ],
1724
+ "type": {
1725
+ "array": [
1726
+ "u8",
1727
+ 32
1728
+ ]
1729
+ }
1730
+ },
1731
+ {
1732
+ "name": "heuristic",
1733
+ "docs": [
1734
+ "Heuristics limits of acceptable price"
1735
+ ],
1736
+ "type": {
1737
+ "defined": "PriceHeuristic"
1738
+ }
1739
+ },
1740
+ {
1741
+ "name": "maxTwapDivergenceBps",
1742
+ "docs": [
1743
+ "Max divergence between twap and price in bps"
1744
+ ],
1745
+ "type": "u64"
1746
+ },
1747
+ {
1748
+ "name": "maxAgePriceSeconds",
1749
+ "type": "u64"
1750
+ },
1751
+ {
1752
+ "name": "maxAgeTwapSeconds",
1753
+ "type": "u64"
1754
+ },
1755
+ {
1756
+ "name": "scopeConfiguration",
1757
+ "docs": [
1758
+ "Scope price configuration"
1759
+ ],
1760
+ "type": {
1761
+ "defined": "ScopeConfiguration"
1762
+ }
1763
+ },
1764
+ {
1765
+ "name": "switchboardConfiguration",
1766
+ "docs": [
1767
+ "Switchboard configuration"
1768
+ ],
1769
+ "type": {
1770
+ "defined": "SwitchboardConfiguration"
1771
+ }
1772
+ },
1773
+ {
1774
+ "name": "pythConfiguration",
1775
+ "docs": [
1776
+ "Pyth configuration"
1777
+ ],
1778
+ "type": {
1779
+ "defined": "PythConfiguration"
1780
+ }
1781
+ },
1782
+ {
1783
+ "name": "blockPriceUsage",
1784
+ "type": "u8"
1785
+ },
1786
+ {
1787
+ "name": "reserved",
1788
+ "type": {
1789
+ "array": [
1790
+ "u8",
1791
+ 7
1792
+ ]
1793
+ }
1794
+ },
1795
+ {
1796
+ "name": "padding",
1797
+ "type": {
1798
+ "array": [
1799
+ "u64",
1800
+ 19
1801
+ ]
1802
+ }
1803
+ }
1804
+ ]
1805
+ }
1806
+ },
1807
+ {
1808
+ "name": "BorrowRateCurve",
1809
+ "type": {
1810
+ "kind": "struct",
1811
+ "fields": [
1812
+ {
1813
+ "name": "points",
1814
+ "type": {
1815
+ "array": [
1816
+ {
1817
+ "defined": "CurvePoint"
1818
+ },
1819
+ 11
1820
+ ]
1821
+ }
1822
+ }
1823
+ ]
1824
+ }
1825
+ },
1826
+ {
1827
+ "name": "CurvePoint",
1828
+ "type": {
1829
+ "kind": "struct",
1830
+ "fields": [
1831
+ {
1832
+ "name": "utilizationRateBps",
1833
+ "type": "u32"
1834
+ },
1835
+ {
1836
+ "name": "borrowRateBps",
1837
+ "type": "u32"
1838
+ }
1839
+ ]
1840
+ }
1841
+ },
1842
+ {
1843
+ "name": "VaultConfigField",
1844
+ "type": {
1845
+ "kind": "enum",
1846
+ "variants": [
1847
+ {
1848
+ "name": "PerformanceFeeBps"
1849
+ },
1850
+ {
1851
+ "name": "ManagementFeeBps"
1852
+ },
1853
+ {
1854
+ "name": "MinDepositAmount"
1855
+ },
1856
+ {
1857
+ "name": "MinWithdrawAmount"
1858
+ },
1859
+ {
1860
+ "name": "MinInvestAmount"
1861
+ },
1862
+ {
1863
+ "name": "MinInvestDelaySlots"
1864
+ },
1865
+ {
1866
+ "name": "CrankFundFeePerReserve"
1867
+ },
1868
+ {
1869
+ "name": "PendingVaultAdmin"
1870
+ },
1871
+ {
1872
+ "name": "Name"
1873
+ },
1874
+ {
1875
+ "name": "LookupTable"
1876
+ },
1877
+ {
1878
+ "name": "Farm"
1879
+ }
1880
+ ]
1881
+ }
1882
+ },
1883
+ {
1884
+ "name": "VaultAllocation",
1885
+ "type": {
1886
+ "kind": "struct",
1887
+ "fields": [
1888
+ {
1889
+ "name": "reserve",
1890
+ "type": "publicKey"
1891
+ },
1892
+ {
1893
+ "name": "ctokenVault",
1894
+ "type": "publicKey"
1895
+ },
1896
+ {
1897
+ "name": "targetAllocationWeight",
1898
+ "type": "u64"
1899
+ },
1900
+ {
1901
+ "name": "tokenAllocationCap",
1902
+ "docs": [
1903
+ "Maximum token invested in this reserve"
1904
+ ],
1905
+ "type": "u64"
1906
+ },
1907
+ {
1908
+ "name": "ctokenVaultBump",
1909
+ "type": "u64"
1910
+ },
1911
+ {
1912
+ "name": "configPadding",
1913
+ "type": {
1914
+ "array": [
1915
+ "u64",
1916
+ 127
1917
+ ]
1918
+ }
1919
+ },
1920
+ {
1921
+ "name": "ctokenAllocation",
1922
+ "type": "u64"
1923
+ },
1924
+ {
1925
+ "name": "lastInvestSlot",
1926
+ "type": "u64"
1927
+ },
1928
+ {
1929
+ "name": "tokenTargetAllocationSf",
1930
+ "type": "u128"
1931
+ },
1932
+ {
1933
+ "name": "statePadding",
1934
+ "type": {
1935
+ "array": [
1936
+ "u64",
1937
+ 128
1938
+ ]
1939
+ }
1940
+ }
1941
+ ]
1942
+ }
1943
+ }
1944
+ ],
1945
+ "errors": [
1946
+ {
1947
+ "code": 7000,
1948
+ "name": "DepositAmountsZero",
1949
+ "msg": "DepositAmountsZero"
1950
+ },
1951
+ {
1952
+ "code": 7001,
1953
+ "name": "SharesIssuedAmountDoesNotMatch",
1954
+ "msg": "SharesIssuedAmountDoesNotMatch"
1955
+ },
1956
+ {
1957
+ "code": 7002,
1958
+ "name": "MathOverflow",
1959
+ "msg": "MathOverflow"
1960
+ },
1961
+ {
1962
+ "code": 7003,
1963
+ "name": "IntegerOverflow",
1964
+ "msg": "IntegerOverflow"
1965
+ },
1966
+ {
1967
+ "code": 7004,
1968
+ "name": "WithdrawAmountBelowMinimum",
1969
+ "msg": "Withdrawn amount is below minimum"
1970
+ },
1971
+ {
1972
+ "code": 7005,
1973
+ "name": "TooMuchLiquidityToWithdraw",
1974
+ "msg": "TooMuchLiquidityToWithdraw"
1975
+ },
1976
+ {
1977
+ "code": 7006,
1978
+ "name": "ReserveAlreadyExists",
1979
+ "msg": "ReserveAlreadyExists"
1980
+ },
1981
+ {
1982
+ "code": 7007,
1983
+ "name": "ReserveNotPartOfAllocations",
1984
+ "msg": "ReserveNotPartOfAllocations"
1985
+ },
1986
+ {
1987
+ "code": 7008,
1988
+ "name": "CouldNotDeserializeAccountAsReserve",
1989
+ "msg": "CouldNotDeserializeAccountAsReserve"
1990
+ },
1991
+ {
1992
+ "code": 7009,
1993
+ "name": "ReserveNotProvidedInTheAccounts",
1994
+ "msg": "ReserveNotProvidedInTheAccounts"
1995
+ },
1996
+ {
1997
+ "code": 7010,
1998
+ "name": "ReserveAccountAndKeyMismatch",
1999
+ "msg": "ReserveAccountAndKeyMismatch"
2000
+ },
2001
+ {
2002
+ "code": 7011,
2003
+ "name": "OutOfRangeOfReserveIndex",
2004
+ "msg": "OutOfRangeOfReserveIndex"
2005
+ },
2006
+ {
2007
+ "code": 7012,
2008
+ "name": "CannotFindReserveInAllocations",
2009
+ "msg": "OutOfRangeOfReserveIndex"
2010
+ },
2011
+ {
2012
+ "code": 7013,
2013
+ "name": "InvestAmountBelowMinimum",
2014
+ "msg": "Invested amount is below minimum"
2015
+ },
2016
+ {
2017
+ "code": 7014,
2018
+ "name": "AdminAuthorityIncorrect",
2019
+ "msg": "AdminAuthorityIncorrect"
2020
+ },
2021
+ {
2022
+ "code": 7015,
2023
+ "name": "BaseVaultAuthorityIncorrect",
2024
+ "msg": "BaseVaultAuthorityIncorrect"
2025
+ },
2026
+ {
2027
+ "code": 7016,
2028
+ "name": "BaseVaultAuthorityBumpIncorrect",
2029
+ "msg": "BaseVaultAuthorityBumpIncorrect"
2030
+ },
2031
+ {
2032
+ "code": 7017,
2033
+ "name": "TokenMintIncorrect",
2034
+ "msg": "TokenMintIncorrect"
2035
+ },
2036
+ {
2037
+ "code": 7018,
2038
+ "name": "TokenMintDecimalsIncorrect",
2039
+ "msg": "TokenMintDecimalsIncorrect"
2040
+ },
2041
+ {
2042
+ "code": 7019,
2043
+ "name": "TokenVaultIncorrect",
2044
+ "msg": "TokenVaultIncorrect"
2045
+ },
2046
+ {
2047
+ "code": 7020,
2048
+ "name": "SharesMintDecimalsIncorrect",
2049
+ "msg": "SharesMintDecimalsIncorrect"
2050
+ },
2051
+ {
2052
+ "code": 7021,
2053
+ "name": "SharesMintIncorrect",
2054
+ "msg": "SharesMintIncorrect"
2055
+ },
2056
+ {
2057
+ "code": 7022,
2058
+ "name": "InitialAccountingIncorrect",
2059
+ "msg": "InitialAccountingIncorrect"
2060
+ },
2061
+ {
2062
+ "code": 7023,
2063
+ "name": "ReserveIsStale",
2064
+ "msg": "Reserve is stale and must be refreshed before any operation"
2065
+ },
2066
+ {
2067
+ "code": 7024,
2068
+ "name": "NotEnoughLiquidityDisinvestedToSendToUser",
2069
+ "msg": "Not enough liquidity disinvested to send to user"
2070
+ },
2071
+ {
2072
+ "code": 7025,
2073
+ "name": "BPSValueTooBig",
2074
+ "msg": "BPS value is greater than 10000"
2075
+ },
2076
+ {
2077
+ "code": 7026,
2078
+ "name": "DepositAmountBelowMinimum",
2079
+ "msg": "Deposited amount is below minimum"
2080
+ },
2081
+ {
2082
+ "code": 7027,
2083
+ "name": "ReserveSpaceExhausted",
2084
+ "msg": "Vault have no space for new reserves"
2085
+ },
2086
+ {
2087
+ "code": 7028,
2088
+ "name": "CannotWithdrawFromEmptyVault",
2089
+ "msg": "Cannot withdraw from empty vault"
2090
+ },
2091
+ {
2092
+ "code": 7029,
2093
+ "name": "TokensDepositedAmountDoesNotMatch",
2094
+ "msg": "TokensDepositedAmountDoesNotMatch"
2095
+ },
2096
+ {
2097
+ "code": 7030,
2098
+ "name": "AmountToWithdrawDoesNotMatch",
2099
+ "msg": "Amount to withdraw does not match"
2100
+ },
2101
+ {
2102
+ "code": 7031,
2103
+ "name": "LiquidityToWithdrawDoesNotMatch",
2104
+ "msg": "Liquidity to withdraw does not match"
2105
+ },
2106
+ {
2107
+ "code": 7032,
2108
+ "name": "UserReceivedAmountDoesNotMatch",
2109
+ "msg": "User received amount does not match"
2110
+ },
2111
+ {
2112
+ "code": 7033,
2113
+ "name": "SharesBurnedAmountDoesNotMatch",
2114
+ "msg": "Shares burned amount does not match"
2115
+ },
2116
+ {
2117
+ "code": 7034,
2118
+ "name": "DisinvestedLiquidityAmountDoesNotMatch",
2119
+ "msg": "Disinvested liquidity amount does not match"
2120
+ },
2121
+ {
2122
+ "code": 7035,
2123
+ "name": "SharesMintedAmountDoesNotMatch",
2124
+ "msg": "SharesMintedAmountDoesNotMatch"
2125
+ },
2126
+ {
2127
+ "code": 7036,
2128
+ "name": "AUMDecreasedAfterInvest",
2129
+ "msg": "AUM decreased after invest"
2130
+ },
2131
+ {
2132
+ "code": 7037,
2133
+ "name": "AUMBelowPendingFees",
2134
+ "msg": "AUM is below pending fees"
2135
+ },
2136
+ {
2137
+ "code": 7038,
2138
+ "name": "DepositAmountsZeroShares",
2139
+ "msg": "Deposit amount results in 0 shares"
2140
+ },
2141
+ {
2142
+ "code": 7039,
2143
+ "name": "WithdrawResultsInZeroShares",
2144
+ "msg": "Withdraw amount results in 0 shares"
2145
+ },
2146
+ {
2147
+ "code": 7040,
2148
+ "name": "CannotWithdrawZeroShares",
2149
+ "msg": "Cannot withdraw zero shares"
2150
+ },
2151
+ {
2152
+ "code": 7041,
2153
+ "name": "ManagementFeeGreaterThanMaxAllowed",
2154
+ "msg": "Management fee is greater than maximum allowed"
2155
+ }
2156
+ ]
2157
+ }