@kamino-finance/klend-sdk 5.13.1 → 5.13.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (106) hide show
  1. package/dist/classes/action.d.ts +32 -31
  2. package/dist/classes/action.d.ts.map +1 -1
  3. package/dist/classes/action.js +126 -95
  4. package/dist/classes/action.js.map +1 -1
  5. package/dist/classes/index.d.ts +3 -2
  6. package/dist/classes/index.d.ts.map +1 -1
  7. package/dist/classes/index.js +3 -2
  8. package/dist/classes/index.js.map +1 -1
  9. package/dist/classes/manager.d.ts +7 -7
  10. package/dist/classes/manager.d.ts.map +1 -1
  11. package/dist/classes/manager.js +46 -46
  12. package/dist/classes/manager.js.map +1 -1
  13. package/dist/classes/obligationOrder.d.ts +1 -1
  14. package/dist/classes/obligationOrder.d.ts.map +1 -1
  15. package/dist/classes/reserve.d.ts +2 -2
  16. package/dist/classes/reserve.d.ts.map +1 -1
  17. package/dist/classes/reserve.js +70 -70
  18. package/dist/classes/reserve.js.map +1 -1
  19. package/dist/classes/shared.d.ts +13 -0
  20. package/dist/classes/shared.d.ts.map +1 -1
  21. package/dist/classes/utils.d.ts +1 -9
  22. package/dist/classes/utils.d.ts.map +1 -1
  23. package/dist/classes/utils.js +4 -51
  24. package/dist/classes/utils.js.map +1 -1
  25. package/dist/classes/vault.d.ts +5 -3
  26. package/dist/classes/vault.d.ts.map +1 -1
  27. package/dist/classes/vault.js +50 -41
  28. package/dist/classes/vault.js.map +1 -1
  29. package/dist/classes/{types.d.ts → vault_types.d.ts} +2 -15
  30. package/dist/classes/vault_types.d.ts.map +1 -0
  31. package/dist/classes/{types.js → vault_types.js} +1 -1
  32. package/dist/classes/vault_types.js.map +1 -0
  33. package/dist/client_kamino_manager.d.ts.map +1 -1
  34. package/dist/client_kamino_manager.js +25 -26
  35. package/dist/client_kamino_manager.js.map +1 -1
  36. package/dist/lending_operations/repay_with_collateral_operations.js +6 -6
  37. package/dist/lending_operations/repay_with_collateral_operations.js.map +1 -1
  38. package/dist/lending_operations/swap_collateral_operations.d.ts +6 -6
  39. package/dist/lending_operations/swap_collateral_operations.d.ts.map +1 -1
  40. package/dist/lending_operations/swap_collateral_operations.js +61 -61
  41. package/dist/lending_operations/swap_collateral_operations.js.map +1 -1
  42. package/dist/leverage/calcs.d.ts +0 -1
  43. package/dist/leverage/calcs.d.ts.map +1 -1
  44. package/dist/leverage/calcs.js +5 -8
  45. package/dist/leverage/calcs.js.map +1 -1
  46. package/dist/leverage/operations.d.ts +5 -5
  47. package/dist/leverage/operations.d.ts.map +1 -1
  48. package/dist/leverage/operations.js +73 -73
  49. package/dist/leverage/operations.js.map +1 -1
  50. package/dist/leverage/types.d.ts +1 -1
  51. package/dist/leverage/types.d.ts.map +1 -1
  52. package/dist/leverage/utils.d.ts +2 -2
  53. package/dist/leverage/utils.d.ts.map +1 -1
  54. package/dist/leverage/utils.js +5 -5
  55. package/dist/leverage/utils.js.map +1 -1
  56. package/dist/referrals/instructions.d.ts +3 -3
  57. package/dist/referrals/instructions.d.ts.map +1 -1
  58. package/dist/referrals/instructions.js +10 -10
  59. package/dist/referrals/instructions.js.map +1 -1
  60. package/dist/referrals/operations.js +6 -6
  61. package/dist/referrals/operations.js.map +1 -1
  62. package/dist/utils/ata.d.ts +3 -3
  63. package/dist/utils/ata.d.ts.map +1 -1
  64. package/dist/utils/ata.js +22 -22
  65. package/dist/utils/ata.js.map +1 -1
  66. package/dist/utils/instruction.d.ts +2 -2
  67. package/dist/utils/instruction.d.ts.map +1 -1
  68. package/dist/utils/instruction.js +12 -12
  69. package/dist/utils/instruction.js.map +1 -1
  70. package/dist/utils/lookupTable.js +6 -6
  71. package/dist/utils/lookupTable.js.map +1 -1
  72. package/dist/utils/userMetadata.d.ts +1 -1
  73. package/dist/utils/userMetadata.d.ts.map +1 -1
  74. package/dist/utils/userMetadata.js +3 -3
  75. package/dist/utils/userMetadata.js.map +1 -1
  76. package/package.json +1 -1
  77. package/src/classes/action.ts +143 -102
  78. package/src/classes/index.ts +5 -2
  79. package/src/classes/manager.ts +54 -51
  80. package/src/classes/obligationOrder.ts +1 -1
  81. package/src/classes/reserve.ts +126 -132
  82. package/src/classes/shared.ts +15 -0
  83. package/src/classes/utils.ts +3 -52
  84. package/src/classes/vault.ts +53 -42
  85. package/src/classes/{types.ts → vault_types.ts} +1 -16
  86. package/src/client.ts +16 -16
  87. package/src/client_kamino_manager.ts +25 -25
  88. package/src/lending_operations/repay_with_collateral_operations.ts +13 -13
  89. package/src/lending_operations/swap_collateral_operations.ts +85 -85
  90. package/src/leverage/calcs.ts +2 -6
  91. package/src/leverage/operations.ts +84 -84
  92. package/src/leverage/types.ts +1 -1
  93. package/src/leverage/utils.ts +5 -5
  94. package/src/referrals/instructions.ts +6 -6
  95. package/src/referrals/operations.ts +9 -9
  96. package/src/utils/ata.ts +18 -18
  97. package/src/utils/instruction.ts +10 -10
  98. package/src/utils/lookupTable.ts +6 -6
  99. package/src/utils/userMetadata.ts +1 -1
  100. package/dist/classes/types.d.ts.map +0 -1
  101. package/dist/classes/types.js.map +0 -1
  102. package/dist/classes/types_utils.d.ts +0 -14
  103. package/dist/classes/types_utils.d.ts.map +0 -1
  104. package/dist/classes/types_utils.js +0 -50
  105. package/dist/classes/types_utils.js.map +0 -1
  106. package/src/classes/types_utils.ts +0 -49
