@perena/vault-sdk 1.0.18 → 1.0.20

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (4) hide show
  1. package/README.md +63 -7
  2. package/dist/index.d.ts +2721 -505
  3. package/dist/index.js +2915 -585
  4. package/package.json +1 -1
package/dist/index.d.ts CHANGED
@@ -28,6 +28,20 @@ declare const PROTOCOL_ADMIN: Address;
28
28
  */
29
29
  declare const PROTOCOL_FEE_RECIPIENT: Address;
30
30
  declare const PROGRAM_FEE_EXEMPT_OWNER_WHITELIST: readonly Address[];
31
+ /**
32
+ * Hardcoded whitelist of wallets permitted to create vaults (via `createVault`).
33
+ * Must match `VAULT_CREATOR_WHITELIST` in the on-chain program constants.
34
+ *
35
+ * Vault ids are a finite `u16` space and creation is otherwise open, so gating
36
+ * it behind a curated set of addresses prevents an attacker from exhausting
37
+ * every id and DoSing the protocol. Only enforced in non-`local` program builds
38
+ * (production / staging); `local` test builds bypass it.
39
+ *
40
+ * TODO: replace the placeholder entry (the System Program id — a safe, unusable
41
+ * placeholder) with the real curator wallet(s) for production, in lockstep with
42
+ * the non-`local` program constant.
43
+ */
44
+ declare const VAULT_CREATOR_WHITELIST: Address[];
31
45
  declare const TOKEN_PROGRAM_ID: Address;
