@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,5 +1,5 @@
|
|
|
1
|
-
import { LIQUIDATION_COMPRESSOR_V313_ADDRESS } from "./constants.js";
|
|
1
|
+
import { DUST_THRESHOLD, LIQUIDATION_APPROVAL_BUFFER, LIQUIDATION_COMPRESSOR_V313_ADDRESS } from "./constants.js";
|
|
2
2
|
import { LiquidationsService } from "./LiquidationsService.js";
|
|
3
3
|
import { MultichainLiquidationsService } from "./MultichainLiquidationsService.js";
|
|
4
4
|
import "./types.js";
|
|
5
|
-
export { LIQUIDATION_COMPRESSOR_V313_ADDRESS, LiquidationsService, MultichainLiquidationsService };
|
|
5
|
+
export { DUST_THRESHOLD, LIQUIDATION_APPROVAL_BUFFER, LIQUIDATION_COMPRESSOR_V313_ADDRESS, LiquidationsService, MultichainLiquidationsService };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { iRedemptionLoggerV310Abi } from "../../../abi/iRedemptionLoggerV310.js";
|
|
2
1
|
import { BaseContract } from "../../base/BaseContract.js";
|
|
3
2
|
import "../../base/index.js";
|
|
4
3
|
import { decodeDelayedIntent } from "./intent-codec.js";
|
|
4
|
+
import { iRedemptionLoggerV310Abi } from "../../../abi/iRedemptionLoggerV310.js";
|
|
5
5
|
import { InvalidDelayedIntentError } from "./errors.js";
|
|
6
6
|
//#region src/sdk/accounts/withdrawal-compressor/RedemptionLoggerV310Contract.ts
|
|
7
7
|
const abi = iRedemptionLoggerV310Abi;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { iWithdrawalCompressorV310Abi } from "../../../abi/IWithdrawalCompressorV310.js";
|
|
2
1
|
import { AbstractWithdrawalCompressorContract } from "./AbstractWithdrawalCompressorContract.js";
|
|
2
|
+
import { iWithdrawalCompressorV310Abi } from "../../../abi/IWithdrawalCompressorV310.js";
|
|
3
3
|
//#region src/sdk/accounts/withdrawal-compressor/WithdrawalCompressorV310Contract.ts
|
|
4
4
|
const abi = iWithdrawalCompressorV310Abi;
|
|
5
5
|
/**
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { iWithdrawalCompressorV311Abi } from "../../../abi/IWithdrawalCompressorV311.js";
|
|
2
1
|
import { AbstractWithdrawalCompressorContract } from "./AbstractWithdrawalCompressorContract.js";
|
|
2
|
+
import { iWithdrawalCompressorV311Abi } from "../../../abi/IWithdrawalCompressorV311.js";
|
|
3
3
|
//#region src/sdk/accounts/withdrawal-compressor/WithdrawalCompressorV311Contract.ts
|
|
4
4
|
const abi = iWithdrawalCompressorV311Abi;
|
|
5
5
|
/**
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { iWithdrawalCompressorV313Abi } from "../../../abi/IWithdrawalCompressorV313.js";
|
|
2
1
|
import { encodeDelayedIntent } from "./intent-codec.js";
|
|
3
2
|
import { AbstractWithdrawalCompressorContract, iCreditAccountAbi, toClaimableWithdrawal, toPendingWithdrawal, toRequestableWithdrawal } from "./AbstractWithdrawalCompressorContract.js";
|
|
3
|
+
import { iWithdrawalCompressorV313Abi } from "../../../abi/IWithdrawalCompressorV313.js";
|
|
4
4
|
import { toWithdrawalStatus } from "./types.js";
|
|
5
5
|
//#region src/sdk/accounts/withdrawal-compressor/WithdrawalCompressorV313Contract.ts
|
|
6
6
|
const abi = iWithdrawalCompressorV313Abi;
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { ChainNotConfiguredError } from "../core/errors.js";
|
|
2
|
+
//#region src/sdk/base/MultichainConstruct.ts
|
|
3
|
+
/**
|
|
4
|
+
* @internal
|
|
5
|
+
* Base class for services that fan out over the chains of a
|
|
6
|
+
* {@link MultichainSDK}, the cross-chain counterpart of {@link SDKConstruct}.
|
|
7
|
+
*
|
|
8
|
+
* Requests are soft-failing: a chain that rejects (including a chain that is
|
|
9
|
+
* not configured in the SDK) is logged as a warning and contributes no payload,
|
|
10
|
+
* while the remaining chains still return their results. Every queried chain is
|
|
11
|
+
* reported in {@link MultichainResult.meta}.
|
|
12
|
+
*
|
|
13
|
+
* @typeParam Plugins - Map of attached plugin types.
|
|
14
|
+
**/
|
|
15
|
+
var MultichainConstruct = class {
|
|
16
|
+
sdk;
|
|
17
|
+
constructor(sdk) {
|
|
18
|
+
this.sdk = sdk;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Fans out a request that returns a list, concatenating the lists of all
|
|
22
|
+
* chains that responded successfully.
|
|
23
|
+
**/
|
|
24
|
+
async queryChains(props) {
|
|
25
|
+
const { values, meta } = await this.#settle(props);
|
|
26
|
+
return {
|
|
27
|
+
result: values.flat(),
|
|
28
|
+
meta
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Fans out a request with no payload, reporting the outcome of every queried
|
|
33
|
+
* chain in {@link MultichainResult.meta}.
|
|
34
|
+
**/
|
|
35
|
+
async runChains(props) {
|
|
36
|
+
const { meta } = await this.#settle(props);
|
|
37
|
+
return {
|
|
38
|
+
result: void 0,
|
|
39
|
+
meta
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Runs the request on all queried chains in parallel. Duplicate networks are
|
|
44
|
+
* queried once, and {@link SettledChains.meta} follows the requested order.
|
|
45
|
+
**/
|
|
46
|
+
async #settle({ networks, label, run }) {
|
|
47
|
+
const requested = networks ? [...new Set(networks)] : [...this.sdk.chains.keys()];
|
|
48
|
+
const settled = await Promise.allSettled(requested.map(async (network) => {
|
|
49
|
+
const chainSdk = this.sdk.chains.get(network);
|
|
50
|
+
if (!chainSdk) throw new ChainNotConfiguredError(network);
|
|
51
|
+
return run(chainSdk);
|
|
52
|
+
}));
|
|
53
|
+
const values = [];
|
|
54
|
+
const meta = [];
|
|
55
|
+
settled.forEach((result, i) => {
|
|
56
|
+
const network = requested[i];
|
|
57
|
+
if (result.status === "fulfilled") {
|
|
58
|
+
values.push(result.value);
|
|
59
|
+
meta.push({
|
|
60
|
+
network,
|
|
61
|
+
status: "success"
|
|
62
|
+
});
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
65
|
+
(this.sdk.chains.get(network)?.logger ?? this.sdk.logger)?.warn(result.reason, `failed to ${label} on ${network}`);
|
|
66
|
+
meta.push({
|
|
67
|
+
network,
|
|
68
|
+
status: "error",
|
|
69
|
+
error: result.reason
|
|
70
|
+
});
|
|
71
|
+
});
|
|
72
|
+
return {
|
|
73
|
+
values,
|
|
74
|
+
meta
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
};
|
|
78
|
+
//#endregion
|
|
79
|
+
export { MultichainConstruct };
|
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
import { iStateSerializerAbi } from "../../abi/iStateSerializer.js";
|
|
2
|
-
import { iVersionAbi } from "../../abi/iVersion.js";
|
|
3
1
|
import { AddressMap } from "../utils/AddressMap.js";
|
|
4
2
|
import { AddressSet } from "../utils/AddressSet.js";
|
|
5
3
|
import { bytes32ToString } from "../utils/bytes32ToString.js";
|
|
4
|
+
import { getAssetType } from "../chain/chains.js";
|
|
6
5
|
import { formatBN } from "../utils/formatter.js";
|
|
7
6
|
import "../utils/index.js";
|
|
7
|
+
import { iStateSerializerAbi } from "../../abi/iStateSerializer.js";
|
|
8
|
+
import { iVersionAbi } from "../../abi/iVersion.js";
|
|
8
9
|
//#region src/sdk/base/TokensMeta.ts
|
|
9
10
|
/**
|
|
10
11
|
* Registry of token metadata (symbol, decimals, phantom type) keyed by address.
|
|
@@ -90,6 +91,56 @@ var TokensMeta = class extends AddressMap {
|
|
|
90
91
|
for (const [token, meta] of this.entries()) if (this.isRWAUnderlying(meta)) result.upsert(token, meta);
|
|
91
92
|
return result;
|
|
92
93
|
}
|
|
94
|
+
/**
|
|
95
|
+
* Describes a token the way the shared read model does.
|
|
96
|
+
*
|
|
97
|
+
* @param address - Token address.
|
|
98
|
+
* @throws If the token is not in the registry.
|
|
99
|
+
*/
|
|
100
|
+
mustGetToken(address) {
|
|
101
|
+
const meta = this.mustGet(address);
|
|
102
|
+
return {
|
|
103
|
+
chainId: this.#client.chain.id,
|
|
104
|
+
address: meta.addr,
|
|
105
|
+
symbol: meta.symbol,
|
|
106
|
+
name: meta.name,
|
|
107
|
+
decimals: meta.decimals,
|
|
108
|
+
assetType: getAssetType(meta.addr, this.#networkType)
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Like {@link mustGetToken}, but returns `undefined` instead of throwing when the
|
|
113
|
+
* token is not in the registry.
|
|
114
|
+
*
|
|
115
|
+
* @param address - Token address.
|
|
116
|
+
*/
|
|
117
|
+
getToken(address) {
|
|
118
|
+
return this.get(address) ? this.mustGetToken(address) : void 0;
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* The token an RWA wrapper holds, or the token itself when it is not one.
|
|
122
|
+
*
|
|
123
|
+
* An RWA market borrows a compliance wrapper (e.g. `dcUSDC`) that converts
|
|
124
|
+
* one-for-one with the token behind it (`USDC`), and only that token means
|
|
125
|
+
* anything to a reader. Pricing still goes through the wrapper, which is what
|
|
126
|
+
* a market's oracle knows.
|
|
127
|
+
*
|
|
128
|
+
* @param token - Token address, wrapper or not.
|
|
129
|
+
*/
|
|
130
|
+
unwrapRWA(token) {
|
|
131
|
+
const meta = this.get(token);
|
|
132
|
+
if (!meta || !this.isRWAUnderlying(meta)) return token;
|
|
133
|
+
if (!this.has(meta.asset)) {
|
|
134
|
+
this.#logger?.debug(`no token meta for ${meta.asset} wrapped by ${token}, reporting the wrapper instead`);
|
|
135
|
+
return token;
|
|
136
|
+
}
|
|
137
|
+
return meta.asset;
|
|
138
|
+
}
|
|
139
|
+
get #networkType() {
|
|
140
|
+
const { chain } = this.#client;
|
|
141
|
+
if ("network" in chain) return chain.network;
|
|
142
|
+
throw new Error(`chain ${chain.id} is not a Gearbox SDK chain`);
|
|
143
|
+
}
|
|
93
144
|
formatBN(arg0, arg1, arg2) {
|
|
94
145
|
const token = typeof arg0 === "object" ? arg0.token : arg0;
|
|
95
146
|
const amount = typeof arg0 === "object" ? arg0.balance : arg1;
|
|
@@ -3,8 +3,9 @@ import { ChainContractsRegister } from "./ChainContractsRegister.js";
|
|
|
3
3
|
import { Construct } from "./Construct.js";
|
|
4
4
|
import { BaseContract, ContractParseError } from "./BaseContract.js";
|
|
5
5
|
import { MissingSerializedParamsError } from "./errors.js";
|
|
6
|
+
import { MultichainConstruct } from "./MultichainConstruct.js";
|
|
6
7
|
import { PlaceholderContract } from "./PlaceholderContract.js";
|
|
7
8
|
import { SDKConstruct } from "./SDKConstruct.js";
|
|
8
9
|
import { PHANTOM_TOKEN_CONTRACT_TYPES, RWA_ON_DEMAND_LP_MONOPOLIZED, RWA_UNDERLYING_DEFAULT, RWA_UNDERLYING_ON_DEMAND } from "./token-types.js";
|
|
9
10
|
import { VotingContractStatus } from "./types.js";
|
|
10
|
-
export { BaseContract, ChainContractsRegister, Construct, ContractParseError, MissingSerializedParamsError, PHANTOM_TOKEN_CONTRACT_TYPES, PlaceholderContract, RWA_ON_DEMAND_LP_MONOPOLIZED, RWA_UNDERLYING_DEFAULT, RWA_UNDERLYING_ON_DEMAND, SDKConstruct, TokensMeta, VotingContractStatus };
|
|
11
|
+
export { BaseContract, ChainContractsRegister, Construct, ContractParseError, MissingSerializedParamsError, MultichainConstruct, PHANTOM_TOKEN_CONTRACT_TYPES, PlaceholderContract, RWA_ON_DEMAND_LP_MONOPOLIZED, RWA_UNDERLYING_DEFAULT, RWA_UNDERLYING_ON_DEMAND, SDKConstruct, TokensMeta, VotingContractStatus };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { TypedObjectUtils } from "../utils/mappers.js";
|
|
2
|
-
import { defineChain } from "viem";
|
|
2
|
+
import { defineChain, isAddressEqual } from "viem";
|
|
3
3
|
import { arbitrum, avalanche, base, berachain, bsc, etherlink, hemi, lisk, mainnet, megaeth, monad, optimism, plasma, somnia, sonic, worldchain } from "viem/chains";
|
|
4
4
|
import { z } from "zod/v4";
|
|
5
5
|
//#region src/sdk/chain/chains.ts
|
|
@@ -62,6 +62,19 @@ const chains = {
|
|
|
62
62
|
"0xa770ce584adb6491a2138da6eaec33243bdcd248": "Testnet Curator"
|
|
63
63
|
},
|
|
64
64
|
rwaFactories: [],
|
|
65
|
+
underlyingAssetTypes: {
|
|
66
|
+
"0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0": "ETH",
|
|
67
|
+
"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2": "ETH",
|
|
68
|
+
"0x18084fbA666a33d37592fA2633fD49a74DD93a88": "BTC",
|
|
69
|
+
"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48": "Stable",
|
|
70
|
+
"0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599": "BTC"
|
|
71
|
+
},
|
|
72
|
+
rwaTokens: [
|
|
73
|
+
"0x17418038ecF73BA4026c4f428547BF099706F27B",
|
|
74
|
+
"0x51C2d74017390CbBd30550179A16A1c28F7210fc",
|
|
75
|
+
"0x238a700eD6165261Cf8b2e544ba797BC11e466Ba",
|
|
76
|
+
"0x7433806912Eae67919e66aea853d46Fa0aef98A8"
|
|
77
|
+
],
|
|
65
78
|
isPublic: true,
|
|
66
79
|
wellKnownToken: {
|
|
67
80
|
address: "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
|
|
@@ -152,6 +165,12 @@ const chains = {
|
|
|
152
165
|
"0x16956912813ab9a38d95730b52a8cf53e860a7c5": "Tulipa",
|
|
153
166
|
"0x7c6ee1bf9c1eb3ee55bdbdc1e8d0317aab718e0a": "UltraYield"
|
|
154
167
|
},
|
|
168
|
+
underlyingAssetTypes: {
|
|
169
|
+
"0x3bd359C1119dA7Da1D913D1C4D2B7c461115433A": "ETH",
|
|
170
|
+
"0x754704Bc059F8C67012fEd69BC8A327a5aafb603": "Stable",
|
|
171
|
+
"0xe7cd86e13AC4309349F30B3435a9d337750fC82D": "Stable",
|
|
172
|
+
"0x00000000eFE302BEAA2b3e6e1b18d08D69a9012a": "Stable"
|
|
173
|
+
},
|
|
155
174
|
rwaFactories: [],
|
|
156
175
|
isPublic: true,
|
|
157
176
|
wellKnownToken: {
|
|
@@ -223,6 +242,7 @@ const chains = {
|
|
|
223
242
|
...etherlink,
|
|
224
243
|
network: "Etherlink",
|
|
225
244
|
defaultMarketConfigurators: { "0x577424f0e6f50db668cc1bc76babb87e36732291": "Re7" },
|
|
245
|
+
underlyingAssetTypes: { "0x796Ea11Fa2dD751eD01b53C372fFDB4AAa8f00F9": "Stable" },
|
|
226
246
|
rwaFactories: [],
|
|
227
247
|
isPublic: true,
|
|
228
248
|
wellKnownToken: {
|
|
@@ -269,6 +289,10 @@ const chains = {
|
|
|
269
289
|
"0xce1cf71a28837daaa7b92d00ca4ef2fd649c2a67": "Hyperithm",
|
|
270
290
|
"0x9655f82b585b11cee8a05576ed8efcf755cec04b": "TelosC"
|
|
271
291
|
},
|
|
292
|
+
underlyingAssetTypes: {
|
|
293
|
+
"0xB8CE59FC3717ada4C02eaDF9682A9e934F625ebb": "Stable",
|
|
294
|
+
"0x5d3a1Ff2b6BAb83b63cd9AD0787074081a52ef34": "Stable"
|
|
295
|
+
},
|
|
272
296
|
rwaFactories: [],
|
|
273
297
|
isPublic: true,
|
|
274
298
|
wellKnownToken: {
|
|
@@ -288,6 +312,10 @@ const chains = {
|
|
|
288
312
|
blockTime: 200,
|
|
289
313
|
network: "Somnia",
|
|
290
314
|
defaultMarketConfigurators: { "0x1ca8b92aa7233a9f8f7ba031ac45c878141adff0": "Invariant Group" },
|
|
315
|
+
underlyingAssetTypes: {
|
|
316
|
+
"0x28BEc7E30E6faee657a03e19Bf1128AaD7632A00": "Stable",
|
|
317
|
+
"0x046EDe9564A72571df6F5e44d0405360c0f4dCab": "ETH"
|
|
318
|
+
},
|
|
291
319
|
rwaFactories: [],
|
|
292
320
|
isPublic: true,
|
|
293
321
|
wellKnownToken: {
|
|
@@ -378,5 +406,49 @@ function findCuratorMarketConfigurator(curator, network) {
|
|
|
378
406
|
};
|
|
379
407
|
for (const [a, c] of TypedObjectUtils.entries(all)) if (c === curator) return a;
|
|
380
408
|
}
|
|
409
|
+
/**
|
|
410
|
+
* Looks up the {@link AssetType} of a token in hardcoded classifier.
|
|
411
|
+
* Not all tokens are classified, only underlyings, so the default answer is `undefined`.
|
|
412
|
+
*
|
|
413
|
+
* @param token - Token address
|
|
414
|
+
* @param network - Network the token lives on.
|
|
415
|
+
* @returns The asset type, or `undefined` when the token is not classified
|
|
416
|
+
**/
|
|
417
|
+
function getAssetType(token, network) {
|
|
418
|
+
const table = chains[network].underlyingAssetTypes;
|
|
419
|
+
if (!table) return;
|
|
420
|
+
for (const [a, assetType] of TypedObjectUtils.entries(table)) if (isAddressEqual(a, token)) return assetType;
|
|
421
|
+
}
|
|
422
|
+
/**
|
|
423
|
+
* Checks whether a token represents a real-world asset, per the curated list of
|
|
424
|
+
* a network.
|
|
425
|
+
*
|
|
426
|
+
* @param token - Token address.
|
|
427
|
+
* @param network - Network the token lives on.
|
|
428
|
+
**/
|
|
429
|
+
function isRWAToken(token, network) {
|
|
430
|
+
return !!chains[network].rwaTokens?.some((t) => isAddressEqual(t, token));
|
|
431
|
+
}
|
|
432
|
+
/**
|
|
433
|
+
* Checks whether a pool is on the sunset list of a network.
|
|
434
|
+
*
|
|
435
|
+
* @param pool - Pool address.
|
|
436
|
+
* @param network - Network the pool lives on.
|
|
437
|
+
**/
|
|
438
|
+
function isSunsetPool(pool, network) {
|
|
439
|
+
return !!chains[network].sunsetPools?.some((p) => isAddressEqual(p, pool));
|
|
440
|
+
}
|
|
441
|
+
/**
|
|
442
|
+
* Checks whether a strategy is on the sunset list of a network. Both halves of
|
|
443
|
+
* the strategy key must match: a credit manager can wind down one collateral
|
|
444
|
+
* and keep the rest.
|
|
445
|
+
*
|
|
446
|
+
* @param creditManager - Credit manager address.
|
|
447
|
+
* @param collateral - Target collateral of the strategy.
|
|
448
|
+
* @param network - Network the strategy lives on.
|
|
449
|
+
**/
|
|
450
|
+
function isSunsetStrategy(creditManager, collateral, network) {
|
|
451
|
+
return !!chains[network].sunsetStrategies?.some((s) => isAddressEqual(s.creditManager, creditManager) && isAddressEqual(s.collateral, collateral));
|
|
452
|
+
}
|
|
381
453
|
//#endregion
|
|
382
|
-
export { NetworkType, SUPPORTED_NETWORKS, chains, findCuratorMarketConfigurator, getChain, getCuratorName, getNetworkType, isPublicNetwork, isSupportedNetwork };
|
|
454
|
+
export { NetworkType, SUPPORTED_NETWORKS, chains, findCuratorMarketConfigurator, getAssetType, getChain, getCuratorName, getNetworkType, isPublicNetwork, isRWAToken, isSunsetPool, isSunsetStrategy, isSupportedNetwork };
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { NetworkType, SUPPORTED_NETWORKS, chains, findCuratorMarketConfigurator, getChain, getCuratorName, getNetworkType, isPublicNetwork, isSupportedNetwork } from "./chains.js";
|
|
1
|
+
import { NetworkType, SUPPORTED_NETWORKS, chains, findCuratorMarketConfigurator, getAssetType, getChain, getCuratorName, getNetworkType, isPublicNetwork, isRWAToken, isSunsetPool, isSunsetStrategy, isSupportedNetwork } from "./chains.js";
|
|
2
2
|
import { detectNetwork } from "./detectNetwork.js";
|
|
3
|
-
export { NetworkType, SUPPORTED_NETWORKS, chains, detectNetwork, findCuratorMarketConfigurator, getChain, getCuratorName, getNetworkType, isPublicNetwork, isSupportedNetwork };
|
|
3
|
+
export { NetworkType, SUPPORTED_NETWORKS, chains, detectNetwork, findCuratorMarketConfigurator, getAssetType, getChain, getCuratorName, getNetworkType, isPublicNetwork, isRWAToken, isSunsetPool, isSunsetStrategy, isSupportedNetwork };
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { iVersionAbi } from "../../abi/iVersion.js";
|
|
2
1
|
import { AP_MARKET_COMPRESSOR, AP_PRICE_FEED_COMPRESSOR } from "../constants/address-provider.js";
|
|
3
2
|
import { isV310 } from "../constants/versions.js";
|
|
4
3
|
import "../constants/index.js";
|
|
5
4
|
import { hexEq } from "../utils/hex.js";
|
|
5
|
+
import { iVersionAbi } from "../../abi/iVersion.js";
|
|
6
6
|
import { AddressProviderV310Contract } from "./AddressProviderV310Contract.js";
|
|
7
7
|
//#region src/sdk/core/createAddressProvider.ts
|
|
8
8
|
const OVERRIDE_ADDRESSES = { Mainnet: {
|
|
@@ -51,6 +51,18 @@ var SdkMissingChainStateError = class extends BaseError {
|
|
|
51
51
|
}
|
|
52
52
|
};
|
|
53
53
|
/**
|
|
54
|
+
* Thrown when a chain that is not configured in {@link MultichainSDK} is
|
|
55
|
+
* requested.
|
|
56
|
+
*/
|
|
57
|
+
var ChainNotConfiguredError = class extends BaseError {
|
|
58
|
+
name = "ChainNotConfiguredError";
|
|
59
|
+
network;
|
|
60
|
+
constructor(network) {
|
|
61
|
+
super(`Chain ${String(network)} is not configured in this MultichainSDK`);
|
|
62
|
+
this.network = network;
|
|
63
|
+
}
|
|
64
|
+
};
|
|
65
|
+
/**
|
|
54
66
|
* Thrown by {@link MultichainSDK.syncState} when one or more per-chain syncs
|
|
55
67
|
* fail. Wraps the individual errors keyed by network.
|
|
56
68
|
*/
|
|
@@ -64,4 +76,4 @@ var SdkSyncFailedError = class extends BaseError {
|
|
|
64
76
|
}
|
|
65
77
|
};
|
|
66
78
|
//#endregion
|
|
67
|
-
export { SdkAlreadyAttachedError, SdkChainMismatchError, SdkMissingChainStateError, SdkNotAttachedError, SdkStateVersionMismatchError, SdkSyncFailedError };
|
|
79
|
+
export { ChainNotConfiguredError, SdkAlreadyAttachedError, SdkChainMismatchError, SdkMissingChainStateError, SdkNotAttachedError, SdkStateVersionMismatchError, SdkSyncFailedError };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
+
import { ChainNotConfiguredError, SdkAlreadyAttachedError, SdkChainMismatchError, SdkMissingChainStateError, SdkNotAttachedError, SdkStateVersionMismatchError, SdkSyncFailedError } from "./errors.js";
|
|
1
2
|
import { AddressProviderV310Contract } from "./AddressProviderV310Contract.js";
|
|
2
3
|
import { createAddressProvider, hydrateAddressProvider } from "./createAddressProvider.js";
|
|
3
|
-
import { SdkAlreadyAttachedError, SdkChainMismatchError, SdkMissingChainStateError, SdkNotAttachedError, SdkStateVersionMismatchError, SdkSyncFailedError } from "./errors.js";
|
|
4
4
|
import "./types.js";
|
|
5
|
-
export { AddressProviderV310Contract, SdkAlreadyAttachedError, SdkChainMismatchError, SdkMissingChainStateError, SdkNotAttachedError, SdkStateVersionMismatchError, SdkSyncFailedError, createAddressProvider, hydrateAddressProvider };
|
|
5
|
+
export { AddressProviderV310Contract, ChainNotConfiguredError, SdkAlreadyAttachedError, SdkChainMismatchError, SdkMissingChainStateError, SdkNotAttachedError, SdkStateVersionMismatchError, SdkSyncFailedError, createAddressProvider, hydrateAddressProvider };
|
package/dist/esm/sdk/index.js
CHANGED
|
@@ -3,11 +3,12 @@ import { AddressSet } from "./utils/AddressSet.js";
|
|
|
3
3
|
import { AssetsMap } from "./utils/AssetsMap.js";
|
|
4
4
|
import { json_parse, json_stringify } from "./utils/json.js";
|
|
5
5
|
import { functionArgsToMap, functionArgsToRecord, getFunctionSignature } from "./utils/abi-decode.js";
|
|
6
|
+
import { BigIntMath } from "./utils/bigint-math.js";
|
|
6
7
|
import { bytes32ToString } from "./utils/bytes32ToString.js";
|
|
7
8
|
import { childLogger } from "./utils/childLogger.js";
|
|
8
9
|
import { createRawTx } from "./utils/createRawTx.js";
|
|
9
10
|
import { TypedObjectUtils } from "./utils/mappers.js";
|
|
10
|
-
import { NetworkType, SUPPORTED_NETWORKS, chains, findCuratorMarketConfigurator, getChain, getCuratorName, getNetworkType, isPublicNetwork, isSupportedNetwork } from "./chain/chains.js";
|
|
11
|
+
import { NetworkType, SUPPORTED_NETWORKS, chains, findCuratorMarketConfigurator, getAssetType, getChain, getCuratorName, getNetworkType, isPublicNetwork, isRWAToken, isSunsetPool, isSunsetStrategy, isSupportedNetwork } from "./chain/chains.js";
|
|
11
12
|
import { detectNetwork } from "./chain/detectNetwork.js";
|
|
12
13
|
import "./chain/index.js";
|
|
13
14
|
import { etherscanApiUrl, etherscanUrl } from "./utils/etherscan.js";
|
|
@@ -25,7 +26,7 @@ import { fmtBinaryMask, formatBN, formatBNvalue, formatDuration, formatLeverage,
|
|
|
25
26
|
import { hexEq } from "./utils/hex.js";
|
|
26
27
|
import { retry } from "./utils/retry.js";
|
|
27
28
|
import { toAddress } from "./utils/toAddress.js";
|
|
28
|
-
import { ZodAddress } from "./utils/zod.js";
|
|
29
|
+
import { ZodAddress, ZodHex } from "./utils/zod.js";
|
|
29
30
|
import "./utils/index.js";
|
|
30
31
|
import { generateCastTraceCall, getCastTraceArgs } from "./utils/viem/cast.js";
|
|
31
32
|
import { SimulationError, simulateCall } from "./utils/viem/simulateCall.js";
|
|
@@ -34,6 +35,8 @@ import { ChainContractsRegister } from "./base/ChainContractsRegister.js";
|
|
|
34
35
|
import { Construct } from "./base/Construct.js";
|
|
35
36
|
import { BaseContract, ContractParseError } from "./base/BaseContract.js";
|
|
36
37
|
import { MissingSerializedParamsError } from "./base/errors.js";
|
|
38
|
+
import { ChainNotConfiguredError, SdkAlreadyAttachedError, SdkChainMismatchError, SdkMissingChainStateError, SdkNotAttachedError, SdkStateVersionMismatchError, SdkSyncFailedError } from "./core/errors.js";
|
|
39
|
+
import { MultichainConstruct } from "./base/MultichainConstruct.js";
|
|
37
40
|
import { PlaceholderContract } from "./base/PlaceholderContract.js";
|
|
38
41
|
import { SDKConstruct } from "./base/SDKConstruct.js";
|
|
39
42
|
import { PHANTOM_TOKEN_CONTRACT_TYPES, RWA_ON_DEMAND_LP_MONOPOLIZED, RWA_UNDERLYING_DEFAULT, RWA_UNDERLYING_ON_DEMAND } from "./base/token-types.js";
|
|
@@ -44,6 +47,7 @@ import { createAdapter } from "./market/adapters/createAdapter.js";
|
|
|
44
47
|
import { CreditConfiguratorV310Contract } from "./market/credit/CreditConfiguratorV310Contract.js";
|
|
45
48
|
import { CreditFacadeV310BaseContract, creditFacadeV310Abi as abi } from "./market/credit/CreditFacadeV310BaseContract.js";
|
|
46
49
|
import { CreditFacadeV310Contract } from "./market/credit/CreditFacadeV310Contract.js";
|
|
50
|
+
import { additionalBorrowApyBps, borrowApyBps, maxLeverage, rayToBps, usdToNumber, utilizationBps } from "./market/math.js";
|
|
47
51
|
import { CreditManagerV310Contract } from "./market/credit/CreditManagerV310Contract.js";
|
|
48
52
|
import { CreditSuite } from "./market/credit/CreditSuite.js";
|
|
49
53
|
import { simulateMulticall } from "./utils/viem/simulateMulticall.js";
|
|
@@ -99,7 +103,7 @@ import { RWARegistry } from "./market/rwa/RWARegistry.js";
|
|
|
99
103
|
import { RWA_FACTORY_TYPES, isRWAFactory } from "./market/rwa/types.js";
|
|
100
104
|
import "./market/index.js";
|
|
101
105
|
import { CreditAccountsServiceV310 } from "./accounts/CreditAccountsServiceV310.js";
|
|
102
|
-
import { LIQUIDATION_COMPRESSOR_V313_ADDRESS } from "./accounts/liquidations/constants.js";
|
|
106
|
+
import { DUST_THRESHOLD, LIQUIDATION_APPROVAL_BUFFER, LIQUIDATION_COMPRESSOR_V313_ADDRESS } from "./accounts/liquidations/constants.js";
|
|
103
107
|
import { LiquidationsService } from "./accounts/liquidations/LiquidationsService.js";
|
|
104
108
|
import { MultichainLiquidationsService } from "./accounts/liquidations/MultichainLiquidationsService.js";
|
|
105
109
|
import { DELAYED_INTENT_TYPES, DELAYED_INTENT_VERSION, decodeDelayedIntent, encodeDelayedIntent } from "./accounts/withdrawal-compressor/intent-codec.js";
|
|
@@ -116,8 +120,10 @@ import { createWithdrawalCompressor } from "./accounts/withdrawal-compressor/cre
|
|
|
116
120
|
import "./accounts/index.js";
|
|
117
121
|
import { AddressProviderV310Contract } from "./core/AddressProviderV310Contract.js";
|
|
118
122
|
import { createAddressProvider, hydrateAddressProvider } from "./core/createAddressProvider.js";
|
|
119
|
-
import { SdkAlreadyAttachedError, SdkChainMismatchError, SdkMissingChainStateError, SdkNotAttachedError, SdkStateVersionMismatchError, SdkSyncFailedError } from "./core/errors.js";
|
|
120
123
|
import "./core/index.js";
|
|
124
|
+
import { MultichainOpportunitiesService } from "./opportunities/MultichainOpportunitiesService.js";
|
|
125
|
+
import { OpportunitiesService } from "./opportunities/OpportunitiesService.js";
|
|
126
|
+
import "./opportunities/index.js";
|
|
121
127
|
import { BasePlugin } from "./plugins/BasePlugin.js";
|
|
122
128
|
import { PluginStateVersionError } from "./plugins/errors.js";
|
|
123
129
|
import "./plugins/index.js";
|
|
@@ -131,4 +137,4 @@ import { OnchainSDK, STATE_VERSION } from "./OnchainSDK.js";
|
|
|
131
137
|
import { MultichainSDK } from "./MultichainSDK.js";
|
|
132
138
|
import { attachOptionsSchema, onchainSDKOptionsSchema } from "./options.js";
|
|
133
139
|
import "./types/index.js";
|
|
134
|
-
export { ADDRESS_0X0, ADDRESS_PROVIDER_V310, AP_ACCOUNT_FACTORY, AP_ACL, AP_BOT_LIST, AP_BYTECODE_REPOSITORY, AP_CONTRACTS_REGISTER, AP_CONTROLLER_TIMELOCK, AP_CREDIT_ACCOUNT_COMPRESSOR, AP_CREDIT_SUITE_COMPRESSOR, AP_DATA_COMPRESSOR, AP_DELEVERAGE_BOT_HV, AP_DELEVERAGE_BOT_LV, AP_DELEVERAGE_BOT_PEGGED, AP_GAUGE_COMPRESSOR, AP_GEAR_STAKING, AP_GEAR_TOKEN, AP_INFLATION_ATTACK_BLOCKER, AP_INSOLVENCY_CHECKER, AP_MARKET_COMPRESSOR, AP_MARKET_CONFIGURATOR, AP_PARTIAL_LIQUIDATION_BOT, AP_PERIPHERY_COMPRESSOR, AP_PRICE_FEED_COMPRESSOR, AP_PRICE_FEED_STORE, AP_PRICE_ORACLE, AP_REDEMPTION_LOGGER, AP_REWARDS_COMPRESSOR, AP_ROUTER, AP_RWA_COMPRESSOR, AP_TOKEN_COMPRESSOR, AP_TREASURY, AP_WETH_GATEWAY, AP_WETH_TOKEN, AP_ZAPPER_REGISTER, AP_ZERO_PRICE_FEED, AbstractLPPriceFeedContract, AbstractPriceFeedContract, AbstractWithdrawalCompressorContract, AddressMap, AddressProviderV310Contract, AddressSet, AssetsMap, BLOCKS_PER_WEEK_BY_NETWORK, BalancerStablePriceFeedContract, BalancerWeightedPriceFeedContract, BaseContract, BasePlugin, BotPermissions, BoundedPriceFeedContract, ChainContractsRegister, CompositePriceFeedContract, Construct, ContractParseError, CreditAccountsServiceV310, CreditConfiguratorV310Contract, CreditFacadeV310BaseContract, CreditFacadeV310Contract, CreditManagerV310Contract, CreditSuite, CurveCryptoPriceFeedContract, CurveStablePriceFeedContract, CurveUSDPriceFeedContract, DELAYED_INTENT_TYPES, DELAYED_INTENT_VERSION, Erc4626PriceFeedContract, ExternalPriceFeedContract, GaugeContract, IERC20ZapperContract, IETHZapperContract, InvalidDelayedIntentError, LEVERAGE_DECIMALS, LIQUIDATION_COMPRESSOR_V313_ADDRESS, LinearInterestRateModelContract, LiquidationsService, MAX_INT, MAX_UINT16, MAX_UINT256, MIN_INT96, MULTICALL_ADDRESS, MarketRegister, MarketSuite, MellowLRTPriceFeedContract, MidasLiquidatorContract, MissingSerializedParamsError, MultichainLiquidationsService, MultichainSDK, NATIVE_ADDRESS, NOT_DEPLOYED, NO_VERSION, NetworkType, OnchainSDK, PERCENTAGE_DECIMALS, PERCENTAGE_FACTOR, PERCENTAGE_FACTOR_1KK, PERIPHERY_CONTRACTS, PHANTOM_TOKEN_CONTRACT_TYPES, PHANTOM_TOKEN_MIDAS_REDEMPTION, PHANTOM_TOKEN_SECURITIZE_REDEMPTION, PRICE_DECIMALS, PRICE_DECIMALS_POW, PartialPriceFeedInitError, PendleTWAPPTPriceFeed, PlaceholderAdapterContract, PlaceholderContract, PluginStateVersionError, PoolService, PoolSuite, PoolV310Contract, PriceFeedRef, PriceFeedRegister, PriceOracleV310Contract, PythPriceFeed, RAMP_DURATION_BY_NETWORK, RAY, RAY_DECIMALS_POW, RWARegistry, RWA_FACTORY_SECURITIZE, RWA_FACTORY_TYPES, RWA_LIQUIDATOR_MIDAS, RWA_LIQUIDATOR_SECURITIZE, RWA_ON_DEMAND_LP_MONOPOLIZED, RWA_UNDERLYING_DEFAULT, RWA_UNDERLYING_ON_DEMAND, RedemptionLoggerV310Contract, RedstonePriceFeedContract, RouterV310Contract, SDKConstruct, SECONDS_PER_YEAR, SECURITIZE_REGISTER_VAULT_TYPES, SLIPPAGE_DECIMALS, STATE_VERSION, SUPPORTED_NETWORKS, SdkAlreadyAttachedError, SdkChainMismatchError, SdkMissingChainStateError, SdkNotAttachedError, SdkStateVersionMismatchError, SdkSyncFailedError, SecuritizeLiquidatorContract, SecuritizeRWAFactory, SimulateWithPriceUpdatesError, SimulationError, TokensMeta, TypedObjectUtils, UnsupportedZapperFunctionError, VERSION_RANGE_310, VotingContractStatus, WAD, WAD_DECIMALS_POW, WithdrawalCompressorV310Contract, WithdrawalCompressorV311Contract, WithdrawalCompressorV313Contract, WstETHPriceFeedContract, YearnPriceFeedContract, ZapperContract, ZeroPriceFeedContract, ZodAddress, assetsMap, attachOptionsSchema, botPermissionsToString, bytes32ToString, chains, childLogger, createAdapter, createAddressProvider, createPriceOracle, createRawTx, createRedemptionLogger, createRouter, createWithdrawalCompressor, createZapper, abi as creditFacadeV310Abi, decodeDelayedIntent, detectNetwork, encodeDelayedIntent, estimateRawTxGas, etherscanApiUrl, etherscanUrl, executeDelegatedMulticalls, fetchPythPayloads, fetchRedstonePayloads, filterDust, filterDustUSD, findCuratorMarketConfigurator, fmtBinaryMask, formatBN, formatBNvalue, formatDuration, formatLeverage, formatNumberToString_, formatPercentage, formatTimestamp, functionArgsToMap, functionArgsToRecord, generateCastTraceCall, getCastTraceArgs, getChain, getCuratorName, getFunctionSignature, getNetworkType, getRawPriceUpdates, getSimulateWithPriceUpdatesError, getWithdrawalCompressorAddress, halfRAY, hexEq, hydrateAddressProvider, iCreditAccountAbi, isDust, isLPPriceFeed, isPublicNetwork, isRWAFactory, isSupportedNetwork, isUpdatablePriceFeed, isV310, isVersionRange, json_parse, json_stringify, numberWithCommas, onchainSDKOptionsSchema, percentFmt, rayToNumber, retry, sendRawTx, shortAddress, shortHash, simulateCall, simulateMulticall, simulateWithPriceUpdates, toAddress, toBN, toBigInt, toClaimableWithdrawal, toPendingWithdrawal, toRequestableWithdrawal, toSignificant, toWithdrawalStatus, watchBlocksAsync };
|
|
140
|
+
export { ADDRESS_0X0, ADDRESS_PROVIDER_V310, AP_ACCOUNT_FACTORY, AP_ACL, AP_BOT_LIST, AP_BYTECODE_REPOSITORY, AP_CONTRACTS_REGISTER, AP_CONTROLLER_TIMELOCK, AP_CREDIT_ACCOUNT_COMPRESSOR, AP_CREDIT_SUITE_COMPRESSOR, AP_DATA_COMPRESSOR, AP_DELEVERAGE_BOT_HV, AP_DELEVERAGE_BOT_LV, AP_DELEVERAGE_BOT_PEGGED, AP_GAUGE_COMPRESSOR, AP_GEAR_STAKING, AP_GEAR_TOKEN, AP_INFLATION_ATTACK_BLOCKER, AP_INSOLVENCY_CHECKER, AP_MARKET_COMPRESSOR, AP_MARKET_CONFIGURATOR, AP_PARTIAL_LIQUIDATION_BOT, AP_PERIPHERY_COMPRESSOR, AP_PRICE_FEED_COMPRESSOR, AP_PRICE_FEED_STORE, AP_PRICE_ORACLE, AP_REDEMPTION_LOGGER, AP_REWARDS_COMPRESSOR, AP_ROUTER, AP_RWA_COMPRESSOR, AP_TOKEN_COMPRESSOR, AP_TREASURY, AP_WETH_GATEWAY, AP_WETH_TOKEN, AP_ZAPPER_REGISTER, AP_ZERO_PRICE_FEED, AbstractLPPriceFeedContract, AbstractPriceFeedContract, AbstractWithdrawalCompressorContract, AddressMap, AddressProviderV310Contract, AddressSet, AssetsMap, BLOCKS_PER_WEEK_BY_NETWORK, BalancerStablePriceFeedContract, BalancerWeightedPriceFeedContract, BaseContract, BasePlugin, BigIntMath, BotPermissions, BoundedPriceFeedContract, ChainContractsRegister, ChainNotConfiguredError, CompositePriceFeedContract, Construct, ContractParseError, CreditAccountsServiceV310, CreditConfiguratorV310Contract, CreditFacadeV310BaseContract, CreditFacadeV310Contract, CreditManagerV310Contract, CreditSuite, CurveCryptoPriceFeedContract, CurveStablePriceFeedContract, CurveUSDPriceFeedContract, DELAYED_INTENT_TYPES, DELAYED_INTENT_VERSION, DUST_THRESHOLD, Erc4626PriceFeedContract, ExternalPriceFeedContract, GaugeContract, IERC20ZapperContract, IETHZapperContract, InvalidDelayedIntentError, LEVERAGE_DECIMALS, LIQUIDATION_APPROVAL_BUFFER, LIQUIDATION_COMPRESSOR_V313_ADDRESS, LinearInterestRateModelContract, LiquidationsService, MAX_INT, MAX_UINT16, MAX_UINT256, MIN_INT96, MULTICALL_ADDRESS, MarketRegister, MarketSuite, MellowLRTPriceFeedContract, MidasLiquidatorContract, MissingSerializedParamsError, MultichainConstruct, MultichainLiquidationsService, MultichainOpportunitiesService, MultichainSDK, NATIVE_ADDRESS, NOT_DEPLOYED, NO_VERSION, NetworkType, OnchainSDK, OpportunitiesService, PERCENTAGE_DECIMALS, PERCENTAGE_FACTOR, PERCENTAGE_FACTOR_1KK, PERIPHERY_CONTRACTS, PHANTOM_TOKEN_CONTRACT_TYPES, PHANTOM_TOKEN_MIDAS_REDEMPTION, PHANTOM_TOKEN_SECURITIZE_REDEMPTION, PRICE_DECIMALS, PRICE_DECIMALS_POW, PartialPriceFeedInitError, PendleTWAPPTPriceFeed, PlaceholderAdapterContract, PlaceholderContract, PluginStateVersionError, PoolService, PoolSuite, PoolV310Contract, PriceFeedRef, PriceFeedRegister, PriceOracleV310Contract, PythPriceFeed, RAMP_DURATION_BY_NETWORK, RAY, RAY_DECIMALS_POW, RWARegistry, RWA_FACTORY_SECURITIZE, RWA_FACTORY_TYPES, RWA_LIQUIDATOR_MIDAS, RWA_LIQUIDATOR_SECURITIZE, RWA_ON_DEMAND_LP_MONOPOLIZED, RWA_UNDERLYING_DEFAULT, RWA_UNDERLYING_ON_DEMAND, RedemptionLoggerV310Contract, RedstonePriceFeedContract, RouterV310Contract, SDKConstruct, SECONDS_PER_YEAR, SECURITIZE_REGISTER_VAULT_TYPES, SLIPPAGE_DECIMALS, STATE_VERSION, SUPPORTED_NETWORKS, SdkAlreadyAttachedError, SdkChainMismatchError, SdkMissingChainStateError, SdkNotAttachedError, SdkStateVersionMismatchError, SdkSyncFailedError, SecuritizeLiquidatorContract, SecuritizeRWAFactory, SimulateWithPriceUpdatesError, SimulationError, TokensMeta, TypedObjectUtils, UnsupportedZapperFunctionError, VERSION_RANGE_310, VotingContractStatus, WAD, WAD_DECIMALS_POW, WithdrawalCompressorV310Contract, WithdrawalCompressorV311Contract, WithdrawalCompressorV313Contract, WstETHPriceFeedContract, YearnPriceFeedContract, ZapperContract, ZeroPriceFeedContract, ZodAddress, ZodHex, additionalBorrowApyBps, assetsMap, attachOptionsSchema, borrowApyBps, botPermissionsToString, bytes32ToString, chains, childLogger, createAdapter, createAddressProvider, createPriceOracle, createRawTx, createRedemptionLogger, createRouter, createWithdrawalCompressor, createZapper, abi as creditFacadeV310Abi, decodeDelayedIntent, detectNetwork, encodeDelayedIntent, estimateRawTxGas, etherscanApiUrl, etherscanUrl, executeDelegatedMulticalls, fetchPythPayloads, fetchRedstonePayloads, filterDust, filterDustUSD, findCuratorMarketConfigurator, fmtBinaryMask, formatBN, formatBNvalue, formatDuration, formatLeverage, formatNumberToString_, formatPercentage, formatTimestamp, functionArgsToMap, functionArgsToRecord, generateCastTraceCall, getAssetType, getCastTraceArgs, getChain, getCuratorName, getFunctionSignature, getNetworkType, getRawPriceUpdates, getSimulateWithPriceUpdatesError, getWithdrawalCompressorAddress, halfRAY, hexEq, hydrateAddressProvider, iCreditAccountAbi, isDust, isLPPriceFeed, isPublicNetwork, isRWAFactory, isRWAToken, isSunsetPool, isSunsetStrategy, isSupportedNetwork, isUpdatablePriceFeed, isV310, isVersionRange, json_parse, json_stringify, maxLeverage, numberWithCommas, onchainSDKOptionsSchema, percentFmt, rayToBps, rayToNumber, retry, sendRawTx, shortAddress, shortHash, simulateCall, simulateMulticall, simulateWithPriceUpdates, toAddress, toBN, toBigInt, toClaimableWithdrawal, toPendingWithdrawal, toRequestableWithdrawal, toSignificant, toWithdrawalStatus, usdToNumber, utilizationBps, watchBlocksAsync };
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { iMarketConfiguratorV310Abi } from "../../abi/310/generated.js";
|
|
2
|
+
import { getCuratorName } from "../chain/chains.js";
|
|
2
3
|
import { AP_MARKET_CONFIGURATOR } from "../constants/address-provider.js";
|
|
3
4
|
import "../constants/index.js";
|
|
4
5
|
import { BaseContract } from "../base/BaseContract.js";
|
|
@@ -24,6 +25,19 @@ var MarketConfiguratorContract = class extends BaseContract {
|
|
|
24
25
|
});
|
|
25
26
|
this.register.setAddressLabel(this.address, `Market configurator ${this.#curatorName}`);
|
|
26
27
|
}
|
|
28
|
+
/**
|
|
29
|
+
* The entity operating this configurator, as the shared read model describes
|
|
30
|
+
* it. The curated per-chain table wins over the name the contract reports,
|
|
31
|
+
* because the two sources must agree across services and only the table is
|
|
32
|
+
* shared with the backend.
|
|
33
|
+
*/
|
|
34
|
+
get curator() {
|
|
35
|
+
return {
|
|
36
|
+
address: this.address,
|
|
37
|
+
name: getCuratorName(this.address, this.networkType) ?? this.#curatorName ?? "Unknown",
|
|
38
|
+
url: null
|
|
39
|
+
};
|
|
40
|
+
}
|
|
27
41
|
static async getPeripheryContractBatch(configurators, client, contract, blockNumber) {
|
|
28
42
|
return await client.multicall({
|
|
29
43
|
allowFailure: true,
|