@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.
@@ -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;
@@ -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: "0x0C539D95F202eF8b3981521782ABd3a12c5C4F95",
256
+ Goerli: "",
256
257
  },
257
258
  },
258
259
  priceFeedUSD: {
259
- type: oracles_1.OracleType.CHAINLINK_ORACLE,
260
- address: {
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.CHAINLINK_ORACLE,
293
- address: {
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 Object.keys(borrowed).map(function (address) { return ({
177
- address: address.toLowerCase(),
178
- amount: CreditRewards.computeRewardInt(toBlock, borrowedRange[address], totalBorrowedRange, rewardPerBlock),
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), [
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gearbox-protocol/sdk",
3
- "version": "1.16.10",
3
+ "version": "1.16.12",
4
4
  "description": "Gearbox SDK",
5
5
  "main": "./lib/index.js",
6
6
  "types": "./lib/index.d.ts",