@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
@@ -0,0 +1,62 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var get_cm_allowed_collaterals_exports = {};
20
+ __export(get_cm_allowed_collaterals_exports, {
21
+ getCMAllowedCollaterals: () => getCMAllowedCollaterals
22
+ });
23
+ module.exports = __toCommonJS(get_cm_allowed_collaterals_exports);
24
+ var import_is_collateral_token = require("../tokens/is-collateral-token.js");
25
+ function getCMAllowedCollaterals({
26
+ creditManager,
27
+ tokensList,
28
+ zeroDebt = false,
29
+ delayedPhantoms,
30
+ extraCollaterals,
31
+ nativeTokenAddress,
32
+ wrappedNativeTokenAddress
33
+ }) {
34
+ const tokens = creditManager?.collateralTokens;
35
+ if (!tokens) return {};
36
+ const collateralRecord = tokens.reduce(
37
+ (acc, address) => {
38
+ const allowed = (0, import_is_collateral_token.isCollateralToken)({
39
+ address,
40
+ tokensList,
41
+ creditManager,
42
+ zeroDebt,
43
+ delayedPhantoms,
44
+ extraCollateralConfigs: extraCollaterals?.list?.[address],
45
+ prices: extraCollaterals?.prices
46
+ });
47
+ if (allowed) {
48
+ acc[address] = address;
49
+ }
50
+ return acc;
51
+ },
52
+ {}
53
+ );
54
+ if (!creditManager.isPaused && wrappedNativeTokenAddress && collateralRecord[wrappedNativeTokenAddress] && nativeTokenAddress) {
55
+ collateralRecord[nativeTokenAddress] = nativeTokenAddress;
56
+ }
57
+ return collateralRecord;
58
+ }
59
+ // Annotate the CommonJS export names for ESM import in node:
60
+ 0 && (module.exports = {
61
+ getCMAllowedCollaterals
62
+ });
@@ -0,0 +1,109 @@
1
+ "use strict";
2
+ var import_vitest = require("vitest");
3
+ var import_token_data = require("../../../charts/token-data.js");
4
+ var import_test_utils = require("../../../test-utils/index.js");
5
+ var import_is_collateral_token = require("../tokens/is-collateral-token.js");
6
+ var import_get_cm_allowed_collaterals = require("./get-cm-allowed-collaterals.js");
7
+ import_vitest.vi.mock("./is-collateral-token");
8
+ const mockIsCollateralToken = import_vitest.vi.mocked(import_is_collateral_token.isCollateralToken);
9
+ (0, import_vitest.describe)("getCMAllowedCollaterals", () => {
10
+ const underlying = import_test_utils.mockUnderlyingToken;
11
+ const allowed = import_test_utils.mockToken1;
12
+ const rejected = import_test_utils.mockToken2;
13
+ const tokensList = {
14
+ [underlying]: new import_token_data.TokenData({
15
+ addr: underlying,
16
+ symbol: "DAI",
17
+ name: "Underlying",
18
+ decimals: 18,
19
+ isPhantom: false
20
+ }),
21
+ [allowed]: new import_token_data.TokenData({
22
+ addr: allowed,
23
+ symbol: "USDC",
24
+ name: "Allowed",
25
+ decimals: 6,
26
+ isPhantom: false
27
+ }),
28
+ [rejected]: new import_token_data.TokenData({
29
+ addr: rejected,
30
+ symbol: "WBTC",
31
+ name: "Rejected",
32
+ decimals: 8,
33
+ isPhantom: false
34
+ }),
35
+ [import_test_utils.mockWrappedNativeTokenAddress]: new import_token_data.TokenData({
36
+ addr: import_test_utils.mockWrappedNativeTokenAddress,
37
+ symbol: "WETH",
38
+ name: "WrappedNative",
39
+ decimals: 18,
40
+ isPhantom: false
41
+ })
42
+ };
43
+ const baseCm = (0, import_test_utils.buildCreditManager)({
44
+ address: "0x0000000000000000000000000000000000000CAA",
45
+ underlyingToken: underlying,
46
+ collateralTokens: [
47
+ underlying,
48
+ allowed,
49
+ rejected,
50
+ import_test_utils.mockWrappedNativeTokenAddress
51
+ ]
52
+ });
53
+ (0, import_vitest.afterEach)(() => {
54
+ import_vitest.vi.restoreAllMocks();
55
+ import_vitest.vi.clearAllMocks();
56
+ });
57
+ (0, import_vitest.it)("returns empty record when credit manager missing", () => {
58
+ const result = (0, import_get_cm_allowed_collaterals.getCMAllowedCollaterals)({
59
+ creditManager: void 0,
60
+ tokensList,
61
+ delayedPhantoms: {},
62
+ nativeTokenAddress: import_test_utils.mockNativeTokenAddress,
63
+ wrappedNativeTokenAddress: import_test_utils.mockWrappedNativeTokenAddress,
64
+ extraCollaterals: void 0
65
+ });
66
+ (0, import_vitest.expect)(result).toEqual({});
67
+ });
68
+ (0, import_vitest.it)("keeps allowed collaterals and mirrors wrapped native to native token", () => {
69
+ mockIsCollateralToken.mockImplementation(
70
+ ({ address }) => address !== rejected
71
+ );
72
+ const result = (0, import_get_cm_allowed_collaterals.getCMAllowedCollaterals)({
73
+ creditManager: baseCm,
74
+ tokensList,
75
+ delayedPhantoms: {},
76
+ nativeTokenAddress: import_test_utils.mockNativeTokenAddress,
77
+ wrappedNativeTokenAddress: import_test_utils.mockWrappedNativeTokenAddress,
78
+ extraCollaterals: void 0
79
+ });
80
+ (0, import_vitest.expect)(result).toEqual({
81
+ [underlying]: underlying,
82
+ [allowed]: allowed,
83
+ [import_test_utils.mockWrappedNativeTokenAddress]: import_test_utils.mockWrappedNativeTokenAddress,
84
+ [import_test_utils.mockNativeTokenAddress]: import_test_utils.mockNativeTokenAddress
85
+ });
86
+ });
87
+ (0, import_vitest.it)("does not mirror wrapped native when credit manager is paused", () => {
88
+ mockIsCollateralToken.mockReturnValue(true);
89
+ const pausedCm = (0, import_test_utils.buildCreditManager)({
90
+ ...baseCm,
91
+ isPaused: true
92
+ });
93
+ const result = (0, import_get_cm_allowed_collaterals.getCMAllowedCollaterals)({
94
+ creditManager: pausedCm,
95
+ tokensList,
96
+ delayedPhantoms: {},
97
+ nativeTokenAddress: import_test_utils.mockNativeTokenAddress,
98
+ wrappedNativeTokenAddress: import_test_utils.mockWrappedNativeTokenAddress,
99
+ extraCollaterals: void 0
100
+ });
101
+ (0, import_vitest.expect)(result).toEqual({
102
+ [underlying]: underlying,
103
+ [allowed]: allowed,
104
+ [rejected]: rejected,
105
+ [import_test_utils.mockWrappedNativeTokenAddress]: import_test_utils.mockWrappedNativeTokenAddress
106
+ });
107
+ (0, import_vitest.expect)(result[import_test_utils.mockNativeTokenAddress]).toBeUndefined();
108
+ });
109
+ });
@@ -0,0 +1,75 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var get_wallet_balances_allowed_on_cm_exports = {};
20
+ __export(get_wallet_balances_allowed_on_cm_exports, {
21
+ getWalletBalancesAllowedOnCM: () => getWalletBalancesAllowedOnCM
22
+ });
23
+ module.exports = __toCommonJS(get_wallet_balances_allowed_on_cm_exports);
24
+ var import_sort = require("../../creditAccount/sort.js");
25
+ var import_wrap_token_address = require("../tokens/wrap-token-address.js");
26
+ function getWalletBalancesAllowedOnCM({
27
+ walletBalances,
28
+ collateralRecord,
29
+ nativeTokenAddress,
30
+ wrappedNativeTokenAddress,
31
+ prices,
32
+ tokensList,
33
+ isPaused = false
34
+ }) {
35
+ const walletBalancesSorted = (0, import_sort.sortBalances)(
36
+ walletBalances || {},
37
+ prices,
38
+ tokensList
39
+ );
40
+ const { list, record } = walletBalancesSorted.reduce(
41
+ (acc, [token, balance]) => {
42
+ if (isPaused && token === nativeTokenAddress) return acc;
43
+ const wrappedAddress = (0, import_wrap_token_address.wrapTokenAddress)(
44
+ token,
45
+ nativeTokenAddress,
46
+ wrappedNativeTokenAddress
47
+ );
48
+ if (collateralRecord[wrappedAddress]) {
49
+ const asset = {
50
+ token,
51
+ balance
52
+ };
53
+ acc.list.push(asset);
54
+ acc.record[wrappedAddress] = asset;
55
+ }
56
+ return acc;
57
+ },
58
+ { list: [], record: {} }
59
+ );
60
+ const collateralList = Object.values(collateralRecord);
61
+ const missingAssets = collateralList.filter(
62
+ (token) => isPaused ? token !== nativeTokenAddress && !record[token] : !record[token]
63
+ ).map(
64
+ (token) => ({
65
+ token,
66
+ balance: 0n
67
+ })
68
+ );
69
+ const r = [...list, ...missingAssets];
70
+ return r;
71
+ }
72
+ // Annotate the CommonJS export names for ESM import in node:
73
+ 0 && (module.exports = {
74
+ getWalletBalancesAllowedOnCM
75
+ });
@@ -0,0 +1,93 @@
1
+ "use strict";
2
+ var import_vitest = require("vitest");
3
+ var import_token_data = require("../../../charts/token-data.js");
4
+ var import_test_utils = require("../../../test-utils/index.js");
5
+ var import_sort = require("../../creditAccount/sort.js");
6
+ var import_get_wallet_balances_allowed_on_cm = require("./get-wallet-balances-allowed-on-cm.js");
7
+ import_vitest.vi.mock("../../utils/creditAccount/sort.js", async () => {
8
+ const actual = await import_vitest.vi.importActual(
9
+ "../../utils/creditAccount/sort.js"
10
+ );
11
+ return {
12
+ ...actual,
13
+ sortBalances: import_vitest.vi.fn()
14
+ };
15
+ });
16
+ const mockSortBalances = import_vitest.vi.mocked(import_sort.sortBalances);
17
+ (0, import_vitest.describe)("getWalletBalancesAllowedOnCM", () => {
18
+ const allowed = import_test_utils.mockToken1;
19
+ const prices = {};
20
+ const tokensList = {
21
+ [import_test_utils.mockNativeTokenAddress]: new import_token_data.TokenData({
22
+ addr: import_test_utils.mockNativeTokenAddress,
23
+ symbol: "ETH",
24
+ name: "Native",
25
+ decimals: 18,
26
+ isPhantom: false
27
+ }),
28
+ [import_test_utils.mockWrappedNativeTokenAddress]: new import_token_data.TokenData({
29
+ addr: import_test_utils.mockWrappedNativeTokenAddress,
30
+ symbol: "WETH",
31
+ name: "Wrapped",
32
+ decimals: 18,
33
+ isPhantom: false
34
+ }),
35
+ [allowed]: new import_token_data.TokenData({
36
+ addr: allowed,
37
+ symbol: "DAI",
38
+ name: "Allowed",
39
+ decimals: 18,
40
+ isPhantom: false
41
+ })
42
+ };
43
+ (0, import_vitest.afterEach)(() => {
44
+ import_vitest.vi.restoreAllMocks();
45
+ import_vitest.vi.clearAllMocks();
46
+ });
47
+ (0, import_vitest.it)("wraps native token when allowed and keeps sorted balances", () => {
48
+ const collateralRecord = {
49
+ [import_test_utils.mockWrappedNativeTokenAddress]: import_test_utils.mockWrappedNativeTokenAddress,
50
+ [allowed]: allowed
51
+ };
52
+ mockSortBalances.mockReturnValue([
53
+ [import_test_utils.mockNativeTokenAddress, 2n],
54
+ [allowed, 1n]
55
+ ]);
56
+ const result = (0, import_get_wallet_balances_allowed_on_cm.getWalletBalancesAllowedOnCM)({
57
+ walletBalances: {
58
+ [import_test_utils.mockNativeTokenAddress]: 2n,
59
+ [allowed]: 1n
60
+ },
61
+ collateralRecord,
62
+ nativeTokenAddress: import_test_utils.mockNativeTokenAddress,
63
+ wrappedNativeTokenAddress: import_test_utils.mockWrappedNativeTokenAddress,
64
+ prices,
65
+ tokensList
66
+ });
67
+ (0, import_vitest.expect)(result).toEqual([
68
+ { token: import_test_utils.mockNativeTokenAddress, balance: 2n },
69
+ { token: allowed, balance: 1n }
70
+ ]);
71
+ });
72
+ (0, import_vitest.it)("skips native token when paused and fills missing collaterals with zero", () => {
73
+ const collateralRecord = {
74
+ [import_test_utils.mockWrappedNativeTokenAddress]: import_test_utils.mockWrappedNativeTokenAddress,
75
+ [allowed]: allowed,
76
+ [import_test_utils.mockNativeTokenAddress]: import_test_utils.mockNativeTokenAddress
77
+ };
78
+ mockSortBalances.mockReturnValue([[import_test_utils.mockNativeTokenAddress, 5n]]);
79
+ const result = (0, import_get_wallet_balances_allowed_on_cm.getWalletBalancesAllowedOnCM)({
80
+ walletBalances: { [import_test_utils.mockNativeTokenAddress]: 5n },
81
+ collateralRecord,
82
+ nativeTokenAddress: import_test_utils.mockNativeTokenAddress,
83
+ wrappedNativeTokenAddress: import_test_utils.mockWrappedNativeTokenAddress,
84
+ prices,
85
+ tokensList,
86
+ isPaused: true
87
+ });
88
+ (0, import_vitest.expect)(result).toEqual([
89
+ { token: import_test_utils.mockWrappedNativeTokenAddress, balance: 0n },
90
+ { token: allowed, balance: 0n }
91
+ ]);
92
+ });
93
+ });
@@ -15,14 +15,18 @@ var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "defau
15
15
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
16
16
  var credit_managers_exports = {};
