@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.
- package/dist/cjs/common-utils/test-utils/index.js +139 -0
- package/dist/cjs/common-utils/utils/apy/calculate-borrow-rate-from-utilization.js +59 -0
- package/dist/cjs/common-utils/utils/apy/calculate-borrow-rate-from-utilization.spec.js +32 -0
- package/dist/cjs/common-utils/utils/apy/calculate-earnings.js +59 -0
- package/dist/cjs/common-utils/utils/apy/calculate-earnings.spec.js +62 -0
- package/dist/cjs/common-utils/utils/apy/calculate-safe-borrow-rate.js +55 -0
- package/dist/cjs/common-utils/utils/apy/calculate-safe-borrow-rate.spec.js +39 -0
- package/dist/cjs/common-utils/utils/apy/get-safe-base-borrow-rate.js +38 -0
- package/dist/cjs/common-utils/utils/constants.js +34 -0
- package/dist/cjs/common-utils/utils/strategies/assets/assets.js +30 -0
- package/dist/cjs/common-utils/utils/strategies/credit-managers/get-cm-allowed-collaterals.js +62 -0
- package/dist/cjs/common-utils/utils/strategies/credit-managers/get-cm-allowed-collaterals.spec.js +109 -0
- package/dist/cjs/common-utils/utils/strategies/credit-managers/get-wallet-balances-allowed-on-cm.js +75 -0
- package/dist/cjs/common-utils/utils/strategies/credit-managers/get-wallet-balances-allowed-on-cm.spec.js +93 -0
- package/dist/cjs/common-utils/utils/strategies/leverage/calculate-max-strategy-debt.js +63 -0
- package/dist/cjs/common-utils/utils/strategies/leverage/calculate-max-strategy-debt.spec.js +330 -0
- package/dist/cjs/common-utils/utils/strategies/leverage/get-collateral-by-debt.js +34 -0
- package/dist/cjs/common-utils/utils/strategies/leverage/get-collateral-by-debt.spec.js +30 -0
- package/dist/cjs/common-utils/utils/strategies/leverage/get-recommended-debt.js +85 -0
- package/dist/cjs/common-utils/utils/strategies/leverage/get-recommended-debt.spec.js +227 -0
- package/dist/cjs/common-utils/utils/strategies/leverage/get-recommended-leverage-factor.js +33 -0
- package/dist/cjs/common-utils/utils/strategies/leverage/get-recommended-leverage-factor.spec.js +23 -0
- package/dist/cjs/common-utils/utils/strategies/leverage/max-leverage.js +2 -2
- package/dist/cjs/common-utils/utils/strategies/strategy-info/calculate-total-apy.js +112 -0
- package/dist/cjs/common-utils/utils/strategies/strategy-info/calculate-total-apy.spec.js +183 -0
- package/dist/cjs/common-utils/utils/strategies/strategy-info/calculate-total-points.js +74 -0
- package/dist/cjs/common-utils/utils/strategies/strategy-info/calculate-total-points.spec.js +131 -0
- package/dist/cjs/common-utils/utils/strategies/strategy-info/get-cm-you-can-earn.js +410 -0
- package/dist/cjs/common-utils/utils/strategies/strategy-info/get-cm-you-can-earn.spec.js +274 -0
- package/dist/cjs/common-utils/utils/strategies/strategy-info/get-strategy-you-can-earn.js +108 -0
- package/dist/cjs/common-utils/utils/strategies/tokens/add-amount-in-target.js +41 -0
- package/dist/cjs/common-utils/utils/strategies/tokens/add-amount-in-target.spec.js +38 -0
- package/dist/cjs/common-utils/utils/strategies/tokens/get-chain-phantom-tokens.js +35 -0
- package/dist/cjs/common-utils/utils/strategies/tokens/get-list-with-amount-in-target.js +42 -0
- package/dist/cjs/common-utils/utils/strategies/tokens/get-list-with-amount-in-target.spec.js +32 -0
- package/dist/cjs/common-utils/utils/strategies/tokens/get-native-token-address.js +31 -0
- package/dist/cjs/common-utils/utils/strategies/tokens/is-apy-with-points-exception.js +36 -0
- package/dist/cjs/common-utils/utils/strategies/tokens/is-collateral-token.js +59 -0
- package/dist/cjs/common-utils/utils/strategies/tokens/is-collateral-token.spec.js +135 -0
- package/dist/cjs/common-utils/utils/strategies/tokens/is-obtainable-token.js +42 -0
- package/dist/cjs/common-utils/utils/strategies/tokens/is-obtainable-token.spec.js +162 -0
- package/dist/cjs/common-utils/utils/strategies/tokens/is-valid-extra-collateral-token.js +51 -0
- package/dist/cjs/common-utils/utils/strategies/tokens/wrap-token-address.js +33 -0
- package/dist/cjs/common-utils/utils/strategies/tokens/wrap-token-address.spec.js +13 -0
- package/dist/cjs/common-utils/utils/strategies/types/strategy-data.js +16 -0
- package/dist/cjs/common-utils/utils/strategies/types/strategy-earnings.js +16 -0
- package/dist/cjs/common-utils/utils/validation/is-zero-balance.js +30 -0
- package/dist/cjs/common-utils/utils/validation/validate-balance.js +47 -0
- package/dist/cjs/common-utils/utils/validation/validate-balance.spec.js +52 -0
- package/dist/cjs/common-utils/utils/validation/validate-balances.js +44 -0
- package/dist/cjs/common-utils/utils/validation/validate-balances.spec.js +37 -0
- package/dist/cjs/common-utils/utils/validation/validate-credit-manager.js +34 -0
- package/dist/cjs/common-utils/utils/validation/validate-credit-manager.spec.js +36 -0
- package/dist/cjs/common-utils/utils/validation/validate-hf.js +38 -0
- package/dist/cjs/common-utils/utils/validation/validate-hf.spec.js +24 -0
- package/dist/cjs/common-utils/utils/validation/validate-open-account-pool-quota-status.js +37 -0
- package/dist/cjs/common-utils/utils/validation/validate-open-account-pool-quota-status.spec.js +43 -0
- package/dist/cjs/common-utils/utils/validation/validate-open-account-pool-status.js +76 -0
- package/dist/cjs/common-utils/utils/validation/validate-open-account-pool-status.spec.js +98 -0
- package/dist/cjs/common-utils/utils/validation/validate-open-account.js +41 -0
- package/dist/cjs/common-utils/utils/validation/validate-open-account.spec.js +54 -0
- package/dist/cjs/common-utils/utils/validation/validate-quota.js +49 -0
- package/dist/cjs/common-utils/utils/validation/validate-quota.spec.js +79 -0
- package/dist/cjs/common-utils/utils/validation/validate-token-to-obtain.js +42 -0
- package/dist/cjs/common-utils/utils/validation/validate-token-to-obtain.spec.js +35 -0
- package/dist/cjs/common-utils/utils/validation/validation-types.js +16 -0
- package/dist/cjs/sdk/constants/math.js +3 -0
- package/dist/esm/common-utils/test-utils/index.js +104 -0
- package/dist/esm/common-utils/utils/apy/calculate-borrow-rate-from-utilization.js +35 -0
- package/dist/esm/common-utils/utils/apy/calculate-borrow-rate-from-utilization.spec.js +31 -0
- package/dist/esm/common-utils/utils/apy/calculate-earnings.js +35 -0
- package/dist/esm/common-utils/utils/apy/calculate-earnings.spec.js +65 -0
- package/dist/esm/common-utils/utils/apy/calculate-safe-borrow-rate.js +34 -0
- package/dist/esm/common-utils/utils/apy/calculate-safe-borrow-rate.spec.js +38 -0
- package/dist/esm/common-utils/utils/apy/get-safe-base-borrow-rate.js +16 -0
- package/dist/esm/common-utils/utils/constants.js +8 -0
- package/dist/esm/common-utils/utils/strategies/assets/assets.js +6 -0
- package/dist/esm/common-utils/utils/strategies/credit-managers/get-cm-allowed-collaterals.js +38 -0
- package/dist/esm/common-utils/utils/strategies/credit-managers/get-cm-allowed-collaterals.spec.js +115 -0
- package/dist/esm/common-utils/utils/strategies/credit-managers/get-wallet-balances-allowed-on-cm.js +51 -0
- package/dist/esm/common-utils/utils/strategies/credit-managers/get-wallet-balances-allowed-on-cm.spec.js +96 -0
- package/dist/esm/common-utils/utils/strategies/leverage/calculate-max-strategy-debt.js +42 -0
- package/dist/esm/common-utils/utils/strategies/leverage/calculate-max-strategy-debt.spec.js +332 -0
- package/dist/esm/common-utils/utils/strategies/leverage/get-collateral-by-debt.js +10 -0
- package/dist/esm/common-utils/utils/strategies/leverage/get-collateral-by-debt.spec.js +29 -0
- package/dist/esm/common-utils/utils/strategies/leverage/get-recommended-debt.js +61 -0
- package/dist/esm/common-utils/utils/strategies/leverage/get-recommended-debt.spec.js +226 -0
- package/dist/esm/common-utils/utils/strategies/leverage/get-recommended-leverage-factor.js +9 -0
- package/dist/esm/common-utils/utils/strategies/leverage/get-recommended-leverage-factor.spec.js +22 -0
- package/dist/esm/common-utils/utils/strategies/leverage/max-leverage.js +2 -2
- package/dist/esm/common-utils/utils/strategies/strategy-info/calculate-total-apy.js +88 -0
- package/dist/esm/common-utils/utils/strategies/strategy-info/calculate-total-apy.spec.js +187 -0
- package/dist/esm/common-utils/utils/strategies/strategy-info/calculate-total-points.js +54 -0
- package/dist/esm/common-utils/utils/strategies/strategy-info/calculate-total-points.spec.js +139 -0
- package/dist/esm/common-utils/utils/strategies/strategy-info/get-cm-you-can-earn.js +389 -0
- package/dist/esm/common-utils/utils/strategies/strategy-info/get-cm-you-can-earn.spec.js +278 -0
- package/dist/esm/common-utils/utils/strategies/strategy-info/get-strategy-you-can-earn.js +84 -0
- package/dist/esm/common-utils/utils/strategies/tokens/add-amount-in-target.js +17 -0
- package/dist/esm/common-utils/utils/strategies/tokens/add-amount-in-target.spec.js +41 -0
- package/dist/esm/common-utils/utils/strategies/tokens/get-chain-phantom-tokens.js +11 -0
- package/dist/esm/common-utils/utils/strategies/tokens/get-list-with-amount-in-target.js +18 -0
- package/dist/esm/common-utils/utils/strategies/tokens/get-list-with-amount-in-target.spec.js +36 -0
- package/dist/esm/common-utils/utils/strategies/tokens/get-native-token-address.js +7 -0
- package/dist/esm/common-utils/utils/strategies/tokens/is-apy-with-points-exception.js +11 -0
- package/dist/esm/common-utils/utils/strategies/tokens/is-collateral-token.js +35 -0
- package/dist/esm/common-utils/utils/strategies/tokens/is-collateral-token.spec.js +137 -0
- package/dist/esm/common-utils/utils/strategies/tokens/is-obtainable-token.js +18 -0
- package/dist/esm/common-utils/utils/strategies/tokens/is-obtainable-token.spec.js +161 -0
- package/dist/esm/common-utils/utils/strategies/tokens/is-valid-extra-collateral-token.js +27 -0
- package/dist/esm/common-utils/utils/strategies/tokens/wrap-token-address.js +9 -0
- package/dist/esm/common-utils/utils/strategies/tokens/wrap-token-address.spec.js +12 -0
- package/dist/esm/common-utils/utils/strategies/types/strategy-data.js +0 -0
- package/dist/esm/common-utils/utils/strategies/types/strategy-earnings.js +0 -0
- package/dist/esm/common-utils/utils/validation/is-zero-balance.js +6 -0
- package/dist/esm/common-utils/utils/validation/validate-balance.js +23 -0
- package/dist/esm/common-utils/utils/validation/validate-balance.spec.js +51 -0
- package/dist/esm/common-utils/utils/validation/validate-balances.js +20 -0
- package/dist/esm/common-utils/utils/validation/validate-balances.spec.js +36 -0
- package/dist/esm/common-utils/utils/validation/validate-credit-manager.js +10 -0
- package/dist/esm/common-utils/utils/validation/validate-credit-manager.spec.js +35 -0
- package/dist/esm/common-utils/utils/validation/validate-hf.js +13 -0
- package/dist/esm/common-utils/utils/validation/validate-hf.spec.js +23 -0
- package/dist/esm/common-utils/utils/validation/validate-open-account-pool-quota-status.js +13 -0
- package/dist/esm/common-utils/utils/validation/validate-open-account-pool-quota-status.spec.js +46 -0
- package/dist/esm/common-utils/utils/validation/validate-open-account-pool-status.js +54 -0
- package/dist/esm/common-utils/utils/validation/validate-open-account-pool-status.spec.js +102 -0
- package/dist/esm/common-utils/utils/validation/validate-open-account.js +17 -0
- package/dist/esm/common-utils/utils/validation/validate-open-account.spec.js +56 -0
- package/dist/esm/common-utils/utils/validation/validate-quota.js +25 -0
- package/dist/esm/common-utils/utils/validation/validate-quota.spec.js +83 -0
- package/dist/esm/common-utils/utils/validation/validate-token-to-obtain.js +18 -0
- package/dist/esm/common-utils/utils/validation/validate-token-to-obtain.spec.js +34 -0
- package/dist/esm/common-utils/utils/validation/validation-types.js +0 -0
- package/dist/esm/sdk/constants/math.js +2 -0
- package/dist/types/common-utils/test-utils/index.d.ts +16 -0
- package/dist/types/common-utils/utils/apy/calculate-borrow-rate-from-utilization.d.ts +2 -0
- package/dist/types/common-utils/utils/apy/calculate-borrow-rate-from-utilization.spec.d.ts +1 -0
- package/dist/types/common-utils/utils/apy/calculate-earnings.d.ts +16 -0
- package/dist/types/common-utils/utils/apy/calculate-earnings.spec.d.ts +1 -0
- package/dist/types/common-utils/utils/apy/calculate-safe-borrow-rate.d.ts +11 -0
- package/dist/types/common-utils/utils/apy/calculate-safe-borrow-rate.spec.d.ts +1 -0
- package/dist/types/common-utils/utils/apy/get-safe-base-borrow-rate.d.ts +4 -0
- package/dist/types/common-utils/utils/constants.d.ts +4 -0
- package/dist/types/common-utils/utils/strategies/assets/assets.d.ts +3 -0
- package/dist/types/common-utils/utils/strategies/credit-managers/get-cm-allowed-collaterals.d.ts +20 -0
- package/dist/types/common-utils/utils/strategies/credit-managers/get-cm-allowed-collaterals.spec.d.ts +1 -0
- package/dist/types/common-utils/utils/strategies/credit-managers/get-wallet-balances-allowed-on-cm.d.ts +13 -0
- package/dist/types/common-utils/utils/strategies/credit-managers/get-wallet-balances-allowed-on-cm.spec.d.ts +1 -0
- package/dist/types/common-utils/utils/strategies/leverage/calculate-max-strategy-debt.d.ts +11 -0
- package/dist/types/common-utils/utils/strategies/leverage/calculate-max-strategy-debt.spec.d.ts +1 -0
- package/dist/types/common-utils/utils/strategies/leverage/get-collateral-by-debt.d.ts +2 -0
- package/dist/types/common-utils/utils/strategies/leverage/get-collateral-by-debt.spec.d.ts +1 -0
- package/dist/types/common-utils/utils/strategies/leverage/get-recommended-debt.d.ts +21 -0
- package/dist/types/common-utils/utils/strategies/leverage/get-recommended-debt.spec.d.ts +1 -0
- package/dist/types/common-utils/utils/strategies/leverage/get-recommended-leverage-factor.d.ts +4 -0
- package/dist/types/common-utils/utils/strategies/leverage/get-recommended-leverage-factor.spec.d.ts +1 -0
- package/dist/types/common-utils/utils/strategies/strategy-info/calculate-total-apy.d.ts +28 -0
- package/dist/types/common-utils/utils/strategies/strategy-info/calculate-total-apy.spec.d.ts +1 -0
- package/dist/types/common-utils/utils/strategies/strategy-info/calculate-total-points.d.ts +22 -0
- package/dist/types/common-utils/utils/strategies/strategy-info/calculate-total-points.spec.d.ts +1 -0
- package/dist/types/common-utils/utils/strategies/strategy-info/get-cm-you-can-earn.d.ts +19 -0
- package/dist/types/common-utils/utils/strategies/strategy-info/get-cm-you-can-earn.spec.d.ts +1 -0
- package/dist/types/common-utils/utils/strategies/strategy-info/get-strategy-you-can-earn.d.ts +29 -0
- package/dist/types/common-utils/utils/strategies/tokens/add-amount-in-target.d.ts +6 -0
- package/dist/types/common-utils/utils/strategies/tokens/add-amount-in-target.spec.d.ts +1 -0
- package/dist/types/common-utils/utils/strategies/tokens/get-chain-phantom-tokens.d.ts +6 -0
- package/dist/types/common-utils/utils/strategies/tokens/get-list-with-amount-in-target.d.ts +12 -0
- package/dist/types/common-utils/utils/strategies/tokens/get-list-with-amount-in-target.spec.d.ts +1 -0
- package/dist/types/common-utils/utils/strategies/tokens/get-native-token-address.d.ts +1 -0
- package/dist/types/common-utils/utils/strategies/tokens/is-apy-with-points-exception.d.ts +3 -0
- package/dist/types/common-utils/utils/strategies/tokens/is-collateral-token.d.ts +16 -0
- package/dist/types/common-utils/utils/strategies/tokens/is-collateral-token.spec.d.ts +1 -0
- package/dist/types/common-utils/utils/strategies/tokens/is-obtainable-token.d.ts +14 -0
- package/dist/types/common-utils/utils/strategies/tokens/is-obtainable-token.spec.d.ts +1 -0
- package/dist/types/common-utils/utils/strategies/tokens/is-valid-extra-collateral-token.d.ts +20 -0
- package/dist/types/common-utils/utils/strategies/tokens/wrap-token-address.d.ts +2 -0
- package/dist/types/common-utils/utils/strategies/tokens/wrap-token-address.spec.d.ts +1 -0
- package/dist/types/common-utils/utils/strategies/types/index.d.ts +2 -1
- package/dist/types/common-utils/utils/strategies/types/strategy-data.d.ts +64 -0
- package/dist/types/common-utils/utils/strategies/types/strategy-earnings.d.ts +43 -0
- package/dist/types/common-utils/utils/validation/is-zero-balance.d.ts +1 -0
- package/dist/types/common-utils/utils/validation/validate-balance.d.ts +22 -0
- package/dist/types/common-utils/utils/validation/validate-balance.spec.d.ts +1 -0
- package/dist/types/common-utils/utils/validation/validate-balances.d.ts +9 -0
- package/dist/types/common-utils/utils/validation/validate-balances.spec.d.ts +1 -0
- package/dist/types/common-utils/utils/validation/validate-credit-manager.d.ts +10 -0
- package/dist/types/common-utils/utils/validation/validate-credit-manager.spec.d.ts +1 -0
- package/dist/types/common-utils/utils/validation/validate-hf.d.ts +9 -0
- package/dist/types/common-utils/utils/validation/validate-hf.spec.d.ts +1 -0
- package/dist/types/common-utils/utils/validation/validate-open-account-pool-quota-status.d.ts +7 -0
- package/dist/types/common-utils/utils/validation/validate-open-account-pool-quota-status.spec.d.ts +1 -0
- package/dist/types/common-utils/utils/validation/validate-open-account-pool-status.d.ts +23 -0
- package/dist/types/common-utils/utils/validation/validate-open-account-pool-status.spec.d.ts +1 -0
- package/dist/types/common-utils/utils/validation/validate-open-account.d.ts +21 -0
- package/dist/types/common-utils/utils/validation/validate-open-account.spec.d.ts +1 -0
- package/dist/types/common-utils/utils/validation/validate-quota.d.ts +20 -0
- package/dist/types/common-utils/utils/validation/validate-quota.spec.d.ts +1 -0
- package/dist/types/common-utils/utils/validation/validate-token-to-obtain.d.ts +13 -0
- package/dist/types/common-utils/utils/validation/validate-token-to-obtain.spec.d.ts +1 -0
- package/dist/types/common-utils/utils/validation/validation-types.d.ts +14 -0
- package/dist/types/dev/RevolverTransport.d.ts +4 -4
- package/dist/types/sdk/constants/math.d.ts +1 -0
- package/package.json +1 -1
- package/dist/cjs/common-utils/utils/strategies/__test-utils.js +0 -95
- package/dist/esm/common-utils/utils/strategies/__test-utils.js +0 -65
- 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
|
+
});
|