@gearbox-protocol/sdk 1.16.10 → 1.16.12
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/lib/oracles/oracles.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { BigNumber } from "ethers";
|
|
1
2
|
import { NetworkType } from "../core/constants";
|
|
2
3
|
import { SupportedToken } from "../tokens/token";
|
|
3
4
|
export interface PriceFeed {
|
|
@@ -11,7 +12,9 @@ export declare enum OracleType {
|
|
|
11
12
|
YEARN_CURVE_LP_TOKEN_ORACLE = 3,
|
|
12
13
|
ZERO_ORACLE = 4,
|
|
13
14
|
LIKE_CURVE_LP_TOKEN_ORACLE = 5,
|
|
14
|
-
WSTETH_ORACLE = 6
|
|
15
|
+
WSTETH_ORACLE = 6,
|
|
16
|
+
BOUNDED_ORACLE = 7,
|
|
17
|
+
COMPOSITE_ORACLE = 8
|
|
15
18
|
}
|
|
16
19
|
export declare type PriceFeedData = {
|
|
17
20
|
type: OracleType.CHAINLINK_ORACLE;
|
|
@@ -33,6 +36,14 @@ export declare type PriceFeedData = {
|
|
|
33
36
|
} | {
|
|
34
37
|
type: OracleType.WSTETH_ORACLE;
|
|
35
38
|
token: SupportedToken;
|
|
39
|
+
} | {
|
|
40
|
+
type: OracleType.BOUNDED_ORACLE;
|
|
41
|
+
targetPriceFeed: Record<NetworkType, string>;
|
|
42
|
+
upperBound: BigNumber;
|
|
43
|
+
} | {
|
|
44
|
+
type: OracleType.COMPOSITE_ORACLE;
|
|
45
|
+
ethPriceFeed: Record<NetworkType, string>;
|
|
46
|
+
usdPriceFeed: Record<NetworkType, string>;
|
|
36
47
|
};
|
|
37
48
|
export interface TokenPriceFeedData {
|
|
38
49
|
priceFeedETH?: PriceFeedData;
|
package/lib/oracles/oracles.js
CHANGED
|
@@ -10,4 +10,6 @@ var OracleType;
|
|
|
10
10
|
OracleType[OracleType["ZERO_ORACLE"] = 4] = "ZERO_ORACLE";
|
|
11
11
|
OracleType[OracleType["LIKE_CURVE_LP_TOKEN_ORACLE"] = 5] = "LIKE_CURVE_LP_TOKEN_ORACLE";
|
|
12
12
|
OracleType[OracleType["WSTETH_ORACLE"] = 6] = "WSTETH_ORACLE";
|
|
13
|
+
OracleType[OracleType["BOUNDED_ORACLE"] = 7] = "BOUNDED_ORACLE";
|
|
14
|
+
OracleType[OracleType["COMPOSITE_ORACLE"] = 8] = "COMPOSITE_ORACLE";
|
|
13
15
|
})(OracleType = exports.OracleType || (exports.OracleType = {}));
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.priceFeedsByNetwork = exports.GAS_PRICE_FEED = void 0;
|
|
4
|
+
var ethers_1 = require("ethers");
|
|
4
5
|
var oracles_1 = require("./oracles");
|
|
5
6
|
exports.GAS_PRICE_FEED = "0x169e633a2d1e6c10dd91238ba11c4a708dfef37c";
|
|
6
7
|
exports.priceFeedsByNetwork = {
|
|
@@ -252,15 +253,19 @@ exports.priceFeedsByNetwork = {
|
|
|
252
253
|
type: oracles_1.OracleType.CHAINLINK_ORACLE,
|
|
253
254
|
address: {
|
|
254
255
|
Mainnet: "0x86392dC19c0b719886221c78AB11eb8Cf5c52812",
|
|
255
|
-
Goerli: "
|
|
256
|
+
Goerli: "",
|
|
256
257
|
},
|
|
257
258
|
},
|
|
258
259
|
priceFeedUSD: {
|
|
259
|
-
type: oracles_1.OracleType.
|
|
260
|
-
|
|
260
|
+
type: oracles_1.OracleType.COMPOSITE_ORACLE,
|
|
261
|
+
usdPriceFeed: {
|
|
261
262
|
Mainnet: "0xCfE54B5cD566aB89272946F602D76Ea879CAb4a8",
|
|
262
263
|
Goerli: "0xf4f054C2E3269730c781dc7e1Fe2a3ca745784bd",
|
|
263
264
|
},
|
|
265
|
+
ethPriceFeed: {
|
|
266
|
+
Mainnet: "0x86392dC19c0b719886221c78AB11eb8Cf5c52812",
|
|
267
|
+
Goerli: "",
|
|
268
|
+
},
|
|
264
269
|
},
|
|
265
270
|
},
|
|
266
271
|
wstETH: {
|
|
@@ -289,11 +294,12 @@ exports.priceFeedsByNetwork = {
|
|
|
289
294
|
},
|
|
290
295
|
LUSD: {
|
|
291
296
|
priceFeedUSD: {
|
|
292
|
-
type: oracles_1.OracleType.
|
|
293
|
-
|
|
297
|
+
type: oracles_1.OracleType.BOUNDED_ORACLE,
|
|
298
|
+
targetPriceFeed: {
|
|
294
299
|
Mainnet: "0x3D7aE7E594f2f2091Ad8798313450130d0Aba3a0",
|
|
295
300
|
Goerli: "0xd6852347062aB885B6Fb9F7220BedCc5A39CE862",
|
|
296
301
|
},
|
|
302
|
+
upperBound: ethers_1.BigNumber.from(1e8).mul(11).div(10),
|
|
297
303
|
},
|
|
298
304
|
},
|
|
299
305
|
sUSD: {
|
|
@@ -6,6 +6,18 @@ export declare class CreditRewards {
|
|
|
6
6
|
static computeReward(creditManager: string, address: string, provider: providers.Provider, toBlock?: number): Promise<BigNumber>;
|
|
7
7
|
static computeAllRewards(creditManager: string, provider: providers.Provider, toBlock?: number): Promise<Array<Reward>>;
|
|
8
8
|
static parseEvents(events: Array<TypedEvent>, rewardPerBlock: RangedValue, toBlock: number): Array<Reward>;
|
|
9
|
+
static parseCMEvents(events: Array<TypedEvent>): {
|
|
10
|
+
borrowedRange: Record<string, RangedValue>;
|
|
11
|
+
totalBorrowedRange: RangedValue;
|
|
12
|
+
borrowed: Record<string, BigNumber>;
|
|
13
|
+
totalBorrowed: BigNumber;
|
|
14
|
+
};
|
|
15
|
+
static computeCMStats(creditManager: string, provider: providers.Provider, toBlock?: number): Promise<{
|
|
16
|
+
borrowedRange: Record<string, RangedValue>;
|
|
17
|
+
totalBorrowedRange: RangedValue;
|
|
18
|
+
borrowed: Record<string, BigNumber>;
|
|
19
|
+
totalBorrowed: BigNumber;
|
|
20
|
+
}>;
|
|
9
21
|
static computeRewardInt(toBlock: number, balance: RangedValue, totalSupply: RangedValue, rewardPerBlock: RangedValue): BigNumber;
|
|
10
22
|
protected static query(creditFacade: string, provider: providers.Provider, toBlock: number): Promise<Array<TypedEvent>>;
|
|
11
23
|
protected static getRewardsRange(creditManager: string): RangedValue;
|
|
@@ -113,6 +113,13 @@ var CreditRewards = /** @class */ (function () {
|
|
|
113
113
|
});
|
|
114
114
|
};
|
|
115
115
|
CreditRewards.parseEvents = function (events, rewardPerBlock, toBlock) {
|
|
116
|
+
var _a = CreditRewards.parseCMEvents(events), borrowedRange = _a.borrowedRange, totalBorrowedRange = _a.totalBorrowedRange, borrowed = _a.borrowed;
|
|
117
|
+
return Object.keys(borrowed).map(function (address) { return ({
|
|
118
|
+
address: address.toLowerCase(),
|
|
119
|
+
amount: CreditRewards.computeRewardInt(toBlock, borrowedRange[address], totalBorrowedRange, rewardPerBlock),
|
|
120
|
+
}); });
|
|
121
|
+
};
|
|
122
|
+
CreditRewards.parseCMEvents = function (events) {
|
|
116
123
|
var borrowedRange = {};
|
|
117
124
|
var totalBorrowedRange = new range_1.RangedValue();
|
|
118
125
|
var borrowed = {};
|
|
@@ -173,10 +180,53 @@ var CreditRewards = /** @class */ (function () {
|
|
|
173
180
|
}
|
|
174
181
|
}
|
|
175
182
|
});
|
|
176
|
-
return
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
183
|
+
return {
|
|
184
|
+
borrowedRange: borrowedRange,
|
|
185
|
+
totalBorrowedRange: totalBorrowedRange,
|
|
186
|
+
borrowed: borrowed,
|
|
187
|
+
totalBorrowed: totalBorrowed,
|
|
188
|
+
};
|
|
189
|
+
};
|
|
190
|
+
CreditRewards.computeCMStats = function (creditManager, provider, toBlock) {
|
|
191
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
192
|
+
var toBlockQuery, _a, cm, cc, _b, _c, creditFacadesEvents, events, _i, creditFacadesEvents_2, cfe, query;
|
|
193
|
+
return __generator(this, function (_d) {
|
|
194
|
+
switch (_d.label) {
|
|
195
|
+
case 0:
|
|
196
|
+
_a = toBlock;
|
|
197
|
+
if (_a) return [3 /*break*/, 2];
|
|
198
|
+
return [4 /*yield*/, provider.getBlockNumber()];
|
|
199
|
+
case 1:
|
|
200
|
+
_a = (_d.sent());
|
|
201
|
+
_d.label = 2;
|
|
202
|
+
case 2:
|
|
203
|
+
toBlockQuery = _a;
|
|
204
|
+
cm = types_1.ICreditManagerV2__factory.connect(creditManager, provider);
|
|
205
|
+
_c = (_b = types_1.ICreditConfigurator__factory).connect;
|
|
206
|
+
return [4 /*yield*/, cm.creditConfigurator()];
|
|
207
|
+
case 3:
|
|
208
|
+
cc = _c.apply(_b, [_d.sent(), provider]);
|
|
209
|
+
return [4 /*yield*/, cc.queryFilter(cc.filters.CreditFacadeUpgraded())];
|
|
210
|
+
case 4:
|
|
211
|
+
creditFacadesEvents = _d.sent();
|
|
212
|
+
events = [];
|
|
213
|
+
_i = 0, creditFacadesEvents_2 = creditFacadesEvents;
|
|
214
|
+
_d.label = 5;
|
|
215
|
+
case 5:
|
|
216
|
+
if (!(_i < creditFacadesEvents_2.length)) return [3 /*break*/, 8];
|
|
217
|
+
cfe = creditFacadesEvents_2[_i];
|
|
218
|
+
return [4 /*yield*/, CreditRewards.query(cfe.args.newCreditFacade, provider, toBlockQuery)];
|
|
219
|
+
case 6:
|
|
220
|
+
query = _d.sent();
|
|
221
|
+
events.push.apply(events, query);
|
|
222
|
+
_d.label = 7;
|
|
223
|
+
case 7:
|
|
224
|
+
_i++;
|
|
225
|
+
return [3 /*break*/, 5];
|
|
226
|
+
case 8: return [2 /*return*/, CreditRewards.parseCMEvents(events)];
|
|
227
|
+
}
|
|
228
|
+
});
|
|
229
|
+
});
|
|
180
230
|
};
|
|
181
231
|
CreditRewards.computeRewardInt = function (toBlock, balance, totalSupply, rewardPerBlock) {
|
|
182
232
|
var keys = Array.from(new Set(__spreadArray(__spreadArray(__spreadArray(__spreadArray([], balance.keys, true), totalSupply.keys, true), rewardPerBlock.keys, true), [
|