@perena/vault-sdk 1.0.18 → 1.0.19

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 +2613 -497
  3. package/dist/index.js +2721 -546
  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,18 +7527,78 @@ 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";
5705
7598
  "docs": [
5706
- "The junior tranche share token mint (PDA owned by tranche state)"
7599
+ "User's ATA for receiving junior share tokens"
5707
7600
  ];
5708
7601
  "writable": true;
5709
- },
5710
- {
5711
- "name": "userBankMintAta";
5712
- "writable": true;
5713
7602
  "pda": {
5714
7603
  "seeds": [
5715
7604
  {
@@ -5722,7 +7611,7 @@ type Bankineco = {
5722
7611
  },
5723
7612
  {
5724
7613
  "kind": "account";
5725
- "path": "bankMint";
7614
+ "path": "juniorMint";
5726
7615
  }
5727
7616
  ];
5728
7617
  "program": {
@@ -5765,16 +7654,16 @@ type Bankineco = {
5765
7654
  };
5766
7655
  },
5767
7656
  {
5768
- "name": "userJuniorMintAta";
7657
+ "name": "juniorEscrowAta";
5769
7658
  "docs": [
5770
- "User's ATA for receiving junior share tokens"
7659
+ "The escrow ATA for staked bank mint tokens, owned by the tranche state PDA"
5771
7660
  ];
5772
7661
  "writable": true;
5773
7662
  "pda": {
5774
7663
  "seeds": [
5775
7664
  {
5776
7665
  "kind": "account";
5777
- "path": "user";
7666
+ "path": "trancheState";
5778
7667
  },
5779
7668
  {
5780
7669
  "kind": "account";
@@ -5782,7 +7671,7 @@ type Bankineco = {
5782
7671
  },
5783
7672
  {
5784
7673
  "kind": "account";
5785
- "path": "juniorMint";
7674
+ "path": "bankMint";
5786
7675
  }
5787
7676
  ];
5788
7677
  "program": {
@@ -5824,11 +7713,91 @@ type Bankineco = {
5824
7713
  };
5825
7714
  };
5826
7715
  },
7716
+ {
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
+ },
5827
7799
  {
5828
7800
  "name": "juniorEscrowAta";
5829
- "docs": [
5830
- "The escrow ATA for staked bank mint tokens, owned by the tranche state PDA"
5831
- ];
5832
7801
  "writable": true;
5833
7802
  "pda": {
5834
7803
  "seeds": [
@@ -5885,8 +7854,61 @@ type Bankineco = {
5885
7854
  };
5886
7855
  },
5887
7856
  {
5888
- "name": "systemProgram";
5889
- "address": "11111111111111111111111111111111";
7857
+ "name": "destinationAta";
7858
+ "writable": true;
7859
+ "pda": {
7860
+ "seeds": [
7861
+ {
7862
+ "kind": "account";
7863
+ "path": "manager";
7864
+ },
7865
+ {
7866
+ "kind": "account";
7867
+ "path": "tokenProgram";
7868
+ },
7869
+ {
7870
+ "kind": "account";
7871
+ "path": "bankMint";
7872
+ }
7873
+ ];
7874
+ "program": {
7875
+ "kind": "const";
7876
+ "value": [
7877
+ 140,
7878
+ 151,
7879
+ 37,
7880
+ 143,
7881
+ 78,
7882
+ 36,
7883
+ 137,
7884
+ 241,
7885
+ 187,
7886
+ 61,
7887
+ 16,
7888
+ 41,
7889
+ 20,
7890
+ 142,
7891
+ 13,
7892
+ 131,
7893
+ 11,
7894
+ 90,
7895
+ 19,
7896
+ 153,
7897
+ 218,
7898
+ 255,
7899
+ 16,
7900
+ 132,
7901
+ 4,
7902
+ 142,
7903
+ 123,
7904
+ 216,
7905
+ 219,
7906
+ 233,
7907
+ 248,
7908
+ 89
7909
+ ];
7910
+ };
7911
+ };
5890
7912
  },
5891
7913
  {
5892
7914
  "name": "tokenProgram";
@@ -5894,14 +7916,13 @@ type Bankineco = {
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,219 @@ 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";
7486
- },
7487
- {
7488
- "code": 14003;
7489
- "name": "accountingIssue";
7490
- "msg": "Accounting issue";
9546
+ "code": 6000;
9547
+ "name": "mintSupplyNonZero";
9548
+ "msg": "Supplied share mint already has non-zero supply";
7491
9549
  },
7492
9550
  {
7493
- "code": 14004;
7494
- "name": "vaultAccountingIssue";
7495
- "msg": "Vault accounting issue";
9551
+ "code": 6001;
9552
+ "name": "invalidAssetMint";
9553
+ "msg": "Supplied mint is not accepted by this vault";
7496
9554
  },
7497
9555
  {
7498
- "code": 14005;
7499
- "name": "bankAccountingIssue";
7500
- "msg": "Bank accounting issue";
9556
+ "code": 6002;
9557
+ "name": "zeroDepositAmount";
9558
+ "msg": "Deposit amount must be greater than zero";
7501
9559
  },
7502
9560
  {
7503
- "code": 14006;
7504
- "name": "onchainAccountingIssue";
7505
- "msg": "Onchain accounting issue";
9561
+ "code": 6003;
9562
+ "name": "exceedsTvlLimit";
9563
+ "msg": "Deposit would exceed the vault's TVL limit";
7506
9564
  },
7507
9565
  {
7508
- "code": 14007;
7509
- "name": "externalAccountingIssue";
7510
- "msg": "External accounting issue";
9566
+ "code": 6004;
9567
+ "name": "zeroBurnAmount";
9568
+ "msg": "Burn amount must be greater than zero";
7511
9569
  },
7512
9570
  {
7513
- "code": 14008;
7514
- "name": "mintSlippage";
7515
- "msg": "Minting failed due to slippage.";
9571
+ "code": 6005;
9572
+ "name": "zeroAssetAmount";
9573
+ "msg": "Asset amount must be greater than zero";
7516
9574
  },
7517
9575
  {
7518
- "code": 14009;
7519
- "name": "burningSlippage";
7520
- "msg": "Burning failed due to slippage.";
9576
+ "code": 6006;
9577
+ "name": "insufficientVaultLiquidity";
9578
+ "msg": "Insufficient vault liquidity to satisfy withdrawal";
7521
9579
  },
7522
9580
  {
7523
- "code": 14010;
7524
- "name": "teamAccountAlreadyExists";
7525
- "msg": "Team account already exists";
9581
+ "code": 6007;
9582
+ "name": "mintAuthorityNotCurator";
9583
+ "msg": "Mint authority is not the curator";
7526
9584
  },
7527
9585
  {
7528
- "code": 14011;
7529
- "name": "oracleAccountAlreadyExists";
7530
- "msg": "Oracle account already exists";
9586
+ "code": 6008;
9587
+ "name": "zeroTotalSupply";
9588
+ "msg": "Vault total supply is zero";
7531
9589
  },
7532
9590
  {
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";
7541
- },
7542
- {
7543
- "code": 14014;
7544
- "name": "significantPriceChange";
7545
- "msg": "Price change is too large";
9593
+ "msg": "Vault oracle is stale";
7546
9594
  },
7547
9595
  {
7548
- "code": 14015;
7549
- "name": "roundingImpact";
7550
- "msg": "Rounding impacts the protocol";
9596
+ "code": 6010;
9597
+ "name": "invalidOracleUpdate";
9598
+ "msg": "Invalid oracle update";
7551
9599
  },
7552
9600
  {
7553
- "code": 14016;
7554
- "name": "bankIsHalted";
7555
- "msg": "Bank is halted";
9601
+ "code": 6011;
9602
+ "name": "invalidInitialMintSharePrice";
9603
+ "msg": "Initial mint share price must be greater than zero";
7556
9604
  },
7557
9605
  {
7558
- "code": 14017;
7559
- "name": "vaultIsHalted";
7560
- "msg": "Vault is halted";
9606
+ "code": 6012;
9607
+ "name": "maxApyExceeded";
9608
+ "msg": "Oracle NAV update exceeds the vault's maximum acceptable APY";
7561
9609
  },
7562
9610
  {
7563
- "code": 14018;
7564
- "name": "conversionOverflow";
7565
- "msg": "Conversion Overflow";
9611
+ "code": 6013;
9612
+ "name": "invalidApyConfig";
9613
+ "msg": "Invalid APY configuration";
7566
9614
  },
7567
9615
  {
7568
- "code": 14019;
7569
- "name": "reserved8019";
7570
- "msg": "reserved";
9616
+ "code": 6014;
9617
+ "name": "invalidFeeConfig";
9618
+ "msg": "Invalid fee configuration";
7571
9619
  },
7572
9620
  {
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";
7711
9759
  }
7712
9760
  ];
7713
9761
  "types": [
@@ -7716,7 +9764,7 @@ type Bankineco = {
7716
9764
  "docs": [
7717
9765
  "APY targets and deficit tracking.",
7718
9766
  "",
7719
- "Expected share price at time `t` is computed from the anchor:",
9767
+ "Expected share price at time `t` is computed from the durable anchor:",
7720
9768
  "expected = anchor_share_price * (1 + fixed_apy_bps/10_000)^((t - anchor_ts)/YEAR)",
7721
9769
  "",
7722
9770
  "The anchor must be reset whenever any of the following change:",
@@ -7779,16 +9827,15 @@ type Bankineco = {
7779
9827
  {
7780
9828
  "name": "accruedApyBalance";
7781
9829
  "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.",
9830
+ "Current divergence between holdings-derived NAV and the fixed-APY target,",
9831
+ "in the same accounting unit as `VaultAccounting::tvl`: positive means",
9832
+ "holdings are above target; negative means they are below target.",
7786
9833
  "",
7787
9834
  "Used in two cases:",
7788
9835
  "",
7789
9836
  "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.",
9837
+ "difference between expected NAV and actual holdings-derived NAV is",
9838
+ "recorded here on each settlement.",
7792
9839
  "2. NAV reconciliation regardless of APY settings -- when the oracle's",
7793
9840
  "settled NAV diverges from the booked `VaultAccounting::tvl`, the",
7794
9841
  "difference accrues here (oracle NAV above book = surplus; below =",
@@ -9852,11 +11899,10 @@ type Bankineco = {
9852
11899
  };
9853
11900
  },
9854
11901
  {
9855
- "name": "apySettleSkip";
11902
+ "name": "paddingBool";
9856
11903
  "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."
11904
+ "Reserved padding (previously `apy_settle_skip`). Kept as a field to",
11905
+ "preserve the on-chain account layout for already-deployed vaults."
9860
11906
  ];
9861
11907
  "type": {
9862
11908
  "defined": {
@@ -10137,10 +12183,6 @@ type Bankineco = {
10137
12183
  ];
10138
12184
  "type": "pubkey";
10139
12185
  },
10140
- {
10141
- "name": "assetDecimals";
10142
- "type": "u8";
10143
- },
10144
12186
  {
10145
12187
  "name": "mintFeeBps";
10146
12188
  "type": "u16";
@@ -10814,12 +12856,24 @@ type Bankineco = {
10814
12856
  "name": "protocolFeesAccrued";
10815
12857
  "type": "u64";
10816
12858
  },
12859
+ {
12860
+ "name": "hwmSharePrice";
12861
+ "docs": [
12862
+ "High-water mark for this class's performance fee, in the same fixed-point",
12863
+ "units as `share_price`. Only share-price growth above this mark is charged",
12864
+ "a performance/protocol fee. `0` means \"not yet initialized\" and is lazily",
12865
+ "set to the current share price on the next settlement (so pre-existing",
12866
+ "accounts never retroactively pay on gains earned before this field",
12867
+ "existed). Only the junior class charges a fee; senior is exempt."
12868
+ ];
12869
+ "type": "u64";
12870
+ },
10817
12871
  {
10818
12872
  "name": "padding1";
10819
12873
  "type": {
10820
12874
  "array": [
10821
12875
  "u64",
10822
- 14
12876
+ 13
10823
12877
  ];
10824
12878
  };
10825
12879
  }
@@ -10948,7 +13002,21 @@ type Bankineco = {
10948
13002
  {
10949
13003
  "name": "lastSettledTs";
10950
13004
  "docs": [
10951
- "Last timestamp used for senior fixed-APY entitlement accrual."
13005
+ "Last NAV settlement timestamp."
13006
+ ];
13007
+ "type": "i64";
13008
+ },
13009
+ {
13010
+ "name": "seniorApyAnchorSharePrice";
13011
+ "docs": [
13012
+ "Senior share price at the start of the current APY regime."
13013
+ ];
13014
+ "type": "u64";
13015
+ },
13016
+ {
13017
+ "name": "seniorApyAnchorTs";
13018
+ "docs": [
13019
+ "Unix timestamp when the senior APY anchor was set."
10952
13020
  ];
10953
13021
  "type": "i64";
10954
13022
  },
@@ -10957,7 +13025,7 @@ type Bankineco = {
10957
13025
  "type": {
10958
13026
  "array": [
10959
13027
  "u64",
10960
- 31
13028
+ 29
10961
13029
  ];
10962
13030
  };
10963
13031
  }
@@ -11199,8 +13267,8 @@ type Bankineco = {
11199
13267
  "name": "hwmSharePrice";
11200
13268
  "docs": [
11201
13269
  "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)."
13270
+ "this value is fee-eligible. Fee-rate changes re-anchor it to the current",
13271
+ "share price so the new rate does not apply retroactively."
11204
13272
  ];
11205
13273
  "type": "u64";
11206
13274
  },
@@ -11745,6 +13813,11 @@ interface BaseQuoteArgs {
11745
13813
  vault: Address;
11746
13814
  assetMint: Address;
11747
13815
  signer: Address;
13816
+ /**
13817
+ * PDA seeds, including the bump, used by a `*_fee_exempt` instruction.
13818
+ * Omit for the standard fee-bearing instruction routes.
13819
+ */
13820
+ addressSeeds?: readonly Uint8Array[];
11748
13821
  amount: Bigintish;
11749
13822
  vaultTrancheState?: Address;
11750
13823
  fresh?: boolean;
@@ -11786,7 +13859,7 @@ declare class VaultQuoteClient {
11786
13859
  constructor(connection: Connection, account: AccountClient, programId?: Address);
11787
13860
  quote(args: VaultQuoteArgs): Promise<VaultQuote>;
11788
13861
  private fetchSignerOwner;
11789
- private isFeeExemptSignerOwner;
13862
+ private isFeeExemptSigner;
11790
13863
  private fetchTrancheState;
11791
13864
  private regularBackingValue;
11792
13865
  private quoteRegular;
@@ -11806,7 +13879,6 @@ interface CreateVaultParams {
11806
13879
  cbTrigger: Address;
11807
13880
  feeCollector: Address;
11808
13881
  baseAssetMint: Address;
11809
- assetDecimals: number;
11810
13882
  mintFeeBps: number;
11811
13883
  burnFeeBps: number;
11812
13884
  performanceFeeBps: number;
@@ -11834,7 +13906,6 @@ interface CreateVaultTxArgs {
11834
13906
  curator: Address;
11835
13907
  shareMint: Address;
11836
13908
  strictAssetMint: Address;
11837
- assetDecimals: number;
11838
13909
  vaultId?: number;
11839
13910
  hwManager?: Address;
11840
13911
  cbTrigger?: Address;
@@ -11848,7 +13919,7 @@ interface CreateVaultTxArgs {
11848
13919
  lossesEnabled?: boolean;
11849
13920
  /** Base-asset oracle: 1 = ConsensusOracle (default), 2 = Pyth, 3 = PerenaVault. */
11850
13921
  basePriceOracleType?: number;
11851
- /** Initial base-asset price in the accounting unit. Defaults to 1.0 (10^assetDecimals). */
13922
+ /** Initial base-asset price in the accounting unit. Defaults to 1.0, scaled by the deposit mint's decimals. */
11852
13923
  basePrice?: bigint;
11853
13924
  /** Price-source account when basePriceOracleType is Pyth/PerenaVault. */
11854
13925
  basePriceOracleAccount?: Address;
@@ -12052,6 +14123,12 @@ interface CreateTrancheStateIxArgs {
12052
14123
  vaultTrancheState: Address;
12053
14124
  juniorShareMint: Address;
12054
14125
  seniorShareMint: Address;
14126
+ /**
14127
+ * Required on the organic path (`forMigration === false`) so the program can
14128
+ * enforce a fresh NAV before switching to tranche accounting; omitted on the
14129
+ * migration path.
14130
+ */
14131
+ vaultOracle?: Address;
12055
14132
  seniorFixedApyBps: number;
12056
14133
  earlyUnstakeFeeBps: number;
12057
14134
  standardUnstakeFeeBps: number;
@@ -12064,6 +14141,7 @@ interface CreateTrancheStateTxArgs {
12064
14141
  vault: Address;
12065
14142
  juniorShareMint: Address;
12066
14143
  seniorShareMint: Address;
14144
+ vaultOracle?: Address;
12067
14145
  seniorFixedApyBps?: number;
12068
14146
  earlyUnstakeFeeBps?: number;
12069
14147
  standardUnstakeFeeBps?: number;
@@ -12212,6 +14290,8 @@ interface ExecuteDepositIxArgs {
12212
14290
  assetTokenProgram: Address;
12213
14291
  shareTokenProgram: Address;
12214
14292
  amount: BN;
14293
+ /** PDA derivation seeds, including the bump, for the fee-exempt route. */
14294
+ addressSeeds?: readonly Uint8Array[];
12215
14295
  }
12216
14296
  interface ExecuteDepositTxArgs {
12217
14297
  user: Address;
@@ -12225,6 +14305,8 @@ interface ExecuteDepositTxArgs {
12225
14305
  amount: bigint;
12226
14306
  assetTokenProgram?: Address;
12227
14307
  shareTokenProgram?: Address;
14308
+ /** PDA derivation seeds, including the bump, for the fee-exempt route. */
14309
+ addressSeeds?: readonly Uint8Array[];
12228
14310
  }
12229
14311
  interface ExecuteWithdrawIxArgs {
12230
14312
  user: Address;
@@ -12245,6 +14327,8 @@ interface ExecuteWithdrawIxArgs {
12245
14327
  externalWithdrawIxRefs: InstructionRefs | null;
12246
14328
  externalLiquiditySource: number | null;
12247
14329
  externalWithdrawAccounts: CustomAccountMeta[];
14330
+ /** PDA derivation seeds, including the bump, for the fee-exempt route. */
14331
+ addressSeeds?: readonly Uint8Array[];
12248
14332
  }
12249
14333
  interface ExecuteWithdrawTxArgs {
12250
14334
  user: Address;
@@ -12269,6 +14353,8 @@ interface ExecuteWithdrawTxArgs {
12269
14353
  * but the corresponding Marginfi pool has no funds (e.g. test deployments).
12270
14354
  */
12271
14355
  skipExternalLiquidity?: boolean;
14356
+ /** PDA derivation seeds, including the bump, for the fee-exempt route. */
14357
+ addressSeeds?: readonly Uint8Array[];
12272
14358
  }
12273
14359
  interface ExecuteShareSwapIxArgs {
12274
14360
  user: Address;
@@ -12317,6 +14403,8 @@ interface ExecuteTrancheDepositIxArgs {
12317
14403
  shareTokenProgram: Address;
12318
14404
  kind: TrancheKindArgs;
12319
14405
  amount: BN;
14406
+ /** PDA derivation seeds, including the bump, for the fee-exempt route. */
14407
+ addressSeeds?: readonly Uint8Array[];
12320
14408
  }
12321
14409
  interface ExecuteTrancheDepositTxArgs {
12322
14410
  user: Address;
@@ -12329,6 +14417,8 @@ interface ExecuteTrancheDepositTxArgs {
12329
14417
  amount: bigint;
12330
14418
  assetTokenProgram?: Address;
12331
14419
  shareTokenProgram?: Address;
14420
+ /** PDA derivation seeds, including the bump, for the fee-exempt route. */
14421
+ addressSeeds?: readonly Uint8Array[];
12332
14422
  }
12333
14423
  interface ExecuteTrancheWithdrawIxArgs {
12334
14424
  user: Address;
@@ -12344,6 +14434,8 @@ interface ExecuteTrancheWithdrawIxArgs {
12344
14434
  shareTokenProgram: Address;
12345
14435
  kind: TrancheKindArgs;
12346
14436
  shareAmount: BN;
14437
+ /** PDA derivation seeds, including the bump, for the fee-exempt route. */
14438
+ addressSeeds?: readonly Uint8Array[];
12347
14439
  }
12348
14440
  interface ExecuteTrancheWithdrawTxArgs {
12349
14441
  user: Address;
@@ -12356,6 +14448,8 @@ interface ExecuteTrancheWithdrawTxArgs {
12356
14448
  shareAmount: bigint;
12357
14449
  assetTokenProgram?: Address;
12358
14450
  shareTokenProgram?: Address;
14451
+ /** PDA derivation seeds, including the bump, for the fee-exempt route. */
14452
+ addressSeeds?: readonly Uint8Array[];
12359
14453
  }
12360
14454
  interface RequestJuniorTrancheWithdrawIxArgs {
12361
14455
  user: Address;
@@ -12424,6 +14518,8 @@ interface FulfillJuniorTrancheWithdrawIxArgs {
12424
14518
  queueInputAta: Address;
12425
14519
  assetTokenProgram: Address;
12426
14520
  shareTokenProgram: Address;
14521
+ /** PDA derivation seeds, including the bump, for the fee-exempt route. */
14522
+ addressSeeds?: readonly Uint8Array[];
12427
14523
  }
12428
14524
  interface FulfillJuniorTrancheWithdrawTxArgs {
12429
14525
  owner: Address;
@@ -12440,6 +14536,8 @@ interface FulfillJuniorTrancheWithdrawTxArgs {
12440
14536
  feeCollector?: Address;
12441
14537
  assetTokenProgram?: Address;
12442
14538
  shareTokenProgram?: Address;
14539
+ /** PDA derivation seeds, including the bump, for the fee-exempt route. */
14540
+ addressSeeds?: readonly Uint8Array[];
12443
14541
  }
12444
14542
  interface WithdrawTrancheFeesIxArgs {
12445
14543
  curator: Address;
@@ -12528,6 +14626,8 @@ interface VaultReallocationIxArgs {
12528
14626
  destinationFeeVaultMintAta: Address;
12529
14627
  allocationSourceShareAta: Address | null;
12530
14628
  allocationDestinationShareAta: Address;
14629
+ sourceVaultTrancheState: Address | null;
14630
+ destinationVaultTrancheState: Address | null;
12531
14631
  assetTokenProgram: Address;
12532
14632
  sourceShareTokenProgram: Address;
12533
14633
  destinationShareTokenProgram: Address;
@@ -12549,6 +14649,8 @@ interface VaultReallocationTxArgs {
12549
14649
  assetTokenProgram?: Address;
12550
14650
  sourceShareTokenProgram?: Address;
12551
14651
  destinationShareTokenProgram?: Address;
14652
+ sourceVaultTrancheState?: Address;
14653
+ destinationVaultTrancheState?: Address;
12552
14654
  assetOracleAccount?: Address;
12553
14655
  assetPriceOracle?: AssetPriceOracleConfigTxArgs;
12554
14656
  }
@@ -12583,6 +14685,7 @@ interface JupiterSwapIxArgs {
12583
14685
  destinationTokenProgram: Address;
12584
14686
  destinationOracleAccount: Address | null;
12585
14687
  vaultOracle: Address;
14688
+ vaultTrancheState: Address | null;
12586
14689
  refs: InstructionRefs;
12587
14690
  destinationPriceOracle: AssetPriceOracleConfigIxArgs;
12588
14691
  accounts: CustomAccountMeta[];
@@ -12598,6 +14701,7 @@ interface JupiterSwapTxArgs {
12598
14701
  destinationTokenProgram?: Address;
12599
14702
  destinationOracleAccount?: Address;
12600
14703
  vaultOracle?: Address;
14704
+ vaultTrancheState?: Address;
12601
14705
  destinationPriceOracle?: AssetPriceOracleConfigTxArgs;
12602
14706
  lookupTables?: Address[];
12603
14707
  }
@@ -12900,6 +15004,7 @@ declare class ExecuteDepositBuilder extends VaultBuilderBase<ExecuteDepositIxArg
12900
15004
  };
12901
15005
  getIxData(args: ExecuteDepositIxArgs): {
12902
15006
  amount: BN;
15007
+ addressSeeds: readonly Uint8Array<ArrayBufferLike>[] | undefined;
12903
15008
  };
12904
15009
  getIx(args: ExecuteDepositIxArgs): Promise<_solana_kit.Instruction<string, readonly (_solana_kit.AccountLookupMeta<string, string> | _solana_kit.AccountMeta<string>)[]>>;
12905
15010
  protected deriveIxArgs(txArgs: ExecuteDepositTxArgs): Promise<ExecuteDepositIxArgs>;
@@ -12933,6 +15038,7 @@ declare class ExecuteTrancheDepositBuilder extends VaultBuilderBase<ExecuteTranc
12933
15038
  getIxData(args: ExecuteTrancheDepositIxArgs): {
12934
15039
  kind: TrancheKindArgs;
12935
15040
  amount: BN;
15041
+ addressSeeds: readonly Uint8Array<ArrayBufferLike>[] | undefined;
12936
15042
  };
12937
15043
  getIx(args: ExecuteTrancheDepositIxArgs): Promise<_solana_kit.Instruction<string, readonly (_solana_kit.AccountLookupMeta<string, string> | _solana_kit.AccountMeta<string>)[]>>;
12938
15044
  protected deriveIxArgs(txArgs: ExecuteTrancheDepositTxArgs): Promise<ExecuteTrancheDepositIxArgs>;
@@ -12965,6 +15071,7 @@ declare class ExecuteTrancheWithdrawBuilder extends VaultBuilderBase<ExecuteTran
12965
15071
  getIxData(args: ExecuteTrancheWithdrawIxArgs): {
12966
15072
  kind: TrancheKindArgs;
12967
15073
  shareAmount: BN;
15074
+ addressSeeds: readonly Uint8Array<ArrayBufferLike>[] | undefined;
12968
15075
  };
12969
15076
  getIx(args: ExecuteTrancheWithdrawIxArgs): Promise<_solana_kit.Instruction<string, readonly (_solana_kit.AccountLookupMeta<string, string> | _solana_kit.AccountMeta<string>)[]>>;
12970
15077
  protected deriveIxArgs(txArgs: ExecuteTrancheWithdrawTxArgs): Promise<ExecuteTrancheWithdrawIxArgs>;
@@ -12998,6 +15105,7 @@ declare class ExecuteWithdrawBuilder extends VaultBuilderBase<ExecuteWithdrawIxA
12998
15105
  shareAmount: BN;
12999
15106
  externalWithdrawIxRefs: common.InstructionRefs | null;
13000
15107
  externalLiquiditySource: number | null;
15108
+ addressSeeds: readonly Uint8Array<ArrayBufferLike>[] | undefined;
13001
15109
  };
13002
15110
  getIx(args: ExecuteWithdrawIxArgs): Promise<_solana_kit.Instruction<string, readonly (_solana_kit.AccountLookupMeta<string, string> | _solana_kit.AccountMeta<string>)[]>>;
13003
15111
  protected deriveIxArgs(txArgs: ExecuteWithdrawTxArgs): Promise<ExecuteWithdrawIxArgs>;
@@ -13065,9 +15173,13 @@ declare class JupiterSwapBuilder extends VaultBuilderBase<JupiterSwapIxArgs, Jup
13065
15173
  protected buildPreambleInstructions(args: JupiterSwapIxArgs): Promise<_solana_kit.Instruction<string, readonly (_solana_kit.AccountLookupMeta<string, string> | _solana_kit.AccountMeta<string>)[]>[]>;
13066
15174
  protected buildLookupTables(_args: JupiterSwapIxArgs, txArgs: JupiterSwapTxArgs): Promise<readonly Address[] | undefined>;
13067
15175
  protected buildPlanExtras(args: JupiterSwapIxArgs): Promise<{
13068
- postSuccessCacheInvalidations: {
15176
+ postSuccessCacheInvalidations: ({
13069
15177
  vaultPda: Address;
13070
- }[];
15178
+ vaultTrancheStatePda?: undefined;
15179
+ } | {
15180
+ vaultPda: Address;
15181
+ vaultTrancheStatePda: Address;
15182
+ })[];
13071
15183
  }>;
13072
15184
  getTx(txArgs: JupiterSwapTxArgs): Promise<VaultTransactionPlan>;
13073
15185
  }
@@ -13089,9 +15201,13 @@ declare class VaultReallocationBuilder extends VaultBuilderBase<VaultReallocatio
13089
15201
  protected deriveIxArgs(txArgs: VaultReallocationTxArgs): Promise<VaultReallocationIxArgs>;
13090
15202
  protected buildPreambleInstructions(args: VaultReallocationIxArgs): Promise<_solana_kit.Instruction<string, readonly (_solana_kit.AccountLookupMeta<string, string> | _solana_kit.AccountMeta<string>)[]>[]>;
13091
15203
  protected buildPlanExtras(args: VaultReallocationIxArgs): Promise<{
13092
- postSuccessCacheInvalidations: {
15204
+ postSuccessCacheInvalidations: ({
13093
15205
  vaultPda: _solana_kit.Address;
13094
- }[];
15206
+ vaultTrancheStatePda?: undefined;
15207
+ } | {
15208
+ vaultPda: _solana_kit.Address;
15209
+ vaultTrancheStatePda: _solana_kit.Address;
15210
+ })[];
13095
15211
  }>;
13096
15212
  getTx(txArgs: VaultReallocationTxArgs): Promise<VaultTransactionPlan>;
13097
15213
  }
@@ -13971,4 +16087,4 @@ declare class ExternalLiquidityIntegrityService {
13971
16087
  private depositIntoMarginfi;
13972
16088
  }
13973
16089
 
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 };
16090
+ 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_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 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 };