@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.
Files changed (186) hide show
  1. package/dist/cjs/common-utils/index.js +3 -21
  2. package/dist/cjs/common-utils/test-utils/index.js +4 -3
  3. package/dist/cjs/common-utils/utils/index.js +3 -22
  4. package/dist/cjs/common-utils/utils/strategies/index.js +3 -0
  5. package/dist/cjs/common-utils/utils/strategies/strategy-info/cm-availability-condition.js +5 -5
  6. package/dist/cjs/common-utils/utils/strategies/strategy-info/credit-manager-issues.js +135 -0
  7. package/dist/cjs/common-utils/utils/strategies/strategy-info/get-cm-you-can-earn.js +12 -23
  8. package/dist/cjs/common-utils/utils/strategies/strategy-info/index.js +3 -0
  9. package/dist/cjs/onchain/accounts/index.js +2 -3
  10. package/dist/cjs/onchain/accounts/intents/guards.js +55 -50
  11. package/dist/cjs/onchain/accounts/intents/index.js +7 -8
  12. package/dist/cjs/onchain/accounts/intents/math.js +15 -22
  13. package/dist/cjs/onchain/accounts/intents/open-strategy.js +5 -5
  14. package/dist/cjs/onchain/accounts/intents/plan.js +27 -41
  15. package/dist/cjs/onchain/accounts/intents/realize.js +14 -21
  16. package/dist/cjs/onchain/accounts/intents/tail.js +2 -2
  17. package/dist/cjs/onchain/accounts/intents/testing/sdk-mock.js +1 -0
  18. package/dist/cjs/onchain/accounts/intents/view.js +1 -0
  19. package/dist/cjs/onchain/constants/index.js +1 -0
  20. package/dist/cjs/onchain/constants/math.js +11 -0
  21. package/dist/cjs/onchain/index.js +32 -3
  22. package/dist/cjs/onchain/validation/checks.js +250 -0
  23. package/dist/cjs/onchain/validation/index.js +29 -0
  24. package/dist/cjs/onchain/{accounts/intents → validation}/refusal.js +12 -1
  25. package/dist/cjs/onchain/validation/token.js +29 -0
  26. package/dist/cjs/preview/index.js +10 -0
  27. package/dist/cjs/preview/preview/buildDelayedPreview.js +1 -0
  28. package/dist/cjs/preview/preview/previewAdjustCreditAccount.js +1 -0
  29. package/dist/cjs/preview/preview/previewOpenCreditAccount.js +1 -0
  30. package/dist/cjs/preview/validate/checkOperation.js +173 -0
  31. package/dist/cjs/preview/validate/checkSimulation.js +52 -0
  32. package/dist/cjs/preview/validate/index.js +6 -0
  33. package/dist/cjs/sdk/index.js +4 -0
  34. package/dist/cjs/sdk/prepare/PrepareApi.js +17 -13
  35. package/dist/cjs/sdk/prepare/index.js +4 -0
  36. package/dist/cjs/sdk/prepare/types.js +4 -0
  37. package/dist/esm/common-utils/index.js +2 -11
  38. package/dist/esm/common-utils/test-utils/index.js +4 -3
  39. package/dist/esm/common-utils/utils/index.js +2 -12
  40. package/dist/esm/common-utils/utils/strategies/index.js +2 -1
  41. package/dist/esm/common-utils/utils/strategies/strategy-info/cm-availability-condition.js +5 -5
  42. package/dist/esm/common-utils/utils/strategies/strategy-info/credit-manager-issues.js +133 -0
  43. package/dist/esm/common-utils/utils/strategies/strategy-info/get-cm-you-can-earn.js +12 -23
  44. package/dist/esm/common-utils/utils/strategies/strategy-info/index.js +2 -1
  45. package/dist/esm/dev/AccountOpener.js +1 -1
  46. package/dist/esm/dev/withdrawalUtils.js +1 -1
  47. package/dist/esm/onchain/accounts/CreditAccountsServiceV310.js +2 -2
  48. package/dist/esm/onchain/accounts/index.js +2 -2
  49. package/dist/esm/onchain/accounts/intents/guards.js +55 -50
  50. package/dist/esm/onchain/accounts/intents/index.js +5 -5
  51. package/dist/esm/onchain/accounts/intents/math.js +14 -21
  52. package/dist/esm/onchain/accounts/intents/open-strategy.js +4 -4
  53. package/dist/esm/onchain/accounts/intents/plan.js +15 -29
  54. package/dist/esm/onchain/accounts/intents/realize.js +12 -19
  55. package/dist/esm/onchain/accounts/intents/tail.js +1 -1
  56. package/dist/esm/onchain/accounts/intents/testing/sdk-mock.js +1 -0
  57. package/dist/esm/onchain/accounts/intents/view.js +1 -0
  58. package/dist/esm/onchain/accounts/liquidations/LiquidationsService.js +1 -1
  59. package/dist/esm/onchain/accounts/withdrawal-compressor/RedemptionLoggerV310Contract.js +1 -1
  60. package/dist/esm/onchain/accounts/withdrawal-compressor/WithdrawalCompressorV310Contract.js +1 -1
  61. package/dist/esm/onchain/accounts/withdrawal-compressor/WithdrawalCompressorV311Contract.js +1 -1
  62. package/dist/esm/onchain/accounts/withdrawal-compressor/WithdrawalCompressorV313Contract.js +1 -1
  63. package/dist/esm/onchain/base/TokensMeta.js +3 -3
  64. package/dist/esm/onchain/chain/detectNetwork.js +1 -1
  65. package/dist/esm/onchain/constants/index.js +2 -2
  66. package/dist/esm/onchain/constants/math.js +11 -1
  67. package/dist/esm/onchain/core/createAddressProvider.js +1 -1
  68. package/dist/esm/onchain/index.js +7 -3
  69. package/dist/esm/onchain/market/adapters/contracts/AccountMigratorAdapterContract.js +1 -1
  70. package/dist/esm/onchain/market/adapters/contracts/ERC4626AdapterContract.js +1 -1
  71. package/dist/esm/onchain/market/credit/CreditFacadeV310BaseContract.js +1 -1
  72. package/dist/esm/onchain/market/pool/PoolV310Contract.js +1 -1
  73. package/dist/esm/onchain/market/zapper/IETHZapperContract.js +1 -1
  74. package/dist/esm/onchain/market/zapper/ZapperContract.js +1 -1
  75. package/dist/esm/onchain/pools/PoolService.js +1 -1
  76. package/dist/esm/onchain/utils/viem/simulateWithPriceUpdates.js +1 -1
  77. package/dist/esm/onchain/validation/checks.js +230 -0
  78. package/dist/esm/onchain/validation/index.js +4 -0
  79. package/dist/esm/onchain/{accounts/intents → validation}/refusal.js +12 -2
  80. package/dist/esm/onchain/validation/token.js +27 -0
  81. package/dist/esm/preview/index.js +5 -1
  82. package/dist/esm/preview/preview/buildDelayedPreview.js +1 -0
  83. package/dist/esm/preview/preview/previewAdjustCreditAccount.js +1 -0
  84. package/dist/esm/preview/preview/previewOpenCreditAccount.js +1 -0
  85. package/dist/esm/preview/simulate/simulatePoolOperation.js +1 -1
  86. package/dist/esm/preview/trace/extractTransfers.js +1 -1
  87. package/dist/esm/preview/validate/checkOperation.js +171 -0
  88. package/dist/esm/preview/validate/checkSimulation.js +51 -0
  89. package/dist/esm/preview/validate/index.js +3 -0
  90. package/dist/esm/sdk/index.js +2 -1
  91. package/dist/esm/sdk/prepare/PrepareApi.js +15 -11
  92. package/dist/esm/sdk/prepare/index.js +2 -1
  93. package/dist/esm/sdk/prepare/types.js +2 -1
  94. package/dist/types/common-utils/index.d.ts +2 -12
  95. package/dist/types/common-utils/utils/index.d.ts +2 -13
  96. package/dist/types/common-utils/utils/strategies/index.d.ts +2 -1
  97. package/dist/types/common-utils/utils/strategies/strategy-info/credit-manager-issues.d.ts +34 -0
  98. package/dist/types/common-utils/utils/strategies/strategy-info/index.d.ts +2 -1
  99. package/dist/types/model/previews.d.ts +22 -0
  100. package/dist/types/onchain/accounts/index.d.ts +2 -2
  101. package/dist/types/onchain/accounts/intents/guards.d.ts +8 -4
  102. package/dist/types/onchain/accounts/intents/index.d.ts +4 -3
  103. package/dist/types/onchain/accounts/intents/math.d.ts +2 -1
  104. package/dist/types/onchain/accounts/intents/plan.d.ts +3 -0
  105. package/dist/types/onchain/accounts/intents/types.d.ts +7 -1
  106. package/dist/types/onchain/constants/index.d.ts +2 -2
  107. package/dist/types/onchain/constants/math.d.ts +9 -1
  108. package/dist/types/onchain/index.d.ts +7 -3
  109. package/dist/types/onchain/validation/checks.d.ts +167 -0
  110. package/dist/types/onchain/validation/index.d.ts +4 -0
  111. package/dist/types/onchain/{accounts/intents → validation}/refusal.d.ts +100 -31
  112. package/dist/types/onchain/validation/token.d.ts +17 -0
  113. package/dist/types/preview/index.d.ts +5 -1
  114. package/dist/types/preview/validate/checkOperation.d.ts +46 -0
  115. package/dist/types/preview/validate/checkSimulation.d.ts +34 -0
  116. package/dist/types/preview/validate/index.d.ts +3 -0
  117. package/dist/types/sdk/index.d.ts +2 -2
  118. package/dist/types/sdk/prepare/index.d.ts +2 -2
  119. package/dist/types/sdk/prepare/types.d.ts +2 -2
  120. package/package.json +1 -1
  121. package/dist/cjs/common-utils/utils/strategies/strategy-info/get-cm-you-can-earn.spec.js +0 -267
  122. package/dist/cjs/common-utils/utils/validation/index.js +0 -23
  123. package/dist/cjs/common-utils/utils/validation/is-zero-balance.js +0 -7
  124. package/dist/cjs/common-utils/utils/validation/validate-balance.js +0 -22
  125. package/dist/cjs/common-utils/utils/validation/validate-balance.spec.js +0 -54
  126. package/dist/cjs/common-utils/utils/validation/validate-balances.js +0 -17
  127. package/dist/cjs/common-utils/utils/validation/validate-balances.spec.js +0 -45
  128. package/dist/cjs/common-utils/utils/validation/validate-credit-manager.js +0 -8
  129. package/dist/cjs/common-utils/utils/validation/validate-credit-manager.spec.js +0 -36
  130. package/dist/cjs/common-utils/utils/validation/validate-hf.js +0 -10
  131. package/dist/cjs/common-utils/utils/validation/validate-hf.spec.js +0 -26
  132. package/dist/cjs/common-utils/utils/validation/validate-open-account-pool-quota-status.js +0 -14
  133. package/dist/cjs/common-utils/utils/validation/validate-open-account-pool-quota-status.spec.js +0 -29
  134. package/dist/cjs/common-utils/utils/validation/validate-open-account-pool-status.js +0 -37
  135. package/dist/cjs/common-utils/utils/validation/validate-open-account-pool-status.spec.js +0 -98
  136. package/dist/cjs/common-utils/utils/validation/validate-open-account.js +0 -18
  137. package/dist/cjs/common-utils/utils/validation/validate-open-account.spec.js +0 -56
  138. package/dist/cjs/common-utils/utils/validation/validate-quota.js +0 -23
  139. package/dist/cjs/common-utils/utils/validation/validate-quota.spec.js +0 -88
  140. package/dist/cjs/common-utils/utils/validation/validate-token-to-obtain.js +0 -18
  141. package/dist/cjs/common-utils/utils/validation/validate-token-to-obtain.spec.js +0 -36
  142. package/dist/cjs/common-utils/utils/validation/validation-types.js +0 -1
  143. package/dist/esm/common-utils/utils/strategies/strategy-info/get-cm-you-can-earn.spec.js +0 -264
  144. package/dist/esm/common-utils/utils/validation/index.js +0 -12
  145. package/dist/esm/common-utils/utils/validation/is-zero-balance.js +0 -6
  146. package/dist/esm/common-utils/utils/validation/validate-balance.js +0 -21
  147. package/dist/esm/common-utils/utils/validation/validate-balance.spec.js +0 -54
  148. package/dist/esm/common-utils/utils/validation/validate-balances.js +0 -16
  149. package/dist/esm/common-utils/utils/validation/validate-balances.spec.js +0 -45
  150. package/dist/esm/common-utils/utils/validation/validate-credit-manager.js +0 -7
  151. package/dist/esm/common-utils/utils/validation/validate-credit-manager.spec.js +0 -36
  152. package/dist/esm/common-utils/utils/validation/validate-hf.js +0 -8
  153. package/dist/esm/common-utils/utils/validation/validate-hf.spec.js +0 -26
  154. package/dist/esm/common-utils/utils/validation/validate-open-account-pool-quota-status.js +0 -13
  155. package/dist/esm/common-utils/utils/validation/validate-open-account-pool-quota-status.spec.js +0 -29
  156. package/dist/esm/common-utils/utils/validation/validate-open-account-pool-status.js +0 -36
  157. package/dist/esm/common-utils/utils/validation/validate-open-account-pool-status.spec.js +0 -98
  158. package/dist/esm/common-utils/utils/validation/validate-open-account.js +0 -17
  159. package/dist/esm/common-utils/utils/validation/validate-open-account.spec.js +0 -56
  160. package/dist/esm/common-utils/utils/validation/validate-quota.js +0 -22
  161. package/dist/esm/common-utils/utils/validation/validate-quota.spec.js +0 -88
  162. package/dist/esm/common-utils/utils/validation/validate-token-to-obtain.js +0 -17
  163. package/dist/esm/common-utils/utils/validation/validate-token-to-obtain.spec.js +0 -36
  164. package/dist/esm/common-utils/utils/validation/validation-types.js +0 -1
  165. package/dist/types/common-utils/utils/strategies/strategy-info/get-cm-you-can-earn.spec.d.ts +0 -1
  166. package/dist/types/common-utils/utils/validation/index.d.ts +0 -12
  167. package/dist/types/common-utils/utils/validation/is-zero-balance.d.ts +0 -4
  168. package/dist/types/common-utils/utils/validation/validate-balance.d.ts +0 -25
  169. package/dist/types/common-utils/utils/validation/validate-balance.spec.d.ts +0 -1
  170. package/dist/types/common-utils/utils/validation/validate-balances.d.ts +0 -13
  171. package/dist/types/common-utils/utils/validation/validate-balances.spec.d.ts +0 -1
  172. package/dist/types/common-utils/utils/validation/validate-credit-manager.d.ts +0 -13
  173. package/dist/types/common-utils/utils/validation/validate-credit-manager.spec.d.ts +0 -1
  174. package/dist/types/common-utils/utils/validation/validate-hf.d.ts +0 -12
  175. package/dist/types/common-utils/utils/validation/validate-hf.spec.d.ts +0 -1
  176. package/dist/types/common-utils/utils/validation/validate-open-account-pool-quota-status.d.ts +0 -10
  177. package/dist/types/common-utils/utils/validation/validate-open-account-pool-quota-status.spec.d.ts +0 -1
  178. package/dist/types/common-utils/utils/validation/validate-open-account-pool-status.d.ts +0 -26
  179. package/dist/types/common-utils/utils/validation/validate-open-account-pool-status.spec.d.ts +0 -1
  180. package/dist/types/common-utils/utils/validation/validate-open-account.d.ts +0 -25
  181. package/dist/types/common-utils/utils/validation/validate-open-account.spec.d.ts +0 -1
  182. package/dist/types/common-utils/utils/validation/validate-quota.d.ts +0 -24
  183. package/dist/types/common-utils/utils/validation/validate-quota.spec.d.ts +0 -1
  184. package/dist/types/common-utils/utils/validation/validate-token-to-obtain.d.ts +0 -17
  185. package/dist/types/common-utils/utils/validation/validate-token-to-obtain.spec.d.ts +0 -1
  186. 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 require_common_utils_utils_validation_validate_open_account_pool_quota_status = require("./utils/validation/validate-open-account-pool-quota-status.js");
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
- isForbidden: overrides.isForbidden ?? (() => false),
70
- ...overrides
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 require_common_utils_utils_validation_validate_open_account_pool_quota_status = require("./validation/validate-open-account-pool-quota-status.js");
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 require_common_utils_utils_validation_validate_open_account_pool_status = require("../../validation/validate-open-account-pool-status.js");
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 = require_common_utils_utils_validation_validate_open_account_pool_status.validateOpenAccountPoolStatus({
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 = require_common_utils_utils_validation_validate_open_account_pool_status.validateOpenAccountPoolStatus({
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 = require_common_utils_utils_validation_validate_open_account_pool_status.validateOpenAccountPoolStatus({
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 = require_common_utils_utils_validation_validate_open_account_pool_status.validateOpenAccountPoolStatus({
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 require_common_utils_utils_validation_validate_open_account_pool_status = require("../../validation/validate-open-account-pool-status.js");
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) => !require_common_utils_utils_validation_is_zero_balance.isZeroBalance(a.balance));
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 = require_common_utils_utils_validation_validate_credit_manager.validateCreditManager({ creditManager }) || require_common_utils_utils_validation_validate_open_account_pool_status.validateOpenAccountPoolStatus({
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
- targetToken: targetTokenAddress
185
- }) || require_common_utils_utils_validation_validate_token_to_obtain.validateTokenToObtain({
186
- targetToken: strategy.tokenOutAddress,
187
- creditManager
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
- debt,
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.message}`,
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 require_onchain_accounts_intents_refusal = require("./intents/refusal.js");
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;