@kamino-finance/klend-sdk 5.10.19 → 5.10.21

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.
@@ -933,144 +933,97 @@ function updateReserveConfigIx(marketWithAddress, reserveAddress, modeDiscrimina
933
933
  const ix = (0, lib_1.updateReserveConfig)(args, accounts, programId);
934
934
  return ix;
935
935
  }
936
- function updateEntireReserveConfigIx(marketWithAddress, reserveAddress, reserveConfig, programId) {
937
- const layout = types_1.ReserveConfig.layout();
938
- const data = Buffer.alloc(1000);
939
- const len = layout.encode(reserveConfig.toEncodable(), data);
940
- const value = Uint8Array.from([...data.subarray(0, len)]);
941
- const args = {
942
- mode: new anchor.BN(25),
943
- value: value,
944
- skipValidation: false,
945
- };
946
- const accounts = {
947
- lendingMarketOwner: marketWithAddress.state.lendingMarketOwner,
948
- lendingMarket: marketWithAddress.address,
949
- reserve: reserveAddress,
950
- };
951
- const ix = (0, lib_1.updateReserveConfig)(args, accounts, programId);
952
- return ix;
936
+ const EXCLUDED_RESERVE_CONFIG_KEYS = ['reserved1', 'reserved2', 'reserved3'];
937
+ function isExcludedReserveConfigKey(value) {
938
+ return EXCLUDED_RESERVE_CONFIG_KEYS.includes(value);
953
939
  }
954
- function parseForChangesReserveConfigAndGetIxs(marketWithAddress, reserve, reserveAddress, reserveConfig, programId) {
955
- const updateReserveIxnsArgs = [];
956
- for (const key in reserveConfig.toEncodable()) {
957
- if (key === 'borrowRateCurve') {
958
- if (reserve === undefined) {
959
- updateReserveIxnsArgs.push({
960
- mode: UpdateConfigMode_1.UpdateBorrowRateCurve.discriminator,
961
- value: updateReserveConfigEncodedValue(UpdateConfigMode_1.UpdateBorrowRateCurve.discriminator, reserveConfig.borrowRateCurve),
962
- });
963
- }
964
- else {
965
- for (let i = 0; i < reserveConfig.borrowRateCurve.points.length; i++) {
966
- if (reserve.config.borrowRateCurve.points[i].utilizationRateBps !==
967
- reserveConfig.borrowRateCurve.points[i].utilizationRateBps ||
968
- reserve.config.borrowRateCurve.points[i].borrowRateBps !==
969
- reserveConfig.borrowRateCurve.points[i].borrowRateBps) {
970
- updateReserveIxnsArgs.push({
971
- mode: UpdateConfigMode_1.UpdateBorrowRateCurve.discriminator,
972
- value: updateReserveConfigEncodedValue(UpdateConfigMode_1.UpdateBorrowRateCurve.discriminator, reserveConfig.borrowRateCurve),
973
- });
974
- break;
975
- }
976
- }
977
- }
978
- }
979
- else if (key === 'fees') {
940
+ function handleConfigUpdate(key, reserve, reserveConfig, updateReserveIxnsArgs) {
941
+ switch (key) {
942
+ case 'status':
980
943
  if (reserve === undefined) {
981
944
  updateReserveIxnsArgs.push({
982
- mode: types_1.UpdateConfigMode.UpdateFeesBorrowFee.discriminator,
983
- value: updateReserveConfigEncodedValue(types_1.UpdateConfigMode.UpdateFeesBorrowFee.discriminator, reserveConfig.fees.borrowFeeSf.toNumber()),
984
- });
985
- updateReserveIxnsArgs.push({
986
- mode: types_1.UpdateConfigMode.UpdateFeesFlashLoanFee.discriminator,
987
- value: updateReserveConfigEncodedValue(types_1.UpdateConfigMode.UpdateFeesFlashLoanFee.discriminator, reserveConfig.fees.flashLoanFeeSf.toNumber()),
988
- });
989
- }
990
- else if (!reserve.config.fees.borrowFeeSf.eq(reserveConfig.fees.borrowFeeSf)) {
991
- updateReserveIxnsArgs.push({
992
- mode: types_1.UpdateConfigMode.UpdateFeesBorrowFee.discriminator,
993
- value: updateReserveConfigEncodedValue(types_1.UpdateConfigMode.UpdateFeesBorrowFee.discriminator, reserveConfig.fees.borrowFeeSf.toNumber()),
945
+ mode: types_1.UpdateConfigMode.UpdateReserveStatus.discriminator,
946
+ value: updateReserveConfigEncodedValue(types_1.UpdateConfigMode.UpdateReserveStatus.discriminator, reserveConfig.status),
994
947
  });
995
948
  }
996
- else if (!reserve.config.fees.flashLoanFeeSf.eq(reserveConfig.fees.flashLoanFeeSf)) {
949
+ else if (reserve.config.status !== reserveConfig.status) {
997
950
  updateReserveIxnsArgs.push({
998
- mode: types_1.UpdateConfigMode.UpdateFeesFlashLoanFee.discriminator,
999
- value: updateReserveConfigEncodedValue(types_1.UpdateConfigMode.UpdateFeesFlashLoanFee.discriminator, reserveConfig.fees.flashLoanFeeSf.toNumber()),
951
+ mode: types_1.UpdateConfigMode.UpdateReserveStatus.discriminator,
952
+ value: updateReserveConfigEncodedValue(types_1.UpdateConfigMode.UpdateReserveStatus.discriminator, reserveConfig.status),
1000
953
  });
1001
954
  }
1002
- }
1003
- else if (key === 'depositLimit') {
955
+ break;
956
+ case 'assetTier':
1004
957
  if (reserve === undefined) {
1005
958
  updateReserveIxnsArgs.push({
1006
- mode: types_1.UpdateConfigMode.UpdateDepositLimit.discriminator,
1007
- value: updateReserveConfigEncodedValue(types_1.UpdateConfigMode.UpdateDepositLimit.discriminator, reserveConfig.depositLimit.toNumber()),
959
+ mode: types_1.UpdateConfigMode.UpdateAssetTier.discriminator,
960
+ value: updateReserveConfigEncodedValue(types_1.UpdateConfigMode.UpdateAssetTier.discriminator, reserveConfig.assetTier),
1008
961
  });
1009
962
  }
1010
- else if (!reserve.config.depositLimit.eq(reserveConfig.depositLimit)) {
963
+ else if (reserve.config.assetTier !== reserveConfig.assetTier) {
1011
964
  updateReserveIxnsArgs.push({
1012
- mode: types_1.UpdateConfigMode.UpdateDepositLimit.discriminator,
1013
- value: updateReserveConfigEncodedValue(types_1.UpdateConfigMode.UpdateDepositLimit.discriminator, reserveConfig.depositLimit.toNumber()),
965
+ mode: types_1.UpdateConfigMode.UpdateAssetTier.discriminator,
966
+ value: updateReserveConfigEncodedValue(types_1.UpdateConfigMode.UpdateAssetTier.discriminator, reserveConfig.assetTier),
1014
967
  });
1015
968
  }
1016
- }
1017
- else if (key === 'borrowLimit') {
969
+ break;
970
+ case 'hostFixedInterestRateBps':
1018
971
  if (reserve === undefined) {
1019
972
  updateReserveIxnsArgs.push({
1020
- mode: types_1.UpdateConfigMode.UpdateBorrowLimit.discriminator,
1021
- value: updateReserveConfigEncodedValue(types_1.UpdateConfigMode.UpdateBorrowLimit.discriminator, reserveConfig.borrowLimit.toNumber()),
973
+ mode: types_1.UpdateConfigMode.UpdateHostFixedInterestRateBps.discriminator,
974
+ value: updateReserveConfigEncodedValue(types_1.UpdateConfigMode.UpdateHostFixedInterestRateBps.discriminator, reserveConfig.hostFixedInterestRateBps),
1022
975
  });
1023
976
  }
1024
- else if (!reserve.config.borrowLimit.eq(reserveConfig.borrowLimit)) {
977
+ else if (reserve.config.hostFixedInterestRateBps !== reserveConfig.hostFixedInterestRateBps) {
1025
978
  updateReserveIxnsArgs.push({
1026
- mode: types_1.UpdateConfigMode.UpdateBorrowLimit.discriminator,
1027
- value: updateReserveConfigEncodedValue(types_1.UpdateConfigMode.UpdateBorrowLimit.discriminator, reserveConfig.borrowLimit.toNumber()),
979
+ mode: types_1.UpdateConfigMode.UpdateHostFixedInterestRateBps.discriminator,
980
+ value: updateReserveConfigEncodedValue(types_1.UpdateConfigMode.UpdateHostFixedInterestRateBps.discriminator, reserveConfig.hostFixedInterestRateBps),
1028
981
  });
1029
982
  }
1030
- }
1031
- else if (key === 'maxLiquidationBonusBps') {
983
+ break;
984
+ case 'protocolTakeRatePct':
1032
985
  if (reserve === undefined) {
1033
986
  updateReserveIxnsArgs.push({
1034
- mode: types_1.UpdateConfigMode.UpdateMaxLiquidationBonusBps.discriminator,
1035
- value: updateReserveConfigEncodedValue(types_1.UpdateConfigMode.UpdateMaxLiquidationBonusBps.discriminator, reserveConfig.maxLiquidationBonusBps),
987
+ mode: types_1.UpdateConfigMode.UpdateProtocolTakeRate.discriminator,
988
+ value: updateReserveConfigEncodedValue(types_1.UpdateConfigMode.UpdateProtocolTakeRate.discriminator, reserveConfig.protocolTakeRatePct),
1036
989
  });
1037
990
  }
1038
- else if (reserve.config.maxLiquidationBonusBps !== reserveConfig.maxLiquidationBonusBps) {
991
+ else if (reserve.config.protocolTakeRatePct !== reserveConfig.protocolTakeRatePct) {
1039
992
  updateReserveIxnsArgs.push({
1040
- mode: types_1.UpdateConfigMode.UpdateMaxLiquidationBonusBps.discriminator,
1041
- value: updateReserveConfigEncodedValue(types_1.UpdateConfigMode.UpdateMaxLiquidationBonusBps.discriminator, reserveConfig.maxLiquidationBonusBps),
993
+ mode: types_1.UpdateConfigMode.UpdateProtocolTakeRate.discriminator,
994
+ value: updateReserveConfigEncodedValue(types_1.UpdateConfigMode.UpdateProtocolTakeRate.discriminator, reserveConfig.protocolTakeRatePct),
1042
995
  });
1043
996
  }
1044
- }
1045
- else if (key === 'minLiquidationBonusBps') {
997
+ break;
998
+ case 'protocolLiquidationFeePct':
1046
999
  if (reserve === undefined) {
1047
1000
  updateReserveIxnsArgs.push({
1048
- mode: types_1.UpdateConfigMode.UpdateMinLiquidationBonusBps.discriminator,
1049
- value: updateReserveConfigEncodedValue(types_1.UpdateConfigMode.UpdateMinLiquidationBonusBps.discriminator, reserveConfig.minLiquidationBonusBps),
1001
+ mode: types_1.UpdateConfigMode.UpdateProtocolLiquidationFee.discriminator,
1002
+ value: updateReserveConfigEncodedValue(types_1.UpdateConfigMode.UpdateProtocolLiquidationFee.discriminator, reserveConfig.protocolLiquidationFeePct),
1050
1003
  });
1051
1004
  }
1052
- else if (reserve.config.minLiquidationBonusBps !== reserveConfig.minLiquidationBonusBps) {
1005
+ else if (reserve.config.protocolLiquidationFeePct !== reserveConfig.protocolLiquidationFeePct) {
1053
1006
  updateReserveIxnsArgs.push({
1054
- mode: types_1.UpdateConfigMode.UpdateMinLiquidationBonusBps.discriminator,
1055
- value: updateReserveConfigEncodedValue(types_1.UpdateConfigMode.UpdateMinLiquidationBonusBps.discriminator, reserveConfig.minLiquidationBonusBps),
1007
+ mode: types_1.UpdateConfigMode.UpdateProtocolLiquidationFee.discriminator,
1008
+ value: updateReserveConfigEncodedValue(types_1.UpdateConfigMode.UpdateProtocolLiquidationFee.discriminator, reserveConfig.protocolLiquidationFeePct),
1056
1009
  });
1057
1010
  }
1058
- }
1059
- else if (key === 'badDebtLiquidationBonusBps') {
1011
+ break;
1012
+ case 'loanToValuePct':
1060
1013
  if (reserve === undefined) {
1061
1014
  updateReserveIxnsArgs.push({
1062
- mode: types_1.UpdateConfigMode.UpdateBadDebtLiquidationBonusBps.discriminator,
1063
- value: updateReserveConfigEncodedValue(types_1.UpdateConfigMode.UpdateBadDebtLiquidationBonusBps.discriminator, reserveConfig.badDebtLiquidationBonusBps),
1015
+ mode: types_1.UpdateConfigMode.UpdateLoanToValuePct.discriminator,
1016
+ value: updateReserveConfigEncodedValue(types_1.UpdateConfigMode.UpdateLoanToValuePct.discriminator, reserveConfig.loanToValuePct),
1064
1017
  });
1065
1018
  }
1066
- else if (reserve.config.badDebtLiquidationBonusBps !== reserveConfig.badDebtLiquidationBonusBps) {
1019
+ else if (reserve.config.loanToValuePct !== reserveConfig.loanToValuePct) {
1067
1020
  updateReserveIxnsArgs.push({
1068
- mode: types_1.UpdateConfigMode.UpdateBadDebtLiquidationBonusBps.discriminator,
1069
- value: updateReserveConfigEncodedValue(types_1.UpdateConfigMode.UpdateBadDebtLiquidationBonusBps.discriminator, reserveConfig.badDebtLiquidationBonusBps),
1021
+ mode: types_1.UpdateConfigMode.UpdateLoanToValuePct.discriminator,
1022
+ value: updateReserveConfigEncodedValue(types_1.UpdateConfigMode.UpdateLoanToValuePct.discriminator, reserveConfig.loanToValuePct),
1070
1023
  });
1071
1024
  }
1072
- }
1073
- else if (key === 'liquidationThresholdPct') {
1025
+ break;
1026
+ case 'liquidationThresholdPct':
1074
1027
  if (reserve === undefined) {
1075
1028
  updateReserveIxnsArgs.push({
1076
1029
  mode: types_1.UpdateConfigMode.UpdateLiquidationThresholdPct.discriminator,
@@ -1083,64 +1036,64 @@ function parseForChangesReserveConfigAndGetIxs(marketWithAddress, reserve, reser
1083
1036
  value: updateReserveConfigEncodedValue(types_1.UpdateConfigMode.UpdateLiquidationThresholdPct.discriminator, reserveConfig.liquidationThresholdPct),
1084
1037
  });
1085
1038
  }
1086
- }
1087
- else if (key === 'protocolTakeRatePct') {
1039
+ break;
1040
+ case 'minLiquidationBonusBps':
1088
1041
  if (reserve === undefined) {
1089
1042
  updateReserveIxnsArgs.push({
1090
- mode: types_1.UpdateConfigMode.UpdateProtocolTakeRate.discriminator,
1091
- value: updateReserveConfigEncodedValue(types_1.UpdateConfigMode.UpdateProtocolTakeRate.discriminator, reserveConfig.protocolTakeRatePct),
1043
+ mode: types_1.UpdateConfigMode.UpdateMinLiquidationBonusBps.discriminator,
1044
+ value: updateReserveConfigEncodedValue(types_1.UpdateConfigMode.UpdateMinLiquidationBonusBps.discriminator, reserveConfig.minLiquidationBonusBps),
1092
1045
  });
1093
1046
  }
1094
- else if (reserve.config.protocolTakeRatePct !== reserveConfig.protocolTakeRatePct) {
1047
+ else if (reserve.config.minLiquidationBonusBps !== reserveConfig.minLiquidationBonusBps) {
1095
1048
  updateReserveIxnsArgs.push({
1096
- mode: types_1.UpdateConfigMode.UpdateProtocolTakeRate.discriminator,
1097
- value: updateReserveConfigEncodedValue(types_1.UpdateConfigMode.UpdateProtocolTakeRate.discriminator, reserveConfig.protocolTakeRatePct),
1049
+ mode: types_1.UpdateConfigMode.UpdateMinLiquidationBonusBps.discriminator,
1050
+ value: updateReserveConfigEncodedValue(types_1.UpdateConfigMode.UpdateMinLiquidationBonusBps.discriminator, reserveConfig.minLiquidationBonusBps),
1098
1051
  });
1099
1052
  }
1100
- }
1101
- else if (key === 'status') {
1053
+ break;
1054
+ case 'maxLiquidationBonusBps':
1102
1055
  if (reserve === undefined) {
1103
1056
  updateReserveIxnsArgs.push({
1104
- mode: types_1.UpdateConfigMode.UpdateReserveStatus.discriminator,
1105
- value: updateReserveConfigEncodedValue(types_1.UpdateConfigMode.UpdateReserveStatus.discriminator, reserveConfig.status),
1057
+ mode: types_1.UpdateConfigMode.UpdateMaxLiquidationBonusBps.discriminator,
1058
+ value: updateReserveConfigEncodedValue(types_1.UpdateConfigMode.UpdateMaxLiquidationBonusBps.discriminator, reserveConfig.maxLiquidationBonusBps),
1106
1059
  });
1107
1060
  }
1108
- else if (reserve.config.status !== reserveConfig.status) {
1061
+ else if (reserve.config.maxLiquidationBonusBps !== reserveConfig.maxLiquidationBonusBps) {
1109
1062
  updateReserveIxnsArgs.push({
1110
- mode: types_1.UpdateConfigMode.UpdateReserveStatus.discriminator,
1111
- value: updateReserveConfigEncodedValue(types_1.UpdateConfigMode.UpdateReserveStatus.discriminator, reserveConfig.status),
1063
+ mode: types_1.UpdateConfigMode.UpdateMaxLiquidationBonusBps.discriminator,
1064
+ value: updateReserveConfigEncodedValue(types_1.UpdateConfigMode.UpdateMaxLiquidationBonusBps.discriminator, reserveConfig.maxLiquidationBonusBps),
1112
1065
  });
1113
1066
  }
1114
- }
1115
- else if (key === 'disableUsageAsCollOutsideEmode') {
1067
+ break;
1068
+ case 'badDebtLiquidationBonusBps':
1116
1069
  if (reserve === undefined) {
1117
1070
  updateReserveIxnsArgs.push({
1118
- mode: types_1.UpdateConfigMode.UpdateDisableUsageAsCollateralOutsideEmode.discriminator,
1119
- value: updateReserveConfigEncodedValue(types_1.UpdateConfigMode.UpdateDisableUsageAsCollateralOutsideEmode.discriminator, reserveConfig.disableUsageAsCollOutsideEmode),
1071
+ mode: types_1.UpdateConfigMode.UpdateBadDebtLiquidationBonusBps.discriminator,
1072
+ value: updateReserveConfigEncodedValue(types_1.UpdateConfigMode.UpdateBadDebtLiquidationBonusBps.discriminator, reserveConfig.badDebtLiquidationBonusBps),
1120
1073
  });
1121
1074
  }
1122
- else if (reserve.config.disableUsageAsCollOutsideEmode !== reserveConfig.disableUsageAsCollOutsideEmode) {
1075
+ else if (reserve.config.badDebtLiquidationBonusBps !== reserveConfig.badDebtLiquidationBonusBps) {
1123
1076
  updateReserveIxnsArgs.push({
1124
- mode: types_1.UpdateConfigMode.UpdateDisableUsageAsCollateralOutsideEmode.discriminator,
1125
- value: updateReserveConfigEncodedValue(types_1.UpdateConfigMode.UpdateDisableUsageAsCollateralOutsideEmode.discriminator, reserveConfig.disableUsageAsCollOutsideEmode),
1077
+ mode: types_1.UpdateConfigMode.UpdateBadDebtLiquidationBonusBps.discriminator,
1078
+ value: updateReserveConfigEncodedValue(types_1.UpdateConfigMode.UpdateBadDebtLiquidationBonusBps.discriminator, reserveConfig.badDebtLiquidationBonusBps),
1126
1079
  });
1127
1080
  }
1128
- }
1129
- else if (key === 'utilizationLimitBlockBorrowingAbovePct') {
1081
+ break;
1082
+ case 'deleveragingMarginCallPeriodSecs':
1130
1083
  if (reserve === undefined) {
1131
1084
  updateReserveIxnsArgs.push({
1132
- mode: types_1.UpdateConfigMode.UpdateBlockBorrowingAboveUtilizationPct.discriminator,
1133
- value: updateReserveConfigEncodedValue(types_1.UpdateConfigMode.UpdateBlockBorrowingAboveUtilizationPct.discriminator, reserveConfig.utilizationLimitBlockBorrowingAbovePct),
1085
+ mode: types_1.UpdateConfigMode.UpdateDeleveragingMarginCallPeriod.discriminator,
1086
+ value: updateReserveConfigEncodedValue(types_1.UpdateConfigMode.UpdateDeleveragingMarginCallPeriod.discriminator, reserveConfig.deleveragingMarginCallPeriodSecs.toNumber()),
1134
1087
  });
1135
1088
  }
1136
- else if (reserve.config.utilizationLimitBlockBorrowingAbovePct !== reserveConfig.utilizationLimitBlockBorrowingAbovePct) {
1089
+ else if (!reserve.config.deleveragingMarginCallPeriodSecs.eq(reserveConfig.deleveragingMarginCallPeriodSecs)) {
1137
1090
  updateReserveIxnsArgs.push({
1138
- mode: types_1.UpdateConfigMode.UpdateBlockBorrowingAboveUtilizationPct.discriminator,
1139
- value: updateReserveConfigEncodedValue(types_1.UpdateConfigMode.UpdateBlockBorrowingAboveUtilizationPct.discriminator, reserveConfig.utilizationLimitBlockBorrowingAbovePct),
1091
+ mode: types_1.UpdateConfigMode.UpdateDeleveragingMarginCallPeriod.discriminator,
1092
+ value: updateReserveConfigEncodedValue(types_1.UpdateConfigMode.UpdateDeleveragingMarginCallPeriod.discriminator, reserveConfig.deleveragingMarginCallPeriodSecs.toNumber()),
1140
1093
  });
1141
1094
  }
1142
- }
1143
- else if (key === 'deleveragingThresholdDecreaseBpsPerDay') {
1095
+ break;
1096
+ case 'deleveragingThresholdDecreaseBpsPerDay':
1144
1097
  if (reserve === undefined) {
1145
1098
  updateReserveIxnsArgs.push({
1146
1099
  mode: types_1.UpdateConfigMode.UpdateDeleveragingThresholdDecreaseBpsPerDay.discriminator,
@@ -1153,89 +1106,54 @@ function parseForChangesReserveConfigAndGetIxs(marketWithAddress, reserve, reser
1153
1106
  value: updateReserveConfigEncodedValue(types_1.UpdateConfigMode.UpdateDeleveragingThresholdDecreaseBpsPerDay.discriminator, reserveConfig.deleveragingThresholdDecreaseBpsPerDay.toNumber()),
1154
1107
  });
1155
1108
  }
1156
- }
1157
- else if (key === 'depositWithdrawalCap') {
1158
- if (reserve === undefined) {
1159
- updateReserveIxnsArgs.push({
1160
- mode: types_1.UpdateConfigMode.UpdateDepositWithdrawalCap.discriminator,
1161
- value: updateReserveConfigEncodedValue(types_1.UpdateConfigMode.UpdateDepositWithdrawalCap.discriminator, [
1162
- reserveConfig.depositWithdrawalCap.configCapacity.toNumber(),
1163
- reserveConfig.depositWithdrawalCap.configIntervalLengthSeconds.toNumber(),
1164
- ]),
1165
- });
1166
- updateReserveIxnsArgs.push({
1167
- mode: types_1.UpdateConfigMode.UpdateDepositWithdrawalCapCurrentTotal.discriminator,
1168
- value: updateReserveConfigEncodedValue(types_1.UpdateConfigMode.UpdateDepositWithdrawalCap.discriminator, reserveConfig.depositWithdrawalCap.currentTotal.toNumber()),
1169
- });
1170
- }
1171
- else if (!reserve.config.depositWithdrawalCap.configCapacity.eq(reserveConfig.depositWithdrawalCap.configCapacity) ||
1172
- !reserve.config.depositWithdrawalCap.configIntervalLengthSeconds.eq(reserveConfig.depositWithdrawalCap.configIntervalLengthSeconds)) {
1173
- updateReserveIxnsArgs.push({
1174
- mode: types_1.UpdateConfigMode.UpdateDepositWithdrawalCap.discriminator,
1175
- value: updateReserveConfigEncodedValue(types_1.UpdateConfigMode.UpdateDepositWithdrawalCap.discriminator, [
1176
- reserveConfig.depositWithdrawalCap.configCapacity.toNumber(),
1177
- reserveConfig.depositWithdrawalCap.configIntervalLengthSeconds.toNumber(),
1178
- ]),
1179
- });
1180
- }
1181
- else if (!reserve.config.depositWithdrawalCap.currentTotal.eq(reserveConfig.depositWithdrawalCap.currentTotal)) {
1182
- updateReserveIxnsArgs.push({
1183
- mode: types_1.UpdateConfigMode.UpdateDepositWithdrawalCapCurrentTotal.discriminator,
1184
- value: updateReserveConfigEncodedValue(types_1.UpdateConfigMode.UpdateDepositWithdrawalCap.discriminator, reserveConfig.depositWithdrawalCap.currentTotal.toNumber()),
1185
- });
1186
- }
1187
- }
1188
- else if (key === 'debtWithdrawalCap') {
1109
+ break;
1110
+ case 'fees':
1189
1111
  if (reserve === undefined) {
1190
1112
  updateReserveIxnsArgs.push({
1191
- mode: types_1.UpdateConfigMode.UpdateDebtWithdrawalCap.discriminator,
1192
- value: updateReserveConfigEncodedValue(types_1.UpdateConfigMode.UpdateDebtWithdrawalCap.discriminator, [
1193
- reserveConfig.debtWithdrawalCap.configCapacity.toNumber(),
1194
- reserveConfig.debtWithdrawalCap.configIntervalLengthSeconds.toNumber(),
1195
- ]),
1113
+ mode: types_1.UpdateConfigMode.UpdateFeesBorrowFee.discriminator,
1114
+ value: updateReserveConfigEncodedValue(types_1.UpdateConfigMode.UpdateFeesBorrowFee.discriminator, reserveConfig.fees.borrowFeeSf.toNumber()),
1196
1115
  });
1197
1116
  updateReserveIxnsArgs.push({
1198
- mode: types_1.UpdateConfigMode.UpdateDebtWithdrawalCapCurrentTotal.discriminator,
1199
- value: updateReserveConfigEncodedValue(types_1.UpdateConfigMode.UpdateDebtWithdrawalCap.discriminator, reserveConfig.debtWithdrawalCap.currentTotal.toNumber()),
1117
+ mode: types_1.UpdateConfigMode.UpdateFeesFlashLoanFee.discriminator,
1118
+ value: updateReserveConfigEncodedValue(types_1.UpdateConfigMode.UpdateFeesFlashLoanFee.discriminator, reserveConfig.fees.flashLoanFeeSf.toNumber()),
1200
1119
  });
1201
1120
  }
1202
- else if (!reserve.config.debtWithdrawalCap.configCapacity.eq(reserveConfig.debtWithdrawalCap.configCapacity) ||
1203
- !reserve.config.debtWithdrawalCap.configIntervalLengthSeconds.eq(reserveConfig.debtWithdrawalCap.configIntervalLengthSeconds)) {
1121
+ else if (!reserve.config.fees.borrowFeeSf.eq(reserveConfig.fees.borrowFeeSf)) {
1204
1122
  updateReserveIxnsArgs.push({
1205
- mode: types_1.UpdateConfigMode.UpdateDebtWithdrawalCap.discriminator,
1206
- value: updateReserveConfigEncodedValue(types_1.UpdateConfigMode.UpdateDebtWithdrawalCap.discriminator, [
1207
- reserveConfig.debtWithdrawalCap.configCapacity.toNumber(),
1208
- reserveConfig.debtWithdrawalCap.configIntervalLengthSeconds.toNumber(),
1209
- ]),
1123
+ mode: types_1.UpdateConfigMode.UpdateFeesBorrowFee.discriminator,
1124
+ value: updateReserveConfigEncodedValue(types_1.UpdateConfigMode.UpdateFeesBorrowFee.discriminator, reserveConfig.fees.borrowFeeSf.toNumber()),
1210
1125
  });
1211
1126
  }
1212
- else if (!reserve.config.debtWithdrawalCap.currentTotal.eq(reserveConfig.debtWithdrawalCap.currentTotal)) {
1127
+ else if (!reserve.config.fees.flashLoanFeeSf.eq(reserveConfig.fees.flashLoanFeeSf)) {
1213
1128
  updateReserveIxnsArgs.push({
1214
- mode: types_1.UpdateConfigMode.UpdateDebtWithdrawalCapCurrentTotal.discriminator,
1215
- value: updateReserveConfigEncodedValue(types_1.UpdateConfigMode.UpdateDebtWithdrawalCap.discriminator, reserveConfig.debtWithdrawalCap.currentTotal.toNumber()),
1129
+ mode: types_1.UpdateConfigMode.UpdateFeesFlashLoanFee.discriminator,
1130
+ value: updateReserveConfigEncodedValue(types_1.UpdateConfigMode.UpdateFeesFlashLoanFee.discriminator, reserveConfig.fees.flashLoanFeeSf.toNumber()),
1216
1131
  });
1217
1132
  }
1218
- }
1219
- else if (key === 'elevationGroups') {
1133
+ break;
1134
+ case 'borrowRateCurve':
1220
1135
  if (reserve === undefined) {
1221
1136
  updateReserveIxnsArgs.push({
1222
- mode: types_1.UpdateConfigMode.UpdateElevationGroup.discriminator,
1223
- value: updateReserveConfigEncodedValue(types_1.UpdateConfigMode.UpdateElevationGroup.discriminator, reserveConfig.elevationGroups),
1137
+ mode: UpdateConfigMode_1.UpdateBorrowRateCurve.discriminator,
1138
+ value: updateReserveConfigEncodedValue(UpdateConfigMode_1.UpdateBorrowRateCurve.discriminator, reserveConfig.borrowRateCurve),
1224
1139
  });
1225
1140
  }
1226
1141
  else {
1227
- for (let i = 0; i < reserveConfig.elevationGroups.length; i++) {
1228
- if (reserve.config.elevationGroups[i] !== reserveConfig.elevationGroups[i]) {
1142
+ for (let i = 0; i < reserveConfig.borrowRateCurve.points.length; i++) {
1143
+ if (reserve.config.borrowRateCurve.points[i].utilizationRateBps !==
1144
+ reserveConfig.borrowRateCurve.points[i].utilizationRateBps ||
1145
+ reserve.config.borrowRateCurve.points[i].borrowRateBps !==
1146
+ reserveConfig.borrowRateCurve.points[i].borrowRateBps) {
1229
1147
  updateReserveIxnsArgs.push({
1230
- mode: types_1.UpdateConfigMode.UpdateElevationGroup.discriminator,
1231
- value: updateReserveConfigEncodedValue(types_1.UpdateConfigMode.UpdateElevationGroup.discriminator, reserveConfig.elevationGroups),
1148
+ mode: UpdateConfigMode_1.UpdateBorrowRateCurve.discriminator,
1149
+ value: updateReserveConfigEncodedValue(UpdateConfigMode_1.UpdateBorrowRateCurve.discriminator, reserveConfig.borrowRateCurve),
1232
1150
  });
1233
1151
  break;
1234
1152
  }
1235
1153
  }
1236
1154
  }
1237
- }
1238
- else if (key === 'borrowFactorPct') {
1155
+ break;
1156
+ case 'borrowFactorPct':
1239
1157
  if (reserve === undefined) {
1240
1158
  updateReserveIxnsArgs.push({
1241
1159
  mode: types_1.UpdateConfigMode.UpdateBorrowFactor.discriminator,
@@ -1248,64 +1166,36 @@ function parseForChangesReserveConfigAndGetIxs(marketWithAddress, reserve, reser
1248
1166
  value: updateReserveConfigEncodedValue(types_1.UpdateConfigMode.UpdateBorrowFactor.discriminator, reserveConfig.borrowFactorPct.toNumber()),
1249
1167
  });
1250
1168
  }
1251
- }
1252
- else if (key === 'loanToValuePct') {
1253
- if (reserve === undefined) {
1254
- updateReserveIxnsArgs.push({
1255
- mode: types_1.UpdateConfigMode.UpdateLoanToValuePct.discriminator,
1256
- value: updateReserveConfigEncodedValue(types_1.UpdateConfigMode.UpdateLoanToValuePct.discriminator, reserveConfig.loanToValuePct),
1257
- });
1258
- }
1259
- else if (reserve.config.loanToValuePct !== reserveConfig.loanToValuePct) {
1260
- updateReserveIxnsArgs.push({
1261
- mode: types_1.UpdateConfigMode.UpdateLoanToValuePct.discriminator,
1262
- value: updateReserveConfigEncodedValue(types_1.UpdateConfigMode.UpdateLoanToValuePct.discriminator, reserveConfig.loanToValuePct),
1263
- });
1264
- }
1265
- }
1266
- else if (key === 'protocolLiquidationFeePct') {
1267
- if (reserve === undefined) {
1268
- updateReserveIxnsArgs.push({
1269
- mode: types_1.UpdateConfigMode.UpdateProtocolLiquidationFee.discriminator,
1270
- value: updateReserveConfigEncodedValue(types_1.UpdateConfigMode.UpdateProtocolLiquidationFee.discriminator, reserveConfig.protocolLiquidationFeePct),
1271
- });
1272
- }
1273
- else if (reserve.config.protocolLiquidationFeePct !== reserveConfig.protocolLiquidationFeePct) {
1274
- updateReserveIxnsArgs.push({
1275
- mode: types_1.UpdateConfigMode.UpdateProtocolLiquidationFee.discriminator,
1276
- value: updateReserveConfigEncodedValue(types_1.UpdateConfigMode.UpdateProtocolLiquidationFee.discriminator, reserveConfig.protocolLiquidationFeePct),
1277
- });
1278
- }
1279
- }
1280
- else if (key === 'deleveragingMarginCallPeriodSecs') {
1169
+ break;
1170
+ case 'depositLimit':
1281
1171
  if (reserve === undefined) {
1282
1172
  updateReserveIxnsArgs.push({
1283
- mode: types_1.UpdateConfigMode.UpdateDeleveragingMarginCallPeriod.discriminator,
1284
- value: updateReserveConfigEncodedValue(types_1.UpdateConfigMode.UpdateDeleveragingMarginCallPeriod.discriminator, reserveConfig.deleveragingMarginCallPeriodSecs.toNumber()),
1173
+ mode: types_1.UpdateConfigMode.UpdateDepositLimit.discriminator,
1174
+ value: updateReserveConfigEncodedValue(types_1.UpdateConfigMode.UpdateDepositLimit.discriminator, reserveConfig.depositLimit.toNumber()),
1285
1175
  });
1286
1176
  }
1287
- else if (!reserve.config.deleveragingMarginCallPeriodSecs.eq(reserveConfig.deleveragingMarginCallPeriodSecs)) {
1177
+ else if (!reserve.config.depositLimit.eq(reserveConfig.depositLimit)) {
1288
1178
  updateReserveIxnsArgs.push({
1289
- mode: types_1.UpdateConfigMode.UpdateDeleveragingMarginCallPeriod.discriminator,
1290
- value: updateReserveConfigEncodedValue(types_1.UpdateConfigMode.UpdateDeleveragingMarginCallPeriod.discriminator, reserveConfig.deleveragingMarginCallPeriodSecs.toNumber()),
1179
+ mode: types_1.UpdateConfigMode.UpdateDepositLimit.discriminator,
1180
+ value: updateReserveConfigEncodedValue(types_1.UpdateConfigMode.UpdateDepositLimit.discriminator, reserveConfig.depositLimit.toNumber()),
1291
1181
  });
1292
1182
  }
1293
- }
1294
- else if (key === 'assetTier') {
1183
+ break;
1184
+ case 'borrowLimit':
1295
1185
  if (reserve === undefined) {
1296
1186
  updateReserveIxnsArgs.push({
1297
- mode: types_1.UpdateConfigMode.UpdateAssetTier.discriminator,
1298
- value: updateReserveConfigEncodedValue(types_1.UpdateConfigMode.UpdateAssetTier.discriminator, reserveConfig.assetTier),
1187
+ mode: types_1.UpdateConfigMode.UpdateBorrowLimit.discriminator,
1188
+ value: updateReserveConfigEncodedValue(types_1.UpdateConfigMode.UpdateBorrowLimit.discriminator, reserveConfig.borrowLimit.toNumber()),
1299
1189
  });
1300
1190
  }
1301
- else if (reserve.config.assetTier !== reserveConfig.assetTier) {
1191
+ else if (!reserve.config.borrowLimit.eq(reserveConfig.borrowLimit)) {
1302
1192
  updateReserveIxnsArgs.push({
1303
- mode: types_1.UpdateConfigMode.UpdateAssetTier.discriminator,
1304
- value: updateReserveConfigEncodedValue(types_1.UpdateConfigMode.UpdateAssetTier.discriminator, reserveConfig.assetTier),
1193
+ mode: types_1.UpdateConfigMode.UpdateBorrowLimit.discriminator,
1194
+ value: updateReserveConfigEncodedValue(types_1.UpdateConfigMode.UpdateBorrowLimit.discriminator, reserveConfig.borrowLimit.toNumber()),
1305
1195
  });
1306
1196
  }
1307
- }
1308
- else if (key === 'tokenInfo') {
1197
+ break;
1198
+ case 'tokenInfo':
1309
1199
  const tokenInfo = reserveConfig.tokenInfo;
1310
1200
  if (reserve === undefined) {
1311
1201
  updateReserveIxnsArgs.push({
@@ -1447,8 +1337,209 @@ function parseForChangesReserveConfigAndGetIxs(marketWithAddress, reserve, reser
1447
1337
  });
1448
1338
  }
1449
1339
  }
1340
+ break;
1341
+ case 'depositWithdrawalCap':
1342
+ if (reserve === undefined) {
1343
+ updateReserveIxnsArgs.push({
1344
+ mode: types_1.UpdateConfigMode.UpdateDepositWithdrawalCap.discriminator,
1345
+ value: updateReserveConfigEncodedValue(types_1.UpdateConfigMode.UpdateDepositWithdrawalCap.discriminator, [
1346
+ reserveConfig.depositWithdrawalCap.configCapacity.toNumber(),
1347
+ reserveConfig.depositWithdrawalCap.configIntervalLengthSeconds.toNumber(),
1348
+ ]),
1349
+ });
1350
+ updateReserveIxnsArgs.push({
1351
+ mode: types_1.UpdateConfigMode.UpdateDepositWithdrawalCapCurrentTotal.discriminator,
1352
+ value: updateReserveConfigEncodedValue(types_1.UpdateConfigMode.UpdateDepositWithdrawalCap.discriminator, reserveConfig.depositWithdrawalCap.currentTotal.toNumber()),
1353
+ });
1354
+ }
1355
+ else if (!reserve.config.depositWithdrawalCap.configCapacity.eq(reserveConfig.depositWithdrawalCap.configCapacity) ||
1356
+ !reserve.config.depositWithdrawalCap.configIntervalLengthSeconds.eq(reserveConfig.depositWithdrawalCap.configIntervalLengthSeconds)) {
1357
+ updateReserveIxnsArgs.push({
1358
+ mode: types_1.UpdateConfigMode.UpdateDepositWithdrawalCap.discriminator,
1359
+ value: updateReserveConfigEncodedValue(types_1.UpdateConfigMode.UpdateDepositWithdrawalCap.discriminator, [
1360
+ reserveConfig.depositWithdrawalCap.configCapacity.toNumber(),
1361
+ reserveConfig.depositWithdrawalCap.configIntervalLengthSeconds.toNumber(),
1362
+ ]),
1363
+ });
1364
+ }
1365
+ else if (!reserve.config.depositWithdrawalCap.currentTotal.eq(reserveConfig.depositWithdrawalCap.currentTotal)) {
1366
+ updateReserveIxnsArgs.push({
1367
+ mode: types_1.UpdateConfigMode.UpdateDepositWithdrawalCapCurrentTotal.discriminator,
1368
+ value: updateReserveConfigEncodedValue(types_1.UpdateConfigMode.UpdateDepositWithdrawalCap.discriminator, reserveConfig.depositWithdrawalCap.currentTotal.toNumber()),
1369
+ });
1370
+ }
1371
+ break;
1372
+ case 'debtWithdrawalCap':
1373
+ if (reserve === undefined) {
1374
+ updateReserveIxnsArgs.push({
1375
+ mode: types_1.UpdateConfigMode.UpdateDebtWithdrawalCap.discriminator,
1376
+ value: updateReserveConfigEncodedValue(types_1.UpdateConfigMode.UpdateDebtWithdrawalCap.discriminator, [
1377
+ reserveConfig.debtWithdrawalCap.configCapacity.toNumber(),
1378
+ reserveConfig.debtWithdrawalCap.configIntervalLengthSeconds.toNumber(),
1379
+ ]),
1380
+ });
1381
+ updateReserveIxnsArgs.push({
1382
+ mode: types_1.UpdateConfigMode.UpdateDebtWithdrawalCapCurrentTotal.discriminator,
1383
+ value: updateReserveConfigEncodedValue(types_1.UpdateConfigMode.UpdateDebtWithdrawalCap.discriminator, reserveConfig.debtWithdrawalCap.currentTotal.toNumber()),
1384
+ });
1385
+ }
1386
+ else if (!reserve.config.debtWithdrawalCap.configCapacity.eq(reserveConfig.debtWithdrawalCap.configCapacity) ||
1387
+ !reserve.config.debtWithdrawalCap.configIntervalLengthSeconds.eq(reserveConfig.debtWithdrawalCap.configIntervalLengthSeconds)) {
1388
+ updateReserveIxnsArgs.push({
1389
+ mode: types_1.UpdateConfigMode.UpdateDebtWithdrawalCap.discriminator,
1390
+ value: updateReserveConfigEncodedValue(types_1.UpdateConfigMode.UpdateDebtWithdrawalCap.discriminator, [
1391
+ reserveConfig.debtWithdrawalCap.configCapacity.toNumber(),
1392
+ reserveConfig.debtWithdrawalCap.configIntervalLengthSeconds.toNumber(),
1393
+ ]),
1394
+ });
1395
+ }
1396
+ else if (!reserve.config.debtWithdrawalCap.currentTotal.eq(reserveConfig.debtWithdrawalCap.currentTotal)) {
1397
+ updateReserveIxnsArgs.push({
1398
+ mode: types_1.UpdateConfigMode.UpdateDebtWithdrawalCapCurrentTotal.discriminator,
1399
+ value: updateReserveConfigEncodedValue(types_1.UpdateConfigMode.UpdateDebtWithdrawalCap.discriminator, reserveConfig.debtWithdrawalCap.currentTotal.toNumber()),
1400
+ });
1401
+ }
1402
+ break;
1403
+ case 'elevationGroups':
1404
+ if (reserve === undefined) {
1405
+ updateReserveIxnsArgs.push({
1406
+ mode: types_1.UpdateConfigMode.UpdateElevationGroup.discriminator,
1407
+ value: updateReserveConfigEncodedValue(types_1.UpdateConfigMode.UpdateElevationGroup.discriminator, reserveConfig.elevationGroups),
1408
+ });
1409
+ }
1410
+ else {
1411
+ for (let i = 0; i < reserveConfig.elevationGroups.length; i++) {
1412
+ if (reserve.config.elevationGroups[i] !== reserveConfig.elevationGroups[i]) {
1413
+ updateReserveIxnsArgs.push({
1414
+ mode: types_1.UpdateConfigMode.UpdateElevationGroup.discriminator,
1415
+ value: updateReserveConfigEncodedValue(types_1.UpdateConfigMode.UpdateElevationGroup.discriminator, reserveConfig.elevationGroups),
1416
+ });
1417
+ break;
1418
+ }
1419
+ }
1420
+ }
1421
+ break;
1422
+ case 'disableUsageAsCollOutsideEmode':
1423
+ if (reserve === undefined) {
1424
+ updateReserveIxnsArgs.push({
1425
+ mode: types_1.UpdateConfigMode.UpdateDisableUsageAsCollateralOutsideEmode.discriminator,
1426
+ value: updateReserveConfigEncodedValue(types_1.UpdateConfigMode.UpdateDisableUsageAsCollateralOutsideEmode.discriminator, reserveConfig.disableUsageAsCollOutsideEmode),
1427
+ });
1428
+ }
1429
+ else if (reserve.config.disableUsageAsCollOutsideEmode !== reserveConfig.disableUsageAsCollOutsideEmode) {
1430
+ updateReserveIxnsArgs.push({
1431
+ mode: types_1.UpdateConfigMode.UpdateDisableUsageAsCollateralOutsideEmode.discriminator,
1432
+ value: updateReserveConfigEncodedValue(types_1.UpdateConfigMode.UpdateDisableUsageAsCollateralOutsideEmode.discriminator, reserveConfig.disableUsageAsCollOutsideEmode),
1433
+ });
1434
+ }
1435
+ break;
1436
+ case 'utilizationLimitBlockBorrowingAbovePct':
1437
+ if (reserve === undefined) {
1438
+ updateReserveIxnsArgs.push({
1439
+ mode: types_1.UpdateConfigMode.UpdateBlockBorrowingAboveUtilizationPct.discriminator,
1440
+ value: updateReserveConfigEncodedValue(types_1.UpdateConfigMode.UpdateBlockBorrowingAboveUtilizationPct.discriminator, reserveConfig.utilizationLimitBlockBorrowingAbovePct),
1441
+ });
1442
+ }
1443
+ else if (reserve.config.utilizationLimitBlockBorrowingAbovePct !== reserveConfig.utilizationLimitBlockBorrowingAbovePct) {
1444
+ updateReserveIxnsArgs.push({
1445
+ mode: types_1.UpdateConfigMode.UpdateBlockBorrowingAboveUtilizationPct.discriminator,
1446
+ value: updateReserveConfigEncodedValue(types_1.UpdateConfigMode.UpdateBlockBorrowingAboveUtilizationPct.discriminator, reserveConfig.utilizationLimitBlockBorrowingAbovePct),
1447
+ });
1448
+ }
1449
+ break;
1450
+ case 'autodeleverageEnabled':
1451
+ if (reserve === undefined) {
1452
+ updateReserveIxnsArgs.push({
1453
+ mode: types_1.UpdateConfigMode.UpdateAutodeleverageEnabled.discriminator,
1454
+ value: updateReserveConfigEncodedValue(types_1.UpdateConfigMode.UpdateAutodeleverageEnabled.discriminator, reserveConfig.autodeleverageEnabled),
1455
+ });
1456
+ }
1457
+ else if (reserve.config.autodeleverageEnabled !== reserveConfig.autodeleverageEnabled) {
1458
+ updateReserveIxnsArgs.push({
1459
+ mode: types_1.UpdateConfigMode.UpdateAutodeleverageEnabled.discriminator,
1460
+ value: updateReserveConfigEncodedValue(types_1.UpdateConfigMode.UpdateAutodeleverageEnabled.discriminator, reserveConfig.autodeleverageEnabled),
1461
+ });
1462
+ }
1463
+ break;
1464
+ case 'borrowLimitOutsideElevationGroup':
1465
+ if (reserve === undefined) {
1466
+ updateReserveIxnsArgs.push({
1467
+ mode: types_1.UpdateConfigMode.UpdateBorrowLimitOutsideElevationGroup.discriminator,
1468
+ value: updateReserveConfigEncodedValue(types_1.UpdateConfigMode.UpdateBorrowLimitOutsideElevationGroup.discriminator, reserveConfig.borrowLimitOutsideElevationGroup.toNumber()),
1469
+ });
1470
+ }
1471
+ else if (reserve.config.borrowLimitOutsideElevationGroup.toNumber() !==
1472
+ reserveConfig.borrowLimitOutsideElevationGroup.toNumber()) {
1473
+ updateReserveIxnsArgs.push({
1474
+ mode: types_1.UpdateConfigMode.UpdateBorrowLimitOutsideElevationGroup.discriminator,
1475
+ value: updateReserveConfigEncodedValue(types_1.UpdateConfigMode.UpdateBorrowLimitOutsideElevationGroup.discriminator, reserveConfig.borrowLimitOutsideElevationGroup.toNumber()),
1476
+ });
1477
+ }
1478
+ break;
1479
+ case 'borrowLimitAgainstThisCollateralInElevationGroup':
1480
+ if (reserve === undefined) {
1481
+ updateReserveIxnsArgs.push({
1482
+ mode: types_1.UpdateConfigMode.UpdateBorrowLimitsInElevationGroupAgainstThisReserve.discriminator,
1483
+ value: updateReserveConfigEncodedValue(types_1.UpdateConfigMode.UpdateBorrowLimitsInElevationGroupAgainstThisReserve.discriminator, reserveConfig.borrowLimitAgainstThisCollateralInElevationGroup.map((borrowLimit) => borrowLimit.toNumber())),
1484
+ });
1485
+ }
1486
+ else {
1487
+ for (let i = 0; i < reserveConfig.borrowLimitAgainstThisCollateralInElevationGroup.length; i++) {
1488
+ if (reserve.config.borrowLimitAgainstThisCollateralInElevationGroup[i] !==
1489
+ reserveConfig.borrowLimitAgainstThisCollateralInElevationGroup[i]) {
1490
+ updateReserveIxnsArgs.push({
1491
+ mode: types_1.UpdateConfigMode.UpdateBorrowLimitsInElevationGroupAgainstThisReserve.discriminator,
1492
+ value: updateReserveConfigEncodedValue(types_1.UpdateConfigMode.UpdateBorrowLimitsInElevationGroupAgainstThisReserve.discriminator, reserveConfig.borrowLimitAgainstThisCollateralInElevationGroup.map((borrowLimit) => borrowLimit.toNumber())),
1493
+ });
1494
+ }
1495
+ }
1496
+ }
1497
+ break;
1498
+ case 'deleveragingBonusIncreaseBpsPerDay':
1499
+ if (reserve === undefined) {
1500
+ updateReserveIxnsArgs.push({
1501
+ mode: types_1.UpdateConfigMode.UpdateDeleveragingBonusIncreaseBpsPerDay.discriminator,
1502
+ value: updateReserveConfigEncodedValue(types_1.UpdateConfigMode.UpdateDeleveragingBonusIncreaseBpsPerDay.discriminator, reserveConfig.deleveragingBonusIncreaseBpsPerDay.toNumber()),
1503
+ });
1504
+ }
1505
+ else if (reserve.config.deleveragingBonusIncreaseBpsPerDay.toNumber() !==
1506
+ reserveConfig.deleveragingBonusIncreaseBpsPerDay.toNumber()) {
1507
+ updateReserveIxnsArgs.push({
1508
+ mode: types_1.UpdateConfigMode.UpdateDeleveragingBonusIncreaseBpsPerDay.discriminator,
1509
+ value: updateReserveConfigEncodedValue(types_1.UpdateConfigMode.UpdateDeleveragingBonusIncreaseBpsPerDay.discriminator, reserveConfig.deleveragingBonusIncreaseBpsPerDay.toNumber()),
1510
+ });
1511
+ }
1512
+ break;
1513
+ default:
1514
+ (0, utils_2.assertNever)(key); // Will cause compile error if any case is missing
1515
+ }
1516
+ }
1517
+ function updateEntireReserveConfigIx(marketWithAddress, reserveAddress, reserveConfig, programId) {
1518
+ const layout = types_1.ReserveConfig.layout();
1519
+ const data = Buffer.alloc(1000);
1520
+ const len = layout.encode(reserveConfig.toEncodable(), data);
1521
+ const value = Uint8Array.from([...data.subarray(0, len)]);
1522
+ const args = {
1523
+ mode: new anchor.BN(25),
1524
+ value: value,
1525
+ skipValidation: false,
1526
+ };
1527
+ const accounts = {
1528
+ lendingMarketOwner: marketWithAddress.state.lendingMarketOwner,
1529
+ lendingMarket: marketWithAddress.address,
1530
+ reserve: reserveAddress,
1531
+ };
1532
+ const ix = (0, lib_1.updateReserveConfig)(args, accounts, programId);
1533
+ return ix;
1534
+ }
1535
+ function parseForChangesReserveConfigAndGetIxs(marketWithAddress, reserve, reserveAddress, reserveConfig, programId) {
1536
+ const updateReserveIxnsArgs = [];
1537
+ for (const key in reserveConfig.toEncodable()) {
1538
+ if (isExcludedReserveConfigKey(key)) {
1539
+ continue;
1450
1540
  }
1451
- } // for loop
1541
+ handleConfigUpdate(key, reserve, reserveConfig, updateReserveIxnsArgs);
1542
+ }
1452
1543
  const ixns = [];
1453
1544
  updateReserveIxnsArgs.forEach((updateReserveConfigArgs) => {
1454
1545
  ixns.push(updateReserveConfigIx(marketWithAddress, reserveAddress, updateReserveConfigArgs.mode + 1, updateReserveConfigArgs.value, programId));
@@ -1468,6 +1559,7 @@ function updateReserveConfigEncodedValue(discriminator, value) {
1468
1559
  case types_1.UpdateConfigMode.UpdateDisableUsageAsCollateralOutsideEmode.discriminator:
1469
1560
  case types_1.UpdateConfigMode.UpdateBlockBorrowingAboveUtilizationPct.discriminator:
1470
1561
  case types_1.UpdateConfigMode.UpdateBlockPriceUsage.discriminator:
1562
+ case types_1.UpdateConfigMode.UpdateAutodeleverageEnabled.discriminator:
1471
1563
  buffer = Buffer.alloc(1);
1472
1564
  buffer.writeUIntLE(value, 0, 1);
1473
1565
  break;
@@ -1492,6 +1584,7 @@ function updateReserveConfigEncodedValue(discriminator, value) {
1492
1584
  case types_1.UpdateConfigMode.UpdateDeleveragingMarginCallPeriod.discriminator:
1493
1585
  case types_1.UpdateConfigMode.UpdateBorrowFactor.discriminator:
1494
1586
  case types_1.UpdateConfigMode.UpdateDeleveragingThresholdDecreaseBpsPerDay.discriminator:
1587
+ case types_1.UpdateConfigMode.UpdateDeleveragingBonusIncreaseBpsPerDay.discriminator:
1495
1588
  case types_1.UpdateConfigMode.UpdateBorrowLimitOutsideElevationGroup.discriminator:
1496
1589
  value = value;
1497
1590
  buffer = Buffer.alloc(8);