@kamino-finance/klend-sdk 7.1.3 → 7.1.4-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/@codegen/klend/accounts/LendingMarket.d.ts +144 -3
- package/dist/@codegen/klend/accounts/LendingMarket.d.ts.map +1 -1
- package/dist/@codegen/klend/accounts/LendingMarket.js +105 -3
- package/dist/@codegen/klend/accounts/LendingMarket.js.map +1 -1
- package/dist/@codegen/klend/accounts/Obligation.d.ts +30 -15
- package/dist/@codegen/klend/accounts/Obligation.d.ts.map +1 -1
- package/dist/@codegen/klend/accounts/Obligation.js +31 -21
- package/dist/@codegen/klend/accounts/Obligation.js.map +1 -1
- package/dist/@codegen/klend/accounts/PoolState.d.ts +53 -0
- package/dist/@codegen/klend/accounts/PoolState.d.ts.map +1 -0
- package/dist/@codegen/klend/accounts/PoolState.js +167 -0
- package/dist/@codegen/klend/accounts/PoolState.js.map +1 -0
- package/dist/@codegen/klend/accounts/Reserve.d.ts +6 -0
- package/dist/@codegen/klend/accounts/Reserve.d.ts.map +1 -1
- package/dist/@codegen/klend/accounts/Reserve.js +9 -2
- package/dist/@codegen/klend/accounts/Reserve.js.map +1 -1
- package/dist/@codegen/klend/accounts/UnstakeTicket.d.ts +41 -0
- package/dist/@codegen/klend/accounts/UnstakeTicket.d.ts.map +1 -0
- package/dist/@codegen/klend/accounts/UnstakeTicket.js +143 -0
- package/dist/@codegen/klend/accounts/UnstakeTicket.js.map +1 -0
- package/dist/@codegen/klend/accounts/UserState.d.ts +0 -75
- package/dist/@codegen/klend/accounts/UserState.d.ts.map +1 -1
- package/dist/@codegen/klend/accounts/UserState.js +0 -25
- package/dist/@codegen/klend/accounts/UserState.js.map +1 -1
- package/dist/@codegen/klend/accounts/WithdrawTicket.d.ts +132 -0
- package/dist/@codegen/klend/accounts/WithdrawTicket.d.ts.map +1 -0
- package/dist/@codegen/klend/accounts/WithdrawTicket.js +191 -0
- package/dist/@codegen/klend/accounts/WithdrawTicket.js.map +1 -0
- package/dist/@codegen/klend/accounts/index.d.ts +6 -0
- package/dist/@codegen/klend/accounts/index.d.ts.map +1 -1
- package/dist/@codegen/klend/accounts/index.js +7 -1
- package/dist/@codegen/klend/accounts/index.js.map +1 -1
- package/dist/@codegen/klend/errors/custom.d.ts +226 -2
- package/dist/@codegen/klend/errors/custom.d.ts.map +1 -1
- package/dist/@codegen/klend/errors/custom.js +396 -3
- package/dist/@codegen/klend/errors/custom.js.map +1 -1
- package/dist/@codegen/klend/instructions/enqueueToWithdraw.d.ts +39 -0
- package/dist/@codegen/klend/instructions/enqueueToWithdraw.d.ts.map +1 -0
- package/dist/@codegen/klend/instructions/enqueueToWithdraw.js +67 -0
- package/dist/@codegen/klend/instructions/enqueueToWithdraw.js.map +1 -0
- package/dist/@codegen/klend/instructions/fillBorrowOrder.d.ts +36 -0
- package/dist/@codegen/klend/instructions/fillBorrowOrder.d.ts.map +1 -0
- package/dist/@codegen/klend/instructions/fillBorrowOrder.js +49 -0
- package/dist/@codegen/klend/instructions/fillBorrowOrder.js.map +1 -0
- package/dist/@codegen/klend/instructions/idlMissingTypes.d.ts +1 -2
- package/dist/@codegen/klend/instructions/idlMissingTypes.d.ts.map +1 -1
- package/dist/@codegen/klend/instructions/idlMissingTypes.js +6 -2
- package/dist/@codegen/klend/instructions/idlMissingTypes.js.map +1 -1
- package/dist/@codegen/klend/instructions/index.d.ts +16 -0
- package/dist/@codegen/klend/instructions/index.d.ts.map +1 -1
- package/dist/@codegen/klend/instructions/index.js +18 -1
- package/dist/@codegen/klend/instructions/index.js.map +1 -1
- package/dist/@codegen/klend/instructions/initReserve.d.ts +1 -1
- package/dist/@codegen/klend/instructions/initReserve.d.ts.map +1 -1
- package/dist/@codegen/klend/instructions/initReserve.js +1 -5
- package/dist/@codegen/klend/instructions/initReserve.js.map +1 -1
- package/dist/@codegen/klend/instructions/liquidateObligationAndRedeemReserveCollateral.js +1 -1
- package/dist/@codegen/klend/instructions/recoverInvalidTicketCollateral.d.ts +47 -0
- package/dist/@codegen/klend/instructions/recoverInvalidTicketCollateral.d.ts.map +1 -0
- package/dist/@codegen/klend/instructions/recoverInvalidTicketCollateral.js +66 -0
- package/dist/@codegen/klend/instructions/recoverInvalidTicketCollateral.js.map +1 -0
- package/dist/@codegen/klend/instructions/setBorrowOrder.d.ts +31 -0
- package/dist/@codegen/klend/instructions/setBorrowOrder.d.ts.map +1 -0
- package/dist/@codegen/klend/instructions/setBorrowOrder.js +64 -0
- package/dist/@codegen/klend/instructions/setBorrowOrder.js.map +1 -0
- package/dist/@codegen/klend/instructions/unstakeLstCollateralEnd.d.ts +53 -0
- package/dist/@codegen/klend/instructions/unstakeLstCollateralEnd.d.ts.map +1 -0
- package/dist/@codegen/klend/instructions/unstakeLstCollateralEnd.js +190 -0
- package/dist/@codegen/klend/instructions/unstakeLstCollateralEnd.js.map +1 -0
- package/dist/@codegen/klend/instructions/unstakeLstCollateralStart.d.ts +70 -0
- package/dist/@codegen/klend/instructions/unstakeLstCollateralStart.d.ts.map +1 -0
- package/dist/@codegen/klend/instructions/unstakeLstCollateralStart.js +261 -0
- package/dist/@codegen/klend/instructions/unstakeLstCollateralStart.js.map +1 -0
- package/dist/@codegen/klend/instructions/updateGlobalConfig.d.ts +1 -1
- package/dist/@codegen/klend/instructions/updateGlobalConfig.d.ts.map +1 -1
- package/dist/@codegen/klend/instructions/updateGlobalConfig.js +1 -0
- package/dist/@codegen/klend/instructions/updateGlobalConfig.js.map +1 -1
- package/dist/@codegen/klend/instructions/updateReserveConfig.d.ts +1 -1
- package/dist/@codegen/klend/instructions/updateReserveConfig.d.ts.map +1 -1
- package/dist/@codegen/klend/instructions/updateReserveConfig.js +1 -0
- package/dist/@codegen/klend/instructions/updateReserveConfig.js.map +1 -1
- package/dist/@codegen/klend/instructions/withdrawObligationCollateral.js +1 -1
- package/dist/@codegen/klend/instructions/withdrawObligationCollateralV2.js +1 -1
- package/dist/@codegen/klend/instructions/withdrawObligationUsol.d.ts +41 -0
- package/dist/@codegen/klend/instructions/withdrawObligationUsol.d.ts.map +1 -0
- package/dist/@codegen/klend/instructions/withdrawObligationUsol.js +135 -0
- package/dist/@codegen/klend/instructions/withdrawObligationUsol.js.map +1 -0
- package/dist/@codegen/klend/instructions/withdrawQueuedLiquidity.d.ts +51 -0
- package/dist/@codegen/klend/instructions/withdrawQueuedLiquidity.d.ts.map +1 -0
- package/dist/@codegen/klend/instructions/withdrawQueuedLiquidity.js +28 -0
- package/dist/@codegen/klend/instructions/withdrawQueuedLiquidity.js.map +1 -0
- package/dist/@codegen/klend/types/BorrowOrder.d.ts +192 -0
- package/dist/@codegen/klend/types/BorrowOrder.d.ts.map +1 -0
- package/dist/@codegen/klend/types/BorrowOrder.js +194 -0
- package/dist/@codegen/klend/types/BorrowOrder.js.map +1 -0
- package/dist/@codegen/klend/types/BorrowOrderConfigArgs.d.ts +39 -0
- package/dist/@codegen/klend/types/BorrowOrderConfigArgs.d.ts.map +1 -0
- package/dist/@codegen/klend/types/BorrowOrderConfigArgs.js +100 -0
- package/dist/@codegen/klend/types/BorrowOrderConfigArgs.js.map +1 -0
- package/dist/@codegen/klend/types/ObligationLiquidity.d.ts +35 -5
- package/dist/@codegen/klend/types/ObligationLiquidity.d.ts.map +1 -1
- package/dist/@codegen/klend/types/ObligationLiquidity.js +17 -7
- package/dist/@codegen/klend/types/ObligationLiquidity.js.map +1 -1
- package/dist/@codegen/klend/types/ObligationOrder.d.ts +4 -4
- package/dist/@codegen/klend/types/ObligationOrder.js +2 -2
- package/dist/@codegen/klend/types/ReserveConfig.d.ts +141 -29
- package/dist/@codegen/klend/types/ReserveConfig.d.ts.map +1 -1
- package/dist/@codegen/klend/types/ReserveConfig.js +89 -25
- package/dist/@codegen/klend/types/ReserveConfig.js.map +1 -1
- package/dist/@codegen/klend/types/ReserveFees.d.ts +8 -8
- package/dist/@codegen/klend/types/ReserveFees.d.ts.map +1 -1
- package/dist/@codegen/klend/types/ReserveFees.js +8 -8
- package/dist/@codegen/klend/types/ReserveFees.js.map +1 -1
- package/dist/@codegen/klend/types/ReserveLiquidity.d.ts +26 -8
- package/dist/@codegen/klend/types/ReserveLiquidity.d.ts.map +1 -1
- package/dist/@codegen/klend/types/ReserveLiquidity.js +14 -8
- package/dist/@codegen/klend/types/ReserveLiquidity.js.map +1 -1
- package/dist/@codegen/klend/types/UpdateConfigMode.d.ts +92 -14
- package/dist/@codegen/klend/types/UpdateConfigMode.d.ts.map +1 -1
- package/dist/@codegen/klend/types/UpdateConfigMode.js +168 -23
- package/dist/@codegen/klend/types/UpdateConfigMode.js.map +1 -1
- package/dist/@codegen/klend/types/UpdateLendingMarketMode.d.ts +130 -0
- package/dist/@codegen/klend/types/UpdateLendingMarketMode.d.ts.map +1 -1
- package/dist/@codegen/klend/types/UpdateLendingMarketMode.js +241 -1
- package/dist/@codegen/klend/types/UpdateLendingMarketMode.js.map +1 -1
- package/dist/@codegen/klend/types/WithdrawQueue.d.ts +64 -0
- package/dist/@codegen/klend/types/WithdrawQueue.d.ts.map +1 -0
- package/dist/@codegen/klend/types/WithdrawQueue.js +104 -0
- package/dist/@codegen/klend/types/WithdrawQueue.js.map +1 -0
- package/dist/@codegen/klend/types/index.d.ts +10 -8
- package/dist/@codegen/klend/types/index.d.ts.map +1 -1
- package/dist/@codegen/klend/types/index.js +7 -3
- package/dist/@codegen/klend/types/index.js.map +1 -1
- package/dist/@codegen/klend/zero_padding/ObligationZP.d.ts +9 -4
- package/dist/@codegen/klend/zero_padding/ObligationZP.d.ts.map +1 -1
- package/dist/@codegen/klend/zero_padding/ObligationZP.js +22 -13
- package/dist/@codegen/klend/zero_padding/ObligationZP.js.map +1 -1
- package/dist/classes/action.d.ts +30 -3
- package/dist/classes/action.d.ts.map +1 -1
- package/dist/classes/action.js +364 -10
- package/dist/classes/action.js.map +1 -1
- package/dist/classes/manager.d.ts.map +1 -1
- package/dist/classes/manager.js +10 -0
- package/dist/classes/manager.js.map +1 -1
- package/dist/classes/market.d.ts +6 -2
- package/dist/classes/market.d.ts.map +1 -1
- package/dist/classes/market.js +26 -6
- package/dist/classes/market.js.map +1 -1
- package/dist/classes/obligation.js +1 -1
- package/dist/classes/obligation.js.map +1 -1
- package/dist/classes/reserve.d.ts.map +1 -1
- package/dist/classes/reserve.js +13 -7
- package/dist/classes/reserve.js.map +1 -1
- package/dist/classes/unstakingPool.d.ts +20 -3
- package/dist/classes/unstakingPool.d.ts.map +1 -1
- package/dist/classes/unstakingPool.js +62 -8
- package/dist/classes/unstakingPool.js.map +1 -1
- package/dist/idl/klend.json +2125 -232
- package/dist/lending_operations/index.d.ts +1 -0
- package/dist/lending_operations/index.d.ts.map +1 -1
- package/dist/lending_operations/index.js +1 -0
- package/dist/lending_operations/index.js.map +1 -1
- package/dist/lending_operations/unstake_lst_collateral.d.ts +12 -0
- package/dist/lending_operations/unstake_lst_collateral.d.ts.map +1 -0
- package/dist/lending_operations/unstake_lst_collateral.js +104 -0
- package/dist/lending_operations/unstake_lst_collateral.js.map +1 -0
- package/dist/manager/client_kamino_manager.js +11 -8
- package/dist/manager/client_kamino_manager.js.map +1 -1
- package/dist/utils/managerTypes.d.ts.map +1 -1
- package/dist/utils/managerTypes.js +9 -4
- package/dist/utils/managerTypes.js.map +1 -1
- package/dist/utils/seeds.d.ts +10 -14
- package/dist/utils/seeds.d.ts.map +1 -1
- package/dist/utils/seeds.js +25 -22
- package/dist/utils/seeds.js.map +1 -1
- package/package.json +1 -1
- package/src/@codegen/klend/accounts/LendingMarket.ts +210 -5
- package/src/@codegen/klend/accounts/Obligation.ts +53 -31
- package/src/@codegen/klend/accounts/PoolState.ts +192 -0
- package/src/@codegen/klend/accounts/Reserve.ts +13 -2
- package/src/@codegen/klend/accounts/UnstakeTicket.ts +160 -0
- package/src/@codegen/klend/accounts/UserState.ts +0 -75
- package/src/@codegen/klend/accounts/WithdrawTicket.ts +256 -0
- package/src/@codegen/klend/accounts/index.ts +6 -0
- package/src/@codegen/klend/errors/custom.ts +427 -2
- package/src/@codegen/klend/instructions/enqueueToWithdraw.ts +89 -0
- package/src/@codegen/klend/instructions/fillBorrowOrder.ts +96 -0
- package/src/@codegen/klend/instructions/idlMissingTypes.ts +7 -4
- package/src/@codegen/klend/instructions/index.ts +34 -0
- package/src/@codegen/klend/instructions/initReserve.ts +2 -6
- package/src/@codegen/klend/instructions/liquidateObligationAndRedeemReserveCollateral.ts +1 -1
- package/src/@codegen/klend/instructions/recoverInvalidTicketCollateral.ts +96 -0
- package/src/@codegen/klend/instructions/setBorrowOrder.ts +77 -0
- package/src/@codegen/klend/instructions/unstakeLstCollateralEnd.ts +251 -0
- package/src/@codegen/klend/instructions/unstakeLstCollateralStart.ts +353 -0
- package/src/@codegen/klend/instructions/updateGlobalConfig.ts +2 -1
- package/src/@codegen/klend/instructions/updateReserveConfig.ts +2 -1
- package/src/@codegen/klend/instructions/withdrawObligationCollateral.ts +1 -1
- package/src/@codegen/klend/instructions/withdrawObligationCollateralV2.ts +1 -1
- package/src/@codegen/klend/instructions/withdrawObligationUsol.ts +168 -0
- package/src/@codegen/klend/instructions/withdrawQueuedLiquidity.ts +92 -0
- package/src/@codegen/klend/types/BorrowOrder.ts +267 -0
- package/src/@codegen/klend/types/BorrowOrderConfigArgs.ts +87 -0
- package/src/@codegen/klend/types/ObligationLiquidity.ts +39 -9
- package/src/@codegen/klend/types/ObligationOrder.ts +4 -4
- package/src/@codegen/klend/types/ReserveConfig.ts +171 -39
- package/src/@codegen/klend/types/ReserveFees.ts +12 -12
- package/src/@codegen/klend/types/ReserveLiquidity.ts +30 -12
- package/src/@codegen/klend/types/UpdateConfigMode.ts +206 -26
- package/src/@codegen/klend/types/UpdateLendingMarketMode.ts +300 -0
- package/src/@codegen/klend/types/WithdrawQueue.ts +117 -0
- package/src/@codegen/klend/types/index.ts +45 -16
- package/src/@codegen/klend/zero_padding/ObligationZP.ts +22 -13
- package/src/classes/action.ts +577 -8
- package/src/classes/manager.ts +11 -0
- package/src/classes/market.ts +36 -5
- package/src/classes/obligation.ts +1 -1
- package/src/classes/reserve.ts +13 -8
- package/src/classes/unstakingPool.ts +83 -6
- package/src/idl/klend.json +2126 -233
- package/src/lending_operations/index.ts +1 -0
- package/src/lending_operations/unstake_lst_collateral.ts +174 -0
- package/src/manager/client_kamino_manager.ts +11 -8
- package/src/utils/managerTypes.ts +9 -4
- package/src/utils/seeds.ts +28 -26
- package/dist/@codegen/klend/types/AssetTier.d.ts +0 -45
- package/dist/@codegen/klend/types/AssetTier.d.ts.map +0 -1
- package/dist/@codegen/klend/types/AssetTier.js +0 -132
- package/dist/@codegen/klend/types/AssetTier.js.map +0 -1
- package/src/@codegen/klend/types/AssetTier.ts +0 -119
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
import {
|
|
2
|
+
Fraction,
|
|
3
|
+
getStandardPoolMintRemainingAccounts,
|
|
4
|
+
KaminoAction,
|
|
5
|
+
KaminoMarket,
|
|
6
|
+
KaminoObligation,
|
|
7
|
+
KaminoReserve,
|
|
8
|
+
maybeGetStakedPoolByMint,
|
|
9
|
+
} from '../classes';
|
|
10
|
+
import { getFlashLoanInstructions, getScopeRefreshIx } from '../leverage';
|
|
11
|
+
import {
|
|
12
|
+
createAtasIdempotent,
|
|
13
|
+
getComputeBudgetAndPriorityFeeIxs,
|
|
14
|
+
ScopePriceRefreshConfig,
|
|
15
|
+
SLOTS_PER_DAY,
|
|
16
|
+
} from '../utils';
|
|
17
|
+
import Decimal from 'decimal.js';
|
|
18
|
+
import BN from 'bn.js';
|
|
19
|
+
import { Address, IInstruction, none, Option, Slot, TransactionSigner } from '@solana/kit';
|
|
20
|
+
|
|
21
|
+
const LST_CONVERSION_MARGIN_BPS = new Decimal(100);
|
|
22
|
+
const FULL_BPS = new Decimal(10_000);
|
|
23
|
+
|
|
24
|
+
export async function buildUnstakeLstCollateralStartIxs(
|
|
25
|
+
market: KaminoMarket,
|
|
26
|
+
obligation: KaminoObligation,
|
|
27
|
+
owner: TransactionSigner,
|
|
28
|
+
lstMint: Address,
|
|
29
|
+
referrer: Option<Address>,
|
|
30
|
+
currentSlot: Slot,
|
|
31
|
+
budgetAndPriorityFeeIxs: IInstruction[] | undefined,
|
|
32
|
+
scopeRefreshConfig: ScopePriceRefreshConfig | undefined
|
|
33
|
+
): Promise<{ instructions: IInstruction[]; remainingSigners: TransactionSigner[] }> {
|
|
34
|
+
// Get reserves based on obligation
|
|
35
|
+
const usolMint = await market.getUsolPoolMint();
|
|
36
|
+
const usolReserve = market.getReserveByMint(usolMint);
|
|
37
|
+
const lstReserve = market.getReserveByMint(lstMint);
|
|
38
|
+
const debtReserve = market.reserves.get(obligation.state.borrows[0].borrowReserve);
|
|
39
|
+
if (!usolReserve) {
|
|
40
|
+
throw new Error(`Cannot fetch usol reserve for mint ${usolMint}`);
|
|
41
|
+
}
|
|
42
|
+
if (!lstReserve) {
|
|
43
|
+
throw new Error(`Cannot fetch lst reserve for mint ${obligation.state.deposits[0].depositReserve}`);
|
|
44
|
+
}
|
|
45
|
+
if (!debtReserve) {
|
|
46
|
+
throw new Error(`Cannot fetch debt reserve for mint ${obligation.state.borrows[0].borrowReserve}`);
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
// 0. Compute sol to repay + lst to flash borrow + additional accounts
|
|
50
|
+
const stakePool = await maybeGetStakedPoolByMint(market.getRpc(), lstReserve.getLiquidityMint());
|
|
51
|
+
if (!stakePool) {
|
|
52
|
+
throw new Error(`Cannot fetch stake pool for mint ${lstReserve.getLiquidityMint()}`);
|
|
53
|
+
}
|
|
54
|
+
const { lstToConvert } = getUnstakeLstCollateralApproximateInputs(
|
|
55
|
+
market,
|
|
56
|
+
debtReserve,
|
|
57
|
+
lstReserve,
|
|
58
|
+
obligation,
|
|
59
|
+
currentSlot
|
|
60
|
+
);
|
|
61
|
+
const [depositStakedSolRemainingAccounts, remainingSigners] = await getStandardPoolMintRemainingAccounts(
|
|
62
|
+
market.getRpc(),
|
|
63
|
+
stakePool[0],
|
|
64
|
+
stakePool[1],
|
|
65
|
+
new BN(lstToConvert.toString())
|
|
66
|
+
);
|
|
67
|
+
// 1. Create atas & budget txns
|
|
68
|
+
const budgetIxs = budgetAndPriorityFeeIxs || getComputeBudgetAndPriorityFeeIxs(1_400_000);
|
|
69
|
+
|
|
70
|
+
const atas = [
|
|
71
|
+
{ mint: usolReserve.getLiquidityMint(), tokenProgram: usolReserve.getLiquidityTokenProgram() },
|
|
72
|
+
{ mint: lstReserve.getLiquidityMint(), tokenProgram: lstReserve.getLiquidityTokenProgram() },
|
|
73
|
+
];
|
|
74
|
+
|
|
75
|
+
const atasAndIxs = await createAtasIdempotent(owner, atas);
|
|
76
|
+
const [, { ata: lstAta }] = atasAndIxs;
|
|
77
|
+
const scopeRefreshIx = await getScopeRefreshIx(market, lstReserve, debtReserve, obligation, scopeRefreshConfig);
|
|
78
|
+
|
|
79
|
+
// 2. Flash borrow & repay the debt to repay amount needed
|
|
80
|
+
const { flashBorrowIx, flashRepayIx } = getFlashLoanInstructions({
|
|
81
|
+
borrowIxIndex: budgetIxs.length + atasAndIxs.length + (scopeRefreshIx.length > 0 ? 1 : 0),
|
|
82
|
+
userTransferAuthority: owner,
|
|
83
|
+
lendingMarketAuthority: await market.getLendingMarketAuthority(),
|
|
84
|
+
lendingMarketAddress: market.getAddress(),
|
|
85
|
+
reserve: lstReserve,
|
|
86
|
+
amountLamports: lstToConvert,
|
|
87
|
+
destinationAta: lstAta,
|
|
88
|
+
// TODO(referrals): once we support referrals, we will have to replace the placeholder args below:
|
|
89
|
+
referrerAccount: none(),
|
|
90
|
+
referrerTokenState: none(),
|
|
91
|
+
programId: market.programId,
|
|
92
|
+
});
|
|
93
|
+
|
|
94
|
+
// 3. Repay using the flash borrowed funds & withdraw collateral to swap and pay the flash loan
|
|
95
|
+
const unstakeLstCollateralStartAction = await KaminoAction.buildUnstakeLstCollateralStartTxns(
|
|
96
|
+
market,
|
|
97
|
+
lstToConvert.toString(),
|
|
98
|
+
usolReserve.getLiquidityMint(),
|
|
99
|
+
lstReserve.getLiquidityMint(),
|
|
100
|
+
owner,
|
|
101
|
+
currentSlot,
|
|
102
|
+
obligation,
|
|
103
|
+
depositStakedSolRemainingAccounts,
|
|
104
|
+
undefined,
|
|
105
|
+
0,
|
|
106
|
+
false,
|
|
107
|
+
undefined,
|
|
108
|
+
referrer
|
|
109
|
+
);
|
|
110
|
+
|
|
111
|
+
const instructions = [
|
|
112
|
+
...scopeRefreshIx,
|
|
113
|
+
...budgetIxs,
|
|
114
|
+
...atasAndIxs.map((x) => x.createAtaIx),
|
|
115
|
+
flashBorrowIx,
|
|
116
|
+
...KaminoAction.actionToIxs(unstakeLstCollateralStartAction),
|
|
117
|
+
flashRepayIx,
|
|
118
|
+
];
|
|
119
|
+
return {
|
|
120
|
+
instructions,
|
|
121
|
+
remainingSigners,
|
|
122
|
+
};
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
export function getUnstakeLstCollateralApproximateInputs(
|
|
126
|
+
market: KaminoMarket,
|
|
127
|
+
debtReserve: KaminoReserve,
|
|
128
|
+
lstReserve: KaminoReserve,
|
|
129
|
+
obligation: KaminoObligation,
|
|
130
|
+
currentSlot: Slot
|
|
131
|
+
): {
|
|
132
|
+
lstToConvert: Decimal;
|
|
133
|
+
} {
|
|
134
|
+
// Compute the interest rate / curve after 4 days (~2 epochs)
|
|
135
|
+
const laterSlot = currentSlot + BigInt(SLOTS_PER_DAY * 4);
|
|
136
|
+
const borrow = obligation.state.borrows.find(
|
|
137
|
+
(borrow) => borrow.borrowReserve.toString() === debtReserve.address.toString()
|
|
138
|
+
);
|
|
139
|
+
const lstDeposit = obligation.state.deposits.find(
|
|
140
|
+
(deposit) => deposit.depositReserve.toString() === lstReserve.address.toString()
|
|
141
|
+
);
|
|
142
|
+
if (!borrow) {
|
|
143
|
+
throw new Error(
|
|
144
|
+
`Could not find borrow ${debtReserve.address.toString()} in obligation ${obligation.obligationAddress.toString()}`
|
|
145
|
+
);
|
|
146
|
+
}
|
|
147
|
+
if (!lstDeposit) {
|
|
148
|
+
throw new Error(
|
|
149
|
+
`Could not find deposit ${lstReserve.address.toString()} in obligation ${obligation.obligationAddress.toString()}`
|
|
150
|
+
);
|
|
151
|
+
}
|
|
152
|
+
const newInterestRate = obligation.estimateObligationInterestRate(market, debtReserve, borrow, laterSlot);
|
|
153
|
+
const debtToRepay = new Fraction(borrow.borrowedAmountSf).toDecimal().mul(newInterestRate);
|
|
154
|
+
|
|
155
|
+
// To compute the staked sol to convert we convert the sol to repay
|
|
156
|
+
// using the pool ratio, but we cap it at the total amount of deposited
|
|
157
|
+
// staked sol in the obligation (converted from collateral -> liquidity)
|
|
158
|
+
const lstPrice = lstReserve.getOracleMarketPrice();
|
|
159
|
+
const debtPrice = debtReserve.getOracleMarketPrice();
|
|
160
|
+
const equivalentLst = debtToRepay.mul(debtPrice).div(lstPrice);
|
|
161
|
+
const equivalentLstWithMargin = equivalentLst.mul(FULL_BPS.add(LST_CONVERSION_MARGIN_BPS)).div(FULL_BPS);
|
|
162
|
+
|
|
163
|
+
const newCollateralExchangeRate = debtReserve.getEstimatedCollateralExchangeRate(
|
|
164
|
+
laterSlot,
|
|
165
|
+
market.state.referralFeeBps
|
|
166
|
+
);
|
|
167
|
+
const lstCollateralAmount = new Decimal(equivalentLstWithMargin.toString()).mul(newCollateralExchangeRate);
|
|
168
|
+
const lstCollateralToConvert = Decimal.min(new Decimal(lstDeposit.depositedAmount.toString()), lstCollateralAmount);
|
|
169
|
+
|
|
170
|
+
const lstToConvert = lstCollateralToConvert.div(newCollateralExchangeRate).ceil();
|
|
171
|
+
return {
|
|
172
|
+
lstToConvert,
|
|
173
|
+
};
|
|
174
|
+
}
|
|
@@ -1991,11 +1991,10 @@ function parseReserveConfigFromFile(reserveConfigFromFile: any): ReserveConfig {
|
|
|
1991
1991
|
protocolLiquidationFeePct: reserveConfigFromFile.protocolLiquidationFeePct,
|
|
1992
1992
|
protocolOrderExecutionFeePct: reserveConfigFromFile.protocolOrderExecutionFeePct,
|
|
1993
1993
|
protocolTakeRatePct: reserveConfigFromFile.protocolTakeRatePct,
|
|
1994
|
-
assetTier: reserveConfigFromFile.assetTier,
|
|
1995
1994
|
maxLiquidationBonusBps: reserveConfigFromFile.maxLiquidationBonusBps,
|
|
1996
1995
|
badDebtLiquidationBonusBps: reserveConfigFromFile.badDebtLiquidationBonusBps,
|
|
1997
1996
|
fees: {
|
|
1998
|
-
|
|
1997
|
+
originationFeeSf: Fraction.fromDecimal(new Decimal(reserveConfigFromFile.fees.borrowFee)).valueSf,
|
|
1999
1998
|
flashLoanFeeSf: Fraction.fromDecimal(new Decimal(reserveConfigFromFile.fees.flashLoanFee)).valueSf,
|
|
2000
1999
|
padding: Array(8).fill(0),
|
|
2001
2000
|
},
|
|
@@ -2040,8 +2039,14 @@ function parseReserveConfigFromFile(reserveConfigFromFile: any): ReserveConfig {
|
|
|
2040
2039
|
borrowLimitOutsideElevationGroup: new BN(reserveConfigFromFile.borrowLimitOutsideElevationGroup),
|
|
2041
2040
|
borrowLimitAgainstThisCollateralInElevationGroup: parseReserveBorrowLimitAgainstCollInEmode(reserveConfigFromFile),
|
|
2042
2041
|
deleveragingBonusIncreaseBpsPerDay: new BN(reserveConfigFromFile.deleveragingBonusIncreaseBpsPerDay),
|
|
2043
|
-
|
|
2044
|
-
|
|
2042
|
+
canUnstakeLstCollateral: reserveConfigFromFile.canUnstakeLstCollateral,
|
|
2043
|
+
debtMaturityTimestamp: new BN(reserveConfigFromFile.debtMaturityTimestamp),
|
|
2044
|
+
debtTermSeconds: new BN(reserveConfigFromFile.debtTermSeconds),
|
|
2045
|
+
minDeleveragingBonusBps: reserveConfigFromFile.minDeleveragingBonusBps,
|
|
2046
|
+
proposerAuthorityLocked: reserveConfigFromFile.proposerAuthorityLocked,
|
|
2047
|
+
reserved1: Array(6).fill(0),
|
|
2048
|
+
paddingDeprecatedAssetTier: 0,
|
|
2049
|
+
ltvLamportsMargin: new BN(0),
|
|
2045
2050
|
};
|
|
2046
2051
|
|
|
2047
2052
|
return new ReserveConfig(reserveConfigFields);
|
|
@@ -2121,11 +2126,10 @@ function parseReserveConfigToFile(reserveConfig: ReserveConfig) {
|
|
|
2121
2126
|
protocolLiquidationFeePct: reserveConfig.protocolLiquidationFeePct,
|
|
2122
2127
|
protocolOrderExecutionFeePct: reserveConfig.protocolOrderExecutionFeePct,
|
|
2123
2128
|
protocolTakeRatePct: reserveConfig.protocolTakeRatePct,
|
|
2124
|
-
assetTier: reserveConfig.assetTier,
|
|
2125
2129
|
maxLiquidationBonusBps: reserveConfig.maxLiquidationBonusBps,
|
|
2126
2130
|
badDebtLiquidationBonusBps: reserveConfig.badDebtLiquidationBonusBps,
|
|
2127
2131
|
fees: {
|
|
2128
|
-
borrowFee: new Fraction(reserveConfig.fees.
|
|
2132
|
+
borrowFee: new Fraction(reserveConfig.fees.originationFeeSf).toDecimal().toString(),
|
|
2129
2133
|
flashLoanFee: new Fraction(reserveConfig.fees.flashLoanFeeSf).toDecimal().toString(),
|
|
2130
2134
|
padding: Array(8).fill(0),
|
|
2131
2135
|
},
|
|
@@ -2161,8 +2165,7 @@ function parseReserveConfigToFile(reserveConfig: ReserveConfig) {
|
|
|
2161
2165
|
borrowLimitAgainstThisCollateralInElevationGroup:
|
|
2162
2166
|
reserveConfig.borrowLimitAgainstThisCollateralInElevationGroup.map((entry) => entry.toString()),
|
|
2163
2167
|
deleveragingBonusIncreaseBpsPerDay: reserveConfig.deleveragingBonusIncreaseBpsPerDay.toString(),
|
|
2164
|
-
reserved1: Array(
|
|
2165
|
-
reserved2: Array(9).fill(0),
|
|
2168
|
+
reserved1: Array(6).fill(0),
|
|
2166
2169
|
};
|
|
2167
2170
|
}
|
|
2168
2171
|
|
|
@@ -306,11 +306,10 @@ function buildReserveConfig(fields: {
|
|
|
306
306
|
protocolLiquidationFeePct: 0,
|
|
307
307
|
protocolOrderExecutionFeePct: 0,
|
|
308
308
|
protocolTakeRatePct: fields.configParams.protocolTakeRate,
|
|
309
|
-
assetTier: 0,
|
|
310
309
|
maxLiquidationBonusBps: fields.configParams.maxLiquidationBonusBps,
|
|
311
310
|
badDebtLiquidationBonusBps: fields.configParams.badDebtLiquidationBonusBps,
|
|
312
311
|
fees: {
|
|
313
|
-
|
|
312
|
+
originationFeeSf: fields.configParams.borrowFeeSf.getValue(),
|
|
314
313
|
flashLoanFeeSf: fields.configParams.flashLoanFeeSf.getValue(),
|
|
315
314
|
padding: Array(6).fill(0),
|
|
316
315
|
},
|
|
@@ -369,8 +368,14 @@ function buildReserveConfig(fields: {
|
|
|
369
368
|
),
|
|
370
369
|
borrowLimitAgainstThisCollateralInElevationGroup: Array(32).fill(new BN(0)),
|
|
371
370
|
deleveragingBonusIncreaseBpsPerDay: new BN(100),
|
|
372
|
-
|
|
373
|
-
|
|
371
|
+
canUnstakeLstCollateral: 0,
|
|
372
|
+
debtMaturityTimestamp: new BN(0),
|
|
373
|
+
debtTermSeconds: new BN(0),
|
|
374
|
+
minDeleveragingBonusBps: 0,
|
|
375
|
+
proposerAuthorityLocked: 0,
|
|
376
|
+
ltvLamportsMargin: new BN(0),
|
|
377
|
+
reserved1: Array(6).fill(0),
|
|
378
|
+
paddingDeprecatedAssetTier: 0,
|
|
374
379
|
};
|
|
375
380
|
|
|
376
381
|
return new ReserveConfig(reserveConfigFields);
|
package/src/utils/seeds.ts
CHANGED
|
@@ -3,6 +3,7 @@ import { PROGRAM_ID } from '../@codegen/klend/programId';
|
|
|
3
3
|
import { PROGRAM_ID as FARMS_PROGRAM_ID } from '@kamino-finance/farms-sdk/dist/@codegen/farms/programId';
|
|
4
4
|
import { METADATA_PROGRAM_ID, METADATA_SEED } from '../classes/vault';
|
|
5
5
|
import { Buffer } from 'buffer';
|
|
6
|
+
import { UNSTAKING_POOL_AUTHORITY_SEED } from '../classes/unstakingPool';
|
|
6
7
|
|
|
7
8
|
/**
|
|
8
9
|
* Lending market authority seed
|
|
@@ -69,16 +70,15 @@ export interface ReservePdas {
|
|
|
69
70
|
/**
|
|
70
71
|
* Returns all the PDAs for the given reserve
|
|
71
72
|
* @param programId
|
|
72
|
-
* @param
|
|
73
|
-
* @param mint
|
|
73
|
+
* @param reserve
|
|
74
74
|
* @returns ReservePdas
|
|
75
75
|
*/
|
|
76
|
-
export async function reservePdas(programId: Address,
|
|
76
|
+
export async function reservePdas(programId: Address, reserve: Address): Promise<ReservePdas> {
|
|
77
77
|
const [[liquiditySupplyVault], [collateralMint], [collateralSupplyVault], [feeVault]] = await Promise.all([
|
|
78
|
-
reserveLiqSupplyPda(
|
|
79
|
-
reserveCollateralMintPda(
|
|
80
|
-
reserveCollateralSupplyPda(
|
|
81
|
-
reserveFeeVaultPda(
|
|
78
|
+
reserveLiqSupplyPda(reserve, programId),
|
|
79
|
+
reserveCollateralMintPda(reserve, programId),
|
|
80
|
+
reserveCollateralSupplyPda(reserve, programId),
|
|
81
|
+
reserveFeeVaultPda(reserve, programId),
|
|
82
82
|
]);
|
|
83
83
|
return {
|
|
84
84
|
liquiditySupplyVault,
|
|
@@ -107,71 +107,63 @@ export function lendingMarketAuthPda(
|
|
|
107
107
|
/**
|
|
108
108
|
* Returns the PDA and bump for the reserve liquidity supply
|
|
109
109
|
* @param lendingMarket
|
|
110
|
-
* @param mint
|
|
111
110
|
* @param programId
|
|
112
111
|
* @returns [pda, bump]
|
|
113
112
|
*/
|
|
114
113
|
export async function reserveLiqSupplyPda(
|
|
115
|
-
|
|
116
|
-
mint: Address,
|
|
114
|
+
reserve: Address,
|
|
117
115
|
programId: Address = PROGRAM_ID
|
|
118
116
|
): Promise<ProgramDerivedAddress> {
|
|
119
117
|
return getProgramDerivedAddress({
|
|
120
|
-
seeds: [Buffer.from(RESERVE_LIQ_SUPPLY_SEED), addressEncoder.encode(
|
|
118
|
+
seeds: [Buffer.from(RESERVE_LIQ_SUPPLY_SEED), addressEncoder.encode(reserve)],
|
|
121
119
|
programAddress: programId,
|
|
122
120
|
});
|
|
123
121
|
}
|
|
124
122
|
|
|
125
123
|
/**
|
|
126
124
|
* Returns the PDA and bump for the reserve fee vault
|
|
127
|
-
* @param
|
|
128
|
-
* @param mint
|
|
125
|
+
* @param reserve
|
|
129
126
|
* @param programId
|
|
130
127
|
* @returns [vaultPda, bump]
|
|
131
128
|
*/
|
|
132
129
|
export async function reserveFeeVaultPda(
|
|
133
|
-
|
|
134
|
-
mint: Address,
|
|
130
|
+
reserve: Address,
|
|
135
131
|
programId: Address = PROGRAM_ID
|
|
136
132
|
): Promise<ProgramDerivedAddress> {
|
|
137
133
|
return getProgramDerivedAddress({
|
|
138
|
-
seeds: [Buffer.from(FEE_RECEIVER_SEED), addressEncoder.encode(
|
|
134
|
+
seeds: [Buffer.from(FEE_RECEIVER_SEED), addressEncoder.encode(reserve)],
|
|
139
135
|
programAddress: programId,
|
|
140
136
|
});
|
|
141
137
|
}
|
|
142
138
|
|
|
143
139
|
/**
|
|
144
140
|
* Returns the PDA and bump for the reserve collateral mint
|
|
145
|
-
* @param
|
|
146
|
-
* @param mint
|
|
141
|
+
* @param reserve
|
|
147
142
|
* @param programId
|
|
148
143
|
* @returns [mintPda, bump]
|
|
149
144
|
*/
|
|
150
145
|
export async function reserveCollateralMintPda(
|
|
151
|
-
|
|
152
|
-
mint: Address,
|
|
146
|
+
reserve: Address,
|
|
153
147
|
programId: Address = PROGRAM_ID
|
|
154
148
|
): Promise<ProgramDerivedAddress> {
|
|
155
149
|
return getProgramDerivedAddress({
|
|
156
|
-
seeds: [Buffer.from(RESERVE_COLL_MINT_SEED), addressEncoder.encode(
|
|
150
|
+
seeds: [Buffer.from(RESERVE_COLL_MINT_SEED), addressEncoder.encode(reserve)],
|
|
157
151
|
programAddress: programId,
|
|
158
152
|
});
|
|
159
153
|
}
|
|
160
154
|
|
|
161
155
|
/**
|
|
162
156
|
* Returns the PDA and bump for the reserve collateral supply
|
|
163
|
-
* @param
|
|
164
|
-
* @param mint
|
|
157
|
+
* @param reserve
|
|
165
158
|
* @param programId
|
|
166
159
|
* @returns [pda, bump]
|
|
167
160
|
*/
|
|
168
161
|
export function reserveCollateralSupplyPda(
|
|
169
|
-
|
|
170
|
-
mint: Address,
|
|
162
|
+
reserve: Address,
|
|
171
163
|
programId: Address = PROGRAM_ID
|
|
172
164
|
): Promise<ProgramDerivedAddress> {
|
|
173
165
|
return getProgramDerivedAddress({
|
|
174
|
-
seeds: [Buffer.from(RESERVE_COLL_SUPPLY_SEED), addressEncoder.encode(
|
|
166
|
+
seeds: [Buffer.from(RESERVE_COLL_SUPPLY_SEED), addressEncoder.encode(reserve)],
|
|
175
167
|
programAddress: programId,
|
|
176
168
|
});
|
|
177
169
|
}
|
|
@@ -290,3 +282,13 @@ export async function getKVaultSharesMetadataPda(mint: Address): Promise<Program
|
|
|
290
282
|
programAddress: METADATA_PROGRAM_ID,
|
|
291
283
|
});
|
|
292
284
|
}
|
|
285
|
+
|
|
286
|
+
export function unstakingPoolMarketAuthorityPda(
|
|
287
|
+
lendingMarket: Address,
|
|
288
|
+
programId: Address = PROGRAM_ID
|
|
289
|
+
): Promise<ProgramDerivedAddress> {
|
|
290
|
+
return getProgramDerivedAddress({
|
|
291
|
+
seeds: [UNSTAKING_POOL_AUTHORITY_SEED, addressEncoder.encode(lendingMarket)],
|
|
292
|
+
programAddress: programId,
|
|
293
|
+
});
|
|
294
|
+
}
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
import * as types from "../types";
|
|
2
|
-
import * as borsh from "@coral-xyz/borsh";
|
|
3
|
-
export interface RegularJSON {
|
|
4
|
-
kind: "Regular";
|
|
5
|
-
}
|
|
6
|
-
export declare class Regular {
|
|
7
|
-
static readonly discriminator = 0;
|
|
8
|
-
static readonly kind = "Regular";
|
|
9
|
-
readonly discriminator = 0;
|
|
10
|
-
readonly kind = "Regular";
|
|
11
|
-
toJSON(): RegularJSON;
|
|
12
|
-
toEncodable(): {
|
|
13
|
-
Regular: {};
|
|
14
|
-
};
|
|
15
|
-
}
|
|
16
|
-
export interface IsolatedCollateralJSON {
|
|
17
|
-
kind: "IsolatedCollateral";
|
|
18
|
-
}
|
|
19
|
-
export declare class IsolatedCollateral {
|
|
20
|
-
static readonly discriminator = 1;
|
|
21
|
-
static readonly kind = "IsolatedCollateral";
|
|
22
|
-
readonly discriminator = 1;
|
|
23
|
-
readonly kind = "IsolatedCollateral";
|
|
24
|
-
toJSON(): IsolatedCollateralJSON;
|
|
25
|
-
toEncodable(): {
|
|
26
|
-
IsolatedCollateral: {};
|
|
27
|
-
};
|
|
28
|
-
}
|
|
29
|
-
export interface IsolatedDebtJSON {
|
|
30
|
-
kind: "IsolatedDebt";
|
|
31
|
-
}
|
|
32
|
-
export declare class IsolatedDebt {
|
|
33
|
-
static readonly discriminator = 2;
|
|
34
|
-
static readonly kind = "IsolatedDebt";
|
|
35
|
-
readonly discriminator = 2;
|
|
36
|
-
readonly kind = "IsolatedDebt";
|
|
37
|
-
toJSON(): IsolatedDebtJSON;
|
|
38
|
-
toEncodable(): {
|
|
39
|
-
IsolatedDebt: {};
|
|
40
|
-
};
|
|
41
|
-
}
|
|
42
|
-
export declare function fromDecoded(obj: any): types.AssetTierKind;
|
|
43
|
-
export declare function fromJSON(obj: types.AssetTierJSON): types.AssetTierKind;
|
|
44
|
-
export declare function layout(property?: string): borsh.EnumLayout<unknown>;
|
|
45
|
-
//# sourceMappingURL=AssetTier.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"AssetTier.d.ts","sourceRoot":"","sources":["../../../../src/@codegen/klend/types/AssetTier.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,UAAU,CAAA;AACjC,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAA;AAGzC,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,SAAS,CAAA;CAChB;AAED,qBAAa,OAAO;IAClB,MAAM,CAAC,QAAQ,CAAC,aAAa,KAAI;IACjC,MAAM,CAAC,QAAQ,CAAC,IAAI,aAAY;IAChC,QAAQ,CAAC,aAAa,KAAI;IAC1B,QAAQ,CAAC,IAAI,aAAY;IAEzB,MAAM,IAAI,WAAW;IAMrB,WAAW;;;CAKZ;AAED,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,oBAAoB,CAAA;CAC3B;AAED,qBAAa,kBAAkB;IAC7B,MAAM,CAAC,QAAQ,CAAC,aAAa,KAAI;IACjC,MAAM,CAAC,QAAQ,CAAC,IAAI,wBAAuB;IAC3C,QAAQ,CAAC,aAAa,KAAI;IAC1B,QAAQ,CAAC,IAAI,wBAAuB;IAEpC,MAAM,IAAI,sBAAsB;IAMhC,WAAW;;;CAKZ;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,cAAc,CAAA;CACrB;AAED,qBAAa,YAAY;IACvB,MAAM,CAAC,QAAQ,CAAC,aAAa,KAAI;IACjC,MAAM,CAAC,QAAQ,CAAC,IAAI,kBAAiB;IACrC,QAAQ,CAAC,aAAa,KAAI;IAC1B,QAAQ,CAAC,IAAI,kBAAiB;IAE9B,MAAM,IAAI,gBAAgB;IAM1B,WAAW;;;CAKZ;AAGD,wBAAgB,WAAW,CAAC,GAAG,EAAE,GAAG,GAAG,KAAK,CAAC,aAAa,CAgBzD;AAED,wBAAgB,QAAQ,CAAC,GAAG,EAAE,KAAK,CAAC,aAAa,GAAG,KAAK,CAAC,aAAa,CAYtE;AAED,wBAAgB,MAAM,CAAC,QAAQ,CAAC,EAAE,MAAM,6BAUvC"}
|
|
@@ -1,132 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
-
var ownKeys = function(o) {
|
|
20
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
-
var ar = [];
|
|
22
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
-
return ar;
|
|
24
|
-
};
|
|
25
|
-
return ownKeys(o);
|
|
26
|
-
};
|
|
27
|
-
return function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
35
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
-
exports.IsolatedDebt = exports.IsolatedCollateral = exports.Regular = void 0;
|
|
37
|
-
exports.fromDecoded = fromDecoded;
|
|
38
|
-
exports.fromJSON = fromJSON;
|
|
39
|
-
exports.layout = layout;
|
|
40
|
-
const borsh = __importStar(require("@coral-xyz/borsh"));
|
|
41
|
-
class Regular {
|
|
42
|
-
static discriminator = 0;
|
|
43
|
-
static kind = "Regular";
|
|
44
|
-
discriminator = 0;
|
|
45
|
-
kind = "Regular";
|
|
46
|
-
toJSON() {
|
|
47
|
-
return {
|
|
48
|
-
kind: "Regular",
|
|
49
|
-
};
|
|
50
|
-
}
|
|
51
|
-
toEncodable() {
|
|
52
|
-
return {
|
|
53
|
-
Regular: {},
|
|
54
|
-
};
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
exports.Regular = Regular;
|
|
58
|
-
class IsolatedCollateral {
|
|
59
|
-
static discriminator = 1;
|
|
60
|
-
static kind = "IsolatedCollateral";
|
|
61
|
-
discriminator = 1;
|
|
62
|
-
kind = "IsolatedCollateral";
|
|
63
|
-
toJSON() {
|
|
64
|
-
return {
|
|
65
|
-
kind: "IsolatedCollateral",
|
|
66
|
-
};
|
|
67
|
-
}
|
|
68
|
-
toEncodable() {
|
|
69
|
-
return {
|
|
70
|
-
IsolatedCollateral: {},
|
|
71
|
-
};
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
exports.IsolatedCollateral = IsolatedCollateral;
|
|
75
|
-
class IsolatedDebt {
|
|
76
|
-
static discriminator = 2;
|
|
77
|
-
static kind = "IsolatedDebt";
|
|
78
|
-
discriminator = 2;
|
|
79
|
-
kind = "IsolatedDebt";
|
|
80
|
-
toJSON() {
|
|
81
|
-
return {
|
|
82
|
-
kind: "IsolatedDebt",
|
|
83
|
-
};
|
|
84
|
-
}
|
|
85
|
-
toEncodable() {
|
|
86
|
-
return {
|
|
87
|
-
IsolatedDebt: {},
|
|
88
|
-
};
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
exports.IsolatedDebt = IsolatedDebt;
|
|
92
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
93
|
-
function fromDecoded(obj) {
|
|
94
|
-
if (typeof obj !== "object") {
|
|
95
|
-
throw new Error("Invalid enum object");
|
|
96
|
-
}
|
|
97
|
-
if ("Regular" in obj) {
|
|
98
|
-
return new Regular();
|
|
99
|
-
}
|
|
100
|
-
if ("IsolatedCollateral" in obj) {
|
|
101
|
-
return new IsolatedCollateral();
|
|
102
|
-
}
|
|
103
|
-
if ("IsolatedDebt" in obj) {
|
|
104
|
-
return new IsolatedDebt();
|
|
105
|
-
}
|
|
106
|
-
throw new Error("Invalid enum object");
|
|
107
|
-
}
|
|
108
|
-
function fromJSON(obj) {
|
|
109
|
-
switch (obj.kind) {
|
|
110
|
-
case "Regular": {
|
|
111
|
-
return new Regular();
|
|
112
|
-
}
|
|
113
|
-
case "IsolatedCollateral": {
|
|
114
|
-
return new IsolatedCollateral();
|
|
115
|
-
}
|
|
116
|
-
case "IsolatedDebt": {
|
|
117
|
-
return new IsolatedDebt();
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
function layout(property) {
|
|
122
|
-
const ret = borsh.rustEnum([
|
|
123
|
-
borsh.struct([], "Regular"),
|
|
124
|
-
borsh.struct([], "IsolatedCollateral"),
|
|
125
|
-
borsh.struct([], "IsolatedDebt"),
|
|
126
|
-
]);
|
|
127
|
-
if (property !== undefined) {
|
|
128
|
-
return ret.replicate(property);
|
|
129
|
-
}
|
|
130
|
-
return ret;
|
|
131
|
-
}
|
|
132
|
-
//# sourceMappingURL=AssetTier.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"AssetTier.js","sourceRoot":"","sources":["../../../../src/@codegen/klend/types/AssetTier.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4EA,kCAgBC;AAED,4BAYC;AAED,wBAUC;AAnHD,wDAAyC;AAOzC,MAAa,OAAO;IAClB,MAAM,CAAU,aAAa,GAAG,CAAC,CAAA;IACjC,MAAM,CAAU,IAAI,GAAG,SAAS,CAAA;IACvB,aAAa,GAAG,CAAC,CAAA;IACjB,IAAI,GAAG,SAAS,CAAA;IAEzB,MAAM;QACJ,OAAO;YACL,IAAI,EAAE,SAAS;SAChB,CAAA;IACH,CAAC;IAED,WAAW;QACT,OAAO;YACL,OAAO,EAAE,EAAE;SACZ,CAAA;IACH,CAAC;;AAhBH,0BAiBC;AAMD,MAAa,kBAAkB;IAC7B,MAAM,CAAU,aAAa,GAAG,CAAC,CAAA;IACjC,MAAM,CAAU,IAAI,GAAG,oBAAoB,CAAA;IAClC,aAAa,GAAG,CAAC,CAAA;IACjB,IAAI,GAAG,oBAAoB,CAAA;IAEpC,MAAM;QACJ,OAAO;YACL,IAAI,EAAE,oBAAoB;SAC3B,CAAA;IACH,CAAC;IAED,WAAW;QACT,OAAO;YACL,kBAAkB,EAAE,EAAE;SACvB,CAAA;IACH,CAAC;;AAhBH,gDAiBC;AAMD,MAAa,YAAY;IACvB,MAAM,CAAU,aAAa,GAAG,CAAC,CAAA;IACjC,MAAM,CAAU,IAAI,GAAG,cAAc,CAAA;IAC5B,aAAa,GAAG,CAAC,CAAA;IACjB,IAAI,GAAG,cAAc,CAAA;IAE9B,MAAM;QACJ,OAAO;YACL,IAAI,EAAE,cAAc;SACrB,CAAA;IACH,CAAC;IAED,WAAW;QACT,OAAO;YACL,YAAY,EAAE,EAAE;SACjB,CAAA;IACH,CAAC;;AAhBH,oCAiBC;AAED,8DAA8D;AAC9D,SAAgB,WAAW,CAAC,GAAQ;IAClC,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAA;IACxC,CAAC;IAED,IAAI,SAAS,IAAI,GAAG,EAAE,CAAC;QACrB,OAAO,IAAI,OAAO,EAAE,CAAA;IACtB,CAAC;IACD,IAAI,oBAAoB,IAAI,GAAG,EAAE,CAAC;QAChC,OAAO,IAAI,kBAAkB,EAAE,CAAA;IACjC,CAAC;IACD,IAAI,cAAc,IAAI,GAAG,EAAE,CAAC;QAC1B,OAAO,IAAI,YAAY,EAAE,CAAA;IAC3B,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAA;AACxC,CAAC;AAED,SAAgB,QAAQ,CAAC,GAAwB;IAC/C,QAAQ,GAAG,CAAC,IAAI,EAAE,CAAC;QACjB,KAAK,SAAS,CAAC,CAAC,CAAC;YACf,OAAO,IAAI,OAAO,EAAE,CAAA;QACtB,CAAC;QACD,KAAK,oBAAoB,CAAC,CAAC,CAAC;YAC1B,OAAO,IAAI,kBAAkB,EAAE,CAAA;QACjC,CAAC;QACD,KAAK,cAAc,CAAC,CAAC,CAAC;YACpB,OAAO,IAAI,YAAY,EAAE,CAAA;QAC3B,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAgB,MAAM,CAAC,QAAiB;IACtC,MAAM,GAAG,GAAG,KAAK,CAAC,QAAQ,CAAC;QACzB,KAAK,CAAC,MAAM,CAAC,EAAE,EAAE,SAAS,CAAC;QAC3B,KAAK,CAAC,MAAM,CAAC,EAAE,EAAE,oBAAoB,CAAC;QACtC,KAAK,CAAC,MAAM,CAAC,EAAE,EAAE,cAAc,CAAC;KACjC,CAAC,CAAA;IACF,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,OAAO,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAA;IAChC,CAAC;IACD,OAAO,GAAG,CAAA;AACZ,CAAC"}
|