@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,47 @@
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 validate_balance_exports = {};
20
+ __export(validate_balance_exports, {
21
+ validateBalance: () => validateBalance
22
+ });
23
+ module.exports = __toCommonJS(validate_balance_exports);
24
+ var import_constants = require("../constants.js");
25
+ var import_is_zero_balance = require("./is-zero-balance.js");
26
+ function validateBalance({
27
+ amount,
28
+ tokenAddress,
29
+ maxAmount = 0n,
30
+ zeroCheck = true,
31
+ single
32
+ }) {
33
+ const safeAddress = tokenAddress || import_constants.EMPTY_ADDRESS;
34
+ if (!safeAddress) return { message: "unknownToken", token: safeAddress };
35
+ if (maxAmount < amount)
36
+ return { message: "insufficientFunds", token: safeAddress };
37
+ if (zeroCheck && (0, import_is_zero_balance.isZeroBalance)(amount))
38
+ return {
39
+ message: single ? "enterAmount" : "zeroBalance",
40
+ token: safeAddress
41
+ };
42
+ return null;
43
+ }
44
+ // Annotate the CommonJS export names for ESM import in node:
45
+ 0 && (module.exports = {
46
+ validateBalance
47
+ });
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ var import_vitest = require("vitest");
3
+ var import_test_utils = require("../../test-utils/index.js");
4
+ var import_validate_balance = require("./validate-balance.js");
5
+ (0, import_vitest.describe)("validateBalance", () => {
6
+ (0, import_vitest.it)("returns null when all conditions are met", () => {
7
+ const result = (0, import_validate_balance.validateBalance)({
8
+ amount: 1000n,
9
+ tokenAddress: import_test_utils.mockToken1,
10
+ maxAmount: 2000n,
11
+ zeroCheck: true,
12
+ single: false
13
+ });
14
+ (0, import_vitest.expect)(result).toBeNull();
15
+ });
16
+ (0, import_vitest.it)("returns error when amount exceeds maxAmount", () => {
17
+ const result = (0, import_validate_balance.validateBalance)({
18
+ amount: 3000n,
19
+ tokenAddress: import_test_utils.mockToken1,
20
+ maxAmount: 2000n,
21
+ zeroCheck: true,
22
+ single: false
23
+ });
24
+ (0, import_vitest.expect)(result).toEqual({
25
+ message: "insufficientFunds",
26
+ token: import_test_utils.mockToken1
27
+ });
28
+ });
29
+ (0, import_vitest.it)("returns error when amount is too small with zeroCheck", () => {
30
+ const result = (0, import_validate_balance.validateBalance)({
31
+ amount: 5n,
32
+ tokenAddress: import_test_utils.mockToken1,
33
+ maxAmount: 2000n,
34
+ zeroCheck: true,
35
+ single: false
36
+ });
37
+ (0, import_vitest.expect)(result).toEqual({
38
+ message: "zeroBalance",
39
+ token: import_test_utils.mockToken1
40
+ });
41
+ });
42
+ (0, import_vitest.it)("returns null when zeroCheck is false and amount is small", () => {
43
+ const result = (0, import_validate_balance.validateBalance)({
44
+ amount: 5n,
45
+ tokenAddress: import_test_utils.mockToken1,
46
+ maxAmount: 2000n,
47
+ zeroCheck: false,
48
+ single: false
49
+ });
50
+ (0, import_vitest.expect)(result).toBeNull();
51
+ });
52
+ });
@@ -0,0 +1,44 @@
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 validate_balances_exports = {};
20
+ __export(validate_balances_exports, {
21
+ validateBalances: () => validateBalances
22
+ });
23
+ module.exports = __toCommonJS(validate_balances_exports);
24
+ var import_validate_balance = require("./validate-balance.js");
25
+ function validateBalances({
26
+ balances,
27
+ assets,
28
+ zeroCheck = true
29
+ }) {
30
+ for (const { token: tokenAddress, balance: amount } of assets) {
31
+ const e = (0, import_validate_balance.validateBalance)({
32
+ tokenAddress,
33
+ amount,
34
+ maxAmount: balances[(tokenAddress || "").toLowerCase()] || 0n,
35
+ zeroCheck
36
+ });
37
+ if (e !== null) return e;
38
+ }
39
+ return null;
40
+ }
41
+ // Annotate the CommonJS export names for ESM import in node:
42
+ 0 && (module.exports = {
43
+ validateBalances
44
+ });
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ var import_vitest = require("vitest");
3
+ var import_test_utils = require("../../test-utils/index.js");
4
+ var import_validate_balances = require("./validate-balances.js");
5
+ (0, import_vitest.describe)("validateBalances", () => {
6
+ (0, import_vitest.it)("returns null when all balances are valid", () => {
7
+ const result = (0, import_validate_balances.validateBalances)({
8
+ balances: {
9
+ [import_test_utils.mockToken1]: 2000n,
10
+ [import_test_utils.mockToken2]: 3000n
11
+ },
12
+ assets: [
13
+ { token: import_test_utils.mockToken1, balance: 1000n },
14
+ { token: import_test_utils.mockToken2, balance: 2000n }
15
+ ],
16
+ zeroCheck: true
17
+ });
18
+ (0, import_vitest.expect)(result).toBeNull();
19
+ });
20
+ (0, import_vitest.it)("returns error when any balance is invalid", () => {
21
+ const result = (0, import_validate_balances.validateBalances)({
22
+ balances: {
23
+ [import_test_utils.mockToken1]: 500n,
24
+ [import_test_utils.mockToken2]: 3000n
25
+ },
26
+ assets: [
27
+ { token: import_test_utils.mockToken1, balance: 1000n },
28
+ { token: import_test_utils.mockToken2, balance: 2000n }
29
+ ],
30
+ zeroCheck: true
31
+ });
32
+ (0, import_vitest.expect)(result).toEqual({
33
+ message: "insufficientFunds",
34
+ token: import_test_utils.mockToken1
35
+ });
36
+ });
37
+ });
@@ -0,0 +1,34 @@
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 validate_credit_manager_exports = {};
20
+ __export(validate_credit_manager_exports, {
21
+ validateCreditManager: () => validateCreditManager
22
+ });
23
+ module.exports = __toCommonJS(validate_credit_manager_exports);
24
+ function validateCreditManager({
25
+ creditManager,
26
+ allowPausedCm
27
+ }) {
28
+ if (creditManager.isPaused && !allowPausedCm) return { message: "paused" };
29
+ return null;
30
+ }
31
+ // Annotate the CommonJS export names for ESM import in node:
32
+ 0 && (module.exports = {
33
+ validateCreditManager
34
+ });
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ var import_vitest = require("vitest");
3
+ var import_test_utils = require("../../test-utils/index.js");
4
+ var import_validate_credit_manager = require("./validate-credit-manager.js");
5
+ const mockCreditManager = (0, import_test_utils.buildCreditManager)({
6
+ isPaused: false
7
+ });
8
+ (0, import_vitest.describe)("validateCreditManager", () => {
9
+ (0, import_vitest.it)("returns null when credit manager is not paused", () => {
10
+ const result = (0, import_validate_credit_manager.validateCreditManager)({
11
+ creditManager: mockCreditManager,
12
+ allowPausedCm: false
13
+ });
14
+ (0, import_vitest.expect)(result).toBeNull();
15
+ });
16
+ (0, import_vitest.it)("returns null when credit manager is paused but allowed", () => {
17
+ const result = (0, import_validate_credit_manager.validateCreditManager)({
18
+ creditManager: (0, import_test_utils.buildCreditManager)({
19
+ ...mockCreditManager,
20
+ isPaused: true
21
+ }),
22
+ allowPausedCm: true
23
+ });
24
+ (0, import_vitest.expect)(result).toBeNull();
25
+ });
26
+ (0, import_vitest.it)("returns error when credit manager is paused and not allowed", () => {
27
+ const result = (0, import_validate_credit_manager.validateCreditManager)({
28
+ creditManager: (0, import_test_utils.buildCreditManager)({
29
+ ...mockCreditManager,
30
+ isPaused: true
31
+ }),
32
+ allowPausedCm: false
33
+ });
34
+ (0, import_vitest.expect)(result).toEqual({ message: "paused" });
35
+ });
36
+ });
@@ -0,0 +1,38 @@
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 validate_hf_exports = {};
20
+ __export(validate_hf_exports, {
21
+ MIN_HF_LIMITED: () => MIN_HF_LIMITED,
22
+ validateHF: () => validateHF
23
+ });
24
+ module.exports = __toCommonJS(validate_hf_exports);
25
+ const MIN_HF_LIMITED = 10100n;
26
+ function validateHF({
27
+ hf,
28
+ hfCheck = true
29
+ }) {
30
+ if (hfCheck && (hf === void 0 || hf <= MIN_HF_LIMITED))
31
+ return { message: "hfTooLow" };
32
+ return null;
33
+ }
34
+ // Annotate the CommonJS export names for ESM import in node:
35
+ 0 && (module.exports = {
36
+ MIN_HF_LIMITED,
37
+ validateHF
38
+ });
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ var import_vitest = require("vitest");
3
+ var import_validate_hf = require("./validate-hf.js");
4
+ (0, import_vitest.describe)("validateHF", () => {
5
+ (0, import_vitest.it)("returns null when HF is above minimum", () => {
6
+ const result = (0, import_validate_hf.validateHF)({ hf: 15e3 });
7
+ (0, import_vitest.expect)(result).toBeNull();
8
+ });
9
+ (0, import_vitest.it)("returns error when HF is undefined", () => {
10
+ const result = (0, import_validate_hf.validateHF)({ hf: void 0 });
11
+ (0, import_vitest.expect)(result).toEqual({ message: "hfTooLow" });
12
+ });
13
+ (0, import_vitest.it)("returns error when HF is too low", () => {
14
+ const result = (0, import_validate_hf.validateHF)({ hf: Number(import_validate_hf.MIN_HF_LIMITED) });
15
+ (0, import_vitest.expect)(result).toEqual({ message: "hfTooLow" });
16
+ });
17
+ (0, import_vitest.it)("returns null when hfCheck is false and HF is too low", () => {
18
+ const result = (0, import_validate_hf.validateHF)({
19
+ hf: Number(import_validate_hf.MIN_HF_LIMITED - 1n),
20
+ hfCheck: false
21
+ });
22
+ (0, import_vitest.expect)(result).toBeNull();
23
+ });
24
+ });
@@ -27,10 +27,7 @@ function validateOpenAccountPoolQuotaStatus(targetToken, creditManager, amountTo
27
27
  const realLimit = quota.isActive ? quota.limit : 0n;
28
28
  const quotaLeft = realLimit - quota.totalQuoted;
29
29
  if (quotaLeft < amountToBorrow)
30
- return {
31
- message: "insufficientQuota",
32
- token: targetToken
33
- };
30
+ return { message: "insufficientQuota", token: targetToken };
34
31
  }
