@gearbox-protocol/sdk 14.12.0-next.66 → 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/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/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/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/index.js +2 -2
- package/dist/esm/sdk/accounts/liquidations/LiquidationsService.js +152 -108
- 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/base/MultichainConstruct.js +79 -0
- package/dist/esm/sdk/base/TokensMeta.js +51 -0
- package/dist/esm/sdk/base/index.js +2 -1
- package/dist/esm/sdk/chain/chains.js +74 -2
- package/dist/esm/sdk/chain/index.js +2 -2
- 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/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 +27 -0
- package/dist/esm/sdk/market/pool/math.js +41 -0
- package/dist/esm/sdk/market/pricefeeds/AbstractPriceFeed.js +17 -0
- 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/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/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 +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
|
@@ -63,6 +63,19 @@ const chains = {
|
|
|
63
63
|
"0xa770ce584adb6491a2138da6eaec33243bdcd248": "Testnet Curator"
|
|
64
64
|
},
|
|
65
65
|
rwaFactories: [],
|
|
66
|
+
underlyingAssetTypes: {
|
|
67
|
+
"0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0": "ETH",
|
|
68
|
+
"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2": "ETH",
|
|
69
|
+
"0x18084fbA666a33d37592fA2633fD49a74DD93a88": "BTC",
|
|
70
|
+
"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48": "Stable",
|
|
71
|
+
"0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599": "BTC"
|
|
72
|
+
},
|
|
73
|
+
rwaTokens: [
|
|
74
|
+
"0x17418038ecF73BA4026c4f428547BF099706F27B",
|
|
75
|
+
"0x51C2d74017390CbBd30550179A16A1c28F7210fc",
|
|
76
|
+
"0x238a700eD6165261Cf8b2e544ba797BC11e466Ba",
|
|
77
|
+
"0x7433806912Eae67919e66aea853d46Fa0aef98A8"
|
|
78
|
+
],
|
|
66
79
|
isPublic: true,
|
|
67
80
|
wellKnownToken: {
|
|
68
81
|
address: "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
|
|
@@ -153,6 +166,12 @@ const chains = {
|
|
|
153
166
|
"0x16956912813ab9a38d95730b52a8cf53e860a7c5": "Tulipa",
|
|
154
167
|
"0x7c6ee1bf9c1eb3ee55bdbdc1e8d0317aab718e0a": "UltraYield"
|
|
155
168
|
},
|
|
169
|
+
underlyingAssetTypes: {
|
|
170
|
+
"0x3bd359C1119dA7Da1D913D1C4D2B7c461115433A": "ETH",
|
|
171
|
+
"0x754704Bc059F8C67012fEd69BC8A327a5aafb603": "Stable",
|
|
172
|
+
"0xe7cd86e13AC4309349F30B3435a9d337750fC82D": "Stable",
|
|
173
|
+
"0x00000000eFE302BEAA2b3e6e1b18d08D69a9012a": "Stable"
|
|
174
|
+
},
|
|
156
175
|
rwaFactories: [],
|
|
157
176
|
isPublic: true,
|
|
158
177
|
wellKnownToken: {
|
|
@@ -224,6 +243,7 @@ const chains = {
|
|
|
224
243
|
...viem_chains.etherlink,
|
|
225
244
|
network: "Etherlink",
|
|
226
245
|
defaultMarketConfigurators: { "0x577424f0e6f50db668cc1bc76babb87e36732291": "Re7" },
|
|
246
|
+
underlyingAssetTypes: { "0x796Ea11Fa2dD751eD01b53C372fFDB4AAa8f00F9": "Stable" },
|
|
227
247
|
rwaFactories: [],
|
|
228
248
|
isPublic: true,
|
|
229
249
|
wellKnownToken: {
|
|
@@ -270,6 +290,10 @@ const chains = {
|
|
|
270
290
|
"0xce1cf71a28837daaa7b92d00ca4ef2fd649c2a67": "Hyperithm",
|
|
271
291
|
"0x9655f82b585b11cee8a05576ed8efcf755cec04b": "TelosC"
|
|
272
292
|
},
|
|
293
|
+
underlyingAssetTypes: {
|
|
294
|
+
"0xB8CE59FC3717ada4C02eaDF9682A9e934F625ebb": "Stable",
|
|
295
|
+
"0x5d3a1Ff2b6BAb83b63cd9AD0787074081a52ef34": "Stable"
|
|
296
|
+
},
|
|
273
297
|
rwaFactories: [],
|
|
274
298
|
isPublic: true,
|
|
275
299
|
wellKnownToken: {
|
|
@@ -289,6 +313,10 @@ const chains = {
|
|
|
289
313
|
blockTime: 200,
|
|
290
314
|
network: "Somnia",
|
|
291
315
|
defaultMarketConfigurators: { "0x1ca8b92aa7233a9f8f7ba031ac45c878141adff0": "Invariant Group" },
|
|
316
|
+
underlyingAssetTypes: {
|
|
317
|
+
"0x28BEc7E30E6faee657a03e19Bf1128AaD7632A00": "Stable",
|
|
318
|
+
"0x046EDe9564A72571df6F5e44d0405360c0f4dCab": "ETH"
|
|
319
|
+
},
|
|
292
320
|
rwaFactories: [],
|
|
293
321
|
isPublic: true,
|
|
294
322
|
wellKnownToken: {
|
|
@@ -379,13 +407,61 @@ function findCuratorMarketConfigurator(curator, network) {
|
|
|
379
407
|
};
|
|
380
408
|
for (const [a, c] of require_sdk_utils_mappers.TypedObjectUtils.entries(all)) if (c === curator) return a;
|
|
381
409
|
}
|
|
410
|
+
/**
|
|
411
|
+
* Looks up the {@link AssetType} of a token in hardcoded classifier.
|
|
412
|
+
* Not all tokens are classified, only underlyings, so the default answer is `undefined`.
|
|
413
|
+
*
|
|
414
|
+
* @param token - Token address
|
|
415
|
+
* @param network - Network the token lives on.
|
|
416
|
+
* @returns The asset type, or `undefined` when the token is not classified
|
|
417
|
+
**/
|
|
418
|
+
function getAssetType(token, network) {
|
|
419
|
+
const table = chains[network].underlyingAssetTypes;
|
|
420
|
+
if (!table) return;
|
|
421
|
+
for (const [a, assetType] of require_sdk_utils_mappers.TypedObjectUtils.entries(table)) if ((0, viem.isAddressEqual)(a, token)) return assetType;
|
|
422
|
+
}
|
|
423
|
+
/**
|
|
424
|
+
* Checks whether a token represents a real-world asset, per the curated list of
|
|
425
|
+
* a network.
|
|
426
|
+
*
|
|
427
|
+
* @param token - Token address.
|
|
428
|
+
* @param network - Network the token lives on.
|
|
429
|
+
**/
|
|
430
|
+
function isRWAToken(token, network) {
|
|
431
|
+
return !!chains[network].rwaTokens?.some((t) => (0, viem.isAddressEqual)(t, token));
|
|
432
|
+
}
|
|
433
|
+
/**
|
|
434
|
+
* Checks whether a pool is on the sunset list of a network.
|
|
435
|
+
*
|
|
436
|
+
* @param pool - Pool address.
|
|
437
|
+
* @param network - Network the pool lives on.
|
|
438
|
+
**/
|
|
439
|
+
function isSunsetPool(pool, network) {
|
|
440
|
+
return !!chains[network].sunsetPools?.some((p) => (0, viem.isAddressEqual)(p, pool));
|
|
441
|
+
}
|
|
442
|
+
/**
|
|
443
|
+
* Checks whether a strategy is on the sunset list of a network. Both halves of
|
|
444
|
+
* the strategy key must match: a credit manager can wind down one collateral
|
|
445
|
+
* and keep the rest.
|
|
446
|
+
*
|
|
447
|
+
* @param creditManager - Credit manager address.
|
|
448
|
+
* @param collateral - Target collateral of the strategy.
|
|
449
|
+
* @param network - Network the strategy lives on.
|
|
450
|
+
**/
|
|
451
|
+
function isSunsetStrategy(creditManager, collateral, network) {
|
|
452
|
+
return !!chains[network].sunsetStrategies?.some((s) => (0, viem.isAddressEqual)(s.creditManager, creditManager) && (0, viem.isAddressEqual)(s.collateral, collateral));
|
|
453
|
+
}
|
|
382
454
|
//#endregion
|
|
383
455
|
exports.NetworkType = NetworkType;
|
|
384
456
|
exports.SUPPORTED_NETWORKS = SUPPORTED_NETWORKS;
|
|
385
457
|
exports.chains = chains;
|
|
386
458
|
exports.findCuratorMarketConfigurator = findCuratorMarketConfigurator;
|
|
459
|
+
exports.getAssetType = getAssetType;
|
|
387
460
|
exports.getChain = getChain;
|
|
388
461
|
exports.getCuratorName = getCuratorName;
|
|
389
462
|
exports.getNetworkType = getNetworkType;
|
|
390
463
|
exports.isPublicNetwork = isPublicNetwork;
|
|
464
|
+
exports.isRWAToken = isRWAToken;
|
|
465
|
+
exports.isSunsetPool = isSunsetPool;
|
|
466
|
+
exports.isSunsetStrategy = isSunsetStrategy;
|
|
391
467
|
exports.isSupportedNetwork = isSupportedNetwork;
|
|
@@ -6,8 +6,12 @@ exports.SUPPORTED_NETWORKS = require_sdk_chain_chains.SUPPORTED_NETWORKS;
|
|
|
6
6
|
exports.chains = require_sdk_chain_chains.chains;
|
|
7
7
|
exports.detectNetwork = require_sdk_chain_detectNetwork.detectNetwork;
|
|
8
8
|
exports.findCuratorMarketConfigurator = require_sdk_chain_chains.findCuratorMarketConfigurator;
|
|
9
|
+
exports.getAssetType = require_sdk_chain_chains.getAssetType;
|
|
9
10
|
exports.getChain = require_sdk_chain_chains.getChain;
|
|
10
11
|
exports.getCuratorName = require_sdk_chain_chains.getCuratorName;
|
|
11
12
|
exports.getNetworkType = require_sdk_chain_chains.getNetworkType;
|
|
12
13
|
exports.isPublicNetwork = require_sdk_chain_chains.isPublicNetwork;
|
|
14
|
+
exports.isRWAToken = require_sdk_chain_chains.isRWAToken;
|
|
15
|
+
exports.isSunsetPool = require_sdk_chain_chains.isSunsetPool;
|
|
16
|
+
exports.isSunsetStrategy = require_sdk_chain_chains.isSunsetStrategy;
|
|
13
17
|
exports.isSupportedNetwork = require_sdk_chain_chains.isSupportedNetwork;
|
|
@@ -52,6 +52,18 @@ var SdkMissingChainStateError = class extends viem.BaseError {
|
|
|
52
52
|
}
|
|
53
53
|
};
|
|
54
54
|
/**
|
|
55
|
+
* Thrown when a chain that is not configured in {@link MultichainSDK} is
|
|
56
|
+
* requested.
|
|
57
|
+
*/
|
|
58
|
+
var ChainNotConfiguredError = class extends viem.BaseError {
|
|
59
|
+
name = "ChainNotConfiguredError";
|
|
60
|
+
network;
|
|
61
|
+
constructor(network) {
|
|
62
|
+
super(`Chain ${String(network)} is not configured in this MultichainSDK`);
|
|
63
|
+
this.network = network;
|
|
64
|
+
}
|
|
65
|
+
};
|
|
66
|
+
/**
|
|
55
67
|
* Thrown by {@link MultichainSDK.syncState} when one or more per-chain syncs
|
|
56
68
|
* fail. Wraps the individual errors keyed by network.
|
|
57
69
|
*/
|
|
@@ -65,6 +77,7 @@ var SdkSyncFailedError = class extends viem.BaseError {
|
|
|
65
77
|
}
|
|
66
78
|
};
|
|
67
79
|
//#endregion
|
|
80
|
+
exports.ChainNotConfiguredError = ChainNotConfiguredError;
|
|
68
81
|
exports.SdkAlreadyAttachedError = SdkAlreadyAttachedError;
|
|
69
82
|
exports.SdkChainMismatchError = SdkChainMismatchError;
|
|
70
83
|
exports.SdkMissingChainStateError = SdkMissingChainStateError;
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
const require_sdk_core_errors = require("./errors.js");
|
|
2
3
|
const require_sdk_core_AddressProviderV310Contract = require("./AddressProviderV310Contract.js");
|
|
3
4
|
const require_sdk_core_createAddressProvider = require("./createAddressProvider.js");
|
|
4
|
-
const require_sdk_core_errors = require("./errors.js");
|
|
5
5
|
require("./types.js");
|
|
6
6
|
exports.AddressProviderV310Contract = require_sdk_core_AddressProviderV310Contract.AddressProviderV310Contract;
|
|
7
|
+
exports.ChainNotConfiguredError = require_sdk_core_errors.ChainNotConfiguredError;
|
|
7
8
|
exports.SdkAlreadyAttachedError = require_sdk_core_errors.SdkAlreadyAttachedError;
|
|
8
9
|
exports.SdkChainMismatchError = require_sdk_core_errors.SdkChainMismatchError;
|
|
9
10
|
exports.SdkMissingChainStateError = require_sdk_core_errors.SdkMissingChainStateError;
|
package/dist/cjs/sdk/index.js
CHANGED
|
@@ -4,6 +4,7 @@ const require_sdk_utils_AddressSet = require("./utils/AddressSet.js");
|
|
|
4
4
|
const require_sdk_utils_AssetsMap = require("./utils/AssetsMap.js");
|
|
5
5
|
const require_sdk_utils_json = require("./utils/json.js");
|
|
6
6
|
const require_sdk_utils_abi_decode = require("./utils/abi-decode.js");
|
|
7
|
+
const require_sdk_utils_bigint_math = require("./utils/bigint-math.js");
|
|
7
8
|
const require_sdk_utils_bytes32ToString = require("./utils/bytes32ToString.js");
|
|
8
9
|
const require_sdk_utils_childLogger = require("./utils/childLogger.js");
|
|
9
10
|
const require_sdk_utils_createRawTx = require("./utils/createRawTx.js");
|
|
@@ -35,6 +36,8 @@ const require_sdk_base_ChainContractsRegister = require("./base/ChainContractsRe
|
|
|
35
36
|
const require_sdk_base_Construct = require("./base/Construct.js");
|
|
36
37
|
const require_sdk_base_BaseContract = require("./base/BaseContract.js");
|
|
37
38
|
const require_sdk_base_errors = require("./base/errors.js");
|
|
39
|
+
const require_sdk_core_errors = require("./core/errors.js");
|
|
40
|
+
const require_sdk_base_MultichainConstruct = require("./base/MultichainConstruct.js");
|
|
38
41
|
const require_sdk_base_PlaceholderContract = require("./base/PlaceholderContract.js");
|
|
39
42
|
const require_sdk_base_SDKConstruct = require("./base/SDKConstruct.js");
|
|
40
43
|
const require_sdk_base_token_types = require("./base/token-types.js");
|
|
@@ -45,6 +48,7 @@ const require_sdk_market_adapters_createAdapter = require("./market/adapters/cre
|
|
|
45
48
|
const require_sdk_market_credit_CreditConfiguratorV310Contract = require("./market/credit/CreditConfiguratorV310Contract.js");
|
|
46
49
|
const require_sdk_market_credit_CreditFacadeV310BaseContract = require("./market/credit/CreditFacadeV310BaseContract.js");
|
|
47
50
|
const require_sdk_market_credit_CreditFacadeV310Contract = require("./market/credit/CreditFacadeV310Contract.js");
|
|
51
|
+
const require_sdk_market_math = require("./market/math.js");
|
|
48
52
|
const require_sdk_market_credit_CreditManagerV310Contract = require("./market/credit/CreditManagerV310Contract.js");
|
|
49
53
|
const require_sdk_market_credit_CreditSuite = require("./market/credit/CreditSuite.js");
|
|
50
54
|
const require_sdk_utils_viem_simulateMulticall = require("./utils/viem/simulateMulticall.js");
|
|
@@ -117,8 +121,10 @@ const require_sdk_accounts_withdrawal_compressor_createWithdrawalCompressor = re
|
|
|
117
121
|
require("./accounts/index.js");
|
|
118
122
|
const require_sdk_core_AddressProviderV310Contract = require("./core/AddressProviderV310Contract.js");
|
|
119
123
|
const require_sdk_core_createAddressProvider = require("./core/createAddressProvider.js");
|
|
120
|
-
const require_sdk_core_errors = require("./core/errors.js");
|
|
121
124
|
require("./core/index.js");
|
|
125
|
+
const require_sdk_opportunities_MultichainOpportunitiesService = require("./opportunities/MultichainOpportunitiesService.js");
|
|
126
|
+
const require_sdk_opportunities_OpportunitiesService = require("./opportunities/OpportunitiesService.js");
|
|
127
|
+
require("./opportunities/index.js");
|
|
122
128
|
const require_sdk_plugins_BasePlugin = require("./plugins/BasePlugin.js");
|
|
123
129
|
const require_sdk_plugins_errors = require("./plugins/errors.js");
|
|
124
130
|
require("./plugins/index.js");
|
|
@@ -180,9 +186,11 @@ exports.BalancerStablePriceFeedContract = require_sdk_market_pricefeeds_Balancer
|
|
|
180
186
|
exports.BalancerWeightedPriceFeedContract = require_sdk_market_pricefeeds_BalancerWeightedPriceFeed.BalancerWeightedPriceFeedContract;
|
|
181
187
|
exports.BaseContract = require_sdk_base_BaseContract.BaseContract;
|
|
182
188
|
exports.BasePlugin = require_sdk_plugins_BasePlugin.BasePlugin;
|
|
189
|
+
exports.BigIntMath = require_sdk_utils_bigint_math.BigIntMath;
|
|
183
190
|
exports.BotPermissions = require_sdk_constants_bot_permissions.BotPermissions;
|
|
184
191
|
exports.BoundedPriceFeedContract = require_sdk_market_pricefeeds_BoundedPriceFeed.BoundedPriceFeedContract;
|
|
185
192
|
exports.ChainContractsRegister = require_sdk_base_ChainContractsRegister.ChainContractsRegister;
|
|
193
|
+
exports.ChainNotConfiguredError = require_sdk_core_errors.ChainNotConfiguredError;
|
|
186
194
|
exports.CompositePriceFeedContract = require_sdk_market_pricefeeds_CompositePriceFeed.CompositePriceFeedContract;
|
|
187
195
|
exports.Construct = require_sdk_base_Construct.Construct;
|
|
188
196
|
exports.ContractParseError = require_sdk_base_BaseContract.ContractParseError;
|
|
@@ -197,6 +205,7 @@ exports.CurveStablePriceFeedContract = require_sdk_market_pricefeeds_CurveStable
|
|
|
197
205
|
exports.CurveUSDPriceFeedContract = require_sdk_market_pricefeeds_CurveUSDPriceFeed.CurveUSDPriceFeedContract;
|
|
198
206
|
exports.DELAYED_INTENT_TYPES = require_sdk_accounts_withdrawal_compressor_intent_codec.DELAYED_INTENT_TYPES;
|
|
199
207
|
exports.DELAYED_INTENT_VERSION = require_sdk_accounts_withdrawal_compressor_intent_codec.DELAYED_INTENT_VERSION;
|
|
208
|
+
exports.DUST_THRESHOLD = require_sdk_accounts_liquidations_constants.DUST_THRESHOLD;
|
|
200
209
|
exports.Erc4626PriceFeedContract = require_sdk_market_pricefeeds_Erc4626PriceFeed.Erc4626PriceFeedContract;
|
|
201
210
|
exports.ExternalPriceFeedContract = require_sdk_market_pricefeeds_ExternalPriceFeed.ExternalPriceFeedContract;
|
|
202
211
|
exports.GaugeContract = require_sdk_market_pool_GaugeContract.GaugeContract;
|
|
@@ -204,6 +213,7 @@ exports.IERC20ZapperContract = require_sdk_market_zapper_IERC20ZapperContract.IE
|
|
|
204
213
|
exports.IETHZapperContract = require_sdk_market_zapper_IETHZapperContract.IETHZapperContract;
|
|
205
214
|
exports.InvalidDelayedIntentError = require_sdk_accounts_withdrawal_compressor_errors.InvalidDelayedIntentError;
|
|
206
215
|
exports.LEVERAGE_DECIMALS = require_sdk_constants_math.LEVERAGE_DECIMALS;
|
|
216
|
+
exports.LIQUIDATION_APPROVAL_BUFFER = require_sdk_accounts_liquidations_constants.LIQUIDATION_APPROVAL_BUFFER;
|
|
207
217
|
exports.LIQUIDATION_COMPRESSOR_V313_ADDRESS = require_sdk_accounts_liquidations_constants.LIQUIDATION_COMPRESSOR_V313_ADDRESS;
|
|
208
218
|
exports.LinearInterestRateModelContract = require_sdk_market_pool_LinearInterestRateModelContract.LinearInterestRateModelContract;
|
|
209
219
|
exports.LiquidationsService = require_sdk_accounts_liquidations_LiquidationsService.LiquidationsService;
|
|
@@ -217,13 +227,16 @@ exports.MarketSuite = require_sdk_market_MarketSuite.MarketSuite;
|
|
|
217
227
|
exports.MellowLRTPriceFeedContract = require_sdk_market_pricefeeds_MellowLRTPriceFeed.MellowLRTPriceFeedContract;
|
|
218
228
|
exports.MidasLiquidatorContract = require_sdk_market_rwa_midas_MidasLiquidatorContract.MidasLiquidatorContract;
|
|
219
229
|
exports.MissingSerializedParamsError = require_sdk_base_errors.MissingSerializedParamsError;
|
|
230
|
+
exports.MultichainConstruct = require_sdk_base_MultichainConstruct.MultichainConstruct;
|
|
220
231
|
exports.MultichainLiquidationsService = require_sdk_accounts_liquidations_MultichainLiquidationsService.MultichainLiquidationsService;
|
|
232
|
+
exports.MultichainOpportunitiesService = require_sdk_opportunities_MultichainOpportunitiesService.MultichainOpportunitiesService;
|
|
221
233
|
exports.MultichainSDK = require_sdk_MultichainSDK.MultichainSDK;
|
|
222
234
|
exports.NATIVE_ADDRESS = require_sdk_constants_addresses.NATIVE_ADDRESS;
|
|
223
235
|
exports.NOT_DEPLOYED = require_sdk_constants_addresses.NOT_DEPLOYED;
|
|
224
236
|
exports.NO_VERSION = require_sdk_constants_address_provider.NO_VERSION;
|
|
225
237
|
exports.NetworkType = require_sdk_chain_chains.NetworkType;
|
|
226
238
|
exports.OnchainSDK = require_sdk_OnchainSDK.OnchainSDK;
|
|
239
|
+
exports.OpportunitiesService = require_sdk_opportunities_OpportunitiesService.OpportunitiesService;
|
|
227
240
|
exports.PERCENTAGE_DECIMALS = require_sdk_constants_math.PERCENTAGE_DECIMALS;
|
|
228
241
|
exports.PERCENTAGE_FACTOR = require_sdk_constants_math.PERCENTAGE_FACTOR;
|
|
229
242
|
exports.PERCENTAGE_FACTOR_1KK = require_sdk_constants_math.PERCENTAGE_FACTOR_1KK;
|
|
@@ -290,8 +303,11 @@ exports.YearnPriceFeedContract = require_sdk_market_pricefeeds_YearnPriceFeed.Ye
|
|
|
290
303
|
exports.ZapperContract = require_sdk_market_zapper_ZapperContract.ZapperContract;
|
|
291
304
|
exports.ZeroPriceFeedContract = require_sdk_market_pricefeeds_ZeroPriceFeed.ZeroPriceFeedContract;
|
|
292
305
|
exports.ZodAddress = require_sdk_utils_zod.ZodAddress;
|
|
306
|
+
exports.ZodHex = require_sdk_utils_zod.ZodHex;
|
|
307
|
+
exports.additionalBorrowApyBps = require_sdk_market_math.additionalBorrowApyBps;
|
|
293
308
|
exports.assetsMap = require_sdk_router_helpers.assetsMap;
|
|
294
309
|
exports.attachOptionsSchema = require_sdk_options.attachOptionsSchema;
|
|
310
|
+
exports.borrowApyBps = require_sdk_market_math.borrowApyBps;
|
|
295
311
|
exports.botPermissionsToString = require_sdk_constants_bot_permissions.botPermissionsToString;
|
|
296
312
|
exports.bytes32ToString = require_sdk_utils_bytes32ToString.bytes32ToString;
|
|
297
313
|
exports.chains = require_sdk_chain_chains.chains;
|
|
@@ -328,6 +344,7 @@ exports.formatTimestamp = require_sdk_utils_formatter.formatTimestamp;
|
|
|
328
344
|
exports.functionArgsToMap = require_sdk_utils_abi_decode.functionArgsToMap;
|
|
329
345
|
exports.functionArgsToRecord = require_sdk_utils_abi_decode.functionArgsToRecord;
|
|
330
346
|
exports.generateCastTraceCall = require_sdk_utils_viem_cast.generateCastTraceCall;
|
|
347
|
+
exports.getAssetType = require_sdk_chain_chains.getAssetType;
|
|
331
348
|
exports.getCastTraceArgs = require_sdk_utils_viem_cast.getCastTraceArgs;
|
|
332
349
|
exports.getChain = require_sdk_chain_chains.getChain;
|
|
333
350
|
exports.getCuratorName = require_sdk_chain_chains.getCuratorName;
|
|
@@ -344,15 +361,20 @@ exports.isDust = require_sdk_utils_isDust.isDust;
|
|
|
344
361
|
exports.isLPPriceFeed = require_sdk_market_pricefeeds_AbstractLPPriceFeed.isLPPriceFeed;
|
|
345
362
|
exports.isPublicNetwork = require_sdk_chain_chains.isPublicNetwork;
|
|
346
363
|
exports.isRWAFactory = require_sdk_market_rwa_types.isRWAFactory;
|
|
364
|
+
exports.isRWAToken = require_sdk_chain_chains.isRWAToken;
|
|
365
|
+
exports.isSunsetPool = require_sdk_chain_chains.isSunsetPool;
|
|
366
|
+
exports.isSunsetStrategy = require_sdk_chain_chains.isSunsetStrategy;
|
|
347
367
|
exports.isSupportedNetwork = require_sdk_chain_chains.isSupportedNetwork;
|
|
348
368
|
exports.isUpdatablePriceFeed = require_sdk_market_pricefeeds_isUpdatablePriceFeed.isUpdatablePriceFeed;
|
|
349
369
|
exports.isV310 = require_sdk_constants_versions.isV310;
|
|
350
370
|
exports.isVersionRange = require_sdk_constants_versions.isVersionRange;
|
|
351
371
|
exports.json_parse = require_sdk_utils_json.json_parse;
|
|
352
372
|
exports.json_stringify = require_sdk_utils_json.json_stringify;
|
|
373
|
+
exports.maxLeverage = require_sdk_market_math.maxLeverage;
|
|
353
374
|
exports.numberWithCommas = require_sdk_utils_formatter.numberWithCommas;
|
|
354
375
|
exports.onchainSDKOptionsSchema = require_sdk_options.onchainSDKOptionsSchema;
|
|
355
376
|
exports.percentFmt = require_sdk_utils_formatter.percentFmt;
|
|
377
|
+
exports.rayToBps = require_sdk_market_math.rayToBps;
|
|
356
378
|
exports.rayToNumber = require_sdk_utils_formatter.rayToNumber;
|
|
357
379
|
exports.retry = require_sdk_utils_retry.retry;
|
|
358
380
|
exports.sendRawTx = require_sdk_utils_viem_sendRawTx.sendRawTx;
|
|
@@ -369,4 +391,6 @@ exports.toPendingWithdrawal = require_sdk_accounts_withdrawal_compressor_Abstrac
|
|
|
369
391
|
exports.toRequestableWithdrawal = require_sdk_accounts_withdrawal_compressor_AbstractWithdrawalCompressorContract.toRequestableWithdrawal;
|
|
370
392
|
exports.toSignificant = require_sdk_utils_formatter.toSignificant;
|
|
371
393
|
exports.toWithdrawalStatus = require_sdk_accounts_withdrawal_compressor_types.toWithdrawalStatus;
|
|
394
|
+
exports.usdToNumber = require_sdk_market_math.usdToNumber;
|
|
395
|
+
exports.utilizationBps = require_sdk_market_math.utilizationBps;
|
|
372
396
|
exports.watchBlocksAsync = require_sdk_utils_viem_watchBlocksAsync.watchBlocksAsync;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
2
|
const require_abi_310_generated = require("../../abi/310/generated.js");
|
|
3
|
+
const require_sdk_chain_chains = require("../chain/chains.js");
|
|
3
4
|
const require_sdk_constants_address_provider = require("../constants/address-provider.js");
|
|
4
5
|
require("../constants/index.js");
|
|
5
6
|
const require_sdk_base_BaseContract = require("../base/BaseContract.js");
|
|
@@ -25,6 +26,19 @@ var MarketConfiguratorContract = class extends require_sdk_base_BaseContract.Bas
|
|
|
25
26
|
});
|
|
26
27
|
this.register.setAddressLabel(this.address, `Market configurator ${this.#curatorName}`);
|
|
27
28
|
}
|
|
29
|
+
/**
|
|
30
|
+
* The entity operating this configurator, as the shared read model describes
|
|
31
|
+
* it. The curated per-chain table wins over the name the contract reports,
|
|
32
|
+
* because the two sources must agree across services and only the table is
|
|
33
|
+
* shared with the backend.
|
|
34
|
+
*/
|
|
35
|
+
get curator() {
|
|
36
|
+
return {
|
|
37
|
+
address: this.address,
|
|
38
|
+
name: require_sdk_chain_chains.getCuratorName(this.address, this.networkType) ?? this.#curatorName ?? "Unknown",
|
|
39
|
+
url: null
|
|
40
|
+
};
|
|
41
|
+
}
|
|
28
42
|
static async getPeripheryContractBatch(configurators, client, contract, blockNumber) {
|
|
29
43
|
return await client.multicall({
|
|
30
44
|
allowFailure: true,
|
|
@@ -1,15 +1,21 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
const require_sdk_utils_AddressMap = require("../utils/AddressMap.js");
|
|
3
|
+
const require_sdk_chain_chains = require("../chain/chains.js");
|
|
4
|
+
require("../utils/index.js");
|
|
2
5
|
const require_sdk_base_SDKConstruct = require("../base/SDKConstruct.js");
|
|
3
6
|
require("../base/index.js");
|
|
4
7
|
const require_sdk_market_credit_CreditSuite = require("./credit/CreditSuite.js");
|
|
5
8
|
require("./credit/index.js");
|
|
6
9
|
const require_sdk_market_MarketConfiguratorContract = require("./MarketConfiguratorContract.js");
|
|
10
|
+
const require_model_opportunities = require("../../model/opportunities.js");
|
|
11
|
+
require("../../model/index.js");
|
|
7
12
|
const require_sdk_market_loss_policy_createLossPolicy = require("./loss-policy/createLossPolicy.js");
|
|
8
13
|
require("./loss-policy/index.js");
|
|
9
14
|
const require_sdk_market_oracle_createPriceOracle = require("./oracle/createPriceOracle.js");
|
|
10
15
|
require("./oracle/index.js");
|
|
11
16
|
const require_sdk_market_pool_PoolSuite = require("./pool/PoolSuite.js");
|
|
12
17
|
require("./pool/index.js");
|
|
18
|
+
let viem = require("viem");
|
|
13
19
|
//#region src/sdk/market/MarketSuite.ts
|
|
14
20
|
/**
|
|
15
21
|
* Aggregates all SDK wrappers that make up one Gearbox market.
|
|
@@ -101,6 +107,163 @@ var MarketSuite = class extends require_sdk_base_SDKConstruct.SDKConstruct {
|
|
|
101
107
|
return this.pool.rwaFactory;
|
|
102
108
|
}
|
|
103
109
|
/**
|
|
110
|
+
* {@inheritDoc IPoolContract.unwrappedUnderlying}
|
|
111
|
+
*/
|
|
112
|
+
get unwrappedUnderlying() {
|
|
113
|
+
return this.pool.unwrappedUnderlying;
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* The market's underlying as the shared read model describes it.
|
|
117
|
+
*
|
|
118
|
+
* For an RWA market this is the token the underlying wraps rather than the
|
|
119
|
+
* wrapper itself, because only that token means anything to a reader. The
|
|
120
|
+
* wrapper converts one-for-one, so amounts denominated in it stay exact.
|
|
121
|
+
*/
|
|
122
|
+
get underlyingToken() {
|
|
123
|
+
return this.tokensMeta.mustGetToken(this.unwrappedUnderlying);
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* {@inheritDoc MarketConfiguratorContract.curator}
|
|
127
|
+
*/
|
|
128
|
+
get curator() {
|
|
129
|
+
return this.configurator.curator;
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Every `(credit suite, collateral)` pair of this market that qualifies as a
|
|
133
|
+
* leveraged position.
|
|
134
|
+
*/
|
|
135
|
+
get strategies() {
|
|
136
|
+
return this.creditManagers.flatMap((suite) => suite.strategyCollaterals.map((collateral) => ({
|
|
137
|
+
suite,
|
|
138
|
+
collateral
|
|
139
|
+
})));
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Tokens a position can actually be built on in this market, deduplicated
|
|
143
|
+
* across its credit suites.
|
|
144
|
+
*/
|
|
145
|
+
get collateralTokens() {
|
|
146
|
+
const seen = new require_sdk_utils_AddressMap.AddressMap(void 0, "collateralTokens");
|
|
147
|
+
for (const { collateral } of this.strategies) seen.upsert(collateral, this.tokensMeta.mustGetToken(collateral));
|
|
148
|
+
return seen.values();
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* Whether at least one of {@link collateralTokens} is a real-world-asset
|
|
152
|
+
* token. Read from a hardcoded per-chain list rather than from the chain.
|
|
153
|
+
*/
|
|
154
|
+
get rwa() {
|
|
155
|
+
return this.strategies.some(({ collateral }) => require_sdk_chain_chains.isRWAToken(collateral, this.sdk.networkType));
|
|
156
|
+
}
|
|
157
|
+
/**
|
|
158
|
+
* Whether this market's pool is being wound down and should no longer be
|
|
159
|
+
* entered. Read from a hardcoded per-chain list.
|
|
160
|
+
*/
|
|
161
|
+
get sunset() {
|
|
162
|
+
return require_sdk_chain_chains.isSunsetPool(this.pool.pool.address, this.sdk.networkType);
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* Quota configuration of every token the market quotes: how much of it the
|
|
166
|
+
* market accepts in total, and what holding it costs.
|
|
167
|
+
*/
|
|
168
|
+
quotaAssets() {
|
|
169
|
+
const oracle = this.priceOracle;
|
|
170
|
+
const { underlying } = this;
|
|
171
|
+
return this.pool.pqk.quotas.entries().map(([token, quota]) => ({
|
|
172
|
+
token: this.tokensMeta.mustGetToken(token),
|
|
173
|
+
quotaRate: quota.rate,
|
|
174
|
+
limit: oracle.toAmount(underlying, quota.limit),
|
|
175
|
+
used: oracle.toAmount(underlying, quota.totalQuoted)
|
|
176
|
+
}));
|
|
177
|
+
}
|
|
178
|
+
/**
|
|
179
|
+
* Prices and feeds of a collateral token and the market's underlying.
|
|
180
|
+
*
|
|
181
|
+
* Pricing goes through the wrapper for an RWA market, since that is what the
|
|
182
|
+
* market's oracle knows.
|
|
183
|
+
*
|
|
184
|
+
* @param collateral - Collateral token to price.
|
|
185
|
+
*/
|
|
186
|
+
priceFeedSummary(collateral) {
|
|
187
|
+
return this.priceOracle.priceFeedSummary(this.underlying, collateral);
|
|
188
|
+
}
|
|
189
|
+
/**
|
|
190
|
+
* Every opportunity this market offers: its pool, plus one row per
|
|
191
|
+
* `(credit manager, target collateral)` pair.
|
|
192
|
+
*
|
|
193
|
+
* @param totals - Resolves the summed worth of the credit accounts backing a
|
|
194
|
+
* strategy, which only a credit-account query can establish.
|
|
195
|
+
* @param filter - Optional narrowing. A filter naming a kind skips building
|
|
196
|
+
* the other kind entirely; every built row is then checked in full by
|
|
197
|
+
* {@link matchesOpportunityFilter}, so there is one definition of what each
|
|
198
|
+
* criterion means.
|
|
199
|
+
*/
|
|
200
|
+
opportunities(totals, filter) {
|
|
201
|
+
const rows = [];
|
|
202
|
+
if (filter?.kind !== "strategy") rows.push(this.poolOpportunity());
|
|
203
|
+
if (filter?.kind !== "pool") for (const { suite, collateral } of this.strategies) rows.push(suite.strategyOpportunity(collateral, totals(suite.creditManager.address, collateral)));
|
|
204
|
+
return rows.filter((row) => require_model_opportunities.matchesOpportunityFilter(row, filter));
|
|
205
|
+
}
|
|
206
|
+
/**
|
|
207
|
+
* Passive lending into this market's pool, as the shared read model
|
|
208
|
+
* describes it.
|
|
209
|
+
*/
|
|
210
|
+
poolOpportunity() {
|
|
211
|
+
const { pool } = this.pool;
|
|
212
|
+
const oracle = this.priceOracle;
|
|
213
|
+
return {
|
|
214
|
+
kind: "pool",
|
|
215
|
+
chainId: this.chainId,
|
|
216
|
+
pool: pool.address,
|
|
217
|
+
title: `${this.underlyingToken.symbol} Pool`,
|
|
218
|
+
curator: this.curator,
|
|
219
|
+
underlyingToken: this.underlyingToken,
|
|
220
|
+
totalSupply: {
|
|
221
|
+
value: pool.totalSupply,
|
|
222
|
+
valueUsd: oracle.safeUsdValue(pool.underlying, pool.totalAssets)
|
|
223
|
+
},
|
|
224
|
+
totalBorrow: oracle.toAmount(pool.underlying, pool.totalBorrowed),
|
|
225
|
+
utilization: pool.utilization,
|
|
226
|
+
collateralTokens: this.collateralTokens,
|
|
227
|
+
paused: pool.isPaused,
|
|
228
|
+
rwa: this.rwa,
|
|
229
|
+
sunset: this.sunset
|
|
230
|
+
};
|
|
231
|
+
}
|
|
232
|
+
/**
|
|
233
|
+
* {@link poolOpportunity} plus the data only its detail screen needs.
|
|
234
|
+
*/
|
|
235
|
+
poolOpportunityDetail() {
|
|
236
|
+
return {
|
|
237
|
+
...this.poolOpportunity(),
|
|
238
|
+
rateCurve: this.pool.rateCurve,
|
|
239
|
+
quotaAssets: this.quotaAssets()
|
|
240
|
+
};
|
|
241
|
+
}
|
|
242
|
+
/**
|
|
243
|
+
* Resolves a strategy of this market by its two halves.
|
|
244
|
+
*
|
|
245
|
+
* @param creditManager - Credit manager the position is opened in.
|
|
246
|
+
* @param collateral - Target collateral of the position.
|
|
247
|
+
* @throws If this market has no such credit manager, or if that manager does
|
|
248
|
+
* not accept the collateral as a strategy.
|
|
249
|
+
*/
|
|
250
|
+
mustFindStrategy(creditManager, collateral) {
|
|
251
|
+
const strategy = this.strategies.find((s) => (0, viem.isAddressEqual)(s.suite.creditManager.address, creditManager) && (0, viem.isAddressEqual)(s.collateral, collateral));
|
|
252
|
+
if (!strategy) throw new Error(`${this.labelAddress(collateral)} is not a strategy collateral of credit manager ${this.labelAddress(creditManager)}`);
|
|
253
|
+
return strategy;
|
|
254
|
+
}
|
|
255
|
+
/**
|
|
256
|
+
* Detailed view of one leveraged position of this market.
|
|
257
|
+
*
|
|
258
|
+
* @param creditManager - Credit manager the position is opened in.
|
|
259
|
+
* @param collateral - Target collateral of the position.
|
|
260
|
+
* @param totalSupply - Summed worth of the credit accounts backing it.
|
|
261
|
+
* @throws If this market has no such strategy, see {@link mustFindStrategy}.
|
|
262
|
+
*/
|
|
263
|
+
strategyOpportunityDetail(creditManager, collateral, totalSupply) {
|
|
264
|
+
return this.mustFindStrategy(creditManager, collateral).suite.strategyOpportunityDetail(collateral, totalSupply);
|
|
265
|
+
}
|
|
266
|
+
/**
|
|
104
267
|
* Whether any child contract wrapper has observed events that require a
|
|
105
268
|
* market resync.
|
|
106
269
|
*/
|
|
@@ -1,12 +1,16 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
2
|
const require_abi_310_generated = require("../../../abi/310/generated.js");
|
|
3
3
|
const require_sdk_utils_AddressMap = require("../../utils/AddressMap.js");
|
|
4
|
+
const require_sdk_constants_math = require("../../constants/math.js");
|
|
5
|
+
require("../../constants/index.js");
|
|
4
6
|
const require_sdk_utils_formatter = require("../../utils/formatter.js");
|
|
5
7
|
require("../../utils/index.js");
|
|
6
8
|
const require_sdk_base_BaseContract = require("../../base/BaseContract.js");
|
|
7
9
|
require("../../base/index.js");
|
|
8
10
|
const require_sdk_market_adapters_createAdapter = require("../adapters/createAdapter.js");
|
|
9
11
|
require("../adapters/index.js");
|
|
12
|
+
const require_sdk_market_math = require("../math.js");
|
|
13
|
+
let viem = require("viem");
|
|
10
14
|
//#region src/sdk/market/credit/CreditManagerV310Contract.ts
|
|
11
15
|
const abi = require_abi_310_generated.iCreditManagerV310Abi;
|
|
12
16
|
var CreditManagerV310Contract = class extends require_sdk_base_BaseContract.BaseContract {
|
|
@@ -60,6 +64,28 @@ var CreditManagerV310Contract = class extends require_sdk_base_BaseContract.Base
|
|
|
60
64
|
get collateralTokens() {
|
|
61
65
|
return this.liquidationThresholds.keys();
|
|
62
66
|
}
|
|
67
|
+
/**
|
|
68
|
+
* {@inheritDoc ICreditManagerContract.leverageableCollaterals}
|
|
69
|
+
*/
|
|
70
|
+
get leverageableCollaterals() {
|
|
71
|
+
return this.collateralTokens.filter((token) => {
|
|
72
|
+
if ((0, viem.isAddressEqual)(token, this.underlying)) return false;
|
|
73
|
+
const lt = this.liquidationThresholds.get(token);
|
|
74
|
+
return !!lt && lt > 0 && lt < Number(10000n);
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* {@inheritDoc ICreditManagerContract.maxLeverage}
|
|
79
|
+
*/
|
|
80
|
+
maxLeverage(collateral) {
|
|
81
|
+
return require_sdk_market_math.maxLeverage(this.liquidationThresholds.mustGet(collateral));
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* {@inheritDoc ICreditManagerContract.liquidationPremium}
|
|
85
|
+
*/
|
|
86
|
+
get liquidationPremium() {
|
|
87
|
+
return Number(require_sdk_constants_math.PERCENTAGE_FACTOR) - this.liquidationDiscount;
|
|
88
|
+
}
|
|
63
89
|
processLog(log) {
|
|
64
90
|
switch (log.eventName) {
|
|
65
91
|
case "SetCreditConfigurator": this.dirty = true;
|