17
17
  module.exports = __toCommonJS(credit_managers_exports);
18
+ __reExport(credit_managers_exports, require("./get-cm-allowed-collaterals.js"), module.exports);
18
19
  __reExport(credit_managers_exports, require("./get-strategy-credit-managers.js"), module.exports);
19
20
  __reExport(credit_managers_exports, require("./get-strategy-credit-managers-list.js"), module.exports);
20
21
  __reExport(credit_managers_exports, require("./get-strategy-credit-managers-list-core.js"), module.exports);
22
+ __reExport(credit_managers_exports, require("./get-wallet-balances-allowed-on-cm.js"), module.exports);
21
23
  __reExport(credit_managers_exports, require("./is-credit-manager-usable.js"), module.exports);
22
24
  // Annotate the CommonJS export names for ESM import in node:
23
25
  0 && (module.exports = {
26
+ ...require("./get-cm-allowed-collaterals.js"),
24
27
  ...require("./get-strategy-credit-managers.js"),
25
28
  ...require("./get-strategy-credit-managers-list.js"),
26
29
  ...require("./get-strategy-credit-managers-list-core.js"),
30
+ ...require("./get-wallet-balances-allowed-on-cm.js"),
27
31
  ...require("./is-credit-manager-usable.js")
28
32
  });
