@kamino-finance/klend-sdk 5.10.34 → 5.10.35-beta.1

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 (192) hide show
  1. package/dist/classes/action.d.ts +28 -20
  2. package/dist/classes/action.d.ts.map +1 -1
  3. package/dist/classes/action.js +317 -137
  4. package/dist/classes/action.js.map +1 -1
  5. package/dist/classes/manager.d.ts.map +1 -1
  6. package/dist/classes/manager.js +10 -1
  7. package/dist/classes/manager.js.map +1 -1
  8. package/dist/classes/obligation.d.ts +1 -1
  9. package/dist/classes/obligation.d.ts.map +1 -1
  10. package/dist/classes/obligation.js +1 -1
  11. package/dist/classes/obligation.js.map +1 -1
  12. package/dist/classes/reserve.d.ts +1 -1
  13. package/dist/classes/reserve.d.ts.map +1 -1
  14. package/dist/classes/reserve.js +2 -1
  15. package/dist/classes/reserve.js.map +1 -1
  16. package/dist/classes/utils.d.ts.map +1 -1
  17. package/dist/classes/utils.js +1 -2
  18. package/dist/classes/utils.js.map +1 -1
  19. package/dist/classes/vault.d.ts.map +1 -1
  20. package/dist/classes/vault.js +10 -10
  21. package/dist/classes/vault.js.map +1 -1
  22. package/dist/client_kamino_manager.d.ts.map +1 -1
  23. package/dist/client_kamino_manager.js +6 -1
  24. package/dist/client_kamino_manager.js.map +1 -1
  25. package/dist/idl.json +269 -156
  26. package/dist/idl_codegen/accounts/LendingMarket.d.ts +15 -0
  27. package/dist/idl_codegen/accounts/LendingMarket.d.ts.map +1 -1
  28. package/dist/idl_codegen/accounts/LendingMarket.js +11 -1
  29. package/dist/idl_codegen/accounts/LendingMarket.js.map +1 -1
  30. package/dist/idl_codegen/accounts/Obligation.d.ts +6 -0
  31. package/dist/idl_codegen/accounts/Obligation.d.ts.map +1 -1
  32. package/dist/idl_codegen/accounts/Obligation.js +8 -1
  33. package/dist/idl_codegen/accounts/Obligation.js.map +1 -1
  34. package/dist/idl_codegen/errors/custom.d.ts +51 -3
  35. package/dist/idl_codegen/errors/custom.d.ts.map +1 -1
  36. package/dist/idl_codegen/errors/custom.js +89 -5
  37. package/dist/idl_codegen/errors/custom.js.map +1 -1
  38. package/dist/idl_codegen/instructions/borrowObligationLiquidity.js +1 -1
  39. package/dist/idl_codegen/instructions/borrowObligationLiquidity.js.map +1 -1
  40. package/dist/idl_codegen/instructions/borrowObligationLiquidityV2.js +1 -1
  41. package/dist/idl_codegen/instructions/borrowObligationLiquidityV2.js.map +1 -1
  42. package/dist/idl_codegen/instructions/depositAndWithdraw.d.ts +52 -0
  43. package/dist/idl_codegen/instructions/depositAndWithdraw.d.ts.map +1 -0
  44. package/dist/idl_codegen/instructions/depositAndWithdraw.js +219 -0
  45. package/dist/idl_codegen/instructions/depositAndWithdraw.js.map +1 -0
  46. package/dist/idl_codegen/instructions/depositReserveLiquidity.js +1 -1
  47. package/dist/idl_codegen/instructions/depositReserveLiquidity.js.map +1 -1
  48. package/dist/idl_codegen/instructions/depositReserveLiquidityAndObligationCollateral.js +1 -1
  49. package/dist/idl_codegen/instructions/depositReserveLiquidityAndObligationCollateral.js.map +1 -1
  50. package/dist/idl_codegen/instructions/depositReserveLiquidityAndObligationCollateralV2.js +1 -1
  51. package/dist/idl_codegen/instructions/depositReserveLiquidityAndObligationCollateralV2.js.map +1 -1
  52. package/dist/idl_codegen/instructions/index.d.ts +2 -2
  53. package/dist/idl_codegen/instructions/index.d.ts.map +1 -1
  54. package/dist/idl_codegen/instructions/index.js +3 -3
  55. package/dist/idl_codegen/instructions/index.js.map +1 -1
  56. package/dist/idl_codegen/instructions/initFarmsForReserve.js +1 -1
  57. package/dist/idl_codegen/instructions/initFarmsForReserve.js.map +1 -1
  58. package/dist/idl_codegen/instructions/initObligationFarmsForReserve.js +1 -1
  59. package/dist/idl_codegen/instructions/initObligationFarmsForReserve.js.map +1 -1
  60. package/dist/idl_codegen/instructions/initReserve.d.ts +1 -0
  61. package/dist/idl_codegen/instructions/initReserve.d.ts.map +1 -1
  62. package/dist/idl_codegen/instructions/initReserve.js +5 -0
  63. package/dist/idl_codegen/instructions/initReserve.js.map +1 -1
  64. package/dist/idl_codegen/instructions/liquidateObligationAndRedeemReserveCollateral.js +2 -2
  65. package/dist/idl_codegen/instructions/liquidateObligationAndRedeemReserveCollateral.js.map +1 -1
  66. package/dist/idl_codegen/instructions/liquidateObligationAndRedeemReserveCollateralV2.js +2 -2
  67. package/dist/idl_codegen/instructions/liquidateObligationAndRedeemReserveCollateralV2.js.map +1 -1
  68. package/dist/idl_codegen/instructions/redeemFees.js +1 -1
  69. package/dist/idl_codegen/instructions/redeemFees.js.map +1 -1
  70. package/dist/idl_codegen/instructions/redeemReserveCollateral.js +1 -1
  71. package/dist/idl_codegen/instructions/redeemReserveCollateral.js.map +1 -1
  72. package/dist/idl_codegen/instructions/refreshObligationFarmsForReserve.js +1 -1
  73. package/dist/idl_codegen/instructions/refreshObligationFarmsForReserve.js.map +1 -1
  74. package/dist/idl_codegen/instructions/repayAndWithdrawAndRedeem.d.ts +9 -0
  75. package/dist/idl_codegen/instructions/repayAndWithdrawAndRedeem.d.ts.map +1 -1
  76. package/dist/idl_codegen/instructions/repayAndWithdrawAndRedeem.js +24 -3
  77. package/dist/idl_codegen/instructions/repayAndWithdrawAndRedeem.js.map +1 -1
  78. package/dist/idl_codegen/instructions/repayObligationLiquidity.js +1 -1
  79. package/dist/idl_codegen/instructions/repayObligationLiquidity.js.map +1 -1
  80. package/dist/idl_codegen/instructions/repayObligationLiquidityV2.js +1 -1
  81. package/dist/idl_codegen/instructions/repayObligationLiquidityV2.js.map +1 -1
  82. package/dist/idl_codegen/instructions/withdrawObligationCollateralAndRedeemReserveCollateral.js +2 -2
  83. package/dist/idl_codegen/instructions/withdrawObligationCollateralAndRedeemReserveCollateral.js.map +1 -1
  84. package/dist/idl_codegen/instructions/withdrawObligationCollateralAndRedeemReserveCollateralV2.js +2 -2
  85. package/dist/idl_codegen/instructions/withdrawObligationCollateralAndRedeemReserveCollateralV2.js.map +1 -1
  86. package/dist/idl_codegen/instructions/withdrawProtocolFee.js +1 -1
  87. package/dist/idl_codegen/instructions/withdrawProtocolFee.js.map +1 -1
  88. package/dist/idl_codegen/instructions/withdrawReferrerFees.js +1 -1
  89. package/dist/idl_codegen/instructions/withdrawReferrerFees.js.map +1 -1
  90. package/dist/idl_codegen/types/UpdateLendingMarketMode.d.ts +13 -0
  91. package/dist/idl_codegen/types/UpdateLendingMarketMode.d.ts.map +1 -1
  92. package/dist/idl_codegen/types/UpdateLendingMarketMode.js +25 -1
  93. package/dist/idl_codegen/types/UpdateLendingMarketMode.js.map +1 -1
  94. package/dist/idl_codegen/types/index.d.ts +2 -2
  95. package/dist/idl_codegen/types/index.d.ts.map +1 -1
  96. package/dist/idl_codegen/types/index.js.map +1 -1
  97. package/dist/idl_codegen/zero_padding/ObligationZP.d.ts +12 -4
  98. package/dist/idl_codegen/zero_padding/ObligationZP.d.ts.map +1 -1
  99. package/dist/idl_codegen/zero_padding/ObligationZP.js +15 -8
  100. package/dist/idl_codegen/zero_padding/ObligationZP.js.map +1 -1
  101. package/dist/lending_operations/repay_with_collateral_calcs.d.ts.map +1 -1
  102. package/dist/lending_operations/repay_with_collateral_calcs.js +9 -5
  103. package/dist/lending_operations/repay_with_collateral_calcs.js.map +1 -1
  104. package/dist/lending_operations/repay_with_collateral_operations.d.ts +5 -0
  105. package/dist/lending_operations/repay_with_collateral_operations.d.ts.map +1 -1
  106. package/dist/lending_operations/repay_with_collateral_operations.js +22 -1
  107. package/dist/lending_operations/repay_with_collateral_operations.js.map +1 -1
  108. package/dist/lending_operations/swap_collateral_operations.d.ts.map +1 -1
  109. package/dist/lending_operations/swap_collateral_operations.js +5 -3
  110. package/dist/lending_operations/swap_collateral_operations.js.map +1 -1
  111. package/dist/leverage/instructions.d.ts +1 -2
  112. package/dist/leverage/instructions.d.ts.map +1 -1
  113. package/dist/leverage/instructions.js +2 -6
  114. package/dist/leverage/instructions.js.map +1 -1
  115. package/dist/leverage/operations.d.ts.map +1 -1
  116. package/dist/leverage/operations.js +19 -13
  117. package/dist/leverage/operations.js.map +1 -1
  118. package/dist/utils/ata.d.ts +1 -1
  119. package/dist/utils/ata.d.ts.map +1 -1
  120. package/dist/utils/ata.js +2 -2
  121. package/dist/utils/ata.js.map +1 -1
  122. package/dist/utils/constants.d.ts +4 -9
  123. package/dist/utils/constants.d.ts.map +1 -1
  124. package/dist/utils/constants.js +5 -10
  125. package/dist/utils/constants.js.map +1 -1
  126. package/dist/utils/lookupTable.d.ts +27 -0
  127. package/dist/utils/lookupTable.d.ts.map +1 -1
  128. package/dist/utils/lookupTable.js +58 -0
  129. package/dist/utils/lookupTable.js.map +1 -1
  130. package/dist/utils/managerTypes.d.ts +1 -0
  131. package/dist/utils/managerTypes.d.ts.map +1 -1
  132. package/dist/utils/managerTypes.js.map +1 -1
  133. package/dist/utils/seeds.d.ts +11 -0
  134. package/dist/utils/seeds.d.ts.map +1 -1
  135. package/dist/utils/seeds.js +16 -1
  136. package/dist/utils/seeds.js.map +1 -1
  137. package/dist/utils/userMetadata.d.ts.map +1 -1
  138. package/dist/utils/userMetadata.js +8 -10
  139. package/dist/utils/userMetadata.js.map +1 -1
  140. package/package.json +3 -3
  141. package/src/classes/action.ts +476 -141
  142. package/src/classes/manager.ts +13 -0
  143. package/src/classes/obligation.ts +1 -1
  144. package/src/classes/reserve.ts +2 -0
  145. package/src/classes/utils.ts +3 -3
  146. package/src/classes/vault.ts +7 -8
  147. package/src/client_kamino_manager.ts +8 -1
  148. package/src/idl.json +269 -156
  149. package/src/idl_codegen/accounts/LendingMarket.ts +21 -1
  150. package/src/idl_codegen/accounts/Obligation.ts +12 -1
  151. package/src/idl_codegen/errors/custom.ts +103 -4
  152. package/src/idl_codegen/instructions/borrowObligationLiquidity.ts +1 -1
  153. package/src/idl_codegen/instructions/borrowObligationLiquidityV2.ts +1 -1
  154. package/src/idl_codegen/instructions/depositAndWithdraw.ts +241 -0
  155. package/src/idl_codegen/instructions/depositReserveLiquidity.ts +1 -1
  156. package/src/idl_codegen/instructions/depositReserveLiquidityAndObligationCollateral.ts +1 -1
  157. package/src/idl_codegen/instructions/depositReserveLiquidityAndObligationCollateralV2.ts +1 -1
  158. package/src/idl_codegen/instructions/index.ts +4 -4
  159. package/src/idl_codegen/instructions/initFarmsForReserve.ts +1 -1
  160. package/src/idl_codegen/instructions/initObligationFarmsForReserve.ts +1 -1
  161. package/src/idl_codegen/instructions/initReserve.ts +6 -0
  162. package/src/idl_codegen/instructions/liquidateObligationAndRedeemReserveCollateral.ts +2 -2
  163. package/src/idl_codegen/instructions/liquidateObligationAndRedeemReserveCollateralV2.ts +2 -2
  164. package/src/idl_codegen/instructions/redeemFees.ts +1 -1
  165. package/src/idl_codegen/instructions/redeemReserveCollateral.ts +1 -1
  166. package/src/idl_codegen/instructions/refreshObligationFarmsForReserve.ts +1 -1
  167. package/src/idl_codegen/instructions/repayAndWithdrawAndRedeem.ts +33 -3
  168. package/src/idl_codegen/instructions/repayObligationLiquidity.ts +1 -1
  169. package/src/idl_codegen/instructions/repayObligationLiquidityV2.ts +1 -1
  170. package/src/idl_codegen/instructions/withdrawObligationCollateralAndRedeemReserveCollateral.ts +2 -2
  171. package/src/idl_codegen/instructions/withdrawObligationCollateralAndRedeemReserveCollateralV2.ts +2 -2
  172. package/src/idl_codegen/instructions/withdrawProtocolFee.ts +1 -1
  173. package/src/idl_codegen/instructions/withdrawReferrerFees.ts +1 -1
  174. package/src/idl_codegen/types/UpdateLendingMarketMode.ts +30 -0
  175. package/src/idl_codegen/types/index.ts +2 -0
  176. package/src/idl_codegen/zero_padding/ObligationZP.ts +18 -7
  177. package/src/lending_operations/repay_with_collateral_calcs.ts +14 -5
  178. package/src/lending_operations/repay_with_collateral_operations.ts +28 -3
  179. package/src/lending_operations/swap_collateral_operations.ts +6 -5
  180. package/src/leverage/instructions.ts +1 -6
  181. package/src/leverage/operations.ts +28 -18
  182. package/src/utils/ata.ts +1 -1
  183. package/src/utils/constants.ts +5 -11
  184. package/src/utils/lookupTable.ts +62 -0
  185. package/src/utils/managerTypes.ts +1 -0
  186. package/src/utils/seeds.ts +18 -0
  187. package/src/utils/userMetadata.ts +9 -14
  188. package/dist/classes/lut_utils.d.ts +0 -29
  189. package/dist/classes/lut_utils.d.ts.map +0 -1
  190. package/dist/classes/lut_utils.js +0 -62
  191. package/dist/classes/lut_utils.js.map +0 -1
  192. package/src/classes/lut_utils.ts +0 -63
