@0dotxyz/p0-ts-sdk 2.7.1 → 2.7.2

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.
package/dist/index.js CHANGED
@@ -27718,6 +27718,11 @@ var klendInstructions = {
27718
27718
  };
27719
27719
  var instructions_default2 = klendInstructions;
27720
27720
 
27721
+ // src/vendor/drift/types/drift-spot-market/drift-spot-market.types.ts
27722
+ function isSpotBalanceTypeVariant(value, variant) {
27723
+ return value === variant;
27724
+ }
27725
+
27721
27726
  // src/vendor/drift/idl/drift.json
27722
27727
  var drift_default = {
27723
27728
  address: "dRiftyHA39MWEi3m9aunc5MzRF1JYuBsbn6VPcn33UH",
@@ -42083,6 +42088,34 @@ function deriveDriftSpotMarketVault(marketIndex, programId = DRIFT_PROGRAM_ID) {
42083
42088
  programId
42084
42089
  );
42085
42090
  }
42091
+ var ZERO = new BN9(0);
42092
+ var ONE = new BN9(1);
42093
+ var TEN = new BN9(10);
42094
+ var PERCENTAGE_PRECISION_EXP = new BN9(6);
42095
+ new BN9(10).pow(PERCENTAGE_PRECISION_EXP);
42096
+ var SPOT_MARKET_RATE_PRECISION_EXP = new BN9(6);
42097
+ new BN9(10).pow(SPOT_MARKET_RATE_PRECISION_EXP);
42098
+ var SPOT_MARKET_UTILIZATION_PRECISION_EXP = new BN9(6);
42099
+ new BN9(10).pow(
42100
+ SPOT_MARKET_UTILIZATION_PRECISION_EXP
42101
+ );
42102
+ new BN9(31536e3);
42103
+ function divCeil(a, b) {
42104
+ const quotient = a.div(b);
42105
+ const remainder = a.mod(b);
42106
+ if (remainder.gt(ZERO)) {
42107
+ return quotient.add(ONE);
42108
+ }
42109
+ return quotient;
42110
+ }
42111
+ function getDriftTokenAmount(balanceAmount, spotMarket, balanceType) {
42112
+ const precisionDecrease = TEN.pow(new BN9(19 - spotMarket.decimals));
42113
+ if (isSpotBalanceTypeVariant(balanceType, "deposit")) {
42114
+ return balanceAmount.mul(spotMarket.cumulativeDepositInterest).div(precisionDecrease);
42115
+ } else {
42116
+ return divCeil(balanceAmount.mul(spotMarket.cumulativeBorrowInterest), precisionDecrease);
42117
+ }
42118
+ }
42086
42119
 
42087
42120
  // src/vendor/drift/utils/rewards.utils.ts
