@gearbox-protocol/sdk 14.10.1 → 14.10.2-next.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (245) hide show
  1. package/dist/cjs/common-utils/test-utils/index.js +139 -0
  2. package/dist/cjs/common-utils/utils/apy/calculate-borrow-rate-from-utilization.js +59 -0
  3. package/dist/cjs/common-utils/utils/apy/calculate-borrow-rate-from-utilization.spec.js +32 -0
  4. package/dist/cjs/common-utils/utils/apy/calculate-earnings.js +59 -0
  5. package/dist/cjs/common-utils/utils/apy/calculate-earnings.spec.js +62 -0
  6. package/dist/cjs/common-utils/utils/apy/calculate-safe-borrow-rate.js +55 -0
  7. package/dist/cjs/common-utils/utils/apy/calculate-safe-borrow-rate.spec.js +39 -0
  8. package/dist/cjs/common-utils/utils/apy/get-safe-base-borrow-rate.js +38 -0
  9. package/dist/cjs/common-utils/utils/apy/index.js +8 -0
  10. package/dist/cjs/common-utils/utils/constants.js +34 -0
  11. package/dist/cjs/common-utils/utils/index.js +5 -1
  12. package/dist/cjs/common-utils/utils/strategies/assets/assets.js +30 -0
  13. package/dist/cjs/common-utils/utils/strategies/assets/index.js +22 -0
  14. package/dist/cjs/common-utils/utils/strategies/availability/index.js +1 -5
  15. package/dist/cjs/common-utils/utils/strategies/credit-managers/get-cm-allowed-collaterals.js +62 -0
  16. package/dist/cjs/common-utils/utils/strategies/credit-managers/get-cm-allowed-collaterals.spec.js +109 -0
  17. package/dist/cjs/common-utils/utils/strategies/credit-managers/get-wallet-balances-allowed-on-cm.js +75 -0
  18. package/dist/cjs/common-utils/utils/strategies/credit-managers/get-wallet-balances-allowed-on-cm.spec.js +93 -0
  19. package/dist/cjs/common-utils/utils/strategies/credit-managers/index.js +4 -0
  20. package/dist/cjs/common-utils/utils/strategies/index.js +2 -0
  21. package/dist/cjs/common-utils/utils/strategies/leverage/calculate-max-strategy-debt.js +63 -0
  22. package/dist/cjs/common-utils/utils/strategies/leverage/calculate-max-strategy-debt.spec.js +330 -0
  23. package/dist/cjs/common-utils/utils/strategies/leverage/get-collateral-by-debt.js +34 -0
  24. package/dist/cjs/common-utils/utils/strategies/leverage/get-collateral-by-debt.spec.js +30 -0
  25. package/dist/cjs/common-utils/utils/strategies/leverage/get-recommended-debt.js +85 -0
  26. package/dist/cjs/common-utils/utils/strategies/leverage/get-recommended-debt.spec.js +227 -0
  27. package/dist/cjs/common-utils/utils/strategies/leverage/get-recommended-leverage-factor.js +33 -0
  28. package/dist/cjs/common-utils/utils/strategies/leverage/get-recommended-leverage-factor.spec.js +23 -0
  29. package/dist/cjs/common-utils/utils/strategies/leverage/index.js +8 -0
  30. package/dist/cjs/common-utils/utils/strategies/leverage/max-leverage.js +2 -2
  31. package/dist/cjs/common-utils/utils/strategies/strategy-info/calculate-total-apy.js +112 -0
  32. package/dist/cjs/common-utils/utils/strategies/strategy-info/calculate-total-apy.spec.js +183 -0
  33. package/dist/cjs/common-utils/utils/strategies/strategy-info/calculate-total-points.js +74 -0
  34. package/dist/cjs/common-utils/utils/strategies/strategy-info/calculate-total-points.spec.js +131 -0
  35. package/dist/cjs/common-utils/utils/strategies/strategy-info/cm-availability-condition.js +5 -4
  36. package/dist/cjs/common-utils/utils/strategies/strategy-info/get-cm-you-can-earn.js +410 -0
  37. package/dist/cjs/common-utils/utils/strategies/strategy-info/get-cm-you-can-earn.spec.js +274 -0
  38. package/dist/cjs/common-utils/utils/strategies/strategy-info/get-strategy-you-can-earn.js +108 -0
  39. package/dist/cjs/common-utils/utils/strategies/strategy-info/index.js +8 -0
  40. package/dist/cjs/common-utils/utils/strategies/tokens/add-amount-in-target.js +41 -0
  41. package/dist/cjs/common-utils/utils/strategies/tokens/add-amount-in-target.spec.js +38 -0
  42. package/dist/cjs/common-utils/utils/strategies/tokens/get-chain-phantom-tokens.js +35 -0
  43. package/dist/cjs/common-utils/utils/strategies/tokens/get-list-with-amount-in-target.js +42 -0
  44. package/dist/cjs/common-utils/utils/strategies/tokens/get-list-with-amount-in-target.spec.js +32 -0
  45. package/dist/cjs/common-utils/utils/strategies/tokens/get-native-token-address.js +31 -0
  46. package/dist/cjs/common-utils/utils/strategies/tokens/index.js +19 -1
  47. package/dist/cjs/common-utils/utils/strategies/tokens/is-apy-with-points-exception.js +36 -0
  48. package/dist/cjs/common-utils/utils/strategies/tokens/is-collateral-token.js +59 -0
  49. package/dist/cjs/common-utils/utils/strategies/tokens/is-collateral-token.spec.js +135 -0
  50. package/dist/cjs/common-utils/utils/strategies/tokens/is-obtainable-token.js +42 -0
  51. package/dist/cjs/common-utils/utils/strategies/tokens/is-obtainable-token.spec.js +162 -0
  52. package/dist/cjs/common-utils/utils/strategies/tokens/is-valid-extra-collateral-token.js +51 -0
  53. package/dist/cjs/common-utils/utils/strategies/tokens/wrap-token-address.js +33 -0
  54. package/dist/cjs/common-utils/utils/strategies/tokens/wrap-token-address.spec.js +13 -0
  55. package/dist/cjs/common-utils/utils/strategies/types/index.js +4 -0
  56. package/dist/cjs/common-utils/utils/strategies/types/strategy-data.js +16 -0
  57. package/dist/cjs/common-utils/utils/strategies/types/strategy-earnings.js +16 -0
  58. package/dist/cjs/common-utils/utils/validation/index.js +38 -0
  59. package/dist/cjs/common-utils/utils/validation/is-zero-balance.js +30 -0
  60. package/dist/cjs/common-utils/utils/validation/validate-balance.js +47 -0
  61. package/dist/cjs/common-utils/utils/validation/validate-balance.spec.js +52 -0
  62. package/dist/cjs/common-utils/utils/validation/validate-balances.js +44 -0
  63. package/dist/cjs/common-utils/utils/validation/validate-balances.spec.js +37 -0
  64. package/dist/cjs/common-utils/utils/validation/validate-credit-manager.js +34 -0
  65. package/dist/cjs/common-utils/utils/validation/validate-credit-manager.spec.js +36 -0
  66. package/dist/cjs/common-utils/utils/validation/validate-hf.js +38 -0
  67. package/dist/cjs/common-utils/utils/validation/validate-hf.spec.js +24 -0
  68. package/dist/cjs/common-utils/utils/{strategies/availability → validation}/validate-open-account-pool-quota-status.js +1 -4
  69. package/dist/cjs/common-utils/utils/validation/validate-open-account-pool-quota-status.spec.js +43 -0
  70. package/dist/cjs/common-utils/utils/{strategies/availability → validation}/validate-open-account-pool-status.js +1 -1
  71. package/dist/cjs/common-utils/utils/validation/validate-open-account-pool-status.spec.js +98 -0
  72. package/dist/cjs/common-utils/utils/validation/validate-open-account.js +41 -0
  73. package/dist/cjs/common-utils/utils/validation/validate-open-account.spec.js +54 -0
  74. package/dist/cjs/common-utils/utils/validation/validate-quota.js +49 -0
  75. package/dist/cjs/common-utils/utils/validation/validate-quota.spec.js +79 -0
  76. package/dist/cjs/common-utils/utils/validation/validate-token-to-obtain.js +42 -0
  77. package/dist/cjs/common-utils/utils/validation/validate-token-to-obtain.spec.js +35 -0
  78. package/dist/cjs/common-utils/utils/validation/validation-types.js +16 -0
  79. package/dist/cjs/plugins/apy/strategy-data-source.js +1 -0
  80. package/dist/cjs/sdk/constants/math.js +3 -0
  81. package/dist/esm/common-utils/test-utils/index.js +104 -0
  82. package/dist/esm/common-utils/utils/apy/calculate-borrow-rate-from-utilization.js +35 -0
  83. package/dist/esm/common-utils/utils/apy/calculate-borrow-rate-from-utilization.spec.js +31 -0
  84. package/dist/esm/common-utils/utils/apy/calculate-earnings.js +35 -0
  85. package/dist/esm/common-utils/utils/apy/calculate-earnings.spec.js +65 -0
  86. package/dist/esm/common-utils/utils/apy/calculate-safe-borrow-rate.js +34 -0
  87. package/dist/esm/common-utils/utils/apy/calculate-safe-borrow-rate.spec.js +38 -0
  88. package/dist/esm/common-utils/utils/apy/get-safe-base-borrow-rate.js +16 -0
  89. package/dist/esm/common-utils/utils/apy/index.js +4 -0
  90. package/dist/esm/common-utils/utils/constants.js +8 -0
  91. package/dist/esm/common-utils/utils/index.js +2 -0
  92. package/dist/esm/common-utils/utils/strategies/assets/assets.js +6 -0
  93. package/dist/esm/common-utils/utils/strategies/assets/index.js +1 -0
  94. package/dist/esm/common-utils/utils/strategies/availability/index.js +0 -2
  95. package/dist/esm/common-utils/utils/strategies/credit-managers/get-cm-allowed-collaterals.js +38 -0
  96. package/dist/esm/common-utils/utils/strategies/credit-managers/get-cm-allowed-collaterals.spec.js +115 -0
  97. package/dist/esm/common-utils/utils/strategies/credit-managers/get-wallet-balances-allowed-on-cm.js +51 -0
  98. package/dist/esm/common-utils/utils/strategies/credit-managers/get-wallet-balances-allowed-on-cm.spec.js +96 -0
  99. package/dist/esm/common-utils/utils/strategies/credit-managers/index.js +2 -0
  100. package/dist/esm/common-utils/utils/strategies/index.js +1 -0
  101. package/dist/esm/common-utils/utils/strategies/leverage/calculate-max-strategy-debt.js +42 -0
  102. package/dist/esm/common-utils/utils/strategies/leverage/calculate-max-strategy-debt.spec.js +332 -0
  103. package/dist/esm/common-utils/utils/strategies/leverage/get-collateral-by-debt.js +10 -0
  104. package/dist/esm/common-utils/utils/strategies/leverage/get-collateral-by-debt.spec.js +29 -0
  105. package/dist/esm/common-utils/utils/strategies/leverage/get-recommended-debt.js +61 -0
  106. package/dist/esm/common-utils/utils/strategies/leverage/get-recommended-debt.spec.js +226 -0
  107. package/dist/esm/common-utils/utils/strategies/leverage/get-recommended-leverage-factor.js +9 -0
  108. package/dist/esm/common-utils/utils/strategies/leverage/get-recommended-leverage-factor.spec.js +22 -0
  109. package/dist/esm/common-utils/utils/strategies/leverage/index.js +4 -0
  110. package/dist/esm/common-utils/utils/strategies/leverage/max-leverage.js +2 -2
  111. package/dist/esm/common-utils/utils/strategies/strategy-info/calculate-total-apy.js +88 -0
  112. package/dist/esm/common-utils/utils/strategies/strategy-info/calculate-total-apy.spec.js +187 -0
  113. package/dist/esm/common-utils/utils/strategies/strategy-info/calculate-total-points.js +54 -0
  114. package/dist/esm/common-utils/utils/strategies/strategy-info/calculate-total-points.spec.js +139 -0
  115. package/dist/esm/common-utils/utils/strategies/strategy-info/cm-availability-condition.js +2 -5
  116. package/dist/esm/common-utils/utils/strategies/strategy-info/get-cm-you-can-earn.js +389 -0
  117. package/dist/esm/common-utils/utils/strategies/strategy-info/get-cm-you-can-earn.spec.js +278 -0
  118. package/dist/esm/common-utils/utils/strategies/strategy-info/get-strategy-you-can-earn.js +84 -0
  119. package/dist/esm/common-utils/utils/strategies/strategy-info/index.js +4 -0
  120. package/dist/esm/common-utils/utils/strategies/tokens/add-amount-in-target.js +17 -0
  121. package/dist/esm/common-utils/utils/strategies/tokens/add-amount-in-target.spec.js +41 -0
  122. package/dist/esm/common-utils/utils/strategies/tokens/get-chain-phantom-tokens.js +11 -0
  123. package/dist/esm/common-utils/utils/strategies/tokens/get-list-with-amount-in-target.js +18 -0
  124. package/dist/esm/common-utils/utils/strategies/tokens/get-list-with-amount-in-target.spec.js +36 -0
  125. package/dist/esm/common-utils/utils/strategies/tokens/get-native-token-address.js +7 -0
  126. package/dist/esm/common-utils/utils/strategies/tokens/index.js +9 -0
  127. package/dist/esm/common-utils/utils/strategies/tokens/is-apy-with-points-exception.js +11 -0
  128. package/dist/esm/common-utils/utils/strategies/tokens/is-collateral-token.js +35 -0
  129. package/dist/esm/common-utils/utils/strategies/tokens/is-collateral-token.spec.js +137 -0
  130. package/dist/esm/common-utils/utils/strategies/tokens/is-obtainable-token.js +18 -0
  131. package/dist/esm/common-utils/utils/strategies/tokens/is-obtainable-token.spec.js +161 -0
  132. package/dist/esm/common-utils/utils/strategies/tokens/is-valid-extra-collateral-token.js +27 -0
  133. package/dist/esm/common-utils/utils/strategies/tokens/wrap-token-address.js +9 -0
  134. package/dist/esm/common-utils/utils/strategies/tokens/wrap-token-address.spec.js +12 -0
  135. package/dist/esm/common-utils/utils/strategies/types/index.js +2 -0
  136. package/dist/esm/common-utils/utils/strategies/types/strategy-data.js +0 -0
  137. package/dist/esm/common-utils/utils/strategies/types/strategy-earnings.js +0 -0
  138. package/dist/esm/common-utils/utils/validation/index.js +9 -0
  139. package/dist/esm/common-utils/utils/validation/is-zero-balance.js +6 -0
  140. package/dist/esm/common-utils/utils/validation/validate-balance.js +23 -0
  141. package/dist/esm/common-utils/utils/validation/validate-balance.spec.js +51 -0
  142. package/dist/esm/common-utils/utils/validation/validate-balances.js +20 -0
  143. package/dist/esm/common-utils/utils/validation/validate-balances.spec.js +36 -0
  144. package/dist/esm/common-utils/utils/validation/validate-credit-manager.js +10 -0
  145. package/dist/esm/common-utils/utils/validation/validate-credit-manager.spec.js +35 -0
  146. package/dist/esm/common-utils/utils/validation/validate-hf.js +13 -0
  147. package/dist/esm/common-utils/utils/validation/validate-hf.spec.js +23 -0
  148. package/dist/esm/common-utils/utils/{strategies/availability → validation}/validate-open-account-pool-quota-status.js +1 -4
  149. package/dist/esm/common-utils/utils/validation/validate-open-account-pool-quota-status.spec.js +46 -0
  150. package/dist/esm/common-utils/utils/{strategies/availability → validation}/validate-open-account-pool-status.js +4 -2
  151. package/dist/esm/common-utils/utils/validation/validate-open-account-pool-status.spec.js +102 -0
  152. package/dist/esm/common-utils/utils/validation/validate-open-account.js +17 -0
  153. package/dist/esm/common-utils/utils/validation/validate-open-account.spec.js +56 -0
  154. package/dist/esm/common-utils/utils/validation/validate-quota.js +25 -0
  155. package/dist/esm/common-utils/utils/validation/validate-quota.spec.js +83 -0
  156. package/dist/esm/common-utils/utils/validation/validate-token-to-obtain.js +18 -0
  157. package/dist/esm/common-utils/utils/validation/validate-token-to-obtain.spec.js +34 -0
  158. package/dist/esm/common-utils/utils/validation/validation-types.js +0 -0
  159. package/dist/esm/plugins/apy/strategy-data-source.js +1 -0
  160. package/dist/esm/sdk/constants/math.js +2 -0
  161. package/dist/types/common-utils/test-utils/index.d.ts +16 -0
  162. package/dist/types/common-utils/utils/apy/calculate-borrow-rate-from-utilization.d.ts +2 -0
  163. package/dist/types/common-utils/utils/apy/calculate-borrow-rate-from-utilization.spec.d.ts +1 -0
  164. package/dist/types/common-utils/utils/apy/calculate-earnings.d.ts +16 -0
  165. package/dist/types/common-utils/utils/apy/calculate-earnings.spec.d.ts +1 -0
  166. package/dist/types/common-utils/utils/apy/calculate-safe-borrow-rate.d.ts +11 -0
  167. package/dist/types/common-utils/utils/apy/calculate-safe-borrow-rate.spec.d.ts +1 -0
  168. package/dist/types/common-utils/utils/apy/get-safe-base-borrow-rate.d.ts +4 -0
  169. package/dist/types/common-utils/utils/apy/index.d.ts +4 -0
  170. package/dist/types/common-utils/utils/constants.d.ts +4 -0
  171. package/dist/types/common-utils/utils/index.d.ts +2 -0
  172. package/dist/types/common-utils/utils/strategies/assets/assets.d.ts +3 -0
  173. package/dist/types/common-utils/utils/strategies/assets/index.d.ts +1 -0
  174. package/dist/types/common-utils/utils/strategies/availability/index.d.ts +0 -2
  175. package/dist/types/common-utils/utils/strategies/credit-managers/get-cm-allowed-collaterals.d.ts +20 -0
  176. package/dist/types/common-utils/utils/strategies/credit-managers/get-cm-allowed-collaterals.spec.d.ts +1 -0
  177. package/dist/types/common-utils/utils/strategies/credit-managers/get-wallet-balances-allowed-on-cm.d.ts +13 -0
  178. package/dist/types/common-utils/utils/strategies/credit-managers/get-wallet-balances-allowed-on-cm.spec.d.ts +1 -0
  179. package/dist/types/common-utils/utils/strategies/credit-managers/index.d.ts +2 -0
  180. package/dist/types/common-utils/utils/strategies/index.d.ts +1 -0
  181. package/dist/types/common-utils/utils/strategies/leverage/calculate-max-strategy-debt.d.ts +11 -0
  182. package/dist/types/common-utils/utils/strategies/leverage/calculate-max-strategy-debt.spec.d.ts +1 -0
  183. package/dist/types/common-utils/utils/strategies/leverage/get-collateral-by-debt.d.ts +2 -0
  184. package/dist/types/common-utils/utils/strategies/leverage/get-collateral-by-debt.spec.d.ts +1 -0
  185. package/dist/types/common-utils/utils/strategies/leverage/get-recommended-debt.d.ts +21 -0
  186. package/dist/types/common-utils/utils/strategies/leverage/get-recommended-debt.spec.d.ts +1 -0
  187. package/dist/types/common-utils/utils/strategies/leverage/get-recommended-leverage-factor.d.ts +4 -0
  188. package/dist/types/common-utils/utils/strategies/leverage/get-recommended-leverage-factor.spec.d.ts +1 -0
  189. package/dist/types/common-utils/utils/strategies/leverage/index.d.ts +4 -0
  190. package/dist/types/common-utils/utils/strategies/strategy-info/calculate-total-apy.d.ts +28 -0
  191. package/dist/types/common-utils/utils/strategies/strategy-info/calculate-total-apy.spec.d.ts +1 -0
  192. package/dist/types/common-utils/utils/strategies/strategy-info/calculate-total-points.d.ts +22 -0
  193. package/dist/types/common-utils/utils/strategies/strategy-info/calculate-total-points.spec.d.ts +1 -0
  194. package/dist/types/common-utils/utils/strategies/strategy-info/get-cm-you-can-earn.d.ts +19 -0
  195. package/dist/types/common-utils/utils/strategies/strategy-info/get-cm-you-can-earn.spec.d.ts +1 -0
  196. package/dist/types/common-utils/utils/strategies/strategy-info/get-strategy-you-can-earn.d.ts +29 -0
  197. package/dist/types/common-utils/utils/strategies/strategy-info/index.d.ts +4 -0
  198. package/dist/types/common-utils/utils/strategies/strategy-info/types.d.ts +1 -0
  199. package/dist/types/common-utils/utils/strategies/tokens/add-amount-in-target.d.ts +6 -0
  200. package/dist/types/common-utils/utils/strategies/tokens/add-amount-in-target.spec.d.ts +1 -0
  201. package/dist/types/common-utils/utils/strategies/tokens/get-chain-phantom-tokens.d.ts +6 -0
  202. package/dist/types/common-utils/utils/strategies/tokens/get-list-with-amount-in-target.d.ts +12 -0
  203. package/dist/types/common-utils/utils/strategies/tokens/get-list-with-amount-in-target.spec.d.ts +1 -0
  204. package/dist/types/common-utils/utils/strategies/tokens/get-native-token-address.d.ts +1 -0
  205. package/dist/types/common-utils/utils/strategies/tokens/index.d.ts +9 -0
  206. package/dist/types/common-utils/utils/strategies/tokens/is-apy-with-points-exception.d.ts +3 -0
  207. package/dist/types/common-utils/utils/strategies/tokens/is-collateral-token.d.ts +16 -0
  208. package/dist/types/common-utils/utils/strategies/tokens/is-collateral-token.spec.d.ts +1 -0
  209. package/dist/types/common-utils/utils/strategies/tokens/is-obtainable-token.d.ts +14 -0
  210. package/dist/types/common-utils/utils/strategies/tokens/is-obtainable-token.spec.d.ts +1 -0
  211. package/dist/types/common-utils/utils/strategies/tokens/is-valid-extra-collateral-token.d.ts +20 -0
  212. package/dist/types/common-utils/utils/strategies/tokens/wrap-token-address.d.ts +2 -0
  213. package/dist/types/common-utils/utils/strategies/tokens/wrap-token-address.spec.d.ts +1 -0
  214. package/dist/types/common-utils/utils/strategies/types/index.d.ts +4 -1
  215. package/dist/types/common-utils/utils/strategies/types/strategy-data.d.ts +64 -0
  216. package/dist/types/common-utils/utils/strategies/types/strategy-earnings.d.ts +43 -0
  217. package/dist/types/common-utils/utils/validation/index.d.ts +9 -0
  218. package/dist/types/common-utils/utils/validation/is-zero-balance.d.ts +1 -0
  219. package/dist/types/common-utils/utils/validation/validate-balance.d.ts +22 -0
  220. package/dist/types/common-utils/utils/validation/validate-balance.spec.d.ts +1 -0
  221. package/dist/types/common-utils/utils/validation/validate-balances.d.ts +9 -0
  222. package/dist/types/common-utils/utils/validation/validate-balances.spec.d.ts +1 -0
  223. package/dist/types/common-utils/utils/validation/validate-credit-manager.d.ts +10 -0
  224. package/dist/types/common-utils/utils/validation/validate-credit-manager.spec.d.ts +1 -0
  225. package/dist/types/common-utils/utils/validation/validate-hf.d.ts +9 -0
  226. package/dist/types/common-utils/utils/validation/validate-hf.spec.d.ts +1 -0
  227. package/dist/types/common-utils/utils/validation/validate-open-account-pool-quota-status.d.ts +7 -0
  228. package/dist/types/common-utils/utils/validation/validate-open-account-pool-quota-status.spec.d.ts +1 -0
  229. package/dist/types/common-utils/utils/validation/validate-open-account-pool-status.d.ts +23 -0
  230. package/dist/types/common-utils/utils/validation/validate-open-account-pool-status.spec.d.ts +1 -0
  231. package/dist/types/common-utils/utils/validation/validate-open-account.d.ts +21 -0
  232. package/dist/types/common-utils/utils/validation/validate-open-account.spec.d.ts +1 -0
  233. package/dist/types/common-utils/utils/validation/validate-quota.d.ts +20 -0
  234. package/dist/types/common-utils/utils/validation/validate-quota.spec.d.ts +1 -0
  235. package/dist/types/common-utils/utils/validation/validate-token-to-obtain.d.ts +13 -0
  236. package/dist/types/common-utils/utils/validation/validate-token-to-obtain.spec.d.ts +1 -0
  237. package/dist/types/common-utils/utils/validation/validation-types.d.ts +14 -0
  238. package/dist/types/dev/RevolverTransport.d.ts +4 -4
  239. package/dist/types/sdk/constants/math.d.ts +1 -0
  240. package/package.json +1 -1
  241. package/dist/cjs/common-utils/utils/strategies/__test-utils.js +0 -95
  242. package/dist/esm/common-utils/utils/strategies/__test-utils.js +0 -65
  243. package/dist/types/common-utils/utils/strategies/__test-utils.d.ts +0 -11
  244. package/dist/types/common-utils/utils/strategies/availability/validate-open-account-pool-quota-status.d.ts +0 -6
  245. package/dist/types/common-utils/utils/strategies/availability/validate-open-account-pool-status.d.ts +0 -24
