@kamino-finance/klend-sdk 5.13.0 → 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 (116) hide show
  1. package/dist/classes/action.d.ts +74 -49
  2. package/dist/classes/action.d.ts.map +1 -1
  3. package/dist/classes/action.js +167 -115
  4. package/dist/classes/action.js.map +1 -1
  5. package/dist/classes/fraction.d.ts +2 -0
  6. package/dist/classes/fraction.d.ts.map +1 -1
  7. package/dist/classes/fraction.js +6 -0
  8. package/dist/classes/fraction.js.map +1 -1
  9. package/dist/classes/index.d.ts +3 -2
  10. package/dist/classes/index.d.ts.map +1 -1
  11. package/dist/classes/index.js +3 -2
  12. package/dist/classes/index.js.map +1 -1
  13. package/dist/classes/manager.d.ts +7 -7
  14. package/dist/classes/manager.d.ts.map +1 -1
  15. package/dist/classes/manager.js +46 -46
  16. package/dist/classes/manager.js.map +1 -1
  17. package/dist/classes/obligation.d.ts.map +1 -1
  18. package/dist/classes/obligation.js +1 -6
  19. package/dist/classes/obligation.js.map +1 -1
  20. package/dist/classes/obligationOrder.d.ts +1 -1
  21. package/dist/classes/obligationOrder.d.ts.map +1 -1
  22. package/dist/classes/reserve.d.ts +2 -2
  23. package/dist/classes/reserve.d.ts.map +1 -1
  24. package/dist/classes/reserve.js +71 -74
  25. package/dist/classes/reserve.js.map +1 -1
  26. package/dist/classes/shared.d.ts +13 -0
  27. package/dist/classes/shared.d.ts.map +1 -1
  28. package/dist/classes/utils.d.ts +1 -9
  29. package/dist/classes/utils.d.ts.map +1 -1
  30. package/dist/classes/utils.js +4 -51
  31. package/dist/classes/utils.js.map +1 -1
  32. package/dist/classes/vault.d.ts +5 -3
  33. package/dist/classes/vault.d.ts.map +1 -1
  34. package/dist/classes/vault.js +53 -41
  35. package/dist/classes/vault.js.map +1 -1
  36. package/dist/classes/{types.d.ts → vault_types.d.ts} +2 -15
  37. package/dist/classes/vault_types.d.ts.map +1 -0
  38. package/dist/classes/{types.js → vault_types.js} +1 -1
  39. package/dist/classes/vault_types.js.map +1 -0
  40. package/dist/client_kamino_manager.d.ts.map +1 -1
  41. package/dist/client_kamino_manager.js +25 -26
  42. package/dist/client_kamino_manager.js.map +1 -1
  43. package/dist/lending_operations/repay_with_collateral_operations.d.ts.map +1 -1
  44. package/dist/lending_operations/repay_with_collateral_operations.js +8 -8
  45. package/dist/lending_operations/repay_with_collateral_operations.js.map +1 -1
  46. package/dist/lending_operations/swap_collateral_operations.d.ts +6 -6
  47. package/dist/lending_operations/swap_collateral_operations.d.ts.map +1 -1
  48. package/dist/lending_operations/swap_collateral_operations.js +63 -65
  49. package/dist/lending_operations/swap_collateral_operations.js.map +1 -1
  50. package/dist/leverage/calcs.d.ts +0 -1
  51. package/dist/leverage/calcs.d.ts.map +1 -1
  52. package/dist/leverage/calcs.js +5 -8
  53. package/dist/leverage/calcs.js.map +1 -1
  54. package/dist/leverage/operations.d.ts +5 -5
  55. package/dist/leverage/operations.d.ts.map +1 -1
  56. package/dist/leverage/operations.js +80 -87
  57. package/dist/leverage/operations.js.map +1 -1
  58. package/dist/leverage/types.d.ts +1 -1
  59. package/dist/leverage/types.d.ts.map +1 -1
  60. package/dist/leverage/utils.d.ts +2 -2
  61. package/dist/leverage/utils.d.ts.map +1 -1
  62. package/dist/leverage/utils.js +5 -5
  63. package/dist/leverage/utils.js.map +1 -1
  64. package/dist/referrals/instructions.d.ts +3 -3
  65. package/dist/referrals/instructions.d.ts.map +1 -1
  66. package/dist/referrals/instructions.js +10 -10
  67. package/dist/referrals/instructions.js.map +1 -1
  68. package/dist/referrals/operations.js +6 -6
  69. package/dist/referrals/operations.js.map +1 -1
  70. package/dist/utils/ata.d.ts +3 -3
  71. package/dist/utils/ata.d.ts.map +1 -1
  72. package/dist/utils/ata.js +22 -22
  73. package/dist/utils/ata.js.map +1 -1
  74. package/dist/utils/instruction.d.ts +2 -2
  75. package/dist/utils/instruction.d.ts.map +1 -1
  76. package/dist/utils/instruction.js +12 -12
  77. package/dist/utils/instruction.js.map +1 -1
  78. package/dist/utils/lookupTable.js +6 -6
  79. package/dist/utils/lookupTable.js.map +1 -1
  80. package/dist/utils/userMetadata.d.ts +1 -1
  81. package/dist/utils/userMetadata.d.ts.map +1 -1
  82. package/dist/utils/userMetadata.js +3 -3
  83. package/dist/utils/userMetadata.js.map +1 -1
  84. package/package.json +1 -1
  85. package/src/classes/action.ts +198 -150
  86. package/src/classes/fraction.ts +7 -0
  87. package/src/classes/index.ts +5 -2
  88. package/src/classes/manager.ts +54 -51
  89. package/src/classes/obligation.ts +2 -7
  90. package/src/classes/obligationOrder.ts +1 -1
  91. package/src/classes/reserve.ts +128 -137
  92. package/src/classes/shared.ts +15 -0
  93. package/src/classes/utils.ts +3 -52
  94. package/src/classes/vault.ts +56 -42
  95. package/src/classes/{types.ts → vault_types.ts} +1 -16
  96. package/src/client.ts +16 -16
  97. package/src/client_kamino_manager.ts +25 -25
  98. package/src/lending_operations/repay_with_collateral_operations.ts +13 -15
  99. package/src/lending_operations/swap_collateral_operations.ts +87 -89
  100. package/src/leverage/calcs.ts +2 -6
  101. package/src/leverage/operations.ts +91 -97
  102. package/src/leverage/types.ts +1 -1
  103. package/src/leverage/utils.ts +5 -5
  104. package/src/referrals/instructions.ts +6 -6
  105. package/src/referrals/operations.ts +9 -9
  106. package/src/utils/ata.ts +18 -18
  107. package/src/utils/instruction.ts +10 -10
  108. package/src/utils/lookupTable.ts +6 -6
  109. package/src/utils/userMetadata.ts +1 -1
  110. package/dist/classes/types.d.ts.map +0 -1
  111. package/dist/classes/types.js.map +0 -1
  112. package/dist/classes/types_utils.d.ts +0 -14
  113. package/dist/classes/types_utils.d.ts.map +0 -1
  114. package/dist/classes/types_utils.js +0 -50
  115. package/dist/classes/types_utils.js.map +0 -1
  116. package/src/classes/types_utils.ts +0 -49
