@gearbox-protocol/sdk 8.6.6 → 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.
- package/dist/cjs/sdk/GearboxSDK.js +8 -4
- package/dist/cjs/sdk/market/MarketRegister.js +21 -6
- package/dist/esm/sdk/GearboxSDK.js +8 -4
- package/dist/esm/sdk/market/MarketRegister.js +21 -6
- package/dist/types/sdk/GearboxSDK.d.ts +4 -0
- package/dist/types/sdk/market/MarketRegister.d.ts +1 -1
- package/package.json +1 -1
|
@@ -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,
|
|
@@ -39,15 +39,26 @@ class MarketRegister extends import_base.SDKConstruct {
|
|
|
39
39
|
void 0,
|
|
40
40
|
"marketConfigurators"
|
|
41
41
|
);
|
|
42
|
-
|
|
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
|
-
|
|
152
|
-
|
|
153
|
-
|
|
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.
|
|
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,
|
|
@@ -20,15 +20,26 @@ class MarketRegister extends SDKConstruct {
|
|
|
20
20
|
void 0,
|
|
21
21
|
"marketConfigurators"
|
|
22
22
|
);
|
|
23
|
-
|
|
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
|
-
|
|
133
|
-
|
|
134
|
-
|
|
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.
|
|
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;
|