@gearbox-protocol/sdk 5.0.0-next.2 → 5.0.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/dev/calcLiquidatableLTs.js +1 -5
- package/dist/cjs/sdk/base/BaseContract.js +1 -0
- package/dist/cjs/sdk/market/MarketSuite.js +5 -1
- package/dist/cjs/sdk/market/oracle/PriceOracleBaseContract.js +47 -52
- package/dist/cjs/sdk/market/oracle/PriceOracleV300Contract.js +3 -2
- package/dist/cjs/sdk/market/oracle/PriceOracleV310Contract.js +3 -2
- package/dist/cjs/sdk/market/oracle/createPriceOracle.js +9 -28
- package/dist/cjs/sdk/market/pricefeeds/AbstractLPPriceFeed.js +1 -2
- package/dist/cjs/sdk/market/pricefeeds/RedstonePriceFeed.js +1 -1
- package/dist/cjs/sdk/plugins/V300StalenessPeriodPlugin.js +5 -5
- package/dist/esm/dev/calcLiquidatableLTs.js +1 -5
- package/dist/esm/sdk/base/BaseContract.js +1 -0
- package/dist/esm/sdk/market/MarketSuite.js +6 -2
- package/dist/esm/sdk/market/oracle/PriceOracleBaseContract.js +47 -53
- package/dist/esm/sdk/market/oracle/PriceOracleV300Contract.js +3 -2
- package/dist/esm/sdk/market/oracle/PriceOracleV310Contract.js +3 -2
- package/dist/esm/sdk/market/oracle/createPriceOracle.js +8 -27
- package/dist/esm/sdk/market/pricefeeds/AbstractLPPriceFeed.js +1 -2
- package/dist/esm/sdk/market/pricefeeds/RedstonePriceFeed.js +2 -2
- package/dist/esm/sdk/plugins/V300StalenessPeriodPlugin.js +6 -6
- package/dist/types/sdk/market/MarketSuite.d.ts +2 -2
- package/dist/types/sdk/market/oracle/PriceOracleBaseContract.d.ts +684 -28
- package/dist/types/sdk/market/oracle/PriceOracleV300Contract.d.ts +1 -1
- package/dist/types/sdk/market/oracle/PriceOracleV310Contract.d.ts +2 -2
- package/dist/types/sdk/market/oracle/createPriceOracle.d.ts +3 -14
- package/dist/types/sdk/market/oracle/types.d.ts +6 -97
- package/dist/types/sdk/plugins/V300StalenessPeriodPlugin.d.ts +2 -3
- package/package.json +1 -1
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import type { Abi, Address } from "viem";
|
|
1
|
+
import type { Abi, Address, ContractFunctionReturnType } from "viem";
|
|
2
|
+
import { iPriceFeedCompressorAbi } from "../../../abi/compressors.js";
|
|
2
3
|
import type { BaseContractOptions } from "../../base/BaseContract.js";
|
|
3
|
-
import type { PriceOracleData } from "../../base/index.js";
|
|
4
|
+
import type { PriceFeedTreeNode, PriceOracleData } from "../../base/index.js";
|
|
4
5
|
import { BaseContract } from "../../base/index.js";
|
|
5
6
|
import type { GearboxSDK } from "../../GearboxSDK.js";
|
|
6
7
|
import type { PriceOracleStateHuman } from "../../types/index.js";
|
|
@@ -8,9 +9,13 @@ import { AddressMap } from "../../utils/index.js";
|
|
|
8
9
|
import type { IPriceFeedContract, UpdatePriceFeedsResult } from "../pricefeeds/index.js";
|
|
9
10
|
import { PriceFeedRef } from "../pricefeeds/index.js";
|
|
10
11
|
import PriceFeedAnswerMap from "./PriceFeedAnswerMap.js";
|
|
11
|
-
import type {
|
|
12
|
-
export declare
|
|
12
|
+
import type { IPriceOracleContract, OnDemandPriceUpdate, PriceFeedsForTokensOptions } from "./types.js";
|
|
13
|
+
export declare class PriceOracleBaseContract<abi extends Abi | readonly unknown[]> extends BaseContract<abi> implements IPriceOracleContract {
|
|
13
14
|
#private;
|
|
15
|
+
/**
|
|
16
|
+
* Underlying token of market to which this price oracle belongs
|
|
17
|
+
*/
|
|
18
|
+
readonly underlying: Address;
|
|
14
19
|
/**
|
|
15
20
|
* Mapping Token => [PriceFeed Address, stalenessPeriod]
|
|
16
21
|
*/
|
|
@@ -27,7 +32,7 @@ export declare abstract class PriceOracleBaseContract<abi extends Abi | readonly
|
|
|
27
32
|
* Mapping Token => Price in USD
|
|
28
33
|
*/
|
|
29
34
|
readonly reservePrices: PriceFeedAnswerMap;
|
|
30
|
-
constructor(sdk: GearboxSDK, args: BaseContractOptions<abi>, data: PriceOracleData);
|
|
35
|
+
constructor(sdk: GearboxSDK, args: BaseContractOptions<abi>, data: PriceOracleData, underlying: Address);
|
|
31
36
|
/**
|
|
32
37
|
* Returns main and reserve price feeds for given tokens
|
|
33
38
|
* @param tokens
|
|
@@ -63,64 +68,715 @@ export declare abstract class PriceOracleBaseContract<abi extends Abi | readonly
|
|
|
63
68
|
reservePrice(token: Address): bigint;
|
|
64
69
|
/**
|
|
65
70
|
* Returns true if oracle's price feed tree contains given price feed
|
|
66
|
-
* This feed is not necessary connected to token, but can be a component of composite feed for some token
|
|
67
71
|
* @param priceFeed
|
|
68
72
|
* @returns
|
|
69
73
|
*/
|
|
70
74
|
usesPriceFeed(priceFeed: Address): boolean;
|
|
75
|
+
/**
|
|
76
|
+
* Tries to convert amount of token into underlying of current market
|
|
77
|
+
* @param token
|
|
78
|
+
* @param amount
|
|
79
|
+
* @param reserve
|
|
80
|
+
* @returns
|
|
81
|
+
*/
|
|
82
|
+
convertToUnderlying(token: Address, amount: bigint, reserve?: boolean): bigint;
|
|
71
83
|
/**
|
|
72
84
|
* Tries to convert amount of from one token to another, using latest known prices
|
|
73
85
|
* @param from
|
|
74
86
|
* @param to
|
|
75
87
|
* @param amount
|
|
76
|
-
* @param reserve
|
|
88
|
+
* @param reserve
|
|
77
89
|
*/
|
|
78
90
|
convert(from: Address, to: Address, amount: bigint, reserve?: boolean): bigint;
|
|
79
91
|
/**
|
|
80
92
|
* Tries to convert amount of token to USD, using latest known prices
|
|
81
93
|
* @param from
|
|
94
|
+
* @param to
|
|
82
95
|
* @param amount
|
|
83
|
-
* @param reserve
|
|
96
|
+
* @param reserve
|
|
84
97
|
*/
|
|
85
98
|
convertToUSD(from: Address, amount: bigint, reserve?: boolean): bigint;
|
|
86
99
|
/**
|
|
87
100
|
* Tries to convert amount of USD to token, using latest known prices
|
|
88
101
|
* @param to
|
|
89
102
|
* @param amount
|
|
90
|
-
* @param reserve
|
|
103
|
+
* @param reserve
|
|
91
104
|
*/
|
|
92
105
|
convertFromUSD(to: Address, amount: bigint, reserve?: boolean): bigint;
|
|
93
106
|
/**
|
|
94
107
|
* Loads new prices for this oracle from PriceFeedCompressor
|
|
95
|
-
*
|
|
108
|
+
* Does not update price feeds, only updates prices
|
|
96
109
|
*/
|
|
97
110
|
updatePrices(): Promise<void>;
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
+
syncStateMulticall(): {
|
|
112
|
+
call: {
|
|
113
|
+
abi: readonly [{
|
|
114
|
+
readonly type: "function";
|
|
115
|
+
readonly inputs: readonly [];
|
|
116
|
+
readonly name: "contractType";
|
|
117
|
+
readonly outputs: readonly [{
|
|
118
|
+
readonly name: "";
|
|
119
|
+
readonly internalType: "bytes32";
|
|
120
|
+
readonly type: "bytes32";
|
|
121
|
+
}];
|
|
122
|
+
readonly stateMutability: "view";
|
|
123
|
+
}, {
|
|
124
|
+
readonly type: "function";
|
|
125
|
+
readonly inputs: readonly [{
|
|
126
|
+
readonly name: "priceOracle";
|
|
127
|
+
readonly internalType: "address";
|
|
128
|
+
readonly type: "address";
|
|
129
|
+
}];
|
|
130
|
+
readonly name: "getPriceOracleState";
|
|
131
|
+
readonly outputs: readonly [{
|
|
132
|
+
readonly name: "";
|
|
133
|
+
readonly internalType: "struct PriceOracleState";
|
|
134
|
+
readonly type: "tuple";
|
|
135
|
+
readonly components: readonly [{
|
|
136
|
+
readonly name: "baseParams";
|
|
137
|
+
readonly internalType: "struct BaseParams";
|
|
138
|
+
readonly type: "tuple";
|
|
139
|
+
readonly components: readonly [{
|
|
140
|
+
readonly name: "addr";
|
|
141
|
+
readonly internalType: "address";
|
|
142
|
+
readonly type: "address";
|
|
143
|
+
}, {
|
|
144
|
+
readonly name: "version";
|
|
145
|
+
readonly internalType: "uint256";
|
|
146
|
+
readonly type: "uint256";
|
|
147
|
+
}, {
|
|
148
|
+
readonly name: "contractType";
|
|
149
|
+
readonly internalType: "bytes32";
|
|
150
|
+
readonly type: "bytes32";
|
|
151
|
+
}, {
|
|
152
|
+
readonly name: "serializedParams";
|
|
153
|
+
readonly internalType: "bytes";
|
|
154
|
+
readonly type: "bytes";
|
|
155
|
+
}];
|
|
156
|
+
}, {
|
|
157
|
+
readonly name: "priceFeedMap";
|
|
158
|
+
readonly internalType: "struct PriceFeedMapEntry[]";
|
|
159
|
+
readonly type: "tuple[]";
|
|
160
|
+
readonly components: readonly [{
|
|
161
|
+
readonly name: "token";
|
|
162
|
+
readonly internalType: "address";
|
|
163
|
+
readonly type: "address";
|
|
164
|
+
}, {
|
|
165
|
+
readonly name: "reserve";
|
|
166
|
+
readonly internalType: "bool";
|
|
167
|
+
readonly type: "bool";
|
|
168
|
+
}, {
|
|
169
|
+
readonly name: "priceFeed";
|
|
170
|
+
readonly internalType: "address";
|
|
171
|
+
readonly type: "address";
|
|
172
|
+
}, {
|
|
173
|
+
readonly name: "stalenessPeriod";
|
|
174
|
+
readonly internalType: "uint32";
|
|
175
|
+
readonly type: "uint32";
|
|
176
|
+
}];
|
|
177
|
+
}, {
|
|
178
|
+
readonly name: "priceFeedTree";
|
|
179
|
+
readonly internalType: "struct PriceFeedTreeNode[]";
|
|
180
|
+
readonly type: "tuple[]";
|
|
181
|
+
readonly components: readonly [{
|
|
182
|
+
readonly name: "baseParams";
|
|
183
|
+
readonly internalType: "struct BaseParams";
|
|
184
|
+
readonly type: "tuple";
|
|
185
|
+
readonly components: readonly [{
|
|
186
|
+
readonly name: "addr";
|
|
187
|
+
readonly internalType: "address";
|
|
188
|
+
readonly type: "address";
|
|
189
|
+
}, {
|
|
190
|
+
readonly name: "version";
|
|
191
|
+
readonly internalType: "uint256";
|
|
192
|
+
readonly type: "uint256";
|
|
193
|
+
}, {
|
|
194
|
+
readonly name: "contractType";
|
|
195
|
+
readonly internalType: "bytes32";
|
|
196
|
+
readonly type: "bytes32";
|
|
197
|
+
}, {
|
|
198
|
+
readonly name: "serializedParams";
|
|
199
|
+
readonly internalType: "bytes";
|
|
200
|
+
readonly type: "bytes";
|
|
201
|
+
}];
|
|
202
|
+
}, {
|
|
203
|
+
readonly name: "description";
|
|
204
|
+
readonly internalType: "string";
|
|
205
|
+
readonly type: "string";
|
|
206
|
+
}, {
|
|
207
|
+
readonly name: "decimals";
|
|
208
|
+
readonly internalType: "uint8";
|
|
209
|
+
readonly type: "uint8";
|
|
210
|
+
}, {
|
|
211
|
+
readonly name: "skipCheck";
|
|
212
|
+
readonly internalType: "bool";
|
|
213
|
+
readonly type: "bool";
|
|
214
|
+
}, {
|
|
215
|
+
readonly name: "updatable";
|
|
216
|
+
readonly internalType: "bool";
|
|
217
|
+
readonly type: "bool";
|
|
218
|
+
}, {
|
|
219
|
+
readonly name: "underlyingFeeds";
|
|
220
|
+
readonly internalType: "address[]";
|
|
221
|
+
readonly type: "address[]";
|
|
222
|
+
}, {
|
|
223
|
+
readonly name: "underlyingStalenessPeriods";
|
|
224
|
+
readonly internalType: "uint32[]";
|
|
225
|
+
readonly type: "uint32[]";
|
|
226
|
+
}, {
|
|
227
|
+
readonly name: "answer";
|
|
228
|
+
readonly internalType: "struct PriceFeedAnswer";
|
|
229
|
+
readonly type: "tuple";
|
|
230
|
+
readonly components: readonly [{
|
|
231
|
+
readonly name: "price";
|
|
232
|
+
readonly internalType: "int256";
|
|
233
|
+
readonly type: "int256";
|
|
234
|
+
}, {
|
|
235
|
+
readonly name: "updatedAt";
|
|
236
|
+
readonly internalType: "uint256";
|
|
237
|
+
readonly type: "uint256";
|
|
238
|
+
}, {
|
|
239
|
+
readonly name: "success";
|
|
240
|
+
readonly internalType: "bool";
|
|
241
|
+
readonly type: "bool";
|
|
242
|
+
}];
|
|
243
|
+
}];
|
|
244
|
+
}];
|
|
245
|
+
}];
|
|
246
|
+
readonly stateMutability: "view";
|
|
247
|
+
}, {
|
|
248
|
+
readonly type: "function";
|
|
249
|
+
readonly inputs: readonly [{
|
|
250
|
+
readonly name: "priceOracle";
|
|
251
|
+
readonly internalType: "address";
|
|
252
|
+
readonly type: "address";
|
|
253
|
+
}, {
|
|
254
|
+
readonly name: "tokens";
|
|
255
|
+
readonly internalType: "address[]";
|
|
256
|
+
readonly type: "address[]";
|
|
257
|
+
}];
|
|
258
|
+
readonly name: "getPriceOracleState";
|
|
259
|
+
readonly outputs: readonly [{
|
|
260
|
+
readonly name: "";
|
|
261
|
+
readonly internalType: "struct PriceOracleState";
|
|
262
|
+
readonly type: "tuple";
|
|
263
|
+
readonly components: readonly [{
|
|
264
|
+
readonly name: "baseParams";
|
|
265
|
+
readonly internalType: "struct BaseParams";
|
|
266
|
+
readonly type: "tuple";
|
|
267
|
+
readonly components: readonly [{
|
|
268
|
+
readonly name: "addr";
|
|
269
|
+
readonly internalType: "address";
|
|
270
|
+
readonly type: "address";
|
|
271
|
+
}, {
|
|
272
|
+
readonly name: "version";
|
|
273
|
+
readonly internalType: "uint256";
|
|
274
|
+
readonly type: "uint256";
|
|
275
|
+
}, {
|
|
276
|
+
readonly name: "contractType";
|
|
277
|
+
readonly internalType: "bytes32";
|
|
278
|
+
readonly type: "bytes32";
|
|
279
|
+
}, {
|
|
280
|
+
readonly name: "serializedParams";
|
|
281
|
+
readonly internalType: "bytes";
|
|
282
|
+
readonly type: "bytes";
|
|
283
|
+
}];
|
|
284
|
+
}, {
|
|
285
|
+
readonly name: "priceFeedMap";
|
|
286
|
+
readonly internalType: "struct PriceFeedMapEntry[]";
|
|
287
|
+
readonly type: "tuple[]";
|
|
288
|
+
readonly components: readonly [{
|
|
289
|
+
readonly name: "token";
|
|
290
|
+
readonly internalType: "address";
|
|
291
|
+
readonly type: "address";
|
|
292
|
+
}, {
|
|
293
|
+
readonly name: "reserve";
|
|
294
|
+
readonly internalType: "bool";
|
|
295
|
+
readonly type: "bool";
|
|
296
|
+
}, {
|
|
297
|
+
readonly name: "priceFeed";
|
|
298
|
+
readonly internalType: "address";
|
|
299
|
+
readonly type: "address";
|
|
300
|
+
}, {
|
|
301
|
+
readonly name: "stalenessPeriod";
|
|
302
|
+
readonly internalType: "uint32";
|
|
303
|
+
readonly type: "uint32";
|
|
304
|
+
}];
|
|
305
|
+
}, {
|
|
306
|
+
readonly name: "priceFeedTree";
|
|
307
|
+
readonly internalType: "struct PriceFeedTreeNode[]";
|
|
308
|
+
readonly type: "tuple[]";
|
|
309
|
+
readonly components: readonly [{
|
|
310
|
+
readonly name: "baseParams";
|
|
311
|
+
readonly internalType: "struct BaseParams";
|
|
312
|
+
readonly type: "tuple";
|
|
313
|
+
readonly components: readonly [{
|
|
314
|
+
readonly name: "addr";
|
|
315
|
+
readonly internalType: "address";
|
|
316
|
+
readonly type: "address";
|
|
317
|
+
}, {
|
|
318
|
+
readonly name: "version";
|
|
319
|
+
readonly internalType: "uint256";
|
|
320
|
+
readonly type: "uint256";
|
|
321
|
+
}, {
|
|
322
|
+
readonly name: "contractType";
|
|
323
|
+
readonly internalType: "bytes32";
|
|
324
|
+
readonly type: "bytes32";
|
|
325
|
+
}, {
|
|
326
|
+
readonly name: "serializedParams";
|
|
327
|
+
readonly internalType: "bytes";
|
|
328
|
+
readonly type: "bytes";
|
|
329
|
+
}];
|
|
330
|
+
}, {
|
|
331
|
+
readonly name: "description";
|
|
332
|
+
readonly internalType: "string";
|
|
333
|
+
readonly type: "string";
|
|
334
|
+
}, {
|
|
335
|
+
readonly name: "decimals";
|
|
336
|
+
readonly internalType: "uint8";
|
|
337
|
+
readonly type: "uint8";
|
|
338
|
+
}, {
|
|
339
|
+
readonly name: "skipCheck";
|
|
340
|
+
readonly internalType: "bool";
|
|
341
|
+
readonly type: "bool";
|
|
342
|
+
}, {
|
|
343
|
+
readonly name: "updatable";
|
|
344
|
+
readonly internalType: "bool";
|
|
345
|
+
readonly type: "bool";
|
|
346
|
+
}, {
|
|
347
|
+
readonly name: "underlyingFeeds";
|
|
348
|
+
readonly internalType: "address[]";
|
|
349
|
+
readonly type: "address[]";
|
|
350
|
+
}, {
|
|
351
|
+
readonly name: "underlyingStalenessPeriods";
|
|
352
|
+
readonly internalType: "uint32[]";
|
|
353
|
+
readonly type: "uint32[]";
|
|
354
|
+
}, {
|
|
355
|
+
readonly name: "answer";
|
|
356
|
+
readonly internalType: "struct PriceFeedAnswer";
|
|
357
|
+
readonly type: "tuple";
|
|
358
|
+
readonly components: readonly [{
|
|
359
|
+
readonly name: "price";
|
|
360
|
+
readonly internalType: "int256";
|
|
361
|
+
readonly type: "int256";
|
|
362
|
+
}, {
|
|
363
|
+
readonly name: "updatedAt";
|
|
364
|
+
readonly internalType: "uint256";
|
|
365
|
+
readonly type: "uint256";
|
|
366
|
+
}, {
|
|
367
|
+
readonly name: "success";
|
|
368
|
+
readonly internalType: "bool";
|
|
369
|
+
readonly type: "bool";
|
|
370
|
+
}];
|
|
371
|
+
}];
|
|
372
|
+
}];
|
|
373
|
+
}];
|
|
374
|
+
readonly stateMutability: "view";
|
|
375
|
+
}, {
|
|
376
|
+
readonly type: "function";
|
|
377
|
+
readonly inputs: readonly [{
|
|
378
|
+
readonly name: "filter";
|
|
379
|
+
readonly internalType: "struct MarketFilter";
|
|
380
|
+
readonly type: "tuple";
|
|
381
|
+
readonly components: readonly [{
|
|
382
|
+
readonly name: "configurators";
|
|
383
|
+
readonly internalType: "address[]";
|
|
384
|
+
readonly type: "address[]";
|
|
385
|
+
}, {
|
|
386
|
+
readonly name: "pools";
|
|
387
|
+
readonly internalType: "address[]";
|
|
388
|
+
readonly type: "address[]";
|
|
389
|
+
}, {
|
|
390
|
+
readonly name: "underlying";
|
|
391
|
+
readonly internalType: "address";
|
|
392
|
+
readonly type: "address";
|
|
393
|
+
}];
|
|
394
|
+
}];
|
|
395
|
+
readonly name: "getPriceOracles";
|
|
396
|
+
readonly outputs: readonly [{
|
|
397
|
+
readonly name: "";
|
|
398
|
+
readonly internalType: "struct PriceOracleState[]";
|
|
399
|
+
readonly type: "tuple[]";
|
|
400
|
+
readonly components: readonly [{
|
|
401
|
+
readonly name: "baseParams";
|
|
402
|
+
readonly internalType: "struct BaseParams";
|
|
403
|
+
readonly type: "tuple";
|
|
404
|
+
readonly components: readonly [{
|
|
405
|
+
readonly name: "addr";
|
|
406
|
+
readonly internalType: "address";
|
|
407
|
+
readonly type: "address";
|
|
408
|
+
}, {
|
|
409
|
+
readonly name: "version";
|
|
410
|
+
readonly internalType: "uint256";
|
|
411
|
+
readonly type: "uint256";
|
|
412
|
+
}, {
|
|
413
|
+
readonly name: "contractType";
|
|
414
|
+
readonly internalType: "bytes32";
|
|
415
|
+
readonly type: "bytes32";
|
|
416
|
+
}, {
|
|
417
|
+
readonly name: "serializedParams";
|
|
418
|
+
readonly internalType: "bytes";
|
|
419
|
+
readonly type: "bytes";
|
|
420
|
+
}];
|
|
421
|
+
}, {
|
|
422
|
+
readonly name: "priceFeedMap";
|
|
423
|
+
readonly internalType: "struct PriceFeedMapEntry[]";
|
|
424
|
+
readonly type: "tuple[]";
|
|
425
|
+
readonly components: readonly [{
|
|
426
|
+
readonly name: "token";
|
|
427
|
+
readonly internalType: "address";
|
|
428
|
+
readonly type: "address";
|
|
429
|
+
}, {
|
|
430
|
+
readonly name: "reserve";
|
|
431
|
+
readonly internalType: "bool";
|
|
432
|
+
readonly type: "bool";
|
|
433
|
+
}, {
|
|
434
|
+
readonly name: "priceFeed";
|
|
435
|
+
readonly internalType: "address";
|
|
436
|
+
readonly type: "address";
|
|
437
|
+
}, {
|
|
438
|
+
readonly name: "stalenessPeriod";
|
|
439
|
+
readonly internalType: "uint32";
|
|
440
|
+
readonly type: "uint32";
|
|
441
|
+
}];
|
|
442
|
+
}, {
|
|
443
|
+
readonly name: "priceFeedTree";
|
|
444
|
+
readonly internalType: "struct PriceFeedTreeNode[]";
|
|
445
|
+
readonly type: "tuple[]";
|
|
446
|
+
readonly components: readonly [{
|
|
447
|
+
readonly name: "baseParams";
|
|
448
|
+
readonly internalType: "struct BaseParams";
|
|
449
|
+
readonly type: "tuple";
|
|
450
|
+
readonly components: readonly [{
|
|
451
|
+
readonly name: "addr";
|
|
452
|
+
readonly internalType: "address";
|
|
453
|
+
readonly type: "address";
|
|
454
|
+
}, {
|
|
455
|
+
readonly name: "version";
|
|
456
|
+
readonly internalType: "uint256";
|
|
457
|
+
readonly type: "uint256";
|
|
458
|
+
}, {
|
|
459
|
+
readonly name: "contractType";
|
|
460
|
+
readonly internalType: "bytes32";
|
|
461
|
+
readonly type: "bytes32";
|
|
462
|
+
}, {
|
|
463
|
+
readonly name: "serializedParams";
|
|
464
|
+
readonly internalType: "bytes";
|
|
465
|
+
readonly type: "bytes";
|
|
466
|
+
}];
|
|
467
|
+
}, {
|
|
468
|
+
readonly name: "description";
|
|
469
|
+
readonly internalType: "string";
|
|
470
|
+
readonly type: "string";
|
|
471
|
+
}, {
|
|
472
|
+
readonly name: "decimals";
|
|
473
|
+
readonly internalType: "uint8";
|
|
474
|
+
readonly type: "uint8";
|
|
475
|
+
}, {
|
|
476
|
+
readonly name: "skipCheck";
|
|
477
|
+
readonly internalType: "bool";
|
|
478
|
+
readonly type: "bool";
|
|
479
|
+
}, {
|
|
480
|
+
readonly name: "updatable";
|
|
481
|
+
readonly internalType: "bool";
|
|
482
|
+
readonly type: "bool";
|
|
483
|
+
}, {
|
|
484
|
+
readonly name: "underlyingFeeds";
|
|
485
|
+
readonly internalType: "address[]";
|
|
486
|
+
readonly type: "address[]";
|
|
487
|
+
}, {
|
|
488
|
+
readonly name: "underlyingStalenessPeriods";
|
|
489
|
+
readonly internalType: "uint32[]";
|
|
490
|
+
readonly type: "uint32[]";
|
|
491
|
+
}, {
|
|
492
|
+
readonly name: "answer";
|
|
493
|
+
readonly internalType: "struct PriceFeedAnswer";
|
|
494
|
+
readonly type: "tuple";
|
|
495
|
+
readonly components: readonly [{
|
|
496
|
+
readonly name: "price";
|
|
497
|
+
readonly internalType: "int256";
|
|
498
|
+
readonly type: "int256";
|
|
499
|
+
}, {
|
|
500
|
+
readonly name: "updatedAt";
|
|
501
|
+
readonly internalType: "uint256";
|
|
502
|
+
readonly type: "uint256";
|
|
503
|
+
}, {
|
|
504
|
+
readonly name: "success";
|
|
505
|
+
readonly internalType: "bool";
|
|
506
|
+
readonly type: "bool";
|
|
507
|
+
}];
|
|
508
|
+
}];
|
|
509
|
+
}];
|
|
510
|
+
}];
|
|
511
|
+
readonly stateMutability: "view";
|
|
512
|
+
}, {
|
|
513
|
+
readonly type: "function";
|
|
514
|
+
readonly inputs: readonly [{
|
|
515
|
+
readonly name: "priceFeeds";
|
|
516
|
+
readonly internalType: "address[]";
|
|
517
|
+
readonly type: "address[]";
|
|
518
|
+
}];
|
|
519
|
+
readonly name: "getUpdatablePriceFeeds";
|
|
520
|
+
readonly outputs: readonly [{
|
|
521
|
+
readonly name: "";
|
|
522
|
+
readonly internalType: "struct BaseParams[]";
|
|
523
|
+
readonly type: "tuple[]";
|
|
524
|
+
readonly components: readonly [{
|
|
525
|
+
readonly name: "addr";
|
|
526
|
+
readonly internalType: "address";
|
|
527
|
+
readonly type: "address";
|
|
528
|
+
}, {
|
|
529
|
+
readonly name: "version";
|
|
530
|
+
readonly internalType: "uint256";
|
|
531
|
+
readonly type: "uint256";
|
|
532
|
+
}, {
|
|
533
|
+
readonly name: "contractType";
|
|
534
|
+
readonly internalType: "bytes32";
|
|
535
|
+
readonly type: "bytes32";
|
|
536
|
+
}, {
|
|
537
|
+
readonly name: "serializedParams";
|
|
538
|
+
readonly internalType: "bytes";
|
|
539
|
+
readonly type: "bytes";
|
|
540
|
+
}];
|
|
541
|
+
}];
|
|
542
|
+
readonly stateMutability: "view";
|
|
543
|
+
}, {
|
|
544
|
+
readonly type: "function";
|
|
545
|
+
readonly inputs: readonly [{
|
|
546
|
+
readonly name: "filter";
|
|
547
|
+
readonly internalType: "struct MarketFilter";
|
|
548
|
+
readonly type: "tuple";
|
|
549
|
+
readonly components: readonly [{
|
|
550
|
+
readonly name: "configurators";
|
|
551
|
+
readonly internalType: "address[]";
|
|
552
|
+
readonly type: "address[]";
|
|
553
|
+
}, {
|
|
554
|
+
readonly name: "pools";
|
|
555
|
+
readonly internalType: "address[]";
|
|
556
|
+
readonly type: "address[]";
|
|
557
|
+
}, {
|
|
558
|
+
readonly name: "underlying";
|
|
559
|
+
readonly internalType: "address";
|
|
560
|
+
readonly type: "address";
|
|
561
|
+
}];
|
|
562
|
+
}];
|
|
563
|
+
readonly name: "getUpdatablePriceFeeds";
|
|
564
|
+
readonly outputs: readonly [{
|
|
565
|
+
readonly name: "";
|
|
566
|
+
readonly internalType: "struct BaseParams[]";
|
|
567
|
+
readonly type: "tuple[]";
|
|
568
|
+
readonly components: readonly [{
|
|
569
|
+
readonly name: "addr";
|
|
570
|
+
readonly internalType: "address";
|
|
571
|
+
readonly type: "address";
|
|
572
|
+
}, {
|
|
573
|
+
readonly name: "version";
|
|
574
|
+
readonly internalType: "uint256";
|
|
575
|
+
readonly type: "uint256";
|
|
576
|
+
}, {
|
|
577
|
+
readonly name: "contractType";
|
|
578
|
+
readonly internalType: "bytes32";
|
|
579
|
+
readonly type: "bytes32";
|
|
580
|
+
}, {
|
|
581
|
+
readonly name: "serializedParams";
|
|
582
|
+
readonly internalType: "bytes";
|
|
583
|
+
readonly type: "bytes";
|
|
584
|
+
}];
|
|
585
|
+
}];
|
|
586
|
+
readonly stateMutability: "view";
|
|
587
|
+
}, {
|
|
588
|
+
readonly type: "function";
|
|
589
|
+
readonly inputs: readonly [{
|
|
590
|
+
readonly name: "filter";
|
|
591
|
+
readonly internalType: "struct MarketFilter";
|
|
592
|
+
readonly type: "tuple";
|
|
593
|
+
readonly components: readonly [{
|
|
594
|
+
readonly name: "configurators";
|
|
595
|
+
readonly internalType: "address[]";
|
|
596
|
+
readonly type: "address[]";
|
|
597
|
+
}, {
|
|
598
|
+
readonly name: "pools";
|
|
599
|
+
readonly internalType: "address[]";
|
|
600
|
+
readonly type: "address[]";
|
|
601
|
+
}, {
|
|
602
|
+
readonly name: "underlying";
|
|
603
|
+
readonly internalType: "address";
|
|
604
|
+
readonly type: "address";
|
|
605
|
+
}];
|
|
606
|
+
}];
|
|
607
|
+
readonly name: "loadPriceFeedTree";
|
|
608
|
+
readonly outputs: readonly [{
|
|
609
|
+
readonly name: "";
|
|
610
|
+
readonly internalType: "struct PriceFeedTreeNode[]";
|
|
611
|
+
readonly type: "tuple[]";
|
|
612
|
+
readonly components: readonly [{
|
|
613
|
+
readonly name: "baseParams";
|
|
614
|
+
readonly internalType: "struct BaseParams";
|
|
615
|
+
readonly type: "tuple";
|
|
616
|
+
readonly components: readonly [{
|
|
617
|
+
readonly name: "addr";
|
|
618
|
+
readonly internalType: "address";
|
|
619
|
+
readonly type: "address";
|
|
620
|
+
}, {
|
|
621
|
+
readonly name: "version";
|
|
622
|
+
readonly internalType: "uint256";
|
|
623
|
+
readonly type: "uint256";
|
|
624
|
+
}, {
|
|
625
|
+
readonly name: "contractType";
|
|
626
|
+
readonly internalType: "bytes32";
|
|
627
|
+
readonly type: "bytes32";
|
|
628
|
+
}, {
|
|
629
|
+
readonly name: "serializedParams";
|
|
630
|
+
readonly internalType: "bytes";
|
|
631
|
+
readonly type: "bytes";
|
|
632
|
+
}];
|
|
633
|
+
}, {
|
|
634
|
+
readonly name: "description";
|
|
635
|
+
readonly internalType: "string";
|
|
636
|
+
readonly type: "string";
|
|
637
|
+
}, {
|
|
638
|
+
readonly name: "decimals";
|
|
639
|
+
readonly internalType: "uint8";
|
|
640
|
+
readonly type: "uint8";
|
|
641
|
+
}, {
|
|
642
|
+
readonly name: "skipCheck";
|
|
643
|
+
readonly internalType: "bool";
|
|
644
|
+
readonly type: "bool";
|
|
645
|
+
}, {
|
|
646
|
+
readonly name: "updatable";
|
|
647
|
+
readonly internalType: "bool";
|
|
648
|
+
readonly type: "bool";
|
|
649
|
+
}, {
|
|
650
|
+
readonly name: "underlyingFeeds";
|
|
651
|
+
readonly internalType: "address[]";
|
|
652
|
+
readonly type: "address[]";
|
|
653
|
+
}, {
|
|
654
|
+
readonly name: "underlyingStalenessPeriods";
|
|
655
|
+
readonly internalType: "uint32[]";
|
|
656
|
+
readonly type: "uint32[]";
|
|
657
|
+
}, {
|
|
658
|
+
readonly name: "answer";
|
|
659
|
+
readonly internalType: "struct PriceFeedAnswer";
|
|
660
|
+
readonly type: "tuple";
|
|
661
|
+
readonly components: readonly [{
|
|
662
|
+
readonly name: "price";
|
|
663
|
+
readonly internalType: "int256";
|
|
664
|
+
readonly type: "int256";
|
|
665
|
+
}, {
|
|
666
|
+
readonly name: "updatedAt";
|
|
667
|
+
readonly internalType: "uint256";
|
|
668
|
+
readonly type: "uint256";
|
|
669
|
+
}, {
|
|
670
|
+
readonly name: "success";
|
|
671
|
+
readonly internalType: "bool";
|
|
672
|
+
readonly type: "bool";
|
|
673
|
+
}];
|
|
674
|
+
}];
|
|
675
|
+
}];
|
|
676
|
+
readonly stateMutability: "view";
|
|
677
|
+
}, {
|
|
678
|
+
readonly type: "function";
|
|
679
|
+
readonly inputs: readonly [{
|
|
680
|
+
readonly name: "priceFeeds";
|
|
681
|
+
readonly internalType: "address[]";
|
|
682
|
+
readonly type: "address[]";
|
|
683
|
+
}];
|
|
684
|
+
readonly name: "loadPriceFeedTree";
|
|
685
|
+
readonly outputs: readonly [{
|
|
686
|
+
readonly name: "";
|
|
687
|
+
readonly internalType: "struct PriceFeedTreeNode[]";
|
|
688
|
+
readonly type: "tuple[]";
|
|
689
|
+
readonly components: readonly [{
|
|
690
|
+
readonly name: "baseParams";
|
|
691
|
+
readonly internalType: "struct BaseParams";
|
|
692
|
+
readonly type: "tuple";
|
|
693
|
+
readonly components: readonly [{
|
|
694
|
+
readonly name: "addr";
|
|
695
|
+
readonly internalType: "address";
|
|
696
|
+
readonly type: "address";
|
|
697
|
+
}, {
|
|
698
|
+
readonly name: "version";
|
|
699
|
+
readonly internalType: "uint256";
|
|
700
|
+
readonly type: "uint256";
|
|
701
|
+
}, {
|
|
702
|
+
readonly name: "contractType";
|
|
703
|
+
readonly internalType: "bytes32";
|
|
704
|
+
readonly type: "bytes32";
|
|
705
|
+
}, {
|
|
706
|
+
readonly name: "serializedParams";
|
|
707
|
+
readonly internalType: "bytes";
|
|
708
|
+
readonly type: "bytes";
|
|
709
|
+
}];
|
|
710
|
+
}, {
|
|
711
|
+
readonly name: "description";
|
|
712
|
+
readonly internalType: "string";
|
|
713
|
+
readonly type: "string";
|
|
714
|
+
}, {
|
|
715
|
+
readonly name: "decimals";
|
|
716
|
+
readonly internalType: "uint8";
|
|
717
|
+
readonly type: "uint8";
|
|
718
|
+
}, {
|
|
719
|
+
readonly name: "skipCheck";
|
|
720
|
+
readonly internalType: "bool";
|
|
721
|
+
readonly type: "bool";
|
|
722
|
+
}, {
|
|
723
|
+
readonly name: "updatable";
|
|
724
|
+
readonly internalType: "bool";
|
|
725
|
+
readonly type: "bool";
|
|
726
|
+
}, {
|
|
727
|
+
readonly name: "underlyingFeeds";
|
|
728
|
+
readonly internalType: "address[]";
|
|
729
|
+
readonly type: "address[]";
|
|
730
|
+
}, {
|
|
731
|
+
readonly name: "underlyingStalenessPeriods";
|
|
732
|
+
readonly internalType: "uint32[]";
|
|
733
|
+
readonly type: "uint32[]";
|
|
734
|
+
}, {
|
|
735
|
+
readonly name: "answer";
|
|
736
|
+
readonly internalType: "struct PriceFeedAnswer";
|
|
737
|
+
readonly type: "tuple";
|
|
738
|
+
readonly components: readonly [{
|
|
739
|
+
readonly name: "price";
|
|
740
|
+
readonly internalType: "int256";
|
|
741
|
+
readonly type: "int256";
|
|
742
|
+
}, {
|
|
743
|
+
readonly name: "updatedAt";
|
|
744
|
+
readonly internalType: "uint256";
|
|
745
|
+
readonly type: "uint256";
|
|
746
|
+
}, {
|
|
747
|
+
readonly name: "success";
|
|
748
|
+
readonly internalType: "bool";
|
|
749
|
+
readonly type: "bool";
|
|
750
|
+
}];
|
|
751
|
+
}];
|
|
752
|
+
}];
|
|
753
|
+
readonly stateMutability: "view";
|
|
754
|
+
}, {
|
|
755
|
+
readonly type: "function";
|
|
756
|
+
readonly inputs: readonly [];
|
|
757
|
+
readonly name: "version";
|
|
758
|
+
readonly outputs: readonly [{
|
|
759
|
+
readonly name: "";
|
|
760
|
+
readonly internalType: "uint256";
|
|
761
|
+
readonly type: "uint256";
|
|
762
|
+
}];
|
|
763
|
+
readonly stateMutability: "view";
|
|
764
|
+
}];
|
|
765
|
+
address: `0x${string}`;
|
|
766
|
+
functionName: string;
|
|
767
|
+
args: any[];
|
|
768
|
+
};
|
|
769
|
+
onResult: (resp: ContractFunctionReturnType<typeof iPriceFeedCompressorAbi, "view", "getPriceOracleState">) => void;
|
|
770
|
+
};
|
|
111
771
|
/**
|
|
112
772
|
* Helper method to find "attachment point" of price feed (makes sense for updatable price feeds only) -
|
|
113
773
|
* returns token (in v3.0 can be ticker) and main/reserve flag
|
|
114
774
|
*
|
|
115
|
-
* @deprecated Should be gone after v310 migration
|
|
116
|
-
*
|
|
117
775
|
* @param priceFeed
|
|
118
776
|
* @returns
|
|
119
777
|
*/
|
|
120
778
|
findTokenForPriceFeed(priceFeed: Address): [token: Address | undefined, reserve: boolean];
|
|
121
|
-
/**
|
|
122
|
-
* Returns list of addresses that should be watched for events to sync state
|
|
123
|
-
*/
|
|
124
779
|
get watchAddresses(): Set<Address>;
|
|
125
780
|
stateHuman(raw?: boolean): PriceOracleStateHuman;
|
|
781
|
+
protected get priceFeedTree(): readonly PriceFeedTreeNode[];
|
|
126
782
|
}
|