@gearbox-protocol/sdk 16.0.0-next.17 → 16.0.0-next.19

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 (197) hide show
  1. package/dist/cjs/common-utils/index.js +3 -21
  2. package/dist/cjs/common-utils/test-utils/index.js +4 -3
  3. package/dist/cjs/common-utils/utils/index.js +3 -22
  4. package/dist/cjs/common-utils/utils/strategies/index.js +3 -0
  5. package/dist/cjs/common-utils/utils/strategies/strategy-info/cm-availability-condition.js +5 -5
  6. package/dist/cjs/common-utils/utils/strategies/strategy-info/credit-manager-issues.js +135 -0
  7. package/dist/cjs/common-utils/utils/strategies/strategy-info/get-cm-you-can-earn.js +12 -23
  8. package/dist/cjs/common-utils/utils/strategies/strategy-info/index.js +3 -0
  9. package/dist/cjs/onchain/accounts/index.js +2 -3
  10. package/dist/cjs/onchain/accounts/intents/guards.js +55 -50
  11. package/dist/cjs/onchain/accounts/intents/index.js +24 -16
  12. package/dist/cjs/onchain/accounts/intents/leverage-band.js +2 -2
  13. package/dist/cjs/onchain/accounts/intents/math.js +15 -22
  14. package/dist/cjs/onchain/accounts/intents/open-strategy.js +5 -5
  15. package/dist/cjs/onchain/accounts/intents/plan.js +27 -41
  16. package/dist/cjs/onchain/accounts/intents/realize.js +14 -21
  17. package/dist/cjs/onchain/accounts/intents/tail.js +2 -2
  18. package/dist/cjs/onchain/accounts/intents/testing/sdk-mock.js +2 -1
  19. package/dist/cjs/onchain/accounts/intents/view.js +1 -0
  20. package/dist/cjs/onchain/constants/index.js +1 -0
  21. package/dist/cjs/onchain/constants/math.js +11 -0
  22. package/dist/cjs/onchain/index.js +32 -3
  23. package/dist/cjs/onchain/market/credit/CreditManagerV310Contract.js +2 -2
  24. package/dist/cjs/onchain/market/math.js +23 -11
  25. package/dist/cjs/onchain/validation/checks.js +250 -0
  26. package/dist/cjs/onchain/validation/index.js +29 -0
  27. package/dist/cjs/onchain/{accounts/intents → validation}/refusal.js +12 -1
  28. package/dist/cjs/onchain/validation/token.js +29 -0
  29. package/dist/cjs/preview/index.js +10 -0
  30. package/dist/cjs/preview/preview/buildDelayedPreview.js +1 -0
  31. package/dist/cjs/preview/preview/previewAdjustCreditAccount.js +1 -0
  32. package/dist/cjs/preview/preview/previewOpenCreditAccount.js +1 -0
  33. package/dist/cjs/preview/validate/checkOperation.js +173 -0
  34. package/dist/cjs/preview/validate/checkSimulation.js +52 -0
  35. package/dist/cjs/preview/validate/index.js +6 -0
  36. package/dist/cjs/sdk/index.js +4 -0
  37. package/dist/cjs/sdk/prepare/PrepareApi.js +23 -17
  38. package/dist/cjs/sdk/prepare/index.js +4 -0
  39. package/dist/cjs/sdk/prepare/types.js +4 -0
  40. package/dist/esm/common-utils/index.js +2 -11
  41. package/dist/esm/common-utils/test-utils/index.js +4 -3
  42. package/dist/esm/common-utils/utils/index.js +2 -12
  43. package/dist/esm/common-utils/utils/strategies/index.js +2 -1
  44. package/dist/esm/common-utils/utils/strategies/strategy-info/cm-availability-condition.js +5 -5
  45. package/dist/esm/common-utils/utils/strategies/strategy-info/credit-manager-issues.js +133 -0
  46. package/dist/esm/common-utils/utils/strategies/strategy-info/get-cm-you-can-earn.js +12 -23
  47. package/dist/esm/common-utils/utils/strategies/strategy-info/index.js +2 -1
  48. package/dist/esm/dev/AccountOpener.js +1 -1
  49. package/dist/esm/dev/withdrawalUtils.js +1 -1
  50. package/dist/esm/onchain/accounts/CreditAccountsServiceV310.js +2 -2
  51. package/dist/esm/onchain/accounts/index.js +2 -2
  52. package/dist/esm/onchain/accounts/intents/guards.js +55 -50
  53. package/dist/esm/onchain/accounts/intents/index.js +23 -14
  54. package/dist/esm/onchain/accounts/intents/leverage-band.js +2 -2
  55. package/dist/esm/onchain/accounts/intents/math.js +14 -21
  56. package/dist/esm/onchain/accounts/intents/open-strategy.js +4 -4
  57. package/dist/esm/onchain/accounts/intents/plan.js +15 -29
  58. package/dist/esm/onchain/accounts/intents/realize.js +12 -19
  59. package/dist/esm/onchain/accounts/intents/tail.js +1 -1
  60. package/dist/esm/onchain/accounts/intents/testing/sdk-mock.js +2 -1
  61. package/dist/esm/onchain/accounts/intents/view.js +1 -0
  62. package/dist/esm/onchain/accounts/liquidations/LiquidationsService.js +1 -1
  63. package/dist/esm/onchain/accounts/withdrawal-compressor/RedemptionLoggerV310Contract.js +1 -1
  64. package/dist/esm/onchain/accounts/withdrawal-compressor/WithdrawalCompressorV310Contract.js +1 -1
  65. package/dist/esm/onchain/accounts/withdrawal-compressor/WithdrawalCompressorV311Contract.js +1 -1
  66. package/dist/esm/onchain/accounts/withdrawal-compressor/WithdrawalCompressorV313Contract.js +1 -1
  67. package/dist/esm/onchain/base/TokensMeta.js +3 -3
  68. package/dist/esm/onchain/chain/detectNetwork.js +1 -1
  69. package/dist/esm/onchain/constants/index.js +2 -2
  70. package/dist/esm/onchain/constants/math.js +11 -1
  71. package/dist/esm/onchain/core/createAddressProvider.js +1 -1
  72. package/dist/esm/onchain/index.js +7 -3
  73. package/dist/esm/onchain/market/adapters/contracts/AccountMigratorAdapterContract.js +1 -1
  74. package/dist/esm/onchain/market/adapters/contracts/ERC4626AdapterContract.js +1 -1
  75. package/dist/esm/onchain/market/credit/CreditFacadeV310BaseContract.js +1 -1
  76. package/dist/esm/onchain/market/credit/CreditManagerV310Contract.js +2 -2
  77. package/dist/esm/onchain/market/math.js +23 -11
  78. package/dist/esm/onchain/market/pool/PoolV310Contract.js +1 -1
  79. package/dist/esm/onchain/market/zapper/IETHZapperContract.js +1 -1
  80. package/dist/esm/onchain/market/zapper/ZapperContract.js +1 -1
  81. package/dist/esm/onchain/pools/PoolService.js +1 -1
  82. package/dist/esm/onchain/utils/viem/simulateWithPriceUpdates.js +1 -1
  83. package/dist/esm/onchain/validation/checks.js +230 -0
  84. package/dist/esm/onchain/validation/index.js +4 -0
  85. package/dist/esm/onchain/{accounts/intents → validation}/refusal.js +12 -2
  86. package/dist/esm/onchain/validation/token.js +27 -0
  87. package/dist/esm/preview/index.js +5 -1
  88. package/dist/esm/preview/preview/buildDelayedPreview.js +1 -0
  89. package/dist/esm/preview/preview/previewAdjustCreditAccount.js +1 -0
  90. package/dist/esm/preview/preview/previewOpenCreditAccount.js +1 -0
  91. package/dist/esm/preview/simulate/simulatePoolOperation.js +1 -1
  92. package/dist/esm/preview/trace/extractTransfers.js +1 -1
  93. package/dist/esm/preview/validate/checkOperation.js +171 -0
  94. package/dist/esm/preview/validate/checkSimulation.js +51 -0
  95. package/dist/esm/preview/validate/index.js +3 -0
  96. package/dist/esm/sdk/index.js +2 -1
  97. package/dist/esm/sdk/prepare/PrepareApi.js +21 -15
  98. package/dist/esm/sdk/prepare/index.js +2 -1
  99. package/dist/esm/sdk/prepare/types.js +2 -1
  100. package/dist/types/common-utils/index.d.ts +2 -12
  101. package/dist/types/common-utils/utils/index.d.ts +2 -13
  102. package/dist/types/common-utils/utils/strategies/index.d.ts +2 -1
  103. package/dist/types/common-utils/utils/strategies/strategy-info/credit-manager-issues.d.ts +34 -0
  104. package/dist/types/common-utils/utils/strategies/strategy-info/index.d.ts +2 -1
  105. package/dist/types/model/previews.d.ts +22 -0
  106. package/dist/types/onchain/accounts/index.d.ts +2 -2
  107. package/dist/types/onchain/accounts/intents/guards.d.ts +8 -4
  108. package/dist/types/onchain/accounts/intents/index.d.ts +20 -10
  109. package/dist/types/onchain/accounts/intents/leverage-band.d.ts +7 -2
  110. package/dist/types/onchain/accounts/intents/math.d.ts +2 -1
  111. package/dist/types/onchain/accounts/intents/plan.d.ts +3 -0
  112. package/dist/types/onchain/accounts/intents/types.d.ts +7 -1
  113. package/dist/types/onchain/constants/index.d.ts +2 -2
  114. package/dist/types/onchain/constants/math.d.ts +9 -1
  115. package/dist/types/onchain/index.d.ts +7 -3
  116. package/dist/types/onchain/market/credit/CreditManagerV310Contract.d.ts +1 -1
  117. package/dist/types/onchain/market/credit/types.d.ts +4 -3
  118. package/dist/types/onchain/market/math.d.ts +20 -9
  119. package/dist/types/onchain/validation/checks.d.ts +167 -0
  120. package/dist/types/onchain/validation/index.d.ts +4 -0
  121. package/dist/types/onchain/{accounts/intents → validation}/refusal.d.ts +100 -31
  122. package/dist/types/onchain/validation/token.d.ts +17 -0
  123. package/dist/types/preview/index.d.ts +5 -1
  124. package/dist/types/preview/validate/checkOperation.d.ts +46 -0
  125. package/dist/types/preview/validate/checkSimulation.d.ts +34 -0
  126. package/dist/types/preview/validate/index.d.ts +3 -0
  127. package/dist/types/sdk/index.d.ts +2 -2
  128. package/dist/types/sdk/prepare/PrepareApi.d.ts +3 -3
  129. package/dist/types/sdk/prepare/index.d.ts +2 -2
  130. package/dist/types/sdk/prepare/types.d.ts +8 -4
  131. package/package.json +1 -1
  132. package/dist/cjs/common-utils/utils/strategies/strategy-info/get-cm-you-can-earn.spec.js +0 -267
  133. package/dist/cjs/common-utils/utils/validation/index.js +0 -23
  134. package/dist/cjs/common-utils/utils/validation/is-zero-balance.js +0 -7
  135. package/dist/cjs/common-utils/utils/validation/validate-balance.js +0 -22
  136. package/dist/cjs/common-utils/utils/validation/validate-balance.spec.js +0 -54
  137. package/dist/cjs/common-utils/utils/validation/validate-balances.js +0 -17
  138. package/dist/cjs/common-utils/utils/validation/validate-balances.spec.js +0 -45
  139. package/dist/cjs/common-utils/utils/validation/validate-credit-manager.js +0 -8
  140. package/dist/cjs/common-utils/utils/validation/validate-credit-manager.spec.js +0 -36
  141. package/dist/cjs/common-utils/utils/validation/validate-hf.js +0 -10
  142. package/dist/cjs/common-utils/utils/validation/validate-hf.spec.js +0 -26
  143. package/dist/cjs/common-utils/utils/validation/validate-open-account-pool-quota-status.js +0 -14
  144. package/dist/cjs/common-utils/utils/validation/validate-open-account-pool-quota-status.spec.js +0 -29
  145. package/dist/cjs/common-utils/utils/validation/validate-open-account-pool-status.js +0 -37
  146. package/dist/cjs/common-utils/utils/validation/validate-open-account-pool-status.spec.js +0 -98
  147. package/dist/cjs/common-utils/utils/validation/validate-open-account.js +0 -18
  148. package/dist/cjs/common-utils/utils/validation/validate-open-account.spec.js +0 -56
  149. package/dist/cjs/common-utils/utils/validation/validate-quota.js +0 -23
  150. package/dist/cjs/common-utils/utils/validation/validate-quota.spec.js +0 -88
  151. package/dist/cjs/common-utils/utils/validation/validate-token-to-obtain.js +0 -18
  152. package/dist/cjs/common-utils/utils/validation/validate-token-to-obtain.spec.js +0 -36
  153. package/dist/cjs/common-utils/utils/validation/validation-types.js +0 -1
  154. package/dist/esm/common-utils/utils/strategies/strategy-info/get-cm-you-can-earn.spec.js +0 -264
  155. package/dist/esm/common-utils/utils/validation/index.js +0 -12
  156. package/dist/esm/common-utils/utils/validation/is-zero-balance.js +0 -6
  157. package/dist/esm/common-utils/utils/validation/validate-balance.js +0 -21
  158. package/dist/esm/common-utils/utils/validation/validate-balance.spec.js +0 -54
  159. package/dist/esm/common-utils/utils/validation/validate-balances.js +0 -16
  160. package/dist/esm/common-utils/utils/validation/validate-balances.spec.js +0 -45
  161. package/dist/esm/common-utils/utils/validation/validate-credit-manager.js +0 -7
  162. package/dist/esm/common-utils/utils/validation/validate-credit-manager.spec.js +0 -36
  163. package/dist/esm/common-utils/utils/validation/validate-hf.js +0 -8
  164. package/dist/esm/common-utils/utils/validation/validate-hf.spec.js +0 -26
  165. package/dist/esm/common-utils/utils/validation/validate-open-account-pool-quota-status.js +0 -13
  166. package/dist/esm/common-utils/utils/validation/validate-open-account-pool-quota-status.spec.js +0 -29
  167. package/dist/esm/common-utils/utils/validation/validate-open-account-pool-status.js +0 -36
  168. package/dist/esm/common-utils/utils/validation/validate-open-account-pool-status.spec.js +0 -98
  169. package/dist/esm/common-utils/utils/validation/validate-open-account.js +0 -17
  170. package/dist/esm/common-utils/utils/validation/validate-open-account.spec.js +0 -56
  171. package/dist/esm/common-utils/utils/validation/validate-quota.js +0 -22
  172. package/dist/esm/common-utils/utils/validation/validate-quota.spec.js +0 -88
  173. package/dist/esm/common-utils/utils/validation/validate-token-to-obtain.js +0 -17
  174. package/dist/esm/common-utils/utils/validation/validate-token-to-obtain.spec.js +0 -36
  175. package/dist/esm/common-utils/utils/validation/validation-types.js +0 -1
  176. package/dist/types/common-utils/utils/strategies/strategy-info/get-cm-you-can-earn.spec.d.ts +0 -1
  177. package/dist/types/common-utils/utils/validation/index.d.ts +0 -12
  178. package/dist/types/common-utils/utils/validation/is-zero-balance.d.ts +0 -4
  179. package/dist/types/common-utils/utils/validation/validate-balance.d.ts +0 -25
  180. package/dist/types/common-utils/utils/validation/validate-balance.spec.d.ts +0 -1
  181. package/dist/types/common-utils/utils/validation/validate-balances.d.ts +0 -13
  182. package/dist/types/common-utils/utils/validation/validate-balances.spec.d.ts +0 -1
  183. package/dist/types/common-utils/utils/validation/validate-credit-manager.d.ts +0 -13
  184. package/dist/types/common-utils/utils/validation/validate-credit-manager.spec.d.ts +0 -1
  185. package/dist/types/common-utils/utils/validation/validate-hf.d.ts +0 -12
  186. package/dist/types/common-utils/utils/validation/validate-hf.spec.d.ts +0 -1
  187. package/dist/types/common-utils/utils/validation/validate-open-account-pool-quota-status.d.ts +0 -10
  188. package/dist/types/common-utils/utils/validation/validate-open-account-pool-quota-status.spec.d.ts +0 -1
  189. package/dist/types/common-utils/utils/validation/validate-open-account-pool-status.d.ts +0 -26
  190. package/dist/types/common-utils/utils/validation/validate-open-account-pool-status.spec.d.ts +0 -1
  191. package/dist/types/common-utils/utils/validation/validate-open-account.d.ts +0 -25
  192. package/dist/types/common-utils/utils/validation/validate-open-account.spec.d.ts +0 -1
  193. package/dist/types/common-utils/utils/validation/validate-quota.d.ts +0 -24
  194. package/dist/types/common-utils/utils/validation/validate-quota.spec.d.ts +0 -1
  195. package/dist/types/common-utils/utils/validation/validate-token-to-obtain.d.ts +0 -17
  196. package/dist/types/common-utils/utils/validation/validate-token-to-obtain.spec.d.ts +0 -1
  197. package/dist/types/common-utils/utils/validation/validation-types.d.ts +0 -10
