@gearbox-protocol/sdk 1.17.1 → 1.17.3

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.
@@ -56,7 +56,6 @@ function getConvexAPY(_a) {
56
56
  var pool = _a.pool, provider = _a.provider, networkType = _a.networkType, getTokenPrice = _a.getTokenPrice, curveAPY = _a.curveAPY;
57
57
  return __awaiter(this, void 0, void 0, function () {
58
58
  var tokenList, contractsList, poolParams, stakedTokenParams, underlying, basePoolAddress, crvParams, swapPoolAddress, cvxAddress, extraPoolAddresses, _b, basePoolRate, basePoolSupply, vPrice, cvxSupply, extra, cvxPrice, crvPrice, crvPerSecond, virtualSupply, crvPerUnderlying, crvPerYear, cvxPerYear, crvAPY, cvxAPY, extraAPRs, extraAPYTotal, baseApyWAD;
59
- var _this = this;
60
59
  return __generator(this, function (_c) {
61
60
  switch (_c.label) {
62
61
  case 0:
@@ -88,20 +87,15 @@ function getConvexAPY(_a) {
88
87
  cvxPerYear = getCVXMintAmount(crvPerYear, cvxSupply);
89
88
  crvAPY = crvPerYear.mul(crvPrice).div(constants_1.PRICE_DECIMALS);
90
89
  cvxAPY = cvxPerYear.mul(cvxPrice).div(constants_1.PRICE_DECIMALS);
91
- return [4 /*yield*/, Promise.all(extraPoolAddresses.map(function (_, index) { return __awaiter(_this, void 0, void 0, function () {
92
- var extraRewardSymbol, extraPoolRate, perUnderlying, perYear, extraPrice, extraAPY;
93
- return __generator(this, function (_a) {
94
- extraRewardSymbol = poolParams.extraRewards[index].rewardToken;
95
- extraPoolRate = extra[index];
96
- perUnderlying = extraPoolRate.mul(constants_1.WAD).div(virtualSupply);
97
- perYear = perUnderlying.mul(constants_1.SECONDS_PER_YEAR);
98
- extraPrice = getTokenPrice(tokenList[extraRewardSymbol]);
99
- extraAPY = perYear.mul(extraPrice).div(constants_1.PRICE_DECIMALS);
100
- return [2 /*return*/, extraAPY];
101
- });
102
- }); }))];
103
- case 2:
104
- extraAPRs = _c.sent();
90
+ extraAPRs = extraPoolAddresses.map(function (_, index) {
91
+ var extraRewardSymbol = poolParams.extraRewards[index].rewardToken;
92
+ var extraPoolRate = extra[index];
93
+ var perUnderlying = extraPoolRate.mul(constants_1.WAD).div(virtualSupply);
94
+ var perYear = perUnderlying.mul(constants_1.SECONDS_PER_YEAR);
95
+ var extraPrice = getTokenPrice(tokenList[extraRewardSymbol]);
96
+ var extraAPY = perYear.mul(extraPrice).div(constants_1.PRICE_DECIMALS);
97
+ return extraAPY;
98
+ });
105
99
  extraAPYTotal = extraAPRs.reduce(function (acc, apy) { return acc.add(apy); }, ethers_1.BigNumber.from(0));
106
100
  baseApyWAD = curveAPY[underlying];
107
101
  return [2 /*return*/, baseApyWAD.add(crvAPY).add(cvxAPY).add(extraAPYTotal)];
@@ -2,7 +2,7 @@ import { BigNumber } from "ethers";
2
2
  import { SupportedContract } from "../contracts/contracts";
3
3
  import { EVMTx, EVMTxProps } from "./eventOrTx";
4
4
  export interface TxSerialized {
5
- type: "TxAddLiquidity" | "TxRemoveLiquidity" | "TxSwap" | "TxAddCollateral" | "TxIncreaseBorrowAmount" | "TxOpenAccount" | "TxRepayAccount" | "TxCloseAccount" | "TxApprove" | "TxOpenMultitokenAccount" | "TxClaimReward" | "TxClaimNFT";
5
+ type: "TxAddLiquidity" | "TxRemoveLiquidity" | "TxSwap" | "TxAddCollateral" | "TxIncreaseBorrowAmount" | "TxOpenAccount" | "TxRepayAccount" | "TxCloseAccount" | "TxApprove" | "TxOpenMultitokenAccount" | "TxClaimReward" | "TxClaimNFT" | "TxClaimGearRewards";
6
6
  content: string;
7
7
  }
8
8
  export declare class TxSerializer {
@@ -127,6 +127,17 @@ export declare class TxClaimNFT extends EVMTx {
127
127
  toString(): string;
128
128
  serialize(): TxSerialized;
129
129
  }
130
+ declare type TxClaimGearRewardsProps = EVMTxProps & {
131
+ token: string;
132
+ amount: BigNumber;
133
+ };
134
+ export declare class TxClaimGearRewards extends EVMTx {
135
+ token: string;
136
+ amount: BigNumber;
137
+ constructor(opts: TxClaimGearRewardsProps);
138
+ toString(): string;
139
+ serialize(): TxSerialized;
140
+ }
130
141
  interface RepayAccountProps extends EVMTxProps {
131
142
  creditManager: string;
132
143
  }
@@ -15,7 +15,7 @@ var __extends = (this && this.__extends) || (function () {
15
15
  };
16
16
  })();
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
- exports.TxApprove = exports.TxCloseAccount = exports.TxRepayAccount = exports.TxClaimNFT = exports.TxClaimReward = exports.TxOpenMultitokenAccount = exports.TxOpenAccount = exports.TxIncreaseBorrowAmount = exports.TxAddCollateral = exports.TXSwap = exports.TxRemoveLiquidity = exports.TxAddLiquidity = exports.TxSerializer = void 0;
18
+ exports.TxApprove = exports.TxCloseAccount = exports.TxRepayAccount = exports.TxClaimGearRewards = exports.TxClaimNFT = exports.TxClaimReward = exports.TxOpenMultitokenAccount = exports.TxOpenAccount = exports.TxIncreaseBorrowAmount = exports.TxAddCollateral = exports.TXSwap = exports.TxRemoveLiquidity = exports.TxAddLiquidity = exports.TxSerializer = void 0;
19
19
  var ethers_1 = require("ethers");
20
20
  var contracts_1 = require("../contracts/contracts");
21
21
  var contractsRegister_1 = require("../contracts/contractsRegister");
@@ -57,6 +57,8 @@ var TxSerializer = /** @class */ (function () {
57
57
  return new TxClaimReward(params);
58
58
  case "TxClaimNFT":
59
59
  return new TxClaimNFT(params);
60
+ case "TxClaimGearRewards":
61
+ return new TxClaimGearRewards(params);
60
62
  default:
61
63
  throw new Error("Unknown transaction for parsing: ".concat(e.type));
62
64
  }
@@ -323,6 +325,32 @@ var TxClaimNFT = /** @class */ (function (_super) {
323
325
  return TxClaimNFT;
324
326
  }(eventOrTx_1.EVMTx));
325
327
  exports.TxClaimNFT = TxClaimNFT;
328
+ var TxClaimGearRewards = /** @class */ (function (_super) {
329
+ __extends(TxClaimGearRewards, _super);
330
+ function TxClaimGearRewards(opts) {
331
+ var _this = _super.call(this, {
332
+ block: opts.block,
333
+ txHash: opts.txHash,
334
+ txStatus: opts.txStatus,
335
+ timestamp: opts.timestamp,
336
+ }) || this;
337
+ _this.amount = opts.amount;
338
+ _this.token = opts.token;
339
+ return _this;
340
+ }
341
+ TxClaimGearRewards.prototype.toString = function () {
342
+ var _a = (0, token_1.extractTokenData)(this.token), symbol = _a[0], decimals = _a[1];
343
+ return "GEAR Rewards claimed: ".concat((0, formatter_1.formatBN)(this.amount, decimals || 18), " ").concat(symbol, " ");
344
+ };
345
+ TxClaimGearRewards.prototype.serialize = function () {
346
+ return {
347
+ type: "TxClaimGearRewards",
348
+ content: JSON.stringify(this),
349
+ };
350
+ };
351
+ return TxClaimGearRewards;
352
+ }(eventOrTx_1.EVMTx));
353
+ exports.TxClaimGearRewards = TxClaimGearRewards;
326
354
  var TxRepayAccount = /** @class */ (function (_super) {
327
355
  __extends(TxRepayAccount, _super);
328
356
  function TxRepayAccount(opts) {
@@ -4,7 +4,8 @@ import { TradeAction } from "../pathfinder/tradeTypes";
4
4
  import { PartialRecord } from "../utils/types";
5
5
  import type { SupportedToken, TokenBase } from "./token";
6
6
  import { TokenType } from "./tokenType";
7
- export declare type CurveLPToken = "3Crv" | "steCRV" | "FRAX3CRV" | "LUSD3CRV" | "crvPlain3andSUSD" | "gusd3CRV" | "crvFRAX";
7
+ export declare type CurveMetaTokens = "FRAX3CRV" | "LUSD3CRV" | "gusd3CRV";
8
+ export declare type CurveLPToken = "3Crv" | "steCRV" | "crvPlain3andSUSD" | "crvFRAX" | CurveMetaTokens;
8
9
  export declare type CurveLPTokenData = {
9
10
  symbol: CurveLPToken;
10
11
  type: TokenType.CURVE_LP_TOKEN;
@@ -21,5 +22,7 @@ export declare type MetaCurveLPTokenData = {
21
22
  wrapper?: CurvePoolContract;
22
23
  } & TokenBase;
23
24
  export declare const Curve3CrvUnderlyingTokenIndex: PartialRecord<SupportedToken, BigNumber>;
25
+ export declare const curveMetaTokens: Record<CurveMetaTokens, MetaCurveLPTokenData>;
24
26
  export declare const curveTokens: Record<CurveLPToken, CurveLPTokenData | MetaCurveLPTokenData>;
25
27
  export declare const isCurveLPToken: (t: unknown) => t is CurveLPToken;
28
+ export declare const isCurveMetaToken: (t: unknown) => t is CurveMetaTokens;
@@ -1,6 +1,17 @@
1
1
  "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
2
13
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isCurveLPToken = exports.curveTokens = exports.Curve3CrvUnderlyingTokenIndex = void 0;
14
+ exports.isCurveMetaToken = exports.isCurveLPToken = exports.curveTokens = exports.curveMetaTokens = exports.Curve3CrvUnderlyingTokenIndex = void 0;
4
15
  var ethers_1 = require("ethers");
5
16
  var tradeTypes_1 = require("../pathfinder/tradeTypes");
6
17
  var tokenType_1 = require("./tokenType");
@@ -9,7 +20,69 @@ exports.Curve3CrvUnderlyingTokenIndex = {
9
20
  USDC: ethers_1.BigNumber.from(1),
10
21
  USDT: ethers_1.BigNumber.from(2),
11
22
  };
12
- exports.curveTokens = {
23
+ exports.curveMetaTokens = {
24
+ // META CURVE LP TOKENS
25
+ FRAX3CRV: {
26
+ name: "Curve FRAX3CRV-f",
27
+ symbol: "FRAX3CRV",
28
+ type: tokenType_1.TokenType.CURVE_LP_TOKEN,
29
+ pool: "CURVE_FRAX_POOL",
30
+ lpActions: [
31
+ {
32
+ type: tradeTypes_1.TradeType.CurveWithdrawLP,
33
+ contract: "CURVE_FRAX_POOL",
34
+ tokenOut: ["FRAX", "3Crv"],
35
+ },
36
+ {
37
+ type: tradeTypes_1.TradeType.ConvexDepositLP,
38
+ contract: "CONVEX_BOOSTER",
39
+ tokenOut: "cvxFRAX3CRV",
40
+ },
41
+ {
42
+ type: tradeTypes_1.TradeType.ConvexDepositLPAndStake,
43
+ contract: "CONVEX_BOOSTER",
44
+ tokenOut: "stkcvxFRAX3CRV",
45
+ },
46
+ ],
47
+ },
48
+ LUSD3CRV: {
49
+ name: "Curve LUSD3CRV-f",
50
+ symbol: "LUSD3CRV",
51
+ type: tokenType_1.TokenType.CURVE_LP_TOKEN,
52
+ pool: "CURVE_LUSD_POOL",
53
+ lpActions: [
54
+ {
55
+ type: tradeTypes_1.TradeType.CurveWithdrawLP,
56
+ contract: "CURVE_LUSD_POOL",
57
+ tokenOut: ["LUSD", "3Crv"],
58
+ },
59
+ ],
60
+ },
61
+ gusd3CRV: {
62
+ name: "Curve gusd3CRV",
63
+ symbol: "gusd3CRV",
64
+ type: tokenType_1.TokenType.CURVE_LP_TOKEN,
65
+ pool: "CURVE_GUSD_POOL",
66
+ lpActions: [
67
+ {
68
+ type: tradeTypes_1.TradeType.CurveWithdrawLP,
69
+ contract: "CURVE_GUSD_POOL",
70
+ tokenOut: ["GUSD", "3Crv"],
71
+ },
72
+ {
73
+ type: tradeTypes_1.TradeType.ConvexDepositLP,
74
+ contract: "CONVEX_BOOSTER",
75
+ tokenOut: "cvxgusd3CRV",
76
+ },
77
+ {
78
+ type: tradeTypes_1.TradeType.ConvexDepositLPAndStake,
79
+ contract: "CONVEX_BOOSTER",
80
+ tokenOut: "stkcvxgusd3CRV",
81
+ },
82
+ ],
83
+ },
84
+ };
85
+ exports.curveTokens = __assign({
13
86
  // CURVE LP TOKENS
14
87
  "3Crv": {
15
88
  name: "Curve 3Crv",
@@ -33,8 +106,7 @@ exports.curveTokens = {
33
106
  tokenOut: "stkcvx3Crv",
34
107
  },
35
108
  ],
36
- },
37
- crvFRAX: {
109
+ }, crvFRAX: {
38
110
  name: "Curve.fi FRAX/USDC",
39
111
  symbol: "crvFRAX",
40
112
  type: tokenType_1.TokenType.CURVE_LP_TOKEN,
@@ -56,8 +128,7 @@ exports.curveTokens = {
56
128
  tokenOut: "stkcvxcrvFRAX",
57
129
  },
58
130
  ],
59
- },
60
- steCRV: {
131
+ }, steCRV: {
61
132
  name: "Curve steCRV",
62
133
  symbol: "steCRV",
63
134
  type: tokenType_1.TokenType.CURVE_LP_TOKEN,
@@ -79,8 +150,7 @@ exports.curveTokens = {
79
150
  tokenOut: "stkcvxsteCRV",
80
151
  },
81
152
  ],
82
- },
83
- crvPlain3andSUSD: {
153
+ }, crvPlain3andSUSD: {
84
154
  name: "Curve crvPlain3andSUSD",
85
155
  symbol: "crvPlain3andSUSD",
86
156
  type: tokenType_1.TokenType.CURVE_LP_TOKEN,
@@ -103,69 +173,12 @@ exports.curveTokens = {
103
173
  tokenOut: "stkcvxcrvPlain3andSUSD",
104
174
  },
105
175
  ],
106
- },
107
- // META CURVE LP TOKENS
108
- FRAX3CRV: {
109
- name: "Curve FRAX3CRV-f",
110
- symbol: "FRAX3CRV",
111
- type: tokenType_1.TokenType.CURVE_LP_TOKEN,
112
- pool: "CURVE_FRAX_POOL",
113
- lpActions: [
114
- {
115
- type: tradeTypes_1.TradeType.CurveWithdrawLP,
116
- contract: "CURVE_FRAX_POOL",
117
- tokenOut: ["FRAX", "3Crv"],
118
- },
119
- {
120
- type: tradeTypes_1.TradeType.ConvexDepositLP,
121
- contract: "CONVEX_BOOSTER",
122
- tokenOut: "cvxFRAX3CRV",
123
- },
124
- {
125
- type: tradeTypes_1.TradeType.ConvexDepositLPAndStake,
126
- contract: "CONVEX_BOOSTER",
127
- tokenOut: "stkcvxFRAX3CRV",
128
- },
129
- ],
130
- },
131
- LUSD3CRV: {
132
- name: "Curve LUSD3CRV-f",
133
- symbol: "LUSD3CRV",
134
- type: tokenType_1.TokenType.CURVE_LP_TOKEN,
135
- pool: "CURVE_LUSD_POOL",
136
- lpActions: [
137
- {
138
- type: tradeTypes_1.TradeType.CurveWithdrawLP,
139
- contract: "CURVE_LUSD_POOL",
140
- tokenOut: ["LUSD", "3Crv"],
141
- },
142
- ],
143
- },
144
- gusd3CRV: {
145
- name: "Curve gusd3CRV",
146
- symbol: "gusd3CRV",
147
- type: tokenType_1.TokenType.CURVE_LP_TOKEN,
148
- pool: "CURVE_GUSD_POOL",
149
- lpActions: [
150
- {
151
- type: tradeTypes_1.TradeType.CurveWithdrawLP,
152
- contract: "CURVE_GUSD_POOL",
153
- tokenOut: ["GUSD", "3Crv"],
154
- },
155
- {
156
- type: tradeTypes_1.TradeType.ConvexDepositLP,
157
- contract: "CONVEX_BOOSTER",
158
- tokenOut: "cvxgusd3CRV",
159
- },
160
- {
161
- type: tradeTypes_1.TradeType.ConvexDepositLPAndStake,
162
- contract: "CONVEX_BOOSTER",
163
- tokenOut: "stkcvxgusd3CRV",
164
- },
165
- ],
166
- },
167
- };
176
+ } }, exports.curveMetaTokens);
168
177
  var isCurveLPToken = function (t) {
169
178
  return typeof t === "string" && !!exports.curveTokens[t];
170
179
  };
171
180
  exports.isCurveLPToken = isCurveLPToken;
181
+ var isCurveMetaToken = function (t) {
182
+ return typeof t === "string" && !!exports.curveMetaTokens[t];
183
+ };
184
+ exports.isCurveMetaToken = isCurveMetaToken;
@@ -57,7 +57,7 @@ exports.formatBN = formatBN;
57
57
  function formatBn4dig(num, precision) {
58
58
  if (precision === void 0) { precision = 2; }
59
59
  if (precision > 6) {
60
- throw new Error("Incorrect precision");
60
+ throw new Error("Precision is too high, try <= 6");
61
61
  }
62
62
  var numStr = num.toString();
63
63
  if (numStr.length < 6) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gearbox-protocol/sdk",
3
- "version": "1.17.1",
3
+ "version": "1.17.3",
4
4
  "description": "Gearbox SDK",
5
5
  "main": "./lib/index.js",
6
6
  "types": "./lib/index.d.ts",