@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.
Files changed (70) hide show
  1. package/dist/elemental-lend/index.d.ts +2 -0
  2. package/dist/elemental-lend/index.d.ts.map +1 -1
  3. package/dist/elemental-lend/index.js +2 -0
  4. package/dist/elemental-lend/index.js.map +1 -1
  5. package/dist/elemental-lend/jupiter-lend.d.ts +4 -0
  6. package/dist/elemental-lend/jupiter-lend.d.ts.map +1 -1
  7. package/dist/elemental-lend/jupiter-lend.js +29 -1
  8. package/dist/elemental-lend/jupiter-lend.js.map +1 -1
  9. package/dist/elemental-lend/kamino-vault.d.ts +173 -0
  10. package/dist/elemental-lend/kamino-vault.d.ts.map +1 -0
  11. package/dist/elemental-lend/kamino-vault.js +460 -0
  12. package/dist/elemental-lend/kamino-vault.js.map +1 -0
  13. package/dist/elemental-lend/protocol-actions.d.ts +49 -0
  14. package/dist/elemental-lend/protocol-actions.d.ts.map +1 -0
  15. package/dist/elemental-lend/protocol-actions.js +228 -0
  16. package/dist/elemental-lend/protocol-actions.js.map +1 -0
  17. package/dist/jlpd-strategy/constants.d.ts +16 -0
  18. package/dist/jlpd-strategy/constants.d.ts.map +1 -1
  19. package/dist/jlpd-strategy/constants.js +28 -3
  20. package/dist/jlpd-strategy/constants.js.map +1 -1
  21. package/dist/jlpd-strategy/index.d.ts +3 -0
  22. package/dist/jlpd-strategy/index.d.ts.map +1 -1
  23. package/dist/jlpd-strategy/index.js +3 -0
  24. package/dist/jlpd-strategy/index.js.map +1 -1
  25. package/dist/jlpd-strategy/jlp-data.d.ts +73 -0
  26. package/dist/jlpd-strategy/jlp-data.d.ts.map +1 -0
  27. package/dist/jlpd-strategy/jlp-data.js +406 -0
  28. package/dist/jlpd-strategy/jlp-data.js.map +1 -0
  29. package/dist/jlpd-strategy/settle-yield.d.ts +54 -0
  30. package/dist/jlpd-strategy/settle-yield.d.ts.map +1 -0
  31. package/dist/jlpd-strategy/settle-yield.js +103 -0
  32. package/dist/jlpd-strategy/settle-yield.js.map +1 -0
  33. package/dist/jlpd-strategy/swap-jlp.d.ts +151 -0
  34. package/dist/jlpd-strategy/swap-jlp.d.ts.map +1 -0
  35. package/dist/jlpd-strategy/swap-jlp.js +429 -0
  36. package/dist/jlpd-strategy/swap-jlp.js.map +1 -0
  37. package/dist/p-stv-core/accounts.d.ts.map +1 -1
  38. package/dist/p-stv-core/accounts.js +14 -10
  39. package/dist/p-stv-core/accounts.js.map +1 -1
  40. package/dist/p-stv-core/constants.d.ts +3 -1
  41. package/dist/p-stv-core/constants.d.ts.map +1 -1
  42. package/dist/p-stv-core/constants.js +5 -3
  43. package/dist/p-stv-core/constants.js.map +1 -1
  44. package/dist/p-stv-core/index.d.ts +4 -0
  45. package/dist/p-stv-core/index.d.ts.map +1 -1
  46. package/dist/p-stv-core/index.js +4 -0
  47. package/dist/p-stv-core/index.js.map +1 -1
  48. package/dist/p-stv-core/instructions.d.ts +26 -0
  49. package/dist/p-stv-core/instructions.d.ts.map +1 -1
  50. package/dist/p-stv-core/instructions.js +37 -6
  51. package/dist/p-stv-core/instructions.js.map +1 -1
  52. package/dist/p-stv-core/prices.d.ts +21 -0
  53. package/dist/p-stv-core/prices.d.ts.map +1 -0
  54. package/dist/p-stv-core/prices.js +78 -0
  55. package/dist/p-stv-core/prices.js.map +1 -0
  56. package/dist/p-stv-core/remaining-accounts.d.ts +99 -0
  57. package/dist/p-stv-core/remaining-accounts.d.ts.map +1 -0
  58. package/dist/p-stv-core/remaining-accounts.js +262 -0
  59. package/dist/p-stv-core/remaining-accounts.js.map +1 -0
  60. package/dist/p-stv-core/send-tx.d.ts +56 -0
  61. package/dist/p-stv-core/send-tx.d.ts.map +1 -0
  62. package/dist/p-stv-core/send-tx.js +299 -0
  63. package/dist/p-stv-core/send-tx.js.map +1 -0
  64. package/dist/p-stv-core/sol-wrap.d.ts +35 -0
  65. package/dist/p-stv-core/sol-wrap.d.ts.map +1 -0
  66. package/dist/p-stv-core/sol-wrap.js +95 -0
  67. package/dist/p-stv-core/sol-wrap.js.map +1 -0
  68. package/dist/p-stv-core/types.d.ts +16 -1
  69. package/dist/p-stv-core/types.d.ts.map +1 -1
  70. package/package.json +1 -1
