@kamino-finance/klend-sdk 5.10.33 → 5.10.35-beta.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/classes/action.d.ts +33 -26
- package/dist/classes/action.d.ts.map +1 -1
- package/dist/classes/action.js +614 -202
- package/dist/classes/action.js.map +1 -1
- package/dist/classes/manager.d.ts +4 -4
- package/dist/classes/manager.d.ts.map +1 -1
- package/dist/classes/manager.js +13 -4
- package/dist/classes/manager.js.map +1 -1
- package/dist/classes/reserve.d.ts +1 -1
- package/dist/classes/reserve.d.ts.map +1 -1
- package/dist/classes/reserve.js +2 -1
- package/dist/classes/reserve.js.map +1 -1
- package/dist/classes/types.d.ts +4 -0
- package/dist/classes/types.d.ts.map +1 -1
- package/dist/classes/utils.d.ts.map +1 -1
- package/dist/classes/utils.js +1 -2
- package/dist/classes/utils.js.map +1 -1
- package/dist/classes/vault.d.ts +4 -4
- package/dist/classes/vault.d.ts.map +1 -1
- package/dist/classes/vault.js +39 -26
- package/dist/classes/vault.js.map +1 -1
- package/dist/client_kamino_manager.d.ts.map +1 -1
- package/dist/client_kamino_manager.js +8 -3
- package/dist/client_kamino_manager.js.map +1 -1
- package/dist/idl.json +269 -156
- package/dist/idl_codegen/accounts/LendingMarket.d.ts +15 -0
- package/dist/idl_codegen/accounts/LendingMarket.d.ts.map +1 -1
- package/dist/idl_codegen/accounts/LendingMarket.js +11 -1
- package/dist/idl_codegen/accounts/LendingMarket.js.map +1 -1
- package/dist/idl_codegen/accounts/Obligation.d.ts +6 -0
- package/dist/idl_codegen/accounts/Obligation.d.ts.map +1 -1
- package/dist/idl_codegen/accounts/Obligation.js +8 -1
- package/dist/idl_codegen/accounts/Obligation.js.map +1 -1
- package/dist/idl_codegen/errors/custom.d.ts +51 -3
- package/dist/idl_codegen/errors/custom.d.ts.map +1 -1
- package/dist/idl_codegen/errors/custom.js +89 -5
- package/dist/idl_codegen/errors/custom.js.map +1 -1
- package/dist/idl_codegen/instructions/borrowObligationLiquidity.js +1 -1
- package/dist/idl_codegen/instructions/borrowObligationLiquidity.js.map +1 -1
- package/dist/idl_codegen/instructions/borrowObligationLiquidityV2.js +1 -1
- package/dist/idl_codegen/instructions/borrowObligationLiquidityV2.js.map +1 -1
- package/dist/idl_codegen/instructions/depositAndWithdraw.d.ts +52 -0
- package/dist/idl_codegen/instructions/depositAndWithdraw.d.ts.map +1 -0
- package/dist/idl_codegen/instructions/depositAndWithdraw.js +219 -0
- package/dist/idl_codegen/instructions/depositAndWithdraw.js.map +1 -0
- package/dist/idl_codegen/instructions/depositReserveLiquidity.js +1 -1
- package/dist/idl_codegen/instructions/depositReserveLiquidity.js.map +1 -1
- package/dist/idl_codegen/instructions/depositReserveLiquidityAndObligationCollateral.js +1 -1
- package/dist/idl_codegen/instructions/depositReserveLiquidityAndObligationCollateral.js.map +1 -1
- package/dist/idl_codegen/instructions/depositReserveLiquidityAndObligationCollateralV2.js +1 -1
- package/dist/idl_codegen/instructions/depositReserveLiquidityAndObligationCollateralV2.js.map +1 -1
- package/dist/idl_codegen/instructions/index.d.ts +2 -2
- package/dist/idl_codegen/instructions/index.d.ts.map +1 -1
- package/dist/idl_codegen/instructions/index.js +3 -3
- package/dist/idl_codegen/instructions/index.js.map +1 -1
- package/dist/idl_codegen/instructions/initFarmsForReserve.js +1 -1
- package/dist/idl_codegen/instructions/initFarmsForReserve.js.map +1 -1
- package/dist/idl_codegen/instructions/initObligationFarmsForReserve.js +1 -1
- package/dist/idl_codegen/instructions/initObligationFarmsForReserve.js.map +1 -1
- package/dist/idl_codegen/instructions/initReserve.d.ts +1 -0
- package/dist/idl_codegen/instructions/initReserve.d.ts.map +1 -1
- package/dist/idl_codegen/instructions/initReserve.js +5 -0
- package/dist/idl_codegen/instructions/initReserve.js.map +1 -1
- package/dist/idl_codegen/instructions/liquidateObligationAndRedeemReserveCollateral.js +2 -2
- package/dist/idl_codegen/instructions/liquidateObligationAndRedeemReserveCollateral.js.map +1 -1
- package/dist/idl_codegen/instructions/liquidateObligationAndRedeemReserveCollateralV2.js +2 -2
- package/dist/idl_codegen/instructions/liquidateObligationAndRedeemReserveCollateralV2.js.map +1 -1
- package/dist/idl_codegen/instructions/redeemFees.js +1 -1
- package/dist/idl_codegen/instructions/redeemFees.js.map +1 -1
- package/dist/idl_codegen/instructions/redeemReserveCollateral.js +1 -1
- package/dist/idl_codegen/instructions/redeemReserveCollateral.js.map +1 -1
- package/dist/idl_codegen/instructions/refreshObligationFarmsForReserve.js +1 -1
- package/dist/idl_codegen/instructions/refreshObligationFarmsForReserve.js.map +1 -1
- package/dist/idl_codegen/instructions/repayAndWithdrawAndRedeem.d.ts +9 -0
- package/dist/idl_codegen/instructions/repayAndWithdrawAndRedeem.d.ts.map +1 -1
- package/dist/idl_codegen/instructions/repayAndWithdrawAndRedeem.js +24 -3
- package/dist/idl_codegen/instructions/repayAndWithdrawAndRedeem.js.map +1 -1
- package/dist/idl_codegen/instructions/repayObligationLiquidity.js +1 -1
- package/dist/idl_codegen/instructions/repayObligationLiquidity.js.map +1 -1
- package/dist/idl_codegen/instructions/repayObligationLiquidityV2.js +1 -1
- package/dist/idl_codegen/instructions/repayObligationLiquidityV2.js.map +1 -1
- package/dist/idl_codegen/instructions/withdrawObligationCollateralAndRedeemReserveCollateral.js +2 -2
- package/dist/idl_codegen/instructions/withdrawObligationCollateralAndRedeemReserveCollateral.js.map +1 -1
- package/dist/idl_codegen/instructions/withdrawObligationCollateralAndRedeemReserveCollateralV2.js +2 -2
- package/dist/idl_codegen/instructions/withdrawObligationCollateralAndRedeemReserveCollateralV2.js.map +1 -1
- package/dist/idl_codegen/instructions/withdrawProtocolFee.js +1 -1
- package/dist/idl_codegen/instructions/withdrawProtocolFee.js.map +1 -1
- package/dist/idl_codegen/instructions/withdrawReferrerFees.js +1 -1
- package/dist/idl_codegen/instructions/withdrawReferrerFees.js.map +1 -1
- package/dist/idl_codegen/types/UpdateLendingMarketMode.d.ts +13 -0
- package/dist/idl_codegen/types/UpdateLendingMarketMode.d.ts.map +1 -1
- package/dist/idl_codegen/types/UpdateLendingMarketMode.js +25 -1
- package/dist/idl_codegen/types/UpdateLendingMarketMode.js.map +1 -1
- package/dist/idl_codegen/types/index.d.ts +2 -2
- package/dist/idl_codegen/types/index.d.ts.map +1 -1
- package/dist/idl_codegen/types/index.js.map +1 -1
- package/dist/idl_codegen/zero_padding/ObligationZP.d.ts +12 -4
- package/dist/idl_codegen/zero_padding/ObligationZP.d.ts.map +1 -1
- package/dist/idl_codegen/zero_padding/ObligationZP.js +15 -8
- package/dist/idl_codegen/zero_padding/ObligationZP.js.map +1 -1
- package/dist/lending_operations/repay_with_collateral_operations.d.ts +3 -2
- package/dist/lending_operations/repay_with_collateral_operations.d.ts.map +1 -1
- package/dist/lending_operations/repay_with_collateral_operations.js +7 -6
- package/dist/lending_operations/repay_with_collateral_operations.js.map +1 -1
- package/dist/lending_operations/swap_collateral_operations.d.ts +5 -0
- package/dist/lending_operations/swap_collateral_operations.d.ts.map +1 -1
- package/dist/lending_operations/swap_collateral_operations.js +9 -5
- package/dist/lending_operations/swap_collateral_operations.js.map +1 -1
- package/dist/leverage/instructions.d.ts +1 -2
- package/dist/leverage/instructions.d.ts.map +1 -1
- package/dist/leverage/instructions.js +2 -6
- package/dist/leverage/instructions.js.map +1 -1
- package/dist/leverage/operations.d.ts +8 -8
- package/dist/leverage/operations.d.ts.map +1 -1
- package/dist/leverage/operations.js +46 -37
- package/dist/leverage/operations.js.map +1 -1
- package/dist/leverage/types.d.ts +4 -1
- package/dist/leverage/types.d.ts.map +1 -1
- package/dist/utils/ata.d.ts +1 -1
- package/dist/utils/ata.d.ts.map +1 -1
- package/dist/utils/ata.js +2 -2
- package/dist/utils/ata.js.map +1 -1
- package/dist/utils/constants.d.ts +4 -9
- package/dist/utils/constants.d.ts.map +1 -1
- package/dist/utils/constants.js +5 -10
- package/dist/utils/constants.js.map +1 -1
- package/dist/utils/instruction.d.ts.map +1 -1
- package/dist/utils/instruction.js +1 -3
- package/dist/utils/instruction.js.map +1 -1
- package/dist/utils/managerTypes.d.ts +1 -0
- package/dist/utils/managerTypes.d.ts.map +1 -1
- package/dist/utils/managerTypes.js.map +1 -1
- package/dist/utils/seeds.d.ts +5 -0
- package/dist/utils/seeds.d.ts.map +1 -1
- package/dist/utils/seeds.js +10 -1
- package/dist/utils/seeds.js.map +1 -1
- package/dist/utils/userMetadata.d.ts.map +1 -1
- package/dist/utils/userMetadata.js +8 -10
- package/dist/utils/userMetadata.js.map +1 -1
- package/package.json +6 -3
- package/src/classes/action.ts +789 -214
- package/src/classes/manager.ts +18 -4
- package/src/classes/reserve.ts +2 -0
- package/src/classes/types.ts +5 -0
- package/src/classes/utils.ts +3 -3
- package/src/classes/vault.ts +49 -37
- package/src/client.ts +7 -3
- package/src/client_kamino_manager.ts +10 -3
- package/src/idl.json +269 -156
- package/src/idl_codegen/accounts/LendingMarket.ts +21 -1
- package/src/idl_codegen/accounts/Obligation.ts +12 -1
- package/src/idl_codegen/errors/custom.ts +103 -4
- package/src/idl_codegen/instructions/borrowObligationLiquidity.ts +1 -1
- package/src/idl_codegen/instructions/borrowObligationLiquidityV2.ts +1 -1
- package/src/idl_codegen/instructions/depositAndWithdraw.ts +241 -0
- package/src/idl_codegen/instructions/depositReserveLiquidity.ts +1 -1
- package/src/idl_codegen/instructions/depositReserveLiquidityAndObligationCollateral.ts +1 -1
- package/src/idl_codegen/instructions/depositReserveLiquidityAndObligationCollateralV2.ts +1 -1
- package/src/idl_codegen/instructions/index.ts +4 -4
- package/src/idl_codegen/instructions/initFarmsForReserve.ts +1 -1
- package/src/idl_codegen/instructions/initObligationFarmsForReserve.ts +1 -1
- package/src/idl_codegen/instructions/initReserve.ts +6 -0
- package/src/idl_codegen/instructions/liquidateObligationAndRedeemReserveCollateral.ts +2 -2
- package/src/idl_codegen/instructions/liquidateObligationAndRedeemReserveCollateralV2.ts +2 -2
- package/src/idl_codegen/instructions/redeemFees.ts +1 -1
- package/src/idl_codegen/instructions/redeemReserveCollateral.ts +1 -1
- package/src/idl_codegen/instructions/refreshObligationFarmsForReserve.ts +1 -1
- package/src/idl_codegen/instructions/repayAndWithdrawAndRedeem.ts +33 -3
- package/src/idl_codegen/instructions/repayObligationLiquidity.ts +1 -1
- package/src/idl_codegen/instructions/repayObligationLiquidityV2.ts +1 -1
- package/src/idl_codegen/instructions/withdrawObligationCollateralAndRedeemReserveCollateral.ts +2 -2
- package/src/idl_codegen/instructions/withdrawObligationCollateralAndRedeemReserveCollateralV2.ts +2 -2
- package/src/idl_codegen/instructions/withdrawProtocolFee.ts +1 -1
- package/src/idl_codegen/instructions/withdrawReferrerFees.ts +1 -1
- package/src/idl_codegen/types/UpdateLendingMarketMode.ts +30 -0
- package/src/idl_codegen/types/index.ts +2 -0
- package/src/idl_codegen/zero_padding/ObligationZP.ts +18 -7
- package/src/lending_operations/repay_with_collateral_operations.ts +12 -3
- package/src/lending_operations/swap_collateral_operations.ts +17 -5
- package/src/leverage/instructions.ts +1 -6
- package/src/leverage/operations.ts +66 -29
- package/src/leverage/types.ts +4 -1
- package/src/utils/ata.ts +1 -1
- package/src/utils/constants.ts +5 -11
- package/src/utils/instruction.ts +1 -3
- package/src/utils/managerTypes.ts +1 -0
- package/src/utils/seeds.ts +13 -0
- package/src/utils/userMetadata.ts +21 -26
|
@@ -39,6 +39,7 @@ async function getSwapCollIxns(inputs) {
|
|
|
39
39
|
return {
|
|
40
40
|
ixs: listIxns(klendIxns, externalSwapIxns.ixns),
|
|
41
41
|
lookupTables: externalSwapIxns.luts,
|
|
42
|
+
useV2Ixs: context.useV2Ixs,
|
|
42
43
|
simulationDetails: {
|
|
43
44
|
flashLoan: {
|
|
44
45
|
targetCollFlashBorrowedAmount: klendIxns.simulationDetails.targetCollFlashBorrowedAmount,
|
|
@@ -77,6 +78,7 @@ function extractArgsAndContext(inputs) {
|
|
|
77
78
|
referrer: inputs.referrer,
|
|
78
79
|
scopeRefresh: inputs.scopeRefresh,
|
|
79
80
|
currentSlot: inputs.currentSlot,
|
|
81
|
+
useV2Ixs: inputs.useV2Ixs,
|
|
80
82
|
},
|
|
81
83
|
];
|
|
82
84
|
}
|
|
@@ -125,10 +127,10 @@ function getAtaCreationIxns(context) {
|
|
|
125
127
|
}
|
|
126
128
|
function getAtaCloseIxns(context) {
|
|
127
129
|
const ataCloseIxns = [];
|
|
128
|
-
if (context.sourceCollReserve.getLiquidityMint().equals(
|
|
129
|
-
context.targetCollReserve.getLiquidityMint().equals(
|
|
130
|
+
if (context.sourceCollReserve.getLiquidityMint().equals(spl_token_1.NATIVE_MINT) ||
|
|
131
|
+
context.targetCollReserve.getLiquidityMint().equals(spl_token_1.NATIVE_MINT)) {
|
|
130
132
|
const owner = context.obligation.state.owner;
|
|
131
|
-
const wsolAta = (0, utils_1.getAssociatedTokenAddress)(
|
|
133
|
+
const wsolAta = (0, utils_1.getAssociatedTokenAddress)(spl_token_1.NATIVE_MINT, owner, false);
|
|
132
134
|
ataCloseIxns.push((0, spl_token_1.createCloseAccountInstruction)(wsolAta, owner, owner, [], spl_token_1.TOKEN_PROGRAM_ID));
|
|
133
135
|
}
|
|
134
136
|
return ataCloseIxns;
|
|
@@ -152,10 +154,11 @@ function getTargetCollFlashLoanIxns(targetCollAmount, flashBorrowIxnIndex, desti
|
|
|
152
154
|
async function getDepositTargetCollIxns(targetCollAmount, context) {
|
|
153
155
|
const removesElevationGroup = mustRemoveElevationGroupBeforeDeposit(context);
|
|
154
156
|
const depositCollAction = await classes_1.KaminoAction.buildDepositTxns(context.market, targetCollAmount.mul(context.targetCollReserve.getMintFactor()).toString(), // in lamports
|
|
155
|
-
context.targetCollReserve.getLiquidityMint(), context.obligation.state.owner, context.obligation, 0, // no extra compute budget
|
|
157
|
+
context.targetCollReserve.getLiquidityMint(), context.obligation.state.owner, context.obligation, context.useV2Ixs, 0, // no extra compute budget
|
|
156
158
|
false, // we do not need ATA ixns here (we construct and close them ourselves)
|
|
157
159
|
removesElevationGroup, // we may need to (temporarily) remove the elevation group; the same or a different one will be set on withdraw, if requested
|
|
158
160
|
false, // we are dealing with an existing obligation, no need to create user metadata
|
|
161
|
+
false, // we do not need to create a lookup table, dealing with an existing obligation
|
|
159
162
|
context.referrer, context.currentSlot, context.scopeRefresh, removesElevationGroup ? 0 : undefined // only applicable when removing the group
|
|
160
163
|
);
|
|
161
164
|
return {
|
|
@@ -185,10 +188,11 @@ async function getWithdrawSourceCollIxns(args, depositRemovedElevationGroup, con
|
|
|
185
188
|
? utils_1.U64_MAX
|
|
186
189
|
: args.sourceCollSwapAmount.mul(context.sourceCollReserve.getMintFactor()).toString();
|
|
187
190
|
const requestedElevationGroup = elevationGroupIdToRequestAfterWithdraw(args, depositRemovedElevationGroup, context);
|
|
188
|
-
const withdrawCollAction = await classes_1.KaminoAction.buildWithdrawTxns(context.market, withdrawnSourceCollLamports, context.sourceCollReserve.getLiquidityMint(), context.obligation.state.owner, context.obligation, 0, // no extra compute budget
|
|
191
|
+
const withdrawCollAction = await classes_1.KaminoAction.buildWithdrawTxns(context.market, withdrawnSourceCollLamports, context.sourceCollReserve.getLiquidityMint(), context.obligation.state.owner, context.obligation, context.useV2Ixs, 0, // no extra compute budget
|
|
189
192
|
false, // we do not need ATA ixns here (we construct and close them ourselves)
|
|
190
193
|
requestedElevationGroup !== undefined, // the `elevationGroupIdToRequestAfterWithdraw()` has already decided on this
|
|
191
194
|
false, // we are dealing with an existing obligation, no need to create user metadata
|
|
195
|
+
false, // we do not need to create a lookup table, dealing with an existing obligation
|
|
192
196
|
context.referrer, context.currentSlot, undefined, // we have refreshed scope already, during depositing
|
|
193
197
|
requestedElevationGroup, context.obligation.deposits.has(context.targetCollReserve.address) // if our obligation already had the target coll...
|
|
194
198
|
? undefined // ... then we need no customizations here, but otherwise...
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"swap_collateral_operations.js","sourceRoot":"","sources":["../../src/lending_operations/swap_collateral_operations.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"swap_collateral_operations.js","sourceRoot":"","sources":["../../src/lending_operations/swap_collateral_operations.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import { PublicKey } from '@solana/web3.js';
|
|
2
|
+
import * as anchor from '@coral-xyz/anchor';
|
|
2
3
|
import { KaminoReserve } from '../classes';
|
|
3
4
|
import Decimal from 'decimal.js';
|
|
4
|
-
import * as anchor from '@coral-xyz/anchor';
|
|
5
|
-
export declare const SOL_MINTS: Array<PublicKey>;
|
|
6
5
|
export declare const getFlashLoanInstructions: (args: {
|
|
7
6
|
borrowIxnIndex: number;
|
|
8
7
|
walletPublicKey: PublicKey;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"instructions.d.ts","sourceRoot":"","sources":["../../src/leverage/instructions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAA8B,MAAM,iBAAiB,CAAC;AACxE,OAAO,
|
|
1
|
+
{"version":3,"file":"instructions.d.ts","sourceRoot":"","sources":["../../src/leverage/instructions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAA8B,MAAM,iBAAiB,CAAC;AACxE,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAS3C,OAAO,OAAO,MAAM,YAAY,CAAC;AAEjC,eAAO,MAAM,wBAAwB,SAAU;IAC7C,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,SAAS,CAAC;IAC3B,sBAAsB,EAAE,SAAS,CAAC;IAClC,oBAAoB,EAAE,SAAS,CAAC;IAChC,OAAO,EAAE,aAAa,CAAC;IACvB,cAAc,EAAE,OAAO,CAAC;IACxB,cAAc,EAAE,SAAS,CAAC;IAC1B,eAAe,EAAE,SAAS,CAAC;IAC3B,kBAAkB,EAAE,SAAS,CAAC;IAC9B,SAAS,EAAE,SAAS,CAAC;CACtB;;;CA0BA,CAAC;AAEF,eAAO,MAAM,6BAA6B,gKAUvC;IACD,eAAe,EAAE,SAAS,CAAC;IAC3B,sBAAsB,EAAE,SAAS,CAAC;IAClC,oBAAoB,EAAE,SAAS,CAAC;IAChC,OAAO,EAAE,aAAa,CAAC;IACvB,cAAc,EAAE,OAAO,CAAC;IACxB,cAAc,EAAE,SAAS,CAAC;IAC1B,eAAe,EAAE,SAAS,CAAC;IAC3B,kBAAkB,EAAE,SAAS,CAAC;IAC9B,SAAS,EAAE,SAAS,CAAC;CACtB,uCAoBA,CAAC;AAEF,eAAO,MAAM,4BAA4B,qLAWtC;IACD,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,SAAS,CAAC;IAC3B,sBAAsB,EAAE,SAAS,CAAC;IAClC,oBAAoB,EAAE,SAAS,CAAC;IAChC,OAAO,EAAE,aAAa,CAAC;IACvB,cAAc,EAAE,OAAO,CAAC;IACxB,mBAAmB,EAAE,SAAS,CAAC;IAC/B,eAAe,EAAE,SAAS,CAAC;IAC3B,kBAAkB,EAAE,SAAS,CAAC;IAC9B,SAAS,EAAE,SAAS,CAAC;CACtB,uCAsBA,CAAC"}
|
|
@@ -33,14 +33,10 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
33
33
|
};
|
|
34
34
|
})();
|
|
35
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
-
exports.getRepayFlashLoanInstruction = exports.getBorrowFlashLoanInstruction = exports.getFlashLoanInstructions =
|
|
36
|
+
exports.getRepayFlashLoanInstruction = exports.getBorrowFlashLoanInstruction = exports.getFlashLoanInstructions = void 0;
|
|
37
37
|
const web3_js_1 = require("@solana/web3.js");
|
|
38
|
-
const lib_1 = require("../lib");
|
|
39
38
|
const anchor = __importStar(require("@coral-xyz/anchor"));
|
|
40
|
-
|
|
41
|
-
new web3_js_1.PublicKey('So11111111111111111111111111111111111111111'),
|
|
42
|
-
new web3_js_1.PublicKey('So11111111111111111111111111111111111111112'),
|
|
43
|
-
];
|
|
39
|
+
const lib_1 = require("../lib");
|
|
44
40
|
const getFlashLoanInstructions = (args) => {
|
|
45
41
|
const flashBorrowIxn = (0, exports.getBorrowFlashLoanInstruction)({
|
|
46
42
|
walletPublicKey: args.walletPublicKey,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"instructions.js","sourceRoot":"","sources":["../../src/leverage/instructions.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6CAAwE;
|
|
1
|
+
{"version":3,"file":"instructions.js","sourceRoot":"","sources":["../../src/leverage/instructions.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
import { PublicKey, TransactionInstruction } from '@solana/web3.js';
|
|
2
2
|
import { KaminoMarket, KaminoObligation, KaminoReserve } from '../classes';
|
|
3
3
|
import { StrategyWithAddress } from '@kamino-finance/kliquidity-sdk';
|
|
4
|
-
import { AdjustLeverageInitialInputs, AdjustLeverageIxsResponse, AdjustLeverageProps, AdjustLeverageSwapInputsProps, DepositLeverageInitialInputs, DepositWithLeverageProps, DepositWithLeverageSwapInputsProps,
|
|
5
|
-
export declare function getDepositWithLeverageSwapInputs<QuoteResponse>({ owner, kaminoMarket, debtTokenMint, collTokenMint, depositAmount, priceDebtToColl, slippagePct, obligation, referrer, currentSlot, targetLeverage, selectedTokenMint, kamino, obligationTypeTagOverride, scopeFeed, budgetAndPriorityFeeIxs, quoteBufferBps, priceAinB, isKtoken, quoter, elevationGroupOverride, }: DepositWithLeverageSwapInputsProps<QuoteResponse>): Promise<{
|
|
4
|
+
import { AdjustLeverageInitialInputs, AdjustLeverageIxsResponse, AdjustLeverageProps, AdjustLeverageSwapInputsProps, DepositLeverageInitialInputs, DepositWithLeverageProps, DepositWithLeverageSwapInputsProps, DepositLeverageIxsResponse, SwapInputs, SwapIxs, WithdrawLeverageCalcsResult, WithdrawLeverageInitialInputs, WithdrawLeverageIxsResponse, WithdrawWithLeverageProps, WithdrawWithLeverageSwapInputsProps } from './types';
|
|
5
|
+
export declare function getDepositWithLeverageSwapInputs<QuoteResponse>({ owner, kaminoMarket, debtTokenMint, collTokenMint, depositAmount, priceDebtToColl, slippagePct, obligation, referrer, currentSlot, targetLeverage, selectedTokenMint, kamino, obligationTypeTagOverride, scopeFeed, budgetAndPriorityFeeIxs, quoteBufferBps, priceAinB, isKtoken, quoter, useV2Ixs, elevationGroupOverride, }: DepositWithLeverageSwapInputsProps<QuoteResponse>): Promise<{
|
|
6
6
|
swapInputs: SwapInputs;
|
|
7
7
|
initialInputs: DepositLeverageInitialInputs<QuoteResponse>;
|
|
8
8
|
}>;
|
|
9
|
-
export declare function getDepositWithLeverageIxns<QuoteResponse>({ owner, kaminoMarket, debtTokenMint, collTokenMint, depositAmount, priceDebtToColl, slippagePct, obligation, referrer, currentSlot, targetLeverage, selectedTokenMint, kamino, obligationTypeTagOverride, scopeFeed, budgetAndPriorityFeeIxs, quoteBufferBps, priceAinB, isKtoken, quoter, swapper, elevationGroupOverride, }: DepositWithLeverageProps<QuoteResponse>): Promise<
|
|
10
|
-
export declare function getWithdrawWithLeverageSwapInputs<QuoteResponse>({ owner, kaminoMarket, debtTokenMint, collTokenMint, deposited, borrowed, obligation, referrer, currentSlot, withdrawAmount, priceCollToDebt, slippagePct, isClosingPosition, selectedTokenMint, budgetAndPriorityFeeIxs, kamino, scopeFeed, quoteBufferBps, isKtoken, quoter, }: WithdrawWithLeverageSwapInputsProps<QuoteResponse>): Promise<{
|
|
9
|
+
export declare function getDepositWithLeverageIxns<QuoteResponse>({ owner, kaminoMarket, debtTokenMint, collTokenMint, depositAmount, priceDebtToColl, slippagePct, obligation, referrer, currentSlot, targetLeverage, selectedTokenMint, kamino, obligationTypeTagOverride, scopeFeed, budgetAndPriorityFeeIxs, quoteBufferBps, priceAinB, isKtoken, quoter, swapper, elevationGroupOverride, useV2Ixs, }: DepositWithLeverageProps<QuoteResponse>): Promise<DepositLeverageIxsResponse<QuoteResponse>>;
|
|
10
|
+
export declare function getWithdrawWithLeverageSwapInputs<QuoteResponse>({ owner, kaminoMarket, debtTokenMint, collTokenMint, deposited, borrowed, obligation, referrer, currentSlot, withdrawAmount, priceCollToDebt, slippagePct, isClosingPosition, selectedTokenMint, budgetAndPriorityFeeIxs, kamino, scopeFeed, quoteBufferBps, isKtoken, quoter, useV2Ixs, }: WithdrawWithLeverageSwapInputsProps<QuoteResponse>): Promise<{
|
|
11
11
|
swapInputs: SwapInputs;
|
|
12
12
|
initialInputs: WithdrawLeverageInitialInputs<QuoteResponse>;
|
|
13
13
|
}>;
|
|
14
|
-
export declare function getWithdrawWithLeverageIxns<QuoteResponse>({ owner, kaminoMarket, debtTokenMint, collTokenMint, obligation, deposited, borrowed, referrer, currentSlot, withdrawAmount, priceCollToDebt, slippagePct, isClosingPosition, selectedTokenMint, budgetAndPriorityFeeIxs, kamino, scopeFeed, quoteBufferBps, isKtoken, quoter, swapper, }: WithdrawWithLeverageProps<QuoteResponse>): Promise<WithdrawLeverageIxsResponse<QuoteResponse>>;
|
|
15
|
-
export declare function buildWithdrawWithLeverageIxns(market: KaminoMarket, debtReserve: KaminoReserve, collReserve: KaminoReserve, owner: PublicKey, obligation: KaminoObligation, referrer: PublicKey, currentSlot: number, isClosingPosition: boolean, depositTokenIsSol: boolean, scopeFeed: string | undefined, calcs: WithdrawLeverageCalcsResult, budgetAndPriorityFeeIxs: TransactionInstruction[] | undefined, swapQuoteIxs: SwapIxs, strategy: StrategyWithAddress | undefined, collIsKtoken: boolean): Promise<TransactionInstruction[]>;
|
|
16
|
-
export declare function getAdjustLeverageSwapInputs<QuoteResponse>({ owner, kaminoMarket, debtTokenMint, collTokenMint, obligation, depositedLamports, borrowedLamports, referrer, currentSlot, targetLeverage, priceCollToDebt, priceDebtToColl, slippagePct, budgetAndPriorityFeeIxs, kamino, scopeFeed, quoteBufferBps, isKtoken, quoter, }: AdjustLeverageSwapInputsProps<QuoteResponse>): Promise<{
|
|
14
|
+
export declare function getWithdrawWithLeverageIxns<QuoteResponse>({ owner, kaminoMarket, debtTokenMint, collTokenMint, obligation, deposited, borrowed, referrer, currentSlot, withdrawAmount, priceCollToDebt, slippagePct, isClosingPosition, selectedTokenMint, budgetAndPriorityFeeIxs, kamino, scopeFeed, quoteBufferBps, isKtoken, quoter, swapper, useV2Ixs, }: WithdrawWithLeverageProps<QuoteResponse>): Promise<WithdrawLeverageIxsResponse<QuoteResponse>>;
|
|
15
|
+
export declare function buildWithdrawWithLeverageIxns(market: KaminoMarket, debtReserve: KaminoReserve, collReserve: KaminoReserve, owner: PublicKey, obligation: KaminoObligation, referrer: PublicKey, currentSlot: number, isClosingPosition: boolean, depositTokenIsSol: boolean, scopeFeed: string | undefined, calcs: WithdrawLeverageCalcsResult, budgetAndPriorityFeeIxs: TransactionInstruction[] | undefined, swapQuoteIxs: SwapIxs, strategy: StrategyWithAddress | undefined, collIsKtoken: boolean, useV2Ixs: boolean): Promise<TransactionInstruction[]>;
|
|
16
|
+
export declare function getAdjustLeverageSwapInputs<QuoteResponse>({ owner, kaminoMarket, debtTokenMint, collTokenMint, obligation, depositedLamports, borrowedLamports, referrer, currentSlot, targetLeverage, priceCollToDebt, priceDebtToColl, slippagePct, budgetAndPriorityFeeIxs, kamino, scopeFeed, quoteBufferBps, isKtoken, quoter, useV2Ixs, }: AdjustLeverageSwapInputsProps<QuoteResponse>): Promise<{
|
|
17
17
|
swapInputs: SwapInputs;
|
|
18
18
|
initialInputs: AdjustLeverageInitialInputs<QuoteResponse>;
|
|
19
19
|
}>;
|
|
20
|
-
export declare function getAdjustLeverageIxns<QuoteResponse>({ owner, kaminoMarket, debtTokenMint, collTokenMint, obligation, depositedLamports, borrowedLamports, referrer, currentSlot, targetLeverage, priceCollToDebt, priceDebtToColl, slippagePct, budgetAndPriorityFeeIxs, kamino, scopeFeed, quoteBufferBps, priceAinB, isKtoken, quoter, swapper, }: AdjustLeverageProps<QuoteResponse>): Promise<AdjustLeverageIxsResponse<QuoteResponse>>;
|
|
20
|
+
export declare function getAdjustLeverageIxns<QuoteResponse>({ owner, kaminoMarket, debtTokenMint, collTokenMint, obligation, depositedLamports, borrowedLamports, referrer, currentSlot, targetLeverage, priceCollToDebt, priceDebtToColl, slippagePct, budgetAndPriorityFeeIxs, kamino, scopeFeed, quoteBufferBps, priceAinB, isKtoken, quoter, swapper, useV2Ixs, }: AdjustLeverageProps<QuoteResponse>): Promise<AdjustLeverageIxsResponse<QuoteResponse>>;
|
|
21
21
|
//# sourceMappingURL=operations.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"operations.d.ts","sourceRoot":"","sources":["../../src/leverage/operations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,SAAS,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAEtF,OAAO,EAEL,YAAY,EACZ,gBAAgB,EAChB,aAAa,EAEd,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"operations.d.ts","sourceRoot":"","sources":["../../src/leverage/operations.ts"],"names":[],"mappings":"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"}
|
|
@@ -20,10 +20,10 @@ const calcs_1 = require("./calcs");
|
|
|
20
20
|
const spl_token_1 = require("@solana/spl-token");
|
|
21
21
|
const utils_2 = require("./utils");
|
|
22
22
|
const CreationParameters_1 = require("@kamino-finance/kliquidity-sdk/dist/utils/CreationParameters");
|
|
23
|
-
async function getDepositWithLeverageSwapInputs({ owner, kaminoMarket, debtTokenMint, collTokenMint, depositAmount, priceDebtToColl, slippagePct, obligation, referrer, currentSlot, targetLeverage, selectedTokenMint, kamino, obligationTypeTagOverride, scopeFeed, budgetAndPriorityFeeIxs, quoteBufferBps, priceAinB, isKtoken, quoter, elevationGroupOverride, }) {
|
|
23
|
+
async function getDepositWithLeverageSwapInputs({ owner, kaminoMarket, debtTokenMint, collTokenMint, depositAmount, priceDebtToColl, slippagePct, obligation, referrer, currentSlot, targetLeverage, selectedTokenMint, kamino, obligationTypeTagOverride, scopeFeed, budgetAndPriorityFeeIxs, quoteBufferBps, priceAinB, isKtoken, quoter, useV2Ixs, elevationGroupOverride, }) {
|
|
24
24
|
const collReserve = kaminoMarket.getReserveByMint(collTokenMint);
|
|
25
25
|
const debtReserve = kaminoMarket.getReserveByMint(debtTokenMint);
|
|
26
|
-
const solTokenReserve = kaminoMarket.getReserveByMint(
|
|
26
|
+
const solTokenReserve = kaminoMarket.getReserveByMint(spl_token_1.NATIVE_MINT);
|
|
27
27
|
const flashLoanFee = collReserve.getFlashLoanFee() || new decimal_js_1.default(0);
|
|
28
28
|
const selectedTokenIsCollToken = selectedTokenMint.equals(collTokenMint);
|
|
29
29
|
const depositTokenIsSol = !solTokenReserve ? false : selectedTokenMint.equals(solTokenReserve.getLiquidityMint());
|
|
@@ -48,7 +48,7 @@ async function getDepositWithLeverageSwapInputs({ owner, kaminoMarket, debtToken
|
|
|
48
48
|
preActionIxs: [],
|
|
49
49
|
swapIxs: [],
|
|
50
50
|
lookupTables: [],
|
|
51
|
-
}, strategy, collIsKtoken, elevationGroupOverride);
|
|
51
|
+
}, strategy, collIsKtoken, useV2Ixs, elevationGroupOverride);
|
|
52
52
|
const uniqueKlendAccounts = (0, utils_1.uniqueAccounts)(klendIxs);
|
|
53
53
|
const swapInputAmount = (0, classes_2.numberToLamportsDecimal)(!collIsKtoken ? calcs.swapDebtTokenIn : calcs.singleSidedDepositKtokenOnly, debtReserve.stats.decimals).ceil();
|
|
54
54
|
const swapInputsForQuote = {
|
|
@@ -63,7 +63,7 @@ async function getDepositWithLeverageSwapInputs({ owner, kaminoMarket, debtToken
|
|
|
63
63
|
let expectedDebtTokenAtaBalance = new decimal_js_1.default(0);
|
|
64
64
|
if (collIsKtoken) {
|
|
65
65
|
let futureBalanceInAta = new decimal_js_1.default(0);
|
|
66
|
-
if (debtTokenMint.equals(
|
|
66
|
+
if (debtTokenMint.equals(spl_token_1.NATIVE_MINT)) {
|
|
67
67
|
futureBalanceInAta = futureBalanceInAta.add(!collIsKtoken ? quotePriceCalcs.initDepositInSol : quotePriceCalcs.initDepositInSol);
|
|
68
68
|
}
|
|
69
69
|
futureBalanceInAta = futureBalanceInAta.add(!collIsKtoken ? quotePriceCalcs.debtTokenToBorrow : quotePriceCalcs.flashBorrowInDebtTokenKtokenOnly);
|
|
@@ -122,7 +122,7 @@ async function getDepositWithLeverageCalcs(depositAmount, selectedTokenIsCollTok
|
|
|
122
122
|
}
|
|
123
123
|
return calcs;
|
|
124
124
|
}
|
|
125
|
-
async function getDepositWithLeverageIxns({ owner, kaminoMarket, debtTokenMint, collTokenMint, depositAmount, priceDebtToColl, slippagePct, obligation, referrer, currentSlot, targetLeverage, selectedTokenMint, kamino, obligationTypeTagOverride, scopeFeed, budgetAndPriorityFeeIxs, quoteBufferBps, priceAinB, isKtoken, quoter, swapper, elevationGroupOverride, }) {
|
|
125
|
+
async function getDepositWithLeverageIxns({ owner, kaminoMarket, debtTokenMint, collTokenMint, depositAmount, priceDebtToColl, slippagePct, obligation, referrer, currentSlot, targetLeverage, selectedTokenMint, kamino, obligationTypeTagOverride, scopeFeed, budgetAndPriorityFeeIxs, quoteBufferBps, priceAinB, isKtoken, quoter, swapper, elevationGroupOverride, useV2Ixs, }) {
|
|
126
126
|
const { swapInputs, initialInputs } = await getDepositWithLeverageSwapInputs({
|
|
127
127
|
owner,
|
|
128
128
|
kaminoMarket,
|
|
@@ -144,6 +144,7 @@ async function getDepositWithLeverageIxns({ owner, kaminoMarket, debtTokenMint,
|
|
|
144
144
|
priceAinB,
|
|
145
145
|
isKtoken,
|
|
146
146
|
quoter,
|
|
147
|
+
useV2Ixs,
|
|
147
148
|
});
|
|
148
149
|
let depositSwapper;
|
|
149
150
|
if (!initialInputs.collIsKtoken) {
|
|
@@ -167,13 +168,13 @@ async function getDepositWithLeverageIxns({ owner, kaminoMarket, debtTokenMint,
|
|
|
167
168
|
}
|
|
168
169
|
const collReserve = kaminoMarket.getReserveByMint(collTokenMint);
|
|
169
170
|
const debtReserve = kaminoMarket.getReserveByMint(debtTokenMint);
|
|
170
|
-
const solTokenReserve = kaminoMarket.getReserveByMint(
|
|
171
|
+
const solTokenReserve = kaminoMarket.getReserveByMint(spl_token_1.NATIVE_MINT);
|
|
171
172
|
const depositTokenIsSol = !solTokenReserve ? false : selectedTokenMint.equals(solTokenReserve.getLiquidityMint());
|
|
172
173
|
const ixs = await buildDepositWithLeverageIxns(kaminoMarket, debtReserve, collReserve, owner, initialInputs.obligation, referrer, currentSlot, depositTokenIsSol, scopeFeed, initialInputs.calcs, budgetAndPriorityFeeIxs, {
|
|
173
174
|
preActionIxs: [],
|
|
174
175
|
swapIxs: swapIxs,
|
|
175
176
|
lookupTables: lookupTables,
|
|
176
|
-
}, initialInputs.strategy, initialInputs.collIsKtoken, elevationGroupOverride);
|
|
177
|
+
}, initialInputs.strategy, initialInputs.collIsKtoken, useV2Ixs, elevationGroupOverride);
|
|
177
178
|
return {
|
|
178
179
|
ixs,
|
|
179
180
|
lookupTables,
|
|
@@ -181,7 +182,7 @@ async function getDepositWithLeverageIxns({ owner, kaminoMarket, debtTokenMint,
|
|
|
181
182
|
initialInputs,
|
|
182
183
|
};
|
|
183
184
|
}
|
|
184
|
-
async function buildDepositWithLeverageIxns(market, debtReserve, collReserve, owner, obligation, referrer, currentSlot, depositTokenIsSol, scopeFeed, calcs, budgetAndPriorityFeeIxs, swapQuoteIxs, strategy, collIsKtoken, elevationGroupOverride) {
|
|
185
|
+
async function buildDepositWithLeverageIxns(market, debtReserve, collReserve, owner, obligation, referrer, currentSlot, depositTokenIsSol, scopeFeed, calcs, budgetAndPriorityFeeIxs, swapQuoteIxs, strategy, collIsKtoken, useV2Ixs, elevationGroupOverride) {
|
|
185
186
|
const budgetIxns = budgetAndPriorityFeeIxs || (0, utils_1.getComputeBudgetAndPriorityFeeIxns)(3000000);
|
|
186
187
|
const collTokenMint = collReserve.getLiquidityMint();
|
|
187
188
|
const debtTokenMint = debtReserve.getLiquidityMint();
|
|
@@ -238,7 +239,7 @@ async function buildDepositWithLeverageIxns(market, debtReserve, collReserve, ow
|
|
|
238
239
|
const atasAndCreateIxns = (0, utils_1.createAtasIdempotent)(owner, mintsToCreateAtas);
|
|
239
240
|
const fillWsolAtaIxns = [];
|
|
240
241
|
if (depositTokenIsSol) {
|
|
241
|
-
fillWsolAtaIxns.push(...(0, utils_1.
|
|
242
|
+
fillWsolAtaIxns.push(...(0, utils_1.getTransferWsolIxns)(owner, (0, spl_token_1.getAssociatedTokenAddressSync)(spl_token_1.NATIVE_MINT, owner), (0, classes_2.numberToLamportsDecimal)(calcs.initDepositInSol, utils_1.SOL_DECIMALS).ceil()));
|
|
242
243
|
}
|
|
243
244
|
// 2. Flash borrow & repay the collateral amount needed for given leverage
|
|
244
245
|
// if user deposits coll, then we borrow the diff, else we borrow the entire amount
|
|
@@ -261,7 +262,8 @@ async function buildDepositWithLeverageIxns(market, debtReserve, collReserve, ow
|
|
|
261
262
|
.floor()
|
|
262
263
|
.toString(), collTokenMint, (0, classes_2.numberToLamportsDecimal)(!collIsKtoken ? calcs.debtTokenToBorrow : calcs.debtTokenToBorrow, debtReserve.stats.decimals)
|
|
263
264
|
.ceil()
|
|
264
|
-
.toString(), debtTokenMint, owner, obligation, 0, false, elevationGroupOverride === 0 ? false : true, // emode
|
|
265
|
+
.toString(), debtTokenMint, owner, obligation, useV2Ixs, 0, false, elevationGroupOverride === 0 ? false : true, // emode
|
|
266
|
+
false, // to be checked and created in a setup tx in the UI
|
|
265
267
|
false, // to be checked and created in a setup tx in the UI
|
|
266
268
|
referrer, currentSlot, scopeRefresh);
|
|
267
269
|
// 4. Swap
|
|
@@ -294,21 +296,21 @@ async function buildDepositWithLeverageIxns(market, debtReserve, collReserve, ow
|
|
|
294
296
|
];
|
|
295
297
|
}
|
|
296
298
|
}
|
|
297
|
-
async function getWithdrawWithLeverageSwapInputs({ owner, kaminoMarket, debtTokenMint, collTokenMint, deposited, borrowed, obligation, referrer, currentSlot, withdrawAmount, priceCollToDebt, slippagePct, isClosingPosition, selectedTokenMint, budgetAndPriorityFeeIxs, kamino, scopeFeed, quoteBufferBps, isKtoken, quoter, }) {
|
|
299
|
+
async function getWithdrawWithLeverageSwapInputs({ owner, kaminoMarket, debtTokenMint, collTokenMint, deposited, borrowed, obligation, referrer, currentSlot, withdrawAmount, priceCollToDebt, slippagePct, isClosingPosition, selectedTokenMint, budgetAndPriorityFeeIxs, kamino, scopeFeed, quoteBufferBps, isKtoken, quoter, useV2Ixs, }) {
|
|
298
300
|
const collReserve = kaminoMarket.getReserveByMint(collTokenMint);
|
|
299
301
|
const debtReserve = kaminoMarket.getReserveByMint(debtTokenMint);
|
|
300
302
|
const flashLoanFee = debtReserve.getFlashLoanFee() || new decimal_js_1.default(0);
|
|
301
303
|
const selectedTokenIsCollToken = selectedTokenMint.equals(collTokenMint);
|
|
302
304
|
const collIsKtoken = await isKtoken(collTokenMint);
|
|
303
305
|
const strategy = collIsKtoken ? (await kamino.getStrategyByKTokenMint(collTokenMint)) : undefined;
|
|
304
|
-
const solTokenReserve = kaminoMarket.getReserveByMint(
|
|
306
|
+
const solTokenReserve = kaminoMarket.getReserveByMint(spl_token_1.NATIVE_MINT);
|
|
305
307
|
const depositTokenIsSol = !solTokenReserve ? false : selectedTokenMint.equals(solTokenReserve.getLiquidityMint());
|
|
306
308
|
const calcs = (0, calcs_1.withdrawLeverageCalcs)(kaminoMarket, collReserve, debtReserve, priceCollToDebt, withdrawAmount, deposited, borrowed, currentSlot, isClosingPosition, selectedTokenIsCollToken, selectedTokenMint, obligation, flashLoanFee, slippagePct);
|
|
307
309
|
const klendIxs = await buildWithdrawWithLeverageIxns(kaminoMarket, debtReserve, collReserve, owner, obligation, referrer, currentSlot, isClosingPosition, depositTokenIsSol, scopeFeed, calcs, budgetAndPriorityFeeIxs, {
|
|
308
310
|
preActionIxs: [],
|
|
309
311
|
swapIxs: [],
|
|
310
312
|
lookupTables: [],
|
|
311
|
-
}, strategy, collIsKtoken);
|
|
313
|
+
}, strategy, collIsKtoken, useV2Ixs);
|
|
312
314
|
const uniqueKlendAccounts = (0, utils_1.uniqueAccounts)(klendIxs);
|
|
313
315
|
const swapInputAmount = (0, classes_2.numberToLamportsDecimal)(calcs.collTokenSwapIn, collReserve.state.liquidity.mintDecimals.toNumber()).ceil();
|
|
314
316
|
const swapInputsForQuote = {
|
|
@@ -339,10 +341,10 @@ async function getWithdrawWithLeverageSwapInputs({ owner, kaminoMarket, debtToke
|
|
|
339
341
|
},
|
|
340
342
|
};
|
|
341
343
|
}
|
|
342
|
-
async function getWithdrawWithLeverageIxns({ owner, kaminoMarket, debtTokenMint, collTokenMint, obligation, deposited, borrowed, referrer, currentSlot, withdrawAmount, priceCollToDebt, slippagePct, isClosingPosition, selectedTokenMint, budgetAndPriorityFeeIxs, kamino, scopeFeed, quoteBufferBps, isKtoken, quoter, swapper, }) {
|
|
344
|
+
async function getWithdrawWithLeverageIxns({ owner, kaminoMarket, debtTokenMint, collTokenMint, obligation, deposited, borrowed, referrer, currentSlot, withdrawAmount, priceCollToDebt, slippagePct, isClosingPosition, selectedTokenMint, budgetAndPriorityFeeIxs, kamino, scopeFeed, quoteBufferBps, isKtoken, quoter, swapper, useV2Ixs, }) {
|
|
343
345
|
const collReserve = kaminoMarket.getReserveByMint(collTokenMint);
|
|
344
346
|
const debtReserve = kaminoMarket.getReserveByMint(debtTokenMint);
|
|
345
|
-
const solTokenReserve = kaminoMarket.getReserveByMint(
|
|
347
|
+
const solTokenReserve = kaminoMarket.getReserveByMint(spl_token_1.NATIVE_MINT);
|
|
346
348
|
const depositTokenIsSol = !solTokenReserve ? false : selectedTokenMint.equals(solTokenReserve.getLiquidityMint());
|
|
347
349
|
const { swapInputs, initialInputs } = await getWithdrawWithLeverageSwapInputs({
|
|
348
350
|
owner,
|
|
@@ -365,6 +367,7 @@ async function getWithdrawWithLeverageIxns({ owner, kaminoMarket, debtTokenMint,
|
|
|
365
367
|
quoteBufferBps,
|
|
366
368
|
isKtoken,
|
|
367
369
|
quoter,
|
|
370
|
+
useV2Ixs,
|
|
368
371
|
});
|
|
369
372
|
let withdrawSwapper;
|
|
370
373
|
if (initialInputs.collIsKtoken) {
|
|
@@ -390,7 +393,7 @@ async function getWithdrawWithLeverageIxns({ owner, kaminoMarket, debtTokenMint,
|
|
|
390
393
|
preActionIxs: [],
|
|
391
394
|
swapIxs,
|
|
392
395
|
lookupTables,
|
|
393
|
-
}, initialInputs.strategy, initialInputs.collIsKtoken);
|
|
396
|
+
}, initialInputs.strategy, initialInputs.collIsKtoken, useV2Ixs);
|
|
394
397
|
// Send ixns and lookup tables
|
|
395
398
|
return {
|
|
396
399
|
ixs,
|
|
@@ -399,7 +402,7 @@ async function getWithdrawWithLeverageIxns({ owner, kaminoMarket, debtTokenMint,
|
|
|
399
402
|
initialInputs: initialInputs,
|
|
400
403
|
};
|
|
401
404
|
}
|
|
402
|
-
async function buildWithdrawWithLeverageIxns(market, debtReserve, collReserve, owner, obligation, referrer, currentSlot, isClosingPosition, depositTokenIsSol, scopeFeed, calcs, budgetAndPriorityFeeIxs, swapQuoteIxs, strategy, collIsKtoken) {
|
|
405
|
+
async function buildWithdrawWithLeverageIxns(market, debtReserve, collReserve, owner, obligation, referrer, currentSlot, isClosingPosition, depositTokenIsSol, scopeFeed, calcs, budgetAndPriorityFeeIxs, swapQuoteIxs, strategy, collIsKtoken, useV2Ixs) {
|
|
403
406
|
const collTokenMint = collReserve.getLiquidityMint();
|
|
404
407
|
const debtTokenMint = debtReserve.getLiquidityMint();
|
|
405
408
|
const debtTokenAta = (0, spl_token_1.getAssociatedTokenAddressSync)(debtTokenMint, owner, false, debtReserve.getLiquidityTokenProgram());
|
|
@@ -453,18 +456,18 @@ async function buildWithdrawWithLeverageIxns(market, debtReserve, collReserve, o
|
|
|
453
456
|
}
|
|
454
457
|
const atasAndCreateIxns = (0, utils_1.createAtasIdempotent)(owner, mintsToCreateAtas);
|
|
455
458
|
const closeWsolAtaIxns = [];
|
|
456
|
-
if (depositTokenIsSol || debtTokenMint.equals(
|
|
457
|
-
const wsolAta = (0, utils_1.getAssociatedTokenAddress)(
|
|
459
|
+
if (depositTokenIsSol || debtTokenMint.equals(spl_token_1.NATIVE_MINT)) {
|
|
460
|
+
const wsolAta = (0, utils_1.getAssociatedTokenAddress)(spl_token_1.NATIVE_MINT, owner, false);
|
|
458
461
|
closeWsolAtaIxns.push((0, spl_token_1.createCloseAccountInstruction)(wsolAta, owner, owner, [], spl_token_1.TOKEN_PROGRAM_ID));
|
|
459
462
|
}
|
|
460
463
|
const budgetIxns = budgetAndPriorityFeeIxs || (0, utils_1.getComputeBudgetAndPriorityFeeIxns)(3000000);
|
|
461
464
|
// TODO: Might be worth removing as it's only needed for Ktokens
|
|
462
465
|
// This is here so that we have enough wsol to repay in case the kAB swapped to sol after estimates is not enough
|
|
463
466
|
const fillWsolAtaIxns = [];
|
|
464
|
-
if (debtTokenMint.equals(
|
|
467
|
+
if (debtTokenMint.equals(spl_token_1.NATIVE_MINT)) {
|
|
465
468
|
const halfSolBalance = (await market.getConnection().getBalance(owner)) / web3_js_1.LAMPORTS_PER_SOL / 2;
|
|
466
469
|
const balanceToWrap = halfSolBalance < 0.1 ? halfSolBalance : 0.1;
|
|
467
|
-
fillWsolAtaIxns.push(...(0, utils_1.
|
|
470
|
+
fillWsolAtaIxns.push(...(0, utils_1.getTransferWsolIxns)(owner, (0, spl_token_1.getAssociatedTokenAddressSync)(spl_token_1.NATIVE_MINT, owner), (0, classes_2.numberToLamportsDecimal)(balanceToWrap, utils_1.SOL_DECIMALS).ceil()));
|
|
468
471
|
}
|
|
469
472
|
// 2. Prepare the flash borrow and flash repay amounts and ixns
|
|
470
473
|
// We borrow exactly how much we need to repay
|
|
@@ -485,7 +488,8 @@ async function buildWithdrawWithLeverageIxns(market, debtReserve, collReserve, o
|
|
|
485
488
|
// 6. Repay borrowed tokens and Withdraw tokens from reserve that will be swapped to repay flash loan
|
|
486
489
|
const repayAndWithdrawAction = await classes_1.KaminoAction.buildRepayAndWithdrawTxns(market, isClosingPosition ? utils_1.U64_MAX : (0, classes_2.numberToLamportsDecimal)(calcs.repayAmount, debtReserve.stats.decimals).floor().toString(), debtTokenMint, isClosingPosition
|
|
487
490
|
? utils_1.U64_MAX
|
|
488
|
-
: (0, classes_2.numberToLamportsDecimal)(calcs.depositTokenWithdrawAmount, collReserve.stats.decimals).ceil().toString(), collTokenMint, owner, currentSlot, obligation, 0, false, false, // to be checked and created in a setup tx in the UI (won't be the case for withdraw anyway as this would be created in deposit)
|
|
491
|
+
: (0, classes_2.numberToLamportsDecimal)(calcs.depositTokenWithdrawAmount, collReserve.stats.decimals).ceil().toString(), collTokenMint, owner, currentSlot, obligation, useV2Ixs, 0, false, false, // to be checked and created in a setup tx in the UI (won't be the case for withdraw anyway as this would be created in deposit)
|
|
492
|
+
false, // to be checked and created in a setup tx in the UI (won't be the case for withdraw anyway as this would be created in deposit)
|
|
489
493
|
isClosingPosition, referrer, { includeScopeRefresh: true, scopeFeed: scopeFeed });
|
|
490
494
|
const swapInstructions = (0, utils_1.removeBudgetAndAtaIxns)(swapQuoteIxs.swapIxs, []);
|
|
491
495
|
return [
|
|
@@ -501,7 +505,7 @@ async function buildWithdrawWithLeverageIxns(market, debtReserve, collReserve, o
|
|
|
501
505
|
...closeWsolAtaIxns,
|
|
502
506
|
];
|
|
503
507
|
}
|
|
504
|
-
async function getAdjustLeverageSwapInputs({ owner, kaminoMarket, debtTokenMint, collTokenMint, obligation, depositedLamports, borrowedLamports, referrer, currentSlot, targetLeverage, priceCollToDebt, priceDebtToColl, slippagePct, budgetAndPriorityFeeIxs, kamino, scopeFeed, quoteBufferBps, isKtoken, quoter, }) {
|
|
508
|
+
async function getAdjustLeverageSwapInputs({ owner, kaminoMarket, debtTokenMint, collTokenMint, obligation, depositedLamports, borrowedLamports, referrer, currentSlot, targetLeverage, priceCollToDebt, priceDebtToColl, slippagePct, budgetAndPriorityFeeIxs, kamino, scopeFeed, quoteBufferBps, isKtoken, quoter, useV2Ixs, }) {
|
|
505
509
|
const collReserve = kaminoMarket.getReserveByMint(collTokenMint);
|
|
506
510
|
const debtReserve = kaminoMarket.getReserveByMint(debtTokenMint);
|
|
507
511
|
const deposited = (0, classes_1.lamportsToNumberDecimal)(depositedLamports, collReserve.stats.decimals);
|
|
@@ -536,7 +540,7 @@ async function getAdjustLeverageSwapInputs({ owner, kaminoMarket, debtTokenMint,
|
|
|
536
540
|
preActionIxs: [],
|
|
537
541
|
swapIxs: [],
|
|
538
542
|
lookupTables: [],
|
|
539
|
-
}, budgetAndPriorityFeeIxs);
|
|
543
|
+
}, budgetAndPriorityFeeIxs, useV2Ixs);
|
|
540
544
|
const uniqueKlendAccounts = (0, utils_1.uniqueAccounts)(klendIxs);
|
|
541
545
|
const swapInputAmount = (0, classes_2.numberToLamportsDecimal)(!collIsKtoken ? calcs.borrowAmount : calcs.amountToFlashBorrowDebt, debtReserve.stats.decimals).ceil();
|
|
542
546
|
const swapInputsForQuote = {
|
|
@@ -585,7 +589,7 @@ async function getAdjustLeverageSwapInputs({ owner, kaminoMarket, debtTokenMint,
|
|
|
585
589
|
preActionIxs: [],
|
|
586
590
|
swapIxs: [],
|
|
587
591
|
lookupTables: [],
|
|
588
|
-
}, budgetAndPriorityFeeIxs);
|
|
592
|
+
}, budgetAndPriorityFeeIxs, useV2Ixs);
|
|
589
593
|
const uniqueKlendAccounts = (0, utils_1.uniqueAccounts)(klendIxs);
|
|
590
594
|
const swapInputAmount = (0, classes_2.numberToLamportsDecimal)(calcs.withdrawAmountWithSlippageAndFlashLoanFee, collReserve.state.liquidity.mintDecimals.toNumber()).ceil();
|
|
591
595
|
const swapInputsForQuote = {
|
|
@@ -625,7 +629,7 @@ async function getAdjustLeverageSwapInputs({ owner, kaminoMarket, debtTokenMint,
|
|
|
625
629
|
};
|
|
626
630
|
}
|
|
627
631
|
}
|
|
628
|
-
async function getAdjustLeverageIxns({ owner, kaminoMarket, debtTokenMint, collTokenMint, obligation, depositedLamports, borrowedLamports, referrer, currentSlot, targetLeverage, priceCollToDebt, priceDebtToColl, slippagePct, budgetAndPriorityFeeIxs, kamino, scopeFeed, quoteBufferBps, priceAinB, isKtoken, quoter, swapper, }) {
|
|
632
|
+
async function getAdjustLeverageIxns({ owner, kaminoMarket, debtTokenMint, collTokenMint, obligation, depositedLamports, borrowedLamports, referrer, currentSlot, targetLeverage, priceCollToDebt, priceDebtToColl, slippagePct, budgetAndPriorityFeeIxs, kamino, scopeFeed, quoteBufferBps, priceAinB, isKtoken, quoter, swapper, useV2Ixs, }) {
|
|
629
633
|
const { swapInputs, initialInputs } = await getAdjustLeverageSwapInputs({
|
|
630
634
|
owner,
|
|
631
635
|
kaminoMarket,
|
|
@@ -647,6 +651,7 @@ async function getAdjustLeverageIxns({ owner, kaminoMarket, debtTokenMint, collT
|
|
|
647
651
|
priceAinB,
|
|
648
652
|
isKtoken,
|
|
649
653
|
quoter,
|
|
654
|
+
useV2Ixs,
|
|
650
655
|
});
|
|
651
656
|
// leverage increased so we need to deposit and borrow more
|
|
652
657
|
if (initialInputs.isDeposit) {
|
|
@@ -666,7 +671,7 @@ async function getAdjustLeverageIxns({ owner, kaminoMarket, debtTokenMint, collT
|
|
|
666
671
|
preActionIxs: [],
|
|
667
672
|
swapIxs,
|
|
668
673
|
lookupTables,
|
|
669
|
-
}, budgetAndPriorityFeeIxs);
|
|
674
|
+
}, budgetAndPriorityFeeIxs, useV2Ixs);
|
|
670
675
|
return {
|
|
671
676
|
ixs,
|
|
672
677
|
lookupTables,
|
|
@@ -692,7 +697,7 @@ async function getAdjustLeverageIxns({ owner, kaminoMarket, debtTokenMint, collT
|
|
|
692
697
|
preActionIxs: [],
|
|
693
698
|
swapIxs,
|
|
694
699
|
lookupTables,
|
|
695
|
-
}, budgetAndPriorityFeeIxs);
|
|
700
|
+
}, budgetAndPriorityFeeIxs, useV2Ixs);
|
|
696
701
|
return {
|
|
697
702
|
ixs,
|
|
698
703
|
lookupTables,
|
|
@@ -704,7 +709,7 @@ async function getAdjustLeverageIxns({ owner, kaminoMarket, debtTokenMint, collT
|
|
|
704
709
|
/**
|
|
705
710
|
* Deposit and borrow tokens if leverage increased
|
|
706
711
|
*/
|
|
707
|
-
async function buildIncreaseLeverageIxns(owner, kaminoMarket, collTokenMint, debtTokenMint, obligation, referrer, currentSlot, calcs, strategy, scopeFeed, collIsKtoken, swapQuoteIxs, budgetAndPriorityFeeIxns) {
|
|
712
|
+
async function buildIncreaseLeverageIxns(owner, kaminoMarket, collTokenMint, debtTokenMint, obligation, referrer, currentSlot, calcs, strategy, scopeFeed, collIsKtoken, swapQuoteIxs, budgetAndPriorityFeeIxns, useV2Ixs) {
|
|
708
713
|
const collReserve = kaminoMarket.getReserveByMint(collTokenMint);
|
|
709
714
|
const debtReserve = kaminoMarket.getReserveByMint(debtTokenMint);
|
|
710
715
|
const debtTokenAta = (0, spl_token_1.getAssociatedTokenAddressSync)(debtTokenMint, owner, false, debtReserve.getLiquidityTokenProgram());
|
|
@@ -773,10 +778,12 @@ async function buildIncreaseLeverageIxns(owner, kaminoMarket, collTokenMint, deb
|
|
|
773
778
|
referrerTokenState: kaminoMarket.programId,
|
|
774
779
|
programId: kaminoMarket.programId,
|
|
775
780
|
});
|
|
776
|
-
const depositAction = await classes_1.KaminoAction.buildDepositTxns(kaminoMarket, (0, classes_2.numberToLamportsDecimal)(calcs.adjustDepositPosition, collReserve.stats.decimals).floor().toString(), collTokenMint, owner, obligation, 0, false, false, false, // to be checked and create in a setup tx in the UI (won't be the case for adjust anyway as this would be created in deposit)
|
|
781
|
+
const depositAction = await classes_1.KaminoAction.buildDepositTxns(kaminoMarket, (0, classes_2.numberToLamportsDecimal)(calcs.adjustDepositPosition, collReserve.stats.decimals).floor().toString(), collTokenMint, owner, obligation, useV2Ixs, 0, false, false, false, // to be checked and create in a setup tx in the UI (won't be the case for adjust anyway as this would be created in deposit)
|
|
782
|
+
false, // to be checked and create in a setup tx in the UI (won't be the case for adjust anyway as this would be created in deposit)
|
|
777
783
|
referrer, currentSlot, { includeScopeRefresh: true, scopeFeed: scopeFeed });
|
|
778
784
|
// 4. Borrow tokens in borrow token reserve that will be swapped to repay flash loan
|
|
779
|
-
const borrowAction = await classes_1.KaminoAction.buildBorrowTxns(kaminoMarket, (0, classes_2.numberToLamportsDecimal)(calcs.borrowAmount, debtReserve.stats.decimals).ceil().toString(), debtTokenMint, owner, obligation, 0, false, false, false, // to be checked and create in a setup tx in the UI (won't be the case for adjust anyway as this would be created in deposit)
|
|
785
|
+
const borrowAction = await classes_1.KaminoAction.buildBorrowTxns(kaminoMarket, (0, classes_2.numberToLamportsDecimal)(calcs.borrowAmount, debtReserve.stats.decimals).ceil().toString(), debtTokenMint, owner, obligation, useV2Ixs, 0, false, false, false, // to be checked and create in a setup tx in the UI (won't be the case for adjust anyway as this would be created in deposit)
|
|
786
|
+
false, // to be checked and create in a setup tx in the UI (won't be the case for adjust anyway as this would be created in deposit)
|
|
780
787
|
referrer, currentSlot, { includeScopeRefresh: true, scopeFeed: scopeFeed });
|
|
781
788
|
const swapInstructions = (0, utils_1.removeBudgetAndAtaIxns)(swapQuoteIxs.swapIxs, []);
|
|
782
789
|
const ixs = !collIsKtoken
|
|
@@ -811,7 +818,7 @@ async function buildIncreaseLeverageIxns(owner, kaminoMarket, collTokenMint, deb
|
|
|
811
818
|
/**
|
|
812
819
|
* Withdraw and repay tokens if leverage decreased
|
|
813
820
|
*/
|
|
814
|
-
async function buildDecreaseLeverageIxns(owner, kaminoMarket, collTokenMint, debtTokenMint, obligation, referrer, currentSlot, calcs, strategy, scopeFeed, collIsKtoken, swapQuoteIxs, budgetAndPriorityFeeIxns) {
|
|
821
|
+
async function buildDecreaseLeverageIxns(owner, kaminoMarket, collTokenMint, debtTokenMint, obligation, referrer, currentSlot, calcs, strategy, scopeFeed, collIsKtoken, swapQuoteIxs, budgetAndPriorityFeeIxns, useV2Ixs) {
|
|
815
822
|
const collReserve = kaminoMarket.getReserveByMint(collTokenMint);
|
|
816
823
|
const debtReserve = kaminoMarket.getReserveByMint(debtTokenMint);
|
|
817
824
|
const debtTokenAta = (0, spl_token_1.getAssociatedTokenAddressSync)(debtTokenMint, owner, false, debtReserve.getLiquidityTokenProgram());
|
|
@@ -869,12 +876,12 @@ async function buildDecreaseLeverageIxns(owner, kaminoMarket, collTokenMint, deb
|
|
|
869
876
|
// This is here so that we have enough wsol to repay in case the kAB swapped to sol after estimates is not enough
|
|
870
877
|
const closeWsolAtaIxns = [];
|
|
871
878
|
const fillWsolAtaIxns = [];
|
|
872
|
-
if (debtTokenMint.equals(
|
|
873
|
-
const wsolAta = (0, utils_1.getAssociatedTokenAddress)(
|
|
879
|
+
if (debtTokenMint.equals(spl_token_1.NATIVE_MINT)) {
|
|
880
|
+
const wsolAta = (0, utils_1.getAssociatedTokenAddress)(spl_token_1.NATIVE_MINT, owner, false);
|
|
874
881
|
closeWsolAtaIxns.push((0, spl_token_1.createCloseAccountInstruction)(wsolAta, owner, owner, [], spl_token_1.TOKEN_PROGRAM_ID));
|
|
875
882
|
const halfSolBalance = (await kaminoMarket.getConnection().getBalance(owner)) / web3_js_1.LAMPORTS_PER_SOL / 2;
|
|
876
883
|
const balanceToWrap = halfSolBalance < 0.1 ? halfSolBalance : 0.1;
|
|
877
|
-
fillWsolAtaIxns.push(...(0, utils_1.
|
|
884
|
+
fillWsolAtaIxns.push(...(0, utils_1.getTransferWsolIxns)(owner, wsolAta, (0, classes_2.numberToLamportsDecimal)(balanceToWrap, debtReserve.stats.decimals).ceil()));
|
|
878
885
|
}
|
|
879
886
|
// 3. Flash borrow & repay amount to repay (debt)
|
|
880
887
|
const { flashBorrowIxn, flashRepayIxn } = (0, instructions_1.getFlashLoanInstructions)({
|
|
@@ -892,10 +899,12 @@ async function buildDecreaseLeverageIxns(owner, kaminoMarket, collTokenMint, deb
|
|
|
892
899
|
});
|
|
893
900
|
// 4. Actually do the repay of the flash borrowed amounts
|
|
894
901
|
const scopeRefresh = scopeFeed ? { includeScopeRefresh: true, scopeFeed: scopeFeed } : undefined;
|
|
895
|
-
const repayAction = await classes_1.KaminoAction.buildRepayTxns(kaminoMarket, (0, classes_2.numberToLamportsDecimal)(decimal_js_1.default.abs(calcs.adjustBorrowPosition), debtReserve.stats.decimals).floor().toString(), debtTokenMint, owner, obligation, currentSlot, undefined, 0, false, false, false, // to be checked and create in a setup tx in the UI (won't be the case for adjust anyway as this would be created in deposit)
|
|
902
|
+
const repayAction = await classes_1.KaminoAction.buildRepayTxns(kaminoMarket, (0, classes_2.numberToLamportsDecimal)(decimal_js_1.default.abs(calcs.adjustBorrowPosition), debtReserve.stats.decimals).floor().toString(), debtTokenMint, owner, obligation, useV2Ixs, currentSlot, undefined, 0, false, false, false, // to be checked and create in a setup tx in the UI (won't be the case for adjust anyway as this would be created in deposit)
|
|
903
|
+
false, // to be checked and create in a setup tx in the UI (won't be the case for adjust anyway as this would be created in deposit)
|
|
896
904
|
referrer, scopeRefresh);
|
|
897
905
|
// 6. Withdraw collateral (a little bit more to be able to pay for the slippage on swap)
|
|
898
|
-
const withdrawAction = await classes_1.KaminoAction.buildWithdrawTxns(kaminoMarket, (0, classes_2.numberToLamportsDecimal)(calcs.withdrawAmountWithSlippageAndFlashLoanFee, collReserve.stats.decimals).ceil().toString(), collTokenMint, owner, obligation, 0, false, false, false, // to be checked and create in a setup tx in the UI (won't be the case for adjust anyway as this would be created in deposit)
|
|
906
|
+
const withdrawAction = await classes_1.KaminoAction.buildWithdrawTxns(kaminoMarket, (0, classes_2.numberToLamportsDecimal)(calcs.withdrawAmountWithSlippageAndFlashLoanFee, collReserve.stats.decimals).ceil().toString(), collTokenMint, owner, obligation, useV2Ixs, 0, false, false, false, // to be checked and create in a setup tx in the UI (won't be the case for adjust anyway as this would be created in deposit)
|
|
907
|
+
false, // to be checked and create in a setup tx in the UI (won't be the case for adjust anyway as this would be created in deposit)
|
|
899
908
|
referrer, currentSlot, { includeScopeRefresh: true, scopeFeed: scopeFeed });
|
|
900
909
|
const swapInstructions = (0, utils_1.removeBudgetAndAtaIxns)(swapQuoteIxs.swapIxs, []);
|
|
901
910
|
const ixns = [
|