@@ -36,7 +36,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
36
36
  return (mod && mod.__esModule) ? mod : { "default": mod };
37
37
  };
38
38
  Object.defineProperty(exports, "__esModule", { value: true });
39
- exports.sortIxnsByPriority = exports.modeMatches = exports.KaminoReserve = exports.DEFAULT_RECENT_SLOT_DURATION_MS = void 0;
39
+ exports.sortIxsByPriority = exports.modeMatches = exports.KaminoReserve = exports.DEFAULT_RECENT_SLOT_DURATION_MS = void 0;
40
40
  exports.createReserveIxs = createReserveIxs;
41
41
  exports.updateReserveConfigIx = updateReserveConfigIx;
42
42
  exports.updateEntireReserveConfigIx = updateEntireReserveConfigIx;
@@ -52,7 +52,6 @@ const accounts_1 = require("../idl_codegen/accounts");
52
52
  const types_1 = require("../idl_codegen/types");
53
53
  const utils_2 = require("./utils");
54
54
  const fraction_1 = require("./fraction");
55
- const bn_js_1 = __importDefault(require("bn.js"));
56
55
  const lib_1 = require("../lib");
57
56
  const anchor = __importStar(require("@coral-xyz/anchor"));
58
57
  const spl_token_1 = require("@solana/spl-token");
