@kamino-finance/klend-sdk 5.13.1 → 5.13.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/classes/action.d.ts +32 -31
- package/dist/classes/action.d.ts.map +1 -1
- package/dist/classes/action.js +126 -95
- package/dist/classes/action.js.map +1 -1
- package/dist/classes/index.d.ts +3 -2
- package/dist/classes/index.d.ts.map +1 -1
- package/dist/classes/index.js +3 -2
- package/dist/classes/index.js.map +1 -1
- package/dist/classes/manager.d.ts +15 -7
- package/dist/classes/manager.d.ts.map +1 -1
- package/dist/classes/manager.js +57 -46
- package/dist/classes/manager.js.map +1 -1
- package/dist/classes/obligationOrder.d.ts +1 -1
- package/dist/classes/obligationOrder.d.ts.map +1 -1
- package/dist/classes/reserve.d.ts +2 -2
- package/dist/classes/reserve.d.ts.map +1 -1
- package/dist/classes/reserve.js +70 -70
- package/dist/classes/reserve.js.map +1 -1
- package/dist/classes/shared.d.ts +13 -0
- package/dist/classes/shared.d.ts.map +1 -1
- package/dist/classes/utils.d.ts +1 -9
- package/dist/classes/utils.d.ts.map +1 -1
- package/dist/classes/utils.js +4 -51
- package/dist/classes/utils.js.map +1 -1
- package/dist/classes/vault.d.ts +22 -4
- package/dist/classes/vault.d.ts.map +1 -1
- package/dist/classes/vault.js +78 -43
- package/dist/classes/vault.js.map +1 -1
- package/dist/classes/{types.d.ts → vault_types.d.ts} +3 -15
- package/dist/classes/vault_types.d.ts.map +1 -0
- package/dist/classes/{types.js → vault_types.js} +1 -1
- package/dist/classes/vault_types.js.map +1 -0
- package/dist/client_kamino_manager.d.ts.map +1 -1
- package/dist/client_kamino_manager.js +44 -28
- package/dist/client_kamino_manager.js.map +1 -1
- package/dist/lending_operations/repay_with_collateral_operations.js +6 -6
- package/dist/lending_operations/repay_with_collateral_operations.js.map +1 -1
- package/dist/lending_operations/swap_collateral_operations.d.ts +6 -6
- package/dist/lending_operations/swap_collateral_operations.d.ts.map +1 -1
- package/dist/lending_operations/swap_collateral_operations.js +61 -61
- package/dist/lending_operations/swap_collateral_operations.js.map +1 -1
- package/dist/leverage/calcs.d.ts +0 -1
- package/dist/leverage/calcs.d.ts.map +1 -1
- package/dist/leverage/calcs.js +5 -8
- package/dist/leverage/calcs.js.map +1 -1
- package/dist/leverage/operations.d.ts +5 -5
- package/dist/leverage/operations.d.ts.map +1 -1
- package/dist/leverage/operations.js +73 -73
- package/dist/leverage/operations.js.map +1 -1
- package/dist/leverage/types.d.ts +1 -1
- package/dist/leverage/types.d.ts.map +1 -1
- package/dist/leverage/utils.d.ts +2 -2
- package/dist/leverage/utils.d.ts.map +1 -1
- package/dist/leverage/utils.js +5 -5
- package/dist/leverage/utils.js.map +1 -1
- package/dist/referrals/instructions.d.ts +3 -3
- package/dist/referrals/instructions.d.ts.map +1 -1
- package/dist/referrals/instructions.js +10 -10
- package/dist/referrals/instructions.js.map +1 -1
- package/dist/referrals/operations.js +6 -6
- package/dist/referrals/operations.js.map +1 -1
- package/dist/utils/ata.d.ts +3 -3
- package/dist/utils/ata.d.ts.map +1 -1
- package/dist/utils/ata.js +22 -22
- package/dist/utils/ata.js.map +1 -1
- package/dist/utils/instruction.d.ts +2 -2
- package/dist/utils/instruction.d.ts.map +1 -1
- package/dist/utils/instruction.js +12 -12
- package/dist/utils/instruction.js.map +1 -1
- package/dist/utils/lookupTable.js +6 -6
- package/dist/utils/lookupTable.js.map +1 -1
- package/dist/utils/metadata.d.ts +14 -0
- package/dist/utils/metadata.d.ts.map +1 -0
- package/dist/utils/metadata.js +78 -0
- package/dist/utils/metadata.js.map +1 -0
- package/dist/utils/seeds.d.ts +6 -0
- package/dist/utils/seeds.d.ts.map +1 -1
- package/dist/utils/seeds.js +10 -0
- package/dist/utils/seeds.js.map +1 -1
- package/dist/utils/userMetadata.d.ts +1 -1
- package/dist/utils/userMetadata.d.ts.map +1 -1
- package/dist/utils/userMetadata.js +3 -3
- package/dist/utils/userMetadata.js.map +1 -1
- package/package.json +1 -1
- package/src/classes/action.ts +143 -102
- package/src/classes/index.ts +5 -2
- package/src/classes/manager.ts +74 -51
- package/src/classes/obligationOrder.ts +1 -1
- package/src/classes/reserve.ts +126 -132
- package/src/classes/shared.ts +15 -0
- package/src/classes/utils.ts +3 -52
- package/src/classes/vault.ts +125 -44
- package/src/classes/{types.ts → vault_types.ts} +2 -16
- package/src/client.ts +16 -16
- package/src/client_kamino_manager.ts +59 -27
- package/src/lending_operations/repay_with_collateral_operations.ts +13 -13
- package/src/lending_operations/swap_collateral_operations.ts +85 -85
- package/src/leverage/calcs.ts +2 -6
- package/src/leverage/operations.ts +84 -84
- package/src/leverage/types.ts +1 -1
- package/src/leverage/utils.ts +5 -5
- package/src/referrals/instructions.ts +6 -6
- package/src/referrals/operations.ts +9 -9
- package/src/utils/ata.ts +18 -18
- package/src/utils/instruction.ts +10 -10
- package/src/utils/lookupTable.ts +6 -6
- package/src/utils/metadata.ts +115 -0
- package/src/utils/seeds.ts +13 -0
- package/src/utils/userMetadata.ts +1 -1
- package/dist/classes/types.d.ts.map +0 -1
- package/dist/classes/types.js.map +0 -1
- package/dist/classes/types_utils.d.ts +0 -14
- package/dist/classes/types_utils.d.ts.map +0 -1
- package/dist/classes/types_utils.js +0 -50
- package/dist/classes/types_utils.js.map +0 -1
- package/src/classes/types_utils.ts +0 -49
package/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;
|
|
@@ -934,89 +934,89 @@ const EXCLUDED_RESERVE_CONFIG_KEYS = ['reserved1', 'reserved2'];
|
|
|
934
934
|
function isExcludedReserveConfigKey(value) {
|
|
935
935
|
return EXCLUDED_RESERVE_CONFIG_KEYS.includes(value);
|
|
936
936
|
}
|
|
937
|
-
function handleConfigUpdate(key, reserve, reserveConfig,
|
|
937
|
+
function handleConfigUpdate(key, reserve, reserveConfig, updateReserveIxsArgs) {
|
|
938
938
|
switch (key) {
|
|
939
939
|
case 'status':
|
|
940
940
|
if (reserve === undefined || reserve.config.status !== reserveConfig.status) {
|
|
941
|
-
|
|
941
|
+
updateReserveIxsArgs.push(createUpdateReserveIxsArg(types_1.UpdateConfigMode.UpdateReserveStatus.discriminator, reserveConfig.status));
|
|
942
942
|
}
|
|
943
943
|
break;
|
|
944
944
|
case 'assetTier':
|
|
945
945
|
if (reserve === undefined || reserve.config.assetTier !== reserveConfig.assetTier) {
|
|
946
|
-
|
|
946
|
+
updateReserveIxsArgs.push(createUpdateReserveIxsArg(types_1.UpdateConfigMode.UpdateAssetTier.discriminator, reserveConfig.assetTier));
|
|
947
947
|
}
|
|
948
948
|
break;
|
|
949
949
|
case 'hostFixedInterestRateBps':
|
|
950
950
|
if (reserve === undefined || reserve.config.hostFixedInterestRateBps !== reserveConfig.hostFixedInterestRateBps) {
|
|
951
|
-
|
|
951
|
+
updateReserveIxsArgs.push(createUpdateReserveIxsArg(types_1.UpdateConfigMode.UpdateHostFixedInterestRateBps.discriminator, reserveConfig.hostFixedInterestRateBps));
|
|
952
952
|
}
|
|
953
953
|
break;
|
|
954
954
|
case 'protocolTakeRatePct':
|
|
955
955
|
if (reserve === undefined || reserve.config.protocolTakeRatePct !== reserveConfig.protocolTakeRatePct) {
|
|
956
|
-
|
|
956
|
+
updateReserveIxsArgs.push(createUpdateReserveIxsArg(types_1.UpdateConfigMode.UpdateProtocolTakeRate.discriminator, reserveConfig.protocolTakeRatePct));
|
|
957
957
|
}
|
|
958
958
|
break;
|
|
959
959
|
case 'protocolLiquidationFeePct':
|
|
960
960
|
if (reserve === undefined ||
|
|
961
961
|
reserve.config.protocolLiquidationFeePct !== reserveConfig.protocolLiquidationFeePct) {
|
|
962
|
-
|
|
962
|
+
updateReserveIxsArgs.push(createUpdateReserveIxsArg(types_1.UpdateConfigMode.UpdateProtocolLiquidationFee.discriminator, reserveConfig.protocolLiquidationFeePct));
|
|
963
963
|
}
|
|
964
964
|
break;
|
|
965
965
|
case 'protocolOrderExecutionFeePct':
|
|
966
966
|
if (reserve === undefined ||
|
|
967
967
|
reserve.config.protocolOrderExecutionFeePct !== reserveConfig.protocolOrderExecutionFeePct) {
|
|
968
|
-
|
|
968
|
+
updateReserveIxsArgs.push(createUpdateReserveIxsArg(types_1.UpdateConfigMode.UpdateProtocolOrderExecutionFee.discriminator, reserveConfig.protocolOrderExecutionFeePct));
|
|
969
969
|
}
|
|
970
970
|
break;
|
|
971
971
|
case 'loanToValuePct':
|
|
972
972
|
if (reserve === undefined || reserve.config.loanToValuePct !== reserveConfig.loanToValuePct) {
|
|
973
|
-
|
|
973
|
+
updateReserveIxsArgs.push(createUpdateReserveIxsArg(types_1.UpdateConfigMode.UpdateLoanToValuePct.discriminator, reserveConfig.loanToValuePct));
|
|
974
974
|
}
|
|
975
975
|
break;
|
|
976
976
|
case 'liquidationThresholdPct':
|
|
977
977
|
if (reserve === undefined || reserve.config.liquidationThresholdPct !== reserveConfig.liquidationThresholdPct) {
|
|
978
|
-
|
|
978
|
+
updateReserveIxsArgs.push(createUpdateReserveIxsArg(types_1.UpdateConfigMode.UpdateLiquidationThresholdPct.discriminator, reserveConfig.liquidationThresholdPct));
|
|
979
979
|
}
|
|
980
980
|
break;
|
|
981
981
|
case 'minLiquidationBonusBps':
|
|
982
982
|
if (reserve === undefined || reserve.config.minLiquidationBonusBps !== reserveConfig.minLiquidationBonusBps) {
|
|
983
|
-
|
|
983
|
+
updateReserveIxsArgs.push(createUpdateReserveIxsArg(types_1.UpdateConfigMode.UpdateMinLiquidationBonusBps.discriminator, reserveConfig.minLiquidationBonusBps));
|
|
984
984
|
}
|
|
985
985
|
break;
|
|
986
986
|
case 'maxLiquidationBonusBps':
|
|
987
987
|
if (reserve === undefined || reserve.config.maxLiquidationBonusBps !== reserveConfig.maxLiquidationBonusBps) {
|
|
988
|
-
|
|
988
|
+
updateReserveIxsArgs.push(createUpdateReserveIxsArg(types_1.UpdateConfigMode.UpdateMaxLiquidationBonusBps.discriminator, reserveConfig.maxLiquidationBonusBps));
|
|
989
989
|
}
|
|
990
990
|
break;
|
|
991
991
|
case 'badDebtLiquidationBonusBps':
|
|
992
992
|
if (reserve === undefined ||
|
|
993
993
|
reserve.config.badDebtLiquidationBonusBps !== reserveConfig.badDebtLiquidationBonusBps) {
|
|
994
|
-
|
|
994
|
+
updateReserveIxsArgs.push(createUpdateReserveIxsArg(types_1.UpdateConfigMode.UpdateBadDebtLiquidationBonusBps.discriminator, reserveConfig.badDebtLiquidationBonusBps));
|
|
995
995
|
}
|
|
996
996
|
break;
|
|
997
997
|
case 'deleveragingMarginCallPeriodSecs':
|
|
998
998
|
if (reserve === undefined ||
|
|
999
999
|
!reserve.config.deleveragingMarginCallPeriodSecs.eq(reserveConfig.deleveragingMarginCallPeriodSecs)) {
|
|
1000
|
-
|
|
1000
|
+
updateReserveIxsArgs.push(createUpdateReserveIxsArg(types_1.UpdateConfigMode.UpdateDeleveragingMarginCallPeriod.discriminator, reserveConfig.deleveragingMarginCallPeriodSecs.toNumber()));
|
|
1001
1001
|
}
|
|
1002
1002
|
break;
|
|
1003
1003
|
case 'deleveragingThresholdDecreaseBpsPerDay':
|
|
1004
1004
|
if (reserve === undefined ||
|
|
1005
1005
|
!reserve.config.deleveragingThresholdDecreaseBpsPerDay.eq(reserveConfig.deleveragingThresholdDecreaseBpsPerDay)) {
|
|
1006
|
-
|
|
1006
|
+
updateReserveIxsArgs.push(createUpdateReserveIxsArg(types_1.UpdateConfigMode.UpdateDeleveragingThresholdDecreaseBpsPerDay.discriminator, reserveConfig.deleveragingThresholdDecreaseBpsPerDay.toNumber()));
|
|
1007
1007
|
}
|
|
1008
1008
|
break;
|
|
1009
1009
|
case 'fees':
|
|
1010
1010
|
if (reserve === undefined || !reserve.config.fees.borrowFeeSf.eq(reserveConfig.fees.borrowFeeSf)) {
|
|
1011
|
-
|
|
1011
|
+
updateReserveIxsArgs.push(createUpdateReserveIxsArg(types_1.UpdateConfigMode.UpdateFeesBorrowFee.discriminator, reserveConfig.fees.borrowFeeSf.toNumber()));
|
|
1012
1012
|
}
|
|
1013
1013
|
if (reserve === undefined || !reserve.config.fees.flashLoanFeeSf.eq(reserveConfig.fees.flashLoanFeeSf)) {
|
|
1014
|
-
|
|
1014
|
+
updateReserveIxsArgs.push(createUpdateReserveIxsArg(types_1.UpdateConfigMode.UpdateFeesFlashLoanFee.discriminator, reserveConfig.fees.flashLoanFeeSf.toNumber()));
|
|
1015
1015
|
}
|
|
1016
1016
|
break;
|
|
1017
1017
|
case 'borrowRateCurve':
|
|
1018
1018
|
if (reserve === undefined) {
|
|
1019
|
-
|
|
1019
|
+
updateReserveIxsArgs.push(createUpdateReserveIxsArg(types_1.UpdateConfigMode.UpdateBorrowRateCurve.discriminator, reserveConfig.borrowRateCurve));
|
|
1020
1020
|
}
|
|
1021
1021
|
else {
|
|
1022
1022
|
let shouldBorrowCurveBeUpdated = false;
|
|
@@ -1030,85 +1030,85 @@ function handleConfigUpdate(key, reserve, reserveConfig, updateReserveIxnsArgs)
|
|
|
1030
1030
|
}
|
|
1031
1031
|
}
|
|
1032
1032
|
if (shouldBorrowCurveBeUpdated) {
|
|
1033
|
-
|
|
1033
|
+
updateReserveIxsArgs.push(createUpdateReserveIxsArg(types_1.UpdateConfigMode.UpdateBorrowRateCurve.discriminator, reserveConfig.borrowRateCurve));
|
|
1034
1034
|
break;
|
|
1035
1035
|
}
|
|
1036
1036
|
}
|
|
1037
1037
|
break;
|
|
1038
1038
|
case 'borrowFactorPct':
|
|
1039
1039
|
if (reserve === undefined || !reserve.config.borrowFactorPct.eq(reserveConfig.borrowFactorPct)) {
|
|
1040
|
-
|
|
1040
|
+
updateReserveIxsArgs.push(createUpdateReserveIxsArg(types_1.UpdateConfigMode.UpdateBorrowFactor.discriminator, reserveConfig.borrowFactorPct.toNumber()));
|
|
1041
1041
|
}
|
|
1042
1042
|
break;
|
|
1043
1043
|
case 'depositLimit':
|
|
1044
1044
|
if (reserve === undefined || !reserve.config.depositLimit.eq(reserveConfig.depositLimit)) {
|
|
1045
|
-
|
|
1045
|
+
updateReserveIxsArgs.push(createUpdateReserveIxsArg(types_1.UpdateConfigMode.UpdateDepositLimit.discriminator, BigInt(reserveConfig.depositLimit.toString())));
|
|
1046
1046
|
}
|
|
1047
1047
|
break;
|
|
1048
1048
|
case 'borrowLimit':
|
|
1049
1049
|
if (reserve === undefined || !reserve.config.borrowLimit.eq(reserveConfig.borrowLimit)) {
|
|
1050
|
-
|
|
1050
|
+
updateReserveIxsArgs.push(createUpdateReserveIxsArg(types_1.UpdateConfigMode.UpdateBorrowLimit.discriminator, BigInt(reserveConfig.borrowLimit.toString())));
|
|
1051
1051
|
}
|
|
1052
1052
|
break;
|
|
1053
1053
|
case 'tokenInfo':
|
|
1054
1054
|
const tokenInfo = reserveConfig.tokenInfo;
|
|
1055
1055
|
if (reserve === undefined) {
|
|
1056
|
-
|
|
1057
|
-
|
|
1058
|
-
|
|
1059
|
-
|
|
1060
|
-
|
|
1061
|
-
|
|
1062
|
-
|
|
1063
|
-
|
|
1064
|
-
|
|
1065
|
-
|
|
1066
|
-
|
|
1067
|
-
|
|
1068
|
-
|
|
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));
|
|
1069
1069
|
}
|
|
1070
1070
|
else {
|
|
1071
1071
|
if (!(0, utils_2.sameLengthArrayEquals)(reserve.config.tokenInfo.name, tokenInfo.name)) {
|
|
1072
|
-
|
|
1072
|
+
updateReserveIxsArgs.push(createUpdateReserveIxsArg(types_1.UpdateConfigMode.UpdateTokenInfoName.discriminator, tokenInfo.name));
|
|
1073
1073
|
}
|
|
1074
1074
|
if (!reserve.config.tokenInfo.heuristic.lower.eq(tokenInfo.heuristic.lower)) {
|
|
1075
|
-
|
|
1075
|
+
updateReserveIxsArgs.push(createUpdateReserveIxsArg(types_1.UpdateConfigMode.UpdateTokenInfoLowerHeuristic.discriminator, tokenInfo.heuristic.lower.toNumber()));
|
|
1076
1076
|
}
|
|
1077
1077
|
if (!reserve.config.tokenInfo.heuristic.upper.eq(tokenInfo.heuristic.upper)) {
|
|
1078
|
-
|
|
1078
|
+
updateReserveIxsArgs.push(createUpdateReserveIxsArg(types_1.UpdateConfigMode.UpdateTokenInfoUpperHeuristic.discriminator, tokenInfo.heuristic.upper.toNumber()));
|
|
1079
1079
|
}
|
|
1080
1080
|
if (!reserve.config.tokenInfo.heuristic.exp.eq(tokenInfo.heuristic.exp)) {
|
|
1081
|
-
|
|
1081
|
+
updateReserveIxsArgs.push(createUpdateReserveIxsArg(types_1.UpdateConfigMode.UpdateTokenInfoExpHeuristic.discriminator, tokenInfo.heuristic.exp.toNumber()));
|
|
1082
1082
|
}
|
|
1083
1083
|
if (!reserve.config.tokenInfo.maxTwapDivergenceBps.eq(tokenInfo.maxTwapDivergenceBps)) {
|
|
1084
|
-
|
|
1084
|
+
updateReserveIxsArgs.push(createUpdateReserveIxsArg(types_1.UpdateConfigMode.UpdateTokenInfoTwapDivergence.discriminator, tokenInfo.maxTwapDivergenceBps.toNumber()));
|
|
1085
1085
|
}
|
|
1086
1086
|
if (!reserve.config.tokenInfo.maxAgePriceSeconds.eq(tokenInfo.maxAgePriceSeconds)) {
|
|
1087
|
-
|
|
1087
|
+
updateReserveIxsArgs.push(createUpdateReserveIxsArg(types_1.UpdateConfigMode.UpdateTokenInfoPriceMaxAge.discriminator, tokenInfo.maxAgePriceSeconds.toNumber()));
|
|
1088
1088
|
}
|
|
1089
1089
|
if (!reserve.config.tokenInfo.maxAgeTwapSeconds.eq(tokenInfo.maxAgeTwapSeconds)) {
|
|
1090
|
-
|
|
1090
|
+
updateReserveIxsArgs.push(createUpdateReserveIxsArg(types_1.UpdateConfigMode.UpdateTokenInfoTwapMaxAge.discriminator, tokenInfo.maxAgeTwapSeconds.toNumber()));
|
|
1091
1091
|
}
|
|
1092
1092
|
if (!(0, utils_2.sameLengthArrayEquals)(reserve.config.tokenInfo.scopeConfiguration.priceChain, tokenInfo.scopeConfiguration.priceChain)) {
|
|
1093
|
-
|
|
1093
|
+
updateReserveIxsArgs.push(createUpdateReserveIxsArg(types_1.UpdateConfigMode.UpdateTokenInfoScopeChain.discriminator, tokenInfo.scopeConfiguration.priceChain));
|
|
1094
1094
|
}
|
|
1095
1095
|
if (!(0, utils_2.sameLengthArrayEquals)(reserve.config.tokenInfo.scopeConfiguration.twapChain, tokenInfo.scopeConfiguration.twapChain)) {
|
|
1096
|
-
|
|
1096
|
+
updateReserveIxsArgs.push(createUpdateReserveIxsArg(types_1.UpdateConfigMode.UpdateTokenInfoScopeTwap.discriminator, tokenInfo.scopeConfiguration.twapChain));
|
|
1097
1097
|
}
|
|
1098
1098
|
if (!reserve.config.tokenInfo.switchboardConfiguration.priceAggregator.equals(tokenInfo.switchboardConfiguration.priceAggregator)) {
|
|
1099
|
-
|
|
1099
|
+
updateReserveIxsArgs.push(createUpdateReserveIxsArg(types_1.UpdateConfigMode.UpdateSwitchboardFeed.discriminator, tokenInfo.switchboardConfiguration.priceAggregator));
|
|
1100
1100
|
}
|
|
1101
1101
|
if (!reserve.config.tokenInfo.switchboardConfiguration.twapAggregator.equals(tokenInfo.switchboardConfiguration.twapAggregator)) {
|
|
1102
|
-
|
|
1102
|
+
updateReserveIxsArgs.push(createUpdateReserveIxsArg(types_1.UpdateConfigMode.UpdateSwitchboardTwapFeed.discriminator, tokenInfo.switchboardConfiguration.twapAggregator));
|
|
1103
1103
|
}
|
|
1104
1104
|
if (!reserve.config.tokenInfo.pythConfiguration.price.equals(tokenInfo.pythConfiguration.price)) {
|
|
1105
|
-
|
|
1105
|
+
updateReserveIxsArgs.push(createUpdateReserveIxsArg(types_1.UpdateConfigMode.UpdatePythPrice.discriminator, tokenInfo.pythConfiguration.price));
|
|
1106
1106
|
}
|
|
1107
1107
|
if (reserve.config.tokenInfo.blockPriceUsage !== tokenInfo.blockPriceUsage) {
|
|
1108
|
-
|
|
1108
|
+
updateReserveIxsArgs.push(createUpdateReserveIxsArg(types_1.UpdateConfigMode.UpdateBlockPriceUsage.discriminator, tokenInfo.blockPriceUsage));
|
|
1109
1109
|
}
|
|
1110
1110
|
if (!reserve.config.tokenInfo.scopeConfiguration.priceFeed.equals(tokenInfo.scopeConfiguration.priceFeed)) {
|
|
1111
|
-
|
|
1111
|
+
updateReserveIxsArgs.push(createUpdateReserveIxsArg(types_1.UpdateConfigMode.UpdateScopePriceFeed.discriminator, tokenInfo.scopeConfiguration.priceFeed));
|
|
1112
1112
|
}
|
|
1113
1113
|
}
|
|
1114
1114
|
break;
|
|
@@ -1116,7 +1116,7 @@ function handleConfigUpdate(key, reserve, reserveConfig, updateReserveIxnsArgs)
|
|
|
1116
1116
|
if (reserve === undefined ||
|
|
1117
1117
|
!reserve.config.depositWithdrawalCap.configCapacity.eq(reserveConfig.depositWithdrawalCap.configCapacity) ||
|
|
1118
1118
|
!reserve.config.depositWithdrawalCap.configIntervalLengthSeconds.eq(reserveConfig.depositWithdrawalCap.configIntervalLengthSeconds)) {
|
|
1119
|
-
|
|
1119
|
+
updateReserveIxsArgs.push(createUpdateReserveIxsArg(types_1.UpdateConfigMode.UpdateDepositWithdrawalCap.discriminator, [
|
|
1120
1120
|
reserveConfig.depositWithdrawalCap.configCapacity.toNumber(),
|
|
1121
1121
|
reserveConfig.depositWithdrawalCap.configIntervalLengthSeconds.toNumber(),
|
|
1122
1122
|
]));
|
|
@@ -1126,7 +1126,7 @@ function handleConfigUpdate(key, reserve, reserveConfig, updateReserveIxnsArgs)
|
|
|
1126
1126
|
if (reserve === undefined ||
|
|
1127
1127
|
!reserve.config.debtWithdrawalCap.configCapacity.eq(reserveConfig.debtWithdrawalCap.configCapacity) ||
|
|
1128
1128
|
!reserve.config.debtWithdrawalCap.configIntervalLengthSeconds.eq(reserveConfig.debtWithdrawalCap.configIntervalLengthSeconds)) {
|
|
1129
|
-
|
|
1129
|
+
updateReserveIxsArgs.push(createUpdateReserveIxsArg(types_1.UpdateConfigMode.UpdateDebtWithdrawalCap.discriminator, [
|
|
1130
1130
|
reserveConfig.debtWithdrawalCap.configCapacity.toNumber(),
|
|
1131
1131
|
reserveConfig.debtWithdrawalCap.configIntervalLengthSeconds.toNumber(),
|
|
1132
1132
|
]));
|
|
@@ -1135,49 +1135,49 @@ function handleConfigUpdate(key, reserve, reserveConfig, updateReserveIxnsArgs)
|
|
|
1135
1135
|
case 'elevationGroups':
|
|
1136
1136
|
if (reserve === undefined ||
|
|
1137
1137
|
!(0, utils_2.sameLengthArrayEquals)(reserve.config.elevationGroups, reserveConfig.elevationGroups)) {
|
|
1138
|
-
|
|
1138
|
+
updateReserveIxsArgs.push(createUpdateReserveIxsArg(types_1.UpdateConfigMode.UpdateElevationGroup.discriminator, reserveConfig.elevationGroups));
|
|
1139
1139
|
}
|
|
1140
1140
|
break;
|
|
1141
1141
|
case 'disableUsageAsCollOutsideEmode':
|
|
1142
1142
|
if (reserve === undefined ||
|
|
1143
1143
|
reserve.config.disableUsageAsCollOutsideEmode !== reserveConfig.disableUsageAsCollOutsideEmode) {
|
|
1144
|
-
|
|
1144
|
+
updateReserveIxsArgs.push(createUpdateReserveIxsArg(types_1.UpdateConfigMode.UpdateDisableUsageAsCollateralOutsideEmode.discriminator, reserveConfig.disableUsageAsCollOutsideEmode));
|
|
1145
1145
|
}
|
|
1146
1146
|
break;
|
|
1147
1147
|
case 'utilizationLimitBlockBorrowingAbovePct':
|
|
1148
1148
|
if (reserve === undefined ||
|
|
1149
1149
|
reserve.config.utilizationLimitBlockBorrowingAbovePct !== reserveConfig.utilizationLimitBlockBorrowingAbovePct) {
|
|
1150
|
-
|
|
1150
|
+
updateReserveIxsArgs.push(createUpdateReserveIxsArg(types_1.UpdateConfigMode.UpdateBlockBorrowingAboveUtilizationPct.discriminator, reserveConfig.utilizationLimitBlockBorrowingAbovePct));
|
|
1151
1151
|
}
|
|
1152
1152
|
break;
|
|
1153
1153
|
case 'autodeleverageEnabled':
|
|
1154
1154
|
if (reserve === undefined || reserve.config.autodeleverageEnabled !== reserveConfig.autodeleverageEnabled) {
|
|
1155
|
-
|
|
1155
|
+
updateReserveIxsArgs.push(createUpdateReserveIxsArg(types_1.UpdateConfigMode.UpdateAutodeleverageEnabled.discriminator, reserveConfig.autodeleverageEnabled));
|
|
1156
1156
|
}
|
|
1157
1157
|
break;
|
|
1158
1158
|
case 'borrowLimitOutsideElevationGroup':
|
|
1159
1159
|
if (reserve === undefined ||
|
|
1160
1160
|
!reserve.config.borrowLimitOutsideElevationGroup.eq(reserveConfig.borrowLimitOutsideElevationGroup)) {
|
|
1161
|
-
|
|
1161
|
+
updateReserveIxsArgs.push(createUpdateReserveIxsArg(types_1.UpdateConfigMode.UpdateBorrowLimitOutsideElevationGroup.discriminator, reserveConfig.borrowLimitOutsideElevationGroup.toNumber()));
|
|
1162
1162
|
}
|
|
1163
1163
|
break;
|
|
1164
1164
|
case 'borrowLimitAgainstThisCollateralInElevationGroup':
|
|
1165
1165
|
if (reserve === undefined ||
|
|
1166
1166
|
!(0, utils_2.sameLengthArrayEquals)(reserve.config.borrowLimitAgainstThisCollateralInElevationGroup, reserveConfig.borrowLimitAgainstThisCollateralInElevationGroup)) {
|
|
1167
|
-
|
|
1167
|
+
updateReserveIxsArgs.push(createUpdateReserveIxsArg(types_1.UpdateConfigMode.UpdateBorrowLimitsInElevationGroupAgainstThisReserve.discriminator, reserveConfig.borrowLimitAgainstThisCollateralInElevationGroup.map((borrowLimit) => borrowLimit.toNumber())));
|
|
1168
1168
|
}
|
|
1169
1169
|
break;
|
|
1170
1170
|
case 'deleveragingBonusIncreaseBpsPerDay':
|
|
1171
1171
|
if (reserve === undefined ||
|
|
1172
1172
|
!reserve.config.deleveragingBonusIncreaseBpsPerDay.eq(reserveConfig.deleveragingBonusIncreaseBpsPerDay)) {
|
|
1173
|
-
|
|
1173
|
+
updateReserveIxsArgs.push(createUpdateReserveIxsArg(types_1.UpdateConfigMode.UpdateDeleveragingBonusIncreaseBpsPerDay.discriminator, reserveConfig.deleveragingBonusIncreaseBpsPerDay.toNumber()));
|
|
1174
1174
|
}
|
|
1175
1175
|
break;
|
|
1176
1176
|
default:
|
|
1177
1177
|
(0, utils_2.assertNever)(key); // Will cause compile error if any case is missing
|
|
1178
1178
|
}
|
|
1179
1179
|
}
|
|
1180
|
-
function
|
|
1180
|
+
function createUpdateReserveIxsArg(discriminator, value) {
|
|
1181
1181
|
return {
|
|
1182
1182
|
// Note: below we add 1 to the discriminator, because UpdateConfigMode in SC starts from 1, while the idl-codegen
|
|
1183
1183
|
// creates the TS counterparts starting from 0:
|
|
@@ -1204,23 +1204,23 @@ function updateEntireReserveConfigIx(marketWithAddress, reserveAddress, reserveC
|
|
|
1204
1204
|
return ix;
|
|
1205
1205
|
}
|
|
1206
1206
|
function parseForChangesReserveConfigAndGetIxs(marketWithAddress, reserve, reserveAddress, reserveConfig, programId) {
|
|
1207
|
-
let
|
|
1207
|
+
let updateReserveIxsArgs = [];
|
|
1208
1208
|
for (const key in reserveConfig.toEncodable()) {
|
|
1209
1209
|
if (isExcludedReserveConfigKey(key)) {
|
|
1210
1210
|
continue;
|
|
1211
1211
|
}
|
|
1212
|
-
handleConfigUpdate(key, reserve, reserveConfig,
|
|
1212
|
+
handleConfigUpdate(key, reserve, reserveConfig, updateReserveIxsArgs);
|
|
1213
1213
|
}
|
|
1214
|
-
const
|
|
1215
|
-
|
|
1216
|
-
|
|
1214
|
+
const ixs = [];
|
|
1215
|
+
updateReserveIxsArgs = (0, exports.sortIxsByPriority)(updateReserveIxsArgs);
|
|
1216
|
+
updateReserveIxsArgs.forEach((updateReserveConfigArgs) => {
|
|
1217
1217
|
let skipValidation = false;
|
|
1218
1218
|
if ((0, exports.modeMatches)(updateReserveConfigArgs.mode) && !reserve?.liquidity.availableAmount.gten(utils_1.MIN_INITIAL_DEPOSIT)) {
|
|
1219
1219
|
skipValidation = true;
|
|
1220
1220
|
}
|
|
1221
|
-
|
|
1221
|
+
ixs.push(updateReserveConfigIx(marketWithAddress, reserveAddress, updateReserveConfigArgs.mode, updateReserveConfigArgs.value, programId, skipValidation));
|
|
1222
1222
|
});
|
|
1223
|
-
return
|
|
1223
|
+
return ixs;
|
|
1224
1224
|
}
|
|
1225
1225
|
function updateReserveConfigEncodedValue(discriminator, value) {
|
|
1226
1226
|
let buffer;
|
|
@@ -1347,10 +1347,10 @@ const modeMatches = (mode) => {
|
|
|
1347
1347
|
return validModes.includes(mode);
|
|
1348
1348
|
};
|
|
1349
1349
|
exports.modeMatches = modeMatches;
|
|
1350
|
-
// Sort update reserve
|
|
1350
|
+
// Sort update reserve ixs, to first have the oracle config updates first
|
|
1351
1351
|
// In order to skip the validation for the scope config updates
|
|
1352
|
-
const
|
|
1353
|
-
return
|
|
1352
|
+
const sortIxsByPriority = (updateReserveIxsArgs) => {
|
|
1353
|
+
return updateReserveIxsArgs.sort((a, b) => {
|
|
1354
1354
|
const isPriorityA = a.mode === 20 || a.mode === 16;
|
|
1355
1355
|
const isPriorityB = b.mode === 20 || b.mode === 16;
|
|
1356
1356
|
if (isPriorityA && !isPriorityB) {
|
|
@@ -1362,5 +1362,5 @@ const sortIxnsByPriority = (updateReserveIxnsArgs) => {
|
|
|
1362
1362
|
return 0;
|
|
1363
1363
|
});
|
|
1364
1364
|
};
|
|
1365
|
-
exports.
|
|
1365
|
+
exports.sortIxsByPriority = sortIxsByPriority;
|
|
1366
1366
|
//# sourceMappingURL=reserve.js.map
|