@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.
- package/dist/classes/action.d.ts +74 -49
- package/dist/classes/action.d.ts.map +1 -1
- package/dist/classes/action.js +167 -115
- package/dist/classes/action.js.map +1 -1
- package/dist/classes/fraction.d.ts +2 -0
- package/dist/classes/fraction.d.ts.map +1 -1
- package/dist/classes/fraction.js +6 -0
- package/dist/classes/fraction.js.map +1 -1
- package/dist/classes/index.d.ts +3 -2
- package/dist/classes/index.d.ts.map +1 -1
- package/dist/classes/index.js +3 -2
- package/dist/classes/index.js.map +1 -1
- package/dist/classes/manager.d.ts +7 -7
- package/dist/classes/manager.d.ts.map +1 -1
- package/dist/classes/manager.js +46 -46
- package/dist/classes/manager.js.map +1 -1
- package/dist/classes/obligation.d.ts.map +1 -1
- package/dist/classes/obligation.js +1 -6
- package/dist/classes/obligation.js.map +1 -1
- package/dist/classes/obligationOrder.d.ts +1 -1
- package/dist/classes/obligationOrder.d.ts.map +1 -1
- package/dist/classes/reserve.d.ts +2 -2
- package/dist/classes/reserve.d.ts.map +1 -1
- package/dist/classes/reserve.js +71 -74
- package/dist/classes/reserve.js.map +1 -1
- package/dist/classes/shared.d.ts +13 -0
- package/dist/classes/shared.d.ts.map +1 -1
- package/dist/classes/utils.d.ts +1 -9
- package/dist/classes/utils.d.ts.map +1 -1
- package/dist/classes/utils.js +4 -51
- package/dist/classes/utils.js.map +1 -1
- package/dist/classes/vault.d.ts +5 -3
- package/dist/classes/vault.d.ts.map +1 -1
- package/dist/classes/vault.js +53 -41
- package/dist/classes/vault.js.map +1 -1
- package/dist/classes/{types.d.ts → vault_types.d.ts} +2 -15
- package/dist/classes/vault_types.d.ts.map +1 -0
- package/dist/classes/{types.js → vault_types.js} +1 -1
- package/dist/classes/vault_types.js.map +1 -0
- package/dist/client_kamino_manager.d.ts.map +1 -1
- package/dist/client_kamino_manager.js +25 -26
- package/dist/client_kamino_manager.js.map +1 -1
- package/dist/lending_operations/repay_with_collateral_operations.d.ts.map +1 -1
- package/dist/lending_operations/repay_with_collateral_operations.js +8 -8
- package/dist/lending_operations/repay_with_collateral_operations.js.map +1 -1
- package/dist/lending_operations/swap_collateral_operations.d.ts +6 -6
- package/dist/lending_operations/swap_collateral_operations.d.ts.map +1 -1
- package/dist/lending_operations/swap_collateral_operations.js +63 -65
- package/dist/lending_operations/swap_collateral_operations.js.map +1 -1
- package/dist/leverage/calcs.d.ts +0 -1
- package/dist/leverage/calcs.d.ts.map +1 -1
- package/dist/leverage/calcs.js +5 -8
- package/dist/leverage/calcs.js.map +1 -1
- package/dist/leverage/operations.d.ts +5 -5
- package/dist/leverage/operations.d.ts.map +1 -1
- package/dist/leverage/operations.js +80 -87
- package/dist/leverage/operations.js.map +1 -1
- package/dist/leverage/types.d.ts +1 -1
- package/dist/leverage/types.d.ts.map +1 -1
- package/dist/leverage/utils.d.ts +2 -2
- package/dist/leverage/utils.d.ts.map +1 -1
- package/dist/leverage/utils.js +5 -5
- package/dist/leverage/utils.js.map +1 -1
- package/dist/referrals/instructions.d.ts +3 -3
- package/dist/referrals/instructions.d.ts.map +1 -1
- package/dist/referrals/instructions.js +10 -10
- package/dist/referrals/instructions.js.map +1 -1
- package/dist/referrals/operations.js +6 -6
- package/dist/referrals/operations.js.map +1 -1
- package/dist/utils/ata.d.ts +3 -3
- package/dist/utils/ata.d.ts.map +1 -1
- package/dist/utils/ata.js +22 -22
- package/dist/utils/ata.js.map +1 -1
- package/dist/utils/instruction.d.ts +2 -2
- package/dist/utils/instruction.d.ts.map +1 -1
- package/dist/utils/instruction.js +12 -12
- package/dist/utils/instruction.js.map +1 -1
- package/dist/utils/lookupTable.js +6 -6
- package/dist/utils/lookupTable.js.map +1 -1
- package/dist/utils/userMetadata.d.ts +1 -1
- package/dist/utils/userMetadata.d.ts.map +1 -1
- package/dist/utils/userMetadata.js +3 -3
- package/dist/utils/userMetadata.js.map +1 -1
- package/package.json +1 -1
- package/src/classes/action.ts +198 -150
- package/src/classes/fraction.ts +7 -0
- package/src/classes/index.ts +5 -2
- package/src/classes/manager.ts +54 -51
- package/src/classes/obligation.ts +2 -7
- package/src/classes/obligationOrder.ts +1 -1
- package/src/classes/reserve.ts +128 -137
- package/src/classes/shared.ts +15 -0
- package/src/classes/utils.ts +3 -52
- package/src/classes/vault.ts +56 -42
- package/src/classes/{types.ts → vault_types.ts} +1 -16
- package/src/client.ts +16 -16
- package/src/client_kamino_manager.ts +25 -25
- package/src/lending_operations/repay_with_collateral_operations.ts +13 -15
- package/src/lending_operations/swap_collateral_operations.ts +87 -89
- package/src/leverage/calcs.ts +2 -6
- package/src/leverage/operations.ts +91 -97
- package/src/leverage/types.ts +1 -1
- package/src/leverage/utils.ts +5 -5
- package/src/referrals/instructions.ts +6 -6
- package/src/referrals/operations.ts +9 -9
- package/src/utils/ata.ts +18 -18
- package/src/utils/instruction.ts +10 -10
- package/src/utils/lookupTable.ts +6 -6
- package/src/utils/userMetadata.ts +1 -1
- package/dist/classes/types.d.ts.map +0 -1
- package/dist/classes/types.js.map +0 -1
- package/dist/classes/types_utils.d.ts +0 -14
- package/dist/classes/types_utils.d.ts.map +0 -1
- package/dist/classes/types_utils.js +0 -50
- package/dist/classes/types_utils.js.map +0 -1
- package/src/classes/types_utils.ts +0 -49
package/dist/classes/reserve.js
CHANGED
|
@@ -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.
|
|
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
|
-
|
|
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,
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
1060
|
-
|
|
1061
|
-
|
|
1062
|
-
|
|
1063
|
-
|
|
1064
|
-
|
|
1065
|
-
|
|
1066
|
-
|
|
1067
|
-
|
|
1068
|
-
|
|
1069
|
-
|
|
1070
|
-
|
|
1071
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
1105
|
+
updateReserveIxsArgs.push(createUpdateReserveIxsArg(types_1.UpdateConfigMode.UpdatePythPrice.discriminator, tokenInfo.pythConfiguration.price));
|
|
1109
1106
|
}
|
|
1110
1107
|
if (reserve.config.tokenInfo.blockPriceUsage !== tokenInfo.blockPriceUsage) {
|
|
1111
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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
|
|
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,
|
|
1212
|
+
handleConfigUpdate(key, reserve, reserveConfig, updateReserveIxsArgs);
|
|
1216
1213
|
}
|
|
1217
|
-
const
|
|
1218
|
-
|
|
1219
|
-
|
|
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
|
-
|
|
1221
|
+
ixs.push(updateReserveConfigIx(marketWithAddress, reserveAddress, updateReserveConfigArgs.mode, updateReserveConfigArgs.value, programId, skipValidation));
|
|
1225
1222
|
});
|
|
1226
|
-
return
|
|
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
|
|
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
|
|
1356
|
-
return
|
|
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.
|
|
1365
|
+
exports.sortIxsByPriority = sortIxsByPriority;
|
|
1369
1366
|
//# sourceMappingURL=reserve.js.map
|