35
32
  return null;
36
33
  }
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ var import_vitest = require("vitest");
3
+ var import_test_utils = require("../../test-utils/index.js");
4
+ var import_validate_open_account_pool_quota_status = require("./validate-open-account-pool-quota-status.js");
5
+ const mockCreditManager = (0, import_test_utils.buildCreditManager)({
6
+ quotas: {
7
+ [import_test_utils.mockToken1]: (0, import_test_utils.buildQuota)({
8
+ token: import_test_utils.mockToken1,
9
+ limit: 1000000n,
10
+ totalQuoted: 500000n,
11
+ rate: 0n
12
+ })
13
+ }
14
+ });
15
+ (0, import_vitest.describe)("validateOpenAccountPoolQuotaStatus", () => {
16
+ (0, import_vitest.it)("returns null when quota is sufficient", () => {
17
+ const result = (0, import_validate_open_account_pool_quota_status.validateOpenAccountPoolQuotaStatus)(
18
+ import_test_utils.mockToken1,
19
+ mockCreditManager,
20
+ 100000n
21
+ );
22
+ (0, import_vitest.expect)(result).toBeNull();
23
+ });
24
+ (0, import_vitest.it)("returns error when quota is insufficient", () => {
25
+ const result = (0, import_validate_open_account_pool_quota_status.validateOpenAccountPoolQuotaStatus)(
26
+ import_test_utils.mockToken1,
27
+ mockCreditManager,
28
+ 600000n
29
+ );
30
+ (0, import_vitest.expect)(result).toEqual({
31
+ message: "insufficientQuota",
32
+ token: import_test_utils.mockToken1
33
+ });
34
+ });
35
+ (0, import_vitest.it)("returns null when token has no quota", () => {
36
+ const result = (0, import_validate_open_account_pool_quota_status.validateOpenAccountPoolQuotaStatus)(
37
+ "0x9999999999999999999999999999999999999999",
38
+ mockCreditManager,
39
+ 100000n
40
+ );
41
+ (0, import_vitest.expect)(result).toBeNull();
42
+ });
43
+ });
@@ -21,7 +21,7 @@ __export(validate_open_account_pool_status_exports, {
21
21
  validateOpenAccountPoolStatus: () => validateOpenAccountPoolStatus
22
22
  });