@@ -0,0 +1,151 @@
1
+ import { PublicKey, TransactionInstruction, Connection, AddressLookupTableAccount, AccountMeta } from "@solana/web3.js";
2
+ import BN from "bn.js";
3
+ /** Direction of the JLP swap */
4
+ export type SwapDirection = "BaseToJlp" | "JlpToBase";
5
+ /** Arguments for building a swap_jlp instruction */
6
+ export interface CreateSwapJlpIxArgs {
7
+ manager: PublicKey;
8
+ config: PublicKey;
9
+ managerRole: PublicKey;
10
+ strategyState: PublicKey;
11
+ strategyBaseAta: PublicKey;
12
+ strategyJlpAta: PublicKey;
13
+ vaultJlpAta: PublicKey;
14
+ baseMint: PublicKey;
15
+ jlpMint: PublicKey;
16
+ tokenProgram: PublicKey;
17
+ jupiterProgram: PublicKey;
18
+ direction: SwapDirection;
19
+ amount: bigint | BN;
20
+ minOut: bigint | BN;
21
+ jupiterData: Buffer | Uint8Array;
22
+ remainingAccounts?: AccountMeta[];
23
+ }
24
+ /** Jupiter swap quote response */
25
+ export interface JupiterQuote {
26
+ inputMint: string;
27
+ inAmount: string;
28
+ outputMint: string;
29
+ outAmount: string;
30
+ otherAmountThreshold: string;
31
+ swapMode: string;
32
+ slippageBps: number;
33
+ priceImpactPct: string;
34
+ routePlan: unknown[];
35
+ contextSlot?: number;
36
+ timeTaken?: number;
37
+ }
38
+ /** Parsed Jupiter swap instruction from the API */
39
+ export interface JupiterSwapInstruction {
40
+ programId: string;
41
+ data: string;
42
+ accounts: {
43
+ pubkey: string;
44
+ isSigner: boolean;
45
+ isWritable: boolean;
46
+ }[];
47
+ }
48
+ /** Jupiter swap-instructions API response */
49
+ export interface JupiterSwapInstructionsResponse {
50
+ tokenLedgerInstruction: JupiterSwapInstruction | null;
51
+ computeBudgetInstructions: JupiterSwapInstruction[];
52
+ setupInstructions: JupiterSwapInstruction[];
53
+ swapInstruction: JupiterSwapInstruction;
54
+ cleanupInstruction: JupiterSwapInstruction | null;
55
+ addressLookupTableAddresses: string[];
56
+ }
57
+ /**
58
+ * Build the on-chain `swap_jlp` instruction.
59
+ *
60
+ * Instruction data layout (Anchor Borsh):
61
+ * [8-byte disc, 1-byte direction, 8-byte amount (LE), 8-byte min_out (LE),
62
+ * 4-byte jupiter_data_len (LE), ...jupiter_data_bytes]
63
+ */
64
+ export declare function createSwapJlpIx(args: CreateSwapJlpIxArgs, programId?: PublicKey): TransactionInstruction;
65
+ /**
66
+ * Fetch a swap quote from Jupiter's v1 quote API.
67
+ */
68
+ export declare function getJupiterSwapQuote(args: {
69
+ inputMint: PublicKey;
70
+ outputMint: PublicKey;
71
+ amount: number | bigint;
72
+ slippageBps?: number;
73
+ maxAccounts?: number;
74
+ }): Promise<JupiterQuote>;
75
+ /**
76
+ * Fetch swap instructions from Jupiter's v1 swap-instructions API.
77
+ *
78
+ * @param quoteResponse The quote from getJupiterSwapQuote
79
+ * @param userPublicKey The account that signs the swap -- for JLPD this is the strategy_state PDA
80
+ */
81
+ export declare function getJupiterSwapInstructions(args: {
82
+ quoteResponse: JupiterQuote;
83
+ userPublicKey: PublicKey;
84
+ }): Promise<{
85
+ swapInstructionData: Buffer;
86
+ remainingAccounts: AccountMeta[];
87
+ addressLookupTableAddresses: string[];
88
+ }>;
89
+ /**
90
+ * Build a complete swap_jlp transaction with Jupiter quote + instructions + ALTs.
91
+ *
92
+ * This is the main function the frontend calls. It:
93
+ * 1. Derives all PDAs (config, manager_role, strategy_state, ATAs)
94
+ * 2. Gets Jupiter quote
95
+ * 3. Gets Jupiter swap instructions
96
+ * 4. Builds the swap_jlp instruction with remaining accounts
97
+ * 5. Returns instructions + ALTs for a versioned transaction
98
+ */
99
+ export declare function buildSwapJlpTransaction(args: {
100
+ connection: Connection;
101
+ manager: PublicKey;
102
+ baseMint: PublicKey;
103
+ direction: SwapDirection;
104
+ amount: bigint;
105
+ slippageBps?: number;
106
+ jlpMint?: PublicKey;
107
+ tokenProgram?: PublicKey;
108
+ programId?: PublicKey;
109
+ }): Promise<{
110
+ instructions: TransactionInstruction[];
111
+ addressLookupTables: AddressLookupTableAccount[];
112
+ /** Actual input amount from Jupiter quote (may differ from requested amount) */
113
+ quoteInAmount: bigint;
114
+ }>;
115
+ export interface RebalanceArgs {
116
+ connection: Connection;
117
+ manager: PublicKey;
118
+ baseMint: PublicKey;
119
+ vaultId: number;
120
+ direction: SwapDirection;
121
+ /** Base amount (BaseToJlp) or JLP amount (JlpToBase) */
122
+ amount: bigint;
123
+ slippageBps?: number;
124
+ /** Pass from frontend to skip RPC balance lookups */
125
+ liquidity?: {
126
+ strategyAtaBalance: bigint;
127
+ vaultAtaBalance: bigint;
128
+ };
129
+ jlpMint?: PublicKey;
130
+ tokenProgram?: PublicKey;
131
+ programId?: PublicKey;
132
+ pStvProgramId?: PublicKey;
133
+ }
134
+ export interface RebalanceResult {
135
+ /** Tx 1 instructions (deposit_to_strategy pre-fill, or empty) */
136
+ preInstructions: TransactionInstruction[];
137
+ /** Tx 2 instructions (swap_jlp, optionally + withdraw_from_strategy) */
138
+ instructions: TransactionInstruction[];
139
+ addressLookupTables: AddressLookupTableAccount[];
140
+ routeDescription: string;
141
+ }
142
+ /**
143
+ * Build a complete rebalance transaction set for JLPD strategy.
144
+ *
145
+ * For BaseToJlp: auto-detects liquidity location and builds
146
+ * deposit_to_strategy + swap_jlp (tries 1 tx, falls back to 2 if needed).
147
+ *
148
+ * For JlpToBase: builds swap_jlp + withdraw_from_strategy in 1 tx.
149
+ */
150
+ export declare function buildRebalanceTransaction(args: RebalanceArgs): Promise<RebalanceResult>;
151
+ //# sourceMappingURL=swap-jlp.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"swap-jlp.d.ts","sourceRoot":"","sources":["../../src/jlpd-strategy/swap-jlp.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,429 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.createSwapJlpIx = createSwapJlpIx;
7
+ exports.getJupiterSwapQuote = getJupiterSwapQuote;
8
+ exports.getJupiterSwapInstructions = getJupiterSwapInstructions;
9
+ exports.buildSwapJlpTransaction = buildSwapJlpTransaction;
10
+ exports.buildRebalanceTransaction = buildRebalanceTransaction;
11
+ const web3_js_1 = require("@solana/web3.js");
12
+ const spl_token_1 = require("@solana/spl-token");
13
+ const bn_js_1 = __importDefault(require("bn.js"));
14
+ const constants_1 = require("./constants");
15
+ const pda_1 = require("./pda");
16
+ const accounts_1 = require("./accounts");
17
+ const pda_2 = require("../p-stv-core/pda");
18
+ const instructions_1 = require("../p-stv-core/instructions");
19
+ const remaining_accounts_1 = require("../p-stv-core/remaining-accounts");
20
+ const accounts_2 = require("../p-stv-core/accounts");
21
+ const constants_2 = require("../p-stv-core/constants");
22
+ const pda_3 = require("../elemental-lend/pda");
23
+ // ---------------------------------------------------------------------------
24
+ // Helpers
25
+ // ---------------------------------------------------------------------------
26
+ const JUPITER_API_BASE = "https://api.jup.ag/swap/v1";
27
+ /** Derive ATA address (same logic as @solana/spl-token getAssociatedTokenAddressSync) */
28
+ function findAta(mint, owner, tokenProgram) {
29
+ const [ata] = web3_js_1.PublicKey.findProgramAddressSync([owner.toBuffer(), tokenProgram.toBuffer(), mint.toBuffer()], spl_token_1.ASSOCIATED_TOKEN_PROGRAM_ID);
30
+ return ata;
31
+ }
32
+ function toBigInt(v) {
33
+ if (typeof v === "bigint")
34
+ return v;
35
+ return BigInt(v.toString());
36
+ }
37
+ // ---------------------------------------------------------------------------
38
+ // Low-level instruction builder
39
+ // ---------------------------------------------------------------------------
40
+ /**
41
+ * Build the on-chain `swap_jlp` instruction.
42
+ *
43
+ * Instruction data layout (Anchor Borsh):
44
+ * [8-byte disc, 1-byte direction, 8-byte amount (LE), 8-byte min_out (LE),
45
+ * 4-byte jupiter_data_len (LE), ...jupiter_data_bytes]
46
+ */
47
+ function createSwapJlpIx(args, programId = constants_1.PROGRAM_ID) {
48
+ const { manager, config, managerRole, strategyState, strategyBaseAta, strategyJlpAta, vaultJlpAta, baseMint, jlpMint, tokenProgram, jupiterProgram, direction, amount, minOut, jupiterData, remainingAccounts = [], } = args;
49
+ const amountBi = toBigInt(amount);
50
+ const minOutBi = toBigInt(minOut);
51
+ // Serialize instruction data
52
+ const jupBytes = Buffer.from(jupiterData);
53
+ const dataLen = 8 + 1 + 8 + 8 + 4 + jupBytes.length;
54
+ const data = Buffer.alloc(dataLen);
55
+ // Discriminator
56
+ constants_1.IX_SWAP_JLP.copy(data, 0);
57
+ // Direction (1 byte)
58
+ data.writeUInt8(direction === "BaseToJlp" ? 0 : 1, 8);
59
+ // Amount (u64 LE)
60
+ data.writeBigUInt64LE(amountBi, 9);
61
+ // MinOut (u64 LE)
62
+ data.writeBigUInt64LE(minOutBi, 17);
63
+ // Jupiter data length (u32 LE) + bytes
64
+ data.writeUInt32LE(jupBytes.length, 25);
65
+ jupBytes.copy(data, 29);
66
+ const keys = [
67
+ { pubkey: manager, isSigner: true, isWritable: false },
68
+ { pubkey: config, isSigner: false, isWritable: false },
69
+ { pubkey: managerRole, isSigner: false, isWritable: false },
70
+ { pubkey: strategyState, isSigner: false, isWritable: true },
71
+ { pubkey: strategyBaseAta, isSigner: false, isWritable: true },
72
+ { pubkey: strategyJlpAta, isSigner: false, isWritable: true },
73
+ { pubkey: vaultJlpAta, isSigner: false, isWritable: true },
74
+ { pubkey: baseMint, isSigner: false, isWritable: false },
75
+ { pubkey: jlpMint, isSigner: false, isWritable: false },
76
+ { pubkey: tokenProgram, isSigner: false, isWritable: false },
77
+ { pubkey: jupiterProgram, isSigner: false, isWritable: false },
78
+ ...remainingAccounts,
79
+ ];
80
+ return new web3_js_1.TransactionInstruction({ keys, programId, data });
81
+ }
82
+ // ---------------------------------------------------------------------------
83
+ // Jupiter API helpers
84
+ // ---------------------------------------------------------------------------
85
+ /**
86
+ * Fetch a swap quote from Jupiter's v1 quote API.
87
+ */
88
+ async function getJupiterSwapQuote(args) {
89
+ const { inputMint, outputMint, amount, slippageBps = 50, maxAccounts = 40 } = args;
90
+ const apiKey = process.env.NEXT_PUBLIC_JUPITER_API_KEY;
91
+ const params = new URLSearchParams({
92
+ inputMint: inputMint.toBase58(),
93
+ outputMint: outputMint.toBase58(),
94
+ amount: amount.toString(),
95
+ slippageBps: slippageBps.toString(),
96
+ maxAccounts: maxAccounts.toString(),
97
+ });
98
+ const url = `${JUPITER_API_BASE}/quote?${params.toString()}`;
99
+ const headers = {};
100
+ if (apiKey) {
101
+ headers["x-api-key"] = apiKey;
102
+ }
103
+ const response = await fetch(url, { headers });
104
+ if (!response.ok) {
105
+ const text = await response.text();
106
+ throw new Error(`Jupiter quote API error (${response.status}): ${text}`);
107
+ }
108
+ const data = (await response.json());
109
+ if (data.error) {
110
+ throw new Error(`Jupiter quote error: ${data.error}`);
111
+ }
112
+ return data;
113
+ }
114
+ /**
115
+ * Fetch swap instructions from Jupiter's v1 swap-instructions API.
116
+ *
117
+ * @param quoteResponse The quote from getJupiterSwapQuote
118
+ * @param userPublicKey The account that signs the swap -- for JLPD this is the strategy_state PDA
119
+ */
120
+ async function getJupiterSwapInstructions(args) {
121
+ const { quoteResponse, userPublicKey } = args;
122
+ const apiKey = process.env.NEXT_PUBLIC_JUPITER_API_KEY;
123
+ const url = `${JUPITER_API_BASE}/swap-instructions`;
124
+ const body = {
125
+ quoteResponse,
126
+ userPublicKey: userPublicKey.toBase58(),
127
+ wrapAndUnwrapSol: false,
128
+ dynamicComputeUnitLimit: true,
129
+ skipUserAccountsRpcCalls: true,
130
+ };
131
+ const headers = {
132
+ "Content-Type": "application/json",
133
+ };
134
+ if (apiKey) {
135
+ headers["x-api-key"] = apiKey;
136
+ }
137
+ const response = await fetch(url, {
138
+ method: "POST",
139
+ headers,
140
+ body: JSON.stringify(body),
141
+ });
142
+ if (!response.ok) {
143
+ const text = await response.text();
144
+ throw new Error(`Jupiter swap-instructions API error (${response.status}): ${text}`);
145
+ }
146
+ const data = (await response.json());
147
+ if (data.error) {
148
+ throw new Error(`Jupiter swap-instructions error: ${data.error}`);
149
+ }
150
+ // Extract the raw instruction data (base64 encoded) from the swap instruction
151
+ const swapIx = data.swapInstruction;
152
+ const swapInstructionData = Buffer.from(swapIx.data, "base64");
153
+ // Build remaining accounts from the swap instruction's accounts
154
+ // All signers become non-signers for CPI (the strategy PDA signs via seeds)
155
+ const remainingAccounts = swapIx.accounts.map((acc) => ({
156
+ pubkey: new web3_js_1.PublicKey(acc.pubkey),
157
+ isSigner: false,
158
+ isWritable: acc.isWritable,
159
+ }));
160
+ return {
161
+ swapInstructionData,
162
+ remainingAccounts,
163
+ addressLookupTableAddresses: data.addressLookupTableAddresses,
164
+ };
165
+ }
166
+ /**
167
+ * Fetch Address Lookup Tables from the chain.
168
+ */
169
+ async function fetchAddressLookupTables(connection, addresses) {
170
+ if (addresses.length === 0)
171
+ return [];
172
+ const pubkeys = addresses.map((addr) => new web3_js_1.PublicKey(addr));
173
+ const accountInfos = await connection.getMultipleAccountsInfo(pubkeys);
174
+ const tables = [];
175
+ for (let i = 0; i < accountInfos.length; i++) {
176
+ const info = accountInfos[i];
177
+ if (!info) {
178
+ console.warn(`ALT not found: ${addresses[i]}`);
179
+ continue;
180
+ }
181
+ tables.push(new web3_js_1.AddressLookupTableAccount({
182
+ key: pubkeys[i],
183
+ state: web3_js_1.AddressLookupTableAccount.deserialize(info.data),
184
+ }));
185
+ }
186
+ return tables;
187
+ }
188
+ // ---------------------------------------------------------------------------
189
+ // High-level builder
190
+ // ---------------------------------------------------------------------------
191
+ /**
192
+ * Build a complete swap_jlp transaction with Jupiter quote + instructions + ALTs.
193
+ *
194
+ * This is the main function the frontend calls. It:
195
+ * 1. Derives all PDAs (config, manager_role, strategy_state, ATAs)
196
+ * 2. Gets Jupiter quote
197
+ * 3. Gets Jupiter swap instructions
198
+ * 4. Builds the swap_jlp instruction with remaining accounts
199
+ * 5. Returns instructions + ALTs for a versioned transaction
200
+ */
201
+ async function buildSwapJlpTransaction(args) {
202
+ const { connection, manager, baseMint, direction, amount, slippageBps = 50, jlpMint = constants_1.JLP_MINT, tokenProgram = spl_token_1.TOKEN_PROGRAM_ID, programId = constants_1.PROGRAM_ID, } = args;
203
+ // 1. Derive PDAs
204
+ const [config] = (0, pda_1.findJlpdConfigPda)(programId);
205
+ const [managerRole] = (0, pda_1.findManagerRolePda)(config, manager, programId);
206
+ const [strategyState] = (0, pda_1.findStrategyStatePda)(baseMint, programId);
207
+ // Derive ATAs
208
+ const strategyBaseAta = findAta(baseMint, strategyState, tokenProgram);
209
+ const strategyJlpAta = findAta(jlpMint, strategyState, tokenProgram);
210
+ const vaultJlpAta = findAta(jlpMint, config, tokenProgram);
211
+ // 2. Determine input/output mints for the Jupiter quote
212
+ const inputMint = direction === "BaseToJlp" ? baseMint : jlpMint;
213
+ const outputMint = direction === "BaseToJlp" ? jlpMint : baseMint;
214
+ // 3. Get Jupiter quote
215
+ const quote = await getJupiterSwapQuote({
216
+ inputMint,
217
+ outputMint,
218
+ amount,
219
+ slippageBps,
220
+ });
221
+ // 4. Get Jupiter swap instructions (strategy_state PDA signs via CPI)
222
+ const jupSwap = await getJupiterSwapInstructions({
223
+ quoteResponse: quote,
224
+ userPublicKey: strategyState,
225
+ });
226
+ // 5. Build the swap_jlp instruction
227
+ const minOut = BigInt(quote.otherAmountThreshold);
228
+ const swapJlpIx = createSwapJlpIx({
229
+ manager,
230
+ config,
231
+ managerRole,
232
+ strategyState,
233
+ strategyBaseAta,
234
+ strategyJlpAta,
235
+ vaultJlpAta,
236
+ baseMint,
237
+ jlpMint,
238
+ tokenProgram,
239
+ jupiterProgram: constants_1.JUPITER_PROGRAM,
240
+ direction,
241
+ amount,
242
+ minOut,
243
+ jupiterData: jupSwap.swapInstructionData,
244
+ remainingAccounts: jupSwap.remainingAccounts,
245
+ }, programId);
246
+ // 6. Fetch ALTs
247
+ const addressLookupTables = await fetchAddressLookupTables(connection, jupSwap.addressLookupTableAddresses);
248
+ return {
249
+ instructions: [swapJlpIx],
250
+ addressLookupTables,
251
+ quoteInAmount: BigInt(quote.inAmount),
252
+ };
253
+ }
254
+ /**
255
+ * Build a complete rebalance transaction set for JLPD strategy.
256
+ *
257
+ * For BaseToJlp: auto-detects liquidity location and builds
258
+ * deposit_to_strategy + swap_jlp (tries 1 tx, falls back to 2 if needed).
259
+ *
260
+ * For JlpToBase: builds swap_jlp + withdraw_from_strategy in 1 tx.
261
+ */
262
+ async function buildRebalanceTransaction(args) {
263
+ const { connection, manager, baseMint, vaultId, direction, amount, slippageBps = 50, jlpMint = constants_1.JLP_MINT, tokenProgram = spl_token_1.TOKEN_PROGRAM_ID, programId = constants_1.PROGRAM_ID, pStvProgramId = constants_2.PROGRAM_ID, } = args;
264
+ if (direction === "BaseToJlp") {
265
+ return buildBaseToJlpRebalance({
266
+ connection, manager, baseMint, vaultId, amount, slippageBps,
267
+ jlpMint, tokenProgram, programId, pStvProgramId,
268
+ liquidity: args.liquidity,
269
+ });
270
+ }
271
+ else {
272
+ return buildJlpToBaseRebalance({
273
+ connection, manager, baseMint, vaultId, amount, slippageBps,
274
+ jlpMint, tokenProgram, programId, pStvProgramId,
275
+ });
276
+ }
277
+ }
278
+ // ---------------------------------------------------------------------------
279
+ // BaseToJlp: deposit_to_strategy (if needed) + swap_jlp
280
+ // ---------------------------------------------------------------------------
281
+ async function buildBaseToJlpRebalance(args) {
282
+ const { connection, manager, baseMint, vaultId, amount, slippageBps, jlpMint, tokenProgram, programId, pStvProgramId, liquidity, } = args;
283
+ // Derive JLPD PDAs
284
+ const [strategyState] = (0, pda_1.findStrategyStatePda)(baseMint, programId);
285
+ const strategyBaseAta = findAta(baseMint, strategyState, tokenProgram);
286
+ // Check if strategy_base_ata already has enough
287
+ let strategyBalance = liquidity?.strategyAtaBalance ?? 0n;
288
+ if (!liquidity) {
289
+ try {
290
+ const info = await connection.getAccountInfo(strategyBaseAta);
291
+ if (info && info.data.length >= 72 && info.owner.equals(tokenProgram)) {
292
+ strategyBalance = Buffer.from(info.data).readBigUInt64LE(64);
293
+ }
294
+ }
295
+ catch {
296
+ // Default to 0 — will try deposit
297
+ }
298
+ }
299
+ // Build the swap_jlp instruction (Jupiter quotes the exact inAmount)
300
+ const { instructions: swapIxs, addressLookupTables, quoteInAmount } = await buildSwapJlpTransaction({
301
+ connection, manager, baseMint, direction: "BaseToJlp",
302
+ amount, slippageBps, jlpMint, tokenProgram, programId,
303
+ });
304
+ if (strategyBalance >= quoteInAmount) {
305
+ // Path 1: strategy_base_ata has enough — just swap
306
+ return {
307
+ preInstructions: [],
308
+ instructions: swapIxs,
309
+ addressLookupTables,
310
+ routeDescription: "Direct swap (strategy has funds)",
311
+ };
312
+ }
313
+ // Path 2/3: Need to deposit_to_strategy first (auto-unsweep from lend)
314
+ // Use quoteInAmount (what Jupiter will actually consume) instead of the
315
+ // user's requested amount, to avoid leaving dust in the strategy ATA.
316
+ const deficit = quoteInAmount - strategyBalance;
317
+ // Fetch STV on-chain for lend info
318
+ const stv = await (0, accounts_2.fetchStv)(connection, vaultId, pStvProgramId);
319
+ const [stvAddress] = (0, pda_2.findStvPda)(vaultId, pStvProgramId);
320
+ const [stvManagerRole] = (0, pda_2.findManagerRolePda)(stvAddress, manager, pStvProgramId);
321
+ // Build deposit_to_strategy remaining accounts (lend + auto-unroute)
322
+ const vaultInfo = {
323
+ address: stvAddress,
324
+ baseMint,
325
+ lendProgram: stv.lendProgram,
326
+ strategies: stv.strategies,
327
+ strategyCount: stv.strategyCount,
328
+ };
329
+ const depositCtx = await (0, remaining_accounts_1.buildDepositToStrategyContext)(connection, vaultInfo);
330
+ // Derive the JLPD strategy's position PDA in p-STV Core
331
+ const [jlpdStvPosition] = (0, pda_1.findStvPositionPda)(stvAddress, programId);
332
+ const vaultAta = findAta(baseMint, stvAddress, tokenProgram);
333
+ const depositIx = (0, instructions_1.createDepositToStrategyIx)({
334
+ manager,
335
+ managerRole: stvManagerRole,
336
+ stv: stvAddress,
337
+ vaultAta,
338
+ baseMint,
339
+ strategyProgram: programId,
340
+ strategyState,
341
+ stvPosition: jlpdStvPosition,
342
+ strategyBaseAta,
343
+ tokenProgram,
344
+ amount: new bn_js_1.default(deficit.toString()),
345
+ minShares: new bn_js_1.default(0),
346
+ autoUnrouteCount: depositCtx.autoUnrouteCount,
347
+ remainingAccounts: depositCtx.remainingAccounts,
348
+ }, pStvProgramId);
349
+ const allPreIxs = [...depositCtx.preInstructions, depositIx];
350
+ return {
351
+ preInstructions: allPreIxs,
352
+ instructions: swapIxs,
353
+ addressLookupTables,
354
+ routeDescription: depositCtx.autoUnrouteCount > 0
355
+ ? "Unsweep from lend → deposit to strategy → swap"
356
+ : "Deposit to strategy → swap",
357
+ };
358
+ }
359
+ // ---------------------------------------------------------------------------
360
+ // JlpToBase: swap_jlp + withdraw_from_strategy
361
+ // ---------------------------------------------------------------------------
362
+ async function buildJlpToBaseRebalance(args) {
363
+ const { connection, manager, baseMint, vaultId, amount, slippageBps, jlpMint, tokenProgram, programId, pStvProgramId, } = args;
364
+ // Build the swap_jlp instruction (JLP → base)
365
+ const { instructions: swapIxs, addressLookupTables } = await buildSwapJlpTransaction({
366
+ connection, manager, baseMint, direction: "JlpToBase",
367
+ amount, slippageBps, jlpMint, tokenProgram, programId,
368
+ });
369
+ // Read JLPD strategy state to get PPS for share calculation
370
+ const [strategyState] = (0, pda_1.findStrategyStatePda)(baseMint, programId);
371
+ const [stvAddress] = (0, pda_2.findStvPda)(vaultId, pStvProgramId);
372
+ const [stratState, position, stv] = await Promise.all([
373
+ (0, accounts_1.fetchJlpStrategyState)(connection, baseMint, programId),
374
+ (0, accounts_1.fetchJlpStvPosition)(connection, stvAddress, programId),
375
+ (0, accounts_2.fetchStv)(connection, vaultId, pStvProgramId),
376
+ ]);
377
+ // Use the Jupiter quote's min output to compute shares to withdraw
378
+ // The swap_jlp ix data: [8 disc, 1 dir, 8 amount, 8 minOut, ...]
379
+ const swapIxData = swapIxs[0].data;
380
+ const minBaseOut = swapIxData.readBigUInt64LE(17);
381
+ // shares = ceil(minBaseOut * PPS_DECIMALS / pps), capped at position balance
382
+ const pps = BigInt(stratState.pps.toString());
383
+ const ppsDecimals = BigInt(constants_1.PPS_DECIMALS);
384
+ let sharesToWithdraw = (minBaseOut * ppsDecimals + pps - 1n) / pps;
385
+ const positionShares = BigInt(position.shares.toString());
386
+ if (sharesToWithdraw > positionShares) {
387
+ sharesToWithdraw = positionShares;
388
+ }
389
+ // Build withdraw_from_strategy
390
+ const [stvManagerRole] = (0, pda_2.findManagerRolePda)(stvAddress, manager, pStvProgramId);
391
+ const [jlpdStvPosition] = (0, pda_1.findStvPositionPda)(stvAddress, programId);
392
+ const strategyBaseAta = findAta(baseMint, strategyState, tokenProgram);
393
+ const vaultAta = findAta(baseMint, stvAddress, tokenProgram);
394
+ // Build lend remaining_accounts for auto-sweep after withdraw
395
+ const lendAccounts = [];
396
+ const DEFAULT_PUBKEY = web3_js_1.PublicKey.default;
397
+ if (!stv.lendProgram.equals(DEFAULT_PUBKEY)) {
398
+ const [lendStrategyState] = (0, pda_3.findStrategyStatePda)(baseMint, stv.lendProgram);
399
+ const [lendPosition] = (0, pda_3.findStvPositionPda)(stvAddress, stv.lendProgram);
400
+ const lendBaseAta = findAta(baseMint, lendStrategyState, tokenProgram);
401
+ lendAccounts.push(...(0, instructions_1.buildLendRemainingAccounts)({
402
+ lendProgram: stv.lendProgram,
403
+ lendStrategyState,
404
+ lendStvPosition: lendPosition,
405
+ lendBaseAta,
406
+ }));
407
+ }
408
+ const withdrawIx = (0, instructions_1.createWithdrawFromStrategyIx)({
409
+ manager,
410
+ managerRole: stvManagerRole,
411
+ stv: stvAddress,
412
+ vaultAta,
413
+ baseMint,
414
+ strategyProgram: programId,
415
+ strategyState,
416
+ stvPosition: jlpdStvPosition,
417
+ strategyBaseAta,
418
+ tokenProgram,
419
+ shares: new bn_js_1.default(sharesToWithdraw.toString()),
420
+ remainingAccounts: lendAccounts,
421
+ }, pStvProgramId);
422
+ return {
423
+ preInstructions: [],
424
+ instructions: [...swapIxs, withdrawIx],
425
+ addressLookupTables,
426
+ routeDescription: "Swap JLP → base → withdraw to vault",
427
+ };
428
+ }
429
+ //# sourceMappingURL=swap-jlp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"swap-jlp.js","sourceRoot":"","sources":["../../src/jlpd-strategy/swap-jlp.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"accounts.d.ts","sourceRoot":"","sources":["../../src/p-stv-core/accounts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,MAAM,OAAO,CAAC;AAavB,OAAO,EAAE,YAAY,EAAE,GAAG,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAO1E,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,CAelE;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,GAAG,CAwChD;AAED,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,CAiBxE;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,CAahE;AAMD,wBAAsB,iBAAiB,CACrC,UAAU,EAAE,UAAU,EACtB,SAAS,GAAE,SAAsB,GAChC,OAAO,CAAC,YAAY,CAAC,CAKvB;AAED,wBAAsB,QAAQ,CAC5B,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE,MAAM,GAAG,EAAE,EACpB,SAAS,GAAE,SAAsB,GAChC,OAAO,CAAC,GAAG,CAAC,CAKd;AAED,wBAAsB,iBAAiB,CACrC,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE,SAAS,GACjB,OAAO,CAAC,GAAG,CAAC,CAId;AAED,wBAAsB,oBAAoB,CACxC,UAAU,EAAE,UAAU,EACtB,GAAG,EAAE,SAAS,EACd,IAAI,EAAE,SAAS,EACf,OAAO,EAAE,MAAM,EACf,SAAS,GAAE,SAAsB,GAChC,OAAO,CAAC,eAAe,CAAC,CAK1B;AAED,wBAAsB,6BAA6B,CACjD,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE,SAAS,GACjB,OAAO,CAAC,eAAe,CAAC,CAI1B;AAMD,wBAAsB,YAAY,CAChC,UAAU,EAAE,UAAU,EACtB,SAAS,GAAE,SAAsB,GAChC,OAAO,CAAC,CAAC,SAAS,EAAE,GAAG,CAAC,EAAE,CAAC,CAQ7B;AAED,wBAAsB,4BAA4B,CAChD,UAAU,EAAE,UAAU,EACtB,GAAG,EAAE,SAAS,EACd,OAAO,EAAE,MAAM,EACf,SAAS,GAAE,SAAsB,GAChC,OAAO,CAAC,CAAC,SAAS,EAAE,eAAe,CAAC,EAAE,CAAC,CAYzC;AAED,wBAAsB,gBAAgB,CACpC,UAAU,EAAE,UAAU,EACtB,GAAG,EAAE,SAAS,EACd,OAAO,EAAE,SAAS,EAClB,SAAS,GAAE,SAAsB,GAChC,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAK7B;AAED,wBAAsB,mBAAmB,CACvC,UAAU,EAAE,UAAU,EACtB,GAAG,EAAE,SAAS,EACd,SAAS,GAAE,SAAsB,GAChC,OAAO,CAAC,CAAC,SAAS,EAAE,WAAW,CAAC,EAAE,CAAC,CASrC"}
1
+ {"version":3,"file":"accounts.d.ts","sourceRoot":"","sources":["../../src/p-stv-core/accounts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,MAAM,OAAO,CAAC;AAavB,OAAO,EAAE,YAAY,EAAE,GAAG,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAO1E,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,CAelE;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,GAAG,CA4ChD;AAED,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,CAiBxE;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,CAahE;AAMD,wBAAsB,iBAAiB,CACrC,UAAU,EAAE,UAAU,EACtB,SAAS,GAAE,SAAsB,GAChC,OAAO,CAAC,YAAY,CAAC,CAKvB;AAED,wBAAsB,QAAQ,CAC5B,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE,MAAM,GAAG,EAAE,EACpB,SAAS,GAAE,SAAsB,GAChC,OAAO,CAAC,GAAG,CAAC,CAKd;AAED,wBAAsB,iBAAiB,CACrC,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE,SAAS,GACjB,OAAO,CAAC,GAAG,CAAC,CAId;AAED,wBAAsB,oBAAoB,CACxC,UAAU,EAAE,UAAU,EACtB,GAAG,EAAE,SAAS,EACd,IAAI,EAAE,SAAS,EACf,OAAO,EAAE,MAAM,EACf,SAAS,GAAE,SAAsB,GAChC,OAAO,CAAC,eAAe,CAAC,CAK1B;AAED,wBAAsB,6BAA6B,CACjD,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE,SAAS,GACjB,OAAO,CAAC,eAAe,CAAC,CAI1B;AAMD,wBAAsB,YAAY,CAChC,UAAU,EAAE,UAAU,EACtB,SAAS,GAAE,SAAsB,GAChC,OAAO,CAAC,CAAC,SAAS,EAAE,GAAG,CAAC,EAAE,CAAC,CAQ7B;AAED,wBAAsB,4BAA4B,CAChD,UAAU,EAAE,UAAU,EACtB,GAAG,EAAE,SAAS,EACd,OAAO,EAAE,MAAM,EACf,SAAS,GAAE,SAAsB,GAChC,OAAO,CAAC,CAAC,SAAS,EAAE,eAAe,CAAC,EAAE,CAAC,CAYzC;AAED,wBAAsB,gBAAgB,CACpC,UAAU,EAAE,UAAU,EACtB,GAAG,EAAE,SAAS,EACd,OAAO,EAAE,SAAS,EAClB,SAAS,GAAE,SAAsB,GAChC,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAK7B;AAED,wBAAsB,mBAAmB,CACvC,UAAU,EAAE,UAAU,EACtB,GAAG,EAAE,SAAS,EACd,SAAS,GAAE,SAAsB,GAChC,OAAO,CAAC,CAAC,SAAS,EAAE,WAAW,CAAC,EAAE,CAAC,CASrC"}
@@ -62,16 +62,20 @@ function deserializeStv(data) {
62
62
  hwm: (0, buffer_1.readU64)(data, 528),
63
63
  lastFeeTs: (0, buffer_1.readU64)(data, 536),
64
64
  epochPps: (0, buffer_1.readU64)(data, 544),
65
- nextEpochTs: (0, buffer_1.readU32)(data, 552),
66
- epochSec: (0, buffer_1.readU32)(data, 556),
67
- currentEpochId: (0, buffer_1.readU32)(data, 560),
68
- pendingWithdrawals: (0, buffer_1.readU32)(data, 564),
69
- mgmtFeeBps: (0, buffer_1.readU16)(data, 568),
70
- perfFeeBps: (0, buffer_1.readU16)(data, 570),
71
- flags: (0, buffer_1.readU16)(data, 572),
72
- strategyCount: (0, buffer_1.readU8)(data, 574),
73
- version: (0, buffer_1.readU8)(data, 575),
74
- bump: (0, buffer_1.readU8)(data, 576),
65
+ lastNav: (0, buffer_1.readU64)(data, 552),
66
+ dailyWithdrawnBase: (0, buffer_1.readU64)(data, 560),
67
+ nextEpochTs: (0, buffer_1.readU32)(data, 568),
68
+ epochSec: (0, buffer_1.readU32)(data, 572),
69
+ currentEpochId: (0, buffer_1.readU32)(data, 576),
70
+ pendingWithdrawals: (0, buffer_1.readU32)(data, 580),
71
+ withdrawWindowStart: (0, buffer_1.readU32)(data, 584),
72
+ mgmtFeeBps: (0, buffer_1.readU16)(data, 588),
73
+ perfFeeBps: (0, buffer_1.readU16)(data, 590),
74
+ flags: (0, buffer_1.readU16)(data, 592),
75
+ dailyWithdrawLimitBps: (0, buffer_1.readU16)(data, 594),
76
+ strategyCount: (0, buffer_1.readU8)(data, 596),
77
+ version: (0, buffer_1.readU8)(data, 597),
78
+ bump: (0, buffer_1.readU8)(data, 598),
75
79
  };
76
80
  }
77
81
  function deserializeWithdrawRequest(data) {