@1delta/margin-fetcher-sol 0.0.1 → 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/README.md +63 -0
- package/dist/index.d.mts +718 -34
- package/dist/index.d.ts +718 -34
- package/dist/index.js +2835 -776
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +2782 -745
- package/dist/index.mjs.map +1 -1
- package/package.json +5 -5
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
|
|
@@ -1634,10 +1924,11 @@ interface JupiterLendFluidVault {
|
|
|
1634
1924
|
/** Raw debt per raw collateral × 1e27 — EVM Fluid's scale (`jlOracleToFluidRaw`). */
|
|
1635
1925
|
oraclePriceOperate?: string;
|
|
1636
1926
|
oraclePriceLiquidate?: string;
|
|
1637
|
-
|
|
1638
|
-
|
|
1639
|
-
|
|
1640
|
-
|
|
1927
|
+
/** True on a smart side (JL type 2 / 4 col, 3 / 4 debt — chain-enumerated vaults only; the API lists T1 only). The smart side's `dex` stays `null`: the DEX is on `params.jupiterLendVault.smart`. */
|
|
1928
|
+
isSmartCol: boolean;
|
|
1929
|
+
isSmartDebt: boolean;
|
|
1930
|
+
/** Fluid's `TYPE()`: 10000 T1 (JL 0 / 1), 20000 T2, 30000 T3, 40000 T4. */
|
|
1931
|
+
vaultType: number;
|
|
1641
1932
|
collateral: JupiterLendFluidSide;
|
|
1642
1933
|
loan: JupiterLendFluidSide;
|
|
1643
1934
|
}
|
|
@@ -1710,6 +2001,29 @@ interface JupiterLendVaultMeta {
|
|
|
1710
2001
|
supplyFlashable: boolean;
|
|
1711
2002
|
borrowFlashable: boolean;
|
|
1712
2003
|
};
|
|
2004
|
+
/** `api` = Jupiter's listing; `chain` = read from the vaults program because the listing omits the id (`onchain.ts`). */
|
|
2005
|
+
source?: 'api' | 'chain';
|
|
2006
|
+
/** The slot of a chain read. */
|
|
2007
|
+
slot?: number;
|
|
2008
|
+
/**
|
|
2009
|
+
* A smart side's DEX (chain-enumerated vaults): that side's leg is keyed
|
|
2010
|
+
* by the DEX address, denominated in DEX SHARES (9 decimals) and UNPRICED
|
|
2011
|
+
* (USD 0 — the share's token value needs the DEX math, not ported).
|
|
2012
|
+
*/
|
|
2013
|
+
smart?: {
|
|
2014
|
+
col?: {
|
|
2015
|
+
dex: string;
|
|
2016
|
+
token0?: string;
|
|
2017
|
+
token1?: string;
|
|
2018
|
+
};
|
|
2019
|
+
debt?: {
|
|
2020
|
+
dex: string;
|
|
2021
|
+
token0?: string;
|
|
2022
|
+
token1?: string;
|
|
2023
|
+
};
|
|
2024
|
+
};
|
|
2025
|
+
/** Mints whose USD the read could not source (the leg's USD reads 0 because the price is unknown, not because the leg is empty). */
|
|
2026
|
+
unpriced?: string[];
|
|
1713
2027
|
}
|
|
1714
2028
|
/** Both params slots of one vault bundle. */
|
|
1715
2029
|
interface JupiterLendBundleParams {
|
|
@@ -1758,6 +2072,18 @@ type JupiterLendPoolData = Omit<PoolData, 'borrowCap' | 'supplyCap' | 'config'>
|
|
|
1758
2072
|
config: {
|
|
1759
2073
|
[mode: string]: JupiterLendConfigEntry;
|
|
1760
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
|
+
};
|
|
1761
2087
|
};
|
|
1762
2088
|
interface ConvertJupiterLendOptions {
|
|
1763
2089
|
tokenList?: {
|
|
@@ -1841,8 +2167,14 @@ interface FetchJupiterLendPublicOptions extends JupiterLendApiOptions {
|
|
|
1841
2167
|
intrinsicYields?: {
|
|
1842
2168
|
[assetGroup: string]: number;
|
|
1843
2169
|
};
|
|
1844
|
-
/** With an RPC: the market's flashloan admin (fee, activation) and the flash-able set, on `params.vault.flashloan` and the term sheet. */
|
|
2170
|
+
/** With an RPC: the market's flashloan admin (fee, activation) and the flash-able set, on `params.vault.flashloan` and the term sheet; and the vaults the listing omits, read from the chain (`enumerateOnchain`). */
|
|
1845
2171
|
rpc?: SvmRpc;
|
|
2172
|
+
/**
|
|
2173
|
+
* With an `rpc`: enumerate the vaults program (`VaultAdmin.next_vault_id`)
|
|
2174
|
+
* and read every id the API does not list (`onchain.ts`). API rows are
|
|
2175
|
+
* kept as they are; the chain only fills the gaps. Default true.
|
|
2176
|
+
*/
|
|
2177
|
+
enumerateOnchain?: boolean;
|
|
1846
2178
|
}
|
|
1847
2179
|
/**
|
|
1848
2180
|
* Every Jupiter Lend vault in the margin-fetcher return shape — one lender
|
|
@@ -1855,6 +2187,13 @@ interface FetchJupiterLendPublicOptions extends JupiterLendApiOptions {
|
|
|
1855
2187
|
* token needs the jl token's supply, JUPITER_LEND.md §3). Both markets = 4
|
|
1856
2188
|
* GETs, ~0.5 s. A market whose read fails fails the fetch — a partial
|
|
1857
2189
|
* roster is not served.
|
|
2190
|
+
*
|
|
2191
|
+
* With an `rpc`, the ids the listing omits are read from the chain (3
|
|
2192
|
+
* batched account reads per market; on 2026-10-02 main served 82 of 104 —
|
|
2193
|
+
* the gaps include the smart-debt / smart-collateral vaults 90–98, which
|
|
2194
|
+
* users transact on). A failed chain read keeps the API rows and warns: the
|
|
2195
|
+
* enumeration only ever ADDS bundles. Chain bundles carry
|
|
2196
|
+
* `params.jupiterLendVault.source = 'chain'`.
|
|
1858
2197
|
*/
|
|
1859
2198
|
declare function fetchJupiterLendPublic(opts?: FetchJupiterLendPublicOptions): Promise<{
|
|
1860
2199
|
[lender: string]: JupiterLendPublicResponse;
|
|
@@ -2103,12 +2442,21 @@ declare const SAVE_WAD: bigint;
|
|
|
2103
2442
|
declare const SAVE_U64_MAX = "18446744073709551615";
|
|
2104
2443
|
/**
|
|
2105
2444
|
* The program's slot-year: interest compounds `rate / 63,072,000` PER SLOT,
|
|
2106
|
-
* i.e. it assumes a 0.5 s slot.
|
|
2107
|
-
*
|
|
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.
|
|
2108
2448
|
*/
|
|
2109
2449
|
declare const SAVE_SLOTS_PER_YEAR = 63072000;
|
|
2110
|
-
/**
|
|
2111
|
-
|
|
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;
|
|
2112
2460
|
/** Program constants (sdk/src/state/reserve.rs). */
|
|
2113
2461
|
declare const SAVE_LIQUIDATION_CLOSE_FACTOR = 0.2;
|
|
2114
2462
|
declare const SAVE_MAX_LIQUIDATABLE_VALUE_USD = 500000;
|
|
@@ -2168,8 +2516,9 @@ type SaveApi = ReturnType<typeof createSaveApi>;
|
|
|
2168
2516
|
* with `opt == 0 ⇒ min`. Supply = u × borrow × (1 − protocolTakeRate).
|
|
2169
2517
|
*
|
|
2170
2518
|
* Save's own SDK (`calculateBorrowInterest`) agrees to the digit on live
|
|
2171
|
-
* state; the hosted API's `rates` field does NOT (×1.61
|
|
2172
|
-
* is why the
|
|
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.
|
|
2173
2522
|
*/
|
|
2174
2523
|
declare function saveBorrowCurvePercent(c: Pick<SaveReserveConfigState, 'optimalUtilizationRate' | 'maxUtilizationRate' | 'minBorrowRate' | 'optimalBorrowRate' | 'maxBorrowRate' | 'superMaxBorrowRate'>, utilization: number): number;
|
|
2175
2524
|
/** `borrowedAmountWads / 1e18` in RAW token units (a bigint-exact division, then float). */
|
|
@@ -2195,7 +2544,8 @@ declare const wadsToFloat: (wads: bigint) => number;
|
|
|
2195
2544
|
*/
|
|
2196
2545
|
declare function saveUtilization(liquidity: SaveReserveAccount['liquidity']): number;
|
|
2197
2546
|
/**
|
|
2198
|
-
* The curve is denominated in a 0.5 s slot-year; the chain runs
|
|
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),
|
|
2199
2549
|
* so one wall-clock year contains `31,536,000 / avgSlot` slots and the rate a
|
|
2200
2550
|
* depositor actually sees is `curve × (that / 63,072,000)` = `curve × 0.5 / avgSlot`.
|
|
2201
2551
|
*/
|
|
@@ -2506,7 +2856,7 @@ interface FetchSavePublicOptions extends SaveApiOptions, SaveRosterOptions {
|
|
|
2506
2856
|
tokenList?: {
|
|
2507
2857
|
[mint: string]: GenericCurrency;
|
|
2508
2858
|
};
|
|
2509
|
-
/** Wall-clock slot
|
|
2859
|
+
/** Wall-clock seconds per slot the curve is scaled by — pass a MEASURED value (svm-kit `measureSlotSeconds`); the default is a dated constant. */
|
|
2510
2860
|
avgSlotSeconds?: number;
|
|
2511
2861
|
dropUnrealizable?: boolean;
|
|
2512
2862
|
/** Already-fetched configs (the user-data path and the action builders share them). */
|
|
@@ -3086,7 +3436,12 @@ interface LoopscaleOfferingVault {
|
|
|
3086
3436
|
vault: string;
|
|
3087
3437
|
strategy: string;
|
|
3088
3438
|
name: string;
|
|
3439
|
+
/** `vaultMetadata.managerName` — the curator's display name ('' when the venue names none). */
|
|
3089
3440
|
curator: string;
|
|
3441
|
+
/** The vault's `manager` — the curator's ADDRESS, base58 verbatim. */
|
|
3442
|
+
manager: string;
|
|
3443
|
+
/** `vaultMetadata.managerImage`, verbatim; absent when none. */
|
|
3444
|
+
managerImage?: string;
|
|
3090
3445
|
/** CBPS of interest earned, the vault's take. */
|
|
3091
3446
|
interestFee: number;
|
|
3092
3447
|
/** CBPS of principal at origination. */
|
|
@@ -3638,13 +3993,28 @@ type LoopscaleConfigEntry = Omit<ConfigEntry, 'collateralDisabled' | 'debtDisabl
|
|
|
3638
3993
|
debtDisabled: boolean;
|
|
3639
3994
|
openParameter?: LoopscaleOpenParameter;
|
|
3640
3995
|
};
|
|
3641
|
-
/** One `market_terms` row (yield-tracer reads `termId`, `durationDays`, `apr`). */
|
|
3996
|
+
/** One `market_terms` row (yield-tracer reads `termId`, `durationDays`, `apr`, `ladder`). */
|
|
3642
3997
|
interface LoopscaleMarketTerm {
|
|
3643
3998
|
termId: string;
|
|
3644
3999
|
durationDays: number;
|
|
3645
4000
|
durationSecs: number;
|
|
3646
4001
|
/** Best offer, percent APR. */
|
|
3647
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
|
+
}[];
|
|
3648
4018
|
}
|
|
3649
4019
|
/**
|
|
3650
4020
|
* Structurally margin-fetcher's `FixedTermInfo` with `model: 'loopscale'`
|
|
@@ -4655,7 +5025,7 @@ declare const P0_EMODE_BASE_LABEL = "No emode";
|
|
|
4655
5025
|
interface P0BankPrice {
|
|
4656
5026
|
priceUsd: number;
|
|
4657
5027
|
/** Where the number came from. */
|
|
4658
|
-
source: 'pyth-push' | 'pyth-push×multiplier' | 'fixed' | 'bank-cache' | 'none';
|
|
5028
|
+
source: 'pyth-push' | 'pyth-push×multiplier' | 'scope' | 'fixed' | 'bank-cache' | 'none';
|
|
4659
5029
|
/** Unix seconds of the reading (the oracle's publish time or the cache's timestamp). */
|
|
4660
5030
|
updatedAt?: number;
|
|
4661
5031
|
multiplier: number;
|
|
@@ -5122,7 +5492,11 @@ roster: {
|
|
|
5122
5492
|
* underlying), the price is the underlying's; Drift's shares are
|
|
5123
5493
|
* 9-decimal scaled balances whatever the mint, so its multiplier is
|
|
5124
5494
|
* rescaled to the mint;
|
|
5125
|
-
* - `PythPushOracle` — the price, multiplier 1; `Fixed*` — `fixed_price
|
|
5495
|
+
* - `PythPushOracle` — the price, multiplier 1; `Fixed*` — `fixed_price`;
|
|
5496
|
+
* - `PythMSOL` — live = Pyth SOL × Marinade's `State.msol_price`
|
|
5497
|
+
* (`oracle_keys[1]`), read here (the venue variants stay on the cache);
|
|
5498
|
+
* - `Scope` — live = the Scope `OraclePrices` entry at
|
|
5499
|
+
* `config.scopeEntryIndex` (`oracle_keys[0]`), with its own timestamp.
|
|
5126
5500
|
* A cached venue multiplier moves at the venue's YIELD rate (bps per day),
|
|
5127
5501
|
* so a day-old one on a fresh SOL price is the right number to a few bps.
|
|
5128
5502
|
*/
|
|
@@ -7145,6 +7519,10 @@ interface LoopscaleEarnVault {
|
|
|
7145
7519
|
name: string;
|
|
7146
7520
|
displayName: string;
|
|
7147
7521
|
curatorName: string;
|
|
7522
|
+
/** The vault's `manager` — the curator's ADDRESS, base58 verbatim (the chain-role arm of a curator identity). */
|
|
7523
|
+
manager: string;
|
|
7524
|
+
/** The venue's curator logo (`vaultMetadata.managerImage`), verbatim; absent when the venue names none. */
|
|
7525
|
+
managerImage?: string;
|
|
7148
7526
|
decimals: number;
|
|
7149
7527
|
assetDecimals: number;
|
|
7150
7528
|
/** TVL, raw principal units (the guide's four-term sum). */
|
|
@@ -7246,6 +7624,254 @@ interface FetchLoopscaleEarnVaultsOptions extends LoopscaleApiOptions {
|
|
|
7246
7624
|
/** Every curated Loopscale vault as an earn row — one paged route, zero RPC. A principal with no known decimals is skipped and named. */
|
|
7247
7625
|
declare function fetchLoopscaleEarnVaults(opts?: FetchLoopscaleEarnVaultsOptions): Promise<LoopscaleEarnVault[]>;
|
|
7248
7626
|
|
|
7627
|
+
/**
|
|
7628
|
+
* Kamino kvaults (`KvauGMspG5k6rtzrqqn7WNn3oZdyKqLKwK2XWQ8FLjd`) — curated
|
|
7629
|
+
* earn vaults that allocate one token across K-Lend reserves. Two public
|
|
7630
|
+
* routes carry everything, read off live responses 2026-10-02:
|
|
7631
|
+
*
|
|
7632
|
+
* | route | rows | what it is the only source of |
|
|
7633
|
+
* | ----------------------------- | ---- | ---------------------------------------------------------------- |
|
|
7634
|
+
* | `/kvaults/vaults` | 183 | the ROSTER + the decoded `VaultState` (admins, mints, fees, name) |
|
|
7635
|
+
* | `/kvaults/vaults/metrics` | 186 | per-vault APY, tokens per share, AUM split, USD prices, holders |
|
|
7636
|
+
*
|
|
7637
|
+
* `/kvaults/vaults/metrics` is PAGED (100 rows, `paginationToken`) and
|
|
7638
|
+
* carries 3 vaults the roster omits (closed / not listed); the roster is the
|
|
7639
|
+
* join's left side. `/kvaults/<vault>/metrics` is the per-vault twin — not
|
|
7640
|
+
* needed when the batch answers.
|
|
7641
|
+
*
|
|
7642
|
+
* Scales: every `state` amount is RAW base units of its mint (u64 as a
|
|
7643
|
+
* decimal string; `prevAum` / `pendingFees` carry a Fraction's decimals);
|
|
7644
|
+
* every `metrics` amount is HUMAN units; APYs are FRACTIONS.
|
|
7645
|
+
*/
|
|
7646
|
+
interface KaminoKvaultAllocation {
|
|
7647
|
+
reserve: string;
|
|
7648
|
+
ctokenVault: string;
|
|
7649
|
+
targetAllocationWeight: number;
|
|
7650
|
+
tokenAllocationCap: string;
|
|
7651
|
+
ctokenVaultBump: number;
|
|
7652
|
+
ctokenAllocation: string;
|
|
7653
|
+
lastInvestSlot: string;
|
|
7654
|
+
tokenTargetAllocation: string;
|
|
7655
|
+
}
|
|
7656
|
+
interface KaminoKvaultState {
|
|
7657
|
+
/** The vault's admin — the curator's ADDRESS (sets allocations, fees, the allocation admin). */
|
|
7658
|
+
vaultAdminAuthority: string;
|
|
7659
|
+
baseVaultAuthority: string;
|
|
7660
|
+
baseVaultAuthorityBump: number;
|
|
7661
|
+
tokenMint: string;
|
|
7662
|
+
tokenMintDecimals: number;
|
|
7663
|
+
tokenVault: string;
|
|
7664
|
+
tokenProgram: string;
|
|
7665
|
+
sharesMint: string;
|
|
7666
|
+
sharesMintDecimals: number;
|
|
7667
|
+
/** Raw underlying held idle by the vault. */
|
|
7668
|
+
tokenAvailable: string;
|
|
7669
|
+
/** Raw shares outstanding. */
|
|
7670
|
+
sharesIssued: string;
|
|
7671
|
+
availableCrankFunds: string;
|
|
7672
|
+
performanceFeeBps: number;
|
|
7673
|
+
managementFeeBps: number;
|
|
7674
|
+
lastFeeChargeTimestamp: number;
|
|
7675
|
+
prevAum: string;
|
|
7676
|
+
/** Raw underlying owed to the admin, decimal fraction — deducted from AUM. */
|
|
7677
|
+
pendingFees: string;
|
|
7678
|
+
vaultAllocationStrategy: KaminoKvaultAllocation[];
|
|
7679
|
+
minDepositAmount: string;
|
|
7680
|
+
minWithdrawAmount: string;
|
|
7681
|
+
minInvestAmount: string;
|
|
7682
|
+
minInvestDelaySlots: number;
|
|
7683
|
+
crankFundFeePerReserve: string;
|
|
7684
|
+
pendingAdmin: string;
|
|
7685
|
+
cumulativeEarnedInterest: string;
|
|
7686
|
+
cumulativeMgmtFees: string;
|
|
7687
|
+
cumulativePerfFees: string;
|
|
7688
|
+
/** Empty on a handful of vaults. */
|
|
7689
|
+
name: string;
|
|
7690
|
+
vaultLookupTable: string;
|
|
7691
|
+
vaultFarm: string;
|
|
7692
|
+
creationTimestamp: number;
|
|
7693
|
+
/** The key allowed to move allocations (a bot or the curator's own key). */
|
|
7694
|
+
allocationAdmin: string;
|
|
7695
|
+
}
|
|
7696
|
+
/** One row of `/kvaults/vaults`. `address` is the VaultState account. */
|
|
7697
|
+
interface KaminoKvault {
|
|
7698
|
+
address: string;
|
|
7699
|
+
state: KaminoKvaultState;
|
|
7700
|
+
programId: string;
|
|
7701
|
+
}
|
|
7702
|
+
/** One row of `/kvaults/vaults/metrics` (and `/kvaults/<vault>/metrics`, without `kvault`). */
|
|
7703
|
+
interface KaminoKvaultMetrics {
|
|
7704
|
+
kvault?: string;
|
|
7705
|
+
/** Fractions. `apy` = `apyTheoretical` — the current allocation's rate, net of the vault's fees. */
|
|
7706
|
+
apy: string;
|
|
7707
|
+
apyTheoretical: string;
|
|
7708
|
+
apyActual: string;
|
|
7709
|
+
apy24h: string;
|
|
7710
|
+
apy7d: string;
|
|
7711
|
+
apy30d: string;
|
|
7712
|
+
apy90d: string;
|
|
7713
|
+
apy180d: string;
|
|
7714
|
+
apy365d: string;
|
|
7715
|
+
apyFarmRewards: string;
|
|
7716
|
+
apyIncentives: string;
|
|
7717
|
+
apyReservesIncentives: string;
|
|
7718
|
+
/** USD per whole underlying. */
|
|
7719
|
+
tokenPrice: string;
|
|
7720
|
+
solPrice: string;
|
|
7721
|
+
/** Human underlying. */
|
|
7722
|
+
tokensAvailable: string;
|
|
7723
|
+
tokensAvailableUsd: string;
|
|
7724
|
+
tokensInvested: string;
|
|
7725
|
+
tokensInvestedUsd: string;
|
|
7726
|
+
/** USD per whole SHARE (= tokensPerShare × tokenPrice). */
|
|
7727
|
+
sharePrice: string;
|
|
7728
|
+
/** Whole underlying per whole share — the 4626 `convertToAssets(1)`. */
|
|
7729
|
+
tokensPerShare: string;
|
|
7730
|
+
numberOfHolders: number;
|
|
7731
|
+
sharesIssued: string;
|
|
7732
|
+
cumulativeInterestEarned: string;
|
|
7733
|
+
cumulativeInterestEarnedUsd: string;
|
|
7734
|
+
interestEarnedPerSecond: string;
|
|
7735
|
+
cumulativePerformanceFees: string;
|
|
7736
|
+
cumulativeManagementFees: string;
|
|
7737
|
+
[k: string]: unknown;
|
|
7738
|
+
}
|
|
7739
|
+
/**
|
|
7740
|
+
* A kvault as an EARN VAULT row, the 4626 shape the other Solana families
|
|
7741
|
+
* emit (`LoopscaleEarnVault`, `JupiterLendEarnVault`).
|
|
7742
|
+
*
|
|
7743
|
+
* `address` is the VAULT STATE account, NOT the share mint: it is the
|
|
7744
|
+
* account every kvault instruction names (`vaultState`) and the one
|
|
7745
|
+
* pos-indexer's decoder keys a row by — market uid
|
|
7746
|
+
* `vault.kamino-kvault:solana:<vault state>`. The share a holder owns is
|
|
7747
|
+
* `shareMint`.
|
|
7748
|
+
*/
|
|
7749
|
+
interface KaminoKvaultEarnVault {
|
|
7750
|
+
provider: 'kamino-kvault';
|
|
7751
|
+
originProvider: 'kamino-kvault';
|
|
7752
|
+
chainId: string;
|
|
7753
|
+
/** The VaultState account (the decoder's key). */
|
|
7754
|
+
address: string;
|
|
7755
|
+
/** The share token a depositor holds. */
|
|
7756
|
+
shareMint: string;
|
|
7757
|
+
underlying: string;
|
|
7758
|
+
symbol: string;
|
|
7759
|
+
name: string;
|
|
7760
|
+
displayName: string;
|
|
7761
|
+
/** The admin address, base58 verbatim — kvaults publish no curator name; a label layer keyed by this address names it. */
|
|
7762
|
+
curatorName: string;
|
|
7763
|
+
/** `vaultAdminAuthority` — the curator's address (the chain-role arm). */
|
|
7764
|
+
manager: string;
|
|
7765
|
+
/** `allocationAdmin` — the key that moves allocations. */
|
|
7766
|
+
allocationAdmin: string;
|
|
7767
|
+
decimals: number;
|
|
7768
|
+
assetDecimals: number;
|
|
7769
|
+
/** Raw underlying: `tokensPerShare × sharesIssued` (idle + invested − pending fees). */
|
|
7770
|
+
totalAssets: string;
|
|
7771
|
+
/** Raw shares. */
|
|
7772
|
+
totalSupply: string;
|
|
7773
|
+
/** Raw underlying per 10^decimals shares. */
|
|
7774
|
+
convertToAssets: string;
|
|
7775
|
+
convertToShares: string;
|
|
7776
|
+
/** percent APR (`ln(1 + apy)`), net of the vault's fees. */
|
|
7777
|
+
supplyRate: number;
|
|
7778
|
+
/** percent APR from the vault farm + incentives. */
|
|
7779
|
+
rewardsRate: number;
|
|
7780
|
+
depositRate: number;
|
|
7781
|
+
asset?: GenericCurrency;
|
|
7782
|
+
priceUsd?: number;
|
|
7783
|
+
totalAssetsFormatted: number;
|
|
7784
|
+
totalAssetsUsd: number;
|
|
7785
|
+
/** Idle underlying (`tokenAvailable`), raw — what `withdrawFromAvailable` pays without touching a reserve. */
|
|
7786
|
+
liquidity: string;
|
|
7787
|
+
liquidityFormatted: number;
|
|
7788
|
+
liquidityUsd: number;
|
|
7789
|
+
sharePrice: number;
|
|
7790
|
+
sharePriceUsd: number;
|
|
7791
|
+
yieldProfile: 'yield-bearing';
|
|
7792
|
+
denomination: Denomination;
|
|
7793
|
+
logoURI?: string;
|
|
7794
|
+
/** Performance fee, PERCENT. */
|
|
7795
|
+
fee: number;
|
|
7796
|
+
managementFeePct: number;
|
|
7797
|
+
withdrawalMode: Extract<OriginWithdrawalMode, 'instant-capped'>;
|
|
7798
|
+
/** `liquidity / totalAssets` — the idle share; a withdraw also disinvests from reserves with cash. */
|
|
7799
|
+
instantLiquidityRatio: number;
|
|
7800
|
+
/** The venue's APY figures, FRACTIONS, verbatim. */
|
|
7801
|
+
apy: {
|
|
7802
|
+
current: number;
|
|
7803
|
+
actual: number;
|
|
7804
|
+
d1: number;
|
|
7805
|
+
d7: number;
|
|
7806
|
+
d30: number;
|
|
7807
|
+
d90: number;
|
|
7808
|
+
farmRewards: number;
|
|
7809
|
+
incentives: number;
|
|
7810
|
+
/** Reserve incentives — not added to `rewardsRate` (whether `apy` already counts them is not documented). */
|
|
7811
|
+
reservesIncentives: number;
|
|
7812
|
+
};
|
|
7813
|
+
holders: number;
|
|
7814
|
+
vaultFarm?: string;
|
|
7815
|
+
/** The K-Lend reserves it allocates to, with the target weight. */
|
|
7816
|
+
allocations: {
|
|
7817
|
+
reserve: string;
|
|
7818
|
+
weight: number;
|
|
7819
|
+
ctokenAllocation: string;
|
|
7820
|
+
}[];
|
|
7821
|
+
createdAt: number;
|
|
7822
|
+
minDepositAmount: string;
|
|
7823
|
+
}
|
|
7824
|
+
|
|
7825
|
+
/** The kvault program, mainnet. */
|
|
7826
|
+
declare const KVAULT_PROGRAM_ID = "KvauGMspG5k6rtzrqqn7WNn3oZdyKqLKwK2XWQ8FLjd";
|
|
7827
|
+
interface KaminoKvaultApiOptions extends HttpOptions {
|
|
7828
|
+
baseUrl?: string;
|
|
7829
|
+
maxInFlight?: number;
|
|
7830
|
+
/** Page cap for `/kvaults/vaults/metrics` (100 rows a page; 2 pages on 2026-10-02). Default 20. */
|
|
7831
|
+
maxPages?: number;
|
|
7832
|
+
}
|
|
7833
|
+
/** The two kvault routes: the roster (one GET) and the batch metrics (paged by `paginationToken`). */
|
|
7834
|
+
declare function createKaminoKvaultApi(opts?: KaminoKvaultApiOptions): {
|
|
7835
|
+
vaults: () => Promise<KaminoKvault[]>;
|
|
7836
|
+
/** Every page of the batch metrics. A page that fails fails the call — a partial metrics set would read as vaults with no APY. */
|
|
7837
|
+
metrics: () => Promise<KaminoKvaultMetrics[]>;
|
|
7838
|
+
vaultMetrics: (vault: string) => Promise<KaminoKvaultMetrics>;
|
|
7839
|
+
};
|
|
7840
|
+
type KaminoKvaultApi = ReturnType<typeof createKaminoKvaultApi>;
|
|
7841
|
+
|
|
7842
|
+
/**
|
|
7843
|
+
* A HUMAN decimal string × 10^decimals → raw bigint, exact (truncates digits
|
|
7844
|
+
* past `decimals`). `undefined` for anything that is not a plain decimal.
|
|
7845
|
+
*/
|
|
7846
|
+
declare function decimalStringToRaw(s: string | number | undefined | null, decimals: number): bigint | undefined;
|
|
7847
|
+
/**
|
|
7848
|
+
* One kvault + its metrics → an earn row. `undefined` when the metrics row
|
|
7849
|
+
* is missing (no share price, no APY: the row would be numbers we do not
|
|
7850
|
+
* have). USD is the venue's `tokenPrice` — Kamino's oracle view of the
|
|
7851
|
+
* underlying — and is left absent when it reads ≤ 0.
|
|
7852
|
+
*/
|
|
7853
|
+
declare function convertKaminoKvault(v: KaminoKvault, m: KaminoKvaultMetrics | undefined, opts?: {
|
|
7854
|
+
tokenList?: {
|
|
7855
|
+
[mint: string]: GenericCurrency;
|
|
7856
|
+
};
|
|
7857
|
+
}): KaminoKvaultEarnVault | undefined;
|
|
7858
|
+
interface FetchKaminoKvaultsOptions extends KaminoKvaultApiOptions {
|
|
7859
|
+
tokenList?: {
|
|
7860
|
+
[mint: string]: GenericCurrency;
|
|
7861
|
+
};
|
|
7862
|
+
/** Pre-fetched responses (tests, or a caller that already holds them). */
|
|
7863
|
+
vaults?: KaminoKvault[];
|
|
7864
|
+
metrics?: KaminoKvaultMetrics[];
|
|
7865
|
+
/** Serve vaults with no shares outstanding. Default false. */
|
|
7866
|
+
includeEmpty?: boolean;
|
|
7867
|
+
}
|
|
7868
|
+
/**
|
|
7869
|
+
* Every Kamino kvault as an earn row: 2–3 GETs (roster + paged metrics),
|
|
7870
|
+
* zero RPC. A roster vault with no metrics row is skipped and named; the
|
|
7871
|
+
* metrics' extra vaults (not in the roster) are ignored.
|
|
7872
|
+
*/
|
|
7873
|
+
declare function fetchKaminoKvaults(opts?: FetchKaminoKvaultsOptions): Promise<KaminoKvaultEarnVault[]>;
|
|
7874
|
+
|
|
7249
7875
|
/**
|
|
7250
7876
|
* Liquid-staking tokens (LSTs) as EARN VAULT rows — the 4626
|
|
7251
7877
|
* (`FluidFToken`) shape `JupiterLendEarnVault` and `SolsticeVault` share, so
|
|
@@ -7593,7 +8219,7 @@ declare function fetchLstVaults(opts?: FetchLstVaultsOptions): Promise<LstEarnVa
|
|
|
7593
8219
|
*/
|
|
7594
8220
|
|
|
7595
8221
|
/** The origin's `vaults_latest.provider` keys a Solana row takes. */
|
|
7596
|
-
type OriginVaultProvider = 'savings' | 'lst' | 'jupiter-lend' | 'loopscale';
|
|
8222
|
+
type OriginVaultProvider = 'savings' | 'lst' | 'jupiter-lend' | 'loopscale' | 'kamino-kvault';
|
|
7597
8223
|
/** yield-tracer `CommonVaultFields` — one `vaults_latest` row (and its snapshot). */
|
|
7598
8224
|
interface OriginVaultCommon {
|
|
7599
8225
|
chainId: string;
|
|
@@ -7696,6 +8322,12 @@ interface OriginJupiterLendMeta {
|
|
|
7696
8322
|
interface OriginLoopscaleMeta {
|
|
7697
8323
|
vaultAccount: string;
|
|
7698
8324
|
strategy: string;
|
|
8325
|
+
/** The curator's ADDRESS (the vault's `manager`), base58 verbatim — `vault_loopscale_meta.curator`. */
|
|
8326
|
+
manager: string;
|
|
8327
|
+
/** The curator's display name as the venue publishes it (also the common `curatorName`). */
|
|
8328
|
+
managerName?: string;
|
|
8329
|
+
/** The curator's logo, verbatim. */
|
|
8330
|
+
managerImage?: string;
|
|
7699
8331
|
grossRate: number;
|
|
7700
8332
|
venueApy?: number;
|
|
7701
8333
|
interestFee: number;
|
|
@@ -7718,6 +8350,31 @@ interface OriginLoopscaleMeta {
|
|
|
7718
8350
|
rewardsSchedules: LoopscaleEarnVault['rewardsSchedules'];
|
|
7719
8351
|
description?: string;
|
|
7720
8352
|
}
|
|
8353
|
+
/**
|
|
8354
|
+
* `vault_kamino_kvault_meta` (NEW — yield-tracer needs the table and the
|
|
8355
|
+
* provider key). The row's `vaultAddress` is the VAULT STATE account (what
|
|
8356
|
+
* every kvault instruction and pos-indexer's decoder name), so the share
|
|
8357
|
+
* mint rides here.
|
|
8358
|
+
*/
|
|
8359
|
+
interface OriginKaminoKvaultMeta {
|
|
8360
|
+
shareMint: string;
|
|
8361
|
+
/** `vaultAdminAuthority` — the curator's address, base58 verbatim. */
|
|
8362
|
+
manager: string;
|
|
8363
|
+
allocationAdmin: string;
|
|
8364
|
+
/** Percent. The PERFORMANCE fee is the common `fee`. */
|
|
8365
|
+
managementFeePct: number;
|
|
8366
|
+
convertToAssets: string;
|
|
8367
|
+
convertToShares: string;
|
|
8368
|
+
withdrawalMode: OriginWithdrawalMode;
|
|
8369
|
+
instantLiquidityRatio: number;
|
|
8370
|
+
/** FRACTIONS, verbatim from `/kvaults/vaults/metrics`. */
|
|
8371
|
+
apy: KaminoKvaultEarnVault['apy'];
|
|
8372
|
+
holders: number;
|
|
8373
|
+
vaultFarm?: string;
|
|
8374
|
+
allocations: KaminoKvaultEarnVault['allocations'];
|
|
8375
|
+
createdAt: number;
|
|
8376
|
+
minDepositAmount: string;
|
|
8377
|
+
}
|
|
7721
8378
|
type OriginSavingsRow = OriginVaultCommon & {
|
|
7722
8379
|
provider: 'savings';
|
|
7723
8380
|
metaTable: 'vault_savings_meta';
|
|
@@ -7738,8 +8395,13 @@ type OriginLoopscaleRow = OriginVaultCommon & {
|
|
|
7738
8395
|
metaTable: 'vault_loopscale_meta';
|
|
7739
8396
|
meta: OriginLoopscaleMeta;
|
|
7740
8397
|
};
|
|
8398
|
+
type OriginKaminoKvaultRow = OriginVaultCommon & {
|
|
8399
|
+
provider: 'kamino-kvault';
|
|
8400
|
+
metaTable: 'vault_kamino_kvault_meta';
|
|
8401
|
+
meta: OriginKaminoKvaultMeta;
|
|
8402
|
+
};
|
|
7741
8403
|
/** One `vaults_latest` row + its meta — structurally a yield-tracer `VaultIngestRow` (`metaTable` is extra and ignored by it). */
|
|
7742
|
-
type OriginVaultRow = OriginSavingsRow | OriginLstRow | OriginJupiterLendRow | OriginLoopscaleRow;
|
|
8404
|
+
type OriginVaultRow = OriginSavingsRow | OriginLstRow | OriginJupiterLendRow | OriginLoopscaleRow | OriginKaminoKvaultRow;
|
|
7743
8405
|
/**
|
|
7744
8406
|
* The `exponent_vaults_latest` row — yield-tracer's `PendleVaultRow`
|
|
7745
8407
|
* (`buildPendleRow`'s output) plus the three Exponent columns. Every column
|
|
@@ -7795,10 +8457,17 @@ declare function lstOriginRow(r: LstEarnVault): OriginLstRow;
|
|
|
7795
8457
|
declare function jupiterLendOriginRow(r: JupiterLendEarnVault): OriginJupiterLendRow;
|
|
7796
8458
|
/** A curated Loopscale Vault → `loopscale`: `vaultAddress` = the LP mint, the vault account in the meta. */
|
|
7797
8459
|
declare function loopscaleOriginRow(r: LoopscaleEarnVault): OriginLoopscaleRow;
|
|
8460
|
+
/**
|
|
8461
|
+
* A Kamino kvault → `kamino-kvault`. `vaultAddress` = the VAULT STATE (the
|
|
8462
|
+
* uid pos-indexer's decoder builds, `vault.kamino-kvault:solana:<vault>`);
|
|
8463
|
+
* the share mint is `meta.shareMint` and `shareAsset`. Fee = the
|
|
8464
|
+
* performance fee in percent.
|
|
8465
|
+
*/
|
|
8466
|
+
declare function kaminoKvaultOriginRow(r: KaminoKvaultEarnVault): OriginKaminoKvaultRow;
|
|
7798
8467
|
/** An Exponent PT → `exponent_vaults_latest` (the `buildPendleRow` leg + three columns). */
|
|
7799
8468
|
declare function exponentOriginRow(r: ExponentPtMarket): ExponentOriginRow;
|
|
7800
8469
|
/** Any Solana 4626-shaped earn row → its origin row, by family. */
|
|
7801
|
-
declare function toOriginVaultRow(r: SolsticeVault | HumaVault | LstEarnVault | JupiterLendEarnVault | LoopscaleEarnVault): OriginVaultRow;
|
|
8470
|
+
declare function toOriginVaultRow(r: SolsticeVault | HumaVault | LstEarnVault | JupiterLendEarnVault | LoopscaleEarnVault | KaminoKvaultEarnVault): OriginVaultRow;
|
|
7802
8471
|
|
|
7803
8472
|
interface KaminoOracleEntryOptions extends KaminoApiOptions {
|
|
7804
8473
|
/** unix seconds; defaults to now — the reference for each price's own `maxAgeInSeconds`. */
|
|
@@ -7855,23 +8524,35 @@ declare function fetchJupiterLendOracleEntries(opts?: JupiterLendApiOptions): Pr
|
|
|
7855
8524
|
[lender: string]: OraclePriceEntry[];
|
|
7856
8525
|
}>;
|
|
7857
8526
|
|
|
7858
|
-
|
|
7859
|
-
* Save's reserve prices — the stored `liquidity.marketPrice` of every served
|
|
7860
|
-
* reserve, USD × 1e18 as of the reserve's last refresh (minutes old on
|
|
7861
|
-
* touched reserves; can be DAYS old on a dormant one, hence `feedUpdatedAt`
|
|
7862
|
-
* is absent and `description` carries the slot). Pyth pull for the majors,
|
|
7863
|
-
* Switchboard On-Demand for the tail; every SOL-LST is the SOL feed × the
|
|
7864
|
-
* reserve's `scaledPriceOffsetBPS` dial, and says so.
|
|
7865
|
-
*
|
|
7866
|
-
* This is the Solana side's second price source after Kamino's, and the
|
|
7867
|
-
* first to cover the SOL-LST basket (mSOL, bSOL, JitoSOL, JupSOL, saveSOL …).
|
|
7868
|
-
*/
|
|
7869
|
-
declare function fetchSaveOracleEntries(opts?: FetchSavePublicOptions & {
|
|
8527
|
+
interface FetchSaveOracleOptions extends FetchSavePublicOptions {
|
|
7870
8528
|
/** Reuse an already-fetched public response instead of fetching. */
|
|
7871
8529
|
publicData?: {
|
|
7872
8530
|
[lender: string]: SavePublicResponse;
|
|
7873
8531
|
};
|
|
7874
|
-
|
|
8532
|
+
/** For the feed reads; the package's default public pool otherwise. */
|
|
8533
|
+
rpc?: SvmRpc;
|
|
8534
|
+
/** `false` = the stored reserve price only (no RPC). Default true. */
|
|
8535
|
+
live?: boolean;
|
|
8536
|
+
}
|
|
8537
|
+
/**
|
|
8538
|
+
* Save's reserve prices, read off the FEEDS the reserves name: the Pyth
|
|
8539
|
+
* `PriceUpdateV2` (`pythOracle`) or the Switchboard account
|
|
8540
|
+
* (`switchboardOracle` — On-Demand pull feed, or a V2 aggregator on old
|
|
8541
|
+
* reserves), plus the legacy Pyth price account on a few. Of the reserve's
|
|
8542
|
+
* readable feeds the most recently updated one is used — the program reads
|
|
8543
|
+
* Pyth first and falls back to Switchboard when Pyth is stale, so the
|
|
8544
|
+
* freshest feed is the one a refresh would land on. Every SOL-LST is the SOL
|
|
8545
|
+
* feed × the reserve's `scaledPriceOffsetBPS` dial, applied here as the
|
|
8546
|
+
* program does (`price × (1 + bps / 1e4)`).
|
|
8547
|
+
*
|
|
8548
|
+
* `feedUpdatedAt` is the FEED's own timestamp: a live feed reads fresh even
|
|
8549
|
+
* when the reserve has not been refreshed for days, and a dead feed (a
|
|
8550
|
+
* Switchboard V2 aggregator, an uncranked pull feed) reads as old as it is.
|
|
8551
|
+
* When no feed decodes (no RPC, an unknown owner), the reserve's STORED
|
|
8552
|
+
* `liquidity.marketPrice` is served as before — with no `feedUpdatedAt`,
|
|
8553
|
+
* because its age is the reserve's, not a feed's.
|
|
8554
|
+
*/
|
|
8555
|
+
declare function fetchSaveOracleEntries(opts?: FetchSaveOracleOptions): Promise<{
|
|
7875
8556
|
[lender: string]: OraclePriceEntry[];
|
|
7876
8557
|
}>;
|
|
7877
8558
|
|
|
@@ -7883,6 +8564,8 @@ interface FetchOraclePricesOptions extends KaminoApiOptions {
|
|
|
7883
8564
|
};
|
|
7884
8565
|
/** Restrict to these fetchers (`['kamino']`). */
|
|
7885
8566
|
onlyFetchers?: string[];
|
|
8567
|
+
/** The pool for the on-chain reads (Save's feeds, Project 0's banks + feeds); the package's default public pool otherwise. */
|
|
8568
|
+
rpc?: SvmRpc;
|
|
7886
8569
|
}
|
|
7887
8570
|
/**
|
|
7888
8571
|
* margin-fetcher's `fetchOraclePrices`, reduced: per chain, run every
|
|
@@ -7891,7 +8574,8 @@ interface FetchOraclePricesOptions extends KaminoApiOptions {
|
|
|
7891
8574
|
* `failedChains`, never silently empty — the yield-tracer cron logs it.
|
|
7892
8575
|
*
|
|
7893
8576
|
* Five fetchers: Kamino (its API's oracle prices), Jupiter Lend (the
|
|
7894
|
-
* vault oracle per vault), Save (each reserve's
|
|
8577
|
+
* vault oracle per vault), Save (each reserve's Pyth / Switchboard feed,
|
|
8578
|
+
* read live; the stored `marketPrice` when no feed decodes),
|
|
7895
8579
|
* Loopscale (USD derived from its API — the only reader of the RWA
|
|
7896
8580
|
* collaterals its book is made of) and Project 0 (the bank's Pyth feed ×
|
|
7897
8581
|
* its stake-pool rate, live — the only reader of the native-stake tokens).
|
|
@@ -8885,4 +9569,4 @@ declare function loopscaleTermAdapter(m: LoopscaleMarketMeta, term?: LoopscaleTe
|
|
|
8885
9569
|
*/
|
|
8886
9570
|
declare function project0TermAdapter(row: P0PoolData, group?: P0GroupMeta): DeepPartial<TermSheet>;
|
|
8887
9571
|
|
|
8888
|
-
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 FetchKaminoPublicOptions, type FetchKaminoUserOnchainOptions, type FetchKaminoUserOptions, type FetchLenderAllOptions, type FetchLoopscaleEarnVaultsOptions, type FetchLoopscalePublicOptions, type FetchLoopscaleUserOptions, type FetchLstVaultsOptions, type FetchOraclePricesOptions, type FetchP0PublicOptions, type FetchP0UserOptions, 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_FACTOR_SCALE, JL_ORACLE_DECIMALS, JL_ORACLE_SCALE, 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_FLASHLOAN_IDL, JUP_FLASHLOAN_PROGRAMS, JUP_LIQUIDITY_PROGRAMS, 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, type KaminoApi, type KaminoApiOptions, type KaminoApiUserExt, type KaminoApyWindows, type KaminoBorrowReserveTerms, type KaminoCapBucket, type KaminoCollateralReserve, type KaminoCompoundMetadata, type KaminoConfigEntry, 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 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 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, convertKaminoLoans, convertKaminoMarket, convertKaminoOraclePrices, convertKaminoReserve, convertLoopscalePair, convertLoopscaleUser, convertLoopscaleVault, convertLst, convertP0Bank, convertP0Group, convertSaveMarket, convertSaveReserve, convertTranche, createExponentApi, createJupiterLendApi, createKaminoApi, createLimiter, createLoopscaleApi, createMarketUid, createP0Api, createPacer, createSaveApi, createSolsticeAppApi, createWithSeed, decimalStringToI80F48, 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, 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, isLenderBrand, isLiveVault, isNullKey, isP0FixedSetup, isP0U64Max, isSaveBorrowable, isSaveUnrealizable, isStablecoinSymbol, isStaleKaminoPrice, isSyntheticQuoteMint, isU64Max, isUncapped, jlOraclePriceInBorrow, jlOracleToFluidRaw, joinableBatch, juniorUnlockSharePda, jupFlashBorrowPosition, jupFlashloanAdmin, jupLiquidity, jupLiquidityReserve, jupLiquidityVault, jupRateModel, jupiterLendCurrency, jupiterLendOriginRow, jupiterLendTermAdapter, kaminoAsset, kaminoBorrowFactorToRow, kaminoCloseFactor, kaminoDefaultEntry, kaminoGroupLabel, 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, readJupFlashAssets, readJupFlashAvailable, readJupFlashloanAdmin, 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 };
|