23
23
  module.exports = __toCommonJS(validate_open_account_pool_status_exports);
24
- var import_bigint_math = require("../../bigint-math.js");
24
+ var import_bigint_math = require("../bigint-math.js");
25
25
  var import_validate_open_account_pool_quota_status = require("./validate-open-account-pool-quota-status.js");
26
26
  function validateOpenAccountPoolStatus(props) {
27
27
  const { debt, creditManager, pool, targetToken } = props;
@@ -0,0 +1,98 @@
1
+ "use strict";
2
+ var import_vitest = require("vitest");
3
+ var import_test_utils = require("../../test-utils/index.js");
4
+ var import_validate_open_account_pool_status = require("./validate-open-account-pool-status.js");
5
+ const mockCreditManager = (0, import_test_utils.buildCreditManager)({
6
+ minDebt: 1000n,
7
+ maxDebt: 1000000n,
8
+ totalDebtLimit: 5000000n,
9
+ totalDebt: 2000000n,
10
+ availableToBorrow: 3000000n,
11
+ quotas: {
12
+ [import_test_utils.mockToken1]: (0, import_test_utils.buildQuota)({
13
+ token: import_test_utils.mockToken1,
14
+ limit: 1000000n,
15
+ totalQuoted: 500000n,
16
+ rate: 0n
17
+ })
18
+ }
19
+ });
20
+ const mockPool = (0, import_test_utils.buildPool)({
21
+ totalDebtLimit: 10000000n,
22
+ totalBorrowed: 5000000n
23
+ });
24
+ (0, import_vitest.describe)("validateOpenAccountPoolStatus", () => {
25
+ (0, import_vitest.it)("returns null when all conditions are met", () => {
26
+ const result = (0, import_validate_open_account_pool_status.validateOpenAccountPoolStatus)({
27
+ debt: 50000n,
28
+ creditManager: mockCreditManager,
29
+ pool: mockPool,
30
+ targetToken: import_test_utils.mockToken1
31
+ });
32
+ (0, import_vitest.expect)(result).toBeNull();
33
+ });
34
+ (0, import_vitest.it)("returns error when debt exceeds debt limit", () => {
35
+ const result = (0, import_validate_open_account_pool_status.validateOpenAccountPoolStatus)({
36
+ debt: 4000000n,
37
+ creditManager: mockCreditManager,
38
+ pool: mockPool,
39
+ targetToken: import_test_utils.mockToken1
40
+ });
41
+ (0, import_vitest.expect)(result).toEqual({
42
+ message: "insufficientDebtLimit",
43
+ amount: 3000000n,
44
+ solutionAmount: 3000000n
45
+ });
46
+ });
47
+ (0, import_vitest.it)("returns error when debt exceeds pool debt limit", () => {
48
+ const result = (0, import_validate_open_account_pool_status.validateOpenAccountPoolStatus)({
49
+ debt: 6000000n,
50
+ creditManager: (0, import_test_utils.buildCreditManager)({
51
+ ...mockCreditManager,
52
+ totalDebtLimit: -1n
53
+ }),
54
+ pool: mockPool,
55
+ targetToken: import_test_utils.mockToken1
56
+ });
57
+ (0, import_vitest.expect)(result).toEqual({
58
+ message: "insufficientPoolDebtLimit",
59
+ amount: 5000000n
60
+ });
61
+ });
62
+ (0, import_vitest.it)("returns error when debt exceeds available liquidity", () => {
63
+ const result = (0, import_validate_open_account_pool_status.validateOpenAccountPoolStatus)({
64
+ debt: 4000000n,
65
+ creditManager: (0, import_test_utils.buildCreditManager)({
66
+ ...mockCreditManager,
67
+ totalDebtLimit: -1n
68
+ }),
69
+ pool: (0, import_test_utils.buildPool)({ totalDebtLimit: -1n }),
70
+ targetToken: import_test_utils.mockToken1
71
+ });
72
+ (0, import_vitest.expect)(result).toEqual({
73
+ message: "insufficientPoolLiquidity",
74
+ amount: 3000000n
75
+ });
76
+ });
77
+ (0, import_vitest.it)("returns error when quota is insufficient", () => {
78
+ const result = (0, import_validate_open_account_pool_status.validateOpenAccountPoolStatus)({
79
+ debt: 600000n,
80
+ creditManager: mockCreditManager,
81
+ pool: mockPool,
82
+ targetToken: import_test_utils.mockToken1
83
+ });
84
+ (0, import_vitest.expect)(result).toEqual({
85
+ message: "insufficientQuota",
86
+ token: import_test_utils.mockToken1
87
+ });
88
+ });
89
+ (0, import_vitest.it)("returns null when targetToken is null", () => {
90
+ const result = (0, import_validate_open_account_pool_status.validateOpenAccountPoolStatus)({
91
+ debt: 50000n,
92
+ creditManager: mockCreditManager,
93
+ pool: mockPool,
94
+ targetToken: null
95
+ });
96
+ (0, import_vitest.expect)(result).toBeNull();
97
+ });
98
+ });
@@ -0,0 +1,41 @@
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 validate_open_account_exports = {};
20
+ __export(validate_open_account_exports, {
21
+ validateOpenAccount: () => validateOpenAccount
22
+ });
23
+ module.exports = __toCommonJS(validate_open_account_exports);
24
+ var import_validate_quota = require("./validate-quota.js");
25
+ function validateOpenAccount(props) {
26
+ const { debt, creditManager, loading } = props;
27
+ if (loading) {
28
+ return { message: "loading" };
29
+ }
30
+ if (debt < creditManager.minDebt) {
31
+ return { message: "amountLessMin", amount: creditManager.minDebt };
32
+ }
33
+ if (debt > creditManager.maxDebt) {
34
+ return { message: "debtGreaterMax", amount: creditManager.maxDebt };
35
+ }
36
+ return (0, import_validate_quota.validateQuota)(props);
37
+ }
38
+ // Annotate the CommonJS export names for ESM import in node:
39
+ 0 && (module.exports = {
40
+ validateOpenAccount
41
+ });
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+ var import_vitest = require("vitest");
3
+ var import_test_utils = require("../../test-utils/index.js");
4
+ var import_validate_open_account = require("./validate-open-account.js");
5
+ const mockCreditManager = (0, import_test_utils.buildCreditManager)({
6
+ minDebt: 1000n,
7
+ maxDebt: 1000000n,
8
+ underlyingToken: import_test_utils.mockUnderlyingToken
9
+ });
10
+ (0, import_vitest.describe)("validateOpenAccount", () => {
11
+ (0, import_vitest.it)("returns null when all conditions are met", () => {
12
+ const result = (0, import_validate_open_account.validateOpenAccount)({
13
+ debt: 50000n,
14
+ creditManager: mockCreditManager,
15
+ desiredQuota: {},
16
+ quotaUpdate: []
17
+ });
18
+ (0, import_vitest.expect)(result).toBeNull();
19
+ });
20
+ (0, import_vitest.it)("returns loading error when loading is true", () => {
21
+ const result = (0, import_validate_open_account.validateOpenAccount)({
22
+ debt: 50000n,
23
+ creditManager: mockCreditManager,
24
+ desiredQuota: {},
25
+ quotaUpdate: [],
26
+ loading: true
27
+ });
28
+ (0, import_vitest.expect)(result).toEqual({ message: "loading" });
29
+ });
30
+ (0, import_vitest.it)("returns error when debt is less than min", () => {
31
+ const result = (0, import_validate_open_account.validateOpenAccount)({
32
+ debt: 500n,
33
+ creditManager: mockCreditManager,
34
+ desiredQuota: {},
35
+ quotaUpdate: []
36
+ });
37
+ (0, import_vitest.expect)(result).toEqual({
38
+ message: "amountLessMin",
39
+ amount: 1000n
40
+ });
41
+ });
42
+ (0, import_vitest.it)("returns error when debt is greater than max", () => {
43
+ const result = (0, import_validate_open_account.validateOpenAccount)({
44
+ debt: 2000000n,
45
+ creditManager: mockCreditManager,
46
+ desiredQuota: {},
47
+ quotaUpdate: []
48
+ });
49
+ (0, import_vitest.expect)(result).toEqual({
50
+ message: "debtGreaterMax",
51
+ amount: 1000000n
52
+ });
53
+ });
54
+ });
@@ -0,0 +1,49 @@
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 validate_quota_exports = {};
20
+ __export(validate_quota_exports, {
21
+ validateQuota: () => validateQuota
22
+ });
23
+ module.exports = __toCommonJS(validate_quota_exports);
24
+ function validateQuota(props) {
25
+ const desiredQuotasList = Object.values(props.desiredQuota).filter(
26
+ (a) => a.balance > 0n
27
+ );
28
+ if (desiredQuotasList.length > props.creditManager.maxEnabledTokensLength)
29
+ return {
30
+ message: "maxQuotasLengthReached",
31
+ count: desiredQuotasList.length,
32
+ max: props.creditManager.maxEnabledTokensLength
33
+ };
34
+ if (props.quotaUpdate.length === 0 && props.throwOnZeroQuotaUpdate)
35
+ return { message: "quotaShouldBeUpdated" };
36
+ for (const { token, balance: updateBy } of props.quotaUpdate) {
37
+ const quota = props.creditManager.quotas[token];
38
+ if (updateBy > 0 && quota) {
39
+ const realLimit = quota.isActive ? quota.limit : 0n;
40
+ const quotaLeft = realLimit - quota.totalQuoted;
41
+ if (quotaLeft < updateBy) return { message: "insufficientQuota", token };
42
+ }
43
+ }
44
+ return null;
45
+ }
46
+ // Annotate the CommonJS export names for ESM import in node:
47
+ 0 && (module.exports = {
48
+ validateQuota
49
+ });