@gearbox-protocol/sdk 8.6.5 → 8.7.0

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.
@@ -83,6 +83,7 @@ class GearboxSDK {
83
83
  redstone,
84
84
  pyth,
85
85
  ignoreUpdateablePrices,
86
+ ignoreMarkets,
86
87
  marketConfigurators: mcs,
87
88
  strictContractTypes
88
89
  } = options;
@@ -114,6 +115,7 @@ class GearboxSDK {
114
115
  addressProvider,
115
116
  blockNumber,
116
117
  ignoreUpdateablePrices,
118
+ ignoreMarkets,
117
119
  marketConfigurators,
118
120
  redstone,
119
121
  pyth
@@ -147,6 +149,7 @@ class GearboxSDK {
147
149
  addressProvider,
148
150
  blockNumber,
149
151
  ignoreUpdateablePrices,
152
+ ignoreMarkets,
150
153
  marketConfigurators,
151
154
  redstone,
152
155
  pyth
@@ -158,7 +161,8 @@ class GearboxSDK {
158
161
  chainId: this.provider.chainId,
159
162
  addressProvider,
160
163
  marketConfigurators,
161
- blockNumber
164
+ blockNumber,
165
+ ignoreMarkets
162
166
  },
163
167
  `${re}attaching gearbox sdk`
164
168
  );
@@ -190,7 +194,7 @@ class GearboxSDK {
190
194
  `address provider version: ${this.#addressProvider.version}`
191
195
  );
192
196
  await this.#addressProvider.syncState(this.currentBlock);
193
- this.#marketRegister = new import_MarketRegister.MarketRegister(this);
197
+ this.#marketRegister = new import_MarketRegister.MarketRegister(this, ignoreMarkets);
194
198
  await this.#marketRegister.loadMarkets(
195
199
  marketConfigurators,
196
200
  ignoreUpdateablePrices
@@ -217,7 +221,7 @@ class GearboxSDK {
217
221
  return this;
218
222
  }
219
223
  #hydrate(options, state) {
220
- const { logger: _logger, ...opts } = options;
224
+ const { logger: _logger, ignoreMarkets, ...opts } = options;
221
225
  if (state.version !== STATE_VERSION) {
222
226
  throw new Error(
223
227
  `hydrated state version is ${state.version}, but expected ${STATE_VERSION}`
@@ -240,7 +244,7 @@ class GearboxSDK {
240
244
  this.logger?.debug(
241
245
  `address provider version: ${this.#addressProvider.version}`
242
246
  );
243
- this.#marketRegister = new import_MarketRegister.MarketRegister(this);
247
+ this.#marketRegister = new import_MarketRegister.MarketRegister(this, ignoreMarkets);
244
248
  this.#marketRegister.hydrate(state.markets);
245
249
  this.#attachConfig = {
246
250
  ...opts,
@@ -268,6 +268,12 @@ const chains = {
268
268
  wellKnownToken: {
269
269
  address: "0xad11a8BEb98bbf61dbb1aa0F6d6F2ECD87b35afA",
270
270
  symbol: "USDC.e"
271
+ },
272
+ contracts: {
273
+ multicall3: {
274
+ address: "0xcA11bde05977b3631167028862bE2a173976CA11",
275
+ blockCreated: 484490
276
+ }
271
277
  }
272
278
  }),
273
279
  Lisk: (0, import_viem.defineChain)({
@@ -39,15 +39,26 @@ class MarketRegister extends import_base.SDKConstruct {
39
39
  void 0,
40
40
  "marketConfigurators"
41
41
  );
42
- constructor(sdk) {
42
+ #ignoreMarkets;
43
+ constructor(sdk, ignoreMarkets = []) {
43
44
  super(sdk);
44
45
  this.#logger = (0, import_utils.childLogger)("MarketRegister", sdk.logger);
46
+ this.#ignoreMarkets = new Set(
47
+ ignoreMarkets.map((m) => m.toLowerCase())
48
+ );
45
49
  }
46
50
  hydrate(state) {
47
51
  this.#markets.clear();
48
52
  const configurators = new Set(state.map((m) => m.configurator));
49
53
  this.#setMarketFilter([...configurators]);
50
54
  for (const data of state) {
55
+ const pool = data.pool.baseParams.addr;
56
+ if (this.#ignoreMarkets.has(pool.toLowerCase())) {
57
+ this.#logger?.debug(
58
+ `ignoring market of pool ${pool} (${data.pool.name})`
59
+ );
60
+ continue;
61
+ }
51
62
  this.#markets.upsert(
52
63
  data.pool.baseParams.addr,
53
64
  new import_MarketSuite.MarketSuite(this.sdk, data)
@@ -148,13 +159,17 @@ class MarketRegister extends import_base.SDKConstruct {
148
159
  });
149
160
  }
150
161
  for (const data of markets) {
151
- this.#markets.upsert(
152
- data.pool.baseParams.addr,
153
- new import_MarketSuite.MarketSuite(this.sdk, data)
154
- );
162
+ const pool = data.pool.baseParams.addr;
163
+ if (this.#ignoreMarkets.has(pool.toLowerCase())) {
164
+ this.#logger?.debug(
165
+ `ignoring market of pool ${pool} (${data.pool.name})`
166
+ );
167
+ continue;
168
+ }
169
+ this.#markets.upsert(pool, new import_MarketSuite.MarketSuite(this.sdk, data));
155
170
  }
156
171
  this.#logger?.info(
157
- `loaded ${markets.length} markets in block ${this.sdk.currentBlock}`
172
+ `loaded ${this.#markets.size} markets in block ${this.sdk.currentBlock}`
158
173
  );
159
174
  }
