@kamino-finance/klend-sdk 5.13.1 → 5.13.4

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 (116) hide show
  1. package/dist/classes/action.d.ts +32 -31
  2. package/dist/classes/action.d.ts.map +1 -1
  3. package/dist/classes/action.js +126 -95
  4. package/dist/classes/action.js.map +1 -1
  5. package/dist/classes/index.d.ts +3 -2
  6. package/dist/classes/index.d.ts.map +1 -1
  7. package/dist/classes/index.js +3 -2
  8. package/dist/classes/index.js.map +1 -1
  9. package/dist/classes/manager.d.ts +15 -7
  10. package/dist/classes/manager.d.ts.map +1 -1
  11. package/dist/classes/manager.js +57 -46
  12. package/dist/classes/manager.js.map +1 -1
  13. package/dist/classes/obligationOrder.d.ts +1 -1
  14. package/dist/classes/obligationOrder.d.ts.map +1 -1
  15. package/dist/classes/reserve.d.ts +2 -2
  16. package/dist/classes/reserve.d.ts.map +1 -1
  17. package/dist/classes/reserve.js +70 -70
  18. package/dist/classes/reserve.js.map +1 -1
  19. package/dist/classes/shared.d.ts +13 -0
  20. package/dist/classes/shared.d.ts.map +1 -1
  21. package/dist/classes/utils.d.ts +1 -9
  22. package/dist/classes/utils.d.ts.map +1 -1
  23. package/dist/classes/utils.js +4 -51
  24. package/dist/classes/utils.js.map +1 -1
  25. package/dist/classes/vault.d.ts +22 -4
  26. package/dist/classes/vault.d.ts.map +1 -1
  27. package/dist/classes/vault.js +78 -43
  28. package/dist/classes/vault.js.map +1 -1
  29. package/dist/classes/{types.d.ts → vault_types.d.ts} +3 -15
  30. package/dist/classes/vault_types.d.ts.map +1 -0
  31. package/dist/classes/{types.js → vault_types.js} +1 -1
  32. package/dist/classes/vault_types.js.map +1 -0
  33. package/dist/client_kamino_manager.d.ts.map +1 -1
  34. package/dist/client_kamino_manager.js +44 -28
  35. package/dist/client_kamino_manager.js.map +1 -1
  36. package/dist/lending_operations/repay_with_collateral_operations.js +6 -6
  37. package/dist/lending_operations/repay_with_collateral_operations.js.map +1 -1
  38. package/dist/lending_operations/swap_collateral_operations.d.ts +6 -6
  39. package/dist/lending_operations/swap_collateral_operations.d.ts.map +1 -1
  40. package/dist/lending_operations/swap_collateral_operations.js +61 -61
  41. package/dist/lending_operations/swap_collateral_operations.js.map +1 -1
  42. package/dist/leverage/calcs.d.ts +0 -1
  43. package/dist/leverage/calcs.d.ts.map +1 -1
  44. package/dist/leverage/calcs.js +5 -8
  45. package/dist/leverage/calcs.js.map +1 -1
  46. package/dist/leverage/operations.d.ts +5 -5
  47. package/dist/leverage/operations.d.ts.map +1 -1
  48. package/dist/leverage/operations.js +73 -73
  49. package/dist/leverage/operations.js.map +1 -1
  50. package/dist/leverage/types.d.ts +1 -1
  51. package/dist/leverage/types.d.ts.map +1 -1
  52. package/dist/leverage/utils.d.ts +2 -2
  53. package/dist/leverage/utils.d.ts.map +1 -1
  54. package/dist/leverage/utils.js +5 -5
  55. package/dist/leverage/utils.js.map +1 -1
  56. package/dist/referrals/instructions.d.ts +3 -3
  57. package/dist/referrals/instructions.d.ts.map +1 -1
  58. package/dist/referrals/instructions.js +10 -10
  59. package/dist/referrals/instructions.js.map +1 -1
  60. package/dist/referrals/operations.js +6 -6
  61. package/dist/referrals/operations.js.map +1 -1
  62. package/dist/utils/ata.d.ts +3 -3
  63. package/dist/utils/ata.d.ts.map +1 -1
  64. package/dist/utils/ata.js +22 -22
  65. package/dist/utils/ata.js.map +1 -1
  66. package/dist/utils/instruction.d.ts +2 -2
  67. package/dist/utils/instruction.d.ts.map +1 -1
  68. package/dist/utils/instruction.js +12 -12
  69. package/dist/utils/instruction.js.map +1 -1
  70. package/dist/utils/lookupTable.js +6 -6
  71. package/dist/utils/lookupTable.js.map +1 -1
  72. package/dist/utils/metadata.d.ts +14 -0
  73. package/dist/utils/metadata.d.ts.map +1 -0
  74. package/dist/utils/metadata.js +78 -0
  75. package/dist/utils/metadata.js.map +1 -0
  76. package/dist/utils/seeds.d.ts +6 -0
  77. package/dist/utils/seeds.d.ts.map +1 -1
  78. package/dist/utils/seeds.js +10 -0
  79. package/dist/utils/seeds.js.map +1 -1
  80. package/dist/utils/userMetadata.d.ts +1 -1
  81. package/dist/utils/userMetadata.d.ts.map +1 -1
  82. package/dist/utils/userMetadata.js +3 -3
  83. package/dist/utils/userMetadata.js.map +1 -1
  84. package/package.json +1 -1
  85. package/src/classes/action.ts +143 -102
  86. package/src/classes/index.ts +5 -2
  87. package/src/classes/manager.ts +74 -51
  88. package/src/classes/obligationOrder.ts +1 -1
  89. package/src/classes/reserve.ts +126 -132
  90. package/src/classes/shared.ts +15 -0
  91. package/src/classes/utils.ts +3 -52
  92. package/src/classes/vault.ts +125 -44
  93. package/src/classes/{types.ts → vault_types.ts} +2 -16
  94. package/src/client.ts +16 -16
  95. package/src/client_kamino_manager.ts +59 -27
  96. package/src/lending_operations/repay_with_collateral_operations.ts +13 -13
  97. package/src/lending_operations/swap_collateral_operations.ts +85 -85
  98. package/src/leverage/calcs.ts +2 -6
  99. package/src/leverage/operations.ts +84 -84
  100. package/src/leverage/types.ts +1 -1
  101. package/src/leverage/utils.ts +5 -5
  102. package/src/referrals/instructions.ts +6 -6
  103. package/src/referrals/operations.ts +9 -9
  104. package/src/utils/ata.ts +18 -18
  105. package/src/utils/instruction.ts +10 -10
  106. package/src/utils/lookupTable.ts +6 -6
  107. package/src/utils/metadata.ts +115 -0
  108. package/src/utils/seeds.ts +13 -0
  109. package/src/utils/userMetadata.ts +1 -1
  110. package/dist/classes/types.d.ts.map +0 -1
  111. package/dist/classes/types.js.map +0 -1
  112. package/dist/classes/types_utils.d.ts +0 -14
  113. package/dist/classes/types_utils.d.ts.map +0 -1
  114. package/dist/classes/types_utils.js +0 -50
  115. package/dist/classes/types_utils.js.map +0 -1
  116. package/src/classes/types_utils.ts +0 -49
