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