@@ -15,6 +15,7 @@ var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "defau
15
15
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
16
16
  var strategies_exports = {};
17
17
  module.exports = __toCommonJS(strategies_exports);
18
+ __reExport(strategies_exports, require("./assets/index.js"), module.exports);
18
19
  __reExport(strategies_exports, require("./availability/index.js"), module.exports);
19
20
  __reExport(strategies_exports, require("./credit-managers/index.js"), module.exports);
20
21
  __reExport(strategies_exports, require("./eligibility/index.js"), module.exports);
@@ -28,6 +29,7 @@ __reExport(strategies_exports, require("./tokens/index.js"), module.exports);
28
29
  __reExport(strategies_exports, require("./types.js"), module.exports);
29
30
  // Annotate the CommonJS export names for ESM import in node:
30
31
  0 && (module.exports = {
32
+ ...require("./assets/index.js"),
31
33
  ...require("./availability/index.js"),
32
34
  ...require("./credit-managers/index.js"),
33
35
  ...require("./eligibility/index.js"),
@@ -0,0 +1,63 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var calculate_max_strategy_debt_exports = {};
20
+ __export(calculate_max_strategy_debt_exports, {
21
+ calculateMaxStrategyDebt: () => calculateMaxStrategyDebt
22
+ });
23
+ module.exports = __toCommonJS(calculate_max_strategy_debt_exports);
24
+ var import_math = require("../../../../sdk/constants/math.js");
25
+ var import_bigint_math = require("../../bigint-math.js");
26
+ var import_calculate_loss_coefficient = require("./calculate-loss-coefficient.js");
27
+ var import_max_leverage = require("./max-leverage.js");
28
+ const DEFAULT_DEBT_CONSTANT_LOSS = 1500n;
29
+ function calculateMaxStrategyDebt({
30
+ targetToken,
31
+ amount,
32
+ creditManager,
33
+ slippage,
34
+ constantLoss = DEFAULT_DEBT_CONSTANT_LOSS,
35
+ swapCollateral = true
36
+ }) {
37
+ const targetQuota = creditManager.quotas[targetToken];
38
+ const quotaLeft = swapCollateral && targetQuota ? import_bigint_math.BigIntMath.max(0n, targetQuota.limit - targetQuota.totalQuoted) : void 0;
39
+ if (quotaLeft === 0n) {
40
+ return creditManager.minDebt;
41
+ }
42
+ const availableLiquidity = quotaLeft !== void 0 ? import_bigint_math.BigIntMath.min(quotaLeft, creditManager.availableToBorrow) : creditManager.availableToBorrow;
43
+ const coefficient = (0, import_calculate_loss_coefficient.calculateLossCoefficient)(slippage, constantLoss);
44
+ const effectiveMaxDebt = import_bigint_math.BigIntMath.max(
45
+ import_bigint_math.BigIntMath.min(availableLiquidity, creditManager.maxDebt),
46
+ creditManager.minDebt
47
+ );
48
+ if (amount === 0n) {
49
+ return effectiveMaxDebt;
50
+ }
51
+ const maxPossibleLeverage = (0, import_max_leverage.maxLeverage)(targetToken, [creditManager]);
52
+ const debt = amount * BigInt(maxPossibleLeverage) / import_math.LEVERAGE_DECIMALS;
53
+ const effectiveDebt = debt * coefficient / import_math.PERCENTAGE_FACTOR;
54
+ const result = import_bigint_math.BigIntMath.max(
55
+ import_bigint_math.BigIntMath.min(effectiveDebt, effectiveMaxDebt),
56
+ creditManager.minDebt
57
+ );
58
+ return result;
59
+ }
60
+ // Annotate the CommonJS export names for ESM import in node:
61
+ 0 && (module.exports = {
62
+ calculateMaxStrategyDebt
63
+ });