@1delta/margin-fetcher-sol 0.0.3 → 0.0.5
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.mts +122 -9
- package/dist/index.d.ts +122 -9
- package/dist/index.js +155 -10
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +148 -10
- package/dist/index.mjs.map +1 -1
- package/package.json +5 -5
package/dist/index.js
CHANGED
|
@@ -204,6 +204,8 @@ __export(index_exports, {
|
|
|
204
204
|
PROJECT_0_PROFILE_ID: () => PROJECT_0_PROFILE_ID,
|
|
205
205
|
PYTH_PRICE_UPDATE_V2_DISCRIMINATOR: () => PYTH_PRICE_UPDATE_V2_DISCRIMINATOR,
|
|
206
206
|
PYTH_RECEIVER_PROGRAM: () => PYTH_RECEIVER_PROGRAM,
|
|
207
|
+
SANCTUM_MULTI_STAKE_POOL_PROGRAM: () => SANCTUM_MULTI_STAKE_POOL_PROGRAM,
|
|
208
|
+
SANCTUM_SPL_STAKE_POOL_PROGRAM: () => SANCTUM_SPL_STAKE_POOL_PROGRAM,
|
|
207
209
|
SAVE_API_BASE: () => SAVE_API_BASE,
|
|
208
210
|
SAVE_CREATOR: () => SAVE_CREATOR,
|
|
209
211
|
SAVE_DEFAULT_AVG_SLOT_SECONDS: () => SAVE_DEFAULT_AVG_SLOT_SECONDS,
|
|
@@ -245,6 +247,8 @@ __export(index_exports, {
|
|
|
245
247
|
SPL_STAKE_POOL_PROGRAM: () => SPL_STAKE_POOL_PROGRAM,
|
|
246
248
|
STABLECOIN_SYMBOLS: () => STABLECOIN_SYMBOLS,
|
|
247
249
|
STAKE_ACCOUNT_RENT_EXEMPT_LAMPORTS: () => STAKE_ACCOUNT_RENT_EXEMPT_LAMPORTS,
|
|
250
|
+
STAKE_POOL_DEPOSIT_ROSTER: () => STAKE_POOL_DEPOSIT_ROSTER,
|
|
251
|
+
STAKE_POOL_PROGRAMS: () => STAKE_POOL_PROGRAMS,
|
|
248
252
|
SVM_LENDERS: () => import_lender_registry2.SVM_LENDERS,
|
|
249
253
|
TERM_PROFILES: () => TERM_PROFILES,
|
|
250
254
|
WSOL_MINT: () => WSOL_MINT,
|
|
@@ -332,6 +336,7 @@ __export(index_exports, {
|
|
|
332
336
|
decodeVestingSchedule: () => decodeVestingSchedule,
|
|
333
337
|
decodeYieldPool: () => decodeYieldPool,
|
|
334
338
|
denominationOf: () => denominationOf,
|
|
339
|
+
depositSolOut: () => depositSolOut,
|
|
335
340
|
deriveLayerTotals: () => deriveLayerTotals,
|
|
336
341
|
deriveLoopscalePrices: () => deriveLoopscalePrices,
|
|
337
342
|
deriveP0Mode: () => deriveP0Mode,
|
|
@@ -492,6 +497,7 @@ __export(index_exports, {
|
|
|
492
497
|
p0MultipointBaseRate: () => p0MultipointBaseRate,
|
|
493
498
|
p0NeedsVenueMultiplier: () => p0NeedsVenueMultiplier,
|
|
494
499
|
p0Rates: () => p0Rates,
|
|
500
|
+
p0RewardsOf: () => p0RewardsOf,
|
|
495
501
|
p0StateSemantics: () => p0StateSemantics,
|
|
496
502
|
p0SupplyCapTokens: () => p0SupplyCapTokens,
|
|
497
503
|
p0Utilization: () => p0Utilization,
|
|
@@ -554,6 +560,7 @@ __export(index_exports, {
|
|
|
554
560
|
seniorCooldownPdas: () => seniorCooldownPdas,
|
|
555
561
|
settlementBatchPdas: () => settlementBatchPdas,
|
|
556
562
|
solsticeOriginRow: () => solsticeOriginRow,
|
|
563
|
+
stakePoolDepositEntry: () => stakePoolDepositEntry,
|
|
557
564
|
strategyMode: () => strategyMode,
|
|
558
565
|
strategyNameOf: () => strategyNameOf,
|
|
559
566
|
strategyPdas: () => strategyPdas,
|
|
@@ -8438,9 +8445,10 @@ var LENDING_MARKET = {
|
|
|
8438
8445
|
};
|
|
8439
8446
|
var key = (b, off) => (0, import_svm_kit.encodeBase58)(b.subarray(off, off + 32));
|
|
8440
8447
|
var NULL_PUBKEY = "11111111111111111111111111111111";
|
|
8448
|
+
var NULL_SENTINEL = "nu11111111111111111111111111111111111111111";
|
|
8441
8449
|
var optionalKey = (b, off, name) => {
|
|
8442
8450
|
const k = key(b, off);
|
|
8443
|
-
return k === NULL_PUBKEY ? {} : { [name]: k };
|
|
8451
|
+
return k === NULL_PUBKEY || k === NULL_SENTINEL ? {} : { [name]: k };
|
|
8444
8452
|
};
|
|
8445
8453
|
var u64 = (b, off) => new DataView(b.buffer, b.byteOffset).getBigUint64(off, true);
|
|
8446
8454
|
var i64 = (b, off) => new DataView(b.buffer, b.byteOffset).getBigInt64(off, true);
|
|
@@ -20627,7 +20635,7 @@ function createP0Api(opts = {}) {
|
|
|
20627
20635
|
return {
|
|
20628
20636
|
banks: () => get("/banks/db"),
|
|
20629
20637
|
banksMeta: () => get("/banks/meta"),
|
|
20630
|
-
/** bank → `{ campaigns: [...] }
|
|
20638
|
+
/** bank → `{ campaigns: [...] }` — the reward campaigns (`p0RewardsOf`). */
|
|
20631
20639
|
emissions: () => get("/emissions"),
|
|
20632
20640
|
luts: () => get("/luts")
|
|
20633
20641
|
};
|
|
@@ -36080,8 +36088,17 @@ function p0CurveKnots(c) {
|
|
|
36080
36088
|
// src/vaults/lst/stakePool.ts
|
|
36081
36089
|
var import_svm_kit10 = require("@1delta/svm-kit");
|
|
36082
36090
|
var SPL_STAKE_POOL_PROGRAM = "SPoo1Ku8WFXoNDMHPsrGSTSG1Y47rzgn41SLUNakuHy";
|
|
36091
|
+
var SANCTUM_SPL_STAKE_POOL_PROGRAM = "SP12tWFxD9oJsVWNavTTBZvMbA6gkAmxtVgxdqvyvhY";
|
|
36092
|
+
var SANCTUM_MULTI_STAKE_POOL_PROGRAM = "SPMBzsVUuoHA4Jm6KunbsotaahvVikZs1JyTW6iJvbn";
|
|
36093
|
+
var STAKE_POOL_PROGRAMS = [
|
|
36094
|
+
SPL_STAKE_POOL_PROGRAM,
|
|
36095
|
+
SANCTUM_SPL_STAKE_POOL_PROGRAM,
|
|
36096
|
+
SANCTUM_MULTI_STAKE_POOL_PROGRAM
|
|
36097
|
+
];
|
|
36083
36098
|
var OFFSET_RESERVE_STAKE = 130;
|
|
36084
36099
|
var OFFSET_POOL_MINT = 162;
|
|
36100
|
+
var OFFSET_MANAGER_FEE_ACCOUNT = 194;
|
|
36101
|
+
var OFFSET_TOKEN_PROGRAM = 226;
|
|
36085
36102
|
var OFFSET_TOTAL_LAMPORTS = 258;
|
|
36086
36103
|
var OFFSET_POOL_TOKEN_SUPPLY = 266;
|
|
36087
36104
|
var OFFSET_LAST_UPDATE_EPOCH = 274;
|
|
@@ -36111,6 +36128,12 @@ function decodeStakePool(data) {
|
|
|
36111
36128
|
reserveStake: (0, import_svm_kit10.encodeBase58)(
|
|
36112
36129
|
data.slice(OFFSET_RESERVE_STAKE, OFFSET_RESERVE_STAKE + 32)
|
|
36113
36130
|
),
|
|
36131
|
+
managerFeeAccount: (0, import_svm_kit10.encodeBase58)(
|
|
36132
|
+
data.slice(OFFSET_MANAGER_FEE_ACCOUNT, OFFSET_MANAGER_FEE_ACCOUNT + 32)
|
|
36133
|
+
),
|
|
36134
|
+
tokenProgramId: (0, import_svm_kit10.encodeBase58)(
|
|
36135
|
+
data.slice(OFFSET_TOKEN_PROGRAM, OFFSET_TOKEN_PROGRAM + 32)
|
|
36136
|
+
),
|
|
36114
36137
|
totalLamports: u642(data, OFFSET_TOTAL_LAMPORTS),
|
|
36115
36138
|
poolTokenSupply: u642(data, OFFSET_POOL_TOKEN_SUPPLY),
|
|
36116
36139
|
lastUpdateEpoch: u642(data, OFFSET_LAST_UPDATE_EPOCH)
|
|
@@ -36129,13 +36152,15 @@ function decodeStakePool(data) {
|
|
|
36129
36152
|
r.u8();
|
|
36130
36153
|
const solDepositAuthority = readOptionPubkey(r);
|
|
36131
36154
|
const solDeposit = readFee(r);
|
|
36132
|
-
r.u8();
|
|
36133
|
-
|
|
36155
|
+
const solReferralFee = r.u8();
|
|
36156
|
+
const solWithdrawAuthority = readOptionPubkey(r);
|
|
36134
36157
|
const solWithdrawal = readFee(r);
|
|
36135
36158
|
skipFutureFee(r);
|
|
36136
36159
|
out.lastEpochPoolTokenSupply = r.u64();
|
|
36137
36160
|
out.lastEpochTotalLamports = r.u64();
|
|
36138
36161
|
out.solDepositAuthority = solDepositAuthority;
|
|
36162
|
+
out.solReferralFee = solReferralFee;
|
|
36163
|
+
out.solWithdrawAuthority = solWithdrawAuthority;
|
|
36139
36164
|
out.fees = {
|
|
36140
36165
|
epoch,
|
|
36141
36166
|
stakeDeposit,
|
|
@@ -36150,11 +36175,11 @@ function decodeStakePool(data) {
|
|
|
36150
36175
|
var feeBps = (f) => f.denominator === 0n ? 0 : Number(f.numerator * 10000n / f.denominator);
|
|
36151
36176
|
async function readStakePools(rpc, stakePools, opts = {}) {
|
|
36152
36177
|
const { slot, accounts } = await rpc.readAccounts(stakePools, { encoding: "base64" });
|
|
36153
|
-
const
|
|
36178
|
+
const programs = opts.programId ? [opts.programId] : STAKE_POOL_PROGRAMS;
|
|
36154
36179
|
const pools = accounts.map((a) => {
|
|
36155
|
-
if (!a || a.owner
|
|
36180
|
+
if (!a || !programs.includes(a.owner)) return null;
|
|
36156
36181
|
try {
|
|
36157
|
-
return decodeStakePool((0, import_svm_kit10.fromBase64)(a.data[0]));
|
|
36182
|
+
return { ...decodeStakePool((0, import_svm_kit10.fromBase64)(a.data[0])), program: a.owner };
|
|
36158
36183
|
} catch {
|
|
36159
36184
|
return null;
|
|
36160
36185
|
}
|
|
@@ -36598,6 +36623,26 @@ function p0EmodeRoster(banks, symbolOf = (b) => b.tokenSymbol ?? b.mint.slice(0,
|
|
|
36598
36623
|
}
|
|
36599
36624
|
return { tags, unrepresented };
|
|
36600
36625
|
}
|
|
36626
|
+
function p0RewardsOf(bank, campaigns) {
|
|
36627
|
+
const by = /* @__PURE__ */ new Map();
|
|
36628
|
+
for (const c of campaigns ?? []) {
|
|
36629
|
+
if (c.bankAddresses?.length && !c.bankAddresses.includes(bank)) continue;
|
|
36630
|
+
const mint = c.rewardMints?.[0];
|
|
36631
|
+
const apr = Number(c.rate) * 100;
|
|
36632
|
+
if (!mint || !Number.isFinite(apr) || apr <= 0) continue;
|
|
36633
|
+
const side = c.rateBasis === "deposits" ? "supply" : c.rateBasis === "borrows" || c.rateBasis === "liabilities" ? "borrow" : null;
|
|
36634
|
+
if (!side) continue;
|
|
36635
|
+
const e = by.get(mint) ?? { supply: 0, borrow: 0 };
|
|
36636
|
+
e[side] += apr;
|
|
36637
|
+
by.set(mint, e);
|
|
36638
|
+
}
|
|
36639
|
+
return [...by].map(([asset, e]) => ({
|
|
36640
|
+
asset,
|
|
36641
|
+
depositRate: e.supply,
|
|
36642
|
+
variableBorrowRate: e.borrow,
|
|
36643
|
+
stableBorrowRate: 0
|
|
36644
|
+
}));
|
|
36645
|
+
}
|
|
36601
36646
|
var wrappedName = (tag) => tag === P0_ASSET_TAG.staked ? "staked" : tag === P0_ASSET_TAG.kamino ? "kamino" : tag === P0_ASSET_TAG.drift ? "drift" : tag === P0_ASSET_TAG.solend ? "solend" : tag === P0_ASSET_TAG.juplend ? "juplend" : null;
|
|
36602
36647
|
var p0NeedsVenueMultiplier = (b) => b.config.assetTag >= P0_ASSET_TAG.kamino;
|
|
36603
36648
|
var p0BankRef = (b) => ({
|
|
@@ -36807,7 +36852,7 @@ function convertP0Bank(inp, ctx) {
|
|
|
36807
36852
|
variableBorrowRate: wrapped ? 0 : rates.borrowAprPercent,
|
|
36808
36853
|
stableBorrowRate: 0,
|
|
36809
36854
|
intrinsicYield: inp.venue?.supplyAprPercent ?? 0,
|
|
36810
|
-
rewards:
|
|
36855
|
+
rewards: p0RewardsOf(b.address, inp.campaigns),
|
|
36811
36856
|
decimals,
|
|
36812
36857
|
config,
|
|
36813
36858
|
collateralActive,
|
|
@@ -36897,7 +36942,12 @@ function convertP0Group(inp) {
|
|
|
36897
36942
|
continue;
|
|
36898
36943
|
}
|
|
36899
36944
|
const row = convertP0Bank(
|
|
36900
|
-
{
|
|
36945
|
+
{
|
|
36946
|
+
bank: b,
|
|
36947
|
+
price: inp.prices?.[b.address],
|
|
36948
|
+
venue,
|
|
36949
|
+
campaigns: inp.emissions?.[b.address]?.campaigns
|
|
36950
|
+
},
|
|
36901
36951
|
{
|
|
36902
36952
|
lenderKey,
|
|
36903
36953
|
group: g,
|
|
@@ -36951,6 +37001,12 @@ async function fetchProject0Public(opts = {}) {
|
|
|
36951
37001
|
const source = opts.source ?? "chain";
|
|
36952
37002
|
const roster = opts.roster ?? "scan";
|
|
36953
37003
|
const rpc = source === "chain" || roster === "scan" || !opts.prices?.cacheOnly ? opts.rpc ?? (0, import_svm_kit13.createSvmRpc)() : opts.rpc;
|
|
37004
|
+
const emissionsP = opts.emissions === false ? Promise.resolve(void 0) : opts.emissions ? Promise.resolve(opts.emissions) : api.emissions().catch((e) => {
|
|
37005
|
+
console.warn(
|
|
37006
|
+
`[project0] /api/emissions failed, rows served without rewards: ${e?.message ?? e}`
|
|
37007
|
+
);
|
|
37008
|
+
return void 0;
|
|
37009
|
+
});
|
|
36954
37010
|
const out = {};
|
|
36955
37011
|
for (const group of groups) {
|
|
36956
37012
|
let banks = [];
|
|
@@ -37029,7 +37085,8 @@ async function fetchProject0Public(opts = {}) {
|
|
|
37029
37085
|
meta,
|
|
37030
37086
|
tokenList: opts.tokenList,
|
|
37031
37087
|
slot,
|
|
37032
|
-
includeDead: opts.includeDead
|
|
37088
|
+
includeDead: opts.includeDead,
|
|
37089
|
+
emissions: await emissionsP
|
|
37033
37090
|
});
|
|
37034
37091
|
if (!Object.keys(conv.data).length) {
|
|
37035
37092
|
console.warn(`[project0] group ${group}: no banks served`);
|
|
@@ -37541,6 +37598,8 @@ async function fetchJupiterPrices(mints, tokenList = {}, opts = {}) {
|
|
|
37541
37598
|
for (const [mint, r] of Object.entries(res ?? {})) {
|
|
37542
37599
|
const p = num(r?.usdPrice);
|
|
37543
37600
|
if (!(p > 0)) continue;
|
|
37601
|
+
if (opts.minLiquidityUsd !== void 0 && !(num(r?.liquidity) >= opts.minLiquidityUsd))
|
|
37602
|
+
continue;
|
|
37544
37603
|
byMint[mint] = p;
|
|
37545
37604
|
const stock = num(r?.stockData?.price);
|
|
37546
37605
|
if (stock > 0) stockPriceByMint[mint] = stock;
|
|
@@ -65330,6 +65389,7 @@ async function readHumaChainState(rpc, pool = HUMA_POOL) {
|
|
|
65330
65389
|
mint: HUMA_PST_MINT,
|
|
65331
65390
|
assets: state.mode_states[classicIdx]?.assets ?? 0n,
|
|
65332
65391
|
cumulativeYields: state.mode_states[classicIdx]?.cumulative_yields ?? 0n,
|
|
65392
|
+
assetsRefreshedAt: state.mode_states[classicIdx]?.assets_refreshed_at ?? 0n,
|
|
65333
65393
|
supply: mintSupply2(mintData),
|
|
65334
65394
|
liquidAssetsDeployed: state.liquid_assets_deployed,
|
|
65335
65395
|
poolCash,
|
|
@@ -65976,6 +66036,84 @@ async function fetchLstVaults(opts = {}) {
|
|
|
65976
66036
|
});
|
|
65977
66037
|
}
|
|
65978
66038
|
|
|
66039
|
+
// src/vaults/lst/depositSol.ts
|
|
66040
|
+
var STAKE_POOL_DEPOSIT_ROSTER = [
|
|
66041
|
+
{
|
|
66042
|
+
symbol: "JitoSOL",
|
|
66043
|
+
mint: "J1toso1uCk3RLmjorhTtrVwY9HJ7X8V9yYac6Y7kGCPn",
|
|
66044
|
+
stakePool: "Jito4APyf642JPZPx3hGc6WWJ8zPKtRbRs4P815Awbb",
|
|
66045
|
+
program: SPL_STAKE_POOL_PROGRAM,
|
|
66046
|
+
lookupTable: "9v1qSjEzDQ6J4RxzGRXVVyD1CeDTwv4vdDYADsRB7sjY"
|
|
66047
|
+
},
|
|
66048
|
+
{
|
|
66049
|
+
symbol: "bSOL",
|
|
66050
|
+
mint: "bSo13r4TkiE4KumL71LsHTPpL2euBYLFx6h9HP3piy1",
|
|
66051
|
+
stakePool: "stk9ApL5HeVAwPLr3TLhDXdZS8ptVu7zp6ov8HFDuMi",
|
|
66052
|
+
program: SPL_STAKE_POOL_PROGRAM,
|
|
66053
|
+
lookupTable: "2QRB1SxadngWnqKkEYcSzwPZQnmBgqu5LDD8xdmaNZZD"
|
|
66054
|
+
},
|
|
66055
|
+
{
|
|
66056
|
+
symbol: "vSOL",
|
|
66057
|
+
mint: "vSoLxydx6akxyMD9XEcPvGYNGq6Nn66oqVb3UkGkei7",
|
|
66058
|
+
stakePool: "Fu9BYC6tWBo1KMKaP3CFoKfRhqv9akmy3DuYwnCyWiyC",
|
|
66059
|
+
program: SPL_STAKE_POOL_PROGRAM,
|
|
66060
|
+
lookupTable: "9nXBzkk2dPk41DXWgYjNmDkz65HWKpzJCUQKXVhFTUnE"
|
|
66061
|
+
},
|
|
66062
|
+
{
|
|
66063
|
+
symbol: "BNSOL",
|
|
66064
|
+
mint: "BNso1VUJnh4zcfpZa6986Ea66P6TCp59hvtNJ8b1X85",
|
|
66065
|
+
stakePool: "Hr9pzexrBge3vgmBNRR8u42CNQgBXdHm4UkUN2DH4a7r",
|
|
66066
|
+
program: SPL_STAKE_POOL_PROGRAM,
|
|
66067
|
+
lookupTable: "GZjbDvfUhpqAjatr1JPLLxFbHqwxaQSpMw5UsoUa4DbU"
|
|
66068
|
+
},
|
|
66069
|
+
{
|
|
66070
|
+
symbol: "JupSOL",
|
|
66071
|
+
mint: "jupSoLaHXQiZZTSfEWMTRRgpnyFm8f6sZdosWBjx93v",
|
|
66072
|
+
stakePool: "8VpRhuxa7sUUepdY3kQiTmX9rS5vx4WgaXiAnXq4KCtr",
|
|
66073
|
+
program: SANCTUM_MULTI_STAKE_POOL_PROGRAM,
|
|
66074
|
+
lookupTable: "7A1unBgYZLqPx642iuRZoum4yBebq5i4mxsVeq6oTSWQ"
|
|
66075
|
+
},
|
|
66076
|
+
{
|
|
66077
|
+
symbol: "dSOL",
|
|
66078
|
+
mint: "Dso1bDeDjCQxTrWHqUUi63oBvV7Mdm6WaobLbQ7gnPQ",
|
|
66079
|
+
stakePool: "9mhGNSPArRMHpLDMSmxAvuoizBqtBGqYdT8WGuqgxNdn",
|
|
66080
|
+
program: SANCTUM_SPL_STAKE_POOL_PROGRAM,
|
|
66081
|
+
lookupTable: "GV4LPz2QM9Yksb6uZPcAM1pSDBkcky9Hw4fyAkMsSWWP"
|
|
66082
|
+
},
|
|
66083
|
+
{
|
|
66084
|
+
symbol: "hSOL",
|
|
66085
|
+
mint: "he1iusmfkpAdwvxLNGV8Y1iSbj4rUy6yMhEA3fotn9A",
|
|
66086
|
+
stakePool: "3wK2g8ZdzAH8FJ7PKr2RcvGh7V9VYson5hrVsJM5Lmws",
|
|
66087
|
+
program: SANCTUM_SPL_STAKE_POOL_PROGRAM,
|
|
66088
|
+
lookupTable: "54tcUC2CFF1SfH9tnZDic5eSZoSpm4iNtDxvPyBKRgwa"
|
|
66089
|
+
},
|
|
66090
|
+
{
|
|
66091
|
+
symbol: "bbSOL",
|
|
66092
|
+
mint: "Bybit2vBJGhPF52GBdNaQfUJ6ZpThSgHBobjWZpLPb4B",
|
|
66093
|
+
stakePool: "2aMLkB5p5gVvCwKkdSo5eZAL1WwhZbxezQr1wxiynRhq",
|
|
66094
|
+
program: SANCTUM_SPL_STAKE_POOL_PROGRAM,
|
|
66095
|
+
lookupTable: "98N4QqCpkjpXZ1acsKvBx4p7B5sLQQYpfJ4MaDkU1iHf"
|
|
66096
|
+
}
|
|
66097
|
+
];
|
|
66098
|
+
var stakePoolDepositEntry = (mint) => STAKE_POOL_DEPOSIT_ROSTER.find((e) => e.mint === mint);
|
|
66099
|
+
function depositSolOut(pool, lamports, opts = {}) {
|
|
66100
|
+
if (!pool.fees || pool.solReferralFee === void 0)
|
|
66101
|
+
return { refused: "no-tail" };
|
|
66102
|
+
if (pool.solDepositAuthority) return { refused: "permissioned" };
|
|
66103
|
+
if (opts.currentEpoch !== void 0 && pool.lastUpdateEpoch < opts.currentEpoch)
|
|
66104
|
+
return { refused: "stale" };
|
|
66105
|
+
const minted = pool.totalLamports === 0n || pool.poolTokenSupply === 0n ? lamports : lamports * pool.poolTokenSupply / pool.totalLamports;
|
|
66106
|
+
const { numerator, denominator } = pool.fees.solDeposit;
|
|
66107
|
+
const fee = denominator === 0n ? 0n : minted * numerator / denominator;
|
|
66108
|
+
const referral = fee * BigInt(pool.solReferralFee) / 100n;
|
|
66109
|
+
const out = minted - fee + (opts.referrerIsDepositor !== false ? referral : 0n);
|
|
66110
|
+
if (minted - fee <= 0n) return { refused: "too-small" };
|
|
66111
|
+
return {
|
|
66112
|
+
out,
|
|
66113
|
+
feeBps: minted === 0n ? 0 : Number(minted - out) * 1e4 / Number(minted)
|
|
66114
|
+
};
|
|
66115
|
+
}
|
|
66116
|
+
|
|
65979
66117
|
// src/vaults/origin.ts
|
|
65980
66118
|
function common4626(r, provider, redemptionType) {
|
|
65981
66119
|
const priced = r.priceUsd !== void 0 && Number.isFinite(r.priceUsd);
|
|
@@ -69459,6 +69597,8 @@ function project0TermAdapter(row, group) {
|
|
|
69459
69597
|
PROJECT_0_PROFILE_ID,
|
|
69460
69598
|
PYTH_PRICE_UPDATE_V2_DISCRIMINATOR,
|
|
69461
69599
|
PYTH_RECEIVER_PROGRAM,
|
|
69600
|
+
SANCTUM_MULTI_STAKE_POOL_PROGRAM,
|
|
69601
|
+
SANCTUM_SPL_STAKE_POOL_PROGRAM,
|
|
69462
69602
|
SAVE_API_BASE,
|
|
69463
69603
|
SAVE_CREATOR,
|
|
69464
69604
|
SAVE_DEFAULT_AVG_SLOT_SECONDS,
|
|
@@ -69500,6 +69640,8 @@ function project0TermAdapter(row, group) {
|
|
|
69500
69640
|
SPL_STAKE_POOL_PROGRAM,
|
|
69501
69641
|
STABLECOIN_SYMBOLS,
|
|
69502
69642
|
STAKE_ACCOUNT_RENT_EXEMPT_LAMPORTS,
|
|
69643
|
+
STAKE_POOL_DEPOSIT_ROSTER,
|
|
69644
|
+
STAKE_POOL_PROGRAMS,
|
|
69503
69645
|
SVM_LENDERS,
|
|
69504
69646
|
TERM_PROFILES,
|
|
69505
69647
|
WSOL_MINT,
|
|
@@ -69587,6 +69729,7 @@ function project0TermAdapter(row, group) {
|
|
|
69587
69729
|
decodeVestingSchedule,
|
|
69588
69730
|
decodeYieldPool,
|
|
69589
69731
|
denominationOf,
|
|
69732
|
+
depositSolOut,
|
|
69590
69733
|
deriveLayerTotals,
|
|
69591
69734
|
deriveLoopscalePrices,
|
|
69592
69735
|
deriveP0Mode,
|
|
@@ -69747,6 +69890,7 @@ function project0TermAdapter(row, group) {
|
|
|
69747
69890
|
p0MultipointBaseRate,
|
|
69748
69891
|
p0NeedsVenueMultiplier,
|
|
69749
69892
|
p0Rates,
|
|
69893
|
+
p0RewardsOf,
|
|
69750
69894
|
p0StateSemantics,
|
|
69751
69895
|
p0SupplyCapTokens,
|
|
69752
69896
|
p0Utilization,
|
|
@@ -69809,6 +69953,7 @@ function project0TermAdapter(row, group) {
|
|
|
69809
69953
|
seniorCooldownPdas,
|
|
69810
69954
|
settlementBatchPdas,
|
|
69811
69955
|
solsticeOriginRow,
|
|
69956
|
+
stakePoolDepositEntry,
|
|
69812
69957
|
strategyMode,
|
|
69813
69958
|
strategyNameOf,
|
|
69814
69959
|
strategyPdas,
|