@kamino-finance/klend-sdk 5.13.1 → 5.13.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/classes/action.d.ts +32 -31
- package/dist/classes/action.d.ts.map +1 -1
- package/dist/classes/action.js +126 -95
- package/dist/classes/action.js.map +1 -1
- package/dist/classes/index.d.ts +3 -2
- package/dist/classes/index.d.ts.map +1 -1
- package/dist/classes/index.js +3 -2
- package/dist/classes/index.js.map +1 -1
- package/dist/classes/manager.d.ts +7 -7
- package/dist/classes/manager.d.ts.map +1 -1
- package/dist/classes/manager.js +46 -46
- package/dist/classes/manager.js.map +1 -1
- package/dist/classes/obligationOrder.d.ts +1 -1
- package/dist/classes/obligationOrder.d.ts.map +1 -1
- package/dist/classes/reserve.d.ts +2 -2
- package/dist/classes/reserve.d.ts.map +1 -1
- package/dist/classes/reserve.js +70 -70
- package/dist/classes/reserve.js.map +1 -1
- package/dist/classes/shared.d.ts +13 -0
- package/dist/classes/shared.d.ts.map +1 -1
- package/dist/classes/utils.d.ts +1 -9
- package/dist/classes/utils.d.ts.map +1 -1
- package/dist/classes/utils.js +4 -51
- package/dist/classes/utils.js.map +1 -1
- package/dist/classes/vault.d.ts +5 -3
- package/dist/classes/vault.d.ts.map +1 -1
- package/dist/classes/vault.js +50 -41
- package/dist/classes/vault.js.map +1 -1
- package/dist/classes/{types.d.ts → vault_types.d.ts} +2 -15
- package/dist/classes/vault_types.d.ts.map +1 -0
- package/dist/classes/{types.js → vault_types.js} +1 -1
- package/dist/classes/vault_types.js.map +1 -0
- package/dist/client_kamino_manager.d.ts.map +1 -1
- package/dist/client_kamino_manager.js +25 -26
- package/dist/client_kamino_manager.js.map +1 -1
- package/dist/lending_operations/repay_with_collateral_operations.js +6 -6
- package/dist/lending_operations/repay_with_collateral_operations.js.map +1 -1
- package/dist/lending_operations/swap_collateral_operations.d.ts +6 -6
- package/dist/lending_operations/swap_collateral_operations.d.ts.map +1 -1
- package/dist/lending_operations/swap_collateral_operations.js +61 -61
- package/dist/lending_operations/swap_collateral_operations.js.map +1 -1
- package/dist/leverage/calcs.d.ts +0 -1
- package/dist/leverage/calcs.d.ts.map +1 -1
- package/dist/leverage/calcs.js +5 -8
- package/dist/leverage/calcs.js.map +1 -1
- package/dist/leverage/operations.d.ts +5 -5
- package/dist/leverage/operations.d.ts.map +1 -1
- package/dist/leverage/operations.js +73 -73
- package/dist/leverage/operations.js.map +1 -1
- package/dist/leverage/types.d.ts +1 -1
- package/dist/leverage/types.d.ts.map +1 -1
- package/dist/leverage/utils.d.ts +2 -2
- package/dist/leverage/utils.d.ts.map +1 -1
- package/dist/leverage/utils.js +5 -5
- package/dist/leverage/utils.js.map +1 -1
- package/dist/referrals/instructions.d.ts +3 -3
- package/dist/referrals/instructions.d.ts.map +1 -1
- package/dist/referrals/instructions.js +10 -10
- package/dist/referrals/instructions.js.map +1 -1
- package/dist/referrals/operations.js +6 -6
- package/dist/referrals/operations.js.map +1 -1
- package/dist/utils/ata.d.ts +3 -3
- package/dist/utils/ata.d.ts.map +1 -1
- package/dist/utils/ata.js +22 -22
- package/dist/utils/ata.js.map +1 -1
- package/dist/utils/instruction.d.ts +2 -2
- package/dist/utils/instruction.d.ts.map +1 -1
- package/dist/utils/instruction.js +12 -12
- package/dist/utils/instruction.js.map +1 -1
- package/dist/utils/lookupTable.js +6 -6
- package/dist/utils/lookupTable.js.map +1 -1
- package/dist/utils/userMetadata.d.ts +1 -1
- package/dist/utils/userMetadata.d.ts.map +1 -1
- package/dist/utils/userMetadata.js +3 -3
- package/dist/utils/userMetadata.js.map +1 -1
- package/package.json +1 -1
- package/src/classes/action.ts +143 -102
- package/src/classes/index.ts +5 -2
- package/src/classes/manager.ts +54 -51
- package/src/classes/obligationOrder.ts +1 -1
- package/src/classes/reserve.ts +126 -132
- package/src/classes/shared.ts +15 -0
- package/src/classes/utils.ts +3 -52
- package/src/classes/vault.ts +53 -42
- package/src/classes/{types.ts → vault_types.ts} +1 -16
- package/src/client.ts +16 -16
- package/src/client_kamino_manager.ts +25 -25
- package/src/lending_operations/repay_with_collateral_operations.ts +13 -13
- package/src/lending_operations/swap_collateral_operations.ts +85 -85
- package/src/leverage/calcs.ts +2 -6
- package/src/leverage/operations.ts +84 -84
- package/src/leverage/types.ts +1 -1
- package/src/leverage/utils.ts +5 -5
- package/src/referrals/instructions.ts +6 -6
- package/src/referrals/operations.ts +9 -9
- package/src/utils/ata.ts +18 -18
- package/src/utils/instruction.ts +10 -10
- package/src/utils/lookupTable.ts +6 -6
- package/src/utils/userMetadata.ts +1 -1
- package/dist/classes/types.d.ts.map +0 -1
- package/dist/classes/types.js.map +0 -1
- package/dist/classes/types_utils.d.ts +0 -14
- package/dist/classes/types_utils.d.ts.map +0 -1
- package/dist/classes/types_utils.js +0 -50
- package/dist/classes/types_utils.js.map +0 -1
- package/src/classes/types_utils.ts +0 -49
package/src/classes/index.ts
CHANGED
|
@@ -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 './
|
|
12
|
-
export * from './types';
|
|
15
|
+
export * from './vault_types';
|
package/src/classes/manager.ts
CHANGED
|
@@ -90,7 +90,7 @@ import {
|
|
|
90
90
|
UpdateVaultConfigIxs,
|
|
91
91
|
UserSharesForVault,
|
|
92
92
|
WithdrawIxs,
|
|
93
|
-
} from './
|
|
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
|
|
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
|
|
143
|
+
const createMarketIxs: TransactionInstruction[] = [];
|
|
146
144
|
|
|
147
|
-
|
|
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
|
-
|
|
167
|
+
createMarketIxs.push(initLendingMarket(args, accounts, this._kaminoLendProgramId));
|
|
170
168
|
|
|
171
|
-
return { market: marketAccount,
|
|
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
|
|
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;
|
|
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
|
|
212
|
-
|
|
213
|
-
|
|
209
|
+
const txnIxs: TransactionInstruction[][] = [];
|
|
210
|
+
txnIxs.push(createReserveInstructions);
|
|
211
|
+
txnIxs.push(updateReserveInstructions);
|
|
214
212
|
|
|
215
|
-
return { reserve: reserveAccount,
|
|
213
|
+
return { reserve: reserveAccount, txnIxs };
|
|
216
214
|
}
|
|
217
215
|
|
|
218
216
|
/**
|
|
@@ -325,7 +323,7 @@ export class KaminoManager {
|
|
|
325
323
|
* @param config - the new reserve configuration to be used for the update
|
|
326
324
|
* @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
325
|
* @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
|
|
326
|
+
* @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
327
|
*/
|
|
330
328
|
async updateReserveIxs(
|
|
331
329
|
marketWithAddress: MarketWithAddress,
|
|
@@ -337,12 +335,12 @@ export class KaminoManager {
|
|
|
337
335
|
const reserveState = reserveStateOverride
|
|
338
336
|
? reserveStateOverride
|
|
339
337
|
: (await Reserve.fetch(this._connection, reserve, this._kaminoLendProgramId))!;
|
|
340
|
-
const
|
|
338
|
+
const ixs: TransactionInstruction[] = [];
|
|
341
339
|
|
|
342
340
|
if (!reserveState || updateEntireConfig) {
|
|
343
|
-
|
|
341
|
+
ixs.push(updateEntireReserveConfigIx(marketWithAddress, reserve, config, this._kaminoLendProgramId));
|
|
344
342
|
} else {
|
|
345
|
-
|
|
343
|
+
ixs.push(
|
|
346
344
|
...parseForChangesReserveConfigAndGetIxs(
|
|
347
345
|
marketWithAddress,
|
|
348
346
|
reserveState,
|
|
@@ -353,7 +351,7 @@ export class KaminoManager {
|
|
|
353
351
|
);
|
|
354
352
|
}
|
|
355
353
|
|
|
356
|
-
return
|
|
354
|
+
return ixs;
|
|
357
355
|
}
|
|
358
356
|
|
|
359
357
|
/**
|
|
@@ -986,8 +984,13 @@ export class KaminoManager {
|
|
|
986
984
|
*
|
|
987
985
|
* @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
986
|
*/
|
|
989
|
-
async getVaultCollaterals(
|
|
990
|
-
|
|
987
|
+
async getVaultCollaterals(
|
|
988
|
+
vaultState: VaultState,
|
|
989
|
+
slot: number,
|
|
990
|
+
vaultReservesMap?: PubkeyHashMap<PublicKey, KaminoReserve>,
|
|
991
|
+
kaminoMarkets?: KaminoMarket[]
|
|
992
|
+
): Promise<PubkeyHashMap<PublicKey, MarketOverview>> {
|
|
993
|
+
return this._vaultClient.getVaultCollaterals(vaultState, slot, vaultReservesMap, kaminoMarkets);
|
|
991
994
|
}
|
|
992
995
|
|
|
993
996
|
/**
|
|
@@ -1140,11 +1143,11 @@ const updateLendingMarketConfig = (
|
|
|
1140
1143
|
market: LendingMarket,
|
|
1141
1144
|
newMarket: LendingMarket
|
|
1142
1145
|
): { mode: number; value: Buffer }[] => {
|
|
1143
|
-
const
|
|
1146
|
+
const updateLendingMarketIxsArgs: { mode: number; value: Buffer }[] = [];
|
|
1144
1147
|
switch (key) {
|
|
1145
1148
|
case 'lendingMarketOwner': {
|
|
1146
1149
|
if (!market.lendingMarketOwner.equals(newMarket.lendingMarketOwner)) {
|
|
1147
|
-
|
|
1150
|
+
updateLendingMarketIxsArgs.push({
|
|
1148
1151
|
mode: UpdateLendingMarketMode.UpdateOwner.discriminator,
|
|
1149
1152
|
value: updateMarketConfigEncodedValue(
|
|
1150
1153
|
UpdateLendingMarketMode.UpdateOwner.discriminator,
|
|
@@ -1156,7 +1159,7 @@ const updateLendingMarketConfig = (
|
|
|
1156
1159
|
}
|
|
1157
1160
|
case 'lendingMarketOwnerCached':
|
|
1158
1161
|
if (!market.lendingMarketOwnerCached.equals(newMarket.lendingMarketOwnerCached)) {
|
|
1159
|
-
|
|
1162
|
+
updateLendingMarketIxsArgs.push({
|
|
1160
1163
|
mode: UpdateLendingMarketMode.UpdateOwner.discriminator,
|
|
1161
1164
|
value: updateMarketConfigEncodedValue(
|
|
1162
1165
|
UpdateLendingMarketMode.UpdateOwner.discriminator,
|
|
@@ -1167,7 +1170,7 @@ const updateLendingMarketConfig = (
|
|
|
1167
1170
|
break;
|
|
1168
1171
|
case 'referralFeeBps':
|
|
1169
1172
|
if (market.referralFeeBps !== newMarket.referralFeeBps) {
|
|
1170
|
-
|
|
1173
|
+
updateLendingMarketIxsArgs.push({
|
|
1171
1174
|
mode: UpdateLendingMarketMode.UpdateReferralFeeBps.discriminator,
|
|
1172
1175
|
value: updateMarketConfigEncodedValue(
|
|
1173
1176
|
UpdateLendingMarketMode.UpdateReferralFeeBps.discriminator,
|
|
@@ -1178,7 +1181,7 @@ const updateLendingMarketConfig = (
|
|
|
1178
1181
|
break;
|
|
1179
1182
|
case 'emergencyMode':
|
|
1180
1183
|
if (market.emergencyMode !== newMarket.emergencyMode) {
|
|
1181
|
-
|
|
1184
|
+
updateLendingMarketIxsArgs.push({
|
|
1182
1185
|
mode: UpdateLendingMarketMode.UpdateEmergencyMode.discriminator,
|
|
1183
1186
|
value: updateMarketConfigEncodedValue(
|
|
1184
1187
|
UpdateLendingMarketMode.UpdateEmergencyMode.discriminator,
|
|
@@ -1189,7 +1192,7 @@ const updateLendingMarketConfig = (
|
|
|
1189
1192
|
break;
|
|
1190
1193
|
case 'autodeleverageEnabled':
|
|
1191
1194
|
if (market.autodeleverageEnabled !== newMarket.autodeleverageEnabled) {
|
|
1192
|
-
|
|
1195
|
+
updateLendingMarketIxsArgs.push({
|
|
1193
1196
|
mode: UpdateLendingMarketMode.UpdateAutodeleverageEnabled.discriminator,
|
|
1194
1197
|
value: updateMarketConfigEncodedValue(
|
|
1195
1198
|
UpdateLendingMarketMode.UpdateAutodeleverageEnabled.discriminator,
|
|
@@ -1200,7 +1203,7 @@ const updateLendingMarketConfig = (
|
|
|
1200
1203
|
break;
|
|
1201
1204
|
case 'borrowDisabled':
|
|
1202
1205
|
if (market.borrowDisabled !== newMarket.borrowDisabled) {
|
|
1203
|
-
|
|
1206
|
+
updateLendingMarketIxsArgs.push({
|
|
1204
1207
|
mode: UpdateLendingMarketMode.UpdateBorrowingDisabled.discriminator,
|
|
1205
1208
|
value: updateMarketConfigEncodedValue(
|
|
1206
1209
|
UpdateLendingMarketMode.UpdateBorrowingDisabled.discriminator,
|
|
@@ -1211,7 +1214,7 @@ const updateLendingMarketConfig = (
|
|
|
1211
1214
|
break;
|
|
1212
1215
|
case 'priceRefreshTriggerToMaxAgePct':
|
|
1213
1216
|
if (market.priceRefreshTriggerToMaxAgePct !== newMarket.priceRefreshTriggerToMaxAgePct) {
|
|
1214
|
-
|
|
1217
|
+
updateLendingMarketIxsArgs.push({
|
|
1215
1218
|
mode: UpdateLendingMarketMode.UpdatePriceRefreshTriggerToMaxAgePct.discriminator,
|
|
1216
1219
|
value: updateMarketConfigEncodedValue(
|
|
1217
1220
|
UpdateLendingMarketMode.UpdatePriceRefreshTriggerToMaxAgePct.discriminator,
|
|
@@ -1222,7 +1225,7 @@ const updateLendingMarketConfig = (
|
|
|
1222
1225
|
break;
|
|
1223
1226
|
case 'liquidationMaxDebtCloseFactorPct':
|
|
1224
1227
|
if (market.liquidationMaxDebtCloseFactorPct !== newMarket.liquidationMaxDebtCloseFactorPct) {
|
|
1225
|
-
|
|
1228
|
+
updateLendingMarketIxsArgs.push({
|
|
1226
1229
|
mode: UpdateLendingMarketMode.UpdateLiquidationCloseFactor.discriminator,
|
|
1227
1230
|
value: updateMarketConfigEncodedValue(
|
|
1228
1231
|
UpdateLendingMarketMode.UpdateLiquidationCloseFactor.discriminator,
|
|
@@ -1233,7 +1236,7 @@ const updateLendingMarketConfig = (
|
|
|
1233
1236
|
break;
|
|
1234
1237
|
case 'insolvencyRiskUnhealthyLtvPct':
|
|
1235
1238
|
if (market.insolvencyRiskUnhealthyLtvPct !== newMarket.insolvencyRiskUnhealthyLtvPct) {
|
|
1236
|
-
|
|
1239
|
+
updateLendingMarketIxsArgs.push({
|
|
1237
1240
|
mode: UpdateLendingMarketMode.UpdateInsolvencyRiskLtv.discriminator,
|
|
1238
1241
|
value: updateMarketConfigEncodedValue(
|
|
1239
1242
|
UpdateLendingMarketMode.UpdateInsolvencyRiskLtv.discriminator,
|
|
@@ -1244,7 +1247,7 @@ const updateLendingMarketConfig = (
|
|
|
1244
1247
|
break;
|
|
1245
1248
|
case 'minFullLiquidationValueThreshold':
|
|
1246
1249
|
if (!market.minFullLiquidationValueThreshold.eq(newMarket.minFullLiquidationValueThreshold)) {
|
|
1247
|
-
|
|
1250
|
+
updateLendingMarketIxsArgs.push({
|
|
1248
1251
|
mode: UpdateLendingMarketMode.UpdateMinFullLiquidationThreshold.discriminator,
|
|
1249
1252
|
value: updateMarketConfigEncodedValue(
|
|
1250
1253
|
UpdateLendingMarketMode.UpdateMinFullLiquidationThreshold.discriminator,
|
|
@@ -1255,7 +1258,7 @@ const updateLendingMarketConfig = (
|
|
|
1255
1258
|
break;
|
|
1256
1259
|
case 'maxLiquidatableDebtMarketValueAtOnce':
|
|
1257
1260
|
if (!market.maxLiquidatableDebtMarketValueAtOnce.eq(newMarket.maxLiquidatableDebtMarketValueAtOnce)) {
|
|
1258
|
-
|
|
1261
|
+
updateLendingMarketIxsArgs.push({
|
|
1259
1262
|
mode: UpdateLendingMarketMode.UpdateLiquidationMaxValue.discriminator,
|
|
1260
1263
|
value: updateMarketConfigEncodedValue(
|
|
1261
1264
|
UpdateLendingMarketMode.UpdateLiquidationMaxValue.discriminator,
|
|
@@ -1266,7 +1269,7 @@ const updateLendingMarketConfig = (
|
|
|
1266
1269
|
break;
|
|
1267
1270
|
case 'globalAllowedBorrowValue':
|
|
1268
1271
|
if (!market.globalAllowedBorrowValue.eq(newMarket.globalAllowedBorrowValue)) {
|
|
1269
|
-
|
|
1272
|
+
updateLendingMarketIxsArgs.push({
|
|
1270
1273
|
mode: UpdateLendingMarketMode.UpdateGlobalAllowedBorrow.discriminator,
|
|
1271
1274
|
value: updateMarketConfigEncodedValue(
|
|
1272
1275
|
UpdateLendingMarketMode.UpdateGlobalAllowedBorrow.discriminator,
|
|
@@ -1277,7 +1280,7 @@ const updateLendingMarketConfig = (
|
|
|
1277
1280
|
break;
|
|
1278
1281
|
case 'riskCouncil':
|
|
1279
1282
|
if (!market.riskCouncil.equals(newMarket.riskCouncil)) {
|
|
1280
|
-
|
|
1283
|
+
updateLendingMarketIxsArgs.push({
|
|
1281
1284
|
mode: UpdateLendingMarketMode.UpdateRiskCouncil.discriminator,
|
|
1282
1285
|
value: updateMarketConfigEncodedValue(
|
|
1283
1286
|
UpdateLendingMarketMode.UpdateRiskCouncil.discriminator,
|
|
@@ -1298,7 +1301,7 @@ const updateLendingMarketConfig = (
|
|
|
1298
1301
|
market.elevationGroups[i].maxReservesAsCollateral !== newMarket.elevationGroups[i].maxReservesAsCollateral ||
|
|
1299
1302
|
!market.elevationGroups[i].debtReserve.equals(newMarket.elevationGroups[i].debtReserve)
|
|
1300
1303
|
) {
|
|
1301
|
-
|
|
1304
|
+
updateLendingMarketIxsArgs.push({
|
|
1302
1305
|
mode: UpdateLendingMarketMode.UpdateElevationGroup.discriminator,
|
|
1303
1306
|
value: updateMarketConfigEncodedValue(
|
|
1304
1307
|
UpdateLendingMarketMode.UpdateElevationGroup.discriminator,
|
|
@@ -1314,7 +1317,7 @@ const updateLendingMarketConfig = (
|
|
|
1314
1317
|
break;
|
|
1315
1318
|
case 'minNetValueInObligationSf':
|
|
1316
1319
|
if (!market.minNetValueInObligationSf.eq(newMarket.minNetValueInObligationSf)) {
|
|
1317
|
-
|
|
1320
|
+
updateLendingMarketIxsArgs.push({
|
|
1318
1321
|
mode: UpdateLendingMarketMode.UpdateMinNetValueObligationPostAction.discriminator,
|
|
1319
1322
|
value: updateMarketConfigEncodedValue(
|
|
1320
1323
|
UpdateLendingMarketMode.UpdateMinNetValueObligationPostAction.discriminator,
|
|
@@ -1325,7 +1328,7 @@ const updateLendingMarketConfig = (
|
|
|
1325
1328
|
break;
|
|
1326
1329
|
case 'minValueSkipLiquidationBfChecks':
|
|
1327
1330
|
if (!market.minValueSkipLiquidationBfChecks.eq(newMarket.minValueSkipLiquidationBfChecks)) {
|
|
1328
|
-
|
|
1331
|
+
updateLendingMarketIxsArgs.push({
|
|
1329
1332
|
mode: UpdateLendingMarketMode.UpdateMinValueBfSkipPriorityLiqCheck.discriminator,
|
|
1330
1333
|
value: updateMarketConfigEncodedValue(
|
|
1331
1334
|
UpdateLendingMarketMode.UpdateMinValueBfSkipPriorityLiqCheck.discriminator,
|
|
@@ -1336,7 +1339,7 @@ const updateLendingMarketConfig = (
|
|
|
1336
1339
|
break;
|
|
1337
1340
|
case 'minValueSkipLiquidationLtvChecks':
|
|
1338
1341
|
if (!market.minValueSkipLiquidationLtvChecks.eq(newMarket.minValueSkipLiquidationLtvChecks)) {
|
|
1339
|
-
|
|
1342
|
+
updateLendingMarketIxsArgs.push({
|
|
1340
1343
|
mode: UpdateLendingMarketMode.UpdateMinValueLtvSkipPriorityLiqCheck.discriminator,
|
|
1341
1344
|
value: updateMarketConfigEncodedValue(
|
|
1342
1345
|
UpdateLendingMarketMode.UpdateMinValueLtvSkipPriorityLiqCheck.discriminator,
|
|
@@ -1349,7 +1352,7 @@ const updateLendingMarketConfig = (
|
|
|
1349
1352
|
if (
|
|
1350
1353
|
market.individualAutodeleverageMarginCallPeriodSecs !== newMarket.individualAutodeleverageMarginCallPeriodSecs
|
|
1351
1354
|
) {
|
|
1352
|
-
|
|
1355
|
+
updateLendingMarketIxsArgs.push({
|
|
1353
1356
|
mode: UpdateLendingMarketMode.UpdateIndividualAutodeleverageMarginCallPeriodSecs.discriminator,
|
|
1354
1357
|
value: updateMarketConfigEncodedValue(
|
|
1355
1358
|
UpdateLendingMarketMode.UpdateIndividualAutodeleverageMarginCallPeriodSecs.discriminator,
|
|
@@ -1360,7 +1363,7 @@ const updateLendingMarketConfig = (
|
|
|
1360
1363
|
break;
|
|
1361
1364
|
case 'name':
|
|
1362
1365
|
if (!sameLengthArrayEquals(market.name, newMarket.name)) {
|
|
1363
|
-
|
|
1366
|
+
updateLendingMarketIxsArgs.push({
|
|
1364
1367
|
mode: UpdateLendingMarketMode.UpdateName.discriminator,
|
|
1365
1368
|
value: updateMarketConfigEncodedValue(UpdateLendingMarketMode.UpdateName.discriminator, newMarket.name),
|
|
1366
1369
|
});
|
|
@@ -1368,7 +1371,7 @@ const updateLendingMarketConfig = (
|
|
|
1368
1371
|
break;
|
|
1369
1372
|
case 'minInitialDepositAmount':
|
|
1370
1373
|
if (!market.minInitialDepositAmount.eq(newMarket.minInitialDepositAmount)) {
|
|
1371
|
-
|
|
1374
|
+
updateLendingMarketIxsArgs.push({
|
|
1372
1375
|
mode: UpdateLendingMarketMode.UpdateInitialDepositAmount.discriminator,
|
|
1373
1376
|
value: updateMarketConfigEncodedValue(
|
|
1374
1377
|
UpdateLendingMarketMode.UpdateInitialDepositAmount.discriminator,
|
|
@@ -1379,7 +1382,7 @@ const updateLendingMarketConfig = (
|
|
|
1379
1382
|
break;
|
|
1380
1383
|
case 'obligationOrdersEnabled':
|
|
1381
1384
|
if (market.obligationOrdersEnabled !== newMarket.obligationOrdersEnabled) {
|
|
1382
|
-
|
|
1385
|
+
updateLendingMarketIxsArgs.push({
|
|
1383
1386
|
mode: UpdateLendingMarketMode.UpdateObligationOrdersEnabled.discriminator,
|
|
1384
1387
|
value: updateMarketConfigEncodedValue(
|
|
1385
1388
|
UpdateLendingMarketMode.UpdateObligationOrdersEnabled.discriminator,
|
|
@@ -1391,7 +1394,7 @@ const updateLendingMarketConfig = (
|
|
|
1391
1394
|
default:
|
|
1392
1395
|
assertNever(key);
|
|
1393
1396
|
}
|
|
1394
|
-
return
|
|
1397
|
+
return updateLendingMarketIxsArgs;
|
|
1395
1398
|
};
|
|
1396
1399
|
|
|
1397
1400
|
function parseForChangesMarketConfigAndGetIxs(
|
|
@@ -1400,19 +1403,19 @@ function parseForChangesMarketConfigAndGetIxs(
|
|
|
1400
1403
|
programId: PublicKey
|
|
1401
1404
|
): TransactionInstruction[] {
|
|
1402
1405
|
const market = marketWithAddress.state;
|
|
1403
|
-
const
|
|
1406
|
+
const updateLendingMarketIxsArgs: { mode: number; value: Buffer }[] = [];
|
|
1404
1407
|
|
|
1405
1408
|
for (const key in market.toJSON()) {
|
|
1406
1409
|
if (isExcludedLendingMarketKey(key)) {
|
|
1407
1410
|
continue;
|
|
1408
1411
|
}
|
|
1409
|
-
|
|
1412
|
+
updateLendingMarketIxsArgs.push(...updateLendingMarketConfig(key as LendingMarketKey, market, newMarket));
|
|
1410
1413
|
}
|
|
1411
1414
|
|
|
1412
|
-
const
|
|
1415
|
+
const ixs: TransactionInstruction[] = [];
|
|
1413
1416
|
|
|
1414
|
-
|
|
1415
|
-
|
|
1417
|
+
updateLendingMarketIxsArgs.forEach((updateLendingMarketConfigArgs) => {
|
|
1418
|
+
ixs.push(
|
|
1416
1419
|
updateMarketConfigIx(
|
|
1417
1420
|
marketWithAddress,
|
|
1418
1421
|
updateLendingMarketConfigArgs.mode,
|
|
@@ -1422,7 +1425,7 @@ function parseForChangesMarketConfigAndGetIxs(
|
|
|
1422
1425
|
);
|
|
1423
1426
|
});
|
|
1424
1427
|
|
|
1425
|
-
return
|
|
1428
|
+
return ixs;
|
|
1426
1429
|
}
|
|
1427
1430
|
|
|
1428
1431
|
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 './
|
|
8
|
+
import { TokenAmount } from './shared';
|
|
9
9
|
import { ONE_HUNDRED_PCT_IN_BPS } from '../utils';
|
|
10
10
|
import { getSingleElement } from '../utils/validations';
|
|
11
11
|
|