32
46
  /**
33
47
  * Default (zero) pubkey — the on-chain `Pubkey::default()`. Used as the
@@ -1498,27 +1512,24 @@ type Bankineco = {
1498
1512
  {
1499
1513
  "name": "shareMint";
1500
1514
  "docs": [
1501
- "Curator-supplied share mint. Unless `for_migration`, must have zero supply",
1502
- "with mint authority on the curator; authority is transferred to the vault",
1503
- "PDA on success. Migration uses the legacy bank mint and defers transfer."
1515
+ "Curator-supplied share mint. Its decimals must match `asset_mint`.",
1516
+ "Unless `for_migration`, it must have zero supply with mint authority on",
1517
+ "the curator; authority is transferred to the vault PDA on success.",
1518
+ "Migration uses the legacy bank mint and defers transfer."
1504
1519
  ];
1505
1520
  "writable": true;
1506
1521
  },
1507
1522
  {
1508
1523
  "name": "assetMint";
1509
1524
  "docs": [
1510
- "Base (strict) asset mint. Required in `Strict` mode so the base holding is",
1511
- "created with the mint's real decimals and token program; omitted in",
1512
- "`Whitelist` mode."
1525
+ "Base asset mint used to create the vault's permanent base holding."
1513
1526
  ];
1514
- "optional": true;
1515
1527
  },
1516
1528
  {
1517
1529
  "name": "assetTokenProgram";
1518
1530
  "docs": [
1519
1531
  "Token program owning `asset_mint`."
1520
1532
  ];
1521
- "optional": true;
1522
1533
  },
1523
1534
  {
1524
1535
  "name": "tokenProgram";
@@ -1578,6 +1589,11 @@ type Bankineco = {
1578
1589
  "accounts": [
1579
1590
  {
1580
1591
  "name": "user";
1592
+ "docs": [
1593
+ "Token-account authority. May be a transaction signer or a PDA signer",
1594
+ "supplied by an integrating program through `invoke_signed`."
1595
+ ];
1596
+ "signer": true;
1581
1597
  },
1582
1598
  {
1583
1599
  "name": "vault";
@@ -1854,26 +1870,24 @@ type Bankineco = {
1854
1870
  ];
1855
1871
  },
1856
1872
  {
1857
- "name": "executeShareSwap";
1858
- "docs": [
1859
- "Convert regular vault shares into tranche shares (senior or junior).",
1860
- "No underlying assets move; the backing simply shifts from the regular",
1861
- "pool into the selected tranche class."
1862
- ];
1873
+ "name": "executeDepositFeeExempt";
1863
1874
  "discriminator": [
1864
- 127,
1865
- 53,
1866
- 127,
1867
- 156,
1868
- 151,
1869
- 80,
1870
- 135,
1871
- 67
1875
+ 99,
1876
+ 227,
1877
+ 32,
1878
+ 27,
1879
+ 95,
1880
+ 184,
1881
+ 49,
1882
+ 2
1872
1883
  ];
1873
1884
  "accounts": [
1874
1885
  {
1875
1886
  "name": "user";
1876
- "writable": true;
1887
+ "docs": [
1888
+ "Token-account authority. May be a transaction signer or a PDA signer",
1889
+ "supplied by an integrating program through `invoke_signed`."
1890
+ ];
1877
1891
  "signer": true;
1878
1892
  },
1879
1893
  {
@@ -1885,27 +1899,23 @@ type Bankineco = {
1885
1899
  },
1886
1900
  {
1887
1901
  "name": "vaultTrancheState";
1888
- "writable": true;
1902
+ "optional": true;
1889
1903
  },
1890
1904
  {
1891
- "name": "shareMint";
1905
+ "name": "assetMint";
1892
1906
  "docs": [
1893
- "Regular vault share mint. The user burns from this."
1907
+ "Mint being deposited. Must match the vault's asset-mode rule."
1894
1908
  ];
1895
- "writable": true;
1896
1909
  },
1897
1910
  {
1898
- "name": "trancheShareMint";
1911
+ "name": "shareMint";
1899
1912
  "docs": [
1900
- "Target tranche share mint (senior or junior, as selected by `kind`)."
1913
+ "Vault's share mint (mint authority = vault PDA)."
1901
1914
  ];
1902
1915
  "writable": true;
1903
1916
  },
1904
1917
  {
1905
- "name": "userShareAta";
1906
- "docs": [
1907
- "User's regular-share ATA (burned from)."
1908
- ];
1918
+ "name": "userAssetAta";
1909
1919
  "writable": true;
1910
1920
  "pda": {
1911
1921
  "seeds": [
@@ -1915,11 +1925,11 @@ type Bankineco = {
1915
1925
  },
1916
1926
  {
1917
1927
  "kind": "account";
1918
- "path": "shareTokenProgram";
1928
+ "path": "assetTokenProgram";
1919
1929
  },
1920
1930
  {
1921
1931
  "kind": "account";
1922
- "path": "shareMint";
1932
+ "path": "assetMint";
1923
1933
  }
1924
1934
  ];
1925
1935
  "program": {
@@ -1962,24 +1972,21 @@ type Bankineco = {
1962
1972
  };
1963
1973
  },
1964
1974
  {
1965
- "name": "userTrancheShareAta";
1966
- "docs": [
1967
- "User's tranche-share ATA (minted into, created if absent)."
1968
- ];
1975
+ "name": "vaultAssetAta";
1969
1976
  "writable": true;
1970
1977
  "pda": {
1971
1978
  "seeds": [
1972
1979
  {
1973
1980
  "kind": "account";
1974
- "path": "user";
1981
+ "path": "vault";
1975
1982
  },
1976
1983
  {
1977
1984
  "kind": "account";
1978
- "path": "trancheShareTokenProgram";
1985
+ "path": "assetTokenProgram";
1979
1986
  },
1980
1987
  {
1981
1988
  "kind": "account";
1982
- "path": "trancheShareMint";
1989
+ "path": "assetMint";
1983
1990
  }
1984
1991
  ];
1985
1992
  "program": {
@@ -2022,85 +2029,21 @@ type Bankineco = {
2022
2029
  };
2023
2030
  },
2024
2031
  {
2025
- "name": "shareTokenProgram";
2026
- "docs": [
2027
- "Token program for the regular vault share mint."
2028
- ];
2029
- },
2030
- {
2031
- "name": "trancheShareTokenProgram";
2032
+ "name": "feeVault";
2032
2033
  "docs": [
2033
- "Token program for the tranche share mint."
2034
+ "Per-vault fee-vault PDA: token authority + accounting. The mint fee",
2035
+ "accrues here and is swept to the fee collector by the permissionless crank."
2034
2036
  ];
2035
- },
2036
- {
2037
- "name": "associatedTokenProgram";
2038
- "address": "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL";
2039
- },
2040
- {
2041
- "name": "systemProgram";
2042
- "address": "11111111111111111111111111111111";
2043
- }
2044
- ];
2045
- "args": [
2046
- {
2047
- "name": "kind";
2048
- "type": {
2049
- "defined": {
2050
- "name": "trancheKind";
2051
- };
2052
- };
2053
- },
2054
- {
2055
- "name": "shareAmount";
2056
- "type": "u64";
2057
- }
2058
- ];
2059
- },
2060
- {
2061
- "name": "executeTrancheDeposit";
2062
- "discriminator": [
2063
- 231,
2064
- 224,
2065
- 46,
2066
- 207,
2067
- 175,
2068
- 45,
2069
- 77,
2070
- 148
2071
- ];
2072
- "accounts": [
2073
- {
2074
- "name": "user";
2075
- "writable": true;
2076
- "signer": true;
2077
- },
2078
- {
2079
- "name": "vault";
2080
- "writable": true;
2081
- },
2082
- {
2083
- "name": "vaultOracle";
2084
- },
2085
- {
2086
- "name": "vaultTrancheState";
2087
- "writable": true;
2088
- },
2089
- {
2090
- "name": "assetMint";
2091
- },
2092
- {
2093
- "name": "trancheShareMint";
2094
2037
  "writable": true;
2095
2038
  },
2096
2039
  {
2097
- "name": "userAssetAta";
2040
+ "name": "feeVaultAta";
2098
2041
  "writable": true;
2099
2042
  "pda": {
2100
2043
  "seeds": [
2101
2044
  {
2102
2045
  "kind": "account";
2103
- "path": "user";
2046
+ "path": "feeVault";
2104
2047
  },
2105
2048
  {
2106
2049
  "kind": "account";
@@ -2151,21 +2094,21 @@ type Bankineco = {
2151
2094
  };
2152
2095
  },
2153
2096
  {
2154
- "name": "vaultAssetAta";
2097
+ "name": "userShareAta";
2155
2098
  "writable": true;
2156
2099
  "pda": {
2157
2100
  "seeds": [
2158
2101
  {
2159
2102
  "kind": "account";
2160
- "path": "vault";
2103
+ "path": "user";
2161
2104
  },
2162
2105
  {
2163
2106
  "kind": "account";
2164
- "path": "assetTokenProgram";
2107
+ "path": "shareTokenProgram";
2165
2108
  },
2166
2109
  {
2167
2110
  "kind": "account";
2168
- "path": "assetMint";
2111
+ "path": "shareMint";
2169
2112
  }
2170
2113
  ];
2171
2114
  "program": {
@@ -2208,29 +2151,92 @@ type Bankineco = {
2208
2151
  };
2209
2152
  },
2210
2153
  {
2211
- "name": "feeVault";
2154
+ "name": "assetTokenProgram";
2155
+ },
2156
+ {
2157
+ "name": "shareTokenProgram";
2158
+ }
2159
+ ];
2160
+ "args": [
2161
+ {
2162
+ "name": "amount";
2163
+ "type": "u64";
2164
+ },
2165
+ {
2166
+ "name": "signerSeeds";
2167
+ "type": {
2168
+ "vec": "bytes";
2169
+ };
2170
+ }
2171
+ ];
2172
+ },
2173
+ {
2174
+ "name": "executeShareSwap";
2175
+ "docs": [
2176
+ "Convert regular vault shares into tranche shares (senior or junior).",
2177
+ "No underlying assets move; the backing simply shifts from the regular",
2178
+ "pool into the selected tranche class."
2179
+ ];
2180
+ "discriminator": [
2181
+ 127,
2182
+ 53,
2183
+ 127,
2184
+ 156,
2185
+ 151,
2186
+ 80,
2187
+ 135,
2188
+ 67
2189
+ ];
2190
+ "accounts": [
2191
+ {
2192
+ "name": "user";
2193
+ "writable": true;
2194
+ "signer": true;
2195
+ },
2196
+ {
2197
+ "name": "vault";
2198
+ "writable": true;
2199
+ },
2200
+ {
2201
+ "name": "vaultOracle";
2202
+ },
2203
+ {
2204
+ "name": "vaultTrancheState";
2205
+ "writable": true;
2206
+ },
2207
+ {
2208
+ "name": "shareMint";
2212
2209
  "docs": [
2213
- "Per-vault fee-vault PDA: token authority + accounting. Mint fees",
2214
- "accrue here and are swept by the permissionless fee crank."
2210
+ "Regular vault share mint. The user burns from this."
2215
2211
  ];
2216
2212
  "writable": true;
2217
2213
  },
2218
2214
  {
2219
- "name": "feeVaultAta";
2215
+ "name": "trancheShareMint";
2216
+ "docs": [
2217
+ "Target tranche share mint (senior or junior, as selected by `kind`)."
2218
+ ];
2219
+ "writable": true;
2220
+ },
2221
+ {
2222
+ "name": "userShareAta";
2223
+ "docs": [
2224
+ "User's regular-share ATA (burned from)."
2225
+ ];
2220
2226
  "writable": true;
2221
2227
  "pda": {
2222
2228
  "seeds": [
2223
2229
  {
2224
2230
  "kind": "account";
2225
- "path": "feeVault";
2231
+ "path": "user";
2226
2232
  },
2227
2233
  {
2228
2234
  "kind": "account";
2229
- "path": "assetTokenProgram";
2235
+ "path": "shareTokenProgram";
2230
2236
  },
2231
2237
  {
2232
2238
  "kind": "account";
2233
- "path": "assetMint";
2239
+ "path": "shareMint";
2234
2240
  }
2235
2241
  ];
2236
2242
  "program": {
@@ -2274,6 +2280,9 @@ type Bankineco = {
2274
2280
  },
2275
2281
  {
2276
2282
  "name": "userTrancheShareAta";
2283
+ "docs": [
2284
+ "User's tranche-share ATA (minted into, created if absent)."
2285
+ ];
2277
2286
  "writable": true;
2278
2287
  "pda": {
2279
2288
  "seeds": [
@@ -2283,7 +2292,7 @@ type Bankineco = {
2283
2292
  },
2284
2293
  {
2285
2294
  "kind": "account";
2286
- "path": "shareTokenProgram";
2295
+ "path": "trancheShareTokenProgram";
2287
2296
  },
2288
2297
  {
2289
2298
  "kind": "account";
@@ -2330,10 +2339,16 @@ type Bankineco = {
2330
2339
  };
2331
2340
  },
2332
2341
  {
2333
- "name": "assetTokenProgram";
2342
+ "name": "shareTokenProgram";
2343
+ "docs": [
2344
+ "Token program for the regular vault share mint."
2345
+ ];
2334
2346
  },
2335
2347
  {
2336
- "name": "shareTokenProgram";
2348
+ "name": "trancheShareTokenProgram";
2349
+ "docs": [
2350
+ "Token program for the tranche share mint."
2351
+ ];
2337
2352
  },
2338
2353
  {
2339
2354
  "name": "associatedTokenProgram";
@@ -2354,22 +2369,22 @@ type Bankineco = {
2354
2369
  };
2355
2370
  },
2356
2371
  {
2357
- "name": "amount";
2372
+ "name": "shareAmount";
2358
2373
  "type": "u64";
2359
2374
  }
2360
2375
  ];
2361
2376
  },
2362
2377
  {
2363
- "name": "executeTrancheWithdraw";
2378
+ "name": "executeTrancheDeposit";
2364
2379
  "discriminator": [
2365
- 240,
2366
- 82,
2367
- 254,
2368
- 246,
2369
- 177,
2370
- 29,
2371
- 57,
2372
- 126
2380
+ 231,
2381
+ 224,
2382
+ 46,
2383
+ 207,
2384
+ 175,
2385
+ 45,
2386
+ 77,
2387
+ 148
2373
2388
  ];
2374
2389
  "accounts": [
2375
2390
  {
@@ -2509,6 +2524,71 @@ type Bankineco = {
2509
2524
  };
2510
2525
  };
2511
2526
  },
2527
+ {
2528
+ "name": "feeVault";
2529
+ "docs": [
2530
+ "Per-vault fee-vault PDA: token authority + accounting. Mint fees",
2531
+ "accrue here and are swept by the permissionless fee crank."
2532
+ ];
2533
+ "writable": true;
2534
+ },
2535
+ {
2536
+ "name": "feeVaultAta";
2537
+ "writable": true;
2538
+ "pda": {
2539
+ "seeds": [
2540
+ {
2541
+ "kind": "account";
2542
+ "path": "feeVault";
2543
+ },
2544
+ {
2545
+ "kind": "account";
2546
+ "path": "assetTokenProgram";
2547
+ },
2548
+ {
2549
+ "kind": "account";
2550
+ "path": "assetMint";
2551
+ }
2552
+ ];
2553
+ "program": {
2554
+ "kind": "const";
2555
+ "value": [
2556
+ 140,
2557
+ 151,
2558
+ 37,
2559
+ 143,
2560
+ 78,
2561
+ 36,
2562
+ 137,
2563
+ 241,
2564
+ 187,
2565
+ 61,
2566
+ 16,
2567
+ 41,
2568
+ 20,
2569
+ 142,
2570
+ 13,
2571
+ 131,
2572
+ 11,
2573
+ 90,
2574
+ 19,
2575
+ 153,
2576
+ 218,
2577
+ 255,
2578
+ 16,
2579
+ 132,
2580
+ 4,
2581
+ 142,
2582
+ 123,
2583
+ 216,
2584
+ 219,
2585
+ 233,
2586
+ 248,
2587
+ 89
2588
+ ];
2589
+ };
2590
+ };
2591
+ },
2512
2592
  {
2513
2593
  "name": "userTrancheShareAta";
2514
2594
  "writable": true;
@@ -2524,7 +2604,1684 @@ type Bankineco = {
2524
2604
  },
2525
2605
  {
2526
2606
  "kind": "account";
2527
- "path": "trancheShareMint";
2607
+ "path": "trancheShareMint";
2608
+ }
2609
+ ];
2610
+ "program": {
2611
+ "kind": "const";
2612
+ "value": [
2613
+ 140,
2614
+ 151,
2615
+ 37,
2616
+ 143,
2617
+ 78,
2618
+ 36,
2619
+ 137,
2620
+ 241,
2621
+ 187,
2622
+ 61,
2623
+ 16,
2624
+ 41,
2625
+ 20,
2626
+ 142,
2627
+ 13,
2628
+ 131,
2629
+ 11,
2630
+ 90,
2631
+ 19,
2632
+ 153,
2633
+ 218,
2634
+ 255,
2635
+ 16,
2636
+ 132,
2637
+ 4,
2638
+ 142,
2639
+ 123,
2640
+ 216,
2641
+ 219,
2642
+ 233,
2643
+ 248,
2644
+ 89
2645
+ ];
2646
+ };
2647
+ };
2648
+ },
2649
+ {
2650
+ "name": "assetTokenProgram";
2651
+ },
2652
+ {
2653
+ "name": "shareTokenProgram";
2654
+ },
2655
+ {
2656
+ "name": "associatedTokenProgram";
2657
+ "address": "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL";
2658
+ },
2659
+ {
2660
+ "name": "systemProgram";
2661
+ "address": "11111111111111111111111111111111";
2662
+ }
2663
+ ];
2664
+ "args": [
2665
+ {
2666
+ "name": "kind";
2667
+ "type": {
2668
+ "defined": {
2669
+ "name": "trancheKind";
2670
+ };
2671
+ };
2672
+ },
2673
+ {
2674
+ "name": "amount";
2675
+ "type": "u64";
2676
+ }
2677
+ ];
2678
+ },
2679
+ {
2680
+ "name": "executeTrancheDepositFeeExempt";
2681
+ "discriminator": [
2682
+ 202,
2683
+ 226,
2684
+ 54,
2685
+ 182,
2686
+ 141,
2687
+ 178,
2688
+ 91,
2689
+ 231
2690
+ ];
2691
+ "accounts": [
2692
+ {
2693
+ "name": "user";
2694
+ "writable": true;
2695
+ "signer": true;
2696
+ },
2697
+ {
2698
+ "name": "vault";
2699
+ "writable": true;
2700
+ },
2701
+ {
2702
+ "name": "vaultOracle";
2703
+ },
2704
+ {
2705
+ "name": "vaultTrancheState";
2706
+ "writable": true;
2707
+ },
2708
+ {
2709
+ "name": "assetMint";
2710
+ },
2711
+ {
2712
+ "name": "trancheShareMint";
2713
+ "writable": true;
2714
+ },
2715
+ {
2716
+ "name": "userAssetAta";
2717
+ "writable": true;
2718
+ "pda": {
2719
+ "seeds": [
2720
+ {
2721
+ "kind": "account";
2722
+ "path": "user";
2723
+ },
2724
+ {
2725
+ "kind": "account";
2726
+ "path": "assetTokenProgram";
2727
+ },
2728
+ {
2729
+ "kind": "account";
2730
+ "path": "assetMint";
2731
+ }
2732
+ ];
2733
+ "program": {
2734
+ "kind": "const";
2735
+ "value": [
2736
+ 140,
2737
+ 151,
2738
+ 37,
2739
+ 143,
2740
+ 78,
2741
+ 36,
2742
+ 137,
2743
+ 241,
2744
+ 187,
2745
+ 61,
2746
+ 16,
2747
+ 41,
2748
+ 20,
2749
+ 142,
2750
+ 13,
2751
+ 131,
2752
+ 11,
2753
+ 90,
2754
+ 19,
2755
+ 153,
2756
+ 218,
2757
+ 255,
2758
+ 16,
2759
+ 132,
2760
+ 4,
2761
+ 142,
2762
+ 123,
2763
+ 216,
2764
+ 219,
2765
+ 233,
2766
+ 248,
2767
+ 89
2768
+ ];
2769
+ };
2770
+ };
2771
+ },
2772
+ {
2773
+ "name": "vaultAssetAta";
2774
+ "writable": true;
2775
+ "pda": {
2776
+ "seeds": [
2777
+ {
2778
+ "kind": "account";
2779
+ "path": "vault";
2780
+ },
2781
+ {
2782
+ "kind": "account";
2783
+ "path": "assetTokenProgram";
2784
+ },
2785
+ {
2786
+ "kind": "account";
2787
+ "path": "assetMint";
2788
+ }
2789
+ ];
2790
+ "program": {
2791
+ "kind": "const";
2792
+ "value": [
2793
+ 140,
2794
+ 151,
2795
+ 37,
2796
+ 143,
2797
+ 78,
2798
+ 36,
2799
+ 137,
2800
+ 241,
2801
+ 187,
2802
+ 61,
2803
+ 16,
2804
+ 41,
2805
+ 20,
2806
+ 142,
2807
+ 13,
2808
+ 131,
2809
+ 11,
2810
+ 90,
2811
+ 19,
2812
+ 153,
2813
+ 218,
2814
+ 255,
2815
+ 16,
2816
+ 132,
2817
+ 4,
2818
+ 142,
2819
+ 123,
2820
+ 216,
2821
+ 219,
2822
+ 233,
2823
+ 248,
2824
+ 89
2825
+ ];
2826
+ };
2827
+ };
2828
+ },
2829
+ {
2830
+ "name": "feeVault";
2831
+ "docs": [
2832
+ "Per-vault fee-vault PDA: token authority + accounting. Mint fees",
2833
+ "accrue here and are swept by the permissionless fee crank."
2834
+ ];
2835
+ "writable": true;
2836
+ },
2837
+ {
2838
+ "name": "feeVaultAta";
2839
+ "writable": true;
2840
+ "pda": {
2841
+ "seeds": [
2842
+ {
2843
+ "kind": "account";
2844
+ "path": "feeVault";
2845
+ },
2846
+ {
2847
+ "kind": "account";
2848
+ "path": "assetTokenProgram";
2849
+ },
2850
+ {
2851
+ "kind": "account";
2852
+ "path": "assetMint";
2853
+ }
2854
+ ];
2855
+ "program": {
2856
+ "kind": "const";
2857
+ "value": [
2858
+ 140,
2859
+ 151,
2860
+ 37,
2861
+ 143,
2862
+ 78,
2863
+ 36,
2864
+ 137,
2865
+ 241,
2866
+ 187,
2867
+ 61,
2868
+ 16,
2869
+ 41,
2870
+ 20,
2871
+ 142,
2872
+ 13,
2873
+ 131,
2874
+ 11,
2875
+ 90,
2876
+ 19,
2877
+ 153,
2878
+ 218,
2879
+ 255,
2880
+ 16,
2881
+ 132,
2882
+ 4,
2883
+ 142,
2884
+ 123,
2885
+ 216,
2886
+ 219,
2887
+ 233,
2888
+ 248,
2889
+ 89
2890
+ ];
2891
+ };
2892
+ };
2893
+ },
2894
+ {
2895
+ "name": "userTrancheShareAta";
2896
+ "writable": true;
2897
+ "pda": {
2898
+ "seeds": [
2899
+ {
2900
+ "kind": "account";
2901
+ "path": "user";
2902
+ },
2903
+ {
2904
+ "kind": "account";
2905
+ "path": "shareTokenProgram";
2906
+ },
2907
+ {
2908
+ "kind": "account";
2909
+ "path": "trancheShareMint";
2910
+ }
2911
+ ];
2912
+ "program": {
2913
+ "kind": "const";
2914
+ "value": [
2915
+ 140,
2916
+ 151,
2917
+ 37,
2918
+ 143,
2919
+ 78,
2920
+ 36,
2921
+ 137,
2922
+ 241,
2923
+ 187,
2924
+ 61,
2925
+ 16,
2926
+ 41,
2927
+ 20,
2928
+ 142,
2929
+ 13,
2930
+ 131,
2931
+ 11,
2932
+ 90,
2933
+ 19,
2934
+ 153,
2935
+ 218,
2936
+ 255,
2937
+ 16,
2938
+ 132,
2939
+ 4,
2940
+ 142,
2941
+ 123,
2942
+ 216,
2943
+ 219,
2944
+ 233,
2945
+ 248,
2946
+ 89
2947
+ ];
2948
+ };
2949
+ };
2950
+ },
2951
+ {
2952
+ "name": "assetTokenProgram";
2953
+ },
2954
+ {
2955
+ "name": "shareTokenProgram";
2956
+ },
2957
+ {
2958
+ "name": "associatedTokenProgram";
2959
+ "address": "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL";
2960
+ },
2961
+ {
2962
+ "name": "systemProgram";
2963
+ "address": "11111111111111111111111111111111";
2964
+ }
2965
+ ];
2966
+ "args": [
2967
+ {
2968
+ "name": "kind";
2969
+ "type": {
2970
+ "defined": {
2971
+ "name": "trancheKind";
2972
+ };
2973
+ };
2974
+ },
2975
+ {
2976
+ "name": "amount";
2977
+ "type": "u64";
2978
+ },
2979
+ {
2980
+ "name": "signerSeeds";
2981
+ "type": {
2982
+ "vec": "bytes";
2983
+ };
2984
+ }
2985
+ ];
2986
+ },
2987
+ {
2988
+ "name": "executeTrancheWithdraw";
2989
+ "discriminator": [
2990
+ 240,
2991
+ 82,
2992
+ 254,
2993
+ 246,
2994
+ 177,
2995
+ 29,
2996
+ 57,
2997
+ 126
2998
+ ];
2999
+ "accounts": [
3000
+ {
3001
+ "name": "user";
3002
+ "writable": true;
3003
+ "signer": true;
3004
+ },
3005
+ {
3006
+ "name": "vault";
3007
+ "writable": true;
3008
+ },
3009
+ {
3010
+ "name": "vaultOracle";
3011
+ },
3012
+ {
3013
+ "name": "vaultTrancheState";
3014
+ "writable": true;
3015
+ },
3016
+ {
3017
+ "name": "assetMint";
3018
+ },
3019
+ {
3020
+ "name": "trancheShareMint";
3021
+ "writable": true;
3022
+ },
3023
+ {
3024
+ "name": "userAssetAta";
3025
+ "writable": true;
3026
+ "pda": {
3027
+ "seeds": [
3028
+ {
3029
+ "kind": "account";
3030
+ "path": "user";
3031
+ },
3032
+ {
3033
+ "kind": "account";
3034
+ "path": "assetTokenProgram";
3035
+ },
3036
+ {
3037
+ "kind": "account";
3038
+ "path": "assetMint";
3039
+ }
3040
+ ];
3041
+ "program": {
3042
+ "kind": "const";
3043
+ "value": [
3044
+ 140,
3045
+ 151,
3046
+ 37,
3047
+ 143,
3048
+ 78,
3049
+ 36,
3050
+ 137,
3051
+ 241,
3052
+ 187,
3053
+ 61,
3054
+ 16,
3055
+ 41,
3056
+ 20,
3057
+ 142,
3058
+ 13,
3059
+ 131,
3060
+ 11,
3061
+ 90,
3062
+ 19,
3063
+ 153,
3064
+ 218,
3065
+ 255,
3066
+ 16,
3067
+ 132,
3068
+ 4,
3069
+ 142,
3070
+ 123,
3071
+ 216,
3072
+ 219,
3073
+ 233,
3074
+ 248,
3075
+ 89
3076
+ ];
3077
+ };
3078
+ };
3079
+ },
3080
+ {
3081
+ "name": "vaultAssetAta";
3082
+ "writable": true;
3083
+ "pda": {
3084
+ "seeds": [
3085
+ {
3086
+ "kind": "account";
3087
+ "path": "vault";
3088
+ },
3089
+ {
3090
+ "kind": "account";
3091
+ "path": "assetTokenProgram";
3092
+ },
3093
+ {
3094
+ "kind": "account";
3095
+ "path": "assetMint";
3096
+ }
3097
+ ];
3098
+ "program": {
3099
+ "kind": "const";
3100
+ "value": [
3101
+ 140,
3102
+ 151,
3103
+ 37,
3104
+ 143,
3105
+ 78,
3106
+ 36,
3107
+ 137,
3108
+ 241,
3109
+ 187,
3110
+ 61,
3111
+ 16,
3112
+ 41,
3113
+ 20,
3114
+ 142,
3115
+ 13,
3116
+ 131,
3117
+ 11,
3118
+ 90,
3119
+ 19,
3120
+ 153,
3121
+ 218,
3122
+ 255,
3123
+ 16,
3124
+ 132,
3125
+ 4,
3126
+ 142,
3127
+ 123,
3128
+ 216,
3129
+ 219,
3130
+ 233,
3131
+ 248,
3132
+ 89
3133
+ ];
3134
+ };
3135
+ };
3136
+ },
3137
+ {
3138
+ "name": "userTrancheShareAta";
3139
+ "writable": true;
3140
+ "pda": {
3141
+ "seeds": [
3142
+ {
3143
+ "kind": "account";
3144
+ "path": "user";
3145
+ },
3146
+ {
3147
+ "kind": "account";
3148
+ "path": "shareTokenProgram";
3149
+ },
3150
+ {
3151
+ "kind": "account";
3152
+ "path": "trancheShareMint";
3153
+ }
3154
+ ];
3155
+ "program": {
3156
+ "kind": "const";
3157
+ "value": [
3158
+ 140,
3159
+ 151,
3160
+ 37,
3161
+ 143,
3162
+ 78,
3163
+ 36,
3164
+ 137,
3165
+ 241,
3166
+ 187,
3167
+ 61,
3168
+ 16,
3169
+ 41,
3170
+ 20,
3171
+ 142,
3172
+ 13,
3173
+ 131,
3174
+ 11,
3175
+ 90,
3176
+ 19,
3177
+ 153,
3178
+ 218,
3179
+ 255,
3180
+ 16,
3181
+ 132,
3182
+ 4,
3183
+ 142,
3184
+ 123,
3185
+ 216,
3186
+ 219,
3187
+ 233,
3188
+ 248,
3189
+ 89
3190
+ ];
3191
+ };
3192
+ };
3193
+ },
3194
+ {
3195
+ "name": "assetTokenProgram";
3196
+ },
3197
+ {
3198
+ "name": "shareTokenProgram";
3199
+ },
3200
+ {
3201
+ "name": "associatedTokenProgram";
3202
+ "address": "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL";
3203
+ },
3204
+ {
3205
+ "name": "systemProgram";
3206
+ "address": "11111111111111111111111111111111";
3207
+ }
3208
+ ];
3209
+ "args": [
3210
+ {
3211
+ "name": "kind";
3212
+ "type": {
3213
+ "defined": {
3214
+ "name": "trancheKind";
3215
+ };
3216
+ };
3217
+ },
3218
+ {
3219
+ "name": "shareAmount";
3220
+ "type": "u64";
3221
+ }
3222
+ ];
3223
+ },
3224
+ {
3225
+ "name": "executeTrancheWithdrawFeeExempt";
3226
+ "discriminator": [
3227
+ 130,
3228
+ 36,
3229
+ 243,
3230
+ 242,
3231
+ 125,
3232
+ 2,
3233
+ 207,
3234
+ 206
3235
+ ];
3236
+ "accounts": [
3237
+ {
3238
+ "name": "user";
3239
+ "writable": true;
3240
+ "signer": true;
3241
+ },
3242
+ {
3243
+ "name": "vault";
3244
+ "writable": true;
3245
+ },
3246
+ {
3247
+ "name": "vaultOracle";
3248
+ },
3249
+ {
3250
+ "name": "vaultTrancheState";
3251
+ "writable": true;
3252
+ },
3253
+ {
3254
+ "name": "assetMint";
3255
+ },
3256
+ {
3257
+ "name": "trancheShareMint";
3258
+ "writable": true;
3259
+ },
3260
+ {
3261
+ "name": "userAssetAta";
3262
+ "writable": true;
3263
+ "pda": {
3264
+ "seeds": [
3265
+ {
3266
+ "kind": "account";
3267
+ "path": "user";
3268
+ },
3269
+ {
3270
+ "kind": "account";
3271
+ "path": "assetTokenProgram";
3272
+ },
3273
+ {
3274
+ "kind": "account";
3275
+ "path": "assetMint";
3276
+ }
3277
+ ];
3278
+ "program": {
3279
+ "kind": "const";
3280
+ "value": [
3281
+ 140,
3282
+ 151,
3283
+ 37,
3284
+ 143,
3285
+ 78,
3286
+ 36,
3287
+ 137,
3288
+ 241,
3289
+ 187,
3290
+ 61,
3291
+ 16,
3292
+ 41,
3293
+ 20,
3294
+ 142,
3295
+ 13,
3296
+ 131,
3297
+ 11,
3298
+ 90,
3299
+ 19,
3300
+ 153,
3301
+ 218,
3302
+ 255,
3303
+ 16,
3304
+ 132,
3305
+ 4,
3306
+ 142,
3307
+ 123,
3308
+ 216,
3309
+ 219,
3310
+ 233,
3311
+ 248,
3312
+ 89
3313
+ ];
3314
+ };
3315
+ };
3316
+ },
3317
+ {
3318
+ "name": "vaultAssetAta";
3319
+ "writable": true;
3320
+ "pda": {
3321
+ "seeds": [
3322
+ {
3323
+ "kind": "account";
3324
+ "path": "vault";
3325
+ },
3326
+ {
3327
+ "kind": "account";
3328
+ "path": "assetTokenProgram";
3329
+ },
3330
+ {
3331
+ "kind": "account";
3332
+ "path": "assetMint";
3333
+ }
3334
+ ];
3335
+ "program": {
3336
+ "kind": "const";
3337
+ "value": [
3338
+ 140,
3339
+ 151,
3340
+ 37,
3341
+ 143,
3342
+ 78,
3343
+ 36,
3344
+ 137,
3345
+ 241,
3346
+ 187,
3347
+ 61,
3348
+ 16,
3349
+ 41,
3350
+ 20,
3351
+ 142,
3352
+ 13,
3353
+ 131,
3354
+ 11,
3355
+ 90,
3356
+ 19,
3357
+ 153,
3358
+ 218,
3359
+ 255,
3360
+ 16,
3361
+ 132,
3362
+ 4,
3363
+ 142,
3364
+ 123,
3365
+ 216,
3366
+ 219,
3367
+ 233,
3368
+ 248,
3369
+ 89
3370
+ ];
3371
+ };
3372
+ };
3373
+ },
3374
+ {
3375
+ "name": "userTrancheShareAta";
3376
+ "writable": true;
3377
+ "pda": {
3378
+ "seeds": [
3379
+ {
3380
+ "kind": "account";
3381
+ "path": "user";
3382
+ },
3383
+ {
3384
+ "kind": "account";
3385
+ "path": "shareTokenProgram";
3386
+ },
3387
+ {
3388
+ "kind": "account";
3389
+ "path": "trancheShareMint";
3390
+ }
3391
+ ];
3392
+ "program": {
3393
+ "kind": "const";
3394
+ "value": [
3395
+ 140,
3396
+ 151,
3397
+ 37,
3398
+ 143,
3399
+ 78,
3400
+ 36,
3401
+ 137,
3402
+ 241,
3403
+ 187,
3404
+ 61,
3405
+ 16,
3406
+ 41,
3407
+ 20,
3408
+ 142,
3409
+ 13,
3410
+ 131,
3411
+ 11,
3412
+ 90,
3413
+ 19,
3414
+ 153,
3415
+ 218,
3416
+ 255,
3417
+ 16,
3418
+ 132,
3419
+ 4,
3420
+ 142,
3421
+ 123,
3422
+ 216,
3423
+ 219,
3424
+ 233,
3425
+ 248,
3426
+ 89
3427
+ ];
3428
+ };
3429
+ };
3430
+ },
3431
+ {
3432
+ "name": "assetTokenProgram";
3433
+ },
3434
+ {
3435
+ "name": "shareTokenProgram";
3436
+ },
3437
+ {
3438
+ "name": "associatedTokenProgram";
3439
+ "address": "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL";
3440
+ },
3441
+ {
3442
+ "name": "systemProgram";
3443
+ "address": "11111111111111111111111111111111";
3444
+ }
3445
+ ];
3446
+ "args": [
3447
+ {
3448
+ "name": "kind";
3449
+ "type": {
3450
+ "defined": {
3451
+ "name": "trancheKind";
3452
+ };
3453
+ };
3454
+ },
3455
+ {
3456
+ "name": "shareAmount";
3457
+ "type": "u64";
3458
+ },
3459
+ {
3460
+ "name": "signerSeeds";
3461
+ "type": {
3462
+ "vec": "bytes";
3463
+ };
3464
+ }
3465
+ ];
3466
+ },
3467
+ {
3468
+ "name": "executeWithdraw";
3469
+ "discriminator": [
3470
+ 255,
3471
+ 93,
3472
+ 15,
3473
+ 141,
3474
+ 187,
3475
+ 94,
3476
+ 246,
3477
+ 162
3478
+ ];
3479
+ "accounts": [
3480
+ {
3481
+ "name": "user";
3482
+ "docs": [
3483
+ "Token-account authority. May be a transaction signer or a PDA signer",
3484
+ "supplied by an integrating program through `invoke_signed`."
3485
+ ];
3486
+ "signer": true;
3487
+ },
3488
+ {
3489
+ "name": "vault";
3490
+ "writable": true;
3491
+ },
3492
+ {
3493
+ "name": "vaultOracle";
3494
+ },
3495
+ {
3496
+ "name": "vaultTrancheState";
3497
+ "optional": true;
3498
+ },
3499
+ {
3500
+ "name": "assetMint";
3501
+ },
3502
+ {
3503
+ "name": "shareMint";
3504
+ "writable": true;
3505
+ },
3506
+ {
3507
+ "name": "userAssetAta";
3508
+ "writable": true;
3509
+ "pda": {
3510
+ "seeds": [
3511
+ {
3512
+ "kind": "account";
3513
+ "path": "user";
3514
+ },
3515
+ {
3516
+ "kind": "account";
3517
+ "path": "assetTokenProgram";
3518
+ },
3519
+ {
3520
+ "kind": "account";
3521
+ "path": "assetMint";
3522
+ }
3523
+ ];
3524
+ "program": {
3525
+ "kind": "const";
3526
+ "value": [
3527
+ 140,
3528
+ 151,
3529
+ 37,
3530
+ 143,
3531
+ 78,
3532
+ 36,
3533
+ 137,
3534
+ 241,
3535
+ 187,
3536
+ 61,
3537
+ 16,
3538
+ 41,
3539
+ 20,
3540
+ 142,
3541
+ 13,
3542
+ 131,
3543
+ 11,
3544
+ 90,
3545
+ 19,
3546
+ 153,
3547
+ 218,
3548
+ 255,
3549
+ 16,
3550
+ 132,
3551
+ 4,
3552
+ 142,
3553
+ 123,
3554
+ 216,
3555
+ 219,
3556
+ 233,
3557
+ 248,
3558
+ 89
3559
+ ];
3560
+ };
3561
+ };
3562
+ },
3563
+ {
3564
+ "name": "vaultAssetAta";
3565
+ "writable": true;
3566
+ "pda": {
3567
+ "seeds": [
3568
+ {
3569
+ "kind": "account";
3570
+ "path": "vault";
3571
+ },
3572
+ {
3573
+ "kind": "account";
3574
+ "path": "assetTokenProgram";
3575
+ },
3576
+ {
3577
+ "kind": "account";
3578
+ "path": "assetMint";
3579
+ }
3580
+ ];
3581
+ "program": {
3582
+ "kind": "const";
3583
+ "value": [
3584
+ 140,
3585
+ 151,
3586
+ 37,
3587
+ 143,
3588
+ 78,
3589
+ 36,
3590
+ 137,
3591
+ 241,
3592
+ 187,
3593
+ 61,
3594
+ 16,
3595
+ 41,
3596
+ 20,
3597
+ 142,
3598
+ 13,
3599
+ 131,
3600
+ 11,
3601
+ 90,
3602
+ 19,
3603
+ 153,
3604
+ 218,
3605
+ 255,
3606
+ 16,
3607
+ 132,
3608
+ 4,
3609
+ 142,
3610
+ 123,
3611
+ 216,
3612
+ 219,
3613
+ 233,
3614
+ 248,
3615
+ 89
3616
+ ];
3617
+ };
3618
+ };
3619
+ },
3620
+ {
3621
+ "name": "feeVault";
3622
+ "docs": [
3623
+ "Per-vault fee-vault PDA: token authority + accounting. The burn fee accrues",
3624
+ "here and is swept to the fee collector by the permissionless crank."
3625
+ ];
3626
+ "writable": true;
3627
+ },
3628
+ {
3629
+ "name": "feeVaultAta";
3630
+ "writable": true;
3631
+ "pda": {
3632
+ "seeds": [
3633
+ {
3634
+ "kind": "account";
3635
+ "path": "feeVault";
3636
+ },
3637
+ {
3638
+ "kind": "account";
3639
+ "path": "assetTokenProgram";
3640
+ },
3641
+ {
3642
+ "kind": "account";
3643
+ "path": "assetMint";
3644
+ }
3645
+ ];
3646
+ "program": {
3647
+ "kind": "const";
3648
+ "value": [
3649
+ 140,
3650
+ 151,
3651
+ 37,
3652
+ 143,
3653
+ 78,
3654
+ 36,
3655
+ 137,
3656
+ 241,
3657
+ 187,
3658
+ 61,
3659
+ 16,
3660
+ 41,
3661
+ 20,
3662
+ 142,
3663
+ 13,
3664
+ 131,
3665
+ 11,
3666
+ 90,
3667
+ 19,
3668
+ 153,
3669
+ 218,
3670
+ 255,
3671
+ 16,
3672
+ 132,
3673
+ 4,
3674
+ 142,
3675
+ 123,
3676
+ 216,
3677
+ 219,
3678
+ 233,
3679
+ 248,
3680
+ 89
3681
+ ];
3682
+ };
3683
+ };
3684
+ },
3685
+ {
3686
+ "name": "userShareAta";
3687
+ "writable": true;
3688
+ "pda": {
3689
+ "seeds": [
3690
+ {
3691
+ "kind": "account";
3692
+ "path": "user";
3693
+ },
3694
+ {
3695
+ "kind": "account";
3696
+ "path": "shareTokenProgram";
3697
+ },
3698
+ {
3699
+ "kind": "account";
3700
+ "path": "shareMint";
3701
+ }
3702
+ ];
3703
+ "program": {
3704
+ "kind": "const";
3705
+ "value": [
3706
+ 140,
3707
+ 151,
3708
+ 37,
3709
+ 143,
3710
+ 78,
3711
+ 36,
3712
+ 137,
3713
+ 241,
3714
+ 187,
3715
+ 61,
3716
+ 16,
3717
+ 41,
3718
+ 20,
3719
+ 142,
3720
+ 13,
3721
+ 131,
3722
+ 11,
3723
+ 90,
3724
+ 19,
3725
+ 153,
3726
+ 218,
3727
+ 255,
3728
+ 16,
3729
+ 132,
3730
+ 4,
3731
+ 142,
3732
+ 123,
3733
+ 216,
3734
+ 219,
3735
+ 233,
3736
+ 248,
3737
+ 89
3738
+ ];
3739
+ };
3740
+ };
3741
+ },
3742
+ {
3743
+ "name": "assetTokenProgram";
3744
+ },
3745
+ {
3746
+ "name": "shareTokenProgram";
3747
+ }
3748
+ ];
3749
+ "args": [
3750
+ {
3751
+ "name": "shareAmount";
3752
+ "type": "u64";
3753
+ }
3754
+ ];
3755
+ },
3756
+ {
3757
+ "name": "executeWithdrawFeeExempt";
3758
+ "discriminator": [
3759
+ 47,
3760
+ 77,
3761
+ 139,
3762
+ 253,
3763
+ 122,
3764
+ 181,
3765
+ 108,
3766
+ 216
3767
+ ];
3768
+ "accounts": [
3769
+ {
3770
+ "name": "user";
3771
+ "docs": [
3772
+ "Token-account authority. May be a transaction signer or a PDA signer",
3773
+ "supplied by an integrating program through `invoke_signed`."
3774
+ ];
3775
+ "signer": true;
3776
+ },
3777
+ {
3778
+ "name": "vault";
3779
+ "writable": true;
3780
+ },
3781
+ {
3782
+ "name": "vaultOracle";
3783
+ },
3784
+ {
3785
+ "name": "vaultTrancheState";
3786
+ "optional": true;
3787
+ },
3788
+ {
3789
+ "name": "assetMint";
3790
+ },
3791
+ {
3792
+ "name": "shareMint";
3793
+ "writable": true;
3794
+ },
3795
+ {
3796
+ "name": "userAssetAta";
3797
+ "writable": true;
3798
+ "pda": {
3799
+ "seeds": [
3800
+ {
3801
+ "kind": "account";
3802
+ "path": "user";
3803
+ },
3804
+ {
3805
+ "kind": "account";
3806
+ "path": "assetTokenProgram";
3807
+ },
3808
+ {
3809
+ "kind": "account";
3810
+ "path": "assetMint";
3811
+ }
3812
+ ];
3813
+ "program": {
3814
+ "kind": "const";
3815
+ "value": [
3816
+ 140,
3817
+ 151,
3818
+ 37,
3819
+ 143,
3820
+ 78,
3821
+ 36,
3822
+ 137,
3823
+ 241,
3824
+ 187,
3825
+ 61,
3826
+ 16,
3827
+ 41,
3828
+ 20,
3829
+ 142,
3830
+ 13,
3831
+ 131,
3832
+ 11,
3833
+ 90,
3834
+ 19,
3835
+ 153,
3836
+ 218,
3837
+ 255,
3838
+ 16,
3839
+ 132,
3840
+ 4,
3841
+ 142,
3842
+ 123,
3843
+ 216,
3844
+ 219,
3845
+ 233,
3846
+ 248,
3847
+ 89
3848
+ ];
3849
+ };
3850
+ };
3851
+ },
3852
+ {
3853
+ "name": "vaultAssetAta";
3854
+ "writable": true;
3855
+ "pda": {
3856
+ "seeds": [
3857
+ {
3858
+ "kind": "account";
3859
+ "path": "vault";
3860
+ },
3861
+ {
3862
+ "kind": "account";
3863
+ "path": "assetTokenProgram";
3864
+ },
3865
+ {
3866
+ "kind": "account";
3867
+ "path": "assetMint";
3868
+ }
3869
+ ];
3870
+ "program": {
3871
+ "kind": "const";
3872
+ "value": [
3873
+ 140,
3874
+ 151,
3875
+ 37,
3876
+ 143,
3877
+ 78,
3878
+ 36,
3879
+ 137,
3880
+ 241,
3881
+ 187,
3882
+ 61,
3883
+ 16,
3884
+ 41,
3885
+ 20,
3886
+ 142,
3887
+ 13,
3888
+ 131,
3889
+ 11,
3890
+ 90,
3891
+ 19,
3892
+ 153,
3893
+ 218,
3894
+ 255,
3895
+ 16,
3896
+ 132,
3897
+ 4,
3898
+ 142,
3899
+ 123,
3900
+ 216,
3901
+ 219,
3902
+ 233,
3903
+ 248,
3904
+ 89
3905
+ ];
3906
+ };
3907
+ };
3908
+ },
3909
+ {
3910
+ "name": "feeVault";
3911
+ "docs": [
3912
+ "Per-vault fee-vault PDA: token authority + accounting. The burn fee accrues",
3913
+ "here and is swept to the fee collector by the permissionless crank."
3914
+ ];
3915
+ "writable": true;
3916
+ },
3917
+ {
3918
+ "name": "feeVaultAta";
3919
+ "writable": true;
3920
+ "pda": {
3921
+ "seeds": [
3922
+ {
3923
+ "kind": "account";
3924
+ "path": "feeVault";
3925
+ },
3926
+ {
3927
+ "kind": "account";
3928
+ "path": "assetTokenProgram";
3929
+ },
3930
+ {
3931
+ "kind": "account";
3932
+ "path": "assetMint";
3933
+ }
3934
+ ];
3935
+ "program": {
3936
+ "kind": "const";
3937
+ "value": [
3938
+ 140,
3939
+ 151,
3940
+ 37,
3941
+ 143,
3942
+ 78,
3943
+ 36,
3944
+ 137,
3945
+ 241,
3946
+ 187,
3947
+ 61,
3948
+ 16,
3949
+ 41,
3950
+ 20,
3951
+ 142,
3952
+ 13,
3953
+ 131,
3954
+ 11,
3955
+ 90,
3956
+ 19,
3957
+ 153,
3958
+ 218,
3959
+ 255,
3960
+ 16,
3961
+ 132,
3962
+ 4,
3963
+ 142,
3964
+ 123,
3965
+ 216,
3966
+ 219,
3967
+ 233,
3968
+ 248,
3969
+ 89
3970
+ ];
3971
+ };
3972
+ };
3973
+ },
3974
+ {
3975
+ "name": "userShareAta";
3976
+ "writable": true;
3977
+ "pda": {
3978
+ "seeds": [
3979
+ {
3980
+ "kind": "account";
3981
+ "path": "user";
3982
+ },
3983
+ {
3984
+ "kind": "account";
3985
+ "path": "shareTokenProgram";
3986
+ },
3987
+ {
3988
+ "kind": "account";
3989
+ "path": "shareMint";
3990
+ }
3991
+ ];
3992
+ "program": {
3993
+ "kind": "const";
3994
+ "value": [
3995
+ 140,
3996
+ 151,
3997
+ 37,
3998
+ 143,
3999
+ 78,
4000
+ 36,
4001
+ 137,
4002
+ 241,
4003
+ 187,
4004
+ 61,
4005
+ 16,
4006
+ 41,
4007
+ 20,
4008
+ 142,
4009
+ 13,
4010
+ 131,
4011
+ 11,
4012
+ 90,
4013
+ 19,
4014
+ 153,
4015
+ 218,
4016
+ 255,
4017
+ 16,
4018
+ 132,
4019
+ 4,
4020
+ 142,
4021
+ 123,
4022
+ 216,
4023
+ 219,
4024
+ 233,
4025
+ 248,
4026
+ 89
4027
+ ];
4028
+ };
4029
+ };
4030
+ },
4031
+ {
4032
+ "name": "assetTokenProgram";
4033
+ },
4034
+ {
4035
+ "name": "shareTokenProgram";
4036
+ }
4037
+ ];
4038
+ "args": [
4039
+ {
4040
+ "name": "shareAmount";
4041
+ "type": "u64";
4042
+ },
4043
+ {
4044
+ "name": "signerSeeds";
4045
+ "type": {
4046
+ "vec": "bytes";
4047
+ };
4048
+ }
4049
+ ];
4050
+ },
4051
+ {
4052
+ "name": "executeWithdrawFromExternal";
4053
+ "discriminator": [
4054
+ 91,
4055
+ 38,
4056
+ 26,
4057
+ 250,
4058
+ 138,
4059
+ 227,
4060
+ 18,
4061
+ 88
4062
+ ];
4063
+ "accounts": [
4064
+ {
4065
+ "name": "user";
4066
+ "docs": [
4067
+ "Token-account authority. May be a transaction signer or a PDA signer",
4068
+ "supplied by an integrating program through `invoke_signed`."
4069
+ ];
4070
+ "signer": true;
4071
+ },
4072
+ {
4073
+ "name": "vault";
4074
+ "writable": true;
4075
+ },
4076
+ {
4077
+ "name": "vaultOracle";
4078
+ },
4079
+ {
4080
+ "name": "vaultTrancheState";
4081
+ "optional": true;
4082
+ },
4083
+ {
4084
+ "name": "assetMint";
4085
+ },
4086
+ {
4087
+ "name": "shareMint";
4088
+ "writable": true;
4089
+ },
4090
+ {
4091
+ "name": "userAssetAta";
4092
+ "writable": true;
4093
+ "pda": {
4094
+ "seeds": [
4095
+ {
4096
+ "kind": "account";
4097
+ "path": "user";
4098
+ },
4099
+ {
4100
+ "kind": "account";
4101
+ "path": "assetTokenProgram";
4102
+ },
4103
+ {
4104
+ "kind": "account";
4105
+ "path": "assetMint";
4106
+ }
4107
+ ];
4108
+ "program": {
4109
+ "kind": "const";
4110
+ "value": [
4111
+ 140,
4112
+ 151,
4113
+ 37,
4114
+ 143,
4115
+ 78,
4116
+ 36,
4117
+ 137,
4118
+ 241,
4119
+ 187,
4120
+ 61,
4121
+ 16,
4122
+ 41,
4123
+ 20,
4124
+ 142,
4125
+ 13,
4126
+ 131,
4127
+ 11,
4128
+ 90,
4129
+ 19,
4130
+ 153,
4131
+ 218,
4132
+ 255,
4133
+ 16,
4134
+ 132,
4135
+ 4,
4136
+ 142,
4137
+ 123,
4138
+ 216,
4139
+ 219,
4140
+ 233,
4141
+ 248,
4142
+ 89
4143
+ ];
4144
+ };
4145
+ };
4146
+ },
4147
+ {
4148
+ "name": "vaultAssetAta";
4149
+ "writable": true;
4150
+ "pda": {
4151
+ "seeds": [
4152
+ {
4153
+ "kind": "account";
4154
+ "path": "vault";
4155
+ },
4156
+ {
4157
+ "kind": "account";
4158
+ "path": "assetTokenProgram";
4159
+ },
4160
+ {
4161
+ "kind": "account";
4162
+ "path": "assetMint";
4163
+ }
4164
+ ];
4165
+ "program": {
4166
+ "kind": "const";
4167
+ "value": [
4168
+ 140,
4169
+ 151,
4170
+ 37,
4171
+ 143,
4172
+ 78,
4173
+ 36,
4174
+ 137,
4175
+ 241,
4176
+ 187,
4177
+ 61,
4178
+ 16,
4179
+ 41,
4180
+ 20,
4181
+ 142,
4182
+ 13,
4183
+ 131,
4184
+ 11,
4185
+ 90,
4186
+ 19,
4187
+ 153,
4188
+ 218,
4189
+ 255,
4190
+ 16,
4191
+ 132,
4192
+ 4,
4193
+ 142,
4194
+ 123,
4195
+ 216,
4196
+ 219,
4197
+ 233,
4198
+ 248,
4199
+ 89
4200
+ ];
4201
+ };
4202
+ };
4203
+ },
4204
+ {
4205
+ "name": "feeVault";
4206
+ "docs": [
4207
+ "Per-vault fee-vault PDA: token authority + accounting. The burn fee accrues",
4208
+ "here and is swept to the fee collector by the permissionless crank."
4209
+ ];
4210
+ "writable": true;
4211
+ },
4212
+ {
4213
+ "name": "feeVaultAta";
4214
+ "writable": true;
4215
+ "pda": {
4216
+ "seeds": [
4217
+ {
4218
+ "kind": "account";
4219
+ "path": "feeVault";
4220
+ },
4221
+ {
4222
+ "kind": "account";
4223
+ "path": "assetTokenProgram";
4224
+ },
4225
+ {
4226
+ "kind": "account";
4227
+ "path": "assetMint";
4228
+ }
4229
+ ];
4230
+ "program": {
4231
+ "kind": "const";
4232
+ "value": [
4233
+ 140,
4234
+ 151,
4235
+ 37,
4236
+ 143,
4237
+ 78,
4238
+ 36,
4239
+ 137,
4240
+ 241,
4241
+ 187,
4242
+ 61,
4243
+ 16,
4244
+ 41,
4245
+ 20,
4246
+ 142,
4247
+ 13,
4248
+ 131,
4249
+ 11,
4250
+ 90,
4251
+ 19,
4252
+ 153,
4253
+ 218,
4254
+ 255,
4255
+ 16,
4256
+ 132,
4257
+ 4,
4258
+ 142,
4259
+ 123,
4260
+ 216,
4261
+ 219,
4262
+ 233,
4263
+ 248,
4264
+ 89
4265
+ ];
4266
+ };
4267
+ };
4268
+ },
4269
+ {
4270
+ "name": "userShareAta";
4271
+ "writable": true;
4272
+ "pda": {
4273
+ "seeds": [
4274
+ {
4275
+ "kind": "account";
4276
+ "path": "user";
4277
+ },
4278
+ {
4279
+ "kind": "account";
4280
+ "path": "shareTokenProgram";
4281
+ },
4282
+ {
4283
+ "kind": "account";
4284
+ "path": "shareMint";
2528
4285
  }
2529
4286
  ];
2530
4287
  "program": {
@@ -2571,46 +4328,51 @@ type Bankineco = {
2571
4328
  },
2572
4329
  {
2573
4330
  "name": "shareTokenProgram";
2574
- },
2575
- {
2576
- "name": "associatedTokenProgram";
2577
- "address": "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL";
2578
- },
2579
- {
2580
- "name": "systemProgram";
2581
- "address": "11111111111111111111111111111111";
2582
4331
  }
2583
4332
  ];
2584
4333
  "args": [
2585
4334
  {
2586
- "name": "kind";
4335
+ "name": "shareAmount";
4336
+ "type": "u64";
4337
+ },
4338
+ {
4339
+ "name": "externalWithdrawIxRefs";
2587
4340
  "type": {
2588
- "defined": {
2589
- "name": "trancheKind";
4341
+ "option": {
4342
+ "defined": {
4343
+ "name": "instructionRefs";
4344
+ };
2590
4345
  };
2591
4346
  };
2592
4347
  },
2593
4348
  {
2594
- "name": "shareAmount";
2595
- "type": "u64";
4349
+ "name": "externalLiquiditySource";
4350
+ "type": {
4351
+ "option": "u8";
4352
+ };
2596
4353
  }
2597
4354
  ];
2598
4355
  },
2599
4356
  {
2600
- "name": "executeWithdraw";
4357
+ "name": "executeWithdrawFromExternalFeeExempt";
2601
4358
  "discriminator": [
2602
- 255,
2603
- 93,
2604
- 15,
2605
- 141,
2606
- 187,
2607
- 94,
2608
- 246,
2609
- 162
4359
+ 8,
4360
+ 18,
4361
+ 138,
4362
+ 251,
4363
+ 162,
4364
+ 172,
4365
+ 171,
4366
+ 185
2610
4367
  ];
2611
4368
  "accounts": [
2612
4369
  {
2613
4370
  "name": "user";
4371
+ "docs": [
4372
+ "Token-account authority. May be a transaction signer or a PDA signer",
4373
+ "supplied by an integrating program through `invoke_signed`."
4374
+ ];
4375
+ "signer": true;
2614
4376
  },
2615
4377
  {
2616
4378
  "name": "vault";
@@ -2877,24 +4639,55 @@ type Bankineco = {
2877
4639
  {
2878
4640
  "name": "shareAmount";
2879
4641
  "type": "u64";
4642
+ },
4643
+ {
4644
+ "name": "externalWithdrawIxRefs";
4645
+ "type": {
4646
+ "option": {
4647
+ "defined": {
4648
+ "name": "instructionRefs";
4649
+ };
4650
+ };
4651
+ };
4652
+ },
4653
+ {
4654
+ "name": "externalLiquiditySource";
4655
+ "type": {
4656
+ "option": "u8";
4657
+ };
4658
+ },
4659
+ {
4660
+ "name": "signerSeeds";
4661
+ "type": {
4662
+ "vec": "bytes";
4663
+ };
2880
4664
  }
2881
4665
  ];
2882
4666
  },
2883
4667
  {
2884
- "name": "executeWithdrawFromExternal";
4668
+ "name": "fulfillJuniorTrancheWithdraw";
2885
4669
  "discriminator": [
2886
- 91,
2887
- 38,
2888
- 26,
2889
- 250,
2890
- 138,
2891
- 227,
2892
- 18,
2893
- 88
4670
+ 127,
4671
+ 229,
4672
+ 153,
4673
+ 168,
4674
+ 116,
4675
+ 50,
4676
+ 248,
4677
+ 103
2894
4678
  ];
2895
4679
  "accounts": [
2896
4680
  {
2897
- "name": "user";
4681
+ "name": "signer";
4682
+ "writable": true;
4683
+ "signer": true;
4684
+ },
4685
+ {
4686
+ "name": "owner";
4687
+ },
4688
+ {
4689
+ "name": "queuePayer";
4690
+ "writable": true;
2898
4691
  },
2899
4692
  {
2900
4693
  "name": "vault";
@@ -2905,23 +4698,31 @@ type Bankineco = {
2905
4698
  },
2906
4699
  {
2907
4700
  "name": "vaultTrancheState";
2908
- "optional": true;
4701
+ "writable": true;
2909
4702
  },
2910
4703
  {
2911
- "name": "assetMint";
4704
+ "name": "withdrawalQueue";
4705
+ "writable": true;
2912
4706
  },
2913
4707
  {
2914
- "name": "shareMint";
4708
+ "name": "outputMint";
4709
+ },
4710
+ {
4711
+ "name": "inputMint";
2915
4712
  "writable": true;
2916
4713
  },
2917
4714
  {
2918
- "name": "userAssetAta";
4715
+ "name": "ownerInputAta";
4716
+ "writable": true;
4717
+ },
4718
+ {
4719
+ "name": "ownerOutputAta";
2919
4720
  "writable": true;
2920
4721
  "pda": {
2921
4722
  "seeds": [
2922
4723
  {
2923
4724
  "kind": "account";
2924
- "path": "user";
4725
+ "path": "owner";
2925
4726
  },
2926
4727
  {
2927
4728
  "kind": "account";
@@ -2929,7 +4730,7 @@ type Bankineco = {
2929
4730
  },
2930
4731
  {
2931
4732
  "kind": "account";
2932
- "path": "assetMint";
4733
+ "path": "outputMint";
2933
4734
  }
2934
4735
  ];
2935
4736
  "program": {
@@ -2972,7 +4773,7 @@ type Bankineco = {
2972
4773
  };
2973
4774
  },
2974
4775
  {
2975
- "name": "vaultAssetAta";
4776
+ "name": "vaultOutputAta";
2976
4777
  "writable": true;
2977
4778
  "pda": {
2978
4779
  "seeds": [
@@ -2986,7 +4787,7 @@ type Bankineco = {
2986
4787
  },
2987
4788
  {
2988
4789
  "kind": "account";
2989
- "path": "assetMint";
4790
+ "path": "outputMint";
2990
4791
  }
2991
4792
  ];
2992
4793
  "program": {
@@ -3029,21 +4830,16 @@ type Bankineco = {
3029
4830
  };
3030
4831
  },
3031
4832
  {
3032
- "name": "feeVault";
3033
- "docs": [
3034
- "Per-vault fee-vault PDA: token authority + accounting. The burn fee accrues",
3035
- "here and is swept to the fee collector by the permissionless crank."
3036
- ];
3037
- "writable": true;
4833
+ "name": "feeCollector";
3038
4834
  },
3039
4835
  {
3040
- "name": "feeVaultAta";
4836
+ "name": "feeCollectorOutputAta";
3041
4837
  "writable": true;
3042
4838
  "pda": {
3043
4839
  "seeds": [
3044
4840
  {
3045
4841
  "kind": "account";
3046
- "path": "feeVault";
4842
+ "path": "feeCollector";
3047
4843
  },
3048
4844
  {
3049
4845
  "kind": "account";
@@ -3051,7 +4847,7 @@ type Bankineco = {
3051
4847
  },
3052
4848
  {
3053
4849
  "kind": "account";
3054
- "path": "assetMint";
4850
+ "path": "outputMint";
3055
4851
  }
3056
4852
  ];
3057
4853
  "program": {
@@ -3094,13 +4890,13 @@ type Bankineco = {
3094
4890
  };
3095
4891
  },
3096
4892
  {
3097
- "name": "userShareAta";
4893
+ "name": "queueInputAta";
3098
4894
  "writable": true;
3099
4895
  "pda": {
3100
4896
  "seeds": [
3101
4897
  {
3102
4898
  "kind": "account";
3103
- "path": "user";
4899
+ "path": "withdrawalQueue";
3104
4900
  },
3105
4901
  {
3106
4902
  "kind": "account";
@@ -3108,7 +4904,7 @@ type Bankineco = {
3108
4904
  },
3109
4905
  {
3110
4906
  "kind": "account";
3111
- "path": "shareMint";
4907
+ "path": "inputMint";
3112
4908
  }
3113
4909
  ];
3114
4910
  "program": {
@@ -3155,42 +4951,29 @@ type Bankineco = {
3155
4951
  },
3156
4952
  {
3157
4953
  "name": "shareTokenProgram";
3158
- }
3159
- ];
3160
- "args": [
3161
- {
3162
- "name": "shareAmount";
3163
- "type": "u64";
3164
4954
  },
3165
4955
  {
3166
- "name": "externalWithdrawIxRefs";
3167
- "type": {
3168
- "option": {
3169
- "defined": {
3170
- "name": "instructionRefs";
3171
- };
3172
- };
3173
- };
4956
+ "name": "associatedTokenProgram";
4957
+ "address": "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL";
3174
4958
  },
3175
4959
  {
3176
- "name": "externalLiquiditySource";
3177
- "type": {
3178
- "option": "u8";
3179
- };
4960
+ "name": "systemProgram";
4961
+ "address": "11111111111111111111111111111111";
3180
4962
  }
3181
4963
  ];
4964
+ "args": [];
3182
4965
  },
3183
4966
  {
3184
- "name": "fulfillJuniorTrancheWithdraw";
4967
+ "name": "fulfillJuniorTrancheWithdrawFeeExempt";
3185
4968
  "discriminator": [
3186
- 127,
3187
- 229,
3188
- 153,
3189
- 168,
3190
- 116,
3191
- 50,
3192
- 248,
3193
- 103
4969
+ 148,
4970
+ 163,
4971
+ 159,
4972
+ 43,
4973
+ 165,
4974
+ 131,
4975
+ 51,
4976
+ 85
3194
4977
  ];
3195
4978
  "accounts": [
3196
4979
  {
@@ -3477,7 +5260,14 @@ type Bankineco = {
3477
5260
  "address": "11111111111111111111111111111111";
3478
5261
  }
3479
5262
  ];
3480
- "args": [];
5263
+ "args": [
5264
+ {
5265
+ "name": "signerSeeds";
5266
+ "type": {
5267
+ "vec": "bytes";
5268
+ };
5269
+ }
5270
+ ];
3481
5271
  },
3482
5272
  {
3483
5273
  "name": "getNav";
@@ -3751,6 +5541,10 @@ type Bankineco = {
3751
5541
  ];
3752
5542
  "writable": true;
3753
5543
  "optional": true;
5544
+ },
5545
+ {
5546
+ "name": "vaultTrancheState";
5547
+ "optional": true;
3754
5548
  }
3755
5549
  ];
3756
5550
  "args": [
@@ -4135,12 +5929,39 @@ type Bankineco = {
4135
5929
  "name": "idleBankMint";
4136
5930
  "writable": true;
4137
5931
  },
5932
+ {
5933
+ "name": "idleBankTranche";
5934
+ "docs": [
5935
+ "path rejects initialized state because it cannot represent junior claims."
5936
+ ];
5937
+ "pda": {
5938
+ "seeds": [
5939
+ {
5940
+ "kind": "const";
5941
+ "value": [
5942
+ 84,
5943
+ 82,
5944
+ 65,
5945
+ 78,
5946
+ 67,
5947
+ 72,
5948
+ 69
5949
+ ];
5950
+ },
5951
+ {
5952
+ "kind": "account";
5953
+ "path": "idleBankState";
5954
+ }
5955
+ ];
5956
+ };
5957
+ },
4138
5958
  {
4139
5959
  "name": "idleVault";
4140
5960
  "writable": true;
4141
5961
  },
4142
5962
  {
4143
5963
  "name": "idleVaultOracle";
5964
+ "writable": true;
4144
5965
  "pda": {
4145
5966
  "seeds": [
4146
5967
  {
@@ -4246,6 +6067,23 @@ type Bankineco = {
4246
6067
  {
4247
6068
  "name": "yieldingBankState";
4248
6069
  "writable": true;
6070
+ "pda": {
6071
+ "seeds": [
6072
+ {
6073
+ "kind": "const";
6074
+ "value": [
6075
+ 66,
6076
+ 65,
6077
+ 78,
6078
+ 75
6079
+ ];
6080
+ },
6081
+ {
6082
+ "kind": "account";
6083
+ "path": "yieldingBankState";
6084
+ }
6085
+ ];
6086
+ };
4249
6087
  },
4250
6088
  {
4251
6089
  "name": "yieldingBankMint";
@@ -4253,7 +6091,9 @@ type Bankineco = {
4253
6091
  },
4254
6092
  {
4255
6093
  "name": "yieldingBankTranche";
4256
- "optional": true;
6094
+ "docs": [
6095
+ "state so an active senior-price regime cannot be hidden by omission."
6096
+ ];
4257
6097
  "pda": {
4258
6098
  "seeds": [
4259
6099
  {
@@ -4369,6 +6209,7 @@ type Bankineco = {
4369
6209
  },
4370
6210
  {
4371
6211
  "name": "destinationVaultOracle";
6212
+ "writable": true;
4372
6213
  },
4373
6214
  {
4374
6215
  "name": "destinationVaultAssetAta";
@@ -4429,12 +6270,43 @@ type Bankineco = {
4429
6270
  },
4430
6271
  {
4431
6272
  "name": "vaultTrancheState";
6273
+ "docs": [
6274
+ "be initialized and consistent with destination.tranching_enabled."
6275
+ ];
4432
6276
  "writable": true;
4433
- "optional": true;
6277
+ "pda": {
6278
+ "seeds": [
6279
+ {
6280
+ "kind": "const";
6281
+ "value": [
6282
+ 118,
6283
+ 97,
6284
+ 117,
6285
+ 108,
6286
+ 116,
6287
+ 95,
6288
+ 116,
6289
+ 114,
6290
+ 97,
6291
+ 110,
6292
+ 99,
6293
+ 104,
6294
+ 101
6295
+ ];
6296
+ },
6297
+ {
6298
+ "kind": "account";
6299
+ "path": "destinationVault";
6300
+ }
6301
+ ];
6302
+ };
4434
6303
  },
4435
6304
  {
4436
6305
  "name": "yieldingTokenProgram";
4437
6306
  },
6307
+ {
6308
+ "name": "idleBankMintTokenProgram";
6309
+ },
4438
6310
  {
4439
6311
  "name": "bankMintTokenProgram";
4440
6312
  },
@@ -4695,8 +6567,10 @@ type Bankineco = {
4695
6567
  },
4696
6568
  {
4697
6569
  "name": "trancheState";
6570
+ "docs": [
6571
+ "initialized TrancheState from an empty, uninitialized PDA."
6572
+ ];
4698
6573
  "writable": true;
4699
- "optional": true;
4700
6574
  "pda": {
4701
6575
  "seeds": [
4702
6576
  {
@@ -4720,98 +6594,54 @@ type Bankineco = {
4720
6594
  },
4721
6595
  {
4722
6596
  "name": "juniorEscrowAta";
6597
+ "docs": [
6598
+ "authority, and balance are validated before any migration mutation."
6599
+ ];
6600
+ "writable": true;
6601
+ },
6602
+ {
6603
+ "name": "vaultTrancheState";
6604
+ "docs": [
6605
+ "initialized/uninitialized state against destination.tranching_enabled."
6606
+ ];
4723
6607
  "writable": true;
4724
- "optional": true;
4725
6608
  "pda": {
4726
6609
  "seeds": [
4727
- {
4728
- "kind": "account";
4729
- "path": "trancheState";
4730
- },
4731
6610
  {
4732
6611
  "kind": "const";
4733
6612
  "value": [
4734
- 6,
4735
- 221,
4736
- 246,
4737
- 225,
4738
- 215,
4739
- 101,
4740
- 161,
4741
- 147,
4742
- 217,
4743
- 203,
4744
- 225,
4745
- 70,
4746
- 206,
4747
- 235,
4748
- 121,
4749
- 172,
4750
- 28,
4751
- 180,
4752
- 133,
4753
- 237,
6613
+ 118,
6614
+ 97,
6615
+ 117,
6616
+ 108,
6617
+ 116,
4754
6618
  95,
4755
- 91,
4756
- 55,
4757
- 145,
4758
- 58,
4759
- 140,
4760
- 245,
4761
- 133,
4762
- 126,
4763
- 255,
4764
- 0,
4765
- 169
6619
+ 116,
6620
+ 114,
6621
+ 97,
6622
+ 110,
6623
+ 99,
6624
+ 104,
6625
+ 101
4766
6626
  ];
4767
6627
  },
4768
6628
  {
4769
6629
  "kind": "account";
4770
- "path": "bankMint";
6630
+ "path": "destinationVault";
4771
6631
  }
4772
6632
  ];
4773
- "program": {
4774
- "kind": "const";
4775
- "value": [
4776
- 140,
4777
- 151,
4778
- 37,
4779
- 143,
4780
- 78,
4781
- 36,
4782
- 137,
4783
- 241,
4784
- 187,
4785
- 61,
4786
- 16,
4787
- 41,
4788
- 20,
4789
- 142,
4790
- 13,
4791
- 131,
4792
- 11,
4793
- 90,
4794
- 19,
4795
- 153,
4796
- 218,
4797
- 255,
4798
- 16,
4799
- 132,
4800
- 4,
4801
- 142,
4802
- 123,
4803
- 216,
4804
- 219,
4805
- 233,
4806
- 248,
4807
- 89
4808
- ];
4809
- };
4810
6633
  };
4811
6634
  },
4812
6635
  {
4813
- "name": "vaultTrancheState";
4814
- "writable": true;
6636
+ "name": "juniorShareMint";
6637
+ "optional": true;
6638
+ },
6639
+ {
6640
+ "name": "lockedJuniorSharesAta";
6641
+ "docs": [
6642
+ "withdrawals. Required and fully validated when the source tranche exists;",
6643
+ "absent for a bank that never initialized a legacy tranche."
6644
+ ];
4815
6645
  "optional": true;
4816
6646
  },
4817
6647
  {
@@ -4819,7 +6649,6 @@ type Bankineco = {
4819
6649
  },
4820
6650
  {
4821
6651
  "name": "bankTokenProgram";
4822
- "optional": true;
4823
6652
  },
4824
6653
  {
4825
6654
  "name": "associatedTokenProgram";
@@ -5698,23 +7527,143 @@ type Bankineco = {
5698
7527
  };
5699
7528
  },
5700
7529
  {
5701
- "name": "bankMint";
5702
- },
5703
- {
5704
- "name": "juniorMint";
7530
+ "name": "bankMint";
7531
+ },
7532
+ {
7533
+ "name": "juniorMint";
7534
+ "docs": [
7535
+ "The junior tranche share token mint (PDA owned by tranche state)"
7536
+ ];
7537
+ "writable": true;
7538
+ },
7539
+ {
7540
+ "name": "userBankMintAta";
7541
+ "writable": true;
7542
+ "pda": {
7543
+ "seeds": [
7544
+ {
7545
+ "kind": "account";
7546
+ "path": "user";
7547
+ },
7548
+ {
7549
+ "kind": "account";
7550
+ "path": "tokenProgram";
7551
+ },
7552
+ {
7553
+ "kind": "account";
7554
+ "path": "bankMint";
7555
+ }
7556
+ ];
7557
+ "program": {
7558
+ "kind": "const";
7559
+ "value": [
7560
+ 140,
7561
+ 151,
7562
+ 37,
7563
+ 143,
7564
+ 78,
7565
+ 36,
7566
+ 137,
7567
+ 241,
7568
+ 187,
7569
+ 61,
7570
+ 16,
7571
+ 41,
7572
+ 20,
7573
+ 142,
7574
+ 13,
7575
+ 131,
7576
+ 11,
7577
+ 90,
7578
+ 19,
7579
+ 153,
7580
+ 218,
7581
+ 255,
7582
+ 16,
7583
+ 132,
7584
+ 4,
7585
+ 142,
7586
+ 123,
7587
+ 216,
7588
+ 219,
7589
+ 233,
7590
+ 248,
7591
+ 89
7592
+ ];
7593
+ };
7594
+ };
7595
+ },
7596
+ {
7597
+ "name": "userJuniorMintAta";
7598
+ "docs": [
7599
+ "User's ATA for receiving junior share tokens"
7600
+ ];
7601
+ "writable": true;
7602
+ "pda": {
7603
+ "seeds": [
7604
+ {
7605
+ "kind": "account";
7606
+ "path": "user";
7607
+ },
7608
+ {
7609
+ "kind": "account";
7610
+ "path": "tokenProgram";
7611
+ },
7612
+ {
7613
+ "kind": "account";
7614
+ "path": "juniorMint";
7615
+ }
7616
+ ];
7617
+ "program": {
7618
+ "kind": "const";
7619
+ "value": [
7620
+ 140,
7621
+ 151,
7622
+ 37,
7623
+ 143,
7624
+ 78,
7625
+ 36,
7626
+ 137,
7627
+ 241,
7628
+ 187,
7629
+ 61,
7630
+ 16,
7631
+ 41,
7632
+ 20,
7633
+ 142,
7634
+ 13,
7635
+ 131,
7636
+ 11,
7637
+ 90,
7638
+ 19,
7639
+ 153,
7640
+ 218,
7641
+ 255,
7642
+ 16,
7643
+ 132,
7644
+ 4,
7645
+ 142,
7646
+ 123,
7647
+ 216,
7648
+ 219,
7649
+ 233,
7650
+ 248,
7651
+ 89
7652
+ ];
7653
+ };
7654
+ };
7655
+ },
7656
+ {
7657
+ "name": "juniorEscrowAta";
5705
7658
  "docs": [
5706
- "The junior tranche share token mint (PDA owned by tranche state)"
7659
+ "The escrow ATA for staked bank mint tokens, owned by the tranche state PDA"
5707
7660
  ];
5708
7661
  "writable": true;
5709
- },
5710
- {
5711
- "name": "userBankMintAta";
5712
- "writable": true;
5713
7662
  "pda": {
5714
7663
  "seeds": [
5715
7664
  {
5716
7665
  "kind": "account";
5717
- "path": "user";
7666
+ "path": "trancheState";
5718
7667
  },
5719
7668
  {
5720
7669
  "kind": "account";
@@ -5765,16 +7714,96 @@ type Bankineco = {
5765
7714
  };
5766
7715
  },
5767
7716
  {
5768
- "name": "userJuniorMintAta";
5769
- "docs": [
5770
- "User's ATA for receiving junior share tokens"
5771
- ];
7717
+ "name": "systemProgram";
7718
+ "address": "11111111111111111111111111111111";
7719
+ },
7720
+ {
7721
+ "name": "tokenProgram";
7722
+ },
7723
+ {
7724
+ "name": "associatedTokenProgram";
7725
+ "address": "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL";
7726
+ }
7727
+ ];
7728
+ "args": [
7729
+ {
7730
+ "name": "amount";
7731
+ "type": "u64";
7732
+ }
7733
+ ];
7734
+ },
7735
+ {
7736
+ "name": "sweepLegacyJuniorEscrowExcess";
7737
+ "discriminator": [
7738
+ 66,
7739
+ 219,
7740
+ 143,
7741
+ 146,
7742
+ 126,
7743
+ 14,
7744
+ 138,
7745
+ 156
7746
+ ];
7747
+ "accounts": [
7748
+ {
7749
+ "name": "manager";
7750
+ "writable": true;
7751
+ "signer": true;
7752
+ },
7753
+ {
7754
+ "name": "bankState";
7755
+ "pda": {
7756
+ "seeds": [
7757
+ {
7758
+ "kind": "const";
7759
+ "value": [
7760
+ 66,
7761
+ 65,
7762
+ 78,
7763
+ 75
7764
+ ];
7765
+ },
7766
+ {
7767
+ "kind": "account";
7768
+ "path": "bankState";
7769
+ }
7770
+ ];
7771
+ };
7772
+ },
7773
+ {
7774
+ "name": "trancheState";
7775
+ "pda": {
7776
+ "seeds": [
7777
+ {
7778
+ "kind": "const";
7779
+ "value": [
7780
+ 84,
7781
+ 82,
7782
+ 65,
7783
+ 78,
7784
+ 67,
7785
+ 72,
7786
+ 69
7787
+ ];
7788
+ },
7789
+ {
7790
+ "kind": "account";
7791
+ "path": "bankState";
7792
+ }
7793
+ ];
7794
+ };
7795
+ },
7796
+ {
7797
+ "name": "bankMint";
7798
+ },
7799
+ {
7800
+ "name": "juniorEscrowAta";
5772
7801
  "writable": true;
5773
7802
  "pda": {
5774
7803
  "seeds": [
5775
7804
  {
5776
7805
  "kind": "account";
5777
- "path": "user";
7806
+ "path": "trancheState";
5778
7807
  },
5779
7808
  {
5780
7809
  "kind": "account";
@@ -5782,7 +7811,7 @@ type Bankineco = {
5782
7811
  },
5783
7812
  {
5784
7813
  "kind": "account";
5785
- "path": "juniorMint";
7814
+ "path": "bankMint";
5786
7815
  }
5787
7816
  ];
5788
7817
  "program": {
@@ -5825,16 +7854,13 @@ type Bankineco = {
5825
7854
  };
5826
7855
  },
5827
7856
  {
5828
- "name": "juniorEscrowAta";
5829
- "docs": [
5830
- "The escrow ATA for staked bank mint tokens, owned by the tranche state PDA"
5831
- ];
7857
+ "name": "destinationAta";
5832
7858
  "writable": true;
5833
7859
  "pda": {
5834
7860
  "seeds": [
5835
7861
  {
5836
7862
  "kind": "account";
5837
- "path": "trancheState";
7863
+ "path": "manager";
5838
7864
  },
5839
7865
  {
5840
7866
  "kind": "account";
@@ -5884,24 +7910,19 @@ type Bankineco = {
5884
7910
  };
5885
7911
  };
5886
7912
  },
5887
- {
5888
- "name": "systemProgram";
5889
- "address": "11111111111111111111111111111111";
5890
- },
5891
7913
  {
5892
7914
  "name": "tokenProgram";
5893
7915
  },
5894
7916
  {
5895
7917
  "name": "associatedTokenProgram";
5896
7918
  "address": "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL";
5897
- }
5898
- ];
5899
- "args": [
7919
+ },
5900
7920
  {
5901
- "name": "amount";
5902
- "type": "u64";
7921
+ "name": "systemProgram";
7922
+ "address": "11111111111111111111111111111111";
5903
7923
  }
5904
7924
  ];
7925
+ "args": [];
5905
7926
  },
5906
7927
  {
5907
7928
  "name": "teamWithdrawsFees";
@@ -6209,8 +8230,10 @@ type Bankineco = {
6209
8230
  },
6210
8231
  {
6211
8232
  "name": "trancheState";
6212
- "writable": true;
6213
- "optional": true;
8233
+ "docs": [
8234
+ "for a source bank that never enabled tranching; the handler verifies its",
8235
+ "owner and deserializes it when it exists."
8236
+ ];
6214
8237
  "pda": {
6215
8238
  "seeds": [
6216
8239
  {
@@ -6232,6 +8255,20 @@ type Bankineco = {
6232
8255
  ];
6233
8256
  };
6234
8257
  },
8258
+ {
8259
+ "name": "juniorEscrowAta";
8260
+ "docs": [
8261
+ "from the source bank mint and token program, then validates and requires an",
8262
+ "empty token account whenever the source tranche exists."
8263
+ ];
8264
+ },
8265
+ {
8266
+ "name": "lockedJuniorSharesAta";
8267
+ "docs": [
8268
+ "when transferring the junior receipt mint authority."
8269
+ ];
8270
+ "optional": true;
8271
+ },
6235
8272
  {
6236
8273
  "name": "vaultTrancheState";
6237
8274
  "writable": true;
@@ -6239,6 +8276,13 @@ type Bankineco = {
6239
8276
  },
6240
8277
  {
6241
8278
  "name": "tokenProgram";
8279
+ },
8280
+ {
8281
+ "name": "bankTokenProgram";
8282
+ "docs": [
8283
+ "Token program that owns the legacy bank mint and junior escrow. This can",
8284
+ "differ from `token_program` when transferring the junior receipt mint."
8285
+ ];
6242
8286
  }
6243
8287
  ];
6244
8288
  "args": [
@@ -6918,6 +8962,22 @@ type Bankineco = {
6918
8962
  {
6919
8963
  "name": "systemProgram";
6920
8964
  "address": "11111111111111111111111111111111";
8965
+ },
8966
+ {
8967
+ "name": "vaultOracle";
8968
+ "docs": [
8969
+ "Required when enabling tranching organically (`for_migration == false`)",
8970
+ "on a vault that still has main shareholders accruing fixed APY: that APY",
8971
+ "is only folded into `mint_share_price` while tranching is off, so a fresh",
8972
+ "NAV must have been settled just before the switch or the accrued APY owed",
8973
+ "to those shareholders is forfeited. Not needed on the migration path,",
8974
+ "whose accounting is reconstructed wholesale from the legacy state.",
8975
+ "",
8976
+ "Kept LAST (a trailing optional account) so legacy clients that predate it",
8977
+ "— e.g. the migration path building against the frozen bankineco IDL —",
8978
+ "simply omit it and the program reads it as `None`."
8979
+ ];
8980
+ "optional": true;
6921
8981
  }
6922
8982
  ];
6923
8983
  "args": [
@@ -7092,6 +9152,14 @@ type Bankineco = {
7092
9152
  {
7093
9153
  "name": "systemProgram";
7094
9154
  "address": "11111111111111111111111111111111";
9155
+ },
9156
+ {
9157
+ "name": "sourceVaultTrancheState";
9158
+ "optional": true;
9159
+ },
9160
+ {
9161
+ "name": "destinationVaultTrancheState";
9162
+ "optional": true;
7095
9163
  }
7096
9164
  ];
7097
9165
  "args": [
@@ -7475,239 +9543,224 @@ type Bankineco = {
7475
9543
  ];
7476
9544
  "errors": [
7477
9545
  {
7478
- "code": 14001;
7479
- "name": "unauthorized";
7480
- "msg": "You are not authorized to perform this action.";
7481
- },
7482
- {
7483
- "code": 14002;
7484
- "name": "invalidBankMint";
7485
- "msg": "Invalid mint";
9546
+ "code": 6000;
9547
+ "name": "mintSupplyNonZero";
9548
+ "msg": "Supplied share mint already has non-zero supply";
7486
9549
  },
7487
9550
  {
7488
- "code": 14003;
7489
- "name": "accountingIssue";
7490
- "msg": "Accounting issue";
9551
+ "code": 6001;
9552
+ "name": "invalidAssetMint";
9553
+ "msg": "Supplied mint is not accepted by this vault";
7491
9554
  },
7492
9555
  {
7493
- "code": 14004;
7494
- "name": "vaultAccountingIssue";
7495
- "msg": "Vault accounting issue";
9556
+ "code": 6002;
9557
+ "name": "zeroDepositAmount";
9558
+ "msg": "Deposit amount must be greater than zero";
7496
9559
  },
7497
9560
  {
7498
- "code": 14005;
7499
- "name": "bankAccountingIssue";
7500
- "msg": "Bank accounting issue";
9561
+ "code": 6003;
9562
+ "name": "exceedsTvlLimit";
9563
+ "msg": "Deposit would exceed the vault's TVL limit";
7501
9564
  },
7502
9565
  {
7503
- "code": 14006;
7504
- "name": "onchainAccountingIssue";
7505
- "msg": "Onchain accounting issue";
9566
+ "code": 6004;
9567
+ "name": "zeroBurnAmount";
9568
+ "msg": "Burn amount must be greater than zero";
7506
9569
  },
7507
9570
  {
7508
- "code": 14007;
7509
- "name": "externalAccountingIssue";
7510
- "msg": "External accounting issue";
9571
+ "code": 6005;
9572
+ "name": "zeroAssetAmount";
9573
+ "msg": "Asset amount must be greater than zero";
7511
9574
  },
7512
9575
  {
7513
- "code": 14008;
7514
- "name": "mintSlippage";
7515
- "msg": "Minting failed due to slippage.";
9576
+ "code": 6006;
9577
+ "name": "insufficientVaultLiquidity";
9578
+ "msg": "Insufficient vault liquidity to satisfy withdrawal";
7516
9579
  },
7517
9580
  {
7518
- "code": 14009;
7519
- "name": "burningSlippage";
7520
- "msg": "Burning failed due to slippage.";
9581
+ "code": 6007;
9582
+ "name": "mintAuthorityNotCurator";
9583
+ "msg": "Mint authority is not the curator";
7521
9584
  },
7522
9585
  {
7523
- "code": 14010;
7524
- "name": "teamAccountAlreadyExists";
7525
- "msg": "Team account already exists";
9586
+ "code": 6008;
9587
+ "name": "zeroTotalSupply";
9588
+ "msg": "Vault total supply is zero";
7526
9589
  },
7527
9590
  {
7528
- "code": 14011;
7529
- "name": "oracleAccountAlreadyExists";
7530
- "msg": "Oracle account already exists";
7531
- },
7532
- {
7533
- "code": 14012;
9591
+ "code": 6009;
7534
9592
  "name": "staleOracle";
7535
- "msg": "Stale oracle";
7536
- },
7537
- {
7538
- "code": 14013;
7539
- "name": "localSignificantPriceChange";
7540
- "msg": "Price change is too large locally";
9593
+ "msg": "Vault oracle is stale";
7541
9594
  },
7542
9595
  {
7543
- "code": 14014;
7544
- "name": "significantPriceChange";
7545
- "msg": "Price change is too large";
9596
+ "code": 6010;
9597
+ "name": "invalidOracleUpdate";
9598
+ "msg": "Invalid oracle update";
7546
9599
  },
7547
9600
  {
7548
- "code": 14015;
7549
- "name": "roundingImpact";
7550
- "msg": "Rounding impacts the protocol";
9601
+ "code": 6011;
9602
+ "name": "invalidInitialMintSharePrice";
9603
+ "msg": "Initial mint share price must be greater than zero";
7551
9604
  },
7552
9605
  {
7553
- "code": 14016;
7554
- "name": "bankIsHalted";
7555
- "msg": "Bank is halted";
9606
+ "code": 6012;
9607
+ "name": "maxApyExceeded";
9608
+ "msg": "Oracle NAV update exceeds the vault's maximum acceptable APY";
7556
9609
  },
7557
9610
  {
7558
- "code": 14017;
7559
- "name": "vaultIsHalted";
7560
- "msg": "Vault is halted";
9611
+ "code": 6013;
9612
+ "name": "invalidApyConfig";
9613
+ "msg": "Invalid APY configuration";
7561
9614
  },
7562
9615
  {
7563
- "code": 14018;
7564
- "name": "conversionOverflow";
7565
- "msg": "Conversion Overflow";
9616
+ "code": 6014;
9617
+ "name": "invalidFeeConfig";
9618
+ "msg": "Invalid fee configuration";
7566
9619
  },
7567
9620
  {
7568
- "code": 14019;
7569
- "name": "reserved8019";
7570
- "msg": "reserved";
7571
- },
7572
- {
7573
- "code": 14020;
7574
- "name": "invalidArgument";
7575
- "msg": "Invalid argument";
9621
+ "code": 6015;
9622
+ "name": "vaultHasLiveAssets";
9623
+ "msg": "Vault has live supply, TVL, or holdings";
7576
9624
  },
7577
9625
  {
7578
- "code": 14021;
7579
- "name": "userSanityCheck";
7580
- "msg": "User Sanity Check";
9626
+ "code": 6016;
9627
+ "name": "depositMintsZeroShares";
9628
+ "msg": "Deposit would mint zero shares";
7581
9629
  },
7582
9630
  {
7583
- "code": 14022;
7584
- "name": "mathOverflow";
7585
- "msg": "Math overflow";
9631
+ "code": 6017;
9632
+ "name": "insufficientAccruedApyBalance";
9633
+ "msg": "Insufficient accrued APY balance";
7586
9634
  },
7587
9635
  {
7588
- "code": 14023;
7589
- "name": "invalidMarginFiAccount";
7590
- "msg": "Invalid MarginFi account - must be correct PDA for this vault";
9636
+ "code": 6018;
9637
+ "name": "invalidRole";
9638
+ "msg": "Invalid role configuration";
7591
9639
  },
7592
9640
  {
7593
- "code": 14024;
7594
- "name": "invalidStartMarker";
7595
- "msg": "Invalid start marker";
9641
+ "code": 6019;
9642
+ "name": "invalidProtocolInteraction";
9643
+ "msg": "Invalid protocol interaction CPI";
7596
9644
  },
7597
9645
  {
7598
- "code": 14025;
7599
- "name": "oracleUpdateOnEmptyReserve";
7600
- "msg": "Unable to push oracle update on an empty vault reserve";
9646
+ "code": 6020;
9647
+ "name": "reserved7020";
9648
+ "msg": "reserved";
7601
9649
  },
7602
9650
  {
7603
- "code": 14026;
7604
- "name": "invalidRemainingAccountsLength";
7605
- "msg": "Invalid remaining accounts length";
9651
+ "code": 6021;
9652
+ "name": "invalidExternalLiquidity";
9653
+ "msg": "Invalid external liquidity configuration";
7606
9654
  },
7607
9655
  {
7608
- "code": 14027;
7609
- "name": "withdrawalExceedsBalance";
7610
- "msg": "Specified withdrawal exceeds available balance";
9656
+ "code": 6022;
9657
+ "name": "swapBalanceUnchanged";
9658
+ "msg": "Swap did not change both source and destination balances";
7611
9659
  },
7612
9660
  {
7613
- "code": 14028;
7614
- "name": "insufficientPendingYield";
7615
- "msg": "Insufficient pending yield";
9661
+ "code": 6023;
9662
+ "name": "protocolBalanceUnchanged";
9663
+ "msg": "Protocol interaction did not change the affected token balance";
7616
9664
  },
7617
9665
  {
7618
- "code": 14029;
7619
- "name": "notSupported";
7620
- "msg": "Not supported";
9666
+ "code": 6024;
9667
+ "name": "excessiveSwapSlippage";
9668
+ "msg": "Swap TVL loss exceeds the allowed slippage";
7621
9669
  },
7622
9670
  {
7623
- "code": 14030;
7624
- "name": "exceedsMaxYieldingTvl";
7625
- "msg": "Exceeds maximum yielding TVL";
9671
+ "code": 6025;
9672
+ "name": "tranchingNotEnabled";
9673
+ "msg": "Vault tranching is not enabled";
7626
9674
  },
7627
9675
  {
7628
- "code": 14031;
7629
- "name": "tranchingNotEnabled";
7630
- "msg": "Tranching is not enabled for this bank";
9676
+ "code": 6026;
9677
+ "name": "tranchingAlreadyEnabled";
9678
+ "msg": "Vault tranching is already enabled";
7631
9679
  },
7632
9680
  {
7633
- "code": 14032;
7634
- "name": "invalidLeverageFactor";
7635
- "msg": "Invalid leverage factor - must be at least 10000 (1x)";
9681
+ "code": 6027;
9682
+ "name": "trancheStateRequired";
9683
+ "msg": "Tranche state account is required";
7636
9684
  },
7637
9685
  {
7638
- "code": 14033;
7639
- "name": "insufficientStakedAmount";
7640
- "msg": "Insufficient staked amount";
9686
+ "code": 6028;
9687
+ "name": "invalidTrancheConfig";
9688
+ "msg": "Invalid tranche configuration";
7641
9689
  },
7642
9690
  {
7643
- "code": 14034;
7644
- "name": "juniorTrancheEmpty";
7645
- "msg": "Junior tranche has no value";
9691
+ "code": 6029;
9692
+ "name": "invalidTrancheMint";
9693
+ "msg": "Invalid tranche mint";
7646
9694
  },
7647
9695
  {
7648
- "code": 14035;
7649
- "name": "invalidTrancheConfig";
7650
- "msg": "Invalid tranche config parameter";
9696
+ "code": 6030;
9697
+ "name": "lossesDisabled";
9698
+ "msg": "Vault losses are not enabled";
7651
9699
  },
7652
9700
  {
7653
- "code": 14036;
9701
+ "code": 6031;
7654
9702
  "name": "withdrawalQueueNotExpired";
7655
- "msg": "Withdrawal queue lockup period has not expired";
9703
+ "msg": "Withdrawal queue is not yet expired";
7656
9704
  },
7657
9705
  {
7658
- "code": 14037;
9706
+ "code": 6032;
7659
9707
  "name": "invalidWithdrawalQueue";
7660
- "msg": "Withdrawal queue entry is not in a valid state";
9708
+ "msg": "Invalid withdrawal queue";
7661
9709
  },
7662
9710
  {
7663
- "code": 14038;
7664
- "name": "invalidAccount";
7665
- "msg": "Account does not belong to the expected parent";
9711
+ "code": 6033;
9712
+ "name": "assetPriceNotSet";
9713
+ "msg": "Destination asset has no price set; a consensus oracle price is required before swapping";
7666
9714
  },
7667
9715
  {
7668
- "code": 14039;
7669
- "name": "missingAccount";
7670
- "msg": "Required optional account is missing";
9716
+ "code": 6034;
9717
+ "name": "assetHoldingNotEmpty";
9718
+ "msg": "Asset holding still has a balance and cannot be removed";
7671
9719
  },
7672
9720
  {
7673
- "code": 14040;
7674
- "name": "trancheWipedOut";
7675
- "msg": "Junior tranche is wiped out and cannot accept new stakes";
9721
+ "code": 6035;
9722
+ "name": "cannotRemoveBaseHolding";
9723
+ "msg": "The base asset holding cannot be removed";
7676
9724
  },
7677
9725
  {
7678
- "code": 14041;
7679
- "name": "vaultLossNotAccepted";
7680
- "msg": "Vault does not accept losses enable losses_accepted before retrying";
9726
+ "code": 6036;
9727
+ "name": "unauthorizedPriceUpdater";
9728
+ "msg": "Caller is not authorized to trigger an asset price update";
7681
9729
  },
7682
9730
  {
7683
- "code": 14042;
7684
- "name": "capitalLossExceedsReserve";
7685
- "msg": "Capital loss exceeds available yielding reserve";
9731
+ "code": 6037;
9732
+ "name": "invalidStalenessConfig";
9733
+ "msg": "Invalid asset-price staleness threshold";
7686
9734
  },
7687
9735
  {
7688
- "code": 14043;
7689
- "name": "rollingWithdrawalLimitExceeded";
7690
- "msg": "Rolling withdrawal limit exceeded";
9736
+ "code": 6038;
9737
+ "name": "assetRebalanceRateLimitExceeded";
9738
+ "msg": "Asset was rebalanced too recently";
7691
9739
  },
7692
9740
  {
7693
- "code": 14044;
7694
- "name": "vaultAlreadyMigrated";
7695
- "msg": "Legacy vault has already been migrated";
9741
+ "code": 6039;
9742
+ "name": "invalidShareTokenProgram";
9743
+ "msg": "Share token program does not match the vault/tranche mint configuration";
7696
9744
  },
7697
9745
  {
7698
- "code": 14045;
7699
- "name": "invalidMigrationState";
7700
- "msg": "Legacy vault migration is incomplete or invalid";
9746
+ "code": 6040;
9747
+ "name": "unauthorizedVaultCreator";
9748
+ "msg": "Caller is not on the vault-creator whitelist";
7701
9749
  },
7702
9750
  {
7703
- "code": 14046;
7704
- "name": "invalidMigrationMintAuthority";
7705
- "msg": "Mint authority does not match the expected migration source";
9751
+ "code": 6041;
9752
+ "name": "invalidShareMintDecimals";
9753
+ "msg": "Share mint decimals must match the deposit asset mint decimals";
7706
9754
  },
7707
9755
  {
7708
- "code": 14047;
7709
- "name": "bankMigrationIncomplete";
7710
- "msg": "Bank migration is incomplete yielding TVL must be zero before main mint authority transfer";
9756
+ "code": 6042;
9757
+ "name": "invalidFeeExemption";
9758
+ "msg": "Invalid fee-exemption PDA signer or seeds";
9759
+ },
9760
+ {
9761
+ "code": 6043;
9762
+ "name": "exceedsJuniorDepositCap";
9763
+ "msg": "Deposit would exceed the junior tranche deposit cap";
7711
9764
  }
7712
9765
  ];
7713
9766
  "types": [
@@ -7716,7 +9769,7 @@ type Bankineco = {
7716
9769
  "docs": [
7717
9770
  "APY targets and deficit tracking.",
7718
9771
  "",
7719
- "Expected share price at time `t` is computed from the anchor:",
9772
+ "Expected share price at time `t` is computed from the durable anchor:",
7720
9773
  "expected = anchor_share_price * (1 + fixed_apy_bps/10_000)^((t - anchor_ts)/YEAR)",
7721
9774
  "",
7722
9775
  "The anchor must be reset whenever any of the following change:",
@@ -7779,16 +9832,15 @@ type Bankineco = {
7779
9832
  {
7780
9833
  "name": "accruedApyBalance";
7781
9834
  "docs": [
7782
- "Realised performance balance, carried across re-anchors. A TVL-",
7783
- "denominated amount (same accounting unit as `VaultAccounting::tvl`):",
7784
- "positive = banked surplus credit available to cover future fixed-APY",
7785
- "deficits.",
9835
+ "Current divergence between holdings-derived NAV and the fixed-APY target,",
9836
+ "in the same accounting unit as `VaultAccounting::tvl`: positive means",
9837
+ "holdings are above target; negative means they are below target.",
7786
9838
  "",
7787
9839
  "Used in two cases:",
7788
9840
  "",
7789
9841
  "1. APY tracking when `fixed_apy_bps` is set -- the",
7790
- "delta between expected share price (from the anchor + fixed APY) and",
7791
- "actual share price feeds in here on each settlement.",
9842
+ "difference between expected NAV and actual holdings-derived NAV is",
9843
+ "recorded here on each settlement.",
7792
9844
  "2. NAV reconciliation regardless of APY settings -- when the oracle's",
7793
9845
  "settled NAV diverges from the booked `VaultAccounting::tvl`, the",
7794
9846
  "difference accrues here (oracle NAV above book = surplus; below =",
@@ -9852,11 +11904,10 @@ type Bankineco = {
9852
11904
  };
9853
11905
  },
9854
11906
  {
9855
- "name": "apySettleSkip";
11907
+ "name": "paddingBool";
9856
11908
  "docs": [
9857
- "Set when a holding is first priced (price 0 -> non-zero) by an oracle",
9858
- "update; consumed by the next `crank_nav` to skip the realized-APY guard",
9859
- "for that settlement (first-pricing legitimately moves NAV). Was padding."
11909
+ "Reserved padding (previously `apy_settle_skip`). Kept as a field to",
11910
+ "preserve the on-chain account layout for already-deployed vaults."
9860
11911
  ];
9861
11912
  "type": {
9862
11913
  "defined": {
@@ -10094,6 +12145,13 @@ type Bankineco = {
10094
12145
  "name": "targetLockupDurationSecs";
10095
12146
  "type": "i64";
10096
12147
  },
12148
+ {
12149
+ "name": "juniorDepositCap";
12150
+ "docs": [
12151
+ "Maximum junior tranche value in accounting units. Zero means uncapped."
12152
+ ];
12153
+ "type": "u64";
12154
+ },
10097
12155
  {
10098
12156
  "name": "forMigration";
10099
12157
  "docs": [
@@ -10137,10 +12195,6 @@ type Bankineco = {
10137
12195
  ];
10138
12196
  "type": "pubkey";
10139
12197
  },
10140
- {
10141
- "name": "assetDecimals";
10142
- "type": "u8";
10143
- },
10144
12198
  {
10145
12199
  "name": "mintFeeBps";
10146
12200
  "type": "u16";
@@ -10814,12 +12868,24 @@ type Bankineco = {
10814
12868
  "name": "protocolFeesAccrued";
10815
12869
  "type": "u64";
10816
12870
  },
12871
+ {
12872
+ "name": "hwmSharePrice";
12873
+ "docs": [
12874
+ "High-water mark for this class's performance fee, in the same fixed-point",
12875
+ "units as `share_price`. Only share-price growth above this mark is charged",
12876
+ "a performance/protocol fee. `0` means \"not yet initialized\" and is lazily",
12877
+ "set to the current share price on the next settlement (so pre-existing",
12878
+ "accounts never retroactively pay on gains earned before this field",
12879
+ "existed). Only the junior class charges a fee; senior is exempt."
12880
+ ];
12881
+ "type": "u64";
12882
+ },
10817
12883
  {
10818
12884
  "name": "padding1";
10819
12885
  "type": {
10820
12886
  "array": [
10821
12887
  "u64",
10822
- 14
12888
+ 13
10823
12889
  ];
10824
12890
  };
10825
12891
  }
@@ -10883,12 +12949,21 @@ type Bankineco = {
10883
12949
  "name": "targetLockupDurationSecs";
10884
12950
  "type": "i64";
10885
12951
  },
12952
+ {
12953
+ "name": "juniorDepositCap";
12954
+ "docs": [
12955
+ "Maximum junior tranche value in vault accounting units. Zero disables",
12956
+ "the cap. Yield may carry the tranche above this value, but further",
12957
+ "junior deposits remain blocked until its value falls below the cap."
12958
+ ];
12959
+ "type": "u64";
12960
+ },
10886
12961
  {
10887
12962
  "name": "padding2";
10888
12963
  "type": {
10889
12964
  "array": [
10890
12965
  "u64",
10891
- 14
12966
+ 13
10892
12967
  ];
10893
12968
  };
10894
12969
  }
@@ -10948,7 +13023,21 @@ type Bankineco = {
10948
13023
  {
10949
13024
  "name": "lastSettledTs";
10950
13025
  "docs": [
10951
- "Last timestamp used for senior fixed-APY entitlement accrual."
13026
+ "Last NAV settlement timestamp."
13027
+ ];
13028
+ "type": "i64";
13029
+ },
13030
+ {
13031
+ "name": "seniorApyAnchorSharePrice";
13032
+ "docs": [
13033
+ "Senior share price at the start of the current APY regime."
13034
+ ];
13035
+ "type": "u64";
13036
+ },
13037
+ {
13038
+ "name": "seniorApyAnchorTs";
13039
+ "docs": [
13040
+ "Unix timestamp when the senior APY anchor was set."
10952
13041
  ];
10953
13042
  "type": "i64";
10954
13043
  },
@@ -10957,7 +13046,7 @@ type Bankineco = {
10957
13046
  "type": {
10958
13047
  "array": [
10959
13048
  "u64",
10960
- 31
13049
+ 29
10961
13050
  ];
10962
13051
  };
10963
13052
  }
@@ -10992,6 +13081,15 @@ type Bankineco = {
10992
13081
  "type": {
10993
13082
  "option": "i64";
10994
13083
  };
13084
+ },
13085
+ {
13086
+ "name": "juniorDepositCap";
13087
+ "docs": [
13088
+ "Maximum junior tranche value in accounting units. Zero means uncapped."
13089
+ ];
13090
+ "type": {
13091
+ "option": "u64";
13092
+ };
10995
13093
  }
10996
13094
  ];
10997
13095
  };
@@ -11199,8 +13297,8 @@ type Bankineco = {
11199
13297
  "name": "hwmSharePrice";
11200
13298
  "docs": [
11201
13299
  "High-water mark for the performance fee. Only share-price growth above",
11202
- "this value is fee-eligible; monotonically increasing and never reset",
11203
- "on fee changes (resetting would be a giveback to the curator)."
13300
+ "this value is fee-eligible. Fee-rate changes re-anchor it to the current",
13301
+ "share price so the new rate does not apply retroactively."
11204
13302
  ];
11205
13303
  "type": "u64";
11206
13304
  },
@@ -11745,6 +13843,11 @@ interface BaseQuoteArgs {
11745
13843
  vault: Address;
11746
13844
  assetMint: Address;
11747
13845
  signer: Address;
13846
+ /**
13847
+ * PDA seeds, including the bump, used by a `*_fee_exempt` instruction.
13848
+ * Omit for the standard fee-bearing instruction routes.
13849
+ */
13850
+ addressSeeds?: readonly Uint8Array[];
11748
13851
  amount: Bigintish;
