@jup-ag/lend 0.2.0-beta.2 → 0.2.0-beta.4

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,2330 @@
1
+ import { Program } from '@coral-xyz/anchor';
2
+ import { PublicKey } from '@solana/web3.js';
3
+ import { getAssociatedTokenAddress, getAccount, createAssociatedTokenAccountInstruction } from '@solana/spl-token';
4
+ import { BN } from 'bn.js';
5
+
6
+ const address = "jup3YeL8QhtSx1e253b2FDvsMNC87fDrgQZivbrndc9";
7
+ const metadata = {
8
+ name: "lending",
9
+ version: "0.1.4",
10
+ spec: "0.1.0",
11
+ description: "Created with Anchor"
12
+ };
13
+ const instructions = [
14
+ {
15
+ name: "deposit",
16
+ discriminator: [
17
+ 242,
18
+ 35,
19
+ 198,
20
+ 137,
21
+ 82,
22
+ 225,
23
+ 242,
24
+ 182
25
+ ],
26
+ accounts: [
27
+ {
28
+ name: "signer",
29
+ writable: true,
30
+ signer: true
31
+ },
32
+ {
33
+ name: "depositor_token_account",
34
+ writable: true
35
+ },
36
+ {
37
+ name: "recipient_token_account",
38
+ writable: true
39
+ },
40
+ {
41
+ name: "mint",
42
+ relations: [
43
+ "lending",
44
+ "rewards_rate_model"
45
+ ]
46
+ },
47
+ {
48
+ name: "lending_admin"
49
+ },
50
+ {
51
+ name: "lending",
52
+ writable: true
53
+ },
54
+ {
55
+ name: "f_token_mint",
56
+ writable: true,
57
+ relations: [
58
+ "lending"
59
+ ]
60
+ },
61
+ {
62
+ name: "supply_token_reserves_liquidity",
63
+ writable: true
64
+ },
65
+ {
66
+ name: "lending_supply_position_on_liquidity",
67
+ writable: true
68
+ },
69
+ {
70
+ name: "rate_model"
71
+ },
72
+ {
73
+ name: "vault",
74
+ writable: true
75
+ },
76
+ {
77
+ name: "liquidity",
78
+ writable: true
79
+ },
80
+ {
81
+ name: "liquidity_program",
82
+ relations: [
83
+ "lending_admin"
84
+ ]
85
+ },
86
+ {
87
+ name: "rewards_rate_model"
88
+ },
89
+ {
90
+ name: "token_program"
91
+ },
92
+ {
93
+ name: "associated_token_program",
94
+ optional: true,
95
+ address: "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"
96
+ },
97
+ {
98
+ name: "system_program",
99
+ address: "11111111111111111111111111111111"
100
+ }
101
+ ],
102
+ args: [
103
+ {
104
+ name: "assets",
105
+ type: "u64"
106
+ }
107
+ ],
108
+ returns: "u64"
109
+ },
110
+ {
111
+ name: "deposit_with_min_amount_out",
112
+ discriminator: [
113
+ 116,
114
+ 144,
115
+ 16,
116
+ 97,
117
+ 118,
118
+ 109,
119
+ 40,
120
+ 119
121
+ ],
122
+ accounts: [
123
+ {
124
+ name: "signer",
125
+ writable: true,
126
+ signer: true
127
+ },
128
+ {
129
+ name: "depositor_token_account",
130
+ writable: true
131
+ },
132
+ {
133
+ name: "recipient_token_account",
134
+ writable: true
135
+ },
136
+ {
137
+ name: "mint",
138
+ relations: [
139
+ "lending",
140
+ "rewards_rate_model"
141
+ ]
142
+ },
143
+ {
144
+ name: "lending_admin"
145
+ },
146
+ {
147
+ name: "lending",
148
+ writable: true
149
+ },
150
+ {
151
+ name: "f_token_mint",
152
+ writable: true,
153
+ relations: [
154
+ "lending"
155
+ ]
156
+ },
157
+ {
158
+ name: "supply_token_reserves_liquidity",
159
+ writable: true
160
+ },
161
+ {
162
+ name: "lending_supply_position_on_liquidity",
163
+ writable: true
164
+ },
165
+ {
166
+ name: "rate_model"
167
+ },
168
+ {
169
+ name: "vault",
170
+ writable: true
171
+ },
172
+ {
173
+ name: "liquidity",
174
+ writable: true
175
+ },
176
+ {
177
+ name: "liquidity_program",
178
+ relations: [
179
+ "lending_admin"
180
+ ]
181
+ },
182
+ {
183
+ name: "rewards_rate_model"
184
+ },
185
+ {
186
+ name: "token_program"
187
+ },
188
+ {
189
+ name: "associated_token_program",
190
+ optional: true,
191
+ address: "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"
192
+ },
193
+ {
194
+ name: "system_program",
195
+ address: "11111111111111111111111111111111"
196
+ }
197
+ ],
198
+ args: [
199
+ {
200
+ name: "assets",
201
+ type: "u64"
202
+ },
203
+ {
204
+ name: "min_amount_out",
205
+ type: "u64"
206
+ }
207
+ ]
208
+ },
209
+ {
210
+ name: "init_lending",
211
+ discriminator: [
212
+ 156,
213
+ 224,
214
+ 67,
215
+ 46,
216
+ 89,
217
+ 189,
218
+ 157,
219
+ 209
220
+ ],
221
+ accounts: [
222
+ {
223
+ name: "signer",
224
+ writable: true,
225
+ signer: true
226
+ },
227
+ {
228
+ name: "lending_admin",
229
+ writable: true
230
+ },
231
+ {
232
+ name: "mint",
233
+ relations: [
234
+ "token_reserves_liquidity"
235
+ ]
236
+ },
237
+ {
238
+ name: "f_token_mint",
239
+ writable: true,
240
+ pda: {
241
+ seeds: [
242
+ {
243
+ kind: "const",
244
+ value: [
245
+ 102,
246
+ 95,
247
+ 116,
248
+ 111,
249
+ 107,
250
+ 101,
251
+ 110,
252
+ 95,
253
+ 109,
254
+ 105,
255
+ 110,
256
+ 116
257
+ ]
258
+ },
259
+ {
260
+ kind: "account",
261
+ path: "mint"
262
+ }
263
+ ]
264
+ }
265
+ },
266
+ {
267
+ name: "metadata_account",
268
+ writable: true,
269
+ pda: {
270
+ seeds: [
271
+ {
272
+ kind: "const",
273
+ value: [
274
+ 109,
275
+ 101,
276
+ 116,
277
+ 97,
278
+ 100,
279
+ 97,
280
+ 116,
281
+ 97
282
+ ]
283
+ },
284
+ {
285
+ kind: "const",
286
+ value: [
287
+ 11,
288
+ 112,
289
+ 101,
290
+ 177,
291
+ 227,
292
+ 209,
293
+ 124,
294
+ 69,
295
+ 56,
296
+ 157,
297
+ 82,
298
+ 127,
299
+ 107,
300
+ 4,
301
+ 195,
302
+ 205,
303
+ 88,
304
+ 184,
305
+ 108,
306
+ 115,
307
+ 26,
308
+ 160,
309
+ 253,
310
+ 181,
311
+ 73,
312
+ 182,
313
+ 209,
314
+ 188,
315
+ 3,
316
+ 248,
317
+ 41,
318
+ 70
319
+ ]
320
+ },
321
+ {
322
+ kind: "account",
323
+ path: "f_token_mint"
324
+ }
325
+ ],
326
+ program: {
327
+ kind: "const",
328
+ value: [
329
+ 11,
330
+ 112,
331
+ 101,
332
+ 177,
333
+ 227,
334
+ 209,
335
+ 124,
336
+ 69,
337
+ 56,
338
+ 157,
339
+ 82,
340
+ 127,
341
+ 107,
342
+ 4,
343
+ 195,
344
+ 205,
345
+ 88,
346
+ 184,
347
+ 108,
348
+ 115,
349
+ 26,
350
+ 160,
351
+ 253,
352
+ 181,
353
+ 73,
354
+ 182,
355
+ 209,
356
+ 188,
357
+ 3,
358
+ 248,
359
+ 41,
360
+ 70
361
+ ]
362
+ }
363
+ }
364
+ },
365
+ {
366
+ name: "lending",
367
+ writable: true,
368
+ pda: {
369
+ seeds: [
370
+ {
371
+ kind: "const",
372
+ value: [
373
+ 108,
374
+ 101,
375
+ 110,
376
+ 100,
377
+ 105,
378
+ 110,
379
+ 103
380
+ ]
381
+ },
382
+ {
383
+ kind: "account",
384
+ path: "mint"
385
+ },
386
+ {
387
+ kind: "account",
388
+ path: "f_token_mint"
389
+ }
390
+ ]
391
+ }
392
+ },
393
+ {
394
+ name: "token_reserves_liquidity"
395
+ },
396
+ {
397
+ name: "token_program"
398
+ },
399
+ {
400
+ name: "system_program",
401
+ address: "11111111111111111111111111111111"
402
+ },
403
+ {
404
+ name: "sysvar_instruction",
405
+ address: "Sysvar1nstructions1111111111111111111111111"
406
+ },
407
+ {
408
+ name: "metadata_program",
409
+ address: "metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"
410
+ },
411
+ {
412
+ name: "rent",
413
+ address: "SysvarRent111111111111111111111111111111111"
414
+ }
415
+ ],
416
+ args: [
417
+ {
418
+ name: "symbol",
419
+ type: "string"
420
+ },
421
+ {
422
+ name: "liquidity_program",
423
+ type: "pubkey"
424
+ }
425
+ ]
426
+ },
427
+ {
428
+ name: "init_lending_admin",
429
+ discriminator: [
430
+ 203,
431
+ 185,
432
+ 241,
433
+ 165,
434
+ 56,
435
+ 254,
436
+ 33,
437
+ 9
438
+ ],
439
+ accounts: [
440
+ {
441
+ name: "authority",
442
+ writable: true,
443
+ signer: true
444
+ },
445
+ {
446
+ name: "lending_admin",
447
+ writable: true,
448
+ pda: {
449
+ seeds: [
450
+ {
451
+ kind: "const",
452
+ value: [
453
+ 108,
454
+ 101,
455
+ 110,
456
+ 100,
457
+ 105,
458
+ 110,
459
+ 103,
460
+ 95,
461
+ 97,
462
+ 100,
463
+ 109,
464
+ 105,
465
+ 110
466
+ ]
467
+ }
468
+ ]
469
+ }
470
+ },
471
+ {
472
+ name: "system_program",
473
+ address: "11111111111111111111111111111111"
474
+ }
475
+ ],
476
+ args: [
477
+ {
478
+ name: "liquidity_program",
479
+ type: "pubkey"
480
+ },
481
+ {
482
+ name: "rebalancer",
483
+ type: "pubkey"
484
+ },
485
+ {
486
+ name: "authority",
487
+ type: "pubkey"
488
+ }
489
+ ]
490
+ },
491
+ {
492
+ name: "mint",
493
+ discriminator: [
494
+ 51,
495
+ 57,
496
+ 225,
497
+ 47,
498
+ 182,
499
+ 146,
500
+ 137,
501
+ 166
502
+ ],
503
+ accounts: [
504
+ {
505
+ name: "signer",
506
+ writable: true,
507
+ signer: true
508
+ },
509
+ {
510
+ name: "depositor_token_account",
511
+ writable: true
512
+ },
513
+ {
514
+ name: "recipient_token_account",
515
+ writable: true
516
+ },
517
+ {
518
+ name: "mint",
519
+ relations: [
520
+ "lending",
521
+ "rewards_rate_model"
522
+ ]
523
+ },
524
+ {
525
+ name: "lending_admin"
526
+ },
527
+ {
528
+ name: "lending",
529
+ writable: true
530
+ },
531
+ {
532
+ name: "f_token_mint",
533
+ writable: true,
534
+ relations: [
535
+ "lending"
536
+ ]
537
+ },
538
+ {
539
+ name: "supply_token_reserves_liquidity",
540
+ writable: true
541
+ },
542
+ {
543
+ name: "lending_supply_position_on_liquidity",
544
+ writable: true
545
+ },
546
+ {
547
+ name: "rate_model"
548
+ },
549
+ {
550
+ name: "vault",
551
+ writable: true
552
+ },
553
+ {
554
+ name: "liquidity",
555
+ writable: true
556
+ },
557
+ {
558
+ name: "liquidity_program",
559
+ relations: [
560
+ "lending_admin"
561
+ ]
562
+ },
563
+ {
564
+ name: "rewards_rate_model"
565
+ },
566
+ {
567
+ name: "token_program"
568
+ },
569
+ {
570
+ name: "associated_token_program",
571
+ optional: true,
572
+ address: "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"
573
+ },
574
+ {
575
+ name: "system_program",
576
+ address: "11111111111111111111111111111111"
577
+ }
578
+ ],
579
+ args: [
580
+ {
581
+ name: "shares",
582
+ type: "u64"
583
+ }
584
+ ],
585
+ returns: "u64"
586
+ },
587
+ {
588
+ name: "mint_with_max_assets",
589
+ discriminator: [
590
+ 6,
591
+ 94,
592
+ 69,
593
+ 122,
594
+ 30,
595
+ 179,
596
+ 146,
597
+ 171
598
+ ],
599
+ accounts: [
600
+ {
601
+ name: "signer",
602
+ writable: true,
603
+ signer: true
604
+ },
605
+ {
606
+ name: "depositor_token_account",
607
+ writable: true
608
+ },
609
+ {
610
+ name: "recipient_token_account",
611
+ writable: true
612
+ },
613
+ {
614
+ name: "mint",
615
+ relations: [
616
+ "lending",
617
+ "rewards_rate_model"
618
+ ]
619
+ },
620
+ {
621
+ name: "lending_admin"
622
+ },
623
+ {
624
+ name: "lending",
625
+ writable: true
626
+ },
627
+ {
628
+ name: "f_token_mint",
629
+ writable: true,
630
+ relations: [
631
+ "lending"
632
+ ]
633
+ },
634
+ {
635
+ name: "supply_token_reserves_liquidity",
636
+ writable: true
637
+ },
638
+ {
639
+ name: "lending_supply_position_on_liquidity",
640
+ writable: true
641
+ },
642
+ {
643
+ name: "rate_model"
644
+ },
645
+ {
646
+ name: "vault",
647
+ writable: true
648
+ },
649
+ {
650
+ name: "liquidity",
651
+ writable: true
652
+ },
653
+ {
654
+ name: "liquidity_program",
655
+ relations: [
656
+ "lending_admin"
657
+ ]
658
+ },
659
+ {
660
+ name: "rewards_rate_model"
661
+ },
662
+ {
663
+ name: "token_program"
664
+ },
665
+ {
666
+ name: "associated_token_program",
667
+ optional: true,
668
+ address: "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"
669
+ },
670
+ {
671
+ name: "system_program",
672
+ address: "11111111111111111111111111111111"
673
+ }
674
+ ],
675
+ args: [
676
+ {
677
+ name: "shares",
678
+ type: "u64"
679
+ },
680
+ {
681
+ name: "max_assets",
682
+ type: "u64"
683
+ }
684
+ ],
685
+ returns: "u64"
686
+ },
687
+ {
688
+ name: "rebalance",
689
+ discriminator: [
690
+ 108,
691
+ 158,
692
+ 77,
693
+ 9,
694
+ 210,
695
+ 52,
696
+ 88,
697
+ 62
698
+ ],
699
+ accounts: [
700
+ {
701
+ name: "signer",
702
+ writable: true,
703
+ signer: true
704
+ },
705
+ {
706
+ name: "depositor_token_account",
707
+ writable: true,
708
+ pda: {
709
+ seeds: [
710
+ {
711
+ kind: "account",
712
+ path: "signer"
713
+ },
714
+ {
715
+ kind: "account",
716
+ path: "token_program"
717
+ },
718
+ {
719
+ kind: "account",
720
+ path: "mint"
721
+ }
722
+ ],
723
+ program: {
724
+ kind: "const",
725
+ value: [
726
+ 140,
727
+ 151,
728
+ 37,
729
+ 143,
730
+ 78,
731
+ 36,
732
+ 137,
733
+ 241,
734
+ 187,
735
+ 61,
736
+ 16,
737
+ 41,
738
+ 20,
739
+ 142,
740
+ 13,
741
+ 131,
742
+ 11,
743
+ 90,
744
+ 19,
745
+ 153,
746
+ 218,
747
+ 255,
748
+ 16,
749
+ 132,
750
+ 4,
751
+ 142,
752
+ 123,
753
+ 216,
754
+ 219,
755
+ 233,
756
+ 248,
757
+ 89
758
+ ]
759
+ }
760
+ }
761
+ },
762
+ {
763
+ name: "lending_admin"
764
+ },
765
+ {
766
+ name: "lending",
767
+ writable: true
768
+ },
769
+ {
770
+ name: "mint",
771
+ relations: [
772
+ "lending",
773
+ "rewards_rate_model"
774
+ ]
775
+ },
776
+ {
777
+ name: "f_token_mint",
778
+ writable: true,
779
+ relations: [
780
+ "lending"
781
+ ]
782
+ },
783
+ {
784
+ name: "supply_token_reserves_liquidity",
785
+ writable: true
786
+ },
787
+ {
788
+ name: "lending_supply_position_on_liquidity",
789
+ writable: true
790
+ },
791
+ {
792
+ name: "rate_model",
793
+ writable: true
794
+ },
795
+ {
796
+ name: "vault",
797
+ writable: true
798
+ },
799
+ {
800
+ name: "liquidity",
801
+ writable: true
802
+ },
803
+ {
804
+ name: "liquidity_program",
805
+ relations: [
806
+ "lending_admin"
807
+ ]
808
+ },
809
+ {
810
+ name: "rewards_rate_model"
811
+ },
812
+ {
813
+ name: "token_program"
814
+ },
815
+ {
816
+ name: "associated_token_program",
817
+ address: "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"
818
+ },
819
+ {
820
+ name: "system_program",
821
+ address: "11111111111111111111111111111111"
822
+ }
823
+ ],
824
+ args: [
825
+ ]
826
+ },
827
+ {
828
+ name: "rebalance_with_amounts",
829
+ discriminator: [
830
+ 190,
831
+ 33,
832
+ 144,
833
+ 182,
834
+ 86,
835
+ 4,
836
+ 141,
837
+ 73
838
+ ],
839
+ accounts: [
840
+ {
841
+ name: "signer",
842
+ writable: true,
843
+ signer: true
844
+ },
845
+ {
846
+ name: "depositor_token_account",
847
+ writable: true,
848
+ pda: {
849
+ seeds: [
850
+ {
851
+ kind: "account",
852
+ path: "signer"
853
+ },
854
+ {
855
+ kind: "account",
856
+ path: "token_program"
857
+ },
858
+ {
859
+ kind: "account",
860
+ path: "mint"
861
+ }
862
+ ],
863
+ program: {
864
+ kind: "const",
865
+ value: [
866
+ 140,
867
+ 151,
868
+ 37,
869
+ 143,
870
+ 78,
871
+ 36,
872
+ 137,
873
+ 241,
874
+ 187,
875
+ 61,
876
+ 16,
877
+ 41,
878
+ 20,
879
+ 142,
880
+ 13,
881
+ 131,
882
+ 11,
883
+ 90,
884
+ 19,
885
+ 153,
886
+ 218,
887
+ 255,
888
+ 16,
889
+ 132,
890
+ 4,
891
+ 142,
892
+ 123,
893
+ 216,
894
+ 219,
895
+ 233,
896
+ 248,
897
+ 89
898
+ ]
899
+ }
900
+ }
901
+ },
902
+ {
903
+ name: "lending_admin"
904
+ },
905
+ {
906
+ name: "lending",
907
+ writable: true
908
+ },
909
+ {
910
+ name: "mint",
911
+ relations: [
912
+ "lending",
913
+ "rewards_rate_model"
914
+ ]
915
+ },
916
+ {
917
+ name: "f_token_mint",
918
+ writable: true,
919
+ relations: [
920
+ "lending"
921
+ ]
922
+ },
923
+ {
924
+ name: "supply_token_reserves_liquidity",
925
+ writable: true
926
+ },
927
+ {
928
+ name: "lending_supply_position_on_liquidity",
929
+ writable: true
930
+ },
931
+ {
932
+ name: "rate_model",
933
+ writable: true
934
+ },
935
+ {
936
+ name: "vault",
937
+ writable: true
938
+ },
939
+ {
940
+ name: "liquidity",
941
+ writable: true
942
+ },
943
+ {
944
+ name: "liquidity_program",
945
+ relations: [
946
+ "lending_admin"
947
+ ]
948
+ },
949
+ {
950
+ name: "rewards_rate_model"
951
+ },
952
+ {
953
+ name: "token_program"
954
+ },
955
+ {
956
+ name: "associated_token_program",
957
+ address: "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"
958
+ },
959
+ {
960
+ name: "system_program",
961
+ address: "11111111111111111111111111111111"
962
+ }
963
+ ],
964
+ args: [
965
+ {
966
+ name: "amount",
967
+ type: {
968
+ option: "u64"
969
+ }
970
+ }
971
+ ]
972
+ },
973
+ {
974
+ name: "redeem",
975
+ discriminator: [
976
+ 184,
977
+ 12,
978
+ 86,
979
+ 149,
980
+ 70,
981
+ 196,
982
+ 97,
983
+ 225
984
+ ],
985
+ accounts: [
986
+ {
987
+ name: "signer",
988
+ writable: true,
989
+ signer: true
990
+ },
991
+ {
992
+ name: "owner_token_account",
993
+ writable: true
994
+ },
995
+ {
996
+ name: "recipient_token_account",
997
+ writable: true
998
+ },
999
+ {
1000
+ name: "lending_admin"
1001
+ },
1002
+ {
1003
+ name: "lending",
1004
+ writable: true
1005
+ },
1006
+ {
1007
+ name: "mint",
1008
+ relations: [
1009
+ "lending",
1010
+ "rewards_rate_model"
1011
+ ]
1012
+ },
1013
+ {
1014
+ name: "f_token_mint",
1015
+ writable: true,
1016
+ relations: [
1017
+ "lending"
1018
+ ]
1019
+ },
1020
+ {
1021
+ name: "supply_token_reserves_liquidity",
1022
+ writable: true
1023
+ },
1024
+ {
1025
+ name: "lending_supply_position_on_liquidity",
1026
+ writable: true
1027
+ },
1028
+ {
1029
+ name: "rate_model"
1030
+ },
1031
+ {
1032
+ name: "vault",
1033
+ writable: true
1034
+ },
1035
+ {
1036
+ name: "claim_account",
1037
+ writable: true,
1038
+ optional: true
1039
+ },
1040
+ {
1041
+ name: "liquidity",
1042
+ writable: true
1043
+ },
1044
+ {
1045
+ name: "liquidity_program",
1046
+ relations: [
1047
+ "lending_admin"
1048
+ ]
1049
+ },
1050
+ {
1051
+ name: "rewards_rate_model"
1052
+ },
1053
+ {
1054
+ name: "token_program"
1055
+ },
1056
+ {
1057
+ name: "associated_token_program",
1058
+ optional: true,
1059
+ address: "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"
1060
+ },
1061
+ {
1062
+ name: "system_program",
1063
+ address: "11111111111111111111111111111111"
1064
+ }
1065
+ ],
1066
+ args: [
1067
+ {
1068
+ name: "shares",
1069
+ type: "u64"
1070
+ }
1071
+ ],
1072
+ returns: "u64"
1073
+ },
1074
+ {
1075
+ name: "redeem_with_min_amount_out",
1076
+ discriminator: [
1077
+ 235,
1078
+ 189,
1079
+ 237,
1080
+ 56,
1081
+ 166,
1082
+ 180,
1083
+ 184,
1084
+ 149
1085
+ ],
1086
+ accounts: [
1087
+ {
1088
+ name: "signer",
1089
+ writable: true,
1090
+ signer: true
1091
+ },
1092
+ {
1093
+ name: "owner_token_account",
1094
+ writable: true
1095
+ },
1096
+ {
1097
+ name: "recipient_token_account",
1098
+ writable: true
1099
+ },
1100
+ {
1101
+ name: "lending_admin"
1102
+ },
1103
+ {
1104
+ name: "lending",
1105
+ writable: true
1106
+ },
1107
+ {
1108
+ name: "mint",
1109
+ relations: [
1110
+ "lending",
1111
+ "rewards_rate_model"
1112
+ ]
1113
+ },
1114
+ {
1115
+ name: "f_token_mint",
1116
+ writable: true,
1117
+ relations: [
1118
+ "lending"
1119
+ ]
1120
+ },
1121
+ {
1122
+ name: "supply_token_reserves_liquidity",
1123
+ writable: true
1124
+ },
1125
+ {
1126
+ name: "lending_supply_position_on_liquidity",
1127
+ writable: true
1128
+ },
1129
+ {
1130
+ name: "rate_model"
1131
+ },
1132
+ {
1133
+ name: "vault",
1134
+ writable: true
1135
+ },
1136
+ {
1137
+ name: "claim_account",
1138
+ writable: true,
1139
+ optional: true
1140
+ },
1141
+ {
1142
+ name: "liquidity",
1143
+ writable: true
1144
+ },
1145
+ {
1146
+ name: "liquidity_program",
1147
+ relations: [
1148
+ "lending_admin"
1149
+ ]
1150
+ },
1151
+ {
1152
+ name: "rewards_rate_model"
1153
+ },
1154
+ {
1155
+ name: "token_program"
1156
+ },
1157
+ {
1158
+ name: "associated_token_program",
1159
+ optional: true,
1160
+ address: "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"
1161
+ },
1162
+ {
1163
+ name: "system_program",
1164
+ address: "11111111111111111111111111111111"
1165
+ }
1166
+ ],
1167
+ args: [
1168
+ {
1169
+ name: "shares",
1170
+ type: "u64"
1171
+ },
1172
+ {
1173
+ name: "min_amount_out",
1174
+ type: "u64"
1175
+ }
1176
+ ]
1177
+ },
1178
+ {
1179
+ name: "set_rewards_rate_model",
1180
+ discriminator: [
1181
+ 174,
1182
+ 231,
1183
+ 116,
1184
+ 203,
1185
+ 8,
1186
+ 58,
1187
+ 143,
1188
+ 203
1189
+ ],
1190
+ accounts: [
1191
+ {
1192
+ name: "signer",
1193
+ signer: true
1194
+ },
1195
+ {
1196
+ name: "lending_admin"
1197
+ },
1198
+ {
1199
+ name: "lending",
1200
+ writable: true
1201
+ },
1202
+ {
1203
+ name: "f_token_mint",
1204
+ relations: [
1205
+ "lending"
1206
+ ]
1207
+ },
1208
+ {
1209
+ name: "new_rewards_rate_model"
1210
+ },
1211
+ {
1212
+ name: "supply_token_reserves_liquidity"
1213
+ }
1214
+ ],
1215
+ args: [
1216
+ {
1217
+ name: "mint",
1218
+ type: "pubkey"
1219
+ }
1220
+ ]
1221
+ },
1222
+ {
1223
+ name: "update_authority",
1224
+ discriminator: [
1225
+ 32,
1226
+ 46,
1227
+ 64,
1228
+ 28,
1229
+ 149,
1230
+ 75,
1231
+ 243,
1232
+ 88
1233
+ ],
1234
+ accounts: [
1235
+ {
1236
+ name: "signer",
1237
+ signer: true
1238
+ },
1239
+ {
1240
+ name: "lending_admin",
1241
+ writable: true
1242
+ }
1243
+ ],
1244
+ args: [
1245
+ {
1246
+ name: "new_authority",
1247
+ type: "pubkey"
1248
+ }
1249
+ ]
1250
+ },
1251
+ {
1252
+ name: "update_auths",
1253
+ discriminator: [
1254
+ 93,
1255
+ 96,
1256
+ 178,
1257
+ 156,
1258
+ 57,
1259
+ 117,
1260
+ 253,
1261
+ 209
1262
+ ],
1263
+ accounts: [
1264
+ {
1265
+ name: "signer",
1266
+ signer: true
1267
+ },
1268
+ {
1269
+ name: "lending_admin",
1270
+ writable: true
1271
+ }
1272
+ ],
1273
+ args: [
1274
+ {
1275
+ name: "auth_status",
1276
+ type: {
1277
+ vec: {
1278
+ defined: {
1279
+ name: "AddressBool"
1280
+ }
1281
+ }
1282
+ }
1283
+ }
1284
+ ]
1285
+ },
1286
+ {
1287
+ name: "update_rate",
1288
+ discriminator: [
1289
+ 24,
1290
+ 225,
1291
+ 53,
1292
+ 189,
1293
+ 72,
1294
+ 212,
1295
+ 225,
1296
+ 178
1297
+ ],
1298
+ accounts: [
1299
+ {
1300
+ name: "lending",
1301
+ writable: true
1302
+ },
1303
+ {
1304
+ name: "mint",
1305
+ relations: [
1306
+ "lending",
1307
+ "supply_token_reserves_liquidity"
1308
+ ]
1309
+ },
1310
+ {
1311
+ name: "f_token_mint",
1312
+ relations: [
1313
+ "lending"
1314
+ ]
1315
+ },
1316
+ {
1317
+ name: "supply_token_reserves_liquidity"
1318
+ },
1319
+ {
1320
+ name: "rewards_rate_model"
1321
+ }
1322
+ ],
1323
+ args: [
1324
+ ]
1325
+ },
1326
+ {
1327
+ name: "update_rebalancer",
1328
+ discriminator: [
1329
+ 206,
1330
+ 187,
1331
+ 54,
1332
+ 228,
1333
+ 145,
1334
+ 8,
1335
+ 203,
1336
+ 111
1337
+ ],
1338
+ accounts: [
1339
+ {
1340
+ name: "signer",
1341
+ signer: true
1342
+ },
1343
+ {
1344
+ name: "lending_admin",
1345
+ writable: true
1346
+ }
1347
+ ],
1348
+ args: [
1349
+ {
1350
+ name: "new_rebalancer",
1351
+ type: "pubkey"
1352
+ }
1353
+ ]
1354
+ },
1355
+ {
1356
+ name: "withdraw",
1357
+ discriminator: [
1358
+ 183,
1359
+ 18,
1360
+ 70,
1361
+ 156,
1362
+ 148,
1363
+ 109,
1364
+ 161,
1365
+ 34
1366
+ ],
1367
+ accounts: [
1368
+ {
1369
+ name: "signer",
1370
+ writable: true,
1371
+ signer: true
1372
+ },
1373
+ {
1374
+ name: "owner_token_account",
1375
+ writable: true
1376
+ },
1377
+ {
1378
+ name: "recipient_token_account",
1379
+ writable: true
1380
+ },
1381
+ {
1382
+ name: "lending_admin"
1383
+ },
1384
+ {
1385
+ name: "lending",
1386
+ writable: true
1387
+ },
1388
+ {
1389
+ name: "mint",
1390
+ relations: [
1391
+ "lending",
1392
+ "rewards_rate_model"
1393
+ ]
1394
+ },
1395
+ {
1396
+ name: "f_token_mint",
1397
+ writable: true,
1398
+ relations: [
1399
+ "lending"
1400
+ ]
1401
+ },
1402
+ {
1403
+ name: "supply_token_reserves_liquidity",
1404
+ writable: true
1405
+ },
1406
+ {
1407
+ name: "lending_supply_position_on_liquidity",
1408
+ writable: true
1409
+ },
1410
+ {
1411
+ name: "rate_model"
1412
+ },
1413
+ {
1414
+ name: "vault",
1415
+ writable: true
1416
+ },
1417
+ {
1418
+ name: "claim_account",
1419
+ writable: true,
1420
+ optional: true
1421
+ },
1422
+ {
1423
+ name: "liquidity",
1424
+ writable: true
1425
+ },
1426
+ {
1427
+ name: "liquidity_program",
1428
+ relations: [
1429
+ "lending_admin"
1430
+ ]
1431
+ },
1432
+ {
1433
+ name: "rewards_rate_model"
1434
+ },
1435
+ {
1436
+ name: "token_program"
1437
+ },
1438
+ {
1439
+ name: "associated_token_program",
1440
+ optional: true,
1441
+ address: "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"
1442
+ },
1443
+ {
1444
+ name: "system_program",
1445
+ address: "11111111111111111111111111111111"
1446
+ }
1447
+ ],
1448
+ args: [
1449
+ {
1450
+ name: "amount",
1451
+ type: "u64"
1452
+ }
1453
+ ],
1454
+ returns: "u64"
1455
+ },
1456
+ {
1457
+ name: "withdraw_with_max_shares_burn",
1458
+ discriminator: [
1459
+ 47,
1460
+ 197,
1461
+ 183,
1462
+ 171,
1463
+ 239,
1464
+ 18,
1465
+ 245,
1466
+ 171
1467
+ ],
1468
+ accounts: [
1469
+ {
1470
+ name: "signer",
1471
+ writable: true,
1472
+ signer: true
1473
+ },
1474
+ {
1475
+ name: "owner_token_account",
1476
+ writable: true
1477
+ },
1478
+ {
1479
+ name: "recipient_token_account",
1480
+ writable: true
1481
+ },
1482
+ {
1483
+ name: "lending_admin"
1484
+ },
1485
+ {
1486
+ name: "lending",
1487
+ writable: true
1488
+ },
1489
+ {
1490
+ name: "mint",
1491
+ relations: [
1492
+ "lending",
1493
+ "rewards_rate_model"
1494
+ ]
1495
+ },
1496
+ {
1497
+ name: "f_token_mint",
1498
+ writable: true,
1499
+ relations: [
1500
+ "lending"
1501
+ ]
1502
+ },
1503
+ {
1504
+ name: "supply_token_reserves_liquidity",
1505
+ writable: true
1506
+ },
1507
+ {
1508
+ name: "lending_supply_position_on_liquidity",
1509
+ writable: true
1510
+ },
1511
+ {
1512
+ name: "rate_model"
1513
+ },
1514
+ {
1515
+ name: "vault",
1516
+ writable: true
1517
+ },
1518
+ {
1519
+ name: "claim_account",
1520
+ writable: true,
1521
+ optional: true
1522
+ },
1523
+ {
1524
+ name: "liquidity",
1525
+ writable: true
1526
+ },
1527
+ {
1528
+ name: "liquidity_program",
1529
+ relations: [
1530
+ "lending_admin"
1531
+ ]
1532
+ },
1533
+ {
1534
+ name: "rewards_rate_model"
1535
+ },
1536
+ {
1537
+ name: "token_program"
1538
+ },
1539
+ {
1540
+ name: "associated_token_program",
1541
+ optional: true,
1542
+ address: "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"
1543
+ },
1544
+ {
1545
+ name: "system_program",
1546
+ address: "11111111111111111111111111111111"
1547
+ }
1548
+ ],
1549
+ args: [
1550
+ {
1551
+ name: "amount",
1552
+ type: "u64"
1553
+ },
1554
+ {
1555
+ name: "max_shares_burn",
1556
+ type: "u64"
1557
+ }
1558
+ ],
1559
+ returns: "u64"
1560
+ }
1561
+ ];
1562
+ const accounts = [
1563
+ {
1564
+ name: "Lending",
1565
+ discriminator: [
1566
+ 135,
1567
+ 199,
1568
+ 82,
1569
+ 16,
1570
+ 249,
1571
+ 131,
1572
+ 182,
1573
+ 241
1574
+ ]
1575
+ },
1576
+ {
1577
+ name: "LendingAdmin",
1578
+ discriminator: [
1579
+ 42,
1580
+ 8,
1581
+ 33,
1582
+ 220,
1583
+ 163,
1584
+ 40,
1585
+ 210,
1586
+ 5
1587
+ ]
1588
+ },
1589
+ {
1590
+ name: "LendingRewardsRateModel",
1591
+ discriminator: [
1592
+ 166,
1593
+ 72,
1594
+ 71,
1595
+ 131,
1596
+ 172,
1597
+ 74,
1598
+ 166,
1599
+ 181
1600
+ ]
1601
+ },
1602
+ {
1603
+ name: "TokenReserve",
1604
+ discriminator: [
1605
+ 21,
1606
+ 18,
1607
+ 59,
1608
+ 135,
1609
+ 120,
1610
+ 20,
1611
+ 31,
1612
+ 12
1613
+ ]
1614
+ },
1615
+ {
1616
+ name: "UserSupplyPosition",
1617
+ discriminator: [
1618
+ 202,
1619
+ 219,
1620
+ 136,
1621
+ 118,
1622
+ 61,
1623
+ 177,
1624
+ 21,
1625
+ 146
1626
+ ]
1627
+ }
1628
+ ];
1629
+ const events = [
1630
+ {
1631
+ name: "LogDeposit",
1632
+ discriminator: [
1633
+ 176,
1634
+ 243,
1635
+ 1,
1636
+ 56,
1637
+ 142,
1638
+ 206,
1639
+ 1,
1640
+ 106
1641
+ ]
1642
+ },
1643
+ {
1644
+ name: "LogRebalance",
1645
+ discriminator: [
1646
+ 90,
1647
+ 67,
1648
+ 219,
1649
+ 41,
1650
+ 181,
1651
+ 118,
1652
+ 132,
1653
+ 9
1654
+ ]
1655
+ },
1656
+ {
1657
+ name: "LogUpdateAuthority",
1658
+ discriminator: [
1659
+ 150,
1660
+ 152,
1661
+ 157,
1662
+ 143,
1663
+ 6,
1664
+ 135,
1665
+ 193,
1666
+ 101
1667
+ ]
1668
+ },
1669
+ {
1670
+ name: "LogUpdateAuths",
1671
+ discriminator: [
1672
+ 88,
1673
+ 80,
1674
+ 109,
1675
+ 48,
1676
+ 111,
1677
+ 203,
1678
+ 76,
1679
+ 251
1680
+ ]
1681
+ },
1682
+ {
1683
+ name: "LogUpdateRates",
1684
+ discriminator: [
1685
+ 222,
1686
+ 11,
1687
+ 113,
1688
+ 60,
1689
+ 147,
1690
+ 15,
1691
+ 68,
1692
+ 217
1693
+ ]
1694
+ },
1695
+ {
1696
+ name: "LogUpdateRebalancer",
1697
+ discriminator: [
1698
+ 66,
1699
+ 79,
1700
+ 144,
1701
+ 204,
1702
+ 26,
1703
+ 217,
1704
+ 153,
1705
+ 225
1706
+ ]
1707
+ },
1708
+ {
1709
+ name: "LogUpdateRewards",
1710
+ discriminator: [
1711
+ 37,
1712
+ 13,
1713
+ 111,
1714
+ 186,
1715
+ 47,
1716
+ 245,
1717
+ 162,
1718
+ 121
1719
+ ]
1720
+ },
1721
+ {
1722
+ name: "LogWithdraw",
1723
+ discriminator: [
1724
+ 49,
1725
+ 9,
1726
+ 176,
1727
+ 179,
1728
+ 222,
1729
+ 190,
1730
+ 6,
1731
+ 117
1732
+ ]
1733
+ }
1734
+ ];
1735
+ const errors = [
1736
+ {
1737
+ code: 6000,
1738
+ name: "FTokenDepositInsignificant",
1739
+ msg: "F_TOKEN_DEPOSIT_INSIGNIFICANT"
1740
+ },
1741
+ {
1742
+ code: 6001,
1743
+ name: "FTokenMinAmountOut",
1744
+ msg: "F_TOKEN_MIN_AMOUNT_OUT"
1745
+ },
1746
+ {
1747
+ code: 6002,
1748
+ name: "FTokenMaxAmount",
1749
+ msg: "F_TOKEN_MAX_AMOUNT"
1750
+ },
1751
+ {
1752
+ code: 6003,
1753
+ name: "FTokenInvalidParams",
1754
+ msg: "F_TOKEN_INVALID_PARAMS"
1755
+ },
1756
+ {
1757
+ code: 6004,
1758
+ name: "FTokenRewardsRateModelAlreadySet",
1759
+ msg: "F_TOKEN_REWARDS_RATE_MODEL_ALREADY_SET"
1760
+ },
1761
+ {
1762
+ code: 6005,
1763
+ name: "FTokenMaxAuthCountReached",
1764
+ msg: "F_TOKEN_MAX_AUTH_COUNT"
1765
+ },
1766
+ {
1767
+ code: 6006,
1768
+ name: "FTokenLiquidityExchangePriceUnexpected",
1769
+ msg: "F_TOKEN_LIQUIDITY_EXCHANGE_PRICE_UNEXPECTED"
1770
+ },
1771
+ {
1772
+ code: 6007,
1773
+ name: "FTokenCpiToLiquidityFailed",
1774
+ msg: "F_TOKEN_CPI_TO_LIQUIDITY_FAILED"
1775
+ },
1776
+ {
1777
+ code: 6008,
1778
+ name: "FTokenOnlyAuth",
1779
+ msg: "F_TOKEN_ONLY_AUTH"
1780
+ },
1781
+ {
1782
+ code: 6009,
1783
+ name: "FTokenOnlyAuthority",
1784
+ msg: "F_TOKEN_ONLY_AUTHORITY"
1785
+ },
1786
+ {
1787
+ code: 6010,
1788
+ name: "FTokenOnlyRebalancer",
1789
+ msg: "F_TOKEN_ONLY_REBALANCER"
1790
+ },
1791
+ {
1792
+ code: 6011,
1793
+ name: "FTokenUserSupplyPositionRequired",
1794
+ msg: "F_TOKEN_USER_SUPPLY_POSITION_REQUIRED"
1795
+ },
1796
+ {
1797
+ code: 6012,
1798
+ name: "FTokenLiquidityProgramMismatch",
1799
+ msg: "F_TOKEN_LIQUIDITY_PROGRAM_MISMATCH"
1800
+ }
1801
+ ];
1802
+ const types = [
1803
+ {
1804
+ name: "AddressBool",
1805
+ type: {
1806
+ kind: "struct",
1807
+ fields: [
1808
+ {
1809
+ name: "addr",
1810
+ type: "pubkey"
1811
+ },
1812
+ {
1813
+ name: "value",
1814
+ type: "bool"
1815
+ }
1816
+ ]
1817
+ }
1818
+ },
1819
+ {
1820
+ name: "Lending",
1821
+ type: {
1822
+ kind: "struct",
1823
+ fields: [
1824
+ {
1825
+ name: "mint",
1826
+ type: "pubkey"
1827
+ },
1828
+ {
1829
+ name: "f_token_mint",
1830
+ type: "pubkey"
1831
+ },
1832
+ {
1833
+ name: "lending_id",
1834
+ type: "u16"
1835
+ },
1836
+ {
1837
+ name: "decimals",
1838
+ docs: [
1839
+ "@dev number of decimals for the fToken, same as ASSET"
1840
+ ],
1841
+ type: "u8"
1842
+ },
1843
+ {
1844
+ name: "rewards_rate_model",
1845
+ docs: [
1846
+ "@dev To read PDA of rewards rate model to get_rate instruction"
1847
+ ],
1848
+ type: "pubkey"
1849
+ },
1850
+ {
1851
+ name: "liquidity_exchange_price",
1852
+ docs: [
1853
+ "@dev exchange price for the underlying asset in the liquidity protocol (without rewards)"
1854
+ ],
1855
+ type: "u64"
1856
+ },
1857
+ {
1858
+ name: "token_exchange_price",
1859
+ docs: [
1860
+ "@dev exchange price between fToken and the underlying asset (with rewards)"
1861
+ ],
1862
+ type: "u64"
1863
+ },
1864
+ {
1865
+ name: "last_update_timestamp",
1866
+ docs: [
1867
+ "@dev timestamp when exchange prices were updated the last time"
1868
+ ],
1869
+ type: "u64"
1870
+ },
1871
+ {
1872
+ name: "token_reserves_liquidity",
1873
+ type: "pubkey"
1874
+ },
1875
+ {
1876
+ name: "supply_position_on_liquidity",
1877
+ type: "pubkey"
1878
+ },
1879
+ {
1880
+ name: "bump",
1881
+ type: "u8"
1882
+ }
1883
+ ]
1884
+ }
1885
+ },
1886
+ {
1887
+ name: "LendingAdmin",
1888
+ type: {
1889
+ kind: "struct",
1890
+ fields: [
1891
+ {
1892
+ name: "authority",
1893
+ type: "pubkey"
1894
+ },
1895
+ {
1896
+ name: "liquidity_program",
1897
+ type: "pubkey"
1898
+ },
1899
+ {
1900
+ name: "rebalancer",
1901
+ type: "pubkey"
1902
+ },
1903
+ {
1904
+ name: "next_lending_id",
1905
+ type: "u16"
1906
+ },
1907
+ {
1908
+ name: "auths",
1909
+ type: {
1910
+ vec: "pubkey"
1911
+ }
1912
+ },
1913
+ {
1914
+ name: "bump",
1915
+ type: "u8"
1916
+ }
1917
+ ]
1918
+ }
1919
+ },
1920
+ {
1921
+ name: "LendingRewardsRateModel",
1922
+ type: {
1923
+ kind: "struct",
1924
+ fields: [
1925
+ {
1926
+ name: "mint",
1927
+ docs: [
1928
+ "@dev mint address"
1929
+ ],
1930
+ type: "pubkey"
1931
+ },
1932
+ {
1933
+ name: "start_tvl",
1934
+ docs: [
1935
+ "@dev tvl below which rewards rate is 0. If current TVL is below this value, triggering `update_rate()` on the fToken",
1936
+ "might bring the total TVL above this cut-off."
1937
+ ],
1938
+ type: "u64"
1939
+ },
1940
+ {
1941
+ name: "duration",
1942
+ docs: [
1943
+ "@dev for how long current rewards should run"
1944
+ ],
1945
+ type: "u64"
1946
+ },
1947
+ {
1948
+ name: "start_time",
1949
+ docs: [
1950
+ "@dev when current rewards got started"
1951
+ ],
1952
+ type: "u64"
1953
+ },
1954
+ {
1955
+ name: "yearly_reward",
1956
+ docs: [
1957
+ "@dev current annualized reward based on input params (duration, rewardAmount)"
1958
+ ],
1959
+ type: "u64"
1960
+ },
1961
+ {
1962
+ name: "next_duration",
1963
+ docs: [
1964
+ "@dev Duration for the next rewards phase"
1965
+ ],
1966
+ type: "u64"
1967
+ },
1968
+ {
1969
+ name: "next_reward_amount",
1970
+ docs: [
1971
+ "@dev Amount of rewards for the next phase"
1972
+ ],
1973
+ type: "u64"
1974
+ },
1975
+ {
1976
+ name: "bump",
1977
+ type: "u8"
1978
+ }
1979
+ ]
1980
+ }
1981
+ },
1982
+ {
1983
+ name: "LogDeposit",
1984
+ type: {
1985
+ kind: "struct",
1986
+ fields: [
1987
+ {
1988
+ name: "sender",
1989
+ type: "pubkey"
1990
+ },
1991
+ {
1992
+ name: "receiver",
1993
+ type: "pubkey"
1994
+ },
1995
+ {
1996
+ name: "assets",
1997
+ type: "u64"
1998
+ },
1999
+ {
2000
+ name: "shares_minted",
2001
+ type: "u64"
2002
+ }
2003
+ ]
2004
+ }
2005
+ },
2006
+ {
2007
+ name: "LogRebalance",
2008
+ type: {
2009
+ kind: "struct",
2010
+ fields: [
2011
+ {
2012
+ name: "assets",
2013
+ type: "u64"
2014
+ }
2015
+ ]
2016
+ }
2017
+ },
2018
+ {
2019
+ name: "LogUpdateAuthority",
2020
+ type: {
2021
+ kind: "struct",
2022
+ fields: [
2023
+ {
2024
+ name: "new_authority",
2025
+ type: "pubkey"
2026
+ }
2027
+ ]
2028
+ }
2029
+ },
2030
+ {
2031
+ name: "LogUpdateAuths",
2032
+ type: {
2033
+ kind: "struct",
2034
+ fields: [
2035
+ {
2036
+ name: "auth_status",
2037
+ type: {
2038
+ vec: {
2039
+ defined: {
2040
+ name: "AddressBool"
2041
+ }
2042
+ }
2043
+ }
2044
+ }
2045
+ ]
2046
+ }
2047
+ },
2048
+ {
2049
+ name: "LogUpdateRates",
2050
+ type: {
2051
+ kind: "struct",
2052
+ fields: [
2053
+ {
2054
+ name: "token_exchange_price",
2055
+ type: "u64"
2056
+ },
2057
+ {
2058
+ name: "liquidity_exchange_price",
2059
+ type: "u64"
2060
+ }
2061
+ ]
2062
+ }
2063
+ },
2064
+ {
2065
+ name: "LogUpdateRebalancer",
2066
+ type: {
2067
+ kind: "struct",
2068
+ fields: [
2069
+ {
2070
+ name: "new_rebalancer",
2071
+ type: "pubkey"
2072
+ }
2073
+ ]
2074
+ }
2075
+ },
2076
+ {
2077
+ name: "LogUpdateRewards",
2078
+ type: {
2079
+ kind: "struct",
2080
+ fields: [
2081
+ {
2082
+ name: "rewards_rate_model",
2083
+ type: "pubkey"
2084
+ }
2085
+ ]
2086
+ }
2087
+ },
2088
+ {
2089
+ name: "LogWithdraw",
2090
+ type: {
2091
+ kind: "struct",
2092
+ fields: [
2093
+ {
2094
+ name: "sender",
2095
+ type: "pubkey"
2096
+ },
2097
+ {
2098
+ name: "receiver",
2099
+ type: "pubkey"
2100
+ },
2101
+ {
2102
+ name: "owner",
2103
+ type: "pubkey"
2104
+ },
2105
+ {
2106
+ name: "assets",
2107
+ type: "u64"
2108
+ },
2109
+ {
2110
+ name: "shares_burned",
2111
+ type: "u64"
2112
+ }
2113
+ ]
2114
+ }
2115
+ },
2116
+ {
2117
+ name: "TokenReserve",
2118
+ docs: [
2119
+ "Token configuration and exchange prices"
2120
+ ],
2121
+ serialization: "bytemuck",
2122
+ repr: {
2123
+ kind: "c",
2124
+ packed: true
2125
+ },
2126
+ type: {
2127
+ kind: "struct",
2128
+ fields: [
2129
+ {
2130
+ name: "mint",
2131
+ type: "pubkey"
2132
+ },
2133
+ {
2134
+ name: "vault",
2135
+ type: "pubkey"
2136
+ },
2137
+ {
2138
+ name: "borrow_rate",
2139
+ type: "u16"
2140
+ },
2141
+ {
2142
+ name: "fee_on_interest",
2143
+ type: "u16"
2144
+ },
2145
+ {
2146
+ name: "last_utilization",
2147
+ type: "u16"
2148
+ },
2149
+ {
2150
+ name: "last_update_timestamp",
2151
+ type: "u64"
2152
+ },
2153
+ {
2154
+ name: "supply_exchange_price",
2155
+ type: "u64"
2156
+ },
2157
+ {
2158
+ name: "borrow_exchange_price",
2159
+ type: "u64"
2160
+ },
2161
+ {
2162
+ name: "max_utilization",
2163
+ type: "u16"
2164
+ },
2165
+ {
2166
+ name: "total_supply_with_interest",
2167
+ type: "u64"
2168
+ },
2169
+ {
2170
+ name: "total_supply_interest_free",
2171
+ type: "u64"
2172
+ },
2173
+ {
2174
+ name: "total_borrow_with_interest",
2175
+ type: "u64"
2176
+ },
2177
+ {
2178
+ name: "total_borrow_interest_free",
2179
+ type: "u64"
2180
+ },
2181
+ {
2182
+ name: "total_claim_amount",
2183
+ type: "u64"
2184
+ },
2185
+ {
2186
+ name: "interacting_protocol",
2187
+ type: "pubkey"
2188
+ },
2189
+ {
2190
+ name: "interacting_timestamp",
2191
+ type: "u64"
2192
+ },
2193
+ {
2194
+ name: "interacting_balance",
2195
+ type: "u64"
2196
+ }
2197
+ ]
2198
+ }
2199
+ },
2200
+ {
2201
+ name: "UserSupplyPosition",
2202
+ docs: [
2203
+ "User supply position"
2204
+ ],
2205
+ serialization: "bytemuck",
2206
+ repr: {
2207
+ kind: "c",
2208
+ packed: true
2209
+ },
2210
+ type: {
2211
+ kind: "struct",
2212
+ fields: [
2213
+ {
2214
+ name: "protocol",
2215
+ type: "pubkey"
2216
+ },
2217
+ {
2218
+ name: "mint",
2219
+ type: "pubkey"
2220
+ },
2221
+ {
2222
+ name: "with_interest",
2223
+ type: "u8"
2224
+ },
2225
+ {
2226
+ name: "amount",
2227
+ type: "u64"
2228
+ },
2229
+ {
2230
+ name: "withdrawal_limit",
2231
+ type: "u64"
2232
+ },
2233
+ {
2234
+ name: "decay_amount",
2235
+ type: "u64"
2236
+ },
2237
+ {
2238
+ name: "last_update",
2239
+ type: "u64"
2240
+ },
2241
+ {
2242
+ name: "expand_pct",
2243
+ type: "u16"
2244
+ },
2245
+ {
2246
+ name: "expand_duration",
2247
+ type: "u32"
2248
+ },
2249
+ {
2250
+ name: "decay_duration",
2251
+ type: "u32"
2252
+ },
2253
+ {
2254
+ name: "base_withdrawal_limit",
2255
+ type: "u64"
2256
+ },
2257
+ {
2258
+ name: "status",
2259
+ type: "u8"
2260
+ }
2261
+ ]
2262
+ }
2263
+ }
2264
+ ];
2265
+ const lending = {
2266
+ address: address,
2267
+ metadata: metadata,
2268
+ instructions: instructions,
2269
+ accounts: accounts,
2270
+ events: events,
2271
+ errors: errors,
2272
+ types: types
2273
+ };
2274
+
2275
+ const U64_MAX = new BN("18446744073709551615");
2276
+ const MAX_DEPOSIT = U64_MAX;
2277
+ const MAX_WITHDRAW = U64_MAX;
2278
+ const getLendingProgram = ({
2279
+ connection,
2280
+ signer,
2281
+ market
2282
+ }) => {
2283
+ let idl = { ...lending };
2284
+ if (market === "ethena")
2285
+ idl.address = "jup97Zx1NixM8UJMQFw8TtKzqTiRT3ETAJR7cVx3PfQ";
2286
+ return new Program(idl, {
2287
+ connection,
2288
+ publicKey: signer
2289
+ });
2290
+ };
2291
+ const getAccountOwner = async (account, connection) => {
2292
+ const info = await connection.getAccountInfo(account);
2293
+ if (!info)
2294
+ throw new Error(`Account info not found for ${account.toString()}`);
2295
+ return info.owner;
2296
+ };
2297
+ const getOrCreateATAInstruction = async (owner, mint, connection) => {
2298
+ const tokenProgram = await getAccountOwner(mint, connection);
2299
+ const associatedTokenAccount = await getAssociatedTokenAddress(
2300
+ mint,
2301
+ owner,
2302
+ true,
2303
+ // allowOwnerOffCurve - supports PDA owners
2304
+ tokenProgram
2305
+ );
2306
+ const account = await getAccount(
2307
+ connection,
2308
+ associatedTokenAccount,
2309
+ "confirmed",
2310
+ tokenProgram
2311
+ ).catch(() => null);
2312
+ const ixs = [];
2313
+ if (!account) {
2314
+ ixs.push(
2315
+ createAssociatedTokenAccountInstruction(
2316
+ owner,
2317
+ associatedTokenAccount,
2318
+ owner,
2319
+ mint,
2320
+ tokenProgram
2321
+ )
2322
+ );
2323
+ }
2324
+ return ixs;
2325
+ };
2326
+ const getLiquidityProgramId = (market) => {
2327
+ return market === "ethena" ? new PublicKey("jup6QF1sNDGpkkcu6F4qaFHcRBmnSS1VgyB4uFbBvNS") : new PublicKey("jupeiUmn818Jg1ekPURTpr4mFo29p46vygyykFJ3wZC");
2328
+ };
2329
+
2330
+ export { MAX_DEPOSIT as M, U64_MAX as U, getLiquidityProgramId as a, getLendingProgram as b, getOrCreateATAInstruction as c, MAX_WITHDRAW as d, getAccountOwner as g };