160
175
  /**
@@ -81,6 +81,7 @@ class GearboxSDK {
81
81
  redstone,
82
82
  pyth,
83
83
  ignoreUpdateablePrices,
84
+ ignoreMarkets,
84
85
  marketConfigurators: mcs,
85
86
  strictContractTypes
86
87
  } = options;
@@ -112,6 +113,7 @@ class GearboxSDK {
112
113
  addressProvider,
113
114
  blockNumber,
114
115
  ignoreUpdateablePrices,
116
+ ignoreMarkets,
115
117
  marketConfigurators,
116
118
  redstone,
117
119
  pyth
@@ -145,6 +147,7 @@ class GearboxSDK {
145
147
  addressProvider,
146
148
  blockNumber,
147
149
  ignoreUpdateablePrices,
150
+ ignoreMarkets,
148
151
  marketConfigurators,
149
152
  redstone,
150
153
  pyth
@@ -156,7 +159,8 @@ class GearboxSDK {
156
159
  chainId: this.provider.chainId,
157
160
  addressProvider,
158
161
  marketConfigurators,
159
- blockNumber
162
+ blockNumber,
163
+ ignoreMarkets
160
164
  },
161
165
  `${re}attaching gearbox sdk`
162
166
  );
@@ -188,7 +192,7 @@ class GearboxSDK {
188
192
  `address provider version: ${this.#addressProvider.version}`
189
193
  );
190
194
  await this.#addressProvider.syncState(this.currentBlock);
191
- this.#marketRegister = new MarketRegister(this);
195
+ this.#marketRegister = new MarketRegister(this, ignoreMarkets);
192
196
  await this.#marketRegister.loadMarkets(
193
197
  marketConfigurators,
194
198
  ignoreUpdateablePrices
@@ -215,7 +219,7 @@ class GearboxSDK {
215
219
  return this;
216
220
  }
217
221
  #hydrate(options, state) {
218
- const { logger: _logger, ...opts } = options;
222
+ const { logger: _logger, ignoreMarkets, ...opts } = options;
219
223
  if (state.version !== STATE_VERSION) {
220
224
  throw new Error(
221
225
  `hydrated state version is ${state.version}, but expected ${STATE_VERSION}`
@@ -238,7 +242,7 @@ class GearboxSDK {
238
242
  this.logger?.debug(
239
243
  `address provider version: ${this.#addressProvider.version}`
240
244
  );
241
- this.#marketRegister = new MarketRegister(this);
245
+ this.#marketRegister = new MarketRegister(this, ignoreMarkets);
242
246
  this.#marketRegister.hydrate(state.markets);
243
247
  this.#attachConfig = {
244
248
  ...opts,
@@ -254,6 +254,12 @@ const chains = {
254
254
  wellKnownToken: {
255
255
  address: "0xad11a8BEb98bbf61dbb1aa0F6d6F2ECD87b35afA",
256
256
  symbol: "USDC.e"
257
+ },
258
+ contracts: {
259
+ multicall3: {
260
+ address: "0xcA11bde05977b3631167028862bE2a173976CA11",
261
+ blockCreated: 484490
262
+ }
257
263
  }
258
264
  }),
259
265
  Lisk: defineChain({
@@ -20,15 +20,26 @@ class MarketRegister extends SDKConstruct {
20
20
  void 0,
21
21
  "marketConfigurators"
22
22
  );
23
- constructor(sdk) {
23
+ #ignoreMarkets;
24
+ constructor(sdk, ignoreMarkets = []) {
24
25
  super(sdk);
25
26
  this.#logger = childLogger("MarketRegister", sdk.logger);
27
+ this.#ignoreMarkets = new Set(
28
+ ignoreMarkets.map((m) => m.toLowerCase())
29
+ );
26
30
  }
27
31
  hydrate(state) {
28
32
  this.#markets.clear();
29
33
  const configurators = new Set(state.map((m) => m.configurator));
30
34
  this.#setMarketFilter([...configurators]);
31
35
  for (const data of state) {
36
+ const pool = data.pool.baseParams.addr;
37
+ if (this.#ignoreMarkets.has(pool.toLowerCase())) {
38
+ this.#logger?.debug(
39
+ `ignoring market of pool ${pool} (${data.pool.name})`
40
+ );
41
+ continue;
42
+ }
32
43
  this.#markets.upsert(
33
44
  data.pool.baseParams.addr,
34
45
  new MarketSuite(this.sdk, data)
@@ -129,13 +140,17 @@ class MarketRegister extends SDKConstruct {
129
140
  });
130
141
  }
131
142
  for (const data of markets) {
132
- this.#markets.upsert(
133
- data.pool.baseParams.addr,
134
- new MarketSuite(this.sdk, data)
135
- );
143
+ const pool = data.pool.baseParams.addr;
144
+ if (this.#ignoreMarkets.has(pool.toLowerCase())) {
145
+ this.#logger?.debug(
146
+ `ignoring market of pool ${pool} (${data.pool.name})`
147
+ );
148
+ continue;
149
+ }
150
+ this.#markets.upsert(pool, new MarketSuite(this.sdk, data));
136
151
  }
137
152
  this.#logger?.info(
138
- `loaded ${markets.length} markets in block ${this.sdk.currentBlock}`
153
+ `loaded ${this.#markets.size} markets in block ${this.sdk.currentBlock}`
139
154
  );
140
155
  }
141
156
  /**
@@ -35,6 +35,10 @@ export interface SDKOptions<Plugins extends PluginsMap> {
35
35
  * Makes things faster when your service is not intereseted in prices
36
36
  */
37
37
  ignoreUpdateablePrices?: boolean;
38
+ /**
39
+ * Will skip loading markets for these pools on attach/hydrate/sync
40
+ */
41
+ ignoreMarkets?: Address[];
38
42
  /**
39
43
  * Will throw an error if contract type is not supported, otherwise will try to use generic contract first, if possible
40
44
  */
@@ -10,7 +10,7 @@ import { MarketSuite } from "./MarketSuite.js";
10
10
  import type { PoolSuite } from "./pool/index.js";
11
11
  export declare class MarketRegister extends SDKConstruct {
12
12
  #private;
13
- constructor(sdk: GearboxSDK);
13
+ constructor(sdk: GearboxSDK, ignoreMarkets?: Address[]);
14
14
  hydrate(state: MarketData[]): void;
15
15
  loadMarkets(marketConfigurators: Address[], ignoreUpdateablePrices?: boolean): Promise<void>;
16
16
  get marketFilter(): MarketFilter;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gearbox-protocol/sdk",
3
- "version": "8.6.5",
3
+ "version": "8.7.0",
4
4
  "description": "Gearbox SDK",
5
5
  "license": "MIT",
6
6
  "main": "./dist/cjs/sdk/index.js",