@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.
- package/dist/cjs/common-utils/index.js +3 -21
- package/dist/cjs/common-utils/test-utils/index.js +4 -3
- package/dist/cjs/common-utils/utils/index.js +3 -22
- package/dist/cjs/common-utils/utils/strategies/index.js +3 -0
- package/dist/cjs/common-utils/utils/strategies/strategy-info/cm-availability-condition.js +5 -5
- package/dist/cjs/common-utils/utils/strategies/strategy-info/credit-manager-issues.js +135 -0
- package/dist/cjs/common-utils/utils/strategies/strategy-info/get-cm-you-can-earn.js +12 -23
- package/dist/cjs/common-utils/utils/strategies/strategy-info/index.js +3 -0
- package/dist/cjs/onchain/accounts/index.js +2 -3
- package/dist/cjs/onchain/accounts/intents/guards.js +55 -50
- package/dist/cjs/onchain/accounts/intents/index.js +24 -16
- package/dist/cjs/onchain/accounts/intents/leverage-band.js +2 -2
- package/dist/cjs/onchain/accounts/intents/math.js +15 -22
- package/dist/cjs/onchain/accounts/intents/open-strategy.js +5 -5
- package/dist/cjs/onchain/accounts/intents/plan.js +27 -41
- package/dist/cjs/onchain/accounts/intents/realize.js +14 -21
- package/dist/cjs/onchain/accounts/intents/tail.js +2 -2
- package/dist/cjs/onchain/accounts/intents/testing/sdk-mock.js +2 -1
- package/dist/cjs/onchain/accounts/intents/view.js +1 -0
- package/dist/cjs/onchain/constants/index.js +1 -0
- package/dist/cjs/onchain/constants/math.js +11 -0
- package/dist/cjs/onchain/index.js +32 -3
- package/dist/cjs/onchain/market/credit/CreditManagerV310Contract.js +2 -2
- package/dist/cjs/onchain/market/math.js +23 -11
- package/dist/cjs/onchain/validation/checks.js +250 -0
- package/dist/cjs/onchain/validation/index.js +29 -0
- package/dist/cjs/onchain/{accounts/intents → validation}/refusal.js +12 -1
- package/dist/cjs/onchain/validation/token.js +29 -0
- package/dist/cjs/preview/index.js +10 -0
- package/dist/cjs/preview/preview/buildDelayedPreview.js +1 -0
- package/dist/cjs/preview/preview/previewAdjustCreditAccount.js +1 -0
- package/dist/cjs/preview/preview/previewOpenCreditAccount.js +1 -0
- package/dist/cjs/preview/validate/checkOperation.js +173 -0
- package/dist/cjs/preview/validate/checkSimulation.js +52 -0
- package/dist/cjs/preview/validate/index.js +6 -0
- package/dist/cjs/sdk/index.js +4 -0
- package/dist/cjs/sdk/prepare/PrepareApi.js +23 -17
- package/dist/cjs/sdk/prepare/index.js +4 -0
- package/dist/cjs/sdk/prepare/types.js +4 -0
- package/dist/esm/common-utils/index.js +2 -11
- package/dist/esm/common-utils/test-utils/index.js +4 -3
- package/dist/esm/common-utils/utils/index.js +2 -12
- package/dist/esm/common-utils/utils/strategies/index.js +2 -1
- package/dist/esm/common-utils/utils/strategies/strategy-info/cm-availability-condition.js +5 -5
- package/dist/esm/common-utils/utils/strategies/strategy-info/credit-manager-issues.js +133 -0
- package/dist/esm/common-utils/utils/strategies/strategy-info/get-cm-you-can-earn.js +12 -23
- package/dist/esm/common-utils/utils/strategies/strategy-info/index.js +2 -1
- package/dist/esm/dev/AccountOpener.js +1 -1
- package/dist/esm/dev/withdrawalUtils.js +1 -1
- package/dist/esm/onchain/accounts/CreditAccountsServiceV310.js +2 -2
- package/dist/esm/onchain/accounts/index.js +2 -2
- package/dist/esm/onchain/accounts/intents/guards.js +55 -50
- package/dist/esm/onchain/accounts/intents/index.js +23 -14
- package/dist/esm/onchain/accounts/intents/leverage-band.js +2 -2
- package/dist/esm/onchain/accounts/intents/math.js +14 -21
- package/dist/esm/onchain/accounts/intents/open-strategy.js +4 -4
- package/dist/esm/onchain/accounts/intents/plan.js +15 -29
- package/dist/esm/onchain/accounts/intents/realize.js +12 -19
- package/dist/esm/onchain/accounts/intents/tail.js +1 -1
- package/dist/esm/onchain/accounts/intents/testing/sdk-mock.js +2 -1
- package/dist/esm/onchain/accounts/intents/view.js +1 -0
- package/dist/esm/onchain/accounts/liquidations/LiquidationsService.js +1 -1
- package/dist/esm/onchain/accounts/withdrawal-compressor/RedemptionLoggerV310Contract.js +1 -1
- package/dist/esm/onchain/accounts/withdrawal-compressor/WithdrawalCompressorV310Contract.js +1 -1
- package/dist/esm/onchain/accounts/withdrawal-compressor/WithdrawalCompressorV311Contract.js +1 -1
- package/dist/esm/onchain/accounts/withdrawal-compressor/WithdrawalCompressorV313Contract.js +1 -1
- package/dist/esm/onchain/base/TokensMeta.js +3 -3
- package/dist/esm/onchain/chain/detectNetwork.js +1 -1
- package/dist/esm/onchain/constants/index.js +2 -2
- package/dist/esm/onchain/constants/math.js +11 -1
- package/dist/esm/onchain/core/createAddressProvider.js +1 -1
- package/dist/esm/onchain/index.js +7 -3
- package/dist/esm/onchain/market/adapters/contracts/AccountMigratorAdapterContract.js +1 -1
- package/dist/esm/onchain/market/adapters/contracts/ERC4626AdapterContract.js +1 -1
- package/dist/esm/onchain/market/credit/CreditFacadeV310BaseContract.js +1 -1
- package/dist/esm/onchain/market/credit/CreditManagerV310Contract.js +2 -2
- package/dist/esm/onchain/market/math.js +23 -11
- package/dist/esm/onchain/market/pool/PoolV310Contract.js +1 -1
- package/dist/esm/onchain/market/zapper/IETHZapperContract.js +1 -1
- package/dist/esm/onchain/market/zapper/ZapperContract.js +1 -1
- package/dist/esm/onchain/pools/PoolService.js +1 -1
- package/dist/esm/onchain/utils/viem/simulateWithPriceUpdates.js +1 -1
- package/dist/esm/onchain/validation/checks.js +230 -0
- package/dist/esm/onchain/validation/index.js +4 -0
- package/dist/esm/onchain/{accounts/intents → validation}/refusal.js +12 -2
- package/dist/esm/onchain/validation/token.js +27 -0
- package/dist/esm/preview/index.js +5 -1
- package/dist/esm/preview/preview/buildDelayedPreview.js +1 -0
- package/dist/esm/preview/preview/previewAdjustCreditAccount.js +1 -0
- package/dist/esm/preview/preview/previewOpenCreditAccount.js +1 -0
- package/dist/esm/preview/simulate/simulatePoolOperation.js +1 -1
- package/dist/esm/preview/trace/extractTransfers.js +1 -1
- package/dist/esm/preview/validate/checkOperation.js +171 -0
- package/dist/esm/preview/validate/checkSimulation.js +51 -0
- package/dist/esm/preview/validate/index.js +3 -0
- package/dist/esm/sdk/index.js +2 -1
- package/dist/esm/sdk/prepare/PrepareApi.js +21 -15
- package/dist/esm/sdk/prepare/index.js +2 -1
- package/dist/esm/sdk/prepare/types.js +2 -1
- package/dist/types/common-utils/index.d.ts +2 -12
- package/dist/types/common-utils/utils/index.d.ts +2 -13
- package/dist/types/common-utils/utils/strategies/index.d.ts +2 -1
- package/dist/types/common-utils/utils/strategies/strategy-info/credit-manager-issues.d.ts +34 -0
- package/dist/types/common-utils/utils/strategies/strategy-info/index.d.ts +2 -1
- package/dist/types/model/previews.d.ts +22 -0
- package/dist/types/onchain/accounts/index.d.ts +2 -2
- package/dist/types/onchain/accounts/intents/guards.d.ts +8 -4
- package/dist/types/onchain/accounts/intents/index.d.ts +20 -10
- package/dist/types/onchain/accounts/intents/leverage-band.d.ts +7 -2
- package/dist/types/onchain/accounts/intents/math.d.ts +2 -1
- package/dist/types/onchain/accounts/intents/plan.d.ts +3 -0
- package/dist/types/onchain/accounts/intents/types.d.ts +7 -1
- package/dist/types/onchain/constants/index.d.ts +2 -2
- package/dist/types/onchain/constants/math.d.ts +9 -1
- package/dist/types/onchain/index.d.ts +7 -3
- package/dist/types/onchain/market/credit/CreditManagerV310Contract.d.ts +1 -1
- package/dist/types/onchain/market/credit/types.d.ts +4 -3
- package/dist/types/onchain/market/math.d.ts +20 -9
- package/dist/types/onchain/validation/checks.d.ts +167 -0
- package/dist/types/onchain/validation/index.d.ts +4 -0
- package/dist/types/onchain/{accounts/intents → validation}/refusal.d.ts +100 -31
- package/dist/types/onchain/validation/token.d.ts +17 -0
- package/dist/types/preview/index.d.ts +5 -1
- package/dist/types/preview/validate/checkOperation.d.ts +46 -0
- package/dist/types/preview/validate/checkSimulation.d.ts +34 -0
- package/dist/types/preview/validate/index.d.ts +3 -0
- package/dist/types/sdk/index.d.ts +2 -2
- package/dist/types/sdk/prepare/PrepareApi.d.ts +3 -3
- package/dist/types/sdk/prepare/index.d.ts +2 -2
- package/dist/types/sdk/prepare/types.d.ts +8 -4
- package/package.json +1 -1
- package/dist/cjs/common-utils/utils/strategies/strategy-info/get-cm-you-can-earn.spec.js +0 -267
- package/dist/cjs/common-utils/utils/validation/index.js +0 -23
- package/dist/cjs/common-utils/utils/validation/is-zero-balance.js +0 -7
- package/dist/cjs/common-utils/utils/validation/validate-balance.js +0 -22
- package/dist/cjs/common-utils/utils/validation/validate-balance.spec.js +0 -54
- package/dist/cjs/common-utils/utils/validation/validate-balances.js +0 -17
- package/dist/cjs/common-utils/utils/validation/validate-balances.spec.js +0 -45
- package/dist/cjs/common-utils/utils/validation/validate-credit-manager.js +0 -8
- package/dist/cjs/common-utils/utils/validation/validate-credit-manager.spec.js +0 -36
- package/dist/cjs/common-utils/utils/validation/validate-hf.js +0 -10
- package/dist/cjs/common-utils/utils/validation/validate-hf.spec.js +0 -26
- package/dist/cjs/common-utils/utils/validation/validate-open-account-pool-quota-status.js +0 -14
- package/dist/cjs/common-utils/utils/validation/validate-open-account-pool-quota-status.spec.js +0 -29
- package/dist/cjs/common-utils/utils/validation/validate-open-account-pool-status.js +0 -37
- package/dist/cjs/common-utils/utils/validation/validate-open-account-pool-status.spec.js +0 -98
- package/dist/cjs/common-utils/utils/validation/validate-open-account.js +0 -18
- package/dist/cjs/common-utils/utils/validation/validate-open-account.spec.js +0 -56
- package/dist/cjs/common-utils/utils/validation/validate-quota.js +0 -23
- package/dist/cjs/common-utils/utils/validation/validate-quota.spec.js +0 -88
- package/dist/cjs/common-utils/utils/validation/validate-token-to-obtain.js +0 -18
- package/dist/cjs/common-utils/utils/validation/validate-token-to-obtain.spec.js +0 -36
- package/dist/cjs/common-utils/utils/validation/validation-types.js +0 -1
- package/dist/esm/common-utils/utils/strategies/strategy-info/get-cm-you-can-earn.spec.js +0 -264
- package/dist/esm/common-utils/utils/validation/index.js +0 -12
- package/dist/esm/common-utils/utils/validation/is-zero-balance.js +0 -6
- package/dist/esm/common-utils/utils/validation/validate-balance.js +0 -21
- package/dist/esm/common-utils/utils/validation/validate-balance.spec.js +0 -54
- package/dist/esm/common-utils/utils/validation/validate-balances.js +0 -16
- package/dist/esm/common-utils/utils/validation/validate-balances.spec.js +0 -45
- package/dist/esm/common-utils/utils/validation/validate-credit-manager.js +0 -7
- package/dist/esm/common-utils/utils/validation/validate-credit-manager.spec.js +0 -36
- package/dist/esm/common-utils/utils/validation/validate-hf.js +0 -8
- package/dist/esm/common-utils/utils/validation/validate-hf.spec.js +0 -26
- package/dist/esm/common-utils/utils/validation/validate-open-account-pool-quota-status.js +0 -13
- package/dist/esm/common-utils/utils/validation/validate-open-account-pool-quota-status.spec.js +0 -29
- package/dist/esm/common-utils/utils/validation/validate-open-account-pool-status.js +0 -36
- package/dist/esm/common-utils/utils/validation/validate-open-account-pool-status.spec.js +0 -98
- package/dist/esm/common-utils/utils/validation/validate-open-account.js +0 -17
- package/dist/esm/common-utils/utils/validation/validate-open-account.spec.js +0 -56
- package/dist/esm/common-utils/utils/validation/validate-quota.js +0 -22
- package/dist/esm/common-utils/utils/validation/validate-quota.spec.js +0 -88
- package/dist/esm/common-utils/utils/validation/validate-token-to-obtain.js +0 -17
- package/dist/esm/common-utils/utils/validation/validate-token-to-obtain.spec.js +0 -36
- package/dist/esm/common-utils/utils/validation/validation-types.js +0 -1
- package/dist/types/common-utils/utils/strategies/strategy-info/get-cm-you-can-earn.spec.d.ts +0 -1
- package/dist/types/common-utils/utils/validation/index.d.ts +0 -12
- package/dist/types/common-utils/utils/validation/is-zero-balance.d.ts +0 -4
- package/dist/types/common-utils/utils/validation/validate-balance.d.ts +0 -25
- package/dist/types/common-utils/utils/validation/validate-balance.spec.d.ts +0 -1
- package/dist/types/common-utils/utils/validation/validate-balances.d.ts +0 -13
- package/dist/types/common-utils/utils/validation/validate-balances.spec.d.ts +0 -1
- package/dist/types/common-utils/utils/validation/validate-credit-manager.d.ts +0 -13
- package/dist/types/common-utils/utils/validation/validate-credit-manager.spec.d.ts +0 -1
- package/dist/types/common-utils/utils/validation/validate-hf.d.ts +0 -12
- package/dist/types/common-utils/utils/validation/validate-hf.spec.d.ts +0 -1
- package/dist/types/common-utils/utils/validation/validate-open-account-pool-quota-status.d.ts +0 -10
- package/dist/types/common-utils/utils/validation/validate-open-account-pool-quota-status.spec.d.ts +0 -1
- package/dist/types/common-utils/utils/validation/validate-open-account-pool-status.d.ts +0 -26
- package/dist/types/common-utils/utils/validation/validate-open-account-pool-status.spec.d.ts +0 -1
- package/dist/types/common-utils/utils/validation/validate-open-account.d.ts +0 -25
- package/dist/types/common-utils/utils/validation/validate-open-account.spec.d.ts +0 -1
- package/dist/types/common-utils/utils/validation/validate-quota.d.ts +0 -24
- package/dist/types/common-utils/utils/validation/validate-quota.spec.d.ts +0 -1
- package/dist/types/common-utils/utils/validation/validate-token-to-obtain.d.ts +0 -17
- package/dist/types/common-utils/utils/validation/validate-token-to-obtain.spec.d.ts +0 -1
- package/dist/types/common-utils/utils/validation/validation-types.d.ts +0 -10
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { validateQuota } from "./validate-quota.js";
|
|
2
|
-
//#region src/common-utils/utils/validation/validate-open-account.ts
|
|
3
|
-
function validateOpenAccount(props) {
|
|
4
|
-
const { debt, creditManager, loading } = props;
|
|
5
|
-
if (loading) return { message: "loading" };
|
|
6
|
-
if (debt < creditManager.minDebt) return {
|
|
7
|
-
message: "amountLessMin",
|
|
8
|
-
amount: creditManager.minDebt
|
|
9
|
-
};
|
|
10
|
-
if (debt > creditManager.maxDebt) return {
|
|
11
|
-
message: "debtGreaterMax",
|
|
12
|
-
amount: creditManager.maxDebt
|
|
13
|
-
};
|
|
14
|
-
return validateQuota(props);
|
|
15
|
-
}
|
|
16
|
-
//#endregion
|
|
17
|
-
export { validateOpenAccount };
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
import { validateOpenAccount } from "./validate-open-account.js";
|
|
2
|
-
import { buildCreditManager, mockUnderlyingToken } from "../../test-utils/index.js";
|
|
3
|
-
import { describe, expect, it } from "vitest";
|
|
4
|
-
//#region src/common-utils/utils/validation/validate-open-account.spec.ts
|
|
5
|
-
const mockCreditManager = buildCreditManager({
|
|
6
|
-
minDebt: 1000n,
|
|
7
|
-
maxDebt: 1000000n,
|
|
8
|
-
underlyingToken: mockUnderlyingToken
|
|
9
|
-
});
|
|
10
|
-
describe("validateOpenAccount", () => {
|
|
11
|
-
it("returns null when all conditions are met", () => {
|
|
12
|
-
const result = validateOpenAccount({
|
|
13
|
-
debt: 50000n,
|
|
14
|
-
creditManager: mockCreditManager,
|
|
15
|
-
desiredQuota: {},
|
|
16
|
-
quotaUpdate: []
|
|
17
|
-
});
|
|
18
|
-
expect(result).toBeNull();
|
|
19
|
-
});
|
|
20
|
-
it("returns loading error when loading is true", () => {
|
|
21
|
-
const result = validateOpenAccount({
|
|
22
|
-
debt: 50000n,
|
|
23
|
-
creditManager: mockCreditManager,
|
|
24
|
-
desiredQuota: {},
|
|
25
|
-
quotaUpdate: [],
|
|
26
|
-
loading: true
|
|
27
|
-
});
|
|
28
|
-
expect(result).toEqual({ message: "loading" });
|
|
29
|
-
});
|
|
30
|
-
it("returns error when debt is less than min", () => {
|
|
31
|
-
const result = validateOpenAccount({
|
|
32
|
-
debt: 500n,
|
|
33
|
-
creditManager: mockCreditManager,
|
|
34
|
-
desiredQuota: {},
|
|
35
|
-
quotaUpdate: []
|
|
36
|
-
});
|
|
37
|
-
expect(result).toEqual({
|
|
38
|
-
message: "amountLessMin",
|
|
39
|
-
amount: 1000n
|
|
40
|
-
});
|
|
41
|
-
});
|
|
42
|
-
it("returns error when debt is greater than max", () => {
|
|
43
|
-
const result = validateOpenAccount({
|
|
44
|
-
debt: 2000000n,
|
|
45
|
-
creditManager: mockCreditManager,
|
|
46
|
-
desiredQuota: {},
|
|
47
|
-
quotaUpdate: []
|
|
48
|
-
});
|
|
49
|
-
expect(result).toEqual({
|
|
50
|
-
message: "debtGreaterMax",
|
|
51
|
-
amount: 1000000n
|
|
52
|
-
});
|
|
53
|
-
});
|
|
54
|
-
});
|
|
55
|
-
//#endregion
|
|
56
|
-
export {};
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
//#region src/common-utils/utils/validation/validate-quota.ts
|
|
2
|
-
function validateQuota(props) {
|
|
3
|
-
const desiredQuotasList = Object.values(props.desiredQuota).filter((a) => a.balance > 0n);
|
|
4
|
-
if (desiredQuotasList.length > props.creditManager.maxEnabledTokensLength) return {
|
|
5
|
-
message: "maxQuotasLengthReached",
|
|
6
|
-
count: desiredQuotasList.length,
|
|
7
|
-
max: props.creditManager.maxEnabledTokensLength
|
|
8
|
-
};
|
|
9
|
-
if (props.quotaUpdate.length === 0 && props.throwOnZeroQuotaUpdate) return { message: "quotaShouldBeUpdated" };
|
|
10
|
-
for (const { token, balance: updateBy } of props.quotaUpdate) {
|
|
11
|
-
const quota = props.creditManager.quotas[token];
|
|
12
|
-
if (updateBy > 0 && quota) {
|
|
13
|
-
if ((quota.isActive ? quota.limit : 0n) - quota.totalQuoted < updateBy) return {
|
|
14
|
-
message: "insufficientQuota",
|
|
15
|
-
token
|
|
16
|
-
};
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
return null;
|
|
20
|
-
}
|
|
21
|
-
//#endregion
|
|
22
|
-
export { validateQuota };
|
|
@@ -1,88 +0,0 @@
|
|
|
1
|
-
import { validateQuota } from "./validate-quota.js";
|
|
2
|
-
import { buildCreditManager, buildQuota, mockToken1, mockToken2 } from "../../test-utils/index.js";
|
|
3
|
-
import { describe, expect, it } from "vitest";
|
|
4
|
-
//#region src/common-utils/utils/validation/validate-quota.spec.ts
|
|
5
|
-
const mockCreditManager = buildCreditManager({
|
|
6
|
-
minDebt: 1000n,
|
|
7
|
-
maxDebt: 1000000n,
|
|
8
|
-
totalDebtLimit: 5000000n,
|
|
9
|
-
totalDebt: 2000000n,
|
|
10
|
-
availableToBorrow: 3000000n,
|
|
11
|
-
quotas: {
|
|
12
|
-
[mockToken1]: buildQuota({
|
|
13
|
-
token: mockToken1,
|
|
14
|
-
limit: 1000000n,
|
|
15
|
-
totalQuoted: 500000n,
|
|
16
|
-
rate: 0n
|
|
17
|
-
}),
|
|
18
|
-
[mockToken2]: buildQuota({
|
|
19
|
-
token: mockToken2,
|
|
20
|
-
limit: 2000000n,
|
|
21
|
-
totalQuoted: 1000000n,
|
|
22
|
-
rate: 0n
|
|
23
|
-
})
|
|
24
|
-
},
|
|
25
|
-
maxEnabledTokensLength: 2
|
|
26
|
-
});
|
|
27
|
-
describe("validateQuota", () => {
|
|
28
|
-
it("returns null when all conditions are met", () => {
|
|
29
|
-
const result = validateQuota({
|
|
30
|
-
desiredQuota: {},
|
|
31
|
-
quotaUpdate: [],
|
|
32
|
-
creditManager: mockCreditManager,
|
|
33
|
-
throwOnZeroQuotaUpdate: false
|
|
34
|
-
});
|
|
35
|
-
expect(result).toBeNull();
|
|
36
|
-
});
|
|
37
|
-
it("returns error when max quotas length is reached", () => {
|
|
38
|
-
const result = validateQuota({
|
|
39
|
-
desiredQuota: {
|
|
40
|
-
[mockToken1]: {
|
|
41
|
-
token: mockToken1,
|
|
42
|
-
balance: 1000n
|
|
43
|
-
},
|
|
44
|
-
[mockToken2]: {
|
|
45
|
-
token: mockToken2,
|
|
46
|
-
balance: 1000n
|
|
47
|
-
}
|
|
48
|
-
},
|
|
49
|
-
quotaUpdate: [],
|
|
50
|
-
creditManager: buildCreditManager({
|
|
51
|
-
...mockCreditManager,
|
|
52
|
-
maxEnabledTokensLength: 1
|
|
53
|
-
}),
|
|
54
|
-
throwOnZeroQuotaUpdate: false
|
|
55
|
-
});
|
|
56
|
-
expect(result).toEqual({
|
|
57
|
-
message: "maxQuotasLengthReached",
|
|
58
|
-
count: 2,
|
|
59
|
-
max: 1
|
|
60
|
-
});
|
|
61
|
-
});
|
|
62
|
-
it("returns error when quota update is empty and throwOnZeroQuotaUpdate is true", () => {
|
|
63
|
-
const result = validateQuota({
|
|
64
|
-
desiredQuota: {},
|
|
65
|
-
quotaUpdate: [],
|
|
66
|
-
creditManager: mockCreditManager,
|
|
67
|
-
throwOnZeroQuotaUpdate: true
|
|
68
|
-
});
|
|
69
|
-
expect(result).toEqual({ message: "quotaShouldBeUpdated" });
|
|
70
|
-
});
|
|
71
|
-
it("returns error when quota is insufficient", () => {
|
|
72
|
-
const result = validateQuota({
|
|
73
|
-
desiredQuota: {},
|
|
74
|
-
quotaUpdate: [{
|
|
75
|
-
token: mockToken1,
|
|
76
|
-
balance: 600000n
|
|
77
|
-
}],
|
|
78
|
-
creditManager: mockCreditManager,
|
|
79
|
-
throwOnZeroQuotaUpdate: false
|
|
80
|
-
});
|
|
81
|
-
expect(result).toEqual({
|
|
82
|
-
message: "insufficientQuota",
|
|
83
|
-
token: mockToken1
|
|
84
|
-
});
|
|
85
|
-
});
|
|
86
|
-
});
|
|
87
|
-
//#endregion
|
|
88
|
-
export {};
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
//#region src/common-utils/utils/validation/validate-token-to-obtain.ts
|
|
2
|
-
function validateTokenToObtain({ creditManager, targetToken }) {
|
|
3
|
-
if (Array.isArray(targetToken)) {
|
|
4
|
-
for (const asset of targetToken) if (creditManager.forbiddenTokens[asset.token]) return {
|
|
5
|
-
message: "tokenIsForbidden",
|
|
6
|
-
token: asset.token
|
|
7
|
-
};
|
|
8
|
-
return null;
|
|
9
|
-
}
|
|
10
|
-
if (targetToken !== null && creditManager.forbiddenTokens[targetToken]) return {
|
|
11
|
-
message: "tokenIsForbidden",
|
|
12
|
-
token: targetToken
|
|
13
|
-
};
|
|
14
|
-
return null;
|
|
15
|
-
}
|
|
16
|
-
//#endregion
|
|
17
|
-
export { validateTokenToObtain };
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
import { validateTokenToObtain } from "./validate-token-to-obtain.js";
|
|
2
|
-
import { buildCreditManager, mockToken1 } from "../../test-utils/index.js";
|
|
3
|
-
import { describe, expect, it } from "vitest";
|
|
4
|
-
//#region src/common-utils/utils/validation/validate-token-to-obtain.spec.ts
|
|
5
|
-
const mockCreditManager = buildCreditManager({ forbiddenTokens: {} });
|
|
6
|
-
describe("validateTokenToObtain", () => {
|
|
7
|
-
it("returns null when targetToken is null", () => {
|
|
8
|
-
const result = validateTokenToObtain({
|
|
9
|
-
targetToken: null,
|
|
10
|
-
creditManager: mockCreditManager
|
|
11
|
-
});
|
|
12
|
-
expect(result).toBeNull();
|
|
13
|
-
});
|
|
14
|
-
it("returns null when targetToken is not forbidden", () => {
|
|
15
|
-
const result = validateTokenToObtain({
|
|
16
|
-
targetToken: mockToken1,
|
|
17
|
-
creditManager: mockCreditManager
|
|
18
|
-
});
|
|
19
|
-
expect(result).toBeNull();
|
|
20
|
-
});
|
|
21
|
-
it("returns error when targetToken is forbidden", () => {
|
|
22
|
-
const result = validateTokenToObtain({
|
|
23
|
-
targetToken: mockToken1,
|
|
24
|
-
creditManager: buildCreditManager({
|
|
25
|
-
...mockCreditManager,
|
|
26
|
-
forbiddenTokens: { [mockToken1]: true }
|
|
27
|
-
})
|
|
28
|
-
});
|
|
29
|
-
expect(result).toEqual({
|
|
30
|
-
message: "tokenIsForbidden",
|
|
31
|
-
token: mockToken1
|
|
32
|
-
});
|
|
33
|
-
});
|
|
34
|
-
});
|
|
35
|
-
//#endregion
|
|
36
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
package/dist/types/common-utils/utils/strategies/strategy-info/get-cm-you-can-earn.spec.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { isZeroBalance } from "./is-zero-balance.js";
|
|
2
|
-
import { ValidateBalanceProps, ValidateBalanceResult, validateBalance } from "./validate-balance.js";
|
|
3
|
-
import { ValidateBalancesProps, validateBalances } from "./validate-balances.js";
|
|
4
|
-
import { ValidateCreditManagerProps, ValidateCreditManagerResult, validateCreditManager } from "./validate-credit-manager.js";
|
|
5
|
-
import { MIN_HF_LIMITED, ValidateHFProps, ValidateHFResult, validateHF } from "./validate-hf.js";
|
|
6
|
-
import { ValidateQuotaProps, ValidateQuotaResult, validateQuota } from "./validate-quota.js";
|
|
7
|
-
import { ValidateOpenAccountProps, ValidateOpenAccountResult, validateOpenAccount } from "./validate-open-account.js";
|
|
8
|
-
import { ValidateOpenAccountPoolQuotaStatusResult, validateOpenAccountPoolQuotaStatus } from "./validate-open-account-pool-quota-status.js";
|
|
9
|
-
import { ValidateOpenAccountPoolStatusProps, ValidateOpenAccountPoolStatusResult, validateOpenAccountPoolStatus } from "./validate-open-account-pool-status.js";
|
|
10
|
-
import { ValidateTokenToObtainProps, ValidateTokenToObtainResult, validateTokenToObtain } from "./validate-token-to-obtain.js";
|
|
11
|
-
import { FlattenUnion } from "./validation-types.js";
|
|
12
|
-
export { FlattenUnion, MIN_HF_LIMITED, ValidateBalanceProps, ValidateBalanceResult, ValidateBalancesProps, ValidateCreditManagerProps, ValidateCreditManagerResult, ValidateHFProps, ValidateHFResult, ValidateOpenAccountPoolQuotaStatusResult, ValidateOpenAccountPoolStatusProps, ValidateOpenAccountPoolStatusResult, ValidateOpenAccountProps, ValidateOpenAccountResult, ValidateQuotaProps, ValidateQuotaResult, ValidateTokenToObtainProps, ValidateTokenToObtainResult, isZeroBalance, validateBalance, validateBalances, validateCreditManager, validateHF, validateOpenAccount, validateOpenAccountPoolQuotaStatus, validateOpenAccountPoolStatus, validateQuota, validateTokenToObtain };
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import { Address } from "viem";
|
|
2
|
-
//#region src/common-utils/utils/validation/validate-balance.d.ts
|
|
3
|
-
interface ValidateBalanceProps {
|
|
4
|
-
amount: bigint;
|
|
5
|
-
tokenAddress: Address;
|
|
6
|
-
maxAmount: bigint | undefined;
|
|
7
|
-
zeroCheck?: boolean;
|
|
8
|
-
single?: boolean;
|
|
9
|
-
}
|
|
10
|
-
type ValidateBalanceResult = {
|
|
11
|
-
message: "unknownToken";
|
|
12
|
-
token: Address;
|
|
13
|
-
} | {
|
|
14
|
-
message: "insufficientFunds";
|
|
15
|
-
token: Address;
|
|
16
|
-
} | {
|
|
17
|
-
message: "zeroBalance";
|
|
18
|
-
token: Address;
|
|
19
|
-
} | {
|
|
20
|
-
message: "enterAmount";
|
|
21
|
-
token: Address;
|
|
22
|
-
};
|
|
23
|
-
declare function validateBalance({ amount, tokenAddress, maxAmount, zeroCheck, single }: ValidateBalanceProps): ValidateBalanceResult | null;
|
|
24
|
-
//#endregion
|
|
25
|
-
export { ValidateBalanceProps, ValidateBalanceResult, validateBalance };
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { Asset } from "../../../onchain/base/types.js";
|
|
2
|
-
import "../../../onchain/index.js";
|
|
3
|
-
import { ValidateBalanceResult } from "./validate-balance.js";
|
|
4
|
-
import { Address } from "viem";
|
|
5
|
-
//#region src/common-utils/utils/validation/validate-balances.d.ts
|
|
6
|
-
interface ValidateBalancesProps {
|
|
7
|
-
balances: Record<Address, bigint>;
|
|
8
|
-
assets: Array<Asset>;
|
|
9
|
-
zeroCheck?: boolean;
|
|
10
|
-
}
|
|
11
|
-
declare function validateBalances({ balances, assets, zeroCheck }: ValidateBalancesProps): ValidateBalanceResult | null;
|
|
12
|
-
//#endregion
|
|
13
|
-
export { ValidateBalancesProps, validateBalances };
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
//#region src/common-utils/utils/validation/validate-credit-manager.d.ts
|
|
2
|
-
interface ValidateCreditManagerProps {
|
|
3
|
-
creditManager: {
|
|
4
|
-
isPaused: boolean;
|
|
5
|
-
};
|
|
6
|
-
allowPausedCm?: boolean;
|
|
7
|
-
}
|
|
8
|
-
interface ValidateCreditManagerResult {
|
|
9
|
-
message: "paused";
|
|
10
|
-
}
|
|
11
|
-
declare function validateCreditManager({ creditManager, allowPausedCm }: ValidateCreditManagerProps): ValidateCreditManagerResult | null;
|
|
12
|
-
//#endregion
|
|
13
|
-
export { ValidateCreditManagerProps, ValidateCreditManagerResult, validateCreditManager };
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
//#region src/common-utils/utils/validation/validate-hf.d.ts
|
|
2
|
-
declare const MIN_HF_LIMITED = 10100n;
|
|
3
|
-
interface ValidateHFProps {
|
|
4
|
-
hf: number | undefined;
|
|
5
|
-
hfCheck?: boolean;
|
|
6
|
-
}
|
|
7
|
-
interface ValidateHFResult {
|
|
8
|
-
message: "hfTooLow";
|
|
9
|
-
}
|
|
10
|
-
declare function validateHF({ hf, hfCheck }: ValidateHFProps): ValidateHFResult | null;
|
|
11
|
-
//#endregion
|
|
12
|
-
export { MIN_HF_LIMITED, ValidateHFProps, ValidateHFResult, validateHF };
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {}
|
package/dist/types/common-utils/utils/validation/validate-open-account-pool-quota-status.d.ts
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { CreditManagerSlice } from "../strategies/strategy-info/types.js";
|
|
2
|
-
import { Address } from "viem";
|
|
3
|
-
//#region src/common-utils/utils/validation/validate-open-account-pool-quota-status.d.ts
|
|
4
|
-
interface ValidateOpenAccountPoolQuotaStatusResult {
|
|
5
|
-
message: "insufficientQuota";
|
|
6
|
-
token: Address;
|
|
7
|
-
}
|
|
8
|
-
declare function validateOpenAccountPoolQuotaStatus(targetToken: Address, creditManager: Pick<CreditManagerSlice, "quotas">, amountToBorrow: bigint): ValidateOpenAccountPoolQuotaStatusResult | null;
|
|
9
|
-
//#endregion
|
|
10
|
-
export { ValidateOpenAccountPoolQuotaStatusResult, validateOpenAccountPoolQuotaStatus };
|
package/dist/types/common-utils/utils/validation/validate-open-account-pool-quota-status.spec.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {}
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import { CreditManagerSlice, PoolSlice } from "../strategies/strategy-info/types.js";
|
|
2
|
-
import { ValidateOpenAccountPoolQuotaStatusResult } from "./validate-open-account-pool-quota-status.js";
|
|
3
|
-
import { Address } from "viem";
|
|
4
|
-
//#region src/common-utils/utils/validation/validate-open-account-pool-status.d.ts
|
|
5
|
-
interface ValidateOpenAccountPoolStatusProps {
|
|
6
|
-
creditManager: Pick<CreditManagerSlice, "minDebt" | "totalDebtLimit" | "totalDebt" | "availableToBorrow" | "quotas">;
|
|
7
|
-
pool: Pick<PoolSlice, "totalDebtLimit" | "totalBorrowed"> | undefined | null;
|
|
8
|
-
debt: bigint;
|
|
9
|
-
targetToken: Address | null;
|
|
10
|
-
}
|
|
11
|
-
type ValidateOpenAccountPoolStatusResult = {
|
|
12
|
-
message: "insufficientDebtLimit";
|
|
13
|
-
amount: bigint;
|
|
14
|
-
solutionAmount?: bigint;
|
|
15
|
-
} | {
|
|
16
|
-
message: "insufficientPoolDebtLimit";
|
|
17
|
-
amount: bigint;
|
|
18
|
-
solutionAmount?: bigint;
|
|
19
|
-
} | {
|
|
20
|
-
message: "insufficientPoolLiquidity";
|
|
21
|
-
amount: bigint;
|
|
22
|
-
solutionAmount?: bigint;
|
|
23
|
-
} | ValidateOpenAccountPoolQuotaStatusResult;
|
|
24
|
-
declare function validateOpenAccountPoolStatus(props: ValidateOpenAccountPoolStatusProps): ValidateOpenAccountPoolStatusResult | null;
|
|
25
|
-
//#endregion
|
|
26
|
-
export { ValidateOpenAccountPoolStatusProps, ValidateOpenAccountPoolStatusResult, validateOpenAccountPoolStatus };
|
package/dist/types/common-utils/utils/validation/validate-open-account-pool-status.spec.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {}
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import { Asset } from "../../../onchain/base/types.js";
|
|
2
|
-
import { CreditManagerSlice } from "../strategies/strategy-info/types.js";
|
|
3
|
-
import "../../../onchain/index.js";
|
|
4
|
-
import { ValidateQuotaResult } from "./validate-quota.js";
|
|
5
|
-
import { Address } from "viem";
|
|
6
|
-
//#region src/common-utils/utils/validation/validate-open-account.d.ts
|
|
7
|
-
interface ValidateOpenAccountProps {
|
|
8
|
-
debt: bigint;
|
|
9
|
-
creditManager: Pick<CreditManagerSlice, "minDebt" | "maxDebt" | "underlyingToken" | "quotas" | "maxEnabledTokensLength">;
|
|
10
|
-
desiredQuota: Record<Address, Asset>;
|
|
11
|
-
quotaUpdate: Array<Asset>;
|
|
12
|
-
loading?: boolean;
|
|
13
|
-
}
|
|
14
|
-
type ValidateOpenAccountResult = {
|
|
15
|
-
message: "loading";
|
|
16
|
-
} | {
|
|
17
|
-
message: "amountLessMin";
|
|
18
|
-
amount: bigint;
|
|
19
|
-
} | {
|
|
20
|
-
message: "debtGreaterMax";
|
|
21
|
-
amount: bigint;
|
|
22
|
-
} | ValidateQuotaResult;
|
|
23
|
-
declare function validateOpenAccount(props: ValidateOpenAccountProps): ValidateOpenAccountResult | null;
|
|
24
|
-
//#endregion
|
|
25
|
-
export { ValidateOpenAccountProps, ValidateOpenAccountResult, validateOpenAccount };
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import { Asset } from "../../../onchain/base/types.js";
|
|
2
|
-
import { CreditManagerSlice } from "../strategies/strategy-info/types.js";
|
|
3
|
-
import "../../../onchain/index.js";
|
|
4
|
-
import { Address } from "viem";
|
|
5
|
-
//#region src/common-utils/utils/validation/validate-quota.d.ts
|
|
6
|
-
interface ValidateQuotaProps {
|
|
7
|
-
desiredQuota: Record<Address, Asset>;
|
|
8
|
-
quotaUpdate: Array<Asset>;
|
|
9
|
-
creditManager: Pick<CreditManagerSlice, "quotas" | "maxEnabledTokensLength">;
|
|
10
|
-
throwOnZeroQuotaUpdate?: boolean;
|
|
11
|
-
}
|
|
12
|
-
type ValidateQuotaResult = {
|
|
13
|
-
message: "maxQuotasLengthReached";
|
|
14
|
-
count: number;
|
|
15
|
-
max: number;
|
|
16
|
-
} | {
|
|
17
|
-
message: "quotaShouldBeUpdated";
|
|
18
|
-
} | {
|
|
19
|
-
message: "insufficientQuota";
|
|
20
|
-
token: Address;
|
|
21
|
-
};
|
|
22
|
-
declare function validateQuota(props: ValidateQuotaProps): ValidateQuotaResult | null;
|
|
23
|
-
//#endregion
|
|
24
|
-
export { ValidateQuotaProps, ValidateQuotaResult, validateQuota };
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { Asset } from "../../../onchain/base/types.js";
|
|
2
|
-
import "../../../onchain/index.js";
|
|
3
|
-
import { Address } from "viem";
|
|
4
|
-
//#region src/common-utils/utils/validation/validate-token-to-obtain.d.ts
|
|
5
|
-
interface ValidateTokenToObtainProps {
|
|
6
|
-
targetToken: Address | Array<Asset> | null;
|
|
7
|
-
creditManager: {
|
|
8
|
-
forbiddenTokens: Record<Address, boolean>;
|
|
9
|
-
};
|
|
10
|
-
}
|
|
11
|
-
interface ValidateTokenToObtainResult {
|
|
12
|
-
message: "tokenIsForbidden";
|
|
13
|
-
token: Address;
|
|
14
|
-
}
|
|
15
|
-
declare function validateTokenToObtain({ creditManager, targetToken }: ValidateTokenToObtainProps): ValidateTokenToObtainResult | null;
|
|
16
|
-
//#endregion
|
|
17
|
-
export { ValidateTokenToObtainProps, ValidateTokenToObtainResult, validateTokenToObtain };
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
//#region src/common-utils/utils/validation/validation-types.d.ts
|
|
2
|
-
type AllKeys<T> = T extends unknown ? keyof T : never;
|
|
3
|
-
type IsKeyInAll<T, K extends PropertyKey> = T extends unknown ? K extends keyof T ? true : false : never;
|
|
4
|
-
type IsKeyRequired<T, K extends PropertyKey> = T extends unknown ? K extends keyof T ? object extends Pick<T, K> ? false : true : false : never;
|
|
5
|
-
type RequiredKeys<T, K = AllKeys<T>> = K extends PropertyKey ? true extends IsKeyInAll<T, K> ? true extends IsKeyRequired<T, K> ? false extends IsKeyRequired<T, K> ? never : K : never : never : never;
|
|
6
|
-
type OptionalKeys<T, K = AllKeys<T>> = K extends PropertyKey ? K extends RequiredKeys<T> ? never : K : never;
|
|
7
|
-
type ValueForKey<T, K extends PropertyKey> = T extends { [P in K]?: infer V; } ? V : never;
|
|
8
|
-
type FlattenUnion<T> = { [K in RequiredKeys<T>]: ValueForKey<T, K>; } & { [K in OptionalKeys<T>]?: ValueForKey<T, K>; };
|
|
9
|
-
//#endregion
|
|
10
|
-
export { FlattenUnion };
|