@gearbox-protocol/sdk 14.12.0-next.65 → 14.12.0-next.67
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/dev/index.js +2 -1
- package/dist/cjs/dev/kycUtils.js +1 -1
- package/dist/cjs/dev/midasUtils.js +104 -0
- package/dist/cjs/model/history.js +28 -0
- package/dist/cjs/model/history.schema.js +84 -0
- package/dist/cjs/model/index.js +64 -0
- package/dist/cjs/model/liquidations.js +23 -0
- package/dist/cjs/model/liquidations.schema.js +91 -0
- package/dist/cjs/model/opportunities.js +55 -0
- package/dist/cjs/model/opportunities.schema.js +220 -0
- package/dist/cjs/model/package.json +1 -0
- package/dist/cjs/model/positions.js +1 -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 +150 -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 +163 -0
- package/dist/cjs/sdk/market/credit/CreditManagerV310Contract.js +26 -0
- package/dist/cjs/sdk/market/credit/CreditSuite.js +102 -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 +103 -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/index.js +3 -3
- package/dist/esm/dev/kycUtils.js +1 -1
- package/dist/esm/dev/midasUtils.js +105 -2
- 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 +9 -0
- package/dist/esm/model/liquidations.js +22 -0
- package/dist/esm/model/liquidations.schema.js +83 -0
- package/dist/esm/model/opportunities.js +51 -0
- package/dist/esm/model/opportunities.schema.js +198 -0
- package/dist/esm/model/package.json +1 -0
- package/dist/esm/model/positions.js +1 -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 +153 -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 +163 -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 +102 -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 +102 -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/dev/index.d.ts +2 -2
- package/dist/types/dev/midasUtils.d.ts +31 -2
- 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 +9 -0
- package/dist/types/model/liquidations.d.ts +230 -0
- package/dist/types/model/liquidations.schema.d.ts +292 -0
- package/dist/types/model/opportunities.d.ts +543 -0
- package/dist/types/model/opportunities.schema.d.ts +1066 -0
- package/dist/types/model/positions.d.ts +11 -0
- package/dist/types/model/primitives.d.ts +193 -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 +109 -1
- package/dist/types/sdk/market/credit/CreditManagerV310Contract.d.ts +14 -0
- package/dist/types/sdk/market/credit/CreditSuite.d.ts +47 -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 +47 -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,
|
package/dist/cjs/dev/index.js
CHANGED
|
@@ -2,6 +2,7 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
|
2
2
|
const require_dev_abi = require("./abi.js");
|
|
3
3
|
const require_dev_claimFromFaucet = require("./claimFromFaucet.js");
|
|
4
4
|
const require_dev_createAnvilClient = require("./createAnvilClient.js");
|
|
5
|
+
const require_dev_kycUtils = require("./kycUtils.js");
|
|
5
6
|
const require_dev_midasUtils = require("./midasUtils.js");
|
|
6
7
|
const require_dev_mint_factory = require("./mint/factory.js");
|
|
7
8
|
require("./mint/index.js");
|
|
@@ -15,7 +16,6 @@ const require_dev_detectChain = require("./detectChain.js");
|
|
|
15
16
|
const require_dev_isOutOfSyncError = require("./isOutOfSyncError.js");
|
|
16
17
|
const require_dev_isRateLimitError = require("./isRateLimitError.js");
|
|
17
18
|
const require_dev_isTransientError = require("./isTransientError.js");
|
|
18
|
-
const require_dev_kycUtils = require("./kycUtils.js");
|
|
19
19
|
const require_dev_logSplitterTransport = require("./logSplitterTransport.js");
|
|
20
20
|
const require_dev_ltUtils = require("./ltUtils.js");
|
|
21
21
|
const require_dev_migrateFaucet = require("./migrateFaucet.js");
|
|
@@ -85,5 +85,6 @@ exports.revolverTransportConfigSchema = require_dev_RevolverTransport.revolverTr
|
|
|
85
85
|
exports.rpcProvidersSchema = require_dev_providers.rpcProvidersSchema;
|
|
86
86
|
exports.setLTZero = require_dev_ltUtils.setLTZero;
|
|
87
87
|
exports.setLTs = require_dev_ltUtils.setLTs;
|
|
88
|
+
exports.unpauseMidasIssuanceVault = require_dev_midasUtils.unpauseMidasIssuanceVault;
|
|
88
89
|
exports.verifyTestnet = require_dev_verifyTestnet.verifyTestnet;
|
|
89
90
|
exports.writeAndWait = require_dev_kycUtils.writeAndWait;
|
package/dist/cjs/dev/kycUtils.js
CHANGED
|
@@ -3,9 +3,9 @@ const require_sdk_utils_AddressSet = require("../sdk/utils/AddressSet.js");
|
|
|
3
3
|
const require_sdk_constants_math = require("../sdk/constants/math.js");
|
|
4
4
|
const require_sdk_OnchainSDK = require("../sdk/OnchainSDK.js");
|
|
5
5
|
require("../sdk/index.js");
|
|
6
|
-
const require_dev_withdrawalAbi = require("./withdrawalAbi.js");
|
|
7
6
|
const require_abi_rwa_iDSRegistryService = require("../abi/rwa/iDSRegistryService.js");
|
|
8
7
|
const require_abi_rwa_iDSToken = require("../abi/rwa/iDSToken.js");
|
|
8
|
+
const require_dev_withdrawalAbi = require("./withdrawalAbi.js");
|
|
9
9
|
let viem = require("viem");
|
|
10
10
|
let viem_accounts = require("viem/accounts");
|
|
11
11
|
//#region src/dev/kycUtils.ts
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
2
|
const require_dev_withdrawalAbi = require("./withdrawalAbi.js");
|
|
3
|
+
const require_dev_kycUtils = require("./kycUtils.js");
|
|
3
4
|
let viem = require("viem");
|
|
4
5
|
//#region src/dev/midasUtils.ts
|
|
5
6
|
const ADAPTER_MIDAS_GATEWAY = "ADAPTER::MIDAS_GATEWAY";
|
|
@@ -16,6 +17,18 @@ const MIDAS_MODE_PERMISSIONLESS = 0;
|
|
|
16
17
|
*/
|
|
17
18
|
const iMidasMTokenAbi = (0, viem.parseAbi)(["function mToken() external view returns (address)"]);
|
|
18
19
|
const iMidasGatewayAdapterExtAbi = (0, viem.parseAbi)(["function receiveGreenlist() external returns (bool)"]);
|
|
20
|
+
/**
|
|
21
|
+
* Midas vaults inherit their own `Pausable`, whose global pause is guarded by
|
|
22
|
+
* `pauseAdminRole()` in the vault's access control instead of `Ownable`
|
|
23
|
+
*/
|
|
24
|
+
const iMidasPausableVaultAbi = (0, viem.parseAbi)([
|
|
25
|
+
"function paused() external view returns (bool)",
|
|
26
|
+
"function pause() external",
|
|
27
|
+
"function unpause() external",
|
|
28
|
+
"function pauseAdminRole() external view returns (bytes32)",
|
|
29
|
+
"function accessControl() external view returns (address)"
|
|
30
|
+
]);
|
|
31
|
+
const iMidasAccessControlAbi = (0, viem.parseAbi)(["function hasRole(bytes32 role, address account) external view returns (bool)", "function grantRole(bytes32 role, address account) external"]);
|
|
19
32
|
const receiveGreenlistCallData = (0, viem.encodeFunctionData)({
|
|
20
33
|
abi: iMidasGatewayAdapterExtAbi,
|
|
21
34
|
functionName: "receiveGreenlist"
|
|
@@ -86,6 +99,96 @@ async function prependMidasReceiveGreenlist(props) {
|
|
|
86
99
|
}
|
|
87
100
|
return prepended.length > 0 ? [...prepended, ...calls] : calls;
|
|
88
101
|
}
|
|
102
|
+
/**
|
|
103
|
+
* Unpauses a globally paused Midas issuance vault on an anvil fork, so that
|
|
104
|
+
* `depositInstant` stops reverting with `Pausable: paused`, and returns a
|
|
105
|
+
* callback that restores the original pause state.
|
|
106
|
+
*
|
|
107
|
+
* Impersonates `admin` and grants it `pauseAdminRole()` when missing, same as
|
|
108
|
+
* `greenlistMidasGateway` does with the greenlist roles. The grant is not
|
|
109
|
+
* reverted by the callback, only the pause state is.
|
|
110
|
+
*/
|
|
111
|
+
async function unpauseMidasIssuanceVault(props) {
|
|
112
|
+
const { anvil, vault, admin, logger } = props;
|
|
113
|
+
if (!await anvil.readContract({
|
|
114
|
+
address: vault,
|
|
115
|
+
abi: iMidasPausableVaultAbi,
|
|
116
|
+
functionName: "paused"
|
|
117
|
+
})) {
|
|
118
|
+
logger?.debug(`midas: issuance vault ${vault} is not paused`);
|
|
119
|
+
return async () => {};
|
|
120
|
+
}
|
|
121
|
+
const [accessControl, pauseAdminRole] = await anvil.multicall({
|
|
122
|
+
allowFailure: false,
|
|
123
|
+
contracts: [{
|
|
124
|
+
address: vault,
|
|
125
|
+
abi: iMidasPausableVaultAbi,
|
|
126
|
+
functionName: "accessControl"
|
|
127
|
+
}, {
|
|
128
|
+
address: vault,
|
|
129
|
+
abi: iMidasPausableVaultAbi,
|
|
130
|
+
functionName: "pauseAdminRole"
|
|
131
|
+
}]
|
|
132
|
+
});
|
|
133
|
+
const isPauseAdmin = await anvil.readContract({
|
|
134
|
+
address: accessControl,
|
|
135
|
+
abi: iMidasAccessControlAbi,
|
|
136
|
+
functionName: "hasRole",
|
|
137
|
+
args: [pauseAdminRole, admin]
|
|
138
|
+
});
|
|
139
|
+
logger?.debug(`midas: unpausing issuance vault ${vault} as ${admin}, access control ${accessControl}, pause admin role ${pauseAdminRole}`);
|
|
140
|
+
await anvil.impersonateAccount({ address: admin });
|
|
141
|
+
try {
|
|
142
|
+
await anvil.setBalance({
|
|
143
|
+
address: admin,
|
|
144
|
+
value: (0, viem.parseEther)("100")
|
|
145
|
+
});
|
|
146
|
+
if (!isPauseAdmin) {
|
|
147
|
+
await require_dev_kycUtils.writeAndWait(anvil, {
|
|
148
|
+
account: admin,
|
|
149
|
+
chain: anvil.chain,
|
|
150
|
+
address: accessControl,
|
|
151
|
+
abi: iMidasAccessControlAbi,
|
|
152
|
+
functionName: "grantRole",
|
|
153
|
+
args: [pauseAdminRole, admin]
|
|
154
|
+
});
|
|
155
|
+
logger?.debug(`midas: granted pause admin role to ${admin}`);
|
|
156
|
+
}
|
|
157
|
+
await require_dev_kycUtils.writeAndWait(anvil, {
|
|
158
|
+
account: admin,
|
|
159
|
+
chain: anvil.chain,
|
|
160
|
+
address: vault,
|
|
161
|
+
abi: iMidasPausableVaultAbi,
|
|
162
|
+
functionName: "unpause"
|
|
163
|
+
});
|
|
164
|
+
} finally {
|
|
165
|
+
await anvil.stopImpersonatingAccount({ address: admin });
|
|
166
|
+
}
|
|
167
|
+
let toRestore = true;
|
|
168
|
+
return async () => {
|
|
169
|
+
if (!toRestore) return;
|
|
170
|
+
toRestore = false;
|
|
171
|
+
logger?.debug(`midas: pausing issuance vault ${vault} back`);
|
|
172
|
+
await anvil.impersonateAccount({ address: admin });
|
|
173
|
+
try {
|
|
174
|
+
await anvil.setBalance({
|
|
175
|
+
address: admin,
|
|
176
|
+
value: (0, viem.parseEther)("100")
|
|
177
|
+
});
|
|
178
|
+
await require_dev_kycUtils.writeAndWait(anvil, {
|
|
179
|
+
account: admin,
|
|
180
|
+
chain: anvil.chain,
|
|
181
|
+
address: vault,
|
|
182
|
+
abi: iMidasPausableVaultAbi,
|
|
183
|
+
functionName: "pause"
|
|
184
|
+
});
|
|
185
|
+
} catch (e) {
|
|
186
|
+
logger?.warn(`midas: failed to pause issuance vault ${vault} back: ${e}`);
|
|
187
|
+
} finally {
|
|
188
|
+
await anvil.stopImpersonatingAccount({ address: admin });
|
|
189
|
+
}
|
|
190
|
+
};
|
|
191
|
+
}
|
|
89
192
|
async function readMTokens(client, adapters) {
|
|
90
193
|
return await client.multicall({
|
|
91
194
|
allowFailure: false,
|
|
@@ -98,3 +201,4 @@ async function readMTokens(client, adapters) {
|
|
|
98
201
|
}
|
|
99
202
|
//#endregion
|
|
100
203
|
exports.prependMidasReceiveGreenlist = prependMidasReceiveGreenlist;
|
|
204
|
+
exports.unpauseMidasIssuanceVault = unpauseMidasIssuanceVault;
|
|
@@ -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;
|