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

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 (206) 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/constants.js +34 -0
  10. package/dist/cjs/common-utils/utils/strategies/assets/assets.js +30 -0
  11. package/dist/cjs/common-utils/utils/strategies/credit-managers/get-cm-allowed-collaterals.js +62 -0
  12. package/dist/cjs/common-utils/utils/strategies/credit-managers/get-cm-allowed-collaterals.spec.js +109 -0
  13. package/dist/cjs/common-utils/utils/strategies/credit-managers/get-wallet-balances-allowed-on-cm.js +75 -0
  14. package/dist/cjs/common-utils/utils/strategies/credit-managers/get-wallet-balances-allowed-on-cm.spec.js +93 -0
  15. package/dist/cjs/common-utils/utils/strategies/leverage/calculate-max-strategy-debt.js +63 -0
  16. package/dist/cjs/common-utils/utils/strategies/leverage/calculate-max-strategy-debt.spec.js +330 -0
  17. package/dist/cjs/common-utils/utils/strategies/leverage/get-collateral-by-debt.js +34 -0
  18. package/dist/cjs/common-utils/utils/strategies/leverage/get-collateral-by-debt.spec.js +30 -0
  19. package/dist/cjs/common-utils/utils/strategies/leverage/get-recommended-debt.js +85 -0
  20. package/dist/cjs/common-utils/utils/strategies/leverage/get-recommended-debt.spec.js +227 -0
  21. package/dist/cjs/common-utils/utils/strategies/leverage/get-recommended-leverage-factor.js +33 -0
  22. package/dist/cjs/common-utils/utils/strategies/leverage/get-recommended-leverage-factor.spec.js +23 -0
  23. package/dist/cjs/common-utils/utils/strategies/leverage/max-leverage.js +2 -2
  24. package/dist/cjs/common-utils/utils/strategies/strategy-info/calculate-total-apy.js +112 -0
  25. package/dist/cjs/common-utils/utils/strategies/strategy-info/calculate-total-apy.spec.js +183 -0
  26. package/dist/cjs/common-utils/utils/strategies/strategy-info/calculate-total-points.js +74 -0
  27. package/dist/cjs/common-utils/utils/strategies/strategy-info/calculate-total-points.spec.js +131 -0
  28. package/dist/cjs/common-utils/utils/strategies/strategy-info/get-cm-you-can-earn.js +410 -0
  29. package/dist/cjs/common-utils/utils/strategies/strategy-info/get-cm-you-can-earn.spec.js +274 -0
  30. package/dist/cjs/common-utils/utils/strategies/strategy-info/get-strategy-you-can-earn.js +108 -0
  31. package/dist/cjs/common-utils/utils/strategies/tokens/add-amount-in-target.js +41 -0
  32. package/dist/cjs/common-utils/utils/strategies/tokens/add-amount-in-target.spec.js +38 -0
  33. package/dist/cjs/common-utils/utils/strategies/tokens/get-chain-phantom-tokens.js +35 -0
  34. package/dist/cjs/common-utils/utils/strategies/tokens/get-list-with-amount-in-target.js +42 -0
  35. package/dist/cjs/common-utils/utils/strategies/tokens/get-list-with-amount-in-target.spec.js +32 -0
  36. package/dist/cjs/common-utils/utils/strategies/tokens/get-native-token-address.js +31 -0
  37. package/dist/cjs/common-utils/utils/strategies/tokens/is-apy-with-points-exception.js +36 -0
  38. package/dist/cjs/common-utils/utils/strategies/tokens/is-collateral-token.js +59 -0
  39. package/dist/cjs/common-utils/utils/strategies/tokens/is-collateral-token.spec.js +135 -0
  40. package/dist/cjs/common-utils/utils/strategies/tokens/is-obtainable-token.js +42 -0
  41. package/dist/cjs/common-utils/utils/strategies/tokens/is-obtainable-token.spec.js +162 -0
  42. package/dist/cjs/common-utils/utils/strategies/tokens/is-valid-extra-collateral-token.js +51 -0
  43. package/dist/cjs/common-utils/utils/strategies/tokens/wrap-token-address.js +33 -0
  44. package/dist/cjs/common-utils/utils/strategies/tokens/wrap-token-address.spec.js +13 -0
  45. package/dist/cjs/common-utils/utils/strategies/types/strategy-data.js +16 -0
  46. package/dist/cjs/common-utils/utils/strategies/types/strategy-earnings.js +16 -0
  47. package/dist/cjs/common-utils/utils/validation/is-zero-balance.js +30 -0
  48. package/dist/cjs/common-utils/utils/validation/validate-balance.js +47 -0
  49. package/dist/cjs/common-utils/utils/validation/validate-balance.spec.js +52 -0
  50. package/dist/cjs/common-utils/utils/validation/validate-balances.js +44 -0
  51. package/dist/cjs/common-utils/utils/validation/validate-balances.spec.js +37 -0
  52. package/dist/cjs/common-utils/utils/validation/validate-credit-manager.js +34 -0
  53. package/dist/cjs/common-utils/utils/validation/validate-credit-manager.spec.js +36 -0
  54. package/dist/cjs/common-utils/utils/validation/validate-hf.js +38 -0
  55. package/dist/cjs/common-utils/utils/validation/validate-hf.spec.js +24 -0
  56. package/dist/cjs/common-utils/utils/validation/validate-open-account-pool-quota-status.js +37 -0
  57. package/dist/cjs/common-utils/utils/validation/validate-open-account-pool-quota-status.spec.js +43 -0
  58. package/dist/cjs/common-utils/utils/validation/validate-open-account-pool-status.js +76 -0
  59. package/dist/cjs/common-utils/utils/validation/validate-open-account-pool-status.spec.js +98 -0
  60. package/dist/cjs/common-utils/utils/validation/validate-open-account.js +41 -0
  61. package/dist/cjs/common-utils/utils/validation/validate-open-account.spec.js +54 -0
  62. package/dist/cjs/common-utils/utils/validation/validate-quota.js +49 -0
  63. package/dist/cjs/common-utils/utils/validation/validate-quota.spec.js +79 -0
  64. package/dist/cjs/common-utils/utils/validation/validate-token-to-obtain.js +42 -0
  65. package/dist/cjs/common-utils/utils/validation/validate-token-to-obtain.spec.js +35 -0
  66. package/dist/cjs/common-utils/utils/validation/validation-types.js +16 -0
  67. package/dist/cjs/sdk/constants/math.js +3 -0
  68. package/dist/esm/common-utils/test-utils/index.js +104 -0
  69. package/dist/esm/common-utils/utils/apy/calculate-borrow-rate-from-utilization.js +35 -0
  70. package/dist/esm/common-utils/utils/apy/calculate-borrow-rate-from-utilization.spec.js +31 -0
  71. package/dist/esm/common-utils/utils/apy/calculate-earnings.js +35 -0
  72. package/dist/esm/common-utils/utils/apy/calculate-earnings.spec.js +65 -0
  73. package/dist/esm/common-utils/utils/apy/calculate-safe-borrow-rate.js +34 -0
  74. package/dist/esm/common-utils/utils/apy/calculate-safe-borrow-rate.spec.js +38 -0
  75. package/dist/esm/common-utils/utils/apy/get-safe-base-borrow-rate.js +16 -0
  76. package/dist/esm/common-utils/utils/constants.js +8 -0
  77. package/dist/esm/common-utils/utils/strategies/assets/assets.js +6 -0
  78. package/dist/esm/common-utils/utils/strategies/credit-managers/get-cm-allowed-collaterals.js +38 -0
  79. package/dist/esm/common-utils/utils/strategies/credit-managers/get-cm-allowed-collaterals.spec.js +115 -0
  80. package/dist/esm/common-utils/utils/strategies/credit-managers/get-wallet-balances-allowed-on-cm.js +51 -0
  81. package/dist/esm/common-utils/utils/strategies/credit-managers/get-wallet-balances-allowed-on-cm.spec.js +96 -0
  82. package/dist/esm/common-utils/utils/strategies/leverage/calculate-max-strategy-debt.js +42 -0
  83. package/dist/esm/common-utils/utils/strategies/leverage/calculate-max-strategy-debt.spec.js +332 -0
  84. package/dist/esm/common-utils/utils/strategies/leverage/get-collateral-by-debt.js +10 -0
  85. package/dist/esm/common-utils/utils/strategies/leverage/get-collateral-by-debt.spec.js +29 -0
  86. package/dist/esm/common-utils/utils/strategies/leverage/get-recommended-debt.js +61 -0
  87. package/dist/esm/common-utils/utils/strategies/leverage/get-recommended-debt.spec.js +226 -0
  88. package/dist/esm/common-utils/utils/strategies/leverage/get-recommended-leverage-factor.js +9 -0
  89. package/dist/esm/common-utils/utils/strategies/leverage/get-recommended-leverage-factor.spec.js +22 -0
  90. package/dist/esm/common-utils/utils/strategies/leverage/max-leverage.js +2 -2
  91. package/dist/esm/common-utils/utils/strategies/strategy-info/calculate-total-apy.js +88 -0
  92. package/dist/esm/common-utils/utils/strategies/strategy-info/calculate-total-apy.spec.js +187 -0
  93. package/dist/esm/common-utils/utils/strategies/strategy-info/calculate-total-points.js +54 -0
  94. package/dist/esm/common-utils/utils/strategies/strategy-info/calculate-total-points.spec.js +139 -0
  95. package/dist/esm/common-utils/utils/strategies/strategy-info/get-cm-you-can-earn.js +389 -0
  96. package/dist/esm/common-utils/utils/strategies/strategy-info/get-cm-you-can-earn.spec.js +278 -0
  97. package/dist/esm/common-utils/utils/strategies/strategy-info/get-strategy-you-can-earn.js +84 -0
  98. package/dist/esm/common-utils/utils/strategies/tokens/add-amount-in-target.js +17 -0
  99. package/dist/esm/common-utils/utils/strategies/tokens/add-amount-in-target.spec.js +41 -0
  100. package/dist/esm/common-utils/utils/strategies/tokens/get-chain-phantom-tokens.js +11 -0
  101. package/dist/esm/common-utils/utils/strategies/tokens/get-list-with-amount-in-target.js +18 -0
  102. package/dist/esm/common-utils/utils/strategies/tokens/get-list-with-amount-in-target.spec.js +36 -0
  103. package/dist/esm/common-utils/utils/strategies/tokens/get-native-token-address.js +7 -0
  104. package/dist/esm/common-utils/utils/strategies/tokens/is-apy-with-points-exception.js +11 -0
  105. package/dist/esm/common-utils/utils/strategies/tokens/is-collateral-token.js +35 -0
  106. package/dist/esm/common-utils/utils/strategies/tokens/is-collateral-token.spec.js +137 -0
  107. package/dist/esm/common-utils/utils/strategies/tokens/is-obtainable-token.js +18 -0
  108. package/dist/esm/common-utils/utils/strategies/tokens/is-obtainable-token.spec.js +161 -0
  109. package/dist/esm/common-utils/utils/strategies/tokens/is-valid-extra-collateral-token.js +27 -0
  110. package/dist/esm/common-utils/utils/strategies/tokens/wrap-token-address.js +9 -0
  111. package/dist/esm/common-utils/utils/strategies/tokens/wrap-token-address.spec.js +12 -0
  112. package/dist/esm/common-utils/utils/strategies/types/strategy-data.js +0 -0
  113. package/dist/esm/common-utils/utils/strategies/types/strategy-earnings.js +0 -0
  114. package/dist/esm/common-utils/utils/validation/is-zero-balance.js +6 -0
  115. package/dist/esm/common-utils/utils/validation/validate-balance.js +23 -0
  116. package/dist/esm/common-utils/utils/validation/validate-balance.spec.js +51 -0
  117. package/dist/esm/common-utils/utils/validation/validate-balances.js +20 -0
  118. package/dist/esm/common-utils/utils/validation/validate-balances.spec.js +36 -0
  119. package/dist/esm/common-utils/utils/validation/validate-credit-manager.js +10 -0
  120. package/dist/esm/common-utils/utils/validation/validate-credit-manager.spec.js +35 -0
  121. package/dist/esm/common-utils/utils/validation/validate-hf.js +13 -0
  122. package/dist/esm/common-utils/utils/validation/validate-hf.spec.js +23 -0
  123. package/dist/esm/common-utils/utils/validation/validate-open-account-pool-quota-status.js +13 -0
  124. package/dist/esm/common-utils/utils/validation/validate-open-account-pool-quota-status.spec.js +46 -0
  125. package/dist/esm/common-utils/utils/validation/validate-open-account-pool-status.js +54 -0
  126. package/dist/esm/common-utils/utils/validation/validate-open-account-pool-status.spec.js +102 -0
  127. package/dist/esm/common-utils/utils/validation/validate-open-account.js +17 -0
  128. package/dist/esm/common-utils/utils/validation/validate-open-account.spec.js +56 -0
  129. package/dist/esm/common-utils/utils/validation/validate-quota.js +25 -0
  130. package/dist/esm/common-utils/utils/validation/validate-quota.spec.js +83 -0
  131. package/dist/esm/common-utils/utils/validation/validate-token-to-obtain.js +18 -0
  132. package/dist/esm/common-utils/utils/validation/validate-token-to-obtain.spec.js +34 -0
  133. package/dist/esm/common-utils/utils/validation/validation-types.js +0 -0
  134. package/dist/esm/sdk/constants/math.js +2 -0
  135. package/dist/types/common-utils/test-utils/index.d.ts +16 -0
  136. package/dist/types/common-utils/utils/apy/calculate-borrow-rate-from-utilization.d.ts +2 -0
  137. package/dist/types/common-utils/utils/apy/calculate-borrow-rate-from-utilization.spec.d.ts +1 -0
  138. package/dist/types/common-utils/utils/apy/calculate-earnings.d.ts +16 -0
  139. package/dist/types/common-utils/utils/apy/calculate-earnings.spec.d.ts +1 -0
  140. package/dist/types/common-utils/utils/apy/calculate-safe-borrow-rate.d.ts +11 -0
  141. package/dist/types/common-utils/utils/apy/calculate-safe-borrow-rate.spec.d.ts +1 -0
  142. package/dist/types/common-utils/utils/apy/get-safe-base-borrow-rate.d.ts +4 -0
  143. package/dist/types/common-utils/utils/constants.d.ts +4 -0
  144. package/dist/types/common-utils/utils/strategies/assets/assets.d.ts +3 -0
  145. package/dist/types/common-utils/utils/strategies/credit-managers/get-cm-allowed-collaterals.d.ts +20 -0
  146. package/dist/types/common-utils/utils/strategies/credit-managers/get-cm-allowed-collaterals.spec.d.ts +1 -0
  147. package/dist/types/common-utils/utils/strategies/credit-managers/get-wallet-balances-allowed-on-cm.d.ts +13 -0
  148. package/dist/types/common-utils/utils/strategies/credit-managers/get-wallet-balances-allowed-on-cm.spec.d.ts +1 -0
  149. package/dist/types/common-utils/utils/strategies/leverage/calculate-max-strategy-debt.d.ts +11 -0
  150. package/dist/types/common-utils/utils/strategies/leverage/calculate-max-strategy-debt.spec.d.ts +1 -0
  151. package/dist/types/common-utils/utils/strategies/leverage/get-collateral-by-debt.d.ts +2 -0
  152. package/dist/types/common-utils/utils/strategies/leverage/get-collateral-by-debt.spec.d.ts +1 -0
  153. package/dist/types/common-utils/utils/strategies/leverage/get-recommended-debt.d.ts +21 -0
  154. package/dist/types/common-utils/utils/strategies/leverage/get-recommended-debt.spec.d.ts +1 -0
  155. package/dist/types/common-utils/utils/strategies/leverage/get-recommended-leverage-factor.d.ts +4 -0
  156. package/dist/types/common-utils/utils/strategies/leverage/get-recommended-leverage-factor.spec.d.ts +1 -0
  157. package/dist/types/common-utils/utils/strategies/strategy-info/calculate-total-apy.d.ts +28 -0
  158. package/dist/types/common-utils/utils/strategies/strategy-info/calculate-total-apy.spec.d.ts +1 -0
  159. package/dist/types/common-utils/utils/strategies/strategy-info/calculate-total-points.d.ts +22 -0
  160. package/dist/types/common-utils/utils/strategies/strategy-info/calculate-total-points.spec.d.ts +1 -0
  161. package/dist/types/common-utils/utils/strategies/strategy-info/get-cm-you-can-earn.d.ts +19 -0
  162. package/dist/types/common-utils/utils/strategies/strategy-info/get-cm-you-can-earn.spec.d.ts +1 -0
  163. package/dist/types/common-utils/utils/strategies/strategy-info/get-strategy-you-can-earn.d.ts +29 -0
  164. package/dist/types/common-utils/utils/strategies/tokens/add-amount-in-target.d.ts +6 -0
  165. package/dist/types/common-utils/utils/strategies/tokens/add-amount-in-target.spec.d.ts +1 -0
  166. package/dist/types/common-utils/utils/strategies/tokens/get-chain-phantom-tokens.d.ts +6 -0
  167. package/dist/types/common-utils/utils/strategies/tokens/get-list-with-amount-in-target.d.ts +12 -0
  168. package/dist/types/common-utils/utils/strategies/tokens/get-list-with-amount-in-target.spec.d.ts +1 -0
  169. package/dist/types/common-utils/utils/strategies/tokens/get-native-token-address.d.ts +1 -0
  170. package/dist/types/common-utils/utils/strategies/tokens/is-apy-with-points-exception.d.ts +3 -0
  171. package/dist/types/common-utils/utils/strategies/tokens/is-collateral-token.d.ts +16 -0
  172. package/dist/types/common-utils/utils/strategies/tokens/is-collateral-token.spec.d.ts +1 -0
  173. package/dist/types/common-utils/utils/strategies/tokens/is-obtainable-token.d.ts +14 -0
  174. package/dist/types/common-utils/utils/strategies/tokens/is-obtainable-token.spec.d.ts +1 -0
  175. package/dist/types/common-utils/utils/strategies/tokens/is-valid-extra-collateral-token.d.ts +20 -0
  176. package/dist/types/common-utils/utils/strategies/tokens/wrap-token-address.d.ts +2 -0
  177. package/dist/types/common-utils/utils/strategies/tokens/wrap-token-address.spec.d.ts +1 -0
  178. package/dist/types/common-utils/utils/strategies/types/index.d.ts +2 -1
  179. package/dist/types/common-utils/utils/strategies/types/strategy-data.d.ts +64 -0
  180. package/dist/types/common-utils/utils/strategies/types/strategy-earnings.d.ts +43 -0
  181. package/dist/types/common-utils/utils/validation/is-zero-balance.d.ts +1 -0
  182. package/dist/types/common-utils/utils/validation/validate-balance.d.ts +22 -0
  183. package/dist/types/common-utils/utils/validation/validate-balance.spec.d.ts +1 -0
  184. package/dist/types/common-utils/utils/validation/validate-balances.d.ts +9 -0
  185. package/dist/types/common-utils/utils/validation/validate-balances.spec.d.ts +1 -0
  186. package/dist/types/common-utils/utils/validation/validate-credit-manager.d.ts +10 -0
  187. package/dist/types/common-utils/utils/validation/validate-credit-manager.spec.d.ts +1 -0
  188. package/dist/types/common-utils/utils/validation/validate-hf.d.ts +9 -0
  189. package/dist/types/common-utils/utils/validation/validate-hf.spec.d.ts +1 -0
  190. package/dist/types/common-utils/utils/validation/validate-open-account-pool-quota-status.d.ts +7 -0
  191. package/dist/types/common-utils/utils/validation/validate-open-account-pool-quota-status.spec.d.ts +1 -0
  192. package/dist/types/common-utils/utils/validation/validate-open-account-pool-status.d.ts +23 -0
  193. package/dist/types/common-utils/utils/validation/validate-open-account-pool-status.spec.d.ts +1 -0
  194. package/dist/types/common-utils/utils/validation/validate-open-account.d.ts +21 -0
  195. package/dist/types/common-utils/utils/validation/validate-open-account.spec.d.ts +1 -0
  196. package/dist/types/common-utils/utils/validation/validate-quota.d.ts +20 -0
  197. package/dist/types/common-utils/utils/validation/validate-quota.spec.d.ts +1 -0
  198. package/dist/types/common-utils/utils/validation/validate-token-to-obtain.d.ts +13 -0
  199. package/dist/types/common-utils/utils/validation/validate-token-to-obtain.spec.d.ts +1 -0
  200. package/dist/types/common-utils/utils/validation/validation-types.d.ts +14 -0
  201. package/dist/types/dev/RevolverTransport.d.ts +4 -4
  202. package/dist/types/sdk/constants/math.d.ts +1 -0
  203. package/package.json +1 -1
  204. package/dist/cjs/common-utils/utils/strategies/__test-utils.js +0 -95
  205. package/dist/esm/common-utils/utils/strategies/__test-utils.js +0 -65
  206. package/dist/types/common-utils/utils/strategies/__test-utils.d.ts +0 -11
