@1delta/margin-fetcher-sol 0.0.2 → 0.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -800,6 +800,14 @@ interface KlendReserveChain extends KlendReserveFlash {
800
800
  /** `config.disableUsageAsCollOutsideEmode` — outside a group, an obligation holding this deposit cannot borrow. */
801
801
  disableUsageAsCollOutsideEmode: boolean;
802
802
  utilizationLimitBlockBorrowingAbovePct: number;
803
+ /**
804
+ * `config.borrowRateCurve` — the reserve's 11 knots as `[utilization,
805
+ * borrowRate]` FRACTIONS (bps / 1e4), padding included: unused knots repeat
806
+ * the last one. The rate is on the reserve's `interestRateBasis` (a `legacy`
807
+ * reserve quotes per slot on the 0.5 s slot-year). Matches the API's
808
+ * deduplicated `borrowCurve` as a function (irm-sdk `solana.test.ts`).
809
+ */
810
+ borrowRateCurve: [number, number][];
803
811
  /** Cap on debt of THIS reserve taken outside any group, raw units of this reserve. */
804
812
  borrowLimitOutsideElevationGroup: bigint;
805
813
  /** Per group (index = id − 1): cap on debt this reserve may BACK as collateral in the group, raw units of the group's DEBT reserve. */
@@ -1105,6 +1113,8 @@ interface KaminoMarketInputs {
1105
1113
  collateralReserves?: KaminoCollateralReserve[];
1106
1114
  /** Kamino's Multiply/Leverage pair book for the market. */
1107
1115
  leveragePairs?: KaminoLeveragePair[];
1116
+ /** Measured wall-clock seconds per slot (svm-kit `measureSlotSeconds`) — stamped on `legacy` reserves' `kamino.slotSeconds`. */
1117
+ slotSeconds?: number;
1108
1118
  /** Optional curated currency for `asset` (name/symbol/assetGroup); falls back to the API's symbol and `solana-<mint>`. */
1109
1119
  tokenList?: {
1110
1120
  [mint: string]: GenericCurrency;
@@ -1126,7 +1136,23 @@ interface KaminoReserveExt {
1126
1136
  interestRateBasis: KaminoReserveStats['interestRateBasis'];
1127
1137
  protocolTakeRatePct: number;
1128
1138
  hostFixedInterestRateBps: number;
1139
+ /**
1140
+ * `[utilization, borrowRate]` FRACTIONS on the reserve's own
1141
+ * `interestRateBasis`, first knot at 0, last at 1. From the chain's
1142
+ * `borrowRateCurve` when the reserve was read (padding knots dropped),
1143
+ * else the API's — the same function (irm-sdk `solana.test.ts`).
1144
+ */
1129
1145
  borrowCurve: [number, number][];
1146
+ borrowCurveSource: 'chain' | 'api';
1147
+ /**
1148
+ * `legacy` reserves only: the measured seconds per slot the curve must be
1149
+ * scaled by (`× 0.5 / slotSeconds` — per-slot accrual on the nominal 0.5 s
1150
+ * slot-year). Absent when not measured: a consumer then has no basis and
1151
+ * must not evaluate the curve.
1152
+ */
1153
+ slotSeconds?: number;
1154
+ /** `config.utilizationLimitBlockBorrowingAbovePct` — borrows refused above it; 0 = no limit. `undefined` = not read. */
1155
+ utilizationLimitBlockBorrowingAbovePct?: number;
1130
1156
  autoDeleverage: KaminoReserveStats['autoDeleverage'];
1131
1157
  /** Where the config / limits / indices came from. */
1132
1158
  source: 'chain' | 'api';
@@ -1252,6 +1278,7 @@ declare function convertKaminoReserve(inp: KaminoReserveInputs, ctx: {
1252
1278
  closeFactor: number;
1253
1279
  chainMarket?: KlendMarketChain;
1254
1280
  slot?: number;
1281
+ slotSeconds?: number;
1255
1282
  tokenList?: KaminoMarketInputs['tokenList'];
1256
1283
  }): KaminoPoolData;
1257
1284
  /** Risk inputs for every reserve of the market (chain when read, else API). */
@@ -1314,6 +1341,12 @@ interface FetchKaminoPublicOptions extends KaminoApiOptions, ListServedMarketsOp
1314
1341
  * market and never invents a group.
1315
1342
  */
1316
1343
  rpc?: SvmRpc;
1344
+ /**
1345
+ * Wall-clock seconds per slot for the `legacy` reserves' curves. Absent
1346
+ * with an `rpc`: measured once (`measureSlotSeconds`); absent without one:
1347
+ * not stamped, and those curves are unusable downstream (never guessed).
1348
+ */
1349
+ slotSeconds?: number;
1317
1350
  }
1318
1351
  /**
1319
1352
  * Public market data for every served Kamino market: one bundle per market
@@ -1564,6 +1597,263 @@ declare function createJupiterLendApi(opts?: JupiterLendApiOptions): {
1564
1597
  };
1565
1598
  type JupiterLendApi = ReturnType<typeof createJupiterLendApi>;
1566
1599
 
1600
+ /**
1601
+ * Jupiter Lend vaults read straight from the VAULTS program — for the ids
1602
+ * `lite-api.jup.ag/lend/v1/borrow/vaults` does not list (on 2026-10-02 it
1603
+ * served 82 of main's 104: ids 65–67, 74–76, 85–87, 89–99 were missing,
1604
+ * and users transact on 91 / 96 / 97). The program numbers vaults
1605
+ * contiguously from 1 (`VaultAdmin.next_vault_id`), so enumeration is PDA
1606
+ * derivation, no `getProgramAccounts`.
1607
+ *
1608
+ * The arithmetic is `@jup-ag/lend-read` 0.0.14's `getVaultEntireDataV2`,
1609
+ * ported to bigint (liquidity exchange prices → the vault's, the layer's
1610
+ * supply / borrow rate, the vault's limits). Verified against the API's own
1611
+ * numbers for the vaults it does list (`test/jupiterLend.onchain.live.test.ts`).
1612
+ *
1613
+ * Scales, measured: vault-internal amounts (`VaultState.total_supply` /
1614
+ * `total_borrow`) are normalised to 9 DECIMALS whatever the mint
1615
+ * (`× 10^(decimals − 9)` gives base units — vault 1's USDC debt reads 1000×
1616
+ * the API otherwise); the liquidity layer's amounts are mint base units.
1617
+ *
1618
+ * SMART vaults (type 2 = smart collateral, 3 = smart debt, 4 = both — the
1619
+ * Fluid T2/T3/T4) put a DEX where the mint would be: `supply_token` /
1620
+ * `borrow_token` is the DEX account, and that side's amounts are DEX SHARES
1621
+ * (9 decimals), not tokens. The smart side is served as a leg keyed by the
1622
+ * DEX address (the key pos-indexer's decoder uses, since it reads the same
1623
+ * account off the instruction), denominated in shares, UNPRICED (price
1624
+ * `'0'`): a share's token value needs the DEX's reserve math, which is not
1625
+ * ported. `params.jupiterLendVault.smart` says which side it is.
1626
+ *
1627
+ * Not read: the vault ORACLE price (the oracle program combines its sources;
1628
+ * `oraclePrice*` are left `''`, which the converter turns into an absent
1629
+ * Fluid oracle price, never a 0), rewards, and `metadata` flags (UI-only).
1630
+ */
1631
+ declare const JL_VAULTS_ACCOUNTS_IDL: Idl;
1632
+ /** The vaults program per market (`@jup-ag/lend`'s `PROGRAM_IDS`). */
1633
+ declare const JUP_VAULTS_PROGRAMS: Record<JupiterLendMarket, string>;
1634
+ /** The Jupiter Lend DEX (smart-vault AMM) program — owner of a smart side's `Dex`. */
1635
+ declare const JUP_DEX_PROGRAM = "jupZ4m2GqUCJ5iueMfzQf8khFfH31d4XAQt3RzCT9Vd";
1636
+ declare const JL_EXCHANGE_PRICES_PRECISION: bigint;
1637
+ /** Vault-internal amounts are 9-decimal normalised. */
1638
+ declare const JL_VAULT_AMOUNT_DECIMALS = 9;
1639
+ /** Fluid's vault types; 0 is the legacy spelling of 1. */
1640
+ declare const isJlSmartCol: (t: number) => t is 2 | 4;
1641
+ declare const isJlSmartDebt: (t: number) => t is 3 | 4;
1642
+ declare const jlVaultConfigPda: (vaultId: number, market?: JupiterLendMarket) => Promise<string>;
1643
+ declare const jlVaultStatePda: (vaultId: number, market?: JupiterLendMarket) => Promise<string>;
1644
+ declare const jlVaultAdminPda: (market?: JupiterLendMarket) => Promise<string>;
1645
+ interface RawVaultConfig {
1646
+ vault_id: number;
1647
+ supply_rate_magnifier: number;
1648
+ borrow_rate_magnifier: number;
1649
+ collateral_factor: number;
1650
+ liquidation_threshold: number;
1651
+ liquidation_max_limit: number;
1652
+ withdraw_gap: number;
1653
+ liquidation_penalty: number;
1654
+ borrow_fee: number;
1655
+ vault_type: number;
1656
+ oracle: string;
1657
+ supply_token: string;
1658
+ borrow_token: string;
1659
+ }
1660
+ interface RawVaultState {
1661
+ vault_id: number;
1662
+ topmost_tick: number;
1663
+ total_supply: bigint;
1664
+ total_borrow: bigint;
1665
+ total_positions: number;
1666
+ absorbed_debt_amount: bigint;
1667
+ absorbed_col_amount: bigint;
1668
+ liquidity_supply_exchange_price: bigint;
1669
+ liquidity_borrow_exchange_price: bigint;
1670
+ vault_supply_exchange_price: bigint;
1671
+ vault_borrow_exchange_price: bigint;
1672
+ last_update_timestamp: bigint;
1673
+ }
1674
+ interface RawTokenReserve {
1675
+ mint: string;
1676
+ /** The layer's token account for the mint — its balance is what can leave now. */
1677
+ vault: string;
1678
+ borrow_rate: number;
1679
+ fee_on_interest: number;
1680
+ last_utilization: number;
1681
+ last_update_timestamp: bigint;
1682
+ supply_exchange_price: bigint;
1683
+ borrow_exchange_price: bigint;
1684
+ max_utilization: number;
1685
+ total_supply_with_interest: bigint;
1686
+ total_supply_interest_free: bigint;
1687
+ total_borrow_with_interest: bigint;
1688
+ total_borrow_interest_free: bigint;
1689
+ }
1690
+ interface RawUserSupply {
1691
+ with_interest: number;
1692
+ amount: bigint;
1693
+ withdrawal_limit: bigint;
1694
+ decay_amount: bigint;
1695
+ last_update: bigint;
1696
+ expand_pct: number;
1697
+ expand_duration: number;
1698
+ decay_duration: number;
1699
+ base_withdrawal_limit: bigint;
1700
+ }
1701
+ interface RawUserBorrow {
1702
+ with_interest: number;
1703
+ amount: bigint;
1704
+ debt_ceiling: bigint;
1705
+ last_update: bigint;
1706
+ expand_pct: number;
1707
+ expand_duration: number;
1708
+ base_debt_ceiling: bigint;
1709
+ max_debt_ceiling: bigint;
1710
+ }
1711
+ /** The layer's exchange prices advanced to `now` (`calculateExchangePrice`). */
1712
+ declare function jlLiquidityExchangePrices(r: RawTokenReserve, now: bigint): {
1713
+ supplyEx: bigint;
1714
+ borrowEx: bigint;
1715
+ };
1716
+ /** The layer's per-token totals + supply rate (bps) (`processOverallTokenData`). */
1717
+ declare function jlOverallTokenData(r: RawTokenReserve, now: bigint): {
1718
+ supplyEx: bigint;
1719
+ borrowEx: bigint;
1720
+ totalSupply: bigint;
1721
+ totalBorrow: bigint;
1722
+ supplyRate: bigint;
1723
+ borrowRate: bigint;
1724
+ maxUtilization: bigint;
1725
+ };
1726
+ type Overall = ReturnType<typeof jlOverallTokenData>;
1727
+ /** A protocol's supply position on the layer (`processUserSupplyData`). */
1728
+ declare function jlUserSupplyData(u: RawUserSupply | undefined, o: Overall, balance: bigint, now: bigint): {
1729
+ modeWithInterest: boolean;
1730
+ supply: bigint;
1731
+ withdrawalLimit: bigint;
1732
+ lastUpdateTimestamp: bigint;
1733
+ expandPercent: bigint;
1734
+ expandDuration: bigint;
1735
+ baseWithdrawalLimit: bigint;
1736
+ withdrawableUntilLimit: bigint;
1737
+ withdrawable: bigint;
1738
+ decayAmount: bigint;
1739
+ decayEndTimestamp: bigint;
1740
+ };
1741
+ /** A protocol's borrow position on the layer (`processUserBorrowData`). */
1742
+ declare function jlUserBorrowData(u: RawUserBorrow | undefined, o: Overall, balance: bigint, now: bigint): {
1743
+ modeWithInterest: boolean;
1744
+ borrow: bigint;
1745
+ borrowLimit: bigint;
1746
+ lastUpdateTimestamp: bigint;
1747
+ expandPercent: bigint;
1748
+ expandDuration: bigint;
1749
+ baseBorrowLimit: bigint;
1750
+ maxBorrowLimit: bigint;
1751
+ borrowLimitUtilization: bigint;
1752
+ borrowableUntilLimit: bigint;
1753
+ borrowable: bigint;
1754
+ };
1755
+ /** The vault's exchange prices advanced with the layer's (`updateExchangePrices`). */
1756
+ declare function jlVaultExchangePrices(s: RawVaultState, c: RawVaultConfig, liqSupplyEx: bigint, liqBorrowEx: bigint, now: bigint): {
1757
+ supplyEx: bigint;
1758
+ borrowEx: bigint;
1759
+ };
1760
+ /** Vault-internal (9-dec normalised) → base units of a `decimals` mint. */
1761
+ declare const jlVaultToRaw: (v: bigint, decimals: number) => bigint;
1762
+ interface JlOnchainVault {
1763
+ vault: JupiterLendVault;
1764
+ smartCol: boolean;
1765
+ smartDebt: boolean;
1766
+ /** The DEX behind a smart side, decoded (`token_0` / `token_1`). */
1767
+ supplyDex?: {
1768
+ address: string;
1769
+ token0: string;
1770
+ token1: string;
1771
+ };
1772
+ borrowDex?: {
1773
+ address: string;
1774
+ token0: string;
1775
+ token1: string;
1776
+ };
1777
+ slot: number;
1778
+ }
1779
+ interface ReadJlVaultsOptions {
1780
+ /** Known token facts by mint (the API's own `supplyToken` / `borrowToken` / earn `asset`) — symbol, logo and the USD price. */
1781
+ tokens?: {
1782
+ [mint: string]: JupiterLendToken;
1783
+ };
1784
+ /** Symbols / decimals for mints the API does not name. */
1785
+ tokenList?: {
1786
+ [mint: string]: {
1787
+ symbol?: string;
1788
+ name?: string;
1789
+ decimals?: number;
1790
+ logoURI?: unknown;
1791
+ };
1792
+ };
1793
+ /** Unix seconds "now" for the accrual (default: the clock). */
1794
+ now?: number;
1795
+ }
1796
+ /** `VaultAdmin.next_vault_id` — ids run 1 … next − 1. `undefined` when the admin cannot be read. */
1797
+ declare function readJlNextVaultId(rpc: SvmRpc, market?: JupiterLendMarket): Promise<number | undefined>;
1798
+ /**
1799
+ * Read `vaultIds` of `market` from the chain and shape each as the API's
1800
+ * `JupiterLendVault`, so the API path's converter serves it unchanged.
1801
+ * Three batched reads: config + state, then the layer accounts (reserves,
1802
+ * the vault's positions on the layer, mints, DEXes, the oracle), then the
1803
+ * reserves' token accounts (what can leave the layer now). An id with no config / state account is skipped.
1804
+ */
1805
+ declare function readJupiterLendVaultsOnchain(rpc: SvmRpc, market: JupiterLendMarket, vaultIds: number[], opts?: ReadJlVaultsOptions): Promise<JlOnchainVault[]>;
1806
+ /**
1807
+ * One mint's Liquidity-layer IRM, as irm-sdk's `jupiter_lend` model takes it
1808
+ * (`JupiterLendIRMParams`, the magnifiers added per row). Every rate / kink /
1809
+ * fee is on the 1e2 scale the accounts use (10000 = 100 %).
1810
+ */
1811
+ interface JlLayerIrm {
1812
+ version: 1 | 2;
1813
+ rateAtZero: number;
1814
+ kink1: number;
1815
+ rateAtKink1: number;
1816
+ /** v2 only — a v1 model keeps stale values in these fields. */
1817
+ kink2?: number;
1818
+ rateAtKink2?: number;
1819
+ rateAtMax: number;
1820
+ /** `TokenReserve.fee_on_interest`. */
1821
+ feeOnInterest: number;
1822
+ /** `TokenReserve.max_utilization` (0 read as the program's default 100 %). */
1823
+ maxUtilization: number;
1824
+ /** `(B_wi / S_wi) / u` over the layer's live totals — 1 when nothing is interest-free. */
1825
+ supplyWithInterestRatio: number;
1826
+ /** The program's own last evaluation — `borrow_rate` at `last_utilization` (1e2). */
1827
+ lastUtilization: number;
1828
+ borrowRate: number;
1829
+ }
1830
+ /**
1831
+ * `RateModel` (PDA `['rate_model', mint]` on the Liquidity program),
1832
+ * bytemuck-packed after the 8-byte discriminator: mint (32) · version u8 ·
1833
+ * rate_at_zero · kink1_utilization · rate_at_kink1 · rate_at_max ·
1834
+ * kink2_utilization · rate_at_kink2 (u16 LE each) = 53 bytes. Layout from
1835
+ * `@jup-ag/lend` 0.4.0's liquidity IDL (the program publishes no on-chain
1836
+ * IDL); `rate_at_max` sits BEFORE `kink2`. Verified 2026-10-03: the curve
1837
+ * at `TokenReserve.last_utilization` reproduces `borrow_rate` to the unit
1838
+ * on every live mint (irm-sdk `solana.test.ts`).
1839
+ */
1840
+ declare function decodeJlRateModel(data: Uint8Array): {
1841
+ kink2?: number | undefined;
1842
+ rateAtKink2?: number | undefined;
1843
+ version: 1 | 2;
1844
+ rateAtZero: number;
1845
+ kink1: number;
1846
+ rateAtKink1: number;
1847
+ rateAtMax: number;
1848
+ };
1849
+ /**
1850
+ * Every listed mint's layer IRM for a market: one batched read of the
1851
+ * `RateModel` + `TokenReserve` PDAs. A mint whose either account is missing
1852
+ * or undecodable is absent from the map (its rows then carry no curve),
1853
+ * never defaulted.
1854
+ */
1855
+ declare function readJlLayerIrms(rpc: SvmRpc, market: JupiterLendMarket, mints: string[], now?: bigint): Promise<Map<string, JlLayerIrm>>;
1856
+
1567
1857
  /**
1568
1858
  * Scales — JUPITER_LEND.md §2, verified against the program source
1569
1859
  * (UNIFIED_API_AUDIT.md §9): factors 1e3 (`vault_config.rs`), penalty and
@@ -1782,6 +2072,18 @@ type JupiterLendPoolData = Omit<PoolData, 'borrowCap' | 'supplyCap' | 'config'>
1782
2072
  config: {
1783
2073
  [mode: string]: JupiterLendConfigEntry;
1784
2074
  };
2075
+ /**
2076
+ * The row's interest-rate model: its token's Liquidity-layer `RateModel`
2077
+ * plus THIS vault's ADDITIVE magnifiers (bps) — irm-sdk's `jupiter_lend`
2078
+ * model takes it verbatim. Absent when the layer was not read (no `rpc`)
2079
+ * or on a smart side (its token is a DEX share, not a layer token).
2080
+ */
2081
+ jupiterLend?: {
2082
+ irm: JlLayerIrm & {
2083
+ supplyMagnifier: number;
2084
+ borrowMagnifier: number;
2085
+ };
2086
+ };
1785
2087
  };
1786
2088
  interface ConvertJupiterLendOptions {
1787
2089
  tokenList?: {
@@ -1959,213 +2261,6 @@ declare function readJupFlashAssets(rpc: SvmRpc, market?: JupiterLendMarketId):
1959
2261
  /** Free liquidity of `mint` on the layer = the token balance of its vault, the amount a flash can take. */
1960
2262
  declare function readJupFlashAvailable(rpc: SvmRpc, mint: string, tokenProgram: string, market?: JupiterLendMarketId): Promise<bigint>;
1961
2263
 
1962
- /**
1963
- * Jupiter Lend vaults read straight from the VAULTS program — for the ids
1964
- * `lite-api.jup.ag/lend/v1/borrow/vaults` does not list (on 2026-10-02 it
1965
- * served 82 of main's 104: ids 65–67, 74–76, 85–87, 89–99 were missing,
1966
- * and users transact on 91 / 96 / 97). The program numbers vaults
1967
- * contiguously from 1 (`VaultAdmin.next_vault_id`), so enumeration is PDA
1968
- * derivation, no `getProgramAccounts`.
1969
- *
1970
- * The arithmetic is `@jup-ag/lend-read` 0.0.14's `getVaultEntireDataV2`,
1971
- * ported to bigint (liquidity exchange prices → the vault's, the layer's
1972
- * supply / borrow rate, the vault's limits). Verified against the API's own
1973
- * numbers for the vaults it does list (`test/jupiterLend.onchain.live.test.ts`).
1974
- *
1975
- * Scales, measured: vault-internal amounts (`VaultState.total_supply` /
1976
- * `total_borrow`) are normalised to 9 DECIMALS whatever the mint
1977
- * (`× 10^(decimals − 9)` gives base units — vault 1's USDC debt reads 1000×
1978
- * the API otherwise); the liquidity layer's amounts are mint base units.
1979
- *
1980
- * SMART vaults (type 2 = smart collateral, 3 = smart debt, 4 = both — the
1981
- * Fluid T2/T3/T4) put a DEX where the mint would be: `supply_token` /
1982
- * `borrow_token` is the DEX account, and that side's amounts are DEX SHARES
1983
- * (9 decimals), not tokens. The smart side is served as a leg keyed by the
1984
- * DEX address (the key pos-indexer's decoder uses, since it reads the same
1985
- * account off the instruction), denominated in shares, UNPRICED (price
1986
- * `'0'`): a share's token value needs the DEX's reserve math, which is not
1987
- * ported. `params.jupiterLendVault.smart` says which side it is.
1988
- *
1989
- * Not read: the vault ORACLE price (the oracle program combines its sources;
1990
- * `oraclePrice*` are left `''`, which the converter turns into an absent
1991
- * Fluid oracle price, never a 0), rewards, and `metadata` flags (UI-only).
1992
- */
1993
- declare const JL_VAULTS_ACCOUNTS_IDL: Idl;
1994
- /** The vaults program per market (`@jup-ag/lend`'s `PROGRAM_IDS`). */
1995
- declare const JUP_VAULTS_PROGRAMS: Record<JupiterLendMarket, string>;
1996
- /** The Jupiter Lend DEX (smart-vault AMM) program — owner of a smart side's `Dex`. */
1997
- declare const JUP_DEX_PROGRAM = "jupZ4m2GqUCJ5iueMfzQf8khFfH31d4XAQt3RzCT9Vd";
1998
- declare const JL_EXCHANGE_PRICES_PRECISION: bigint;
1999
- /** Vault-internal amounts are 9-decimal normalised. */
2000
- declare const JL_VAULT_AMOUNT_DECIMALS = 9;
2001
- /** Fluid's vault types; 0 is the legacy spelling of 1. */
2002
- declare const isJlSmartCol: (t: number) => t is 2 | 4;
2003
- declare const isJlSmartDebt: (t: number) => t is 3 | 4;
2004
- declare const jlVaultConfigPda: (vaultId: number, market?: JupiterLendMarket) => Promise<string>;
2005
- declare const jlVaultStatePda: (vaultId: number, market?: JupiterLendMarket) => Promise<string>;
2006
- declare const jlVaultAdminPda: (market?: JupiterLendMarket) => Promise<string>;
2007
- interface RawVaultConfig {
2008
- vault_id: number;
2009
- supply_rate_magnifier: number;
2010
- borrow_rate_magnifier: number;
2011
- collateral_factor: number;
2012
- liquidation_threshold: number;
2013
- liquidation_max_limit: number;
2014
- withdraw_gap: number;
2015
- liquidation_penalty: number;
2016
- borrow_fee: number;
2017
- vault_type: number;
2018
- oracle: string;
2019
- supply_token: string;
2020
- borrow_token: string;
2021
- }
2022
- interface RawVaultState {
2023
- vault_id: number;
2024
- topmost_tick: number;
2025
- total_supply: bigint;
2026
- total_borrow: bigint;
2027
- total_positions: number;
2028
- absorbed_debt_amount: bigint;
2029
- absorbed_col_amount: bigint;
2030
- liquidity_supply_exchange_price: bigint;
2031
- liquidity_borrow_exchange_price: bigint;
2032
- vault_supply_exchange_price: bigint;
2033
- vault_borrow_exchange_price: bigint;
2034
- last_update_timestamp: bigint;
2035
- }
2036
- interface RawTokenReserve {
2037
- mint: string;
2038
- /** The layer's token account for the mint — its balance is what can leave now. */
2039
- vault: string;
2040
- borrow_rate: number;
2041
- fee_on_interest: number;
2042
- last_utilization: number;
2043
- last_update_timestamp: bigint;
2044
- supply_exchange_price: bigint;
2045
- borrow_exchange_price: bigint;
2046
- max_utilization: number;
2047
- total_supply_with_interest: bigint;
2048
- total_supply_interest_free: bigint;
2049
- total_borrow_with_interest: bigint;
2050
- total_borrow_interest_free: bigint;
2051
- }
2052
- interface RawUserSupply {
2053
- with_interest: number;
2054
- amount: bigint;
2055
- withdrawal_limit: bigint;
2056
- decay_amount: bigint;
2057
- last_update: bigint;
2058
- expand_pct: number;
2059
- expand_duration: number;
2060
- decay_duration: number;
2061
- base_withdrawal_limit: bigint;
2062
- }
2063
- interface RawUserBorrow {
2064
- with_interest: number;
2065
- amount: bigint;
2066
- debt_ceiling: bigint;
2067
- last_update: bigint;
2068
- expand_pct: number;
2069
- expand_duration: number;
2070
- base_debt_ceiling: bigint;
2071
- max_debt_ceiling: bigint;
2072
- }
2073
- /** The layer's exchange prices advanced to `now` (`calculateExchangePrice`). */
2074
- declare function jlLiquidityExchangePrices(r: RawTokenReserve, now: bigint): {
2075
- supplyEx: bigint;
2076
- borrowEx: bigint;
2077
- };
2078
- /** The layer's per-token totals + supply rate (bps) (`processOverallTokenData`). */
2079
- declare function jlOverallTokenData(r: RawTokenReserve, now: bigint): {
2080
- supplyEx: bigint;
2081
- borrowEx: bigint;
2082
- totalSupply: bigint;
2083
- totalBorrow: bigint;
2084
- supplyRate: bigint;
2085
- borrowRate: bigint;
2086
- maxUtilization: bigint;
2087
- };
2088
- type Overall = ReturnType<typeof jlOverallTokenData>;
2089
- /** A protocol's supply position on the layer (`processUserSupplyData`). */
2090
- declare function jlUserSupplyData(u: RawUserSupply | undefined, o: Overall, balance: bigint, now: bigint): {
2091
- modeWithInterest: boolean;
2092
- supply: bigint;
2093
- withdrawalLimit: bigint;
2094
- lastUpdateTimestamp: bigint;
2095
- expandPercent: bigint;
2096
- expandDuration: bigint;
2097
- baseWithdrawalLimit: bigint;
2098
- withdrawableUntilLimit: bigint;
2099
- withdrawable: bigint;
2100
- decayAmount: bigint;
2101
- decayEndTimestamp: bigint;
2102
- };
2103
- /** A protocol's borrow position on the layer (`processUserBorrowData`). */
2104
- declare function jlUserBorrowData(u: RawUserBorrow | undefined, o: Overall, balance: bigint, now: bigint): {
2105
- modeWithInterest: boolean;
2106
- borrow: bigint;
2107
- borrowLimit: bigint;
2108
- lastUpdateTimestamp: bigint;
2109
- expandPercent: bigint;
2110
- expandDuration: bigint;
2111
- baseBorrowLimit: bigint;
2112
- maxBorrowLimit: bigint;
2113
- borrowLimitUtilization: bigint;
2114
- borrowableUntilLimit: bigint;
2115
- borrowable: bigint;
2116
- };
2117
- /** The vault's exchange prices advanced with the layer's (`updateExchangePrices`). */
2118
- declare function jlVaultExchangePrices(s: RawVaultState, c: RawVaultConfig, liqSupplyEx: bigint, liqBorrowEx: bigint, now: bigint): {
2119
- supplyEx: bigint;
2120
- borrowEx: bigint;
2121
- };
2122
- /** Vault-internal (9-dec normalised) → base units of a `decimals` mint. */
2123
- declare const jlVaultToRaw: (v: bigint, decimals: number) => bigint;
2124
- interface JlOnchainVault {
2125
- vault: JupiterLendVault;
2126
- smartCol: boolean;
2127
- smartDebt: boolean;
2128
- /** The DEX behind a smart side, decoded (`token_0` / `token_1`). */
2129
- supplyDex?: {
2130
- address: string;
2131
- token0: string;
2132
- token1: string;
2133
- };
2134
- borrowDex?: {
2135
- address: string;
2136
- token0: string;
2137
- token1: string;
2138
- };
2139
- slot: number;
2140
- }
2141
- interface ReadJlVaultsOptions {
2142
- /** Known token facts by mint (the API's own `supplyToken` / `borrowToken` / earn `asset`) — symbol, logo and the USD price. */
2143
- tokens?: {
2144
- [mint: string]: JupiterLendToken;
2145
- };
2146
- /** Symbols / decimals for mints the API does not name. */
2147
- tokenList?: {
2148
- [mint: string]: {
2149
- symbol?: string;
2150
- name?: string;
2151
- decimals?: number;
2152
- logoURI?: unknown;
2153
- };
2154
- };
2155
- /** Unix seconds "now" for the accrual (default: the clock). */
2156
- now?: number;
2157
- }
2158
- /** `VaultAdmin.next_vault_id` — ids run 1 … next − 1. `undefined` when the admin cannot be read. */
2159
- declare function readJlNextVaultId(rpc: SvmRpc, market?: JupiterLendMarket): Promise<number | undefined>;
2160
- /**
2161
- * Read `vaultIds` of `market` from the chain and shape each as the API's
2162
- * `JupiterLendVault`, so the API path's converter serves it unchanged.
2163
- * Three batched reads: config + state, then the layer accounts (reserves,
2164
- * the vault's positions on the layer, mints, DEXes, the oracle), then the
2165
- * reserves' token accounts (what can leave the layer now). An id with no config / state account is skipped.
2166
- */
2167
- declare function readJupiterLendVaultsOnchain(rpc: SvmRpc, market: JupiterLendMarket, vaultIds: number[], opts?: ReadJlVaultsOptions): Promise<JlOnchainVault[]>;
2168
-
2169
2264
  /**
2170
2265
  * Save (ex-Solend) hosted API shapes — `api.save.finance` (the retired host
2171
2266
  * `api.solend.fi` answers identically). Two routes carry everything the data
@@ -2347,12 +2442,21 @@ declare const SAVE_WAD: bigint;
2347
2442
  declare const SAVE_U64_MAX = "18446744073709551615";
2348
2443
  /**
2349
2444
  * The program's slot-year: interest compounds `rate / 63,072,000` PER SLOT,
2350
- * i.e. it assumes a 0.5 s slot. Mainnet runs ~0.39–0.40 s, so the curve
2351
- * under-states the wall-clock rate by ~25 % (SAVE_FINANCE.md §3.2).
2445
+ * i.e. it assumes a 0.5 s slot. The wall-clock rate is `curve × 0.5 /
2446
+ * slotSeconds`, and the slot time MOVES: ~0.39–0.40 s through 2025 (×1.25),
2447
+ * 0.2665 s on 2026-10-03 (×1.88) — SAVE_FINANCE.md §3.2.
2352
2448
  */
2353
2449
  declare const SAVE_SLOTS_PER_YEAR = 63072000;
2354
- /** Default wall-clock slot time used to scale the curve; measured 0.393 s over 441 days to 2026-09-16. */
2355
- declare const SAVE_DEFAULT_AVG_SLOT_SECONDS = 0.4;
2450
+ /**
2451
+ * FALLBACK wall-clock slot time, used only when no measurement is passed
2452
+ * (`avgSlotSeconds`; `getLenderPublicDataAll` measures it with svm-kit
2453
+ * `measureSlotSeconds` whenever it has an rpc). 0.2665 s = the mean of 327
2454
+ * one-minute `getRecentPerformanceSamples` on 2026-10-03 (266.3–266.5 ms over
2455
+ * every sub-window). It was 0.4 until then — measured 0.393 s over the 441
2456
+ * days to 2026-09-16 — and that stale constant understated every Save rate by
2457
+ * a third once the chain sped up. Re-measure before trusting it.
2458
+ */
2459
+ declare const SAVE_DEFAULT_AVG_SLOT_SECONDS = 0.2665;
2356
2460
  /** Program constants (sdk/src/state/reserve.rs). */
2357
2461
  declare const SAVE_LIQUIDATION_CLOSE_FACTOR = 0.2;
2358
2462
  declare const SAVE_MAX_LIQUIDATABLE_VALUE_USD = 500000;
@@ -2412,8 +2516,9 @@ type SaveApi = ReturnType<typeof createSaveApi>;
2412
2516
  * with `opt == 0 ⇒ min`. Supply = u × borrow × (1 − protocolTakeRate).
2413
2517
  *
2414
2518
  * Save's own SDK (`calculateBorrowInterest`) agrees to the digit on live
2415
- * state; the hosted API's `rates` field does NOT (×1.61, unexplained), which
2416
- * is why the row recomputes.
2519
+ * state; the hosted API's `rates` field does NOT (×1.61 on 2026-09-16, mostly
2520
+ * a fresher slot time and APY quoting — SAVE_FINANCE.md §2), which is why the
2521
+ * row recomputes.
2417
2522
  */
2418
2523
  declare function saveBorrowCurvePercent(c: Pick<SaveReserveConfigState, 'optimalUtilizationRate' | 'maxUtilizationRate' | 'minBorrowRate' | 'optimalBorrowRate' | 'maxBorrowRate' | 'superMaxBorrowRate'>, utilization: number): number;
2419
2524
  /** `borrowedAmountWads / 1e18` in RAW token units (a bigint-exact division, then float). */
@@ -2439,7 +2544,8 @@ declare const wadsToFloat: (wads: bigint) => number;
2439
2544
  */
2440
2545
  declare function saveUtilization(liquidity: SaveReserveAccount['liquidity']): number;
2441
2546
  /**
2442
- * The curve is denominated in a 0.5 s slot-year; the chain runs ~0.4 s slots,
2547
+ * The curve is denominated in a 0.5 s slot-year; the chain runs faster slots
2548
+ * (~0.27 s in 2026-10, ~0.4 s through 2025),
2443
2549
  * so one wall-clock year contains `31,536,000 / avgSlot` slots and the rate a
2444
2550
  * depositor actually sees is `curve × (that / 63,072,000)` = `curve × 0.5 / avgSlot`.
2445
2551
  */
@@ -2750,7 +2856,7 @@ interface FetchSavePublicOptions extends SaveApiOptions, SaveRosterOptions {
2750
2856
  tokenList?: {
2751
2857
  [mint: string]: GenericCurrency;
2752
2858
  };
2753
- /** Wall-clock slot time the curve is scaled by (default 0.4 s). */
2859
+ /** Wall-clock seconds per slot the curve is scaled by — pass a MEASURED value (svm-kit `measureSlotSeconds`); the default is a dated constant. */
2754
2860
  avgSlotSeconds?: number;
2755
2861
  dropUnrealizable?: boolean;
2756
2862
  /** Already-fetched configs (the user-data path and the action builders share them). */
@@ -3887,13 +3993,28 @@ type LoopscaleConfigEntry = Omit<ConfigEntry, 'collateralDisabled' | 'debtDisabl
3887
3993
  debtDisabled: boolean;
3888
3994
  openParameter?: LoopscaleOpenParameter;
3889
3995
  };
3890
- /** One `market_terms` row (yield-tracer reads `termId`, `durationDays`, `apr`). */
3996
+ /** One `market_terms` row (yield-tracer reads `termId`, `durationDays`, `apr`, `ladder`). */
3891
3997
  interface LoopscaleMarketTerm {
3892
3998
  termId: string;
3893
3999
  durationDays: number;
3894
4000
  durationSecs: number;
3895
4001
  /** Best offer, percent APR. */
3896
4002
  apr: number;
4003
+ /**
4004
+ * The tenor's OWN borrow ladder, cheapest first, in yield-tracer's
4005
+ * `market_terms.ladder` shape: `apr` percent, `assets` = what ONE strategy
4006
+ * can lend at that level, TOKEN units. `fill: 'single'` is the order-book
4007
+ * rule this venue has and Midnight does not: one ledger fills ONE
4008
+ * strategy, and a level's `sum` is that strategy's idle balance repeated on
4009
+ * every pair and tenor it quotes — so the rate at size S is the cheapest
4010
+ * level whose `assets ≥ S`, never a VWAP across levels, and depth is the
4011
+ * MAX, never the total.
4012
+ */
4013
+ ladder: {
4014
+ apr: number;
4015
+ assets: number;
4016
+ fill: 'single';
4017
+ }[];
3897
4018
  }
3898
4019
  /**
3899
4020
  * Structurally margin-fetcher's `FixedTermInfo` with `model: 'loopscale'`
@@ -9448,4 +9569,4 @@ declare function loopscaleTermAdapter(m: LoopscaleMarketMeta, term?: LoopscaleTe
9448
9569
  */
9449
9570
  declare function project0TermAdapter(row: P0PoolData, group?: P0GroupMeta): DeepPartial<TermSheet>;
9450
9571
 
9451
- export { type Base58, type BasketParams, type ConvertContext, type ConvertJupiterLendOptions, type ConvertLoopscaleOptions, type ConvertLoopscaleUserOptions, DEFAULT_ELEVATION_GROUP, type DecimalString, type DecodedStakePool, type Denomination, EXPONENT_API_BASE, EXPONENT_PROGRAMS, type EusxRate, type ExponentApi, type ExponentApiOptions, type ExponentAssetRef, type ExponentOriginRow, type ExponentPtMarket, type ExponentPtMarkets, type ExponentSyToken, type ExponentToken, type ExponentVault, FLUID_ORACLE_DECIMALS, FLUID_VAULT_TYPE_T1, type FetchExponentPtOptions, type FetchHumaVaultsOptions, type FetchJupiterLendPublicOptions, type FetchKaminoKvaultsOptions, type FetchKaminoPublicOptions, type FetchKaminoUserOnchainOptions, type FetchKaminoUserOptions, type FetchLenderAllOptions, type FetchLoopscaleEarnVaultsOptions, type FetchLoopscalePublicOptions, type FetchLoopscaleUserOptions, type FetchLstVaultsOptions, type FetchOraclePricesOptions, type FetchP0PublicOptions, type FetchP0UserOptions, type FetchSaveOracleOptions, type FetchSavePublicOptions, type FetchSaveUserOptions, type FetchSolsticeUserOptions, type FetchSolsticeVaultsOptions, type FetchUserAllOptions, type GetLenderPublicDataAllOptions, HUMA_CLASSIC_MODE_ID, HUMA_DECIMALS, HUMA_IDL, HUMA_MPST_MINT, HUMA_POOL, HUMA_PROGRAM, HUMA_PST_MINT, HUMA_REDEMPTION_REQUEST_SIZE, HUMA_REDEMPTION_SLA_SECONDS, HUMA_SEEDS, HttpError, type HttpOptions, type HumaChainState, type HumaConvertContext, type HumaInstantWithdrawalFeeConfig, type HumaLenderState, type HumaModeConfig, type HumaModeState, type HumaPoolConfig, type HumaPoolState, type HumaRedemptionGating, type HumaRedemptionRequest, type HumaVault, type HumaVaults, JL_BPS, JL_EXCHANGE_PRICES_PRECISION, JL_FACTOR_SCALE, JL_ORACLE_DECIMALS, JL_ORACLE_SCALE, JL_VAULTS_ACCOUNTS_IDL, JL_VAULT_AMOUNT_DECIMALS, JUPITER_LEND_API_BASE, JUPITER_LEND_KEYED_API_BASE, JUPITER_LEND_MARKETS, JUPITER_LEND_PROFILE_ID, JUPITER_LEND_PROGRAMS, JUPITER_PRICE_API_BASE, JUPITER_PRICE_KEYED_API_BASE, JUP_DEX_PROGRAM, JUP_FLASHLOAN_IDL, JUP_FLASHLOAN_PROGRAMS, JUP_LIQUIDITY_PROGRAMS, JUP_VAULTS_PROGRAMS, type JlOnchainVault, type JupFlashloanAdmin, type JupiterLendApi, type JupiterLendApiOptions, type JupiterLendBorrowPosition, type JupiterLendBundleParams, type JupiterLendConfigEntry, type JupiterLendConversion, type JupiterLendEarnPosition, type JupiterLendEarnToken, type JupiterLendEarnVault, type JupiterLendFluidSide, type JupiterLendFluidVault, type JupiterLendLiquidityBorrowData, type JupiterLendLiquiditySupplyData, type JupiterLendMarket, type JupiterLendMarketId, type JupiterLendOracleSource, type JupiterLendPoolData, type JupiterLendPublicResponse, type JupiterLendSkipReason, type JupiterLendToken, type JupiterLendUserExt, type JupiterLendUserResult, type JupiterLendVault, type JupiterLendVaultMeta, type JupiterPriceApiOptions, type JupiterPriceMap, KAMINO_API_BASE, KAMINO_MAIN_MARKET, KAMINO_MARKET_DENYLIST, KAMINO_MIN_MARKET_DEPOSITS_USD, KAMINO_OBLIGATION_TAGS, KAMINO_PRICE_AGREEMENT, KAMINO_PROFILE_ID, KLEND_COLLATERAL_MINT_DECIMALS, KLEND_IDL, KLEND_MARKET_SIZE, KLEND_OBLIGATION_DISCRIMINATOR, KLEND_OBLIGATION_OWNER_OFFSET, KLEND_OBLIGATION_SIZE, KLEND_PROGRAM_ID, KLEND_RESERVE_FLASH_SLICE, KLEND_RESERVE_SIZE, KLEND_RESERVE_SLICE, KLEND_U64_MAX, KVAULT_PROGRAM_ID, type KaminoApi, type KaminoApiOptions, type KaminoApiUserExt, type KaminoApyWindows, type KaminoBorrowReserveTerms, type KaminoCapBucket, type KaminoCollateralReserve, type KaminoCompoundMetadata, type KaminoConfigEntry, type KaminoKvault, type KaminoKvaultAllocation, type KaminoKvaultApi, type KaminoKvaultApiOptions, type KaminoKvaultEarnVault, type KaminoKvaultMetrics, type KaminoKvaultState, type KaminoLeveragePair, type KaminoLoanBorrow, type KaminoLoanDeposit, type KaminoLoanInfo, type KaminoMarketConfig, type KaminoMarketInputs, type KaminoMarketMeta, type KaminoMarketPrices, type KaminoModeContext, type KaminoObligation, type KaminoObligationLegs, type KaminoObligationView, type KaminoOnchainUserExt, type KaminoOracleEntryOptions, type KaminoOraclePrice, type KaminoOraclePriceMap, type KaminoPairIncentive, type KaminoPoolData, type KaminoPublicConversion, type KaminoPublicResponse, type KaminoRateBasis, type KaminoRateType, type KaminoReserveAccountData, type KaminoReserveExt, type KaminoReserveInputs, type KaminoReserveMetrics, type KaminoReserveMetricsDetail, type KaminoReserveRisk, type KaminoReserveState, type KaminoReserveStats, type KaminoReserveStatus, type KaminoRewardApy, type KaminoUserContext, type KaminoUserError, type KaminoUserObligationRef, type KaminoWithdrawalCapStats, type KaminoWithdrawalCapView, type KlendElevationGroupTerms, type KlendMarketChain, type KlendObligationReserves, type KlendReserveChain, type KlendReserveFlash, type KlendWithdrawalCap, LENDER_BRAND_NAMES, LOANS_PAGE, LOOPSCALE_ACCOUNT_DISCRIMINATORS, LOOPSCALE_API_BASE, LOOPSCALE_BEAM_ORACLE_PROGRAM_ID, LOOPSCALE_CONFIG_LABEL, LOOPSCALE_DOCS_URL, LOOPSCALE_GRACE_PERIOD_SECS, LOOPSCALE_IDL, LOOPSCALE_OPEN_LOANS, LOOPSCALE_PROFILE_ID, LOOPSCALE_PROGRAM_ID, LS_CBPS, LS_NO_ACCOUNT, LS_TENORS, LS_U64_MAX, type LayerTotals, type LenderBundle, type LenderPublicDataMap, type LenderPublicResponse, type LendingBasketMeta, type ListServedMarketsOptions, type LoopscaleApi, type LoopscaleApiOptions, type LoopscaleAssetData, type LoopscaleAssetTerms, type LoopscaleBestOffer, type LoopscaleCapMonitor, type LoopscaleCapsDecoded, type LoopscaleCollateralAccount, type LoopscaleConfigEntry, type LoopscaleConversion, type LoopscaleDuration, type LoopscaleDurationAndApy, type LoopscaleEarnVault, type LoopscaleExternalYieldInfo, type LoopscaleFixedTerm, type LoopscaleLadderLevel, type LoopscaleLedger, type LoopscaleLedgerAccount, type LoopscaleLedgerTerm, type LoopscaleLendingVaultInfo, type LoopscaleLoanAccount, type LoopscaleLoanBook, type LoopscaleLoanCollateral, type LoopscaleLoanDecoded, type LoopscaleLoanPiece, type LoopscaleLoanSummaryItem, type LoopscaleLoansRequest, type LoopscaleLoansResponse, type LoopscaleLoopInfo, type LoopscaleLoopsResponse, type LoopscaleMarketAsset, type LoopscaleMarketInfoDecoded, type LoopscaleMarketMeta, type LoopscaleMarketTerm, type LoopscaleMaxQuote, type LoopscaleMaxQuoteRequest, type LoopscaleMorphoMarket, type LoopscaleOfferingVault, type LoopscaleOpenParameter, type LoopscaleOracleRef, type LoopscalePair, type LoopscalePairBook, type LoopscalePieceLedger, type LoopscalePoolData, type LoopscalePrincipalCaps, type LoopscalePublicResponse, type LoopscaleQuoteOffer, type LoopscaleQuoteRequest, type LoopscaleRewardsSchedule, type LoopscaleRosterOptions, type LoopscaleStrategyAccount, type LoopscaleStrategyDecoded, type LoopscaleStrategyInfo, type LoopscaleStrategySummary, type LoopscaleStrategyTerms, type LoopscaleTerm, type LoopscaleTermId, type LoopscaleTotals, type LoopscaleUserExt, type LoopscaleUserLedger, type LoopscaleUserLoan, type LoopscaleUserPosition, type LoopscaleUserResult, type LoopscaleVaultAccount, type LoopscaleVaultMetadata, type LoopscaleVaultsRequest, type LoopscaleVaultsResponse, type LstConvertContext, type LstEarnVault, type LstEntry, type LstStakingApySource, type MarketOverrides, ORACLE_CANONICAL_SIZE, type OraclePriceEntry, type OraclePriceMap, type OriginJupiterLendMeta, type OriginJupiterLendRow, type OriginKaminoKvaultMeta, type OriginKaminoKvaultRow, type OriginLoopscaleMeta, type OriginLoopscaleRow, type OriginLstMeta, type OriginLstMetaAdditions, type OriginLstRow, type OriginSavingsMeta, type OriginSavingsRow, type OriginVaultCommon, type OriginVaultProvider, type OriginVaultRow, type OriginWithdrawalMode, type P0AccountView, type P0Api, type P0ApiOptions, type P0AssetTag, type P0Balance, type P0BalanceView, type P0Bank, type P0BankCache, type P0BankConfig, type P0BankDto, type P0BankExt, type P0BankInputs, type P0BankMeta, type P0BankMetaMap, type P0BankPrice, type P0BankRef, type P0CircuitBreakerState, type P0ConfigEntry, type P0ConvertContext, type P0EmodeEntry, type P0EmodeLift, type P0EmodeRoster, type P0EmodeSettings, type P0EmodeTag, type P0Group, type P0GroupInputs, type P0GroupMeta, type P0HealthCache, type P0Integration, type P0InterestRateConfig, type P0MarginfiAccount, type P0OnChainBankMeta, type P0OperationalState, type P0OracleSetup, type P0PoolData, type P0PriceMap, type P0PriceResolution, type P0PublicConversion, type P0PublicResponse, type P0RateLimitWindow, type P0RateLimiter, type P0RatePoint, type P0Rates, type P0RiskTier, type P0StateSemantics, type P0UnservedBalance, type P0UserExt, type P0UserResponse, type P0VenueMultiplier, type P0VenueMultiplierMap, P0_ACCOUNT_AUTHORITY_OFFSET, P0_ACCOUNT_FLAGS, P0_ACCOUNT_GROUP_OFFSET, P0_ADJUSTED_CACHE_SETUPS, P0_API_BASE, P0_ASSET_TAG, P0_BANK_CONFIG_PYTH_PUSH_MIGRATED, P0_BANK_DISCRIMINATOR, P0_BANK_FLAGS, P0_BANK_GROUP_OFFSET, P0_BANK_SIZE, P0_CACHED_PRICE_MULTIPLIER_SETUPS, P0_DEFAULT_LIQUIDATION_FEE, P0_EMODE_BASE_LABEL, P0_EMODE_ON, P0_GROUP_PROGRAM_FEES_ENABLED, P0_GROUP_SIZE, P0_I80F48_FRACTION_BITS, P0_IDL, P0_LIQUIDATION_CLOSEOUT_USD, P0_LOOKUP_TABLES, P0_MAIN_GROUP, P0_MARGINFI_ACCOUNT_DISCRIMINATOR, P0_MARGINFI_ACCOUNT_SIZE, P0_MAX_BALANCES, P0_MAX_EMODE_ENTRIES, P0_NATIVE_STAKE_LOOKUP_TABLES, P0_PAUSE_DURATION_SECONDS, P0_PROGRAM_ID, P0_PYTH_PUSH_SETUPS, P0_SECONDS_PER_YEAR, P0_SEEDS, P0_STAGING_GROUP, P0_STAGING_PROGRAM_ID, P0_STAKE_POOL_PROGRAMS, P0_SVSP_PHANTOM_TOKEN_AMOUNT, P0_U32_MAX, P0_U64_MAX, PROJECT_0_PROFILE_ID, PYTH_PRICE_UPDATE_V2_DISCRIMINATOR, PYTH_RECEIVER_PROGRAM, type PythPriceUpdate, type ReadJlVaultsOptions, type ResolveP0PricesOptions, type RewardsList, SAVE_API_BASE, SAVE_CREATOR, SAVE_DEFAULT_AVG_SLOT_SECONDS, SAVE_DEFAULT_OBLIGATION_PROBE, SAVE_FULL_LIQUIDATION_VALUE_USD, SAVE_INITIAL_EXCHANGE_RATE_WAD, SAVE_LIQUIDATION_CLOSE_FACTOR, SAVE_MAIN_MARKET, SAVE_MARKET_DENYLIST, SAVE_MAX_BONUS_PCT, SAVE_MAX_LIQUIDATABLE_VALUE_USD, SAVE_MAX_OBLIGATION_PROBE, SAVE_MAX_OBLIGATION_RESERVES, SAVE_NULL_ORACLE, SAVE_OBLIGATION_SIZE, SAVE_POSITION_LIMIT, SAVE_PROFILE_ID, SAVE_PROFILE_ID_PROSE, SAVE_PROGRAM_ID, SAVE_RESERVE_SIZE, SAVE_SLOTS_PER_YEAR, SAVE_U64_MAX, SAVE_UNBORROWABLE_BORROW_FACTOR, SAVE_WAD, SAVE_WALLET_POS_ID, SECONDS_PER_YEAR, SETTLEMENT_BATCH_SIZE, SOLANA_CHAIN_ID, SOLSTICE_APP_API_BASE, SOLSTICE_DECIMALS, SOLSTICE_MINTS, SOLSTICE_PRICE_DECIMALS, SOLSTICE_PROGRAMS, SOLSTICE_STRATEGIES, SOLSTICE_YIELD_STRATEGY_IDL, SOLSTICE_YIELD_VAULT_IDL, SPL_STAKE_POOL_LSTS, SPL_STAKE_POOL_PROGRAM, STABLECOIN_SYMBOLS, STAKE_ACCOUNT_RENT_EXEMPT_LAMPORTS, type SaveApi, type SaveApiOptions, type SaveCompoundV2Metadata, type SaveLastUpdate, type SaveLiquidityToken, type SaveMarketConfig, type SaveMarketInputs, type SaveMarketMeta, type SaveObligation, type SaveObligationBorrow, type SaveObligationDeposit, type SaveObligationView, type SavePoolData, type SavePublicConversion, type SavePublicResponse, type SaveRateLimiter, type SaveRates, type SaveReserveAccount, type SaveReserveCollateral, type SaveReserveConfig, type SaveReserveConfigState, type SaveReserveExt, type SaveReserveFees, type SaveReserveInputs, type SaveReserveLiquidity, type SaveReserveRef, type SaveReserveState, type SaveReservesResponse, type SaveRosterOptions, type SaveUnservedLeg, type SaveUserExt, type SaveUserResponse, type SaveWalletCTokenView, type ServedMarket, type SolanaPoolData, type SolanaSubAccountInfo, type SolanaUserPosition, type SolanaUserPositions, type SolanaUserResult, type SolsticeAccountingState, type SolsticeApiOptions, type SolsticeAppApi, type SolsticeChainState, type SolsticeController, type SolsticeConvertContext, type SolsticeCooldownEscrow, type SolsticeHolding, type SolsticeJuniorUnlockShare, type SolsticeOraclePrice, type SolsticePending, type SolsticeProtocolStats, type SolsticeSeniorUnlockCooldown, type SolsticeSettlementBatch, type SolsticeSettlementBatchView, type SolsticeStrategy, type SolsticeStrategyController, type SolsticeStrategyMode, type SolsticeStrategyName, type SolsticeStrategyPdas, type SolsticeUserPositions, type SolsticeVault, type SolsticeVaults, type SolsticeVestingSchedule, type SolsticeYieldPool, type SolsticeYieldVaultPdas, type StakePoolFee, type StructuredOraclePrices, TERM_PROFILES, type TokenListInput, type TrancheRates, type USDPriceMap, WSOL_MINT, type WireU64, type YieldProfile, accountDiscriminator, aggregateLoopscaleLoanBook, apyFractionToAprPercent, attributeBestOffer, attributeLoopscaleLoan, bigMax0, bpsToPercent, buildKaminoConfig, buildKaminoEModes, buildKaminoMarketMeta, buildLoopscaleRoster, buildLoopscaleTerms, buildP0EModes, buildSolsticeVaults, capOrUndefined, cbpsToFraction, cbpsToPercent, cbpsToWad, convertEusx, convertExponentVault, convertHumaPst, convertJupiterLendEarnToken, convertJupiterLendOracleEntries, convertJupiterLendUserPositions, convertJupiterLendVault, convertKaminoKvault, convertKaminoLoans, convertKaminoMarket, convertKaminoOraclePrices, convertKaminoReserve, convertLoopscalePair, convertLoopscaleUser, convertLoopscaleVault, convertLst, convertP0Bank, convertP0Group, convertSaveMarket, convertSaveReserve, convertTranche, createExponentApi, createJupiterLendApi, createKaminoApi, createKaminoKvaultApi, createLimiter, createLoopscaleApi, createMarketUid, createP0Api, createPacer, createSaveApi, createSolsticeAppApi, createWithSeed, decimalStringToI80F48, decimalStringToRaw, decodeAccountingState, decodeController, decodeCooldownEscrow, decodeHumaLenderState, decodeHumaModeConfig, decodeHumaPoolConfig, decodeHumaPoolState, decodeHumaRedemptionRequest, decodeJuniorUnlockShare, decodeJupFlashloanAdmin, decodeKaminoObligation, decodeKaminoReserveState, decodeLoopscaleLoan, decodeLoopscaleMarketInformation, decodeLoopscaleStrategy, decodeOracleCanonical, decodeP0Bank, decodeP0BankMetadata, decodeP0Group, decodeP0MarginfiAccount, decodePythPriceUpdate, decodeSaveObligation, decodeSeniorUnlockCooldown, decodeSettlementBatch, decodeStakePool, decodeStrategy, decodeStrategyController, decodeVestingSchedule, decodeYieldPool, denominationOf, deriveLayerTotals, deriveLoopscalePrices, deriveP0Mode, describeBasket, describeKaminoObligation, durationDays, epochRatePercent, epochRealizedApr, eusxAssetsToShares, eusxEpochRatePercent, eusxRate, eusxSharesToAssets, exchangeRateWad, exponentOriginRow, feeBps, fetchExponentPtMarkets, fetchHumaPstVaults, fetchJupiterLendEarnVaults, fetchJupiterLendOracleEntries, fetchJupiterLendPublic, fetchJupiterLendUser, fetchJupiterPrices, fetchKaminoKvaults, fetchKaminoOracleEntries, fetchKaminoOraclePrices, fetchKaminoPublic, fetchKaminoUser, fetchKaminoUserOnchain, fetchLenderAll, fetchLoopscaleEarnVaults, fetchLoopscaleLoanBook, fetchLoopscalePublic, fetchLoopscaleUser, fetchLstVaults, fetchOraclePrices, fetchProject0Public, fetchProject0User, fetchSaveOracleEntries, fetchSavePublic, fetchSaveUser, fetchSolsticeSettlementBatches, fetchSolsticeUser, fetchSolsticeVaults, fetchUserAll, formatRawUnits, getJson, getLenderPublicData, getLenderPublicDataAll, getLendersForChain, getTermProfile, humaDeploymentStatePda, humaLenderStatePda, humaModeConfigPda, humaModeMintPda, humaOriginRow, humaPoolAuthorityPda, humaPoolConfigPda, humaPoolStatePda, humaRedemptionRequestPda, i80f48ToDecimalString, i80f48ToNumber, isBorrowable, isJlSmartCol, isJlSmartDebt, isLenderBrand, isLiveVault, isNullKey, isP0FixedSetup, isP0U64Max, isSaveBorrowable, isSaveUnrealizable, isStablecoinSymbol, isStaleKaminoPrice, isSyntheticQuoteMint, isU64Max, isUncapped, jlLiquidityExchangePrices, jlOraclePriceInBorrow, jlOracleToFluidRaw, jlOverallTokenData, jlUserBorrowData, jlUserSupplyData, jlVaultAdminPda, jlVaultConfigPda, jlVaultExchangePrices, jlVaultStatePda, jlVaultToRaw, joinableBatch, juniorUnlockSharePda, jupFlashBorrowPosition, jupFlashloanAdmin, jupLiquidity, jupLiquidityReserve, jupLiquidityVault, jupRateModel, jupiterLendCurrency, jupiterLendOriginRow, jupiterLendTermAdapter, kaminoAsset, kaminoBorrowFactorToRow, kaminoCloseFactor, kaminoDefaultEntry, kaminoGroupLabel, kaminoKvaultOriginRow, kaminoOracleEntriesFromMarkets, kaminoRewards, kaminoRiskByReserve, kaminoTagLabel, kaminoTermAdapter, klendMarketAuthority, klendObligationPda, ledgerFaceAt, ledgerInterestAt, ledgerPrincipal, lenderBrandName, lenderDisplayName, liquidityRatio, listServedMarkets, loopscaleOriginRow, loopscaleTermAdapter, lstOriginRow, maxLeverageOf, mintSupply, normalizeP0BankDto, num, obligationPubkey, oracleCanonicalPda, p0BankMetadataPda, p0BankRef, p0CurveKnots, p0DecimalString, p0EmodeRoster, p0FeeState, p0GroupPausedAt, p0Integration, p0LegacyBaseRate, p0LiquidationFee, p0LiquidityVault, p0LiquidityVaultAuthority, p0MarginfiAccountPda, p0MultipointBaseRate, p0NeedsVenueMultiplier, p0Rates, p0StateSemantics, p0SupplyCapTokens, p0Utilization, parseExpirySeconds, pieceLqt, podBool, podDecimalToNumber, podToBigInt, podToNumber, postJson, project0TermAdapter, readEpochClock, readHumaChainState, readHumaLenderState, readHumaRedemptionRequests, readJlNextVaultId, readJupFlashAssets, readJupFlashAvailable, readJupFlashloanAdmin, readJupiterLendVaultsOnchain, readKlendElevationGroups, readKlendFlashFacts, readKlendLendingMarket, readKlendMarketState, readKlendObligationReserves, readKlendReserveChain, readKlendReserveFlash, readLoopscaleLoans, readLoopscaleMarketInformation, readP0BankMetadata, readP0Banks, readReserveLamports, readSolsticeChainState, readStakePools, registriesToRead, resolveP0Prices, sameDuration, saveAssetGroup, saveBorrowCurvePercent, saveBorrowedRaw, saveExchangeRateWad, saveLiquidationPenalty, saveObligationAddress, saveObligationSeed, saveRates, saveReserveRef, saveSlotYearScale, saveTermAdapter, saveTotalSupplyWads, saveUtilization, scaledToDecimal, scanP0Banks, selectAssetGroupPrices, selectSaveMarkets, seniorCooldownPdas, settlementBatchPdas, solsticeOriginRow, strategyMode, strategyNameOf, strategyPdas, strategyTvlRaw, tenorOf, termIdOf, toOriginVaultRow, tokenAmount, trancheAssetsToShares, trancheRates, trancheSharesToAssets, u32ToBasis, u32ToCenti, u32ToMilli, unvestedAt, valueKaminoObligations, wadToNumber, wadsToFloat, yieldVaultCooldownPdas, yieldVaultPdas };
9572
+ export { type Base58, type BasketParams, type ConvertContext, type ConvertJupiterLendOptions, type ConvertLoopscaleOptions, type ConvertLoopscaleUserOptions, DEFAULT_ELEVATION_GROUP, type DecimalString, type DecodedStakePool, type Denomination, EXPONENT_API_BASE, EXPONENT_PROGRAMS, type EusxRate, type ExponentApi, type ExponentApiOptions, type ExponentAssetRef, type ExponentOriginRow, type ExponentPtMarket, type ExponentPtMarkets, type ExponentSyToken, type ExponentToken, type ExponentVault, FLUID_ORACLE_DECIMALS, FLUID_VAULT_TYPE_T1, type FetchExponentPtOptions, type FetchHumaVaultsOptions, type FetchJupiterLendPublicOptions, type FetchKaminoKvaultsOptions, type FetchKaminoPublicOptions, type FetchKaminoUserOnchainOptions, type FetchKaminoUserOptions, type FetchLenderAllOptions, type FetchLoopscaleEarnVaultsOptions, type FetchLoopscalePublicOptions, type FetchLoopscaleUserOptions, type FetchLstVaultsOptions, type FetchOraclePricesOptions, type FetchP0PublicOptions, type FetchP0UserOptions, type FetchSaveOracleOptions, type FetchSavePublicOptions, type FetchSaveUserOptions, type FetchSolsticeUserOptions, type FetchSolsticeVaultsOptions, type FetchUserAllOptions, type GetLenderPublicDataAllOptions, HUMA_CLASSIC_MODE_ID, HUMA_DECIMALS, HUMA_IDL, HUMA_MPST_MINT, HUMA_POOL, HUMA_PROGRAM, HUMA_PST_MINT, HUMA_REDEMPTION_REQUEST_SIZE, HUMA_REDEMPTION_SLA_SECONDS, HUMA_SEEDS, HttpError, type HttpOptions, type HumaChainState, type HumaConvertContext, type HumaInstantWithdrawalFeeConfig, type HumaLenderState, type HumaModeConfig, type HumaModeState, type HumaPoolConfig, type HumaPoolState, type HumaRedemptionGating, type HumaRedemptionRequest, type HumaVault, type HumaVaults, JL_BPS, JL_EXCHANGE_PRICES_PRECISION, JL_FACTOR_SCALE, JL_ORACLE_DECIMALS, JL_ORACLE_SCALE, JL_VAULTS_ACCOUNTS_IDL, JL_VAULT_AMOUNT_DECIMALS, JUPITER_LEND_API_BASE, JUPITER_LEND_KEYED_API_BASE, JUPITER_LEND_MARKETS, JUPITER_LEND_PROFILE_ID, JUPITER_LEND_PROGRAMS, JUPITER_PRICE_API_BASE, JUPITER_PRICE_KEYED_API_BASE, JUP_DEX_PROGRAM, JUP_FLASHLOAN_IDL, JUP_FLASHLOAN_PROGRAMS, JUP_LIQUIDITY_PROGRAMS, JUP_VAULTS_PROGRAMS, type JlLayerIrm, type JlOnchainVault, type JupFlashloanAdmin, type JupiterLendApi, type JupiterLendApiOptions, type JupiterLendBorrowPosition, type JupiterLendBundleParams, type JupiterLendConfigEntry, type JupiterLendConversion, type JupiterLendEarnPosition, type JupiterLendEarnToken, type JupiterLendEarnVault, type JupiterLendFluidSide, type JupiterLendFluidVault, type JupiterLendLiquidityBorrowData, type JupiterLendLiquiditySupplyData, type JupiterLendMarket, type JupiterLendMarketId, type JupiterLendOracleSource, type JupiterLendPoolData, type JupiterLendPublicResponse, type JupiterLendSkipReason, type JupiterLendToken, type JupiterLendUserExt, type JupiterLendUserResult, type JupiterLendVault, type JupiterLendVaultMeta, type JupiterPriceApiOptions, type JupiterPriceMap, KAMINO_API_BASE, KAMINO_MAIN_MARKET, KAMINO_MARKET_DENYLIST, KAMINO_MIN_MARKET_DEPOSITS_USD, KAMINO_OBLIGATION_TAGS, KAMINO_PRICE_AGREEMENT, KAMINO_PROFILE_ID, KLEND_COLLATERAL_MINT_DECIMALS, KLEND_IDL, KLEND_MARKET_SIZE, KLEND_OBLIGATION_DISCRIMINATOR, KLEND_OBLIGATION_OWNER_OFFSET, KLEND_OBLIGATION_SIZE, KLEND_PROGRAM_ID, KLEND_RESERVE_FLASH_SLICE, KLEND_RESERVE_SIZE, KLEND_RESERVE_SLICE, KLEND_U64_MAX, KVAULT_PROGRAM_ID, type KaminoApi, type KaminoApiOptions, type KaminoApiUserExt, type KaminoApyWindows, type KaminoBorrowReserveTerms, type KaminoCapBucket, type KaminoCollateralReserve, type KaminoCompoundMetadata, type KaminoConfigEntry, type KaminoKvault, type KaminoKvaultAllocation, type KaminoKvaultApi, type KaminoKvaultApiOptions, type KaminoKvaultEarnVault, type KaminoKvaultMetrics, type KaminoKvaultState, type KaminoLeveragePair, type KaminoLoanBorrow, type KaminoLoanDeposit, type KaminoLoanInfo, type KaminoMarketConfig, type KaminoMarketInputs, type KaminoMarketMeta, type KaminoMarketPrices, type KaminoModeContext, type KaminoObligation, type KaminoObligationLegs, type KaminoObligationView, type KaminoOnchainUserExt, type KaminoOracleEntryOptions, type KaminoOraclePrice, type KaminoOraclePriceMap, type KaminoPairIncentive, type KaminoPoolData, type KaminoPublicConversion, type KaminoPublicResponse, type KaminoRateBasis, type KaminoRateType, type KaminoReserveAccountData, type KaminoReserveExt, type KaminoReserveInputs, type KaminoReserveMetrics, type KaminoReserveMetricsDetail, type KaminoReserveRisk, type KaminoReserveState, type KaminoReserveStats, type KaminoReserveStatus, type KaminoRewardApy, type KaminoUserContext, type KaminoUserError, type KaminoUserObligationRef, type KaminoWithdrawalCapStats, type KaminoWithdrawalCapView, type KlendElevationGroupTerms, type KlendMarketChain, type KlendObligationReserves, type KlendReserveChain, type KlendReserveFlash, type KlendWithdrawalCap, LENDER_BRAND_NAMES, LOANS_PAGE, LOOPSCALE_ACCOUNT_DISCRIMINATORS, LOOPSCALE_API_BASE, LOOPSCALE_BEAM_ORACLE_PROGRAM_ID, LOOPSCALE_CONFIG_LABEL, LOOPSCALE_DOCS_URL, LOOPSCALE_GRACE_PERIOD_SECS, LOOPSCALE_IDL, LOOPSCALE_OPEN_LOANS, LOOPSCALE_PROFILE_ID, LOOPSCALE_PROGRAM_ID, LS_CBPS, LS_NO_ACCOUNT, LS_TENORS, LS_U64_MAX, type LayerTotals, type LenderBundle, type LenderPublicDataMap, type LenderPublicResponse, type LendingBasketMeta, type ListServedMarketsOptions, type LoopscaleApi, type LoopscaleApiOptions, type LoopscaleAssetData, type LoopscaleAssetTerms, type LoopscaleBestOffer, type LoopscaleCapMonitor, type LoopscaleCapsDecoded, type LoopscaleCollateralAccount, type LoopscaleConfigEntry, type LoopscaleConversion, type LoopscaleDuration, type LoopscaleDurationAndApy, type LoopscaleEarnVault, type LoopscaleExternalYieldInfo, type LoopscaleFixedTerm, type LoopscaleLadderLevel, type LoopscaleLedger, type LoopscaleLedgerAccount, type LoopscaleLedgerTerm, type LoopscaleLendingVaultInfo, type LoopscaleLoanAccount, type LoopscaleLoanBook, type LoopscaleLoanCollateral, type LoopscaleLoanDecoded, type LoopscaleLoanPiece, type LoopscaleLoanSummaryItem, type LoopscaleLoansRequest, type LoopscaleLoansResponse, type LoopscaleLoopInfo, type LoopscaleLoopsResponse, type LoopscaleMarketAsset, type LoopscaleMarketInfoDecoded, type LoopscaleMarketMeta, type LoopscaleMarketTerm, type LoopscaleMaxQuote, type LoopscaleMaxQuoteRequest, type LoopscaleMorphoMarket, type LoopscaleOfferingVault, type LoopscaleOpenParameter, type LoopscaleOracleRef, type LoopscalePair, type LoopscalePairBook, type LoopscalePieceLedger, type LoopscalePoolData, type LoopscalePrincipalCaps, type LoopscalePublicResponse, type LoopscaleQuoteOffer, type LoopscaleQuoteRequest, type LoopscaleRewardsSchedule, type LoopscaleRosterOptions, type LoopscaleStrategyAccount, type LoopscaleStrategyDecoded, type LoopscaleStrategyInfo, type LoopscaleStrategySummary, type LoopscaleStrategyTerms, type LoopscaleTerm, type LoopscaleTermId, type LoopscaleTotals, type LoopscaleUserExt, type LoopscaleUserLedger, type LoopscaleUserLoan, type LoopscaleUserPosition, type LoopscaleUserResult, type LoopscaleVaultAccount, type LoopscaleVaultMetadata, type LoopscaleVaultsRequest, type LoopscaleVaultsResponse, type LstConvertContext, type LstEarnVault, type LstEntry, type LstStakingApySource, type MarketOverrides, ORACLE_CANONICAL_SIZE, type OraclePriceEntry, type OraclePriceMap, type OriginJupiterLendMeta, type OriginJupiterLendRow, type OriginKaminoKvaultMeta, type OriginKaminoKvaultRow, type OriginLoopscaleMeta, type OriginLoopscaleRow, type OriginLstMeta, type OriginLstMetaAdditions, type OriginLstRow, type OriginSavingsMeta, type OriginSavingsRow, type OriginVaultCommon, type OriginVaultProvider, type OriginVaultRow, type OriginWithdrawalMode, type P0AccountView, type P0Api, type P0ApiOptions, type P0AssetTag, type P0Balance, type P0BalanceView, type P0Bank, type P0BankCache, type P0BankConfig, type P0BankDto, type P0BankExt, type P0BankInputs, type P0BankMeta, type P0BankMetaMap, type P0BankPrice, type P0BankRef, type P0CircuitBreakerState, type P0ConfigEntry, type P0ConvertContext, type P0EmodeEntry, type P0EmodeLift, type P0EmodeRoster, type P0EmodeSettings, type P0EmodeTag, type P0Group, type P0GroupInputs, type P0GroupMeta, type P0HealthCache, type P0Integration, type P0InterestRateConfig, type P0MarginfiAccount, type P0OnChainBankMeta, type P0OperationalState, type P0OracleSetup, type P0PoolData, type P0PriceMap, type P0PriceResolution, type P0PublicConversion, type P0PublicResponse, type P0RateLimitWindow, type P0RateLimiter, type P0RatePoint, type P0Rates, type P0RiskTier, type P0StateSemantics, type P0UnservedBalance, type P0UserExt, type P0UserResponse, type P0VenueMultiplier, type P0VenueMultiplierMap, P0_ACCOUNT_AUTHORITY_OFFSET, P0_ACCOUNT_FLAGS, P0_ACCOUNT_GROUP_OFFSET, P0_ADJUSTED_CACHE_SETUPS, P0_API_BASE, P0_ASSET_TAG, P0_BANK_CONFIG_PYTH_PUSH_MIGRATED, P0_BANK_DISCRIMINATOR, P0_BANK_FLAGS, P0_BANK_GROUP_OFFSET, P0_BANK_SIZE, P0_CACHED_PRICE_MULTIPLIER_SETUPS, P0_DEFAULT_LIQUIDATION_FEE, P0_EMODE_BASE_LABEL, P0_EMODE_ON, P0_GROUP_PROGRAM_FEES_ENABLED, P0_GROUP_SIZE, P0_I80F48_FRACTION_BITS, P0_IDL, P0_LIQUIDATION_CLOSEOUT_USD, P0_LOOKUP_TABLES, P0_MAIN_GROUP, P0_MARGINFI_ACCOUNT_DISCRIMINATOR, P0_MARGINFI_ACCOUNT_SIZE, P0_MAX_BALANCES, P0_MAX_EMODE_ENTRIES, P0_NATIVE_STAKE_LOOKUP_TABLES, P0_PAUSE_DURATION_SECONDS, P0_PROGRAM_ID, P0_PYTH_PUSH_SETUPS, P0_SECONDS_PER_YEAR, P0_SEEDS, P0_STAGING_GROUP, P0_STAGING_PROGRAM_ID, P0_STAKE_POOL_PROGRAMS, P0_SVSP_PHANTOM_TOKEN_AMOUNT, P0_U32_MAX, P0_U64_MAX, PROJECT_0_PROFILE_ID, PYTH_PRICE_UPDATE_V2_DISCRIMINATOR, PYTH_RECEIVER_PROGRAM, type PythPriceUpdate, type ReadJlVaultsOptions, type ResolveP0PricesOptions, type RewardsList, SAVE_API_BASE, SAVE_CREATOR, SAVE_DEFAULT_AVG_SLOT_SECONDS, SAVE_DEFAULT_OBLIGATION_PROBE, SAVE_FULL_LIQUIDATION_VALUE_USD, SAVE_INITIAL_EXCHANGE_RATE_WAD, SAVE_LIQUIDATION_CLOSE_FACTOR, SAVE_MAIN_MARKET, SAVE_MARKET_DENYLIST, SAVE_MAX_BONUS_PCT, SAVE_MAX_LIQUIDATABLE_VALUE_USD, SAVE_MAX_OBLIGATION_PROBE, SAVE_MAX_OBLIGATION_RESERVES, SAVE_NULL_ORACLE, SAVE_OBLIGATION_SIZE, SAVE_POSITION_LIMIT, SAVE_PROFILE_ID, SAVE_PROFILE_ID_PROSE, SAVE_PROGRAM_ID, SAVE_RESERVE_SIZE, SAVE_SLOTS_PER_YEAR, SAVE_U64_MAX, SAVE_UNBORROWABLE_BORROW_FACTOR, SAVE_WAD, SAVE_WALLET_POS_ID, SECONDS_PER_YEAR, SETTLEMENT_BATCH_SIZE, SOLANA_CHAIN_ID, SOLSTICE_APP_API_BASE, SOLSTICE_DECIMALS, SOLSTICE_MINTS, SOLSTICE_PRICE_DECIMALS, SOLSTICE_PROGRAMS, SOLSTICE_STRATEGIES, SOLSTICE_YIELD_STRATEGY_IDL, SOLSTICE_YIELD_VAULT_IDL, SPL_STAKE_POOL_LSTS, SPL_STAKE_POOL_PROGRAM, STABLECOIN_SYMBOLS, STAKE_ACCOUNT_RENT_EXEMPT_LAMPORTS, type SaveApi, type SaveApiOptions, type SaveCompoundV2Metadata, type SaveLastUpdate, type SaveLiquidityToken, type SaveMarketConfig, type SaveMarketInputs, type SaveMarketMeta, type SaveObligation, type SaveObligationBorrow, type SaveObligationDeposit, type SaveObligationView, type SavePoolData, type SavePublicConversion, type SavePublicResponse, type SaveRateLimiter, type SaveRates, type SaveReserveAccount, type SaveReserveCollateral, type SaveReserveConfig, type SaveReserveConfigState, type SaveReserveExt, type SaveReserveFees, type SaveReserveInputs, type SaveReserveLiquidity, type SaveReserveRef, type SaveReserveState, type SaveReservesResponse, type SaveRosterOptions, type SaveUnservedLeg, type SaveUserExt, type SaveUserResponse, type SaveWalletCTokenView, type ServedMarket, type SolanaPoolData, type SolanaSubAccountInfo, type SolanaUserPosition, type SolanaUserPositions, type SolanaUserResult, type SolsticeAccountingState, type SolsticeApiOptions, type SolsticeAppApi, type SolsticeChainState, type SolsticeController, type SolsticeConvertContext, type SolsticeCooldownEscrow, type SolsticeHolding, type SolsticeJuniorUnlockShare, type SolsticeOraclePrice, type SolsticePending, type SolsticeProtocolStats, type SolsticeSeniorUnlockCooldown, type SolsticeSettlementBatch, type SolsticeSettlementBatchView, type SolsticeStrategy, type SolsticeStrategyController, type SolsticeStrategyMode, type SolsticeStrategyName, type SolsticeStrategyPdas, type SolsticeUserPositions, type SolsticeVault, type SolsticeVaults, type SolsticeVestingSchedule, type SolsticeYieldPool, type SolsticeYieldVaultPdas, type StakePoolFee, type StructuredOraclePrices, TERM_PROFILES, type TokenListInput, type TrancheRates, type USDPriceMap, WSOL_MINT, type WireU64, type YieldProfile, accountDiscriminator, aggregateLoopscaleLoanBook, apyFractionToAprPercent, attributeBestOffer, attributeLoopscaleLoan, bigMax0, bpsToPercent, buildKaminoConfig, buildKaminoEModes, buildKaminoMarketMeta, buildLoopscaleRoster, buildLoopscaleTerms, buildP0EModes, buildSolsticeVaults, capOrUndefined, cbpsToFraction, cbpsToPercent, cbpsToWad, convertEusx, convertExponentVault, convertHumaPst, convertJupiterLendEarnToken, convertJupiterLendOracleEntries, convertJupiterLendUserPositions, convertJupiterLendVault, convertKaminoKvault, convertKaminoLoans, convertKaminoMarket, convertKaminoOraclePrices, convertKaminoReserve, convertLoopscalePair, convertLoopscaleUser, convertLoopscaleVault, convertLst, convertP0Bank, convertP0Group, convertSaveMarket, convertSaveReserve, convertTranche, createExponentApi, createJupiterLendApi, createKaminoApi, createKaminoKvaultApi, createLimiter, createLoopscaleApi, createMarketUid, createP0Api, createPacer, createSaveApi, createSolsticeAppApi, createWithSeed, decimalStringToI80F48, decimalStringToRaw, decodeAccountingState, decodeController, decodeCooldownEscrow, decodeHumaLenderState, decodeHumaModeConfig, decodeHumaPoolConfig, decodeHumaPoolState, decodeHumaRedemptionRequest, decodeJlRateModel, decodeJuniorUnlockShare, decodeJupFlashloanAdmin, decodeKaminoObligation, decodeKaminoReserveState, decodeLoopscaleLoan, decodeLoopscaleMarketInformation, decodeLoopscaleStrategy, decodeOracleCanonical, decodeP0Bank, decodeP0BankMetadata, decodeP0Group, decodeP0MarginfiAccount, decodePythPriceUpdate, decodeSaveObligation, decodeSeniorUnlockCooldown, decodeSettlementBatch, decodeStakePool, decodeStrategy, decodeStrategyController, decodeVestingSchedule, decodeYieldPool, denominationOf, deriveLayerTotals, deriveLoopscalePrices, deriveP0Mode, describeBasket, describeKaminoObligation, durationDays, epochRatePercent, epochRealizedApr, eusxAssetsToShares, eusxEpochRatePercent, eusxRate, eusxSharesToAssets, exchangeRateWad, exponentOriginRow, feeBps, fetchExponentPtMarkets, fetchHumaPstVaults, fetchJupiterLendEarnVaults, fetchJupiterLendOracleEntries, fetchJupiterLendPublic, fetchJupiterLendUser, fetchJupiterPrices, fetchKaminoKvaults, fetchKaminoOracleEntries, fetchKaminoOraclePrices, fetchKaminoPublic, fetchKaminoUser, fetchKaminoUserOnchain, fetchLenderAll, fetchLoopscaleEarnVaults, fetchLoopscaleLoanBook, fetchLoopscalePublic, fetchLoopscaleUser, fetchLstVaults, fetchOraclePrices, fetchProject0Public, fetchProject0User, fetchSaveOracleEntries, fetchSavePublic, fetchSaveUser, fetchSolsticeSettlementBatches, fetchSolsticeUser, fetchSolsticeVaults, fetchUserAll, formatRawUnits, getJson, getLenderPublicData, getLenderPublicDataAll, getLendersForChain, getTermProfile, humaDeploymentStatePda, humaLenderStatePda, humaModeConfigPda, humaModeMintPda, humaOriginRow, humaPoolAuthorityPda, humaPoolConfigPda, humaPoolStatePda, humaRedemptionRequestPda, i80f48ToDecimalString, i80f48ToNumber, isBorrowable, isJlSmartCol, isJlSmartDebt, isLenderBrand, isLiveVault, isNullKey, isP0FixedSetup, isP0U64Max, isSaveBorrowable, isSaveUnrealizable, isStablecoinSymbol, isStaleKaminoPrice, isSyntheticQuoteMint, isU64Max, isUncapped, jlLiquidityExchangePrices, jlOraclePriceInBorrow, jlOracleToFluidRaw, jlOverallTokenData, jlUserBorrowData, jlUserSupplyData, jlVaultAdminPda, jlVaultConfigPda, jlVaultExchangePrices, jlVaultStatePda, jlVaultToRaw, joinableBatch, juniorUnlockSharePda, jupFlashBorrowPosition, jupFlashloanAdmin, jupLiquidity, jupLiquidityReserve, jupLiquidityVault, jupRateModel, jupiterLendCurrency, jupiterLendOriginRow, jupiterLendTermAdapter, kaminoAsset, kaminoBorrowFactorToRow, kaminoCloseFactor, kaminoDefaultEntry, kaminoGroupLabel, kaminoKvaultOriginRow, kaminoOracleEntriesFromMarkets, kaminoRewards, kaminoRiskByReserve, kaminoTagLabel, kaminoTermAdapter, klendMarketAuthority, klendObligationPda, ledgerFaceAt, ledgerInterestAt, ledgerPrincipal, lenderBrandName, lenderDisplayName, liquidityRatio, listServedMarkets, loopscaleOriginRow, loopscaleTermAdapter, lstOriginRow, maxLeverageOf, mintSupply, normalizeP0BankDto, num, obligationPubkey, oracleCanonicalPda, p0BankMetadataPda, p0BankRef, p0CurveKnots, p0DecimalString, p0EmodeRoster, p0FeeState, p0GroupPausedAt, p0Integration, p0LegacyBaseRate, p0LiquidationFee, p0LiquidityVault, p0LiquidityVaultAuthority, p0MarginfiAccountPda, p0MultipointBaseRate, p0NeedsVenueMultiplier, p0Rates, p0StateSemantics, p0SupplyCapTokens, p0Utilization, parseExpirySeconds, pieceLqt, podBool, podDecimalToNumber, podToBigInt, podToNumber, postJson, project0TermAdapter, readEpochClock, readHumaChainState, readHumaLenderState, readHumaRedemptionRequests, readJlLayerIrms, readJlNextVaultId, readJupFlashAssets, readJupFlashAvailable, readJupFlashloanAdmin, readJupiterLendVaultsOnchain, readKlendElevationGroups, readKlendFlashFacts, readKlendLendingMarket, readKlendMarketState, readKlendObligationReserves, readKlendReserveChain, readKlendReserveFlash, readLoopscaleLoans, readLoopscaleMarketInformation, readP0BankMetadata, readP0Banks, readReserveLamports, readSolsticeChainState, readStakePools, registriesToRead, resolveP0Prices, sameDuration, saveAssetGroup, saveBorrowCurvePercent, saveBorrowedRaw, saveExchangeRateWad, saveLiquidationPenalty, saveObligationAddress, saveObligationSeed, saveRates, saveReserveRef, saveSlotYearScale, saveTermAdapter, saveTotalSupplyWads, saveUtilization, scaledToDecimal, scanP0Banks, selectAssetGroupPrices, selectSaveMarkets, seniorCooldownPdas, settlementBatchPdas, solsticeOriginRow, strategyMode, strategyNameOf, strategyPdas, strategyTvlRaw, tenorOf, termIdOf, toOriginVaultRow, tokenAmount, trancheAssetsToShares, trancheRates, trancheSharesToAssets, u32ToBasis, u32ToCenti, u32ToMilli, unvestedAt, valueKaminoObligations, wadToNumber, wadsToFloat, yieldVaultCooldownPdas, yieldVaultPdas };