@kamino-finance/klend-sdk 5.11.12-beta.0 → 5.11.13
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/README_KAMINO_MANAGER.md +2 -2
- package/dist/classes/manager.d.ts +7 -0
- package/dist/classes/manager.d.ts.map +1 -1
- package/dist/classes/manager.js +9 -0
- package/dist/classes/manager.js.map +1 -1
- package/dist/classes/reserve.d.ts +1 -7
- package/dist/classes/reserve.d.ts.map +1 -1
- package/dist/classes/reserve.js +255 -145
- package/dist/classes/reserve.js.map +1 -1
- package/dist/classes/utils.d.ts +1 -1
- package/dist/classes/utils.d.ts.map +1 -1
- package/dist/classes/utils.js +2 -8
- package/dist/classes/utils.js.map +1 -1
- package/dist/classes/vault.d.ts +7 -0
- package/dist/classes/vault.d.ts.map +1 -1
- package/dist/classes/vault.js +21 -2
- package/dist/classes/vault.js.map +1 -1
- package/dist/client_kamino_manager.d.ts.map +1 -1
- package/dist/client_kamino_manager.js +130 -57
- package/dist/client_kamino_manager.js.map +1 -1
- package/dist/idl_codegen_kamino_vault/accounts/VaultState.d.ts +9 -6
- package/dist/idl_codegen_kamino_vault/accounts/VaultState.d.ts.map +1 -1
- package/dist/idl_codegen_kamino_vault/accounts/VaultState.js +19 -13
- package/dist/idl_codegen_kamino_vault/accounts/VaultState.js.map +1 -1
- package/dist/idl_codegen_kamino_vault/errors/custom.d.ts +9 -1
- package/dist/idl_codegen_kamino_vault/errors/custom.d.ts.map +1 -1
- package/dist/idl_codegen_kamino_vault/errors/custom.js +15 -1
- package/dist/idl_codegen_kamino_vault/errors/custom.js.map +1 -1
- package/dist/idl_codegen_kamino_vault/instructions/index.d.ts +2 -0
- package/dist/idl_codegen_kamino_vault/instructions/index.d.ts.map +1 -1
- package/dist/idl_codegen_kamino_vault/instructions/index.js +3 -1
- package/dist/idl_codegen_kamino_vault/instructions/index.js.map +1 -1
- package/dist/idl_codegen_kamino_vault/instructions/removeAllocation.d.ts +8 -0
- package/dist/idl_codegen_kamino_vault/instructions/removeAllocation.d.ts.map +1 -0
- package/dist/idl_codegen_kamino_vault/instructions/removeAllocation.js +17 -0
- package/dist/idl_codegen_kamino_vault/instructions/removeAllocation.js.map +1 -0
- package/dist/idl_codegen_kamino_vault/programId.d.ts.map +1 -1
- package/dist/idl_codegen_kamino_vault/programId.js +1 -1
- package/dist/idl_codegen_kamino_vault/programId.js.map +1 -1
- package/dist/lending_operations/repay_with_collateral_operations.d.ts +3 -1
- package/dist/lending_operations/repay_with_collateral_operations.d.ts.map +1 -1
- package/dist/lending_operations/repay_with_collateral_operations.js +13 -3
- package/dist/lending_operations/repay_with_collateral_operations.js.map +1 -1
- package/dist/lending_operations/swap_collateral_operations.d.ts.map +1 -1
- package/dist/lending_operations/swap_collateral_operations.js +4 -0
- package/dist/lending_operations/swap_collateral_operations.js.map +1 -1
- package/dist/leverage/operations.d.ts +5 -2
- package/dist/leverage/operations.d.ts.map +1 -1
- package/dist/leverage/operations.js +83 -44
- package/dist/leverage/operations.js.map +1 -1
- package/dist/leverage/types.d.ts +11 -0
- package/dist/leverage/types.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/classes/manager.ts +13 -0
- package/src/classes/reserve.ts +319 -177
- package/src/classes/utils.ts +3 -9
- package/src/classes/vault.ts +33 -2
- package/src/client_kamino_manager.ts +164 -57
- package/src/idl_codegen_kamino_vault/accounts/VaultState.ts +25 -17
- package/src/idl_codegen_kamino_vault/errors/custom.ts +17 -0
- package/src/idl_codegen_kamino_vault/instructions/index.ts +2 -0
- package/src/idl_codegen_kamino_vault/instructions/removeAllocation.ts +26 -0
- package/src/idl_codegen_kamino_vault/programId.ts +1 -2
- package/src/idl_kamino_vault.json +38 -3
- package/src/lending_operations/repay_with_collateral_operations.ts +22 -6
- package/src/lending_operations/swap_collateral_operations.ts +12 -1
- package/src/leverage/operations.ts +101 -55
- package/src/leverage/types.ts +13 -0
package/src/classes/reserve.ts
CHANGED
|
@@ -1184,14 +1184,13 @@ export function updateReserveConfigIx(
|
|
|
1184
1184
|
reserveAddress: PublicKey,
|
|
1185
1185
|
modeDiscriminator: number,
|
|
1186
1186
|
value: Uint8Array,
|
|
1187
|
-
programId: PublicKey
|
|
1188
|
-
skipValidation: boolean = false
|
|
1187
|
+
programId: PublicKey
|
|
1189
1188
|
): TransactionInstruction {
|
|
1190
1189
|
value;
|
|
1191
1190
|
const args: UpdateReserveConfigArgs = {
|
|
1192
1191
|
mode: new anchor.BN(modeDiscriminator),
|
|
1193
1192
|
value: value,
|
|
1194
|
-
skipValidation,
|
|
1193
|
+
skipValidation: false,
|
|
1195
1194
|
};
|
|
1196
1195
|
|
|
1197
1196
|
const accounts: UpdateReserveConfigAccounts = {
|
|
@@ -1222,15 +1221,21 @@ function handleConfigUpdate(
|
|
|
1222
1221
|
key: ReserveConfigKey,
|
|
1223
1222
|
reserve: Reserve | undefined,
|
|
1224
1223
|
reserveConfig: ReserveConfig,
|
|
1225
|
-
updateReserveIxnsArgs:
|
|
1224
|
+
updateReserveIxnsArgs: { mode: number; value: Uint8Array }[]
|
|
1226
1225
|
): void {
|
|
1227
|
-
// We add 1 to the discriminator, to account for the fact that the UpdateConfigMode
|
|
1228
|
-
// inside the SC starts incrementing from 1
|
|
1229
1226
|
switch (key) {
|
|
1230
1227
|
case 'status':
|
|
1231
|
-
if (reserve === undefined
|
|
1228
|
+
if (reserve === undefined) {
|
|
1232
1229
|
updateReserveIxnsArgs.push({
|
|
1233
|
-
mode: UpdateConfigMode.UpdateReserveStatus.discriminator
|
|
1230
|
+
mode: UpdateConfigMode.UpdateReserveStatus.discriminator,
|
|
1231
|
+
value: updateReserveConfigEncodedValue(
|
|
1232
|
+
UpdateConfigMode.UpdateReserveStatus.discriminator,
|
|
1233
|
+
reserveConfig.status
|
|
1234
|
+
),
|
|
1235
|
+
});
|
|
1236
|
+
} else if (reserve.config.status !== reserveConfig.status) {
|
|
1237
|
+
updateReserveIxnsArgs.push({
|
|
1238
|
+
mode: UpdateConfigMode.UpdateReserveStatus.discriminator,
|
|
1234
1239
|
value: updateReserveConfigEncodedValue(
|
|
1235
1240
|
UpdateConfigMode.UpdateReserveStatus.discriminator,
|
|
1236
1241
|
reserveConfig.status
|
|
@@ -1239,9 +1244,17 @@ function handleConfigUpdate(
|
|
|
1239
1244
|
}
|
|
1240
1245
|
break;
|
|
1241
1246
|
case 'assetTier':
|
|
1242
|
-
if (reserve === undefined
|
|
1247
|
+
if (reserve === undefined) {
|
|
1248
|
+
updateReserveIxnsArgs.push({
|
|
1249
|
+
mode: UpdateConfigMode.UpdateAssetTier.discriminator,
|
|
1250
|
+
value: updateReserveConfigEncodedValue(
|
|
1251
|
+
UpdateConfigMode.UpdateAssetTier.discriminator,
|
|
1252
|
+
reserveConfig.assetTier
|
|
1253
|
+
),
|
|
1254
|
+
});
|
|
1255
|
+
} else if (reserve.config.assetTier !== reserveConfig.assetTier) {
|
|
1243
1256
|
updateReserveIxnsArgs.push({
|
|
1244
|
-
mode: UpdateConfigMode.UpdateAssetTier.discriminator
|
|
1257
|
+
mode: UpdateConfigMode.UpdateAssetTier.discriminator,
|
|
1245
1258
|
value: updateReserveConfigEncodedValue(
|
|
1246
1259
|
UpdateConfigMode.UpdateAssetTier.discriminator,
|
|
1247
1260
|
reserveConfig.assetTier
|
|
@@ -1250,9 +1263,17 @@ function handleConfigUpdate(
|
|
|
1250
1263
|
}
|
|
1251
1264
|
break;
|
|
1252
1265
|
case 'hostFixedInterestRateBps':
|
|
1253
|
-
if (reserve === undefined
|
|
1266
|
+
if (reserve === undefined) {
|
|
1254
1267
|
updateReserveIxnsArgs.push({
|
|
1255
|
-
mode: UpdateConfigMode.UpdateHostFixedInterestRateBps.discriminator
|
|
1268
|
+
mode: UpdateConfigMode.UpdateHostFixedInterestRateBps.discriminator,
|
|
1269
|
+
value: updateReserveConfigEncodedValue(
|
|
1270
|
+
UpdateConfigMode.UpdateHostFixedInterestRateBps.discriminator,
|
|
1271
|
+
reserveConfig.hostFixedInterestRateBps
|
|
1272
|
+
),
|
|
1273
|
+
});
|
|
1274
|
+
} else if (reserve.config.hostFixedInterestRateBps !== reserveConfig.hostFixedInterestRateBps) {
|
|
1275
|
+
updateReserveIxnsArgs.push({
|
|
1276
|
+
mode: UpdateConfigMode.UpdateHostFixedInterestRateBps.discriminator,
|
|
1256
1277
|
value: updateReserveConfigEncodedValue(
|
|
1257
1278
|
UpdateConfigMode.UpdateHostFixedInterestRateBps.discriminator,
|
|
1258
1279
|
reserveConfig.hostFixedInterestRateBps
|
|
@@ -1261,9 +1282,17 @@ function handleConfigUpdate(
|
|
|
1261
1282
|
}
|
|
1262
1283
|
break;
|
|
1263
1284
|
case 'protocolTakeRatePct':
|
|
1264
|
-
if (reserve === undefined
|
|
1285
|
+
if (reserve === undefined) {
|
|
1286
|
+
updateReserveIxnsArgs.push({
|
|
1287
|
+
mode: UpdateConfigMode.UpdateProtocolTakeRate.discriminator,
|
|
1288
|
+
value: updateReserveConfigEncodedValue(
|
|
1289
|
+
UpdateConfigMode.UpdateProtocolTakeRate.discriminator,
|
|
1290
|
+
reserveConfig.protocolTakeRatePct
|
|
1291
|
+
),
|
|
1292
|
+
});
|
|
1293
|
+
} else if (reserve.config.protocolTakeRatePct !== reserveConfig.protocolTakeRatePct) {
|
|
1265
1294
|
updateReserveIxnsArgs.push({
|
|
1266
|
-
mode: UpdateConfigMode.UpdateProtocolTakeRate.discriminator
|
|
1295
|
+
mode: UpdateConfigMode.UpdateProtocolTakeRate.discriminator,
|
|
1267
1296
|
value: updateReserveConfigEncodedValue(
|
|
1268
1297
|
UpdateConfigMode.UpdateProtocolTakeRate.discriminator,
|
|
1269
1298
|
reserveConfig.protocolTakeRatePct
|
|
@@ -1272,12 +1301,17 @@ function handleConfigUpdate(
|
|
|
1272
1301
|
}
|
|
1273
1302
|
break;
|
|
1274
1303
|
case 'protocolLiquidationFeePct':
|
|
1275
|
-
if (
|
|
1276
|
-
reserve === undefined ||
|
|
1277
|
-
reserve.config.protocolLiquidationFeePct !== reserveConfig.protocolLiquidationFeePct
|
|
1278
|
-
) {
|
|
1304
|
+
if (reserve === undefined) {
|
|
1279
1305
|
updateReserveIxnsArgs.push({
|
|
1280
|
-
mode: UpdateConfigMode.UpdateProtocolLiquidationFee.discriminator
|
|
1306
|
+
mode: UpdateConfigMode.UpdateProtocolLiquidationFee.discriminator,
|
|
1307
|
+
value: updateReserveConfigEncodedValue(
|
|
1308
|
+
UpdateConfigMode.UpdateProtocolLiquidationFee.discriminator,
|
|
1309
|
+
reserveConfig.protocolLiquidationFeePct
|
|
1310
|
+
),
|
|
1311
|
+
});
|
|
1312
|
+
} else if (reserve.config.protocolLiquidationFeePct !== reserveConfig.protocolLiquidationFeePct) {
|
|
1313
|
+
updateReserveIxnsArgs.push({
|
|
1314
|
+
mode: UpdateConfigMode.UpdateProtocolLiquidationFee.discriminator,
|
|
1281
1315
|
value: updateReserveConfigEncodedValue(
|
|
1282
1316
|
UpdateConfigMode.UpdateProtocolLiquidationFee.discriminator,
|
|
1283
1317
|
reserveConfig.protocolLiquidationFeePct
|
|
@@ -1286,9 +1320,17 @@ function handleConfigUpdate(
|
|
|
1286
1320
|
}
|
|
1287
1321
|
break;
|
|
1288
1322
|
case 'loanToValuePct':
|
|
1289
|
-
if (reserve === undefined
|
|
1323
|
+
if (reserve === undefined) {
|
|
1290
1324
|
updateReserveIxnsArgs.push({
|
|
1291
|
-
mode: UpdateConfigMode.UpdateLoanToValuePct.discriminator
|
|
1325
|
+
mode: UpdateConfigMode.UpdateLoanToValuePct.discriminator,
|
|
1326
|
+
value: updateReserveConfigEncodedValue(
|
|
1327
|
+
UpdateConfigMode.UpdateLoanToValuePct.discriminator,
|
|
1328
|
+
reserveConfig.loanToValuePct
|
|
1329
|
+
),
|
|
1330
|
+
});
|
|
1331
|
+
} else if (reserve.config.loanToValuePct !== reserveConfig.loanToValuePct) {
|
|
1332
|
+
updateReserveIxnsArgs.push({
|
|
1333
|
+
mode: UpdateConfigMode.UpdateLoanToValuePct.discriminator,
|
|
1292
1334
|
value: updateReserveConfigEncodedValue(
|
|
1293
1335
|
UpdateConfigMode.UpdateLoanToValuePct.discriminator,
|
|
1294
1336
|
reserveConfig.loanToValuePct
|
|
@@ -1297,9 +1339,17 @@ function handleConfigUpdate(
|
|
|
1297
1339
|
}
|
|
1298
1340
|
break;
|
|
1299
1341
|
case 'liquidationThresholdPct':
|
|
1300
|
-
if (reserve === undefined
|
|
1342
|
+
if (reserve === undefined) {
|
|
1343
|
+
updateReserveIxnsArgs.push({
|
|
1344
|
+
mode: UpdateConfigMode.UpdateLiquidationThresholdPct.discriminator,
|
|
1345
|
+
value: updateReserveConfigEncodedValue(
|
|
1346
|
+
UpdateConfigMode.UpdateLiquidationThresholdPct.discriminator,
|
|
1347
|
+
reserveConfig.liquidationThresholdPct
|
|
1348
|
+
),
|
|
1349
|
+
});
|
|
1350
|
+
} else if (reserve.config.liquidationThresholdPct !== reserveConfig.liquidationThresholdPct) {
|
|
1301
1351
|
updateReserveIxnsArgs.push({
|
|
1302
|
-
mode: UpdateConfigMode.UpdateLiquidationThresholdPct.discriminator
|
|
1352
|
+
mode: UpdateConfigMode.UpdateLiquidationThresholdPct.discriminator,
|
|
1303
1353
|
value: updateReserveConfigEncodedValue(
|
|
1304
1354
|
UpdateConfigMode.UpdateLiquidationThresholdPct.discriminator,
|
|
1305
1355
|
reserveConfig.liquidationThresholdPct
|
|
@@ -1308,9 +1358,17 @@ function handleConfigUpdate(
|
|
|
1308
1358
|
}
|
|
1309
1359
|
break;
|
|
1310
1360
|
case 'minLiquidationBonusBps':
|
|
1311
|
-
if (reserve === undefined
|
|
1361
|
+
if (reserve === undefined) {
|
|
1362
|
+
updateReserveIxnsArgs.push({
|
|
1363
|
+
mode: UpdateConfigMode.UpdateMinLiquidationBonusBps.discriminator,
|
|
1364
|
+
value: updateReserveConfigEncodedValue(
|
|
1365
|
+
UpdateConfigMode.UpdateMinLiquidationBonusBps.discriminator,
|
|
1366
|
+
reserveConfig.minLiquidationBonusBps
|
|
1367
|
+
),
|
|
1368
|
+
});
|
|
1369
|
+
} else if (reserve.config.minLiquidationBonusBps !== reserveConfig.minLiquidationBonusBps) {
|
|
1312
1370
|
updateReserveIxnsArgs.push({
|
|
1313
|
-
mode: UpdateConfigMode.UpdateMinLiquidationBonusBps.discriminator
|
|
1371
|
+
mode: UpdateConfigMode.UpdateMinLiquidationBonusBps.discriminator,
|
|
1314
1372
|
value: updateReserveConfigEncodedValue(
|
|
1315
1373
|
UpdateConfigMode.UpdateMinLiquidationBonusBps.discriminator,
|
|
1316
1374
|
reserveConfig.minLiquidationBonusBps
|
|
@@ -1319,9 +1377,17 @@ function handleConfigUpdate(
|
|
|
1319
1377
|
}
|
|
1320
1378
|
break;
|
|
1321
1379
|
case 'maxLiquidationBonusBps':
|
|
1322
|
-
if (reserve === undefined
|
|
1380
|
+
if (reserve === undefined) {
|
|
1381
|
+
updateReserveIxnsArgs.push({
|
|
1382
|
+
mode: UpdateConfigMode.UpdateMaxLiquidationBonusBps.discriminator,
|
|
1383
|
+
value: updateReserveConfigEncodedValue(
|
|
1384
|
+
UpdateConfigMode.UpdateMaxLiquidationBonusBps.discriminator,
|
|
1385
|
+
reserveConfig.maxLiquidationBonusBps
|
|
1386
|
+
),
|
|
1387
|
+
});
|
|
1388
|
+
} else if (reserve.config.maxLiquidationBonusBps !== reserveConfig.maxLiquidationBonusBps) {
|
|
1323
1389
|
updateReserveIxnsArgs.push({
|
|
1324
|
-
mode: UpdateConfigMode.UpdateMaxLiquidationBonusBps.discriminator
|
|
1390
|
+
mode: UpdateConfigMode.UpdateMaxLiquidationBonusBps.discriminator,
|
|
1325
1391
|
value: updateReserveConfigEncodedValue(
|
|
1326
1392
|
UpdateConfigMode.UpdateMaxLiquidationBonusBps.discriminator,
|
|
1327
1393
|
reserveConfig.maxLiquidationBonusBps
|
|
@@ -1330,12 +1396,17 @@ function handleConfigUpdate(
|
|
|
1330
1396
|
}
|
|
1331
1397
|
break;
|
|
1332
1398
|
case 'badDebtLiquidationBonusBps':
|
|
1333
|
-
if (
|
|
1334
|
-
reserve === undefined ||
|
|
1335
|
-
reserve.config.badDebtLiquidationBonusBps !== reserveConfig.badDebtLiquidationBonusBps
|
|
1336
|
-
) {
|
|
1399
|
+
if (reserve === undefined) {
|
|
1337
1400
|
updateReserveIxnsArgs.push({
|
|
1338
|
-
mode: UpdateConfigMode.UpdateBadDebtLiquidationBonusBps.discriminator
|
|
1401
|
+
mode: UpdateConfigMode.UpdateBadDebtLiquidationBonusBps.discriminator,
|
|
1402
|
+
value: updateReserveConfigEncodedValue(
|
|
1403
|
+
UpdateConfigMode.UpdateBadDebtLiquidationBonusBps.discriminator,
|
|
1404
|
+
reserveConfig.badDebtLiquidationBonusBps
|
|
1405
|
+
),
|
|
1406
|
+
});
|
|
1407
|
+
} else if (reserve.config.badDebtLiquidationBonusBps !== reserveConfig.badDebtLiquidationBonusBps) {
|
|
1408
|
+
updateReserveIxnsArgs.push({
|
|
1409
|
+
mode: UpdateConfigMode.UpdateBadDebtLiquidationBonusBps.discriminator,
|
|
1339
1410
|
value: updateReserveConfigEncodedValue(
|
|
1340
1411
|
UpdateConfigMode.UpdateBadDebtLiquidationBonusBps.discriminator,
|
|
1341
1412
|
reserveConfig.badDebtLiquidationBonusBps
|
|
@@ -1344,12 +1415,17 @@ function handleConfigUpdate(
|
|
|
1344
1415
|
}
|
|
1345
1416
|
break;
|
|
1346
1417
|
case 'deleveragingMarginCallPeriodSecs':
|
|
1347
|
-
if (
|
|
1348
|
-
|
|
1349
|
-
|
|
1350
|
-
|
|
1418
|
+
if (reserve === undefined) {
|
|
1419
|
+
updateReserveIxnsArgs.push({
|
|
1420
|
+
mode: UpdateConfigMode.UpdateDeleveragingMarginCallPeriod.discriminator,
|
|
1421
|
+
value: updateReserveConfigEncodedValue(
|
|
1422
|
+
UpdateConfigMode.UpdateDeleveragingMarginCallPeriod.discriminator,
|
|
1423
|
+
reserveConfig.deleveragingMarginCallPeriodSecs.toNumber()
|
|
1424
|
+
),
|
|
1425
|
+
});
|
|
1426
|
+
} else if (!reserve.config.deleveragingMarginCallPeriodSecs.eq(reserveConfig.deleveragingMarginCallPeriodSecs)) {
|
|
1351
1427
|
updateReserveIxnsArgs.push({
|
|
1352
|
-
mode: UpdateConfigMode.UpdateDeleveragingMarginCallPeriod.discriminator
|
|
1428
|
+
mode: UpdateConfigMode.UpdateDeleveragingMarginCallPeriod.discriminator,
|
|
1353
1429
|
value: updateReserveConfigEncodedValue(
|
|
1354
1430
|
UpdateConfigMode.UpdateDeleveragingMarginCallPeriod.discriminator,
|
|
1355
1431
|
reserveConfig.deleveragingMarginCallPeriodSecs.toNumber()
|
|
@@ -1358,12 +1434,19 @@ function handleConfigUpdate(
|
|
|
1358
1434
|
}
|
|
1359
1435
|
break;
|
|
1360
1436
|
case 'deleveragingThresholdDecreaseBpsPerDay':
|
|
1361
|
-
if (
|
|
1362
|
-
|
|
1437
|
+
if (reserve === undefined) {
|
|
1438
|
+
updateReserveIxnsArgs.push({
|
|
1439
|
+
mode: UpdateConfigMode.UpdateDeleveragingThresholdDecreaseBpsPerDay.discriminator,
|
|
1440
|
+
value: updateReserveConfigEncodedValue(
|
|
1441
|
+
UpdateConfigMode.UpdateDeleveragingThresholdDecreaseBpsPerDay.discriminator,
|
|
1442
|
+
reserveConfig.deleveragingThresholdDecreaseBpsPerDay.toNumber()
|
|
1443
|
+
),
|
|
1444
|
+
});
|
|
1445
|
+
} else if (
|
|
1363
1446
|
!reserve.config.deleveragingThresholdDecreaseBpsPerDay.eq(reserveConfig.deleveragingThresholdDecreaseBpsPerDay)
|
|
1364
1447
|
) {
|
|
1365
1448
|
updateReserveIxnsArgs.push({
|
|
1366
|
-
mode: UpdateConfigMode.UpdateDeleveragingThresholdDecreaseBpsPerDay.discriminator
|
|
1449
|
+
mode: UpdateConfigMode.UpdateDeleveragingThresholdDecreaseBpsPerDay.discriminator,
|
|
1367
1450
|
value: updateReserveConfigEncodedValue(
|
|
1368
1451
|
UpdateConfigMode.UpdateDeleveragingThresholdDecreaseBpsPerDay.discriminator,
|
|
1369
1452
|
reserveConfig.deleveragingThresholdDecreaseBpsPerDay.toNumber()
|
|
@@ -1372,35 +1455,46 @@ function handleConfigUpdate(
|
|
|
1372
1455
|
}
|
|
1373
1456
|
break;
|
|
1374
1457
|
case 'fees':
|
|
1375
|
-
if (reserve === undefined
|
|
1458
|
+
if (reserve === undefined) {
|
|
1376
1459
|
updateReserveIxnsArgs.push({
|
|
1377
|
-
mode: UpdateConfigMode.UpdateFeesBorrowFee.discriminator
|
|
1460
|
+
mode: UpdateConfigMode.UpdateFeesBorrowFee.discriminator,
|
|
1378
1461
|
value: updateReserveConfigEncodedValue(
|
|
1379
1462
|
UpdateConfigMode.UpdateFeesBorrowFee.discriminator,
|
|
1380
1463
|
reserveConfig.fees.borrowFeeSf.toNumber()
|
|
1381
1464
|
),
|
|
1382
1465
|
});
|
|
1383
|
-
}
|
|
1384
|
-
|
|
1385
|
-
if (reserve === undefined || !reserve.config.fees.flashLoanFeeSf.eq(reserveConfig.fees.flashLoanFeeSf)) {
|
|
1386
1466
|
updateReserveIxnsArgs.push({
|
|
1387
|
-
mode: UpdateConfigMode.UpdateFeesFlashLoanFee.discriminator
|
|
1467
|
+
mode: UpdateConfigMode.UpdateFeesFlashLoanFee.discriminator,
|
|
1468
|
+
value: updateReserveConfigEncodedValue(
|
|
1469
|
+
UpdateConfigMode.UpdateFeesFlashLoanFee.discriminator,
|
|
1470
|
+
reserveConfig.fees.flashLoanFeeSf.toNumber()
|
|
1471
|
+
),
|
|
1472
|
+
});
|
|
1473
|
+
} else if (!reserve.config.fees.borrowFeeSf.eq(reserveConfig.fees.borrowFeeSf)) {
|
|
1474
|
+
updateReserveIxnsArgs.push({
|
|
1475
|
+
mode: UpdateConfigMode.UpdateFeesBorrowFee.discriminator,
|
|
1476
|
+
value: updateReserveConfigEncodedValue(
|
|
1477
|
+
UpdateConfigMode.UpdateFeesBorrowFee.discriminator,
|
|
1478
|
+
reserveConfig.fees.borrowFeeSf.toNumber()
|
|
1479
|
+
),
|
|
1480
|
+
});
|
|
1481
|
+
} else if (!reserve.config.fees.flashLoanFeeSf.eq(reserveConfig.fees.flashLoanFeeSf)) {
|
|
1482
|
+
updateReserveIxnsArgs.push({
|
|
1483
|
+
mode: UpdateConfigMode.UpdateFeesFlashLoanFee.discriminator,
|
|
1388
1484
|
value: updateReserveConfigEncodedValue(
|
|
1389
1485
|
UpdateConfigMode.UpdateFeesFlashLoanFee.discriminator,
|
|
1390
1486
|
reserveConfig.fees.flashLoanFeeSf.toNumber()
|
|
1391
1487
|
),
|
|
1392
1488
|
});
|
|
1393
1489
|
}
|
|
1394
|
-
|
|
1395
1490
|
break;
|
|
1396
1491
|
case 'borrowRateCurve':
|
|
1397
1492
|
if (reserve === undefined) {
|
|
1398
1493
|
updateReserveIxnsArgs.push({
|
|
1399
|
-
mode: UpdateBorrowRateCurve.discriminator
|
|
1494
|
+
mode: UpdateBorrowRateCurve.discriminator,
|
|
1400
1495
|
value: updateReserveConfigEncodedValue(UpdateBorrowRateCurve.discriminator, reserveConfig.borrowRateCurve),
|
|
1401
1496
|
});
|
|
1402
1497
|
} else {
|
|
1403
|
-
let shouldBorrowCurveBeUpdated = false;
|
|
1404
1498
|
for (let i = 0; i < reserveConfig.borrowRateCurve.points.length; i++) {
|
|
1405
1499
|
if (
|
|
1406
1500
|
reserve.config.borrowRateCurve.points[i].utilizationRateBps !==
|
|
@@ -1408,24 +1502,30 @@ function handleConfigUpdate(
|
|
|
1408
1502
|
reserve.config.borrowRateCurve.points[i].borrowRateBps !==
|
|
1409
1503
|
reserveConfig.borrowRateCurve.points[i].borrowRateBps
|
|
1410
1504
|
) {
|
|
1411
|
-
|
|
1505
|
+
updateReserveIxnsArgs.push({
|
|
1506
|
+
mode: UpdateBorrowRateCurve.discriminator,
|
|
1507
|
+
value: updateReserveConfigEncodedValue(
|
|
1508
|
+
UpdateBorrowRateCurve.discriminator,
|
|
1509
|
+
reserveConfig.borrowRateCurve
|
|
1510
|
+
),
|
|
1511
|
+
});
|
|
1412
1512
|
break;
|
|
1413
1513
|
}
|
|
1414
1514
|
}
|
|
1415
|
-
|
|
1416
|
-
if (shouldBorrowCurveBeUpdated) {
|
|
1417
|
-
updateReserveIxnsArgs.push({
|
|
1418
|
-
mode: UpdateBorrowRateCurve.discriminator + 1,
|
|
1419
|
-
value: updateReserveConfigEncodedValue(UpdateBorrowRateCurve.discriminator, reserveConfig.borrowRateCurve),
|
|
1420
|
-
});
|
|
1421
|
-
break;
|
|
1422
|
-
}
|
|
1423
1515
|
}
|
|
1424
1516
|
break;
|
|
1425
1517
|
case 'borrowFactorPct':
|
|
1426
|
-
if (reserve === undefined
|
|
1518
|
+
if (reserve === undefined) {
|
|
1519
|
+
updateReserveIxnsArgs.push({
|
|
1520
|
+
mode: UpdateConfigMode.UpdateBorrowFactor.discriminator,
|
|
1521
|
+
value: updateReserveConfigEncodedValue(
|
|
1522
|
+
UpdateConfigMode.UpdateBorrowFactor.discriminator,
|
|
1523
|
+
reserveConfig.borrowFactorPct.toNumber()
|
|
1524
|
+
),
|
|
1525
|
+
});
|
|
1526
|
+
} else if (!reserve.config.borrowFactorPct.eq(reserveConfig.borrowFactorPct)) {
|
|
1427
1527
|
updateReserveIxnsArgs.push({
|
|
1428
|
-
mode: UpdateConfigMode.UpdateBorrowFactor.discriminator
|
|
1528
|
+
mode: UpdateConfigMode.UpdateBorrowFactor.discriminator,
|
|
1429
1529
|
value: updateReserveConfigEncodedValue(
|
|
1430
1530
|
UpdateConfigMode.UpdateBorrowFactor.discriminator,
|
|
1431
1531
|
reserveConfig.borrowFactorPct.toNumber()
|
|
@@ -1434,9 +1534,17 @@ function handleConfigUpdate(
|
|
|
1434
1534
|
}
|
|
1435
1535
|
break;
|
|
1436
1536
|
case 'depositLimit':
|
|
1437
|
-
if (reserve === undefined
|
|
1537
|
+
if (reserve === undefined) {
|
|
1538
|
+
updateReserveIxnsArgs.push({
|
|
1539
|
+
mode: UpdateConfigMode.UpdateDepositLimit.discriminator,
|
|
1540
|
+
value: updateReserveConfigEncodedValue(
|
|
1541
|
+
UpdateConfigMode.UpdateDepositLimit.discriminator,
|
|
1542
|
+
BigInt(reserveConfig.depositLimit.toString())
|
|
1543
|
+
),
|
|
1544
|
+
});
|
|
1545
|
+
} else if (!reserve.config.depositLimit.eq(reserveConfig.depositLimit)) {
|
|
1438
1546
|
updateReserveIxnsArgs.push({
|
|
1439
|
-
mode: UpdateConfigMode.UpdateDepositLimit.discriminator
|
|
1547
|
+
mode: UpdateConfigMode.UpdateDepositLimit.discriminator,
|
|
1440
1548
|
value: updateReserveConfigEncodedValue(
|
|
1441
1549
|
UpdateConfigMode.UpdateDepositLimit.discriminator,
|
|
1442
1550
|
BigInt(reserveConfig.depositLimit.toString())
|
|
@@ -1445,9 +1553,17 @@ function handleConfigUpdate(
|
|
|
1445
1553
|
}
|
|
1446
1554
|
break;
|
|
1447
1555
|
case 'borrowLimit':
|
|
1448
|
-
if (reserve === undefined
|
|
1556
|
+
if (reserve === undefined) {
|
|
1557
|
+
updateReserveIxnsArgs.push({
|
|
1558
|
+
mode: UpdateConfigMode.UpdateBorrowLimit.discriminator,
|
|
1559
|
+
value: updateReserveConfigEncodedValue(
|
|
1560
|
+
UpdateConfigMode.UpdateBorrowLimit.discriminator,
|
|
1561
|
+
BigInt(reserveConfig.borrowLimit.toString())
|
|
1562
|
+
),
|
|
1563
|
+
});
|
|
1564
|
+
} else if (!reserve.config.borrowLimit.eq(reserveConfig.borrowLimit)) {
|
|
1449
1565
|
updateReserveIxnsArgs.push({
|
|
1450
|
-
mode: UpdateConfigMode.UpdateBorrowLimit.discriminator
|
|
1566
|
+
mode: UpdateConfigMode.UpdateBorrowLimit.discriminator,
|
|
1451
1567
|
value: updateReserveConfigEncodedValue(
|
|
1452
1568
|
UpdateConfigMode.UpdateBorrowLimit.discriminator,
|
|
1453
1569
|
BigInt(reserveConfig.borrowLimit.toString())
|
|
@@ -1459,88 +1575,88 @@ function handleConfigUpdate(
|
|
|
1459
1575
|
const tokenInfo = reserveConfig.tokenInfo;
|
|
1460
1576
|
if (reserve === undefined) {
|
|
1461
1577
|
updateReserveIxnsArgs.push({
|
|
1462
|
-
mode: UpdateConfigMode.UpdateTokenInfoName.discriminator
|
|
1578
|
+
mode: UpdateConfigMode.UpdateTokenInfoName.discriminator,
|
|
1463
1579
|
value: updateReserveConfigEncodedValue(UpdateConfigMode.UpdateTokenInfoName.discriminator, tokenInfo.name),
|
|
1464
1580
|
});
|
|
1465
1581
|
updateReserveIxnsArgs.push({
|
|
1466
|
-
mode: UpdateConfigMode.UpdateTokenInfoLowerHeuristic.discriminator
|
|
1582
|
+
mode: UpdateConfigMode.UpdateTokenInfoLowerHeuristic.discriminator,
|
|
1467
1583
|
value: updateReserveConfigEncodedValue(
|
|
1468
1584
|
UpdateConfigMode.UpdateTokenInfoLowerHeuristic.discriminator,
|
|
1469
1585
|
tokenInfo.heuristic.lower.toNumber()
|
|
1470
1586
|
),
|
|
1471
1587
|
});
|
|
1472
1588
|
updateReserveIxnsArgs.push({
|
|
1473
|
-
mode: UpdateConfigMode.UpdateTokenInfoUpperHeuristic.discriminator
|
|
1589
|
+
mode: UpdateConfigMode.UpdateTokenInfoUpperHeuristic.discriminator,
|
|
1474
1590
|
value: updateReserveConfigEncodedValue(
|
|
1475
1591
|
UpdateConfigMode.UpdateTokenInfoUpperHeuristic.discriminator,
|
|
1476
1592
|
tokenInfo.heuristic.upper.toNumber()
|
|
1477
1593
|
),
|
|
1478
1594
|
});
|
|
1479
1595
|
updateReserveIxnsArgs.push({
|
|
1480
|
-
mode: UpdateConfigMode.UpdateTokenInfoExpHeuristic.discriminator
|
|
1596
|
+
mode: UpdateConfigMode.UpdateTokenInfoExpHeuristic.discriminator,
|
|
1481
1597
|
value: updateReserveConfigEncodedValue(
|
|
1482
1598
|
UpdateConfigMode.UpdateTokenInfoExpHeuristic.discriminator,
|
|
1483
1599
|
tokenInfo.heuristic.exp.toNumber()
|
|
1484
1600
|
),
|
|
1485
1601
|
});
|
|
1486
1602
|
updateReserveIxnsArgs.push({
|
|
1487
|
-
mode: UpdateConfigMode.UpdateTokenInfoTwapDivergence.discriminator
|
|
1603
|
+
mode: UpdateConfigMode.UpdateTokenInfoTwapDivergence.discriminator,
|
|
1488
1604
|
value: updateReserveConfigEncodedValue(
|
|
1489
1605
|
UpdateConfigMode.UpdateTokenInfoTwapDivergence.discriminator,
|
|
1490
1606
|
tokenInfo.maxTwapDivergenceBps.toNumber()
|
|
1491
1607
|
),
|
|
1492
1608
|
});
|
|
1493
1609
|
updateReserveIxnsArgs.push({
|
|
1494
|
-
mode: UpdateConfigMode.UpdateTokenInfoPriceMaxAge.discriminator
|
|
1610
|
+
mode: UpdateConfigMode.UpdateTokenInfoPriceMaxAge.discriminator,
|
|
1495
1611
|
value: updateReserveConfigEncodedValue(
|
|
1496
1612
|
UpdateConfigMode.UpdateTokenInfoPriceMaxAge.discriminator,
|
|
1497
1613
|
tokenInfo.maxAgePriceSeconds.toNumber()
|
|
1498
1614
|
),
|
|
1499
1615
|
});
|
|
1500
1616
|
updateReserveIxnsArgs.push({
|
|
1501
|
-
mode: UpdateConfigMode.UpdateTokenInfoTwapMaxAge.discriminator
|
|
1617
|
+
mode: UpdateConfigMode.UpdateTokenInfoTwapMaxAge.discriminator,
|
|
1502
1618
|
value: updateReserveConfigEncodedValue(
|
|
1503
1619
|
UpdateConfigMode.UpdateTokenInfoTwapMaxAge.discriminator,
|
|
1504
1620
|
tokenInfo.maxAgeTwapSeconds.toNumber()
|
|
1505
1621
|
),
|
|
1506
1622
|
});
|
|
1507
1623
|
updateReserveIxnsArgs.push({
|
|
1508
|
-
mode: UpdateConfigMode.UpdateTokenInfoScopeChain.discriminator
|
|
1624
|
+
mode: UpdateConfigMode.UpdateTokenInfoScopeChain.discriminator,
|
|
1509
1625
|
value: updateReserveConfigEncodedValue(
|
|
1510
1626
|
UpdateConfigMode.UpdateTokenInfoScopeChain.discriminator,
|
|
1511
1627
|
tokenInfo.scopeConfiguration.priceChain
|
|
1512
1628
|
),
|
|
1513
1629
|
});
|
|
1514
1630
|
updateReserveIxnsArgs.push({
|
|
1515
|
-
mode: UpdateConfigMode.UpdateTokenInfoScopeTwap.discriminator
|
|
1631
|
+
mode: UpdateConfigMode.UpdateTokenInfoScopeTwap.discriminator,
|
|
1516
1632
|
value: updateReserveConfigEncodedValue(
|
|
1517
1633
|
UpdateConfigMode.UpdateTokenInfoScopeTwap.discriminator,
|
|
1518
1634
|
tokenInfo.scopeConfiguration.twapChain
|
|
1519
1635
|
),
|
|
1520
1636
|
});
|
|
1521
1637
|
updateReserveIxnsArgs.push({
|
|
1522
|
-
mode: UpdateConfigMode.UpdateSwitchboardFeed.discriminator
|
|
1638
|
+
mode: UpdateConfigMode.UpdateSwitchboardFeed.discriminator,
|
|
1523
1639
|
value: updateReserveConfigEncodedValue(
|
|
1524
1640
|
UpdateConfigMode.UpdateSwitchboardFeed.discriminator,
|
|
1525
1641
|
tokenInfo.switchboardConfiguration.priceAggregator
|
|
1526
1642
|
),
|
|
1527
1643
|
});
|
|
1528
1644
|
updateReserveIxnsArgs.push({
|
|
1529
|
-
mode: UpdateConfigMode.UpdateSwitchboardTwapFeed.discriminator
|
|
1645
|
+
mode: UpdateConfigMode.UpdateSwitchboardTwapFeed.discriminator,
|
|
1530
1646
|
value: updateReserveConfigEncodedValue(
|
|
1531
1647
|
UpdateConfigMode.UpdateSwitchboardTwapFeed.discriminator,
|
|
1532
1648
|
tokenInfo.switchboardConfiguration.twapAggregator
|
|
1533
1649
|
),
|
|
1534
1650
|
});
|
|
1535
1651
|
updateReserveIxnsArgs.push({
|
|
1536
|
-
mode: UpdateConfigMode.UpdatePythPrice.discriminator
|
|
1652
|
+
mode: UpdateConfigMode.UpdatePythPrice.discriminator,
|
|
1537
1653
|
value: updateReserveConfigEncodedValue(
|
|
1538
1654
|
UpdateConfigMode.UpdatePythPrice.discriminator,
|
|
1539
1655
|
tokenInfo.pythConfiguration.price
|
|
1540
1656
|
),
|
|
1541
1657
|
});
|
|
1542
1658
|
updateReserveIxnsArgs.push({
|
|
1543
|
-
mode: UpdateConfigMode.UpdateBlockPriceUsage.discriminator
|
|
1659
|
+
mode: UpdateConfigMode.UpdateBlockPriceUsage.discriminator,
|
|
1544
1660
|
value: updateReserveConfigEncodedValue(
|
|
1545
1661
|
UpdateConfigMode.UpdateBlockPriceUsage.discriminator,
|
|
1546
1662
|
tokenInfo.blockPriceUsage
|
|
@@ -1549,13 +1665,13 @@ function handleConfigUpdate(
|
|
|
1549
1665
|
} else {
|
|
1550
1666
|
if (!sameLengthArrayEquals(reserve.config.tokenInfo.name, tokenInfo.name)) {
|
|
1551
1667
|
updateReserveIxnsArgs.push({
|
|
1552
|
-
mode: UpdateConfigMode.UpdateTokenInfoName.discriminator
|
|
1668
|
+
mode: UpdateConfigMode.UpdateTokenInfoName.discriminator,
|
|
1553
1669
|
value: updateReserveConfigEncodedValue(UpdateConfigMode.UpdateTokenInfoName.discriminator, tokenInfo.name),
|
|
1554
1670
|
});
|
|
1555
1671
|
}
|
|
1556
1672
|
if (!reserve.config.tokenInfo.heuristic.lower.eq(tokenInfo.heuristic.lower)) {
|
|
1557
1673
|
updateReserveIxnsArgs.push({
|
|
1558
|
-
mode: UpdateConfigMode.UpdateTokenInfoLowerHeuristic.discriminator
|
|
1674
|
+
mode: UpdateConfigMode.UpdateTokenInfoLowerHeuristic.discriminator,
|
|
1559
1675
|
value: updateReserveConfigEncodedValue(
|
|
1560
1676
|
UpdateConfigMode.UpdateTokenInfoLowerHeuristic.discriminator,
|
|
1561
1677
|
tokenInfo.heuristic.lower.toNumber()
|
|
@@ -1564,7 +1680,7 @@ function handleConfigUpdate(
|
|
|
1564
1680
|
}
|
|
1565
1681
|
if (!reserve.config.tokenInfo.heuristic.upper.eq(tokenInfo.heuristic.upper)) {
|
|
1566
1682
|
updateReserveIxnsArgs.push({
|
|
1567
|
-
mode: UpdateConfigMode.UpdateTokenInfoUpperHeuristic.discriminator
|
|
1683
|
+
mode: UpdateConfigMode.UpdateTokenInfoUpperHeuristic.discriminator,
|
|
1568
1684
|
value: updateReserveConfigEncodedValue(
|
|
1569
1685
|
UpdateConfigMode.UpdateTokenInfoUpperHeuristic.discriminator,
|
|
1570
1686
|
tokenInfo.heuristic.upper.toNumber()
|
|
@@ -1573,7 +1689,7 @@ function handleConfigUpdate(
|
|
|
1573
1689
|
}
|
|
1574
1690
|
if (!reserve.config.tokenInfo.heuristic.exp.eq(tokenInfo.heuristic.exp)) {
|
|
1575
1691
|
updateReserveIxnsArgs.push({
|
|
1576
|
-
mode: UpdateConfigMode.UpdateTokenInfoExpHeuristic.discriminator
|
|
1692
|
+
mode: UpdateConfigMode.UpdateTokenInfoExpHeuristic.discriminator,
|
|
1577
1693
|
value: updateReserveConfigEncodedValue(
|
|
1578
1694
|
UpdateConfigMode.UpdateTokenInfoExpHeuristic.discriminator,
|
|
1579
1695
|
tokenInfo.heuristic.exp.toNumber()
|
|
@@ -1582,7 +1698,7 @@ function handleConfigUpdate(
|
|
|
1582
1698
|
}
|
|
1583
1699
|
if (!reserve.config.tokenInfo.maxTwapDivergenceBps.eq(tokenInfo.maxTwapDivergenceBps)) {
|
|
1584
1700
|
updateReserveIxnsArgs.push({
|
|
1585
|
-
mode: UpdateConfigMode.UpdateTokenInfoTwapDivergence.discriminator
|
|
1701
|
+
mode: UpdateConfigMode.UpdateTokenInfoTwapDivergence.discriminator,
|
|
1586
1702
|
value: updateReserveConfigEncodedValue(
|
|
1587
1703
|
UpdateConfigMode.UpdateTokenInfoTwapDivergence.discriminator,
|
|
1588
1704
|
tokenInfo.maxTwapDivergenceBps.toNumber()
|
|
@@ -1591,7 +1707,7 @@ function handleConfigUpdate(
|
|
|
1591
1707
|
}
|
|
1592
1708
|
if (!reserve.config.tokenInfo.maxAgePriceSeconds.eq(tokenInfo.maxAgePriceSeconds)) {
|
|
1593
1709
|
updateReserveIxnsArgs.push({
|
|
1594
|
-
mode: UpdateConfigMode.UpdateTokenInfoPriceMaxAge.discriminator
|
|
1710
|
+
mode: UpdateConfigMode.UpdateTokenInfoPriceMaxAge.discriminator,
|
|
1595
1711
|
value: updateReserveConfigEncodedValue(
|
|
1596
1712
|
UpdateConfigMode.UpdateTokenInfoPriceMaxAge.discriminator,
|
|
1597
1713
|
tokenInfo.maxAgePriceSeconds.toNumber()
|
|
@@ -1600,7 +1716,7 @@ function handleConfigUpdate(
|
|
|
1600
1716
|
}
|
|
1601
1717
|
if (!reserve.config.tokenInfo.maxAgeTwapSeconds.eq(tokenInfo.maxAgeTwapSeconds)) {
|
|
1602
1718
|
updateReserveIxnsArgs.push({
|
|
1603
|
-
mode: UpdateConfigMode.UpdateTokenInfoTwapMaxAge.discriminator
|
|
1719
|
+
mode: UpdateConfigMode.UpdateTokenInfoTwapMaxAge.discriminator,
|
|
1604
1720
|
value: updateReserveConfigEncodedValue(
|
|
1605
1721
|
UpdateConfigMode.UpdateTokenInfoTwapMaxAge.discriminator,
|
|
1606
1722
|
tokenInfo.maxAgeTwapSeconds.toNumber()
|
|
@@ -1614,7 +1730,7 @@ function handleConfigUpdate(
|
|
|
1614
1730
|
)
|
|
1615
1731
|
) {
|
|
1616
1732
|
updateReserveIxnsArgs.push({
|
|
1617
|
-
mode: UpdateConfigMode.UpdateTokenInfoScopeChain.discriminator
|
|
1733
|
+
mode: UpdateConfigMode.UpdateTokenInfoScopeChain.discriminator,
|
|
1618
1734
|
value: updateReserveConfigEncodedValue(
|
|
1619
1735
|
UpdateConfigMode.UpdateTokenInfoScopeChain.discriminator,
|
|
1620
1736
|
tokenInfo.scopeConfiguration.priceChain
|
|
@@ -1628,7 +1744,7 @@ function handleConfigUpdate(
|
|
|
1628
1744
|
)
|
|
1629
1745
|
) {
|
|
1630
1746
|
updateReserveIxnsArgs.push({
|
|
1631
|
-
mode: UpdateConfigMode.UpdateTokenInfoScopeTwap.discriminator
|
|
1747
|
+
mode: UpdateConfigMode.UpdateTokenInfoScopeTwap.discriminator,
|
|
1632
1748
|
value: updateReserveConfigEncodedValue(
|
|
1633
1749
|
UpdateConfigMode.UpdateTokenInfoScopeTwap.discriminator,
|
|
1634
1750
|
tokenInfo.scopeConfiguration.twapChain
|
|
@@ -1641,7 +1757,7 @@ function handleConfigUpdate(
|
|
|
1641
1757
|
)
|
|
1642
1758
|
) {
|
|
1643
1759
|
updateReserveIxnsArgs.push({
|
|
1644
|
-
mode: UpdateConfigMode.UpdateSwitchboardFeed.discriminator
|
|
1760
|
+
mode: UpdateConfigMode.UpdateSwitchboardFeed.discriminator,
|
|
1645
1761
|
value: updateReserveConfigEncodedValue(
|
|
1646
1762
|
UpdateConfigMode.UpdateSwitchboardFeed.discriminator,
|
|
1647
1763
|
tokenInfo.switchboardConfiguration.priceAggregator
|
|
@@ -1654,7 +1770,7 @@ function handleConfigUpdate(
|
|
|
1654
1770
|
)
|
|
1655
1771
|
) {
|
|
1656
1772
|
updateReserveIxnsArgs.push({
|
|
1657
|
-
mode: UpdateConfigMode.UpdateSwitchboardTwapFeed.discriminator
|
|
1773
|
+
mode: UpdateConfigMode.UpdateSwitchboardTwapFeed.discriminator,
|
|
1658
1774
|
value: updateReserveConfigEncodedValue(
|
|
1659
1775
|
UpdateConfigMode.UpdateSwitchboardTwapFeed.discriminator,
|
|
1660
1776
|
tokenInfo.switchboardConfiguration.twapAggregator
|
|
@@ -1663,7 +1779,7 @@ function handleConfigUpdate(
|
|
|
1663
1779
|
}
|
|
1664
1780
|
if (!reserve.config.tokenInfo.pythConfiguration.price.equals(tokenInfo.pythConfiguration.price)) {
|
|
1665
1781
|
updateReserveIxnsArgs.push({
|
|
1666
|
-
mode: UpdateConfigMode.UpdatePythPrice.discriminator
|
|
1782
|
+
mode: UpdateConfigMode.UpdatePythPrice.discriminator,
|
|
1667
1783
|
value: updateReserveConfigEncodedValue(
|
|
1668
1784
|
UpdateConfigMode.UpdatePythPrice.discriminator,
|
|
1669
1785
|
tokenInfo.pythConfiguration.price
|
|
@@ -1672,7 +1788,7 @@ function handleConfigUpdate(
|
|
|
1672
1788
|
}
|
|
1673
1789
|
if (reserve.config.tokenInfo.blockPriceUsage !== tokenInfo.blockPriceUsage) {
|
|
1674
1790
|
updateReserveIxnsArgs.push({
|
|
1675
|
-
mode: UpdateConfigMode.UpdateBlockPriceUsage.discriminator
|
|
1791
|
+
mode: UpdateConfigMode.UpdateBlockPriceUsage.discriminator,
|
|
1676
1792
|
value: updateReserveConfigEncodedValue(
|
|
1677
1793
|
UpdateConfigMode.UpdateBlockPriceUsage.discriminator,
|
|
1678
1794
|
tokenInfo.blockPriceUsage
|
|
@@ -1681,7 +1797,7 @@ function handleConfigUpdate(
|
|
|
1681
1797
|
}
|
|
1682
1798
|
if (!reserve.config.tokenInfo.scopeConfiguration.priceFeed.equals(tokenInfo.scopeConfiguration.priceFeed)) {
|
|
1683
1799
|
updateReserveIxnsArgs.push({
|
|
1684
|
-
mode: UpdateConfigMode.UpdateScopePriceFeed.discriminator
|
|
1800
|
+
mode: UpdateConfigMode.UpdateScopePriceFeed.discriminator,
|
|
1685
1801
|
value: updateReserveConfigEncodedValue(
|
|
1686
1802
|
UpdateConfigMode.UpdateScopePriceFeed.discriminator,
|
|
1687
1803
|
tokenInfo.scopeConfiguration.priceFeed
|
|
@@ -1693,12 +1809,19 @@ function handleConfigUpdate(
|
|
|
1693
1809
|
case 'depositWithdrawalCap':
|
|
1694
1810
|
if (reserve === undefined) {
|
|
1695
1811
|
updateReserveIxnsArgs.push({
|
|
1696
|
-
mode: UpdateConfigMode.UpdateDepositWithdrawalCap.discriminator
|
|
1812
|
+
mode: UpdateConfigMode.UpdateDepositWithdrawalCap.discriminator,
|
|
1697
1813
|
value: updateReserveConfigEncodedValue(UpdateConfigMode.UpdateDepositWithdrawalCap.discriminator, [
|
|
1698
1814
|
reserveConfig.depositWithdrawalCap.configCapacity.toNumber(),
|
|
1699
1815
|
reserveConfig.depositWithdrawalCap.configIntervalLengthSeconds.toNumber(),
|
|
1700
1816
|
]),
|
|
1701
1817
|
});
|
|
1818
|
+
updateReserveIxnsArgs.push({
|
|
1819
|
+
mode: UpdateConfigMode.UpdateDepositWithdrawalCapCurrentTotal.discriminator,
|
|
1820
|
+
value: updateReserveConfigEncodedValue(
|
|
1821
|
+
UpdateConfigMode.UpdateDepositWithdrawalCap.discriminator,
|
|
1822
|
+
reserveConfig.depositWithdrawalCap.currentTotal.toNumber()
|
|
1823
|
+
),
|
|
1824
|
+
});
|
|
1702
1825
|
} else if (
|
|
1703
1826
|
!reserve.config.depositWithdrawalCap.configCapacity.eq(reserveConfig.depositWithdrawalCap.configCapacity) ||
|
|
1704
1827
|
!reserve.config.depositWithdrawalCap.configIntervalLengthSeconds.eq(
|
|
@@ -1706,7 +1829,7 @@ function handleConfigUpdate(
|
|
|
1706
1829
|
)
|
|
1707
1830
|
) {
|
|
1708
1831
|
updateReserveIxnsArgs.push({
|
|
1709
|
-
mode: UpdateConfigMode.UpdateDepositWithdrawalCap.discriminator
|
|
1832
|
+
mode: UpdateConfigMode.UpdateDepositWithdrawalCap.discriminator,
|
|
1710
1833
|
value: updateReserveConfigEncodedValue(UpdateConfigMode.UpdateDepositWithdrawalCap.discriminator, [
|
|
1711
1834
|
reserveConfig.depositWithdrawalCap.configCapacity.toNumber(),
|
|
1712
1835
|
reserveConfig.depositWithdrawalCap.configIntervalLengthSeconds.toNumber(),
|
|
@@ -1716,7 +1839,7 @@ function handleConfigUpdate(
|
|
|
1716
1839
|
!reserve.config.depositWithdrawalCap.currentTotal.eq(reserveConfig.depositWithdrawalCap.currentTotal)
|
|
1717
1840
|
) {
|
|
1718
1841
|
updateReserveIxnsArgs.push({
|
|
1719
|
-
mode: UpdateConfigMode.UpdateDepositWithdrawalCapCurrentTotal.discriminator
|
|
1842
|
+
mode: UpdateConfigMode.UpdateDepositWithdrawalCapCurrentTotal.discriminator,
|
|
1720
1843
|
value: updateReserveConfigEncodedValue(
|
|
1721
1844
|
UpdateConfigMode.UpdateDepositWithdrawalCap.discriminator,
|
|
1722
1845
|
reserveConfig.depositWithdrawalCap.currentTotal.toNumber()
|
|
@@ -1727,12 +1850,19 @@ function handleConfigUpdate(
|
|
|
1727
1850
|
case 'debtWithdrawalCap':
|
|
1728
1851
|
if (reserve === undefined) {
|
|
1729
1852
|
updateReserveIxnsArgs.push({
|
|
1730
|
-
mode: UpdateConfigMode.UpdateDebtWithdrawalCap.discriminator
|
|
1853
|
+
mode: UpdateConfigMode.UpdateDebtWithdrawalCap.discriminator,
|
|
1731
1854
|
value: updateReserveConfigEncodedValue(UpdateConfigMode.UpdateDebtWithdrawalCap.discriminator, [
|
|
1732
1855
|
reserveConfig.debtWithdrawalCap.configCapacity.toNumber(),
|
|
1733
1856
|
reserveConfig.debtWithdrawalCap.configIntervalLengthSeconds.toNumber(),
|
|
1734
1857
|
]),
|
|
1735
1858
|
});
|
|
1859
|
+
updateReserveIxnsArgs.push({
|
|
1860
|
+
mode: UpdateConfigMode.UpdateDebtWithdrawalCapCurrentTotal.discriminator,
|
|
1861
|
+
value: updateReserveConfigEncodedValue(
|
|
1862
|
+
UpdateConfigMode.UpdateDebtWithdrawalCap.discriminator,
|
|
1863
|
+
reserveConfig.debtWithdrawalCap.currentTotal.toNumber()
|
|
1864
|
+
),
|
|
1865
|
+
});
|
|
1736
1866
|
} else if (
|
|
1737
1867
|
!reserve.config.debtWithdrawalCap.configCapacity.eq(reserveConfig.debtWithdrawalCap.configCapacity) ||
|
|
1738
1868
|
!reserve.config.debtWithdrawalCap.configIntervalLengthSeconds.eq(
|
|
@@ -1740,7 +1870,7 @@ function handleConfigUpdate(
|
|
|
1740
1870
|
)
|
|
1741
1871
|
) {
|
|
1742
1872
|
updateReserveIxnsArgs.push({
|
|
1743
|
-
mode: UpdateConfigMode.UpdateDebtWithdrawalCap.discriminator
|
|
1873
|
+
mode: UpdateConfigMode.UpdateDebtWithdrawalCap.discriminator,
|
|
1744
1874
|
value: updateReserveConfigEncodedValue(UpdateConfigMode.UpdateDebtWithdrawalCap.discriminator, [
|
|
1745
1875
|
reserveConfig.debtWithdrawalCap.configCapacity.toNumber(),
|
|
1746
1876
|
reserveConfig.debtWithdrawalCap.configIntervalLengthSeconds.toNumber(),
|
|
@@ -1748,7 +1878,7 @@ function handleConfigUpdate(
|
|
|
1748
1878
|
});
|
|
1749
1879
|
} else if (!reserve.config.debtWithdrawalCap.currentTotal.eq(reserveConfig.debtWithdrawalCap.currentTotal)) {
|
|
1750
1880
|
updateReserveIxnsArgs.push({
|
|
1751
|
-
mode: UpdateConfigMode.UpdateDebtWithdrawalCapCurrentTotal.discriminator
|
|
1881
|
+
mode: UpdateConfigMode.UpdateDebtWithdrawalCapCurrentTotal.discriminator,
|
|
1752
1882
|
value: updateReserveConfigEncodedValue(
|
|
1753
1883
|
UpdateConfigMode.UpdateDebtWithdrawalCap.discriminator,
|
|
1754
1884
|
reserveConfig.debtWithdrawalCap.currentTotal.toNumber()
|
|
@@ -1757,26 +1887,41 @@ function handleConfigUpdate(
|
|
|
1757
1887
|
}
|
|
1758
1888
|
break;
|
|
1759
1889
|
case 'elevationGroups':
|
|
1760
|
-
if (
|
|
1761
|
-
reserve === undefined ||
|
|
1762
|
-
!sameLengthArrayEquals(reserve.config.elevationGroups, reserveConfig.elevationGroups)
|
|
1763
|
-
) {
|
|
1890
|
+
if (reserve === undefined) {
|
|
1764
1891
|
updateReserveIxnsArgs.push({
|
|
1765
|
-
mode: UpdateConfigMode.UpdateElevationGroup.discriminator
|
|
1892
|
+
mode: UpdateConfigMode.UpdateElevationGroup.discriminator,
|
|
1766
1893
|
value: updateReserveConfigEncodedValue(
|
|
1767
1894
|
UpdateConfigMode.UpdateElevationGroup.discriminator,
|
|
1768
1895
|
reserveConfig.elevationGroups
|
|
1769
1896
|
),
|
|
1770
1897
|
});
|
|
1898
|
+
} else {
|
|
1899
|
+
for (let i = 0; i < reserveConfig.elevationGroups.length; i++) {
|
|
1900
|
+
if (reserve.config.elevationGroups[i] !== reserveConfig.elevationGroups[i]) {
|
|
1901
|
+
updateReserveIxnsArgs.push({
|
|
1902
|
+
mode: UpdateConfigMode.UpdateElevationGroup.discriminator,
|
|
1903
|
+
value: updateReserveConfigEncodedValue(
|
|
1904
|
+
UpdateConfigMode.UpdateElevationGroup.discriminator,
|
|
1905
|
+
reserveConfig.elevationGroups
|
|
1906
|
+
),
|
|
1907
|
+
});
|
|
1908
|
+
break;
|
|
1909
|
+
}
|
|
1910
|
+
}
|
|
1771
1911
|
}
|
|
1772
1912
|
break;
|
|
1773
1913
|
case 'disableUsageAsCollOutsideEmode':
|
|
1774
|
-
if (
|
|
1775
|
-
reserve === undefined ||
|
|
1776
|
-
reserve.config.disableUsageAsCollOutsideEmode !== reserveConfig.disableUsageAsCollOutsideEmode
|
|
1777
|
-
) {
|
|
1914
|
+
if (reserve === undefined) {
|
|
1778
1915
|
updateReserveIxnsArgs.push({
|
|
1779
|
-
mode: UpdateConfigMode.UpdateDisableUsageAsCollateralOutsideEmode.discriminator
|
|
1916
|
+
mode: UpdateConfigMode.UpdateDisableUsageAsCollateralOutsideEmode.discriminator,
|
|
1917
|
+
value: updateReserveConfigEncodedValue(
|
|
1918
|
+
UpdateConfigMode.UpdateDisableUsageAsCollateralOutsideEmode.discriminator,
|
|
1919
|
+
reserveConfig.disableUsageAsCollOutsideEmode
|
|
1920
|
+
),
|
|
1921
|
+
});
|
|
1922
|
+
} else if (reserve.config.disableUsageAsCollOutsideEmode !== reserveConfig.disableUsageAsCollOutsideEmode) {
|
|
1923
|
+
updateReserveIxnsArgs.push({
|
|
1924
|
+
mode: UpdateConfigMode.UpdateDisableUsageAsCollateralOutsideEmode.discriminator,
|
|
1780
1925
|
value: updateReserveConfigEncodedValue(
|
|
1781
1926
|
UpdateConfigMode.UpdateDisableUsageAsCollateralOutsideEmode.discriminator,
|
|
1782
1927
|
reserveConfig.disableUsageAsCollOutsideEmode
|
|
@@ -1785,12 +1930,19 @@ function handleConfigUpdate(
|
|
|
1785
1930
|
}
|
|
1786
1931
|
break;
|
|
1787
1932
|
case 'utilizationLimitBlockBorrowingAbovePct':
|
|
1788
|
-
if (
|
|
1789
|
-
|
|
1933
|
+
if (reserve === undefined) {
|
|
1934
|
+
updateReserveIxnsArgs.push({
|
|
1935
|
+
mode: UpdateConfigMode.UpdateBlockBorrowingAboveUtilizationPct.discriminator,
|
|
1936
|
+
value: updateReserveConfigEncodedValue(
|
|
1937
|
+
UpdateConfigMode.UpdateBlockBorrowingAboveUtilizationPct.discriminator,
|
|
1938
|
+
reserveConfig.utilizationLimitBlockBorrowingAbovePct
|
|
1939
|
+
),
|
|
1940
|
+
});
|
|
1941
|
+
} else if (
|
|
1790
1942
|
reserve.config.utilizationLimitBlockBorrowingAbovePct !== reserveConfig.utilizationLimitBlockBorrowingAbovePct
|
|
1791
1943
|
) {
|
|
1792
1944
|
updateReserveIxnsArgs.push({
|
|
1793
|
-
mode: UpdateConfigMode.UpdateBlockBorrowingAboveUtilizationPct.discriminator
|
|
1945
|
+
mode: UpdateConfigMode.UpdateBlockBorrowingAboveUtilizationPct.discriminator,
|
|
1794
1946
|
value: updateReserveConfigEncodedValue(
|
|
1795
1947
|
UpdateConfigMode.UpdateBlockBorrowingAboveUtilizationPct.discriminator,
|
|
1796
1948
|
reserveConfig.utilizationLimitBlockBorrowingAbovePct
|
|
@@ -1799,9 +1951,17 @@ function handleConfigUpdate(
|
|
|
1799
1951
|
}
|
|
1800
1952
|
break;
|
|
1801
1953
|
case 'autodeleverageEnabled':
|
|
1802
|
-
if (reserve === undefined
|
|
1954
|
+
if (reserve === undefined) {
|
|
1955
|
+
updateReserveIxnsArgs.push({
|
|
1956
|
+
mode: UpdateConfigMode.UpdateAutodeleverageEnabled.discriminator,
|
|
1957
|
+
value: updateReserveConfigEncodedValue(
|
|
1958
|
+
UpdateConfigMode.UpdateAutodeleverageEnabled.discriminator,
|
|
1959
|
+
reserveConfig.autodeleverageEnabled
|
|
1960
|
+
),
|
|
1961
|
+
});
|
|
1962
|
+
} else if (reserve.config.autodeleverageEnabled !== reserveConfig.autodeleverageEnabled) {
|
|
1803
1963
|
updateReserveIxnsArgs.push({
|
|
1804
|
-
mode: UpdateConfigMode.UpdateAutodeleverageEnabled.discriminator
|
|
1964
|
+
mode: UpdateConfigMode.UpdateAutodeleverageEnabled.discriminator,
|
|
1805
1965
|
value: updateReserveConfigEncodedValue(
|
|
1806
1966
|
UpdateConfigMode.UpdateAutodeleverageEnabled.discriminator,
|
|
1807
1967
|
reserveConfig.autodeleverageEnabled
|
|
@@ -1810,44 +1970,67 @@ function handleConfigUpdate(
|
|
|
1810
1970
|
}
|
|
1811
1971
|
break;
|
|
1812
1972
|
case 'borrowLimitOutsideElevationGroup':
|
|
1813
|
-
if (
|
|
1814
|
-
reserve === undefined ||
|
|
1815
|
-
!reserve.config.borrowLimitOutsideElevationGroup.eq(reserveConfig.borrowLimitOutsideElevationGroup)
|
|
1816
|
-
) {
|
|
1973
|
+
if (reserve === undefined) {
|
|
1817
1974
|
updateReserveIxnsArgs.push({
|
|
1818
|
-
mode: UpdateConfigMode.UpdateBorrowLimitOutsideElevationGroup.discriminator
|
|
1975
|
+
mode: UpdateConfigMode.UpdateBorrowLimitOutsideElevationGroup.discriminator,
|
|
1819
1976
|
value: updateReserveConfigEncodedValue(
|
|
1820
1977
|
UpdateConfigMode.UpdateBorrowLimitOutsideElevationGroup.discriminator,
|
|
1821
1978
|
reserveConfig.borrowLimitOutsideElevationGroup.toNumber()
|
|
1822
1979
|
),
|
|
1823
1980
|
});
|
|
1981
|
+
} else if (!reserve.config.borrowLimitOutsideElevationGroup.eq(reserveConfig.borrowLimitOutsideElevationGroup)) {
|
|
1982
|
+
updateReserveIxnsArgs.push({
|
|
1983
|
+
mode: UpdateConfigMode.UpdateBorrowLimitOutsideElevationGroup.discriminator,
|
|
1984
|
+
value: updateReserveConfigEncodedValue(
|
|
1985
|
+
UpdateConfigMode.UpdateBorrowLimitOutsideElevationGroup.discriminator,
|
|
1986
|
+
BigInt(reserveConfig.borrowLimitOutsideElevationGroup.toString())
|
|
1987
|
+
),
|
|
1988
|
+
});
|
|
1824
1989
|
}
|
|
1825
1990
|
break;
|
|
1826
1991
|
case 'borrowLimitAgainstThisCollateralInElevationGroup':
|
|
1827
|
-
if (
|
|
1828
|
-
reserve === undefined ||
|
|
1829
|
-
!sameLengthArrayEquals(
|
|
1830
|
-
reserve.config.borrowLimitAgainstThisCollateralInElevationGroup,
|
|
1831
|
-
reserveConfig.borrowLimitAgainstThisCollateralInElevationGroup
|
|
1832
|
-
)
|
|
1833
|
-
) {
|
|
1992
|
+
if (reserve === undefined) {
|
|
1834
1993
|
updateReserveIxnsArgs.push({
|
|
1835
|
-
mode: UpdateConfigMode.UpdateBorrowLimitsInElevationGroupAgainstThisReserve.discriminator
|
|
1994
|
+
mode: UpdateConfigMode.UpdateBorrowLimitsInElevationGroupAgainstThisReserve.discriminator,
|
|
1836
1995
|
value: updateReserveConfigEncodedValue(
|
|
1837
1996
|
UpdateConfigMode.UpdateBorrowLimitsInElevationGroupAgainstThisReserve.discriminator,
|
|
1838
1997
|
reserveConfig.borrowLimitAgainstThisCollateralInElevationGroup.map((borrowLimit) => borrowLimit.toNumber())
|
|
1839
1998
|
),
|
|
1840
1999
|
});
|
|
2000
|
+
} else {
|
|
2001
|
+
for (let i = 0; i < reserveConfig.borrowLimitAgainstThisCollateralInElevationGroup.length; i++) {
|
|
2002
|
+
if (
|
|
2003
|
+
reserve.config.borrowLimitAgainstThisCollateralInElevationGroup[i] !==
|
|
2004
|
+
reserveConfig.borrowLimitAgainstThisCollateralInElevationGroup[i]
|
|
2005
|
+
) {
|
|
2006
|
+
updateReserveIxnsArgs.push({
|
|
2007
|
+
mode: UpdateConfigMode.UpdateBorrowLimitsInElevationGroupAgainstThisReserve.discriminator,
|
|
2008
|
+
value: updateReserveConfigEncodedValue(
|
|
2009
|
+
UpdateConfigMode.UpdateBorrowLimitsInElevationGroupAgainstThisReserve.discriminator,
|
|
2010
|
+
reserveConfig.borrowLimitAgainstThisCollateralInElevationGroup.map((borrowLimit) =>
|
|
2011
|
+
borrowLimit.toNumber()
|
|
2012
|
+
)
|
|
2013
|
+
),
|
|
2014
|
+
});
|
|
2015
|
+
}
|
|
2016
|
+
}
|
|
1841
2017
|
}
|
|
1842
|
-
|
|
1843
2018
|
break;
|
|
1844
2019
|
case 'deleveragingBonusIncreaseBpsPerDay':
|
|
1845
|
-
if (
|
|
1846
|
-
|
|
1847
|
-
|
|
2020
|
+
if (reserve === undefined) {
|
|
2021
|
+
updateReserveIxnsArgs.push({
|
|
2022
|
+
mode: UpdateConfigMode.UpdateDeleveragingBonusIncreaseBpsPerDay.discriminator,
|
|
2023
|
+
value: updateReserveConfigEncodedValue(
|
|
2024
|
+
UpdateConfigMode.UpdateDeleveragingBonusIncreaseBpsPerDay.discriminator,
|
|
2025
|
+
reserveConfig.deleveragingBonusIncreaseBpsPerDay.toNumber()
|
|
2026
|
+
),
|
|
2027
|
+
});
|
|
2028
|
+
} else if (
|
|
2029
|
+
reserve.config.deleveragingBonusIncreaseBpsPerDay.toNumber() !==
|
|
2030
|
+
reserveConfig.deleveragingBonusIncreaseBpsPerDay.toNumber()
|
|
1848
2031
|
) {
|
|
1849
2032
|
updateReserveIxnsArgs.push({
|
|
1850
|
-
mode: UpdateConfigMode.UpdateDeleveragingBonusIncreaseBpsPerDay.discriminator
|
|
2033
|
+
mode: UpdateConfigMode.UpdateDeleveragingBonusIncreaseBpsPerDay.discriminator,
|
|
1851
2034
|
value: updateReserveConfigEncodedValue(
|
|
1852
2035
|
UpdateConfigMode.UpdateDeleveragingBonusIncreaseBpsPerDay.discriminator,
|
|
1853
2036
|
reserveConfig.deleveragingBonusIncreaseBpsPerDay.toNumber()
|
|
@@ -1895,7 +2078,7 @@ export function parseForChangesReserveConfigAndGetIxs(
|
|
|
1895
2078
|
reserveConfig: ReserveConfig,
|
|
1896
2079
|
programId: PublicKey
|
|
1897
2080
|
) {
|
|
1898
|
-
|
|
2081
|
+
const updateReserveIxnsArgs: { mode: number; value: Uint8Array }[] = [];
|
|
1899
2082
|
for (const key in reserveConfig.toEncodable()) {
|
|
1900
2083
|
if (isExcludedReserveConfigKey(key)) {
|
|
1901
2084
|
continue;
|
|
@@ -1905,21 +2088,14 @@ export function parseForChangesReserveConfigAndGetIxs(
|
|
|
1905
2088
|
|
|
1906
2089
|
const ixns: TransactionInstruction[] = [];
|
|
1907
2090
|
|
|
1908
|
-
updateReserveIxnsArgs = sortIxnsByPriority(updateReserveIxnsArgs);
|
|
1909
|
-
|
|
1910
2091
|
updateReserveIxnsArgs.forEach((updateReserveConfigArgs) => {
|
|
1911
|
-
let skipValidation = false;
|
|
1912
|
-
if (modeMatches(updateReserveConfigArgs.mode)) {
|
|
1913
|
-
skipValidation = true;
|
|
1914
|
-
}
|
|
1915
2092
|
ixns.push(
|
|
1916
2093
|
updateReserveConfigIx(
|
|
1917
2094
|
marketWithAddress,
|
|
1918
2095
|
reserveAddress,
|
|
1919
|
-
updateReserveConfigArgs.mode,
|
|
2096
|
+
updateReserveConfigArgs.mode + 1,
|
|
1920
2097
|
updateReserveConfigArgs.value,
|
|
1921
|
-
programId
|
|
1922
|
-
skipValidation
|
|
2098
|
+
programId
|
|
1923
2099
|
)
|
|
1924
2100
|
);
|
|
1925
2101
|
});
|
|
@@ -2039,11 +2215,11 @@ export function updateReserveConfigEncodedValue(
|
|
|
2039
2215
|
}
|
|
2040
2216
|
|
|
2041
2217
|
export function serializeBorrowRateCurve(curve: BorrowRateCurve): Buffer {
|
|
2042
|
-
const buffer = Buffer.alloc(8 * curve.points.length);
|
|
2218
|
+
const buffer = Buffer.alloc(4 + 8 * curve.points.length);
|
|
2043
2219
|
buffer.writeUInt32LE(curve.points.length, 0);
|
|
2044
2220
|
for (let i = 0; i < curve.points.length; i++) {
|
|
2045
|
-
buffer.writeUInt32LE(curve.points[i].utilizationRateBps, 8 * i);
|
|
2046
|
-
buffer.writeUInt32LE(curve.points[i].borrowRateBps,
|
|
2221
|
+
buffer.writeUInt32LE(curve.points[i].utilizationRateBps, 4 + 8 * i);
|
|
2222
|
+
buffer.writeUInt32LE(curve.points[i].borrowRateBps, 8 + 8 * i);
|
|
2047
2223
|
}
|
|
2048
2224
|
return buffer;
|
|
2049
2225
|
}
|
|
@@ -2052,37 +2228,3 @@ export type ReserveWithAddress = {
|
|
|
2052
2228
|
address: PublicKey;
|
|
2053
2229
|
state: Reserve;
|
|
2054
2230
|
};
|
|
2055
|
-
|
|
2056
|
-
export type UpdateReserveIxnsArgs = {
|
|
2057
|
-
mode: number;
|
|
2058
|
-
value: Uint8Array;
|
|
2059
|
-
};
|
|
2060
|
-
|
|
2061
|
-
export const modeMatches = (mode: number): boolean => {
|
|
2062
|
-
const validModes = [
|
|
2063
|
-
UpdateConfigMode.UpdateScopePriceFeed.discriminator + 1,
|
|
2064
|
-
UpdateConfigMode.UpdateTokenInfoScopeChain.discriminator + 1,
|
|
2065
|
-
UpdateConfigMode.UpdateTokenInfoScopeTwap.discriminator + 1,
|
|
2066
|
-
UpdateConfigMode.UpdateTokenInfoExpHeuristic.discriminator + 1,
|
|
2067
|
-
UpdateConfigMode.UpdateTokenInfoTwapDivergence.discriminator + 1,
|
|
2068
|
-
UpdateConfigMode.UpdateTokenInfoPriceMaxAge.discriminator + 1,
|
|
2069
|
-
UpdateConfigMode.UpdateTokenInfoTwapMaxAge.discriminator + 1,
|
|
2070
|
-
];
|
|
2071
|
-
return validModes.includes(mode);
|
|
2072
|
-
};
|
|
2073
|
-
|
|
2074
|
-
// Sort update reserve ixns, to first have the oracle config updates first
|
|
2075
|
-
// In order to skip the validation for the scope config updates
|
|
2076
|
-
export const sortIxnsByPriority = (updateReserveIxnsArgs: UpdateReserveIxnsArgs[]) => {
|
|
2077
|
-
return updateReserveIxnsArgs.sort((a, b) => {
|
|
2078
|
-
const isPriorityA = a.mode === 20 || a.mode === 16;
|
|
2079
|
-
const isPriorityB = b.mode === 20 || b.mode === 16;
|
|
2080
|
-
if (isPriorityA && !isPriorityB) {
|
|
2081
|
-
return -1;
|
|
2082
|
-
}
|
|
2083
|
-
if (isPriorityB && !isPriorityA) {
|
|
2084
|
-
return 1;
|
|
2085
|
-
}
|
|
2086
|
-
return 0;
|
|
2087
|
-
});
|
|
2088
|
-
};
|