@gearbox-protocol/sdk 1.8.11 → 1.9.1
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/apy/curveAPY.js +2 -0
- package/lib/contracts/contracts.d.ts +1 -1
- package/lib/contracts/contracts.js +9 -0
- package/lib/oracles/priceFeeds.js +6 -0
- package/lib/parsers/txParser.js +4 -0
- package/lib/parsers/wstETHAdapterParser.d.ts +7 -0
- package/lib/parsers/wstETHAdapterParser.js +53 -0
- package/lib/parsers/wstETHAdapterParser.spec.d.ts +1 -0
- package/lib/parsers/wstETHAdapterParser.spec.js +21 -0
- package/lib/tokens/curveLP.d.ts +1 -1
- package/lib/tokens/curveLP.js +23 -0
- package/lib/tokens/decimals.js +1 -0
- package/lib/tokens/token.js +2 -0
- package/package.json +1 -1
package/lib/apy/curveAPY.js
CHANGED
|
@@ -52,6 +52,7 @@ var NAME_DICTIONARY = {
|
|
|
52
52
|
LUSD3CRV: "lusd",
|
|
53
53
|
crvPlain3andSUSD: "susdv2",
|
|
54
54
|
steCRV: "steth",
|
|
55
|
+
crvFRAX: "fraxusdc", // TODO: CHECK!
|
|
55
56
|
};
|
|
56
57
|
var RESPONSE_DECIMALS = 100;
|
|
57
58
|
var ZERO = ethers_1.BigNumber.from(0);
|
|
@@ -80,6 +81,7 @@ function getCurveAPY() {
|
|
|
80
81
|
e_1 = _a.sent();
|
|
81
82
|
return [2 /*return*/, {
|
|
82
83
|
"3Crv": ZERO,
|
|
84
|
+
crvFRAX: ZERO,
|
|
83
85
|
FRAX3CRV: ZERO,
|
|
84
86
|
gusd3CRV: ZERO,
|
|
85
87
|
LUSD3CRV: ZERO,
|
|
@@ -6,7 +6,7 @@ import type { YearnLPToken } from "../tokens/yearn";
|
|
|
6
6
|
import { AdapterInterface } from "./adapters";
|
|
7
7
|
import { Protocols } from "./protocols";
|
|
8
8
|
export declare type UniswapV2Contract = "UNISWAP_V2_ROUTER" | "SUSHISWAP_ROUTER";
|
|
9
|
-
export declare type CurvePoolContract = "CURVE_3CRV_POOL" | "CURVE_STETH_GATEWAY" | "CURVE_FRAX_POOL" | "CURVE_LUSD_POOL" | "CURVE_GUSD_POOL" | "CURVE_SUSD_POOL" | "CURVE_SUSD_DEPOSIT";
|
|
9
|
+
export declare type CurvePoolContract = "CURVE_3CRV_POOL" | "CURVE_FRAX_USDC_POOL" | "CURVE_STETH_GATEWAY" | "CURVE_FRAX_POOL" | "CURVE_LUSD_POOL" | "CURVE_GUSD_POOL" | "CURVE_SUSD_POOL" | "CURVE_SUSD_DEPOSIT";
|
|
10
10
|
export declare type YearnVaultContract = "YEARN_DAI_VAULT" | "YEARN_USDC_VAULT" | "YEARN_WETH_VAULT" | "YEARN_WBTC_VAULT" | "YEARN_CURVE_FRAX_VAULT" | "YEARN_CURVE_STETH_VAULT";
|
|
11
11
|
export declare type ConvexPoolContract = "CONVEX_3CRV_POOL" | "CONVEX_GUSD_POOL" | "CONVEX_SUSD_POOL" | "CONVEX_STECRV_POOL" | "CONVEX_FRAX3CRV_POOL" | "CONVEX_LUSD3CRV_POOL";
|
|
12
12
|
export declare type SupportedContract = UniswapV2Contract | "UNISWAP_V3_ROUTER" | CurvePoolContract | YearnVaultContract | "CONVEX_BOOSTER" | ConvexPoolContract | "CONVEX_CLAIM_ZAP" | "LIDO_STETH_GATEWAY" | "LIDO_WSTETH" | "UNIVERSAL_ADAPTER";
|
|
@@ -23,6 +23,7 @@ exports.contractsByNetwork = {
|
|
|
23
23
|
SUSHISWAP_ROUTER: "0xd9e1cE17f2641f24aE83637ab66a2cca9C378B9F",
|
|
24
24
|
// CURVE
|
|
25
25
|
CURVE_3CRV_POOL: "0xbEbc44782C7dB0a1A60Cb6fe97d0b483032FF1C7",
|
|
26
|
+
CURVE_FRAX_USDC_POOL: "0x3175Df0976dFA876431C2E9eE6Bc45b65d3473CC",
|
|
26
27
|
CURVE_STETH_GATEWAY: "0x0c304D4cff4C562BcF09e198a30611a853d1Cad8",
|
|
27
28
|
CURVE_FRAX_POOL: token_1.tokenDataByNetwork.Mainnet.FRAX3CRV,
|
|
28
29
|
CURVE_LUSD_POOL: token_1.tokenDataByNetwork.Mainnet.LUSD3CRV,
|
|
@@ -66,6 +67,7 @@ exports.contractsByNetwork = {
|
|
|
66
67
|
SUSHISWAP_ROUTER: "0x1b02dA8Cb0d097eB8D57A175b88c7D8b47997506",
|
|
67
68
|
// CURVE
|
|
68
69
|
CURVE_3CRV_POOL: "0x6491f8A62678c90C84b237791d9D7cF21b4D1418",
|
|
70
|
+
CURVE_FRAX_USDC_POOL: "0xDcEF968d416a41Cdac0ED8702fAC8128A64241A2",
|
|
69
71
|
CURVE_STETH_GATEWAY: "0xcD4b22ed0E2aD95d648C6E4c45B38f83D0Cbb654",
|
|
70
72
|
CURVE_FRAX_POOL: token_1.tokenDataByNetwork.Goerli.FRAX3CRV,
|
|
71
73
|
CURVE_LUSD_POOL: token_1.tokenDataByNetwork.Goerli.LUSD3CRV,
|
|
@@ -120,6 +122,13 @@ exports.contractParams = {
|
|
|
120
122
|
lpToken: "3Crv",
|
|
121
123
|
tokens: ["DAI", "USDC", "USDT"],
|
|
122
124
|
},
|
|
125
|
+
CURVE_FRAX_USDC_POOL: {
|
|
126
|
+
name: "Curve 3Pool",
|
|
127
|
+
protocol: protocols_1.Protocols.Curve,
|
|
128
|
+
type: adapters_1.AdapterInterface.CURVE_V1_3ASSETS,
|
|
129
|
+
lpToken: "crvFRAX",
|
|
130
|
+
tokens: ["FRAX", "USDC"],
|
|
131
|
+
},
|
|
123
132
|
CURVE_STETH_GATEWAY: {
|
|
124
133
|
name: "Curve stETH",
|
|
125
134
|
protocol: protocols_1.Protocols.Curve,
|
|
@@ -371,6 +371,12 @@ exports.priceFeedsByNetwork = {
|
|
|
371
371
|
assets: ["DAI", "USDC", "USDT"],
|
|
372
372
|
},
|
|
373
373
|
},
|
|
374
|
+
crvFRAX: {
|
|
375
|
+
priceFeedUSD: {
|
|
376
|
+
type: oracles_1.OracleType.CURVE_LP_TOKEN_ORACLE,
|
|
377
|
+
assets: ["FRAX", "USDC"],
|
|
378
|
+
},
|
|
379
|
+
},
|
|
374
380
|
steCRV: {
|
|
375
381
|
priceFeedUSD: {
|
|
376
382
|
type: oracles_1.OracleType.CURVE_LP_TOKEN_ORACLE,
|
package/lib/parsers/txParser.js
CHANGED
|
@@ -10,6 +10,7 @@ var curveAdapterParser_1 = require("./curveAdapterParser");
|
|
|
10
10
|
var lidoAdapterParser_1 = require("./lidoAdapterParser");
|
|
11
11
|
var uniV2AdapterParser_1 = require("./uniV2AdapterParser");
|
|
12
12
|
var uniV3AdapterParser_1 = require("./uniV3AdapterParser");
|
|
13
|
+
var wstETHAdapterParser_1 = require("./wstETHAdapterParser");
|
|
13
14
|
var yearnV2AdapterParser_1 = require("./yearnV2AdapterParser");
|
|
14
15
|
var TxParser = /** @class */ (function () {
|
|
15
16
|
function TxParser() {
|
|
@@ -86,6 +87,9 @@ var TxParser = /** @class */ (function () {
|
|
|
86
87
|
case "LIDO_V1":
|
|
87
88
|
TxParser.parsers[addressLC] = new lidoAdapterParser_1.LidoAdapterParser(contract, isContract);
|
|
88
89
|
break;
|
|
90
|
+
case "LIDO_WSTETH_V1":
|
|
91
|
+
TxParser.parsers[addressLC] = new wstETHAdapterParser_1.WstETHAdapterParser(contract, isContract);
|
|
92
|
+
break;
|
|
89
93
|
}
|
|
90
94
|
};
|
|
91
95
|
TxParser.parsers = {};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { SupportedContract } from "../contracts/contracts";
|
|
2
|
+
import { AbstractParser } from "./abstractParser";
|
|
3
|
+
import { IParser } from "./iParser";
|
|
4
|
+
export declare class WstETHAdapterParser extends AbstractParser implements IParser {
|
|
5
|
+
constructor(contract: SupportedContract, isContract: boolean);
|
|
6
|
+
parse(calldata: string): string;
|
|
7
|
+
}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __extends = (this && this.__extends) || (function () {
|
|
3
|
+
var extendStatics = function (d, b) {
|
|
4
|
+
extendStatics = Object.setPrototypeOf ||
|
|
5
|
+
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
|
6
|
+
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
|
|
7
|
+
return extendStatics(d, b);
|
|
8
|
+
};
|
|
9
|
+
return function (d, b) {
|
|
10
|
+
if (typeof b !== "function" && b !== null)
|
|
11
|
+
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
|
|
12
|
+
extendStatics(d, b);
|
|
13
|
+
function __() { this.constructor = d; }
|
|
14
|
+
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
15
|
+
};
|
|
16
|
+
})();
|
|
17
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
exports.WstETHAdapterParser = void 0;
|
|
19
|
+
var types_1 = require("../types");
|
|
20
|
+
var abstractParser_1 = require("./abstractParser");
|
|
21
|
+
var WstETHAdapterParser = /** @class */ (function (_super) {
|
|
22
|
+
__extends(WstETHAdapterParser, _super);
|
|
23
|
+
function WstETHAdapterParser(contract, isContract) {
|
|
24
|
+
var _this = _super.call(this, contract) || this;
|
|
25
|
+
_this.ifc = types_1.IwstETHV1Adapter__factory.createInterface();
|
|
26
|
+
if (!isContract)
|
|
27
|
+
_this.adapterName = "wstETHAdapter";
|
|
28
|
+
return _this;
|
|
29
|
+
}
|
|
30
|
+
WstETHAdapterParser.prototype.parse = function (calldata) {
|
|
31
|
+
var _a = this.parseSelector(calldata), functionFragment = _a.functionFragment, functionName = _a.functionName;
|
|
32
|
+
switch (functionFragment.name) {
|
|
33
|
+
case "wrap": {
|
|
34
|
+
var amount = this.decodeFunctionData(functionFragment, calldata)[0];
|
|
35
|
+
return "".concat(functionName, "(amount: ").concat(this.formatBN(amount, "STETH"), ")");
|
|
36
|
+
}
|
|
37
|
+
case "wrapAll": {
|
|
38
|
+
return "".concat(functionName, "()");
|
|
39
|
+
}
|
|
40
|
+
case "unwrap": {
|
|
41
|
+
var amount = this.decodeFunctionData(functionFragment, calldata)[0];
|
|
42
|
+
return "".concat(functionName, "(amount: ").concat(this.formatBN(amount, "wstETH"), ")");
|
|
43
|
+
}
|
|
44
|
+
case "unwrapAll": {
|
|
45
|
+
return "".concat(functionName, "()");
|
|
46
|
+
}
|
|
47
|
+
default:
|
|
48
|
+
return "".concat(functionName, ": Unknown operation ").concat(functionFragment.name, " with calldata ").concat(calldata);
|
|
49
|
+
}
|
|
50
|
+
};
|
|
51
|
+
return WstETHAdapterParser;
|
|
52
|
+
}(abstractParser_1.AbstractParser));
|
|
53
|
+
exports.WstETHAdapterParser = WstETHAdapterParser;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
var chai_1 = require("chai");
|
|
4
|
+
var constants_1 = require("../core/constants");
|
|
5
|
+
var types_1 = require("../types");
|
|
6
|
+
var wstETHAdapterParser_1 = require("./wstETHAdapterParser");
|
|
7
|
+
describe("WstETHAdapterParser test", function () {
|
|
8
|
+
it("wrap / unwrap function works well", function () {
|
|
9
|
+
var parser = new wstETHAdapterParser_1.WstETHAdapterParser("LIDO_WSTETH", false);
|
|
10
|
+
var ifc = types_1.IwstETHV1Adapter__factory.createInterface();
|
|
11
|
+
var parsed = parser.parse(ifc.encodeFunctionData("wrap", [constants_1.WAD.mul(1020)]));
|
|
12
|
+
(0, chai_1.expect)(parsed).to.be.eq("wstETHAdapter[LIDO_WSTETH].wrap(amount: 1.02K [1020000000000000000000])", "Incorrect parse wrap(amount)");
|
|
13
|
+
parsed = parser.parse(ifc.encodeFunctionData("wrapAll"));
|
|
14
|
+
(0, chai_1.expect)(parsed).to.be.eq("wstETHAdapter[LIDO_WSTETH].wrapAll()", "Incorrect parse wrapAll()");
|
|
15
|
+
parser = new wstETHAdapterParser_1.WstETHAdapterParser("LIDO_WSTETH", true);
|
|
16
|
+
parsed = parser.parse(ifc.encodeFunctionData("unwrap", [constants_1.WAD.mul(1020)]));
|
|
17
|
+
(0, chai_1.expect)(parsed).to.be.eq("Contract[LIDO_WSTETH].unwrap(amount: 1.02K [1020000000000000000000])", "Incorrect parse unwrap(amount)");
|
|
18
|
+
parsed = parser.parse(ifc.encodeFunctionData("unwrapAll"));
|
|
19
|
+
(0, chai_1.expect)(parsed).to.be.eq("Contract[LIDO_WSTETH].unwrapAll()", "Incorrect parse unwrapAll()");
|
|
20
|
+
});
|
|
21
|
+
});
|
package/lib/tokens/curveLP.d.ts
CHANGED
|
@@ -4,7 +4,7 @@ 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";
|
|
7
|
+
export declare type CurveLPToken = "3Crv" | "steCRV" | "FRAX3CRV" | "LUSD3CRV" | "crvPlain3andSUSD" | "gusd3CRV" | "crvFRAX";
|
|
8
8
|
export declare type CurveLPTokenData = {
|
|
9
9
|
symbol: CurveLPToken;
|
|
10
10
|
type: TokenType.CURVE_LP_TOKEN;
|
package/lib/tokens/curveLP.js
CHANGED
|
@@ -34,6 +34,29 @@ exports.curveTokens = {
|
|
|
34
34
|
},
|
|
35
35
|
],
|
|
36
36
|
},
|
|
37
|
+
crvFRAX: {
|
|
38
|
+
name: "Curve.fi FRAX/USDC",
|
|
39
|
+
symbol: "3Crv",
|
|
40
|
+
type: tokenType_1.TokenType.CURVE_LP_TOKEN,
|
|
41
|
+
pool: "CURVE_FRAX_USDC_POOL",
|
|
42
|
+
lpActions: [
|
|
43
|
+
{
|
|
44
|
+
type: tradeTypes_1.TradeType.CurveWithdrawLP,
|
|
45
|
+
contract: "CURVE_3CRV_POOL",
|
|
46
|
+
tokenOut: ["DAI", "USDC", "USDT"],
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
type: tradeTypes_1.TradeType.ConvexDepositLP,
|
|
50
|
+
contract: "CONVEX_BOOSTER",
|
|
51
|
+
tokenOut: "cvx3Crv",
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
type: tradeTypes_1.TradeType.ConvexDepositLPAndStake,
|
|
55
|
+
contract: "CONVEX_BOOSTER",
|
|
56
|
+
tokenOut: "stkcvx3Crv",
|
|
57
|
+
},
|
|
58
|
+
],
|
|
59
|
+
},
|
|
37
60
|
steCRV: {
|
|
38
61
|
name: "Curve steCRV",
|
|
39
62
|
symbol: "steCRV",
|
package/lib/tokens/decimals.js
CHANGED
package/lib/tokens/token.js
CHANGED
|
@@ -53,6 +53,7 @@ exports.tokenDataByNetwork = {
|
|
|
53
53
|
LQTY: "0x6DEA81C8171D0bA574754EF6F8b412F2Ed88c54D",
|
|
54
54
|
// CURVE LP TOKENS
|
|
55
55
|
"3Crv": "0x6c3F90f043a72FA612cbac8115EE7e52BDe6E490",
|
|
56
|
+
crvFRAX: "DEPLOY ME",
|
|
56
57
|
steCRV: "0x06325440D014e39736583c165C2963BA99fAf14E",
|
|
57
58
|
FRAX3CRV: "0xd632f22692FaC7611d2AA1C0D552930D43CAEd3B",
|
|
58
59
|
LUSD3CRV: "0xEd279fDD11cA84bEef15AF5D39BB4d4bEE23F0cA",
|
|
@@ -127,6 +128,7 @@ exports.tokenDataByNetwork = {
|
|
|
127
128
|
yvCurve_FRAX: "0x43d45AEf2BAb5fa79e3bBDb2dB7E4443B8123C8f",
|
|
128
129
|
// CURVE LP TOKENS
|
|
129
130
|
"3Crv": "0xb2f394A64966a8892a43CcfBBD48D28bC58Aeb67",
|
|
131
|
+
crvFRAX: "DEPLOY ME",
|
|
130
132
|
steCRV: "0xf5c5e39F56fF90C0F63a97F3c77779eF495c1faD",
|
|
131
133
|
crvPlain3andSUSD: "0xC3d328CCA12347A31126d891D16fe8C5466625a5",
|
|
132
134
|
gusd3CRV: "0xbD919fcC47ae2b5Cc2fe646971aCcB1e88843DC5",
|