@gearbox-protocol/sdk 14.12.0-next.66 → 14.12.0-next.68
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 +2 -2
- package/dist/cjs/common-utils/utils/apy/calculate-safe-borrow-rate.js +3 -3
- package/dist/cjs/common-utils/utils/assets-math.js +7 -7
- package/dist/cjs/common-utils/utils/creditAccount/calc-health-factor.js +2 -2
- package/dist/cjs/common-utils/utils/creditAccount/debt.js +2 -2
- package/dist/cjs/common-utils/utils/creditAccount/quota-utils.js +5 -5
- package/dist/cjs/common-utils/utils/index.js +2 -2
- package/dist/cjs/common-utils/utils/strategies/leverage/calculate-max-leverage-factor.js +2 -2
- package/dist/cjs/common-utils/utils/strategies/leverage/calculate-max-strategy-debt.js +5 -5
- package/dist/cjs/common-utils/utils/strategies/strategy-info/calculate-total-points.js +2 -2
- package/dist/cjs/common-utils/utils/strategies/strategy-info/get-cm-you-can-earn.js +2 -2
- package/dist/cjs/common-utils/utils/validation/validate-open-account-pool-status.js +4 -4
- package/dist/cjs/model/history.js +28 -0
- package/dist/cjs/model/history.schema.js +84 -0
- package/dist/cjs/model/index.js +77 -0
- package/dist/cjs/model/liquidations.js +23 -0
- package/dist/cjs/model/liquidations.schema.js +93 -0
- package/dist/cjs/model/opportunities.js +55 -0
- package/dist/cjs/model/opportunities.schema.js +223 -0
- package/dist/cjs/model/package.json +1 -0
- package/dist/cjs/model/positions.js +1 -0
- package/dist/cjs/model/positions.schema.js +120 -0
- package/dist/cjs/model/primitives.js +1 -0
- package/dist/cjs/model/primitives.schema.js +85 -0
- package/dist/cjs/new-sdk/AbstractNamespace.js +158 -0
- package/dist/cjs/new-sdk/GearboxSDK.js +122 -0
- package/dist/cjs/new-sdk/index.js +11 -0
- package/dist/cjs/new-sdk/opportunities/OpportunitiesNamespace.js +122 -0
- package/dist/cjs/new-sdk/opportunities/index.js +4 -0
- package/dist/cjs/new-sdk/opportunities/types.js +1 -0
- package/dist/cjs/new-sdk/package.json +1 -0
- package/dist/cjs/new-sdk/types.js +22 -0
- package/dist/cjs/new-sdk/utils/history.js +1 -0
- package/dist/cjs/new-sdk/utils/index.js +2 -0
- package/dist/cjs/offchain/GearboxAPI.js +33 -0
- package/dist/cjs/offchain/index.js +8 -0
- package/dist/cjs/offchain/opportunities/OffchainOpportunities.js +97 -0
- package/dist/cjs/offchain/opportunities/index.js +4 -0
- package/dist/cjs/offchain/package.json +1 -0
- package/dist/cjs/offchain/types.js +1 -0
- package/dist/cjs/preview/preview/buildDelayedPreview.js +5 -5
- package/dist/cjs/rewards/rewards/api.js +2 -2
- package/dist/cjs/rewards/rewards/extra-apy.js +2 -2
- package/dist/cjs/sdk/MultichainSDK.js +18 -2
- package/dist/cjs/sdk/OnchainSDK.js +8 -1
- package/dist/cjs/sdk/accounts/index.js +2 -0
- package/dist/cjs/sdk/accounts/liquidations/LiquidationsService.js +161 -106
- package/dist/cjs/sdk/accounts/liquidations/MultichainLiquidationsService.js +32 -38
- package/dist/cjs/sdk/accounts/liquidations/constants.js +13 -0
- package/dist/cjs/sdk/accounts/liquidations/index.js +2 -0
- package/dist/cjs/sdk/base/MultichainConstruct.js +80 -0
- package/dist/cjs/sdk/base/TokensMeta.js +51 -0
- package/dist/cjs/sdk/base/index.js +2 -0
- package/dist/cjs/sdk/chain/chains.js +76 -0
- package/dist/cjs/sdk/chain/index.js +4 -0
- package/dist/cjs/sdk/core/errors.js +13 -0
- package/dist/cjs/sdk/core/index.js +2 -1
- package/dist/cjs/sdk/index.js +25 -1
- package/dist/cjs/sdk/market/MarketConfiguratorContract.js +14 -0
- package/dist/cjs/sdk/market/MarketSuite.js +159 -0
- package/dist/cjs/sdk/market/credit/CreditManagerV310Contract.js +26 -0
- package/dist/cjs/sdk/market/credit/CreditSuite.js +92 -0
- package/dist/cjs/sdk/market/math.js +104 -0
- package/dist/cjs/sdk/market/oracle/PriceOracleBaseContract.js +52 -0
- package/dist/cjs/sdk/market/pool/LinearInterestRateModelContract.js +30 -0
- package/dist/cjs/sdk/market/pool/PoolQuotaKeeperV310Contract.js +26 -0
- package/dist/cjs/sdk/market/pool/PoolSuite.js +28 -0
- package/dist/cjs/sdk/market/pool/PoolV310Contract.js +27 -0
- package/dist/cjs/sdk/market/pool/math.js +44 -0
- package/dist/cjs/sdk/market/pricefeeds/AbstractPriceFeed.js +17 -0
- package/dist/cjs/sdk/opportunities/MultichainOpportunitiesService.js +60 -0
- package/dist/cjs/sdk/opportunities/OpportunitiesService.js +48 -0
- package/dist/cjs/sdk/opportunities/index.js +12 -0
- package/dist/cjs/sdk/types/multichain.js +1 -0
- package/dist/cjs/{common-utils → sdk}/utils/bigint-math.js +11 -11
- package/dist/cjs/sdk/utils/index.js +3 -0
- package/dist/cjs/sdk/utils/zod.js +12 -0
- package/dist/esm/common-utils/index.js +1 -1
- package/dist/esm/common-utils/utils/apy/calculate-safe-borrow-rate.js +1 -1
- package/dist/esm/common-utils/utils/assets-math.js +1 -1
- package/dist/esm/common-utils/utils/creditAccount/calc-health-factor.js +1 -1
- package/dist/esm/common-utils/utils/creditAccount/debt.js +1 -1
- package/dist/esm/common-utils/utils/creditAccount/quota-utils.js +1 -1
- package/dist/esm/common-utils/utils/index.js +1 -1
- package/dist/esm/common-utils/utils/strategies/leverage/calculate-max-leverage-factor.js +1 -1
- package/dist/esm/common-utils/utils/strategies/leverage/calculate-max-strategy-debt.js +1 -1
- package/dist/esm/common-utils/utils/strategies/strategy-info/calculate-total-points.js +1 -1
- package/dist/esm/common-utils/utils/strategies/strategy-info/get-cm-you-can-earn.js +1 -1
- package/dist/esm/common-utils/utils/validation/validate-open-account-pool-status.js +1 -1
- package/dist/esm/dev/AccountOpener.js +1 -1
- package/dist/esm/dev/withdrawalUtils.js +1 -1
- package/dist/esm/model/history.js +26 -0
- package/dist/esm/model/history.schema.js +76 -0
- package/dist/esm/model/index.js +11 -0
- package/dist/esm/model/liquidations.js +22 -0
- package/dist/esm/model/liquidations.schema.js +85 -0
- package/dist/esm/model/opportunities.js +51 -0
- package/dist/esm/model/opportunities.schema.js +201 -0
- package/dist/esm/model/package.json +1 -0
- package/dist/esm/model/positions.js +1 -0
- package/dist/esm/model/positions.schema.js +109 -0
- package/dist/esm/model/primitives.js +1 -0
- package/dist/esm/model/primitives.schema.js +75 -0
- package/dist/esm/new-sdk/AbstractNamespace.js +157 -0
- package/dist/esm/new-sdk/GearboxSDK.js +121 -0
- package/dist/esm/new-sdk/index.js +7 -0
- package/dist/esm/new-sdk/opportunities/OpportunitiesNamespace.js +121 -0
- package/dist/esm/new-sdk/opportunities/index.js +3 -0
- package/dist/esm/new-sdk/opportunities/types.js +1 -0
- package/dist/esm/new-sdk/package.json +1 -0
- package/dist/esm/new-sdk/types.js +21 -0
- package/dist/esm/new-sdk/utils/history.js +1 -0
- package/dist/esm/new-sdk/utils/index.js +2 -0
- package/dist/esm/offchain/GearboxAPI.js +32 -0
- package/dist/esm/offchain/index.js +5 -0
- package/dist/esm/offchain/opportunities/OffchainOpportunities.js +95 -0
- package/dist/esm/offchain/opportunities/index.js +2 -0
- package/dist/esm/offchain/package.json +1 -0
- package/dist/esm/offchain/types.js +1 -0
- package/dist/esm/preview/preview/buildDelayedPreview.js +1 -1
- package/dist/esm/preview/simulate/simulatePoolOperation.js +1 -1
- package/dist/esm/preview/trace/extractTransfers.js +1 -1
- package/dist/esm/rewards/rewards/api.js +1 -1
- package/dist/esm/rewards/rewards/extra-apy.js +1 -1
- package/dist/esm/sdk/MultichainSDK.js +18 -2
- package/dist/esm/sdk/OnchainSDK.js +8 -1
- package/dist/esm/sdk/accounts/CreditAccountsServiceV310.js +2 -2
- package/dist/esm/sdk/accounts/index.js +2 -2
- package/dist/esm/sdk/accounts/liquidations/LiquidationsService.js +164 -109
- package/dist/esm/sdk/accounts/liquidations/MultichainLiquidationsService.js +32 -38
- package/dist/esm/sdk/accounts/liquidations/constants.js +12 -1
- package/dist/esm/sdk/accounts/liquidations/index.js +2 -2
- package/dist/esm/sdk/accounts/withdrawal-compressor/RedemptionLoggerV310Contract.js +1 -1
- package/dist/esm/sdk/accounts/withdrawal-compressor/WithdrawalCompressorV310Contract.js +1 -1
- package/dist/esm/sdk/accounts/withdrawal-compressor/WithdrawalCompressorV311Contract.js +1 -1
- package/dist/esm/sdk/accounts/withdrawal-compressor/WithdrawalCompressorV313Contract.js +1 -1
- package/dist/esm/sdk/base/MultichainConstruct.js +79 -0
- package/dist/esm/sdk/base/TokensMeta.js +53 -2
- package/dist/esm/sdk/base/index.js +2 -1
- package/dist/esm/sdk/chain/chains.js +74 -2
- package/dist/esm/sdk/chain/detectNetwork.js +1 -1
- package/dist/esm/sdk/chain/index.js +2 -2
- package/dist/esm/sdk/core/createAddressProvider.js +1 -1
- package/dist/esm/sdk/core/errors.js +13 -1
- package/dist/esm/sdk/core/index.js +2 -2
- package/dist/esm/sdk/index.js +11 -5
- package/dist/esm/sdk/market/MarketConfiguratorContract.js +14 -0
- package/dist/esm/sdk/market/MarketSuite.js +159 -0
- package/dist/esm/sdk/market/credit/CreditFacadeV310BaseContract.js +1 -1
- package/dist/esm/sdk/market/credit/CreditManagerV310Contract.js +26 -0
- package/dist/esm/sdk/market/credit/CreditSuite.js +92 -0
- package/dist/esm/sdk/market/math.js +98 -0
- package/dist/esm/sdk/market/oracle/PriceOracleBaseContract.js +52 -0
- package/dist/esm/sdk/market/pool/LinearInterestRateModelContract.js +30 -0
- package/dist/esm/sdk/market/pool/PoolQuotaKeeperV310Contract.js +26 -0
- package/dist/esm/sdk/market/pool/PoolSuite.js +28 -0
- package/dist/esm/sdk/market/pool/PoolV310Contract.js +28 -1
- package/dist/esm/sdk/market/pool/math.js +41 -0
- package/dist/esm/sdk/market/pricefeeds/AbstractPriceFeed.js +17 -0
- package/dist/esm/sdk/market/zapper/IETHZapperContract.js +1 -1
- package/dist/esm/sdk/market/zapper/ZapperContract.js +1 -1
- package/dist/esm/sdk/opportunities/MultichainOpportunitiesService.js +59 -0
- package/dist/esm/sdk/opportunities/OpportunitiesService.js +47 -0
- package/dist/esm/sdk/opportunities/index.js +4 -0
- package/dist/esm/sdk/pools/PoolService.js +1 -1
- package/dist/esm/sdk/types/multichain.js +1 -0
- package/dist/esm/{common-utils → sdk}/utils/bigint-math.js +11 -11
- package/dist/esm/sdk/utils/index.js +3 -2
- package/dist/esm/sdk/utils/viem/simulateWithPriceUpdates.js +1 -1
- package/dist/esm/sdk/utils/zod.js +13 -2
- package/dist/types/common-utils/index.d.ts +1 -1
- package/dist/types/common-utils/utils/index.d.ts +1 -1
- package/dist/types/model/history.d.ts +105 -0
- package/dist/types/model/history.schema.d.ts +66 -0
- package/dist/types/model/index.d.ts +11 -0
- package/dist/types/model/liquidations.d.ts +238 -0
- package/dist/types/model/liquidations.schema.d.ts +294 -0
- package/dist/types/model/opportunities.d.ts +584 -0
- package/dist/types/model/opportunities.schema.d.ts +1037 -0
- package/dist/types/model/positions.d.ts +247 -0
- package/dist/types/model/positions.schema.d.ts +701 -0
- package/dist/types/model/primitives.d.ts +194 -0
- package/dist/types/model/primitives.schema.d.ts +81 -0
- package/dist/types/new-sdk/AbstractNamespace.d.ts +119 -0
- package/dist/types/new-sdk/GearboxSDK.d.ts +78 -0
- package/dist/types/new-sdk/index.d.ts +9 -0
- package/dist/types/new-sdk/opportunities/OpportunitiesNamespace.d.ts +69 -0
- package/dist/types/new-sdk/opportunities/index.d.ts +3 -0
- package/dist/types/new-sdk/opportunities/types.d.ts +66 -0
- package/dist/types/new-sdk/types.d.ts +149 -0
- package/dist/types/new-sdk/utils/history.d.ts +44 -0
- package/dist/types/new-sdk/utils/index.d.ts +2 -0
- package/dist/types/offchain/GearboxAPI.d.ts +31 -0
- package/dist/types/offchain/index.d.ts +5 -0
- package/dist/types/offchain/opportunities/OffchainOpportunities.d.ts +69 -0
- package/dist/types/offchain/opportunities/index.d.ts +2 -0
- package/dist/types/offchain/types.d.ts +50 -0
- package/dist/types/sdk/MultichainSDK.d.ts +15 -2
- package/dist/types/sdk/OnchainSDK.d.ts +9 -3
- package/dist/types/sdk/accounts/index.d.ts +3 -3
- package/dist/types/sdk/accounts/liquidations/LiquidationsService.d.ts +24 -16
- package/dist/types/sdk/accounts/liquidations/MultichainLiquidationsService.d.ts +26 -20
- package/dist/types/sdk/accounts/liquidations/constants.d.ts +12 -1
- package/dist/types/sdk/accounts/liquidations/index.d.ts +3 -3
- package/dist/types/sdk/accounts/liquidations/types.d.ts +34 -309
- package/dist/types/sdk/base/MultichainConstruct.d.ts +57 -0
- package/dist/types/sdk/base/TokensMeta.d.ts +26 -0
- package/dist/types/sdk/base/index.d.ts +2 -1
- package/dist/types/sdk/chain/chains.d.ts +68 -1
- package/dist/types/sdk/chain/index.d.ts +2 -2
- package/dist/types/sdk/core/errors.d.ts +10 -1
- package/dist/types/sdk/core/index.d.ts +2 -2
- package/dist/types/sdk/index.d.ts +15 -8
- package/dist/types/sdk/market/MarketConfiguratorContract.d.ts +9 -0
- package/dist/types/sdk/market/MarketSuite.d.ts +98 -1
- package/dist/types/sdk/market/credit/CreditManagerV310Contract.d.ts +14 -0
- package/dist/types/sdk/market/credit/CreditSuite.d.ts +43 -0
- package/dist/types/sdk/market/credit/types.d.ts +22 -0
- package/dist/types/sdk/market/index.d.ts +2 -2
- package/dist/types/sdk/market/math.d.ts +74 -0
- package/dist/types/sdk/market/oracle/PriceOracleBaseContract.d.ts +23 -0
- package/dist/types/sdk/market/oracle/types.d.ts +46 -0
- package/dist/types/sdk/market/pool/LinearInterestRateModelContract.d.ts +12 -0
- package/dist/types/sdk/market/pool/PoolQuotaKeeperV310Contract.d.ts +22 -1
- package/dist/types/sdk/market/pool/PoolSuite.d.ts +23 -0
- package/dist/types/sdk/market/pool/PoolV310Contract.d.ts +18 -0
- package/dist/types/sdk/market/pool/math.d.ts +57 -0
- package/dist/types/sdk/market/pool/types.d.ts +23 -0
- package/dist/types/sdk/market/pricefeeds/AbstractPriceFeed.d.ts +6 -0
- package/dist/types/sdk/market/pricefeeds/types.d.ts +10 -0
- package/dist/types/sdk/opportunities/MultichainOpportunitiesService.d.ts +40 -0
- package/dist/types/sdk/opportunities/OpportunitiesService.d.ts +42 -0
- package/dist/types/sdk/opportunities/index.d.ts +4 -0
- package/dist/types/sdk/types/index.d.ts +2 -1
- package/dist/types/sdk/types/multichain.d.ts +65 -0
- package/dist/types/sdk/types/state.d.ts +1 -1
- package/dist/types/sdk/types/transactions.d.ts +3 -0
- package/dist/types/{common-utils → sdk}/utils/bigint-math.d.ts +7 -11
- package/dist/types/sdk/utils/index.d.ts +3 -2
- package/dist/types/sdk/utils/zod.d.ts +6 -2
- package/package.json +16 -1
- package/dist/cjs/sdk/accounts/liquidations/helpers.js +0 -201
- package/dist/esm/sdk/accounts/liquidations/helpers.js +0 -192
- package/dist/types/sdk/accounts/liquidations/helpers.d.ts +0 -140
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
2
|
const require_common_utils_axios_cache_AxiosCache = require("./axios-cache/AxiosCache.js");
|
|
3
3
|
require("./axios-cache/index.js");
|
|
4
|
+
const require_sdk_utils_bigint_math = require("../sdk/utils/bigint-math.js");
|
|
4
5
|
const require_common_utils_charts_credit_manager = require("./charts/credit-manager.js");
|
|
5
6
|
const require_common_utils_charts_credit_session = require("./charts/credit-session.js");
|
|
6
7
|
const require_common_utils_charts_pool = require("./charts/pool.js");
|
|
@@ -12,7 +13,6 @@ const require_common_utils_utils_apy_calculate_borrow_rate_from_utilization = re
|
|
|
12
13
|
const require_common_utils_utils_price_math = require("./utils/price-math.js");
|
|
13
14
|
const require_common_utils_utils_apy_calculate_earnings = require("./utils/apy/calculate-earnings.js");
|
|
14
15
|
const require_common_utils_utils_apy_calculate_effective_borrow_rate = require("./utils/apy/calculate-effective-borrow-rate.js");
|
|
15
|
-
const require_common_utils_utils_bigint_math = require("./utils/bigint-math.js");
|
|
16
16
|
const require_common_utils_utils_apy_calculate_safe_borrow_rate = require("./utils/apy/calculate-safe-borrow-rate.js");
|
|
17
17
|
const require_common_utils_utils_apy_get_complex_apy_list = require("./utils/apy/get-complex-apy-list.js");
|
|
18
18
|
const require_common_utils_utils_apy_get_rate_with_fee = require("./utils/apy/get-rate-with-fee.js");
|
|
@@ -97,7 +97,7 @@ require("./utils/index.js");
|
|
|
97
97
|
exports.AssetUtils = require_common_utils_utils_assets_math.AssetUtils;
|
|
98
98
|
exports.AxiosCache = require_common_utils_axios_cache_AxiosCache.AxiosCache;
|
|
99
99
|
exports.BONUS_APY_FROM_POINTS = require_common_utils_utils_apy_bonus_apy_from_points.BONUS_APY_FROM_POINTS;
|
|
100
|
-
exports.BigIntMath =
|
|
100
|
+
exports.BigIntMath = require_sdk_utils_bigint_math.BigIntMath;
|
|
101
101
|
exports.CREDIT_SESSION_ID_BY_STATUS = require_common_utils_charts_credit_session.CREDIT_SESSION_ID_BY_STATUS;
|
|
102
102
|
exports.CREDIT_SESSION_STATUS_BY_ID = require_common_utils_charts_credit_session.CREDIT_SESSION_STATUS_BY_ID;
|
|
103
103
|
exports.ChartsCreditManagerData = require_common_utils_charts_credit_manager.ChartsCreditManagerData;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
const require_sdk_utils_bigint_math = require("../../../sdk/utils/bigint-math.js");
|
|
2
3
|
const require_sdk_constants_math = require("../../../sdk/constants/math.js");
|
|
3
4
|
const require_common_utils_utils_apy_calculate_borrow_rate_from_utilization = require("./calculate-borrow-rate-from-utilization.js");
|
|
4
|
-
const require_common_utils_utils_bigint_math = require("../bigint-math.js");
|
|
5
5
|
//#region src/common-utils/utils/apy/calculate-safe-borrow-rate.ts
|
|
6
6
|
/**
|
|
7
7
|
* Returns borrow rate multiplied by feeInterest
|
|
@@ -9,10 +9,10 @@ const require_common_utils_utils_bigint_math = require("../bigint-math.js");
|
|
|
9
9
|
function calculateSafeBorrowRate({ pool, creditManager, expectedLiquidityChange = 0n, availableLiquidityChange = 0n }) {
|
|
10
10
|
const expectedLiquidity = pool.expectedLiquidity + expectedLiquidityChange;
|
|
11
11
|
const availableLiquidity = pool.availableLiquidity + availableLiquidityChange;
|
|
12
|
-
const borrowed =
|
|
12
|
+
const borrowed = require_sdk_utils_bigint_math.BigIntMath.max(expectedLiquidity - availableLiquidity, 0n);
|
|
13
13
|
const EXTRA_PRECISION = 100n;
|
|
14
14
|
const ONE = require_sdk_constants_math.PERCENTAGE_FACTOR * EXTRA_PRECISION;
|
|
15
|
-
const utilization =
|
|
15
|
+
const utilization = require_sdk_utils_bigint_math.BigIntMath.min(expectedLiquidity > 0 ? borrowed * ONE / expectedLiquidity : 0n, ONE);
|
|
16
16
|
const rate = require_common_utils_utils_apy_calculate_borrow_rate_from_utilization.calculateBorrowRateFromUtilization(utilization, pool.interestModel, EXTRA_PRECISION);
|
|
17
17
|
return Number(rate * (BigInt(creditManager.feeInterest) + require_sdk_constants_math.PERCENTAGE_FACTOR) / require_sdk_constants_math.PERCENTAGE_DECIMALS / EXTRA_PRECISION);
|
|
18
18
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
const require_sdk_utils_bigint_math = require("../../sdk/utils/bigint-math.js");
|
|
2
3
|
const require_common_utils_utils_price_math = require("./price-math.js");
|
|
3
|
-
const require_common_utils_utils_bigint_math = require("./bigint-math.js");
|
|
4
4
|
const require_common_utils_utils_creditAccount_sort = require("./creditAccount/sort.js");
|
|
5
5
|
//#region src/common-utils/utils/assets-math.ts
|
|
6
6
|
/**
|
|
@@ -86,13 +86,13 @@ var AssetUtils = class AssetUtils {
|
|
|
86
86
|
const unwrappedPrice = prices[unwrappedAddress] || 0n;
|
|
87
87
|
const wrappedToken = tokensList[wrappedAddress];
|
|
88
88
|
const wrappedPrice = prices[wrappedAddress] || 0n;
|
|
89
|
-
const unwrappedInWrapped = require_common_utils_utils_price_math.PriceUtils.convertByPrice(require_common_utils_utils_price_math.PriceUtils.calcTotalPrice(unwrappedPrice,
|
|
89
|
+
const unwrappedInWrapped = require_common_utils_utils_price_math.PriceUtils.convertByPrice(require_common_utils_utils_price_math.PriceUtils.calcTotalPrice(unwrappedPrice, require_sdk_utils_bigint_math.BigIntMath.max(0n, unwrappedAmount), unwrappedToken.decimals), {
|
|
90
90
|
price: wrappedPrice,
|
|
91
91
|
decimals: wrappedToken.decimals
|
|
92
92
|
});
|
|
93
93
|
assetsRecord[wrappedAddress] = {
|
|
94
94
|
token: wrappedAddress,
|
|
95
|
-
balance:
|
|
95
|
+
balance: require_sdk_utils_bigint_math.BigIntMath.max(0n, wrappedAmount) + unwrappedInWrapped
|
|
96
96
|
};
|
|
97
97
|
delete assetsRecord[unwrappedAddress];
|
|
98
98
|
return [
|
|
@@ -124,7 +124,7 @@ var AssetUtils = class AssetUtils {
|
|
|
124
124
|
const resRecord = b.reduce((acc, bAsset) => {
|
|
125
125
|
const aAsset = acc[bAsset.token];
|
|
126
126
|
const { balance: amount = 0n } = aAsset || {};
|
|
127
|
-
const amountSum =
|
|
127
|
+
const amountSum = require_sdk_utils_bigint_math.BigIntMath.max(0n, bAsset.balance) + require_sdk_utils_bigint_math.BigIntMath.max(0n, amount);
|
|
128
128
|
const aOrB = aAsset || bAsset;
|
|
129
129
|
acc[bAsset.token] = {
|
|
130
130
|
...aOrB,
|
|
@@ -150,7 +150,7 @@ var AssetUtils = class AssetUtils {
|
|
|
150
150
|
const bRecord = AssetUtils.constructAssetRecord(b);
|
|
151
151
|
return a.map((asset) => {
|
|
152
152
|
const { balance: bAmount = 0n } = bRecord[asset.token] || {};
|
|
153
|
-
const amountSum =
|
|
153
|
+
const amountSum = require_sdk_utils_bigint_math.BigIntMath.max(0n, asset.balance) + require_sdk_utils_bigint_math.BigIntMath.max(0n, bAmount);
|
|
154
154
|
return {
|
|
155
155
|
...asset,
|
|
156
156
|
balance: amountSum
|
|
@@ -173,10 +173,10 @@ var AssetUtils = class AssetUtils {
|
|
|
173
173
|
const bRecord = AssetUtils.constructAssetRecord(b);
|
|
174
174
|
return a.map((asset) => {
|
|
175
175
|
const { balance: bAmount = 0n } = bRecord[asset.token] || {};
|
|
176
|
-
const amountSub =
|
|
176
|
+
const amountSub = require_sdk_utils_bigint_math.BigIntMath.max(0n, asset.balance) - require_sdk_utils_bigint_math.BigIntMath.max(0n, bAmount);
|
|
177
177
|
return {
|
|
178
178
|
...asset,
|
|
179
|
-
balance:
|
|
179
|
+
balance: require_sdk_utils_bigint_math.BigIntMath.max(0n, amountSub)
|
|
180
180
|
};
|
|
181
181
|
});
|
|
182
182
|
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
const require_sdk_utils_bigint_math = require("../../../sdk/utils/bigint-math.js");
|
|
2
3
|
const require_sdk_constants_math = require("../../../sdk/constants/math.js");
|
|
3
4
|
require("../../../sdk/index.js");
|
|
4
5
|
const require_common_utils_utils_price_math = require("../price-math.js");
|
|
5
|
-
const require_common_utils_utils_bigint_math = require("../bigint-math.js");
|
|
6
6
|
//#region src/common-utils/utils/creditAccount/calc-health-factor.ts
|
|
7
7
|
const MAX_UINT16 = 65535;
|
|
8
8
|
/**
|
|
@@ -29,7 +29,7 @@ function calcHealthFactor({ assets, quotas, quotasInfo, liquidationThresholds, u
|
|
|
29
29
|
const quota = quotas[tokenAddress];
|
|
30
30
|
const quotaBalance = isActive ? quota?.balance || 0n : 0n;
|
|
31
31
|
const quotaMoney = require_common_utils_utils_price_math.PriceUtils.calcTotalPrice(underlyingPrice, quotaBalance, underlyingDecimals);
|
|
32
|
-
return acc + (quota ?
|
|
32
|
+
return acc + (quota ? require_sdk_utils_bigint_math.BigIntMath.min(quotaMoney, tokenLtMoney) : tokenLtMoney);
|
|
33
33
|
}, 0n);
|
|
34
34
|
const borrowedMoney = require_common_utils_utils_price_math.PriceUtils.calcTotalPrice(underlyingPrice || require_sdk_constants_math.PRICE_DECIMALS, debt, underlyingDecimals);
|
|
35
35
|
const hfInPercent = borrowedMoney > 0n ? assetMoney * require_sdk_constants_math.PERCENTAGE_FACTOR / borrowedMoney : 0n;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
const require_sdk_utils_bigint_math = require("../../../sdk/utils/bigint-math.js");
|
|
2
3
|
const require_sdk_constants_math = require("../../../sdk/constants/math.js");
|
|
3
4
|
require("../../../sdk/index.js");
|
|
4
5
|
const require_common_utils_utils_price_math = require("../price-math.js");
|
|
5
|
-
const require_common_utils_utils_bigint_math = require("../bigint-math.js");
|
|
6
6
|
//#region src/common-utils/utils/creditAccount/debt.ts
|
|
7
7
|
/**
|
|
8
8
|
* Calculates additional debt that can be borrowed while targeting
|
|
@@ -19,7 +19,7 @@ const require_common_utils_utils_bigint_math = require("../bigint-math.js");
|
|
|
19
19
|
*/
|
|
20
20
|
function calcMaxDebtIncrease(healthFactor, debt, underlyingLT, minHf = Number(require_sdk_constants_math.PERCENTAGE_FACTOR)) {
|
|
21
21
|
const result = debt * BigInt(healthFactor - minHf) / BigInt(minHf - underlyingLT);
|
|
22
|
-
return
|
|
22
|
+
return require_sdk_utils_bigint_math.BigIntMath.max(0n, result);
|
|
23
23
|
}
|
|
24
24
|
/**
|
|
25
25
|
* Calculates maximum debt capacity for lending based on collateral mix.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
const require_sdk_utils_bigint_math = require("../../../sdk/utils/bigint-math.js");
|
|
2
3
|
const require_sdk_constants_math = require("../../../sdk/constants/math.js");
|
|
3
4
|
require("../../../sdk/index.js");
|
|
4
|
-
const require_common_utils_utils_bigint_math = require("../bigint-math.js");
|
|
5
5
|
//#region src/common-utils/utils/creditAccount/quota-utils.ts
|
|
6
6
|
/**
|
|
7
7
|
* Rounds quota deltas to protocol precision step (`PERCENTAGE_FACTOR`).
|
|
@@ -25,7 +25,7 @@ function roundUpQuota(quotaChange) {
|
|
|
25
25
|
* @returns Recommended rounded quota.
|
|
26
26
|
*/
|
|
27
27
|
function calcRecommendedQuota({ amount, debt, lt, quotaReserve }) {
|
|
28
|
-
return roundUpQuota(
|
|
28
|
+
return roundUpQuota(require_sdk_utils_bigint_math.BigIntMath.min(debt, amount * lt / require_sdk_constants_math.PERCENTAGE_FACTOR) * (require_sdk_constants_math.PERCENTAGE_FACTOR + quotaReserve) / require_sdk_constants_math.PERCENTAGE_FACTOR);
|
|
29
29
|
}
|
|
30
30
|
/**
|
|
31
31
|
* Computes default quota for a token without debt capping.
|
|
@@ -64,9 +64,9 @@ function calcQuotaUpdate(props) {
|
|
|
64
64
|
const quotaBought = Object.values(initialQuotas).reduce((sum, q) => sum + roundUpQuota(q?.quota || 0n), 0n);
|
|
65
65
|
const quotaReduced = Object.values(quotaDecrease).reduce((sum, q) => {
|
|
66
66
|
const quotaBalance = q.balance || 0n;
|
|
67
|
-
return sum + (quotaBalance === -39614081257132168796771975168n ?
|
|
67
|
+
return sum + (quotaBalance === -39614081257132168796771975168n ? require_sdk_utils_bigint_math.BigIntMath.neg(roundUpQuota(initialQuotas[q.token]?.quota || 0n)) : quotaBalance);
|
|
68
68
|
}, 0n);
|
|
69
|
-
const maxQuotaIncrease = roundUpQuota(
|
|
69
|
+
const maxQuotaIncrease = roundUpQuota(require_sdk_utils_bigint_math.BigIntMath.max(quotaCap - (quotaBought + quotaReduced), 0n));
|
|
70
70
|
const quotaIncrease = Object.keys(allowedToObtain).reduce((acc, token) => {
|
|
71
71
|
const ch = getSingleQuotaChange(token, maxQuotaIncrease, props);
|
|
72
72
|
if (ch && ch.balance > 0) acc[ch.token] = ch;
|
|
@@ -130,7 +130,7 @@ function getSingleQuotaChange(token, unsafeMaxQuotaIncrease, props) {
|
|
|
130
130
|
quotaReserve: props.quotaReserve,
|
|
131
131
|
amount: amountInTarget
|
|
132
132
|
})) - initialQuota);
|
|
133
|
-
const quotaChange = unsafeQuotaChange > 0 ?
|
|
133
|
+
const quotaChange = unsafeQuotaChange > 0 ? require_sdk_utils_bigint_math.BigIntMath.min(maxQuotaIncrease, unsafeQuotaChange) : unsafeQuotaChange < 0 && require_sdk_utils_bigint_math.BigIntMath.abs(unsafeQuotaChange) >= initialQuota ? require_sdk_constants_math.MIN_INT96 : unsafeQuotaChange;
|
|
134
134
|
const correctIncrease = assetAfter && props.allowedToObtain[token] && quotaChange > 0;
|
|
135
135
|
const correctDecrease = assetAfter && props.allowedToSpend[token] && quotaChange < 0;
|
|
136
136
|
if (correctIncrease || correctDecrease) return {
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
const require_sdk_utils_bigint_math = require("../../sdk/utils/bigint-math.js");
|
|
2
3
|
const require_common_utils_utils_apy_bonus_apy_from_points = require("./apy/bonus-apy-from-points.js");
|
|
3
4
|
const require_common_utils_utils_apy_calculate_borrow_rate_from_utilization = require("./apy/calculate-borrow-rate-from-utilization.js");
|
|
4
5
|
const require_common_utils_utils_price_math = require("./price-math.js");
|
|
5
6
|
const require_common_utils_utils_apy_calculate_earnings = require("./apy/calculate-earnings.js");
|
|
6
7
|
const require_common_utils_utils_apy_calculate_effective_borrow_rate = require("./apy/calculate-effective-borrow-rate.js");
|
|
7
|
-
const require_common_utils_utils_bigint_math = require("./bigint-math.js");
|
|
8
8
|
const require_common_utils_utils_apy_calculate_safe_borrow_rate = require("./apy/calculate-safe-borrow-rate.js");
|
|
9
9
|
const require_common_utils_utils_apy_get_complex_apy_list = require("./apy/get-complex-apy-list.js");
|
|
10
10
|
const require_common_utils_utils_apy_get_rate_with_fee = require("./apy/get-rate-with-fee.js");
|
|
@@ -91,7 +91,7 @@ const require_common_utils_utils_trace = require("./trace.js");
|
|
|
91
91
|
require("./validation/index.js");
|
|
92
92
|
exports.AssetUtils = require_common_utils_utils_assets_math.AssetUtils;
|
|
93
93
|
exports.BONUS_APY_FROM_POINTS = require_common_utils_utils_apy_bonus_apy_from_points.BONUS_APY_FROM_POINTS;
|
|
94
|
-
exports.BigIntMath =
|
|
94
|
+
exports.BigIntMath = require_sdk_utils_bigint_math.BigIntMath;
|
|
95
95
|
exports.EMPTY_ADDRESS = require_common_utils_utils_constants.EMPTY_ADDRESS;
|
|
96
96
|
exports.EMPTY_ARRAY = require_common_utils_utils_constants.EMPTY_ARRAY;
|
|
97
97
|
exports.EMPTY_OBJECT = require_common_utils_utils_constants.EMPTY_OBJECT;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
const require_sdk_utils_bigint_math = require("../../../../sdk/utils/bigint-math.js");
|
|
2
3
|
const require_sdk_constants_math = require("../../../../sdk/constants/math.js");
|
|
3
4
|
require("../../../../sdk/index.js");
|
|
4
|
-
const require_common_utils_utils_bigint_math = require("../../bigint-math.js");
|
|
5
5
|
const require_common_utils_utils_strategies_leverage_calculate_loss_coefficient = require("./calculate-loss-coefficient.js");
|
|
6
6
|
const require_common_utils_utils_strategies_leverage_max_leverage = require("./max-leverage.js");
|
|
7
7
|
//#region src/common-utils/utils/strategies/leverage/calculate-max-leverage-factor.ts
|
|
@@ -10,7 +10,7 @@ function calculateMaxLeverageFactor({ targetToken, slippage, creditManagers, con
|
|
|
10
10
|
const maxPossibleLeverage = require_common_utils_utils_strategies_leverage_max_leverage.maxLeverage(targetToken, creditManagers);
|
|
11
11
|
const coefficient = require_common_utils_utils_strategies_leverage_calculate_loss_coefficient.calculateLossCoefficient(slippage, constantLoss);
|
|
12
12
|
const maxLeverageValue = BigInt(maxPossibleLeverage) * coefficient / require_sdk_constants_math.PERCENTAGE_FACTOR;
|
|
13
|
-
return leverageLimit !== void 0 ?
|
|
13
|
+
return leverageLimit !== void 0 ? require_sdk_utils_bigint_math.BigIntMath.min(BigInt(leverageLimit), maxLeverageValue) : maxLeverageValue;
|
|
14
14
|
}
|
|
15
15
|
//#endregion
|
|
16
16
|
exports.calculateMaxLeverageFactor = calculateMaxLeverageFactor;
|
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
const require_sdk_utils_bigint_math = require("../../../../sdk/utils/bigint-math.js");
|
|
2
3
|
const require_sdk_constants_math = require("../../../../sdk/constants/math.js");
|
|
3
|
-
const require_common_utils_utils_bigint_math = require("../../bigint-math.js");
|
|
4
4
|
const require_common_utils_utils_strategies_leverage_calculate_loss_coefficient = require("./calculate-loss-coefficient.js");
|
|
5
5
|
const require_common_utils_utils_strategies_leverage_max_leverage = require("./max-leverage.js");
|
|
6
6
|
//#region src/common-utils/utils/strategies/leverage/calculate-max-strategy-debt.ts
|
|
7
7
|
const DEFAULT_DEBT_CONSTANT_LOSS = 1500n;
|
|
8
8
|
function calculateMaxStrategyDebt({ targetToken, amount, creditManager, slippage, constantLoss = DEFAULT_DEBT_CONSTANT_LOSS, swapCollateral = true }) {
|
|
9
9
|
const targetQuota = creditManager.quotas[targetToken];
|
|
10
|
-
const quotaLeft = swapCollateral && targetQuota ?
|
|
10
|
+
const quotaLeft = swapCollateral && targetQuota ? require_sdk_utils_bigint_math.BigIntMath.max(0n, targetQuota.limit - targetQuota.totalQuoted) : void 0;
|
|
11
11
|
if (quotaLeft === 0n) return creditManager.minDebt;
|
|
12
|
-
const availableLiquidity = quotaLeft !== void 0 ?
|
|
12
|
+
const availableLiquidity = quotaLeft !== void 0 ? require_sdk_utils_bigint_math.BigIntMath.min(quotaLeft, creditManager.availableToBorrow) : creditManager.availableToBorrow;
|
|
13
13
|
const coefficient = require_common_utils_utils_strategies_leverage_calculate_loss_coefficient.calculateLossCoefficient(slippage, constantLoss);
|
|
14
|
-
const effectiveMaxDebt =
|
|
14
|
+
const effectiveMaxDebt = require_sdk_utils_bigint_math.BigIntMath.max(require_sdk_utils_bigint_math.BigIntMath.min(availableLiquidity, creditManager.maxDebt), creditManager.minDebt);
|
|
15
15
|
if (amount === 0n) return effectiveMaxDebt;
|
|
16
16
|
const maxPossibleLeverage = require_common_utils_utils_strategies_leverage_max_leverage.maxLeverage(targetToken, [creditManager]);
|
|
17
17
|
const effectiveDebt = amount * BigInt(maxPossibleLeverage) / require_sdk_constants_math.LEVERAGE_DECIMALS * coefficient / require_sdk_constants_math.PERCENTAGE_FACTOR;
|
|
18
|
-
return
|
|
18
|
+
return require_sdk_utils_bigint_math.BigIntMath.max(require_sdk_utils_bigint_math.BigIntMath.min(effectiveDebt, effectiveMaxDebt), creditManager.minDebt);
|
|
19
19
|
}
|
|
20
20
|
//#endregion
|
|
21
21
|
exports.calculateMaxStrategyDebt = calculateMaxStrategyDebt;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
const require_sdk_utils_bigint_math = require("../../../../sdk/utils/bigint-math.js");
|
|
2
3
|
const require_sdk_constants_math = require("../../../../sdk/constants/math.js");
|
|
3
4
|
const require_common_utils_utils_price_math = require("../../price-math.js");
|
|
4
|
-
const require_common_utils_utils_bigint_math = require("../../bigint-math.js");
|
|
5
5
|
const require_common_utils_utils_strategies_points_get_points_rates = require("../points/get-points-rates.js");
|
|
6
6
|
//#region src/common-utils/utils/strategies/strategy-info/calculate-total-points.ts
|
|
7
7
|
const THRESHOLD_POINTS = 1e3;
|
|
@@ -23,7 +23,7 @@ function calculateTotalPoints({ pointsAsset, cmAddress, info, totalValue, assetV
|
|
|
23
23
|
const leverage = assetAmountInUnderlying * require_sdk_constants_math.LEVERAGE_DECIMALS / assetValue;
|
|
24
24
|
const rates = require_common_utils_utils_strategies_points_get_points_rates.getPointsRates(info.rewards, leverage);
|
|
25
25
|
const debt = totalValue - assetValue;
|
|
26
|
-
const leverageDebt =
|
|
26
|
+
const leverageDebt = require_sdk_utils_bigint_math.BigIntMath.min(assetAmountInUnderlying, debt > 0 ? debt : 0n) * require_sdk_constants_math.LEVERAGE_DECIMALS / assetValue;
|
|
27
27
|
const debtRewardsAvailable = (info.debtRewards || []).filter((r) => r.cm === cmAddress || r.cm === "any");
|
|
28
28
|
return {
|
|
29
29
|
info,
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
const require_sdk_utils_bigint_math = require("../../../../sdk/utils/bigint-math.js");
|
|
2
3
|
const require_sdk_constants_math = require("../../../../sdk/constants/math.js");
|
|
3
4
|
const require_sdk_utils_formatter = require("../../../../sdk/utils/formatter.js");
|
|
4
5
|
const require_common_utils_utils_price_math = require("../../price-math.js");
|
|
5
6
|
const require_common_utils_utils_apy_calculate_earnings = require("../../apy/calculate-earnings.js");
|
|
6
7
|
const require_common_utils_utils_apy_calculate_effective_borrow_rate = require("../../apy/calculate-effective-borrow-rate.js");
|
|
7
|
-
const require_common_utils_utils_bigint_math = require("../../bigint-math.js");
|
|
8
8
|
const require_common_utils_utils_apy_get_complex_apy_list = require("../../apy/get-complex-apy-list.js");
|
|
9
9
|
const require_common_utils_utils_apy_get_safe_base_borrow_rate = require("../../apy/get-safe-base-borrow-rate.js");
|
|
10
10
|
const require_common_utils_utils_strategies_leverage_get_collateral_by_debt = require("../leverage/get-collateral-by-debt.js");
|
|
@@ -112,7 +112,7 @@ function getCMYouCanEarn({ allPrices, creditManager, tokensList, delayedPhantoms
|
|
|
112
112
|
});
|
|
113
113
|
const lt = creditManager.liquidationThresholds[targetTokenAddress] || 0n;
|
|
114
114
|
const recommendedAssetValueFrom = require_common_utils_utils_strategies_leverage_get_collateral_by_debt.getCollateralByDebt(recommendedDebt_initial.maxDebt, lt, require_sdk_utils_formatter.toBN("1.013", 4));
|
|
115
|
-
const assetValueFrom =
|
|
115
|
+
const assetValueFrom = require_sdk_utils_bigint_math.BigIntMath.min(assetValueFrom_initial, recommendedAssetValueFrom);
|
|
116
116
|
if (!assetValueFrom || assetValueFrom === 0n) return {
|
|
117
117
|
status: "error",
|
|
118
118
|
description: "Asset value from is zero",
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
-
const
|
|
2
|
+
const require_sdk_utils_bigint_math = require("../../../sdk/utils/bigint-math.js");
|
|
3
3
|
const require_common_utils_utils_validation_validate_open_account_pool_quota_status = require("./validate-open-account-pool-quota-status.js");
|
|
4
4
|
//#region src/common-utils/utils/validation/validate-open-account-pool-status.ts
|
|
5
5
|
function validateOpenAccountPoolStatus(props) {
|
|
6
6
|
const { debt, creditManager, pool, targetToken } = props;
|
|
7
|
-
const effectiveDebt =
|
|
7
|
+
const effectiveDebt = require_sdk_utils_bigint_math.BigIntMath.max(creditManager.minDebt, debt);
|
|
8
8
|
const hasDebtLimit = creditManager.totalDebtLimit >= 0n;
|
|
9
|
-
const debtLimitLeft =
|
|
9
|
+
const debtLimitLeft = require_sdk_utils_bigint_math.BigIntMath.max(creditManager.totalDebtLimit - creditManager.totalDebt, 0n);
|
|
10
10
|
const { totalDebtLimit = 0n, totalBorrowed = 0n } = pool || {};
|
|
11
11
|
const hasPoolDebtLimit = totalDebtLimit > 0n;
|
|
12
12
|
const poolDebtLimitLeft = totalDebtLimit - totalBorrowed;
|
|
13
13
|
const canOpenMinDebt = creditManager.minDebt <= debtLimitLeft && creditManager.minDebt <= poolDebtLimitLeft && creditManager.minDebt <= creditManager.availableToBorrow;
|
|
14
|
-
const minPositionSize =
|
|
14
|
+
const minPositionSize = require_sdk_utils_bigint_math.BigIntMath.min(require_sdk_utils_bigint_math.BigIntMath.min(debtLimitLeft, poolDebtLimitLeft), creditManager.availableToBorrow);
|
|
15
15
|
if (hasDebtLimit && effectiveDebt > debtLimitLeft) return {
|
|
16
16
|
message: "insufficientDebtLimit",
|
|
17
17
|
amount: debtLimitLeft,
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
//#region src/model/history.ts
|
|
3
|
+
/**
|
|
4
|
+
* Every {@link PoolHistoryMetric}, for callers that enumerate them.
|
|
5
|
+
**/
|
|
6
|
+
const POOL_HISTORY_METRICS = [
|
|
7
|
+
"depositApy",
|
|
8
|
+
"borrowApy",
|
|
9
|
+
"dieselRate",
|
|
10
|
+
"supplied",
|
|
11
|
+
"borrowed",
|
|
12
|
+
"availableLiquidity"
|
|
13
|
+
];
|
|
14
|
+
/**
|
|
15
|
+
* Every {@link StrategyHistoryMetric}, for callers that enumerate them.
|
|
16
|
+
**/
|
|
17
|
+
const STRATEGY_HISTORY_METRICS = [
|
|
18
|
+
"netApy",
|
|
19
|
+
"borrowApy",
|
|
20
|
+
"collateralApy",
|
|
21
|
+
"tvl",
|
|
22
|
+
"collateralPrice",
|
|
23
|
+
"collateralUsdPrice",
|
|
24
|
+
"underlyingUsdPrice"
|
|
25
|
+
];
|
|
26
|
+
//#endregion
|
|
27
|
+
exports.POOL_HISTORY_METRICS = POOL_HISTORY_METRICS;
|
|
28
|
+
exports.STRATEGY_HISTORY_METRICS = STRATEGY_HISTORY_METRICS;
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
const require_model_primitives_schema = require("./primitives.schema.js");
|
|
3
|
+
const require_model_opportunities_schema = require("./opportunities.schema.js");
|
|
4
|
+
let zod_v4 = require("zod/v4");
|
|
5
|
+
//#region src/model/history.schema.ts
|
|
6
|
+
/**
|
|
7
|
+
* Runtime schemas for {@link ./history.js}, see the note in
|
|
8
|
+
* `primitives.schema.ts` on why they are written by hand.
|
|
9
|
+
**/
|
|
10
|
+
/**
|
|
11
|
+
* {@link HistoryRange}
|
|
12
|
+
**/
|
|
13
|
+
const historyRangeSchema = zod_v4.z.union([
|
|
14
|
+
zod_v4.z.literal("1d"),
|
|
15
|
+
zod_v4.z.literal("1w"),
|
|
16
|
+
zod_v4.z.literal("1m"),
|
|
17
|
+
zod_v4.z.literal("1y"),
|
|
18
|
+
zod_v4.z.literal("max")
|
|
19
|
+
]);
|
|
20
|
+
/**
|
|
21
|
+
* {@link PoolHistoryMetric}
|
|
22
|
+
**/
|
|
23
|
+
const poolHistoryMetricSchema = zod_v4.z.union([
|
|
24
|
+
zod_v4.z.literal("depositApy"),
|
|
25
|
+
zod_v4.z.literal("borrowApy"),
|
|
26
|
+
zod_v4.z.literal("dieselRate"),
|
|
27
|
+
zod_v4.z.literal("supplied"),
|
|
28
|
+
zod_v4.z.literal("borrowed"),
|
|
29
|
+
zod_v4.z.literal("availableLiquidity")
|
|
30
|
+
]);
|
|
31
|
+
/**
|
|
32
|
+
* {@link StrategyHistoryMetric}
|
|
33
|
+
**/
|
|
34
|
+
const strategyHistoryMetricSchema = zod_v4.z.union([
|
|
35
|
+
zod_v4.z.literal("netApy"),
|
|
36
|
+
zod_v4.z.literal("borrowApy"),
|
|
37
|
+
zod_v4.z.literal("collateralApy"),
|
|
38
|
+
zod_v4.z.literal("tvl"),
|
|
39
|
+
zod_v4.z.literal("collateralPrice"),
|
|
40
|
+
zod_v4.z.literal("collateralUsdPrice"),
|
|
41
|
+
zod_v4.z.literal("underlyingUsdPrice")
|
|
42
|
+
]);
|
|
43
|
+
/**
|
|
44
|
+
* {@link HistoryMetric}
|
|
45
|
+
**/
|
|
46
|
+
const historyMetricSchema = zod_v4.z.union([poolHistoryMetricSchema, strategyHistoryMetricSchema]);
|
|
47
|
+
/**
|
|
48
|
+
* {@link HistoryPoint}
|
|
49
|
+
**/
|
|
50
|
+
const historyPointSchema = zod_v4.z.object({
|
|
51
|
+
timestamp: require_model_primitives_schema.timestampSchema,
|
|
52
|
+
value: zod_v4.z.number()
|
|
53
|
+
});
|
|
54
|
+
/**
|
|
55
|
+
* {@link HistoryChartMetadata}
|
|
56
|
+
*
|
|
57
|
+
* TODO: empty until the backend specifies the payload.
|
|
58
|
+
**/
|
|
59
|
+
const historyChartMetadataSchema = zod_v4.z.object({});
|
|
60
|
+
/**
|
|
61
|
+
* {@link HistorySeries}
|
|
62
|
+
**/
|
|
63
|
+
const historySeriesSchema = zod_v4.z.object({
|
|
64
|
+
metric: historyMetricSchema,
|
|
65
|
+
points: zod_v4.z.array(historyPointSchema),
|
|
66
|
+
metadata: historyChartMetadataSchema
|
|
67
|
+
});
|
|
68
|
+
/**
|
|
69
|
+
* {@link OpportunityHistoryQuery}
|
|
70
|
+
**/
|
|
71
|
+
const opportunityHistoryQuerySchema = zod_v4.z.object({
|
|
72
|
+
opportunity: require_model_opportunities_schema.opportunityKeySchema,
|
|
73
|
+
range: historyRangeSchema,
|
|
74
|
+
metric: historyMetricSchema
|
|
75
|
+
});
|
|
76
|
+
//#endregion
|
|
77
|
+
exports.historyChartMetadataSchema = historyChartMetadataSchema;
|
|
78
|
+
exports.historyMetricSchema = historyMetricSchema;
|
|
79
|
+
exports.historyPointSchema = historyPointSchema;
|
|
80
|
+
exports.historyRangeSchema = historyRangeSchema;
|
|
81
|
+
exports.historySeriesSchema = historySeriesSchema;
|
|
82
|
+
exports.opportunityHistoryQuerySchema = opportunityHistoryQuerySchema;
|
|
83
|
+
exports.poolHistoryMetricSchema = poolHistoryMetricSchema;
|
|
84
|
+
exports.strategyHistoryMetricSchema = strategyHistoryMetricSchema;
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
const require_model_history = require("./history.js");
|
|
3
|
+
const require_model_primitives_schema = require("./primitives.schema.js");
|
|
4
|
+
const require_model_opportunities_schema = require("./opportunities.schema.js");
|
|
5
|
+
const require_model_history_schema = require("./history.schema.js");
|
|
6
|
+
const require_model_liquidations = require("./liquidations.js");
|
|
7
|
+
const require_model_liquidations_schema = require("./liquidations.schema.js");
|
|
8
|
+
const require_model_opportunities = require("./opportunities.js");
|
|
9
|
+
require("./positions.js");
|
|
10
|
+
const require_model_positions_schema = require("./positions.schema.js");
|
|
11
|
+
require("./primitives.js");
|
|
12
|
+
exports.POOL_HISTORY_METRICS = require_model_history.POOL_HISTORY_METRICS;
|
|
13
|
+
exports.STRATEGY_HISTORY_METRICS = require_model_history.STRATEGY_HISTORY_METRICS;
|
|
14
|
+
exports.amountSchema = require_model_primitives_schema.amountSchema;
|
|
15
|
+
exports.apyBreakdownSchema = require_model_opportunities_schema.apyBreakdownSchema;
|
|
16
|
+
exports.assetTypeSchema = require_model_primitives_schema.assetTypeSchema;
|
|
17
|
+
exports.bpsSchema = require_model_primitives_schema.bpsSchema;
|
|
18
|
+
exports.chainIdSchema = require_model_primitives_schema.chainIdSchema;
|
|
19
|
+
exports.curatorSchema = require_model_primitives_schema.curatorSchema;
|
|
20
|
+
exports.delayedReceivedAssetSchema = require_model_liquidations_schema.delayedReceivedAssetSchema;
|
|
21
|
+
exports.historyChartMetadataSchema = require_model_history_schema.historyChartMetadataSchema;
|
|
22
|
+
exports.historyMetricSchema = require_model_history_schema.historyMetricSchema;
|
|
23
|
+
exports.historyPointSchema = require_model_history_schema.historyPointSchema;
|
|
24
|
+
exports.historyRangeSchema = require_model_history_schema.historyRangeSchema;
|
|
25
|
+
exports.historySeriesSchema = require_model_history_schema.historySeriesSchema;
|
|
26
|
+
exports.instantReceivedAssetSchema = require_model_liquidations_schema.instantReceivedAssetSchema;
|
|
27
|
+
exports.leverageSchema = require_model_primitives_schema.leverageSchema;
|
|
28
|
+
exports.liquidatableAccountFilterSchema = require_model_liquidations_schema.liquidatableAccountFilterSchema;
|
|
29
|
+
exports.liquidatableAccountSchema = require_model_liquidations_schema.liquidatableAccountSchema;
|
|
30
|
+
exports.liquidationApprovalSchema = require_model_liquidations_schema.liquidationApprovalSchema;
|
|
31
|
+
exports.liquidationDetailsSchema = require_model_liquidations_schema.liquidationDetailsSchema;
|
|
32
|
+
exports.liquidationPositionSchema = require_model_liquidations_schema.liquidationPositionSchema;
|
|
33
|
+
exports.matchesLiquidatableAccountFilter = require_model_liquidations.matchesLiquidatableAccountFilter;
|
|
34
|
+
exports.matchesOpportunityFilter = require_model_opportunities.matchesOpportunityFilter;
|
|
35
|
+
exports.opportunityBaseSchema = require_model_opportunities_schema.opportunityBaseSchema;
|
|
36
|
+
exports.opportunityDetailSchema = require_model_opportunities_schema.opportunityDetailSchema;
|
|
37
|
+
exports.opportunityFilterSchema = require_model_opportunities_schema.opportunityFilterSchema;
|
|
38
|
+
exports.opportunityHistoryQuerySchema = require_model_history_schema.opportunityHistoryQuerySchema;
|
|
39
|
+
exports.opportunityId = require_model_opportunities.opportunityId;
|
|
40
|
+
exports.opportunityKeySchema = require_model_opportunities_schema.opportunityKeySchema;
|
|
41
|
+
exports.opportunityKindSchema = require_model_opportunities_schema.opportunityKindSchema;
|
|
42
|
+
exports.opportunitySchema = require_model_opportunities_schema.opportunitySchema;
|
|
43
|
+
exports.pnlBreakdownSchema = require_model_positions_schema.pnlBreakdownSchema;
|
|
44
|
+
exports.pointRewardsSchema = require_model_opportunities_schema.pointRewardsSchema;
|
|
45
|
+
exports.pointsProgramPnLSchema = require_model_positions_schema.pointsProgramPnLSchema;
|
|
46
|
+
exports.pointsProgramSchema = require_model_opportunities_schema.pointsProgramSchema;
|
|
47
|
+
exports.pointsRewardsPnLSchema = require_model_positions_schema.pointsRewardsPnLSchema;
|
|
48
|
+
exports.poolHistoryMetricSchema = require_model_history_schema.poolHistoryMetricSchema;
|
|
49
|
+
exports.poolOpportunityDetailSchema = require_model_opportunities_schema.poolOpportunityDetailSchema;
|
|
50
|
+
exports.poolOpportunityId = require_model_opportunities.poolOpportunityId;
|
|
51
|
+
exports.poolOpportunityKeySchema = require_model_opportunities_schema.poolOpportunityKeySchema;
|
|
52
|
+
exports.poolOpportunitySchema = require_model_opportunities_schema.poolOpportunitySchema;
|
|
53
|
+
exports.poolPositionSchema = require_model_positions_schema.poolPositionSchema;
|
|
54
|
+
exports.positionCollateralSchema = require_model_positions_schema.positionCollateralSchema;
|
|
55
|
+
exports.positionFilterSchema = require_model_positions_schema.positionFilterSchema;
|
|
56
|
+
exports.positionKindSchema = require_model_positions_schema.positionKindSchema;
|
|
57
|
+
exports.positionSchema = require_model_positions_schema.positionSchema;
|
|
58
|
+
exports.priceFeedDataSchema = require_model_opportunities_schema.priceFeedDataSchema;
|
|
59
|
+
exports.priceFeedSummarySchema = require_model_opportunities_schema.priceFeedSummarySchema;
|
|
60
|
+
exports.quotaAssetSchema = require_model_opportunities_schema.quotaAssetSchema;
|
|
61
|
+
exports.rateCurvePointSchema = require_model_opportunities_schema.rateCurvePointSchema;
|
|
62
|
+
exports.rateCurveSchema = require_model_opportunities_schema.rateCurveSchema;
|
|
63
|
+
exports.receivedAssetSchema = require_model_liquidations_schema.receivedAssetSchema;
|
|
64
|
+
exports.rewardsPnLSchema = require_model_positions_schema.rewardsPnLSchema;
|
|
65
|
+
exports.rewardsSchema = require_model_opportunities_schema.rewardsSchema;
|
|
66
|
+
exports.strategyHistoryMetricSchema = require_model_history_schema.strategyHistoryMetricSchema;
|
|
67
|
+
exports.strategyOpportunityDetailSchema = require_model_opportunities_schema.strategyOpportunityDetailSchema;
|
|
68
|
+
exports.strategyOpportunityId = require_model_opportunities.strategyOpportunityId;
|
|
69
|
+
exports.strategyOpportunityKeySchema = require_model_opportunities_schema.strategyOpportunityKeySchema;
|
|
70
|
+
exports.strategyOpportunitySchema = require_model_opportunities_schema.strategyOpportunitySchema;
|
|
71
|
+
exports.strategyPositionSchema = require_model_positions_schema.strategyPositionSchema;
|
|
72
|
+
exports.timestampSchema = require_model_primitives_schema.timestampSchema;
|
|
73
|
+
exports.tokenAmountSchema = require_model_primitives_schema.tokenAmountSchema;
|
|
74
|
+
exports.tokenRewardsPnLSchema = require_model_positions_schema.tokenRewardsPnLSchema;
|
|
75
|
+
exports.tokenRewardsSchema = require_model_opportunities_schema.tokenRewardsSchema;
|
|
76
|
+
exports.tokenSchema = require_model_primitives_schema.tokenSchema;
|
|
77
|
+
exports.txCallSchema = require_model_primitives_schema.txCallSchema;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
//#region src/model/liquidations.ts
|
|
3
|
+
/**
|
|
4
|
+
* Whether a liquidatable account satisfies every criterion of a filter.
|
|
5
|
+
*
|
|
6
|
+
* This is the single definition of what each criterion means: every source
|
|
7
|
+
* builds its rows first and runs them through here, so the chain and the
|
|
8
|
+
* backend cannot disagree on what a filter selects.
|
|
9
|
+
*
|
|
10
|
+
* @param account - Row to test.
|
|
11
|
+
* @param filter - Criteria to test against. An absent filter matches anything.
|
|
12
|
+
**/
|
|
13
|
+
function matchesLiquidatableAccountFilter(account, filter) {
|
|
14
|
+
if (!filter) return true;
|
|
15
|
+
if (filter.chainIds && !filter.chainIds.includes(account.chainId)) return false;
|
|
16
|
+
if (filter.underlyingType && account.totalValue.token.assetType !== filter.underlyingType) return false;
|
|
17
|
+
if (filter.paused !== void 0 && account.paused !== filter.paused) return false;
|
|
18
|
+
if (filter.rwa !== void 0 && account.rwa !== filter.rwa) return false;
|
|
19
|
+
if (filter.delayed !== void 0 && account.isDelayed !== filter.delayed) return false;
|
|
20
|
+
return true;
|
|
21
|
+
}
|
|
22
|
+
//#endregion
|
|
23
|
+
exports.matchesLiquidatableAccountFilter = matchesLiquidatableAccountFilter;
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
const require_sdk_utils_zod = require("../sdk/utils/zod.js");
|
|
3
|
+
const require_model_primitives_schema = require("./primitives.schema.js");
|
|
4
|
+
let zod_v4 = require("zod/v4");
|
|
5
|
+
//#region src/model/liquidations.schema.ts
|
|
6
|
+
/**
|
|
7
|
+
* Runtime schemas for {@link ./liquidations.js}, see the note in
|
|
8
|
+
* `primitives.schema.ts` on why they are written by hand.
|
|
9
|
+
**/
|
|
10
|
+
/**
|
|
11
|
+
* {@link LiquidatableAccountFilter}
|
|
12
|
+
**/
|
|
13
|
+
const liquidatableAccountFilterSchema = zod_v4.z.object({
|
|
14
|
+
chainIds: zod_v4.z.array(require_model_primitives_schema.chainIdSchema).optional(),
|
|
15
|
+
underlyingType: require_model_primitives_schema.assetTypeSchema.optional(),
|
|
16
|
+
paused: zod_v4.z.boolean().optional(),
|
|
17
|
+
rwa: zod_v4.z.boolean().optional(),
|
|
18
|
+
delayed: zod_v4.z.boolean().optional()
|
|
19
|
+
});
|
|
20
|
+
/**
|
|
21
|
+
* {@link LiquidatableAccount}
|
|
22
|
+
**/
|
|
23
|
+
const liquidatableAccountSchema = zod_v4.z.object({
|
|
24
|
+
chainId: require_model_primitives_schema.chainIdSchema,
|
|
25
|
+
creditAccount: require_sdk_utils_zod.ZodAddress(),
|
|
26
|
+
creditManager: require_sdk_utils_zod.ZodAddress(),
|
|
27
|
+
asset: require_model_primitives_schema.tokenSchema,
|
|
28
|
+
totalValue: require_model_primitives_schema.tokenAmountSchema,
|
|
29
|
+
repaymentAmount: require_model_primitives_schema.tokenAmountSchema,
|
|
30
|
+
estimatedProfit: require_model_primitives_schema.tokenAmountSchema,
|
|
31
|
+
isDelayed: zod_v4.z.boolean(),
|
|
32
|
+
paused: zod_v4.z.boolean(),
|
|
33
|
+
rwa: zod_v4.z.boolean()
|
|
34
|
+
});
|
|
35
|
+
/**
|
|
36
|
+
* {@link InstantReceivedAsset}
|
|
37
|
+
**/
|
|
38
|
+
const instantReceivedAssetSchema = zod_v4.z.object({
|
|
39
|
+
...require_model_primitives_schema.tokenAmountSchema.shape,
|
|
40
|
+
isDelayed: zod_v4.z.literal(false)
|
|
41
|
+
});
|
|
42
|
+
/**
|
|
43
|
+
* {@link DelayedReceivedAsset}
|
|
44
|
+
**/
|
|
45
|
+
const delayedReceivedAssetSchema = zod_v4.z.object({
|
|
46
|
+
...require_model_primitives_schema.tokenAmountSchema.shape,
|
|
47
|
+
isDelayed: zod_v4.z.literal(true),
|
|
48
|
+
redeemer: require_sdk_utils_zod.ZodAddress().optional(),
|
|
49
|
+
claimableAt: require_model_primitives_schema.timestampSchema.optional()
|
|
50
|
+
});
|
|
51
|
+
/**
|
|
52
|
+
* {@link ReceivedAsset}
|
|
53
|
+
**/
|
|
54
|
+
const receivedAssetSchema = zod_v4.z.discriminatedUnion("isDelayed", [instantReceivedAssetSchema, delayedReceivedAssetSchema]);
|
|
55
|
+
/**
|
|
56
|
+
* {@link LiquidationApproval}
|
|
57
|
+
**/
|
|
58
|
+
const liquidationApprovalSchema = require_model_primitives_schema.tokenAmountSchema.extend({ spender: require_sdk_utils_zod.ZodAddress() });
|
|
59
|
+
/**
|
|
60
|
+
* {@link LiquidationPosition}
|
|
61
|
+
**/
|
|
62
|
+
const liquidationPositionSchema = zod_v4.z.object({
|
|
63
|
+
kind: zod_v4.z.literal("liquidation"),
|
|
64
|
+
name: zod_v4.z.string(),
|
|
65
|
+
chainId: require_model_primitives_schema.chainIdSchema,
|
|
66
|
+
sourceToken: require_model_primitives_schema.tokenSchema,
|
|
67
|
+
output: require_model_primitives_schema.tokenAmountSchema,
|
|
68
|
+
claimableAt: require_model_primitives_schema.timestampSchema.optional(),
|
|
69
|
+
claimTx: require_model_primitives_schema.txCallSchema.optional(),
|
|
70
|
+
redeemer: require_sdk_utils_zod.ZodAddress().optional()
|
|
71
|
+
});
|
|
72
|
+
/**
|
|
73
|
+
* {@link LiquidationDetails}
|
|
74
|
+
**/
|
|
75
|
+
const liquidationDetailsSchema = zod_v4.z.object({
|
|
76
|
+
...liquidatableAccountSchema.shape,
|
|
77
|
+
repaymentAmount: require_model_primitives_schema.tokenAmountSchema,
|
|
78
|
+
receivedAssets: zod_v4.z.array(receivedAssetSchema),
|
|
79
|
+
isLiquidatorEligible: zod_v4.z.boolean(),
|
|
80
|
+
isCreditAccountFrozen: zod_v4.z.boolean(),
|
|
81
|
+
kycProtocol: zod_v4.z.string().optional(),
|
|
82
|
+
kycToken: require_model_primitives_schema.tokenSchema.optional(),
|
|
83
|
+
approve: liquidationApprovalSchema.optional()
|
|
84
|
+
});
|
|
85
|
+
//#endregion
|
|
86
|
+
exports.delayedReceivedAssetSchema = delayedReceivedAssetSchema;
|
|
87
|
+
exports.instantReceivedAssetSchema = instantReceivedAssetSchema;
|
|
88
|
+
exports.liquidatableAccountFilterSchema = liquidatableAccountFilterSchema;
|
|
89
|
+
exports.liquidatableAccountSchema = liquidatableAccountSchema;
|
|
90
|
+
exports.liquidationApprovalSchema = liquidationApprovalSchema;
|
|
91
|
+
exports.liquidationDetailsSchema = liquidationDetailsSchema;
|
|
92
|
+
exports.liquidationPositionSchema = liquidationPositionSchema;
|
|
93
|
+
exports.receivedAssetSchema = receivedAssetSchema;
|