11749
13852
  vaultTrancheState?: Address;
11750
13853
  fresh?: boolean;
@@ -11786,7 +13889,7 @@ declare class VaultQuoteClient {
11786
13889
  constructor(connection: Connection, account: AccountClient, programId?: Address);
11787
13890
  quote(args: VaultQuoteArgs): Promise<VaultQuote>;
11788
13891
  private fetchSignerOwner;
11789
- private isFeeExemptSignerOwner;
13892
+ private isFeeExemptSigner;
11790
13893
  private fetchTrancheState;
11791
13894
  private regularBackingValue;
11792
13895
  private quoteRegular;
@@ -11806,7 +13909,6 @@ interface CreateVaultParams {
11806
13909
  cbTrigger: Address;
11807
13910
  feeCollector: Address;
11808
13911
  baseAssetMint: Address;
11809
- assetDecimals: number;
11810
13912
  mintFeeBps: number;
11811
13913
  burnFeeBps: number;
11812
13914
  performanceFeeBps: number;
@@ -11834,7 +13936,6 @@ interface CreateVaultTxArgs {
11834
13936
  curator: Address;
11835
13937
  shareMint: Address;
11836
13938
  strictAssetMint: Address;
11837
- assetDecimals: number;
11838
13939
  vaultId?: number;
11839
13940
  hwManager?: Address;
11840
13941
  cbTrigger?: Address;
@@ -11848,7 +13949,7 @@ interface CreateVaultTxArgs {
11848
13949
  lossesEnabled?: boolean;
11849
13950
  /** Base-asset oracle: 1 = ConsensusOracle (default), 2 = Pyth, 3 = PerenaVault. */
11850
13951
  basePriceOracleType?: number;
11851
- /** Initial base-asset price in the accounting unit. Defaults to 1.0 (10^assetDecimals). */
13952
+ /** Initial base-asset price in the accounting unit. Defaults to 1.0, scaled by the deposit mint's decimals. */
11852
13953
  basePrice?: bigint;
11853
13954
  /** Price-source account when basePriceOracleType is Pyth/PerenaVault. */
11854
13955
  basePriceOracleAccount?: Address;
@@ -12052,10 +14153,17 @@ interface CreateTrancheStateIxArgs {
12052
14153
  vaultTrancheState: Address;
12053
14154
  juniorShareMint: Address;
12054
14155
  seniorShareMint: Address;
14156
+ /**
14157
+ * Required on the organic path (`forMigration === false`) so the program can
14158
+ * enforce a fresh NAV before switching to tranche accounting; omitted on the
14159
+ * migration path.
14160
+ */
14161
+ vaultOracle?: Address;
12055
14162
  seniorFixedApyBps: number;
12056
14163
  earlyUnstakeFeeBps: number;
12057
14164
  standardUnstakeFeeBps: number;
12058
14165
  targetLockupDurationSecs: BN;
14166
+ juniorDepositCap: BN;
12059
14167
  forMigration: boolean;
12060
14168
  tokenProgram: Address;
12061
14169
  }
@@ -12064,10 +14172,13 @@ interface CreateTrancheStateTxArgs {
12064
14172
  vault: Address;
12065
14173
  juniorShareMint: Address;
12066
14174
  seniorShareMint: Address;
14175
+ vaultOracle?: Address;
12067
14176
  seniorFixedApyBps?: number;
12068
14177
  earlyUnstakeFeeBps?: number;
12069
14178
  standardUnstakeFeeBps?: number;
12070
14179
  targetLockupDurationSecs?: number;
14180
+ /** Maximum junior tranche value in accounting units. Zero means uncapped. */
14181
+ juniorDepositCap?: bigint;
12071
14182
  forMigration?: boolean;
12072
14183
  tokenProgram?: Address;
12073
14184
  }
@@ -12080,6 +14191,7 @@ interface UpdateTrancheConfigIxArgs {
12080
14191
  earlyUnstakeFeeBps: number | null;
12081
14192
  standardUnstakeFeeBps: number | null;
12082
14193
  targetLockupDurationSecs: BN | null;
14194
+ juniorDepositCap: BN | null;
12083
14195
  }
12084
14196
  interface UpdateTrancheConfigTxArgs {
12085
14197
  curator: Address;
@@ -12090,6 +14202,8 @@ interface UpdateTrancheConfigTxArgs {
12090
14202
  earlyUnstakeFeeBps?: number;
12091
14203
  standardUnstakeFeeBps?: number;
12092
14204
  targetLockupDurationSecs?: number;
14205
+ /** Maximum junior tranche value in accounting units. Zero means uncapped. */
14206
+ juniorDepositCap?: bigint;
12093
14207
  }
12094
14208
  interface InitializeVaultRolesIxArgs {
12095
14209
  curator: Address;
@@ -12212,6 +14326,8 @@ interface ExecuteDepositIxArgs {
12212
14326
  assetTokenProgram: Address;
12213
14327
  shareTokenProgram: Address;
12214
14328
  amount: BN;
14329
+ /** PDA derivation seeds, including the bump, for the fee-exempt route. */
14330
+ addressSeeds?: readonly Uint8Array[];
12215
14331
  }
12216
14332
  interface ExecuteDepositTxArgs {
12217
14333
  user: Address;
@@ -12225,6 +14341,8 @@ interface ExecuteDepositTxArgs {
12225
14341
  amount: bigint;
12226
14342
  assetTokenProgram?: Address;
12227
14343
  shareTokenProgram?: Address;
14344
+ /** PDA derivation seeds, including the bump, for the fee-exempt route. */
14345
+ addressSeeds?: readonly Uint8Array[];
12228
14346
  }
12229
14347
  interface ExecuteWithdrawIxArgs {
12230
14348
  user: Address;
@@ -12245,6 +14363,8 @@ interface ExecuteWithdrawIxArgs {
12245
14363
  externalWithdrawIxRefs: InstructionRefs | null;
12246
14364
  externalLiquiditySource: number | null;
12247
14365
  externalWithdrawAccounts: CustomAccountMeta[];
14366
+ /** PDA derivation seeds, including the bump, for the fee-exempt route. */
14367
+ addressSeeds?: readonly Uint8Array[];
12248
14368
  }
12249
14369
  interface ExecuteWithdrawTxArgs {
12250
14370
  user: Address;
@@ -12269,6 +14389,8 @@ interface ExecuteWithdrawTxArgs {
12269
14389
  * but the corresponding Marginfi pool has no funds (e.g. test deployments).
12270
14390
  */
12271
14391
  skipExternalLiquidity?: boolean;
14392
+ /** PDA derivation seeds, including the bump, for the fee-exempt route. */
14393
+ addressSeeds?: readonly Uint8Array[];
12272
14394
  }
12273
14395
  interface ExecuteShareSwapIxArgs {
12274
14396
  user: Address;
@@ -12317,6 +14439,8 @@ interface ExecuteTrancheDepositIxArgs {
12317
14439
  shareTokenProgram: Address;
12318
14440
  kind: TrancheKindArgs;
12319
14441
  amount: BN;
14442
+ /** PDA derivation seeds, including the bump, for the fee-exempt route. */
14443
+ addressSeeds?: readonly Uint8Array[];
12320
14444
  }
12321
14445
  interface ExecuteTrancheDepositTxArgs {
12322
14446
  user: Address;
@@ -12329,6 +14453,8 @@ interface ExecuteTrancheDepositTxArgs {
12329
14453
  amount: bigint;
12330
14454
  assetTokenProgram?: Address;
12331
14455
  shareTokenProgram?: Address;
14456
+ /** PDA derivation seeds, including the bump, for the fee-exempt route. */
14457
+ addressSeeds?: readonly Uint8Array[];
12332
14458
  }
12333
14459
  interface ExecuteTrancheWithdrawIxArgs {
12334
14460
  user: Address;
@@ -12344,6 +14470,8 @@ interface ExecuteTrancheWithdrawIxArgs {
12344
14470
  shareTokenProgram: Address;
12345
14471
  kind: TrancheKindArgs;
12346
14472
  shareAmount: BN;
14473
+ /** PDA derivation seeds, including the bump, for the fee-exempt route. */
14474
+ addressSeeds?: readonly Uint8Array[];
12347
14475
  }
12348
14476
  interface ExecuteTrancheWithdrawTxArgs {
12349
14477
  user: Address;
@@ -12356,6 +14484,8 @@ interface ExecuteTrancheWithdrawTxArgs {
12356
14484
  shareAmount: bigint;
12357
14485
  assetTokenProgram?: Address;
12358
14486
  shareTokenProgram?: Address;
14487
+ /** PDA derivation seeds, including the bump, for the fee-exempt route. */
14488
+ addressSeeds?: readonly Uint8Array[];
12359
14489
  }
12360
14490
  interface RequestJuniorTrancheWithdrawIxArgs {
12361
14491
  user: Address;
@@ -12424,6 +14554,8 @@ interface FulfillJuniorTrancheWithdrawIxArgs {
12424
14554
  queueInputAta: Address;
12425
14555
  assetTokenProgram: Address;
12426
14556
  shareTokenProgram: Address;
14557
+ /** PDA derivation seeds, including the bump, for the fee-exempt route. */
14558
+ addressSeeds?: readonly Uint8Array[];
12427
14559
  }
12428
14560
  interface FulfillJuniorTrancheWithdrawTxArgs {
12429
14561
  owner: Address;
@@ -12440,6 +14572,8 @@ interface FulfillJuniorTrancheWithdrawTxArgs {
12440
14572
  feeCollector?: Address;
12441
14573
  assetTokenProgram?: Address;
12442
14574
  shareTokenProgram?: Address;
14575
+ /** PDA derivation seeds, including the bump, for the fee-exempt route. */
14576
+ addressSeeds?: readonly Uint8Array[];
12443
14577
  }
12444
14578
  interface WithdrawTrancheFeesIxArgs {
12445
14579
  curator: Address;
@@ -12528,6 +14662,8 @@ interface VaultReallocationIxArgs {
12528
14662
  destinationFeeVaultMintAta: Address;
12529
14663
  allocationSourceShareAta: Address | null;
12530
14664
  allocationDestinationShareAta: Address;
14665
+ sourceVaultTrancheState: Address | null;
14666
+ destinationVaultTrancheState: Address | null;
12531
14667
  assetTokenProgram: Address;
12532
14668
  sourceShareTokenProgram: Address;
12533
14669
  destinationShareTokenProgram: Address;
@@ -12549,6 +14685,8 @@ interface VaultReallocationTxArgs {
12549
14685
  assetTokenProgram?: Address;
12550
14686
  sourceShareTokenProgram?: Address;
12551
14687
  destinationShareTokenProgram?: Address;
14688
+ sourceVaultTrancheState?: Address;
14689
+ destinationVaultTrancheState?: Address;
12552
14690
  assetOracleAccount?: Address;
12553
14691
  assetPriceOracle?: AssetPriceOracleConfigTxArgs;
12554
14692
  }
@@ -12583,6 +14721,7 @@ interface JupiterSwapIxArgs {
12583
14721
  destinationTokenProgram: Address;
12584
14722
  destinationOracleAccount: Address | null;
12585
14723
  vaultOracle: Address;
14724
+ vaultTrancheState: Address | null;
12586
14725
  refs: InstructionRefs;
12587
14726
  destinationPriceOracle: AssetPriceOracleConfigIxArgs;
12588
14727
  accounts: CustomAccountMeta[];
@@ -12598,6 +14737,7 @@ interface JupiterSwapTxArgs {
12598
14737
  destinationTokenProgram?: Address;
12599
14738
  destinationOracleAccount?: Address;
12600
14739
  vaultOracle?: Address;
14740
+ vaultTrancheState?: Address;
12601
14741
  destinationPriceOracle?: AssetPriceOracleConfigTxArgs;
12602
14742
  lookupTables?: Address[];
12603
14743
  }
@@ -12900,6 +15040,7 @@ declare class ExecuteDepositBuilder extends VaultBuilderBase<ExecuteDepositIxArg
12900
15040
  };
12901
15041
  getIxData(args: ExecuteDepositIxArgs): {
12902
15042
  amount: BN;
15043
+ addressSeeds: readonly Uint8Array<ArrayBufferLike>[] | undefined;
12903
15044
  };
12904
15045
  getIx(args: ExecuteDepositIxArgs): Promise<_solana_kit.Instruction<string, readonly (_solana_kit.AccountLookupMeta<string, string> | _solana_kit.AccountMeta<string>)[]>>;
12905
15046
  protected deriveIxArgs(txArgs: ExecuteDepositTxArgs): Promise<ExecuteDepositIxArgs>;
@@ -12933,6 +15074,7 @@ declare class ExecuteTrancheDepositBuilder extends VaultBuilderBase<ExecuteTranc
12933
15074
  getIxData(args: ExecuteTrancheDepositIxArgs): {
12934
15075
  kind: TrancheKindArgs;
12935
15076
  amount: BN;
15077
+ addressSeeds: readonly Uint8Array<ArrayBufferLike>[] | undefined;
12936
15078
  };
12937
15079
  getIx(args: ExecuteTrancheDepositIxArgs): Promise<_solana_kit.Instruction<string, readonly (_solana_kit.AccountLookupMeta<string, string> | _solana_kit.AccountMeta<string>)[]>>;
12938
15080
  protected deriveIxArgs(txArgs: ExecuteTrancheDepositTxArgs): Promise<ExecuteTrancheDepositIxArgs>;
@@ -12965,6 +15107,7 @@ declare class ExecuteTrancheWithdrawBuilder extends VaultBuilderBase<ExecuteTran
12965
15107
  getIxData(args: ExecuteTrancheWithdrawIxArgs): {
12966
15108
  kind: TrancheKindArgs;
12967
15109
  shareAmount: BN;
15110
+ addressSeeds: readonly Uint8Array<ArrayBufferLike>[] | undefined;
12968
15111
  };
12969
15112
  getIx(args: ExecuteTrancheWithdrawIxArgs): Promise<_solana_kit.Instruction<string, readonly (_solana_kit.AccountLookupMeta<string, string> | _solana_kit.AccountMeta<string>)[]>>;
12970
15113
  protected deriveIxArgs(txArgs: ExecuteTrancheWithdrawTxArgs): Promise<ExecuteTrancheWithdrawIxArgs>;
@@ -12998,6 +15141,7 @@ declare class ExecuteWithdrawBuilder extends VaultBuilderBase<ExecuteWithdrawIxA
12998
15141
  shareAmount: BN;
12999
15142
  externalWithdrawIxRefs: common.InstructionRefs | null;
13000
15143
  externalLiquiditySource: number | null;
15144
+ addressSeeds: readonly Uint8Array<ArrayBufferLike>[] | undefined;
13001
15145
  };
13002
15146
  getIx(args: ExecuteWithdrawIxArgs): Promise<_solana_kit.Instruction<string, readonly (_solana_kit.AccountLookupMeta<string, string> | _solana_kit.AccountMeta<string>)[]>>;
13003
15147
  protected deriveIxArgs(txArgs: ExecuteWithdrawTxArgs): Promise<ExecuteWithdrawIxArgs>;
@@ -13065,9 +15209,13 @@ declare class JupiterSwapBuilder extends VaultBuilderBase<JupiterSwapIxArgs, Jup
13065
15209
  protected buildPreambleInstructions(args: JupiterSwapIxArgs): Promise<_solana_kit.Instruction<string, readonly (_solana_kit.AccountLookupMeta<string, string> | _solana_kit.AccountMeta<string>)[]>[]>;
13066
15210
  protected buildLookupTables(_args: JupiterSwapIxArgs, txArgs: JupiterSwapTxArgs): Promise<readonly Address[] | undefined>;
13067
15211
  protected buildPlanExtras(args: JupiterSwapIxArgs): Promise<{
13068
- postSuccessCacheInvalidations: {
15212
+ postSuccessCacheInvalidations: ({
13069
15213
  vaultPda: Address;
13070
- }[];
15214
+ vaultTrancheStatePda?: undefined;
15215
+ } | {
15216
+ vaultPda: Address;
15217
+ vaultTrancheStatePda: Address;
15218
+ })[];
13071
15219
  }>;
13072
15220
  getTx(txArgs: JupiterSwapTxArgs): Promise<VaultTransactionPlan>;
13073
15221
  }
@@ -13089,9 +15237,13 @@ declare class VaultReallocationBuilder extends VaultBuilderBase<VaultReallocatio
13089
15237
  protected deriveIxArgs(txArgs: VaultReallocationTxArgs): Promise<VaultReallocationIxArgs>;
13090
15238
  protected buildPreambleInstructions(args: VaultReallocationIxArgs): Promise<_solana_kit.Instruction<string, readonly (_solana_kit.AccountLookupMeta<string, string> | _solana_kit.AccountMeta<string>)[]>[]>;
13091
15239
  protected buildPlanExtras(args: VaultReallocationIxArgs): Promise<{
13092
- postSuccessCacheInvalidations: {
15240
+ postSuccessCacheInvalidations: ({
13093
15241
  vaultPda: _solana_kit.Address;
13094
- }[];
15242
+ vaultTrancheStatePda?: undefined;
15243
+ } | {
15244
+ vaultPda: _solana_kit.Address;
15245
+ vaultTrancheStatePda: _solana_kit.Address;
15246
+ })[];
13095
15247
  }>;
13096
15248
  getTx(txArgs: VaultReallocationTxArgs): Promise<VaultTransactionPlan>;
13097
15249
  }
@@ -13350,6 +15502,9 @@ interface AccountYieldResponse {
13350
15502
  updated_at: Date;
13351
15503
  };
13352
15504
  total_yield: number;
15505
+ gross_yield: number;
15506
+ paid_yield: number;
15507
+ outstanding_yield: number;
13353
15508
  principal_at_end: number;
13354
15509
  accrual_start: Date;
13355
15510
  accrual_end: Date;
@@ -13357,8 +15512,36 @@ interface AccountYieldResponse {
13357
15512
  apr_used: number;
13358
15513
  calculation_log: YieldCalculationLog[];
13359
15514
  }
15515
+ interface CreateYieldPaymentParams {
15516
+ accountName: string;
15517
+ amount: number;
15518
+ effectiveAt: Date;
15519
+ idempotencyKey: string;
15520
+ password: string;
15521
+ }
15522
+ interface YieldPaymentResponse {
15523
+ id: string;
15524
+ account_name: string;
15525
+ idempotency_key: string;
15526
+ amount: number;
15527
+ effective_at: Date;
15528
+ status: "pending" | "confirmed";
15529
+ transaction_signature?: string;
15530
+ confirmed_at?: Date;
15531
+ created_at: Date;
15532
+ }
15533
+ declare function createYieldPayment(params: CreateYieldPaymentParams): Promise<YieldPaymentResponse>;
15534
+ declare function confirmYieldPayment(params: {
15535
+ accountName: string;
15536
+ paymentId: string;
15537
+ transactionSignature: string;
15538
+ password: string;
15539
+ }): Promise<YieldPaymentResponse>;
15540
+ declare function getYieldPayments(accountName: string): Promise<YieldPaymentResponse[]>;
13360
15541
  declare function getYield(accountName: string, start?: Date, end?: Date): Promise<AccountYieldResponse>;
13361
15542
  declare function getTotalYield(accountNames: string[], start?: Date, end?: Date): Promise<BN>;
15543
+ /** Sum only confirmed-payment-adjusted yield that remains receivable. */
15544
+ declare function getTotalOutstandingYield(accountNames: string[], start?: Date, end?: Date): Promise<number>;
13362
15545
 
13363
15546
  /**
13364
15547
  * Junior-tranche withdrawal-queue fulfillment.
@@ -13589,7 +15772,13 @@ interface ExternalPositionProvider {
13589
15772
  */
13590
15773
  interface YieldAccountSnapshot {
13591
15774
  account: string;
15775
+ /** Gross accrued yield before payment settlements. */
13592
15776
  totalYield: number;
15777
+ grossYield: number;
15778
+ /** Confirmed payments inside the requested accrual window. */
15779
+ paidYield: number;
15780
+ /** Gross yield less confirmed payments; this is the oracle-safe receivable. */
15781
+ outstandingYield: number;
13593
15782
  principalAtEnd: number;
13594
15783
  aprUsed: number;
13595
15784
  accrualStart: Date;
@@ -13604,7 +15793,9 @@ interface YieldTracker {
13604
15793
  getYield(accountName: string, start?: Date, end?: Date): Promise<YieldAccountSnapshot>;
13605
15794
  /** Sum of `totalYield` (UI amount) across the named accounts. */
13606
15795
  getTotalYield(accountNames: string[], start?: Date, end?: Date): Promise<number>;
13607
- /** Current balance (principal + accrued yield), UI amount. */
15796
+ /** Sum of oracle-safe outstanding yield across the named accounts. */
15797
+ getTotalOutstandingYield(accountNames: string[], start?: Date, end?: Date): Promise<number>;
15798
+ /** Current balance (principal + outstanding yield), UI amount. */
13608
15799
  getBalance(accountName: string, atTime?: Date): Promise<number>;
13609
15800
  addCashflow(params: {
13610
15801
  accountName: string;
@@ -13612,6 +15803,19 @@ interface YieldTracker {
13612
15803
  date?: Date;
13613
15804
  cashflowType: "deposit" | "withdraw";
13614
15805
  }): Promise<void>;
15806
+ /** Register an expected payment. Pending payments remain outstanding. */
15807
+ createYieldPayment(params: {
15808
+ accountName: string;
15809
+ paymentId: string;
15810
+ amount: number;
15811
+ effectiveAt: Date;
15812
+ }): Promise<void>;
15813
+ /** Confirm only after the payment is observable in the destination wallet. */
15814
+ confirmYieldPayment(params: {
15815
+ accountName: string;
15816
+ paymentId: string;
15817
+ transactionSignature: string;
15818
+ }): Promise<void>;
13615
15819
  }
13616
15820
  /** Injectable wall clock (ms since epoch). Lets tests pin time deterministically. */
13617
15821
  interface Clock {
@@ -13872,6 +16076,7 @@ declare class MockYieldTracker implements YieldTracker {
13872
16076
  private require;
13873
16077
  getYield(accountName: string, start?: Date, end?: Date): Promise<YieldAccountSnapshot>;
13874
16078
  getTotalYield(accountNames: string[], start?: Date, end?: Date): Promise<number>;
16079
+ getTotalOutstandingYield(accountNames: string[], start?: Date, end?: Date): Promise<number>;
13875
16080
  getBalance(accountName: string, atTime?: Date): Promise<number>;
13876
16081
  addCashflow(params: {
13877
16082
  accountName: string;
@@ -13879,6 +16084,17 @@ declare class MockYieldTracker implements YieldTracker {
13879
16084
  date?: Date;
13880
16085
  cashflowType: "deposit" | "withdraw";
13881
16086
  }): Promise<void>;
16087
+ createYieldPayment(params: {
16088
+ accountName: string;
16089
+ paymentId: string;
16090
+ amount: number;
16091
+ effectiveAt: Date;
16092
+ }): Promise<void>;
16093
+ confirmYieldPayment(params: {
16094
+ accountName: string;
16095
+ paymentId: string;
16096
+ transactionSignature: string;
16097
+ }): Promise<void>;
13882
16098
  }
13883
16099
 
13884
16100
  declare class ConsensusOracleService {
@@ -13971,4 +16187,4 @@ declare class ExternalLiquidityIntegrityService {
13971
16187
  private depositIntoMarginfi;
13972
16188
  }
13973
16189
 
13974
- export { ASSET_DECIMALS, type AccountBalanceResponse, AccountClient, type AccountYieldResponse, ActivateCircuitBreakerBuilder, type ActivateCircuitBreakerIxArgs, type ActivateCircuitBreakerTxArgs, type AssetPriceOracleConfigIxArgs, type AssetPriceOracleConfigTxArgs, type AssetPriceRefreshTarget, type AssetRefreshResult, type Bankineco, type BasicAuthCredentials, type Bigintish, CancelJuniorTrancheWithdrawBuilder, type CancelJuniorTrancheWithdrawIxArgs, type CancelJuniorTrancheWithdrawTxArgs, type Clock, type ConsensusAssetUpdate, type ConsensusHoldingEntry, type ConsensusOracleDeps, type ConsensusOracleHoldingConfig, ConsensusOracleService, type ConsensusOracleTarget, CrankNavBuilder, type CrankNavIxArgs, type CrankNavTxArgs, CrankPerformanceFeesBuilder, type CrankPerformanceFeesIxArgs, type CrankPerformanceFeesTxArgs, type CreateAccountParams, CreateAssetHoldingBuilder, type CreateAssetHoldingIxArgs, type CreateAssetHoldingTxArgs, type CreateTokenMintIxs, CreateTrancheStateBuilder, type CreateTrancheStateIxArgs, type CreateTrancheStateTxArgs, CreateVaultBuilder, type CreateVaultClientOptions, type CreateVaultIxArgs, type CreateVaultParams, type CreateVaultTxArgs, DEFAULT_JUNIOR_EARLY_UNSTAKE_FEE_BPS, DEFAULT_JUNIOR_STANDARD_UNSTAKE_FEE_BPS, DEFAULT_JUNIOR_WITHDRAWAL_LOCKUP_SECS, DEFAULT_MAX_ACCEPTABLE_APY_BPS, DEFAULT_ORACLE_STALENESS_THRESHOLD_SECS, DEFAULT_PRICE_ORACLE_ACCOUNT, DEFAULT_PRICE_STALENESS_THRESHOLD_SECS, DEFAULT_VAULT_ID, type DecodedHolding, type DecodedVault, type DeleteAccountParams, DisableCircuitBreakerBuilder, type DisableCircuitBreakerIxArgs, type DisableCircuitBreakerTxArgs, ExecuteDepositBuilder, type ExecuteDepositIxArgs, type ExecuteDepositTxArgs, ExecuteShareSwapBuilder, type ExecuteShareSwapIxArgs, type ExecuteShareSwapTxArgs, ExecuteTrancheDepositBuilder, type ExecuteTrancheDepositIxArgs, type ExecuteTrancheDepositTxArgs, ExecuteTrancheWithdrawBuilder, type ExecuteTrancheWithdrawIxArgs, type ExecuteTrancheWithdrawTxArgs, ExecuteWithdrawBuilder, type ExecuteWithdrawIxArgs, type ExecuteWithdrawTxArgs, type ExternalLiquidityIntegrityResult, ExternalLiquidityIntegrityService, type ExternalLiquidityIntegritySummary, type ExternalLiquiditySlot, type ExternalLiquiditySourceArgs, type ExternalPosition, type ExternalPositionContext, type ExternalPositionProvider, type ExternalPositionRef, ExternalPositionRegistry, FEE_VAULT_CACHE_CATEGORY, type FeeVaultAccountData, FulfillJuniorTrancheWithdrawBuilder, type FulfillJuniorTrancheWithdrawIxArgs, type FulfillJuniorTrancheWithdrawTxArgs, type FulfillSummary, type HoldingUpdatePreview, IDL, InitializeVaultRolesBuilder, type InitializeVaultRolesIxArgs, type InitializeVaultRolesTxArgs, type JuniorWithdrawalMode, JupiterBalanceSource, type JupiterBalanceSourceOptions, JupiterPriceSource, type JupiterPriceSourceOptions, JupiterSwapBuilder, type JupiterSwapIxArgs, type JupiterSwapTxArgs, KaminoPositionProvider, type LiveConsensusOracleDepsOptions, MAX_PRICE_STALENESS_THRESHOLD_SECS, ManagerRedepositAssetBuilder, type ManagerRedepositAssetIxArgs, type ManagerRedepositAssetTxArgs, ManagerWithdrawAssetBuilder, type ManagerWithdrawAssetIxArgs, type ManagerWithdrawAssetTxArgs, MarginfiPositionProvider, type MockYieldAccountConfig, MockYieldTracker, type MockYieldTrackerOptions, type NavCrankBlocker, type NavCrankBlockerReason, type NavCrankReadiness, type NavCrankResult, OracleService, PROGRAM_FEE_EXEMPT_OWNER_WHITELIST, PROTOCOL_ADMIN, PROTOCOL_FEE_RECIPIENT, PdaClient, type PriceOracleTypeArgs, type PriceSource, ProtocolInteractionBuilder, type ProtocolInteractionIxArgs, type ProtocolInteractionTxArgs, type QuoteFeeUnit, RemoveAssetHoldingBuilder, type RemoveAssetHoldingIxArgs, type RemoveAssetHoldingTxArgs, RequestJuniorTrancheWithdrawBuilder, type RequestJuniorTrancheWithdrawIxArgs, type RequestJuniorTrancheWithdrawTxArgs, type RollingLimitConfig, type RunLiveConsensusOracleOptions, type RunOptions, type RunSummary, SHARE_DECIMALS, SetAssetPriceOracleBuilder, type SetAssetPriceOracleIxArgs, type SetAssetPriceOracleTxArgs, SetExternalLiquidityBuilder, type SetExternalLiquidityIxArgs, type SetExternalLiquidityTxArgs, SetProtocolFeeBuilder, type SetProtocolFeeIxArgs, type SetProtocolFeeTxArgs, SetVaultConfigBuilder, type SetVaultConfigIxArgs, type SetVaultConfigTxArgs, StaticPositionProvider, TOKEN_PROGRAM, TOKEN_PROGRAM_ID, type TrancheKindArgs, type TransactionBuilder, TransactionClient, USDC_MINT, USD_STAR_JUNIOR_MINT, USD_STAR_MINT, USD_STAR_PRINCIPAL_MINT, type UpdateAccountParams, UpdateAssetPriceBuilder, type UpdateAssetPriceIxArgs, type UpdateAssetPriceTxArgs, UpdateConsensusOracleBuilder, type UpdateConsensusOracleIxArgs, type UpdateConsensusOracleTxArgs, UpdateConsensusSignersBuilder, type UpdateConsensusSignersIxArgs, type UpdateConsensusSignersTxArgs, type UpdateDynamicAprParams, UpdateTrancheConfigBuilder, type UpdateTrancheConfigIxArgs, type UpdateTrancheConfigTxArgs, VAULT_CACHE_CATEGORY, VAULT_ENVIRONMENTS, VAULT_ORACLE_CACHE_CATEGORY, VAULT_PROGRAM_ID, VAULT_PROGRAM_IDS, VAULT_PROGRAM_PUBLIC_KEY, VAULT_ROLE_UPDATE_TIMELOCK_SECS, VAULT_TRANCHE_STATE_CACHE_CATEGORY, VAULT_TRANCHE_WITHDRAWAL_QUEUE_CACHE_CATEGORY, type Vault, type VaultAccountData, VaultBuilderBase, type VaultBuilderContext, type VaultCacheInvalidation, VaultClient, type VaultClientBundle, type VaultEnv, type VaultOracleAccountData, type VaultOracleResult, type VaultPricingInputs, type VaultQuote, type VaultQuoteArgs, VaultQuoteClient, type VaultQuoteDirection, type VaultQuoteShareClass, VaultReallocationBuilder, type VaultReallocationIxArgs, type VaultReallocationTxArgs, type VaultTrancheStateAccountData, type VaultTrancheWithdrawalQueueAccountData, type VaultTransactionPlan, type WalletBalanceSource, type WithdrawProtocolFeesIxArgs, type WithdrawProtocolFeesTxArgs, type WithdrawTrancheFeesIxArgs, type WithdrawTrancheFeesTxArgs, WithdrawalQueueService, type WithdrawalQueueSnapshot, type YieldAccount, type YieldAccountSnapshot, type YieldCalculationLog, type YieldTracker, addCashflowUpdate, createAccount, createLiveConsensusOracleDeps, createRpcFromConnection, createTokenMint, createTokenMintIxs, createVaultClient, dateToStr, defaultKeypairPath, deleteAccount, fromUiAmount, getAccounts, getBalance, getCashflows, getRpcUrl, getTotalYield, getVaultProgramId, getYield, isVaultEnv, keypairAddress, loadKeypair, makeProvider, mintTokensTo, resolveKeypairPath, roundToNextUtcMidnight, runLiveConsensusOracle, systemClock, toUiAmount, updateAccount, updateDynamicApr };
16190
+ export { ASSET_DECIMALS, type AccountBalanceResponse, AccountClient, type AccountYieldResponse, ActivateCircuitBreakerBuilder, type ActivateCircuitBreakerIxArgs, type ActivateCircuitBreakerTxArgs, type AssetPriceOracleConfigIxArgs, type AssetPriceOracleConfigTxArgs, type AssetPriceRefreshTarget, type AssetRefreshResult, type Bankineco, type BasicAuthCredentials, type Bigintish, CancelJuniorTrancheWithdrawBuilder, type CancelJuniorTrancheWithdrawIxArgs, type CancelJuniorTrancheWithdrawTxArgs, type Clock, type ConsensusAssetUpdate, type ConsensusHoldingEntry, type ConsensusOracleDeps, type ConsensusOracleHoldingConfig, ConsensusOracleService, type ConsensusOracleTarget, CrankNavBuilder, type CrankNavIxArgs, type CrankNavTxArgs, CrankPerformanceFeesBuilder, type CrankPerformanceFeesIxArgs, type CrankPerformanceFeesTxArgs, type CreateAccountParams, CreateAssetHoldingBuilder, type CreateAssetHoldingIxArgs, type CreateAssetHoldingTxArgs, type CreateTokenMintIxs, CreateTrancheStateBuilder, type CreateTrancheStateIxArgs, type CreateTrancheStateTxArgs, CreateVaultBuilder, type CreateVaultClientOptions, type CreateVaultIxArgs, type CreateVaultParams, type CreateVaultTxArgs, type CreateYieldPaymentParams, DEFAULT_JUNIOR_EARLY_UNSTAKE_FEE_BPS, DEFAULT_JUNIOR_STANDARD_UNSTAKE_FEE_BPS, DEFAULT_JUNIOR_WITHDRAWAL_LOCKUP_SECS, DEFAULT_MAX_ACCEPTABLE_APY_BPS, DEFAULT_ORACLE_STALENESS_THRESHOLD_SECS, DEFAULT_PRICE_ORACLE_ACCOUNT, DEFAULT_PRICE_STALENESS_THRESHOLD_SECS, DEFAULT_VAULT_ID, type DecodedHolding, type DecodedVault, type DeleteAccountParams, DisableCircuitBreakerBuilder, type DisableCircuitBreakerIxArgs, type DisableCircuitBreakerTxArgs, ExecuteDepositBuilder, type ExecuteDepositIxArgs, type ExecuteDepositTxArgs, ExecuteShareSwapBuilder, type ExecuteShareSwapIxArgs, type ExecuteShareSwapTxArgs, ExecuteTrancheDepositBuilder, type ExecuteTrancheDepositIxArgs, type ExecuteTrancheDepositTxArgs, ExecuteTrancheWithdrawBuilder, type ExecuteTrancheWithdrawIxArgs, type ExecuteTrancheWithdrawTxArgs, ExecuteWithdrawBuilder, type ExecuteWithdrawIxArgs, type ExecuteWithdrawTxArgs, type ExternalLiquidityIntegrityResult, ExternalLiquidityIntegrityService, type ExternalLiquidityIntegritySummary, type ExternalLiquiditySlot, type ExternalLiquiditySourceArgs, type ExternalPosition, type ExternalPositionContext, type ExternalPositionProvider, type ExternalPositionRef, ExternalPositionRegistry, FEE_VAULT_CACHE_CATEGORY, type FeeVaultAccountData, FulfillJuniorTrancheWithdrawBuilder, type FulfillJuniorTrancheWithdrawIxArgs, type FulfillJuniorTrancheWithdrawTxArgs, type FulfillSummary, type HoldingUpdatePreview, IDL, InitializeVaultRolesBuilder, type InitializeVaultRolesIxArgs, type InitializeVaultRolesTxArgs, type JuniorWithdrawalMode, JupiterBalanceSource, type JupiterBalanceSourceOptions, JupiterPriceSource, type JupiterPriceSourceOptions, JupiterSwapBuilder, type JupiterSwapIxArgs, type JupiterSwapTxArgs, KaminoPositionProvider, type LiveConsensusOracleDepsOptions, MAX_PRICE_STALENESS_THRESHOLD_SECS, ManagerRedepositAssetBuilder, type ManagerRedepositAssetIxArgs, type ManagerRedepositAssetTxArgs, ManagerWithdrawAssetBuilder, type ManagerWithdrawAssetIxArgs, type ManagerWithdrawAssetTxArgs, MarginfiPositionProvider, type MockYieldAccountConfig, MockYieldTracker, type MockYieldTrackerOptions, type NavCrankBlocker, type NavCrankBlockerReason, type NavCrankReadiness, type NavCrankResult, OracleService, PROGRAM_FEE_EXEMPT_OWNER_WHITELIST, PROTOCOL_ADMIN, PROTOCOL_FEE_RECIPIENT, PdaClient, type PriceOracleTypeArgs, type PriceSource, ProtocolInteractionBuilder, type ProtocolInteractionIxArgs, type ProtocolInteractionTxArgs, type QuoteFeeUnit, RemoveAssetHoldingBuilder, type RemoveAssetHoldingIxArgs, type RemoveAssetHoldingTxArgs, RequestJuniorTrancheWithdrawBuilder, type RequestJuniorTrancheWithdrawIxArgs, type RequestJuniorTrancheWithdrawTxArgs, type RollingLimitConfig, type RunLiveConsensusOracleOptions, type RunOptions, type RunSummary, SHARE_DECIMALS, SetAssetPriceOracleBuilder, type SetAssetPriceOracleIxArgs, type SetAssetPriceOracleTxArgs, SetExternalLiquidityBuilder, type SetExternalLiquidityIxArgs, type SetExternalLiquidityTxArgs, SetProtocolFeeBuilder, type SetProtocolFeeIxArgs, type SetProtocolFeeTxArgs, SetVaultConfigBuilder, type SetVaultConfigIxArgs, type SetVaultConfigTxArgs, StaticPositionProvider, TOKEN_PROGRAM, TOKEN_PROGRAM_ID, type TrancheKindArgs, type TransactionBuilder, TransactionClient, USDC_MINT, USD_STAR_JUNIOR_MINT, USD_STAR_MINT, USD_STAR_PRINCIPAL_MINT, type UpdateAccountParams, UpdateAssetPriceBuilder, type UpdateAssetPriceIxArgs, type UpdateAssetPriceTxArgs, UpdateConsensusOracleBuilder, type UpdateConsensusOracleIxArgs, type UpdateConsensusOracleTxArgs, UpdateConsensusSignersBuilder, type UpdateConsensusSignersIxArgs, type UpdateConsensusSignersTxArgs, type UpdateDynamicAprParams, UpdateTrancheConfigBuilder, type UpdateTrancheConfigIxArgs, type UpdateTrancheConfigTxArgs, VAULT_CACHE_CATEGORY, VAULT_CREATOR_WHITELIST, VAULT_ENVIRONMENTS, VAULT_ORACLE_CACHE_CATEGORY, VAULT_PROGRAM_ID, VAULT_PROGRAM_IDS, VAULT_PROGRAM_PUBLIC_KEY, VAULT_ROLE_UPDATE_TIMELOCK_SECS, VAULT_TRANCHE_STATE_CACHE_CATEGORY, VAULT_TRANCHE_WITHDRAWAL_QUEUE_CACHE_CATEGORY, type Vault, type VaultAccountData, VaultBuilderBase, type VaultBuilderContext, type VaultCacheInvalidation, VaultClient, type VaultClientBundle, type VaultEnv, type VaultOracleAccountData, type VaultOracleResult, type VaultPricingInputs, type VaultQuote, type VaultQuoteArgs, VaultQuoteClient, type VaultQuoteDirection, type VaultQuoteShareClass, VaultReallocationBuilder, type VaultReallocationIxArgs, type VaultReallocationTxArgs, type VaultTrancheStateAccountData, type VaultTrancheWithdrawalQueueAccountData, type VaultTransactionPlan, type WalletBalanceSource, type WithdrawProtocolFeesIxArgs, type WithdrawProtocolFeesTxArgs, type WithdrawTrancheFeesIxArgs, type WithdrawTrancheFeesTxArgs, WithdrawalQueueService, type WithdrawalQueueSnapshot, type YieldAccount, type YieldAccountSnapshot, type YieldCalculationLog, type YieldPaymentResponse, type YieldTracker, addCashflowUpdate, confirmYieldPayment, createAccount, createLiveConsensusOracleDeps, createRpcFromConnection, createTokenMint, createTokenMintIxs, createVaultClient, createYieldPayment, dateToStr, defaultKeypairPath, deleteAccount, fromUiAmount, getAccounts, getBalance, getCashflows, getRpcUrl, getTotalOutstandingYield, getTotalYield, getVaultProgramId, getYield, getYieldPayments, isVaultEnv, keypairAddress, loadKeypair, makeProvider, mintTokensTo, resolveKeypairPath, roundToNextUtcMidnight, runLiveConsensusOracle, systemClock, toUiAmount, updateAccount, updateDynamicApr };