@@ -1,36 +0,0 @@
1
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_common_utils_utils_validation_validate_credit_manager = require("./validate-credit-manager.js");
3
- const require_common_utils_test_utils_index = require("../../test-utils/index.js");
4
- let vitest = require("vitest");
5
- //#region src/common-utils/utils/validation/validate-credit-manager.spec.ts
6
- const mockCreditManager = require_common_utils_test_utils_index.buildCreditManager({ isPaused: false });
7
- (0, vitest.describe)("validateCreditManager", () => {
8
- (0, vitest.it)("returns null when credit manager is not paused", () => {
9
- const result = require_common_utils_utils_validation_validate_credit_manager.validateCreditManager({
10
- creditManager: mockCreditManager,
11
- allowPausedCm: false
12
- });
13
- (0, vitest.expect)(result).toBeNull();
14
- });
15
- (0, vitest.it)("returns null when credit manager is paused but allowed", () => {
16
- const result = require_common_utils_utils_validation_validate_credit_manager.validateCreditManager({
17
- creditManager: require_common_utils_test_utils_index.buildCreditManager({
18
- ...mockCreditManager,
19
- isPaused: true
20
- }),
21
- allowPausedCm: true
22
- });
23
- (0, vitest.expect)(result).toBeNull();
24
- });
25
- (0, vitest.it)("returns error when credit manager is paused and not allowed", () => {
26
- const result = require_common_utils_utils_validation_validate_credit_manager.validateCreditManager({
27
- creditManager: require_common_utils_test_utils_index.buildCreditManager({
28
- ...mockCreditManager,
29
- isPaused: true
30
- }),
31
- allowPausedCm: false
32
- });
33
- (0, vitest.expect)(result).toEqual({ message: "paused" });
34
- });
35
- });
36
- //#endregion
@@ -1,10 +0,0 @@
1
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- //#region src/common-utils/utils/validation/validate-hf.ts
3
- const MIN_HF_LIMITED = 10100n;
4
- function validateHF({ hf, hfCheck = true }) {
5
- if (hfCheck && (hf === void 0 || hf <= 10100n)) return { message: "hfTooLow" };
6
- return null;
7
- }
8
- //#endregion
9
- exports.MIN_HF_LIMITED = MIN_HF_LIMITED;
10
- exports.validateHF = validateHF;
@@ -1,26 +0,0 @@
1
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_common_utils_utils_validation_validate_hf = require("./validate-hf.js");
3
- let vitest = require("vitest");
4
- //#region src/common-utils/utils/validation/validate-hf.spec.ts
5
- (0, vitest.describe)("validateHF", () => {
6
- (0, vitest.it)("returns null when HF is above minimum", () => {
7
- const result = require_common_utils_utils_validation_validate_hf.validateHF({ hf: 15e3 });
8
- (0, vitest.expect)(result).toBeNull();
9
- });
10
- (0, vitest.it)("returns error when HF is undefined", () => {
11
- const result = require_common_utils_utils_validation_validate_hf.validateHF({ hf: void 0 });
12
- (0, vitest.expect)(result).toEqual({ message: "hfTooLow" });
13
- });
14
- (0, vitest.it)("returns error when HF is too low", () => {
15
- const result = require_common_utils_utils_validation_validate_hf.validateHF({ hf: Number(require_common_utils_utils_validation_validate_hf.MIN_HF_LIMITED) });
16
- (0, vitest.expect)(result).toEqual({ message: "hfTooLow" });
17
- });
18
- (0, vitest.it)("returns null when hfCheck is false and HF is too low", () => {
19
- const result = require_common_utils_utils_validation_validate_hf.validateHF({
20
- hf: Number(require_common_utils_utils_validation_validate_hf.MIN_HF_LIMITED - 1n),
21
- hfCheck: false
22
- });
23
- (0, vitest.expect)(result).toBeNull();
24
- });
25
- });
26
- //#endregion
@@ -1,14 +0,0 @@
1
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- //#region src/common-utils/utils/validation/validate-open-account-pool-quota-status.ts
3
- function validateOpenAccountPoolQuotaStatus(targetToken, creditManager, amountToBorrow) {
4
- const quota = creditManager.quotas[targetToken];
5
- if (quota) {
6
- if ((quota.isActive ? quota.limit : 0n) - quota.totalQuoted < amountToBorrow) return {
7
- message: "insufficientQuota",
8
- token: targetToken
9
- };
10
- }
11
- return null;
12
- }
13
- //#endregion
14
- exports.validateOpenAccountPoolQuotaStatus = validateOpenAccountPoolQuotaStatus;
@@ -1,29 +0,0 @@
1
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_common_utils_utils_validation_validate_open_account_pool_quota_status = require("./validate-open-account-pool-quota-status.js");
3
- const require_common_utils_test_utils_index = require("../../test-utils/index.js");
4
- let vitest = require("vitest");
5
- //#region src/common-utils/utils/validation/validate-open-account-pool-quota-status.spec.ts
6
- const mockCreditManager = require_common_utils_test_utils_index.buildCreditManager({ quotas: { [require_common_utils_test_utils_index.mockToken1]: require_common_utils_test_utils_index.buildQuota({
7
- token: require_common_utils_test_utils_index.mockToken1,
8
- limit: 1000000n,
9
- totalQuoted: 500000n,
10
- rate: 0n
11
- }) } });
12
- (0, vitest.describe)("validateOpenAccountPoolQuotaStatus", () => {
13
- (0, vitest.it)("returns null when quota is sufficient", () => {
14
- const result = require_common_utils_utils_validation_validate_open_account_pool_quota_status.validateOpenAccountPoolQuotaStatus(require_common_utils_test_utils_index.mockToken1, mockCreditManager, 100000n);
15
- (0, vitest.expect)(result).toBeNull();
16
- });
17
- (0, vitest.it)("returns error when quota is insufficient", () => {
18
- const result = require_common_utils_utils_validation_validate_open_account_pool_quota_status.validateOpenAccountPoolQuotaStatus(require_common_utils_test_utils_index.mockToken1, mockCreditManager, 600000n);
19
- (0, vitest.expect)(result).toEqual({
20
- message: "insufficientQuota",
21
- token: require_common_utils_test_utils_index.mockToken1
22
- });
23
- });
24
- (0, vitest.it)("returns null when token has no quota", () => {
25
- const result = require_common_utils_utils_validation_validate_open_account_pool_quota_status.validateOpenAccountPoolQuotaStatus("0x9999999999999999999999999999999999999999", mockCreditManager, 100000n);
26
- (0, vitest.expect)(result).toBeNull();
27
- });
28
- });
29
- //#endregion
@@ -1,37 +0,0 @@
1
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_onchain_utils_bigint_math = require("../../../onchain/utils/bigint-math.js");
3
- const require_common_utils_utils_validation_validate_open_account_pool_quota_status = require("./validate-open-account-pool-quota-status.js");
4
- //#region src/common-utils/utils/validation/validate-open-account-pool-status.ts
5
- function validateOpenAccountPoolStatus(props) {
6
- const { debt, creditManager, pool, targetToken } = props;
7
- const effectiveDebt = require_onchain_utils_bigint_math.BigIntMath.max(creditManager.minDebt, debt);
8
- const hasDebtLimit = creditManager.totalDebtLimit >= 0n;
9
- const debtLimitLeft = require_onchain_utils_bigint_math.BigIntMath.max(creditManager.totalDebtLimit - creditManager.totalDebt, 0n);
10
- const { totalDebtLimit = 0n, totalBorrowed = 0n } = pool || {};
11
- const hasPoolDebtLimit = totalDebtLimit > 0n;
12
- const poolDebtLimitLeft = totalDebtLimit - totalBorrowed;
13
- const canOpenMinDebt = creditManager.minDebt <= debtLimitLeft && creditManager.minDebt <= poolDebtLimitLeft && creditManager.minDebt <= creditManager.availableToBorrow;
14
- const minPositionSize = require_onchain_utils_bigint_math.BigIntMath.min(require_onchain_utils_bigint_math.BigIntMath.min(debtLimitLeft, poolDebtLimitLeft), creditManager.availableToBorrow);
15
- if (hasDebtLimit && effectiveDebt > debtLimitLeft) return {
16
- message: "insufficientDebtLimit",
17
- amount: debtLimitLeft,
18
- solutionAmount: canOpenMinDebt ? minPositionSize : void 0
19
- };
20
- if (hasPoolDebtLimit && effectiveDebt > poolDebtLimitLeft) return {
21
- message: "insufficientPoolDebtLimit",
22
- amount: poolDebtLimitLeft,
23
- solutionAmount: canOpenMinDebt ? minPositionSize : void 0
24
- };
25
- if (effectiveDebt > creditManager.availableToBorrow) return {
26
- message: "insufficientPoolLiquidity",
27
- amount: creditManager.availableToBorrow,
28
- solutionAmount: canOpenMinDebt ? minPositionSize : void 0
29
- };
30
- if (targetToken !== null) {
31
- const quotaError = require_common_utils_utils_validation_validate_open_account_pool_quota_status.validateOpenAccountPoolQuotaStatus(targetToken, creditManager, effectiveDebt);
32
- if (quotaError) return quotaError;
33
- }
34
- return null;
35
- }
36
- //#endregion
37
- exports.validateOpenAccountPoolStatus = validateOpenAccountPoolStatus;
@@ -1,98 +0,0 @@
1
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_common_utils_utils_validation_validate_open_account_pool_status = require("./validate-open-account-pool-status.js");
3
- const require_common_utils_test_utils_index = require("../../test-utils/index.js");
4
- let vitest = require("vitest");
5
- //#region src/common-utils/utils/validation/validate-open-account-pool-status.spec.ts
6
- const mockCreditManager = require_common_utils_test_utils_index.buildCreditManager({
7
- minDebt: 1000n,
8
- maxDebt: 1000000n,
9
- totalDebtLimit: 5000000n,
10
- totalDebt: 2000000n,
11
- availableToBorrow: 3000000n,
12
- quotas: { [require_common_utils_test_utils_index.mockToken1]: require_common_utils_test_utils_index.buildQuota({
13
- token: require_common_utils_test_utils_index.mockToken1,
14
- limit: 1000000n,
15
- totalQuoted: 500000n,
16
- rate: 0n
17
- }) }
18
- });
19
- const mockPool = require_common_utils_test_utils_index.buildPool({
20
- totalDebtLimit: 10000000n,
21
- totalBorrowed: 5000000n
22
- });
23
- (0, vitest.describe)("validateOpenAccountPoolStatus", () => {
24
- (0, vitest.it)("returns null when all conditions are met", () => {
25
- const result = require_common_utils_utils_validation_validate_open_account_pool_status.validateOpenAccountPoolStatus({
26
- debt: 50000n,
27
- creditManager: mockCreditManager,
28
- pool: mockPool,
29
- targetToken: require_common_utils_test_utils_index.mockToken1
30
- });
31
- (0, vitest.expect)(result).toBeNull();
32
- });
33
- (0, vitest.it)("returns error when debt exceeds debt limit", () => {
34
- const result = require_common_utils_utils_validation_validate_open_account_pool_status.validateOpenAccountPoolStatus({
35
- debt: 4000000n,
36
- creditManager: mockCreditManager,
37
- pool: mockPool,
38
- targetToken: require_common_utils_test_utils_index.mockToken1
39
- });
40
- (0, vitest.expect)(result).toEqual({
41
- message: "insufficientDebtLimit",
42
- amount: 3000000n,
43
- solutionAmount: 3000000n
44
- });
45
- });
46
- (0, vitest.it)("returns error when debt exceeds pool debt limit", () => {
47
- const result = require_common_utils_utils_validation_validate_open_account_pool_status.validateOpenAccountPoolStatus({
48
- debt: 6000000n,
49
- creditManager: require_common_utils_test_utils_index.buildCreditManager({
50
- ...mockCreditManager,
51
- totalDebtLimit: -1n
52
- }),
53
- pool: mockPool,
54
- targetToken: require_common_utils_test_utils_index.mockToken1
55
- });
56
- (0, vitest.expect)(result).toEqual({
57
- message: "insufficientPoolDebtLimit",
58
- amount: 5000000n
59
- });
60
- });
61
- (0, vitest.it)("returns error when debt exceeds available liquidity", () => {
62
- const result = require_common_utils_utils_validation_validate_open_account_pool_status.validateOpenAccountPoolStatus({
63
- debt: 4000000n,
64
- creditManager: require_common_utils_test_utils_index.buildCreditManager({
65
- ...mockCreditManager,
66
- totalDebtLimit: -1n
67
- }),
68
- pool: require_common_utils_test_utils_index.buildPool({ totalDebtLimit: -1n }),
69
- targetToken: require_common_utils_test_utils_index.mockToken1
70
- });
71
- (0, vitest.expect)(result).toEqual({
72
- message: "insufficientPoolLiquidity",
73
- amount: 3000000n
74
- });
75
- });
76
- (0, vitest.it)("returns error when quota is insufficient", () => {
77
- const result = require_common_utils_utils_validation_validate_open_account_pool_status.validateOpenAccountPoolStatus({
78
- debt: 600000n,
79
- creditManager: mockCreditManager,
80
- pool: mockPool,
81
- targetToken: require_common_utils_test_utils_index.mockToken1
82
- });
83
- (0, vitest.expect)(result).toEqual({
84
- message: "insufficientQuota",
85
- token: require_common_utils_test_utils_index.mockToken1
86
- });
87
- });
88
- (0, vitest.it)("returns null when targetToken is null", () => {
89
- const result = require_common_utils_utils_validation_validate_open_account_pool_status.validateOpenAccountPoolStatus({
90
- debt: 50000n,
91
- creditManager: mockCreditManager,
92
- pool: mockPool,
93
- targetToken: null
94
- });
95
- (0, vitest.expect)(result).toBeNull();
96
- });
97
- });
98
- //#endregion
@@ -1,18 +0,0 @@
1
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_common_utils_utils_validation_validate_quota = require("./validate-quota.js");
3
- //#region src/common-utils/utils/validation/validate-open-account.ts
4
- function validateOpenAccount(props) {
5
- const { debt, creditManager, loading } = props;
6
- if (loading) return { message: "loading" };
7
- if (debt < creditManager.minDebt) return {
8
- message: "amountLessMin",
9
- amount: creditManager.minDebt
10
- };
11
- if (debt > creditManager.maxDebt) return {
12
- message: "debtGreaterMax",
13
- amount: creditManager.maxDebt
14
- };
15
- return require_common_utils_utils_validation_validate_quota.validateQuota(props);
16
- }
17
- //#endregion
18
- exports.validateOpenAccount = validateOpenAccount;
@@ -1,56 +0,0 @@
1
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_common_utils_utils_validation_validate_open_account = require("./validate-open-account.js");
3
- const require_common_utils_test_utils_index = require("../../test-utils/index.js");
4
- let vitest = require("vitest");
5
- //#region src/common-utils/utils/validation/validate-open-account.spec.ts
6
- const mockCreditManager = require_common_utils_test_utils_index.buildCreditManager({
7
- minDebt: 1000n,
8
- maxDebt: 1000000n,
9
- underlyingToken: require_common_utils_test_utils_index.mockUnderlyingToken
10
- });
11
- (0, vitest.describe)("validateOpenAccount", () => {
12
- (0, vitest.it)("returns null when all conditions are met", () => {
13
- const result = require_common_utils_utils_validation_validate_open_account.validateOpenAccount({
14
- debt: 50000n,
15
- creditManager: mockCreditManager,
16
- desiredQuota: {},
17
- quotaUpdate: []
18
- });
19
- (0, vitest.expect)(result).toBeNull();
20
- });
21
- (0, vitest.it)("returns loading error when loading is true", () => {
22
- const result = require_common_utils_utils_validation_validate_open_account.validateOpenAccount({
23
- debt: 50000n,
24
- creditManager: mockCreditManager,
25
- desiredQuota: {},
26
- quotaUpdate: [],
27
- loading: true
28
- });
29
- (0, vitest.expect)(result).toEqual({ message: "loading" });
30
- });
31
- (0, vitest.it)("returns error when debt is less than min", () => {
32
- const result = require_common_utils_utils_validation_validate_open_account.validateOpenAccount({
33
- debt: 500n,
34
- creditManager: mockCreditManager,
35
- desiredQuota: {},
36
- quotaUpdate: []
37
- });
38
- (0, vitest.expect)(result).toEqual({
39
- message: "amountLessMin",
40
- amount: 1000n
41
- });
42
- });
43
- (0, vitest.it)("returns error when debt is greater than max", () => {
44
- const result = require_common_utils_utils_validation_validate_open_account.validateOpenAccount({
45
- debt: 2000000n,
46
- creditManager: mockCreditManager,
47
- desiredQuota: {},
48
- quotaUpdate: []
49
- });
50
- (0, vitest.expect)(result).toEqual({
51
- message: "debtGreaterMax",
52
- amount: 1000000n
53
- });
54
- });
55
- });
56
- //#endregion
@@ -1,23 +0,0 @@
1
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- //#region src/common-utils/utils/validation/validate-quota.ts
3
- function validateQuota(props) {
4
- const desiredQuotasList = Object.values(props.desiredQuota).filter((a) => a.balance > 0n);
5
- if (desiredQuotasList.length > props.creditManager.maxEnabledTokensLength) return {
6
- message: "maxQuotasLengthReached",
7
- count: desiredQuotasList.length,
8
- max: props.creditManager.maxEnabledTokensLength
9
- };
10
- if (props.quotaUpdate.length === 0 && props.throwOnZeroQuotaUpdate) return { message: "quotaShouldBeUpdated" };
11
- for (const { token, balance: updateBy } of props.quotaUpdate) {
12
- const quota = props.creditManager.quotas[token];
13
- if (updateBy > 0 && quota) {
14
- if ((quota.isActive ? quota.limit : 0n) - quota.totalQuoted < updateBy) return {
15
- message: "insufficientQuota",
16
- token
17
- };
18
- }
19
- }
20
- return null;
21
- }
22
- //#endregion
23
- exports.validateQuota = validateQuota;
@@ -1,88 +0,0 @@
1
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_common_utils_utils_validation_validate_quota = require("./validate-quota.js");
3
- const require_common_utils_test_utils_index = require("../../test-utils/index.js");
4
- let vitest = require("vitest");
5
- //#region src/common-utils/utils/validation/validate-quota.spec.ts
6
- const mockCreditManager = require_common_utils_test_utils_index.buildCreditManager({
7
- minDebt: 1000n,
8
- maxDebt: 1000000n,
9
- totalDebtLimit: 5000000n,
10
- totalDebt: 2000000n,
11
- availableToBorrow: 3000000n,
12
- quotas: {
13
- [require_common_utils_test_utils_index.mockToken1]: require_common_utils_test_utils_index.buildQuota({
14
- token: require_common_utils_test_utils_index.mockToken1,
15
- limit: 1000000n,
16
- totalQuoted: 500000n,
17
- rate: 0n
18
- }),
19
- [require_common_utils_test_utils_index.mockToken2]: require_common_utils_test_utils_index.buildQuota({
20
- token: require_common_utils_test_utils_index.mockToken2,
21
- limit: 2000000n,
22
- totalQuoted: 1000000n,
23
- rate: 0n
24
- })
25
- },
26
- maxEnabledTokensLength: 2
27
- });
28
- (0, vitest.describe)("validateQuota", () => {
29
- (0, vitest.it)("returns null when all conditions are met", () => {
30
- const result = require_common_utils_utils_validation_validate_quota.validateQuota({
31
- desiredQuota: {},
32
- quotaUpdate: [],
33
- creditManager: mockCreditManager,
34
- throwOnZeroQuotaUpdate: false
35
- });
36
- (0, vitest.expect)(result).toBeNull();
37
- });
38
- (0, vitest.it)("returns error when max quotas length is reached", () => {
39
- const result = require_common_utils_utils_validation_validate_quota.validateQuota({
40
- desiredQuota: {
41
- [require_common_utils_test_utils_index.mockToken1]: {
42
- token: require_common_utils_test_utils_index.mockToken1,
43
- balance: 1000n
44
- },
45
- [require_common_utils_test_utils_index.mockToken2]: {
46
- token: require_common_utils_test_utils_index.mockToken2,
47
- balance: 1000n
48
- }
49
- },
50
- quotaUpdate: [],
51
- creditManager: require_common_utils_test_utils_index.buildCreditManager({
52
- ...mockCreditManager,
53
- maxEnabledTokensLength: 1
54
- }),
55
- throwOnZeroQuotaUpdate: false
56
- });
57
- (0, vitest.expect)(result).toEqual({
58
- message: "maxQuotasLengthReached",
59
- count: 2,
60
- max: 1
61
- });
62
- });
63
- (0, vitest.it)("returns error when quota update is empty and throwOnZeroQuotaUpdate is true", () => {
64
- const result = require_common_utils_utils_validation_validate_quota.validateQuota({
65
- desiredQuota: {},
66
- quotaUpdate: [],
67
- creditManager: mockCreditManager,
68
- throwOnZeroQuotaUpdate: true
69
- });
70
- (0, vitest.expect)(result).toEqual({ message: "quotaShouldBeUpdated" });
71
- });
72
- (0, vitest.it)("returns error when quota is insufficient", () => {
73
- const result = require_common_utils_utils_validation_validate_quota.validateQuota({
74
- desiredQuota: {},
75
- quotaUpdate: [{
76
- token: require_common_utils_test_utils_index.mockToken1,
77
- balance: 600000n
78
- }],
79
- creditManager: mockCreditManager,
80
- throwOnZeroQuotaUpdate: false
81
- });
82
- (0, vitest.expect)(result).toEqual({
83
- message: "insufficientQuota",
84
- token: require_common_utils_test_utils_index.mockToken1
85
- });
86
- });
87
- });
88
- //#endregion
@@ -1,18 +0,0 @@
1
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- //#region src/common-utils/utils/validation/validate-token-to-obtain.ts
3
- function validateTokenToObtain({ creditManager, targetToken }) {
4
- if (Array.isArray(targetToken)) {
5
- for (const asset of targetToken) if (creditManager.forbiddenTokens[asset.token]) return {
6
- message: "tokenIsForbidden",
7
- token: asset.token
8
- };
9
- return null;
10
- }
11
- if (targetToken !== null && creditManager.forbiddenTokens[targetToken]) return {
12
- message: "tokenIsForbidden",
13
- token: targetToken
14
- };
15
- return null;
16
- }
17
- //#endregion
18
- exports.validateTokenToObtain = validateTokenToObtain;
@@ -1,36 +0,0 @@
1
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_common_utils_utils_validation_validate_token_to_obtain = require("./validate-token-to-obtain.js");
3
- const require_common_utils_test_utils_index = require("../../test-utils/index.js");
4
- let vitest = require("vitest");
5
- //#region src/common-utils/utils/validation/validate-token-to-obtain.spec.ts
6
- const mockCreditManager = require_common_utils_test_utils_index.buildCreditManager({ forbiddenTokens: {} });
7
- (0, vitest.describe)("validateTokenToObtain", () => {
8
- (0, vitest.it)("returns null when targetToken is null", () => {
9
- const result = require_common_utils_utils_validation_validate_token_to_obtain.validateTokenToObtain({
10
- targetToken: null,
11
- creditManager: mockCreditManager
12
- });
13
- (0, vitest.expect)(result).toBeNull();
14
- });
15
- (0, vitest.it)("returns null when targetToken is not forbidden", () => {
16
- const result = require_common_utils_utils_validation_validate_token_to_obtain.validateTokenToObtain({
17
- targetToken: require_common_utils_test_utils_index.mockToken1,
18
- creditManager: mockCreditManager
19
- });
20
- (0, vitest.expect)(result).toBeNull();
21
- });
22
- (0, vitest.it)("returns error when targetToken is forbidden", () => {
23
- const result = require_common_utils_utils_validation_validate_token_to_obtain.validateTokenToObtain({
24
- targetToken: require_common_utils_test_utils_index.mockToken1,
25
- creditManager: require_common_utils_test_utils_index.buildCreditManager({
26
- ...mockCreditManager,
27
- forbiddenTokens: { [require_common_utils_test_utils_index.mockToken1]: true }
28
- })
29
- });
30
- (0, vitest.expect)(result).toEqual({
31
- message: "tokenIsForbidden",
32
- token: require_common_utils_test_utils_index.mockToken1
33
- });
34
- });
35
- });
36
- //#endregion
@@ -1 +0,0 @@
1
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });