@elemental-stv-core/sdk 0.2.0 → 0.3.0
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/elemental-lend/index.d.ts +2 -0
- package/dist/elemental-lend/index.d.ts.map +1 -1
- package/dist/elemental-lend/index.js +2 -0
- package/dist/elemental-lend/index.js.map +1 -1
- package/dist/elemental-lend/jupiter-lend.d.ts +4 -0
- package/dist/elemental-lend/jupiter-lend.d.ts.map +1 -1
- package/dist/elemental-lend/jupiter-lend.js +29 -1
- package/dist/elemental-lend/jupiter-lend.js.map +1 -1
- package/dist/elemental-lend/kamino-vault.d.ts +173 -0
- package/dist/elemental-lend/kamino-vault.d.ts.map +1 -0
- package/dist/elemental-lend/kamino-vault.js +460 -0
- package/dist/elemental-lend/kamino-vault.js.map +1 -0
- package/dist/elemental-lend/protocol-actions.d.ts +49 -0
- package/dist/elemental-lend/protocol-actions.d.ts.map +1 -0
- package/dist/elemental-lend/protocol-actions.js +228 -0
- package/dist/elemental-lend/protocol-actions.js.map +1 -0
- package/dist/jlpd-strategy/constants.d.ts +16 -0
- package/dist/jlpd-strategy/constants.d.ts.map +1 -1
- package/dist/jlpd-strategy/constants.js +28 -3
- package/dist/jlpd-strategy/constants.js.map +1 -1
- package/dist/jlpd-strategy/index.d.ts +3 -0
- package/dist/jlpd-strategy/index.d.ts.map +1 -1
- package/dist/jlpd-strategy/index.js +3 -0
- package/dist/jlpd-strategy/index.js.map +1 -1
- package/dist/jlpd-strategy/jlp-data.d.ts +73 -0
- package/dist/jlpd-strategy/jlp-data.d.ts.map +1 -0
- package/dist/jlpd-strategy/jlp-data.js +406 -0
- package/dist/jlpd-strategy/jlp-data.js.map +1 -0
- package/dist/jlpd-strategy/settle-yield.d.ts +54 -0
- package/dist/jlpd-strategy/settle-yield.d.ts.map +1 -0
- package/dist/jlpd-strategy/settle-yield.js +103 -0
- package/dist/jlpd-strategy/settle-yield.js.map +1 -0
- package/dist/jlpd-strategy/swap-jlp.d.ts +151 -0
- package/dist/jlpd-strategy/swap-jlp.d.ts.map +1 -0
- package/dist/jlpd-strategy/swap-jlp.js +429 -0
- package/dist/jlpd-strategy/swap-jlp.js.map +1 -0
- package/dist/p-stv-core/accounts.d.ts.map +1 -1
- package/dist/p-stv-core/accounts.js +14 -10
- package/dist/p-stv-core/accounts.js.map +1 -1
- package/dist/p-stv-core/constants.d.ts +3 -1
- package/dist/p-stv-core/constants.d.ts.map +1 -1
- package/dist/p-stv-core/constants.js +5 -3
- package/dist/p-stv-core/constants.js.map +1 -1
- package/dist/p-stv-core/index.d.ts +4 -0
- package/dist/p-stv-core/index.d.ts.map +1 -1
- package/dist/p-stv-core/index.js +4 -0
- package/dist/p-stv-core/index.js.map +1 -1
- package/dist/p-stv-core/instructions.d.ts +26 -0
- package/dist/p-stv-core/instructions.d.ts.map +1 -1
- package/dist/p-stv-core/instructions.js +37 -6
- package/dist/p-stv-core/instructions.js.map +1 -1
- package/dist/p-stv-core/prices.d.ts +21 -0
- package/dist/p-stv-core/prices.d.ts.map +1 -0
- package/dist/p-stv-core/prices.js +78 -0
- package/dist/p-stv-core/prices.js.map +1 -0
- package/dist/p-stv-core/remaining-accounts.d.ts +99 -0
- package/dist/p-stv-core/remaining-accounts.d.ts.map +1 -0
- package/dist/p-stv-core/remaining-accounts.js +262 -0
- package/dist/p-stv-core/remaining-accounts.js.map +1 -0
- package/dist/p-stv-core/send-tx.d.ts +56 -0
- package/dist/p-stv-core/send-tx.d.ts.map +1 -0
- package/dist/p-stv-core/send-tx.js +299 -0
- package/dist/p-stv-core/send-tx.js.map +1 -0
- package/dist/p-stv-core/sol-wrap.d.ts +35 -0
- package/dist/p-stv-core/sol-wrap.d.ts.map +1 -0
- package/dist/p-stv-core/sol-wrap.js +95 -0
- package/dist/p-stv-core/sol-wrap.js.map +1 -0
- package/dist/p-stv-core/types.d.ts +16 -1
- package/dist/p-stv-core/types.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,228 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Protocol action transaction builders for Elemental Lend.
|
|
4
|
+
*
|
|
5
|
+
* Builds complete instruction arrays for deposit/withdraw to/from
|
|
6
|
+
* Kamino kVault and Jupiter Lend protocols. Ready to pass to sendSmartTx.
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.buildProtocolActionIxs = buildProtocolActionIxs;
|
|
10
|
+
const web3_js_1 = require("@solana/web3.js");
|
|
11
|
+
const spl_token_1 = require("@solana/spl-token");
|
|
12
|
+
const constants_1 = require("./constants");
|
|
13
|
+
const pda_1 = require("./pda");
|
|
14
|
+
const kamino_vault_1 = require("./kamino-vault");
|
|
15
|
+
const jupiter_lend_1 = require("./jupiter-lend");
|
|
16
|
+
// ---------------------------------------------------------------------------
|
|
17
|
+
// ATA derivation (inline to avoid spl-token runtime dep)
|
|
18
|
+
// ---------------------------------------------------------------------------
|
|
19
|
+
function findAta(mint, owner, tokenProgram) {
|
|
20
|
+
const [ata] = web3_js_1.PublicKey.findProgramAddressSync([owner.toBuffer(), tokenProgram.toBuffer(), mint.toBuffer()], spl_token_1.ASSOCIATED_TOKEN_PROGRAM_ID);
|
|
21
|
+
return ata;
|
|
22
|
+
}
|
|
23
|
+
// ---------------------------------------------------------------------------
|
|
24
|
+
// Main Builder
|
|
25
|
+
// ---------------------------------------------------------------------------
|
|
26
|
+
/**
|
|
27
|
+
* Build complete instruction array for a protocol deposit or withdraw.
|
|
28
|
+
*
|
|
29
|
+
* Returns instructions including a compute budget instruction (400k CU)
|
|
30
|
+
* and the protocol-specific instruction with all accounts resolved.
|
|
31
|
+
*
|
|
32
|
+
* For Kamino kVault withdraw: reads vault_state on-chain to convert
|
|
33
|
+
* base amount to kvToken shares, and reads KLend reserves for the
|
|
34
|
+
* withdraw accounts.
|
|
35
|
+
*
|
|
36
|
+
* @returns TransactionInstruction[] ready for sendSmartTx
|
|
37
|
+
*/
|
|
38
|
+
async function buildProtocolActionIxs(args) {
|
|
39
|
+
const { connection, manager, protocol, protocolType, action, amount, baseMint, tokenProgram = spl_token_1.TOKEN_PROGRAM_ID, jupLendPool, programId = constants_1.PROGRAM_ID, } = args;
|
|
40
|
+
const [strategyStatePda] = args.strategyState
|
|
41
|
+
? [args.strategyState]
|
|
42
|
+
: (0, pda_1.findStrategyStatePda)(baseMint, programId);
|
|
43
|
+
const strategyBaseAta = findAta(baseMint, strategyStatePda, tokenProgram);
|
|
44
|
+
const [managerRolePda] = (0, pda_1.findManagerRolePda)(strategyStatePda, manager, programId);
|
|
45
|
+
if (protocolType === "Jupiter Lend") {
|
|
46
|
+
return buildJupLendActionIxs({
|
|
47
|
+
connection,
|
|
48
|
+
manager,
|
|
49
|
+
strategyStatePda,
|
|
50
|
+
strategyBaseAta,
|
|
51
|
+
managerRolePda,
|
|
52
|
+
protocol,
|
|
53
|
+
action,
|
|
54
|
+
amount,
|
|
55
|
+
baseMint,
|
|
56
|
+
tokenProgram,
|
|
57
|
+
pool: jupLendPool ?? jupiter_lend_1.JUP_LEND_POOLS[baseMint.toBase58()] ?? jupiter_lend_1.USDC_POOL,
|
|
58
|
+
programId,
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
else {
|
|
62
|
+
return buildKvaultActionIxs({
|
|
63
|
+
connection,
|
|
64
|
+
manager,
|
|
65
|
+
strategyStatePda,
|
|
66
|
+
strategyBaseAta,
|
|
67
|
+
managerRolePda,
|
|
68
|
+
vaultState: protocol,
|
|
69
|
+
action,
|
|
70
|
+
amount,
|
|
71
|
+
baseMint,
|
|
72
|
+
tokenProgram,
|
|
73
|
+
programId,
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
function buildJupLendActionIxs(params) {
|
|
78
|
+
const { manager, strategyStatePda, strategyBaseAta, managerRolePda, action, amount, tokenProgram, pool, programId, } = params;
|
|
79
|
+
const strategyFtokenAta = findAta(pool.fTokenMint, strategyStatePda, tokenProgram);
|
|
80
|
+
const JUP_LEND_PROG = new web3_js_1.PublicKey("jup3YeL8QhtSx1e253b2FDvsMNC87fDrgQZivbrndc9");
|
|
81
|
+
// Fixed accounts for the Anchor instruction
|
|
82
|
+
const fixedAccounts = [
|
|
83
|
+
{ pubkey: manager, isSigner: true, isWritable: true },
|
|
84
|
+
{ pubkey: strategyStatePda, isSigner: false, isWritable: false },
|
|
85
|
+
{ pubkey: managerRolePda, isSigner: false, isWritable: false },
|
|
86
|
+
{ pubkey: strategyBaseAta, isSigner: false, isWritable: true },
|
|
87
|
+
{ pubkey: strategyFtokenAta, isSigner: false, isWritable: true },
|
|
88
|
+
];
|
|
89
|
+
let disc;
|
|
90
|
+
let remainingAccounts;
|
|
91
|
+
if (action === "deposit") {
|
|
92
|
+
disc = Buffer.from(constants_1.IX_JUP_LEND_DEPOSIT);
|
|
93
|
+
remainingAccounts = [
|
|
94
|
+
...(0, jupiter_lend_1.buildJupLendDepositAccounts)(pool, strategyStatePda, strategyBaseAta, strategyFtokenAta).map((a) => ({ ...a, isSigner: false })),
|
|
95
|
+
{ pubkey: JUP_LEND_PROG, isSigner: false, isWritable: false },
|
|
96
|
+
];
|
|
97
|
+
}
|
|
98
|
+
else {
|
|
99
|
+
disc = Buffer.from(constants_1.IX_JUP_LEND_WITHDRAW);
|
|
100
|
+
remainingAccounts = [
|
|
101
|
+
...(0, jupiter_lend_1.buildJupLendWithdrawAccounts)(pool, strategyStatePda, strategyFtokenAta, strategyBaseAta).map((a) => ({ ...a, isSigner: false })),
|
|
102
|
+
{ pubkey: JUP_LEND_PROG, isSigner: false, isWritable: false },
|
|
103
|
+
];
|
|
104
|
+
}
|
|
105
|
+
const amountBuf = Buffer.alloc(8);
|
|
106
|
+
amountBuf.writeBigUInt64LE(amount, 0);
|
|
107
|
+
const ixData = Buffer.concat([disc, amountBuf]);
|
|
108
|
+
const ix = new web3_js_1.TransactionInstruction({
|
|
109
|
+
keys: [...fixedAccounts, ...remainingAccounts],
|
|
110
|
+
programId,
|
|
111
|
+
data: ixData,
|
|
112
|
+
});
|
|
113
|
+
return Promise.resolve([ix]);
|
|
114
|
+
}
|
|
115
|
+
async function buildKvaultActionIxs(params) {
|
|
116
|
+
const { connection, manager, strategyStatePda, strategyBaseAta, managerRolePda, vaultState, action, amount, baseMint, tokenProgram, programId, } = params;
|
|
117
|
+
// Read vault state for reserve data (needed for both deposit and withdraw)
|
|
118
|
+
const vaultStateInfo = await connection.getAccountInfo(vaultState);
|
|
119
|
+
if (!vaultStateInfo)
|
|
120
|
+
throw new Error("Kamino vault state not found");
|
|
121
|
+
const vaultData = vaultStateInfo.data;
|
|
122
|
+
// Read ALL KLend reserves from vault state for batch refresh
|
|
123
|
+
const reserveKeys = [];
|
|
124
|
+
for (let i = 0; i < 10; i++) {
|
|
125
|
+
try {
|
|
126
|
+
const { reserve } = (0, kamino_vault_1.readVaultAllocation)(vaultData, i);
|
|
127
|
+
if (!reserve.equals(web3_js_1.PublicKey.default)) {
|
|
128
|
+
reserveKeys.push(reserve);
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
catch {
|
|
132
|
+
break;
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
// Fetch all reserves to read their lending_market field
|
|
136
|
+
const reserveInfos = await connection.getMultipleAccountsInfo(reserveKeys);
|
|
137
|
+
const klendReserves = [];
|
|
138
|
+
for (let i = 0; i < reserveKeys.length; i++) {
|
|
139
|
+
const rInfo = reserveInfos[i];
|
|
140
|
+
if (rInfo && rInfo.data.length >= 64) {
|
|
141
|
+
const lendingMarket = new web3_js_1.PublicKey(rInfo.data.subarray(32, 64));
|
|
142
|
+
klendReserves.push({ reserve: reserveKeys[i], lendingMarket });
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
const [sharesMint] = (0, kamino_vault_1.findKvaultSharesMint)(vaultState);
|
|
146
|
+
const strategySharesAta = findAta(sharesMint, strategyStatePda, tokenProgram);
|
|
147
|
+
// Fixed accounts for the Anchor instruction
|
|
148
|
+
const fixedAccounts = [
|
|
149
|
+
{ pubkey: manager, isSigner: true, isWritable: true },
|
|
150
|
+
{ pubkey: strategyStatePda, isSigner: false, isWritable: false },
|
|
151
|
+
{ pubkey: managerRolePda, isSigner: false, isWritable: false },
|
|
152
|
+
{ pubkey: strategyBaseAta, isSigner: false, isWritable: true },
|
|
153
|
+
{ pubkey: strategySharesAta, isSigner: false, isWritable: true },
|
|
154
|
+
];
|
|
155
|
+
if (action === "deposit") {
|
|
156
|
+
return buildKvaultDepositIxs(fixedAccounts, vaultState, strategyStatePda, strategyBaseAta, strategySharesAta, baseMint, klendReserves, amount, programId);
|
|
157
|
+
}
|
|
158
|
+
else {
|
|
159
|
+
return buildKvaultWithdrawIxs(connection, fixedAccounts, vaultState, vaultData, strategyStatePda, strategyBaseAta, strategySharesAta, baseMint, klendReserves, amount, programId);
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
function buildKvaultDepositIxs(fixedAccounts, vaultState, strategyStatePda, strategyBaseAta, strategySharesAta, baseMint, klendReserves, amount, programId) {
|
|
163
|
+
const disc = Buffer.from(constants_1.IX_KVAULT_DEPOSIT);
|
|
164
|
+
const remainingAccounts = (0, kamino_vault_1.buildKvaultDepositAccounts)(vaultState, strategyStatePda, strategyBaseAta, strategySharesAta, baseMint, klendReserves).map((a) => ({ ...a, isSigner: false }));
|
|
165
|
+
const amountBuf = Buffer.alloc(8);
|
|
166
|
+
amountBuf.writeBigUInt64LE(amount, 0);
|
|
167
|
+
const ixData = Buffer.concat([disc, amountBuf]);
|
|
168
|
+
const ix = new web3_js_1.TransactionInstruction({
|
|
169
|
+
keys: [...fixedAccounts, ...remainingAccounts],
|
|
170
|
+
programId,
|
|
171
|
+
data: ixData,
|
|
172
|
+
});
|
|
173
|
+
return Promise.resolve([ix]);
|
|
174
|
+
}
|
|
175
|
+
async function buildKvaultWithdrawIxs(connection, fixedAccounts, vaultState, vaultData, strategyStatePda, strategyBaseAta, strategySharesAta, baseMint, klendReserves, amount, programId) {
|
|
176
|
+
const disc = Buffer.from(constants_1.IX_KVAULT_WITHDRAW);
|
|
177
|
+
// Convert base amount to kvToken shares
|
|
178
|
+
const sharesIssued = vaultData.readBigUInt64LE(232);
|
|
179
|
+
const prevAumSfLo = vaultData.readBigUInt64LE(280);
|
|
180
|
+
const prevAumSfHi = vaultData.readBigUInt64LE(288);
|
|
181
|
+
const prevAumSf = prevAumSfLo + (prevAumSfHi << BigInt(64));
|
|
182
|
+
const FRACTION_ONE = BigInt(1) << BigInt(60);
|
|
183
|
+
let withdrawShares;
|
|
184
|
+
if (prevAumSf > BigInt(0) && sharesIssued > BigInt(0)) {
|
|
185
|
+
// Round up to ensure enough shares are redeemed
|
|
186
|
+
withdrawShares = (amount * sharesIssued * FRACTION_ONE + prevAumSf - BigInt(1)) / prevAumSf;
|
|
187
|
+
}
|
|
188
|
+
else {
|
|
189
|
+
withdrawShares = amount; // fallback: 1:1
|
|
190
|
+
}
|
|
191
|
+
// Cap to actual kvToken balance
|
|
192
|
+
const sharesAtaInfo = await connection.getAccountInfo(strategySharesAta);
|
|
193
|
+
if (sharesAtaInfo) {
|
|
194
|
+
const actualBalance = sharesAtaInfo.data.readBigUInt64LE(64);
|
|
195
|
+
if (withdrawShares > actualBalance) {
|
|
196
|
+
withdrawShares = actualBalance;
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
// Read reserve data for withdraw accounts
|
|
200
|
+
const reserveKey = new web3_js_1.PublicKey(vaultData.subarray(312, 344));
|
|
201
|
+
const reserveInfo = await connection.getAccountInfo(reserveKey);
|
|
202
|
+
if (!reserveInfo)
|
|
203
|
+
throw new Error("KLend reserve not found");
|
|
204
|
+
const reserveConfig = (0, kamino_vault_1.buildKvaultWithdrawReserveConfig)(vaultData, reserveInfo.data, 0);
|
|
205
|
+
const remainingAccounts = (0, kamino_vault_1.buildKvaultWithdrawAccounts)(vaultState, strategyStatePda, strategyBaseAta, strategySharesAta, baseMint, reserveConfig).map((a) => ({ ...a, isSigner: false }));
|
|
206
|
+
// Append ALL reserves first, then unique lending markets
|
|
207
|
+
for (const r of klendReserves) {
|
|
208
|
+
remainingAccounts.push({ pubkey: r.reserve, isSigner: false, isWritable: true });
|
|
209
|
+
}
|
|
210
|
+
const seenMarkets = new Set();
|
|
211
|
+
for (const r of klendReserves) {
|
|
212
|
+
const key = r.lendingMarket.toBase58();
|
|
213
|
+
if (!seenMarkets.has(key)) {
|
|
214
|
+
seenMarkets.add(key);
|
|
215
|
+
remainingAccounts.push({ pubkey: r.lendingMarket, isSigner: false, isWritable: false });
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
const sharesBuf = Buffer.alloc(8);
|
|
219
|
+
sharesBuf.writeBigUInt64LE(withdrawShares, 0);
|
|
220
|
+
const ixData = Buffer.concat([disc, sharesBuf]);
|
|
221
|
+
const ix = new web3_js_1.TransactionInstruction({
|
|
222
|
+
keys: [...fixedAccounts, ...remainingAccounts],
|
|
223
|
+
programId,
|
|
224
|
+
data: ixData,
|
|
225
|
+
});
|
|
226
|
+
return [ix];
|
|
227
|
+
}
|
|
228
|
+
//# sourceMappingURL=protocol-actions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"protocol-actions.js","sourceRoot":"","sources":["../../src/elemental-lend/protocol-actions.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,20 @@ import { PublicKey } from "@solana/web3.js";
|
|
|
2
2
|
export declare const PROGRAM_ID: PublicKey;
|
|
3
3
|
export declare const PROGRAM_ID_MAINNET: PublicKey;
|
|
4
4
|
export declare const PROGRAM_ID_DEVNET: PublicKey;
|
|
5
|
+
/** JLP token mint */
|
|
6
|
+
export declare const JLP_MINT: PublicKey;
|
|
7
|
+
/** Jupiter aggregator program (swap routing) */
|
|
8
|
+
export declare const JUPITER_PROGRAM: PublicKey;
|
|
9
|
+
/** Doves oracle: BTC/USD price feed */
|
|
10
|
+
export declare const DOVES_BTC_USD: PublicKey;
|
|
11
|
+
/** Doves oracle: ETH/USD price feed */
|
|
12
|
+
export declare const DOVES_ETH_USD: PublicKey;
|
|
13
|
+
/** Doves oracle: SOL/USD price feed */
|
|
14
|
+
export declare const DOVES_SOL_USD: PublicKey;
|
|
15
|
+
/** Jupiter Perps Pool account (stores aumUsd for JLP price calculation) */
|
|
16
|
+
export declare const JLP_POOL_ACCOUNT: PublicKey;
|
|
17
|
+
/** Jupiter Perpetuals Program ID */
|
|
18
|
+
export declare const JUPITER_PERPS_PROGRAM: PublicKey;
|
|
5
19
|
export declare const CONFIG_SEED: Buffer<ArrayBuffer>;
|
|
6
20
|
export declare const MANAGER_SEED: Buffer<ArrayBuffer>;
|
|
7
21
|
export declare const STRATEGY_STATE_SEED: Buffer<ArrayBuffer>;
|
|
@@ -43,4 +57,6 @@ export declare const NUM_ASSETS = 5;
|
|
|
43
57
|
export declare const MAX_MGMT_FEE_BPS = 500;
|
|
44
58
|
export declare const MAX_PERF_FEE_BPS = 3000;
|
|
45
59
|
export { PPS_DECIMALS, BPS_DENOMINATOR } from "../common/constants";
|
|
60
|
+
/** Maps base_mint address → p-STV Core vault_id for JLPD strategy STVs */
|
|
61
|
+
export declare const JLPD_VAULT_IDS: Record<string, number>;
|
|
46
62
|
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/jlpd-strategy/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,eAAO,MAAM,UAAU,WAAgE,CAAC;AACxF,eAAO,MAAM,kBAAkB,WAAa,CAAC;AAC7C,eAAO,MAAM,iBAAiB,WAAgE,CAAC;
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/jlpd-strategy/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,eAAO,MAAM,UAAU,WAAgE,CAAC;AACxF,eAAO,MAAM,kBAAkB,WAAa,CAAC;AAC7C,eAAO,MAAM,iBAAiB,WAAgE,CAAC;AAM/F,qBAAqB;AACrB,eAAO,MAAM,QAAQ,WAAgE,CAAC;AAEtF,gDAAgD;AAChD,eAAO,MAAM,eAAe,WAA+D,CAAC;AAE5F,uCAAuC;AACvC,eAAO,MAAM,aAAa,WAAgE,CAAC;AAE3F,uCAAuC;AACvC,eAAO,MAAM,aAAa,WAAgE,CAAC;AAE3F,uCAAuC;AACvC,eAAO,MAAM,aAAa,WAAgE,CAAC;AAE3F,2EAA2E;AAC3E,eAAO,MAAM,gBAAgB,WAAgE,CAAC;AAE9F,oCAAoC;AACpC,eAAO,MAAM,qBAAqB,WAA+D,CAAC;AAGlG,eAAO,MAAM,WAAW,qBAAwB,CAAC;AACjD,eAAO,MAAM,YAAY,qBAAyB,CAAC;AACnD,eAAO,MAAM,mBAAmB,qBAAgC,CAAC;AACjE,eAAO,MAAM,aAAa,qBAA0B,CAAC;AAErD,0CAA0C;AAC1C,eAAO,MAAM,cAAc,qBAAc,CAAC;AAI1C,eAAO,MAAM,gBAAgB,qBAAqD,CAAC;AAEnF,eAAO,MAAM,iBAAiB,qBAAuD,CAAC;AACtF,eAAO,MAAM,mBAAmB,qBAAqD,CAAC;AACtF,eAAO,MAAM,iBAAiB,qBAAqD,CAAC;AAEpF,+CAA+C;AAC/C,eAAO,MAAM,cAAc,qBAAmB,CAAC;AAG/C,eAAO,MAAM,wBAAwB,qBAAuD,CAAC;AAC7F,eAAO,MAAM,gCAAgC,qBAAkD,CAAC;AAChG,eAAO,MAAM,gBAAgB,qBAAkD,CAAC;AAChF,eAAO,MAAM,iBAAiB,qBAAiD,CAAC;AAChF,eAAO,MAAM,UAAU,qBAAsD,CAAC;AAC9E,eAAO,MAAM,WAAW,qBAAqD,CAAC;AAC9E,eAAO,MAAM,aAAa,qBAAqD,CAAC;AAChF,eAAO,MAAM,WAAW,qBAAuD,CAAC;AAChF,eAAO,MAAM,eAAe,qBAAkD,CAAC;AAE/E,eAAO,MAAM,cAAc,qBAAqD,CAAC;AAEjF,eAAO,MAAM,iBAAiB,qBAAmD,CAAC;AAElF,uDAAuD;AACvD,eAAO,MAAM,2BAA2B,qBAA2B,CAAC;AAGpE,eAAO,MAAM,gBAAgB,MAAM,CAAC;AACpC,eAAO,MAAM,iBAAiB,KAAK,CAAC;AACpC,eAAO,MAAM,mBAAmB,MAAM,CAAC;AACvC,eAAO,MAAM,iBAAiB,KAAK,CAAC;AAEpC,+CAA+C;AAC/C,eAAO,MAAM,cAAc,MAAmB,CAAC;AAG/C,eAAO,MAAM,WAAW,IAAS,CAAC;AAClC,eAAO,MAAM,sBAAsB,IAAS,CAAC;AAC7C,eAAO,MAAM,yBAAyB,IAAS,CAAC;AAChD,eAAO,MAAM,iBAAiB,IAAS,CAAC;AACxC,eAAO,MAAM,uBAAuB,KAAS,CAAC;AAC9C,eAAO,MAAM,cAAc,KAAS,CAAC;AAGrC,eAAO,MAAM,UAAU,IAAI,CAAC;AAC5B,eAAO,MAAM,gBAAgB,MAAM,CAAC;AACpC,eAAO,MAAM,gBAAgB,OAAO,CAAC;AAErC,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEpE,0EAA0E;AAC1E,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAMjD,CAAC"}
|
|
@@ -1,10 +1,27 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.BPS_DENOMINATOR = exports.PPS_DECIMALS = exports.MAX_PERF_FEE_BPS = exports.MAX_MGMT_FEE_BPS = exports.NUM_ASSETS = exports.FLAG_TEST_MODE = exports.FLAG_REBALANCE_DISABLED = exports.FLAG_JLP_DISABLED = exports.FLAG_WITHDRAWALS_DISABLED = exports.FLAG_DEPOSITS_DISABLED = exports.FLAG_PAUSED = exports.JLP_VAULT_SIZE = exports.STV_POSITION_SIZE = exports.STRATEGY_STATE_SIZE = exports.MANAGER_ROLE_SIZE = exports.JLPD_CONFIG_SIZE = exports.IX_INIT_OR_UPDATE_JLP_VAULT = exports.IX_REMOVE_MANAGER = exports.IX_ADD_MANAGER = exports.IX_SETTLE_YIELD = exports.IX_SWAP_JLP = exports.IX_UPDATE_AUM = exports.IX_WITHDRAW = exports.IX_DEPOSIT = exports.IX_CLOSE_POSITION = exports.IX_INIT_POSITION = exports.IX_INIT_OR_UPDATE_STRATEGY_STATE = exports.IX_INIT_OR_UPDATE_CONFIG = exports.DISC_JLP_VAULT = exports.DISC_STV_POSITION = exports.DISC_STRATEGY_STATE = exports.DISC_MANAGER_ROLE = exports.DISC_JLPD_CONFIG = exports.JLP_VAULT_SEED = exports.POSITION_SEED = exports.STRATEGY_STATE_SEED = exports.MANAGER_SEED = exports.CONFIG_SEED = exports.PROGRAM_ID_DEVNET = exports.PROGRAM_ID_MAINNET = exports.PROGRAM_ID = void 0;
|
|
3
|
+
exports.JLPD_VAULT_IDS = exports.BPS_DENOMINATOR = exports.PPS_DECIMALS = exports.MAX_PERF_FEE_BPS = exports.MAX_MGMT_FEE_BPS = exports.NUM_ASSETS = exports.FLAG_TEST_MODE = exports.FLAG_REBALANCE_DISABLED = exports.FLAG_JLP_DISABLED = exports.FLAG_WITHDRAWALS_DISABLED = exports.FLAG_DEPOSITS_DISABLED = exports.FLAG_PAUSED = exports.JLP_VAULT_SIZE = exports.STV_POSITION_SIZE = exports.STRATEGY_STATE_SIZE = exports.MANAGER_ROLE_SIZE = exports.JLPD_CONFIG_SIZE = exports.IX_INIT_OR_UPDATE_JLP_VAULT = exports.IX_REMOVE_MANAGER = exports.IX_ADD_MANAGER = exports.IX_SETTLE_YIELD = exports.IX_SWAP_JLP = exports.IX_UPDATE_AUM = exports.IX_WITHDRAW = exports.IX_DEPOSIT = exports.IX_CLOSE_POSITION = exports.IX_INIT_POSITION = exports.IX_INIT_OR_UPDATE_STRATEGY_STATE = exports.IX_INIT_OR_UPDATE_CONFIG = exports.DISC_JLP_VAULT = exports.DISC_STV_POSITION = exports.DISC_STRATEGY_STATE = exports.DISC_MANAGER_ROLE = exports.DISC_JLPD_CONFIG = exports.JLP_VAULT_SEED = exports.POSITION_SEED = exports.STRATEGY_STATE_SEED = exports.MANAGER_SEED = exports.CONFIG_SEED = exports.JUPITER_PERPS_PROGRAM = exports.JLP_POOL_ACCOUNT = exports.DOVES_SOL_USD = exports.DOVES_ETH_USD = exports.DOVES_BTC_USD = exports.JUPITER_PROGRAM = exports.JLP_MINT = exports.PROGRAM_ID_DEVNET = exports.PROGRAM_ID_MAINNET = exports.PROGRAM_ID = void 0;
|
|
4
4
|
const web3_js_1 = require("@solana/web3.js");
|
|
5
|
-
exports.PROGRAM_ID = new web3_js_1.PublicKey("
|
|
5
|
+
exports.PROGRAM_ID = new web3_js_1.PublicKey("GXqt4ZH2UUBsLWwMNJiZMXza3q7xEGChfW8XjVRjLxr5");
|
|
6
6
|
exports.PROGRAM_ID_MAINNET = exports.PROGRAM_ID;
|
|
7
7
|
exports.PROGRAM_ID_DEVNET = new web3_js_1.PublicKey("AcVcAihjB9Z3Lg3ZiboWxni2sTzXUrrsF3unGX4ntn6p");
|
|
8
|
+
// ---------------------------------------------------------------------------
|
|
9
|
+
// Known mainnet addresses
|
|
10
|
+
// ---------------------------------------------------------------------------
|
|
11
|
+
/** JLP token mint */
|
|
12
|
+
exports.JLP_MINT = new web3_js_1.PublicKey("27G8MtK7VtTcCHkpASjSDdkWWYfoqT6ggEuKidVJidD4");
|
|
13
|
+
/** Jupiter aggregator program (swap routing) */
|
|
14
|
+
exports.JUPITER_PROGRAM = new web3_js_1.PublicKey("JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4");
|
|
15
|
+
/** Doves oracle: BTC/USD price feed */
|
|
16
|
+
exports.DOVES_BTC_USD = new web3_js_1.PublicKey("4HBbPx9QJdjJ7GUe6bsiJjGybvfpDhQMMPXP1UEa7VT5");
|
|
17
|
+
/** Doves oracle: ETH/USD price feed */
|
|
18
|
+
exports.DOVES_ETH_USD = new web3_js_1.PublicKey("5URYohbPy32nxK1t3jAHVNfdWY2xTubHiFvLrE3VhXEp");
|
|
19
|
+
/** Doves oracle: SOL/USD price feed */
|
|
20
|
+
exports.DOVES_SOL_USD = new web3_js_1.PublicKey("39cWjvHrpHNz2SbXv6ME4NPhqBDBd4KsjUYv5JkHEAJU");
|
|
21
|
+
/** Jupiter Perps Pool account (stores aumUsd for JLP price calculation) */
|
|
22
|
+
exports.JLP_POOL_ACCOUNT = new web3_js_1.PublicKey("5BUwFW4nRbftYTDMbgxykoFWqWHPzahFSNAaaaJtVKsq");
|
|
23
|
+
/** Jupiter Perpetuals Program ID */
|
|
24
|
+
exports.JUPITER_PERPS_PROGRAM = new web3_js_1.PublicKey("PERPHjGBqRHArX4DySjwM6UJHiR3sWAatqfdBS2qQJu");
|
|
8
25
|
// PDA Seeds
|
|
9
26
|
exports.CONFIG_SEED = Buffer.from("config");
|
|
10
27
|
exports.MANAGER_SEED = Buffer.from("manager");
|
|
@@ -29,7 +46,7 @@ exports.IX_CLOSE_POSITION = Buffer.from([123, 134, 81, 0, 49, 68, 98, 98]);
|
|
|
29
46
|
exports.IX_DEPOSIT = Buffer.from([242, 35, 198, 137, 82, 225, 242, 182]);
|
|
30
47
|
exports.IX_WITHDRAW = Buffer.from([183, 18, 70, 156, 148, 109, 161, 34]);
|
|
31
48
|
exports.IX_UPDATE_AUM = Buffer.from([162, 40, 227, 16, 84, 169, 182, 185]);
|
|
32
|
-
exports.IX_SWAP_JLP = Buffer.from([
|
|
49
|
+
exports.IX_SWAP_JLP = Buffer.from([190, 44, 224, 191, 169, 243, 146, 127]);
|
|
33
50
|
exports.IX_SETTLE_YIELD = Buffer.from([64, 28, 44, 24, 43, 204, 58, 215]);
|
|
34
51
|
// sha256("global:add_manager")[..8]
|
|
35
52
|
exports.IX_ADD_MANAGER = Buffer.from([125, 38, 192, 212, 101, 91, 179, 16]);
|
|
@@ -58,4 +75,12 @@ exports.MAX_PERF_FEE_BPS = 3000;
|
|
|
58
75
|
var constants_1 = require("../common/constants");
|
|
59
76
|
Object.defineProperty(exports, "PPS_DECIMALS", { enumerable: true, get: function () { return constants_1.PPS_DECIMALS; } });
|
|
60
77
|
Object.defineProperty(exports, "BPS_DENOMINATOR", { enumerable: true, get: function () { return constants_1.BPS_DENOMINATOR; } });
|
|
78
|
+
/** Maps base_mint address → p-STV Core vault_id for JLPD strategy STVs */
|
|
79
|
+
exports.JLPD_VAULT_IDS = {
|
|
80
|
+
"3NZ9JMVBmGAqocybic2c7LQCJScmgsAZ6vQqTDzcqmJh": 11, // BTC
|
|
81
|
+
"7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs": 12, // ETH
|
|
82
|
+
"So11111111111111111111111111111111111111112": 13, // SOL
|
|
83
|
+
"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v": 14, // USDC
|
|
84
|
+
"JuprjznTrTSp2UFa3ZBUFgwdAmtZCq4MQCwysN55USD": 15, // JupUSD
|
|
85
|
+
};
|
|
61
86
|
//# sourceMappingURL=constants.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/jlpd-strategy/constants.ts"],"names":[],"mappings":";;;AAAA,6CAA4C;AAE/B,QAAA,UAAU,GAAG,IAAI,mBAAS,CAAC,8CAA8C,CAAC,CAAC;AAC3E,QAAA,kBAAkB,GAAG,kBAAU,CAAC;AAChC,QAAA,iBAAiB,GAAG,IAAI,mBAAS,CAAC,8CAA8C,CAAC,CAAC;AAE/F,YAAY;AACC,QAAA,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACpC,QAAA,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AACtC,QAAA,mBAAmB,GAAG,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;AACpD,QAAA,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AAErD,0CAA0C;AAC7B,QAAA,cAAc,GAAG,mBAAW,CAAC;AAE1C,yCAAyC;AACzC,oCAAoC;AACvB,QAAA,gBAAgB,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC;AACnF,qCAAqC;AACxB,QAAA,iBAAiB,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;AACzE,QAAA,mBAAmB,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC;AACzE,QAAA,iBAAiB,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;AAEpF,+CAA+C;AAClC,QAAA,cAAc,GAAG,wBAAgB,CAAC;AAE/C,6CAA6C;AAChC,QAAA,wBAAwB,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;AAChF,QAAA,gCAAgC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;AACnF,QAAA,gBAAgB,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC;AACnE,QAAA,iBAAiB,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;AACnE,QAAA,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;AACjE,QAAA,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC;AACjE,QAAA,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;AACnE,QAAA,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/jlpd-strategy/constants.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/jlpd-strategy/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,OAAO,CAAC;AACtB,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/jlpd-strategy/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,OAAO,CAAC;AACtB,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC"}
|
|
@@ -19,4 +19,7 @@ __exportStar(require("./types"), exports);
|
|
|
19
19
|
__exportStar(require("./pda"), exports);
|
|
20
20
|
__exportStar(require("./accounts"), exports);
|
|
21
21
|
__exportStar(require("./instructions"), exports);
|
|
22
|
+
__exportStar(require("./swap-jlp"), exports);
|
|
23
|
+
__exportStar(require("./settle-yield"), exports);
|
|
24
|
+
__exportStar(require("./jlp-data"), exports);
|
|
22
25
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/jlpd-strategy/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8CAA4B;AAC5B,0CAAwB;AACxB,wCAAsB;AACtB,6CAA2B;AAC3B,iDAA+B"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/jlpd-strategy/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8CAA4B;AAC5B,0CAAwB;AACxB,wCAAsB;AACtB,6CAA2B;AAC3B,iDAA+B;AAC/B,6CAA2B;AAC3B,iDAA+B;AAC/B,6CAA2B"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { Connection, PublicKey } from "@solana/web3.js";
|
|
2
|
+
export type CustodyName = "SOL" | "ETH" | "WBTC" | "USDC" | "USDT";
|
|
3
|
+
export interface JlpCustody {
|
|
4
|
+
name: CustodyName;
|
|
5
|
+
aumUsd: number;
|
|
6
|
+
weightBps: number;
|
|
7
|
+
priceUsd: number;
|
|
8
|
+
}
|
|
9
|
+
export interface JlpData {
|
|
10
|
+
timestamp: string;
|
|
11
|
+
totalAumUsd: number;
|
|
12
|
+
custodies: JlpCustody[];
|
|
13
|
+
}
|
|
14
|
+
/** Jupiter Perps Pool fee parameters (from on-chain Pool account) */
|
|
15
|
+
export interface JlpPoolFees {
|
|
16
|
+
addRemoveLiquidityBps: number;
|
|
17
|
+
swapBps: number;
|
|
18
|
+
taxBps: number;
|
|
19
|
+
stableSwapBps: number;
|
|
20
|
+
stableSwapTaxBps: number;
|
|
21
|
+
}
|
|
22
|
+
/** Per-custody info including target weight and current weight */
|
|
23
|
+
export interface JlpCustodyInfo {
|
|
24
|
+
mint: PublicKey;
|
|
25
|
+
name: CustodyName;
|
|
26
|
+
targetRatioBps: number;
|
|
27
|
+
currentRatioBps: number;
|
|
28
|
+
aumUsd: number;
|
|
29
|
+
isStable: boolean;
|
|
30
|
+
}
|
|
31
|
+
/** Full pool details: fees, custody weights, AUM, JLP price */
|
|
32
|
+
export interface JlpPoolDetails {
|
|
33
|
+
fees: JlpPoolFees | null;
|
|
34
|
+
custodies: JlpCustodyInfo[];
|
|
35
|
+
poolAumUsd: number;
|
|
36
|
+
jlpPrice: number;
|
|
37
|
+
jlpSupply: number;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Fetch full JLP pool details: fee parameters, per-custody target/current
|
|
41
|
+
* weights, pool AUM, and JLP price.
|
|
42
|
+
*
|
|
43
|
+
* Reads the Pool account for fees and aumUsd, Custody accounts for per-asset
|
|
44
|
+
* data including target weights, and the JLP mint for total supply.
|
|
45
|
+
*/
|
|
46
|
+
export declare function fetchJlpPoolDetails(connection: Connection): Promise<JlpPoolDetails>;
|
|
47
|
+
/**
|
|
48
|
+
* Estimate the addLiquidity fee for depositing into a specific JLP custody.
|
|
49
|
+
*
|
|
50
|
+
* Implements the Jupiter Perps fee formula:
|
|
51
|
+
* - If deposit moves custody weight TOWARD target: rebate (fee < baseFee)
|
|
52
|
+
* - If deposit moves custody weight AWAY from target: tax (fee > baseFee)
|
|
53
|
+
*
|
|
54
|
+
* Formula:
|
|
55
|
+
* initDiff = |currentRatio - targetRatio|
|
|
56
|
+
* finalDiff = |newRatio - targetRatio|
|
|
57
|
+
* avgDiff = (initDiff + finalDiff) / 2
|
|
58
|
+
* if improving: fee = max(baseFee - taxBps * avgDiff / 10000, 0)
|
|
59
|
+
* if worsening: fee = baseFee + taxBps * avgDiff / 10000
|
|
60
|
+
*/
|
|
61
|
+
export declare function computeAddLiquidityFee(args: {
|
|
62
|
+
custodyAumUsd: number;
|
|
63
|
+
poolAumUsd: number;
|
|
64
|
+
targetRatioBps: number;
|
|
65
|
+
depositUsd: number;
|
|
66
|
+
fees: JlpPoolFees;
|
|
67
|
+
isStable: boolean;
|
|
68
|
+
}): {
|
|
69
|
+
feeBps: number;
|
|
70
|
+
isDiscount: boolean;
|
|
71
|
+
};
|
|
72
|
+
export declare function fetchJlpCustodyData(connection: Connection): Promise<JlpData>;
|
|
73
|
+
//# sourceMappingURL=jlp-data.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jlp-data.d.ts","sourceRoot":"","sources":["../../src/jlpd-strategy/jlp-data.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAOxD,MAAM,MAAM,WAAW,GAAG,KAAK,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;AAEnE,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,WAAW,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,OAAO;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,UAAU,EAAE,CAAC;CACzB;AAMD,qEAAqE;AACrE,MAAM,WAAW,WAAW;IAC1B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,kEAAkE;AAClE,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,SAAS,CAAC;IAChB,IAAI,EAAE,WAAW,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,+DAA+D;AAC/D,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,WAAW,GAAG,IAAI,CAAC;IACzB,SAAS,EAAE,cAAc,EAAE,CAAC;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB;AAsTD;;;;;;GAMG;AACH,wBAAsB,mBAAmB,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,cAAc,CAAC,CAmFzF;AAMD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE;IAC3C,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,WAAW,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;CACnB,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,OAAO,CAAA;CAAE,CA4B1C;AAMD,wBAAsB,mBAAmB,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,CAuClF"}
|