@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,22 @@
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 { LocalDebtReward, LocalPointsInfo, LocalPointsReward } from "../types/points-slices.js";
5
+ export interface PointsData {
6
+ rates: Array<LocalPointsReward["multiplier"]>;
7
+ debtRates: {
8
+ rewards: Array<LocalDebtReward>;
9
+ rates: Array<LocalDebtReward["multiplier"]>;
10
+ };
11
+ info: LocalPointsInfo;
12
+ }
13
+ export declare function calculateTotalPoints({ pointsAsset, cmAddress, info, totalValue, assetValue, prices, tokensList, underlyingToken, }: {
14
+ pointsAsset: Asset | undefined;
15
+ cmAddress: Address;
16
+ info: LocalPointsInfo | undefined;
17
+ totalValue: bigint | undefined;
18
+ assetValue: bigint | undefined;
19
+ prices: Record<Address, bigint>;
20
+ tokensList: Record<Address, TokenData>;
21
+ underlyingToken: Address;
22
+ }): PointsData | null;
@@ -0,0 +1,19 @@
1
+ import type { Address } from "viem";
2
+ import type { TokenData } from "../../../charts/token-data.js";
3
+ import type { Strategy } from "../types/strategy.js";
4
+ import type { APYList, CreditManagerData, PoolData, PricesRecord } from "../types/strategy-data.js";
5
+ import type { StrategyCMEarningsInfo } from "../types/strategy-earnings.js";
6
+ export declare function getCMYouCanEarn<CM extends CreditManagerData>({ allPrices, creditManager, tokensList, delayedPhantoms, nativeTokenAddress, wrappedNativeTokenAddress, walletBalances, strategy, slippage, quotaReserve, apyList, pools, }: {
7
+ allPrices: PricesRecord | undefined;
8
+ creditManager: CM;
9
+ tokensList: Record<Address, TokenData>;
10
+ delayedPhantoms: Record<Address, boolean>;
11
+ nativeTokenAddress: Address;
12
+ wrappedNativeTokenAddress: Address | undefined;
13
+ walletBalances: Record<`0x${string}`, bigint> | undefined;
14
+ strategy: Strategy;
15
+ slippage: number;
16
+ quotaReserve: number;
17
+ apyList: APYList | undefined;
18
+ pools: Record<`0x${string}`, PoolData>;
19
+ }): StrategyCMEarningsInfo<CM>;
@@ -0,0 +1,29 @@
1
+ import type { Address } from "viem";
2
+ import type { TokenData } from "../../../charts/token-data.js";
3
+ import type { Strategy } from "../types/strategy.js";
4
+ import type { APYList, CreditManagerData, PoolData, PricesRecord } from "../types/strategy-data.js";
5
+ import type { StrategyCMEarningsInfo } from "../types/strategy-earnings.js";
6
+ type EarningsList<CM extends CreditManagerData> = Array<StrategyCMEarningsInfo<CM>>;
7
+ interface GearboxSDKFullState {
8
+ pools: Record<Address, PoolData> | undefined;
9
+ tokens: {
10
+ tokenDataList: Record<Address, TokenData>;
11
+ } | undefined;
12
+ addressProvider: {
13
+ wrappedNativeToken: Address | undefined;
14
+ };
15
+ withdrawableAssets: Record<Address, Array<{
16
+ withdrawalPhantomToken: Address;
17
+ }>> | undefined;
18
+ }
19
+ export declare function getStrategyYouCanEarn<CM extends CreditManagerData>({ strategy, creditManagers, sdkState, apyList, quotaReserve, slippage, allPrices, walletBalances, }: {
20
+ strategy: Strategy;
21
+ creditManagers: Record<Address, CM> | undefined;
22
+ sdkState: GearboxSDKFullState | undefined;
23
+ apyList: APYList | undefined;
24
+ allPrices: PricesRecord | undefined;
25
+ walletBalances: Record<`0x${string}`, bigint> | undefined;
26
+ quotaReserve: number;
27
+ slippage: number;
28
+ }): EarningsList<CM>;
29
+ export {};
@@ -1,6 +1,10 @@
1
+ export * from "./calculate-total-apy.js";
2
+ export * from "./calculate-total-points.js";
1
3
  export * from "./cm-availability-condition.js";
4
+ export * from "./get-cm-you-can-earn.js";
2
5
  export * from "./get-strategy-info.js";
3
6
  export * from "./get-strategy-info-core.js";
4
7
  export * from "./get-strategy-max-apy.js";
8
+ export * from "./get-strategy-you-can-earn.js";
5
9
  export * from "./is-strategy-cm-disabled.js";
6
10
  export * from "./types.js";
@@ -26,6 +26,7 @@ export interface CreditManagerSlice {
26
26
  liquidationThresholds: Record<Address, bigint>;
27
27
  quotas: Record<Address, QuotaSlice | undefined>;
28
28
  collateralTokens: readonly Address[];
29
+ maxEnabledTokensLength: number;
29
30
  }
30
31
  export interface PoolSlice {
31
32
  address: Address;
@@ -0,0 +1,6 @@
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 declare function addAmountInTarget<T extends Asset>(asset: T, tokensList: Record<Address, TokenData>, prices: Record<Address, bigint>, toPrice: bigint, toDecimals: number): T & {
5
+ amountInTarget: bigint;
6
+ };
@@ -0,0 +1,6 @@
1
+ import type { Address } from "viem";
2
+ interface WithdrawableAssetClient {
3
+ withdrawalPhantomToken: Address;
4
+ }
5
+ export declare function getChainPhantomTokens(config: Record<Address, WithdrawableAssetClient[]> | undefined): Record<`0x${string}`, boolean>;
6
+ export {};
@@ -0,0 +1,12 @@
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 AddAmountInTargetProps<T> {
5
+ assets: Array<T>;
6
+ targetToken: Address;
7
+ prices: Record<Address, bigint>;
8
+ tokensList: Record<Address, TokenData>;
9
+ }
10
+ export declare function getListWithAmountInTarget<T extends Asset>({ assets, targetToken, prices, tokensList, }: AddAmountInTargetProps<T>): Array<T & {
11
+ amountInTarget: bigint;
12
+ }>;
@@ -0,0 +1 @@
1
+ export declare function getNativeTokenAddress(): `0x${string}`;
@@ -1,3 +1,12 @@
1
+ export * from "./add-amount-in-target.js";
2
+ export * from "./get-chain-phantom-tokens.js";
3
+ export * from "./get-list-with-amount-in-target.js";
4
+ export * from "./get-native-token-address.js";
1
5
  export * from "./is-activated-token.js";
6
+ export * from "./is-apy-with-points-exception.js";
7
+ export * from "./is-collateral-token.js";
2
8
  export * from "./is-forbidden-token.js";
9
+ export * from "./is-obtainable-token.js";
3
10
  export * from "./is-usable-token.js";
11
+ export * from "./is-valid-extra-collateral-token.js";
12
+ export * from "./wrap-token-address.js";
@@ -0,0 +1,3 @@
1
+ import type { Address } from "viem";
2
+ export declare const RST_ETH_ADDRESS: Address;
3
+ export declare function isApyWithPointsException(token: Address | undefined): boolean;
@@ -0,0 +1,16 @@
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
+ export interface IsCollateralTokenProps {
7
+ address: Address;
8
+ tokensList: Record<Address, TokenData>;
9
+ creditManager: CreditManagerData;
10
+ delayedPhantoms: Record<Address, boolean>;
11
+ extraCollateralConfigs: ExtraCollateralConfig[] | undefined;
12
+ prices: Record<Address, bigint> | undefined;
13
+ zeroDebt?: boolean;
14
+ }
15
+ export declare function isCollateralToken({ address, tokensList, creditManager, zeroDebt, delayedPhantoms, extraCollateralConfigs, prices, }: IsCollateralTokenProps): boolean;
16
+ export {};
@@ -0,0 +1,14 @@
1
+ import type { Address } from "viem";
2
+ import type { QuotaInfo } from "../types/strategy-data.js";
3
+ export interface IsObtainableTokenProps {
4
+ address: Address;
5
+ creditManager: {
6
+ quotas: Record<Address, QuotaInfo | undefined>;
7
+ isQuoted(token: Address): boolean;
8
+ forbiddenTokens: Record<Address, true>;
9
+ liquidationThresholds: Record<Address, bigint>;
10
+ supportedTokens: Record<Address, true>;
11
+ };
12
+ delayedPhantoms: Record<Address, boolean>;
13
+ }
14
+ export declare function isObtainableToken({ address, creditManager, delayedPhantoms, }: IsObtainableTokenProps): boolean;
@@ -0,0 +1,20 @@
1
+ import type { Address } from "viem";
2
+ export interface IsValidExtraCollateralTokenProps {
3
+ address: Address;
4
+ extraCollateralConfigs: Array<Address | {
5
+ token: Address;
6
+ cm: Address;
7
+ }> | undefined;
8
+ prices: Record<Address, bigint> | undefined;
9
+ creditManager: {
10
+ address: Address;
11
+ underlyingToken: Address;
12
+ forbiddenTokens: Record<Address, true>;
13
+ } | undefined;
14
+ tokensList: Record<Address, {
15
+ isPhantom: boolean;
16
+ }>;
17
+ delayedPhantoms: Record<Address, boolean>;
18
+ zeroDebt?: boolean;
19
+ }
20
+ export declare function isValidExtraCollateralToken({ address, extraCollateralConfigs, prices, creditManager, tokensList, delayedPhantoms, zeroDebt, }: IsValidExtraCollateralTokenProps): boolean;
@@ -0,0 +1,2 @@
1
+ import type { Address } from "viem";
2
+ export declare function wrapTokenAddress(tokenAddress: Address, nativeTokenAddress: Address, wrappedNativeTokenAddress: Address | undefined): `0x${string}`;
@@ -1,4 +1,5 @@
1
- export type { QuotaSlice as QuotaInfo } from "../strategy-info/types.js";
1
+ import type { QuotaSlice } from "../strategy-info/types.js";
2
+ export type QuotaInfo = QuotaSlice;
2
3
  export * from "./chains.js";
3
4
  export * from "./credit-manager-data-legacy.js";
4
5
  export * from "./curator-filter.js";
@@ -7,5 +8,7 @@ export * from "./points-slices.js";
7
8
  export * from "./sdk-state.js";
8
9
  export * from "./strategies-cm-list.js";
9
10
  export * from "./strategy.js";
11
+ export * from "./strategy-data.js";
10
12
  export * from "./strategy-data-source.js";
13
+ export * from "./strategy-earnings.js";
11
14
  export * from "./targetable.js";
@@ -0,0 +1,64 @@
1
+ import type { Address } from "viem";
2
+ import type { QuotaSlice } from "../strategy-info/types.js";
3
+ import type { LocalPointsInfo } from "./points-slices.js";
4
+ export type QuotaInfo = QuotaSlice;
5
+ export interface LinearModel {
6
+ U_1: bigint;
7
+ U_2: bigint;
8
+ R_base: bigint;
9
+ R_slope1: bigint;
10
+ R_slope2: bigint;
11
+ R_slope3: bigint;
12
+ interestModel: Address;
13
+ version: number;
14
+ isBorrowingMoreU2Forbidden: boolean;
15
+ }
16
+ export interface PoolData {
17
+ address: Address;
18
+ expectedLiquidity: bigint;
19
+ availableLiquidity: bigint;
20
+ interestModel: LinearModel;
21
+ totalDebtLimit: bigint;
22
+ totalBorrowed: bigint;
23
+ underlyingToken?: Address;
24
+ isPaused?: boolean;
25
+ }
26
+ export interface CreditManagerData {
27
+ address: Address;
28
+ name: string;
29
+ underlyingToken: Address;
30
+ pool: Address;
31
+ isPaused: boolean;
32
+ collateralTokens: Array<Address>;
33
+ forbiddenTokens: Record<Address, true>;
34
+ supportedTokens: Record<Address, true>;
35
+ quotas: Record<Address, QuotaInfo>;
36
+ liquidationThresholds: Record<Address, bigint>;
37
+ maxDebt: bigint;
38
+ minDebt: bigint;
39
+ availableToBorrow: bigint;
40
+ totalDebt: bigint;
41
+ totalDebtLimit: bigint;
42
+ feeInterest: number;
43
+ baseBorrowRate: number;
44
+ maxEnabledTokensLength: number;
45
+ chainId: number;
46
+ isDegenMode: boolean;
47
+ degenNFT: Address;
48
+ isQuoted(token: Address): boolean;
49
+ isForbidden(token: Address): boolean;
50
+ }
51
+ export interface PricesRecord {
52
+ [pool: Address]: {
53
+ [token: Address]: bigint;
54
+ };
55
+ }
56
+ export interface APYList {
57
+ apyList: Record<Address, number> | undefined;
58
+ extraCollateralAPYList: Record<Address, Record<Address, {
59
+ type: "relative" | "absolute";
60
+ value: number;
61
+ }>> | undefined;
62
+ pointsList: Record<Address, LocalPointsInfo> | undefined;
63
+ extraCollateralPointsList: Record<Address, Record<Address, LocalPointsInfo>> | undefined;
64
+ }
@@ -0,0 +1,43 @@
1
+ import type { Asset } from "../../../../sdk/router/types.js";
2
+ import type { calculateEarnings } from "../../apy/calculate-earnings.js";
3
+ import type { Strategy } from "../../strategies/types/strategy.js";
4
+ import type { calculateTotalAPY } from "../strategy-info/calculate-total-apy.js";
5
+ import type { calculateTotalPoints } from "../strategy-info/calculate-total-points.js";
6
+ import type { getListWithAmountInTarget } from "../tokens/get-list-with-amount-in-target.js";
7
+ import type { CreditManagerData } from "./strategy-data.js";
8
+ export type StrategyCMEarningsInfo<CM extends CreditManagerData> = {
9
+ status: "ok";
10
+ description: string;
11
+ otherInfo?: object;
12
+ data: {
13
+ info: {
14
+ strategy: Strategy;
15
+ creditManager: CM;
16
+ collateral: Array<Asset>;
17
+ assetsWithAmountInTarget: ReturnType<typeof getListWithAmountInTarget>;
18
+ assetValue: bigint;
19
+ debt: bigint;
20
+ totalAmount: bigint;
21
+ assetValueInUSD: bigint;
22
+ maxAPY: ReturnType<typeof calculateTotalAPY>;
23
+ bonusAPY: {
24
+ value: number;
25
+ } | undefined;
26
+ maxLeverage: bigint;
27
+ };
28
+ earnings: ReturnType<typeof calculateEarnings>;
29
+ points: ReturnType<typeof calculateTotalPoints>;
30
+ };
31
+ } | {
32
+ status: "error";
33
+ description: string;
34
+ otherInfo?: object;
35
+ data: undefined;
36
+ };
37
+ export type EarningsList<CM extends CreditManagerData> = Array<StrategyCMEarningsInfo<CM>>;
38
+ export type StrategyEarningsListByChain<CM extends CreditManagerData> = Record<number, Record<string, EarningsList<CM>>>;
39
+ export interface BestEarningsState<CM extends CreditManagerData> {
40
+ best: StrategyCMEarningsInfo<CM> | undefined;
41
+ sorted: StrategyCMEarningsInfo<CM>[];
42
+ bestRecord: Record<number, Record<Strategy["id"], StrategyCMEarningsInfo<CM>>>;
43
+ }
@@ -0,0 +1,9 @@
1
+ export * from "./is-zero-balance.js";
2
+ export * from "./validate-balance.js";
3
+ export * from "./validate-balances.js";
4
+ export * from "./validate-credit-manager.js";
5
+ export * from "./validate-hf.js";
6
+ export * from "./validate-open-account.js";
7
+ export * from "./validate-quota.js";
8
+ export * from "./validate-token-to-obtain.js";
9
+ export * from "./validation-types.js";
@@ -0,0 +1 @@
1
+ export declare function isZeroBalance(balance: bigint | undefined): boolean;
@@ -0,0 +1,22 @@
1
+ import type { Address } from "viem";
2
+ export interface ValidateBalanceProps {
3
+ amount: bigint;
4
+ tokenAddress: Address;
5
+ maxAmount: bigint | undefined;
6
+ zeroCheck?: boolean;
7
+ single?: boolean;
8
+ }
9
+ export type ValidateBalanceResult = {
10
+ message: "unknownToken";
11
+ token: Address;
12
+ } | {
13
+ message: "insufficientFunds";
14
+ token: Address;
15
+ } | {
16
+ message: "zeroBalance";
17
+ token: Address;
18
+ } | {
19
+ message: "enterAmount";
20
+ token: Address;
21
+ };
22
+ export declare function validateBalance({ amount, tokenAddress, maxAmount, zeroCheck, single, }: ValidateBalanceProps): ValidateBalanceResult | null;
@@ -0,0 +1,9 @@
1
+ import type { Address } from "viem";
2
+ import type { Asset } from "../../../sdk/router/types.js";
3
+ import type { ValidateBalanceResult } from "./validate-balance.js";
4
+ export interface ValidateBalancesProps {
5
+ balances: Record<Address, bigint>;
6
+ assets: Array<Asset>;
7
+ zeroCheck?: boolean;
8
+ }
9
+ export declare function validateBalances({ balances, assets, zeroCheck, }: ValidateBalancesProps): ValidateBalanceResult | null;
@@ -0,0 +1,10 @@
1
+ export interface ValidateCreditManagerProps {
2
+ creditManager: {
3
+ isPaused: boolean;
4
+ };
5
+ allowPausedCm?: boolean;
6
+ }
7
+ export interface ValidateCreditManagerResult {
8
+ message: "paused";
9
+ }
10
+ export declare function validateCreditManager({ creditManager, allowPausedCm, }: ValidateCreditManagerProps): ValidateCreditManagerResult | null;
@@ -0,0 +1,9 @@
1
+ export declare const MIN_HF_LIMITED = 10100n;
2
+ export interface ValidateHFProps {
3
+ hf: number | undefined;
4
+ hfCheck?: boolean;
5
+ }
6
+ export interface ValidateHFResult {
7
+ message: "hfTooLow";
8
+ }
9
+ export declare function validateHF({ hf, hfCheck, }: ValidateHFProps): ValidateHFResult | null;
@@ -0,0 +1,7 @@
1
+ import type { Address } from "viem";
2
+ import type { CreditManagerSlice } from "../strategies/strategy-info/types.js";
3
+ export interface ValidateOpenAccountPoolQuotaStatusResult {
4
+ message: "insufficientQuota";
5
+ token: Address;
6
+ }
7
+ export declare function validateOpenAccountPoolQuotaStatus(targetToken: Address, creditManager: Pick<CreditManagerSlice, "quotas">, amountToBorrow: bigint): ValidateOpenAccountPoolQuotaStatusResult | null;
@@ -0,0 +1,23 @@
1
+ import type { Address } from "viem";
2
+ import type { CreditManagerSlice, PoolSlice } from "../strategies/strategy-info/types.js";
3
+ import { type ValidateOpenAccountPoolQuotaStatusResult } from "./validate-open-account-pool-quota-status.js";
4
+ export interface ValidateOpenAccountPoolStatusProps {
5
+ creditManager: Pick<CreditManagerSlice, "minDebt" | "totalDebtLimit" | "totalDebt" | "availableToBorrow" | "quotas">;
6
+ pool: Pick<PoolSlice, "totalDebtLimit" | "totalBorrowed"> | undefined | null;
7
+ debt: bigint;
8
+ targetToken: Address | null;
9
+ }
10
+ export type ValidateOpenAccountPoolStatusResult = {
11
+ message: "insufficientDebtLimit";
12
+ amount: bigint;
13
+ solutionAmount?: bigint;
14
+ } | {
15
+ message: "insufficientPoolDebtLimit";
16
+ amount: bigint;
17
+ solutionAmount?: bigint;
18
+ } | {
19
+ message: "insufficientPoolLiquidity";
20
+ amount: bigint;
21
+ solutionAmount?: bigint;
22
+ } | ValidateOpenAccountPoolQuotaStatusResult;
23
+ export declare function validateOpenAccountPoolStatus(props: ValidateOpenAccountPoolStatusProps): ValidateOpenAccountPoolStatusResult | null;
@@ -0,0 +1,21 @@
1
+ import type { Address } from "viem";
2
+ import type { Asset } from "../../../sdk/router/types.js";
3
+ import type { CreditManagerSlice } from "../strategies/strategy-info/types.js";
4
+ import type { ValidateQuotaResult } from "./validate-quota.js";
5
+ export interface ValidateOpenAccountProps {
6
+ debt: bigint;
7
+ creditManager: Pick<CreditManagerSlice, "minDebt" | "maxDebt" | "underlyingToken" | "quotas" | "maxEnabledTokensLength">;
8
+ desiredQuota: Record<Address, Asset>;
9
+ quotaUpdate: Array<Asset>;
10
+ loading?: boolean;
11
+ }
12
+ export type ValidateOpenAccountResult = {
13
+ message: "loading";
14
+ } | {
15
+ message: "amountLessMin";
16
+ amount: bigint;
17
+ } | {
18
+ message: "debtGreaterMax";
19
+ amount: bigint;
20
+ } | ValidateQuotaResult;
21
+ export declare function validateOpenAccount(props: ValidateOpenAccountProps): ValidateOpenAccountResult | null;
@@ -0,0 +1,20 @@
1
+ import type { Address } from "viem";
2
+ import type { Asset } from "../../../sdk/router/types.js";
3
+ import type { CreditManagerSlice } from "../strategies/strategy-info/types.js";
4
+ export interface ValidateQuotaProps {
5
+ desiredQuota: Record<Address, Asset>;
6
+ quotaUpdate: Array<Asset>;
7
+ creditManager: Pick<CreditManagerSlice, "quotas" | "maxEnabledTokensLength">;
8
+ throwOnZeroQuotaUpdate?: boolean;
9
+ }
10
+ export type ValidateQuotaResult = {
11
+ message: "maxQuotasLengthReached";
12
+ count: number;
13
+ max: number;
14
+ } | {
15
+ message: "quotaShouldBeUpdated";
16
+ } | {
17
+ message: "insufficientQuota";
18
+ token: Address;
19
+ };
20
+ export declare function validateQuota(props: ValidateQuotaProps): ValidateQuotaResult | null;
@@ -0,0 +1,13 @@
1
+ import type { Address } from "viem";
2
+ import type { Asset } from "../../../sdk/router/types.js";
3
+ export interface ValidateTokenToObtainProps {
4
+ targetToken: Address | Array<Asset> | null;
5
+ creditManager: {
6
+ forbiddenTokens: Record<Address, boolean>;
7
+ };
8
+ }
9
+ export interface ValidateTokenToObtainResult {
10
+ message: "tokenIsForbidden";
11
+ token: Address;
12
+ }
13
+ export declare function validateTokenToObtain({ creditManager, targetToken, }: ValidateTokenToObtainProps): ValidateTokenToObtainResult | null;
@@ -0,0 +1,14 @@
1
+ type AllKeys<T> = T extends unknown ? keyof T : never;
2
+ type IsKeyInAll<T, K extends PropertyKey> = T extends unknown ? K extends keyof T ? true : false : never;
3
+ type IsKeyRequired<T, K extends PropertyKey> = T extends unknown ? K extends keyof T ? object extends Pick<T, K> ? false : true : false : never;
4
+ type RequiredKeys<T, K = AllKeys<T>> = K extends PropertyKey ? true extends IsKeyInAll<T, K> ? true extends IsKeyRequired<T, K> ? false extends IsKeyRequired<T, K> ? never : K : never : never : never;
5
+ type OptionalKeys<T, K = AllKeys<T>> = K extends PropertyKey ? K extends RequiredKeys<T> ? never : K : never;
6
+ type ValueForKey<T, K extends PropertyKey> = T extends {
7
+ [P in K]?: infer V;
8
+ } ? V : never;
9
+ export type FlattenUnion<T> = {
10
+ [K in RequiredKeys<T>]: ValueForKey<T, K>;
11
+ } & {
12
+ [K in OptionalKeys<T>]?: ValueForKey<T, K>;
13
+ };
14
+ export {};
@@ -30,8 +30,8 @@ export interface ProviderStatus {
30
30
  type OnRequestFn = (providerName: string, ...args: Parameters<Required<HttpRpcClientOptions>["onRequest"]>) => ReturnType<Required<HttpRpcClientOptions>["onRequest"]>;
31
31
  type OnResponseFn = (providerName: string, ...args: Parameters<Required<HttpRpcClientOptions>["onResponse"]>) => ReturnType<Required<HttpRpcClientOptions>["onResponse"]>;
32
32
  export declare const SelectionStrategy: z.ZodEnum<{
33
- simple: "simple";
34
33
  ordered: "ordered";
34
+ simple: "simple";
35
35
  }>;
36
36
  /**
37
37
  * How to select the next transport
@@ -44,8 +44,8 @@ export type SelectionStrategy = z.infer<typeof SelectionStrategy>;
44
44
  */
45
45
  export declare const revolverTransportConfigBaseSchema: z.ZodObject<{
46
46
  selectionStrategy: z.ZodOptional<z.ZodEnum<{
47
- simple: "simple";
48
47
  ordered: "ordered";
48
+ simple: "simple";
49
49
  }>>;
50
50
  key: z.ZodOptional<z.ZodString>;
51
51
  name: z.ZodOptional<z.ZodString>;
@@ -68,8 +68,8 @@ export declare const revolverTransportConfigBaseSchema: z.ZodObject<{
68
68
  }, z.core.$strip>;
69
69
  export declare const revolverTransportConfigSchema: z.ZodUnion<readonly [z.ZodObject<{
70
70
  selectionStrategy: z.ZodOptional<z.ZodEnum<{
71
- simple: "simple";
72
71
  ordered: "ordered";
72
+ simple: "simple";
73
73
  }>>;
74
74
  key: z.ZodOptional<z.ZodString>;
75
75
  name: z.ZodOptional<z.ZodString>;
@@ -111,8 +111,8 @@ export declare const revolverTransportConfigSchema: z.ZodUnion<readonly [z.ZodOb
111
111
  }, z.core.$strip>>;
112
112
  }, z.core.$strip>, z.ZodObject<{
113
113
  selectionStrategy: z.ZodOptional<z.ZodEnum<{
114
- simple: "simple";
115
114
  ordered: "ordered";
115
+ simple: "simple";
116
116
  }>>;
117
117
  key: z.ZodOptional<z.ZodString>;
118
118
  name: z.ZodOptional<z.ZodString>;
@@ -12,5 +12,6 @@ export declare const PRICE_DECIMALS: bigint;
12
12
  export declare const SECONDS_PER_YEAR: number;
13
13
  export declare const PERCENTAGE_DECIMALS = 100n;
14
14
  export declare const PERCENTAGE_FACTOR = 10000n;
15
+ export declare const PERCENTAGE_FACTOR_1KK: bigint;
15
16
  export declare const LEVERAGE_DECIMALS = 100n;
16
17
  export declare const SLIPPAGE_DECIMALS = 100n;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gearbox-protocol/sdk",
3
- "version": "14.10.1",
3
+ "version": "14.10.2-next.2",
4
4
  "description": "Gearbox SDK",
5
5
  "license": "MIT",
6
6
  "repository": {