@@ -1225,27 +1225,27 @@ function handleConfigUpdate(
1225
1225
  key: ReserveConfigKey,
1226
1226
  reserve: Reserve | undefined,
1227
1227
  reserveConfig: ReserveConfig,
1228
- updateReserveIxnsArgs: UpdateReserveIxnsArg[]
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
- updateReserveIxnsArgs.push(
1234
- createUpdateReserveIxnsArg(UpdateConfigMode.UpdateReserveStatus.discriminator, reserveConfig.status)
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
- updateReserveIxnsArgs.push(
1241
- createUpdateReserveIxnsArg(UpdateConfigMode.UpdateAssetTier.discriminator, reserveConfig.assetTier)
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
- updateReserveIxnsArgs.push(
1248
- createUpdateReserveIxnsArg(
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
- updateReserveIxnsArgs.push(
1258
- createUpdateReserveIxnsArg(
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
- updateReserveIxnsArgs.push(
1271
- createUpdateReserveIxnsArg(
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
- updateReserveIxnsArgs.push(
1284
- createUpdateReserveIxnsArg(
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
- updateReserveIxnsArgs.push(
1294
- createUpdateReserveIxnsArg(UpdateConfigMode.UpdateLoanToValuePct.discriminator, reserveConfig.loanToValuePct)
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
- updateReserveIxnsArgs.push(
1301
- createUpdateReserveIxnsArg(
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
- updateReserveIxnsArgs.push(
1311
- createUpdateReserveIxnsArg(
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
- updateReserveIxnsArgs.push(
1321
- createUpdateReserveIxnsArg(
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
- updateReserveIxnsArgs.push(
1334
- createUpdateReserveIxnsArg(
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
- updateReserveIxnsArgs.push(
1347
- createUpdateReserveIxnsArg(
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
- updateReserveIxnsArgs.push(
1360
- createUpdateReserveIxnsArg(
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
- updateReserveIxnsArgs.push(
1370
- createUpdateReserveIxnsArg(
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
- updateReserveIxnsArgs.push(
1378
- createUpdateReserveIxnsArg(
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
- updateReserveIxnsArgs.push(
1388
- createUpdateReserveIxnsArg(
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
- updateReserveIxnsArgs.push(
1409
- createUpdateReserveIxnsArg(
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
- updateReserveIxnsArgs.push(
1421
- createUpdateReserveIxnsArg(
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
- updateReserveIxnsArgs.push(
1431
- createUpdateReserveIxnsArg(
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
- updateReserveIxnsArgs.push(
1441
- createUpdateReserveIxnsArg(
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
- updateReserveIxnsArgs.push(
1452
- createUpdateReserveIxnsArg(UpdateConfigMode.UpdateTokenInfoName.discriminator, tokenInfo.name)
1448
+ updateReserveIxsArgs.push(
1449
+ createUpdateReserveIxsArg(UpdateConfigMode.UpdateTokenInfoName.discriminator, tokenInfo.name)
1453
1450
  );
1454
- updateReserveIxnsArgs.push(
1455
- createUpdateReserveIxnsArg(
1451
+ updateReserveIxsArgs.push(
1452
+ createUpdateReserveIxsArg(
1456
1453
  UpdateConfigMode.UpdateTokenInfoLowerHeuristic.discriminator,
1457
1454
  tokenInfo.heuristic.lower.toNumber()
1458
1455
  )
1459
1456
  );
1460
- updateReserveIxnsArgs.push(
1461
- createUpdateReserveIxnsArg(
1457
+ updateReserveIxsArgs.push(
1458
+ createUpdateReserveIxsArg(
1462
1459
  UpdateConfigMode.UpdateTokenInfoUpperHeuristic.discriminator,
1463
1460
  tokenInfo.heuristic.upper.toNumber()
1464
1461
  )
1465
1462
  );
1466
- updateReserveIxnsArgs.push(
1467
- createUpdateReserveIxnsArg(
1463
+ updateReserveIxsArgs.push(
1464
+ createUpdateReserveIxsArg(
1468
1465
  UpdateConfigMode.UpdateTokenInfoExpHeuristic.discriminator,
1469
1466
  tokenInfo.heuristic.exp.toNumber()
1470
1467
  )
1471
1468
  );
1472
- updateReserveIxnsArgs.push(
1473
- createUpdateReserveIxnsArg(
1469
+ updateReserveIxsArgs.push(
1470
+ createUpdateReserveIxsArg(
1474
1471
  UpdateConfigMode.UpdateTokenInfoTwapDivergence.discriminator,
1475
1472
  tokenInfo.maxTwapDivergenceBps.toNumber()
1476
1473
  )
1477
1474
  );
1478
- updateReserveIxnsArgs.push(
1479
- createUpdateReserveIxnsArg(
1475
+ updateReserveIxsArgs.push(
1476
+ createUpdateReserveIxsArg(
1480
1477
  UpdateConfigMode.UpdateTokenInfoPriceMaxAge.discriminator,
1481
1478
  tokenInfo.maxAgePriceSeconds.toNumber()
1482
1479
  )
1483
1480
  );
1484
- updateReserveIxnsArgs.push(
1485
- createUpdateReserveIxnsArg(
1481
+ updateReserveIxsArgs.push(
1482
+ createUpdateReserveIxsArg(
1486
1483
  UpdateConfigMode.UpdateTokenInfoTwapMaxAge.discriminator,
1487
1484
  tokenInfo.maxAgeTwapSeconds.toNumber()
1488
1485
  )
1489
1486
  );
1490
- updateReserveIxnsArgs.push(
1491
- createUpdateReserveIxnsArg(
1487
+ updateReserveIxsArgs.push(
1488
+ createUpdateReserveIxsArg(
1492
1489
  UpdateConfigMode.UpdateTokenInfoScopeChain.discriminator,
1493
1490
  tokenInfo.scopeConfiguration.priceChain
1494
1491
  )
1495
1492
  );
1496
- updateReserveIxnsArgs.push(
1497
- createUpdateReserveIxnsArg(
1493
+ updateReserveIxsArgs.push(
1494
+ createUpdateReserveIxsArg(
1498
1495
  UpdateConfigMode.UpdateTokenInfoScopeTwap.discriminator,
1499
1496
  tokenInfo.scopeConfiguration.twapChain
1500
1497
  )
1501
1498
  );
1502
- updateReserveIxnsArgs.push(
1503
- createUpdateReserveIxnsArg(
1499
+ updateReserveIxsArgs.push(
1500
+ createUpdateReserveIxsArg(
1504
1501
  UpdateConfigMode.UpdateSwitchboardFeed.discriminator,
1505
1502
  tokenInfo.switchboardConfiguration.priceAggregator
1506
1503
  )
1507
1504
  );
1508
- updateReserveIxnsArgs.push(
1509
- createUpdateReserveIxnsArg(
1505
+ updateReserveIxsArgs.push(
1506
+ createUpdateReserveIxsArg(
1510
1507
  UpdateConfigMode.UpdateSwitchboardTwapFeed.discriminator,
1511
1508
  tokenInfo.switchboardConfiguration.twapAggregator
1512
1509
  )
1513
1510
  );
1514
- updateReserveIxnsArgs.push(
1515
- createUpdateReserveIxnsArg(UpdateConfigMode.UpdatePythPrice.discriminator, tokenInfo.pythConfiguration.price)
1511
+ updateReserveIxsArgs.push(
1512
+ createUpdateReserveIxsArg(UpdateConfigMode.UpdatePythPrice.discriminator, tokenInfo.pythConfiguration.price)
1516
1513
  );
1517
- updateReserveIxnsArgs.push(
1518
- createUpdateReserveIxnsArg(UpdateConfigMode.UpdateBlockPriceUsage.discriminator, tokenInfo.blockPriceUsage)
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
- updateReserveIxnsArgs.push(
1523
- createUpdateReserveIxnsArg(UpdateConfigMode.UpdateTokenInfoName.discriminator, tokenInfo.name)
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
- updateReserveIxnsArgs.push(
1528
- createUpdateReserveIxnsArg(
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
- updateReserveIxnsArgs.push(
1536
- createUpdateReserveIxnsArg(
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
- updateReserveIxnsArgs.push(
1544
- createUpdateReserveIxnsArg(
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
- updateReserveIxnsArgs.push(
1552
- createUpdateReserveIxnsArg(
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
- updateReserveIxnsArgs.push(
1560
- createUpdateReserveIxnsArg(
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
- updateReserveIxnsArgs.push(
1568
- createUpdateReserveIxnsArg(
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
- updateReserveIxnsArgs.push(
1581
- createUpdateReserveIxnsArg(
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
- updateReserveIxnsArgs.push(
1594
- createUpdateReserveIxnsArg(
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
- updateReserveIxnsArgs.push(
1606
- createUpdateReserveIxnsArg(
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
- updateReserveIxnsArgs.push(
1618
- createUpdateReserveIxnsArg(
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
- updateReserveIxnsArgs.push(
1626
- createUpdateReserveIxnsArg(
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
- updateReserveIxnsArgs.push(
1634
- createUpdateReserveIxnsArg(UpdateConfigMode.UpdateBlockPriceUsage.discriminator, tokenInfo.blockPriceUsage)
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
- updateReserveIxnsArgs.push(
1639
- createUpdateReserveIxnsArg(
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
- updateReserveIxnsArgs.push(
1656
- createUpdateReserveIxnsArg(UpdateConfigMode.UpdateDepositWithdrawalCap.discriminator, [
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
- updateReserveIxnsArgs.push(
1672
- createUpdateReserveIxnsArg(UpdateConfigMode.UpdateDebtWithdrawalCap.discriminator, [
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
- updateReserveIxnsArgs.push(
1685
- createUpdateReserveIxnsArg(UpdateConfigMode.UpdateElevationGroup.discriminator, reserveConfig.elevationGroups)
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
- updateReserveIxnsArgs.push(
1695
- createUpdateReserveIxnsArg(
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
- updateReserveIxnsArgs.push(
1708
- createUpdateReserveIxnsArg(
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
- updateReserveIxnsArgs.push(
1718
- createUpdateReserveIxnsArg(
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
- updateReserveIxnsArgs.push(
1731
- createUpdateReserveIxnsArg(
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
- updateReserveIxnsArgs.push(
1747
- createUpdateReserveIxnsArg(
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
- updateReserveIxnsArgs.push(
1760
- createUpdateReserveIxnsArg(
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 createUpdateReserveIxnsArg(
1766
+ function createUpdateReserveIxsArg(
1773
1767
  discriminator: UpdateConfigModeKind['discriminator'],
1774
1768
  value: number | number[] | bigint | BorrowRateCurve | PublicKey
1775
- ): UpdateReserveIxnsArg {
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 updateReserveIxnsArgs: UpdateReserveIxnsArg[] = [];
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, updateReserveIxnsArgs);
1818
+ handleConfigUpdate(key as ReserveConfigKey, reserve, reserveConfig, updateReserveIxsArgs);
1825
1819
  }
1826
1820
 
1827
- const ixns: TransactionInstruction[] = [];
1821
+ const ixs: TransactionInstruction[] = [];
1828
1822
 
1829
- updateReserveIxnsArgs = sortIxnsByPriority(updateReserveIxnsArgs);
1823
+ updateReserveIxsArgs = sortIxsByPriority(updateReserveIxsArgs);
1830
1824
 
1831
- updateReserveIxnsArgs.forEach((updateReserveConfigArgs) => {
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
- ixns.push(
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 ixns;
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 UpdateReserveIxnsArg = {
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 ixns, to first have the oracle config updates first
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 sortIxnsByPriority = (updateReserveIxnsArgs: UpdateReserveIxnsArg[]) => {
1996
- return updateReserveIxnsArgs.sort((a, b) => {
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) {
@@ -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
+ };