@@ -0,0 +1,162 @@
1
+ "use strict";
2
+ var import_vitest = require("vitest");
3
+ var import_test_utils = require("../../../test-utils/index.js");
4
+ var import_is_usable_token = require("../../strategies/tokens/is-usable-token.js");
5
+ var import_is_obtainable_token = require("./is-obtainable-token.js");
6
+ import_vitest.vi.mock("../../utils/strategies/tokens/is-usable-token.js", async () => {
7
+ const actual = await import_vitest.vi.importActual(
8
+ "../../utils/strategies/tokens/is-usable-token.js"
9
+ );
10
+ return {
11
+ ...actual,
12
+ isUsableToken: import_vitest.vi.fn(
13
+ actual.isUsableToken
14
+ )
15
+ };
16
+ });
17
+ const mockIsUsableToken = import_vitest.vi.mocked(import_is_usable_token.isUsableToken);
18
+ (0, import_vitest.describe)("isObtainableToken", () => {
19
+ const tokenAddr = "0xtoken";
20
+ (0, import_vitest.beforeEach)(async () => {
21
+ mockIsUsableToken.mockReset();
22
+ const actual = await import_vitest.vi.importActual(
23
+ "../../utils/strategies/tokens/is-usable-token.js"
24
+ );
25
+ mockIsUsableToken.mockImplementation(
26
+ actual.isUsableToken
27
+ );
28
+ });
29
+ (0, import_vitest.it)("returns true when usable, not delayed phantom, and quota has room", () => {
30
+ const cm = (0, import_test_utils.buildCreditManager)({
31
+ quotas: {
32
+ [tokenAddr]: {
33
+ token: tokenAddr,
34
+ rate: 0n,
35
+ limit: 100n,
36
+ totalQuoted: 0n,
37
+ isActive: true,
38
+ quotaIncreaseFee: 0n
39
+ }
40
+ },
41
+ isQuoted: import_vitest.vi.fn().mockReturnValue(true)
42
+ });
43
+ mockIsUsableToken.mockReturnValue(true);
44
+ const result = (0, import_is_obtainable_token.isObtainableToken)({
45
+ address: tokenAddr,
46
+ creditManager: {
47
+ quotas: cm.quotas,
48
+ isQuoted: cm.isQuoted.bind(cm),
49
+ forbiddenTokens: cm.forbiddenTokens,
50
+ liquidationThresholds: cm.liquidationThresholds,
51
+ supportedTokens: cm.supportedTokens
52
+ },
53
+ delayedPhantoms: {}
54
+ });
55
+ (0, import_vitest.expect)(cm.isQuoted).toHaveBeenCalledWith(tokenAddr);
56
+ (0, import_vitest.expect)(result).toBe(true);
57
+ });
58
+ (0, import_vitest.it)("returns true when usable, not delayed phantom, and not quoted", () => {
59
+ const cm = (0, import_test_utils.buildCreditManager)({
60
+ quotas: {},
61
+ isQuoted: import_vitest.vi.fn().mockReturnValue(false)
62
+ });
63
+ mockIsUsableToken.mockReturnValue(true);
64
+ const result = (0, import_is_obtainable_token.isObtainableToken)({
65
+ address: tokenAddr,
66
+ creditManager: {
67
+ quotas: cm.quotas,
68
+ isQuoted: cm.isQuoted.bind(cm),
69
+ forbiddenTokens: cm.forbiddenTokens,
70
+ liquidationThresholds: cm.liquidationThresholds,
71
+ supportedTokens: cm.supportedTokens
72
+ },
73
+ delayedPhantoms: {}
74
+ });
75
+ (0, import_vitest.expect)(cm.isQuoted).toHaveBeenCalledWith(tokenAddr);
76
+ (0, import_vitest.expect)(result).toBe(true);
77
+ });
78
+ (0, import_vitest.it)("returns false when isUsableToken is false", () => {
79
+ const cm = (0, import_test_utils.buildCreditManager)({
80
+ quotas: {
81
+ [tokenAddr]: {
82
+ token: tokenAddr,
83
+ rate: 0n,
84
+ limit: 100n,
85
+ totalQuoted: 0n,
86
+ isActive: true,
87
+ quotaIncreaseFee: 0n
88
+ }
89
+ },
90
+ isQuoted: import_vitest.vi.fn().mockReturnValue(true)
91
+ });
92
+ mockIsUsableToken.mockReturnValue(false);
93
+ const result = (0, import_is_obtainable_token.isObtainableToken)({
94
+ address: tokenAddr,
95
+ creditManager: {
96
+ quotas: cm.quotas,
97
+ isQuoted: cm.isQuoted.bind(cm),
98
+ forbiddenTokens: cm.forbiddenTokens,
99
+ liquidationThresholds: cm.liquidationThresholds,
100
+ supportedTokens: cm.supportedTokens
101
+ },
102
+ delayedPhantoms: {}
103
+ });
104
+ (0, import_vitest.expect)(result).toBe(false);
105
+ });
106
+ (0, import_vitest.it)("returns false when quotaLeft is zero or negative", () => {
107
+ const cm = (0, import_test_utils.buildCreditManager)({
108
+ quotas: {
109
+ [tokenAddr]: {
110
+ token: tokenAddr,
111
+ rate: 0n,
112
+ limit: 0n,
113
+ totalQuoted: 10n,
114
+ isActive: true,
115
+ quotaIncreaseFee: 0n
116
+ }
117
+ },
118
+ isQuoted: import_vitest.vi.fn().mockReturnValue(true)
119
+ });
120
+ mockIsUsableToken.mockReturnValue(true);
121
+ const result = (0, import_is_obtainable_token.isObtainableToken)({
122
+ address: tokenAddr,
123
+ creditManager: {
124
+ quotas: cm.quotas,
125
+ isQuoted: cm.isQuoted.bind(cm),
126
+ forbiddenTokens: cm.forbiddenTokens,
127
+ liquidationThresholds: cm.liquidationThresholds,
128
+ supportedTokens: cm.supportedTokens
129
+ },
130
+ delayedPhantoms: {}
131
+ });
132
+ (0, import_vitest.expect)(result).toBe(false);
133
+ });
134
+ (0, import_vitest.it)("returns false when token is delayed phantom", () => {
135
+ const cm = (0, import_test_utils.buildCreditManager)({
136
+ quotas: {
137
+ [tokenAddr]: {
138
+ token: tokenAddr,
139
+ rate: 0n,
140
+ limit: 100n,
141
+ totalQuoted: 0n,
142
+ isActive: true,
143
+ quotaIncreaseFee: 0n
144
+ }
145
+ },
146
+ isQuoted: import_vitest.vi.fn().mockReturnValue(true)
147
+ });
148
+ mockIsUsableToken.mockReturnValue(true);
149
+ const result = (0, import_is_obtainable_token.isObtainableToken)({
150
+ address: tokenAddr,
151
+ creditManager: {
152
+ quotas: cm.quotas,
153
+ isQuoted: cm.isQuoted.bind(cm),
154
+ forbiddenTokens: cm.forbiddenTokens,
155
+ liquidationThresholds: cm.liquidationThresholds,
156
+ supportedTokens: cm.supportedTokens
157
+ },
158
+ delayedPhantoms: { [tokenAddr]: true }
159
+ });
160
+ (0, import_vitest.expect)(result).toBe(false);
161
+ });
162
+ });
@@ -0,0 +1,51 @@
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 is_valid_extra_collateral_token_exports = {};
20
+ __export(is_valid_extra_collateral_token_exports, {
21
+ isValidExtraCollateralToken: () => isValidExtraCollateralToken
22
+ });
23
+ module.exports = __toCommonJS(is_valid_extra_collateral_token_exports);
24
+ var import_is_forbidden_token = require("../../strategies/tokens/is-forbidden-token.js");
25
+ function isValidExtraCollateralToken({
26
+ address,
27
+ extraCollateralConfigs,
28
+ prices,
29
+ creditManager,
30
+ tokensList,
31
+ delayedPhantoms,
32
+ zeroDebt
33
+ }) {
34
+ if (!extraCollateralConfigs || extraCollateralConfigs.length === 0 || !prices || !creditManager)
35
+ return false;
36
+ if (creditManager && address === creditManager.underlyingToken) return true;
37
+ if (zeroDebt && creditManager) return false;
38
+ const forbidden = (0, import_is_forbidden_token.isForbiddenToken)({ address, creditManager });
39
+ const delayed = !!delayedPhantoms[address];
40
+ const { isPhantom = false } = tokensList[address] || {};
41
+ const isCMValid = extraCollateralConfigs.some((config) => {
42
+ const targetCM = typeof config === "string" ? creditManager.address : config.cm;
43
+ const price = prices?.[address] || 0n;
44
+ return targetCM === creditManager.address && price > 0n;
45
+ });
46
+ return !isPhantom && !forbidden && !delayed && isCMValid;
47
+ }
48
+ // Annotate the CommonJS export names for ESM import in node:
49
+ 0 && (module.exports = {
50
+ isValidExtraCollateralToken
51
+ });
@@ -0,0 +1,33 @@
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 wrap_token_address_exports = {};
20
+ __export(wrap_token_address_exports, {
21
+ wrapTokenAddress: () => wrapTokenAddress
22
+ });
23
+ module.exports = __toCommonJS(wrap_token_address_exports);
24
+ function wrapTokenAddress(tokenAddress, nativeTokenAddress, wrappedNativeTokenAddress) {
25
+ if (wrappedNativeTokenAddress && tokenAddress === nativeTokenAddress) {
26
+ return wrappedNativeTokenAddress;
27
+ }
28
+ return tokenAddress;
29
+ }
30
+ // Annotate the CommonJS export names for ESM import in node:
31
+ 0 && (module.exports = {
32
+ wrapTokenAddress
33
+ });
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ var import_vitest = require("vitest");
3
+ var import_wrap_token_address = require("./wrap-token-address.js");
4
+ (0, import_vitest.describe)("wrapTokenAddress", () => {
5
+ const native = "0xeeee";
6
+ const wrapped = "0xweth";
7
+ (0, import_vitest.it)("returns wrapped when token matches native", () => {
8
+ (0, import_vitest.expect)((0, import_wrap_token_address.wrapTokenAddress)(native, native, wrapped)).toBe(wrapped);
9
+ });
10
+ (0, import_vitest.it)("returns token when it does not match native", () => {
11
+ (0, import_vitest.expect)((0, import_wrap_token_address.wrapTokenAddress)("0xother", native, wrapped)).toBe("0xother");
12
+ });
13
+ });
@@ -0,0 +1,16 @@
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 __copyProps = (to, from, except, desc) => {
7
+ if (from && typeof from === "object" || typeof from === "function") {
8
+ for (let key of __getOwnPropNames(from))
9
+ if (!__hasOwnProp.call(to, key) && key !== except)
10
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
11
+ }
12
+ return to;
13
+ };
14
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
15
+ var strategy_data_exports = {};
16
+ module.exports = __toCommonJS(strategy_data_exports);
@@ -0,0 +1,16 @@
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 __copyProps = (to, from, except, desc) => {
7
+ if (from && typeof from === "object" || typeof from === "function") {
8
+ for (let key of __getOwnPropNames(from))
9
+ if (!__hasOwnProp.call(to, key) && key !== except)
10
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
11
+ }
12
+ return to;
13
+ };
14
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
15
+ var strategy_earnings_exports = {};
16
+ module.exports = __toCommonJS(strategy_earnings_exports);
@@ -0,0 +1,30 @@
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 is_zero_balance_exports = {};
20
+ __export(is_zero_balance_exports, {
21
+ isZeroBalance: () => isZeroBalance
22
+ });
23
+ module.exports = __toCommonJS(is_zero_balance_exports);
24
+ function isZeroBalance(balance) {
25
+ return (balance ?? 0n) <= 10n;
26
+ }
27
+ // Annotate the CommonJS export names for ESM import in node:
28
+ 0 && (module.exports = {
29
+ isZeroBalance
30
+ });
@@ -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
+ });