@carrot-protocol/clend-rpc 0.0.1-mrgn-fork1-dev-bc97fd7 → 0.0.3-mrgn-fork1-dev-e66607b
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/src/jupiterUtils.js +2 -2
- package/dist/src/jupiterUtils.js.map +1 -1
- package/dist/src/math.d.ts +35 -6
- package/dist/src/math.js +112 -13
- package/dist/src/math.js.map +1 -1
- package/dist/src/rpc.d.ts +32 -0
- package/dist/src/rpc.js +226 -138
- package/dist/src/rpc.js.map +1 -1
- package/dist/src/state.js +8 -12
- package/dist/src/state.js.map +1 -1
- package/package.json +1 -1
package/dist/src/jupiterUtils.js
CHANGED
|
@@ -52,12 +52,12 @@ class JupiterUtils {
|
|
|
52
52
|
const { swapTxs, lookupTables } = await swapTxFromQuote(payer, scaledQuoteResponse, {
|
|
53
53
|
slippageBps: quote.quoteResponse.slippageBps,
|
|
54
54
|
wrapAndUnwrapSol: false,
|
|
55
|
-
onlyDirectRoutes:
|
|
55
|
+
onlyDirectRoutes: true,
|
|
56
56
|
swapMode: quote.quoteResponse.swapMode,
|
|
57
57
|
});
|
|
58
58
|
return {
|
|
59
59
|
preActionIxs: [],
|
|
60
|
-
swapIxs: [...swapTxs.
|
|
60
|
+
swapIxs: [...swapTxs.swapIxs],
|
|
61
61
|
lookupTables,
|
|
62
62
|
};
|
|
63
63
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jupiterUtils.js","sourceRoot":"","sources":["../../src/jupiterUtils.ts"],"names":[],"mappings":";;;;;;AAwKA,sBA4BC;AAED,0CAgDC;AAED,sDAmBC;AAED,oDAIC;AAED,kDAYC;AA/RD,8CAA6C;AAC7C,4DAAiC;AACjC,qCASqB;AACrB,kDAA0B;AAE1B,MAAM,iBAAiB,GAAG,6BAA6B,CAAC;AACxD,MAAM,uBAAuB,GAAG,6BAA6B,CAAC;AAiD9D,MAAa,oBAAqB,SAAQ,KAAK;IAC7C,YACS,KAAoB,EACpB,IAAe;QAEtB,KAAK,CAAC,yBAAyB,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;QAH3D,UAAK,GAAL,KAAK,CAAe;QACpB,SAAI,GAAJ,IAAI,CAAW;IAGxB,CAAC;CACF;AAPD,oDAOC;AAuBD,yCAAyC;AACzC,MAAa,YAAY;IACvB,KAAK,CAAC,eAAe,CAAC,IAA6B;QACjD,MAAM,MAAM,GAAG;YACb,GAAG,EAAE,IAAI,CAAC,QAAQ,EAAE;SACrB,CAAC;QAEF,MAAM,GAAG,GAAG,MAAM,eAAK,CAAC,GAAG,CAAC,iBAAiB,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;QAC3D,OAAO,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,EAAE,KAAK,IAAI,CAAC,CAAC;IACpD,CAAC;IAED,KAAK,CAAC,eAAe,CACnB,SAAyB,EACzB,UAA0B,EAC1B,iBAAyB,EACzB,kBAA0B,EAC1B,mBAA4B,EAC5B,WAAmB,EACnB,WAAqB,SAAS;QAE9B,MAAM,aAAa,GAAG,MAAM,KAAK,CAC/B,SAAS,EACT,UAAU,EACV,mBAAmB,EACnB;YACE,WAAW,EAAE,WAAW;YACxB,gBAAgB,EAAE,KAAK;YACvB,gBAAgB,EAAE,IAAI;YACtB,QAAQ;SACT,CACF,CAAC;QAEF,MAAM,QAAQ,GAAG,IAAI,oBAAO,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,GAAG,CACtD,IAAI,oBAAO,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,iBAAiB,CAAC,CACvC,CAAC;QACF,MAAM,YAAY,GAAG,IAAI,oBAAO,CAAC,aAAa,CAAC,oBAAoB,CAAC,CAAC,GAAG,CACtE,IAAI,oBAAO,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,kBAAkB,CAAC,CACxC,CAAC;QACF,MAAM,eAAe,GAAG,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAEnD,OAAO;YACL,SAAS,EAAE,eAAe;YAC1B,aAAa;SACd,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,cAAc,CAClB,KAAqB,EACrB,MAAkB,EAClB,KAA+B;QAE/B,MAAM,mBAAmB,GAAG,qBAAqB,CAC/C,KAAK,CAAC,aAAc,EACpB,IAAI,oBAAO,CAAC,MAAM,CAAC,mBAAmB,CAAC,CACxC,CAAC;QACF,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,GAAG,MAAM,eAAe,CACrD,KAAK,EACL,mBAAmB,EACnB;YACE,WAAW,EAAE,KAAK,CAAC,aAAc,CAAC,WAAW;YAC7C,gBAAgB,EAAE,KAAK;YACvB,gBAAgB,EAAE,
|
|
1
|
+
{"version":3,"file":"jupiterUtils.js","sourceRoot":"","sources":["../../src/jupiterUtils.ts"],"names":[],"mappings":"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"}
|
package/dist/src/math.d.ts
CHANGED
|
@@ -204,13 +204,20 @@ export declare function computeWithdrawLeverageAmounts(currentCollateral: number
|
|
|
204
204
|
newLeverage: number;
|
|
205
205
|
};
|
|
206
206
|
/**
|
|
207
|
-
* Calculates the health factor of a Marginfi account.
|
|
208
|
-
* Health Factor = Total Weighted Liabilities (Maintenance) / Total Weighted Assets (Maintenance)
|
|
209
|
-
* A health factor < 0 indicates insolvency. Liquidation occurs when it approaches 0.
|
|
207
|
+
* Calculates the health factor and leverage of a Marginfi account using weighted maintenance values.
|
|
210
208
|
*
|
|
211
|
-
*
|
|
212
|
-
*
|
|
213
|
-
*
|
|
209
|
+
* Standard Health Factor = Total Weighted Assets (Maintenance) / Total Weighted Liabilities (Maintenance)
|
|
210
|
+
* Interpretation:
|
|
211
|
+
* - HF > 1: Position is overcollateralized (safe).
|
|
212
|
+
* - HF = 1: Position is at the liquidation threshold.
|
|
213
|
+
* - HF < 1: Position is undercollateralized and liquidatable.
|
|
214
|
+
* - HF = Infinity: Position has no debt (healthiest).
|
|
215
|
+
*
|
|
216
|
+
* Leverage = Total Weighted Assets (Maintenance) / (Total Weighted Assets (Maintenance) - Total Weighted Liabilities (Maintenance))
|
|
217
|
+
*
|
|
218
|
+
* @param weightedAssetValues - An array of the user's weighted asset values (maintenance).
|
|
219
|
+
* @param weightedLiabilityValues - An array of the user's weighted liability values (maintenance).
|
|
220
|
+
* @returns An object containing the healthFactor and leverage.
|
|
214
221
|
*/
|
|
215
222
|
export declare function calculateHealthFactorAndLeverage(weightedAssetValues: number[], weightedLiabilityValues: number[]): {
|
|
216
223
|
healthFactor: number;
|
|
@@ -232,3 +239,25 @@ export declare function calculateHealthFactorAndLeverage(weightedAssetValues: nu
|
|
|
232
239
|
* - protocolFeesAccrued: Protocol fees accrued (in token units)
|
|
233
240
|
*/
|
|
234
241
|
export declare function calculateAccruedInterest(lastUpdate: BN, assetAmountUi: number, liabilityAmountUi: number, utilizationRate: number, interestRateConfig: InterestRateConfig, currentTimestamp: number): BankAccruedInterest;
|
|
242
|
+
/**
|
|
243
|
+
* Adjusts the ideal borrow amount downwards to compensate for immediate costs
|
|
244
|
+
* (primarily origination fee + estimated short-term interest accrual).
|
|
245
|
+
*
|
|
246
|
+
* @param idealBorrowAmount - The ideally calculated borrow amount (native units, BN).
|
|
247
|
+
* @param originationFeeRate - The protocol origination fee rate (e.g., 0.01 for 1%).
|
|
248
|
+
* @param borrowApy - The current estimated borrow APY of the debt asset (e.g., 0.025 for 2.5%).
|
|
249
|
+
* @param debtDecimals - Decimals of the debt asset.
|
|
250
|
+
* @param estimatedTimeSec - Estimated seconds for immediate interest accrual effect (default: 1.5s).
|
|
251
|
+
* @returns Adjusted borrow amount (native units, BN), slightly less than ideal. Returns ideal amount if rates are zero.
|
|
252
|
+
*/
|
|
253
|
+
export declare function adjustBorrowForImmediateCosts(idealBorrowAmount: BN, originationFeeRate: number, borrowApy: number, estimatedTimeSec?: number): BN;
|
|
254
|
+
/**
|
|
255
|
+
* Adjusts a borrow amount upwards to compensate for potential swap slippage,
|
|
256
|
+
* assuming worst-case based on slippageBps.
|
|
257
|
+
*
|
|
258
|
+
* @param amountToAdjust - The borrow amount to adjust (native units, BN), typically after cost adjustments.
|
|
259
|
+
* @param slippageBps - The maximum slippage tolerance in basis points (e.g., 100 for 1%).
|
|
260
|
+
* @param debtDecimals - Decimals of the debt asset.
|
|
261
|
+
* @returns Adjusted borrow amount (native units, BN), slightly more than the input amount. Returns input amount if slippageBps is zero or invalid.
|
|
262
|
+
*/
|
|
263
|
+
export declare function adjustBorrowForSlippage(amountToAdjust: BN, slippageBps: number, debtDecimals: number): BN;
|
package/dist/src/math.js
CHANGED
|
@@ -20,7 +20,10 @@ exports.calculateWeightedLeverage = calculateWeightedLeverage;
|
|
|
20
20
|
exports.computeWithdrawLeverageAmounts = computeWithdrawLeverageAmounts;
|
|
21
21
|
exports.calculateHealthFactorAndLeverage = calculateHealthFactorAndLeverage;
|
|
22
22
|
exports.calculateAccruedInterest = calculateAccruedInterest;
|
|
23
|
+
exports.adjustBorrowForImmediateCosts = adjustBorrowForImmediateCosts;
|
|
24
|
+
exports.adjustBorrowForSlippage = adjustBorrowForSlippage;
|
|
23
25
|
const anchor_1 = require("@coral-xyz/anchor");
|
|
26
|
+
const decimal_js_1 = require("decimal.js");
|
|
24
27
|
/**
|
|
25
28
|
* Convert a UI number to a token amount BN
|
|
26
29
|
* @param uiAmount Amount in UI format (e.g., 1.5 USDC)
|
|
@@ -403,13 +406,20 @@ function computeWithdrawLeverageAmounts(currentCollateral, currentDebt, withdraw
|
|
|
403
406
|
};
|
|
404
407
|
}
|
|
405
408
|
/**
|
|
406
|
-
* Calculates the health factor of a Marginfi account.
|
|
407
|
-
* Health Factor = Total Weighted Liabilities (Maintenance) / Total Weighted Assets (Maintenance)
|
|
408
|
-
* A health factor < 0 indicates insolvency. Liquidation occurs when it approaches 0.
|
|
409
|
+
* Calculates the health factor and leverage of a Marginfi account using weighted maintenance values.
|
|
409
410
|
*
|
|
410
|
-
*
|
|
411
|
-
*
|
|
412
|
-
*
|
|
411
|
+
* Standard Health Factor = Total Weighted Assets (Maintenance) / Total Weighted Liabilities (Maintenance)
|
|
412
|
+
* Interpretation:
|
|
413
|
+
* - HF > 1: Position is overcollateralized (safe).
|
|
414
|
+
* - HF = 1: Position is at the liquidation threshold.
|
|
415
|
+
* - HF < 1: Position is undercollateralized and liquidatable.
|
|
416
|
+
* - HF = Infinity: Position has no debt (healthiest).
|
|
417
|
+
*
|
|
418
|
+
* Leverage = Total Weighted Assets (Maintenance) / (Total Weighted Assets (Maintenance) - Total Weighted Liabilities (Maintenance))
|
|
419
|
+
*
|
|
420
|
+
* @param weightedAssetValues - An array of the user's weighted asset values (maintenance).
|
|
421
|
+
* @param weightedLiabilityValues - An array of the user's weighted liability values (maintenance).
|
|
422
|
+
* @returns An object containing the healthFactor and leverage.
|
|
413
423
|
*/
|
|
414
424
|
function calculateHealthFactorAndLeverage(weightedAssetValues, weightedLiabilityValues) {
|
|
415
425
|
let totalWeightedAssets = 0;
|
|
@@ -420,17 +430,31 @@ function calculateHealthFactorAndLeverage(weightedAssetValues, weightedLiability
|
|
|
420
430
|
for (const weightedLiabilityValue of weightedLiabilityValues) {
|
|
421
431
|
totalWeightedLiabilities += weightedLiabilityValue;
|
|
422
432
|
}
|
|
423
|
-
// Calculate health factor
|
|
424
|
-
let healthFactor
|
|
425
|
-
if (totalWeightedLiabilities
|
|
426
|
-
|
|
433
|
+
// Calculate health factor using standard convention (Assets / Liabilities)
|
|
434
|
+
let healthFactor;
|
|
435
|
+
if (totalWeightedLiabilities === 0) {
|
|
436
|
+
// Handle division by zero: No liabilities means infinite health
|
|
437
|
+
healthFactor = Infinity;
|
|
438
|
+
}
|
|
439
|
+
else if (totalWeightedAssets === 0) {
|
|
440
|
+
// Handle edge case where assets are zero but liabilities are not (should imply HF=0)
|
|
441
|
+
healthFactor = 0;
|
|
442
|
+
}
|
|
443
|
+
else {
|
|
444
|
+
// Standard calculation
|
|
445
|
+
healthFactor = totalWeightedAssets / totalWeightedLiabilities;
|
|
427
446
|
}
|
|
428
|
-
// Calculate leverage
|
|
429
|
-
let leverage =
|
|
447
|
+
// Calculate leverage (same formula as before, using weighted values)
|
|
448
|
+
let leverage = 0; // Default to 0 if equity is zero or negative
|
|
430
449
|
const equity = totalWeightedAssets - totalWeightedLiabilities;
|
|
431
|
-
if (equity > 0) {
|
|
450
|
+
if (equity > 0 && totalWeightedAssets > 0) {
|
|
451
|
+
// Ensure equity is positive and avoid division by zero if assets are zero
|
|
432
452
|
leverage = totalWeightedAssets / equity;
|
|
433
453
|
}
|
|
454
|
+
else if (totalWeightedAssets > 0 && totalWeightedLiabilities === 0) {
|
|
455
|
+
// If only assets exist, leverage is 1x
|
|
456
|
+
leverage = 1;
|
|
457
|
+
}
|
|
434
458
|
return { healthFactor, leverage };
|
|
435
459
|
}
|
|
436
460
|
/**
|
|
@@ -506,4 +530,79 @@ function calculateAccruedInterest(lastUpdate, assetAmountUi, liabilityAmountUi,
|
|
|
506
530
|
protocolFeesAccrued,
|
|
507
531
|
};
|
|
508
532
|
}
|
|
533
|
+
const SECONDS_PER_YEAR = new decimal_js_1.Decimal(365.25 * 24 * 60 * 60);
|
|
534
|
+
/**
|
|
535
|
+
* Adjusts the ideal borrow amount downwards to compensate for immediate costs
|
|
536
|
+
* (primarily origination fee + estimated short-term interest accrual).
|
|
537
|
+
*
|
|
538
|
+
* @param idealBorrowAmount - The ideally calculated borrow amount (native units, BN).
|
|
539
|
+
* @param originationFeeRate - The protocol origination fee rate (e.g., 0.01 for 1%).
|
|
540
|
+
* @param borrowApy - The current estimated borrow APY of the debt asset (e.g., 0.025 for 2.5%).
|
|
541
|
+
* @param debtDecimals - Decimals of the debt asset.
|
|
542
|
+
* @param estimatedTimeSec - Estimated seconds for immediate interest accrual effect (default: 1.5s).
|
|
543
|
+
* @returns Adjusted borrow amount (native units, BN), slightly less than ideal. Returns ideal amount if rates are zero.
|
|
544
|
+
*/
|
|
545
|
+
function adjustBorrowForImmediateCosts(idealBorrowAmount, originationFeeRate, borrowApy, estimatedTimeSec = 1.5) {
|
|
546
|
+
const costRate = new decimal_js_1.Decimal(originationFeeRate);
|
|
547
|
+
const interestRatePerSecond = new decimal_js_1.Decimal(borrowApy).div(SECONDS_PER_YEAR);
|
|
548
|
+
const estimatedInterestRate = interestRatePerSecond.mul(estimatedTimeSec);
|
|
549
|
+
// Combine origination fee rate and estimated interest rate for the period
|
|
550
|
+
const totalEffectiveCostRate = costRate.add(estimatedInterestRate);
|
|
551
|
+
if (totalEffectiveCostRate.isZero() || totalEffectiveCostRate.isNegative()) {
|
|
552
|
+
return idealBorrowAmount; // No adjustment if no cost
|
|
553
|
+
}
|
|
554
|
+
// Formula: B_actual ≈ B_ideal / (1 + totalEffectiveCostRate)
|
|
555
|
+
// We borrow slightly less to account for the cost being added to liability
|
|
556
|
+
const denominator = new decimal_js_1.Decimal(1).add(totalEffectiveCostRate);
|
|
557
|
+
// Should not happen with valid inputs, but safety check
|
|
558
|
+
if (denominator.isZero() ||
|
|
559
|
+
denominator.isNaN() ||
|
|
560
|
+
!denominator.isFinite() ||
|
|
561
|
+
denominator.isNegative()) {
|
|
562
|
+
console.warn("Invalid denominator in cost adjustment, returning ideal amount");
|
|
563
|
+
return idealBorrowAmount;
|
|
564
|
+
}
|
|
565
|
+
const idealBorrowDecimal = new decimal_js_1.Decimal(idealBorrowAmount.toString());
|
|
566
|
+
const adjustedBorrowDecimal = idealBorrowDecimal.div(denominator);
|
|
567
|
+
// Round down when reducing amount due to costs
|
|
568
|
+
const adjustedBorrowAmount = new anchor_1.BN(adjustedBorrowDecimal.floor().toFixed());
|
|
569
|
+
// Ensure we don't adjust below zero
|
|
570
|
+
return anchor_1.BN.max(adjustedBorrowAmount, new anchor_1.BN(0));
|
|
571
|
+
}
|
|
572
|
+
/**
|
|
573
|
+
* Adjusts a borrow amount upwards to compensate for potential swap slippage,
|
|
574
|
+
* assuming worst-case based on slippageBps.
|
|
575
|
+
*
|
|
576
|
+
* @param amountToAdjust - The borrow amount to adjust (native units, BN), typically after cost adjustments.
|
|
577
|
+
* @param slippageBps - The maximum slippage tolerance in basis points (e.g., 100 for 1%).
|
|
578
|
+
* @param debtDecimals - Decimals of the debt asset.
|
|
579
|
+
* @returns Adjusted borrow amount (native units, BN), slightly more than the input amount. Returns input amount if slippageBps is zero or invalid.
|
|
580
|
+
*/
|
|
581
|
+
function adjustBorrowForSlippage(amountToAdjust, slippageBps, debtDecimals) {
|
|
582
|
+
if (slippageBps <= 0) {
|
|
583
|
+
return amountToAdjust; // No adjustment if no slippage tolerance
|
|
584
|
+
}
|
|
585
|
+
const S = new decimal_js_1.Decimal(slippageBps).div(10000); // Slippage factor S as decimal
|
|
586
|
+
// Ensure S is less than 1 (100% slippage)
|
|
587
|
+
if (S.gte(1)) {
|
|
588
|
+
console.warn(`Slippage factor ${S.toString()} is >= 100%, returning original amount.`);
|
|
589
|
+
return amountToAdjust;
|
|
590
|
+
}
|
|
591
|
+
// Formula: B_actual ≈ B_ideal / (1 - S)
|
|
592
|
+
// We borrow slightly more, anticipating the swap output will be worth less by factor S.
|
|
593
|
+
const denominator = new decimal_js_1.Decimal(1).sub(S);
|
|
594
|
+
// Should not happen with S < 1, but safety check
|
|
595
|
+
if (denominator.isZero() ||
|
|
596
|
+
denominator.isNaN() ||
|
|
597
|
+
!denominator.isFinite() ||
|
|
598
|
+
denominator.isNegative()) {
|
|
599
|
+
console.warn("Invalid denominator in slippage adjustment, returning input amount");
|
|
600
|
+
return amountToAdjust;
|
|
601
|
+
}
|
|
602
|
+
const amountToAdjustDecimal = new decimal_js_1.Decimal(amountToAdjust.toString());
|
|
603
|
+
const adjustedBorrowDecimal = amountToAdjustDecimal.div(denominator);
|
|
604
|
+
// Round up when increasing amount due to needing more input for slippage
|
|
605
|
+
const adjustedBorrowAmount = new anchor_1.BN(adjustedBorrowDecimal.ceil().toFixed());
|
|
606
|
+
return adjustedBorrowAmount;
|
|
607
|
+
}
|
|
509
608
|
//# sourceMappingURL=math.js.map
|
package/dist/src/math.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"math.js","sourceRoot":"","sources":["../../src/math.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"math.js","sourceRoot":"","sources":["../../src/math.ts"],"names":[],"mappings":"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"}
|
package/dist/src/rpc.d.ts
CHANGED
|
@@ -51,7 +51,39 @@ export declare class ClendClient {
|
|
|
51
51
|
editGlobalFeeState(clendGroup: web3.PublicKey, newGlobalFeeWallet: web3.PublicKey | null, newBankInitFlatSolFee: number | null, newProgramFeeFixed: number | null, newProgramFeeRate: number | null): Promise<string>;
|
|
52
52
|
configureBankInterestRate(clendGroup: web3.PublicKey, bank: web3.PublicKey, interestRateConfig: InterestRateConfigOpt): Promise<string>;
|
|
53
53
|
depositLeverage(clendGroup: web3.PublicKey, clendAccount: web3.PublicKey | null, collateralMint: web3.PublicKey, debtMint: web3.PublicKey, depositAmount: BN, targetLeverage: number, slippageBps: number): Promise<string>;
|
|
54
|
+
getDepositLeverageIxns(clendGroup: web3.PublicKey, user: web3.PublicKey, clendAccount: web3.PublicKey | null, collateralMint: web3.PublicKey, debtMint: web3.PublicKey, debtMintDecimals: number, collateralMintDecimals: number, borrowAmount: BN, depositAmount: BN, slippageBps: number, additionalIxnCount: number): Promise<{
|
|
55
|
+
ixns: web3.TransactionInstruction[];
|
|
56
|
+
luts: web3.PublicKey[];
|
|
57
|
+
}>;
|
|
58
|
+
getDepositLeverageParams(clendGroup: web3.PublicKey, collateralMint: web3.PublicKey, debtMint: web3.PublicKey, depositAmount: BN, targetLeverage: number): Promise<{
|
|
59
|
+
borrowAmount: BN;
|
|
60
|
+
totalDepositAmountUi: BN;
|
|
61
|
+
debtBankData: Bank;
|
|
62
|
+
collateralBankData: Bank;
|
|
63
|
+
}>;
|
|
54
64
|
withdrawLeverage(clendGroup: web3.PublicKey, clendAccount: web3.PublicKey, collateralMint: web3.PublicKey, debtMint: web3.PublicKey, withdrawAmount: BN, withdrawAll: boolean, slippageBps: number): Promise<string>;
|
|
65
|
+
getWithdrawLeverageIxns(clendGroup: web3.PublicKey, clendAccount: web3.PublicKey, collateralMint: web3.PublicKey, debtMint: web3.PublicKey, collateralDecimals: number, debtDecimals: number, withdrawAll: boolean, debtToRepay: BN, collateralToWithdraw: BN, slippageBps: number, additionalIxnCount: number): Promise<{
|
|
66
|
+
ixns: web3.TransactionInstruction[];
|
|
67
|
+
luts: web3.PublicKey[];
|
|
68
|
+
}>;
|
|
69
|
+
getWithdrawLeverageParams(clendGroup: web3.PublicKey, clendAccount: web3.PublicKey, collateralMint: web3.PublicKey, debtMint: web3.PublicKey, withdrawAmount: BN, withdrawAll: boolean): Promise<{
|
|
70
|
+
debtToRepay: BN;
|
|
71
|
+
collateralToWithdraw: BN;
|
|
72
|
+
collateralBankData: Bank;
|
|
73
|
+
debtBankData: Bank;
|
|
74
|
+
}>;
|
|
55
75
|
adjustLeverage(clendGroup: web3.PublicKey, clendAccount: web3.PublicKey, collateralMint: web3.PublicKey, debtMint: web3.PublicKey, targetLeverage: number, slippageBps: number): Promise<string>;
|
|
76
|
+
getAdjustLeverageParams(clendGroup: web3.PublicKey, clendAccount: web3.PublicKey, collateralMint: web3.PublicKey, debtMint: web3.PublicKey, targetLeverage: number): Promise<{
|
|
77
|
+
collateralDeltaUi: number;
|
|
78
|
+
debtDeltaUi: number;
|
|
79
|
+
isIncrease: boolean;
|
|
80
|
+
collateralBankData: Bank;
|
|
81
|
+
debtBankData: Bank;
|
|
82
|
+
}>;
|
|
83
|
+
getAdjustLeverageIxns(clendGroup: web3.PublicKey, clendAccount: web3.PublicKey, user: web3.PublicKey, debtBankData: Bank, collateralBankData: Bank, isIncrease: boolean, debtDeltaUi: number, slippageBps: number, additionalIxnCount: number): Promise<{
|
|
84
|
+
ixns: web3.TransactionInstruction[];
|
|
85
|
+
luts: web3.PublicKey[];
|
|
86
|
+
}>;
|
|
56
87
|
getEvents(txSigs: string[]): Promise<any[]>;
|
|
88
|
+
getAccountsForAuthority(group: web3.PublicKey, authority: web3.PublicKey): Promise<web3.PublicKey[]>;
|
|
57
89
|
}
|
package/dist/src/rpc.js
CHANGED
|
@@ -199,9 +199,9 @@ class ClendClient {
|
|
|
199
199
|
emissionsRemaining: (0, utils_1.wrappedI80F48toBigNumber)(data.emissionsRemaining),
|
|
200
200
|
emissionsMint: new anchor_1.web3.PublicKey(data.emissionsMint),
|
|
201
201
|
collectedProgramFeesOutstanding: Number((0, utils_1.wrappedI80F48toBigNumber)(data.collectedProgramFeesOutstanding)),
|
|
202
|
-
assetAmount,
|
|
202
|
+
assetAmount: new anchor_1.BN(assetAmount.toFixed(0)),
|
|
203
203
|
assetAmountUi,
|
|
204
|
-
liabilityAmount,
|
|
204
|
+
liabilityAmount: new anchor_1.BN(liabilityAmount.toFixed(0)),
|
|
205
205
|
liabilityAmountUi,
|
|
206
206
|
utilizationRate,
|
|
207
207
|
baseInterestRate,
|
|
@@ -400,43 +400,19 @@ class ClendClient {
|
|
|
400
400
|
return this.send([ix]);
|
|
401
401
|
}
|
|
402
402
|
async depositLeverage(clendGroup, clendAccount, collateralMint, debtMint, depositAmount, targetLeverage, slippageBps) {
|
|
403
|
+
const params = await this.getDepositLeverageParams(clendGroup, collateralMint, debtMint, depositAmount, targetLeverage);
|
|
404
|
+
const { ixns, luts } = await this.getDepositLeverageIxns(clendGroup, this.address(), clendAccount, collateralMint, debtMint, params.debtBankData.mintDecimals, params.collateralBankData.mintDecimals, params.borrowAmount, depositAmount, slippageBps, 0);
|
|
405
|
+
return this.send(ixns, [], luts);
|
|
406
|
+
}
|
|
407
|
+
async getDepositLeverageIxns(clendGroup, user, clendAccount, collateralMint, debtMint, debtMintDecimals, collateralMintDecimals, borrowAmount, depositAmount, slippageBps, additionalIxnCount) {
|
|
403
408
|
// Get token programs
|
|
404
409
|
const collateralTokenProgram = (0, utils_1.getTokenProgramForMint)(collateralMint);
|
|
405
410
|
const debtTokenProgram = (0, utils_1.getTokenProgramForMint)(debtMint);
|
|
406
|
-
// Get decimals
|
|
407
|
-
const collateralDecimals = (0, utils_1.getTokenDecimalsForMint)(collateralMint);
|
|
408
|
-
const debtDecimals = (0, utils_1.getTokenDecimalsForMint)(debtMint);
|
|
409
|
-
// Get bank addrs
|
|
410
|
-
const collateralBank = (0, addresses_1.getBankPda)(clendGroup, collateralMint);
|
|
411
411
|
const debtBank = (0, addresses_1.getBankPda)(clendGroup, debtMint);
|
|
412
|
-
|
|
413
|
-
const collateralBankData = await this.getBank(collateralBank);
|
|
414
|
-
const debtBankData = await this.getBank(debtBank);
|
|
415
|
-
// Derive token accounts
|
|
416
|
-
const userCollateralAta = (0, spl_token_1.getAssociatedTokenAddressSync)(collateralMint, this.address(), true, collateralTokenProgram);
|
|
417
|
-
const userDebtAta = (0, spl_token_1.getAssociatedTokenAddressSync)(debtMint, this.address(), true, debtTokenProgram);
|
|
418
|
-
// Calculate borrow amount based on target leverage
|
|
419
|
-
const depositAmountUI = (0, math_1.amountToUi)(depositAmount, collateralDecimals);
|
|
420
|
-
// Get current prices from Jupiter
|
|
421
|
-
const collateralPrice = await this.getJupiterPrice(collateralMint);
|
|
422
|
-
const debtPrice = await this.getJupiterPrice(debtMint);
|
|
423
|
-
// Calculate collateral value in debt token terms
|
|
424
|
-
const { borrowAmountUi } = (0, math_1.computeLoopingAmounts)(depositAmountUI, targetLeverage, collateralPrice, debtPrice, collateralBankData.config.assetWeightMaint, debtBankData.config.liabilityWeightMaint);
|
|
425
|
-
const borrowAmount = (0, math_1.uiToAmount)(borrowAmountUi, debtDecimals);
|
|
426
|
-
utils_1.logger.info("depositLeverage params calculated", {
|
|
427
|
-
borrowAmount: borrowAmount.toString(),
|
|
428
|
-
borrowAmountUi,
|
|
429
|
-
depositAmount: depositAmount.toString(),
|
|
430
|
-
depositAmountUI,
|
|
431
|
-
collateralPrice,
|
|
432
|
-
debtPrice,
|
|
433
|
-
collateralDecimals,
|
|
434
|
-
debtDecimals,
|
|
435
|
-
targetLeverage,
|
|
436
|
-
});
|
|
412
|
+
const collateralBank = (0, addresses_1.getBankPda)(clendGroup, collateralMint);
|
|
437
413
|
// Get Jupiter quote for swapping debt token to collateral token
|
|
438
414
|
const swapMode = api_1.SwapMode.ExactIn;
|
|
439
|
-
const swapQuote = await this.getJupiterQuote(debtMint, collateralMint,
|
|
415
|
+
const swapQuote = await this.getJupiterQuote(debtMint, collateralMint, debtMintDecimals, collateralMintDecimals, new decimal_js_1.default(borrowAmount.toString()), slippageBps, swapMode);
|
|
440
416
|
utils_1.logger.debug("depositLeverage swapQuote", {
|
|
441
417
|
inAmount: swapQuote.quoteResponse.inAmount,
|
|
442
418
|
outAmount: swapQuote.quoteResponse.outAmount,
|
|
@@ -449,7 +425,7 @@ class ClendClient {
|
|
|
449
425
|
utils_1.logger.info("Creating init clend account ix");
|
|
450
426
|
// create clend account
|
|
451
427
|
const clendAccountKp = anchor_1.web3.Keypair.generate();
|
|
452
|
-
const ix = await this.instructions.initializeClendAccount(clendGroup,
|
|
428
|
+
const ix = await this.instructions.initializeClendAccount(clendGroup, user, clendAccountKp);
|
|
453
429
|
initClendAccountIx = ix;
|
|
454
430
|
additionalSigners.push(clendAccountKp);
|
|
455
431
|
clendAccount = clendAccountKp.publicKey;
|
|
@@ -484,13 +460,15 @@ class ClendClient {
|
|
|
484
460
|
inputMint: debtMint,
|
|
485
461
|
outputMint: collateralMint,
|
|
486
462
|
};
|
|
487
|
-
const swapIxs = await this.getJupiterSwap(
|
|
463
|
+
const swapIxs = await this.getJupiterSwap(user, swapInputs, swapQuote);
|
|
488
464
|
// Calculate additional collateral from swap
|
|
489
465
|
const additionalCollateralAmount = new anchor_1.BN(swapQuote.quoteResponse.outAmount);
|
|
490
466
|
const totalCollateralAmount = depositAmount.add(additionalCollateralAmount);
|
|
467
|
+
const userDebtAta = (0, spl_token_1.getAssociatedTokenAddressSync)(debtMint, user, true, debtTokenProgram);
|
|
468
|
+
const userCollateralAta = (0, spl_token_1.getAssociatedTokenAddressSync)(collateralMint, user, true, collateralTokenProgram);
|
|
491
469
|
// Create transaction instructions in correct order
|
|
492
|
-
const borrowIx = await this.instructions.borrow(clendGroup, clendAccount,
|
|
493
|
-
const depositIx = await this.instructions.deposit(clendGroup, clendAccount,
|
|
470
|
+
const borrowIx = await this.instructions.borrow(clendGroup, clendAccount, user, debtBank, userDebtAta, debtTokenProgram, borrowAmount, remainingAccounts);
|
|
471
|
+
const depositIx = await this.instructions.deposit(clendGroup, clendAccount, user, collateralBank, userCollateralAta, collateralTokenProgram, totalCollateralAmount, remainingAccounts);
|
|
494
472
|
// add lending and swap instructions
|
|
495
473
|
const ixnsWithoutFlashLoan = [
|
|
496
474
|
borrowIx,
|
|
@@ -509,26 +487,145 @@ class ClendClient {
|
|
|
509
487
|
const endIndex = new anchor_1.BN(cuIxns +
|
|
510
488
|
ixnsWithoutFlashLoan.length +
|
|
511
489
|
addInitClendAccountIncrement +
|
|
512
|
-
startFlashLoanIncrement
|
|
513
|
-
|
|
490
|
+
startFlashLoanIncrement +
|
|
491
|
+
additionalIxnCount);
|
|
492
|
+
const { beginFlashLoanIx, endFlashLoanIx } = await this.instructions.createFlashLoanInstructions(clendAccount, user, endIndex, remainingAccounts);
|
|
514
493
|
const ixns = [
|
|
515
494
|
...initClendAccountIxns,
|
|
516
495
|
beginFlashLoanIx,
|
|
517
496
|
...ixnsWithoutFlashLoan,
|
|
518
497
|
endFlashLoanIx,
|
|
519
498
|
];
|
|
520
|
-
|
|
521
|
-
|
|
499
|
+
return { ixns, luts: swapIxs.lookupTables };
|
|
500
|
+
}
|
|
501
|
+
async getDepositLeverageParams(clendGroup, collateralMint, debtMint, depositAmount, targetLeverage) {
|
|
502
|
+
// Get decimals
|
|
503
|
+
const collateralDecimals = (0, utils_1.getTokenDecimalsForMint)(collateralMint);
|
|
504
|
+
const debtDecimals = (0, utils_1.getTokenDecimalsForMint)(debtMint);
|
|
505
|
+
// Get bank addrs
|
|
506
|
+
const debtBank = (0, addresses_1.getBankPda)(clendGroup, debtMint);
|
|
507
|
+
const collateralBank = (0, addresses_1.getBankPda)(clendGroup, collateralMint);
|
|
508
|
+
// Get bank data
|
|
509
|
+
const debtBankData = await this.getBank(debtBank);
|
|
510
|
+
const collateralBankData = await this.getBank(collateralBank);
|
|
511
|
+
// Calculate borrow amount based on target leverage
|
|
512
|
+
const depositAmountUI = (0, math_1.amountToUi)(depositAmount, collateralDecimals);
|
|
513
|
+
// Get current prices from Jupiter
|
|
514
|
+
const collateralPrice = await this.getJupiterPrice(collateralMint);
|
|
515
|
+
const debtPrice = await this.getJupiterPrice(debtMint);
|
|
516
|
+
// Calculate collateral value in debt token terms
|
|
517
|
+
const { borrowAmountUi, totalDepositAmountUi } = (0, math_1.computeLoopingAmounts)(depositAmountUI, targetLeverage, collateralPrice, debtPrice, 1, 1);
|
|
518
|
+
const borrowAmount = (0, math_1.uiToAmount)(borrowAmountUi, debtDecimals);
|
|
519
|
+
// get required borrow data
|
|
520
|
+
const borrowApy = debtBankData.borrowApy;
|
|
521
|
+
const originationFeeRate = debtBankData.config.interestRateConfig.protocolOriginationFee;
|
|
522
|
+
// adjust borrow amount for borrowing costs
|
|
523
|
+
const borrowAmountAfterBorrowingCosts = (0, math_1.adjustBorrowForImmediateCosts)(borrowAmount, originationFeeRate, borrowApy, 0);
|
|
524
|
+
//// 3. Adjust for Slippage (Borrow MORE)
|
|
525
|
+
//// Apply slippage adjustment to the amount already adjusted for costs
|
|
526
|
+
//const finalBorrowAmount = adjustBorrowForSlippage(
|
|
527
|
+
// borrowAmountAfterBorrowingCosts, // Input the cost-adjusted amount
|
|
528
|
+
// slippageBps,
|
|
529
|
+
// debtDecimals,
|
|
530
|
+
//);
|
|
531
|
+
const finalBorrowAmount = borrowAmountAfterBorrowingCosts;
|
|
532
|
+
const finalBorrowAmountUi = (0, math_1.amountToUi)(finalBorrowAmount, debtDecimals);
|
|
533
|
+
utils_1.logger.info("depositLeverage params calculated", {
|
|
534
|
+
borrowAmount: borrowAmount.toString(),
|
|
535
|
+
borrowAmountAfterBorrowingCosts: borrowAmountAfterBorrowingCosts.toString(),
|
|
536
|
+
finalBorrowAmount: finalBorrowAmount.toString(),
|
|
537
|
+
finalBorrowAmountUi,
|
|
538
|
+
borrowAmountUi,
|
|
539
|
+
depositAmount: depositAmount.toString(),
|
|
540
|
+
depositAmountUI,
|
|
541
|
+
collateralPrice,
|
|
542
|
+
debtPrice,
|
|
543
|
+
collateralDecimals,
|
|
544
|
+
debtDecimals,
|
|
545
|
+
targetLeverage,
|
|
546
|
+
expectedTotalDepositAmountUi: totalDepositAmountUi,
|
|
547
|
+
});
|
|
548
|
+
return {
|
|
549
|
+
borrowAmount,
|
|
550
|
+
totalDepositAmountUi,
|
|
551
|
+
debtBankData,
|
|
552
|
+
collateralBankData,
|
|
553
|
+
};
|
|
522
554
|
}
|
|
523
555
|
async withdrawLeverage(clendGroup, clendAccount, collateralMint, debtMint, withdrawAmount, withdrawAll, slippageBps) {
|
|
556
|
+
const params = await this.getWithdrawLeverageParams(clendGroup, clendAccount, collateralMint, debtMint, withdrawAmount, withdrawAll);
|
|
557
|
+
const { ixns, luts } = await this.getWithdrawLeverageIxns(clendGroup, clendAccount, collateralMint, debtMint, params.collateralBankData.mintDecimals, params.debtBankData.mintDecimals, withdrawAll, params.debtToRepay, params.collateralToWithdraw, slippageBps, 0);
|
|
558
|
+
// Send transaction
|
|
559
|
+
return this.send(ixns, [], luts);
|
|
560
|
+
}
|
|
561
|
+
async getWithdrawLeverageIxns(clendGroup, clendAccount, collateralMint, debtMint, collateralDecimals, debtDecimals, withdrawAll, debtToRepay, collateralToWithdraw, slippageBps, additionalIxnCount) {
|
|
562
|
+
const debtBank = (0, addresses_1.getBankPda)(clendGroup, debtMint);
|
|
563
|
+
const collateralBank = (0, addresses_1.getBankPda)(clendGroup, collateralMint);
|
|
564
|
+
// Get remaining accounts for flash loan
|
|
565
|
+
const clendAccountData = await this.getClendAccount(clendAccount);
|
|
566
|
+
if (!clendAccountData) {
|
|
567
|
+
throw new Error(`Clend account not found: ${clendAccount.toString()}`);
|
|
568
|
+
}
|
|
569
|
+
let activeBanks = (0, utils_1.getClendAccountActiveBanks)(clendAccountData);
|
|
570
|
+
// If withdrawAll is true, remove both banks from activeBanks
|
|
571
|
+
if (withdrawAll) {
|
|
572
|
+
activeBanks = activeBanks.filter((b) => !b.equals(collateralBank) && !b.equals(debtBank));
|
|
573
|
+
}
|
|
574
|
+
const activeBankData = [];
|
|
575
|
+
for (const bank of activeBanks) {
|
|
576
|
+
const bankData = await this.getBank(bank);
|
|
577
|
+
activeBankData.push(bankData);
|
|
578
|
+
}
|
|
579
|
+
const remainingAccounts = (0, utils_1.getClendAccountRemainingAccounts)(activeBankData);
|
|
580
|
+
// Get Jupiter quote for swapping collateral to debt token (ExactOut mode)
|
|
581
|
+
const swapMode = api_1.SwapMode.ExactOut;
|
|
582
|
+
const swapQuote = await this.getJupiterQuote(collateralMint, debtMint, collateralDecimals, debtDecimals, new decimal_js_1.default(debtToRepay.toString()), slippageBps, swapMode);
|
|
583
|
+
utils_1.logger.debug("withdrawLeverage swapQuote", {
|
|
584
|
+
swapQuote,
|
|
585
|
+
});
|
|
586
|
+
// Calculate how much collateral we need to swap for debt repayment
|
|
587
|
+
const collateralToSwap = new anchor_1.BN(swapQuote.quoteResponse.inAmount);
|
|
588
|
+
utils_1.logger.debug("withdrawLeverage collateralToSwap", {
|
|
589
|
+
collateralToSwap: collateralToSwap.toString(),
|
|
590
|
+
});
|
|
591
|
+
// Get swap instructions
|
|
592
|
+
const swapInputs = {
|
|
593
|
+
inputAmountLamports: new decimal_js_1.default(collateralToSwap.toString()),
|
|
594
|
+
inputMint: collateralMint,
|
|
595
|
+
outputMint: debtMint,
|
|
596
|
+
};
|
|
597
|
+
const swapIxs = await this.getJupiterSwap(clendAccountData.authority, swapInputs, swapQuote);
|
|
598
|
+
const collateralTokenProgram = (0, utils_1.getTokenProgramForMint)(collateralMint);
|
|
599
|
+
const debtTokenProgram = (0, utils_1.getTokenProgramForMint)(debtMint);
|
|
600
|
+
const userCollateralAta = (0, spl_token_1.getAssociatedTokenAddressSync)(collateralMint, clendAccountData.authority, true, collateralTokenProgram);
|
|
601
|
+
const userDebtAta = (0, spl_token_1.getAssociatedTokenAddressSync)(debtMint, clendAccountData.authority, true, debtTokenProgram);
|
|
602
|
+
// Create withdraw instruction
|
|
603
|
+
const withdrawIx = await this.instructions.withdraw(clendGroup, clendAccount, clendAccountData.authority, collateralBank, userCollateralAta, collateralTokenProgram, collateralToWithdraw, withdrawAll, remainingAccounts);
|
|
604
|
+
// Create repay instruction
|
|
605
|
+
const repayIx = await this.instructions.repay(clendGroup, clendAccount, clendAccountData.authority, debtBank, userDebtAta, debtTokenProgram, debtToRepay, withdrawAll, remainingAccounts);
|
|
606
|
+
// Assemble all instructions without flash loan
|
|
607
|
+
const ixnsWithoutFlashLoan = [
|
|
608
|
+
withdrawIx,
|
|
609
|
+
...swapIxs.swapIxs,
|
|
610
|
+
repayIx,
|
|
611
|
+
];
|
|
612
|
+
// Create flash loan instructions
|
|
613
|
+
const cuIxns = 2;
|
|
614
|
+
const endIndex = new anchor_1.BN(cuIxns + ixnsWithoutFlashLoan.length + 1 + additionalIxnCount);
|
|
615
|
+
const { beginFlashLoanIx, endFlashLoanIx } = await this.instructions.createFlashLoanInstructions(clendAccount, clendAccountData.authority, endIndex, remainingAccounts);
|
|
616
|
+
// Assemble all instructions in the correct order
|
|
617
|
+
const instructions = [
|
|
618
|
+
beginFlashLoanIx,
|
|
619
|
+
...ixnsWithoutFlashLoan,
|
|
620
|
+
endFlashLoanIx,
|
|
621
|
+
];
|
|
622
|
+
return { ixns: instructions, luts: swapIxs.lookupTables };
|
|
623
|
+
}
|
|
624
|
+
async getWithdrawLeverageParams(clendGroup, clendAccount, collateralMint, debtMint, withdrawAmount, withdrawAll) {
|
|
524
625
|
utils_1.logger.info("withdrawLeverage params", {
|
|
525
626
|
withdrawAmount: withdrawAmount.toString(),
|
|
526
627
|
withdrawAll,
|
|
527
|
-
slippageBps,
|
|
528
628
|
});
|
|
529
|
-
// Get token programs
|
|
530
|
-
const collateralTokenProgram = (0, utils_1.getTokenProgramForMint)(collateralMint);
|
|
531
|
-
const debtTokenProgram = (0, utils_1.getTokenProgramForMint)(debtMint);
|
|
532
629
|
// Get bank data
|
|
533
630
|
const collateralBank = (0, addresses_1.getBankPda)(clendGroup, collateralMint);
|
|
534
631
|
const debtBank = (0, addresses_1.getBankPda)(clendGroup, debtMint);
|
|
@@ -537,9 +634,6 @@ class ClendClient {
|
|
|
537
634
|
// Get decimals
|
|
538
635
|
const collateralDecimals = collateralBankData.mintDecimals;
|
|
539
636
|
const debtDecimals = debtBankData.mintDecimals;
|
|
540
|
-
// Derive token accounts
|
|
541
|
-
const userCollateralAta = (0, spl_token_1.getAssociatedTokenAddressSync)(collateralMint, this.address(), true, collateralTokenProgram);
|
|
542
|
-
const userDebtAta = (0, spl_token_1.getAssociatedTokenAddressSync)(debtMint, this.address(), true, debtTokenProgram);
|
|
543
637
|
// Get account data
|
|
544
638
|
const clendAccountData = await this.getClendAccount(clendAccount);
|
|
545
639
|
if (!clendAccountData) {
|
|
@@ -599,7 +693,10 @@ class ClendClient {
|
|
|
599
693
|
debtMaintWeight,
|
|
600
694
|
});
|
|
601
695
|
// Calculate leverage-preserving withdrawal
|
|
602
|
-
const { debtToRepayUi, newCollateralUi, newDebtUi, currentLeverage, newLeverage, } = (0, math_2.computeWithdrawLeverageAmounts)(collateralAmountUI, debtAmountUI, withdrawAmountUI, collateralPrice, debtPrice,
|
|
696
|
+
const { debtToRepayUi, newCollateralUi, newDebtUi, currentLeverage, newLeverage, } = (0, math_2.computeWithdrawLeverageAmounts)(collateralAmountUI, debtAmountUI, withdrawAmountUI, collateralPrice, debtPrice,
|
|
697
|
+
//collateralMaintWeight,
|
|
698
|
+
//debtMaintWeight,
|
|
699
|
+
1, 1);
|
|
603
700
|
utils_1.logger.debug("withdrawLeverage params calculated", {
|
|
604
701
|
debtToRepayUi,
|
|
605
702
|
newCollateralUi,
|
|
@@ -617,71 +714,25 @@ class ClendClient {
|
|
|
617
714
|
collateralToWithdraw: collateralToWithdraw.toString(),
|
|
618
715
|
debtToRepay: debtToRepay.toString(),
|
|
619
716
|
});
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
}
|
|
626
|
-
const activeBankData = [];
|
|
627
|
-
for (const bank of activeBanks) {
|
|
628
|
-
const bankData = await this.getBank(bank);
|
|
629
|
-
activeBankData.push(bankData);
|
|
630
|
-
}
|
|
631
|
-
const remainingAccounts = (0, utils_1.getClendAccountRemainingAccounts)(activeBankData);
|
|
632
|
-
// Get Jupiter quote for swapping collateral to debt token (ExactOut mode)
|
|
633
|
-
const swapMode = api_1.SwapMode.ExactOut;
|
|
634
|
-
const swapQuote = await this.getJupiterQuote(collateralMint, debtMint, collateralDecimals, debtDecimals, new decimal_js_1.default(debtToRepay.toString()), slippageBps, swapMode);
|
|
635
|
-
utils_1.logger.debug("withdrawLeverage swapQuote", {
|
|
636
|
-
swapQuote,
|
|
637
|
-
});
|
|
638
|
-
// Calculate how much collateral we need to swap for debt repayment
|
|
639
|
-
const collateralToSwap = new anchor_1.BN(swapQuote.quoteResponse.inAmount);
|
|
640
|
-
utils_1.logger.debug("withdrawLeverage collateralToSwap", {
|
|
641
|
-
collateralToSwap: collateralToSwap.toString(),
|
|
642
|
-
});
|
|
643
|
-
// Get swap instructions
|
|
644
|
-
const swapInputs = {
|
|
645
|
-
inputAmountLamports: new decimal_js_1.default(collateralToSwap.toString()),
|
|
646
|
-
inputMint: collateralMint,
|
|
647
|
-
outputMint: debtMint,
|
|
717
|
+
return {
|
|
718
|
+
debtToRepay,
|
|
719
|
+
collateralToWithdraw,
|
|
720
|
+
collateralBankData,
|
|
721
|
+
debtBankData,
|
|
648
722
|
};
|
|
649
|
-
const swapIxs = await this.getJupiterSwap(this.address(), swapInputs, swapQuote);
|
|
650
|
-
// Create withdraw instruction
|
|
651
|
-
const withdrawIx = await this.instructions.withdraw(clendGroup, clendAccount, this.address(), collateralBank, userCollateralAta, collateralTokenProgram, collateralToWithdraw, withdrawAll, remainingAccounts);
|
|
652
|
-
// Create repay instruction
|
|
653
|
-
const repayIx = await this.instructions.repay(clendGroup, clendAccount, this.address(), debtBank, userDebtAta, debtTokenProgram, debtToRepay, withdrawAll, remainingAccounts);
|
|
654
|
-
// Assemble all instructions without flash loan
|
|
655
|
-
const ixnsWithoutFlashLoan = [
|
|
656
|
-
withdrawIx,
|
|
657
|
-
...swapIxs.swapIxs,
|
|
658
|
-
repayIx,
|
|
659
|
-
];
|
|
660
|
-
// Create flash loan instructions
|
|
661
|
-
const cuIxns = 2;
|
|
662
|
-
const endIndex = new anchor_1.BN(cuIxns + ixnsWithoutFlashLoan.length + 1);
|
|
663
|
-
const { beginFlashLoanIx, endFlashLoanIx } = await this.instructions.createFlashLoanInstructions(clendAccount, this.address(), endIndex, remainingAccounts);
|
|
664
|
-
// Assemble all instructions in the correct order
|
|
665
|
-
const instructions = [
|
|
666
|
-
beginFlashLoanIx,
|
|
667
|
-
...ixnsWithoutFlashLoan,
|
|
668
|
-
endFlashLoanIx,
|
|
669
|
-
];
|
|
670
|
-
// Send transaction
|
|
671
|
-
return this.send(instructions, [], swapIxs.lookupTables);
|
|
672
723
|
}
|
|
673
724
|
async adjustLeverage(clendGroup, clendAccount, collateralMint, debtMint, targetLeverage, slippageBps) {
|
|
674
|
-
|
|
675
|
-
const
|
|
676
|
-
|
|
725
|
+
const params = await this.getAdjustLeverageParams(clendGroup, clendAccount, collateralMint, debtMint, targetLeverage);
|
|
726
|
+
const { ixns, luts } = await this.getAdjustLeverageIxns(clendGroup, clendAccount, this.address(), params.debtBankData, params.collateralBankData, params.isIncrease, params.debtDeltaUi, slippageBps, 0);
|
|
727
|
+
// Send transaction
|
|
728
|
+
return this.send(ixns, [], luts);
|
|
729
|
+
}
|
|
730
|
+
async getAdjustLeverageParams(clendGroup, clendAccount, collateralMint, debtMint, targetLeverage) {
|
|
677
731
|
// Get bank data
|
|
678
732
|
const collateralBank = (0, addresses_1.getBankPda)(clendGroup, collateralMint);
|
|
679
733
|
const debtBank = (0, addresses_1.getBankPda)(clendGroup, debtMint);
|
|
680
734
|
const collateralBankData = await this.getBank(collateralBank);
|
|
681
735
|
const debtBankData = await this.getBank(debtBank);
|
|
682
|
-
// Derive token accounts
|
|
683
|
-
const userCollateralAta = (0, spl_token_1.getAssociatedTokenAddressSync)(collateralMint, this.address(), true, collateralTokenProgram);
|
|
684
|
-
const userDebtAta = (0, spl_token_1.getAssociatedTokenAddressSync)(debtMint, this.address(), true, debtTokenProgram);
|
|
685
736
|
// Get account data to determine current positions
|
|
686
737
|
const clendAccountData = await this.getClendAccount(clendAccount);
|
|
687
738
|
if (!clendAccountData) {
|
|
@@ -701,9 +752,6 @@ class ClendClient {
|
|
|
701
752
|
if (!debtBalance || !collateralBalance) {
|
|
702
753
|
throw new Error("Could not find debt or collateral position in account");
|
|
703
754
|
}
|
|
704
|
-
// Calculate current leverage
|
|
705
|
-
const collateralDecimals = collateralBankData.mintDecimals;
|
|
706
|
-
const debtDecimals = debtBankData.mintDecimals;
|
|
707
755
|
// Get current prices from Jupiter
|
|
708
756
|
const collateralPrice = await this.getJupiterPrice(collateralMint);
|
|
709
757
|
const debtPrice = await this.getJupiterPrice(debtMint);
|
|
@@ -713,8 +761,15 @@ class ClendClient {
|
|
|
713
761
|
const collateralWeight = collateralBankData.config.assetWeightMaint;
|
|
714
762
|
const debtWeight = debtBankData.config.liabilityWeightMaint;
|
|
715
763
|
// Calculate current leverage and values
|
|
716
|
-
const currentLeverage = (0, math_1.calculateWeightedLeverage)(collateralAmountUI, collateralPrice,
|
|
717
|
-
|
|
764
|
+
const currentLeverage = (0, math_1.calculateWeightedLeverage)(collateralAmountUI, collateralPrice,
|
|
765
|
+
//collateralWeight,
|
|
766
|
+
1, debtAmountUI, debtPrice,
|
|
767
|
+
//debtWeight,
|
|
768
|
+
1);
|
|
769
|
+
const { collateralDelta, debtDelta, isIncrease } = (0, math_1.computeAdjustLeverageAmounts)(collateralAmountUI, debtAmountUI, collateralPrice, debtPrice, currentLeverage, targetLeverage,
|
|
770
|
+
//collateralWeight,
|
|
771
|
+
//debtWeight,
|
|
772
|
+
1, 1);
|
|
718
773
|
utils_1.logger.info("adjustLeverage params calculated", {
|
|
719
774
|
collateralDelta,
|
|
720
775
|
debtDelta,
|
|
@@ -728,14 +783,31 @@ class ClendClient {
|
|
|
728
783
|
collateralWeight,
|
|
729
784
|
debtWeight,
|
|
730
785
|
});
|
|
786
|
+
return {
|
|
787
|
+
collateralDeltaUi: collateralDelta,
|
|
788
|
+
debtDeltaUi: debtDelta,
|
|
789
|
+
isIncrease,
|
|
790
|
+
collateralBankData,
|
|
791
|
+
debtBankData,
|
|
792
|
+
};
|
|
793
|
+
}
|
|
794
|
+
async getAdjustLeverageIxns(clendGroup, clendAccount, user, debtBankData, collateralBankData, isIncrease, debtDeltaUi, slippageBps, additionalIxnCount) {
|
|
795
|
+
const clendAccountData = await this.getClendAccount(clendAccount);
|
|
796
|
+
if (!clendAccountData) {
|
|
797
|
+
throw new Error(`Clend account not found: ${clendAccount.toString()}`);
|
|
798
|
+
}
|
|
799
|
+
const debtTokenProgram = (0, utils_1.getTokenProgramForMint)(debtBankData.mint);
|
|
800
|
+
const collateralTokenProgram = (0, utils_1.getTokenProgramForMint)(collateralBankData.mint);
|
|
801
|
+
const userDebtAta = (0, spl_token_1.getAssociatedTokenAddressSync)(debtBankData.mint, user, true, debtTokenProgram);
|
|
802
|
+
const userCollateralAta = (0, spl_token_1.getAssociatedTokenAddressSync)(collateralBankData.mint, user, true, collateralTokenProgram);
|
|
731
803
|
// Get remaining accounts for flash loan
|
|
732
804
|
let activeBanks = (0, utils_1.getClendAccountActiveBanks)(clendAccountData);
|
|
733
805
|
// Add both banks to active banks if not already present
|
|
734
|
-
if (!activeBanks.some((bank) => bank.equals(
|
|
735
|
-
activeBanks.push(
|
|
806
|
+
if (!activeBanks.some((bank) => bank.equals(debtBankData.key))) {
|
|
807
|
+
activeBanks.push(debtBankData.key);
|
|
736
808
|
}
|
|
737
|
-
if (!activeBanks.some((bank) => bank.equals(
|
|
738
|
-
activeBanks.push(
|
|
809
|
+
if (!activeBanks.some((bank) => bank.equals(collateralBankData.key))) {
|
|
810
|
+
activeBanks.push(collateralBankData.key);
|
|
739
811
|
}
|
|
740
812
|
const activeBankData = [];
|
|
741
813
|
for (const bank of activeBanks) {
|
|
@@ -748,16 +820,13 @@ class ClendClient {
|
|
|
748
820
|
let swapLookupTables = [];
|
|
749
821
|
if (isIncrease) {
|
|
750
822
|
utils_1.logger.info("increasing leverage");
|
|
751
|
-
|
|
752
|
-
const additionalDebtAmountUI = debtDelta * debtPrice;
|
|
753
|
-
const additionalDebtAmount = (0, math_1.uiToAmount)(additionalDebtAmountUI, debtDecimals);
|
|
823
|
+
const additionalDebtAmount = (0, math_1.uiToAmount)(debtDeltaUi, debtBankData.mintDecimals);
|
|
754
824
|
utils_1.logger.debug("additionalDebtAmount calculated", {
|
|
755
|
-
additionalDebtAmountUI,
|
|
756
825
|
additionalDebtAmount: additionalDebtAmount.toString(),
|
|
757
826
|
});
|
|
758
827
|
// Get Jupiter quote for swapping debt token to collateral token
|
|
759
828
|
const swapMode = api_1.SwapMode.ExactIn;
|
|
760
|
-
const swapQuote = await this.getJupiterQuote(
|
|
829
|
+
const swapQuote = await this.getJupiterQuote(debtBankData.mint, collateralBankData.mint, debtBankData.mintDecimals, collateralBankData.mintDecimals, new decimal_js_1.default(additionalDebtAmount.toString()), slippageBps, swapMode);
|
|
761
830
|
utils_1.logger.debug("swapQuote calculated", {
|
|
762
831
|
inAmount: swapQuote.quoteResponse.inAmount,
|
|
763
832
|
outAmount: swapQuote.quoteResponse.outAmount,
|
|
@@ -766,29 +835,31 @@ class ClendClient {
|
|
|
766
835
|
// Get swap instructions
|
|
767
836
|
const swapInputs = {
|
|
768
837
|
inputAmountLamports: new decimal_js_1.default(additionalDebtAmount.toString()),
|
|
769
|
-
inputMint:
|
|
770
|
-
outputMint:
|
|
838
|
+
inputMint: debtBankData.mint,
|
|
839
|
+
outputMint: collateralBankData.mint,
|
|
771
840
|
};
|
|
772
|
-
const swapIxs = await this.getJupiterSwap(
|
|
841
|
+
const swapIxs = await this.getJupiterSwap(user, swapInputs, swapQuote);
|
|
773
842
|
// Borrow more debt
|
|
774
|
-
const borrowIx = await this.instructions.borrow(clendGroup, clendAccount,
|
|
843
|
+
const borrowIx = await this.instructions.borrow(clendGroup, clendAccount, user, debtBankData.key, userDebtAta, debtTokenProgram, additionalDebtAmount, remainingAccounts);
|
|
775
844
|
// Calculate additional collateral from swap
|
|
776
845
|
const additionalCollateralAmount = new anchor_1.BN(swapQuote.quoteResponse.outAmount);
|
|
777
846
|
utils_1.logger.debug("additionalCollateralAmount calculated", {
|
|
778
847
|
additionalCollateralAmount: additionalCollateralAmount.toString(),
|
|
779
848
|
});
|
|
780
849
|
// Deposit additional collateral
|
|
781
|
-
const depositIx = await this.instructions.deposit(clendGroup, clendAccount,
|
|
850
|
+
const depositIx = await this.instructions.deposit(clendGroup, clendAccount, user, collateralBankData.key, userCollateralAta, collateralTokenProgram, additionalCollateralAmount, remainingAccounts);
|
|
782
851
|
instructions.push(borrowIx, ...swapIxs.swapIxs, depositIx);
|
|
783
852
|
swapLookupTables = swapIxs.lookupTables;
|
|
784
853
|
}
|
|
785
854
|
else {
|
|
786
|
-
utils_1.logger.info("decreasing leverage");
|
|
787
855
|
// Calculate amounts for decreasing leverage
|
|
788
|
-
const debtToReduceAmount = (0, math_1.uiToAmount)(
|
|
856
|
+
const debtToReduceAmount = (0, math_1.uiToAmount)(debtDeltaUi, debtBankData.mintDecimals);
|
|
857
|
+
utils_1.logger.info("decreasing leverage", {
|
|
858
|
+
debtToReduceAmount: debtToReduceAmount.toString(),
|
|
859
|
+
});
|
|
789
860
|
// Get Jupiter quote for swapping collateral token to debt token with ExactOut
|
|
790
861
|
const swapMode = api_1.SwapMode.ExactOut;
|
|
791
|
-
const swapQuote = await this.getJupiterQuote(
|
|
862
|
+
const swapQuote = await this.getJupiterQuote(collateralBankData.mint, debtBankData.mint, collateralBankData.mintDecimals, debtBankData.mintDecimals, new decimal_js_1.default(debtToReduceAmount.toString()), slippageBps, swapMode);
|
|
792
863
|
utils_1.logger.debug("swapQuote calculated", {
|
|
793
864
|
inAmount: swapQuote.quoteResponse.inAmount,
|
|
794
865
|
outAmount: swapQuote.quoteResponse.outAmount,
|
|
@@ -803,32 +874,31 @@ class ClendClient {
|
|
|
803
874
|
// Get swap instructions
|
|
804
875
|
const swapInputs = {
|
|
805
876
|
inputAmountLamports: new decimal_js_1.default(collateralToSwap.toString()),
|
|
806
|
-
inputMint:
|
|
807
|
-
outputMint:
|
|
877
|
+
inputMint: collateralBankData.mint,
|
|
878
|
+
outputMint: debtBankData.mint,
|
|
808
879
|
};
|
|
809
|
-
const swapIxs = await this.getJupiterSwap(
|
|
880
|
+
const swapIxs = await this.getJupiterSwap(user, swapInputs, swapQuote);
|
|
810
881
|
// Withdraw collateral
|
|
811
|
-
const withdrawIx = await this.instructions.withdraw(clendGroup, clendAccount,
|
|
882
|
+
const withdrawIx = await this.instructions.withdraw(clendGroup, clendAccount, user, collateralBankData.key, userCollateralAta, collateralTokenProgram, collateralToSwap, false, remainingAccounts);
|
|
812
883
|
// Repay debt
|
|
813
|
-
const repayAmount = (0, math_1.uiToAmount)(
|
|
884
|
+
const repayAmount = (0, math_1.uiToAmount)(debtDeltaUi, debtBankData.mintDecimals);
|
|
814
885
|
utils_1.logger.debug("repayAmount calculated", {
|
|
815
886
|
repayAmount: repayAmount.toString(),
|
|
816
887
|
});
|
|
817
|
-
const repayIx = await this.instructions.repay(clendGroup, clendAccount,
|
|
888
|
+
const repayIx = await this.instructions.repay(clendGroup, clendAccount, user, debtBankData.key, userDebtAta, debtTokenProgram, repayAmount, false, remainingAccounts);
|
|
818
889
|
instructions.push(withdrawIx, ...swapIxs.swapIxs, repayIx);
|
|
819
890
|
swapLookupTables = swapIxs.lookupTables;
|
|
820
891
|
}
|
|
821
892
|
const cuIxns = 2;
|
|
822
|
-
const endIndex = new anchor_1.BN(cuIxns + instructions.length + 1);
|
|
823
|
-
const { beginFlashLoanIx, endFlashLoanIx } = await this.instructions.createFlashLoanInstructions(clendAccount,
|
|
893
|
+
const endIndex = new anchor_1.BN(cuIxns + instructions.length + 1 + additionalIxnCount);
|
|
894
|
+
const { beginFlashLoanIx, endFlashLoanIx } = await this.instructions.createFlashLoanInstructions(clendAccount, user, endIndex, remainingAccounts);
|
|
824
895
|
// Create a new array with the flash loan instructions wrapping the existing instructions
|
|
825
896
|
const finalInstructions = [
|
|
826
897
|
beginFlashLoanIx,
|
|
827
898
|
...instructions,
|
|
828
899
|
endFlashLoanIx,
|
|
829
900
|
];
|
|
830
|
-
|
|
831
|
-
return this.send(finalInstructions, [], swapLookupTables);
|
|
901
|
+
return { ixns: finalInstructions, luts: swapLookupTables };
|
|
832
902
|
}
|
|
833
903
|
async getEvents(txSigs) {
|
|
834
904
|
const events = [];
|
|
@@ -856,6 +926,24 @@ class ClendClient {
|
|
|
856
926
|
}
|
|
857
927
|
return events;
|
|
858
928
|
}
|
|
929
|
+
async getAccountsForAuthority(group, authority) {
|
|
930
|
+
const accounts = await this.instructions.program.account.clendAccount.all([
|
|
931
|
+
{
|
|
932
|
+
memcmp: {
|
|
933
|
+
bytes: group.toBase58(),
|
|
934
|
+
offset: 8, // clendGroup is the first field in the account, so only offset is the discriminant
|
|
935
|
+
},
|
|
936
|
+
},
|
|
937
|
+
{
|
|
938
|
+
memcmp: {
|
|
939
|
+
bytes: authority.toBase58(),
|
|
940
|
+
offset: 8 + 32, // authority is the second field in the account after the authority, so offset by the discriminant and a pubkey
|
|
941
|
+
},
|
|
942
|
+
},
|
|
943
|
+
]);
|
|
944
|
+
const addrs = accounts.map((account) => account.publicKey);
|
|
945
|
+
return addrs;
|
|
946
|
+
}
|
|
859
947
|
}
|
|
860
948
|
exports.ClendClient = ClendClient;
|
|
861
949
|
//# sourceMappingURL=rpc.js.map
|
package/dist/src/rpc.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rpc.js","sourceRoot":"","sources":["../../src/rpc.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"rpc.js","sourceRoot":"","sources":["../../src/rpc.ts"],"names":[],"mappings":"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"}
|
package/dist/src/state.js
CHANGED
|
@@ -47,28 +47,24 @@ function newInterestRateConfigCompact({ optimalUtilizationRate, plateauInterestR
|
|
|
47
47
|
}
|
|
48
48
|
function newInterestRateConfigOpt({ optimalUtilizationRate, plateauInterestRate, maxInterestRate, insuranceFeeFixedApr, insuranceIrFee, protocolFixedFeeApr, protocolIrFee, protocolOriginationFee, }) {
|
|
49
49
|
return {
|
|
50
|
-
optimalUtilizationRate: optimalUtilizationRate
|
|
50
|
+
optimalUtilizationRate: optimalUtilizationRate !== null
|
|
51
51
|
? (0, utils_1.bigNumberToWrappedI80F48)(optimalUtilizationRate)
|
|
52
52
|
: null,
|
|
53
|
-
plateauInterestRate: plateauInterestRate
|
|
53
|
+
plateauInterestRate: plateauInterestRate !== null
|
|
54
54
|
? (0, utils_1.bigNumberToWrappedI80F48)(plateauInterestRate)
|
|
55
55
|
: null,
|
|
56
|
-
maxInterestRate: maxInterestRate
|
|
56
|
+
maxInterestRate: maxInterestRate !== null
|
|
57
57
|
? (0, utils_1.bigNumberToWrappedI80F48)(maxInterestRate)
|
|
58
58
|
: null,
|
|
59
|
-
insuranceFeeFixedApr: insuranceFeeFixedApr
|
|
59
|
+
insuranceFeeFixedApr: insuranceFeeFixedApr !== null
|
|
60
60
|
? (0, utils_1.bigNumberToWrappedI80F48)(insuranceFeeFixedApr)
|
|
61
61
|
: null,
|
|
62
|
-
insuranceIrFee: insuranceIrFee
|
|
63
|
-
|
|
64
|
-
: null,
|
|
65
|
-
protocolFixedFeeApr: protocolFixedFeeApr
|
|
62
|
+
insuranceIrFee: insuranceIrFee !== null ? (0, utils_1.bigNumberToWrappedI80F48)(insuranceIrFee) : null,
|
|
63
|
+
protocolFixedFeeApr: protocolFixedFeeApr !== null
|
|
66
64
|
? (0, utils_1.bigNumberToWrappedI80F48)(protocolFixedFeeApr)
|
|
67
65
|
: null,
|
|
68
|
-
protocolIrFee: protocolIrFee
|
|
69
|
-
|
|
70
|
-
: null,
|
|
71
|
-
protocolOriginationFee: protocolOriginationFee
|
|
66
|
+
protocolIrFee: protocolIrFee !== null ? (0, utils_1.bigNumberToWrappedI80F48)(protocolIrFee) : null,
|
|
67
|
+
protocolOriginationFee: protocolOriginationFee !== null
|
|
72
68
|
? (0, utils_1.bigNumberToWrappedI80F48)(protocolOriginationFee)
|
|
73
69
|
: null,
|
|
74
70
|
};
|
package/dist/src/state.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state.js","sourceRoot":"","sources":["../../src/state.ts"],"names":[],"mappings":";;;AAsWA,oEA6BC;AAED,
|
|
1
|
+
{"version":3,"file":"state.js","sourceRoot":"","sources":["../../src/state.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED