@gearbox-protocol/sdk 17.1.0-next.2 → 17.1.0-next.3
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/onchain/MultichainSDK.js +2 -27
- package/dist/cjs/onchain/OnchainSDK.js +5 -6
- package/dist/cjs/onchain/accounts/intents/borrow.js +47 -20
- package/dist/cjs/onchain/accounts/intents/guards.js +6 -4
- package/dist/cjs/onchain/accounts/intents/index.js +40 -9
- package/dist/cjs/onchain/accounts/intents/open-strategy.js +49 -17
- package/dist/cjs/onchain/accounts/intents/realize.js +55 -24
- package/dist/cjs/onchain/index.js +0 -5
- package/dist/cjs/onchain/market/credit/CreditSuite.js +6 -5
- package/dist/cjs/onchain/market/index.js +0 -5
- package/dist/cjs/onchain/market/pricefeeds/feeds/RedstonePriceFeed.js +1 -7
- package/dist/cjs/onchain/market/pricefeeds/index.js +0 -5
- package/dist/cjs/onchain/market/pricefeeds/updates/UpdatablePriceFeedRegistry.js +5 -5
- package/dist/cjs/onchain/market/pricefeeds/updates/index.js +0 -5
- package/dist/cjs/onchain/options.js +1 -7
- package/dist/cjs/permissionless/index.js +1 -5
- package/dist/cjs/permissionless/utils/index.js +1 -5
- package/dist/cjs/permissionless/utils/price-update/get-price-update-tx.js +5 -0
- package/dist/cjs/permissionless/utils/price-update/get-updatable-feeds.js +6 -4
- package/dist/cjs/permissionless/utils/price-update/index.js +1 -5
- package/dist/cjs/sdk/prepare/PrepareApi.js +83 -32
- package/dist/esm/onchain/MultichainSDK.js +2 -27
- package/dist/esm/onchain/OnchainSDK.js +5 -6
- package/dist/esm/onchain/accounts/intents/borrow.js +47 -20
- package/dist/esm/onchain/accounts/intents/guards.js +6 -4
- package/dist/esm/onchain/accounts/intents/index.js +40 -9
- package/dist/esm/onchain/accounts/intents/open-strategy.js +49 -17
- package/dist/esm/onchain/accounts/intents/realize.js +55 -24
- package/dist/esm/onchain/index.js +1 -3
- package/dist/esm/onchain/market/credit/CreditSuite.js +6 -5
- package/dist/esm/onchain/market/index.js +1 -3
- package/dist/esm/onchain/market/pricefeeds/feeds/RedstonePriceFeed.js +1 -7
- package/dist/esm/onchain/market/pricefeeds/index.js +1 -3
- package/dist/esm/onchain/market/pricefeeds/updates/UpdatablePriceFeedRegistry.js +5 -5
- package/dist/esm/onchain/market/pricefeeds/updates/index.js +1 -3
- package/dist/esm/onchain/options.js +1 -7
- package/dist/esm/permissionless/index.js +2 -3
- package/dist/esm/permissionless/utils/index.js +2 -3
- package/dist/esm/permissionless/utils/price-update/get-price-update-tx.js +5 -0
- package/dist/esm/permissionless/utils/price-update/get-updatable-feeds.js +6 -4
- package/dist/esm/permissionless/utils/price-update/index.js +2 -3
- package/dist/esm/sdk/prepare/PrepareApi.js +83 -32
- package/dist/types/onchain/MultichainSDK.d.ts +0 -10
- package/dist/types/onchain/OnchainSDK.d.ts +0 -10
- package/dist/types/onchain/accounts/index.d.ts +2 -2
- package/dist/types/onchain/accounts/intents/borrow.d.ts +5 -0
- package/dist/types/onchain/accounts/intents/guards.d.ts +6 -4
- package/dist/types/onchain/accounts/intents/index.d.ts +4 -4
- package/dist/types/onchain/accounts/intents/open-strategy.d.ts +5 -0
- package/dist/types/onchain/accounts/intents/realize.d.ts +5 -0
- package/dist/types/onchain/accounts/intents/types.d.ts +49 -6
- package/dist/types/onchain/index.d.ts +4 -6
- package/dist/types/onchain/market/credit/CreditSuite.d.ts +10 -0
- package/dist/types/onchain/market/index.d.ts +3 -5
- package/dist/types/onchain/market/pricefeeds/feeds/RedstonePriceFeed.d.ts +1 -4
- package/dist/types/onchain/market/pricefeeds/index.d.ts +3 -5
- package/dist/types/onchain/market/pricefeeds/updates/UpdatablePriceFeedRegistry.d.ts +4 -4
- package/dist/types/onchain/market/pricefeeds/updates/index.d.ts +3 -5
- package/dist/types/onchain/market/pricefeeds/updates/types.d.ts +2 -16
- package/dist/types/onchain/options.d.ts +0 -7
- package/dist/types/permissionless/index.d.ts +2 -3
- package/dist/types/permissionless/utils/index.d.ts +2 -3
- package/dist/types/permissionless/utils/price-update/get-price-update-tx.d.ts +5 -0
- package/dist/types/permissionless/utils/price-update/get-updatable-feeds.d.ts +9 -3
- package/dist/types/permissionless/utils/price-update/index.d.ts +2 -3
- package/dist/types/sdk/index.d.ts +2 -2
- package/dist/types/sdk/prepare/PrepareApi.d.ts +16 -14
- package/dist/types/sdk/prepare/index.d.ts +2 -2
- package/dist/types/sdk/prepare/types.d.ts +21 -14
- package/package.json +1 -5
- package/dist/cjs/onchain/market/pricefeeds/updates/RedstoneUpdater.js +0 -193
- package/dist/cjs/onchain/market/pricefeeds/updates/fetchRedstonePayloads.js +0 -95
- package/dist/cjs/permissionless/utils/price-update/get-price-feeds.js +0 -60
- package/dist/esm/onchain/market/pricefeeds/updates/RedstoneUpdater.js +0 -191
- package/dist/esm/onchain/market/pricefeeds/updates/fetchRedstonePayloads.js +0 -94
- package/dist/esm/permissionless/utils/price-update/get-price-feeds.js +0 -57
- package/dist/types/onchain/market/pricefeeds/updates/RedstoneUpdater.d.ts +0 -37
- package/dist/types/onchain/market/pricefeeds/updates/fetchRedstonePayloads.d.ts +0 -62
- package/dist/types/permissionless/utils/price-update/get-price-feeds.d.ts +0 -22
|
@@ -17,6 +17,7 @@ var RedstonePriceFeedContract = class extends require_onchain_market_pricefeeds_
|
|
|
17
17
|
constructor(options, args) {
|
|
18
18
|
super(options, {
|
|
19
19
|
...args,
|
|
20
|
+
updatable: false,
|
|
20
21
|
name: "RedstonePriceFeed",
|
|
21
22
|
abi: require_onchain_abi_oracles.redstonePriceFeedAbi
|
|
22
23
|
});
|
|
@@ -70,13 +71,6 @@ var RedstonePriceFeedContract = class extends require_onchain_market_pricefeeds_
|
|
|
70
71
|
lastPayloadTimestamp: this.lastPayloadTimestamp.toString()
|
|
71
72
|
};
|
|
72
73
|
}
|
|
73
|
-
createPriceUpdateTx(data) {
|
|
74
|
-
return this.createRawTx({
|
|
75
|
-
functionName: "updatePrice",
|
|
76
|
-
args: [data],
|
|
77
|
-
description: `updating redstone price for ${this.dataId} [${this.labelAddress(this.address)}]`
|
|
78
|
-
});
|
|
79
|
-
}
|
|
80
74
|
};
|
|
81
75
|
//#endregion
|
|
82
76
|
exports.RedstonePriceFeedContract = RedstonePriceFeedContract;
|
|
@@ -22,11 +22,9 @@ const require_onchain_market_pricefeeds_feeds_ZeroPriceFeed = require("./feeds/Z
|
|
|
22
22
|
require("./feeds/index.js");
|
|
23
23
|
const require_onchain_market_pricefeeds_PriceFeedRegistry = require("./PriceFeedRegistry.js");
|
|
24
24
|
require("./types.js");
|
|
25
|
-
const require_onchain_market_pricefeeds_updates_fetchRedstonePayloads = require("./updates/fetchRedstonePayloads.js");
|
|
26
25
|
const require_onchain_market_pricefeeds_updates_getRawPriceUpdates = require("./updates/getRawPriceUpdates.js");
|
|
27
26
|
const require_onchain_market_pricefeeds_updates_isUpdatablePriceFeed = require("./updates/isUpdatablePriceFeed.js");
|
|
28
27
|
const require_onchain_market_pricefeeds_updates_PriceUpdatesCache = require("./updates/PriceUpdatesCache.js");
|
|
29
|
-
const require_onchain_market_pricefeeds_updates_RedstoneUpdater = require("./updates/RedstoneUpdater.js");
|
|
30
28
|
const require_onchain_market_pricefeeds_updates_updatableDependencies = require("./updates/updatableDependencies.js");
|
|
31
29
|
const require_onchain_market_pricefeeds_updates_UpdatablePriceFeedRegistry = require("./updates/UpdatablePriceFeedRegistry.js");
|
|
32
30
|
require("./updates/index.js");
|
|
@@ -49,14 +47,11 @@ exports.PriceFeedRef = require_onchain_market_pricefeeds_PriceFeedRef.PriceFeedR
|
|
|
49
47
|
exports.PriceFeedRegistry = require_onchain_market_pricefeeds_PriceFeedRegistry.PriceFeedRegistry;
|
|
50
48
|
exports.PriceUpdatesCache = require_onchain_market_pricefeeds_updates_PriceUpdatesCache.PriceUpdatesCache;
|
|
51
49
|
exports.PythPriceFeed = require_onchain_market_pricefeeds_feeds_PythPriceFeed.PythPriceFeed;
|
|
52
|
-
exports.RedstoneOptions = require_onchain_market_pricefeeds_updates_RedstoneUpdater.RedstoneOptions;
|
|
53
50
|
exports.RedstonePriceFeedContract = require_onchain_market_pricefeeds_feeds_RedstonePriceFeed.RedstonePriceFeedContract;
|
|
54
|
-
exports.RedstoneUpdater = require_onchain_market_pricefeeds_updates_RedstoneUpdater.RedstoneUpdater;
|
|
55
51
|
exports.UpdatablePriceFeedRegistry = require_onchain_market_pricefeeds_updates_UpdatablePriceFeedRegistry.UpdatablePriceFeedRegistry;
|
|
56
52
|
exports.WstETHPriceFeedContract = require_onchain_market_pricefeeds_feeds_WstETHPriceFeed.WstETHPriceFeedContract;
|
|
57
53
|
exports.YearnPriceFeedContract = require_onchain_market_pricefeeds_feeds_YearnPriceFeed.YearnPriceFeedContract;
|
|
58
54
|
exports.ZeroPriceFeedContract = require_onchain_market_pricefeeds_feeds_ZeroPriceFeed.ZeroPriceFeedContract;
|
|
59
|
-
exports.fetchRedstonePayloads = require_onchain_market_pricefeeds_updates_fetchRedstonePayloads.fetchRedstonePayloads;
|
|
60
55
|
exports.getRawPriceUpdates = require_onchain_market_pricefeeds_updates_getRawPriceUpdates.getRawPriceUpdates;
|
|
61
56
|
exports.isLPPriceFeed = require_onchain_market_pricefeeds_AbstractLPPriceFeed.isLPPriceFeed;
|
|
62
57
|
exports.isUpdatablePriceFeed = require_onchain_market_pricefeeds_updates_isUpdatablePriceFeed.isUpdatablePriceFeed;
|
|
@@ -9,23 +9,22 @@ const require_abi_compressors_priceFeedCompressor = require("../../../../abi/com
|
|
|
9
9
|
const require_onchain_market_pricefeeds_PriceFeedRegistry = require("../PriceFeedRegistry.js");
|
|
10
10
|
const require_onchain_market_pricefeeds_updates_getRawPriceUpdates = require("./getRawPriceUpdates.js");
|
|
11
11
|
const require_onchain_market_pricefeeds_updates_isUpdatablePriceFeed = require("./isUpdatablePriceFeed.js");
|
|
12
|
-
const require_onchain_market_pricefeeds_updates_RedstoneUpdater = require("./RedstoneUpdater.js");
|
|
13
12
|
const require_onchain_utils_internal_Hooks = require("../../../utils/internal/Hooks.js");
|
|
14
13
|
require("../../../utils/internal/index.js");
|
|
15
14
|
const require_onchain_market_pricefeeds_updates_updatableDependencies = require("./updatableDependencies.js");
|
|
16
15
|
let viem = require("viem");
|
|
17
16
|
//#region src/onchain/market/pricefeeds/updates/UpdatablePriceFeedRegistry.ts
|
|
18
17
|
/**
|
|
19
|
-
*
|
|
20
|
-
*
|
|
18
|
+
* @deprecated Support for updatable price feeds is deprecated.
|
|
19
|
+
* {@link PriceFeedRegistry} that also orchestrates off-chain price updates.
|
|
21
20
|
**/
|
|
22
21
|
var UpdatablePriceFeedRegistry = class extends require_onchain_market_pricefeeds_PriceFeedRegistry.PriceFeedRegistry {
|
|
23
22
|
#hooks = new require_onchain_utils_internal_Hooks.Hooks();
|
|
24
23
|
#updaters;
|
|
25
24
|
#latestUpdate;
|
|
26
|
-
constructor(sdk
|
|
25
|
+
constructor(sdk) {
|
|
27
26
|
super(sdk);
|
|
28
|
-
this.#updaters = [
|
|
27
|
+
this.#updaters = [];
|
|
29
28
|
}
|
|
30
29
|
/**
|
|
31
30
|
* @internal
|
|
@@ -122,6 +121,7 @@ var UpdatablePriceFeedRegistry = class extends require_onchain_market_pricefeeds
|
|
|
122
121
|
* Discovered price feeds are not saved anywhere in PriceFeedRegistry, and can later be used to load price feed updates
|
|
123
122
|
*/
|
|
124
123
|
async getPartialUpdatablePriceFeeds(configurators) {
|
|
124
|
+
if (this.#updaters.length === 0) return [];
|
|
125
125
|
const [priceFeedCompressorAddress] = this.sdk.addressProvider.mustGetLatest(require_onchain_constants_address_provider.AP_PRICE_FEED_COMPRESSOR, require_onchain_constants_versions.VERSION_RANGE_310);
|
|
126
126
|
this.logger?.debug({ configurators }, `calling getUpdatablePriceFeeds in block ${this.sdk.currentBlock}`);
|
|
127
127
|
const result = await this.client.readContract({
|
|
@@ -1,16 +1,11 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
-
const require_onchain_market_pricefeeds_updates_fetchRedstonePayloads = require("./fetchRedstonePayloads.js");
|
|
3
2
|
const require_onchain_market_pricefeeds_updates_getRawPriceUpdates = require("./getRawPriceUpdates.js");
|
|
4
3
|
const require_onchain_market_pricefeeds_updates_isUpdatablePriceFeed = require("./isUpdatablePriceFeed.js");
|
|
5
4
|
const require_onchain_market_pricefeeds_updates_PriceUpdatesCache = require("./PriceUpdatesCache.js");
|
|
6
|
-
const require_onchain_market_pricefeeds_updates_RedstoneUpdater = require("./RedstoneUpdater.js");
|
|
7
5
|
const require_onchain_market_pricefeeds_updates_updatableDependencies = require("./updatableDependencies.js");
|
|
8
6
|
const require_onchain_market_pricefeeds_updates_UpdatablePriceFeedRegistry = require("./UpdatablePriceFeedRegistry.js");
|
|
9
7
|
exports.PriceUpdatesCache = require_onchain_market_pricefeeds_updates_PriceUpdatesCache.PriceUpdatesCache;
|
|
10
|
-
exports.RedstoneOptions = require_onchain_market_pricefeeds_updates_RedstoneUpdater.RedstoneOptions;
|
|
11
|
-
exports.RedstoneUpdater = require_onchain_market_pricefeeds_updates_RedstoneUpdater.RedstoneUpdater;
|
|
12
8
|
exports.UpdatablePriceFeedRegistry = require_onchain_market_pricefeeds_updates_UpdatablePriceFeedRegistry.UpdatablePriceFeedRegistry;
|
|
13
|
-
exports.fetchRedstonePayloads = require_onchain_market_pricefeeds_updates_fetchRedstonePayloads.fetchRedstonePayloads;
|
|
14
9
|
exports.getRawPriceUpdates = require_onchain_market_pricefeeds_updates_getRawPriceUpdates.getRawPriceUpdates;
|
|
15
10
|
exports.isUpdatablePriceFeed = require_onchain_market_pricefeeds_updates_isUpdatablePriceFeed.isUpdatablePriceFeed;
|
|
16
11
|
exports.updatableDependencies = require_onchain_market_pricefeeds_updates_updatableDependencies.updatableDependencies;
|
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
2
|
const require_onchain_utils_zod = require("./utils/zod.js");
|
|
3
3
|
require("./utils/index.js");
|
|
4
|
-
const require_onchain_market_pricefeeds_updates_RedstoneUpdater = require("./market/pricefeeds/updates/RedstoneUpdater.js");
|
|
5
|
-
require("./market/pricefeeds/updates/index.js");
|
|
6
4
|
let zod_v4 = require("zod/v4");
|
|
7
5
|
//#region src/onchain/options.ts
|
|
8
6
|
/**
|
|
@@ -57,11 +55,7 @@ const attachOptionsSchema = zod_v4.z.object({
|
|
|
57
55
|
/**
|
|
58
56
|
* Pool addresses whose markets should be skipped.
|
|
59
57
|
**/
|
|
60
|
-
ignoreMarkets: zod_v4.z.array(require_onchain_utils_zod.ZodAddress()).optional()
|
|
61
|
-
/**
|
|
62
|
-
* Options for Redstone price-feed updates.
|
|
63
|
-
**/
|
|
64
|
-
redstone: require_onchain_market_pricefeeds_updates_RedstoneUpdater.RedstoneOptions.optional()
|
|
58
|
+
ignoreMarkets: zod_v4.z.array(require_onchain_utils_zod.ZodAddress()).optional()
|
|
65
59
|
});
|
|
66
60
|
//#endregion
|
|
67
61
|
exports.attachOptionsSchema = attachOptionsSchema;
|
|
@@ -29,10 +29,9 @@ const require_permissionless_utils_abi_encoder = require("./utils/abi-encoder.js
|
|
|
29
29
|
const require_permissionless_utils_block_utils = require("./utils/block-utils.js");
|
|
30
30
|
const require_permissionless_utils_governance_batch = require("./utils/governance/batch.js");
|
|
31
31
|
const require_permissionless_utils_governance_timelock_txs = require("./utils/governance/timelock-txs.js");
|
|
32
|
-
const require_permissionless_utils_price_update_get_updatable_feeds = require("./utils/price-update/get-updatable-feeds.js");
|
|
33
|
-
const require_permissionless_utils_price_update_get_price_feeds = require("./utils/price-update/get-price-feeds.js");
|
|
34
32
|
const require_permissionless_utils_price_update_get_price_update_tx = require("./utils/price-update/get-price-update-tx.js");
|
|
35
33
|
const require_permissionless_utils_price_update_get_prices = require("./utils/price-update/get-prices.js");
|
|
34
|
+
const require_permissionless_utils_price_update_get_updatable_feeds = require("./utils/price-update/get-updatable-feeds.js");
|
|
36
35
|
require("./utils/index.js");
|
|
37
36
|
exports.AccessMode = require_permissionless_bindings_types.AccessMode;
|
|
38
37
|
exports.AddressProviderContract = require_permissionless_bindings_address_provider.AddressProviderContract;
|
|
@@ -77,9 +76,6 @@ exports.encodeFunctionParams = require_permissionless_utils_abi_encoder.encodeFu
|
|
|
77
76
|
exports.formatBytecodeSize = require_permissionless_utils_format.formatBytecodeSize;
|
|
78
77
|
exports.formatBytecodeVersion = require_permissionless_utils_format.formatBytecodeVersion;
|
|
79
78
|
exports.getBlockNumberByTimestamp = require_permissionless_utils_block_utils.getBlockNumberByTimestamp;
|
|
80
|
-
exports.getCallTouchedPriceFeeds = require_permissionless_utils_price_update_get_price_feeds.getCallTouchedPriceFeeds;
|
|
81
|
-
exports.getCallsTouchedPriceFeeds = require_permissionless_utils_price_update_get_price_feeds.getCallsTouchedPriceFeeds;
|
|
82
|
-
exports.getCallsTouchedUpdatablePriceFeeds = require_permissionless_utils_price_update_get_price_feeds.getCallsTouchedUpdatablePriceFeeds;
|
|
83
79
|
exports.getCreate2AddressPublicFactory = require_permissionless_utils_create2.getCreate2AddressPublicFactory;
|
|
84
80
|
exports.getCreate2DeploymentAddress = require_permissionless_utils_create2.getCreate2DeploymentAddress;
|
|
85
81
|
exports.getPriceUpdateTx = require_permissionless_utils_price_update_get_price_update_tx.getPriceUpdateTx;
|
|
@@ -8,10 +8,9 @@ const require_permissionless_utils_block_utils = require("./block-utils.js");
|
|
|
8
8
|
const require_permissionless_utils_governance_batch = require("./governance/batch.js");
|
|
9
9
|
const require_permissionless_utils_governance_timelock_txs = require("./governance/timelock-txs.js");
|
|
10
10
|
require("./governance/index.js");
|
|
11
|
-
const require_permissionless_utils_price_update_get_updatable_feeds = require("./price-update/get-updatable-feeds.js");
|
|
12
|
-
const require_permissionless_utils_price_update_get_price_feeds = require("./price-update/get-price-feeds.js");
|
|
13
11
|
const require_permissionless_utils_price_update_get_price_update_tx = require("./price-update/get-price-update-tx.js");
|
|
14
12
|
const require_permissionless_utils_price_update_get_prices = require("./price-update/get-prices.js");
|
|
13
|
+
const require_permissionless_utils_price_update_get_updatable_feeds = require("./price-update/get-updatable-feeds.js");
|
|
15
14
|
require("./price-update/index.js");
|
|
16
15
|
exports.BYTECODE_REPOSITORY = require_permissionless_utils_literals.BYTECODE_REPOSITORY;
|
|
17
16
|
exports.CROSS_CHAIN_GOVERNANCE = require_permissionless_utils_literals.CROSS_CHAIN_GOVERNANCE;
|
|
@@ -34,9 +33,6 @@ exports.encodeFunctionParams = require_permissionless_utils_abi_encoder.encodeFu
|
|
|
34
33
|
exports.formatBytecodeSize = require_permissionless_utils_format.formatBytecodeSize;
|
|
35
34
|
exports.formatBytecodeVersion = require_permissionless_utils_format.formatBytecodeVersion;
|
|
36
35
|
exports.getBlockNumberByTimestamp = require_permissionless_utils_block_utils.getBlockNumberByTimestamp;
|
|
37
|
-
exports.getCallTouchedPriceFeeds = require_permissionless_utils_price_update_get_price_feeds.getCallTouchedPriceFeeds;
|
|
38
|
-
exports.getCallsTouchedPriceFeeds = require_permissionless_utils_price_update_get_price_feeds.getCallsTouchedPriceFeeds;
|
|
39
|
-
exports.getCallsTouchedUpdatablePriceFeeds = require_permissionless_utils_price_update_get_price_feeds.getCallsTouchedUpdatablePriceFeeds;
|
|
40
36
|
exports.getCreate2AddressPublicFactory = require_permissionless_utils_create2.getCreate2AddressPublicFactory;
|
|
41
37
|
exports.getCreate2DeploymentAddress = require_permissionless_utils_create2.getCreate2DeploymentAddress;
|
|
42
38
|
exports.getPriceUpdateTx = require_permissionless_utils_price_update_get_price_update_tx.getPriceUpdateTx;
|
|
@@ -8,6 +8,11 @@ const require_permissionless_bindings_price_feed_store = require("../../bindings
|
|
|
8
8
|
require("../../bindings/index.js");
|
|
9
9
|
let viem = require("viem");
|
|
10
10
|
//#region src/permissionless/utils/price-update/get-price-update-tx.ts
|
|
11
|
+
/**
|
|
12
|
+
* @deprecated Support for updatable price feeds is deprecated.
|
|
13
|
+
* @param param0
|
|
14
|
+
* @returns
|
|
15
|
+
*/
|
|
11
16
|
async function getPriceUpdateTx({ client, priceFeeds, useMulticall3 = false, gasLimit }) {
|
|
12
17
|
const pfStore = new require_permissionless_bindings_price_feed_store.PriceFeedStoreContract("0x74A868AC479EE145029bB80827BB77F7B7c441cB", client);
|
|
13
18
|
const gearboxClient = client;
|
|
@@ -1,17 +1,19 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
-
const require_onchain_utils_bytes32ToString = require("../../../onchain/utils/bytes32ToString.js");
|
|
3
2
|
const require_abi_compressors_priceFeedCompressor = require("../../../abi/compressors/priceFeedCompressor.js");
|
|
4
|
-
const require_onchain_market_pricefeeds_feeds_RedstonePriceFeed = require("../../../onchain/market/pricefeeds/feeds/RedstonePriceFeed.js");
|
|
5
|
-
require("../../../onchain/index.js");
|
|
6
3
|
let viem = require("viem");
|
|
7
4
|
//#region src/permissionless/utils/price-update/get-updatable-feeds.ts
|
|
5
|
+
/**
|
|
6
|
+
* @deprecated Support for updatable price feeds is deprecated.
|
|
7
|
+
* @param args
|
|
8
|
+
* @returns
|
|
9
|
+
*/
|
|
8
10
|
async function getUpdatablePriceFeeds(args) {
|
|
9
11
|
const { sdk, client, pfCompressor, priceFeeds } = args;
|
|
10
12
|
return (await (0, viem.getContract)({
|
|
11
13
|
address: pfCompressor,
|
|
12
14
|
abi: require_abi_compressors_priceFeedCompressor.priceFeedCompressorAbi,
|
|
13
15
|
client
|
|
14
|
-
}).read.loadPriceFeedTree([priceFeeds])).filter((data) =>
|
|
16
|
+
}).read.loadPriceFeedTree([priceFeeds])).filter((data) => data.updatable).map((data) => sdk.priceFeeds.create(data));
|
|
15
17
|
}
|
|
16
18
|
//#endregion
|
|
17
19
|
exports.getUpdatablePriceFeeds = getUpdatablePriceFeeds;
|
|
@@ -1,11 +1,7 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
-
const require_permissionless_utils_price_update_get_updatable_feeds = require("./get-updatable-feeds.js");
|
|
3
|
-
const require_permissionless_utils_price_update_get_price_feeds = require("./get-price-feeds.js");
|
|
4
2
|
const require_permissionless_utils_price_update_get_price_update_tx = require("./get-price-update-tx.js");
|
|
5
3
|
const require_permissionless_utils_price_update_get_prices = require("./get-prices.js");
|
|
6
|
-
|
|
7
|
-
exports.getCallsTouchedPriceFeeds = require_permissionless_utils_price_update_get_price_feeds.getCallsTouchedPriceFeeds;
|
|
8
|
-
exports.getCallsTouchedUpdatablePriceFeeds = require_permissionless_utils_price_update_get_price_feeds.getCallsTouchedUpdatablePriceFeeds;
|
|
4
|
+
const require_permissionless_utils_price_update_get_updatable_feeds = require("./get-updatable-feeds.js");
|
|
9
5
|
exports.getPriceUpdateTx = require_permissionless_utils_price_update_get_price_update_tx.getPriceUpdateTx;
|
|
10
6
|
exports.getPrices = require_permissionless_utils_price_update_get_prices.getPrices;
|
|
11
7
|
exports.getUpdatablePriceFeeds = require_permissionless_utils_price_update_get_updatable_feeds.getUpdatablePriceFeeds;
|
|
@@ -51,48 +51,53 @@ var PrepareApi = class extends require_onchain_base_MultichainConstruct.Multicha
|
|
|
51
51
|
* {@inheritDoc IOpportunitiesPrepare.finalize}
|
|
52
52
|
**/
|
|
53
53
|
async finalize(position, params) {
|
|
54
|
+
const state = {};
|
|
54
55
|
try {
|
|
55
56
|
const sdk = await this.#chain(position.chainId);
|
|
56
57
|
const at = stateBlock(sdk);
|
|
57
58
|
const intent = resumable(params.intent ?? params.claimable.intent);
|
|
58
|
-
if (!intent) return
|
|
59
|
+
if (!intent) return refused(require_model_errors_prepare_errors.noRecordedIntent(), state);
|
|
59
60
|
const creditAccount = await slice(sdk, position.creditAccount);
|
|
60
|
-
if (!creditAccount) return
|
|
61
|
+
if (!creditAccount) return refused(require_model_errors_prepare_errors.creditAccountNotFound(position.creditAccount), state);
|
|
61
62
|
return finalized(await service(sdk).finishIntent({
|
|
62
63
|
intent,
|
|
63
64
|
claimable: toClaimableWithdrawal(params.claimable),
|
|
64
65
|
creditAccount,
|
|
65
66
|
sdk,
|
|
66
67
|
slippage: params.slippage,
|
|
67
|
-
quotaReserve: params.quotaReserve
|
|
68
|
+
quotaReserve: params.quotaReserve,
|
|
69
|
+
draft: state
|
|
68
70
|
}), at);
|
|
69
71
|
} catch (e) {
|
|
70
|
-
return
|
|
72
|
+
return refused(require_model_errors_prepare_errors.unexpectedFailure(e), state);
|
|
71
73
|
}
|
|
72
74
|
}
|
|
73
75
|
/**
|
|
74
76
|
* {@inheritDoc IOpportunitiesPrepare.deposit}
|
|
75
77
|
**/
|
|
76
78
|
async deposit(pool, params) {
|
|
79
|
+
const draft = {};
|
|
77
80
|
try {
|
|
78
81
|
const chain = await this.#chain(pool.chainId);
|
|
79
82
|
const { marketRegister, pools } = chain;
|
|
83
|
+
draft.curator = marketRegister.findByPool(pool.pool).curator;
|
|
80
84
|
const tokenIn = params.tokenIn ?? marketRegister.findByPool(pool.pool).pool.underlying;
|
|
81
85
|
const tokenOut = lpRoute(params.tokenOut, () => pools.getDepositTokensOut(pool.pool, tokenIn));
|
|
82
|
-
if (!tokenOut) return unroutable(chain, tokenIn, void 0);
|
|
86
|
+
if (!tokenOut) return unroutable(chain, tokenIn, void 0, draft);
|
|
83
87
|
const state = pools.simulateDeposit({
|
|
84
88
|
pool: pool.pool,
|
|
85
89
|
amount: params.amount,
|
|
86
90
|
tokenIn,
|
|
87
91
|
tokenOut
|
|
88
92
|
});
|
|
93
|
+
Object.assign(draft, state);
|
|
89
94
|
const [refusal] = require_onchain_validation_bundles_checkPoolOperation.checkPoolOperation({
|
|
90
95
|
sdk: chain,
|
|
91
96
|
pool: pool.pool,
|
|
92
97
|
isDeposit: true,
|
|
93
98
|
tokenOut: state.tokenOut
|
|
94
99
|
});
|
|
95
|
-
if (refusal) return
|
|
100
|
+
if (refusal) return refused(refusal, draft);
|
|
96
101
|
const call = pools.addLiquidity({
|
|
97
102
|
collateral: {
|
|
98
103
|
token: state.tokenIn.token.address,
|
|
@@ -102,7 +107,7 @@ var PrepareApi = class extends require_onchain_base_MultichainConstruct.Multicha
|
|
|
102
107
|
wallet: params.wallet,
|
|
103
108
|
meta: pools.getDepositMetadata(pool.pool, tokenIn, tokenOut)
|
|
104
109
|
});
|
|
105
|
-
if (!call) return unroutable(chain, tokenIn, tokenOut);
|
|
110
|
+
if (!call) return unroutable(chain, tokenIn, tokenOut, draft);
|
|
106
111
|
return require_model_result.sdkOk({
|
|
107
112
|
operations: [],
|
|
108
113
|
state: await lpState(chain, pool.pool, params.wallet, state, { mints: state.tokenOut.value }),
|
|
@@ -110,32 +115,35 @@ var PrepareApi = class extends require_onchain_base_MultichainConstruct.Multicha
|
|
|
110
115
|
...stateBlock(chain)
|
|
111
116
|
});
|
|
112
117
|
} catch (e) {
|
|
113
|
-
return
|
|
118
|
+
return refused(require_model_errors_prepare_errors.unexpectedFailure(e), draft);
|
|
114
119
|
}
|
|
115
120
|
}
|
|
116
121
|
/**
|
|
117
122
|
* {@inheritDoc IOpportunitiesPrepare.withdraw}
|
|
118
123
|
**/
|
|
119
124
|
async withdraw(pool, params) {
|
|
125
|
+
const draft = {};
|
|
120
126
|
try {
|
|
121
127
|
const chain = await this.#chain(pool.chainId);
|
|
122
128
|
const { pools } = chain;
|
|
129
|
+
draft.curator = chain.marketRegister.findByPool(pool.pool).curator;
|
|
123
130
|
const tokenIn = params.tokenIn ?? pool.pool;
|
|
124
131
|
const tokenOut = lpRoute(params.tokenOut, () => pools.getWithdrawalTokensOut(pool.pool, tokenIn));
|
|
125
|
-
if (!tokenOut) return unroutable(chain, tokenIn, void 0);
|
|
132
|
+
if (!tokenOut) return unroutable(chain, tokenIn, void 0, draft);
|
|
126
133
|
const state = pools.simulateWithdraw({
|
|
127
134
|
pool: pool.pool,
|
|
128
135
|
amount: params.amount,
|
|
129
136
|
tokenIn,
|
|
130
137
|
tokenOut
|
|
131
138
|
});
|
|
139
|
+
Object.assign(draft, state);
|
|
132
140
|
const [refusal] = require_onchain_validation_bundles_checkPoolOperation.checkPoolOperation({
|
|
133
141
|
sdk: chain,
|
|
134
142
|
pool: pool.pool,
|
|
135
143
|
isDeposit: false,
|
|
136
144
|
tokenOut: state.tokenOut
|
|
137
145
|
});
|
|
138
|
-
if (refusal) return
|
|
146
|
+
if (refusal) return refused(refusal, draft);
|
|
139
147
|
const { calls } = pools.removeLiquidity({
|
|
140
148
|
pool: pool.pool,
|
|
141
149
|
amount: params.amount,
|
|
@@ -151,32 +159,35 @@ var PrepareApi = class extends require_onchain_base_MultichainConstruct.Multicha
|
|
|
151
159
|
...stateBlock(chain)
|
|
152
160
|
});
|
|
153
161
|
} catch (e) {
|
|
154
|
-
return
|
|
162
|
+
return refused(require_model_errors_prepare_errors.unexpectedFailure(e), draft);
|
|
155
163
|
}
|
|
156
164
|
}
|
|
157
165
|
/**
|
|
158
166
|
* {@inheritDoc IOpportunitiesPrepare.redeem}
|
|
159
167
|
**/
|
|
160
168
|
async redeem(pool, params) {
|
|
169
|
+
const draft = {};
|
|
161
170
|
try {
|
|
162
171
|
const chain = await this.#chain(pool.chainId);
|
|
163
172
|
const { pools } = chain;
|
|
173
|
+
draft.curator = chain.marketRegister.findByPool(pool.pool).curator;
|
|
164
174
|
const tokenIn = params.tokenIn ?? pool.pool;
|
|
165
175
|
const tokenOut = lpRoute(params.tokenOut, () => pools.getWithdrawalTokensOut(pool.pool, tokenIn));
|
|
166
|
-
if (!tokenOut) return unroutable(chain, tokenIn, void 0);
|
|
176
|
+
if (!tokenOut) return unroutable(chain, tokenIn, void 0, draft);
|
|
167
177
|
const state = pools.simulateRedeem({
|
|
168
178
|
pool: pool.pool,
|
|
169
179
|
amount: params.amount,
|
|
170
180
|
tokenIn,
|
|
171
181
|
tokenOut
|
|
172
182
|
});
|
|
183
|
+
Object.assign(draft, state);
|
|
173
184
|
const [refusal] = require_onchain_validation_bundles_checkPoolOperation.checkPoolOperation({
|
|
174
185
|
sdk: chain,
|
|
175
186
|
pool: pool.pool,
|
|
176
187
|
isDeposit: false,
|
|
177
188
|
tokenOut: state.tokenOut
|
|
178
189
|
});
|
|
179
|
-
if (refusal) return
|
|
190
|
+
if (refusal) return refused(refusal, draft);
|
|
180
191
|
const { calls } = pools.removeLiquidity({
|
|
181
192
|
pool: pool.pool,
|
|
182
193
|
amount: params.amount,
|
|
@@ -192,7 +203,7 @@ var PrepareApi = class extends require_onchain_base_MultichainConstruct.Multicha
|
|
|
192
203
|
...stateBlock(chain)
|
|
193
204
|
});
|
|
194
205
|
} catch (e) {
|
|
195
|
-
return
|
|
206
|
+
return refused(require_model_errors_prepare_errors.unexpectedFailure(e), draft);
|
|
196
207
|
}
|
|
197
208
|
}
|
|
198
209
|
/**
|
|
@@ -215,13 +226,15 @@ var PrepareApi = class extends require_onchain_base_MultichainConstruct.Multicha
|
|
|
215
226
|
* {@inheritDoc IOpportunitiesPrepare.openNewStrategy}
|
|
216
227
|
**/
|
|
217
228
|
async openNewStrategy(strategy, params) {
|
|
229
|
+
const state = {};
|
|
218
230
|
try {
|
|
219
231
|
const sdk = await this.#chain(strategy.chainId);
|
|
220
232
|
const at = stateBlock(sdk);
|
|
233
|
+
Object.assign(state, marketOf(sdk, strategy.creditManager));
|
|
221
234
|
const targetToken = params.targetToken ?? sdk.marketRegister.findCreditManager(strategy.creditManager).strategyTargetCollateral;
|
|
222
|
-
if (!targetToken) return
|
|
235
|
+
if (!targetToken) return refused(require_model_errors_prepare_errors.noStrategyTargetCollateral(strategy.creditManager), state);
|
|
223
236
|
const reused = await reusable(sdk, strategy, params.creditAccount);
|
|
224
|
-
if (reused && "error" in reused) return reused;
|
|
237
|
+
if (reused && "error" in reused) return refused(reused.error, state);
|
|
225
238
|
const creditAccount = reused?.account;
|
|
226
239
|
return opened(await service(sdk).openStrategyIntent({
|
|
227
240
|
sdk,
|
|
@@ -232,21 +245,24 @@ var PrepareApi = class extends require_onchain_base_MultichainConstruct.Multicha
|
|
|
232
245
|
leftoverBalances: params.leftoverBalances,
|
|
233
246
|
slippage: params.slippage,
|
|
234
247
|
quotaReserve: params.quotaReserve,
|
|
235
|
-
creditAccount
|
|
248
|
+
creditAccount,
|
|
249
|
+
draft: state
|
|
236
250
|
}), at);
|
|
237
251
|
} catch (e) {
|
|
238
|
-
return
|
|
252
|
+
return refused(require_model_errors_prepare_errors.unexpectedFailure(e), state);
|
|
239
253
|
}
|
|
240
254
|
}
|
|
241
255
|
/**
|
|
242
256
|
* {@inheritDoc IOpportunitiesPrepare.borrow}
|
|
243
257
|
**/
|
|
244
258
|
async borrow(strategy, params) {
|
|
259
|
+
const state = {};
|
|
245
260
|
try {
|
|
246
261
|
const sdk = await this.#chain(strategy.chainId);
|
|
247
262
|
const at = stateBlock(sdk);
|
|
263
|
+
Object.assign(state, marketOf(sdk, strategy.creditManager));
|
|
248
264
|
const reused = await reusable(sdk, strategy, params.creditAccount);
|
|
249
|
-
if (reused && "error" in reused) return reused;
|
|
265
|
+
if (reused && "error" in reused) return refused(reused.error, state);
|
|
250
266
|
return borrowed(await service(sdk).borrowIntent({
|
|
251
267
|
sdk,
|
|
252
268
|
creditManager: strategy.creditManager,
|
|
@@ -256,10 +272,11 @@ var PrepareApi = class extends require_onchain_base_MultichainConstruct.Multicha
|
|
|
256
272
|
borrowAmount: params.borrowAmount,
|
|
257
273
|
slippage: params.slippage,
|
|
258
274
|
quotaReserve: params.quotaReserve,
|
|
259
|
-
creditAccount: reused?.account
|
|
275
|
+
creditAccount: reused?.account,
|
|
276
|
+
draft: state
|
|
260
277
|
}), at);
|
|
261
278
|
} catch (e) {
|
|
262
|
-
return
|
|
279
|
+
return refused(require_model_errors_prepare_errors.unexpectedFailure(e), state);
|
|
263
280
|
}
|
|
264
281
|
}
|
|
265
282
|
/**
|
|
@@ -419,20 +436,22 @@ var PrepareApi = class extends require_onchain_base_MultichainConstruct.Multicha
|
|
|
419
436
|
* ones, per the engine trace its signature spells out.
|
|
420
437
|
**/
|
|
421
438
|
async #startRoutes(position, options, intent) {
|
|
439
|
+
const state = {};
|
|
422
440
|
try {
|
|
423
441
|
const sdk = await this.#chain(position.chainId);
|
|
424
442
|
const at = stateBlock(sdk);
|
|
425
443
|
const creditAccount = await slice(sdk, position.creditAccount);
|
|
426
|
-
if (!creditAccount) return neitherRoute(require_model_errors_prepare_errors.creditAccountNotFound(position.creditAccount));
|
|
444
|
+
if (!creditAccount) return neitherRoute(require_model_errors_prepare_errors.creditAccountNotFound(position.creditAccount), state);
|
|
427
445
|
return routed(await service(sdk).intentRoutes({
|
|
428
446
|
intent,
|
|
429
447
|
creditAccount,
|
|
430
448
|
sdk,
|
|
431
449
|
slippage: options.slippage,
|
|
432
|
-
quotaReserve: options.quotaReserve
|
|
450
|
+
quotaReserve: options.quotaReserve,
|
|
451
|
+
draft: state
|
|
433
452
|
}), at);
|
|
434
453
|
} catch (e) {
|
|
435
|
-
return neitherRoute(require_model_errors_prepare_errors.unexpectedFailure(e));
|
|
454
|
+
return neitherRoute(require_model_errors_prepare_errors.unexpectedFailure(e), state);
|
|
436
455
|
}
|
|
437
456
|
}
|
|
438
457
|
/**
|
|
@@ -445,20 +464,22 @@ var PrepareApi = class extends require_onchain_base_MultichainConstruct.Multicha
|
|
|
445
464
|
* ones, per the engine trace its signature spells out.
|
|
446
465
|
**/
|
|
447
466
|
async #startIntent(position, options, intent) {
|
|
467
|
+
const state = {};
|
|
448
468
|
try {
|
|
449
469
|
const sdk = await this.#chain(position.chainId);
|
|
450
470
|
const at = stateBlock(sdk);
|
|
451
471
|
const creditAccount = await slice(sdk, position.creditAccount);
|
|
452
|
-
if (!creditAccount) return
|
|
472
|
+
if (!creditAccount) return refused(require_model_errors_prepare_errors.creditAccountNotFound(position.creditAccount), state);
|
|
453
473
|
return planned(await service(sdk).startIntent({
|
|
454
474
|
intent,
|
|
455
475
|
creditAccount,
|
|
456
476
|
sdk,
|
|
457
477
|
slippage: options.slippage,
|
|
458
|
-
quotaReserve: options.quotaReserve
|
|
478
|
+
quotaReserve: options.quotaReserve,
|
|
479
|
+
draft: state
|
|
459
480
|
}), at);
|
|
460
481
|
} catch (e) {
|
|
461
|
-
return
|
|
482
|
+
return refused(require_model_errors_prepare_errors.unexpectedFailure(e), state);
|
|
462
483
|
}
|
|
463
484
|
}
|
|
464
485
|
};
|
|
@@ -546,14 +567,44 @@ function methodError(result) {
|
|
|
546
567
|
return result;
|
|
547
568
|
}
|
|
548
569
|
/**
|
|
570
|
+
* An error the namespace decides on itself, carrying as much of the state as
|
|
571
|
+
* it can say — nothing at all where it stopped before there was a market to
|
|
572
|
+
* name, see {@link WithPartialState}.
|
|
573
|
+
*
|
|
574
|
+
* The engine attaches its own draft on the way out, so this is only for what
|
|
575
|
+
* is raised on this side of it: a chain that would not resolve, an account the
|
|
576
|
+
* markets do not hold, a pool pair with no route.
|
|
577
|
+
**/
|
|
578
|
+
function refused(error, state) {
|
|
579
|
+
return require_model_result.sdkErr({
|
|
580
|
+
...error,
|
|
581
|
+
state
|
|
582
|
+
});
|
|
583
|
+
}
|
|
584
|
+
/**
|
|
585
|
+
* The market fields of a request that names its credit manager, for what is
|
|
586
|
+
* turned down before the engine has been reached at all.
|
|
587
|
+
*
|
|
588
|
+
* Empty where the SDK holds no such manager, which is itself one of those
|
|
589
|
+
* answers.
|
|
590
|
+
**/
|
|
591
|
+
function marketOf(sdk, creditManager) {
|
|
592
|
+
try {
|
|
593
|
+
return sdk.marketRegister.findCreditManager(creditManager).creditOperationMarket();
|
|
594
|
+
} catch {
|
|
595
|
+
return {};
|
|
596
|
+
}
|
|
597
|
+
}
|
|
598
|
+
/**
|
|
549
599
|
* A flow with two routes, stopped before either could be quoted: the error is
|
|
550
600
|
* the same one any other flow would report, with nothing to say about the
|
|
551
601
|
* routes because neither was reached.
|
|
552
602
|
**/
|
|
553
|
-
function neitherRoute(error) {
|
|
603
|
+
function neitherRoute(error, state) {
|
|
554
604
|
return require_model_result.sdkErr({
|
|
555
605
|
...error,
|
|
556
|
-
errors: {}
|
|
606
|
+
errors: {},
|
|
607
|
+
state
|
|
557
608
|
});
|
|
558
609
|
}
|
|
559
610
|
/**
|
|
@@ -672,11 +723,11 @@ async function lpState(sdk, pool, wallet, simulation, moved) {
|
|
|
672
723
|
* is the usual way of it; both are present where a pair exists but nothing of
|
|
673
724
|
* ours implements it.
|
|
674
725
|
**/
|
|
675
|
-
function unroutable(sdk, from, to) {
|
|
676
|
-
return
|
|
726
|
+
function unroutable(sdk, from, to, state) {
|
|
727
|
+
return refused(require_model_errors_prepare_errors.unsupportedTokenPair({
|
|
677
728
|
from: require_onchain_validation_helpers_token.toToken(sdk, from),
|
|
678
729
|
to: to === void 0 ? void 0 : require_onchain_validation_helpers_token.toToken(sdk, to)
|
|
679
|
-
}));
|
|
730
|
+
}), state);
|
|
680
731
|
}
|
|
681
732
|
/**
|
|
682
733
|
* Picks the route the operation takes out of `tokenIn`, as a value rather than
|
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
import { getNetworkType } from "./chain/chains.js";
|
|
2
2
|
import { ChainNotConfiguredError, SdkMissingChainStateError, SdkStateVersionMismatchError, SdkSyncFailedError } from "./core/errors.js";
|
|
3
|
-
import { PriceUpdatesCache } from "./market/pricefeeds/updates/PriceUpdatesCache.js";
|
|
4
|
-
import "./market/pricefeeds/updates/index.js";
|
|
5
3
|
import { MultichainLiquidationsService } from "./accounts/liquidations/MultichainLiquidationsService.js";
|
|
6
4
|
import "./accounts/index.js";
|
|
7
5
|
import "./core/index.js";
|
|
@@ -18,7 +16,6 @@ import { OnchainSDK } from "./OnchainSDK.js";
|
|
|
18
16
|
**/
|
|
19
17
|
var MultichainSDK = class {
|
|
20
18
|
#chains;
|
|
21
|
-
#redstoneCache;
|
|
22
19
|
#logger;
|
|
23
20
|
/**
|
|
24
21
|
* Namespace for liquidatable credit accounts discovery across all
|
|
@@ -60,20 +57,9 @@ var MultichainSDK = class {
|
|
|
60
57
|
* @param options - Shared and per-chain attach options.
|
|
61
58
|
*/
|
|
62
59
|
async attach(options) {
|
|
63
|
-
if (options?.redstone) this.#redstoneCache = new PriceUpdatesCache({
|
|
64
|
-
ttl: options.redstone.cacheTTL ?? 225e3,
|
|
65
|
-
historical: !!options.redstone.historicTimestamp
|
|
66
|
-
});
|
|
67
60
|
await Promise.all([...this.#chains.entries()].map(([network, sdk]) => {
|
|
68
61
|
const perChainOpts = options?.perChain?.[network] ?? {};
|
|
69
|
-
return sdk.attach(
|
|
70
|
-
...perChainOpts,
|
|
71
|
-
redstone: {
|
|
72
|
-
...options?.redstone,
|
|
73
|
-
cache: this.#redstoneCache,
|
|
74
|
-
...perChainOpts.redstone
|
|
75
|
-
}
|
|
76
|
-
});
|
|
62
|
+
return sdk.attach(perChainOpts);
|
|
77
63
|
}));
|
|
78
64
|
this.#logger?.info("Attached all chains");
|
|
79
65
|
}
|
|
@@ -88,10 +74,6 @@ var MultichainSDK = class {
|
|
|
88
74
|
*/
|
|
89
75
|
hydrate(state, options) {
|
|
90
76
|
if (state.version !== 2) throw new SdkStateVersionMismatchError(2, state.version);
|
|
91
|
-
if (options?.redstone) this.#redstoneCache = new PriceUpdatesCache({
|
|
92
|
-
ttl: options.redstone.cacheTTL ?? 225e3,
|
|
93
|
-
historical: !!options.redstone.historicTimestamp
|
|
94
|
-
});
|
|
95
77
|
const stateByNetwork = new Map(state.chains.map((cs) => [cs.network, cs]));
|
|
96
78
|
for (const [network, sdk] of this.#chains) {
|
|
97
79
|
const chainState = stateByNetwork.get(network);
|
|
@@ -100,14 +82,7 @@ var MultichainSDK = class {
|
|
|
100
82
|
throw new SdkMissingChainStateError(network);
|
|
101
83
|
}
|
|
102
84
|
const perChainOpts = options?.perChain?.[network] ?? {};
|
|
103
|
-
sdk.hydrate(chainState,
|
|
104
|
-
...perChainOpts,
|
|
105
|
-
redstone: {
|
|
106
|
-
...options?.redstone,
|
|
107
|
-
cache: this.#redstoneCache,
|
|
108
|
-
...perChainOpts.redstone
|
|
109
|
-
}
|
|
110
|
-
});
|
|
85
|
+
sdk.hydrate(chainState, perChainOpts);
|
|
111
86
|
}
|
|
112
87
|
this.#logger?.info("Hydrated all chains");
|
|
113
88
|
}
|