@gearbox-protocol/sdk 16.0.0-next.18 → 16.0.0-next.19
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/cjs/common-utils/index.js +3 -21
- package/dist/cjs/common-utils/test-utils/index.js +4 -3
- package/dist/cjs/common-utils/utils/index.js +3 -22
- package/dist/cjs/common-utils/utils/strategies/index.js +3 -0
- package/dist/cjs/common-utils/utils/strategies/strategy-info/cm-availability-condition.js +5 -5
- package/dist/cjs/common-utils/utils/strategies/strategy-info/credit-manager-issues.js +135 -0
- package/dist/cjs/common-utils/utils/strategies/strategy-info/get-cm-you-can-earn.js +12 -23
- package/dist/cjs/common-utils/utils/strategies/strategy-info/index.js +3 -0
- package/dist/cjs/onchain/accounts/index.js +2 -3
- package/dist/cjs/onchain/accounts/intents/guards.js +55 -50
- package/dist/cjs/onchain/accounts/intents/index.js +7 -8
- package/dist/cjs/onchain/accounts/intents/math.js +15 -22
- package/dist/cjs/onchain/accounts/intents/open-strategy.js +5 -5
- package/dist/cjs/onchain/accounts/intents/plan.js +27 -41
- package/dist/cjs/onchain/accounts/intents/realize.js +14 -21
- package/dist/cjs/onchain/accounts/intents/tail.js +2 -2
- package/dist/cjs/onchain/accounts/intents/testing/sdk-mock.js +1 -0
- package/dist/cjs/onchain/accounts/intents/view.js +1 -0
- package/dist/cjs/onchain/constants/index.js +1 -0
- package/dist/cjs/onchain/constants/math.js +11 -0
- package/dist/cjs/onchain/index.js +32 -3
- package/dist/cjs/onchain/validation/checks.js +250 -0
- package/dist/cjs/onchain/validation/index.js +29 -0
- package/dist/cjs/onchain/{accounts/intents → validation}/refusal.js +12 -1
- package/dist/cjs/onchain/validation/token.js +29 -0
- package/dist/cjs/preview/index.js +10 -0
- package/dist/cjs/preview/preview/buildDelayedPreview.js +1 -0
- package/dist/cjs/preview/preview/previewAdjustCreditAccount.js +1 -0
- package/dist/cjs/preview/preview/previewOpenCreditAccount.js +1 -0
- package/dist/cjs/preview/validate/checkOperation.js +173 -0
- package/dist/cjs/preview/validate/checkSimulation.js +52 -0
- package/dist/cjs/preview/validate/index.js +6 -0
- package/dist/cjs/sdk/index.js +4 -0
- package/dist/cjs/sdk/prepare/PrepareApi.js +17 -13
- package/dist/cjs/sdk/prepare/index.js +4 -0
- package/dist/cjs/sdk/prepare/types.js +4 -0
- package/dist/esm/common-utils/index.js +2 -11
- package/dist/esm/common-utils/test-utils/index.js +4 -3
- package/dist/esm/common-utils/utils/index.js +2 -12
- package/dist/esm/common-utils/utils/strategies/index.js +2 -1
- package/dist/esm/common-utils/utils/strategies/strategy-info/cm-availability-condition.js +5 -5
- package/dist/esm/common-utils/utils/strategies/strategy-info/credit-manager-issues.js +133 -0
- package/dist/esm/common-utils/utils/strategies/strategy-info/get-cm-you-can-earn.js +12 -23
- package/dist/esm/common-utils/utils/strategies/strategy-info/index.js +2 -1
- package/dist/esm/dev/AccountOpener.js +1 -1
- package/dist/esm/dev/withdrawalUtils.js +1 -1
- package/dist/esm/onchain/accounts/CreditAccountsServiceV310.js +2 -2
- package/dist/esm/onchain/accounts/index.js +2 -2
- package/dist/esm/onchain/accounts/intents/guards.js +55 -50
- package/dist/esm/onchain/accounts/intents/index.js +5 -5
- package/dist/esm/onchain/accounts/intents/math.js +14 -21
- package/dist/esm/onchain/accounts/intents/open-strategy.js +4 -4
- package/dist/esm/onchain/accounts/intents/plan.js +15 -29
- package/dist/esm/onchain/accounts/intents/realize.js +12 -19
- package/dist/esm/onchain/accounts/intents/tail.js +1 -1
- package/dist/esm/onchain/accounts/intents/testing/sdk-mock.js +1 -0
- package/dist/esm/onchain/accounts/intents/view.js +1 -0
- package/dist/esm/onchain/accounts/liquidations/LiquidationsService.js +1 -1
- package/dist/esm/onchain/accounts/withdrawal-compressor/RedemptionLoggerV310Contract.js +1 -1
- package/dist/esm/onchain/accounts/withdrawal-compressor/WithdrawalCompressorV310Contract.js +1 -1
- package/dist/esm/onchain/accounts/withdrawal-compressor/WithdrawalCompressorV311Contract.js +1 -1
- package/dist/esm/onchain/accounts/withdrawal-compressor/WithdrawalCompressorV313Contract.js +1 -1
- package/dist/esm/onchain/base/TokensMeta.js +3 -3
- package/dist/esm/onchain/chain/detectNetwork.js +1 -1
- package/dist/esm/onchain/constants/index.js +2 -2
- package/dist/esm/onchain/constants/math.js +11 -1
- package/dist/esm/onchain/core/createAddressProvider.js +1 -1
- package/dist/esm/onchain/index.js +7 -3
- package/dist/esm/onchain/market/adapters/contracts/AccountMigratorAdapterContract.js +1 -1
- package/dist/esm/onchain/market/adapters/contracts/ERC4626AdapterContract.js +1 -1
- package/dist/esm/onchain/market/credit/CreditFacadeV310BaseContract.js +1 -1
- package/dist/esm/onchain/market/pool/PoolV310Contract.js +1 -1
- package/dist/esm/onchain/market/zapper/IETHZapperContract.js +1 -1
- package/dist/esm/onchain/market/zapper/ZapperContract.js +1 -1
- package/dist/esm/onchain/pools/PoolService.js +1 -1
- package/dist/esm/onchain/utils/viem/simulateWithPriceUpdates.js +1 -1
- package/dist/esm/onchain/validation/checks.js +230 -0
- package/dist/esm/onchain/validation/index.js +4 -0
- package/dist/esm/onchain/{accounts/intents → validation}/refusal.js +12 -2
- package/dist/esm/onchain/validation/token.js +27 -0
- package/dist/esm/preview/index.js +5 -1
- package/dist/esm/preview/preview/buildDelayedPreview.js +1 -0
- package/dist/esm/preview/preview/previewAdjustCreditAccount.js +1 -0
- package/dist/esm/preview/preview/previewOpenCreditAccount.js +1 -0
- package/dist/esm/preview/simulate/simulatePoolOperation.js +1 -1
- package/dist/esm/preview/trace/extractTransfers.js +1 -1
- package/dist/esm/preview/validate/checkOperation.js +171 -0
- package/dist/esm/preview/validate/checkSimulation.js +51 -0
- package/dist/esm/preview/validate/index.js +3 -0
- package/dist/esm/sdk/index.js +2 -1
- package/dist/esm/sdk/prepare/PrepareApi.js +15 -11
- package/dist/esm/sdk/prepare/index.js +2 -1
- package/dist/esm/sdk/prepare/types.js +2 -1
- package/dist/types/common-utils/index.d.ts +2 -12
- package/dist/types/common-utils/utils/index.d.ts +2 -13
- package/dist/types/common-utils/utils/strategies/index.d.ts +2 -1
- package/dist/types/common-utils/utils/strategies/strategy-info/credit-manager-issues.d.ts +34 -0
- package/dist/types/common-utils/utils/strategies/strategy-info/index.d.ts +2 -1
- package/dist/types/model/previews.d.ts +22 -0
- package/dist/types/onchain/accounts/index.d.ts +2 -2
- package/dist/types/onchain/accounts/intents/guards.d.ts +8 -4
- package/dist/types/onchain/accounts/intents/index.d.ts +4 -3
- package/dist/types/onchain/accounts/intents/math.d.ts +2 -1
- package/dist/types/onchain/accounts/intents/plan.d.ts +3 -0
- package/dist/types/onchain/accounts/intents/types.d.ts +7 -1
- package/dist/types/onchain/constants/index.d.ts +2 -2
- package/dist/types/onchain/constants/math.d.ts +9 -1
- package/dist/types/onchain/index.d.ts +7 -3
- package/dist/types/onchain/validation/checks.d.ts +167 -0
- package/dist/types/onchain/validation/index.d.ts +4 -0
- package/dist/types/onchain/{accounts/intents → validation}/refusal.d.ts +100 -31
- package/dist/types/onchain/validation/token.d.ts +17 -0
- package/dist/types/preview/index.d.ts +5 -1
- package/dist/types/preview/validate/checkOperation.d.ts +46 -0
- package/dist/types/preview/validate/checkSimulation.d.ts +34 -0
- package/dist/types/preview/validate/index.d.ts +3 -0
- package/dist/types/sdk/index.d.ts +2 -2
- package/dist/types/sdk/prepare/index.d.ts +2 -2
- package/dist/types/sdk/prepare/types.d.ts +2 -2
- package/package.json +1 -1
- package/dist/cjs/common-utils/utils/strategies/strategy-info/get-cm-you-can-earn.spec.js +0 -267
- package/dist/cjs/common-utils/utils/validation/index.js +0 -23
- package/dist/cjs/common-utils/utils/validation/is-zero-balance.js +0 -7
- package/dist/cjs/common-utils/utils/validation/validate-balance.js +0 -22
- package/dist/cjs/common-utils/utils/validation/validate-balance.spec.js +0 -54
- package/dist/cjs/common-utils/utils/validation/validate-balances.js +0 -17
- package/dist/cjs/common-utils/utils/validation/validate-balances.spec.js +0 -45
- package/dist/cjs/common-utils/utils/validation/validate-credit-manager.js +0 -8
- package/dist/cjs/common-utils/utils/validation/validate-credit-manager.spec.js +0 -36
- package/dist/cjs/common-utils/utils/validation/validate-hf.js +0 -10
- package/dist/cjs/common-utils/utils/validation/validate-hf.spec.js +0 -26
- package/dist/cjs/common-utils/utils/validation/validate-open-account-pool-quota-status.js +0 -14
- package/dist/cjs/common-utils/utils/validation/validate-open-account-pool-quota-status.spec.js +0 -29
- package/dist/cjs/common-utils/utils/validation/validate-open-account-pool-status.js +0 -37
- package/dist/cjs/common-utils/utils/validation/validate-open-account-pool-status.spec.js +0 -98
- package/dist/cjs/common-utils/utils/validation/validate-open-account.js +0 -18
- package/dist/cjs/common-utils/utils/validation/validate-open-account.spec.js +0 -56
- package/dist/cjs/common-utils/utils/validation/validate-quota.js +0 -23
- package/dist/cjs/common-utils/utils/validation/validate-quota.spec.js +0 -88
- package/dist/cjs/common-utils/utils/validation/validate-token-to-obtain.js +0 -18
- package/dist/cjs/common-utils/utils/validation/validate-token-to-obtain.spec.js +0 -36
- package/dist/cjs/common-utils/utils/validation/validation-types.js +0 -1
- package/dist/esm/common-utils/utils/strategies/strategy-info/get-cm-you-can-earn.spec.js +0 -264
- package/dist/esm/common-utils/utils/validation/index.js +0 -12
- package/dist/esm/common-utils/utils/validation/is-zero-balance.js +0 -6
- package/dist/esm/common-utils/utils/validation/validate-balance.js +0 -21
- package/dist/esm/common-utils/utils/validation/validate-balance.spec.js +0 -54
- package/dist/esm/common-utils/utils/validation/validate-balances.js +0 -16
- package/dist/esm/common-utils/utils/validation/validate-balances.spec.js +0 -45
- package/dist/esm/common-utils/utils/validation/validate-credit-manager.js +0 -7
- package/dist/esm/common-utils/utils/validation/validate-credit-manager.spec.js +0 -36
- package/dist/esm/common-utils/utils/validation/validate-hf.js +0 -8
- package/dist/esm/common-utils/utils/validation/validate-hf.spec.js +0 -26
- package/dist/esm/common-utils/utils/validation/validate-open-account-pool-quota-status.js +0 -13
- package/dist/esm/common-utils/utils/validation/validate-open-account-pool-quota-status.spec.js +0 -29
- package/dist/esm/common-utils/utils/validation/validate-open-account-pool-status.js +0 -36
- package/dist/esm/common-utils/utils/validation/validate-open-account-pool-status.spec.js +0 -98
- package/dist/esm/common-utils/utils/validation/validate-open-account.js +0 -17
- package/dist/esm/common-utils/utils/validation/validate-open-account.spec.js +0 -56
- package/dist/esm/common-utils/utils/validation/validate-quota.js +0 -22
- package/dist/esm/common-utils/utils/validation/validate-quota.spec.js +0 -88
- package/dist/esm/common-utils/utils/validation/validate-token-to-obtain.js +0 -17
- package/dist/esm/common-utils/utils/validation/validate-token-to-obtain.spec.js +0 -36
- package/dist/esm/common-utils/utils/validation/validation-types.js +0 -1
- package/dist/types/common-utils/utils/strategies/strategy-info/get-cm-you-can-earn.spec.d.ts +0 -1
- package/dist/types/common-utils/utils/validation/index.d.ts +0 -12
- package/dist/types/common-utils/utils/validation/is-zero-balance.d.ts +0 -4
- package/dist/types/common-utils/utils/validation/validate-balance.d.ts +0 -25
- package/dist/types/common-utils/utils/validation/validate-balance.spec.d.ts +0 -1
- package/dist/types/common-utils/utils/validation/validate-balances.d.ts +0 -13
- package/dist/types/common-utils/utils/validation/validate-balances.spec.d.ts +0 -1
- package/dist/types/common-utils/utils/validation/validate-credit-manager.d.ts +0 -13
- package/dist/types/common-utils/utils/validation/validate-credit-manager.spec.d.ts +0 -1
- package/dist/types/common-utils/utils/validation/validate-hf.d.ts +0 -12
- package/dist/types/common-utils/utils/validation/validate-hf.spec.d.ts +0 -1
- package/dist/types/common-utils/utils/validation/validate-open-account-pool-quota-status.d.ts +0 -10
- package/dist/types/common-utils/utils/validation/validate-open-account-pool-quota-status.spec.d.ts +0 -1
- package/dist/types/common-utils/utils/validation/validate-open-account-pool-status.d.ts +0 -26
- package/dist/types/common-utils/utils/validation/validate-open-account-pool-status.spec.d.ts +0 -1
- package/dist/types/common-utils/utils/validation/validate-open-account.d.ts +0 -25
- package/dist/types/common-utils/utils/validation/validate-open-account.spec.d.ts +0 -1
- package/dist/types/common-utils/utils/validation/validate-quota.d.ts +0 -24
- package/dist/types/common-utils/utils/validation/validate-quota.spec.d.ts +0 -1
- package/dist/types/common-utils/utils/validation/validate-token-to-obtain.d.ts +0 -17
- package/dist/types/common-utils/utils/validation/validate-token-to-obtain.spec.d.ts +0 -1
- package/dist/types/common-utils/utils/validation/validation-types.d.ts +0 -10
|
@@ -3,7 +3,6 @@ const require_common_utils_axios_cache_AxiosCache = require("./axios-cache/Axios
|
|
|
3
3
|
require("./axios-cache/index.js");
|
|
4
4
|
const require_onchain_utils_bigint_math = require("../onchain/utils/bigint-math.js");
|
|
5
5
|
const require_common_utils_utils_trace = require("./utils/trace.js");
|
|
6
|
-
const require_common_utils_utils_validation_validate_hf = require("./utils/validation/validate-hf.js");
|
|
7
6
|
const require_common_utils_utils_creditAccount_quota_utils = require("./utils/creditAccount/quota-utils.js");
|
|
8
7
|
const require_common_utils_charts_credit_manager = require("./charts/credit-manager.js");
|
|
9
8
|
const require_common_utils_charts_credit_session = require("./charts/credit-session.js");
|
|
@@ -75,20 +74,12 @@ const require_common_utils_utils_strategies_points_get_complex_points_list = req
|
|
|
75
74
|
const require_common_utils_utils_strategies_points_get_points_info = require("./utils/strategies/points/get-points-info.js");
|
|
76
75
|
const require_common_utils_utils_strategies_points_get_points_rates = require("./utils/strategies/points/get-points-rates.js");
|
|
77
76
|
const require_common_utils_utils_strategies_points_get_strategy_points = require("./utils/strategies/points/get-strategy-points.js");
|
|
78
|
-
const
|
|
79
|
-
const require_common_utils_utils_validation_validate_open_account_pool_status = require("./utils/validation/validate-open-account-pool-status.js");
|
|
77
|
+
const require_common_utils_utils_strategies_strategy_info_credit_manager_issues = require("./utils/strategies/strategy-info/credit-manager-issues.js");
|
|
80
78
|
const require_common_utils_utils_strategies_strategy_info_cm_availability_condition = require("./utils/strategies/strategy-info/cm-availability-condition.js");
|
|
81
79
|
const require_common_utils_utils_strategies_strategy_info_get_strategy_max_apy = require("./utils/strategies/strategy-info/get-strategy-max-apy.js");
|
|
82
80
|
const require_common_utils_utils_strategies_sort_strategy_cms_by_availability_sort_strategy_cms_by_availability = require("./utils/strategies/sort-strategy-cms-by-availability/sort-strategy-cms-by-availability.js");
|
|
83
81
|
const require_common_utils_utils_strategies_strategy_info_calculate_total_apy = require("./utils/strategies/strategy-info/calculate-total-apy.js");
|
|
84
82
|
const require_common_utils_utils_strategies_strategy_info_calculate_total_points = require("./utils/strategies/strategy-info/calculate-total-points.js");
|
|
85
|
-
const require_common_utils_utils_validation_is_zero_balance = require("./utils/validation/is-zero-balance.js");
|
|
86
|
-
const require_common_utils_utils_validation_validate_balance = require("./utils/validation/validate-balance.js");
|
|
87
|
-
const require_common_utils_utils_validation_validate_balances = require("./utils/validation/validate-balances.js");
|
|
88
|
-
const require_common_utils_utils_validation_validate_credit_manager = require("./utils/validation/validate-credit-manager.js");
|
|
89
|
-
const require_common_utils_utils_validation_validate_quota = require("./utils/validation/validate-quota.js");
|
|
90
|
-
const require_common_utils_utils_validation_validate_open_account = require("./utils/validation/validate-open-account.js");
|
|
91
|
-
const require_common_utils_utils_validation_validate_token_to_obtain = require("./utils/validation/validate-token-to-obtain.js");
|
|
92
83
|
const require_common_utils_utils_strategies_strategy_info_get_cm_you_can_earn = require("./utils/strategies/strategy-info/get-cm-you-can-earn.js");
|
|
93
84
|
const require_common_utils_utils_strategies_strategy_info_get_strategy_info_core = require("./utils/strategies/strategy-info/get-strategy-info-core.js");
|
|
94
85
|
const require_common_utils_utils_strategies_strategy_info_get_strategy_info = require("./utils/strategies/strategy-info/get-strategy-info.js");
|
|
@@ -108,7 +99,6 @@ exports.EMPTY_ADDRESS = require_common_utils_utils_constants.EMPTY_ADDRESS;
|
|
|
108
99
|
exports.EMPTY_ARRAY = require_common_utils_utils_constants.EMPTY_ARRAY;
|
|
109
100
|
exports.EMPTY_OBJECT = require_common_utils_utils_constants.EMPTY_OBJECT;
|
|
110
101
|
exports.EXECUTE_BYTES_SELECTOR = require_common_utils_utils_trace.EXECUTE_BYTES_SELECTOR;
|
|
111
|
-
exports.MIN_HF_LIMITED = require_common_utils_utils_validation_validate_hf.MIN_HF_LIMITED;
|
|
112
102
|
exports.PriceUtils = require_common_utils_utils_price_math.PriceUtils;
|
|
113
103
|
exports.RST_ETH_ADDRESS = require_common_utils_utils_strategies_tokens_is_apy_with_points_exception.RST_ETH_ADDRESS;
|
|
114
104
|
exports.TokenData = require_common_utils_charts_token_data.TokenData;
|
|
@@ -136,7 +126,9 @@ exports.calculateSafeBorrowRate = require_common_utils_utils_apy_calculate_safe_
|
|
|
136
126
|
exports.calculateTotalAPY = require_common_utils_utils_strategies_strategy_info_calculate_total_apy.calculateTotalAPY;
|
|
137
127
|
exports.calculateTotalPoints = require_common_utils_utils_strategies_strategy_info_calculate_total_points.calculateTotalPoints;
|
|
138
128
|
exports.checkBoolean = require_common_utils_utils_strategies_availability_check_boolean.checkBoolean;
|
|
129
|
+
exports.checkCreditManagerUsable = require_common_utils_utils_strategies_strategy_info_credit_manager_issues.checkCreditManagerUsable;
|
|
139
130
|
exports.checkDegenNFT = require_common_utils_utils_strategies_availability_check_degen_nft.checkDegenNFT;
|
|
131
|
+
exports.checkOpenAccountCeilings = require_common_utils_utils_strategies_strategy_info_credit_manager_issues.checkOpenAccountCeilings;
|
|
140
132
|
exports.cmAvailabilityCondition = require_common_utils_utils_strategies_strategy_info_cm_availability_condition.cmAvailabilityCondition;
|
|
141
133
|
exports.collectTraces = require_common_utils_utils_trace.collectTraces;
|
|
142
134
|
exports.createLegacyStrategyDataSource = require_common_utils_utils_strategies_types_legacy_strategy_data_source.createLegacyStrategyDataSource;
|
|
@@ -186,7 +178,6 @@ exports.isStrategyEligible = require_common_utils_utils_strategies_eligibility_i
|
|
|
186
178
|
exports.isStrategyReleased = require_common_utils_utils_strategies_eligibility_is_strategy_released.isStrategyReleased;
|
|
187
179
|
exports.isUsableToken = require_common_utils_utils_strategies_tokens_is_usable_token.isUsableToken;
|
|
188
180
|
exports.isValidExtraCollateralToken = require_common_utils_utils_strategies_tokens_is_valid_extra_collateral_token.isValidExtraCollateralToken;
|
|
189
|
-
exports.isZeroBalance = require_common_utils_utils_validation_is_zero_balance.isZeroBalance;
|
|
190
181
|
exports.liquidationPrice = require_common_utils_utils_creditAccount_liquidation_price.liquidationPrice;
|
|
191
182
|
exports.maxAPYFormula = require_common_utils_utils_apy_max_apy_formula.maxAPYFormula;
|
|
192
183
|
exports.maxLeverage = require_common_utils_utils_strategies_leverage_max_leverage.maxLeverage;
|
|
@@ -197,13 +188,4 @@ exports.sortAssets = require_common_utils_utils_creditAccount_sort.sortAssets;
|
|
|
197
188
|
exports.sortBalances = require_common_utils_utils_creditAccount_sort.sortBalances;
|
|
198
189
|
exports.sortStrategyCMsByAvailability = require_common_utils_utils_strategies_sort_strategy_cms_by_availability_sort_strategy_cms_by_availability.sortStrategyCMsByAvailability;
|
|
199
190
|
exports.tokensAbcComparator = require_common_utils_utils_creditAccount_sort.tokensAbcComparator;
|
|
200
|
-
exports.validateBalance = require_common_utils_utils_validation_validate_balance.validateBalance;
|
|
201
|
-
exports.validateBalances = require_common_utils_utils_validation_validate_balances.validateBalances;
|
|
202
|
-
exports.validateCreditManager = require_common_utils_utils_validation_validate_credit_manager.validateCreditManager;
|
|
203
|
-
exports.validateHF = require_common_utils_utils_validation_validate_hf.validateHF;
|
|
204
|
-
exports.validateOpenAccount = require_common_utils_utils_validation_validate_open_account.validateOpenAccount;
|
|
205
|
-
exports.validateOpenAccountPoolQuotaStatus = require_common_utils_utils_validation_validate_open_account_pool_quota_status.validateOpenAccountPoolQuotaStatus;
|
|
206
|
-
exports.validateOpenAccountPoolStatus = require_common_utils_utils_validation_validate_open_account_pool_status.validateOpenAccountPoolStatus;
|
|
207
|
-
exports.validateQuota = require_common_utils_utils_validation_validate_quota.validateQuota;
|
|
208
|
-
exports.validateTokenToObtain = require_common_utils_utils_validation_validate_token_to_obtain.validateTokenToObtain;
|
|
209
191
|
exports.wrapTokenAddress = require_common_utils_utils_strategies_tokens_wrap_token_address.wrapTokenAddress;
|
|
@@ -43,6 +43,7 @@ function buildCreditManager(overrides = {}) {
|
|
|
43
43
|
const pool = overrides.pool ?? "0xcccccccccccccccccccccccccccccccccccccccc";
|
|
44
44
|
const underlyingToken = overrides.underlyingToken ?? "0x9999999999999999999999999999999999999999";
|
|
45
45
|
const quotas = overrides.quotas ?? {};
|
|
46
|
+
const forbiddenTokens = overrides.forbiddenTokens ?? {};
|
|
46
47
|
return {
|
|
47
48
|
address,
|
|
48
49
|
name: overrides.name ?? "",
|
|
@@ -50,7 +51,6 @@ function buildCreditManager(overrides = {}) {
|
|
|
50
51
|
pool,
|
|
51
52
|
isPaused: overrides.isPaused ?? false,
|
|
52
53
|
collateralTokens: overrides.collateralTokens ?? [],
|
|
53
|
-
forbiddenTokens: overrides.forbiddenTokens ?? {},
|
|
54
54
|
supportedTokens: overrides.supportedTokens ?? {},
|
|
55
55
|
quotas,
|
|
56
56
|
liquidationThresholds: overrides.liquidationThresholds ?? {},
|
|
@@ -66,8 +66,9 @@ function buildCreditManager(overrides = {}) {
|
|
|
66
66
|
isDegenMode: overrides.isDegenMode ?? false,
|
|
67
67
|
degenNFT: overrides.degenNFT ?? "0x0000000000000000000000000000000000000000",
|
|
68
68
|
isQuoted: overrides.isQuoted ?? (() => false),
|
|
69
|
-
|
|
70
|
-
|
|
69
|
+
...overrides,
|
|
70
|
+
forbiddenTokens,
|
|
71
|
+
isForbidden: overrides.isForbidden ?? ((token) => !!forbiddenTokens[token])
|
|
71
72
|
};
|
|
72
73
|
}
|
|
73
74
|
function buildTokenData(address, symbol, decimals = 18, isPhantom = false) {
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
2
|
const require_onchain_utils_bigint_math = require("../../onchain/utils/bigint-math.js");
|
|
3
3
|
const require_common_utils_utils_trace = require("./trace.js");
|
|
4
|
-
const require_common_utils_utils_validation_validate_hf = require("./validation/validate-hf.js");
|
|
5
4
|
const require_common_utils_utils_creditAccount_quota_utils = require("./creditAccount/quota-utils.js");
|
|
6
5
|
const require_common_utils_utils_apy_bonus_apy_from_points = require("./apy/bonus-apy-from-points.js");
|
|
7
6
|
const require_common_utils_utils_apy_calculate_borrow_rate_from_utilization = require("./apy/calculate-borrow-rate-from-utilization.js");
|
|
@@ -69,26 +68,17 @@ const require_common_utils_utils_strategies_points_get_complex_points_list = req
|
|
|
69
68
|
const require_common_utils_utils_strategies_points_get_points_info = require("./strategies/points/get-points-info.js");
|
|
70
69
|
const require_common_utils_utils_strategies_points_get_points_rates = require("./strategies/points/get-points-rates.js");
|
|
71
70
|
const require_common_utils_utils_strategies_points_get_strategy_points = require("./strategies/points/get-strategy-points.js");
|
|
72
|
-
const
|
|
73
|
-
const require_common_utils_utils_validation_validate_open_account_pool_status = require("./validation/validate-open-account-pool-status.js");
|
|
71
|
+
const require_common_utils_utils_strategies_strategy_info_credit_manager_issues = require("./strategies/strategy-info/credit-manager-issues.js");
|
|
74
72
|
const require_common_utils_utils_strategies_strategy_info_cm_availability_condition = require("./strategies/strategy-info/cm-availability-condition.js");
|
|
75
73
|
const require_common_utils_utils_strategies_strategy_info_get_strategy_max_apy = require("./strategies/strategy-info/get-strategy-max-apy.js");
|
|
76
74
|
const require_common_utils_utils_strategies_sort_strategy_cms_by_availability_sort_strategy_cms_by_availability = require("./strategies/sort-strategy-cms-by-availability/sort-strategy-cms-by-availability.js");
|
|
77
75
|
const require_common_utils_utils_strategies_strategy_info_calculate_total_apy = require("./strategies/strategy-info/calculate-total-apy.js");
|
|
78
76
|
const require_common_utils_utils_strategies_strategy_info_calculate_total_points = require("./strategies/strategy-info/calculate-total-points.js");
|
|
79
|
-
const require_common_utils_utils_validation_is_zero_balance = require("./validation/is-zero-balance.js");
|
|
80
|
-
const require_common_utils_utils_validation_validate_balance = require("./validation/validate-balance.js");
|
|
81
|
-
const require_common_utils_utils_validation_validate_balances = require("./validation/validate-balances.js");
|
|
82
|
-
const require_common_utils_utils_validation_validate_credit_manager = require("./validation/validate-credit-manager.js");
|
|
83
|
-
const require_common_utils_utils_validation_validate_quota = require("./validation/validate-quota.js");
|
|
84
|
-
const require_common_utils_utils_validation_validate_open_account = require("./validation/validate-open-account.js");
|
|
85
|
-
const require_common_utils_utils_validation_validate_token_to_obtain = require("./validation/validate-token-to-obtain.js");
|
|
86
77
|
const require_common_utils_utils_strategies_strategy_info_get_cm_you_can_earn = require("./strategies/strategy-info/get-cm-you-can-earn.js");
|
|
87
78
|
const require_common_utils_utils_strategies_strategy_info_get_strategy_info_core = require("./strategies/strategy-info/get-strategy-info-core.js");
|
|
88
79
|
const require_common_utils_utils_strategies_strategy_info_get_strategy_info = require("./strategies/strategy-info/get-strategy-info.js");
|
|
89
80
|
const require_common_utils_utils_strategies_strategy_info_get_strategy_you_can_earn = require("./strategies/strategy-info/get-strategy-you-can-earn.js");
|
|
90
81
|
require("./strategies/index.js");
|
|
91
|
-
require("./validation/index.js");
|
|
92
82
|
exports.AssetUtils = require_common_utils_utils_assets_math.AssetUtils;
|
|
93
83
|
exports.BONUS_APY_FROM_POINTS = require_common_utils_utils_apy_bonus_apy_from_points.BONUS_APY_FROM_POINTS;
|
|
94
84
|
exports.BigIntMath = require_onchain_utils_bigint_math.BigIntMath;
|
|
@@ -96,7 +86,6 @@ exports.EMPTY_ADDRESS = require_common_utils_utils_constants.EMPTY_ADDRESS;
|
|
|
96
86
|
exports.EMPTY_ARRAY = require_common_utils_utils_constants.EMPTY_ARRAY;
|
|
97
87
|
exports.EMPTY_OBJECT = require_common_utils_utils_constants.EMPTY_OBJECT;
|
|
98
88
|
exports.EXECUTE_BYTES_SELECTOR = require_common_utils_utils_trace.EXECUTE_BYTES_SELECTOR;
|
|
99
|
-
exports.MIN_HF_LIMITED = require_common_utils_utils_validation_validate_hf.MIN_HF_LIMITED;
|
|
100
89
|
exports.PriceUtils = require_common_utils_utils_price_math.PriceUtils;
|
|
101
90
|
exports.RST_ETH_ADDRESS = require_common_utils_utils_strategies_tokens_is_apy_with_points_exception.RST_ETH_ADDRESS;
|
|
102
91
|
exports.addAmountInTarget = require_common_utils_utils_strategies_tokens_add_amount_in_target.addAmountInTarget;
|
|
@@ -121,7 +110,9 @@ exports.calculateSafeBorrowRate = require_common_utils_utils_apy_calculate_safe_
|
|
|
121
110
|
exports.calculateTotalAPY = require_common_utils_utils_strategies_strategy_info_calculate_total_apy.calculateTotalAPY;
|
|
122
111
|
exports.calculateTotalPoints = require_common_utils_utils_strategies_strategy_info_calculate_total_points.calculateTotalPoints;
|
|
123
112
|
exports.checkBoolean = require_common_utils_utils_strategies_availability_check_boolean.checkBoolean;
|
|
113
|
+
exports.checkCreditManagerUsable = require_common_utils_utils_strategies_strategy_info_credit_manager_issues.checkCreditManagerUsable;
|
|
124
114
|
exports.checkDegenNFT = require_common_utils_utils_strategies_availability_check_degen_nft.checkDegenNFT;
|
|
115
|
+
exports.checkOpenAccountCeilings = require_common_utils_utils_strategies_strategy_info_credit_manager_issues.checkOpenAccountCeilings;
|
|
125
116
|
exports.cmAvailabilityCondition = require_common_utils_utils_strategies_strategy_info_cm_availability_condition.cmAvailabilityCondition;
|
|
126
117
|
exports.collectTraces = require_common_utils_utils_trace.collectTraces;
|
|
127
118
|
exports.createLegacyStrategyDataSource = require_common_utils_utils_strategies_types_legacy_strategy_data_source.createLegacyStrategyDataSource;
|
|
@@ -171,7 +162,6 @@ exports.isStrategyEligible = require_common_utils_utils_strategies_eligibility_i
|
|
|
171
162
|
exports.isStrategyReleased = require_common_utils_utils_strategies_eligibility_is_strategy_released.isStrategyReleased;
|
|
172
163
|
exports.isUsableToken = require_common_utils_utils_strategies_tokens_is_usable_token.isUsableToken;
|
|
173
164
|
exports.isValidExtraCollateralToken = require_common_utils_utils_strategies_tokens_is_valid_extra_collateral_token.isValidExtraCollateralToken;
|
|
174
|
-
exports.isZeroBalance = require_common_utils_utils_validation_is_zero_balance.isZeroBalance;
|
|
175
165
|
exports.liquidationPrice = require_common_utils_utils_creditAccount_liquidation_price.liquidationPrice;
|
|
176
166
|
exports.maxAPYFormula = require_common_utils_utils_apy_max_apy_formula.maxAPYFormula;
|
|
177
167
|
exports.maxLeverage = require_common_utils_utils_strategies_leverage_max_leverage.maxLeverage;
|
|
@@ -182,13 +172,4 @@ exports.sortAssets = require_common_utils_utils_creditAccount_sort.sortAssets;
|
|
|
182
172
|
exports.sortBalances = require_common_utils_utils_creditAccount_sort.sortBalances;
|
|
183
173
|
exports.sortStrategyCMsByAvailability = require_common_utils_utils_strategies_sort_strategy_cms_by_availability_sort_strategy_cms_by_availability.sortStrategyCMsByAvailability;
|
|
184
174
|
exports.tokensAbcComparator = require_common_utils_utils_creditAccount_sort.tokensAbcComparator;
|
|
185
|
-
exports.validateBalance = require_common_utils_utils_validation_validate_balance.validateBalance;
|
|
186
|
-
exports.validateBalances = require_common_utils_utils_validation_validate_balances.validateBalances;
|
|
187
|
-
exports.validateCreditManager = require_common_utils_utils_validation_validate_credit_manager.validateCreditManager;
|
|
188
|
-
exports.validateHF = require_common_utils_utils_validation_validate_hf.validateHF;
|
|
189
|
-
exports.validateOpenAccount = require_common_utils_utils_validation_validate_open_account.validateOpenAccount;
|
|
190
|
-
exports.validateOpenAccountPoolQuotaStatus = require_common_utils_utils_validation_validate_open_account_pool_quota_status.validateOpenAccountPoolQuotaStatus;
|
|
191
|
-
exports.validateOpenAccountPoolStatus = require_common_utils_utils_validation_validate_open_account_pool_status.validateOpenAccountPoolStatus;
|
|
192
|
-
exports.validateQuota = require_common_utils_utils_validation_validate_quota.validateQuota;
|
|
193
|
-
exports.validateTokenToObtain = require_common_utils_utils_validation_validate_token_to_obtain.validateTokenToObtain;
|
|
194
175
|
exports.wrapTokenAddress = require_common_utils_utils_strategies_tokens_wrap_token_address.wrapTokenAddress;
|
|
@@ -51,6 +51,7 @@ const require_common_utils_utils_strategies_points_get_points_info = require("./
|
|
|
51
51
|
const require_common_utils_utils_strategies_points_get_points_rates = require("./points/get-points-rates.js");
|
|
52
52
|
const require_common_utils_utils_strategies_points_get_strategy_points = require("./points/get-strategy-points.js");
|
|
53
53
|
require("./points/index.js");
|
|
54
|
+
const require_common_utils_utils_strategies_strategy_info_credit_manager_issues = require("./strategy-info/credit-manager-issues.js");
|
|
54
55
|
const require_common_utils_utils_strategies_strategy_info_cm_availability_condition = require("./strategy-info/cm-availability-condition.js");
|
|
55
56
|
const require_common_utils_utils_strategies_strategy_info_get_strategy_max_apy = require("./strategy-info/get-strategy-max-apy.js");
|
|
56
57
|
const require_common_utils_utils_strategies_sort_strategy_cms_by_availability_sort_strategy_cms_by_availability = require("./sort-strategy-cms-by-availability/sort-strategy-cms-by-availability.js");
|
|
@@ -71,7 +72,9 @@ exports.calculateMaxStrategyDebt = require_common_utils_utils_strategies_leverag
|
|
|
71
72
|
exports.calculateTotalAPY = require_common_utils_utils_strategies_strategy_info_calculate_total_apy.calculateTotalAPY;
|
|
72
73
|
exports.calculateTotalPoints = require_common_utils_utils_strategies_strategy_info_calculate_total_points.calculateTotalPoints;
|
|
73
74
|
exports.checkBoolean = require_common_utils_utils_strategies_availability_check_boolean.checkBoolean;
|
|
75
|
+
exports.checkCreditManagerUsable = require_common_utils_utils_strategies_strategy_info_credit_manager_issues.checkCreditManagerUsable;
|
|
74
76
|
exports.checkDegenNFT = require_common_utils_utils_strategies_availability_check_degen_nft.checkDegenNFT;
|
|
77
|
+
exports.checkOpenAccountCeilings = require_common_utils_utils_strategies_strategy_info_credit_manager_issues.checkOpenAccountCeilings;
|
|
75
78
|
exports.cmAvailabilityCondition = require_common_utils_utils_strategies_strategy_info_cm_availability_condition.cmAvailabilityCondition;
|
|
76
79
|
exports.createLegacyStrategyDataSource = require_common_utils_utils_strategies_types_legacy_strategy_data_source.createLegacyStrategyDataSource;
|
|
77
80
|
exports.getAvailableAndDisabledStrategies = require_common_utils_utils_strategies_lists_get_available_and_disabled_strategies.getAvailableAndDisabledStrategies;
|
|
@@ -2,16 +2,16 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
|
2
2
|
const require_common_utils_utils_strategies_availability_check_boolean = require("../availability/check-boolean.js");
|
|
3
3
|
const require_common_utils_utils_strategies_availability_check_degen_nft = require("../availability/check-degen-nft.js");
|
|
4
4
|
require("../availability/index.js");
|
|
5
|
-
const
|
|
5
|
+
const require_common_utils_utils_strategies_strategy_info_credit_manager_issues = require("./credit-manager-issues.js");
|
|
6
6
|
//#region src/common-utils/utils/strategies/strategy-info/cm-availability-condition.ts
|
|
7
7
|
function cmAvailabilityCondition(targetToken, cmA, cmB, pools) {
|
|
8
|
-
const aHasMinError =
|
|
8
|
+
const aHasMinError = require_common_utils_utils_strategies_strategy_info_credit_manager_issues.checkOpenAccountCeilings({
|
|
9
9
|
pool: pools?.[cmA.pool],
|
|
10
10
|
debt: cmA.minDebt,
|
|
11
11
|
creditManager: cmA,
|
|
12
12
|
targetToken
|
|
13
13
|
});
|
|
14
|
-
const bHasMinError =
|
|
14
|
+
const bHasMinError = require_common_utils_utils_strategies_strategy_info_credit_manager_issues.checkOpenAccountCeilings({
|
|
15
15
|
pool: pools?.[cmB.pool],
|
|
16
16
|
debt: cmB.minDebt,
|
|
17
17
|
creditManager: cmB,
|
|
@@ -23,13 +23,13 @@ function cmAvailabilityCondition(targetToken, cmA, cmB, pools) {
|
|
|
23
23
|
const { freeOfNFT: bFreeOfNFT } = require_common_utils_utils_strategies_availability_check_degen_nft.checkDegenNFT(cmB);
|
|
24
24
|
const nftSort = require_common_utils_utils_strategies_availability_check_boolean.checkBoolean(aFreeOfNFT, bFreeOfNFT);
|
|
25
25
|
if (nftSort !== 0) return nftSort;
|
|
26
|
-
const aHasMaxError =
|
|
26
|
+
const aHasMaxError = require_common_utils_utils_strategies_strategy_info_credit_manager_issues.checkOpenAccountCeilings({
|
|
27
27
|
pool: pools?.[cmA.pool],
|
|
28
28
|
debt: cmA.maxDebt,
|
|
29
29
|
creditManager: cmA,
|
|
30
30
|
targetToken
|
|
31
31
|
});
|
|
32
|
-
const bHasMaxError =
|
|
32
|
+
const bHasMaxError = require_common_utils_utils_strategies_strategy_info_credit_manager_issues.checkOpenAccountCeilings({
|
|
33
33
|
pool: pools?.[cmB.pool],
|
|
34
34
|
debt: cmB.maxDebt,
|
|
35
35
|
creditManager: cmB,
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
const require_onchain_utils_bigint_math = require("../../../../onchain/utils/bigint-math.js");
|
|
3
|
+
const require_onchain_validation_checks = require("../../../../onchain/validation/checks.js");
|
|
4
|
+
require("../../../../onchain/index.js");
|
|
5
|
+
//#region src/common-utils/utils/strategies/strategy-info/credit-manager-issues.ts
|
|
6
|
+
/**
|
|
7
|
+
* The ladders below are the order the strategy lists report in, which is theirs
|
|
8
|
+
* to decide — the engine weighs the same ceilings differently and says so.
|
|
9
|
+
*/
|
|
10
|
+
/**
|
|
11
|
+
* The lists hold no token registry, so only the address is real here — these
|
|
12
|
+
* issues are read as a reason, not rendered as an amount.
|
|
13
|
+
*/
|
|
14
|
+
function tokenOf(chainId, address) {
|
|
15
|
+
return {
|
|
16
|
+
chainId,
|
|
17
|
+
address,
|
|
18
|
+
symbol: address,
|
|
19
|
+
name: "",
|
|
20
|
+
decimals: 0
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* The debt ceilings an account opening runs into, in the order a form reports
|
|
25
|
+
* them. The minimum debt is what is weighed — asking for less does not make it
|
|
26
|
+
* fit.
|
|
27
|
+
*/
|
|
28
|
+
function checkOpenAccountCeilings(args) {
|
|
29
|
+
const { creditManager, pool, debt, targetToken } = args;
|
|
30
|
+
const underlying = tokenOf(creditManager.chainId, creditManager.underlyingToken);
|
|
31
|
+
const effectiveDebt = require_onchain_utils_bigint_math.BigIntMath.max(creditManager.minDebt, debt);
|
|
32
|
+
const debtLimitLeft = require_onchain_utils_bigint_math.BigIntMath.max(creditManager.totalDebtLimit - creditManager.totalDebt, 0n);
|
|
33
|
+
const { totalDebtLimit = 0n, totalBorrowed = 0n } = pool || {};
|
|
34
|
+
const poolDebtLimitLeft = totalDebtLimit - totalBorrowed;
|
|
35
|
+
const canOpenMinDebt = creditManager.minDebt <= debtLimitLeft && creditManager.minDebt <= poolDebtLimitLeft && creditManager.minDebt <= creditManager.availableToBorrow;
|
|
36
|
+
const minPositionSize = require_onchain_utils_bigint_math.BigIntMath.min(require_onchain_utils_bigint_math.BigIntMath.min(debtLimitLeft, poolDebtLimitLeft), creditManager.availableToBorrow);
|
|
37
|
+
const ceilings = [
|
|
38
|
+
...creditManager.totalDebtLimit >= 0n ? [{
|
|
39
|
+
available: debtLimitLeft,
|
|
40
|
+
binding: "managerDebtAvailable"
|
|
41
|
+
}] : [],
|
|
42
|
+
...totalDebtLimit > 0n ? [{
|
|
43
|
+
available: poolDebtLimitLeft,
|
|
44
|
+
binding: "poolDebtLimit"
|
|
45
|
+
}] : [],
|
|
46
|
+
{
|
|
47
|
+
available: creditManager.availableToBorrow,
|
|
48
|
+
binding: "poolAvailableLiquidity"
|
|
49
|
+
}
|
|
50
|
+
];
|
|
51
|
+
for (const { available, binding } of ceilings) {
|
|
52
|
+
const issue = require_onchain_validation_checks.checkBorrowLimit({
|
|
53
|
+
requested: effectiveDebt,
|
|
54
|
+
available,
|
|
55
|
+
binding,
|
|
56
|
+
underlying,
|
|
57
|
+
solutionAmount: canOpenMinDebt ? minPositionSize : void 0
|
|
58
|
+
});
|
|
59
|
+
if (issue) return issue;
|
|
60
|
+
}
|
|
61
|
+
if (targetToken !== null) return quotaIssue(creditManager, targetToken, effectiveDebt, underlying);
|
|
62
|
+
return null;
|
|
63
|
+
}
|
|
64
|
+
/** The room the keeper has left for a token, read off a slice. */
|
|
65
|
+
function quotaIssue(creditManager, token, requested, underlying) {
|
|
66
|
+
const quota = creditManager.quotas[token];
|
|
67
|
+
if (!quota) return null;
|
|
68
|
+
const realLimit = quota.isActive ? quota.limit : 0n;
|
|
69
|
+
return require_onchain_validation_checks.checkQuotaLimit({
|
|
70
|
+
token: tokenOf(creditManager.chainId, token),
|
|
71
|
+
requested,
|
|
72
|
+
available: realLimit - quota.totalQuoted,
|
|
73
|
+
underlying
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
/** Everything the lists weigh before calling a manager usable, in their order. */
|
|
77
|
+
function checkCreditManagerUsable(args) {
|
|
78
|
+
const { creditManager, pool, debt, targetToken } = args;
|
|
79
|
+
const { chainId } = creditManager;
|
|
80
|
+
const underlying = tokenOf(chainId, creditManager.underlyingToken);
|
|
81
|
+
return require_onchain_validation_checks.checkCreditManagerPaused({
|
|
82
|
+
isPaused: creditManager.isPaused,
|
|
83
|
+
creditManager: creditManager.address
|
|
84
|
+
}) || checkOpenAccountCeilings({
|
|
85
|
+
creditManager,
|
|
86
|
+
pool,
|
|
87
|
+
debt,
|
|
88
|
+
targetToken
|
|
89
|
+
}) || (args.tokenToObtain === null ? null : require_onchain_validation_checks.checkForbiddenToken({
|
|
90
|
+
token: tokenOf(chainId, args.tokenToObtain),
|
|
91
|
+
isForbidden: creditManager.isForbidden(args.tokenToObtain)
|
|
92
|
+
})) || fundingIssue(chainId, args.collateral, args.balances) || require_onchain_validation_checks.checkDebtInBand({
|
|
93
|
+
debt,
|
|
94
|
+
minDebt: creditManager.minDebt,
|
|
95
|
+
maxDebt: creditManager.maxDebt,
|
|
96
|
+
underlying,
|
|
97
|
+
allowZero: false
|
|
98
|
+
}) || require_onchain_validation_checks.checkQuotaCount({
|
|
99
|
+
count: Object.values(args.desiredQuota).filter((a) => a.balance > 0n).length,
|
|
100
|
+
max: creditManager.maxEnabledTokensLength
|
|
101
|
+
}) || quotaUpdateIssue(creditManager, args.quotaUpdate, underlying) || require_onchain_validation_checks.checkCollateralised({
|
|
102
|
+
healthFactor: args.healthFactor,
|
|
103
|
+
required: 10101,
|
|
104
|
+
safePrices: false
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* The first asset the wallet cannot fund.
|
|
109
|
+
*
|
|
110
|
+
* The lookup lowercases because the balance map is keyed that way while a
|
|
111
|
+
* market names its tokens as it spells them.
|
|
112
|
+
*/
|
|
113
|
+
function fundingIssue(chainId, collateral, balances) {
|
|
114
|
+
for (const { token, balance } of collateral) {
|
|
115
|
+
const held = balances[token.toLowerCase()] || 0n;
|
|
116
|
+
const issue = require_onchain_validation_checks.checkFunding({
|
|
117
|
+
token: tokenOf(chainId, token),
|
|
118
|
+
required: balance,
|
|
119
|
+
held
|
|
120
|
+
});
|
|
121
|
+
if (issue) return issue;
|
|
122
|
+
}
|
|
123
|
+
return null;
|
|
124
|
+
}
|
|
125
|
+
function quotaUpdateIssue(creditManager, quotaUpdate, underlying) {
|
|
126
|
+
for (const { token, balance: updateBy } of quotaUpdate) {
|
|
127
|
+
if (updateBy <= 0n) continue;
|
|
128
|
+
const issue = quotaIssue(creditManager, token, updateBy, underlying);
|
|
129
|
+
if (issue) return issue;
|
|
130
|
+
}
|
|
131
|
+
return null;
|
|
132
|
+
}
|
|
133
|
+
//#endregion
|
|
134
|
+
exports.checkCreditManagerUsable = checkCreditManagerUsable;
|
|
135
|
+
exports.checkOpenAccountCeilings = checkOpenAccountCeilings;
|
|
@@ -2,8 +2,8 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
|
2
2
|
const require_onchain_utils_bigint_math = require("../../../../onchain/utils/bigint-math.js");
|
|
3
3
|
const require_onchain_constants_math = require("../../../../onchain/constants/math.js");
|
|
4
4
|
const require_onchain_utils_formatter = require("../../../../onchain/utils/formatter.js");
|
|
5
|
-
const require_common_utils_utils_validation_validate_hf = require("../../validation/validate-hf.js");
|
|
6
5
|
const require_common_utils_utils_creditAccount_quota_utils = require("../../creditAccount/quota-utils.js");
|
|
6
|
+
require("../../../../onchain/index.js");
|
|
7
7
|
const require_common_utils_utils_price_math = require("../../price-math.js");
|
|
8
8
|
const require_common_utils_utils_apy_calculate_earnings = require("../../apy/calculate-earnings.js");
|
|
9
9
|
const require_common_utils_utils_apy_calculate_effective_borrow_rate = require("../../apy/calculate-effective-borrow-rate.js");
|
|
@@ -20,14 +20,9 @@ const require_common_utils_utils_strategies_tokens_get_list_with_amount_in_targe
|
|
|
20
20
|
const require_common_utils_utils_strategies_credit_managers_get_wallet_balances_allowed_on_cm = require("../credit-managers/get-wallet-balances-allowed-on-cm.js");
|
|
21
21
|
const require_common_utils_utils_strategies_points_get_complex_points_list = require("../points/get-complex-points-list.js");
|
|
22
22
|
const require_common_utils_utils_strategies_points_get_points_info = require("../points/get-points-info.js");
|
|
23
|
-
const
|
|
23
|
+
const require_common_utils_utils_strategies_strategy_info_credit_manager_issues = require("./credit-manager-issues.js");
|
|
24
24
|
const require_common_utils_utils_strategies_strategy_info_calculate_total_apy = require("./calculate-total-apy.js");
|
|
25
25
|
const require_common_utils_utils_strategies_strategy_info_calculate_total_points = require("./calculate-total-points.js");
|
|
26
|
-
const require_common_utils_utils_validation_is_zero_balance = require("../../validation/is-zero-balance.js");
|
|
27
|
-
const require_common_utils_utils_validation_validate_balances = require("../../validation/validate-balances.js");
|
|
28
|
-
const require_common_utils_utils_validation_validate_credit_manager = require("../../validation/validate-credit-manager.js");
|
|
29
|
-
const require_common_utils_utils_validation_validate_open_account = require("../../validation/validate-open-account.js");
|
|
30
|
-
const require_common_utils_utils_validation_validate_token_to_obtain = require("../../validation/validate-token-to-obtain.js");
|
|
31
26
|
//#region src/common-utils/utils/strategies/strategy-info/get-cm-you-can-earn.ts
|
|
32
27
|
function getCMYouCanEarn({ allPrices, creditManager, tokensList, delayedPhantoms, nativeTokenAddress, wrappedNativeTokenAddress, walletBalances, strategy, slippage, quotaReserve, apyList, pools }) {
|
|
33
28
|
const baseInfo = {
|
|
@@ -76,7 +71,7 @@ function getCMYouCanEarn({ allPrices, creditManager, tokensList, delayedPhantoms
|
|
|
76
71
|
prices,
|
|
77
72
|
isPaused: creditManager?.isPaused
|
|
78
73
|
});
|
|
79
|
-
const filtered = walletBalancesSorted.filter((a) => !
|
|
74
|
+
const filtered = walletBalancesSorted.filter((a) => !require_onchain_constants_math.isZeroBalance(a.balance));
|
|
80
75
|
const collateral_initial = filtered[0];
|
|
81
76
|
if (!collateral_initial || collateral_initial.balance === 0n) return {
|
|
82
77
|
status: "error",
|
|
@@ -177,27 +172,21 @@ function getCMYouCanEarn({ allPrices, creditManager, tokensList, delayedPhantoms
|
|
|
177
172
|
tokensList
|
|
178
173
|
});
|
|
179
174
|
const pool = pools?.[creditManager.pool];
|
|
180
|
-
const error =
|
|
181
|
-
pool,
|
|
175
|
+
const error = collateral.some((a) => require_onchain_constants_math.isZeroBalance(a.balance)) ? { reason: "insufficientSourceBalance" } : require_common_utils_utils_strategies_strategy_info_credit_manager_issues.checkCreditManagerUsable({
|
|
182
176
|
creditManager,
|
|
177
|
+
pool,
|
|
183
178
|
debt,
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
}) || require_common_utils_utils_validation_validate_balances.validateBalances({
|
|
179
|
+
healthFactor: hf,
|
|
180
|
+
targetToken: targetTokenAddress,
|
|
181
|
+
tokenToObtain: strategy.tokenOutAddress,
|
|
182
|
+
collateral,
|
|
189
183
|
balances: walletBalances,
|
|
190
|
-
assets: collateral
|
|
191
|
-
}) || require_common_utils_utils_validation_validate_open_account.validateOpenAccount({
|
|
192
184
|
desiredQuota,
|
|
193
|
-
quotaUpdate
|
|
194
|
-
|
|
195
|
-
creditManager,
|
|
196
|
-
loading: false
|
|
197
|
-
}) || require_common_utils_utils_validation_validate_hf.validateHF({ hf });
|
|
185
|
+
quotaUpdate
|
|
186
|
+
});
|
|
198
187
|
if (error) return {
|
|
199
188
|
status: "error",
|
|
200
|
-
description: `Resulting CA did not pass validation: ${error.
|
|
189
|
+
description: `Resulting CA did not pass validation: ${error.reason}`,
|
|
201
190
|
otherInfo: {
|
|
202
191
|
...baseInfo,
|
|
203
192
|
hf
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
2
|
const require_common_utils_utils_strategies_strategy_info_is_strategy_cm_disabled = require("./is-strategy-cm-disabled.js");
|
|
3
|
+
const require_common_utils_utils_strategies_strategy_info_credit_manager_issues = require("./credit-manager-issues.js");
|
|
3
4
|
const require_common_utils_utils_strategies_strategy_info_cm_availability_condition = require("./cm-availability-condition.js");
|
|
4
5
|
const require_common_utils_utils_strategies_strategy_info_get_strategy_max_apy = require("./get-strategy-max-apy.js");
|
|
5
6
|
const require_common_utils_utils_strategies_strategy_info_calculate_total_apy = require("./calculate-total-apy.js");
|
|
@@ -11,6 +12,8 @@ const require_common_utils_utils_strategies_strategy_info_get_strategy_you_can_e
|
|
|
11
12
|
require("./types.js");
|
|
12
13
|
exports.calculateTotalAPY = require_common_utils_utils_strategies_strategy_info_calculate_total_apy.calculateTotalAPY;
|
|
13
14
|
exports.calculateTotalPoints = require_common_utils_utils_strategies_strategy_info_calculate_total_points.calculateTotalPoints;
|
|
15
|
+
exports.checkCreditManagerUsable = require_common_utils_utils_strategies_strategy_info_credit_manager_issues.checkCreditManagerUsable;
|
|
16
|
+
exports.checkOpenAccountCeilings = require_common_utils_utils_strategies_strategy_info_credit_manager_issues.checkOpenAccountCeilings;
|
|
14
17
|
exports.cmAvailabilityCondition = require_common_utils_utils_strategies_strategy_info_cm_availability_condition.cmAvailabilityCondition;
|
|
15
18
|
exports.getCMYouCanEarn = require_common_utils_utils_strategies_strategy_info_get_cm_you_can_earn.getCMYouCanEarn;
|
|
16
19
|
exports.getStrategyInfo = require_common_utils_utils_strategies_strategy_info_get_strategy_info.getStrategyInfo;
|
|
@@ -6,7 +6,7 @@ const require_onchain_accounts_credit_account_compressor_CreditAccountCompressor
|
|
|
6
6
|
const require_onchain_accounts_credit_account_compressor_CreditAccountCompressor = require("./credit-account-compressor/CreditAccountCompressor.js");
|
|
7
7
|
require("./credit-account-compressor/index.js");
|
|
8
8
|
const require_onchain_accounts_CreditAccountsServiceV310 = require("./CreditAccountsServiceV310.js");
|
|
9
|
-
const
|
|
9
|
+
const require_onchain_accounts_intents_guards = require("./intents/guards.js");
|
|
10
10
|
const require_onchain_accounts_intents_utils_credit_account_slice = require("./intents/utils/credit-account-slice.js");
|
|
11
11
|
const require_onchain_accounts_intents_index = require("./intents/index.js");
|
|
12
12
|
const require_onchain_accounts_liquidations_constants = require("./liquidations/constants.js");
|
|
@@ -34,7 +34,6 @@ exports.CreditAccountOperationsService = require_onchain_accounts_intents_index.
|
|
|
34
34
|
exports.CreditAccountsServiceV310 = require_onchain_accounts_CreditAccountsServiceV310.CreditAccountsServiceV310;
|
|
35
35
|
exports.DELAYED_INTENT_TYPES = require_onchain_accounts_withdrawal_compressor_intent_codec.DELAYED_INTENT_TYPES;
|
|
36
36
|
exports.DELAYED_INTENT_VERSION = require_onchain_accounts_withdrawal_compressor_intent_codec.DELAYED_INTENT_VERSION;
|
|
37
|
-
exports.IntentPreviewError = require_onchain_accounts_intents_refusal.IntentPreviewError;
|
|
38
37
|
exports.InvalidDelayedIntentError = require_onchain_accounts_withdrawal_compressor_errors.InvalidDelayedIntentError;
|
|
39
38
|
exports.LIQUIDATION_APPROVAL_BUFFER = require_onchain_accounts_liquidations_constants.LIQUIDATION_APPROVAL_BUFFER;
|
|
40
39
|
exports.LIQUIDATION_COMPRESSOR_V313_ADDRESS = require_onchain_accounts_liquidations_constants.LIQUIDATION_COMPRESSOR_V313_ADDRESS;
|
|
@@ -45,6 +44,7 @@ exports.RedemptionLoggerV310Contract = require_onchain_accounts_withdrawal_compr
|
|
|
45
44
|
exports.WithdrawalCompressorV310Contract = require_onchain_accounts_withdrawal_compressor_WithdrawalCompressorV310Contract.WithdrawalCompressorV310Contract;
|
|
46
45
|
exports.WithdrawalCompressorV311Contract = require_onchain_accounts_withdrawal_compressor_WithdrawalCompressorV311Contract.WithdrawalCompressorV311Contract;
|
|
47
46
|
exports.WithdrawalCompressorV313Contract = require_onchain_accounts_withdrawal_compressor_WithdrawalCompressorV313Contract.WithdrawalCompressorV313Contract;
|
|
47
|
+
exports.borrowable = require_onchain_accounts_intents_guards.borrowable;
|
|
48
48
|
exports.createRedemptionLogger = require_onchain_accounts_withdrawal_compressor_createRedemptionLogger.createRedemptionLogger;
|
|
49
49
|
exports.createWithdrawalCompressor = require_onchain_accounts_withdrawal_compressor_createWithdrawalCompressor.createWithdrawalCompressor;
|
|
50
50
|
exports.decodeDelayedIntent = require_onchain_accounts_withdrawal_compressor_intent_codec.decodeDelayedIntent;
|
|
@@ -52,7 +52,6 @@ exports.encodeDelayedIntent = require_onchain_accounts_withdrawal_compressor_int
|
|
|
52
52
|
exports.fetchCreditAccountSlice = require_onchain_accounts_intents_utils_credit_account_slice.fetchCreditAccountSlice;
|
|
53
53
|
exports.getWithdrawalCompressorAddress = require_onchain_accounts_withdrawal_compressor_addresses.getWithdrawalCompressorAddress;
|
|
54
54
|
exports.iCreditAccountAbi = require_onchain_accounts_withdrawal_compressor_AbstractWithdrawalCompressorContract.iCreditAccountAbi;
|
|
55
|
-
exports.refuse = require_onchain_accounts_intents_refusal.refuse;
|
|
56
55
|
exports.toClaimableWithdrawal = require_onchain_accounts_withdrawal_compressor_AbstractWithdrawalCompressorContract.toClaimableWithdrawal;
|
|
57
56
|
exports.toCreditAccountSlice = require_onchain_accounts_intents_utils_credit_account_slice.toCreditAccountSlice;
|
|
58
57
|
exports.toPendingWithdrawal = require_onchain_accounts_withdrawal_compressor_AbstractWithdrawalCompressorContract.toPendingWithdrawal;
|