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