@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.
Files changed (230) hide show
  1. package/dist/@codegen/klend/accounts/LendingMarket.d.ts +144 -3
  2. package/dist/@codegen/klend/accounts/LendingMarket.d.ts.map +1 -1
  3. package/dist/@codegen/klend/accounts/LendingMarket.js +105 -3
  4. package/dist/@codegen/klend/accounts/LendingMarket.js.map +1 -1
  5. package/dist/@codegen/klend/accounts/Obligation.d.ts +30 -15
  6. package/dist/@codegen/klend/accounts/Obligation.d.ts.map +1 -1
  7. package/dist/@codegen/klend/accounts/Obligation.js +31 -21
  8. package/dist/@codegen/klend/accounts/Obligation.js.map +1 -1
  9. package/dist/@codegen/klend/accounts/PoolState.d.ts +53 -0
  10. package/dist/@codegen/klend/accounts/PoolState.d.ts.map +1 -0
  11. package/dist/@codegen/klend/accounts/PoolState.js +167 -0
  12. package/dist/@codegen/klend/accounts/PoolState.js.map +1 -0
  13. package/dist/@codegen/klend/accounts/Reserve.d.ts +6 -0
  14. package/dist/@codegen/klend/accounts/Reserve.d.ts.map +1 -1
  15. package/dist/@codegen/klend/accounts/Reserve.js +9 -2
  16. package/dist/@codegen/klend/accounts/Reserve.js.map +1 -1
  17. package/dist/@codegen/klend/accounts/UnstakeTicket.d.ts +41 -0
  18. package/dist/@codegen/klend/accounts/UnstakeTicket.d.ts.map +1 -0
  19. package/dist/@codegen/klend/accounts/UnstakeTicket.js +143 -0
  20. package/dist/@codegen/klend/accounts/UnstakeTicket.js.map +1 -0
  21. package/dist/@codegen/klend/accounts/UserState.d.ts +0 -75
  22. package/dist/@codegen/klend/accounts/UserState.d.ts.map +1 -1
  23. package/dist/@codegen/klend/accounts/UserState.js +0 -25
  24. package/dist/@codegen/klend/accounts/UserState.js.map +1 -1
  25. package/dist/@codegen/klend/accounts/WithdrawTicket.d.ts +132 -0
  26. package/dist/@codegen/klend/accounts/WithdrawTicket.d.ts.map +1 -0
  27. package/dist/@codegen/klend/accounts/WithdrawTicket.js +191 -0
  28. package/dist/@codegen/klend/accounts/WithdrawTicket.js.map +1 -0
  29. package/dist/@codegen/klend/accounts/index.d.ts +6 -0
  30. package/dist/@codegen/klend/accounts/index.d.ts.map +1 -1
  31. package/dist/@codegen/klend/accounts/index.js +7 -1
  32. package/dist/@codegen/klend/accounts/index.js.map +1 -1
  33. package/dist/@codegen/klend/errors/custom.d.ts +226 -2
  34. package/dist/@codegen/klend/errors/custom.d.ts.map +1 -1
  35. package/dist/@codegen/klend/errors/custom.js +396 -3
  36. package/dist/@codegen/klend/errors/custom.js.map +1 -1
  37. package/dist/@codegen/klend/instructions/enqueueToWithdraw.d.ts +39 -0
  38. package/dist/@codegen/klend/instructions/enqueueToWithdraw.d.ts.map +1 -0
  39. package/dist/@codegen/klend/instructions/enqueueToWithdraw.js +67 -0
  40. package/dist/@codegen/klend/instructions/enqueueToWithdraw.js.map +1 -0
  41. package/dist/@codegen/klend/instructions/fillBorrowOrder.d.ts +36 -0
  42. package/dist/@codegen/klend/instructions/fillBorrowOrder.d.ts.map +1 -0
  43. package/dist/@codegen/klend/instructions/fillBorrowOrder.js +49 -0
  44. package/dist/@codegen/klend/instructions/fillBorrowOrder.js.map +1 -0
  45. package/dist/@codegen/klend/instructions/idlMissingTypes.d.ts +1 -2
  46. package/dist/@codegen/klend/instructions/idlMissingTypes.d.ts.map +1 -1
  47. package/dist/@codegen/klend/instructions/idlMissingTypes.js +6 -2
  48. package/dist/@codegen/klend/instructions/idlMissingTypes.js.map +1 -1
  49. package/dist/@codegen/klend/instructions/index.d.ts +16 -0
  50. package/dist/@codegen/klend/instructions/index.d.ts.map +1 -1
  51. package/dist/@codegen/klend/instructions/index.js +18 -1
  52. package/dist/@codegen/klend/instructions/index.js.map +1 -1
  53. package/dist/@codegen/klend/instructions/initReserve.d.ts +1 -1
  54. package/dist/@codegen/klend/instructions/initReserve.d.ts.map +1 -1
  55. package/dist/@codegen/klend/instructions/initReserve.js +1 -5
  56. package/dist/@codegen/klend/instructions/initReserve.js.map +1 -1
  57. package/dist/@codegen/klend/instructions/liquidateObligationAndRedeemReserveCollateral.js +1 -1
  58. package/dist/@codegen/klend/instructions/recoverInvalidTicketCollateral.d.ts +47 -0
  59. package/dist/@codegen/klend/instructions/recoverInvalidTicketCollateral.d.ts.map +1 -0
  60. package/dist/@codegen/klend/instructions/recoverInvalidTicketCollateral.js +66 -0
  61. package/dist/@codegen/klend/instructions/recoverInvalidTicketCollateral.js.map +1 -0
  62. package/dist/@codegen/klend/instructions/setBorrowOrder.d.ts +31 -0
  63. package/dist/@codegen/klend/instructions/setBorrowOrder.d.ts.map +1 -0
  64. package/dist/@codegen/klend/instructions/setBorrowOrder.js +64 -0
  65. package/dist/@codegen/klend/instructions/setBorrowOrder.js.map +1 -0
  66. package/dist/@codegen/klend/instructions/unstakeLstCollateralEnd.d.ts +53 -0
  67. package/dist/@codegen/klend/instructions/unstakeLstCollateralEnd.d.ts.map +1 -0
  68. package/dist/@codegen/klend/instructions/unstakeLstCollateralEnd.js +190 -0
  69. package/dist/@codegen/klend/instructions/unstakeLstCollateralEnd.js.map +1 -0
  70. package/dist/@codegen/klend/instructions/unstakeLstCollateralStart.d.ts +70 -0
  71. package/dist/@codegen/klend/instructions/unstakeLstCollateralStart.d.ts.map +1 -0
  72. package/dist/@codegen/klend/instructions/unstakeLstCollateralStart.js +261 -0
  73. package/dist/@codegen/klend/instructions/unstakeLstCollateralStart.js.map +1 -0
  74. package/dist/@codegen/klend/instructions/updateGlobalConfig.d.ts +1 -1
  75. package/dist/@codegen/klend/instructions/updateGlobalConfig.d.ts.map +1 -1
  76. package/dist/@codegen/klend/instructions/updateGlobalConfig.js +1 -0
  77. package/dist/@codegen/klend/instructions/updateGlobalConfig.js.map +1 -1
  78. package/dist/@codegen/klend/instructions/updateReserveConfig.d.ts +1 -1
  79. package/dist/@codegen/klend/instructions/updateReserveConfig.d.ts.map +1 -1
  80. package/dist/@codegen/klend/instructions/updateReserveConfig.js +1 -0
  81. package/dist/@codegen/klend/instructions/updateReserveConfig.js.map +1 -1
  82. package/dist/@codegen/klend/instructions/withdrawObligationCollateral.js +1 -1
  83. package/dist/@codegen/klend/instructions/withdrawObligationCollateralV2.js +1 -1
  84. package/dist/@codegen/klend/instructions/withdrawObligationUsol.d.ts +41 -0
  85. package/dist/@codegen/klend/instructions/withdrawObligationUsol.d.ts.map +1 -0
  86. package/dist/@codegen/klend/instructions/withdrawObligationUsol.js +135 -0
  87. package/dist/@codegen/klend/instructions/withdrawObligationUsol.js.map +1 -0
  88. package/dist/@codegen/klend/instructions/withdrawQueuedLiquidity.d.ts +51 -0
  89. package/dist/@codegen/klend/instructions/withdrawQueuedLiquidity.d.ts.map +1 -0
  90. package/dist/@codegen/klend/instructions/withdrawQueuedLiquidity.js +28 -0
  91. package/dist/@codegen/klend/instructions/withdrawQueuedLiquidity.js.map +1 -0
  92. package/dist/@codegen/klend/types/BorrowOrder.d.ts +192 -0
  93. package/dist/@codegen/klend/types/BorrowOrder.d.ts.map +1 -0
  94. package/dist/@codegen/klend/types/BorrowOrder.js +194 -0
  95. package/dist/@codegen/klend/types/BorrowOrder.js.map +1 -0
  96. package/dist/@codegen/klend/types/BorrowOrderConfigArgs.d.ts +39 -0
  97. package/dist/@codegen/klend/types/BorrowOrderConfigArgs.d.ts.map +1 -0
  98. package/dist/@codegen/klend/types/BorrowOrderConfigArgs.js +100 -0
  99. package/dist/@codegen/klend/types/BorrowOrderConfigArgs.js.map +1 -0
  100. package/dist/@codegen/klend/types/ObligationLiquidity.d.ts +35 -5
  101. package/dist/@codegen/klend/types/ObligationLiquidity.d.ts.map +1 -1
  102. package/dist/@codegen/klend/types/ObligationLiquidity.js +17 -7
  103. package/dist/@codegen/klend/types/ObligationLiquidity.js.map +1 -1
  104. package/dist/@codegen/klend/types/ObligationOrder.d.ts +4 -4
  105. package/dist/@codegen/klend/types/ObligationOrder.js +2 -2
  106. package/dist/@codegen/klend/types/ReserveConfig.d.ts +141 -29
  107. package/dist/@codegen/klend/types/ReserveConfig.d.ts.map +1 -1
  108. package/dist/@codegen/klend/types/ReserveConfig.js +89 -25
  109. package/dist/@codegen/klend/types/ReserveConfig.js.map +1 -1
  110. package/dist/@codegen/klend/types/ReserveFees.d.ts +8 -8
  111. package/dist/@codegen/klend/types/ReserveFees.d.ts.map +1 -1
  112. package/dist/@codegen/klend/types/ReserveFees.js +8 -8
  113. package/dist/@codegen/klend/types/ReserveFees.js.map +1 -1
  114. package/dist/@codegen/klend/types/ReserveLiquidity.d.ts +26 -8
  115. package/dist/@codegen/klend/types/ReserveLiquidity.d.ts.map +1 -1
  116. package/dist/@codegen/klend/types/ReserveLiquidity.js +14 -8
  117. package/dist/@codegen/klend/types/ReserveLiquidity.js.map +1 -1
  118. package/dist/@codegen/klend/types/UpdateConfigMode.d.ts +92 -14
  119. package/dist/@codegen/klend/types/UpdateConfigMode.d.ts.map +1 -1
  120. package/dist/@codegen/klend/types/UpdateConfigMode.js +168 -23
  121. package/dist/@codegen/klend/types/UpdateConfigMode.js.map +1 -1
  122. package/dist/@codegen/klend/types/UpdateLendingMarketMode.d.ts +130 -0
  123. package/dist/@codegen/klend/types/UpdateLendingMarketMode.d.ts.map +1 -1
  124. package/dist/@codegen/klend/types/UpdateLendingMarketMode.js +241 -1
  125. package/dist/@codegen/klend/types/UpdateLendingMarketMode.js.map +1 -1
  126. package/dist/@codegen/klend/types/WithdrawQueue.d.ts +64 -0
  127. package/dist/@codegen/klend/types/WithdrawQueue.d.ts.map +1 -0
  128. package/dist/@codegen/klend/types/WithdrawQueue.js +104 -0
  129. package/dist/@codegen/klend/types/WithdrawQueue.js.map +1 -0
  130. package/dist/@codegen/klend/types/index.d.ts +10 -8
  131. package/dist/@codegen/klend/types/index.d.ts.map +1 -1
  132. package/dist/@codegen/klend/types/index.js +7 -3
  133. package/dist/@codegen/klend/types/index.js.map +1 -1
  134. package/dist/@codegen/klend/zero_padding/ObligationZP.d.ts +9 -4
  135. package/dist/@codegen/klend/zero_padding/ObligationZP.d.ts.map +1 -1
  136. package/dist/@codegen/klend/zero_padding/ObligationZP.js +22 -13
  137. package/dist/@codegen/klend/zero_padding/ObligationZP.js.map +1 -1
  138. package/dist/classes/action.d.ts +30 -3
  139. package/dist/classes/action.d.ts.map +1 -1
  140. package/dist/classes/action.js +364 -10
  141. package/dist/classes/action.js.map +1 -1
  142. package/dist/classes/manager.d.ts.map +1 -1
  143. package/dist/classes/manager.js +10 -0
  144. package/dist/classes/manager.js.map +1 -1
  145. package/dist/classes/market.d.ts +6 -2
  146. package/dist/classes/market.d.ts.map +1 -1
  147. package/dist/classes/market.js +26 -6
  148. package/dist/classes/market.js.map +1 -1
  149. package/dist/classes/obligation.js +1 -1
  150. package/dist/classes/obligation.js.map +1 -1
  151. package/dist/classes/reserve.d.ts.map +1 -1
  152. package/dist/classes/reserve.js +13 -7
  153. package/dist/classes/reserve.js.map +1 -1
  154. package/dist/classes/unstakingPool.d.ts +20 -3
  155. package/dist/classes/unstakingPool.d.ts.map +1 -1
  156. package/dist/classes/unstakingPool.js +62 -8
  157. package/dist/classes/unstakingPool.js.map +1 -1
  158. package/dist/idl/klend.json +2125 -232
  159. package/dist/lending_operations/index.d.ts +1 -0
  160. package/dist/lending_operations/index.d.ts.map +1 -1
  161. package/dist/lending_operations/index.js +1 -0
  162. package/dist/lending_operations/index.js.map +1 -1
  163. package/dist/lending_operations/unstake_lst_collateral.d.ts +12 -0
  164. package/dist/lending_operations/unstake_lst_collateral.d.ts.map +1 -0
  165. package/dist/lending_operations/unstake_lst_collateral.js +104 -0
  166. package/dist/lending_operations/unstake_lst_collateral.js.map +1 -0
  167. package/dist/manager/client_kamino_manager.js +11 -8
  168. package/dist/manager/client_kamino_manager.js.map +1 -1
  169. package/dist/utils/managerTypes.d.ts.map +1 -1
  170. package/dist/utils/managerTypes.js +9 -4
  171. package/dist/utils/managerTypes.js.map +1 -1
  172. package/dist/utils/seeds.d.ts +10 -14
  173. package/dist/utils/seeds.d.ts.map +1 -1
  174. package/dist/utils/seeds.js +25 -22
  175. package/dist/utils/seeds.js.map +1 -1
  176. package/package.json +1 -1
  177. package/src/@codegen/klend/accounts/LendingMarket.ts +210 -5
  178. package/src/@codegen/klend/accounts/Obligation.ts +53 -31
  179. package/src/@codegen/klend/accounts/PoolState.ts +192 -0
  180. package/src/@codegen/klend/accounts/Reserve.ts +13 -2
  181. package/src/@codegen/klend/accounts/UnstakeTicket.ts +160 -0
  182. package/src/@codegen/klend/accounts/UserState.ts +0 -75
  183. package/src/@codegen/klend/accounts/WithdrawTicket.ts +256 -0
  184. package/src/@codegen/klend/accounts/index.ts +6 -0
  185. package/src/@codegen/klend/errors/custom.ts +427 -2
  186. package/src/@codegen/klend/instructions/enqueueToWithdraw.ts +89 -0
  187. package/src/@codegen/klend/instructions/fillBorrowOrder.ts +96 -0
  188. package/src/@codegen/klend/instructions/idlMissingTypes.ts +7 -4
  189. package/src/@codegen/klend/instructions/index.ts +34 -0
  190. package/src/@codegen/klend/instructions/initReserve.ts +2 -6
  191. package/src/@codegen/klend/instructions/liquidateObligationAndRedeemReserveCollateral.ts +1 -1
  192. package/src/@codegen/klend/instructions/recoverInvalidTicketCollateral.ts +96 -0
  193. package/src/@codegen/klend/instructions/setBorrowOrder.ts +77 -0
  194. package/src/@codegen/klend/instructions/unstakeLstCollateralEnd.ts +251 -0
  195. package/src/@codegen/klend/instructions/unstakeLstCollateralStart.ts +353 -0
  196. package/src/@codegen/klend/instructions/updateGlobalConfig.ts +2 -1
  197. package/src/@codegen/klend/instructions/updateReserveConfig.ts +2 -1
  198. package/src/@codegen/klend/instructions/withdrawObligationCollateral.ts +1 -1
  199. package/src/@codegen/klend/instructions/withdrawObligationCollateralV2.ts +1 -1
  200. package/src/@codegen/klend/instructions/withdrawObligationUsol.ts +168 -0
  201. package/src/@codegen/klend/instructions/withdrawQueuedLiquidity.ts +92 -0
  202. package/src/@codegen/klend/types/BorrowOrder.ts +267 -0
  203. package/src/@codegen/klend/types/BorrowOrderConfigArgs.ts +87 -0
  204. package/src/@codegen/klend/types/ObligationLiquidity.ts +39 -9
  205. package/src/@codegen/klend/types/ObligationOrder.ts +4 -4
  206. package/src/@codegen/klend/types/ReserveConfig.ts +171 -39
  207. package/src/@codegen/klend/types/ReserveFees.ts +12 -12
  208. package/src/@codegen/klend/types/ReserveLiquidity.ts +30 -12
  209. package/src/@codegen/klend/types/UpdateConfigMode.ts +206 -26
  210. package/src/@codegen/klend/types/UpdateLendingMarketMode.ts +300 -0
  211. package/src/@codegen/klend/types/WithdrawQueue.ts +117 -0
  212. package/src/@codegen/klend/types/index.ts +45 -16
  213. package/src/@codegen/klend/zero_padding/ObligationZP.ts +22 -13
  214. package/src/classes/action.ts +577 -8
  215. package/src/classes/manager.ts +11 -0
  216. package/src/classes/market.ts +36 -5
  217. package/src/classes/obligation.ts +1 -1
  218. package/src/classes/reserve.ts +13 -8
  219. package/src/classes/unstakingPool.ts +83 -6
  220. package/src/idl/klend.json +2126 -233
  221. package/src/lending_operations/index.ts +1 -0
  222. package/src/lending_operations/unstake_lst_collateral.ts +174 -0
  223. package/src/manager/client_kamino_manager.ts +11 -8
  224. package/src/utils/managerTypes.ts +9 -4
  225. package/src/utils/seeds.ts +28 -26
  226. package/dist/@codegen/klend/types/AssetTier.d.ts +0 -45
  227. package/dist/@codegen/klend/types/AssetTier.d.ts.map +0 -1
  228. package/dist/@codegen/klend/types/AssetTier.js +0 -132
  229. package/dist/@codegen/klend/types/AssetTier.js.map +0 -1
  230. package/src/@codegen/klend/types/AssetTier.ts +0 -119
