@elemental-stv-core/sdk 0.1.1 → 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/accounts.d.ts +4 -1
- package/dist/elemental-lend/accounts.d.ts.map +1 -1
- package/dist/elemental-lend/accounts.js +34 -0
- package/dist/elemental-lend/accounts.js.map +1 -1
- package/dist/elemental-lend/constants.d.ts +5 -0
- package/dist/elemental-lend/constants.d.ts.map +1 -1
- package/dist/elemental-lend/constants.js +9 -1
- package/dist/elemental-lend/constants.js.map +1 -1
- 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/instructions.d.ts +24 -4
- package/dist/elemental-lend/instructions.d.ts.map +1 -1
- package/dist/elemental-lend/instructions.js +49 -12
- package/dist/elemental-lend/instructions.js.map +1 -1
- package/dist/elemental-lend/jupiter-lend.d.ts +36 -0
- package/dist/elemental-lend/jupiter-lend.d.ts.map +1 -1
- package/dist/elemental-lend/jupiter-lend.js +94 -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/pda.d.ts +1 -0
- package/dist/elemental-lend/pda.d.ts.map +1 -1
- package/dist/elemental-lend/pda.js +4 -0
- package/dist/elemental-lend/pda.js.map +1 -1
- 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/elemental-lend/types.d.ts +17 -1
- package/dist/elemental-lend/types.d.ts.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/jlpd-strategy/accounts.d.ts +17 -0
- package/dist/jlpd-strategy/accounts.d.ts.map +1 -0
- package/dist/{jlp-strategy → jlpd-strategy}/accounts.js +50 -28
- package/dist/jlpd-strategy/accounts.js.map +1 -0
- package/dist/jlpd-strategy/constants.d.ts +62 -0
- package/dist/jlpd-strategy/constants.d.ts.map +1 -0
- package/dist/jlpd-strategy/constants.js +86 -0
- package/dist/jlpd-strategy/constants.js.map +1 -0
- package/dist/jlpd-strategy/index.d.ts +9 -0
- package/dist/jlpd-strategy/index.d.ts.map +1 -0
- package/dist/{jlp-strategy → jlpd-strategy}/index.js +4 -0
- package/dist/jlpd-strategy/index.js.map +1 -0
- package/dist/jlpd-strategy/instructions.d.ts +41 -0
- package/dist/jlpd-strategy/instructions.d.ts.map +1 -0
- package/dist/jlpd-strategy/instructions.js +64 -0
- package/dist/jlpd-strategy/instructions.js.map +1 -0
- 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/pda.d.ts +8 -0
- package/dist/jlpd-strategy/pda.d.ts.map +1 -0
- package/dist/{jlp-strategy → jlpd-strategy}/pda.js +10 -3
- package/dist/jlpd-strategy/pda.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/jlpd-strategy/types.d.ts +56 -0
- package/dist/jlpd-strategy/types.d.ts.map +1 -0
- package/dist/{jlp-strategy → jlpd-strategy}/types.js.map +1 -1
- package/dist/p-stv-core/accounts.d.ts +4 -1
- package/dist/p-stv-core/accounts.d.ts.map +1 -1
- package/dist/p-stv-core/accounts.js +59 -22
- package/dist/p-stv-core/accounts.js.map +1 -1
- package/dist/p-stv-core/constants.d.ts +12 -1
- package/dist/p-stv-core/constants.d.ts.map +1 -1
- package/dist/p-stv-core/constants.js +16 -2
- package/dist/p-stv-core/constants.js.map +1 -1
- package/dist/p-stv-core/events.d.ts.map +1 -1
- package/dist/p-stv-core/events.js +21 -9
- package/dist/p-stv-core/events.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 +58 -1
- package/dist/p-stv-core/instructions.d.ts.map +1 -1
- package/dist/p-stv-core/instructions.js +93 -9
- package/dist/p-stv-core/instructions.js.map +1 -1
- package/dist/p-stv-core/pda.d.ts +1 -0
- package/dist/p-stv-core/pda.d.ts.map +1 -1
- package/dist/p-stv-core/pda.js +4 -0
- package/dist/p-stv-core/pda.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 +35 -4
- package/dist/p-stv-core/types.d.ts.map +1 -1
- package/package.json +5 -5
- package/dist/jlp-strategy/accounts.d.ts +0 -11
- package/dist/jlp-strategy/accounts.d.ts.map +0 -1
- package/dist/jlp-strategy/accounts.js.map +0 -1
- package/dist/jlp-strategy/constants.d.ts +0 -36
- package/dist/jlp-strategy/constants.d.ts.map +0 -1
- package/dist/jlp-strategy/constants.js +0 -47
- package/dist/jlp-strategy/constants.js.map +0 -1
- package/dist/jlp-strategy/index.d.ts +0 -5
- package/dist/jlp-strategy/index.d.ts.map +0 -1
- package/dist/jlp-strategy/index.js.map +0 -1
- package/dist/jlp-strategy/pda.d.ts +0 -5
- package/dist/jlp-strategy/pda.d.ts.map +0 -1
- package/dist/jlp-strategy/pda.js.map +0 -1
- package/dist/jlp-strategy/types.d.ts +0 -25
- package/dist/jlp-strategy/types.d.ts.map +0 -1
- /package/dist/{jlp-strategy → jlpd-strategy}/types.js +0 -0
|
@@ -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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"}
|
|
@@ -7,6 +7,12 @@ export interface LendStrategyState extends StrategyStateHeader {
|
|
|
7
7
|
protocols: PublicKey[];
|
|
8
8
|
protocolCount: number;
|
|
9
9
|
}
|
|
10
|
+
/** ManagerRole account — authorizes a manager for protocol instructions */
|
|
11
|
+
export interface ManagerRole {
|
|
12
|
+
strategyState: PublicKey;
|
|
13
|
+
manager: PublicKey;
|
|
14
|
+
bump: number;
|
|
15
|
+
}
|
|
10
16
|
export type { StvPosition } from "../common/strategy-interface";
|
|
11
17
|
export interface StrategyInitializedEvent {
|
|
12
18
|
name: "StrategyInitialized";
|
|
@@ -93,5 +99,15 @@ export interface ProtocolRemovedEvent {
|
|
|
93
99
|
protocolAccount: PublicKey;
|
|
94
100
|
protocolCount: number;
|
|
95
101
|
}
|
|
96
|
-
export
|
|
102
|
+
export interface ManagerAddedEvent {
|
|
103
|
+
name: "ManagerAdded";
|
|
104
|
+
strategyState: PublicKey;
|
|
105
|
+
manager: PublicKey;
|
|
106
|
+
}
|
|
107
|
+
export interface ManagerRemovedEvent {
|
|
108
|
+
name: "ManagerRemoved";
|
|
109
|
+
strategyState: PublicKey;
|
|
110
|
+
manager: PublicKey;
|
|
111
|
+
}
|
|
112
|
+
export type LendEvent = StrategyInitializedEvent | StrategyUpdatedEvent | PositionInitializedEvent | LendDepositEvent | LendWithdrawEvent | AumUpdatedEvent | KvaultDepositEvent | KvaultWithdrawEvent | JupLendDepositEvent | JupLendWithdrawEvent | ProtocolAddedEvent | ProtocolRemovedEvent | ManagerAddedEvent | ManagerRemovedEvent;
|
|
97
113
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/elemental-lend/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,MAAM,OAAO,CAAC;AACvB,OAAO,KAAK,EAAE,mBAAmB,EAAe,MAAM,8BAA8B,CAAC;AAMrF,wDAAwD;AACxD,MAAM,WAAW,iBAAkB,SAAQ,mBAAmB;IAC5D,KAAK,EAAE,SAAS,CAAC;IACjB,SAAS,EAAE,SAAS,EAAE,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;CACvB;AAGD,YAAY,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAMhE,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,qBAAqB,CAAC;IAC5B,aAAa,EAAE,SAAS,CAAC;IACzB,KAAK,EAAE,SAAS,CAAC;IACjB,QAAQ,EAAE,SAAS,CAAC;IACpB,SAAS,EAAE,SAAS,CAAC;CACtB;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,iBAAiB,CAAC;IACxB,aAAa,EAAE,SAAS,CAAC;IACzB,QAAQ,EAAE,SAAS,CAAC;IACpB,QAAQ,EAAE,SAAS,CAAC;IACpB,YAAY,EAAE,SAAS,CAAC;IACxB,YAAY,EAAE,SAAS,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,qBAAqB,CAAC;IAC5B,aAAa,EAAE,SAAS,CAAC;IACzB,GAAG,EAAE,SAAS,CAAC;CAChB;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,cAAc,CAAC;IACrB,aAAa,EAAE,SAAS,CAAC;IACzB,GAAG,EAAE,SAAS,CAAC;IACf,MAAM,EAAE,EAAE,CAAC;IACX,MAAM,EAAE,EAAE,CAAC;IACX,GAAG,EAAE,EAAE,CAAC;CACT;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,eAAe,CAAC;IACtB,aAAa,EAAE,SAAS,CAAC;IACzB,GAAG,EAAE,SAAS,CAAC;IACf,MAAM,EAAE,EAAE,CAAC;IACX,MAAM,EAAE,EAAE,CAAC;IACX,GAAG,EAAE,EAAE,CAAC;CACT;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,YAAY,CAAC;IACnB,aAAa,EAAE,SAAS,CAAC;IACzB,QAAQ,EAAE,EAAE,CAAC;IACb,GAAG,EAAE,EAAE,CAAC;IACR,WAAW,EAAE,EAAE,CAAC;CACjB;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,oBAAoB,CAAC;IAC3B,aAAa,EAAE,SAAS,CAAC;IACzB,MAAM,EAAE,EAAE,CAAC;IACX,cAAc,EAAE,EAAE,CAAC;IACnB,SAAS,EAAE,EAAE,CAAC;CACf;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,qBAAqB,CAAC;IAC5B,aAAa,EAAE,SAAS,CAAC;IACzB,MAAM,EAAE,EAAE,CAAC;IACX,YAAY,EAAE,EAAE,CAAC;IACjB,SAAS,EAAE,EAAE,CAAC;CACf;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,qBAAqB,CAAC;IAC5B,aAAa,EAAE,SAAS,CAAC;IACzB,MAAM,EAAE,EAAE,CAAC;IACX,eAAe,EAAE,EAAE,CAAC;IACpB,SAAS,EAAE,EAAE,CAAC;CACf;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,sBAAsB,CAAC;IAC7B,aAAa,EAAE,SAAS,CAAC;IACzB,MAAM,EAAE,EAAE,CAAC;IACX,aAAa,EAAE,EAAE,CAAC;IAClB,SAAS,EAAE,EAAE,CAAC;CACf;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,eAAe,CAAC;IACtB,aAAa,EAAE,SAAS,CAAC;IACzB,eAAe,EAAE,SAAS,CAAC;IAC3B,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,iBAAiB,CAAC;IACxB,aAAa,EAAE,SAAS,CAAC;IACzB,eAAe,EAAE,SAAS,CAAC;IAC3B,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,MAAM,SAAS,GACjB,wBAAwB,GACxB,oBAAoB,GACpB,wBAAwB,GACxB,gBAAgB,GAChB,iBAAiB,GACjB,eAAe,GACf,kBAAkB,GAClB,mBAAmB,GACnB,mBAAmB,GACnB,oBAAoB,GACpB,kBAAkB,GAClB,oBAAoB,CAAC"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/elemental-lend/types.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export * as common from "./common";
|
|
2
2
|
export * as pStvCore from "./p-stv-core";
|
|
3
3
|
export * as elementalLend from "./elemental-lend";
|
|
4
|
-
export * as
|
|
4
|
+
export * as jlpdStrategy from "./jlpd-strategy";
|
|
5
5
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,UAAU,CAAC;AACnC,OAAO,KAAK,QAAQ,MAAM,cAAc,CAAC;AACzC,OAAO,KAAK,aAAa,MAAM,kBAAkB,CAAC;AAClD,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,UAAU,CAAC;AACnC,OAAO,KAAK,QAAQ,MAAM,cAAc,CAAC;AACzC,OAAO,KAAK,aAAa,MAAM,kBAAkB,CAAC;AAClD,OAAO,KAAK,YAAY,MAAM,iBAAiB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -33,9 +33,9 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
33
33
|
};
|
|
34
34
|
})();
|
|
35
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
-
exports.
|
|
36
|
+
exports.jlpdStrategy = exports.elementalLend = exports.pStvCore = exports.common = void 0;
|
|
37
37
|
exports.common = __importStar(require("./common"));
|
|
38
38
|
exports.pStvCore = __importStar(require("./p-stv-core"));
|
|
39
39
|
exports.elementalLend = __importStar(require("./elemental-lend"));
|
|
40
|
-
exports.
|
|
40
|
+
exports.jlpdStrategy = __importStar(require("./jlpd-strategy"));
|
|
41
41
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,mDAAmC;AACnC,yDAAyC;AACzC,kEAAkD;AAClD,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,mDAAmC;AACnC,yDAAyC;AACzC,kEAAkD;AAClD,gEAAgD"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { Connection, PublicKey } from "@solana/web3.js";
|
|
2
|
+
import type { StvPosition } from "../common/strategy-interface";
|
|
3
|
+
import { JlpdConfig, ManagerRole, JlpStrategyState } from "./types";
|
|
4
|
+
export declare function deserializeJlpdConfig(data: Buffer): JlpdConfig;
|
|
5
|
+
/** @deprecated Use deserializeJlpdConfig instead */
|
|
6
|
+
export declare const deserializeJlpVault: typeof deserializeJlpdConfig;
|
|
7
|
+
export declare function deserializeManagerRole(data: Buffer): ManagerRole;
|
|
8
|
+
export declare function deserializeJlpStrategyState(data: Buffer): JlpStrategyState;
|
|
9
|
+
export declare function deserializeJlpStvPosition(data: Buffer): StvPosition;
|
|
10
|
+
export declare function fetchJlpdConfig(connection: Connection, programId?: PublicKey): Promise<JlpdConfig>;
|
|
11
|
+
/** @deprecated Use fetchJlpdConfig instead */
|
|
12
|
+
export declare const fetchJlpVault: typeof fetchJlpdConfig;
|
|
13
|
+
export declare function fetchJlpStrategyState(connection: Connection, baseMint: PublicKey, programId?: PublicKey): Promise<JlpStrategyState>;
|
|
14
|
+
export declare function fetchJlpStvPosition(connection: Connection, stv: PublicKey, programId?: PublicKey): Promise<StvPosition>;
|
|
15
|
+
export declare function fetchAllJlpStrategyStates(connection: Connection, programId?: PublicKey): Promise<[PublicKey, JlpStrategyState][]>;
|
|
16
|
+
export declare function fetchManagersForConfig(connection: Connection, config: PublicKey, programId?: PublicKey): Promise<[PublicKey, ManagerRole][]>;
|
|
17
|
+
//# sourceMappingURL=accounts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"accounts.d.ts","sourceRoot":"","sources":["../../src/jlpd-strategy/accounts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAGxD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAahE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAOpE,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,CAwB9D;AAED,oDAAoD;AACpD,eAAO,MAAM,mBAAmB,8BAAwB,CAAC;AAEzD,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,CAahE;AAED,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,CAsB1E;AAED,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,CASnE;AAMD,wBAAsB,eAAe,CACnC,UAAU,EAAE,UAAU,EACtB,SAAS,GAAE,SAAsB,GAChC,OAAO,CAAC,UAAU,CAAC,CAKrB;AAED,8CAA8C;AAC9C,eAAO,MAAM,aAAa,wBAAkB,CAAC;AAE7C,wBAAsB,qBAAqB,CACzC,UAAU,EAAE,UAAU,EACtB,QAAQ,EAAE,SAAS,EACnB,SAAS,GAAE,SAAsB,GAChC,OAAO,CAAC,gBAAgB,CAAC,CAK3B;AAED,wBAAsB,mBAAmB,CACvC,UAAU,EAAE,UAAU,EACtB,GAAG,EAAE,SAAS,EACd,SAAS,GAAE,SAAsB,GAChC,OAAO,CAAC,WAAW,CAAC,CAKtB;AAMD,wBAAsB,yBAAyB,CAC7C,UAAU,EAAE,UAAU,EACtB,SAAS,GAAE,SAAsB,GAChC,OAAO,CAAC,CAAC,SAAS,EAAE,gBAAgB,CAAC,EAAE,CAAC,CAQ1C;AAED,wBAAsB,sBAAsB,CAC1C,UAAU,EAAE,UAAU,EACtB,MAAM,EAAE,SAAS,EACjB,SAAS,GAAE,SAAsB,GAChC,OAAO,CAAC,CAAC,SAAS,EAAE,WAAW,CAAC,EAAE,CAAC,CASrC"}
|
|
@@ -1,12 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.deserializeJlpVault =
|
|
3
|
+
exports.fetchJlpVault = exports.deserializeJlpVault = void 0;
|
|
4
|
+
exports.deserializeJlpdConfig = deserializeJlpdConfig;
|
|
5
|
+
exports.deserializeManagerRole = deserializeManagerRole;
|
|
4
6
|
exports.deserializeJlpStrategyState = deserializeJlpStrategyState;
|
|
5
7
|
exports.deserializeJlpStvPosition = deserializeJlpStvPosition;
|
|
6
|
-
exports.
|
|
8
|
+
exports.fetchJlpdConfig = fetchJlpdConfig;
|
|
7
9
|
exports.fetchJlpStrategyState = fetchJlpStrategyState;
|
|
8
10
|
exports.fetchJlpStvPosition = fetchJlpStvPosition;
|
|
9
11
|
exports.fetchAllJlpStrategyStates = fetchAllJlpStrategyStates;
|
|
12
|
+
exports.fetchManagersForConfig = fetchManagersForConfig;
|
|
10
13
|
const buffer_1 = require("../common/buffer");
|
|
11
14
|
const strategy_interface_1 = require("../common/strategy-interface");
|
|
12
15
|
const constants_1 = require("./constants");
|
|
@@ -14,34 +17,43 @@ const pda_1 = require("./pda");
|
|
|
14
17
|
// ---------------------------------------------------------------------------
|
|
15
18
|
// Deserialization
|
|
16
19
|
// ---------------------------------------------------------------------------
|
|
17
|
-
function
|
|
18
|
-
if (data.length < constants_1.
|
|
19
|
-
throw new Error(`
|
|
20
|
+
function deserializeJlpdConfig(data) {
|
|
21
|
+
if (data.length < constants_1.JLPD_CONFIG_SIZE) {
|
|
22
|
+
throw new Error(`JlpdConfig data too short: ${data.length} < ${constants_1.JLPD_CONFIG_SIZE}`);
|
|
20
23
|
}
|
|
21
24
|
const disc = data.subarray(0, 8);
|
|
22
|
-
if (!disc.equals(constants_1.
|
|
23
|
-
throw new Error(`Invalid
|
|
25
|
+
if (!disc.equals(constants_1.DISC_JLPD_CONFIG)) {
|
|
26
|
+
throw new Error(`Invalid JlpdConfig discriminator`);
|
|
24
27
|
}
|
|
25
28
|
const baseAssetMints = [];
|
|
26
29
|
for (let i = 0; i < constants_1.NUM_ASSETS; i++) {
|
|
27
|
-
baseAssetMints.push((0, buffer_1.readPubkey)(data,
|
|
28
|
-
}
|
|
29
|
-
const jlxAssetMints = [];
|
|
30
|
-
for (let i = 0; i < constants_1.NUM_ASSETS; i++) {
|
|
31
|
-
jlxAssetMints.push((0, buffer_1.readPubkey)(data, 296 + i * 32));
|
|
30
|
+
baseAssetMints.push((0, buffer_1.readPubkey)(data, 72 + i * 32));
|
|
32
31
|
}
|
|
33
32
|
return {
|
|
34
33
|
admin: (0, buffer_1.readPubkey)(data, 8),
|
|
35
|
-
|
|
36
|
-
feeReceiver: (0, buffer_1.readPubkey)(data, 72),
|
|
37
|
-
jlpMint: (0, buffer_1.readPubkey)(data, 104),
|
|
34
|
+
jlpMint: (0, buffer_1.readPubkey)(data, 40),
|
|
38
35
|
baseAssetMints,
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
36
|
+
oracleStalenessTh: (0, buffer_1.readU64)(data, 232),
|
|
37
|
+
flags: (0, buffer_1.readU16)(data, 240),
|
|
38
|
+
jlpSlippageBps: (0, buffer_1.readU16)(data, 242),
|
|
39
|
+
version: (0, buffer_1.readU8)(data, 244),
|
|
40
|
+
bump: (0, buffer_1.readU8)(data, 245),
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
/** @deprecated Use deserializeJlpdConfig instead */
|
|
44
|
+
exports.deserializeJlpVault = deserializeJlpdConfig;
|
|
45
|
+
function deserializeManagerRole(data) {
|
|
46
|
+
if (data.length < constants_1.MANAGER_ROLE_SIZE) {
|
|
47
|
+
throw new Error(`ManagerRole data too short: ${data.length} < ${constants_1.MANAGER_ROLE_SIZE}`);
|
|
48
|
+
}
|
|
49
|
+
const disc = data.subarray(0, 8);
|
|
50
|
+
if (!disc.equals(constants_1.DISC_MANAGER_ROLE)) {
|
|
51
|
+
throw new Error(`Invalid ManagerRole discriminator`);
|
|
52
|
+
}
|
|
53
|
+
return {
|
|
54
|
+
config: (0, buffer_1.readPubkey)(data, 8),
|
|
55
|
+
manager: (0, buffer_1.readPubkey)(data, 40),
|
|
56
|
+
bump: (0, buffer_1.readU8)(data, 72),
|
|
45
57
|
};
|
|
46
58
|
}
|
|
47
59
|
function deserializeJlpStrategyState(data) {
|
|
@@ -64,9 +76,7 @@ function deserializeJlpStrategyState(data) {
|
|
|
64
76
|
version: (0, buffer_1.readU8)(data, 106),
|
|
65
77
|
bump: (0, buffer_1.readU8)(data, 107),
|
|
66
78
|
// Custom
|
|
67
|
-
|
|
68
|
-
jlMint: (0, buffer_1.readPubkey)(data, 144),
|
|
69
|
-
baseLoaned: (0, buffer_1.readU64)(data, 176),
|
|
79
|
+
baseLoaned: (0, buffer_1.readU64)(data, 112),
|
|
70
80
|
};
|
|
71
81
|
}
|
|
72
82
|
function deserializeJlpStvPosition(data) {
|
|
@@ -82,13 +92,15 @@ function deserializeJlpStvPosition(data) {
|
|
|
82
92
|
// ---------------------------------------------------------------------------
|
|
83
93
|
// Fetch Helpers
|
|
84
94
|
// ---------------------------------------------------------------------------
|
|
85
|
-
async function
|
|
86
|
-
const [pda] = (0, pda_1.
|
|
95
|
+
async function fetchJlpdConfig(connection, programId = constants_1.PROGRAM_ID) {
|
|
96
|
+
const [pda] = (0, pda_1.findJlpdConfigPda)(programId);
|
|
87
97
|
const info = await connection.getAccountInfo(pda);
|
|
88
98
|
if (!info)
|
|
89
|
-
throw new Error("
|
|
90
|
-
return
|
|
99
|
+
throw new Error("JlpdConfig account not found");
|
|
100
|
+
return deserializeJlpdConfig(info.data);
|
|
91
101
|
}
|
|
102
|
+
/** @deprecated Use fetchJlpdConfig instead */
|
|
103
|
+
exports.fetchJlpVault = fetchJlpdConfig;
|
|
92
104
|
async function fetchJlpStrategyState(connection, baseMint, programId = constants_1.PROGRAM_ID) {
|
|
93
105
|
const [pda] = (0, pda_1.findStrategyStatePda)(baseMint, programId);
|
|
94
106
|
const info = await connection.getAccountInfo(pda);
|
|
@@ -115,4 +127,14 @@ async function fetchAllJlpStrategyStates(connection, programId = constants_1.PRO
|
|
|
115
127
|
});
|
|
116
128
|
return accounts.map((a) => [a.pubkey, deserializeJlpStrategyState(a.account.data)]);
|
|
117
129
|
}
|
|
130
|
+
async function fetchManagersForConfig(connection, config, programId = constants_1.PROGRAM_ID) {
|
|
131
|
+
const accounts = await connection.getProgramAccounts(programId, {
|
|
132
|
+
filters: [
|
|
133
|
+
{ dataSize: constants_1.MANAGER_ROLE_SIZE },
|
|
134
|
+
{ memcmp: { offset: 0, bytes: constants_1.DISC_MANAGER_ROLE.toString("base64"), encoding: "base64" } },
|
|
135
|
+
{ memcmp: { offset: 8, bytes: config.toBase58() } },
|
|
136
|
+
],
|
|
137
|
+
});
|
|
138
|
+
return accounts.map((a) => [a.pubkey, deserializeManagerRole(a.account.data)]);
|
|
139
|
+
}
|
|
118
140
|
//# sourceMappingURL=accounts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"accounts.js","sourceRoot":"","sources":["../../src/jlpd-strategy/accounts.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { PublicKey } from "@solana/web3.js";
|
|
2
|
+
export declare const PROGRAM_ID: PublicKey;
|
|
3
|
+
export declare const PROGRAM_ID_MAINNET: PublicKey;
|
|
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;
|
|
19
|
+
export declare const CONFIG_SEED: Buffer<ArrayBuffer>;
|
|
20
|
+
export declare const MANAGER_SEED: Buffer<ArrayBuffer>;
|
|
21
|
+
export declare const STRATEGY_STATE_SEED: Buffer<ArrayBuffer>;
|
|
22
|
+
export declare const POSITION_SEED: Buffer<ArrayBuffer>;
|
|
23
|
+
/** @deprecated Use CONFIG_SEED instead */
|
|
24
|
+
export declare const JLP_VAULT_SEED: Buffer<ArrayBuffer>;
|
|
25
|
+
export declare const DISC_JLPD_CONFIG: Buffer<ArrayBuffer>;
|
|
26
|
+
export declare const DISC_MANAGER_ROLE: Buffer<ArrayBuffer>;
|
|
27
|
+
export declare const DISC_STRATEGY_STATE: Buffer<ArrayBuffer>;
|
|
28
|
+
export declare const DISC_STV_POSITION: Buffer<ArrayBuffer>;
|
|
29
|
+
/** @deprecated Use DISC_JLPD_CONFIG instead */
|
|
30
|
+
export declare const DISC_JLP_VAULT: Buffer<ArrayBuffer>;
|
|
31
|
+
export declare const IX_INIT_OR_UPDATE_CONFIG: Buffer<ArrayBuffer>;
|
|
32
|
+
export declare const IX_INIT_OR_UPDATE_STRATEGY_STATE: Buffer<ArrayBuffer>;
|
|
33
|
+
export declare const IX_INIT_POSITION: Buffer<ArrayBuffer>;
|
|
34
|
+
export declare const IX_CLOSE_POSITION: Buffer<ArrayBuffer>;
|
|
35
|
+
export declare const IX_DEPOSIT: Buffer<ArrayBuffer>;
|
|
36
|
+
export declare const IX_WITHDRAW: Buffer<ArrayBuffer>;
|
|
37
|
+
export declare const IX_UPDATE_AUM: Buffer<ArrayBuffer>;
|
|
38
|
+
export declare const IX_SWAP_JLP: Buffer<ArrayBuffer>;
|
|
39
|
+
export declare const IX_SETTLE_YIELD: Buffer<ArrayBuffer>;
|
|
40
|
+
export declare const IX_ADD_MANAGER: Buffer<ArrayBuffer>;
|
|
41
|
+
export declare const IX_REMOVE_MANAGER: Buffer<ArrayBuffer>;
|
|
42
|
+
/** @deprecated Use IX_INIT_OR_UPDATE_CONFIG instead */
|
|
43
|
+
export declare const IX_INIT_OR_UPDATE_JLP_VAULT: Buffer<ArrayBuffer>;
|
|
44
|
+
export declare const JLPD_CONFIG_SIZE = 272;
|
|
45
|
+
export declare const MANAGER_ROLE_SIZE = 80;
|
|
46
|
+
export declare const STRATEGY_STATE_SIZE = 160;
|
|
47
|
+
export declare const STV_POSITION_SIZE = 56;
|
|
48
|
+
/** @deprecated Use JLPD_CONFIG_SIZE instead */
|
|
49
|
+
export declare const JLP_VAULT_SIZE = 272;
|
|
50
|
+
export declare const FLAG_PAUSED = 1;
|
|
51
|
+
export declare const FLAG_DEPOSITS_DISABLED = 2;
|
|
52
|
+
export declare const FLAG_WITHDRAWALS_DISABLED = 4;
|
|
53
|
+
export declare const FLAG_JLP_DISABLED = 8;
|
|
54
|
+
export declare const FLAG_REBALANCE_DISABLED = 16;
|
|
55
|
+
export declare const FLAG_TEST_MODE = 32;
|
|
56
|
+
export declare const NUM_ASSETS = 5;
|
|
57
|
+
export declare const MAX_MGMT_FEE_BPS = 500;
|
|
58
|
+
export declare const MAX_PERF_FEE_BPS = 3000;
|
|
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>;
|
|
62
|
+
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -0,0 +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;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"}
|