@kamino-finance/klend-sdk 5.13.1 → 5.13.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/classes/action.d.ts +32 -31
- package/dist/classes/action.d.ts.map +1 -1
- package/dist/classes/action.js +126 -95
- package/dist/classes/action.js.map +1 -1
- package/dist/classes/index.d.ts +3 -2
- package/dist/classes/index.d.ts.map +1 -1
- package/dist/classes/index.js +3 -2
- package/dist/classes/index.js.map +1 -1
- package/dist/classes/manager.d.ts +15 -7
- package/dist/classes/manager.d.ts.map +1 -1
- package/dist/classes/manager.js +57 -46
- package/dist/classes/manager.js.map +1 -1
- package/dist/classes/obligationOrder.d.ts +1 -1
- package/dist/classes/obligationOrder.d.ts.map +1 -1
- package/dist/classes/reserve.d.ts +2 -2
- package/dist/classes/reserve.d.ts.map +1 -1
- package/dist/classes/reserve.js +70 -70
- package/dist/classes/reserve.js.map +1 -1
- package/dist/classes/shared.d.ts +13 -0
- package/dist/classes/shared.d.ts.map +1 -1
- package/dist/classes/utils.d.ts +1 -9
- package/dist/classes/utils.d.ts.map +1 -1
- package/dist/classes/utils.js +4 -51
- package/dist/classes/utils.js.map +1 -1
- package/dist/classes/vault.d.ts +22 -4
- package/dist/classes/vault.d.ts.map +1 -1
- package/dist/classes/vault.js +78 -43
- package/dist/classes/vault.js.map +1 -1
- package/dist/classes/{types.d.ts → vault_types.d.ts} +3 -15
- package/dist/classes/vault_types.d.ts.map +1 -0
- package/dist/classes/{types.js → vault_types.js} +1 -1
- package/dist/classes/vault_types.js.map +1 -0
- package/dist/client_kamino_manager.d.ts.map +1 -1
- package/dist/client_kamino_manager.js +44 -28
- package/dist/client_kamino_manager.js.map +1 -1
- package/dist/lending_operations/repay_with_collateral_operations.js +6 -6
- package/dist/lending_operations/repay_with_collateral_operations.js.map +1 -1
- package/dist/lending_operations/swap_collateral_operations.d.ts +6 -6
- package/dist/lending_operations/swap_collateral_operations.d.ts.map +1 -1
- package/dist/lending_operations/swap_collateral_operations.js +61 -61
- package/dist/lending_operations/swap_collateral_operations.js.map +1 -1
- package/dist/leverage/calcs.d.ts +0 -1
- package/dist/leverage/calcs.d.ts.map +1 -1
- package/dist/leverage/calcs.js +5 -8
- package/dist/leverage/calcs.js.map +1 -1
- package/dist/leverage/operations.d.ts +5 -5
- package/dist/leverage/operations.d.ts.map +1 -1
- package/dist/leverage/operations.js +73 -73
- package/dist/leverage/operations.js.map +1 -1
- package/dist/leverage/types.d.ts +1 -1
- package/dist/leverage/types.d.ts.map +1 -1
- package/dist/leverage/utils.d.ts +2 -2
- package/dist/leverage/utils.d.ts.map +1 -1
- package/dist/leverage/utils.js +5 -5
- package/dist/leverage/utils.js.map +1 -1
- package/dist/referrals/instructions.d.ts +3 -3
- package/dist/referrals/instructions.d.ts.map +1 -1
- package/dist/referrals/instructions.js +10 -10
- package/dist/referrals/instructions.js.map +1 -1
- package/dist/referrals/operations.js +6 -6
- package/dist/referrals/operations.js.map +1 -1
- package/dist/utils/ata.d.ts +3 -3
- package/dist/utils/ata.d.ts.map +1 -1
- package/dist/utils/ata.js +22 -22
- package/dist/utils/ata.js.map +1 -1
- package/dist/utils/instruction.d.ts +2 -2
- package/dist/utils/instruction.d.ts.map +1 -1
- package/dist/utils/instruction.js +12 -12
- package/dist/utils/instruction.js.map +1 -1
- package/dist/utils/lookupTable.js +6 -6
- package/dist/utils/lookupTable.js.map +1 -1
- package/dist/utils/metadata.d.ts +14 -0
- package/dist/utils/metadata.d.ts.map +1 -0
- package/dist/utils/metadata.js +78 -0
- package/dist/utils/metadata.js.map +1 -0
- package/dist/utils/seeds.d.ts +6 -0
- package/dist/utils/seeds.d.ts.map +1 -1
- package/dist/utils/seeds.js +10 -0
- package/dist/utils/seeds.js.map +1 -1
- package/dist/utils/userMetadata.d.ts +1 -1
- package/dist/utils/userMetadata.d.ts.map +1 -1
- package/dist/utils/userMetadata.js +3 -3
- package/dist/utils/userMetadata.js.map +1 -1
- package/package.json +1 -1
- package/src/classes/action.ts +143 -102
- package/src/classes/index.ts +5 -2
- package/src/classes/manager.ts +74 -51
- package/src/classes/obligationOrder.ts +1 -1
- package/src/classes/reserve.ts +126 -132
- package/src/classes/shared.ts +15 -0
- package/src/classes/utils.ts +3 -52
- package/src/classes/vault.ts +125 -44
- package/src/classes/{types.ts → vault_types.ts} +2 -16
- package/src/client.ts +16 -16
- package/src/client_kamino_manager.ts +59 -27
- package/src/lending_operations/repay_with_collateral_operations.ts +13 -13
- package/src/lending_operations/swap_collateral_operations.ts +85 -85
- package/src/leverage/calcs.ts +2 -6
- package/src/leverage/operations.ts +84 -84
- package/src/leverage/types.ts +1 -1
- package/src/leverage/utils.ts +5 -5
- package/src/referrals/instructions.ts +6 -6
- package/src/referrals/operations.ts +9 -9
- package/src/utils/ata.ts +18 -18
- package/src/utils/instruction.ts +10 -10
- package/src/utils/lookupTable.ts +6 -6
- package/src/utils/metadata.ts +115 -0
- package/src/utils/seeds.ts +13 -0
- package/src/utils/userMetadata.ts +1 -1
- package/dist/classes/types.d.ts.map +0 -1
- package/dist/classes/types.js.map +0 -1
- package/dist/classes/types_utils.d.ts +0 -14
- package/dist/classes/types_utils.d.ts.map +0 -1
- package/dist/classes/types_utils.js +0 -50
- package/dist/classes/types_utils.js.map +0 -1
- package/src/classes/types_utils.ts +0 -49
package/src/classes/reserve.ts
CHANGED
|
@@ -1225,27 +1225,27 @@ function handleConfigUpdate(
|
|
|
1225
1225
|
key: ReserveConfigKey,
|
|
1226
1226
|
reserve: Reserve | undefined,
|
|
1227
1227
|
reserveConfig: ReserveConfig,
|
|
1228
|
-
|
|
1228
|
+
updateReserveIxsArgs: UpdateReserveIxsArg[]
|
|
1229
1229
|
): void {
|
|
1230
1230
|
switch (key) {
|
|
1231
1231
|
case 'status':
|
|
1232
1232
|
if (reserve === undefined || reserve.config.status !== reserveConfig.status) {
|
|
1233
|
-
|
|
1234
|
-
|
|
1233
|
+
updateReserveIxsArgs.push(
|
|
1234
|
+
createUpdateReserveIxsArg(UpdateConfigMode.UpdateReserveStatus.discriminator, reserveConfig.status)
|
|
1235
1235
|
);
|
|
1236
1236
|
}
|
|
1237
1237
|
break;
|
|
1238
1238
|
case 'assetTier':
|
|
1239
1239
|
if (reserve === undefined || reserve.config.assetTier !== reserveConfig.assetTier) {
|
|
1240
|
-
|
|
1241
|
-
|
|
1240
|
+
updateReserveIxsArgs.push(
|
|
1241
|
+
createUpdateReserveIxsArg(UpdateConfigMode.UpdateAssetTier.discriminator, reserveConfig.assetTier)
|
|
1242
1242
|
);
|
|
1243
1243
|
}
|
|
1244
1244
|
break;
|
|
1245
1245
|
case 'hostFixedInterestRateBps':
|
|
1246
1246
|
if (reserve === undefined || reserve.config.hostFixedInterestRateBps !== reserveConfig.hostFixedInterestRateBps) {
|
|
1247
|
-
|
|
1248
|
-
|
|
1247
|
+
updateReserveIxsArgs.push(
|
|
1248
|
+
createUpdateReserveIxsArg(
|
|
1249
1249
|
UpdateConfigMode.UpdateHostFixedInterestRateBps.discriminator,
|
|
1250
1250
|
reserveConfig.hostFixedInterestRateBps
|
|
1251
1251
|
)
|
|
@@ -1254,8 +1254,8 @@ function handleConfigUpdate(
|
|
|
1254
1254
|
break;
|
|
1255
1255
|
case 'protocolTakeRatePct':
|
|
1256
1256
|
if (reserve === undefined || reserve.config.protocolTakeRatePct !== reserveConfig.protocolTakeRatePct) {
|
|
1257
|
-
|
|
1258
|
-
|
|
1257
|
+
updateReserveIxsArgs.push(
|
|
1258
|
+
createUpdateReserveIxsArg(
|
|
1259
1259
|
UpdateConfigMode.UpdateProtocolTakeRate.discriminator,
|
|
1260
1260
|
reserveConfig.protocolTakeRatePct
|
|
1261
1261
|
)
|
|
@@ -1267,8 +1267,8 @@ function handleConfigUpdate(
|
|
|
1267
1267
|
reserve === undefined ||
|
|
1268
1268
|
reserve.config.protocolLiquidationFeePct !== reserveConfig.protocolLiquidationFeePct
|
|
1269
1269
|
) {
|
|
1270
|
-
|
|
1271
|
-
|
|
1270
|
+
updateReserveIxsArgs.push(
|
|
1271
|
+
createUpdateReserveIxsArg(
|
|
1272
1272
|
UpdateConfigMode.UpdateProtocolLiquidationFee.discriminator,
|
|
1273
1273
|
reserveConfig.protocolLiquidationFeePct
|
|
1274
1274
|
)
|
|
@@ -1280,8 +1280,8 @@ function handleConfigUpdate(
|
|
|
1280
1280
|
reserve === undefined ||
|
|
1281
1281
|
reserve.config.protocolOrderExecutionFeePct !== reserveConfig.protocolOrderExecutionFeePct
|
|
1282
1282
|
) {
|
|
1283
|
-
|
|
1284
|
-
|
|
1283
|
+
updateReserveIxsArgs.push(
|
|
1284
|
+
createUpdateReserveIxsArg(
|
|
1285
1285
|
UpdateConfigMode.UpdateProtocolOrderExecutionFee.discriminator,
|
|
1286
1286
|
reserveConfig.protocolOrderExecutionFeePct
|
|
1287
1287
|
)
|
|
@@ -1290,15 +1290,15 @@ function handleConfigUpdate(
|
|
|
1290
1290
|
break;
|
|
1291
1291
|
case 'loanToValuePct':
|
|
1292
1292
|
if (reserve === undefined || reserve.config.loanToValuePct !== reserveConfig.loanToValuePct) {
|
|
1293
|
-
|
|
1294
|
-
|
|
1293
|
+
updateReserveIxsArgs.push(
|
|
1294
|
+
createUpdateReserveIxsArg(UpdateConfigMode.UpdateLoanToValuePct.discriminator, reserveConfig.loanToValuePct)
|
|
1295
1295
|
);
|
|
1296
1296
|
}
|
|
1297
1297
|
break;
|
|
1298
1298
|
case 'liquidationThresholdPct':
|
|
1299
1299
|
if (reserve === undefined || reserve.config.liquidationThresholdPct !== reserveConfig.liquidationThresholdPct) {
|
|
1300
|
-
|
|
1301
|
-
|
|
1300
|
+
updateReserveIxsArgs.push(
|
|
1301
|
+
createUpdateReserveIxsArg(
|
|
1302
1302
|
UpdateConfigMode.UpdateLiquidationThresholdPct.discriminator,
|
|
1303
1303
|
reserveConfig.liquidationThresholdPct
|
|
1304
1304
|
)
|
|
@@ -1307,8 +1307,8 @@ function handleConfigUpdate(
|
|
|
1307
1307
|
break;
|
|
1308
1308
|
case 'minLiquidationBonusBps':
|
|
1309
1309
|
if (reserve === undefined || reserve.config.minLiquidationBonusBps !== reserveConfig.minLiquidationBonusBps) {
|
|
1310
|
-
|
|
1311
|
-
|
|
1310
|
+
updateReserveIxsArgs.push(
|
|
1311
|
+
createUpdateReserveIxsArg(
|
|
1312
1312
|
UpdateConfigMode.UpdateMinLiquidationBonusBps.discriminator,
|
|
1313
1313
|
reserveConfig.minLiquidationBonusBps
|
|
1314
1314
|
)
|
|
@@ -1317,8 +1317,8 @@ function handleConfigUpdate(
|
|
|
1317
1317
|
break;
|
|
1318
1318
|
case 'maxLiquidationBonusBps':
|
|
1319
1319
|
if (reserve === undefined || reserve.config.maxLiquidationBonusBps !== reserveConfig.maxLiquidationBonusBps) {
|
|
1320
|
-
|
|
1321
|
-
|
|
1320
|
+
updateReserveIxsArgs.push(
|
|
1321
|
+
createUpdateReserveIxsArg(
|
|
1322
1322
|
UpdateConfigMode.UpdateMaxLiquidationBonusBps.discriminator,
|
|
1323
1323
|
reserveConfig.maxLiquidationBonusBps
|
|
1324
1324
|
)
|
|
@@ -1330,8 +1330,8 @@ function handleConfigUpdate(
|
|
|
1330
1330
|
reserve === undefined ||
|
|
1331
1331
|
reserve.config.badDebtLiquidationBonusBps !== reserveConfig.badDebtLiquidationBonusBps
|
|
1332
1332
|
) {
|
|
1333
|
-
|
|
1334
|
-
|
|
1333
|
+
updateReserveIxsArgs.push(
|
|
1334
|
+
createUpdateReserveIxsArg(
|
|
1335
1335
|
UpdateConfigMode.UpdateBadDebtLiquidationBonusBps.discriminator,
|
|
1336
1336
|
reserveConfig.badDebtLiquidationBonusBps
|
|
1337
1337
|
)
|
|
@@ -1343,8 +1343,8 @@ function handleConfigUpdate(
|
|
|
1343
1343
|
reserve === undefined ||
|
|
1344
1344
|
!reserve.config.deleveragingMarginCallPeriodSecs.eq(reserveConfig.deleveragingMarginCallPeriodSecs)
|
|
1345
1345
|
) {
|
|
1346
|
-
|
|
1347
|
-
|
|
1346
|
+
updateReserveIxsArgs.push(
|
|
1347
|
+
createUpdateReserveIxsArg(
|
|
1348
1348
|
UpdateConfigMode.UpdateDeleveragingMarginCallPeriod.discriminator,
|
|
1349
1349
|
reserveConfig.deleveragingMarginCallPeriodSecs.toNumber()
|
|
1350
1350
|
)
|
|
@@ -1356,8 +1356,8 @@ function handleConfigUpdate(
|
|
|
1356
1356
|
reserve === undefined ||
|
|
1357
1357
|
!reserve.config.deleveragingThresholdDecreaseBpsPerDay.eq(reserveConfig.deleveragingThresholdDecreaseBpsPerDay)
|
|
1358
1358
|
) {
|
|
1359
|
-
|
|
1360
|
-
|
|
1359
|
+
updateReserveIxsArgs.push(
|
|
1360
|
+
createUpdateReserveIxsArg(
|
|
1361
1361
|
UpdateConfigMode.UpdateDeleveragingThresholdDecreaseBpsPerDay.discriminator,
|
|
1362
1362
|
reserveConfig.deleveragingThresholdDecreaseBpsPerDay.toNumber()
|
|
1363
1363
|
)
|
|
@@ -1366,16 +1366,16 @@ function handleConfigUpdate(
|
|
|
1366
1366
|
break;
|
|
1367
1367
|
case 'fees':
|
|
1368
1368
|
if (reserve === undefined || !reserve.config.fees.borrowFeeSf.eq(reserveConfig.fees.borrowFeeSf)) {
|
|
1369
|
-
|
|
1370
|
-
|
|
1369
|
+
updateReserveIxsArgs.push(
|
|
1370
|
+
createUpdateReserveIxsArg(
|
|
1371
1371
|
UpdateConfigMode.UpdateFeesBorrowFee.discriminator,
|
|
1372
1372
|
reserveConfig.fees.borrowFeeSf.toNumber()
|
|
1373
1373
|
)
|
|
1374
1374
|
);
|
|
1375
1375
|
}
|
|
1376
1376
|
if (reserve === undefined || !reserve.config.fees.flashLoanFeeSf.eq(reserveConfig.fees.flashLoanFeeSf)) {
|
|
1377
|
-
|
|
1378
|
-
|
|
1377
|
+
updateReserveIxsArgs.push(
|
|
1378
|
+
createUpdateReserveIxsArg(
|
|
1379
1379
|
UpdateConfigMode.UpdateFeesFlashLoanFee.discriminator,
|
|
1380
1380
|
reserveConfig.fees.flashLoanFeeSf.toNumber()
|
|
1381
1381
|
)
|
|
@@ -1384,11 +1384,8 @@ function handleConfigUpdate(
|
|
|
1384
1384
|
break;
|
|
1385
1385
|
case 'borrowRateCurve':
|
|
1386
1386
|
if (reserve === undefined) {
|
|
1387
|
-
|
|
1388
|
-
|
|
1389
|
-
UpdateConfigMode.UpdateBorrowRateCurve.discriminator,
|
|
1390
|
-
reserveConfig.borrowRateCurve
|
|
1391
|
-
)
|
|
1387
|
+
updateReserveIxsArgs.push(
|
|
1388
|
+
createUpdateReserveIxsArg(UpdateConfigMode.UpdateBorrowRateCurve.discriminator, reserveConfig.borrowRateCurve)
|
|
1392
1389
|
);
|
|
1393
1390
|
} else {
|
|
1394
1391
|
let shouldBorrowCurveBeUpdated = false;
|
|
@@ -1405,8 +1402,8 @@ function handleConfigUpdate(
|
|
|
1405
1402
|
}
|
|
1406
1403
|
|
|
1407
1404
|
if (shouldBorrowCurveBeUpdated) {
|
|
1408
|
-
|
|
1409
|
-
|
|
1405
|
+
updateReserveIxsArgs.push(
|
|
1406
|
+
createUpdateReserveIxsArg(
|
|
1410
1407
|
UpdateConfigMode.UpdateBorrowRateCurve.discriminator,
|
|
1411
1408
|
reserveConfig.borrowRateCurve
|
|
1412
1409
|
)
|
|
@@ -1417,8 +1414,8 @@ function handleConfigUpdate(
|
|
|
1417
1414
|
break;
|
|
1418
1415
|
case 'borrowFactorPct':
|
|
1419
1416
|
if (reserve === undefined || !reserve.config.borrowFactorPct.eq(reserveConfig.borrowFactorPct)) {
|
|
1420
|
-
|
|
1421
|
-
|
|
1417
|
+
updateReserveIxsArgs.push(
|
|
1418
|
+
createUpdateReserveIxsArg(
|
|
1422
1419
|
UpdateConfigMode.UpdateBorrowFactor.discriminator,
|
|
1423
1420
|
reserveConfig.borrowFactorPct.toNumber()
|
|
1424
1421
|
)
|
|
@@ -1427,8 +1424,8 @@ function handleConfigUpdate(
|
|
|
1427
1424
|
break;
|
|
1428
1425
|
case 'depositLimit':
|
|
1429
1426
|
if (reserve === undefined || !reserve.config.depositLimit.eq(reserveConfig.depositLimit)) {
|
|
1430
|
-
|
|
1431
|
-
|
|
1427
|
+
updateReserveIxsArgs.push(
|
|
1428
|
+
createUpdateReserveIxsArg(
|
|
1432
1429
|
UpdateConfigMode.UpdateDepositLimit.discriminator,
|
|
1433
1430
|
BigInt(reserveConfig.depositLimit.toString())
|
|
1434
1431
|
)
|
|
@@ -1437,8 +1434,8 @@ function handleConfigUpdate(
|
|
|
1437
1434
|
break;
|
|
1438
1435
|
case 'borrowLimit':
|
|
1439
1436
|
if (reserve === undefined || !reserve.config.borrowLimit.eq(reserveConfig.borrowLimit)) {
|
|
1440
|
-
|
|
1441
|
-
|
|
1437
|
+
updateReserveIxsArgs.push(
|
|
1438
|
+
createUpdateReserveIxsArg(
|
|
1442
1439
|
UpdateConfigMode.UpdateBorrowLimit.discriminator,
|
|
1443
1440
|
BigInt(reserveConfig.borrowLimit.toString())
|
|
1444
1441
|
)
|
|
@@ -1448,124 +1445,124 @@ function handleConfigUpdate(
|
|
|
1448
1445
|
case 'tokenInfo':
|
|
1449
1446
|
const tokenInfo = reserveConfig.tokenInfo;
|
|
1450
1447
|
if (reserve === undefined) {
|
|
1451
|
-
|
|
1452
|
-
|
|
1448
|
+
updateReserveIxsArgs.push(
|
|
1449
|
+
createUpdateReserveIxsArg(UpdateConfigMode.UpdateTokenInfoName.discriminator, tokenInfo.name)
|
|
1453
1450
|
);
|
|
1454
|
-
|
|
1455
|
-
|
|
1451
|
+
updateReserveIxsArgs.push(
|
|
1452
|
+
createUpdateReserveIxsArg(
|
|
1456
1453
|
UpdateConfigMode.UpdateTokenInfoLowerHeuristic.discriminator,
|
|
1457
1454
|
tokenInfo.heuristic.lower.toNumber()
|
|
1458
1455
|
)
|
|
1459
1456
|
);
|
|
1460
|
-
|
|
1461
|
-
|
|
1457
|
+
updateReserveIxsArgs.push(
|
|
1458
|
+
createUpdateReserveIxsArg(
|
|
1462
1459
|
UpdateConfigMode.UpdateTokenInfoUpperHeuristic.discriminator,
|
|
1463
1460
|
tokenInfo.heuristic.upper.toNumber()
|
|
1464
1461
|
)
|
|
1465
1462
|
);
|
|
1466
|
-
|
|
1467
|
-
|
|
1463
|
+
updateReserveIxsArgs.push(
|
|
1464
|
+
createUpdateReserveIxsArg(
|
|
1468
1465
|
UpdateConfigMode.UpdateTokenInfoExpHeuristic.discriminator,
|
|
1469
1466
|
tokenInfo.heuristic.exp.toNumber()
|
|
1470
1467
|
)
|
|
1471
1468
|
);
|
|
1472
|
-
|
|
1473
|
-
|
|
1469
|
+
updateReserveIxsArgs.push(
|
|
1470
|
+
createUpdateReserveIxsArg(
|
|
1474
1471
|
UpdateConfigMode.UpdateTokenInfoTwapDivergence.discriminator,
|
|
1475
1472
|
tokenInfo.maxTwapDivergenceBps.toNumber()
|
|
1476
1473
|
)
|
|
1477
1474
|
);
|
|
1478
|
-
|
|
1479
|
-
|
|
1475
|
+
updateReserveIxsArgs.push(
|
|
1476
|
+
createUpdateReserveIxsArg(
|
|
1480
1477
|
UpdateConfigMode.UpdateTokenInfoPriceMaxAge.discriminator,
|
|
1481
1478
|
tokenInfo.maxAgePriceSeconds.toNumber()
|
|
1482
1479
|
)
|
|
1483
1480
|
);
|
|
1484
|
-
|
|
1485
|
-
|
|
1481
|
+
updateReserveIxsArgs.push(
|
|
1482
|
+
createUpdateReserveIxsArg(
|
|
1486
1483
|
UpdateConfigMode.UpdateTokenInfoTwapMaxAge.discriminator,
|
|
1487
1484
|
tokenInfo.maxAgeTwapSeconds.toNumber()
|
|
1488
1485
|
)
|
|
1489
1486
|
);
|
|
1490
|
-
|
|
1491
|
-
|
|
1487
|
+
updateReserveIxsArgs.push(
|
|
1488
|
+
createUpdateReserveIxsArg(
|
|
1492
1489
|
UpdateConfigMode.UpdateTokenInfoScopeChain.discriminator,
|
|
1493
1490
|
tokenInfo.scopeConfiguration.priceChain
|
|
1494
1491
|
)
|
|
1495
1492
|
);
|
|
1496
|
-
|
|
1497
|
-
|
|
1493
|
+
updateReserveIxsArgs.push(
|
|
1494
|
+
createUpdateReserveIxsArg(
|
|
1498
1495
|
UpdateConfigMode.UpdateTokenInfoScopeTwap.discriminator,
|
|
1499
1496
|
tokenInfo.scopeConfiguration.twapChain
|
|
1500
1497
|
)
|
|
1501
1498
|
);
|
|
1502
|
-
|
|
1503
|
-
|
|
1499
|
+
updateReserveIxsArgs.push(
|
|
1500
|
+
createUpdateReserveIxsArg(
|
|
1504
1501
|
UpdateConfigMode.UpdateSwitchboardFeed.discriminator,
|
|
1505
1502
|
tokenInfo.switchboardConfiguration.priceAggregator
|
|
1506
1503
|
)
|
|
1507
1504
|
);
|
|
1508
|
-
|
|
1509
|
-
|
|
1505
|
+
updateReserveIxsArgs.push(
|
|
1506
|
+
createUpdateReserveIxsArg(
|
|
1510
1507
|
UpdateConfigMode.UpdateSwitchboardTwapFeed.discriminator,
|
|
1511
1508
|
tokenInfo.switchboardConfiguration.twapAggregator
|
|
1512
1509
|
)
|
|
1513
1510
|
);
|
|
1514
|
-
|
|
1515
|
-
|
|
1511
|
+
updateReserveIxsArgs.push(
|
|
1512
|
+
createUpdateReserveIxsArg(UpdateConfigMode.UpdatePythPrice.discriminator, tokenInfo.pythConfiguration.price)
|
|
1516
1513
|
);
|
|
1517
|
-
|
|
1518
|
-
|
|
1514
|
+
updateReserveIxsArgs.push(
|
|
1515
|
+
createUpdateReserveIxsArg(UpdateConfigMode.UpdateBlockPriceUsage.discriminator, tokenInfo.blockPriceUsage)
|
|
1519
1516
|
);
|
|
1520
1517
|
} else {
|
|
1521
1518
|
if (!sameLengthArrayEquals(reserve.config.tokenInfo.name, tokenInfo.name)) {
|
|
1522
|
-
|
|
1523
|
-
|
|
1519
|
+
updateReserveIxsArgs.push(
|
|
1520
|
+
createUpdateReserveIxsArg(UpdateConfigMode.UpdateTokenInfoName.discriminator, tokenInfo.name)
|
|
1524
1521
|
);
|
|
1525
1522
|
}
|
|
1526
1523
|
if (!reserve.config.tokenInfo.heuristic.lower.eq(tokenInfo.heuristic.lower)) {
|
|
1527
|
-
|
|
1528
|
-
|
|
1524
|
+
updateReserveIxsArgs.push(
|
|
1525
|
+
createUpdateReserveIxsArg(
|
|
1529
1526
|
UpdateConfigMode.UpdateTokenInfoLowerHeuristic.discriminator,
|
|
1530
1527
|
tokenInfo.heuristic.lower.toNumber()
|
|
1531
1528
|
)
|
|
1532
1529
|
);
|
|
1533
1530
|
}
|
|
1534
1531
|
if (!reserve.config.tokenInfo.heuristic.upper.eq(tokenInfo.heuristic.upper)) {
|
|
1535
|
-
|
|
1536
|
-
|
|
1532
|
+
updateReserveIxsArgs.push(
|
|
1533
|
+
createUpdateReserveIxsArg(
|
|
1537
1534
|
UpdateConfigMode.UpdateTokenInfoUpperHeuristic.discriminator,
|
|
1538
1535
|
tokenInfo.heuristic.upper.toNumber()
|
|
1539
1536
|
)
|
|
1540
1537
|
);
|
|
1541
1538
|
}
|
|
1542
1539
|
if (!reserve.config.tokenInfo.heuristic.exp.eq(tokenInfo.heuristic.exp)) {
|
|
1543
|
-
|
|
1544
|
-
|
|
1540
|
+
updateReserveIxsArgs.push(
|
|
1541
|
+
createUpdateReserveIxsArg(
|
|
1545
1542
|
UpdateConfigMode.UpdateTokenInfoExpHeuristic.discriminator,
|
|
1546
1543
|
tokenInfo.heuristic.exp.toNumber()
|
|
1547
1544
|
)
|
|
1548
1545
|
);
|
|
1549
1546
|
}
|
|
1550
1547
|
if (!reserve.config.tokenInfo.maxTwapDivergenceBps.eq(tokenInfo.maxTwapDivergenceBps)) {
|
|
1551
|
-
|
|
1552
|
-
|
|
1548
|
+
updateReserveIxsArgs.push(
|
|
1549
|
+
createUpdateReserveIxsArg(
|
|
1553
1550
|
UpdateConfigMode.UpdateTokenInfoTwapDivergence.discriminator,
|
|
1554
1551
|
tokenInfo.maxTwapDivergenceBps.toNumber()
|
|
1555
1552
|
)
|
|
1556
1553
|
);
|
|
1557
1554
|
}
|
|
1558
1555
|
if (!reserve.config.tokenInfo.maxAgePriceSeconds.eq(tokenInfo.maxAgePriceSeconds)) {
|
|
1559
|
-
|
|
1560
|
-
|
|
1556
|
+
updateReserveIxsArgs.push(
|
|
1557
|
+
createUpdateReserveIxsArg(
|
|
1561
1558
|
UpdateConfigMode.UpdateTokenInfoPriceMaxAge.discriminator,
|
|
1562
1559
|
tokenInfo.maxAgePriceSeconds.toNumber()
|
|
1563
1560
|
)
|
|
1564
1561
|
);
|
|
1565
1562
|
}
|
|
1566
1563
|
if (!reserve.config.tokenInfo.maxAgeTwapSeconds.eq(tokenInfo.maxAgeTwapSeconds)) {
|
|
1567
|
-
|
|
1568
|
-
|
|
1564
|
+
updateReserveIxsArgs.push(
|
|
1565
|
+
createUpdateReserveIxsArg(
|
|
1569
1566
|
UpdateConfigMode.UpdateTokenInfoTwapMaxAge.discriminator,
|
|
1570
1567
|
tokenInfo.maxAgeTwapSeconds.toNumber()
|
|
1571
1568
|
)
|
|
@@ -1577,8 +1574,8 @@ function handleConfigUpdate(
|
|
|
1577
1574
|
tokenInfo.scopeConfiguration.priceChain
|
|
1578
1575
|
)
|
|
1579
1576
|
) {
|
|
1580
|
-
|
|
1581
|
-
|
|
1577
|
+
updateReserveIxsArgs.push(
|
|
1578
|
+
createUpdateReserveIxsArg(
|
|
1582
1579
|
UpdateConfigMode.UpdateTokenInfoScopeChain.discriminator,
|
|
1583
1580
|
tokenInfo.scopeConfiguration.priceChain
|
|
1584
1581
|
)
|
|
@@ -1590,8 +1587,8 @@ function handleConfigUpdate(
|
|
|
1590
1587
|
tokenInfo.scopeConfiguration.twapChain
|
|
1591
1588
|
)
|
|
1592
1589
|
) {
|
|
1593
|
-
|
|
1594
|
-
|
|
1590
|
+
updateReserveIxsArgs.push(
|
|
1591
|
+
createUpdateReserveIxsArg(
|
|
1595
1592
|
UpdateConfigMode.UpdateTokenInfoScopeTwap.discriminator,
|
|
1596
1593
|
tokenInfo.scopeConfiguration.twapChain
|
|
1597
1594
|
)
|
|
@@ -1602,8 +1599,8 @@ function handleConfigUpdate(
|
|
|
1602
1599
|
tokenInfo.switchboardConfiguration.priceAggregator
|
|
1603
1600
|
)
|
|
1604
1601
|
) {
|
|
1605
|
-
|
|
1606
|
-
|
|
1602
|
+
updateReserveIxsArgs.push(
|
|
1603
|
+
createUpdateReserveIxsArg(
|
|
1607
1604
|
UpdateConfigMode.UpdateSwitchboardFeed.discriminator,
|
|
1608
1605
|
tokenInfo.switchboardConfiguration.priceAggregator
|
|
1609
1606
|
)
|
|
@@ -1614,29 +1611,26 @@ function handleConfigUpdate(
|
|
|
1614
1611
|
tokenInfo.switchboardConfiguration.twapAggregator
|
|
1615
1612
|
)
|
|
1616
1613
|
) {
|
|
1617
|
-
|
|
1618
|
-
|
|
1614
|
+
updateReserveIxsArgs.push(
|
|
1615
|
+
createUpdateReserveIxsArg(
|
|
1619
1616
|
UpdateConfigMode.UpdateSwitchboardTwapFeed.discriminator,
|
|
1620
1617
|
tokenInfo.switchboardConfiguration.twapAggregator
|
|
1621
1618
|
)
|
|
1622
1619
|
);
|
|
1623
1620
|
}
|
|
1624
1621
|
if (!reserve.config.tokenInfo.pythConfiguration.price.equals(tokenInfo.pythConfiguration.price)) {
|
|
1625
|
-
|
|
1626
|
-
|
|
1627
|
-
UpdateConfigMode.UpdatePythPrice.discriminator,
|
|
1628
|
-
tokenInfo.pythConfiguration.price
|
|
1629
|
-
)
|
|
1622
|
+
updateReserveIxsArgs.push(
|
|
1623
|
+
createUpdateReserveIxsArg(UpdateConfigMode.UpdatePythPrice.discriminator, tokenInfo.pythConfiguration.price)
|
|
1630
1624
|
);
|
|
1631
1625
|
}
|
|
1632
1626
|
if (reserve.config.tokenInfo.blockPriceUsage !== tokenInfo.blockPriceUsage) {
|
|
1633
|
-
|
|
1634
|
-
|
|
1627
|
+
updateReserveIxsArgs.push(
|
|
1628
|
+
createUpdateReserveIxsArg(UpdateConfigMode.UpdateBlockPriceUsage.discriminator, tokenInfo.blockPriceUsage)
|
|
1635
1629
|
);
|
|
1636
1630
|
}
|
|
1637
1631
|
if (!reserve.config.tokenInfo.scopeConfiguration.priceFeed.equals(tokenInfo.scopeConfiguration.priceFeed)) {
|
|
1638
|
-
|
|
1639
|
-
|
|
1632
|
+
updateReserveIxsArgs.push(
|
|
1633
|
+
createUpdateReserveIxsArg(
|
|
1640
1634
|
UpdateConfigMode.UpdateScopePriceFeed.discriminator,
|
|
1641
1635
|
tokenInfo.scopeConfiguration.priceFeed
|
|
1642
1636
|
)
|
|
@@ -1652,8 +1646,8 @@ function handleConfigUpdate(
|
|
|
1652
1646
|
reserveConfig.depositWithdrawalCap.configIntervalLengthSeconds
|
|
1653
1647
|
)
|
|
1654
1648
|
) {
|
|
1655
|
-
|
|
1656
|
-
|
|
1649
|
+
updateReserveIxsArgs.push(
|
|
1650
|
+
createUpdateReserveIxsArg(UpdateConfigMode.UpdateDepositWithdrawalCap.discriminator, [
|
|
1657
1651
|
reserveConfig.depositWithdrawalCap.configCapacity.toNumber(),
|
|
1658
1652
|
reserveConfig.depositWithdrawalCap.configIntervalLengthSeconds.toNumber(),
|
|
1659
1653
|
])
|
|
@@ -1668,8 +1662,8 @@ function handleConfigUpdate(
|
|
|
1668
1662
|
reserveConfig.debtWithdrawalCap.configIntervalLengthSeconds
|
|
1669
1663
|
)
|
|
1670
1664
|
) {
|
|
1671
|
-
|
|
1672
|
-
|
|
1665
|
+
updateReserveIxsArgs.push(
|
|
1666
|
+
createUpdateReserveIxsArg(UpdateConfigMode.UpdateDebtWithdrawalCap.discriminator, [
|
|
1673
1667
|
reserveConfig.debtWithdrawalCap.configCapacity.toNumber(),
|
|
1674
1668
|
reserveConfig.debtWithdrawalCap.configIntervalLengthSeconds.toNumber(),
|
|
1675
1669
|
])
|
|
@@ -1681,8 +1675,8 @@ function handleConfigUpdate(
|
|
|
1681
1675
|
reserve === undefined ||
|
|
1682
1676
|
!sameLengthArrayEquals(reserve.config.elevationGroups, reserveConfig.elevationGroups)
|
|
1683
1677
|
) {
|
|
1684
|
-
|
|
1685
|
-
|
|
1678
|
+
updateReserveIxsArgs.push(
|
|
1679
|
+
createUpdateReserveIxsArg(UpdateConfigMode.UpdateElevationGroup.discriminator, reserveConfig.elevationGroups)
|
|
1686
1680
|
);
|
|
1687
1681
|
}
|
|
1688
1682
|
break;
|
|
@@ -1691,8 +1685,8 @@ function handleConfigUpdate(
|
|
|
1691
1685
|
reserve === undefined ||
|
|
1692
1686
|
reserve.config.disableUsageAsCollOutsideEmode !== reserveConfig.disableUsageAsCollOutsideEmode
|
|
1693
1687
|
) {
|
|
1694
|
-
|
|
1695
|
-
|
|
1688
|
+
updateReserveIxsArgs.push(
|
|
1689
|
+
createUpdateReserveIxsArg(
|
|
1696
1690
|
UpdateConfigMode.UpdateDisableUsageAsCollateralOutsideEmode.discriminator,
|
|
1697
1691
|
reserveConfig.disableUsageAsCollOutsideEmode
|
|
1698
1692
|
)
|
|
@@ -1704,8 +1698,8 @@ function handleConfigUpdate(
|
|
|
1704
1698
|
reserve === undefined ||
|
|
1705
1699
|
reserve.config.utilizationLimitBlockBorrowingAbovePct !== reserveConfig.utilizationLimitBlockBorrowingAbovePct
|
|
1706
1700
|
) {
|
|
1707
|
-
|
|
1708
|
-
|
|
1701
|
+
updateReserveIxsArgs.push(
|
|
1702
|
+
createUpdateReserveIxsArg(
|
|
1709
1703
|
UpdateConfigMode.UpdateBlockBorrowingAboveUtilizationPct.discriminator,
|
|
1710
1704
|
reserveConfig.utilizationLimitBlockBorrowingAbovePct
|
|
1711
1705
|
)
|
|
@@ -1714,8 +1708,8 @@ function handleConfigUpdate(
|
|
|
1714
1708
|
break;
|
|
1715
1709
|
case 'autodeleverageEnabled':
|
|
1716
1710
|
if (reserve === undefined || reserve.config.autodeleverageEnabled !== reserveConfig.autodeleverageEnabled) {
|
|
1717
|
-
|
|
1718
|
-
|
|
1711
|
+
updateReserveIxsArgs.push(
|
|
1712
|
+
createUpdateReserveIxsArg(
|
|
1719
1713
|
UpdateConfigMode.UpdateAutodeleverageEnabled.discriminator,
|
|
1720
1714
|
reserveConfig.autodeleverageEnabled
|
|
1721
1715
|
)
|
|
@@ -1727,8 +1721,8 @@ function handleConfigUpdate(
|
|
|
1727
1721
|
reserve === undefined ||
|
|
1728
1722
|
!reserve.config.borrowLimitOutsideElevationGroup.eq(reserveConfig.borrowLimitOutsideElevationGroup)
|
|
1729
1723
|
) {
|
|
1730
|
-
|
|
1731
|
-
|
|
1724
|
+
updateReserveIxsArgs.push(
|
|
1725
|
+
createUpdateReserveIxsArg(
|
|
1732
1726
|
UpdateConfigMode.UpdateBorrowLimitOutsideElevationGroup.discriminator,
|
|
1733
1727
|
reserveConfig.borrowLimitOutsideElevationGroup.toNumber()
|
|
1734
1728
|
)
|
|
@@ -1743,8 +1737,8 @@ function handleConfigUpdate(
|
|
|
1743
1737
|
reserveConfig.borrowLimitAgainstThisCollateralInElevationGroup
|
|
1744
1738
|
)
|
|
1745
1739
|
) {
|
|
1746
|
-
|
|
1747
|
-
|
|
1740
|
+
updateReserveIxsArgs.push(
|
|
1741
|
+
createUpdateReserveIxsArg(
|
|
1748
1742
|
UpdateConfigMode.UpdateBorrowLimitsInElevationGroupAgainstThisReserve.discriminator,
|
|
1749
1743
|
reserveConfig.borrowLimitAgainstThisCollateralInElevationGroup.map((borrowLimit) => borrowLimit.toNumber())
|
|
1750
1744
|
)
|
|
@@ -1756,8 +1750,8 @@ function handleConfigUpdate(
|
|
|
1756
1750
|
reserve === undefined ||
|
|
1757
1751
|
!reserve.config.deleveragingBonusIncreaseBpsPerDay.eq(reserveConfig.deleveragingBonusIncreaseBpsPerDay)
|
|
1758
1752
|
) {
|
|
1759
|
-
|
|
1760
|
-
|
|
1753
|
+
updateReserveIxsArgs.push(
|
|
1754
|
+
createUpdateReserveIxsArg(
|
|
1761
1755
|
UpdateConfigMode.UpdateDeleveragingBonusIncreaseBpsPerDay.discriminator,
|
|
1762
1756
|
reserveConfig.deleveragingBonusIncreaseBpsPerDay.toNumber()
|
|
1763
1757
|
)
|
|
@@ -1769,10 +1763,10 @@ function handleConfigUpdate(
|
|
|
1769
1763
|
}
|
|
1770
1764
|
}
|
|
1771
1765
|
|
|
1772
|
-
function
|
|
1766
|
+
function createUpdateReserveIxsArg(
|
|
1773
1767
|
discriminator: UpdateConfigModeKind['discriminator'],
|
|
1774
1768
|
value: number | number[] | bigint | BorrowRateCurve | PublicKey
|
|
1775
|
-
):
|
|
1769
|
+
): UpdateReserveIxsArg {
|
|
1776
1770
|
return {
|
|
1777
1771
|
// Note: below we add 1 to the discriminator, because UpdateConfigMode in SC starts from 1, while the idl-codegen
|
|
1778
1772
|
// creates the TS counterparts starting from 0:
|
|
@@ -1816,24 +1810,24 @@ export function parseForChangesReserveConfigAndGetIxs(
|
|
|
1816
1810
|
reserveConfig: ReserveConfig,
|
|
1817
1811
|
programId: PublicKey
|
|
1818
1812
|
) {
|
|
1819
|
-
let
|
|
1813
|
+
let updateReserveIxsArgs: UpdateReserveIxsArg[] = [];
|
|
1820
1814
|
for (const key in reserveConfig.toEncodable()) {
|
|
1821
1815
|
if (isExcludedReserveConfigKey(key)) {
|
|
1822
1816
|
continue;
|
|
1823
1817
|
}
|
|
1824
|
-
handleConfigUpdate(key as ReserveConfigKey, reserve, reserveConfig,
|
|
1818
|
+
handleConfigUpdate(key as ReserveConfigKey, reserve, reserveConfig, updateReserveIxsArgs);
|
|
1825
1819
|
}
|
|
1826
1820
|
|
|
1827
|
-
const
|
|
1821
|
+
const ixs: TransactionInstruction[] = [];
|
|
1828
1822
|
|
|
1829
|
-
|
|
1823
|
+
updateReserveIxsArgs = sortIxsByPriority(updateReserveIxsArgs);
|
|
1830
1824
|
|
|
1831
|
-
|
|
1825
|
+
updateReserveIxsArgs.forEach((updateReserveConfigArgs) => {
|
|
1832
1826
|
let skipValidation = false;
|
|
1833
1827
|
if (modeMatches(updateReserveConfigArgs.mode) && !reserve?.liquidity.availableAmount.gten(MIN_INITIAL_DEPOSIT)) {
|
|
1834
1828
|
skipValidation = true;
|
|
1835
1829
|
}
|
|
1836
|
-
|
|
1830
|
+
ixs.push(
|
|
1837
1831
|
updateReserveConfigIx(
|
|
1838
1832
|
marketWithAddress,
|
|
1839
1833
|
reserveAddress,
|
|
@@ -1845,7 +1839,7 @@ export function parseForChangesReserveConfigAndGetIxs(
|
|
|
1845
1839
|
);
|
|
1846
1840
|
});
|
|
1847
1841
|
|
|
1848
|
-
return
|
|
1842
|
+
return ixs;
|
|
1849
1843
|
}
|
|
1850
1844
|
|
|
1851
1845
|
export function updateReserveConfigEncodedValue(
|
|
@@ -1972,7 +1966,7 @@ export type ReserveWithAddress = {
|
|
|
1972
1966
|
state: Reserve;
|
|
1973
1967
|
};
|
|
1974
1968
|
|
|
1975
|
-
export type
|
|
1969
|
+
export type UpdateReserveIxsArg = {
|
|
1976
1970
|
mode: number;
|
|
1977
1971
|
value: Uint8Array;
|
|
1978
1972
|
};
|
|
@@ -1990,10 +1984,10 @@ export const modeMatches = (mode: number): boolean => {
|
|
|
1990
1984
|
return validModes.includes(mode);
|
|
1991
1985
|
};
|
|
1992
1986
|
|
|
1993
|
-
// Sort update reserve
|
|
1987
|
+
// Sort update reserve ixs, to first have the oracle config updates first
|
|
1994
1988
|
// In order to skip the validation for the scope config updates
|
|
1995
|
-
export const
|
|
1996
|
-
return
|
|
1989
|
+
export const sortIxsByPriority = (updateReserveIxsArgs: UpdateReserveIxsArg[]) => {
|
|
1990
|
+
return updateReserveIxsArgs.sort((a, b) => {
|
|
1997
1991
|
const isPriorityA = a.mode === 20 || a.mode === 16;
|
|
1998
1992
|
const isPriorityB = b.mode === 20 || b.mode === 16;
|
|
1999
1993
|
if (isPriorityA && !isPriorityB) {
|
package/src/classes/shared.ts
CHANGED
|
@@ -65,3 +65,18 @@ export type Fees = {
|
|
|
65
65
|
protocolFees: Decimal;
|
|
66
66
|
referrerFees: Decimal;
|
|
67
67
|
};
|
|
68
|
+
|
|
69
|
+
/**
|
|
70
|
+
* Some amount of a specific token type.
|
|
71
|
+
*/
|
|
72
|
+
export type TokenAmount = {
|
|
73
|
+
/**
|
|
74
|
+
* Token's mint key.
|
|
75
|
+
*/
|
|
76
|
+
mint: PublicKey;
|
|
77
|
+
|
|
78
|
+
/**
|
|
79
|
+
* Amount, in lamports.
|
|
80
|
+
*/
|
|
81
|
+
amount: Decimal;
|
|
82
|
+
};
|