@drift-labs/sdk 2.54.0-beta.1 → 2.54.0-beta.3
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/VERSION +1 -1
- package/lib/constants/perpMarkets.js +20 -0
- package/lib/math/superStake.d.ts +51 -0
- package/lib/math/superStake.js +7 -1
- package/package.json +1 -1
- package/src/constants/perpMarkets.ts +20 -0
- package/src/math/superStake.ts +57 -0
package/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
2.54.0-beta.
|
|
1
|
+
2.54.0-beta.3
|
|
@@ -224,6 +224,16 @@ exports.DevnetPerpMarkets = [
|
|
|
224
224
|
launchTs: 1703173331000,
|
|
225
225
|
oracleSource: __1.OracleSource.PYTH,
|
|
226
226
|
},
|
|
227
|
+
{
|
|
228
|
+
fullName: 'AVAX',
|
|
229
|
+
category: ['Rollup', 'Infra'],
|
|
230
|
+
symbol: 'AVAX-PERP',
|
|
231
|
+
baseAssetSymbol: 'AVAX',
|
|
232
|
+
marketIndex: 22,
|
|
233
|
+
oracle: new web3_js_1.PublicKey('FVb5h1VmHPfVb1RfqZckchq18GxRv4iKt8T4eVTQAqdz'),
|
|
234
|
+
launchTs: 1704209558000,
|
|
235
|
+
oracleSource: __1.OracleSource.PYTH,
|
|
236
|
+
},
|
|
227
237
|
];
|
|
228
238
|
exports.MainnetPerpMarkets = [
|
|
229
239
|
{
|
|
@@ -446,6 +456,16 @@ exports.MainnetPerpMarkets = [
|
|
|
446
456
|
launchTs: 1703173331000,
|
|
447
457
|
oracleSource: __1.OracleSource.PYTH,
|
|
448
458
|
},
|
|
459
|
+
{
|
|
460
|
+
fullName: 'AVAX',
|
|
461
|
+
category: ['Rollup', 'Infra'],
|
|
462
|
+
symbol: 'AVAX-PERP',
|
|
463
|
+
baseAssetSymbol: 'AVAX',
|
|
464
|
+
marketIndex: 22,
|
|
465
|
+
oracle: new web3_js_1.PublicKey('Ax9ujW5B9oqcv59N8m6f1BpTBq2rGeGaBcpKjC5UYsXU'),
|
|
466
|
+
launchTs: 1704209558000,
|
|
467
|
+
oracleSource: __1.OracleSource.PYTH,
|
|
468
|
+
},
|
|
449
469
|
];
|
|
450
470
|
exports.PerpMarkets = {
|
|
451
471
|
devnet: exports.DevnetPerpMarkets,
|
package/lib/math/superStake.d.ts
CHANGED
|
@@ -111,6 +111,57 @@ export type JITO_SOL_METRICS_ENDPOINT_RESPONSE = {
|
|
|
111
111
|
};
|
|
112
112
|
};
|
|
113
113
|
export declare function fetchJitoSolMetrics(): Promise<JITO_SOL_METRICS_ENDPOINT_RESPONSE>;
|
|
114
|
+
export type MSOL_METRICS_ENDPOINT_RESPONSE = {
|
|
115
|
+
total_active_balance: number;
|
|
116
|
+
available_reserve_balance: number;
|
|
117
|
+
emergency_cooling_down: number;
|
|
118
|
+
tvl_sol: number;
|
|
119
|
+
msol_directed_stake_sol: number;
|
|
120
|
+
msol_directed_stake_msol: number;
|
|
121
|
+
mnde_total_supply: number;
|
|
122
|
+
mnde_circulating_supply: number;
|
|
123
|
+
validators_count: number;
|
|
124
|
+
stake_accounts: number;
|
|
125
|
+
staking_sol_cap: number;
|
|
126
|
+
m_sol_price: number;
|
|
127
|
+
avg_staking_apy: number;
|
|
128
|
+
msol_price_apy_14d: number;
|
|
129
|
+
msol_price_apy_30d: number;
|
|
130
|
+
msol_price_apy_90d: number;
|
|
131
|
+
msol_price_apy_365d: number;
|
|
132
|
+
reserve_pda: number;
|
|
133
|
+
treasury_m_sol_amount: number;
|
|
134
|
+
m_sol_mint_supply: number;
|
|
135
|
+
m_sol_supply_state: number;
|
|
136
|
+
liq_pool_sol: number;
|
|
137
|
+
liq_pool_m_sol: number;
|
|
138
|
+
liq_pool_value: number;
|
|
139
|
+
liq_pool_token_supply: number;
|
|
140
|
+
liq_pool_token_price: number;
|
|
141
|
+
liq_pool_target: number;
|
|
142
|
+
liq_pool_min_fee: number;
|
|
143
|
+
liq_pool_max_fee: number;
|
|
144
|
+
liq_pool_current_fee: number;
|
|
145
|
+
liq_pool_treasury_cut: number;
|
|
146
|
+
liq_pool_cap: number;
|
|
147
|
+
total_cooling_down: number;
|
|
148
|
+
last_stake_delta_epoch: number;
|
|
149
|
+
circulating_ticket_count: number;
|
|
150
|
+
circulating_ticket_balance: number;
|
|
151
|
+
reward_fee_bp: number;
|
|
152
|
+
lido_staking: number;
|
|
153
|
+
lido_st_sol_price: number;
|
|
154
|
+
lido_stsol_price_apy_14d: number;
|
|
155
|
+
lido_stsol_price_apy_30d: number;
|
|
156
|
+
lido_stsol_price_apy_90d: number;
|
|
157
|
+
lido_stsol_price_apy_365d: number;
|
|
158
|
+
stake_delta: number;
|
|
159
|
+
bot_balance: number;
|
|
160
|
+
treasury_farm_claim_mnde_balance: number;
|
|
161
|
+
last_3_epochs_avg_duration_hs: number;
|
|
162
|
+
mnde_votes_validators: number;
|
|
163
|
+
};
|
|
164
|
+
export declare const fetchMSolMetrics: () => Promise<MSOL_METRICS_ENDPOINT_RESPONSE>;
|
|
114
165
|
export declare function calculateSolEarned({ marketIndex, user, depositRecords, }: {
|
|
115
166
|
marketIndex: number;
|
|
116
167
|
user: User;
|
package/lib/math/superStake.js
CHANGED
|
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.calculateEstimatedSuperStakeLiquidationPrice = exports.calculateSolEarned = exports.fetchJitoSolMetrics = exports.findBestLstSuperStakeIxs = exports.findBestJitoSolSuperStakeIxs = exports.findBestMSolSuperStakeIxs = exports.findBestSuperStakeIxs = exports.fetchBSolDriftEmissions = exports.fetchBSolMetrics = void 0;
|
|
6
|
+
exports.calculateEstimatedSuperStakeLiquidationPrice = exports.calculateSolEarned = exports.fetchMSolMetrics = exports.fetchJitoSolMetrics = exports.findBestLstSuperStakeIxs = exports.findBestJitoSolSuperStakeIxs = exports.findBestMSolSuperStakeIxs = exports.findBestSuperStakeIxs = exports.fetchBSolDriftEmissions = exports.fetchBSolMetrics = void 0;
|
|
7
7
|
const web3_js_1 = require("@solana/web3.js");
|
|
8
8
|
const marinade_1 = require("../marinade");
|
|
9
9
|
const anchor_1 = require("@coral-xyz/anchor");
|
|
@@ -194,6 +194,12 @@ async function fetchJitoSolMetrics() {
|
|
|
194
194
|
return data;
|
|
195
195
|
}
|
|
196
196
|
exports.fetchJitoSolMetrics = fetchJitoSolMetrics;
|
|
197
|
+
const fetchMSolMetrics = async () => {
|
|
198
|
+
const res = await (0, node_fetch_1.default)('https://api2.marinade.finance/metrics_json');
|
|
199
|
+
const data = await res.json();
|
|
200
|
+
return data;
|
|
201
|
+
};
|
|
202
|
+
exports.fetchMSolMetrics = fetchMSolMetrics;
|
|
197
203
|
const getJitoSolHistoricalPriceMap = async (timestamps) => {
|
|
198
204
|
try {
|
|
199
205
|
const data = await fetchJitoSolMetrics();
|
package/package.json
CHANGED
|
@@ -234,6 +234,16 @@ export const DevnetPerpMarkets: PerpMarketConfig[] = [
|
|
|
234
234
|
launchTs: 1703173331000,
|
|
235
235
|
oracleSource: OracleSource.PYTH,
|
|
236
236
|
},
|
|
237
|
+
{
|
|
238
|
+
fullName: 'AVAX',
|
|
239
|
+
category: ['Rollup', 'Infra'],
|
|
240
|
+
symbol: 'AVAX-PERP',
|
|
241
|
+
baseAssetSymbol: 'AVAX',
|
|
242
|
+
marketIndex: 22,
|
|
243
|
+
oracle: new PublicKey('FVb5h1VmHPfVb1RfqZckchq18GxRv4iKt8T4eVTQAqdz'),
|
|
244
|
+
launchTs: 1704209558000,
|
|
245
|
+
oracleSource: OracleSource.PYTH,
|
|
246
|
+
},
|
|
237
247
|
];
|
|
238
248
|
|
|
239
249
|
export const MainnetPerpMarkets: PerpMarketConfig[] = [
|
|
@@ -457,6 +467,16 @@ export const MainnetPerpMarkets: PerpMarketConfig[] = [
|
|
|
457
467
|
launchTs: 1703173331000,
|
|
458
468
|
oracleSource: OracleSource.PYTH,
|
|
459
469
|
},
|
|
470
|
+
{
|
|
471
|
+
fullName: 'AVAX',
|
|
472
|
+
category: ['Rollup', 'Infra'],
|
|
473
|
+
symbol: 'AVAX-PERP',
|
|
474
|
+
baseAssetSymbol: 'AVAX',
|
|
475
|
+
marketIndex: 22,
|
|
476
|
+
oracle: new PublicKey('Ax9ujW5B9oqcv59N8m6f1BpTBq2rGeGaBcpKjC5UYsXU'),
|
|
477
|
+
launchTs: 1704209558000,
|
|
478
|
+
oracleSource: OracleSource.PYTH,
|
|
479
|
+
},
|
|
460
480
|
];
|
|
461
481
|
|
|
462
482
|
export const PerpMarkets: { [key in DriftEnv]: PerpMarketConfig[] } = {
|
package/src/math/superStake.ts
CHANGED
|
@@ -333,6 +333,63 @@ export async function fetchJitoSolMetrics() {
|
|
|
333
333
|
return data;
|
|
334
334
|
}
|
|
335
335
|
|
|
336
|
+
export type MSOL_METRICS_ENDPOINT_RESPONSE = {
|
|
337
|
+
total_active_balance: number;
|
|
338
|
+
available_reserve_balance: number;
|
|
339
|
+
emergency_cooling_down: number;
|
|
340
|
+
tvl_sol: number;
|
|
341
|
+
msol_directed_stake_sol: number;
|
|
342
|
+
msol_directed_stake_msol: number;
|
|
343
|
+
mnde_total_supply: number;
|
|
344
|
+
mnde_circulating_supply: number;
|
|
345
|
+
validators_count: number;
|
|
346
|
+
stake_accounts: number;
|
|
347
|
+
staking_sol_cap: number;
|
|
348
|
+
m_sol_price: number;
|
|
349
|
+
avg_staking_apy: number;
|
|
350
|
+
msol_price_apy_14d: number;
|
|
351
|
+
msol_price_apy_30d: number;
|
|
352
|
+
msol_price_apy_90d: number;
|
|
353
|
+
msol_price_apy_365d: number;
|
|
354
|
+
reserve_pda: number;
|
|
355
|
+
treasury_m_sol_amount: number;
|
|
356
|
+
m_sol_mint_supply: number;
|
|
357
|
+
m_sol_supply_state: number;
|
|
358
|
+
liq_pool_sol: number;
|
|
359
|
+
liq_pool_m_sol: number;
|
|
360
|
+
liq_pool_value: number;
|
|
361
|
+
liq_pool_token_supply: number;
|
|
362
|
+
liq_pool_token_price: number;
|
|
363
|
+
liq_pool_target: number;
|
|
364
|
+
liq_pool_min_fee: number;
|
|
365
|
+
liq_pool_max_fee: number;
|
|
366
|
+
liq_pool_current_fee: number;
|
|
367
|
+
liq_pool_treasury_cut: number;
|
|
368
|
+
liq_pool_cap: number;
|
|
369
|
+
total_cooling_down: number;
|
|
370
|
+
last_stake_delta_epoch: number;
|
|
371
|
+
circulating_ticket_count: number;
|
|
372
|
+
circulating_ticket_balance: number;
|
|
373
|
+
reward_fee_bp: number;
|
|
374
|
+
lido_staking: number;
|
|
375
|
+
lido_st_sol_price: number;
|
|
376
|
+
lido_stsol_price_apy_14d: number;
|
|
377
|
+
lido_stsol_price_apy_30d: number;
|
|
378
|
+
lido_stsol_price_apy_90d: number;
|
|
379
|
+
lido_stsol_price_apy_365d: number;
|
|
380
|
+
stake_delta: number;
|
|
381
|
+
bot_balance: number;
|
|
382
|
+
treasury_farm_claim_mnde_balance: number;
|
|
383
|
+
last_3_epochs_avg_duration_hs: number;
|
|
384
|
+
mnde_votes_validators: number;
|
|
385
|
+
};
|
|
386
|
+
|
|
387
|
+
export const fetchMSolMetrics = async () => {
|
|
388
|
+
const res = await fetch('https://api2.marinade.finance/metrics_json');
|
|
389
|
+
const data: MSOL_METRICS_ENDPOINT_RESPONSE = await res.json();
|
|
390
|
+
return data;
|
|
391
|
+
};
|
|
392
|
+
|
|
336
393
|
const getJitoSolHistoricalPriceMap = async (timestamps: number[]) => {
|
|
337
394
|
try {
|
|
338
395
|
const data = await fetchJitoSolMetrics();
|