@@ -1,5 +1,7 @@
1
- import { BigIntMath } from "../../bigint-math.js";
2
- import { validateOpenAccountPoolQuotaStatus } from "./validate-open-account-pool-quota-status.js";
1
+ import { BigIntMath } from "../bigint-math.js";
2
+ import {
3
+ validateOpenAccountPoolQuotaStatus
4
+ } from "./validate-open-account-pool-quota-status.js";
3
5
  function validateOpenAccountPoolStatus(props) {
4
6
  const { debt, creditManager, pool, targetToken } = props;
5
7
  const effectiveDebt = BigIntMath.max(creditManager.minDebt, debt);
@@ -0,0 +1,102 @@
1
+ import { describe, expect, it } from "vitest";
2
+ import {
3
+ buildCreditManager,
4
+ buildPool,
5
+ buildQuota,
6
+ mockToken1
7
+ } from "../../test-utils/index.js";
8
+ import { validateOpenAccountPoolStatus } from "./validate-open-account-pool-status.js";
9
+ const mockCreditManager = buildCreditManager({
10
+ minDebt: 1000n,
11
+ maxDebt: 1000000n,
12
+ totalDebtLimit: 5000000n,
13
+ totalDebt: 2000000n,
14
+ availableToBorrow: 3000000n,
15
+ quotas: {
16
+ [mockToken1]: buildQuota({
17
+ token: mockToken1,
18
+ limit: 1000000n,
19
+ totalQuoted: 500000n,
20
+ rate: 0n
21
+ })
22
+ }
23
+ });
24
+ const mockPool = buildPool({
25
+ totalDebtLimit: 10000000n,
26
+ totalBorrowed: 5000000n
27
+ });
28
+ describe("validateOpenAccountPoolStatus", () => {
29
+ it("returns null when all conditions are met", () => {
30
+ const result = validateOpenAccountPoolStatus({
31
+ debt: 50000n,
32
+ creditManager: mockCreditManager,
33
+ pool: mockPool,
34
+ targetToken: mockToken1
35
+ });
36
+ expect(result).toBeNull();
37
+ });
38
+ it("returns error when debt exceeds debt limit", () => {
39
+ const result = validateOpenAccountPoolStatus({
40
+ debt: 4000000n,
41
+ creditManager: mockCreditManager,
42
+ pool: mockPool,
43
+ targetToken: mockToken1
44
+ });
45
+ expect(result).toEqual({
46
+ message: "insufficientDebtLimit",
47
+ amount: 3000000n,
48
+ solutionAmount: 3000000n
49
+ });
50
+ });
51
+ it("returns error when debt exceeds pool debt limit", () => {
52
+ const result = validateOpenAccountPoolStatus({
53
+ debt: 6000000n,
54
+ creditManager: buildCreditManager({
55
+ ...mockCreditManager,
56
+ totalDebtLimit: -1n
57
+ }),
58
+ pool: mockPool,
59
+ targetToken: mockToken1
60
+ });
61
+ expect(result).toEqual({
62
+ message: "insufficientPoolDebtLimit",
63
+ amount: 5000000n
64
+ });
65
+ });
66
+ it("returns error when debt exceeds available liquidity", () => {
67
+ const result = validateOpenAccountPoolStatus({
68
+ debt: 4000000n,
69
+ creditManager: buildCreditManager({
70
+ ...mockCreditManager,
71
+ totalDebtLimit: -1n
72
+ }),
73
+ pool: buildPool({ totalDebtLimit: -1n }),
74
+ targetToken: mockToken1
75
+ });
76
+ expect(result).toEqual({
77
+ message: "insufficientPoolLiquidity",
78
+ amount: 3000000n
79
+ });
80
+ });
81
+ it("returns error when quota is insufficient", () => {
82
+ const result = validateOpenAccountPoolStatus({
83
+ debt: 600000n,
84
+ creditManager: mockCreditManager,
85
+ pool: mockPool,
86
+ targetToken: mockToken1
87
+ });
88
+ expect(result).toEqual({
89
+ message: "insufficientQuota",
90
+ token: mockToken1
91
+ });
92
+ });
93
+ it("returns null when targetToken is null", () => {
94
+ const result = validateOpenAccountPoolStatus({
95
+ debt: 50000n,
96
+ creditManager: mockCreditManager,
97
+ pool: mockPool,
98
+ targetToken: null
99
+ });
100
+ expect(result).toBeNull();
101
+ });
102
+ });
@@ -0,0 +1,17 @@
1
+ import { validateQuota } from "./validate-quota.js";
2
+ function validateOpenAccount(props) {
3
+ const { debt, creditManager, loading } = props;
4
+ if (loading) {
5
+ return { message: "loading" };
6
+ }
7
+ if (debt < creditManager.minDebt) {
8
+ return { message: "amountLessMin", amount: creditManager.minDebt };
9
+ }
10
+ if (debt > creditManager.maxDebt) {
11
+ return { message: "debtGreaterMax", amount: creditManager.maxDebt };
12
+ }
13
+ return validateQuota(props);
14
+ }
15
+ export {
16
+ validateOpenAccount
17
+ };
@@ -0,0 +1,56 @@
1
+ import { describe, expect, it } from "vitest";
2
+ import {
3
+ buildCreditManager,
4
+ mockUnderlyingToken
5
+ } from "../../test-utils/index.js";
6
+ import { validateOpenAccount } from "./validate-open-account.js";
7
+ const mockCreditManager = buildCreditManager({
8
+ minDebt: 1000n,
9
+ maxDebt: 1000000n,
10
+ underlyingToken: mockUnderlyingToken
11
+ });
12
+ describe("validateOpenAccount", () => {
13
+ it("returns null when all conditions are met", () => {
14
+ const result = validateOpenAccount({
15
+ debt: 50000n,
16
+ creditManager: mockCreditManager,
17
+ desiredQuota: {},
18
+ quotaUpdate: []
19
+ });
20
+ expect(result).toBeNull();
21
+ });
22
+ it("returns loading error when loading is true", () => {
23
+ const result = validateOpenAccount({
24
+ debt: 50000n,
25
+ creditManager: mockCreditManager,
26
+ desiredQuota: {},
27
+ quotaUpdate: [],
28
+ loading: true
29
+ });
30
+ expect(result).toEqual({ message: "loading" });
31
+ });
32
+ it("returns error when debt is less than min", () => {
33
+ const result = validateOpenAccount({
34
+ debt: 500n,
35
+ creditManager: mockCreditManager,
36
+ desiredQuota: {},
37
+ quotaUpdate: []
38
+ });
39
+ expect(result).toEqual({
40
+ message: "amountLessMin",
41
+ amount: 1000n
42
+ });
43
+ });
44
+ it("returns error when debt is greater than max", () => {
45
+ const result = validateOpenAccount({
46
+ debt: 2000000n,
47
+ creditManager: mockCreditManager,
48
+ desiredQuota: {},
49
+ quotaUpdate: []
50
+ });
51
+ expect(result).toEqual({
52
+ message: "debtGreaterMax",
53
+ amount: 1000000n
54
+ });
55
+ });
56
+ });
@@ -0,0 +1,25 @@
1
+ function validateQuota(props) {
2
+ const desiredQuotasList = Object.values(props.desiredQuota).filter(
3
+ (a) => a.balance > 0n
4
+ );
5
+ if (desiredQuotasList.length > props.creditManager.maxEnabledTokensLength)
6
+ return {
7
+ message: "maxQuotasLengthReached",
8
+ count: desiredQuotasList.length,
9
+ max: props.creditManager.maxEnabledTokensLength
10
+ };
11
+ if (props.quotaUpdate.length === 0 && props.throwOnZeroQuotaUpdate)
12
+ return { message: "quotaShouldBeUpdated" };
13
+ for (const { token, balance: updateBy } of props.quotaUpdate) {
14
+ const quota = props.creditManager.quotas[token];
15
+ if (updateBy > 0 && quota) {
16
+ const realLimit = quota.isActive ? quota.limit : 0n;
17
+ const quotaLeft = realLimit - quota.totalQuoted;
18
+ if (quotaLeft < updateBy) return { message: "insufficientQuota", token };
19
+ }
20
+ }
21
+ return null;
22
+ }
23
+ export {
24
+ validateQuota
25
+ };
@@ -0,0 +1,83 @@
1
+ import { describe, expect, it } from "vitest";
2
+ import {
3
+ buildCreditManager,
4
+ buildQuota,
5
+ mockToken1,
6
+ mockToken2
7
+ } from "../../test-utils/index.js";
8
+ import { validateQuota } from "./validate-quota.js";
9
+ const mockCreditManager = buildCreditManager({
10
+ minDebt: 1000n,
11
+ maxDebt: 1000000n,
12
+ totalDebtLimit: 5000000n,
13
+ totalDebt: 2000000n,
14
+ availableToBorrow: 3000000n,
15
+ quotas: {
16
+ [mockToken1]: buildQuota({
17
+ token: mockToken1,
18
+ limit: 1000000n,
19
+ totalQuoted: 500000n,
20
+ rate: 0n
21
+ }),
22
+ [mockToken2]: buildQuota({
23
+ token: mockToken2,
24
+ limit: 2000000n,
25
+ totalQuoted: 1000000n,
26
+ rate: 0n
27
+ })
28
+ },
29
+ maxEnabledTokensLength: 2
30
+ });
31
+ describe("validateQuota", () => {
32
+ it("returns null when all conditions are met", () => {
33
+ const result = validateQuota({
34
+ desiredQuota: {},
35
+ quotaUpdate: [],
36
+ creditManager: mockCreditManager,
37
+ throwOnZeroQuotaUpdate: false
38
+ });
39
+ expect(result).toBeNull();
40
+ });
41
+ it("returns error when max quotas length is reached", () => {
42
+ const result = validateQuota({
43
+ desiredQuota: {
44
+ [mockToken1]: { token: mockToken1, balance: 1000n },
45
+ [mockToken2]: { token: mockToken2, balance: 1000n }
46
+ },
47
+ quotaUpdate: [],
48
+ creditManager: buildCreditManager({
49
+ ...mockCreditManager,
50
+ maxEnabledTokensLength: 1
51
+ }),
52
+ throwOnZeroQuotaUpdate: false
53
+ });
54
+ expect(result).toEqual({
55
+ message: "maxQuotasLengthReached",
56
+ count: 2,
57
+ max: 1
58
+ });
59
+ });
60
+ it("returns error when quota update is empty and throwOnZeroQuotaUpdate is true", () => {
61
+ const result = validateQuota({
62
+ desiredQuota: {},
63
+ quotaUpdate: [],
64
+ creditManager: mockCreditManager,
65
+ throwOnZeroQuotaUpdate: true
66
+ });
67
+ expect(result).toEqual({
68
+ message: "quotaShouldBeUpdated"
69
+ });
70
+ });
71
+ it("returns error when quota is insufficient", () => {
72
+ const result = validateQuota({
73
+ desiredQuota: {},
74
+ quotaUpdate: [{ token: mockToken1, balance: 600000n }],
75
+ creditManager: mockCreditManager,
76
+ throwOnZeroQuotaUpdate: false
77
+ });
78
+ expect(result).toEqual({
79
+ message: "insufficientQuota",
80
+ token: mockToken1
81
+ });
82
+ });
83
+ });
@@ -0,0 +1,18 @@
1
+ function validateTokenToObtain({
2
+ creditManager,
3
+ targetToken
4
+ }) {
5
+ if (Array.isArray(targetToken)) {
6
+ for (const asset of targetToken) {
7
+ if (creditManager.forbiddenTokens[asset.token])
8
+ return { message: "tokenIsForbidden", token: asset.token };
9
+ }
10
+ return null;
11
+ }
12
+ if (targetToken !== null && creditManager.forbiddenTokens[targetToken])
13
+ return { message: "tokenIsForbidden", token: targetToken };
14
+ return null;
15
+ }
16
+ export {
17
+ validateTokenToObtain
18
+ };
@@ -0,0 +1,34 @@
1
+ import { describe, expect, it } from "vitest";
2
+ import { buildCreditManager, mockToken1 } from "../../test-utils/index.js";
3
+ import { validateTokenToObtain } from "./validate-token-to-obtain.js";
4
+ const mockCreditManager = buildCreditManager({
5
+ forbiddenTokens: {}
6
+ });
7
+ describe("validateTokenToObtain", () => {
8
+ it("returns null when targetToken is null", () => {
9
+ const result = validateTokenToObtain({
10
+ targetToken: null,
11
+ creditManager: mockCreditManager
12
+ });
13
+ expect(result).toBeNull();
14
+ });
15
+ it("returns null when targetToken is not forbidden", () => {
16
+ const result = validateTokenToObtain({
17
+ targetToken: mockToken1,
18
+ creditManager: mockCreditManager
19
+ });
20
+ expect(result).toBeNull();
21
+ });
22
+ it("returns error when targetToken is forbidden", () => {
23
+ const result = validateTokenToObtain({
24
+ targetToken: mockToken1,
25
+ creditManager: buildCreditManager({
26
+ ...mockCreditManager,
27
+ forbiddenTokens: {
28
+ [mockToken1]: true
29
+ }
30
+ })
31
+ });
32
+ expect(result).toEqual({ message: "tokenIsForbidden", token: mockToken1 });
33
+ });
34
+ });
@@ -121,6 +121,7 @@ class OnchainSdkStrategyDataSource {
121
121
  liquidationThresholds,
122
122
  quotas,
123
123
  collateralTokens: cm.collateralTokens.map(lc),
124
+ maxEnabledTokensLength: cm.maxEnabledTokens,
124
125
  version: Number(facade.version),
125
126
  isBorrowingForbidden: facade.maxDebtPerBlockMultiplier === 0,
126
127
  marketConfigurator: lc(cs.marketConfigurator),
@@ -14,6 +14,7 @@ const PRICE_DECIMALS = 10n ** BigInt(PRICE_DECIMALS_POW);
14
14
  const SECONDS_PER_YEAR = 365 * 24 * 3600;
15
15
  const PERCENTAGE_DECIMALS = 100n;
16
16
  const PERCENTAGE_FACTOR = 10000n;
17
+ const PERCENTAGE_FACTOR_1KK = PERCENTAGE_FACTOR * PERCENTAGE_DECIMALS;
17
18
  const LEVERAGE_DECIMALS = 100n;
18
19
  const SLIPPAGE_DECIMALS = 100n;
19
20
  export {
@@ -24,6 +25,7 @@ export {
24
25
  MIN_INT96,
25
26
  PERCENTAGE_DECIMALS,
26
27
  PERCENTAGE_FACTOR,
28
+ PERCENTAGE_FACTOR_1KK,
27
29
  PRICE_DECIMALS,
28
30
  PRICE_DECIMALS_POW,
29
31
  RAY,
@@ -0,0 +1,16 @@
1
+ import type { Address } from "viem";
2
+ import { TokenData } from "../charts/token-data.js";
3
+ export declare const mockToken1: Address;
4
+ export declare const mockToken2: Address;
5
+ export declare const mockUnderlyingToken: Address;
6
+ export declare const mockNativeTokenAddress: Address;
7
+ export declare const mockWrappedNativeTokenAddress: Address;
8
+ export declare const mockCMAddress: Address;
9
+ export declare function buildQuota(overrides: Record<string, unknown> & {
10
+ token: Address;
11
+ }): any;
12
+ export declare function buildPool(overrides?: Record<string, unknown>): any;
13
+ export declare function buildCreditManager(overrides?: Record<string, unknown>): any;
14
+ export declare function buildTokenData(address: Address, symbol: string, decimals?: number, isPhantom?: boolean): TokenData;
15
+ export declare const mockTokenData: Record<Address, TokenData>;
16
+ export declare const mockPrices: Record<Address, bigint>;
@@ -0,0 +1,2 @@
1
+ import type { LinearModel } from "../strategies/types/strategy-data.js";
2
+ export declare function calculateBorrowRateFromUtilization(util: bigint, model: LinearModel, extraPrecision?: bigint): bigint;
@@ -0,0 +1,16 @@
1
+ import type { Address } from "viem";
2
+ import type { TokenData } from "../../charts/token-data.js";
3
+ export interface CalculateEarningsProps {
4
+ overallAPYBigInt: bigint | undefined | null;
5
+ targetAmount: bigint | undefined;
6
+ targetToken: Address;
7
+ tokensList: Record<Address, TokenData>;
8
+ prices: Record<Address, bigint>;
9
+ }
10
+ export declare function calculateEarnings({ overallAPYBigInt, targetAmount, targetToken, tokensList, prices, }: CalculateEarningsProps): {
11
+ earnings: null;
12
+ earningsUSD: null;
13
+ } | {
14
+ earnings: bigint;
15
+ earningsUSD: bigint;
16
+ };
@@ -0,0 +1,11 @@
1
+ import type { CreditManagerData, PoolData } from "../strategies/types/strategy-data.js";
2
+ export interface CalculateBorrowRateSafelyProps {
3
+ pool: PoolData;
4
+ creditManager: CreditManagerData;
5
+ expectedLiquidityChange?: bigint;
6
+ availableLiquidityChange?: bigint;
7
+ }
8
+ /**
9
+ * Returns borrow rate multiplied by feeInterest
10
+ */
11
+ export declare function calculateSafeBorrowRate({ pool, creditManager, expectedLiquidityChange, availableLiquidityChange, }: CalculateBorrowRateSafelyProps): number;
@@ -0,0 +1,4 @@
1
+ import { type CalculateBorrowRateSafelyProps } from "./calculate-safe-borrow-rate.js";
2
+ export declare const getSafeBaseBorrowRate: (props: CalculateBorrowRateSafelyProps & {
3
+ onError?: (error: unknown) => void;
4
+ }) => number | undefined;
@@ -1,6 +1,10 @@
1
1
  export * from "./bonus-apy-from-points.js";
2
+ export * from "./calculate-borrow-rate-from-utilization.js";
3
+ export * from "./calculate-earnings.js";
2
4
  export * from "./calculate-effective-borrow-rate.js";
5
+ export * from "./calculate-safe-borrow-rate.js";
3
6
  export * from "./get-complex-apy-list.js";
4
7
  export * from "./get-rate-with-fee.js";
8
+ export * from "./get-safe-base-borrow-rate.js";
5
9
  export * from "./get-single-quota-borrow-rate.js";
6
10
  export * from "./max-apy-formula.js";
@@ -0,0 +1,4 @@
1
+ import type { Address } from "viem";
2
+ export declare const EMPTY_OBJECT: {};
3
+ export declare const EMPTY_ARRAY: Array<never>;
4
+ export declare const EMPTY_ADDRESS: Address;
@@ -1,6 +1,8 @@
1
1
  export * from "./apy/index.js";
2
2
  export * from "./assets-math.js";
3
3
  export * from "./bigint-math.js";
4
+ export * from "./constants.js";
4
5
  export * from "./creditAccount/index.js";
5
6
  export * from "./price-math.js";
6
7
  export * from "./strategies/index.js";
8
+ export * from "./validation/index.js";
@@ -0,0 +1,3 @@
1
+ import type { Address } from "viem";
2
+ import type { Asset } from "../../../../sdk/router/types.js";
3
+ export declare function getDefaultAsset(token: Address): Omit<Asset, "balance">;
@@ -0,0 +1 @@
1
+ export * from "./assets.js";
@@ -1,4 +1,2 @@
1
1
  export * from "./check-boolean.js";
2
2
  export * from "./check-degen-nft.js";
3
- export * from "./validate-open-account-pool-quota-status.js";
4
- export * from "./validate-open-account-pool-status.js";
@@ -0,0 +1,20 @@
1
+ import type { Address } from "viem";
2
+ import type { TokenData } from "../../../charts/token-data.js";
3
+ import type { StrategyConfigPayload } from "../../../static/strategy.js";
4
+ import type { CreditManagerData } from "../types/strategy-data.js";
5
+ type ExtraCollateralConfig = NonNullable<StrategyConfigPayload["additionalCollaterals"]>[number];
6
+ type ExtraCollaterals = Record<Address, Array<ExtraCollateralConfig>>;
7
+ export interface GetCMAllowedCollateralsProps {
8
+ creditManager: CreditManagerData | undefined;
9
+ tokensList: Record<Address, TokenData>;
10
+ zeroDebt?: boolean;
11
+ delayedPhantoms: Record<Address, boolean>;
12
+ extraCollaterals: {
13
+ list: ExtraCollaterals | undefined;
14
+ prices: Record<Address, bigint> | undefined;
15
+ } | undefined;
16
+ nativeTokenAddress: Address;
17
+ wrappedNativeTokenAddress: Address | undefined;
18
+ }
19
+ export declare function getCMAllowedCollaterals({ creditManager, tokensList, zeroDebt, delayedPhantoms, extraCollaterals, nativeTokenAddress, wrappedNativeTokenAddress, }: GetCMAllowedCollateralsProps): Record<Address, Address>;
20
+ export {};
@@ -0,0 +1,13 @@
1
+ import type { Address } from "viem";
2
+ import type { Asset } from "../../../../sdk/router/types.js";
3
+ import type { TokenData } from "../../../charts/token-data.js";
4
+ export interface GetWalletBalancesAllowedOnCMProps {
5
+ walletBalances: Record<Address, bigint> | undefined;
6
+ collateralRecord: Record<Address, Address>;
7
+ tokensList: Record<Address, TokenData>;
8
+ prices: Record<Address, bigint>;
9
+ nativeTokenAddress: Address;
10
+ wrappedNativeTokenAddress: Address | undefined;
11
+ isPaused?: boolean;
12
+ }
13
+ export declare function getWalletBalancesAllowedOnCM({ walletBalances, collateralRecord, nativeTokenAddress, wrappedNativeTokenAddress, prices, tokensList, isPaused, }: GetWalletBalancesAllowedOnCMProps): Asset[];
@@ -1,4 +1,6 @@
1
+ export * from "./get-cm-allowed-collaterals.js";
1
2
  export * from "./get-strategy-credit-managers.js";
2
3
  export * from "./get-strategy-credit-managers-list.js";
3
4
  export * from "./get-strategy-credit-managers-list-core.js";
5
+ export * from "./get-wallet-balances-allowed-on-cm.js";
4
6
  export * from "./is-credit-manager-usable.js";
@@ -1,3 +1,4 @@
1
+ export * from "./assets/index.js";
1
2
  export * from "./availability/index.js";
2
3
  export * from "./credit-managers/index.js";
3
4
  export * from "./eligibility/index.js";
@@ -0,0 +1,11 @@
1
+ import type { Address } from "viem";
2
+ import type { CreditManagerData } from "../types/strategy-data.js";
3
+ export interface CalculateMaxDebtProps {
4
+ targetToken: Address;
5
+ amount: bigint;
6
+ creditManager: CreditManagerData;
7
+ slippage: number;
8
+ constantLoss?: bigint;
9
+ swapCollateral?: boolean;
10
+ }
11
+ export declare function calculateMaxStrategyDebt({ targetToken, amount, creditManager, slippage, constantLoss, swapCollateral, }: CalculateMaxDebtProps): bigint;
@@ -0,0 +1,2 @@
1
+ export declare function getCollateralByDebt(debt: bigint, lt: bigint, // 1
2
+ targetHF?: bigint): bigint;
@@ -0,0 +1,21 @@
1
+ import type { Address } from "viem";
2
+ import type { CreditManagerData } from "../types/strategy-data.js";
3
+ import type { LeverageFactor } from "./get-factor-from-leverage.js";
4
+ export interface GetRecommendedDebtProps {
5
+ targetToken: Address;
6
+ amount: bigint;
7
+ creditManager: CreditManagerData;
8
+ slippage: number;
9
+ maxLeverageConstantLoss?: bigint;
10
+ maxDebtConstantLoss?: bigint;
11
+ recommendedDebtConstantLoss?: bigint;
12
+ swapCollateral?: boolean;
13
+ leverageLimit: number | undefined;
14
+ }
15
+ export declare function getRecommendedDebt({ targetToken, amount, creditManager, slippage, maxLeverageConstantLoss, maxDebtConstantLoss, recommendedDebtConstantLoss, swapCollateral, leverageLimit, }: GetRecommendedDebtProps): {
16
+ maxDebt: bigint;
17
+ recommended: {
18
+ factor: LeverageFactor;
19
+ debt: bigint;
20
+ };
21
+ };
@@ -0,0 +1,4 @@
1
+ import type { LeverageFactor } from "./get-factor-from-leverage.js";
2
+ export declare function getRecommendedLeverageFactor({ maxLeverageFactor, }: {
3
+ maxLeverageFactor: LeverageFactor;
4
+ }): LeverageFactor;
@@ -1,6 +1,10 @@
1
1
  export * from "./calculate-loss-coefficient.js";
2
2
  export * from "./calculate-max-leverage-factor.js";
3
+ export * from "./calculate-max-strategy-debt.js";
4
+ export * from "./get-collateral-by-debt.js";
3
5
  export * from "./get-factor-from-leverage.js";
4
6
  export * from "./get-leverage-from-factor.js";
7
+ export * from "./get-recommended-debt.js";
8
+ export * from "./get-recommended-leverage-factor.js";
5
9
  export * from "./max-leverage.js";
6
10
  export * from "./max-leverage-threshold.js";
@@ -0,0 +1,28 @@
1
+ import type { Address } from "viem";
2
+ import type { Asset } from "../../../../sdk/router/types.js";
3
+ import type { TokenData } from "../../../charts/token-data.js";
4
+ import type { QuotaInfo } from "../types/strategy-data.js";
5
+ export interface TotalAPY {
6
+ overallAPY: number | undefined | null;
7
+ overallAPYBigInt: bigint | undefined | null;
8
+ overallAPYStatus: "loading" | "notEnoughFarmAssets" | "noAPY" | "calculated" | "pointsNoAPY" | "negativeForPoints";
9
+ }
10
+ export interface CalculateTotalAPYProps {
11
+ caAssets: Asset[];
12
+ lpAPY: Record<Address, number> | undefined;
13
+ pointsInfo: Pick<{
14
+ address: Address;
15
+ }, "address"> | undefined;
16
+ isValueTo?: boolean;
17
+ debt: bigint | undefined;
18
+ totalValue: bigint | undefined;
19
+ effectiveBorrowRate: number;
20
+ showAPY: boolean;
21
+ prices: Record<Address, bigint>;
22
+ quotaRates: Record<Address, Pick<QuotaInfo, "isActive" | "rate">>;
23
+ quotas: Record<Address, Asset>;
24
+ feeInterest: number;
25
+ underlyingToken: Address;
26
+ tokensList: Record<Address, TokenData>;
27
+ }
28
+ export declare function calculateTotalAPY({ caAssets, lpAPY, pointsInfo, isValueTo, debt, totalValue, effectiveBorrowRate, showAPY, prices, quotaRates, quotas, feeInterest, underlyingToken, tokensList, }: CalculateTotalAPYProps): Omit<TotalAPY, "extraAPY">;