@elemental-stv-core/sdk 0.2.0 → 0.4.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 +34 -4
  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 +153 -0
  34. package/dist/jlpd-strategy/swap-jlp.d.ts.map +1 -0
  35. package/dist/jlpd-strategy/swap-jlp.js +465 -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,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;AAG/F,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,qBAAwD,CAAC;AACjF,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"}
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("ELEM2bAobpZNuysfhyF28XGVjA1aTUwm6rPYyv1JX3oq");
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([229, 185, 136, 170, 210, 189, 172, 241]);
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":"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"}
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,8EAA8E;AAC9E,0BAA0B;AAC1B,8EAA8E;AAE9E,qBAAqB;AACR,QAAA,QAAQ,GAAG,IAAI,mBAAS,CAAC,8CAA8C,CAAC,CAAC;AAEtF,gDAAgD;AACnC,QAAA,eAAe,GAAG,IAAI,mBAAS,CAAC,6CAA6C,CAAC,CAAC;AAE5F,uCAAuC;AAC1B,QAAA,aAAa,GAAG,IAAI,mBAAS,CAAC,8CAA8C,CAAC,CAAC;AAE3F,uCAAuC;AAC1B,QAAA,aAAa,GAAG,IAAI,mBAAS,CAAC,8CAA8C,CAAC,CAAC;AAE3F,uCAAuC;AAC1B,QAAA,aAAa,GAAG,IAAI,mBAAS,CAAC,8CAA8C,CAAC,CAAC;AAE3F,2EAA2E;AAC9D,QAAA,gBAAgB,GAAG,IAAI,mBAAS,CAAC,8CAA8C,CAAC,CAAC;AAE9F,oCAAoC;AACvB,QAAA,qBAAqB,GAAG,IAAI,mBAAS,CAAC,6CAA6C,CAAC,CAAC;AAElG,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,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;AACnE,QAAA,eAAe,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC;AAC/E,oCAAoC;AACvB,QAAA,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC;AACjF,uCAAuC;AAC1B,QAAA,iBAAiB,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;AAElF,uDAAuD;AAC1C,QAAA,2BAA2B,GAAG,gCAAwB,CAAC;AAEpE,gBAAgB;AACH,QAAA,gBAAgB,GAAG,GAAG,CAAC;AACvB,QAAA,iBAAiB,GAAG,EAAE,CAAC;AACvB,QAAA,mBAAmB,GAAG,GAAG,CAAC;AAC1B,QAAA,iBAAiB,GAAG,EAAE,CAAC;AAEpC,+CAA+C;AAClC,QAAA,cAAc,GAAG,wBAAgB,CAAC;AAE/C,QAAQ;AACK,QAAA,WAAW,GAAG,MAAM,CAAC;AACrB,QAAA,sBAAsB,GAAG,MAAM,CAAC;AAChC,QAAA,yBAAyB,GAAG,MAAM,CAAC;AACnC,QAAA,iBAAiB,GAAG,MAAM,CAAC;AAC3B,QAAA,uBAAuB,GAAG,MAAM,CAAC;AACjC,QAAA,cAAc,GAAG,MAAM,CAAC;AAErC,SAAS;AACI,QAAA,UAAU,GAAG,CAAC,CAAC;AACf,QAAA,gBAAgB,GAAG,GAAG,CAAC;AACvB,QAAA,gBAAgB,GAAG,IAAI,CAAC;AAErC,iDAAoE;AAA3D,yGAAA,YAAY,OAAA;AAAE,4GAAA,eAAe,OAAA;AAEtC,0EAA0E;AAC7D,QAAA,cAAc,GAA2B;IACpD,8CAA8C,EAAE,EAAE,EAAE,MAAM;IAC1D,8CAA8C,EAAE,EAAE,EAAE,MAAM;IAC1D,6CAA6C,EAAE,EAAE,EAAM,MAAM;IAC7D,8CAA8C,EAAE,EAAE,EAAE,OAAO;IAC3D,6CAA6C,EAAE,EAAE,EAAG,SAAS;CAC9D,CAAC"}
@@ -3,4 +3,7 @@ export * from "./types";
3
3
  export * from "./pda";
4
4
  export * from "./accounts";
5
5
  export * from "./instructions";
6
+ export * from "./swap-jlp";
7
+ export * from "./settle-yield";
8
+ export * from "./jlp-data";
6
9
  //# sourceMappingURL=index.d.ts.map
@@ -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"}