@@ -182,9 +181,7 @@ class KaminoReserve {
182
181
  * @returns the stale cumulative borrow rate of the reserve from the last refresh
183
182
  */
184
183
  getCumulativeBorrowRate() {
185
- const cumulativeBorrowRateBsf = this.state.liquidity.cumulativeBorrowRateBsf.value;
186
- const accSf = cumulativeBorrowRateBsf.reduce((prev, curr, i) => prev.add(curr.shln(i * 64)), new bn_js_1.default(0));
187
- return new fraction_1.Fraction(accSf).toDecimal();
184
+ return (0, fraction_1.bfToDecimal)(this.state.liquidity.cumulativeBorrowRateBsf);
188
185
  }
189
186
  /**
190
187
  * @Returns estimated cumulative borrow rate of the reserve
@@ -937,89 +934,89 @@ const EXCLUDED_RESERVE_CONFIG_KEYS = ['reserved1', 'reserved2'];
937
934
  function isExcludedReserveConfigKey(value) {
938
935
  return EXCLUDED_RESERVE_CONFIG_KEYS.includes(value);
939
936
  }
940
- function handleConfigUpdate(key, reserve, reserveConfig, updateReserveIxnsArgs) {
937
+ function handleConfigUpdate(key, reserve, reserveConfig, updateReserveIxsArgs) {
941
938
  switch (key) {
942
939
  case 'status':
943
940
  if (reserve === undefined || reserve.config.status !== reserveConfig.status) {
944
- updateReserveIxnsArgs.push(createUpdateReserveIxnsArg(types_1.UpdateConfigMode.UpdateReserveStatus.discriminator, reserveConfig.status));
941
+ updateReserveIxsArgs.push(createUpdateReserveIxsArg(types_1.UpdateConfigMode.UpdateReserveStatus.discriminator, reserveConfig.status));
945
942
  }
946
943
  break;
947
944
  case 'assetTier':
948
945
  if (reserve === undefined || reserve.config.assetTier !== reserveConfig.assetTier) {
949
- updateReserveIxnsArgs.push(createUpdateReserveIxnsArg(types_1.UpdateConfigMode.UpdateAssetTier.discriminator, reserveConfig.assetTier));
946
+ updateReserveIxsArgs.push(createUpdateReserveIxsArg(types_1.UpdateConfigMode.UpdateAssetTier.discriminator, reserveConfig.assetTier));
950
947
  }
951
948
  break;
952
949
  case 'hostFixedInterestRateBps':
953
950
  if (reserve === undefined || reserve.config.hostFixedInterestRateBps !== reserveConfig.hostFixedInterestRateBps) {
954
- updateReserveIxnsArgs.push(createUpdateReserveIxnsArg(types_1.UpdateConfigMode.UpdateHostFixedInterestRateBps.discriminator, reserveConfig.hostFixedInterestRateBps));
951
+ updateReserveIxsArgs.push(createUpdateReserveIxsArg(types_1.UpdateConfigMode.UpdateHostFixedInterestRateBps.discriminator, reserveConfig.hostFixedInterestRateBps));
955
952
  }
956
953
  break;
957
954
  case 'protocolTakeRatePct':
958
955
  if (reserve === undefined || reserve.config.protocolTakeRatePct !== reserveConfig.protocolTakeRatePct) {
959
- updateReserveIxnsArgs.push(createUpdateReserveIxnsArg(types_1.UpdateConfigMode.UpdateProtocolTakeRate.discriminator, reserveConfig.protocolTakeRatePct));
956
+ updateReserveIxsArgs.push(createUpdateReserveIxsArg(types_1.UpdateConfigMode.UpdateProtocolTakeRate.discriminator, reserveConfig.protocolTakeRatePct));
960
957
  }
961
958
  break;
962
959
  case 'protocolLiquidationFeePct':
963
960
  if (reserve === undefined ||
964
961
  reserve.config.protocolLiquidationFeePct !== reserveConfig.protocolLiquidationFeePct) {
965
- updateReserveIxnsArgs.push(createUpdateReserveIxnsArg(types_1.UpdateConfigMode.UpdateProtocolLiquidationFee.discriminator, reserveConfig.protocolLiquidationFeePct));
962
+ updateReserveIxsArgs.push(createUpdateReserveIxsArg(types_1.UpdateConfigMode.UpdateProtocolLiquidationFee.discriminator, reserveConfig.protocolLiquidationFeePct));
966
963
  }
967
964
  break;
968
965
  case 'protocolOrderExecutionFeePct':
969
966
  if (reserve === undefined ||
970
967
  reserve.config.protocolOrderExecutionFeePct !== reserveConfig.protocolOrderExecutionFeePct) {
971
- updateReserveIxnsArgs.push(createUpdateReserveIxnsArg(types_1.UpdateConfigMode.UpdateProtocolOrderExecutionFee.discriminator, reserveConfig.protocolOrderExecutionFeePct));
968
+ updateReserveIxsArgs.push(createUpdateReserveIxsArg(types_1.UpdateConfigMode.UpdateProtocolOrderExecutionFee.discriminator, reserveConfig.protocolOrderExecutionFeePct));
972
969
  }
973
970
  break;
974
971
  case 'loanToValuePct':
975
972
  if (reserve === undefined || reserve.config.loanToValuePct !== reserveConfig.loanToValuePct) {
976
- updateReserveIxnsArgs.push(createUpdateReserveIxnsArg(types_1.UpdateConfigMode.UpdateLoanToValuePct.discriminator, reserveConfig.loanToValuePct));
973
+ updateReserveIxsArgs.push(createUpdateReserveIxsArg(types_1.UpdateConfigMode.UpdateLoanToValuePct.discriminator, reserveConfig.loanToValuePct));
977
974
  }
978
975
  break;
979
976
  case 'liquidationThresholdPct':
980
977
  if (reserve === undefined || reserve.config.liquidationThresholdPct !== reserveConfig.liquidationThresholdPct) {
981
- updateReserveIxnsArgs.push(createUpdateReserveIxnsArg(types_1.UpdateConfigMode.UpdateLiquidationThresholdPct.discriminator, reserveConfig.liquidationThresholdPct));
978
+ updateReserveIxsArgs.push(createUpdateReserveIxsArg(types_1.UpdateConfigMode.UpdateLiquidationThresholdPct.discriminator, reserveConfig.liquidationThresholdPct));
982
979
  }
983
980
  break;
984
981
  case 'minLiquidationBonusBps':
985
982
  if (reserve === undefined || reserve.config.minLiquidationBonusBps !== reserveConfig.minLiquidationBonusBps) {
986
- updateReserveIxnsArgs.push(createUpdateReserveIxnsArg(types_1.UpdateConfigMode.UpdateMinLiquidationBonusBps.discriminator, reserveConfig.minLiquidationBonusBps));
983
+ updateReserveIxsArgs.push(createUpdateReserveIxsArg(types_1.UpdateConfigMode.UpdateMinLiquidationBonusBps.discriminator, reserveConfig.minLiquidationBonusBps));
987
984
  }
988
985
  break;
989
986
  case 'maxLiquidationBonusBps':
990
987
  if (reserve === undefined || reserve.config.maxLiquidationBonusBps !== reserveConfig.maxLiquidationBonusBps) {
991
- updateReserveIxnsArgs.push(createUpdateReserveIxnsArg(types_1.UpdateConfigMode.UpdateMaxLiquidationBonusBps.discriminator, reserveConfig.maxLiquidationBonusBps));
988
+ updateReserveIxsArgs.push(createUpdateReserveIxsArg(types_1.UpdateConfigMode.UpdateMaxLiquidationBonusBps.discriminator, reserveConfig.maxLiquidationBonusBps));
992
989
  }
993
990
  break;
994
991
  case 'badDebtLiquidationBonusBps':
995
992
  if (reserve === undefined ||
996
993
  reserve.config.badDebtLiquidationBonusBps !== reserveConfig.badDebtLiquidationBonusBps) {
997
- updateReserveIxnsArgs.push(createUpdateReserveIxnsArg(types_1.UpdateConfigMode.UpdateBadDebtLiquidationBonusBps.discriminator, reserveConfig.badDebtLiquidationBonusBps));
994
+ updateReserveIxsArgs.push(createUpdateReserveIxsArg(types_1.UpdateConfigMode.UpdateBadDebtLiquidationBonusBps.discriminator, reserveConfig.badDebtLiquidationBonusBps));
998
995
  }
999
996
  break;
1000
997
  case 'deleveragingMarginCallPeriodSecs':
1001
998
  if (reserve === undefined ||
1002
999
  !reserve.config.deleveragingMarginCallPeriodSecs.eq(reserveConfig.deleveragingMarginCallPeriodSecs)) {
1003
- updateReserveIxnsArgs.push(createUpdateReserveIxnsArg(types_1.UpdateConfigMode.UpdateDeleveragingMarginCallPeriod.discriminator, reserveConfig.deleveragingMarginCallPeriodSecs.toNumber()));
1000
+ updateReserveIxsArgs.push(createUpdateReserveIxsArg(types_1.UpdateConfigMode.UpdateDeleveragingMarginCallPeriod.discriminator, reserveConfig.deleveragingMarginCallPeriodSecs.toNumber()));
1004
1001
  }
1005
1002
  break;
1006
1003
  case 'deleveragingThresholdDecreaseBpsPerDay':
1007
1004
  if (reserve === undefined ||
1008
1005
  !reserve.config.deleveragingThresholdDecreaseBpsPerDay.eq(reserveConfig.deleveragingThresholdDecreaseBpsPerDay)) {
1009
- updateReserveIxnsArgs.push(createUpdateReserveIxnsArg(types_1.UpdateConfigMode.UpdateDeleveragingThresholdDecreaseBpsPerDay.discriminator, reserveConfig.deleveragingThresholdDecreaseBpsPerDay.toNumber()));
1006
+ updateReserveIxsArgs.push(createUpdateReserveIxsArg(types_1.UpdateConfigMode.UpdateDeleveragingThresholdDecreaseBpsPerDay.discriminator, reserveConfig.deleveragingThresholdDecreaseBpsPerDay.toNumber()));
1010
1007
  }
1011
1008
  break;
1012
1009
  case 'fees':
1013
1010
  if (reserve === undefined || !reserve.config.fees.borrowFeeSf.eq(reserveConfig.fees.borrowFeeSf)) {
1014
- updateReserveIxnsArgs.push(createUpdateReserveIxnsArg(types_1.UpdateConfigMode.UpdateFeesBorrowFee.discriminator, reserveConfig.fees.borrowFeeSf.toNumber()));
1011
+ updateReserveIxsArgs.push(createUpdateReserveIxsArg(types_1.UpdateConfigMode.UpdateFeesBorrowFee.discriminator, reserveConfig.fees.borrowFeeSf.toNumber()));
1015
1012
  }
1016
1013
  if (reserve === undefined || !reserve.config.fees.flashLoanFeeSf.eq(reserveConfig.fees.flashLoanFeeSf)) {
1017
- updateReserveIxnsArgs.push(createUpdateReserveIxnsArg(types_1.UpdateConfigMode.UpdateFeesFlashLoanFee.discriminator, reserveConfig.fees.flashLoanFeeSf.toNumber()));
1014
+ updateReserveIxsArgs.push(createUpdateReserveIxsArg(types_1.UpdateConfigMode.UpdateFeesFlashLoanFee.discriminator, reserveConfig.fees.flashLoanFeeSf.toNumber()));
1018
1015
  }
1019
1016
  break;
1020
1017
  case 'borrowRateCurve':
1021
1018
  if (reserve === undefined) {
1022
- updateReserveIxnsArgs.push(createUpdateReserveIxnsArg(types_1.UpdateConfigMode.UpdateBorrowRateCurve.discriminator, reserveConfig.borrowRateCurve));
1019
+ updateReserveIxsArgs.push(createUpdateReserveIxsArg(types_1.UpdateConfigMode.UpdateBorrowRateCurve.discriminator, reserveConfig.borrowRateCurve));
1023
1020
  }
1024
1021
  else {
1025
1022
  let shouldBorrowCurveBeUpdated = false;
@@ -1033,85 +1030,85 @@ function handleConfigUpdate(key, reserve, reserveConfig, updateReserveIxnsArgs)
1033
1030
  }
1034
1031
  }
1035
1032
  if (shouldBorrowCurveBeUpdated) {
1036
- updateReserveIxnsArgs.push(createUpdateReserveIxnsArg(types_1.UpdateConfigMode.UpdateBorrowRateCurve.discriminator, reserveConfig.borrowRateCurve));
1033
+ updateReserveIxsArgs.push(createUpdateReserveIxsArg(types_1.UpdateConfigMode.UpdateBorrowRateCurve.discriminator, reserveConfig.borrowRateCurve));
1037
1034
  break;
1038
1035
  }
1039
1036
  }
1040
1037
  break;
1041
1038
  case 'borrowFactorPct':
1042
1039
  if (reserve === undefined || !reserve.config.borrowFactorPct.eq(reserveConfig.borrowFactorPct)) {
1043
- updateReserveIxnsArgs.push(createUpdateReserveIxnsArg(types_1.UpdateConfigMode.UpdateBorrowFactor.discriminator, reserveConfig.borrowFactorPct.toNumber()));
1040
+ updateReserveIxsArgs.push(createUpdateReserveIxsArg(types_1.UpdateConfigMode.UpdateBorrowFactor.discriminator, reserveConfig.borrowFactorPct.toNumber()));
1044
1041
  }
1045
1042
  break;
1046
1043
  case 'depositLimit':
1047
1044
  if (reserve === undefined || !reserve.config.depositLimit.eq(reserveConfig.depositLimit)) {
1048
- updateReserveIxnsArgs.push(createUpdateReserveIxnsArg(types_1.UpdateConfigMode.UpdateDepositLimit.discriminator, BigInt(reserveConfig.depositLimit.toString())));
1045
+ updateReserveIxsArgs.push(createUpdateReserveIxsArg(types_1.UpdateConfigMode.UpdateDepositLimit.discriminator, BigInt(reserveConfig.depositLimit.toString())));
1049
1046
  }
1050
1047
  break;
1051
1048
  case 'borrowLimit':
1052
1049
  if (reserve === undefined || !reserve.config.borrowLimit.eq(reserveConfig.borrowLimit)) {
1053
- updateReserveIxnsArgs.push(createUpdateReserveIxnsArg(types_1.UpdateConfigMode.UpdateBorrowLimit.discriminator, BigInt(reserveConfig.borrowLimit.toString())));
1050
+ updateReserveIxsArgs.push(createUpdateReserveIxsArg(types_1.UpdateConfigMode.UpdateBorrowLimit.discriminator, BigInt(reserveConfig.borrowLimit.toString())));
1054
1051
  }
1055
1052
  break;
1056
1053
  case 'tokenInfo':
1057
1054
  const tokenInfo = reserveConfig.tokenInfo;
1058
1055
  if (reserve === undefined) {
1059
- updateReserveIxnsArgs.push(createUpdateReserveIxnsArg(types_1.UpdateConfigMode.UpdateTokenInfoName.discriminator, tokenInfo.name));
1060
- updateReserveIxnsArgs.push(createUpdateReserveIxnsArg(types_1.UpdateConfigMode.UpdateTokenInfoLowerHeuristic.discriminator, tokenInfo.heuristic.lower.toNumber()));
1061
- updateReserveIxnsArgs.push(createUpdateReserveIxnsArg(types_1.UpdateConfigMode.UpdateTokenInfoUpperHeuristic.discriminator, tokenInfo.heuristic.upper.toNumber()));
1062
- updateReserveIxnsArgs.push(createUpdateReserveIxnsArg(types_1.UpdateConfigMode.UpdateTokenInfoExpHeuristic.discriminator, tokenInfo.heuristic.exp.toNumber()));
1063
- updateReserveIxnsArgs.push(createUpdateReserveIxnsArg(types_1.UpdateConfigMode.UpdateTokenInfoTwapDivergence.discriminator, tokenInfo.maxTwapDivergenceBps.toNumber()));
1064
- updateReserveIxnsArgs.push(createUpdateReserveIxnsArg(types_1.UpdateConfigMode.UpdateTokenInfoPriceMaxAge.discriminator, tokenInfo.maxAgePriceSeconds.toNumber()));
1065
- updateReserveIxnsArgs.push(createUpdateReserveIxnsArg(types_1.UpdateConfigMode.UpdateTokenInfoTwapMaxAge.discriminator, tokenInfo.maxAgeTwapSeconds.toNumber()));
1066
- updateReserveIxnsArgs.push(createUpdateReserveIxnsArg(types_1.UpdateConfigMode.UpdateTokenInfoScopeChain.discriminator, tokenInfo.scopeConfiguration.priceChain));
1067
- updateReserveIxnsArgs.push(createUpdateReserveIxnsArg(types_1.UpdateConfigMode.UpdateTokenInfoScopeTwap.discriminator, tokenInfo.scopeConfiguration.twapChain));
1068
- updateReserveIxnsArgs.push(createUpdateReserveIxnsArg(types_1.UpdateConfigMode.UpdateSwitchboardFeed.discriminator, tokenInfo.switchboardConfiguration.priceAggregator));
1069
- updateReserveIxnsArgs.push(createUpdateReserveIxnsArg(types_1.UpdateConfigMode.UpdateSwitchboardTwapFeed.discriminator, tokenInfo.switchboardConfiguration.twapAggregator));
1070
- updateReserveIxnsArgs.push(createUpdateReserveIxnsArg(types_1.UpdateConfigMode.UpdatePythPrice.discriminator, tokenInfo.pythConfiguration.price));
1071
- updateReserveIxnsArgs.push(createUpdateReserveIxnsArg(types_1.UpdateConfigMode.UpdateBlockPriceUsage.discriminator, tokenInfo.blockPriceUsage));
1056
+ updateReserveIxsArgs.push(createUpdateReserveIxsArg(types_1.UpdateConfigMode.UpdateTokenInfoName.discriminator, tokenInfo.name));
1057
+ updateReserveIxsArgs.push(createUpdateReserveIxsArg(types_1.UpdateConfigMode.UpdateTokenInfoLowerHeuristic.discriminator, tokenInfo.heuristic.lower.toNumber()));
1058
+ updateReserveIxsArgs.push(createUpdateReserveIxsArg(types_1.UpdateConfigMode.UpdateTokenInfoUpperHeuristic.discriminator, tokenInfo.heuristic.upper.toNumber()));
1059
+ updateReserveIxsArgs.push(createUpdateReserveIxsArg(types_1.UpdateConfigMode.UpdateTokenInfoExpHeuristic.discriminator, tokenInfo.heuristic.exp.toNumber()));
1060
+ updateReserveIxsArgs.push(createUpdateReserveIxsArg(types_1.UpdateConfigMode.UpdateTokenInfoTwapDivergence.discriminator, tokenInfo.maxTwapDivergenceBps.toNumber()));
1061
+ updateReserveIxsArgs.push(createUpdateReserveIxsArg(types_1.UpdateConfigMode.UpdateTokenInfoPriceMaxAge.discriminator, tokenInfo.maxAgePriceSeconds.toNumber()));
1062
+ updateReserveIxsArgs.push(createUpdateReserveIxsArg(types_1.UpdateConfigMode.UpdateTokenInfoTwapMaxAge.discriminator, tokenInfo.maxAgeTwapSeconds.toNumber()));
1063
+ updateReserveIxsArgs.push(createUpdateReserveIxsArg(types_1.UpdateConfigMode.UpdateTokenInfoScopeChain.discriminator, tokenInfo.scopeConfiguration.priceChain));
1064
+ updateReserveIxsArgs.push(createUpdateReserveIxsArg(types_1.UpdateConfigMode.UpdateTokenInfoScopeTwap.discriminator, tokenInfo.scopeConfiguration.twapChain));
1065
+ updateReserveIxsArgs.push(createUpdateReserveIxsArg(types_1.UpdateConfigMode.UpdateSwitchboardFeed.discriminator, tokenInfo.switchboardConfiguration.priceAggregator));
1066
+ updateReserveIxsArgs.push(createUpdateReserveIxsArg(types_1.UpdateConfigMode.UpdateSwitchboardTwapFeed.discriminator, tokenInfo.switchboardConfiguration.twapAggregator));
1067
+ updateReserveIxsArgs.push(createUpdateReserveIxsArg(types_1.UpdateConfigMode.UpdatePythPrice.discriminator, tokenInfo.pythConfiguration.price));
1068
+ updateReserveIxsArgs.push(createUpdateReserveIxsArg(types_1.UpdateConfigMode.UpdateBlockPriceUsage.discriminator, tokenInfo.blockPriceUsage));
1072
1069
  }
1073
1070
  else {
1074
1071
  if (!(0, utils_2.sameLengthArrayEquals)(reserve.config.tokenInfo.name, tokenInfo.name)) {
1075
- updateReserveIxnsArgs.push(createUpdateReserveIxnsArg(types_1.UpdateConfigMode.UpdateTokenInfoName.discriminator, tokenInfo.name));
1072
+ updateReserveIxsArgs.push(createUpdateReserveIxsArg(types_1.UpdateConfigMode.UpdateTokenInfoName.discriminator, tokenInfo.name));
1076
1073
  }
1077
1074
  if (!reserve.config.tokenInfo.heuristic.lower.eq(tokenInfo.heuristic.lower)) {
1078
- updateReserveIxnsArgs.push(createUpdateReserveIxnsArg(types_1.UpdateConfigMode.UpdateTokenInfoLowerHeuristic.discriminator, tokenInfo.heuristic.lower.toNumber()));
1075
+ updateReserveIxsArgs.push(createUpdateReserveIxsArg(types_1.UpdateConfigMode.UpdateTokenInfoLowerHeuristic.discriminator, tokenInfo.heuristic.lower.toNumber()));
1079
1076
  }
1080
1077
  if (!reserve.config.tokenInfo.heuristic.upper.eq(tokenInfo.heuristic.upper)) {
1081
- updateReserveIxnsArgs.push(createUpdateReserveIxnsArg(types_1.UpdateConfigMode.UpdateTokenInfoUpperHeuristic.discriminator, tokenInfo.heuristic.upper.toNumber()));
1078
+ updateReserveIxsArgs.push(createUpdateReserveIxsArg(types_1.UpdateConfigMode.UpdateTokenInfoUpperHeuristic.discriminator, tokenInfo.heuristic.upper.toNumber()));
1082
1079
  }
1083
1080
  if (!reserve.config.tokenInfo.heuristic.exp.eq(tokenInfo.heuristic.exp)) {
1084
- updateReserveIxnsArgs.push(createUpdateReserveIxnsArg(types_1.UpdateConfigMode.UpdateTokenInfoExpHeuristic.discriminator, tokenInfo.heuristic.exp.toNumber()));
1081
+ updateReserveIxsArgs.push(createUpdateReserveIxsArg(types_1.UpdateConfigMode.UpdateTokenInfoExpHeuristic.discriminator, tokenInfo.heuristic.exp.toNumber()));
1085
1082
  }
1086
1083
  if (!reserve.config.tokenInfo.maxTwapDivergenceBps.eq(tokenInfo.maxTwapDivergenceBps)) {
1087
- updateReserveIxnsArgs.push(createUpdateReserveIxnsArg(types_1.UpdateConfigMode.UpdateTokenInfoTwapDivergence.discriminator, tokenInfo.maxTwapDivergenceBps.toNumber()));
1084
+ updateReserveIxsArgs.push(createUpdateReserveIxsArg(types_1.UpdateConfigMode.UpdateTokenInfoTwapDivergence.discriminator, tokenInfo.maxTwapDivergenceBps.toNumber()));
1088
1085
  }
1089
1086
  if (!reserve.config.tokenInfo.maxAgePriceSeconds.eq(tokenInfo.maxAgePriceSeconds)) {
1090
- updateReserveIxnsArgs.push(createUpdateReserveIxnsArg(types_1.UpdateConfigMode.UpdateTokenInfoPriceMaxAge.discriminator, tokenInfo.maxAgePriceSeconds.toNumber()));
1087
+ updateReserveIxsArgs.push(createUpdateReserveIxsArg(types_1.UpdateConfigMode.UpdateTokenInfoPriceMaxAge.discriminator, tokenInfo.maxAgePriceSeconds.toNumber()));
1091
1088
  }
1092
1089
  if (!reserve.config.tokenInfo.maxAgeTwapSeconds.eq(tokenInfo.maxAgeTwapSeconds)) {
1093
- updateReserveIxnsArgs.push(createUpdateReserveIxnsArg(types_1.UpdateConfigMode.UpdateTokenInfoTwapMaxAge.discriminator, tokenInfo.maxAgeTwapSeconds.toNumber()));
1090
+ updateReserveIxsArgs.push(createUpdateReserveIxsArg(types_1.UpdateConfigMode.UpdateTokenInfoTwapMaxAge.discriminator, tokenInfo.maxAgeTwapSeconds.toNumber()));
1094
1091
  }
1095
1092
  if (!(0, utils_2.sameLengthArrayEquals)(reserve.config.tokenInfo.scopeConfiguration.priceChain, tokenInfo.scopeConfiguration.priceChain)) {
1096
- updateReserveIxnsArgs.push(createUpdateReserveIxnsArg(types_1.UpdateConfigMode.UpdateTokenInfoScopeChain.discriminator, tokenInfo.scopeConfiguration.priceChain));
1093
+ updateReserveIxsArgs.push(createUpdateReserveIxsArg(types_1.UpdateConfigMode.UpdateTokenInfoScopeChain.discriminator, tokenInfo.scopeConfiguration.priceChain));
1097
1094
  }
1098
1095
  if (!(0, utils_2.sameLengthArrayEquals)(reserve.config.tokenInfo.scopeConfiguration.twapChain, tokenInfo.scopeConfiguration.twapChain)) {
1099
- updateReserveIxnsArgs.push(createUpdateReserveIxnsArg(types_1.UpdateConfigMode.UpdateTokenInfoScopeTwap.discriminator, tokenInfo.scopeConfiguration.twapChain));
1096
+ updateReserveIxsArgs.push(createUpdateReserveIxsArg(types_1.UpdateConfigMode.UpdateTokenInfoScopeTwap.discriminator, tokenInfo.scopeConfiguration.twapChain));
1100
1097
  }
1101
1098
  if (!reserve.config.tokenInfo.switchboardConfiguration.priceAggregator.equals(tokenInfo.switchboardConfiguration.priceAggregator)) {
1102
- updateReserveIxnsArgs.push(createUpdateReserveIxnsArg(types_1.UpdateConfigMode.UpdateSwitchboardFeed.discriminator, tokenInfo.switchboardConfiguration.priceAggregator));
1099
+ updateReserveIxsArgs.push(createUpdateReserveIxsArg(types_1.UpdateConfigMode.UpdateSwitchboardFeed.discriminator, tokenInfo.switchboardConfiguration.priceAggregator));
1103
1100
  }
1104
1101
  if (!reserve.config.tokenInfo.switchboardConfiguration.twapAggregator.equals(tokenInfo.switchboardConfiguration.twapAggregator)) {
1105
- updateReserveIxnsArgs.push(createUpdateReserveIxnsArg(types_1.UpdateConfigMode.UpdateSwitchboardTwapFeed.discriminator, tokenInfo.switchboardConfiguration.twapAggregator));
1102
+ updateReserveIxsArgs.push(createUpdateReserveIxsArg(types_1.UpdateConfigMode.UpdateSwitchboardTwapFeed.discriminator, tokenInfo.switchboardConfiguration.twapAggregator));
1106
1103
  }
1107
1104
  if (!reserve.config.tokenInfo.pythConfiguration.price.equals(tokenInfo.pythConfiguration.price)) {
1108
- updateReserveIxnsArgs.push(createUpdateReserveIxnsArg(types_1.UpdateConfigMode.UpdatePythPrice.discriminator, tokenInfo.pythConfiguration.price));
1105
+ updateReserveIxsArgs.push(createUpdateReserveIxsArg(types_1.UpdateConfigMode.UpdatePythPrice.discriminator, tokenInfo.pythConfiguration.price));
1109
1106
  }
1110
1107
  if (reserve.config.tokenInfo.blockPriceUsage !== tokenInfo.blockPriceUsage) {
1111
- updateReserveIxnsArgs.push(createUpdateReserveIxnsArg(types_1.UpdateConfigMode.UpdateBlockPriceUsage.discriminator, tokenInfo.blockPriceUsage));
1108
+ updateReserveIxsArgs.push(createUpdateReserveIxsArg(types_1.UpdateConfigMode.UpdateBlockPriceUsage.discriminator, tokenInfo.blockPriceUsage));
1112
1109
  }
1113
1110
  if (!reserve.config.tokenInfo.scopeConfiguration.priceFeed.equals(tokenInfo.scopeConfiguration.priceFeed)) {
1114
- updateReserveIxnsArgs.push(createUpdateReserveIxnsArg(types_1.UpdateConfigMode.UpdateScopePriceFeed.discriminator, tokenInfo.scopeConfiguration.priceFeed));
1111
+ updateReserveIxsArgs.push(createUpdateReserveIxsArg(types_1.UpdateConfigMode.UpdateScopePriceFeed.discriminator, tokenInfo.scopeConfiguration.priceFeed));
1115
1112
  }
1116
1113
  }
1117
1114
  break;
@@ -1119,7 +1116,7 @@ function handleConfigUpdate(key, reserve, reserveConfig, updateReserveIxnsArgs)
1119
1116
  if (reserve === undefined ||
1120
1117
  !reserve.config.depositWithdrawalCap.configCapacity.eq(reserveConfig.depositWithdrawalCap.configCapacity) ||
1121
1118
  !reserve.config.depositWithdrawalCap.configIntervalLengthSeconds.eq(reserveConfig.depositWithdrawalCap.configIntervalLengthSeconds)) {
1122
- updateReserveIxnsArgs.push(createUpdateReserveIxnsArg(types_1.UpdateConfigMode.UpdateDepositWithdrawalCap.discriminator, [
1119
+ updateReserveIxsArgs.push(createUpdateReserveIxsArg(types_1.UpdateConfigMode.UpdateDepositWithdrawalCap.discriminator, [
1123
1120
  reserveConfig.depositWithdrawalCap.configCapacity.toNumber(),
1124
1121
  reserveConfig.depositWithdrawalCap.configIntervalLengthSeconds.toNumber(),
1125
1122
  ]));
@@ -1129,7 +1126,7 @@ function handleConfigUpdate(key, reserve, reserveConfig, updateReserveIxnsArgs)
1129
1126
  if (reserve === undefined ||
1130
1127
  !reserve.config.debtWithdrawalCap.configCapacity.eq(reserveConfig.debtWithdrawalCap.configCapacity) ||
1131
1128
  !reserve.config.debtWithdrawalCap.configIntervalLengthSeconds.eq(reserveConfig.debtWithdrawalCap.configIntervalLengthSeconds)) {
1132
- updateReserveIxnsArgs.push(createUpdateReserveIxnsArg(types_1.UpdateConfigMode.UpdateDebtWithdrawalCap.discriminator, [
1129
+ updateReserveIxsArgs.push(createUpdateReserveIxsArg(types_1.UpdateConfigMode.UpdateDebtWithdrawalCap.discriminator, [
1133
1130
  reserveConfig.debtWithdrawalCap.configCapacity.toNumber(),
1134
1131
  reserveConfig.debtWithdrawalCap.configIntervalLengthSeconds.toNumber(),
1135
1132
  ]));
@@ -1138,49 +1135,49 @@ function handleConfigUpdate(key, reserve, reserveConfig, updateReserveIxnsArgs)
1138
1135
  case 'elevationGroups':
1139
1136
  if (reserve === undefined ||
1140
1137
  !(0, utils_2.sameLengthArrayEquals)(reserve.config.elevationGroups, reserveConfig.elevationGroups)) {
1141
- updateReserveIxnsArgs.push(createUpdateReserveIxnsArg(types_1.UpdateConfigMode.UpdateElevationGroup.discriminator, reserveConfig.elevationGroups));
1138
+ updateReserveIxsArgs.push(createUpdateReserveIxsArg(types_1.UpdateConfigMode.UpdateElevationGroup.discriminator, reserveConfig.elevationGroups));
1142
1139
  }
1143
1140
  break;
1144
1141
  case 'disableUsageAsCollOutsideEmode':
1145
1142
  if (reserve === undefined ||
1146
1143
  reserve.config.disableUsageAsCollOutsideEmode !== reserveConfig.disableUsageAsCollOutsideEmode) {
1147
- updateReserveIxnsArgs.push(createUpdateReserveIxnsArg(types_1.UpdateConfigMode.UpdateDisableUsageAsCollateralOutsideEmode.discriminator, reserveConfig.disableUsageAsCollOutsideEmode));
1144
+ updateReserveIxsArgs.push(createUpdateReserveIxsArg(types_1.UpdateConfigMode.UpdateDisableUsageAsCollateralOutsideEmode.discriminator, reserveConfig.disableUsageAsCollOutsideEmode));
1148
1145
  }
1149
1146
  break;
1150
1147
  case 'utilizationLimitBlockBorrowingAbovePct':
1151
1148
  if (reserve === undefined ||
1152
1149
  reserve.config.utilizationLimitBlockBorrowingAbovePct !== reserveConfig.utilizationLimitBlockBorrowingAbovePct) {
1153
- updateReserveIxnsArgs.push(createUpdateReserveIxnsArg(types_1.UpdateConfigMode.UpdateBlockBorrowingAboveUtilizationPct.discriminator, reserveConfig.utilizationLimitBlockBorrowingAbovePct));
1150
+ updateReserveIxsArgs.push(createUpdateReserveIxsArg(types_1.UpdateConfigMode.UpdateBlockBorrowingAboveUtilizationPct.discriminator, reserveConfig.utilizationLimitBlockBorrowingAbovePct));
1154
1151
  }
1155
1152
  break;
1156
1153
  case 'autodeleverageEnabled':
1157
1154
  if (reserve === undefined || reserve.config.autodeleverageEnabled !== reserveConfig.autodeleverageEnabled) {
1158
- updateReserveIxnsArgs.push(createUpdateReserveIxnsArg(types_1.UpdateConfigMode.UpdateAutodeleverageEnabled.discriminator, reserveConfig.autodeleverageEnabled));
1155
+ updateReserveIxsArgs.push(createUpdateReserveIxsArg(types_1.UpdateConfigMode.UpdateAutodeleverageEnabled.discriminator, reserveConfig.autodeleverageEnabled));
1159
1156
  }
1160
1157
  break;
1161
1158
  case 'borrowLimitOutsideElevationGroup':
1162
1159
  if (reserve === undefined ||
1163
1160
  !reserve.config.borrowLimitOutsideElevationGroup.eq(reserveConfig.borrowLimitOutsideElevationGroup)) {
1164
- updateReserveIxnsArgs.push(createUpdateReserveIxnsArg(types_1.UpdateConfigMode.UpdateBorrowLimitOutsideElevationGroup.discriminator, reserveConfig.borrowLimitOutsideElevationGroup.toNumber()));
1161
+ updateReserveIxsArgs.push(createUpdateReserveIxsArg(types_1.UpdateConfigMode.UpdateBorrowLimitOutsideElevationGroup.discriminator, reserveConfig.borrowLimitOutsideElevationGroup.toNumber()));
1165
1162
  }
1166
1163
  break;
1167
1164
  case 'borrowLimitAgainstThisCollateralInElevationGroup':
1168
1165
  if (reserve === undefined ||
1169
1166
  !(0, utils_2.sameLengthArrayEquals)(reserve.config.borrowLimitAgainstThisCollateralInElevationGroup, reserveConfig.borrowLimitAgainstThisCollateralInElevationGroup)) {
1170
- updateReserveIxnsArgs.push(createUpdateReserveIxnsArg(types_1.UpdateConfigMode.UpdateBorrowLimitsInElevationGroupAgainstThisReserve.discriminator, reserveConfig.borrowLimitAgainstThisCollateralInElevationGroup.map((borrowLimit) => borrowLimit.toNumber())));
1167
+ updateReserveIxsArgs.push(createUpdateReserveIxsArg(types_1.UpdateConfigMode.UpdateBorrowLimitsInElevationGroupAgainstThisReserve.discriminator, reserveConfig.borrowLimitAgainstThisCollateralInElevationGroup.map((borrowLimit) => borrowLimit.toNumber())));
1171
1168
  }
1172
1169
  break;
1173
1170
  case 'deleveragingBonusIncreaseBpsPerDay':
1174
1171
  if (reserve === undefined ||
1175
1172
  !reserve.config.deleveragingBonusIncreaseBpsPerDay.eq(reserveConfig.deleveragingBonusIncreaseBpsPerDay)) {
1176
- updateReserveIxnsArgs.push(createUpdateReserveIxnsArg(types_1.UpdateConfigMode.UpdateDeleveragingBonusIncreaseBpsPerDay.discriminator, reserveConfig.deleveragingBonusIncreaseBpsPerDay.toNumber()));
1173
+ updateReserveIxsArgs.push(createUpdateReserveIxsArg(types_1.UpdateConfigMode.UpdateDeleveragingBonusIncreaseBpsPerDay.discriminator, reserveConfig.deleveragingBonusIncreaseBpsPerDay.toNumber()));
1177
1174
  }
1178
1175
  break;
1179
1176
  default:
1180
1177
  (0, utils_2.assertNever)(key); // Will cause compile error if any case is missing
1181
1178
  }
1182
1179
  }
1183
- function createUpdateReserveIxnsArg(discriminator, value) {
1180
+ function createUpdateReserveIxsArg(discriminator, value) {
1184
1181
  return {
1185
1182
  // Note: below we add 1 to the discriminator, because UpdateConfigMode in SC starts from 1, while the idl-codegen
1186
1183
  // creates the TS counterparts starting from 0:
@@ -1207,23 +1204,23 @@ function updateEntireReserveConfigIx(marketWithAddress, reserveAddress, reserveC
1207
1204
  return ix;
1208
1205
  }
1209
1206
  function parseForChangesReserveConfigAndGetIxs(marketWithAddress, reserve, reserveAddress, reserveConfig, programId) {
1210
- let updateReserveIxnsArgs = [];
1207
+ let updateReserveIxsArgs = [];
1211
1208
  for (const key in reserveConfig.toEncodable()) {
1212
1209
  if (isExcludedReserveConfigKey(key)) {
1213
1210
  continue;
1214
1211
  }
1215
- handleConfigUpdate(key, reserve, reserveConfig, updateReserveIxnsArgs);
1212
+ handleConfigUpdate(key, reserve, reserveConfig, updateReserveIxsArgs);
1216
1213
  }
1217
- const ixns = [];
1218
- updateReserveIxnsArgs = (0, exports.sortIxnsByPriority)(updateReserveIxnsArgs);
1219
- updateReserveIxnsArgs.forEach((updateReserveConfigArgs) => {
1214
+ const ixs = [];
1215
+ updateReserveIxsArgs = (0, exports.sortIxsByPriority)(updateReserveIxsArgs);
1216
+ updateReserveIxsArgs.forEach((updateReserveConfigArgs) => {
1220
1217
  let skipValidation = false;
1221
1218
  if ((0, exports.modeMatches)(updateReserveConfigArgs.mode) && !reserve?.liquidity.availableAmount.gten(utils_1.MIN_INITIAL_DEPOSIT)) {
1222
1219
  skipValidation = true;
1223
1220
  }
1224
- ixns.push(updateReserveConfigIx(marketWithAddress, reserveAddress, updateReserveConfigArgs.mode, updateReserveConfigArgs.value, programId, skipValidation));
1221
+ ixs.push(updateReserveConfigIx(marketWithAddress, reserveAddress, updateReserveConfigArgs.mode, updateReserveConfigArgs.value, programId, skipValidation));
1225
1222
  });
1226
- return ixns;
1223
+ return ixs;
1227
1224
  }
1228
1225
  function updateReserveConfigEncodedValue(discriminator, value) {
1229
1226
  let buffer;
@@ -1350,10 +1347,10 @@ const modeMatches = (mode) => {
1350
1347
  return validModes.includes(mode);
1351
1348
  };
1352
1349
  exports.modeMatches = modeMatches;
1353
- // Sort update reserve ixns, to first have the oracle config updates first
1350
+ // Sort update reserve ixs, to first have the oracle config updates first
1354
1351
  // In order to skip the validation for the scope config updates
1355
- const sortIxnsByPriority = (updateReserveIxnsArgs) => {
1356
- return updateReserveIxnsArgs.sort((a, b) => {
1352
+ const sortIxsByPriority = (updateReserveIxsArgs) => {
1353
+ return updateReserveIxsArgs.sort((a, b) => {
1357
1354
  const isPriorityA = a.mode === 20 || a.mode === 16;
1358
1355
  const isPriorityB = b.mode === 20 || b.mode === 16;
1359
1356
  if (isPriorityA && !isPriorityB) {
@@ -1365,5 +1362,5 @@ const sortIxnsByPriority = (updateReserveIxnsArgs) => {
1365
1362
  return 0;
1366
1363
  });
1367
1364
  };
1368
- exports.sortIxnsByPriority = sortIxnsByPriority;
1365
+ exports.sortIxsByPriority = sortIxsByPriority;
1369
1366
  //# sourceMappingURL=reserve.js.map