@@ -187,6 +187,7 @@ export class KaminoManager {
187
187
  const createReserveInstructions = await createReserveIxs(
188
188
  this._connection,
189
189
  params.admin,
190
+ params.adminLiquiditySource,
190
191
  params.marketAddress,
191
192
  params.assetConfig.mint,
192
193
  reserveAccount.publicKey,
@@ -1267,6 +1268,17 @@ const updateLendingMarketConfig = (
1267
1268
  });
1268
1269
  }
1269
1270
  break;
1271
+ case 'minInitialDepositAmount':
1272
+ if (!market.minInitialDepositAmount.eq(newMarket.minInitialDepositAmount)) {
1273
+ updateLendingMarketIxnsArgs.push({
1274
+ mode: UpdateLendingMarketMode.UpdateInitialDepositAmount.discriminator,
1275
+ value: updateMarketConfigEncodedValue(
1276
+ UpdateLendingMarketMode.UpdateInitialDepositAmount.discriminator,
1277
+ newMarket.minInitialDepositAmount.toNumber()
1278
+ ),
1279
+ });
1280
+ }
1281
+ break;
1270
1282
  default:
1271
1283
  assertNever(key);
1272
1284
  }
@@ -1331,6 +1343,7 @@ function updateMarketConfigEncodedValue(
1331
1343
  case UpdateLendingMarketMode.UpdateMinValueBfSkipPriorityLiqCheck.discriminator:
1332
1344
  case UpdateLendingMarketMode.UpdateMinValueLtvSkipPriorityLiqCheck.discriminator:
1333
1345
  case UpdateLendingMarketMode.UpdateIndividualAutodeleverageMarginCallPeriodSecs.discriminator:
1346
+ case UpdateLendingMarketMode.UpdateInitialDepositAmount.discriminator:
1334
1347
  value = value as number;
1335
1348
  buffer.writeBigUint64LE(BigInt(value), 0);
1336
1349
  break;
@@ -266,7 +266,7 @@ export class KaminoObligation {
266
266
  /**
267
267
  * @returns total borrow power of the obligation, relative to max LTV of each asset's reserve
268
268
  */
269
- getAllowedBorrowValue(): Decimal {
269
+ getMaxAllowedBorrowValue(): Decimal {
270
270
  return new Fraction(this.state.allowedBorrowValueSf).toDecimal();
271
271
  }
272
272
 
@@ -1134,6 +1134,7 @@ const truncateBorrowCurve = (points: CurvePointFields[]): [number, number][] =>
1134
1134
  export async function createReserveIxs(
1135
1135
  connection: Connection,
1136
1136
  owner: PublicKey,
1137
+ ownerLiquiditySource: PublicKey,
1137
1138
  lendingMarket: PublicKey,
1138
1139
  liquidityMint: PublicKey,
1139
1140
  reserveAddress: PublicKey,
@@ -1166,6 +1167,7 @@ export async function createReserveIxs(
1166
1167
  feeReceiver: feeVault,
1167
1168
  reserveCollateralMint: collateralMint,
1168
1169
  reserveCollateralSupply: collateralSupplyVault,
1170
+ initialLiquiditySource: ownerLiquiditySource,
1169
1171
  liquidityTokenProgram: TOKEN_PROGRAM_ID,
1170
1172
  collateralTokenProgram: TOKEN_PROGRAM_ID,
1171
1173
  systemProgram: SystemProgram.programId,
@@ -1,8 +1,8 @@
1
1
  import { PubkeyHashMap, SLOTS_PER_SECOND, SLOTS_PER_YEAR } from '../utils';
2
2
  import Decimal from 'decimal.js';
3
3
  import { AccountInfo, PublicKey } from '@solana/web3.js';
4
- import { MarketOverview, ReserveOverview, SOL_MINTS } from '../lib';
5
- import { AccountLayout } from '@solana/spl-token';
4
+ import { MarketOverview, ReserveOverview } from '../lib';
5
+ import { AccountLayout, NATIVE_MINT } from '@solana/spl-token';
6
6
  import { ReserveAllocationOverview } from './types';
7
7
  import axios from 'axios';
8
8
 
@@ -188,7 +188,7 @@ export function lamportsToDecimal(amount: Decimal.Value, decimals: Decimal.Value
188
188
  }
189
189
 
190
190
  export const isSolMint = (mint: PublicKey): boolean => {
191
- return SOL_MINTS.filter((m) => m.equals(mint)).length > 0;
191
+ return NATIVE_MINT.equals(mint);
192
192
  };
193
193
 
194
194
  export const valueOrZero = (value: Decimal): Decimal => {
@@ -11,10 +11,10 @@ import {
11
11
  SYSVAR_RENT_PUBKEY,
12
12
  TransactionInstruction,
13
13
  } from '@solana/web3.js';
14
- import { TOKEN_PROGRAM_ID, unpackAccount } from '@solana/spl-token';
14
+ import { NATIVE_MINT, TOKEN_PROGRAM_ID, unpackAccount } from '@solana/spl-token';
15
15
  import {
16
16
  getAssociatedTokenAddress,
17
- getDepositWsolIxns,
17
+ getTransferWsolIxns,
18
18
  getTokenOracleData,
19
19
  KaminoMarket,
20
20
  KaminoReserve,
@@ -22,7 +22,6 @@ import {
22
22
  PubkeyHashMap,
23
23
  Reserve,
24
24
  UserState,
25
- WRAPPED_SOL_MINT,
26
25
  } from '../lib';
27
26
  import {
28
27
  DepositAccounts,
@@ -83,7 +82,7 @@ import {
83
82
  import { batchFetch, collToLamportsDecimal, ZERO } from '@kamino-finance/kliquidity-sdk';
84
83
  import { FullBPSDecimal } from '@kamino-finance/kliquidity-sdk/dist/utils/CreationParameters';
85
84
  import { FarmState } from '@kamino-finance/farms-sdk/dist';
86
- import { getAccountsInLUT, initLookupTableIx } from './lut_utils';
85
+ import { getAccountsInLUT, initLookupTableIx } from '../utils/lookupTable';
87
86
  import {
88
87
  getFarmStakeIxs,
89
88
  getFarmUnstakeAndWithdrawIxs,
@@ -695,20 +694,20 @@ export class KaminoVaultClient {
695
694
  const userTokenAta = getAssociatedTokenAddress(vaultState.tokenMint, user, true, tokenProgramID);
696
695
  const createAtasIxns: TransactionInstruction[] = [];
697
696
  const closeAtasIxns: TransactionInstruction[] = [];
698
- if (vaultState.tokenMint.equals(WRAPPED_SOL_MINT)) {
697
+ if (vaultState.tokenMint.equals(NATIVE_MINT)) {
699
698
  const [{ ata: wsolAta, createAtaIx: createWsolAtaIxn }] = createAtasIdempotent(user, [
700
699
  {
701
- mint: WRAPPED_SOL_MINT,
700
+ mint: NATIVE_MINT,
702
701
  tokenProgram: TOKEN_PROGRAM_ID,
703
702
  },
704
703
  ]);
705
704
  createAtasIxns.push(createWsolAtaIxn);
706
- const depositWsolIxn = getDepositWsolIxns(
705
+ const transferWsolIxns = getTransferWsolIxns(
707
706
  user,
708
707
  wsolAta,
709
708
  numberToLamportsDecimal(tokenAmount, vaultState.tokenMintDecimals.toNumber()).ceil()
710
709
  );
711
- createAtasIxns.push(...depositWsolIxn);
710
+ createAtasIxns.push(...transferWsolIxns);
712
711
  }
713
712
 
714
713
  const [{ ata: userSharesAta, createAtaIx: createSharesAtaIxns }] = createAtasIdempotent(user, [
@@ -54,6 +54,7 @@ import {
54
54
  } from './idl_codegen_kamino_vault/types/VaultConfigField';
55
55
  import { getAccountOwner } from './utils/rpc';
56
56
  import { printHoldings } from './classes/types_utils';
57
+ import { getAssociatedTokenAddressSync } from '@solana/spl-token';
57
58
 
58
59
  dotenv.config({
59
60
  path: `.env${process.env.ENV ? '.' + process.env.ENV : ''}`,
@@ -87,7 +88,7 @@ async function main() {
87
88
  admin: mode === 'multisig' ? multisigPk : env.payer.publicKey,
88
89
  });
89
90
 
90
- const _createMarketSig = await processTxn(env.client, env.payer, createMarketIxns, mode, 2500, [marketKp]);
91
+ await processTxn(env.client, env.payer, createMarketIxns, mode, 2500, [marketKp]);
91
92
 
92
93
  mode === 'execute' && console.log('Market created:', marketKp.publicKey.toBase58());
93
94
  });
@@ -122,8 +123,14 @@ async function main() {
122
123
  const reserveConfig = parseReserveConfigFromFile(reserveConfigFromFile);
123
124
  const assetConfig = new AssetReserveConfigCli(tokenMint, tokenMintProgramId, reserveConfig);
124
125
 
126
+ const adminAta =
127
+ mode === 'multisig'
128
+ ? getAssociatedTokenAddressSync(tokenMint, multisigPk)
129
+ : getAssociatedTokenAddressSync(tokenMint, env.payer.publicKey);
130
+
125
131
  const { reserve, txnIxns } = await kaminoManager.addAssetToMarketIxs({
126
132
  admin: mode === 'multisig' ? multisigPk : env.payer.publicKey,
133
+ adminLiquiditySource: adminAta,
127
134
  marketAddress: marketAddress,
128
135
  assetConfig: assetConfig,
129
136
  });