@@ -1,3 +1,4 @@
1
1
  export * from './repay_with_collateral_operations';
2
2
  export * from './swap_collateral_operations';
3
3
  export * from './repay_with_collateral_calcs';
4
+ export * from './unstake_lst_collateral';
@@ -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
- borrowFeeSf: Fraction.fromDecimal(new Decimal(reserveConfigFromFile.fees.borrowFee)).valueSf,
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
- reserved1: Array(1).fill(0),
2044
- reserved2: Array(9).fill(0),
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.borrowFeeSf).toDecimal().toString(),
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(2).fill(0),
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
- borrowFeeSf: fields.configParams.borrowFeeSf.getValue(),
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
- reserved1: Array(1).fill(0),
373
- reserved2: Array(9).fill(0),
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);
@@ -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 market
73
- * @param mint
73
+ * @param reserve
74
74
  * @returns ReservePdas
75
75
  */
76
- export async function reservePdas(programId: Address, market: Address, mint: Address): Promise<ReservePdas> {
76
+ export async function reservePdas(programId: Address, reserve: Address): Promise<ReservePdas> {
77
77
  const [[liquiditySupplyVault], [collateralMint], [collateralSupplyVault], [feeVault]] = await Promise.all([
78
- reserveLiqSupplyPda(market, mint, programId),
79
- reserveCollateralMintPda(market, mint, programId),
80
- reserveCollateralSupplyPda(market, mint, programId),
81
- reserveFeeVaultPda(market, mint, programId),
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
- lendingMarket: Address,
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(lendingMarket), addressEncoder.encode(mint)],
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 lendingMarket
128
- * @param mint
125
+ * @param reserve
129
126
  * @param programId
130
127
  * @returns [vaultPda, bump]
131
128
  */
132
129
  export async function reserveFeeVaultPda(
133
- lendingMarket: Address,
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(lendingMarket), addressEncoder.encode(mint)],
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 lendingMarket
146
- * @param mint
141
+ * @param reserve
147
142
  * @param programId
148
143
  * @returns [mintPda, bump]
149
144
  */
150
145
  export async function reserveCollateralMintPda(
151
- lendingMarket: Address,
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(lendingMarket), addressEncoder.encode(mint)],
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 lendingMarket
164
- * @param mint
157
+ * @param reserve
165
158
  * @param programId
166
159
  * @returns [pda, bump]
167
160
  */
168
161
  export function reserveCollateralSupplyPda(
169
- lendingMarket: Address,
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(lendingMarket), addressEncoder.encode(mint)],
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"}