@@ -1,12 +1,15 @@
1
1
  export * from './action';
2
2
  export * from './curve';
3
+ export * from './fraction';
3
4
  export * from './market';
4
5
  export * from './obligation';
6
+ export * from './obligationOrder';
5
7
  export * from './reserve';
6
8
  export * from './shared';
7
9
  export * from './utils';
10
+
8
11
  export * from './jupiterPerps';
12
+
9
13
  export * from './manager';
10
14
  export * from './vault';
11
- export * from './fraction';
12
- export * from './types';
15
+ export * from './vault_types';
@@ -90,7 +90,7 @@ import {
90
90
  UpdateVaultConfigIxs,
91
91
  UserSharesForVault,
92
92
  WithdrawIxs,
93
- } from './types';
93
+ } from './vault_types';
94
94
  import { FarmState } from '@kamino-finance/farms-sdk/dist';
95
95
  import SwitchboardProgram from '@switchboard-xyz/sbv2-lite';
96
96
 
@@ -134,17 +134,15 @@ export class KaminoManager {
134
134
  * This is a function that helps quickly setting up a reserve for an asset with a default config. The config can be modified later on.
135
135
  * @param params.admin - the admin of the market
136
136
  * @returns market keypair - keypair used for market account creation -> to be signed with when executing the transaction
137
- * @returns ixns - an array of ixns for creating and initializing the market account
137
+ * @returns ixs - an array of ixs for creating and initializing the market account
138
138
  */
139
- async createMarketIxs(
140
- params: CreateKaminoMarketParams
141
- ): Promise<{ market: Keypair; ixns: TransactionInstruction[] }> {
139
+ async createMarketIxs(params: CreateKaminoMarketParams): Promise<{ market: Keypair; ixs: TransactionInstruction[] }> {
142
140
  const marketAccount = Keypair.generate();
143
141
  const size = LendingMarket.layout.span + 8;
144
142
  const [lendingMarketAuthority, _] = lendingMarketAuthPda(marketAccount.publicKey, this._kaminoLendProgramId);
145
- const createMarketIxns: TransactionInstruction[] = [];
143
+ const createMarketIxs: TransactionInstruction[] = [];
146
144
 
147
- createMarketIxns.push(
145
+ createMarketIxs.push(
148
146
  SystemProgram.createAccount({
149
147
  fromPubkey: params.admin,
150
148
  newAccountPubkey: marketAccount.publicKey,
@@ -166,9 +164,9 @@ export class KaminoManager {
166
164
  quoteCurrency: Array(32).fill(0),
167
165
  };
168
166
 
169
- createMarketIxns.push(initLendingMarket(args, accounts, this._kaminoLendProgramId));
167
+ createMarketIxs.push(initLendingMarket(args, accounts, this._kaminoLendProgramId));
170
168
 
171
- return { market: marketAccount, ixns: createMarketIxns };
169
+ return { market: marketAccount, ixs: createMarketIxs };
172
170
  }
173
171
 
174
172
  /**
@@ -177,11 +175,11 @@ export class KaminoManager {
177
175
  * @param params.marketAddress - the market to create a reserve for, only the market admin can create a reserve for the market
178
176
  * @param params.assetConfig - an object that helps generate a default reserve config with some inputs which have to be configured before calling this function
179
177
  * @returns reserve - keypair used for reserve creation -> to be signed with when executing the transaction
180
- * @returns txnIxns - an array of arrays of ixns -> first array for reserve creation, second for updating it with correct params
178
+ * @returns txnIxs - an array of arrays of ixs -> first array for reserve creation, second for updating it with correct params
181
179
  */
182
180
  async addAssetToMarketIxs(
183
181
  params: AddAssetToMarketParams
184
- ): Promise<{ reserve: Keypair; txnIxns: TransactionInstruction[][] }> {
182
+ ): Promise<{ reserve: Keypair; txnIxs: TransactionInstruction[][] }> {
185
183
  const market = await LendingMarket.fetch(this._connection, params.marketAddress, this._kaminoLendProgramId);
186
184
  if (!market) {
187
185
  throw new Error('Market not found');
@@ -208,11 +206,11 @@ export class KaminoManager {
208
206
  false
209
207
  );
210
208
 
211
- const txnIxns: TransactionInstruction[][] = [];
212
- txnIxns.push(createReserveInstructions);
213
- txnIxns.push(updateReserveInstructions);
209
+ const txnIxs: TransactionInstruction[][] = [];
210
+ txnIxs.push(createReserveInstructions);
211
+ txnIxs.push(updateReserveInstructions);
214
212
 
215
- return { reserve: reserveAccount, txnIxns };
213
+ return { reserve: reserveAccount, txnIxs };
216
214
  }
217
215
 
218
216
  /**
@@ -224,6 +222,26 @@ export class KaminoManager {
224
222
  return this._vaultClient.createVaultIxs(vaultConfig);
225
223
  }
226
224
 
225
+ /**
226
+ * This method creates an instruction to set the shares metadata for a vault
227
+ * @param vault - the vault to set the shares metadata for
228
+ * @param tokenName - the name of the token in the vault (symbol; e.g. "USDC" which becomes "kVUSDC")
229
+ * @param extraName - the extra string appended to the prefix("Kamino Vault USDC <extraName>")
230
+ * @returns - an instruction to set the shares metadata for the vault
231
+ */
232
+ async getSetSharesMetadataIx(vault: KaminoVault, tokenName: string, extraName: string) {
233
+ const vaultState = await vault.getState(this._connection);
234
+ return this._vaultClient.getSetSharesMetadataIx(
235
+ this._connection,
236
+ vaultState.vaultAdminAuthority,
237
+ vault.address,
238
+ vaultState.sharesMint,
239
+ vaultState.baseVaultAuthority,
240
+ tokenName,
241
+ extraName
242
+ );
243
+ }
244
+
227
245
  /**
228
246
  * This method updates the vault reserve allocation cofnig for an exiting vault reserve, or adds a new reserve to the vault if it does not exist.
229
247
  * @param vault - vault to be updated
@@ -325,7 +343,7 @@ export class KaminoManager {
325
343
  * @param config - the new reserve configuration to be used for the update
326
344
  * @param reserveStateOverride - the reserve state, useful to provide, if already fetched outside this method, in order to avoid an extra rpc call to fetch it. Make sure the reserveConfig has not been updated since fetching the reserveState that you pass in.
327
345
  * @param updateEntireConfig - when set to false, it will only update fields that are different between @param config and reserveState.config, set to true it will always update entire reserve config. An entire reserveConfig update might be too large for a multisig transaction
328
- * @returns - an array of multiple update ixns. If there are many fields that are being updated without the updateEntireConfig=true, multiple transactions might be required to fit all ixns.
346
+ * @returns - an array of multiple update ixs. If there are many fields that are being updated without the updateEntireConfig=true, multiple transactions might be required to fit all ixs.
329
347
  */
330
348
  async updateReserveIxs(
331
349
  marketWithAddress: MarketWithAddress,
@@ -337,12 +355,12 @@ export class KaminoManager {
337
355
  const reserveState = reserveStateOverride
338
356
  ? reserveStateOverride
339
357
  : (await Reserve.fetch(this._connection, reserve, this._kaminoLendProgramId))!;
340
- const ixns: TransactionInstruction[] = [];
358
+ const ixs: TransactionInstruction[] = [];
341
359
 
342
360
  if (!reserveState || updateEntireConfig) {
343
- ixns.push(updateEntireReserveConfigIx(marketWithAddress, reserve, config, this._kaminoLendProgramId));
361
+ ixs.push(updateEntireReserveConfigIx(marketWithAddress, reserve, config, this._kaminoLendProgramId));
344
362
  } else {
345
- ixns.push(
363
+ ixs.push(
346
364
  ...parseForChangesReserveConfigAndGetIxs(
347
365
  marketWithAddress,
348
366
  reserveState,
@@ -353,7 +371,7 @@ export class KaminoManager {
353
371
  );
354
372
  }
355
373
 
356
- return ixns;
374
+ return ixs;
357
375
  }
358
376
 
359
377
  /**
@@ -986,8 +1004,13 @@ export class KaminoManager {
986
1004
  *
987
1005
  * @returns a hashmap from each reserve pubkey to the market overview of the collaterals that can be used and the min and max loan to value ratio in that market
988
1006
  */
989
- async getVaultCollaterals(vaultState: VaultState, slot: number): Promise<PubkeyHashMap<PublicKey, MarketOverview>> {
990
- return this._vaultClient.getVaultCollaterals(vaultState, slot);
1007
+ async getVaultCollaterals(
1008
+ vaultState: VaultState,
1009
+ slot: number,
1010
+ vaultReservesMap?: PubkeyHashMap<PublicKey, KaminoReserve>,
1011
+ kaminoMarkets?: KaminoMarket[]
1012
+ ): Promise<PubkeyHashMap<PublicKey, MarketOverview>> {
1013
+ return this._vaultClient.getVaultCollaterals(vaultState, slot, vaultReservesMap, kaminoMarkets);
991
1014
  }
992
1015
 
993
1016
  /**
@@ -1140,11 +1163,11 @@ const updateLendingMarketConfig = (
1140
1163
  market: LendingMarket,
1141
1164
  newMarket: LendingMarket
1142
1165
  ): { mode: number; value: Buffer }[] => {
1143
- const updateLendingMarketIxnsArgs: { mode: number; value: Buffer }[] = [];
1166
+ const updateLendingMarketIxsArgs: { mode: number; value: Buffer }[] = [];
1144
1167
  switch (key) {
1145
1168
  case 'lendingMarketOwner': {
1146
1169
  if (!market.lendingMarketOwner.equals(newMarket.lendingMarketOwner)) {
1147
- updateLendingMarketIxnsArgs.push({
1170
+ updateLendingMarketIxsArgs.push({
1148
1171
  mode: UpdateLendingMarketMode.UpdateOwner.discriminator,
1149
1172
  value: updateMarketConfigEncodedValue(
1150
1173
  UpdateLendingMarketMode.UpdateOwner.discriminator,
@@ -1156,7 +1179,7 @@ const updateLendingMarketConfig = (
1156
1179
  }
1157
1180
  case 'lendingMarketOwnerCached':
1158
1181
  if (!market.lendingMarketOwnerCached.equals(newMarket.lendingMarketOwnerCached)) {
1159
- updateLendingMarketIxnsArgs.push({
1182
+ updateLendingMarketIxsArgs.push({
1160
1183
  mode: UpdateLendingMarketMode.UpdateOwner.discriminator,
1161
1184
  value: updateMarketConfigEncodedValue(
1162
1185
  UpdateLendingMarketMode.UpdateOwner.discriminator,
@@ -1167,7 +1190,7 @@ const updateLendingMarketConfig = (
1167
1190
  break;
1168
1191
  case 'referralFeeBps':
1169
1192
  if (market.referralFeeBps !== newMarket.referralFeeBps) {
1170
- updateLendingMarketIxnsArgs.push({
1193
+ updateLendingMarketIxsArgs.push({
1171
1194
  mode: UpdateLendingMarketMode.UpdateReferralFeeBps.discriminator,
1172
1195
  value: updateMarketConfigEncodedValue(
1173
1196
  UpdateLendingMarketMode.UpdateReferralFeeBps.discriminator,
@@ -1178,7 +1201,7 @@ const updateLendingMarketConfig = (
1178
1201
  break;
1179
1202
  case 'emergencyMode':
1180
1203
  if (market.emergencyMode !== newMarket.emergencyMode) {
1181
- updateLendingMarketIxnsArgs.push({
1204
+ updateLendingMarketIxsArgs.push({
1182
1205
  mode: UpdateLendingMarketMode.UpdateEmergencyMode.discriminator,
1183
1206
  value: updateMarketConfigEncodedValue(
1184
1207
  UpdateLendingMarketMode.UpdateEmergencyMode.discriminator,
@@ -1189,7 +1212,7 @@ const updateLendingMarketConfig = (
1189
1212
  break;
1190
1213
  case 'autodeleverageEnabled':
1191
1214
  if (market.autodeleverageEnabled !== newMarket.autodeleverageEnabled) {
1192
- updateLendingMarketIxnsArgs.push({
1215
+ updateLendingMarketIxsArgs.push({
1193
1216
  mode: UpdateLendingMarketMode.UpdateAutodeleverageEnabled.discriminator,
1194
1217
  value: updateMarketConfigEncodedValue(
1195
1218
  UpdateLendingMarketMode.UpdateAutodeleverageEnabled.discriminator,
@@ -1200,7 +1223,7 @@ const updateLendingMarketConfig = (
1200
1223
  break;
1201
1224
  case 'borrowDisabled':
1202
1225
  if (market.borrowDisabled !== newMarket.borrowDisabled) {
1203
- updateLendingMarketIxnsArgs.push({
1226
+ updateLendingMarketIxsArgs.push({
1204
1227
  mode: UpdateLendingMarketMode.UpdateBorrowingDisabled.discriminator,
1205
1228
  value: updateMarketConfigEncodedValue(
1206
1229
  UpdateLendingMarketMode.UpdateBorrowingDisabled.discriminator,
@@ -1211,7 +1234,7 @@ const updateLendingMarketConfig = (
1211
1234
  break;
1212
1235
  case 'priceRefreshTriggerToMaxAgePct':
1213
1236
  if (market.priceRefreshTriggerToMaxAgePct !== newMarket.priceRefreshTriggerToMaxAgePct) {
1214
- updateLendingMarketIxnsArgs.push({
1237
+ updateLendingMarketIxsArgs.push({
1215
1238
  mode: UpdateLendingMarketMode.UpdatePriceRefreshTriggerToMaxAgePct.discriminator,
1216
1239
  value: updateMarketConfigEncodedValue(
1217
1240
  UpdateLendingMarketMode.UpdatePriceRefreshTriggerToMaxAgePct.discriminator,
@@ -1222,7 +1245,7 @@ const updateLendingMarketConfig = (
1222
1245
  break;
1223
1246
  case 'liquidationMaxDebtCloseFactorPct':
1224
1247
  if (market.liquidationMaxDebtCloseFactorPct !== newMarket.liquidationMaxDebtCloseFactorPct) {
1225
- updateLendingMarketIxnsArgs.push({
1248
+ updateLendingMarketIxsArgs.push({
1226
1249
  mode: UpdateLendingMarketMode.UpdateLiquidationCloseFactor.discriminator,
1227
1250
  value: updateMarketConfigEncodedValue(
1228
1251
  UpdateLendingMarketMode.UpdateLiquidationCloseFactor.discriminator,
@@ -1233,7 +1256,7 @@ const updateLendingMarketConfig = (
1233
1256
  break;
1234
1257
  case 'insolvencyRiskUnhealthyLtvPct':
1235
1258
  if (market.insolvencyRiskUnhealthyLtvPct !== newMarket.insolvencyRiskUnhealthyLtvPct) {
1236
- updateLendingMarketIxnsArgs.push({
1259
+ updateLendingMarketIxsArgs.push({
1237
1260
  mode: UpdateLendingMarketMode.UpdateInsolvencyRiskLtv.discriminator,
1238
1261
  value: updateMarketConfigEncodedValue(
1239
1262
  UpdateLendingMarketMode.UpdateInsolvencyRiskLtv.discriminator,
@@ -1244,7 +1267,7 @@ const updateLendingMarketConfig = (
1244
1267
  break;
1245
1268
  case 'minFullLiquidationValueThreshold':
1246
1269
  if (!market.minFullLiquidationValueThreshold.eq(newMarket.minFullLiquidationValueThreshold)) {
1247
- updateLendingMarketIxnsArgs.push({
1270
+ updateLendingMarketIxsArgs.push({
1248
1271
  mode: UpdateLendingMarketMode.UpdateMinFullLiquidationThreshold.discriminator,
1249
1272
  value: updateMarketConfigEncodedValue(
1250
1273
  UpdateLendingMarketMode.UpdateMinFullLiquidationThreshold.discriminator,
@@ -1255,7 +1278,7 @@ const updateLendingMarketConfig = (
1255
1278
  break;
1256
1279
  case 'maxLiquidatableDebtMarketValueAtOnce':
1257
1280
  if (!market.maxLiquidatableDebtMarketValueAtOnce.eq(newMarket.maxLiquidatableDebtMarketValueAtOnce)) {
1258
- updateLendingMarketIxnsArgs.push({
1281
+ updateLendingMarketIxsArgs.push({
1259
1282
  mode: UpdateLendingMarketMode.UpdateLiquidationMaxValue.discriminator,
1260
1283
  value: updateMarketConfigEncodedValue(
1261
1284
  UpdateLendingMarketMode.UpdateLiquidationMaxValue.discriminator,
@@ -1266,7 +1289,7 @@ const updateLendingMarketConfig = (
1266
1289
  break;
1267
1290
  case 'globalAllowedBorrowValue':
1268
1291
  if (!market.globalAllowedBorrowValue.eq(newMarket.globalAllowedBorrowValue)) {
1269
- updateLendingMarketIxnsArgs.push({
1292
+ updateLendingMarketIxsArgs.push({
1270
1293
  mode: UpdateLendingMarketMode.UpdateGlobalAllowedBorrow.discriminator,
1271
1294
  value: updateMarketConfigEncodedValue(
1272
1295
  UpdateLendingMarketMode.UpdateGlobalAllowedBorrow.discriminator,
@@ -1277,7 +1300,7 @@ const updateLendingMarketConfig = (
1277
1300
  break;
1278
1301
  case 'riskCouncil':
1279
1302
  if (!market.riskCouncil.equals(newMarket.riskCouncil)) {
1280
- updateLendingMarketIxnsArgs.push({
1303
+ updateLendingMarketIxsArgs.push({
1281
1304
  mode: UpdateLendingMarketMode.UpdateRiskCouncil.discriminator,
1282
1305
  value: updateMarketConfigEncodedValue(
1283
1306
  UpdateLendingMarketMode.UpdateRiskCouncil.discriminator,
@@ -1298,7 +1321,7 @@ const updateLendingMarketConfig = (
1298
1321
  market.elevationGroups[i].maxReservesAsCollateral !== newMarket.elevationGroups[i].maxReservesAsCollateral ||
1299
1322
  !market.elevationGroups[i].debtReserve.equals(newMarket.elevationGroups[i].debtReserve)
1300
1323
  ) {
1301
- updateLendingMarketIxnsArgs.push({
1324
+ updateLendingMarketIxsArgs.push({
1302
1325
  mode: UpdateLendingMarketMode.UpdateElevationGroup.discriminator,
1303
1326
  value: updateMarketConfigEncodedValue(
1304
1327
  UpdateLendingMarketMode.UpdateElevationGroup.discriminator,
@@ -1314,7 +1337,7 @@ const updateLendingMarketConfig = (
1314
1337
  break;
1315
1338
  case 'minNetValueInObligationSf':
1316
1339
  if (!market.minNetValueInObligationSf.eq(newMarket.minNetValueInObligationSf)) {
1317
- updateLendingMarketIxnsArgs.push({
1340
+ updateLendingMarketIxsArgs.push({
1318
1341
  mode: UpdateLendingMarketMode.UpdateMinNetValueObligationPostAction.discriminator,
1319
1342
  value: updateMarketConfigEncodedValue(
1320
1343
  UpdateLendingMarketMode.UpdateMinNetValueObligationPostAction.discriminator,
@@ -1325,7 +1348,7 @@ const updateLendingMarketConfig = (
1325
1348
  break;
1326
1349
  case 'minValueSkipLiquidationBfChecks':
1327
1350
  if (!market.minValueSkipLiquidationBfChecks.eq(newMarket.minValueSkipLiquidationBfChecks)) {
1328
- updateLendingMarketIxnsArgs.push({
1351
+ updateLendingMarketIxsArgs.push({
1329
1352
  mode: UpdateLendingMarketMode.UpdateMinValueBfSkipPriorityLiqCheck.discriminator,
1330
1353
  value: updateMarketConfigEncodedValue(
1331
1354
  UpdateLendingMarketMode.UpdateMinValueBfSkipPriorityLiqCheck.discriminator,
@@ -1336,7 +1359,7 @@ const updateLendingMarketConfig = (
1336
1359
  break;
1337
1360
  case 'minValueSkipLiquidationLtvChecks':
1338
1361
  if (!market.minValueSkipLiquidationLtvChecks.eq(newMarket.minValueSkipLiquidationLtvChecks)) {
1339
- updateLendingMarketIxnsArgs.push({
1362
+ updateLendingMarketIxsArgs.push({
1340
1363
  mode: UpdateLendingMarketMode.UpdateMinValueLtvSkipPriorityLiqCheck.discriminator,
1341
1364
  value: updateMarketConfigEncodedValue(
1342
1365
  UpdateLendingMarketMode.UpdateMinValueLtvSkipPriorityLiqCheck.discriminator,
@@ -1349,7 +1372,7 @@ const updateLendingMarketConfig = (
1349
1372
  if (
1350
1373
  market.individualAutodeleverageMarginCallPeriodSecs !== newMarket.individualAutodeleverageMarginCallPeriodSecs
1351
1374
  ) {
1352
- updateLendingMarketIxnsArgs.push({
1375
+ updateLendingMarketIxsArgs.push({
1353
1376
  mode: UpdateLendingMarketMode.UpdateIndividualAutodeleverageMarginCallPeriodSecs.discriminator,
1354
1377
  value: updateMarketConfigEncodedValue(
1355
1378
  UpdateLendingMarketMode.UpdateIndividualAutodeleverageMarginCallPeriodSecs.discriminator,
@@ -1360,7 +1383,7 @@ const updateLendingMarketConfig = (
1360
1383
  break;
1361
1384
  case 'name':
1362
1385
  if (!sameLengthArrayEquals(market.name, newMarket.name)) {
1363
- updateLendingMarketIxnsArgs.push({
1386
+ updateLendingMarketIxsArgs.push({
1364
1387
  mode: UpdateLendingMarketMode.UpdateName.discriminator,
1365
1388
  value: updateMarketConfigEncodedValue(UpdateLendingMarketMode.UpdateName.discriminator, newMarket.name),
1366
1389
  });
@@ -1368,7 +1391,7 @@ const updateLendingMarketConfig = (
1368
1391
  break;
1369
1392
  case 'minInitialDepositAmount':
1370
1393
  if (!market.minInitialDepositAmount.eq(newMarket.minInitialDepositAmount)) {
1371
- updateLendingMarketIxnsArgs.push({
1394
+ updateLendingMarketIxsArgs.push({
1372
1395
  mode: UpdateLendingMarketMode.UpdateInitialDepositAmount.discriminator,
1373
1396
  value: updateMarketConfigEncodedValue(
1374
1397
  UpdateLendingMarketMode.UpdateInitialDepositAmount.discriminator,
@@ -1379,7 +1402,7 @@ const updateLendingMarketConfig = (
1379
1402
  break;
1380
1403
  case 'obligationOrdersEnabled':
1381
1404
  if (market.obligationOrdersEnabled !== newMarket.obligationOrdersEnabled) {
1382
- updateLendingMarketIxnsArgs.push({
1405
+ updateLendingMarketIxsArgs.push({
1383
1406
  mode: UpdateLendingMarketMode.UpdateObligationOrdersEnabled.discriminator,
1384
1407
  value: updateMarketConfigEncodedValue(
1385
1408
  UpdateLendingMarketMode.UpdateObligationOrdersEnabled.discriminator,
@@ -1391,7 +1414,7 @@ const updateLendingMarketConfig = (
1391
1414
  default:
1392
1415
  assertNever(key);
1393
1416
  }
1394
- return updateLendingMarketIxnsArgs;
1417
+ return updateLendingMarketIxsArgs;
1395
1418
  };
1396
1419
 
1397
1420
  function parseForChangesMarketConfigAndGetIxs(
@@ -1400,19 +1423,19 @@ function parseForChangesMarketConfigAndGetIxs(
1400
1423
  programId: PublicKey
1401
1424
  ): TransactionInstruction[] {
1402
1425
  const market = marketWithAddress.state;
1403
- const updateLendingMarketIxnsArgs: { mode: number; value: Buffer }[] = [];
1426
+ const updateLendingMarketIxsArgs: { mode: number; value: Buffer }[] = [];
1404
1427
 
1405
1428
  for (const key in market.toJSON()) {
1406
1429
  if (isExcludedLendingMarketKey(key)) {
1407
1430
  continue;
1408
1431
  }
1409
- updateLendingMarketIxnsArgs.push(...updateLendingMarketConfig(key as LendingMarketKey, market, newMarket));
1432
+ updateLendingMarketIxsArgs.push(...updateLendingMarketConfig(key as LendingMarketKey, market, newMarket));
1410
1433
  }
1411
1434
 
1412
- const ixns: TransactionInstruction[] = [];
1435
+ const ixs: TransactionInstruction[] = [];
1413
1436
 
1414
- updateLendingMarketIxnsArgs.forEach((updateLendingMarketConfigArgs) => {
1415
- ixns.push(
1437
+ updateLendingMarketIxsArgs.forEach((updateLendingMarketConfigArgs) => {
1438
+ ixs.push(
1416
1439
  updateMarketConfigIx(
1417
1440
  marketWithAddress,
1418
1441
  updateLendingMarketConfigArgs.mode,
@@ -1422,7 +1445,7 @@ function parseForChangesMarketConfigAndGetIxs(
1422
1445
  );
1423
1446
  });
1424
1447
 
1425
- return ixns;
1448
+ return ixs;
1426
1449
  }
1427
1450
 
1428
1451
  function updateMarketConfigEncodedValue(
@@ -5,7 +5,7 @@ import { orThrow, roundNearest } from './utils';
5
5
  import Decimal from 'decimal.js';
6
6
  import BN from 'bn.js';
7
7
  import { KaminoObligation, Position } from './obligation';
8
- import { TokenAmount } from './types';
8
+ import { TokenAmount } from './shared';
9
9
  import { ONE_HUNDRED_PCT_IN_BPS } from '../utils';
10
10
  import { getSingleElement } from '../utils/validations';
11
11