42088
42121
  async function getDriftRewards(spotMarkets, userStates, connection) {
@@ -49294,170 +49327,1430 @@ var jup_lend_default = {
49294
49327
  address: "jup3YeL8QhtSx1e253b2FDvsMNC87fDrgQZivbrndc9",
49295
49328
  metadata: {
49296
49329
  name: "lending",
49297
- version: "0.1.0",
49330
+ version: "0.1.4",
49298
49331
  spec: "0.1.0",
49299
49332
  description: "Created with Anchor"
49300
49333
  },
49301
49334
  instructions: [
49302
49335
  {
49303
- name: "deposit",
49304
- discriminator: [242, 35, 198, 137, 82, 225, 242, 182],
49305
- accounts: [
49306
- { name: "signer", writable: true, signer: true },
49307
- { name: "depositor_token_account", writable: true },
49308
- { name: "recipient_token_account", writable: true },
49309
- { name: "mint", relations: ["lending", "rewards_rate_model"] },
49310
- { name: "lending_admin" },
49311
- { name: "lending", writable: true },
49312
- { name: "f_token_mint", writable: true, relations: ["lending"] },
49313
- { name: "supply_token_reserves_liquidity", writable: true },
49314
- { name: "lending_supply_position_on_liquidity", writable: true },
49315
- { name: "rate_model" },
49316
- { name: "vault", writable: true },
49317
- { name: "liquidity", writable: true },
49318
- { name: "liquidity_program", writable: true, relations: ["lending_admin"] },
49319
- { name: "rewards_rate_model" },
49320
- { name: "token_program" },
49321
- { name: "associated_token_program", address: "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL" },
49322
- { name: "system_program", address: "11111111111111111111111111111111" }
49323
- ],
49324
- args: [{ name: "assets", type: "u64" }],
49325
- returns: "u64"
49336
+ name: "deposit",
49337
+ discriminator: [242, 35, 198, 137, 82, 225, 242, 182],
49338
+ accounts: [
49339
+ {
49340
+ name: "signer",
49341
+ writable: true,
49342
+ signer: true
49343
+ },
49344
+ {
49345
+ name: "depositor_token_account",
49346
+ writable: true
49347
+ },
49348
+ {
49349
+ name: "recipient_token_account",
49350
+ writable: true
49351
+ },
49352
+ {
49353
+ name: "mint",
49354
+ relations: ["lending", "rewards_rate_model"]
49355
+ },
49356
+ {
49357
+ name: "lending_admin"
49358
+ },
49359
+ {
49360
+ name: "lending",
49361
+ writable: true
49362
+ },
49363
+ {
49364
+ name: "f_token_mint",
49365
+ writable: true,
49366
+ relations: ["lending"]
49367
+ },
49368
+ {
49369
+ name: "supply_token_reserves_liquidity",
49370
+ writable: true
49371
+ },
49372
+ {
49373
+ name: "lending_supply_position_on_liquidity",
49374
+ writable: true
49375
+ },
49376
+ {
49377
+ name: "rate_model"
49378
+ },
49379
+ {
49380
+ name: "vault",
49381
+ writable: true
49382
+ },
49383
+ {
49384
+ name: "liquidity",
49385
+ writable: true
49386
+ },
49387
+ {
49388
+ name: "liquidity_program",
49389
+ relations: ["lending_admin"]
49390
+ },
49391
+ {
49392
+ name: "rewards_rate_model"
49393
+ },
49394
+ {
49395
+ name: "token_program"
49396
+ },
49397
+ {
49398
+ name: "associated_token_program",
49399
+ optional: true,
49400
+ address: "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"
49401
+ },
49402
+ {
49403
+ name: "system_program",
49404
+ address: "11111111111111111111111111111111"
49405
+ }
49406
+ ],
49407
+ args: [
49408
+ {
49409
+ name: "assets",
49410
+ type: "u64"
49411
+ }
49412
+ ],
49413
+ returns: "u64"
49414
+ },
49415
+ {
49416
+ name: "deposit_with_min_amount_out",
49417
+ discriminator: [116, 144, 16, 97, 118, 109, 40, 119],
49418
+ accounts: [
49419
+ {
49420
+ name: "signer",
49421
+ writable: true,
49422
+ signer: true
49423
+ },
49424
+ {
49425
+ name: "depositor_token_account",
49426
+ writable: true
49427
+ },
49428
+ {
49429
+ name: "recipient_token_account",
49430
+ writable: true
49431
+ },
49432
+ {
49433
+ name: "mint",
49434
+ relations: ["lending", "rewards_rate_model"]
49435
+ },
49436
+ {
49437
+ name: "lending_admin"
49438
+ },
49439
+ {
49440
+ name: "lending",
49441
+ writable: true
49442
+ },
49443
+ {
49444
+ name: "f_token_mint",
49445
+ writable: true,
49446
+ relations: ["lending"]
49447
+ },
49448
+ {
49449
+ name: "supply_token_reserves_liquidity",
49450
+ writable: true
49451
+ },
49452
+ {
49453
+ name: "lending_supply_position_on_liquidity",
49454
+ writable: true
49455
+ },
49456
+ {
49457
+ name: "rate_model"
49458
+ },
49459
+ {
49460
+ name: "vault",
49461
+ writable: true
49462
+ },
49463
+ {
49464
+ name: "liquidity",
49465
+ writable: true
49466
+ },
49467
+ {
49468
+ name: "liquidity_program",
49469
+ relations: ["lending_admin"]
49470
+ },
49471
+ {
49472
+ name: "rewards_rate_model"
49473
+ },
49474
+ {
49475
+ name: "token_program"
49476
+ },
49477
+ {
49478
+ name: "associated_token_program",
49479
+ optional: true,
49480
+ address: "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"
49481
+ },
49482
+ {
49483
+ name: "system_program",
49484
+ address: "11111111111111111111111111111111"
49485
+ }
49486
+ ],
49487
+ args: [
49488
+ {
49489
+ name: "assets",
49490
+ type: "u64"
49491
+ },
49492
+ {
49493
+ name: "min_amount_out",
49494
+ type: "u64"
49495
+ }
49496
+ ]
49497
+ },
49498
+ {
49499
+ name: "init_lending",
49500
+ discriminator: [156, 224, 67, 46, 89, 189, 157, 209],
49501
+ accounts: [
49502
+ {
49503
+ name: "signer",
49504
+ writable: true,
49505
+ signer: true
49506
+ },
49507
+ {
49508
+ name: "lending_admin",
49509
+ writable: true
49510
+ },
49511
+ {
49512
+ name: "mint",
49513
+ relations: ["token_reserves_liquidity"]
49514
+ },
49515
+ {
49516
+ name: "f_token_mint",
49517
+ writable: true,
49518
+ pda: {
49519
+ seeds: [
49520
+ {
49521
+ kind: "const",
49522
+ value: [
49523
+ 102,
49524
+ 95,
49525
+ 116,
49526
+ 111,
49527
+ 107,
49528
+ 101,
49529
+ 110,
49530
+ 95,
49531
+ 109,
49532
+ 105,
49533
+ 110,
49534
+ 116
49535
+ ]
49536
+ },
49537
+ {
49538
+ kind: "account",
49539
+ path: "mint"
49540
+ }
49541
+ ]
49542
+ }
49543
+ },
49544
+ {
49545
+ name: "metadata_account",
49546
+ writable: true,
49547
+ pda: {
49548
+ seeds: [
49549
+ {
49550
+ kind: "const",
49551
+ value: [109, 101, 116, 97, 100, 97, 116, 97]
49552
+ },
49553
+ {
49554
+ kind: "const",
49555
+ value: [
49556
+ 11,
49557
+ 112,
49558
+ 101,
49559
+ 177,
49560
+ 227,
49561
+ 209,
49562
+ 124,
49563
+ 69,
49564
+ 56,
49565
+ 157,
49566
+ 82,
49567
+ 127,
49568
+ 107,
49569
+ 4,
49570
+ 195,
49571
+ 205,
49572
+ 88,
49573
+ 184,
49574
+ 108,
49575
+ 115,
49576
+ 26,
49577
+ 160,
49578
+ 253,
49579
+ 181,
49580
+ 73,
49581
+ 182,
49582
+ 209,
49583
+ 188,
49584
+ 3,
49585
+ 248,
49586
+ 41,
49587
+ 70
49588
+ ]
49589
+ },
49590
+ {
49591
+ kind: "account",
49592
+ path: "f_token_mint"
49593
+ }
49594
+ ],
49595
+ program: {
49596
+ kind: "const",
49597
+ value: [
49598
+ 11,
49599
+ 112,
49600
+ 101,
49601
+ 177,
49602
+ 227,
49603
+ 209,
49604
+ 124,
49605
+ 69,
49606
+ 56,
49607
+ 157,
49608
+ 82,
49609
+ 127,
49610
+ 107,
49611
+ 4,
49612
+ 195,
49613
+ 205,
49614
+ 88,
49615
+ 184,
49616
+ 108,
49617
+ 115,
49618
+ 26,
49619
+ 160,
49620
+ 253,
49621
+ 181,
49622
+ 73,
49623
+ 182,
49624
+ 209,
49625
+ 188,
49626
+ 3,
49627
+ 248,
49628
+ 41,
49629
+ 70
49630
+ ]
49631
+ }
49632
+ }
49633
+ },
49634
+ {
49635
+ name: "lending",
49636
+ writable: true,
49637
+ pda: {
49638
+ seeds: [
49639
+ {
49640
+ kind: "const",
49641
+ value: [108, 101, 110, 100, 105, 110, 103]
49642
+ },
49643
+ {
49644
+ kind: "account",
49645
+ path: "mint"
49646
+ },
49647
+ {
49648
+ kind: "account",
49649
+ path: "f_token_mint"
49650
+ }
49651
+ ]
49652
+ }
49653
+ },
49654
+ {
49655
+ name: "token_reserves_liquidity"
49656
+ },
49657
+ {
49658
+ name: "token_program"
49659
+ },
49660
+ {
49661
+ name: "system_program",
49662
+ address: "11111111111111111111111111111111"
49663
+ },
49664
+ {
49665
+ name: "sysvar_instruction",
49666
+ address: "Sysvar1nstructions1111111111111111111111111"
49667
+ },
49668
+ {
49669
+ name: "metadata_program",
49670
+ address: "metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"
49671
+ },
49672
+ {
49673
+ name: "rent",
49674
+ address: "SysvarRent111111111111111111111111111111111"
49675
+ }
49676
+ ],
49677
+ args: [
49678
+ {
49679
+ name: "symbol",
49680
+ type: "string"
49681
+ },
49682
+ {
49683
+ name: "liquidity_program",
49684
+ type: "pubkey"
49685
+ }
49686
+ ]
49687
+ },
49688
+ {
49689
+ name: "init_lending_admin",
49690
+ discriminator: [203, 185, 241, 165, 56, 254, 33, 9],
49691
+ accounts: [
49692
+ {
49693
+ name: "authority",
49694
+ writable: true,
49695
+ signer: true
49696
+ },
49697
+ {
49698
+ name: "lending_admin",
49699
+ writable: true,
49700
+ pda: {
49701
+ seeds: [
49702
+ {
49703
+ kind: "const",
49704
+ value: [
49705
+ 108,
49706
+ 101,
49707
+ 110,
49708
+ 100,
49709
+ 105,
49710
+ 110,
49711
+ 103,
49712
+ 95,
49713
+ 97,
49714
+ 100,
49715
+ 109,
49716
+ 105,
49717
+ 110
49718
+ ]
49719
+ }
49720
+ ]
49721
+ }
49722
+ },
49723
+ {
49724
+ name: "system_program",
49725
+ address: "11111111111111111111111111111111"
49726
+ }
49727
+ ],
49728
+ args: [
49729
+ {
49730
+ name: "liquidity_program",
49731
+ type: "pubkey"
49732
+ },
49733
+ {
49734
+ name: "rebalancer",
49735
+ type: "pubkey"
49736
+ },
49737
+ {
49738
+ name: "authority",
49739
+ type: "pubkey"
49740
+ }
49741
+ ]
49742
+ },
49743
+ {
49744
+ name: "mint",
49745
+ discriminator: [51, 57, 225, 47, 182, 146, 137, 166],
49746
+ accounts: [
49747
+ {
49748
+ name: "signer",
49749
+ writable: true,
49750
+ signer: true
49751
+ },
49752
+ {
49753
+ name: "depositor_token_account",
49754
+ writable: true
49755
+ },
49756
+ {
49757
+ name: "recipient_token_account",
49758
+ writable: true
49759
+ },
49760
+ {
49761
+ name: "mint",
49762
+ relations: ["lending", "rewards_rate_model"]
49763
+ },
49764
+ {
49765
+ name: "lending_admin"
49766
+ },
49767
+ {
49768
+ name: "lending",
49769
+ writable: true
49770
+ },
49771
+ {
49772
+ name: "f_token_mint",
49773
+ writable: true,
49774
+ relations: ["lending"]
49775
+ },
49776
+ {
49777
+ name: "supply_token_reserves_liquidity",
49778
+ writable: true
49779
+ },
49780
+ {
49781
+ name: "lending_supply_position_on_liquidity",
49782
+ writable: true
49783
+ },
49784
+ {
49785
+ name: "rate_model"
49786
+ },
49787
+ {
49788
+ name: "vault",
49789
+ writable: true
49790
+ },
49791
+ {
49792
+ name: "liquidity",
49793
+ writable: true
49794
+ },
49795
+ {
49796
+ name: "liquidity_program",
49797
+ relations: ["lending_admin"]
49798
+ },
49799
+ {
49800
+ name: "rewards_rate_model"
49801
+ },
49802
+ {
49803
+ name: "token_program"
49804
+ },
49805
+ {
49806
+ name: "associated_token_program",
49807
+ optional: true,
49808
+ address: "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"
49809
+ },
49810
+ {
49811
+ name: "system_program",
49812
+ address: "11111111111111111111111111111111"
49813
+ }
49814
+ ],
49815
+ args: [
49816
+ {
49817
+ name: "shares",
49818
+ type: "u64"
49819
+ }
49820
+ ],
49821
+ returns: "u64"
49822
+ },
49823
+ {
49824
+ name: "mint_with_max_assets",
49825
+ discriminator: [6, 94, 69, 122, 30, 179, 146, 171],
49826
+ accounts: [
49827
+ {
49828
+ name: "signer",
49829
+ writable: true,
49830
+ signer: true
49831
+ },
49832
+ {
49833
+ name: "depositor_token_account",
49834
+ writable: true
49835
+ },
49836
+ {
49837
+ name: "recipient_token_account",
49838
+ writable: true
49839
+ },
49840
+ {
49841
+ name: "mint",
49842
+ relations: ["lending", "rewards_rate_model"]
49843
+ },
49844
+ {
49845
+ name: "lending_admin"
49846
+ },
49847
+ {
49848
+ name: "lending",
49849
+ writable: true
49850
+ },
49851
+ {
49852
+ name: "f_token_mint",
49853
+ writable: true,
49854
+ relations: ["lending"]
49855
+ },
49856
+ {
49857
+ name: "supply_token_reserves_liquidity",
49858
+ writable: true
49859
+ },
49860
+ {
49861
+ name: "lending_supply_position_on_liquidity",
49862
+ writable: true
49863
+ },
49864
+ {
49865
+ name: "rate_model"
49866
+ },
49867
+ {
49868
+ name: "vault",
49869
+ writable: true
49870
+ },
49871
+ {
49872
+ name: "liquidity",
49873
+ writable: true
49874
+ },
49875
+ {
49876
+ name: "liquidity_program",
49877
+ relations: ["lending_admin"]
49878
+ },
49879
+ {
49880
+ name: "rewards_rate_model"
49881
+ },
49882
+ {
49883
+ name: "token_program"
49884
+ },
49885
+ {
49886
+ name: "associated_token_program",
49887
+ optional: true,
49888
+ address: "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"
49889
+ },
49890
+ {
49891
+ name: "system_program",
49892
+ address: "11111111111111111111111111111111"
49893
+ }
49894
+ ],
49895
+ args: [
49896
+ {
49897
+ name: "shares",
49898
+ type: "u64"
49899
+ },
49900
+ {
49901
+ name: "max_assets",
49902
+ type: "u64"
49903
+ }
49904
+ ],
49905
+ returns: "u64"
49906
+ },
49907
+ {
49908
+ name: "rebalance",
49909
+ discriminator: [108, 158, 77, 9, 210, 52, 88, 62],
49910
+ accounts: [
49911
+ {
49912
+ name: "signer",
49913
+ writable: true,
49914
+ signer: true
49915
+ },
49916
+ {
49917
+ name: "depositor_token_account",
49918
+ writable: true,
49919
+ pda: {
49920
+ seeds: [
49921
+ {
49922
+ kind: "account",
49923
+ path: "signer"
49924
+ },
49925
+ {
49926
+ kind: "account",
49927
+ path: "token_program"
49928
+ },
49929
+ {
49930
+ kind: "account",
49931
+ path: "mint"
49932
+ }
49933
+ ],
49934
+ program: {
49935
+ kind: "const",
49936
+ value: [
49937
+ 140,
49938
+ 151,
49939
+ 37,
49940
+ 143,
49941
+ 78,
49942
+ 36,
49943
+ 137,
49944
+ 241,
49945
+ 187,
49946
+ 61,
49947
+ 16,
49948
+ 41,
49949
+ 20,
49950
+ 142,
49951
+ 13,
49952
+ 131,
49953
+ 11,
49954
+ 90,
49955
+ 19,
49956
+ 153,
49957
+ 218,
49958
+ 255,
49959
+ 16,
49960
+ 132,
49961
+ 4,
49962
+ 142,
49963
+ 123,
49964
+ 216,
49965
+ 219,
49966
+ 233,
49967
+ 248,
49968
+ 89
49969
+ ]
49970
+ }
49971
+ }
49972
+ },
49973
+ {
49974
+ name: "lending_admin"
49975
+ },
49976
+ {
49977
+ name: "lending",
49978
+ writable: true
49979
+ },
49980
+ {
49981
+ name: "mint",
49982
+ relations: ["lending", "rewards_rate_model"]
49983
+ },
49984
+ {
49985
+ name: "f_token_mint",
49986
+ writable: true,
49987
+ relations: ["lending"]
49988
+ },
49989
+ {
49990
+ name: "supply_token_reserves_liquidity",
49991
+ writable: true
49992
+ },
49993
+ {
49994
+ name: "lending_supply_position_on_liquidity",
49995
+ writable: true
49996
+ },
49997
+ {
49998
+ name: "rate_model",
49999
+ writable: true
50000
+ },
50001
+ {
50002
+ name: "vault",
50003
+ writable: true
50004
+ },
50005
+ {
50006
+ name: "liquidity",
50007
+ writable: true
50008
+ },
50009
+ {
50010
+ name: "liquidity_program",
50011
+ relations: ["lending_admin"]
50012
+ },
50013
+ {
50014
+ name: "rewards_rate_model"
50015
+ },
50016
+ {
50017
+ name: "token_program"
50018
+ },
50019
+ {
50020
+ name: "associated_token_program",
50021
+ address: "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"
50022
+ },
50023
+ {
50024
+ name: "system_program",
50025
+ address: "11111111111111111111111111111111"
50026
+ }
50027
+ ],
50028
+ args: []
50029
+ },
50030
+ {
50031
+ name: "rebalance_with_amounts",
50032
+ discriminator: [190, 33, 144, 182, 86, 4, 141, 73],
50033
+ accounts: [
50034
+ {
50035
+ name: "signer",
50036
+ writable: true,
50037
+ signer: true
50038
+ },
50039
+ {
50040
+ name: "depositor_token_account",
50041
+ writable: true,
50042
+ pda: {
50043
+ seeds: [
50044
+ {
50045
+ kind: "account",
50046
+ path: "signer"
50047
+ },
50048
+ {
50049
+ kind: "account",
50050
+ path: "token_program"
50051
+ },
50052
+ {
50053
+ kind: "account",
50054
+ path: "mint"
50055
+ }
50056
+ ],
50057
+ program: {
50058
+ kind: "const",
50059
+ value: [
50060
+ 140,
50061
+ 151,
50062
+ 37,
50063
+ 143,
50064
+ 78,
50065
+ 36,
50066
+ 137,
50067
+ 241,
50068
+ 187,
50069
+ 61,
50070
+ 16,
50071
+ 41,
50072
+ 20,
50073
+ 142,
50074
+ 13,
50075
+ 131,
50076
+ 11,
50077
+ 90,
50078
+ 19,
50079
+ 153,
50080
+ 218,
50081
+ 255,
50082
+ 16,
50083
+ 132,
50084
+ 4,
50085
+ 142,
50086
+ 123,
50087
+ 216,
50088
+ 219,
50089
+ 233,
50090
+ 248,
50091
+ 89
50092
+ ]
50093
+ }
50094
+ }
50095
+ },
50096
+ {
50097
+ name: "lending_admin"
50098
+ },
50099
+ {
50100
+ name: "lending",
50101
+ writable: true
50102
+ },
50103
+ {
50104
+ name: "mint",
50105
+ relations: ["lending", "rewards_rate_model"]
50106
+ },
50107
+ {
50108
+ name: "f_token_mint",
50109
+ writable: true,
50110
+ relations: ["lending"]
50111
+ },
50112
+ {
50113
+ name: "supply_token_reserves_liquidity",
50114
+ writable: true
50115
+ },
50116
+ {
50117
+ name: "lending_supply_position_on_liquidity",
50118
+ writable: true
50119
+ },
50120
+ {
50121
+ name: "rate_model",
50122
+ writable: true
50123
+ },
50124
+ {
50125
+ name: "vault",
50126
+ writable: true
50127
+ },
50128
+ {
50129
+ name: "liquidity",
50130
+ writable: true
50131
+ },
50132
+ {
50133
+ name: "liquidity_program",
50134
+ relations: ["lending_admin"]
50135
+ },
50136
+ {
50137
+ name: "rewards_rate_model"
50138
+ },
50139
+ {
50140
+ name: "token_program"
50141
+ },
50142
+ {
50143
+ name: "associated_token_program",
50144
+ address: "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"
50145
+ },
50146
+ {
50147
+ name: "system_program",
50148
+ address: "11111111111111111111111111111111"
50149
+ }
50150
+ ],
50151
+ args: [
50152
+ {
50153
+ name: "amount",
50154
+ type: {
50155
+ option: "u64"
50156
+ }
50157
+ }
50158
+ ]
50159
+ },
50160
+ {
50161
+ name: "redeem",
50162
+ discriminator: [184, 12, 86, 149, 70, 196, 97, 225],
50163
+ accounts: [
50164
+ {
50165
+ name: "signer",
50166
+ writable: true,
50167
+ signer: true
50168
+ },
50169
+ {
50170
+ name: "owner_token_account",
50171
+ writable: true
50172
+ },
50173
+ {
50174
+ name: "recipient_token_account",
50175
+ writable: true
50176
+ },
50177
+ {
50178
+ name: "lending_admin"
50179
+ },
50180
+ {
50181
+ name: "lending",
50182
+ writable: true
50183
+ },
50184
+ {
50185
+ name: "mint",
50186
+ relations: ["lending", "rewards_rate_model"]
50187
+ },
50188
+ {
50189
+ name: "f_token_mint",
50190
+ writable: true,
50191
+ relations: ["lending"]
50192
+ },
50193
+ {
50194
+ name: "supply_token_reserves_liquidity",
50195
+ writable: true
50196
+ },
50197
+ {
50198
+ name: "lending_supply_position_on_liquidity",
50199
+ writable: true
50200
+ },
50201
+ {
50202
+ name: "rate_model"
50203
+ },
50204
+ {
50205
+ name: "vault",
50206
+ writable: true
50207
+ },
50208
+ {
50209
+ name: "claim_account",
50210
+ writable: true,
50211
+ optional: true
50212
+ },
50213
+ {
50214
+ name: "liquidity",
50215
+ writable: true
50216
+ },
50217
+ {
50218
+ name: "liquidity_program",
50219
+ relations: ["lending_admin"]
50220
+ },
50221
+ {
50222
+ name: "rewards_rate_model"
50223
+ },
50224
+ {
50225
+ name: "token_program"
50226
+ },
50227
+ {
50228
+ name: "associated_token_program",
50229
+ optional: true,
50230
+ address: "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"
50231
+ },
50232
+ {
50233
+ name: "system_program",
50234
+ address: "11111111111111111111111111111111"
50235
+ }
50236
+ ],
50237
+ args: [
50238
+ {
50239
+ name: "shares",
50240
+ type: "u64"
50241
+ }
50242
+ ],
50243
+ returns: "u64"
50244
+ },
50245
+ {
50246
+ name: "redeem_with_min_amount_out",
50247
+ discriminator: [235, 189, 237, 56, 166, 180, 184, 149],
50248
+ accounts: [
50249
+ {
50250
+ name: "signer",
50251
+ writable: true,
50252
+ signer: true
50253
+ },
50254
+ {
50255
+ name: "owner_token_account",
50256
+ writable: true
50257
+ },
50258
+ {
50259
+ name: "recipient_token_account",
50260
+ writable: true
50261
+ },
50262
+ {
50263
+ name: "lending_admin"
50264
+ },
50265
+ {
50266
+ name: "lending",
50267
+ writable: true
50268
+ },
50269
+ {
50270
+ name: "mint",
50271
+ relations: ["lending", "rewards_rate_model"]
50272
+ },
50273
+ {
50274
+ name: "f_token_mint",
50275
+ writable: true,
50276
+ relations: ["lending"]
50277
+ },
50278
+ {
50279
+ name: "supply_token_reserves_liquidity",
50280
+ writable: true
50281
+ },
50282
+ {
50283
+ name: "lending_supply_position_on_liquidity",
50284
+ writable: true
50285
+ },
50286
+ {
50287
+ name: "rate_model"
50288
+ },
50289
+ {
50290
+ name: "vault",
50291
+ writable: true
50292
+ },
50293
+ {
50294
+ name: "claim_account",
50295
+ writable: true,
50296
+ optional: true
50297
+ },
50298
+ {
50299
+ name: "liquidity",
50300
+ writable: true
50301
+ },
50302
+ {
50303
+ name: "liquidity_program",
50304
+ relations: ["lending_admin"]
50305
+ },
50306
+ {
50307
+ name: "rewards_rate_model"
50308
+ },
50309
+ {
50310
+ name: "token_program"
50311
+ },
50312
+ {
50313
+ name: "associated_token_program",
50314
+ optional: true,
50315
+ address: "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"
50316
+ },
50317
+ {
50318
+ name: "system_program",
50319
+ address: "11111111111111111111111111111111"
50320
+ }
50321
+ ],
50322
+ args: [
50323
+ {
50324
+ name: "shares",
50325
+ type: "u64"
50326
+ },
50327
+ {
50328
+ name: "min_amount_out",
50329
+ type: "u64"
50330
+ }
50331
+ ]
50332
+ },
50333
+ {
50334
+ name: "set_rewards_rate_model",
50335
+ discriminator: [174, 231, 116, 203, 8, 58, 143, 203],
50336
+ accounts: [
50337
+ {
50338
+ name: "signer",
50339
+ signer: true
50340
+ },
50341
+ {
50342
+ name: "lending_admin"
50343
+ },
50344
+ {
50345
+ name: "lending",
50346
+ writable: true
50347
+ },
50348
+ {
50349
+ name: "f_token_mint",
50350
+ relations: ["lending"]
50351
+ },
50352
+ {
50353
+ name: "new_rewards_rate_model"
50354
+ },
50355
+ {
50356
+ name: "supply_token_reserves_liquidity"
50357
+ }
50358
+ ],
50359
+ args: [
50360
+ {
50361
+ name: "mint",
50362
+ type: "pubkey"
50363
+ }
50364
+ ]
50365
+ },
50366
+ {
50367
+ name: "update_authority",
50368
+ discriminator: [32, 46, 64, 28, 149, 75, 243, 88],
50369
+ accounts: [
50370
+ {
50371
+ name: "signer",
50372
+ signer: true
50373
+ },
50374
+ {
50375
+ name: "lending_admin",
50376
+ writable: true
50377
+ }
50378
+ ],
50379
+ args: [
50380
+ {
50381
+ name: "new_authority",
50382
+ type: "pubkey"
50383
+ }
50384
+ ]
50385
+ },
50386
+ {
50387
+ name: "update_auths",
50388
+ discriminator: [93, 96, 178, 156, 57, 117, 253, 209],
50389
+ accounts: [
50390
+ {
50391
+ name: "signer",
50392
+ signer: true
50393
+ },
50394
+ {
50395
+ name: "lending_admin",
50396
+ writable: true
50397
+ }
50398
+ ],
50399
+ args: [
50400
+ {
50401
+ name: "auth_status",
50402
+ type: {
50403
+ vec: {
50404
+ defined: {
50405
+ name: "AddressBool"
50406
+ }
50407
+ }
50408
+ }
50409
+ }
50410
+ ]
50411
+ },
50412
+ {
50413
+ name: "update_rate",
50414
+ discriminator: [24, 225, 53, 189, 72, 212, 225, 178],
50415
+ accounts: [
50416
+ {
50417
+ name: "lending",
50418
+ writable: true
50419
+ },
50420
+ {
50421
+ name: "mint",
50422
+ relations: ["lending", "supply_token_reserves_liquidity"]
50423
+ },
50424
+ {
50425
+ name: "f_token_mint",
50426
+ relations: ["lending"]
50427
+ },
50428
+ {
50429
+ name: "supply_token_reserves_liquidity"
50430
+ },
50431
+ {
50432
+ name: "rewards_rate_model"
50433
+ }
50434
+ ],
50435
+ args: []
50436
+ },
50437
+ {
50438
+ name: "update_rebalancer",
50439
+ discriminator: [206, 187, 54, 228, 145, 8, 203, 111],
50440
+ accounts: [
50441
+ {
50442
+ name: "signer",
50443
+ signer: true
50444
+ },
50445
+ {
50446
+ name: "lending_admin",
50447
+ writable: true
50448
+ }
50449
+ ],
50450
+ args: [
50451
+ {
50452
+ name: "new_rebalancer",
50453
+ type: "pubkey"
50454
+ }
50455
+ ]
50456
+ },
50457
+ {
50458
+ name: "withdraw",
50459
+ discriminator: [183, 18, 70, 156, 148, 109, 161, 34],
50460
+ accounts: [
50461
+ {
50462
+ name: "signer",
50463
+ writable: true,
50464
+ signer: true
50465
+ },
50466
+ {
50467
+ name: "owner_token_account",
50468
+ writable: true
50469
+ },
50470
+ {
50471
+ name: "recipient_token_account",
50472
+ writable: true
50473
+ },
50474
+ {
50475
+ name: "lending_admin"
50476
+ },
50477
+ {
50478
+ name: "lending",
50479
+ writable: true
50480
+ },
50481
+ {
50482
+ name: "mint",
50483
+ relations: ["lending", "rewards_rate_model"]
50484
+ },
50485
+ {
50486
+ name: "f_token_mint",
50487
+ writable: true,
50488
+ relations: ["lending"]
50489
+ },
50490
+ {
50491
+ name: "supply_token_reserves_liquidity",
50492
+ writable: true
50493
+ },
50494
+ {
50495
+ name: "lending_supply_position_on_liquidity",
50496
+ writable: true
50497
+ },
50498
+ {
50499
+ name: "rate_model"
50500
+ },
50501
+ {
50502
+ name: "vault",
50503
+ writable: true
50504
+ },
50505
+ {
50506
+ name: "claim_account",
50507
+ writable: true,
50508
+ optional: true
50509
+ },
50510
+ {
50511
+ name: "liquidity",
50512
+ writable: true
50513
+ },
50514
+ {
50515
+ name: "liquidity_program",
50516
+ relations: ["lending_admin"]
50517
+ },
50518
+ {
50519
+ name: "rewards_rate_model"
50520
+ },
50521
+ {
50522
+ name: "token_program"
50523
+ },
50524
+ {
50525
+ name: "associated_token_program",
50526
+ optional: true,
50527
+ address: "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"
50528
+ },
50529
+ {
50530
+ name: "system_program",
50531
+ address: "11111111111111111111111111111111"
50532
+ }
50533
+ ],
50534
+ args: [
50535
+ {
50536
+ name: "amount",
50537
+ type: "u64"
50538
+ }
50539
+ ],
50540
+ returns: "u64"
50541
+ },
50542
+ {
50543
+ name: "withdraw_with_max_shares_burn",
50544
+ discriminator: [47, 197, 183, 171, 239, 18, 245, 171],
50545
+ accounts: [
50546
+ {
50547
+ name: "signer",
50548
+ writable: true,
50549
+ signer: true
50550
+ },
50551
+ {
50552
+ name: "owner_token_account",
50553
+ writable: true
50554
+ },
50555
+ {
50556
+ name: "recipient_token_account",
50557
+ writable: true
50558
+ },
50559
+ {
50560
+ name: "lending_admin"
50561
+ },
50562
+ {
50563
+ name: "lending",
50564
+ writable: true
50565
+ },
50566
+ {
50567
+ name: "mint",
50568
+ relations: ["lending", "rewards_rate_model"]
50569
+ },
50570
+ {
50571
+ name: "f_token_mint",
50572
+ writable: true,
50573
+ relations: ["lending"]
50574
+ },
50575
+ {
50576
+ name: "supply_token_reserves_liquidity",
50577
+ writable: true
50578
+ },
50579
+ {
50580
+ name: "lending_supply_position_on_liquidity",
50581
+ writable: true
50582
+ },
50583
+ {
50584
+ name: "rate_model"
50585
+ },
50586
+ {
50587
+ name: "vault",
50588
+ writable: true
50589
+ },
50590
+ {
50591
+ name: "claim_account",
50592
+ writable: true,
50593
+ optional: true
50594
+ },
50595
+ {
50596
+ name: "liquidity",
50597
+ writable: true
50598
+ },
50599
+ {
50600
+ name: "liquidity_program",
50601
+ relations: ["lending_admin"]
50602
+ },
50603
+ {
50604
+ name: "rewards_rate_model"
50605
+ },
50606
+ {
50607
+ name: "token_program"
50608
+ },
50609
+ {
50610
+ name: "associated_token_program",
50611
+ optional: true,
50612
+ address: "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"
50613
+ },
50614
+ {
50615
+ name: "system_program",
50616
+ address: "11111111111111111111111111111111"
50617
+ }
50618
+ ],
50619
+ args: [
50620
+ {
50621
+ name: "amount",
50622
+ type: "u64"
50623
+ },
50624
+ {
50625
+ name: "max_shares_burn",
50626
+ type: "u64"
50627
+ }
50628
+ ],
50629
+ returns: "u64"
50630
+ }
50631
+ ],
50632
+ accounts: [
50633
+ {
50634
+ name: "Lending",
50635
+ discriminator: [135, 199, 82, 16, 249, 131, 182, 241]
50636
+ },
50637
+ {
50638
+ name: "LendingAdmin",
50639
+ discriminator: [42, 8, 33, 220, 163, 40, 210, 5]
49326
50640
  },
49327
50641
  {
49328
- name: "mint",
49329
- discriminator: [51, 57, 225, 47, 182, 146, 137, 166],
49330
- accounts: [
49331
- { name: "signer", writable: true, signer: true },
49332
- { name: "depositor_token_account", writable: true },
49333
- { name: "recipient_token_account", writable: true },
49334
- { name: "mint", relations: ["lending", "rewards_rate_model"] },
49335
- { name: "lending_admin" },
49336
- { name: "lending", writable: true },
49337
- { name: "f_token_mint", writable: true, relations: ["lending"] },
49338
- { name: "supply_token_reserves_liquidity", writable: true },
49339
- { name: "lending_supply_position_on_liquidity", writable: true },
49340
- { name: "rate_model" },
49341
- { name: "vault", writable: true },
49342
- { name: "liquidity", writable: true },
49343
- { name: "liquidity_program", writable: true, relations: ["lending_admin"] },
49344
- { name: "rewards_rate_model" },
49345
- { name: "token_program" },
49346
- { name: "associated_token_program", address: "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL" },
49347
- { name: "system_program", address: "11111111111111111111111111111111" }
49348
- ],
49349
- args: [{ name: "shares", type: "u64" }],
49350
- returns: "u64"
50642
+ name: "LendingRewardsRateModel",
50643
+ discriminator: [166, 72, 71, 131, 172, 74, 166, 181]
49351
50644
  },
49352
50645
  {
49353
- name: "withdraw",
49354
- discriminator: [183, 18, 70, 156, 148, 109, 161, 34],
49355
- accounts: [
49356
- { name: "signer", writable: true, signer: true },
49357
- { name: "owner_token_account", writable: true },
49358
- { name: "recipient_token_account", writable: true },
49359
- { name: "lending_admin" },
49360
- { name: "lending", writable: true },
49361
- { name: "mint", relations: ["lending", "rewards_rate_model"] },
49362
- { name: "f_token_mint", writable: true, relations: ["lending"] },
49363
- { name: "supply_token_reserves_liquidity", writable: true },
49364
- { name: "lending_supply_position_on_liquidity", writable: true },
49365
- { name: "rate_model" },
49366
- { name: "vault", writable: true },
49367
- { name: "claim_account", writable: true },
49368
- { name: "liquidity", writable: true },
49369
- { name: "liquidity_program", writable: true, relations: ["lending_admin"] },
49370
- { name: "rewards_rate_model" },
49371
- { name: "token_program" },
49372
- { name: "associated_token_program", address: "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL" },
49373
- { name: "system_program", address: "11111111111111111111111111111111" }
49374
- ],
49375
- args: [{ name: "amount", type: "u64" }],
49376
- returns: "u64"
50646
+ name: "TokenReserve",
50647
+ discriminator: [21, 18, 59, 135, 120, 20, 31, 12]
49377
50648
  },
49378
50649
  {
49379
- name: "redeem",
49380
- discriminator: [184, 12, 86, 149, 70, 196, 97, 225],
49381
- accounts: [
49382
- { name: "signer", writable: true, signer: true },
49383
- { name: "owner_token_account", writable: true },
49384
- { name: "recipient_token_account", writable: true },
49385
- { name: "lending_admin" },
49386
- { name: "lending", writable: true },
49387
- { name: "mint", relations: ["lending", "rewards_rate_model"] },
49388
- { name: "f_token_mint", writable: true, relations: ["lending"] },
49389
- { name: "supply_token_reserves_liquidity", writable: true },
49390
- { name: "lending_supply_position_on_liquidity", writable: true },
49391
- { name: "rate_model" },
49392
- { name: "vault", writable: true },
49393
- { name: "claim_account", writable: true },
49394
- { name: "liquidity", writable: true },
49395
- { name: "liquidity_program", writable: true, relations: ["lending_admin"] },
49396
- { name: "rewards_rate_model" },
49397
- { name: "token_program" },
49398
- { name: "associated_token_program", address: "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL" },
49399
- { name: "system_program", address: "11111111111111111111111111111111" }
49400
- ],
49401
- args: [{ name: "shares", type: "u64" }],
49402
- returns: "u64"
50650
+ name: "UserSupplyPosition",
50651
+ discriminator: [202, 219, 136, 118, 61, 177, 21, 146]
50652
+ }
50653
+ ],
50654
+ events: [
50655
+ {
50656
+ name: "LogDeposit",
50657
+ discriminator: [176, 243, 1, 56, 142, 206, 1, 106]
49403
50658
  },
49404
50659
  {
49405
- name: "rebalance",
49406
- discriminator: [108, 158, 77, 9, 210, 52, 88, 62],
49407
- accounts: [
49408
- { name: "signer", writable: true, signer: true },
49409
- { name: "depositor_token_account", writable: true },
49410
- { name: "lending_admin" },
49411
- { name: "lending", writable: true },
49412
- { name: "mint", relations: ["lending", "rewards_rate_model"] },
49413
- { name: "f_token_mint", writable: true, relations: ["lending"] },
49414
- { name: "supply_token_reserves_liquidity", writable: true },
49415
- { name: "lending_supply_position_on_liquidity", writable: true },
49416
- { name: "rate_model", writable: true },
49417
- { name: "vault", writable: true },
49418
- { name: "liquidity", writable: true },
49419
- { name: "liquidity_program", writable: true, relations: ["lending_admin"] },
49420
- { name: "rewards_rate_model" },
49421
- { name: "token_program" },
49422
- { name: "associated_token_program", address: "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL" },
49423
- { name: "system_program", address: "11111111111111111111111111111111" }
49424
- ],
49425
- args: []
50660
+ name: "LogRebalance",
50661
+ discriminator: [90, 67, 219, 41, 181, 118, 132, 9]
49426
50662
  },
49427
50663
  {
49428
- name: "update_rate",
49429
- discriminator: [24, 225, 53, 189, 72, 212, 225, 178],
49430
- accounts: [
49431
- { name: "lending", writable: true },
49432
- { name: "mint", relations: ["lending", "supply_token_reserves_liquidity"] },
49433
- { name: "f_token_mint", relations: ["lending"] },
49434
- { name: "supply_token_reserves_liquidity" },
49435
- { name: "rewards_rate_model" }
49436
- ],
49437
- args: []
50664
+ name: "LogUpdateAuthority",
50665
+ discriminator: [150, 152, 157, 143, 6, 135, 193, 101]
50666
+ },
50667
+ {
50668
+ name: "LogUpdateAuths",
50669
+ discriminator: [88, 80, 109, 48, 111, 203, 76, 251]
50670
+ },
50671
+ {
50672
+ name: "LogUpdateRates",
50673
+ discriminator: [222, 11, 113, 60, 147, 15, 68, 217]
50674
+ },
50675
+ {
50676
+ name: "LogUpdateRebalancer",
50677
+ discriminator: [66, 79, 144, 204, 26, 217, 153, 225]
50678
+ },
50679
+ {
50680
+ name: "LogUpdateRewards",
50681
+ discriminator: [37, 13, 111, 186, 47, 245, 162, 121]
50682
+ },
50683
+ {
50684
+ name: "LogWithdraw",
50685
+ discriminator: [49, 9, 176, 179, 222, 190, 6, 117]
49438
50686
  }
49439
50687
  ],
49440
- accounts: [
49441
- { name: "Lending", discriminator: [135, 199, 82, 16, 249, 131, 182, 241] },
49442
- { name: "LendingAdmin", discriminator: [42, 8, 33, 220, 163, 40, 210, 5] },
49443
- { name: "LendingRewardsRateModel", discriminator: [166, 72, 71, 131, 172, 74, 166, 181] },
49444
- { name: "TokenReserve", discriminator: [21, 18, 59, 135, 120, 20, 31, 12] },
49445
- { name: "UserSupplyPosition", discriminator: [202, 219, 136, 118, 61, 177, 21, 146] }
49446
- ],
49447
50688
  errors: [
49448
- { code: 6e3, name: "FTokenDepositInsignificant", msg: "F_TOKEN_DEPOSIT_INSIGNIFICANT" },
49449
- { code: 6001, name: "FTokenMinAmountOut", msg: "F_TOKEN_MIN_AMOUNT_OUT" },
49450
- { code: 6002, name: "FTokenMaxAmount", msg: "F_TOKEN_MAX_AMOUNT" },
49451
- { code: 6003, name: "FTokenInvalidParams", msg: "F_TOKEN_INVALID_PARAMS" },
49452
- { code: 6004, name: "FTokenRewardsRateModelAlreadySet", msg: "F_TOKEN_REWARDS_RATE_MODEL_ALREADY_SET" },
49453
- { code: 6005, name: "FTokenMaxAuthCountReached", msg: "F_TOKEN_MAX_AUTH_COUNT" },
49454
- { code: 6006, name: "FTokenLiquidityExchangePriceUnexpected", msg: "F_TOKEN_LIQUIDITY_EXCHANGE_PRICE_UNEXPECTED" },
49455
- { code: 6007, name: "FTokenCpiToLiquidityFailed", msg: "F_TOKEN_CPI_TO_LIQUIDITY_FAILED" },
49456
- { code: 6008, name: "FTokenOnlyAuth", msg: "F_TOKEN_ONLY_AUTH" },
49457
- { code: 6009, name: "FTokenOnlyAuthority", msg: "F_TOKEN_ONLY_AUTHORITY" },
49458
- { code: 6010, name: "FTokenOnlyRebalancer", msg: "F_TOKEN_ONLY_REBALANCER" },
49459
- { code: 6011, name: "FTokenUserSupplyPositionRequired", msg: "F_TOKEN_USER_SUPPLY_POSITION_REQUIRED" },
49460
- { code: 6012, name: "FTokenLiquidityProgramMismatch", msg: "F_TOKEN_LIQUIDITY_PROGRAM_MISMATCH" }
50689
+ {
50690
+ code: 6e3,
50691
+ name: "FTokenDepositInsignificant",
50692
+ msg: "F_TOKEN_DEPOSIT_INSIGNIFICANT"
50693
+ },
50694
+ {
50695
+ code: 6001,
50696
+ name: "FTokenMinAmountOut",
50697
+ msg: "F_TOKEN_MIN_AMOUNT_OUT"
50698
+ },
50699
+ {
50700
+ code: 6002,
50701
+ name: "FTokenMaxAmount",
50702
+ msg: "F_TOKEN_MAX_AMOUNT"
50703
+ },
50704
+ {
50705
+ code: 6003,
50706
+ name: "FTokenInvalidParams",
50707
+ msg: "F_TOKEN_INVALID_PARAMS"
50708
+ },
50709
+ {
50710
+ code: 6004,
50711
+ name: "FTokenRewardsRateModelAlreadySet",
50712
+ msg: "F_TOKEN_REWARDS_RATE_MODEL_ALREADY_SET"
50713
+ },
50714
+ {
50715
+ code: 6005,
50716
+ name: "FTokenMaxAuthCountReached",
50717
+ msg: "F_TOKEN_MAX_AUTH_COUNT"
50718
+ },
50719
+ {
50720
+ code: 6006,
50721
+ name: "FTokenLiquidityExchangePriceUnexpected",
50722
+ msg: "F_TOKEN_LIQUIDITY_EXCHANGE_PRICE_UNEXPECTED"
50723
+ },
50724
+ {
50725
+ code: 6007,
50726
+ name: "FTokenCpiToLiquidityFailed",
50727
+ msg: "F_TOKEN_CPI_TO_LIQUIDITY_FAILED"
50728
+ },
50729
+ {
50730
+ code: 6008,
50731
+ name: "FTokenOnlyAuth",
50732
+ msg: "F_TOKEN_ONLY_AUTH"
50733
+ },
50734
+ {
50735
+ code: 6009,
50736
+ name: "FTokenOnlyAuthority",
50737
+ msg: "F_TOKEN_ONLY_AUTHORITY"
50738
+ },
50739
+ {
50740
+ code: 6010,
50741
+ name: "FTokenOnlyRebalancer",
50742
+ msg: "F_TOKEN_ONLY_REBALANCER"
50743
+ },
50744
+ {
50745
+ code: 6011,
50746
+ name: "FTokenUserSupplyPositionRequired",
50747
+ msg: "F_TOKEN_USER_SUPPLY_POSITION_REQUIRED"
50748
+ },
50749
+ {
50750
+ code: 6012,
50751
+ name: "FTokenLiquidityProgramMismatch",
50752
+ msg: "F_TOKEN_LIQUIDITY_PROGRAM_MISMATCH"
50753
+ }
49461
50754
  ],
49462
50755
  types: [
49463
50756
  {
@@ -49465,8 +50758,14 @@ var jup_lend_default = {
49465
50758
  type: {
49466
50759
  kind: "struct",
49467
50760
  fields: [
49468
- { name: "addr", type: "pubkey" },
49469
- { name: "value", type: "bool" }
50761
+ {
50762
+ name: "addr",
50763
+ type: "pubkey"
50764
+ },
50765
+ {
50766
+ name: "value",
50767
+ type: "bool"
50768
+ }
49470
50769
  ]
49471
50770
  }
49472
50771
  },
@@ -49475,17 +50774,63 @@ var jup_lend_default = {
49475
50774
  type: {
49476
50775
  kind: "struct",
49477
50776
  fields: [
49478
- { name: "mint", type: "pubkey" },
49479
- { name: "f_token_mint", type: "pubkey" },
49480
- { name: "lending_id", type: "u16" },
49481
- { name: "decimals", type: "u8" },
49482
- { name: "rewards_rate_model", type: "pubkey" },
49483
- { name: "liquidity_exchange_price", type: "u64" },
49484
- { name: "token_exchange_price", type: "u64" },
49485
- { name: "last_update_timestamp", type: "u64" },
49486
- { name: "token_reserves_liquidity", type: "pubkey" },
49487
- { name: "supply_position_on_liquidity", type: "pubkey" },
49488
- { name: "bump", type: "u8" }
50777
+ {
50778
+ name: "mint",
50779
+ type: "pubkey"
50780
+ },
50781
+ {
50782
+ name: "f_token_mint",
50783
+ type: "pubkey"
50784
+ },
50785
+ {
50786
+ name: "lending_id",
50787
+ type: "u16"
50788
+ },
50789
+ {
50790
+ name: "decimals",
50791
+ docs: ["@dev number of decimals for the fToken, same as ASSET"],
50792
+ type: "u8"
50793
+ },
50794
+ {
50795
+ name: "rewards_rate_model",
50796
+ docs: [
50797
+ "@dev To read PDA of rewards rate model to get_rate instruction"
50798
+ ],
50799
+ type: "pubkey"
50800
+ },
50801
+ {
50802
+ name: "liquidity_exchange_price",
50803
+ docs: [
50804
+ "@dev exchange price for the underlying asset in the liquidity protocol (without rewards)"
50805
+ ],
50806
+ type: "u64"
50807
+ },
50808
+ {
50809
+ name: "token_exchange_price",
50810
+ docs: [
50811
+ "@dev exchange price between fToken and the underlying asset (with rewards)"
50812
+ ],
50813
+ type: "u64"
50814
+ },
50815
+ {
50816
+ name: "last_update_timestamp",
50817
+ docs: [
50818
+ "@dev timestamp when exchange prices were updated the last time"
50819
+ ],
50820
+ type: "u64"
50821
+ },
50822
+ {
50823
+ name: "token_reserves_liquidity",
50824
+ type: "pubkey"
50825
+ },
50826
+ {
50827
+ name: "supply_position_on_liquidity",
50828
+ type: "pubkey"
50829
+ },
50830
+ {
50831
+ name: "bump",
50832
+ type: "u8"
50833
+ }
49489
50834
  ]
49490
50835
  }
49491
50836
  },
@@ -49494,12 +50839,32 @@ var jup_lend_default = {
49494
50839
  type: {
49495
50840
  kind: "struct",
49496
50841
  fields: [
49497
- { name: "authority", type: "pubkey" },
49498
- { name: "liquidity_program", type: "pubkey" },
49499
- { name: "rebalancer", type: "pubkey" },
49500
- { name: "next_lending_id", type: "u16" },
49501
- { name: "auths", type: { vec: "pubkey" } },
49502
- { name: "bump", type: "u8" }
50842
+ {
50843
+ name: "authority",
50844
+ type: "pubkey"
50845
+ },
50846
+ {
50847
+ name: "liquidity_program",
50848
+ type: "pubkey"
50849
+ },
50850
+ {
50851
+ name: "rebalancer",
50852
+ type: "pubkey"
50853
+ },
50854
+ {
50855
+ name: "next_lending_id",
50856
+ type: "u16"
50857
+ },
50858
+ {
50859
+ name: "auths",
50860
+ type: {
50861
+ vec: "pubkey"
50862
+ }
50863
+ },
50864
+ {
50865
+ name: "bump",
50866
+ type: "u8"
50867
+ }
49503
50868
  ]
49504
50869
  }
49505
50870
  },
@@ -49508,61 +50873,328 @@ var jup_lend_default = {
49508
50873
  type: {
49509
50874
  kind: "struct",
49510
50875
  fields: [
49511
- { name: "mint", type: "pubkey" },
49512
- { name: "start_tvl", type: "u64" },
49513
- { name: "duration", type: "u64" },
49514
- { name: "start_time", type: "u64" },
49515
- { name: "yearly_reward", type: "u64" },
49516
- { name: "next_duration", type: "u64" },
49517
- { name: "next_reward_amount", type: "u64" },
49518
- { name: "bump", type: "u8" }
50876
+ {
50877
+ name: "mint",
50878
+ docs: ["@dev mint address"],
50879
+ type: "pubkey"
50880
+ },
50881
+ {
50882
+ name: "start_tvl",
50883
+ docs: [
50884
+ "@dev tvl below which rewards rate is 0. If current TVL is below this value, triggering `update_rate()` on the fToken",
50885
+ "might bring the total TVL above this cut-off."
50886
+ ],
50887
+ type: "u64"
50888
+ },
50889
+ {
50890
+ name: "duration",
50891
+ docs: ["@dev for how long current rewards should run"],
50892
+ type: "u64"
50893
+ },
50894
+ {
50895
+ name: "start_time",
50896
+ docs: ["@dev when current rewards got started"],
50897
+ type: "u64"
50898
+ },
50899
+ {
50900
+ name: "yearly_reward",
50901
+ docs: [
50902
+ "@dev current annualized reward based on input params (duration, rewardAmount)"
50903
+ ],
50904
+ type: "u64"
50905
+ },
50906
+ {
50907
+ name: "next_duration",
50908
+ docs: ["@dev Duration for the next rewards phase"],
50909
+ type: "u64"
50910
+ },
50911
+ {
50912
+ name: "next_reward_amount",
50913
+ docs: ["@dev Amount of rewards for the next phase"],
50914
+ type: "u64"
50915
+ },
50916
+ {
50917
+ name: "bump",
50918
+ type: "u8"
50919
+ }
50920
+ ]
50921
+ }
50922
+ },
50923
+ {
50924
+ name: "LogDeposit",
50925
+ type: {
50926
+ kind: "struct",
50927
+ fields: [
50928
+ {
50929
+ name: "sender",
50930
+ type: "pubkey"
50931
+ },
50932
+ {
50933
+ name: "receiver",
50934
+ type: "pubkey"
50935
+ },
50936
+ {
50937
+ name: "assets",
50938
+ type: "u64"
50939
+ },
50940
+ {
50941
+ name: "shares_minted",
50942
+ type: "u64"
50943
+ }
50944
+ ]
50945
+ }
50946
+ },
50947
+ {
50948
+ name: "LogRebalance",
50949
+ type: {
50950
+ kind: "struct",
50951
+ fields: [
50952
+ {
50953
+ name: "assets",
50954
+ type: "u64"
50955
+ }
50956
+ ]
50957
+ }
50958
+ },
50959
+ {
50960
+ name: "LogUpdateAuthority",
50961
+ type: {
50962
+ kind: "struct",
50963
+ fields: [
50964
+ {
50965
+ name: "new_authority",
50966
+ type: "pubkey"
50967
+ }
50968
+ ]
50969
+ }
50970
+ },
50971
+ {
50972
+ name: "LogUpdateAuths",
50973
+ type: {
50974
+ kind: "struct",
50975
+ fields: [
50976
+ {
50977
+ name: "auth_status",
50978
+ type: {
50979
+ vec: {
50980
+ defined: {
50981
+ name: "AddressBool"
50982
+ }
50983
+ }
50984
+ }
50985
+ }
50986
+ ]
50987
+ }
50988
+ },
50989
+ {
50990
+ name: "LogUpdateRates",
50991
+ type: {
50992
+ kind: "struct",
50993
+ fields: [
50994
+ {
50995
+ name: "token_exchange_price",
50996
+ type: "u64"
50997
+ },
50998
+ {
50999
+ name: "liquidity_exchange_price",
51000
+ type: "u64"
51001
+ }
51002
+ ]
51003
+ }
51004
+ },
51005
+ {
51006
+ name: "LogUpdateRebalancer",
51007
+ type: {
51008
+ kind: "struct",
51009
+ fields: [
51010
+ {
51011
+ name: "new_rebalancer",
51012
+ type: "pubkey"
51013
+ }
51014
+ ]
51015
+ }
51016
+ },
51017
+ {
51018
+ name: "LogUpdateRewards",
51019
+ type: {
51020
+ kind: "struct",
51021
+ fields: [
51022
+ {
51023
+ name: "rewards_rate_model",
51024
+ type: "pubkey"
51025
+ }
51026
+ ]
51027
+ }
51028
+ },
51029
+ {
51030
+ name: "LogWithdraw",
51031
+ type: {
51032
+ kind: "struct",
51033
+ fields: [
51034
+ {
51035
+ name: "sender",
51036
+ type: "pubkey"
51037
+ },
51038
+ {
51039
+ name: "receiver",
51040
+ type: "pubkey"
51041
+ },
51042
+ {
51043
+ name: "owner",
51044
+ type: "pubkey"
51045
+ },
51046
+ {
51047
+ name: "assets",
51048
+ type: "u64"
51049
+ },
51050
+ {
51051
+ name: "shares_burned",
51052
+ type: "u64"
51053
+ }
49519
51054
  ]
49520
51055
  }
49521
51056
  },
49522
51057
  {
49523
51058
  name: "TokenReserve",
51059
+ docs: ["Token configuration and exchange prices"],
49524
51060
  serialization: "bytemuck",
49525
- repr: { kind: "c", packed: true },
51061
+ repr: {
51062
+ kind: "c",
51063
+ packed: true
51064
+ },
49526
51065
  type: {
49527
51066
  kind: "struct",
49528
51067
  fields: [
49529
- { name: "mint", type: "pubkey" },
49530
- { name: "vault", type: "pubkey" },
49531
- { name: "borrow_rate", type: "u16" },
49532
- { name: "fee_on_interest", type: "u16" },
49533
- { name: "last_utilization", type: "u16" },
49534
- { name: "last_update_timestamp", type: "u64" },
49535
- { name: "supply_exchange_price", type: "u64" },
49536
- { name: "borrow_exchange_price", type: "u64" },
49537
- { name: "max_utilization", type: "u16" },
49538
- { name: "total_supply_with_interest", type: "u64" },
49539
- { name: "total_supply_interest_free", type: "u64" },
49540
- { name: "total_borrow_with_interest", type: "u64" },
49541
- { name: "total_borrow_interest_free", type: "u64" },
49542
- { name: "total_claim_amount", type: "u64" },
49543
- { name: "interacting_protocol", type: "pubkey" },
49544
- { name: "interacting_timestamp", type: "u64" },
49545
- { name: "interacting_balance", type: "u64" }
51068
+ {
51069
+ name: "mint",
51070
+ type: "pubkey"
51071
+ },
51072
+ {
51073
+ name: "vault",
51074
+ type: "pubkey"
51075
+ },
51076
+ {
51077
+ name: "borrow_rate",
51078
+ type: "u16"
51079
+ },
51080
+ {
51081
+ name: "fee_on_interest",
51082
+ type: "u16"
51083
+ },
51084
+ {
51085
+ name: "last_utilization",
51086
+ type: "u16"
51087
+ },
51088
+ {
51089
+ name: "last_update_timestamp",
51090
+ type: "u64"
51091
+ },
51092
+ {
51093
+ name: "supply_exchange_price",
51094
+ type: "u64"
51095
+ },
51096
+ {
51097
+ name: "borrow_exchange_price",
51098
+ type: "u64"
51099
+ },
51100
+ {
51101
+ name: "max_utilization",
51102
+ type: "u16"
51103
+ },
51104
+ {
51105
+ name: "total_supply_with_interest",
51106
+ type: "u64"
51107
+ },
51108
+ {
51109
+ name: "total_supply_interest_free",
51110
+ type: "u64"
51111
+ },
51112
+ {
51113
+ name: "total_borrow_with_interest",
51114
+ type: "u64"
51115
+ },
51116
+ {
51117
+ name: "total_borrow_interest_free",
51118
+ type: "u64"
51119
+ },
51120
+ {
51121
+ name: "total_claim_amount",
51122
+ type: "u64"
51123
+ },
51124
+ {
51125
+ name: "interacting_protocol",
51126
+ type: "pubkey"
51127
+ },
51128
+ {
51129
+ name: "interacting_timestamp",
51130
+ type: "u64"
51131
+ },
51132
+ {
51133
+ name: "interacting_balance",
51134
+ type: "u64"
51135
+ }
49546
51136
  ]
49547
51137
  }
49548
51138
  },
49549
51139
  {
49550
51140
  name: "UserSupplyPosition",
51141
+ docs: ["User supply position"],
49551
51142
  serialization: "bytemuck",
49552
- repr: { kind: "c", packed: true },
51143
+ repr: {
51144
+ kind: "c",
51145
+ packed: true
51146
+ },
49553
51147
  type: {
49554
51148
  kind: "struct",
49555
51149
  fields: [
49556
- { name: "protocol", type: "pubkey" },
49557
- { name: "mint", type: "pubkey" },
49558
- { name: "with_interest", type: "u8" },
49559
- { name: "amount", type: "u64" },
49560
- { name: "withdrawal_limit", type: "u128" },
49561
- { name: "last_update", type: "u64" },
49562
- { name: "expand_pct", type: "u16" },
49563
- { name: "expand_duration", type: "u64" },
49564
- { name: "base_withdrawal_limit", type: "u64" },
49565
- { name: "status", type: "u8" }
51150
+ {
51151
+ name: "protocol",
51152
+ type: "pubkey"
51153
+ },
51154
+ {
51155
+ name: "mint",
51156
+ type: "pubkey"
51157
+ },
51158
+ {
51159
+ name: "with_interest",
51160
+ type: "u8"
51161
+ },
51162
+ {
51163
+ name: "amount",
51164
+ type: "u64"
51165
+ },
51166
+ {
51167
+ name: "withdrawal_limit",
51168
+ type: "u64"
51169
+ },
51170
+ {
51171
+ name: "decay_amount",
51172
+ type: "u64"
51173
+ },
51174
+ {
51175
+ name: "last_update",
51176
+ type: "u64"
51177
+ },
51178
+ {
51179
+ name: "expand_pct",
51180
+ type: "u16"
51181
+ },
51182
+ {
51183
+ name: "expand_duration",
51184
+ type: "u32"
51185
+ },
51186
+ {
51187
+ name: "decay_duration",
51188
+ type: "u32"
51189
+ },
51190
+ {
51191
+ name: "base_withdrawal_limit",
51192
+ type: "u64"
51193
+ },
51194
+ {
51195
+ name: "status",
51196
+ type: "u8"
51197
+ }
49566
51198
  ]
49567
51199
  }
49568
51200
  }
@@ -73860,6 +75492,20 @@ var MarginfiAccount = class _MarginfiAccount {
73860
75492
  ...params
73861
75493
  });
73862
75494
  }
75495
+ /**
75496
+ * Calculates the maximum amount that can be deposited into a bank.
75497
+ *
75498
+ * Deposits are not constrained by account health, only by the bank's remaining deposit cap
75499
+ * and (optionally) the wallet balance.
75500
+ *
75501
+ * @param params - Configuration for max deposit computation
75502
+ * @returns Maximum depositable amount in UI units
75503
+ *
75504
+ * @see {@link computeMaxDepositForBank} for implementation details
75505
+ */
75506
+ computeMaxDepositForBank(params) {
75507
+ return computeMaxDepositForBank(params);
75508
+ }
73863
75509
  /**
73864
75510
  * Gets the banks required for health check calculations.
73865
75511
  *
@@ -77719,7 +79365,9 @@ function computeMaxBorrowForBank(params) {
77719
79365
  assetShareValueMultiplierByBank,
77720
79366
  emodeImpactStatus,
77721
79367
  volatilityFactor,
77722
- activePair
79368
+ activePair,
79369
+ groupRateLimiter,
79370
+ ignoreBankLimits
77723
79371
  } = params;
77724
79372
  const bank = banksMap.get(bankAddress.toBase58());
77725
79373
  if (!bank) throw Error(`Bank ${bankAddress.toBase58()} not found`);
@@ -77779,15 +79427,83 @@ function computeMaxBorrowForBank(params) {
77779
79427
  assetShareValueMultiplier
77780
79428
  });
77781
79429
  const liabWeight = getLiabilityWeight(bank.config, 0 /* Initial */);
77782
- if (assetWeight.eq(0)) {
77783
- return computeQuantityUi(balance, bank, assetShareValueMultiplier).assets.plus(
77784
- freeCollateral.minus(untiedCollateralForBank).div(priceHighestBias.times(liabWeight))
77785
- );
77786
- } else {
77787
- return untiedCollateralForBank.div(priceLowestBias.times(assetWeight)).plus(freeCollateral.minus(untiedCollateralForBank).div(priceHighestBias.times(liabWeight)));
79430
+ const originationFeeFactor = new BigNumber3(1).plus(
79431
+ bank.config.interestRateConfig.protocolOriginationFee
79432
+ );
79433
+ const liabPriceWeighted = priceHighestBias.times(liabWeight).times(originationFeeFactor);
79434
+ const healthMaxBorrow = assetWeight.eq(0) ? computeQuantityUi(balance, bank, assetShareValueMultiplier).assets.plus(
79435
+ freeCollateral.minus(untiedCollateralForBank).div(liabPriceWeighted)
79436
+ ) : untiedCollateralForBank.div(priceLowestBias.times(assetWeight)).plus(freeCollateral.minus(untiedCollateralForBank).div(liabPriceWeighted));
79437
+ if (ignoreBankLimits) return healthMaxBorrow;
79438
+ const borrowCapRemaining = new BigNumber3(computeBankBorrowCapRemaining(bank)).div(
79439
+ originationFeeFactor
79440
+ );
79441
+ const availableLiquidity = computeBankProjectedAvailableLiquidity(
79442
+ bank,
79443
+ assetShareValueMultiplier
79444
+ ).div(originationFeeFactor);
79445
+ const rateLimitRemaining = computeOutflowRateLimitRemaining(
79446
+ bank,
79447
+ oraclePrice,
79448
+ groupRateLimiter,
79449
+ assetShareValueMultiplier
79450
+ );
79451
+ return BigNumber3.max(
79452
+ 0,
79453
+ BigNumber3.min(healthMaxBorrow, borrowCapRemaining, availableLiquidity, rateLimitRemaining)
79454
+ );
79455
+ }
79456
+ function computeOutflowRateLimitRemaining(bank, oraclePrice, groupRateLimiter, assetShareValueMultiplier) {
79457
+ const nowSeconds = Date.now() / 1e3;
79458
+ let remaining = new BigNumber3(Infinity);
79459
+ let bankRemaining = computeBankRateLimitRemaining(bank, nowSeconds);
79460
+ if (bankRemaining !== null) {
79461
+ const limiterInBankMintUnits = bank.config.assetTag === 3 /* KAMINO */ || bank.config.assetTag === 2 /* STAKED */;
79462
+ if (limiterInBankMintUnits && assetShareValueMultiplier?.gt(0)) {
79463
+ bankRemaining = bankRemaining.times(assetShareValueMultiplier);
79464
+ }
79465
+ remaining = BigNumber3.min(remaining, bankRemaining);
77788
79466
  }
79467
+ const groupRemainingUsd = computeGroupRateLimitRemainingUsd(groupRateLimiter, nowSeconds);
79468
+ if (groupRemainingUsd !== null) {
79469
+ const price = getPrice(oraclePrice, 1 /* None */, false);
79470
+ if (price.gt(0)) remaining = BigNumber3.min(remaining, groupRemainingUsd.div(price));
79471
+ }
79472
+ return remaining;
77789
79473
  }
77790
79474
  function computeMaxWithdrawForBank(params) {
79475
+ const {
79476
+ banksMap,
79477
+ bankAddress,
79478
+ oraclePricesByBank,
79479
+ assetShareValueMultiplierByBank,
79480
+ groupRateLimiter,
79481
+ venueStates,
79482
+ ignoreBankLimits
79483
+ } = params;
79484
+ const bank = banksMap.get(bankAddress.toBase58());
79485
+ if (!bank) throw Error(`Bank ${bankAddress.toBase58()} not found`);
79486
+ const healthMaxWithdraw = computeHealthMaxWithdrawForBank(params);
79487
+ if (ignoreBankLimits) return healthMaxWithdraw;
79488
+ const oraclePrice = oraclePricesByBank.get(bankAddress.toBase58());
79489
+ if (!oraclePrice) throw Error(`Oracle price for ${bankAddress.toBase58()} not found`);
79490
+ const assetShareValueMultiplier = assetShareValueMultiplierByBank?.get(bankAddress.toBase58());
79491
+ const availableLiquidity = computeBankProjectedAvailableLiquidity(
79492
+ bank,
79493
+ assetShareValueMultiplier
79494
+ );
79495
+ const rateLimitRemaining = computeOutflowRateLimitRemaining(
79496
+ bank,
79497
+ oraclePrice,
79498
+ groupRateLimiter,
79499
+ assetShareValueMultiplier
79500
+ );
79501
+ const clamps = [healthMaxWithdraw, availableLiquidity, rateLimitRemaining];
79502
+ const venueLiquidity = computeVenueAvailableLiquidity(bank, venueStates);
79503
+ if (venueLiquidity !== void 0) clamps.push(venueLiquidity);
79504
+ return BigNumber3.max(0, BigNumber3.min(...clamps));
79505
+ }
79506
+ function computeHealthMaxWithdrawForBank(params) {
77791
79507
  const {
77792
79508
  account,
77793
79509
  banksMap,
@@ -77883,6 +79599,17 @@ function computeMaxWithdrawForBank(params) {
77883
79599
  const maxWithdraw = initUntiedCollateralForBank.div(initWeightedPrice);
77884
79600
  return maxWithdraw;
77885
79601
  }
79602
+ function computeMaxDepositForBank(params) {
79603
+ const { banksMap, bankAddress, assetShareValueMultiplierByBank, walletBalance } = params;
79604
+ const bank = banksMap.get(bankAddress.toBase58());
79605
+ if (!bank) throw Error(`Bank ${bankAddress.toBase58()} not found`);
79606
+ const assetShareValueMultiplier = assetShareValueMultiplierByBank?.get(bankAddress.toBase58());
79607
+ const depositCapRemaining = new BigNumber3(computeBankDepositCapRemaining(bank)).times(
79608
+ assetShareValueMultiplier ?? 1
79609
+ );
79610
+ if (walletBalance === void 0) return depositCapRemaining;
79611
+ return BigNumber3.max(0, BigNumber3.min(depositCapRemaining, new BigNumber3(walletBalance)));
79612
+ }
77886
79613
 
77887
79614
  // src/services/account/utils/misc.utils.ts
77888
79615
  function floor(value, decimals) {
@@ -79555,6 +81282,21 @@ var fetchMultipleBanks = async (program, opts) => {
79555
81282
  }
79556
81283
  return bankDatas;
79557
81284
  };
81285
+ var U64_MAX = new BigNumber3("18446744073709551615");
81286
+ var DRIFT_SCALED_BALANCE_DECIMALS = 9;
81287
+ function isDepositLimitActive(bank) {
81288
+ return !bank.config.depositLimit.eq(U64_MAX);
81289
+ }
81290
+ function isBorrowLimitActive(bank) {
81291
+ return !bank.config.borrowLimit.eq(U64_MAX);
81292
+ }
81293
+ function getEffectiveDepositLimit(bank) {
81294
+ const limit = bank.config.depositLimit;
81295
+ if (bank.config.assetTag !== 4 /* DRIFT */) return limit;
81296
+ const diff = DRIFT_SCALED_BALANCE_DECIMALS - bank.mintDecimals;
81297
+ if (diff === 0) return limit;
81298
+ return diff > 0 ? limit.times(10 ** diff) : limit.div(10 ** -diff);
81299
+ }
79558
81300
  function computeInterestRates(bank) {
79559
81301
  const { insuranceFeeFixedApr, insuranceIrFee, protocolFixedFeeApr, protocolIrFee } = bank.config.interestRateConfig;
79560
81302
  const fixedFee = insuranceFeeFixedApr.plus(protocolFixedFeeApr);
@@ -79649,25 +81391,34 @@ function computeUtilizationRate(bank) {
79649
81391
  return liabilities.div(assets);
79650
81392
  }
79651
81393
  var SECONDS_PER_DAY = 24 * 60 * 60;
79652
- var SECONDS_PER_YEAR = SECONDS_PER_DAY * 365.25;
81394
+ var SECONDS_PER_YEAR = SECONDS_PER_DAY * 365;
81395
+ var EXECUTION_HEADROOM_SECONDS = 120;
81396
+ function computeAccrualProjectionSeconds(bank, nowSeconds = Date.now() / 1e3) {
81397
+ const age = Math.max(0, nowSeconds - bank.lastUpdate);
81398
+ return Math.max(2 * age, age + EXECUTION_HEADROOM_SECONDS);
81399
+ }
79653
81400
  function computeRemainingCapacity(bank) {
79654
81401
  const totalDeposits = getTotalAssetQuantity(bank);
79655
- const remainingCapacity = BigNumber3.max(0, bank.config.depositLimit.minus(totalDeposits));
81402
+ const remainingCapacity = isDepositLimitActive(bank) ? BigNumber3.max(
81403
+ 0,
81404
+ getEffectiveDepositLimit(bank).minus(totalDeposits).minus(1).integerValue(BigNumber3.ROUND_FLOOR)
81405
+ ) : U64_MAX;
79656
81406
  const totalBorrows = getTotalLiabilityQuantity(bank);
79657
- const remainingBorrowCapacity = BigNumber3.max(0, bank.config.borrowLimit.minus(totalBorrows));
79658
- const durationSinceLastAccrual = Date.now() / 1e3 - bank.lastUpdate;
81407
+ const remainingBorrowCapacity = isBorrowLimitActive(bank) ? BigNumber3.max(
81408
+ 0,
81409
+ bank.config.borrowLimit.minus(totalBorrows).minus(1).integerValue(BigNumber3.ROUND_FLOOR)
81410
+ ) : U64_MAX;
81411
+ const projectionSeconds = computeAccrualProjectionSeconds(bank);
79659
81412
  const { lendingRate, borrowingRate } = computeInterestRates(bank);
79660
- const outstandingLendingInterest = lendingRate.times(durationSinceLastAccrual).dividedBy(SECONDS_PER_YEAR).times(totalDeposits);
79661
- const outstandingBorrowInterest = borrowingRate.times(durationSinceLastAccrual).dividedBy(SECONDS_PER_YEAR).times(totalBorrows);
79662
- const depositCapacity = remainingCapacity.minus(outstandingLendingInterest.times(2));
79663
- const borrowCapacity = remainingBorrowCapacity.minus(outstandingBorrowInterest.times(2));
81413
+ const projectedLendingInterest = lendingRate.times(projectionSeconds).dividedBy(SECONDS_PER_YEAR).times(totalDeposits);
81414
+ const projectedBorrowInterest = borrowingRate.times(projectionSeconds).dividedBy(SECONDS_PER_YEAR).times(totalBorrows);
81415
+ const depositCapacity = remainingCapacity.minus(projectedLendingInterest);
81416
+ const borrowCapacity = remainingBorrowCapacity.minus(projectedBorrowInterest);
79664
81417
  return {
79665
81418
  depositCapacity,
79666
81419
  borrowCapacity
79667
81420
  };
79668
81421
  }
79669
-
79670
- // src/services/bank/utils/bank-metrics.utils.ts
79671
81422
  function isStandardBorrowable(bank) {
79672
81423
  const { assetTag, operationalState, borrowLimit } = bank.config;
79673
81424
  return (assetTag === 0 /* DEFAULT */ || assetTag === 1 /* SOL */) && operationalState === "Operational" /* Operational */ && borrowLimit.gt(0);
@@ -79677,9 +81428,7 @@ function isStandardDepositable(bank) {
79677
81428
  return (assetTag === 0 /* DEFAULT */ || assetTag === 1 /* SOL */) && operationalState === "Operational" /* Operational */;
79678
81429
  }
79679
81430
  function computeBankTotalDeposits(bank, assetShareValueMultiplier) {
79680
- const totalAssets = getTotalAssetQuantity(bank).times(
79681
- assetShareValueMultiplier ?? 1
79682
- );
81431
+ const totalAssets = getTotalAssetQuantity(bank).times(assetShareValueMultiplier ?? 1);
79683
81432
  return nativeToUi(totalAssets, bank.mintDecimals);
79684
81433
  }
79685
81434
  function computeBankTotalBorrows(bank) {
@@ -79710,14 +81459,35 @@ function computeBankPoolSize(bank, assetShareValueMultiplier) {
79710
81459
  const borrowCap = nativeToUi(bank.config.borrowLimit, bank.mintDecimals);
79711
81460
  return Math.max(0, Math.min(totalDeposits, borrowCap) - totalBorrows);
79712
81461
  }
81462
+ function computeBankAvailableLiquidity(bank, assetShareValueMultiplier) {
81463
+ const totalDeposits = computeBankTotalDeposits(bank, assetShareValueMultiplier);
81464
+ const totalBorrows = computeBankTotalBorrows(bank);
81465
+ return BigNumber3.max(0, new BigNumber3(totalDeposits).minus(totalBorrows));
81466
+ }
79713
81467
  function computeBankDepositCapRemaining(bank) {
81468
+ if (!isDepositLimitActive(bank)) return Infinity;
79714
81469
  const { depositCapacity } = computeRemainingCapacity(bank);
79715
81470
  return Math.max(0, nativeToUi(depositCapacity, bank.mintDecimals));
79716
81471
  }
79717
81472
  function computeBankBorrowCapRemaining(bank) {
81473
+ if (!isBorrowLimitActive(bank)) return Infinity;
79718
81474
  const { borrowCapacity } = computeRemainingCapacity(bank);
79719
81475
  return Math.max(0, nativeToUi(borrowCapacity, bank.mintDecimals));
79720
81476
  }
81477
+ function computeBankProjectedAvailableLiquidity(bank, assetShareValueMultiplier) {
81478
+ const liquidity = computeBankAvailableLiquidity(bank, assetShareValueMultiplier);
81479
+ const totalDeposits = computeBankTotalDeposits(bank, assetShareValueMultiplier);
81480
+ const totalBorrows = computeBankTotalBorrows(bank);
81481
+ const projectionYears = computeAccrualProjectionSeconds(bank) / SECONDS_PER_YEAR;
81482
+ const { lendingRate, borrowingRate } = computeInterestRates(bank);
81483
+ const projectedBorrowInterest = borrowingRate.times(totalBorrows).times(projectionYears);
81484
+ const projectedLendingInterest = lendingRate.times(totalDeposits).times(projectionYears);
81485
+ const liquidityLostToAccrual = BigNumber3.max(
81486
+ 0,
81487
+ projectedBorrowInterest.minus(projectedLendingInterest)
81488
+ );
81489
+ return BigNumber3.max(0, liquidity.minus(liquidityLostToAccrual));
81490
+ }
79721
81491
  function computeBankSupplyApy(bank) {
79722
81492
  return aprToApy(computeInterestRates(bank).lendingRate.toNumber());
79723
81493
  }
@@ -79730,11 +81500,7 @@ function computeBankMetrics(params) {
79730
81500
  symbol,
79731
81501
  totalDeposits: computeBankTotalDeposits(bank, assetShareValueMultiplier),
79732
81502
  totalBorrows: computeBankTotalBorrows(bank),
79733
- totalDepositsUsd: computeBankTotalDepositsUsd(
79734
- bank,
79735
- oraclePrice,
79736
- assetShareValueMultiplier
79737
- ),
81503
+ totalDepositsUsd: computeBankTotalDepositsUsd(bank, oraclePrice, assetShareValueMultiplier),
79738
81504
  totalBorrowsUsd: computeBankTotalBorrowsUsd(bank, oraclePrice),
79739
81505
  utilizationRate: computeUtilizationRate(bank).toNumber(),
79740
81506
  poolSize: computeBankPoolSize(bank, assetShareValueMultiplier),
@@ -79762,6 +81528,92 @@ function requireTokenProgram(tokenProgramsByBank, address, makeError = (message)
79762
81528
  }
79763
81529
  return tokenProgram;
79764
81530
  }
81531
+ function computeRateLimitWindowRemainingCapacity(window, nowSeconds) {
81532
+ const { maxOutflow, windowDuration } = window;
81533
+ if (maxOutflow.lte(0)) return null;
81534
+ if (windowDuration === 0) return maxOutflow;
81535
+ let { windowStart, prevWindowOutflow, curWindowOutflow } = window;
81536
+ const elapsedRaw = Math.floor(nowSeconds) - windowStart;
81537
+ if (elapsedRaw >= windowDuration * 2) {
81538
+ windowStart = Math.floor(nowSeconds);
81539
+ prevWindowOutflow = new BigNumber3(0);
81540
+ curWindowOutflow = new BigNumber3(0);
81541
+ } else if (elapsedRaw >= windowDuration) {
81542
+ windowStart = windowStart + windowDuration;
81543
+ prevWindowOutflow = curWindowOutflow;
81544
+ curWindowOutflow = new BigNumber3(0);
81545
+ }
81546
+ const elapsed = Math.floor(nowSeconds) - windowStart;
81547
+ if (elapsed < 0) return new BigNumber3(0);
81548
+ if (elapsed >= windowDuration) return maxOutflow;
81549
+ const remainingTime = windowDuration - elapsed;
81550
+ const weightedPrev = prevWindowOutflow.abs().times(remainingTime).idiv(windowDuration).times(prevWindowOutflow.isNegative() ? -1 : 1);
81551
+ const totalNetOutflow = weightedPrev.plus(curWindowOutflow);
81552
+ return maxOutflow.minus(totalNetOutflow);
81553
+ }
81554
+ function computeRateLimiterRemainingCapacity(rateLimiter, nowSeconds) {
81555
+ if (!rateLimiter) return null;
81556
+ const hourly = computeRateLimitWindowRemainingCapacity(rateLimiter.hourly, nowSeconds);
81557
+ const daily = computeRateLimitWindowRemainingCapacity(rateLimiter.daily, nowSeconds);
81558
+ if (hourly === null) return daily;
81559
+ if (daily === null) return hourly;
81560
+ return BigNumber3.min(hourly, daily);
81561
+ }
81562
+ function computeBankRateLimitRemaining(bank, nowSeconds = Date.now() / 1e3) {
81563
+ const remaining = computeRateLimiterRemainingCapacity(bank.rateLimiter, nowSeconds);
81564
+ if (remaining === null) return null;
81565
+ return BigNumber3.max(0, nativeToUi(remaining, bank.mintDecimals));
81566
+ }
81567
+ function computeGroupRateLimitRemainingUsd(rateLimiter, nowSeconds = Date.now() / 1e3) {
81568
+ const remaining = computeRateLimiterRemainingCapacity(rateLimiter, nowSeconds);
81569
+ if (remaining === null) return null;
81570
+ return BigNumber3.max(0, remaining);
81571
+ }
81572
+ var VENUE_AVAILABLE_LIQUIDITY_BUFFER = 0.995;
81573
+ function computeVenueAvailableLiquidity(bank, venueStates) {
81574
+ const decimals = bank.mintDecimals;
81575
+ switch (bank.config.assetTag) {
81576
+ case 3 /* KAMINO */: {
81577
+ const reserveState = venueStates?.kaminoStates?.reserveState;
81578
+ if (!reserveState) return void 0;
81579
+ return new BigNumber3(
81580
+ nativeToUi(reserveState.liquidity.availableAmount.toString(), decimals)
81581
+ ).times(VENUE_AVAILABLE_LIQUIDITY_BUFFER);
81582
+ }
81583
+ case 4 /* DRIFT */: {
81584
+ const spotMarketState = venueStates?.driftStates?.spotMarketState;
81585
+ if (!spotMarketState) return void 0;
81586
+ const deposits = getDriftTokenAmount(
81587
+ spotMarketState.depositBalance,
81588
+ spotMarketState,
81589
+ "deposit" /* DEPOSIT */
81590
+ );
81591
+ const borrows = getDriftTokenAmount(
81592
+ spotMarketState.borrowBalance,
81593
+ spotMarketState,
81594
+ "borrow" /* BORROW */
81595
+ );
81596
+ const idle = deposits.sub(borrows);
81597
+ return new BigNumber3(nativeToUi(idle.isNeg() ? "0" : idle.toString(), decimals)).times(
81598
+ VENUE_AVAILABLE_LIQUIDITY_BUFFER
81599
+ );
81600
+ }
81601
+ case 6 /* JUPLEND */: {
81602
+ const reserveState = venueStates?.jupLendStates?.jupTokenReserveState;
81603
+ if (!reserveState) return void 0;
81604
+ const supplyWithInterestNative = reserveState.totalSupplyWithInterest.mul(reserveState.supplyExchangePrice).div(JUP_EXCHANGE_PRICES_PRECISION);
81605
+ const borrowWithInterestNative = reserveState.totalBorrowWithInterest.mul(reserveState.borrowExchangePrice).div(JUP_EXCHANGE_PRICES_PRECISION);
81606
+ const totalSupply = supplyWithInterestNative.add(reserveState.totalSupplyInterestFree);
81607
+ const totalBorrow = borrowWithInterestNative.add(reserveState.totalBorrowInterestFree);
81608
+ const idle = totalSupply.sub(totalBorrow);
81609
+ return new BigNumber3(nativeToUi(idle.isNeg() ? "0" : idle.toString(), decimals)).times(
81610
+ VENUE_AVAILABLE_LIQUIDITY_BUFFER
81611
+ );
81612
+ }
81613
+ default:
81614
+ return void 0;
81615
+ }
81616
+ }
79765
81617
 
79766
81618
  // src/services/bank/bank.service.ts
79767
81619
  async function freezeBankConfigIx(program, bankAddress, bankConfigOpt) {
@@ -82586,7 +84438,9 @@ var MarginfiAccountWrapper = class {
82586
84438
  assetShareValueMultiplierByBank: this.client.assetShareValueMultiplierByBank,
82587
84439
  emodeImpactStatus: borrowImpact?.status,
82588
84440
  activePair: borrowImpact?.activePair,
82589
- volatilityFactor: opts?.volatilityFactor
84441
+ volatilityFactor: opts?.volatilityFactor,
84442
+ groupRateLimiter: this.client.group.rateLimiter,
84443
+ ignoreBankLimits: opts?.ignoreBankLimits
82590
84444
  });
82591
84445
  }
82592
84446
  /**
@@ -82604,7 +84458,26 @@ var MarginfiAccountWrapper = class {
82604
84458
  bankAddress,
82605
84459
  assetShareValueMultiplierByBank: this.client.assetShareValueMultiplierByBank,
82606
84460
  activePair,
82607
- volatilityFactor: opts?.volatilityFactor
84461
+ volatilityFactor: opts?.volatilityFactor,
84462
+ groupRateLimiter: this.client.group.rateLimiter,
84463
+ venueStates: this.client.bankIntegrationMap[bankAddress.toBase58()],
84464
+ ignoreBankLimits: opts?.ignoreBankLimits
84465
+ });
84466
+ }
84467
+ /**
84468
+ * Computes max deposit for a bank with auto-injected client data.
84469
+ *
84470
+ * Bounded by the bank's remaining deposit cap and, if provided, the wallet balance.
84471
+ *
84472
+ * @param bankAddress - Bank address to check max deposit for
84473
+ * @param opts - Optional wallet balance (UI units) to cap the result
84474
+ */
84475
+ computeMaxDepositForBank(bankAddress, opts) {
84476
+ return this.account.computeMaxDepositForBank({
84477
+ banksMap: this.client.bankMap,
84478
+ bankAddress,
84479
+ assetShareValueMultiplierByBank: this.client.assetShareValueMultiplierByBank,
84480
+ walletBalance: opts?.walletBalance
82608
84481
  });
82609
84482
  }
82610
84483
  /**
@@ -83018,6 +84891,6 @@ var EmodeSettings = class _EmodeSettings {
83018
84891
  }
83019
84892
  };
83020
84893
 
83021
- export { ADDRESS_LOOKUP_TABLE_FOR_GROUP, ADDRESS_LOOKUP_TABLE_FOR_GROUP_NATIVE_STAKE, ADDRESS_LOOKUP_TABLE_FOR_SWAP, AccountFlags, AccountType, AssetTag, BUNDLE_TX_SIZE, Balance, Bank, BankConfig, BankConfigFlag, BankVaultType, DEFAULT_BRIDGE_MINTS, DEFAULT_CROSSBAR_URL, DEFAULT_FALLBACK_CROSSBAR_URL, DEFAULT_ORACLE_MAX_AGE, DEFAULT_REPAY_ALL_EXTRA_BUFFER_BPS, DISABLED_FLAG, EMPTY_HEALTH_CACHE, EmodeEntryFlags, EmodeFlags, EmodeImpactStatus, EmodeSettings, EmodeTag, FLASHLOAN_ENABLED_FLAG, HOURS_PER_YEAR, HealthCache, HealthCacheFlags, HealthCacheSimulationError, HealthCacheStatus, JUPITER_V6_PROGRAM, JUP_SWAP_LUT_PROGRAM_AUTHORITY_INDEX, LST_MINT, MARGINFI_IDL, MARGINFI_PROGRAM, MARGINFI_PROGRAM_STAGING, MARGINFI_PROGRAM_STAGING_ALT, MARGINFI_SPONSORED_SHARD_ID, MARGINFI_V0_1_10_ACTIVATION, MAX_ACCOUNT_LOCKS, MAX_CONFIDENCE_INTERVAL_RATIO, MAX_TX_SIZE, MAX_U64, MPL_METADATA_PROGRAM_ID, MarginRequirementType, MarginfiAccount, MarginfiAccountWrapper, MarginfiGroup, OperationalState, OracleSetup, PDA_BANK_EMISSIONS_AUTH_SEED, PDA_BANK_EMISSIONS_VAULT_SEED, PDA_BANK_FEE_STATE_SEED, PDA_BANK_FEE_VAULT_AUTH_SEED, PDA_BANK_FEE_VAULT_SEED, PDA_BANK_INSURANCE_VAULT_AUTH_SEED, PDA_BANK_INSURANCE_VAULT_SEED, PDA_BANK_LIQUIDITY_VAULT_AUTH_SEED, PDA_BANK_LIQUIDITY_VAULT_SEED, PDA_MARGINFI_ACCOUNT_SEED, PRIORITY_TX_SIZE, PYTH_PRICE_CONF_INTERVALS, PYTH_PUSH_ORACLE_ID, PYTH_SPONSORED_SHARD_ID, PriceBias, Project0Client, RiskTier, SINGLE_POOL_PROGRAM_ID, STAKED_ORACLE_DISABLED_FLAG, STAKED_ORACLE_USES_ONRAMP_FLAG, STAKE_CONFIG_ID, STAKE_PROGRAM_ID, SWAP_ADAPTERS, SWB_PRICE_CONF_INTERVALS, SYSTEM_PROGRAM_ID, SYSVAR_CLOCK_ID, SYSVAR_RENT_ID, SYSVAR_STAKE_HISTORY_ID, SwapProvider, TRANSFER_ACCOUNT_AUTHORITY_FLAG, TransactionArenaKeyMap, TransactionBuildingError, TransactionBuildingErrorCode, TransactionConfigMap, TransactionType, USDC_DECIMALS, USDC_MINT, USDT_MINT, WSOL_MINT, ZERO_ORACLE_KEY, accountConflictsWithBridgeBank, accountFlagToBN, addOracleToBanksIx, addTransactionMetadata, adjustPriceComponent, aprToApy, apyToApr, balanceToDto, bankConfigRawToDto, bankConfigToBankConfigRaw, bankMetadataMapToDto, bankMetadataToDto, bankRateLimiterRawToDto, bankRawToDto, bigNumberToWrappedI80F48, bpsToPercentile, buildCollateralLegIxs, calculateApyFromInterest, calculateInterestFromApy, capConfidenceInterval, categorizePythBanks, checkBatchOracleCrankability, checkJupiterFeeAccount, checkMultipleOraclesCrankability, checkTitanFeeAccount, chunkedGetRawMultipleAccountInfoOrdered, chunkedGetRawMultipleAccountInfoOrderedWithNulls, chunkedGetRawMultipleAccountInfos, classifyAndValidate, compileFlashloanPrecheck, composeBridgedSwap, composeRemainingAccounts, computeAccountValue, computeActiveEmodePairs, computeAssetHealthComponent, computeAssetUsdValue, computeBalanceUsdValue, computeBankBorrowApy, computeBankBorrowCapRemaining, computeBankDepositCapRemaining, computeBankMetrics, computeBankPoolSize, computeBankSupplyApy, computeBankTotalBorrows, computeBankTotalBorrowsUsd, computeBankTotalDeposits, computeBankTotalDepositsUsd, computeBaseInterestRate, computeBorrowEstimateForRepay, computeClaimedEmissions, computeClosePositionTokenAmount, computeEmodeImpacts, computeFlashLoanNonSwapBudget, computeFlashloanSwapConstraints, computeFreeCollateralFromBalances, computeFreeCollateralFromCache, computeHealthAccountMetas, computeHealthCacheStatus, computeHealthCheckAccounts, computeHealthComponentsFromBalances, computeHealthComponentsFromCache, computeInterestRates, computeLiabilityHealthComponent, computeLiabilityUsdValue, computeLiquidationPriceForBank, computeLoopingParams, computeLowestEmodeWeights, computeMaxBorrowForBank, computeMaxLeverage, computeMaxWithdrawForBank, computeNetApy, computeProjectedActiveBalancesNoCpi, computeProjectedActiveBanksNoCpi, computeQuantity, computeQuantityUi, computeRemainingCapacity, computeSmartCrank, computeStakedBankMultipliers, computeTotalOutstandingEmissions, computeTvl, computeUsdValue, computeUtilizationRate, computeV0TxSize, convertVoteAccCoeffsToBankCoeffs, createActiveEmodePairFromPairs, createEmptyBalance, decodeAccountRaw, decodeBankRaw, decodeInstruction, decompileV0Transaction, deriveBankEmissionsAuth, deriveBankEmissionsVault, deriveBankFeeVault, deriveBankFeeVaultAuthority, deriveBankInsuranceVault, deriveBankInsuranceVaultAuthority, deriveBankLiquidityVault, deriveBankLiquidityVaultAuthority, deriveFeeState, deriveMarginfiAccount, deserializeInstruction, deserializeLut, deserializeSwapEngineRequest, deserializeSwapEngineResult, dtoToBalance, dtoToBank, dtoToBankConfig, dtoToBankConfigRaw, dtoToBankMetadata, dtoToBankMetadataMap, dtoToBankRateLimiter, dtoToBankRateLimiterRaw, dtoToBankRaw, dtoToEmodeSettings, dtoToEmodeSettingsRaw, dtoToGroup, dtoToHealthCache, dtoToInterestRateConfig, dtoToMarginfiAccount, dtoToOraclePrice, dtoToValidatorStakeGroup, emodeSettingsRawToDto, extractPythOracleKeys, fetchBank, fetchBankIntegrationMetadata, fetchGammaLpVault, fetchGammaWithdrawReceipt, fetchMarginfiAccountActiveBalancesForBank, fetchMarginfiAccountAddresses, fetchMarginfiAccountAddressesHoldingBank, fetchMarginfiAccountData, fetchMultipleBanks, fetchNativeStakeAccounts, fetchOracleData, fetchProgramForMints, fetchPythOracleData, fetchPythOraclePricesFromAPI, fetchPythOraclePricesFromChain, fetchStakeAccount, fetchStakePoolActiveStates, fetchStakePoolMev, fetchSwbOracleAccountsFromAPI, fetchSwbOracleAccountsFromChain, fetchSwbOracleData, fetchSwbOraclePricesFromAPI, fetchSwbOraclePricesFromCrossbar, findRandomAvailableAccountIndex, freezeBankConfigIx, generateDummyAccount, getAccountKeys, getActiveAccountFlags, getActiveBalances, getActiveEmodeEntryFlags, getActiveEmodeFlags, getActiveHealthCacheFlags, getAssetQuantity, getAssetShares, getAssetWeight, getBalance, getBalanceUsdValueWithPriceBias, getBankVaultAuthority, getBankVaultSeeds, getBirdeyeFallbackPricesByFeedId, getBirdeyePricesForMints, getConfig, getDriftCTokenMultiplier, getDriftMetadata, getDriftStatesDto, getEmodePairs, getExactOutEstimate, getFallbackPricesByFeedId, getFallbackPricesForMints, getHealthCacheStatusDescription, getHealthSimulationTransactions, getJupLendFTokenMultiplier, getJupLendMetadata, getJupLendStatesDto, getJupiterReferralFeeAccount, getJupiterSwapIxsForFlashloan, getKaminoCTokenMultiplier, getKaminoMetadata, getKaminoStatesDto, getLiabilityQuantity, getLiabilityShares, getLiabilityWeight, getOracleSourceFromBank, getOracleSourceFromOracleSetup, getOracleSourceNameFromKey, getPrice, getPriceWithConfidence, getStakedBankMetadataMap, getSwapAdapter, getSwapIxsForFlashloan, getTitanExactOutEstimate, getTitanSwapIxsForFlashloan, getTotalAccountKeys, getTotalAssetQuantity, getTotalLiabilityQuantity, getTxSize, getValidatorVoteAccountByBank, getWritableAccountKeys, groupToDto, hasAccountFlag, hasEmodeEntryFlag, hasEmodeFlag, hasHealthCacheFlag, healthCacheToDto, isBridgeConflictError, isDecomposableSwapError, isDepositIx, isFlashloan, isGroupRateLimiterEnabled, isMarginfiV0110Live, isStandardBorrowable, isStandardDepositable, isV0Tx, isWeightedPrice, isWholePosition, makeAccountTransferToNewAccountTx, makeAddPermissionlessStakedBankIx, makeBeginFlashLoanIx3 as makeBeginFlashLoanIx, makeBorrowIx3 as makeBorrowIx, makeBorrowTx, makeBridgedLoopTx, makeBridgedSwapCollateralTx, makeBridgedSwapDebtTx, makeBulkRepayTx, makeBulkWithdrawTx, makeBundleTipIx, makeCloseMarginfiAccountIx, makeCloseMarginfiAccountTx, makeCrankSwbFeedIx, makeCreateAccountIxWithProjection, makeCreateAccountTxWithProjection, makeCreateMarginfiAccountIx, makeCreateMarginfiAccountTx, makeDepositIx3 as makeDepositIx, makeDepositTx, makeDriftDepositIx3 as makeDriftDepositIx, makeDriftDepositTx, makeDriftWithdrawIx3 as makeDriftWithdrawIx, makeDriftWithdrawTx, makeEndFlashLoanIx3 as makeEndFlashLoanIx, makeFlashLoanTx, makeJuplendDepositIx2 as makeJuplendDepositIx, makeJuplendDepositTx, makeJuplendWithdrawIx2 as makeJuplendWithdrawIx, makeJuplendWithdrawTx, makeKaminoDepositIx3 as makeKaminoDepositIx, makeKaminoDepositTx, makeKaminoWithdrawIx3 as makeKaminoWithdrawIx, makeKaminoWithdrawTx, makeLoopTx, makeMergeStakeAccountsTx, makeMintStakedLstIx, makeMintStakedLstTx, makePoolAddBankIx3 as makePoolAddBankIx, makePoolConfigureBankIx3 as makePoolConfigureBankIx, makePriorityFeeIx, makePriorityFeeMicroIx, makePulseHealthIx2 as makePulseHealthIx, makeRedeemStakedLstIx, makeRedeemStakedLstTx, makeRefreshIntegrationBanksIxs, makeRefreshKaminoBanksIxs, makeRepayIx3 as makeRepayIx, makeRepayTx, makeRepayWithCollatTx, makeRollPtTx, makeSetupIx, makeSmartCrankSwbFeedIx, makeSmartCrankSwbFeedIxForAccounts, makeSwapCollateralTx, makeSwapDebtTx, makeTransferPositionsTx, makeTxPriorityIx, makeUnwrapSolIx, makeUpdateDriftMarketIxs, makeUpdateJupLendRateIxs, makeUpdateSwbFeedIx, makeVaultCompleteWithdrawalIx, makeVaultCompleteWithdrawalTx, makeVaultDepositIx, makeVaultDepositTx, makeVaultDepositWithSwapTx, makeVaultWithdrawIx, makeVaultWithdrawTx, makeVersionedTransaction, makeWithdrawIx3 as makeWithdrawIx, makeWithdrawTx, makeWrapSolIxs, mapBrokenFeedsToOraclePrices, mapJupiterQuoteToSwapQuoteResult, mapPythBanksToOraclePrices, mapSwbBanksToOraclePrices, marginfiAccountToDto, mergeBridgeQuotes, mergeBridgeQuotesDebt, mergeBridgeQuotesLoop, nativeToUi, oraclePriceToDto, parseBalanceRaw, parseBankConfigRaw, parseBankRateLimiterRaw, parseBankRaw, parseEmodeSettingsRaw, parseEmodeTag, parseHealthCacheRaw, parseMarginfiAccountRaw, parseOperationalState, parseOracleSetup, parseOraclePriceData as parsePriceInfo, parseRiskTier, parseRpcPythPriceData, parseSwbOraclePriceData, partitionBanksByCrankability, patchDepositAmount, requireBank, requireTokenProgram, resolveAmount, resolveBridgeCandidateBanks, resolvePinnedSwapRoute, resolveTokenProgramForMint, resolveVaultTokenProgram, runSwapEngine, selectLutsForAccountAction, selectLutsForBanks, selectSwapBridges, serializeBankConfigOpt, serializeInstruction, serializeInterestRateConfig, serializeLut, serializeOperationalState, serializeOracleSetup, serializeOracleSetupToIndex, serializeRiskTier, serializeSwapEngineRequest, serializeSwapEngineResult, sharedBridgeLegContext, shortenAddress, simulateAccountHealthCache, simulateAccountHealthCacheWithFallback, simulateBundle, splitInstructionsToFitTransactions, swapEngineProvidersFromOpts, swapEngineQuoteFieldsFromOpts, toBankConfigDto, toBankDto, toBankRateLimiterDto, toBigNumber, toEmodeSettingsDto, toInterestRateConfigDto, toJupiterConfig, toNumber, tryBridgeCandidates, uiToNative, uiToNativeBigNumber, validatorStakeGroupToDto, wrappedI80F48toBigNumber };
84894
+ export { ADDRESS_LOOKUP_TABLE_FOR_GROUP, ADDRESS_LOOKUP_TABLE_FOR_GROUP_NATIVE_STAKE, ADDRESS_LOOKUP_TABLE_FOR_SWAP, AccountFlags, AccountType, AssetTag, BUNDLE_TX_SIZE, Balance, Bank, BankConfig, BankConfigFlag, BankVaultType, DEFAULT_BRIDGE_MINTS, DEFAULT_CROSSBAR_URL, DEFAULT_FALLBACK_CROSSBAR_URL, DEFAULT_ORACLE_MAX_AGE, DEFAULT_REPAY_ALL_EXTRA_BUFFER_BPS, DISABLED_FLAG, EMPTY_HEALTH_CACHE, EXECUTION_HEADROOM_SECONDS, EmodeEntryFlags, EmodeFlags, EmodeImpactStatus, EmodeSettings, EmodeTag, FLASHLOAN_ENABLED_FLAG, HOURS_PER_YEAR, HealthCache, HealthCacheFlags, HealthCacheSimulationError, HealthCacheStatus, JUPITER_V6_PROGRAM, JUP_SWAP_LUT_PROGRAM_AUTHORITY_INDEX, LST_MINT, MARGINFI_IDL, MARGINFI_PROGRAM, MARGINFI_PROGRAM_STAGING, MARGINFI_PROGRAM_STAGING_ALT, MARGINFI_SPONSORED_SHARD_ID, MARGINFI_V0_1_10_ACTIVATION, MAX_ACCOUNT_LOCKS, MAX_CONFIDENCE_INTERVAL_RATIO, MAX_TX_SIZE, MAX_U64, MPL_METADATA_PROGRAM_ID, MarginRequirementType, MarginfiAccount, MarginfiAccountWrapper, MarginfiGroup, OperationalState, OracleSetup, PDA_BANK_EMISSIONS_AUTH_SEED, PDA_BANK_EMISSIONS_VAULT_SEED, PDA_BANK_FEE_STATE_SEED, PDA_BANK_FEE_VAULT_AUTH_SEED, PDA_BANK_FEE_VAULT_SEED, PDA_BANK_INSURANCE_VAULT_AUTH_SEED, PDA_BANK_INSURANCE_VAULT_SEED, PDA_BANK_LIQUIDITY_VAULT_AUTH_SEED, PDA_BANK_LIQUIDITY_VAULT_SEED, PDA_MARGINFI_ACCOUNT_SEED, PRIORITY_TX_SIZE, PYTH_PRICE_CONF_INTERVALS, PYTH_PUSH_ORACLE_ID, PYTH_SPONSORED_SHARD_ID, PriceBias, Project0Client, RiskTier, SECONDS_PER_YEAR, SINGLE_POOL_PROGRAM_ID, STAKED_ORACLE_DISABLED_FLAG, STAKED_ORACLE_USES_ONRAMP_FLAG, STAKE_CONFIG_ID, STAKE_PROGRAM_ID, SWAP_ADAPTERS, SWB_PRICE_CONF_INTERVALS, SYSTEM_PROGRAM_ID, SYSVAR_CLOCK_ID, SYSVAR_RENT_ID, SYSVAR_STAKE_HISTORY_ID, SwapProvider, TRANSFER_ACCOUNT_AUTHORITY_FLAG, TransactionArenaKeyMap, TransactionBuildingError, TransactionBuildingErrorCode, TransactionConfigMap, TransactionType, U64_MAX, USDC_DECIMALS, USDC_MINT, USDT_MINT, VENUE_AVAILABLE_LIQUIDITY_BUFFER, WSOL_MINT, ZERO_ORACLE_KEY, accountConflictsWithBridgeBank, accountFlagToBN, addOracleToBanksIx, addTransactionMetadata, adjustPriceComponent, aprToApy, apyToApr, balanceToDto, bankConfigRawToDto, bankConfigToBankConfigRaw, bankMetadataMapToDto, bankMetadataToDto, bankRateLimiterRawToDto, bankRawToDto, bigNumberToWrappedI80F48, bpsToPercentile, buildCollateralLegIxs, calculateApyFromInterest, calculateInterestFromApy, capConfidenceInterval, categorizePythBanks, checkBatchOracleCrankability, checkJupiterFeeAccount, checkMultipleOraclesCrankability, checkTitanFeeAccount, chunkedGetRawMultipleAccountInfoOrdered, chunkedGetRawMultipleAccountInfoOrderedWithNulls, chunkedGetRawMultipleAccountInfos, classifyAndValidate, compileFlashloanPrecheck, composeBridgedSwap, composeRemainingAccounts, computeAccountValue, computeAccrualProjectionSeconds, computeActiveEmodePairs, computeAssetHealthComponent, computeAssetUsdValue, computeBalanceUsdValue, computeBankAvailableLiquidity, computeBankBorrowApy, computeBankBorrowCapRemaining, computeBankDepositCapRemaining, computeBankMetrics, computeBankPoolSize, computeBankProjectedAvailableLiquidity, computeBankRateLimitRemaining, computeBankSupplyApy, computeBankTotalBorrows, computeBankTotalBorrowsUsd, computeBankTotalDeposits, computeBankTotalDepositsUsd, computeBaseInterestRate, computeBorrowEstimateForRepay, computeClaimedEmissions, computeClosePositionTokenAmount, computeEmodeImpacts, computeFlashLoanNonSwapBudget, computeFlashloanSwapConstraints, computeFreeCollateralFromBalances, computeFreeCollateralFromCache, computeGroupRateLimitRemainingUsd, computeHealthAccountMetas, computeHealthCacheStatus, computeHealthCheckAccounts, computeHealthComponentsFromBalances, computeHealthComponentsFromCache, computeInterestRates, computeLiabilityHealthComponent, computeLiabilityUsdValue, computeLiquidationPriceForBank, computeLoopingParams, computeLowestEmodeWeights, computeMaxBorrowForBank, computeMaxDepositForBank, computeMaxLeverage, computeMaxWithdrawForBank, computeNetApy, computeProjectedActiveBalancesNoCpi, computeProjectedActiveBanksNoCpi, computeQuantity, computeQuantityUi, computeRateLimitWindowRemainingCapacity, computeRateLimiterRemainingCapacity, computeRemainingCapacity, computeSmartCrank, computeStakedBankMultipliers, computeTotalOutstandingEmissions, computeTvl, computeUsdValue, computeUtilizationRate, computeV0TxSize, computeVenueAvailableLiquidity, convertVoteAccCoeffsToBankCoeffs, createActiveEmodePairFromPairs, createEmptyBalance, decodeAccountRaw, decodeBankRaw, decodeInstruction, decompileV0Transaction, deriveBankEmissionsAuth, deriveBankEmissionsVault, deriveBankFeeVault, deriveBankFeeVaultAuthority, deriveBankInsuranceVault, deriveBankInsuranceVaultAuthority, deriveBankLiquidityVault, deriveBankLiquidityVaultAuthority, deriveFeeState, deriveMarginfiAccount, deserializeInstruction, deserializeLut, deserializeSwapEngineRequest, deserializeSwapEngineResult, dtoToBalance, dtoToBank, dtoToBankConfig, dtoToBankConfigRaw, dtoToBankMetadata, dtoToBankMetadataMap, dtoToBankRateLimiter, dtoToBankRateLimiterRaw, dtoToBankRaw, dtoToEmodeSettings, dtoToEmodeSettingsRaw, dtoToGroup, dtoToHealthCache, dtoToInterestRateConfig, dtoToMarginfiAccount, dtoToOraclePrice, dtoToValidatorStakeGroup, emodeSettingsRawToDto, extractPythOracleKeys, fetchBank, fetchBankIntegrationMetadata, fetchGammaLpVault, fetchGammaWithdrawReceipt, fetchMarginfiAccountActiveBalancesForBank, fetchMarginfiAccountAddresses, fetchMarginfiAccountAddressesHoldingBank, fetchMarginfiAccountData, fetchMultipleBanks, fetchNativeStakeAccounts, fetchOracleData, fetchProgramForMints, fetchPythOracleData, fetchPythOraclePricesFromAPI, fetchPythOraclePricesFromChain, fetchStakeAccount, fetchStakePoolActiveStates, fetchStakePoolMev, fetchSwbOracleAccountsFromAPI, fetchSwbOracleAccountsFromChain, fetchSwbOracleData, fetchSwbOraclePricesFromAPI, fetchSwbOraclePricesFromCrossbar, findRandomAvailableAccountIndex, freezeBankConfigIx, generateDummyAccount, getAccountKeys, getActiveAccountFlags, getActiveBalances, getActiveEmodeEntryFlags, getActiveEmodeFlags, getActiveHealthCacheFlags, getAssetQuantity, getAssetShares, getAssetWeight, getBalance, getBalanceUsdValueWithPriceBias, getBankVaultAuthority, getBankVaultSeeds, getBirdeyeFallbackPricesByFeedId, getBirdeyePricesForMints, getConfig, getDriftCTokenMultiplier, getDriftMetadata, getDriftStatesDto, getEffectiveDepositLimit, getEmodePairs, getExactOutEstimate, getFallbackPricesByFeedId, getFallbackPricesForMints, getHealthCacheStatusDescription, getHealthSimulationTransactions, getJupLendFTokenMultiplier, getJupLendMetadata, getJupLendStatesDto, getJupiterReferralFeeAccount, getJupiterSwapIxsForFlashloan, getKaminoCTokenMultiplier, getKaminoMetadata, getKaminoStatesDto, getLiabilityQuantity, getLiabilityShares, getLiabilityWeight, getOracleSourceFromBank, getOracleSourceFromOracleSetup, getOracleSourceNameFromKey, getPrice, getPriceWithConfidence, getStakedBankMetadataMap, getSwapAdapter, getSwapIxsForFlashloan, getTitanExactOutEstimate, getTitanSwapIxsForFlashloan, getTotalAccountKeys, getTotalAssetQuantity, getTotalLiabilityQuantity, getTxSize, getValidatorVoteAccountByBank, getWritableAccountKeys, groupToDto, hasAccountFlag, hasEmodeEntryFlag, hasEmodeFlag, hasHealthCacheFlag, healthCacheToDto, isBorrowLimitActive, isBridgeConflictError, isDecomposableSwapError, isDepositIx, isDepositLimitActive, isFlashloan, isGroupRateLimiterEnabled, isMarginfiV0110Live, isStandardBorrowable, isStandardDepositable, isV0Tx, isWeightedPrice, isWholePosition, makeAccountTransferToNewAccountTx, makeAddPermissionlessStakedBankIx, makeBeginFlashLoanIx3 as makeBeginFlashLoanIx, makeBorrowIx3 as makeBorrowIx, makeBorrowTx, makeBridgedLoopTx, makeBridgedSwapCollateralTx, makeBridgedSwapDebtTx, makeBulkRepayTx, makeBulkWithdrawTx, makeBundleTipIx, makeCloseMarginfiAccountIx, makeCloseMarginfiAccountTx, makeCrankSwbFeedIx, makeCreateAccountIxWithProjection, makeCreateAccountTxWithProjection, makeCreateMarginfiAccountIx, makeCreateMarginfiAccountTx, makeDepositIx3 as makeDepositIx, makeDepositTx, makeDriftDepositIx3 as makeDriftDepositIx, makeDriftDepositTx, makeDriftWithdrawIx3 as makeDriftWithdrawIx, makeDriftWithdrawTx, makeEndFlashLoanIx3 as makeEndFlashLoanIx, makeFlashLoanTx, makeJuplendDepositIx2 as makeJuplendDepositIx, makeJuplendDepositTx, makeJuplendWithdrawIx2 as makeJuplendWithdrawIx, makeJuplendWithdrawTx, makeKaminoDepositIx3 as makeKaminoDepositIx, makeKaminoDepositTx, makeKaminoWithdrawIx3 as makeKaminoWithdrawIx, makeKaminoWithdrawTx, makeLoopTx, makeMergeStakeAccountsTx, makeMintStakedLstIx, makeMintStakedLstTx, makePoolAddBankIx3 as makePoolAddBankIx, makePoolConfigureBankIx3 as makePoolConfigureBankIx, makePriorityFeeIx, makePriorityFeeMicroIx, makePulseHealthIx2 as makePulseHealthIx, makeRedeemStakedLstIx, makeRedeemStakedLstTx, makeRefreshIntegrationBanksIxs, makeRefreshKaminoBanksIxs, makeRepayIx3 as makeRepayIx, makeRepayTx, makeRepayWithCollatTx, makeRollPtTx, makeSetupIx, makeSmartCrankSwbFeedIx, makeSmartCrankSwbFeedIxForAccounts, makeSwapCollateralTx, makeSwapDebtTx, makeTransferPositionsTx, makeTxPriorityIx, makeUnwrapSolIx, makeUpdateDriftMarketIxs, makeUpdateJupLendRateIxs, makeUpdateSwbFeedIx, makeVaultCompleteWithdrawalIx, makeVaultCompleteWithdrawalTx, makeVaultDepositIx, makeVaultDepositTx, makeVaultDepositWithSwapTx, makeVaultWithdrawIx, makeVaultWithdrawTx, makeVersionedTransaction, makeWithdrawIx3 as makeWithdrawIx, makeWithdrawTx, makeWrapSolIxs, mapBrokenFeedsToOraclePrices, mapJupiterQuoteToSwapQuoteResult, mapPythBanksToOraclePrices, mapSwbBanksToOraclePrices, marginfiAccountToDto, mergeBridgeQuotes, mergeBridgeQuotesDebt, mergeBridgeQuotesLoop, nativeToUi, oraclePriceToDto, parseBalanceRaw, parseBankConfigRaw, parseBankRateLimiterRaw, parseBankRaw, parseEmodeSettingsRaw, parseEmodeTag, parseHealthCacheRaw, parseMarginfiAccountRaw, parseOperationalState, parseOracleSetup, parseOraclePriceData as parsePriceInfo, parseRiskTier, parseRpcPythPriceData, parseSwbOraclePriceData, partitionBanksByCrankability, patchDepositAmount, requireBank, requireTokenProgram, resolveAmount, resolveBridgeCandidateBanks, resolvePinnedSwapRoute, resolveTokenProgramForMint, resolveVaultTokenProgram, runSwapEngine, selectLutsForAccountAction, selectLutsForBanks, selectSwapBridges, serializeBankConfigOpt, serializeInstruction, serializeInterestRateConfig, serializeLut, serializeOperationalState, serializeOracleSetup, serializeOracleSetupToIndex, serializeRiskTier, serializeSwapEngineRequest, serializeSwapEngineResult, sharedBridgeLegContext, shortenAddress, simulateAccountHealthCache, simulateAccountHealthCacheWithFallback, simulateBundle, splitInstructionsToFitTransactions, swapEngineProvidersFromOpts, swapEngineQuoteFieldsFromOpts, toBankConfigDto, toBankDto, toBankRateLimiterDto, toBigNumber, toEmodeSettingsDto, toInterestRateConfigDto, toJupiterConfig, toNumber, tryBridgeCandidates, uiToNative, uiToNativeBigNumber, validatorStakeGroupToDto, wrappedI80F48toBigNumber };
83022
84895
  //# sourceMappingURL=index.js.map
83023
84896
  //# sourceMappingURL=index.js.map