@gearbox-protocol/sdk 2.1.34 → 3.0.0-next.2
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/convexAPY.d.ts +4 -6
- package/lib/apy/convexAPY.js +15 -16
- package/lib/apy/curveAPY.d.ts +2 -2
- package/lib/apy/curveAPY.js +3 -4
- package/lib/apy/index.d.ts +1 -1
- package/lib/apy/index.js +2 -2
- package/lib/apy/lidoAPY.js +2 -2
- package/lib/apy/yearnAPY.d.ts +1 -1
- package/lib/apy/yearnAPY.js +3 -5
- package/lib/contracts/contractsRegister.d.ts +1 -1
- package/lib/contracts/contractsRegister.js +6 -7
- package/lib/core/creditAccount.js +20 -22
- package/lib/core/creditAccount.spec.js +32 -34
- package/lib/core/creditManager.js +16 -17
- package/lib/core/creditSession.js +12 -13
- package/lib/core/events.js +34 -35
- package/lib/core/pool/data.js +22 -23
- package/lib/core/priceOracle.js +3 -3
- package/lib/core/rewardClaimer.d.ts +1 -3
- package/lib/core/rewardConvex.d.ts +1 -4
- package/lib/core/rewardConvex.js +7 -10
- package/lib/core/rewardConvex.spec.js +15 -16
- package/lib/core/strategy.js +14 -16
- package/lib/core/strategy.spec.js +20 -22
- package/lib/core/trade.d.ts +1 -1
- package/lib/core/trade.js +12 -15
- package/lib/core/transactions.d.ts +1 -1
- package/lib/core/transactions.js +18 -20
- package/lib/index.d.ts +2 -20
- package/lib/index.js +27 -24
- package/lib/parsers/ERC20Parser.d.ts +1 -1
- package/lib/parsers/abstractParser.d.ts +1 -1
- package/lib/parsers/abstractParser.js +3 -4
- package/lib/parsers/convexBaseRewardPoolAdapterParser.d.ts +1 -1
- package/lib/parsers/convexBaseRewardPoolAdapterParser.js +2 -2
- package/lib/parsers/convexBaseRewardPoolAdapterParser.spec.js +4 -4
- package/lib/parsers/convexBoosterAdapterParser.d.ts +1 -1
- package/lib/parsers/convexBoosterAdapterParser.js +3 -3
- package/lib/parsers/convexBoosterAdapterParser.spec.js +3 -3
- package/lib/parsers/convextRewardPoolParser.d.ts +1 -1
- package/lib/parsers/creditFacadeParser.d.ts +1 -1
- package/lib/parsers/creditFacadeParser.spec.js +8 -9
- package/lib/parsers/curveAdapterParser.d.ts +1 -2
- package/lib/parsers/curveAdapterParser.js +5 -5
- package/lib/parsers/curveAdapterParser.spec.js +13 -13
- package/lib/parsers/lidoAdapterParser.d.ts +1 -1
- package/lib/parsers/lidoAdapterParser.spec.js +2 -2
- package/lib/parsers/lidoSTETHParser.d.ts +1 -1
- package/lib/parsers/txParser.d.ts +1 -3
- package/lib/parsers/txParser.js +12 -15
- package/lib/parsers/uniV2AdapterParser.d.ts +1 -1
- package/lib/parsers/uniV2AdapterParser.spec.js +15 -16
- package/lib/parsers/uniV3AdapterParser.d.ts +1 -1
- package/lib/parsers/uniV3AdapterParser.spec.js +15 -16
- package/lib/parsers/wstETHAdapterParser.d.ts +1 -1
- package/lib/parsers/wstETHAdapterParser.spec.js +3 -3
- package/lib/parsers/yearnAdapterParser.spec.js +12 -12
- package/lib/parsers/yearnV2AdapterParser.d.ts +1 -1
- package/lib/parsers/yearnV2AdapterParser.js +2 -2
- package/lib/pathfinder/pathOptions.d.ts +1 -2
- package/lib/pathfinder/pathOptions.js +12 -16
- package/lib/pathfinder/pathOptions.spec.js +36 -36
- package/lib/pathfinder/pathfinder.d.ts +1 -2
- package/lib/pathfinder/pathfinder.js +9 -10
- package/lib/pathfinder/pathfinder.spec.js +11 -12
- package/lib/payload/creditAccount.d.ts +1 -1
- package/lib/payload/creditManager.d.ts +1 -1
- package/lib/payload/pool.d.ts +1 -1
- package/lib/tokens/tokenData.d.ts +0 -4
- package/lib/tokens/tokenData.js +1 -16
- package/lib/utils/formatter.js +3 -3
- package/lib/utils/math.js +5 -5
- package/lib/utils/price.js +4 -4
- package/lib/watchers/creditAccountWatcher.js +2 -2
- package/lib/watchers/creditAccountWatcher.spec.js +18 -18
- package/lib/watchers/creditManagerWatcher.spec.js +19 -19
- package/package.json +2 -1
- package/lib/contracts/adapters.d.ts +0 -24
- package/lib/contracts/adapters.js +0 -28
- package/lib/contracts/contracts.d.ts +0 -112
- package/lib/contracts/contracts.js +0 -654
- package/lib/contracts/protocols.d.ts +0 -12
- package/lib/contracts/protocols.js +0 -16
- package/lib/contracts/utilsContracts.d.ts +0 -7
- package/lib/contracts/utilsContracts.js +0 -28
- package/lib/core/chains.d.ts +0 -23
- package/lib/core/chains.js +0 -63
- package/lib/core/constants.d.ts +0 -21
- package/lib/core/constants.js +0 -31
- package/lib/tokens/aave.d.ts +0 -20
- package/lib/tokens/aave.js +0 -62
- package/lib/tokens/balancer.d.ts +0 -12
- package/lib/tokens/balancer.js +0 -36
- package/lib/tokens/compound.d.ts +0 -11
- package/lib/tokens/compound.js +0 -38
- package/lib/tokens/convex.d.ts +0 -30
- package/lib/tokens/convex.js +0 -262
- package/lib/tokens/curveLP.d.ts +0 -27
- package/lib/tokens/curveLP.js +0 -141
- package/lib/tokens/decimals.d.ts +0 -2
- package/lib/tokens/decimals.js +0 -115
- package/lib/tokens/gear.d.ts +0 -14
- package/lib/tokens/gear.js +0 -47
- package/lib/tokens/normal.d.ts +0 -9
- package/lib/tokens/normal.js +0 -194
- package/lib/tokens/quoted.d.ts +0 -3
- package/lib/tokens/quoted.js +0 -7
- package/lib/tokens/token.d.ts +0 -25
- package/lib/tokens/token.js +0 -305
- package/lib/tokens/tokenType.d.ts +0 -15
- package/lib/tokens/tokenType.js +0 -19
- package/lib/tokens/tokens.spec.d.ts +0 -1
- package/lib/tokens/tokens.spec.js +0 -151
- package/lib/tokens/yearn.d.ts +0 -26
- package/lib/tokens/yearn.js +0 -52
- package/lib/utils/mappers.d.ts +0 -8
- package/lib/utils/mappers.js +0 -13
- package/lib/utils/multicall.d.ts +0 -36
- package/lib/utils/multicall.js +0 -90
- package/lib/utils/safeEnum.d.ts +0 -1
- package/lib/utils/safeEnum.js +0 -10
- package/lib/utils/types.d.ts +0 -10
- package/lib/utils/types.js +0 -2
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { NormalToken } from "
|
|
1
|
+
import { NormalToken } from "@gearbox-protocol/sdk-gov";
|
|
2
2
|
import { AbstractParser } from "./abstractParser";
|
|
3
3
|
import { IParser } from "./iParser";
|
|
4
4
|
export declare class ConvexRewardPoolParser extends AbstractParser implements IParser {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
+
import { SupportedToken } from "@gearbox-protocol/sdk-gov";
|
|
1
2
|
import { BigNumberish } from "ethers";
|
|
2
|
-
import { SupportedToken } from "../tokens/token";
|
|
3
3
|
import { AbstractParser } from "./abstractParser";
|
|
4
4
|
import { IParser } from "./iParser";
|
|
5
5
|
export declare class CreditFacadeParser extends AbstractParser implements IParser {
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const sdk_gov_1 = require("@gearbox-protocol/sdk-gov");
|
|
3
4
|
const chai_1 = require("chai");
|
|
4
|
-
const constants_1 = require("../core/constants");
|
|
5
|
-
const token_1 = require("../tokens/token");
|
|
6
5
|
const types_1 = require("../types");
|
|
7
6
|
const creditFacadeParser_1 = require("./creditFacadeParser");
|
|
8
7
|
describe("CreditFacadeParser test", () => {
|
|
@@ -10,18 +9,18 @@ describe("CreditFacadeParser test", () => {
|
|
|
10
9
|
let parser = new creditFacadeParser_1.CreditFacadeParser("DAI");
|
|
11
10
|
const ifc = types_1.ICreditFacadeExtended__factory.createInterface();
|
|
12
11
|
let parsed = parser.parse(ifc.encodeFunctionData("addCollateral", [
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
(
|
|
12
|
+
sdk_gov_1.DUMB_ADDRESS,
|
|
13
|
+
sdk_gov_1.tokenDataByNetwork.Mainnet.WBTC,
|
|
14
|
+
(sdk_gov_1.WAD * 444n) / 10n,
|
|
16
15
|
]));
|
|
17
16
|
(0, chai_1.expect)(parsed).to.be.eq("CreditFacade[DAI].addCollateral(onBehalf: 0xC4375B7De8af5a38a93548eb8453a498222C4fF2, token: WBTC, amount: 44.40 [44400000000000000000])", "Incorrect parse addCollateral");
|
|
18
|
-
parsed = parser.parse(ifc.encodeFunctionData("increaseDebt", [(
|
|
17
|
+
parsed = parser.parse(ifc.encodeFunctionData("increaseDebt", [(sdk_gov_1.WAD * 414n) / 10n]));
|
|
19
18
|
(0, chai_1.expect)(parsed).to.be.eq("CreditFacade[DAI].increaseDebt(amount: 41.40 [41400000000000000000])", "Incorrect parse increaseDebt");
|
|
20
|
-
parsed = parser.parse(ifc.encodeFunctionData("decreaseDebt", [(
|
|
19
|
+
parsed = parser.parse(ifc.encodeFunctionData("decreaseDebt", [(sdk_gov_1.WAD * 334n) / 10n]));
|
|
21
20
|
(0, chai_1.expect)(parsed).to.be.eq("CreditFacade[DAI].decreaseDebt(amount: 33.40 [33400000000000000000])", "Incorrect parse decreaseDebt");
|
|
22
|
-
parsed = parser.parse(ifc.encodeFunctionData("enableToken", [
|
|
21
|
+
parsed = parser.parse(ifc.encodeFunctionData("enableToken", [sdk_gov_1.tokenDataByNetwork.Mainnet.WETH]));
|
|
23
22
|
(0, chai_1.expect)(parsed).to.be.eq("CreditFacade[DAI].enableToken(token: WETH)", "Incorrect parse enableToken");
|
|
24
|
-
parsed = parser.parse(ifc.encodeFunctionData("disableToken", [
|
|
23
|
+
parsed = parser.parse(ifc.encodeFunctionData("disableToken", [sdk_gov_1.tokenDataByNetwork.Mainnet.LINK]));
|
|
25
24
|
(0, chai_1.expect)(parsed).to.be.eq("CreditFacade[DAI].disableToken(token: LINK)", "Incorrect parse disableToken");
|
|
26
25
|
});
|
|
27
26
|
});
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
+
import { SupportedContract, SupportedToken } from "@gearbox-protocol/sdk-gov";
|
|
1
2
|
import { BigNumberish } from "ethers";
|
|
2
|
-
import { SupportedContract } from "../contracts/contracts";
|
|
3
|
-
import { SupportedToken } from "../tokens/token";
|
|
4
3
|
import { AbstractParser } from "./abstractParser";
|
|
5
4
|
import { IParser } from "./iParser";
|
|
6
5
|
export declare class CurveAdapterParser extends AbstractParser implements IParser {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.CurveAdapterParser = void 0;
|
|
4
|
-
const
|
|
4
|
+
const sdk_gov_1 = require("@gearbox-protocol/sdk-gov");
|
|
5
5
|
const types_1 = require("../types");
|
|
6
6
|
const formatter_1 = require("../utils/formatter");
|
|
7
7
|
const abstractParser_1 = require("./abstractParser");
|
|
@@ -10,7 +10,7 @@ class CurveAdapterParser extends abstractParser_1.AbstractParser {
|
|
|
10
10
|
constructor(contract, isContract) {
|
|
11
11
|
super(contract);
|
|
12
12
|
let contractName = "";
|
|
13
|
-
const nCoins =
|
|
13
|
+
const nCoins = sdk_gov_1.contractParams[contract].tokens.length;
|
|
14
14
|
switch (nCoins) {
|
|
15
15
|
case 2:
|
|
16
16
|
this.ifc = types_1.ICurveV1_2AssetsAdapter__factory.createInterface();
|
|
@@ -27,7 +27,7 @@ class CurveAdapterParser extends abstractParser_1.AbstractParser {
|
|
|
27
27
|
default:
|
|
28
28
|
throw new Error(`Unsupported curve contract ${contract}`);
|
|
29
29
|
}
|
|
30
|
-
this.lpToken =
|
|
30
|
+
this.lpToken = sdk_gov_1.contractParams[contract].lpToken;
|
|
31
31
|
if (!isContract)
|
|
32
32
|
this.adapterName = contractName;
|
|
33
33
|
}
|
|
@@ -101,11 +101,11 @@ class CurveAdapterParser extends abstractParser_1.AbstractParser {
|
|
|
101
101
|
}
|
|
102
102
|
}
|
|
103
103
|
getTokenByIndex(index) {
|
|
104
|
-
return
|
|
104
|
+
return sdk_gov_1.contractParams[this.contract]
|
|
105
105
|
.tokens[index];
|
|
106
106
|
}
|
|
107
107
|
getUnderlyingTokenByIndex(index) {
|
|
108
|
-
return
|
|
108
|
+
return sdk_gov_1.contractParams[this.contract]
|
|
109
109
|
.underlyings[index];
|
|
110
110
|
}
|
|
111
111
|
convertAmounts(amounts) {
|
|
@@ -1,41 +1,41 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const sdk_gov_1 = require("@gearbox-protocol/sdk-gov");
|
|
3
4
|
const chai_1 = require("chai");
|
|
4
|
-
const constants_1 = require("../core/constants");
|
|
5
5
|
const types_1 = require("../types");
|
|
6
6
|
const curveAdapterParser_1 = require("./curveAdapterParser");
|
|
7
7
|
describe("CurveAdapterParser test", () => {
|
|
8
8
|
it("stake / withdraw functions works well", () => {
|
|
9
9
|
let parser = new curveAdapterParser_1.CurveAdapterParser("CURVE_FRAX_POOL", false);
|
|
10
10
|
const ifc = types_1.ICurveV1_2AssetsAdapter__factory.createInterface();
|
|
11
|
-
let parsed = parser.parse(ifc.encodeFunctionData("exchange", [0, 1,
|
|
11
|
+
let parsed = parser.parse(ifc.encodeFunctionData("exchange", [0, 1, sdk_gov_1.WAD * 3n, sdk_gov_1.WAD * 32n]));
|
|
12
12
|
(0, chai_1.expect)(parsed).to.be.eq("Curve2AssetsAdapter[CURVE_FRAX_POOL].exchange(i ,j: FRAX => 3Crv, dx: 3.00 [3000000000000000000], min_dy: 32.00 [32000000000000000000])", "Curve2AssetsAdapter: Incorrect parse exchange");
|
|
13
13
|
parsed = parser.parse(ifc.encodeFunctionData("exchange_underlying", [
|
|
14
14
|
0,
|
|
15
15
|
1,
|
|
16
|
-
|
|
17
|
-
|
|
16
|
+
sdk_gov_1.WAD * 3n,
|
|
17
|
+
sdk_gov_1.WAD * 32n,
|
|
18
18
|
]));
|
|
19
19
|
(0, chai_1.expect)(parsed).to.be.eq("Curve2AssetsAdapter[CURVE_FRAX_POOL].exchange_underlying(i ,j: FRAX => DAI, dx: 3.00 [3000000000000000000], min_dy: 32.00 [32000000000000000000])", "Curve2AssetsAdapter: Incorrect parse exchange_underlying");
|
|
20
|
-
parsed = parser.parse(ifc.encodeFunctionData("add_liquidity_one_coin", [
|
|
20
|
+
parsed = parser.parse(ifc.encodeFunctionData("add_liquidity_one_coin", [sdk_gov_1.WAD * 3n, 0, sdk_gov_1.WAD * 2n]));
|
|
21
21
|
(0, chai_1.expect)(parsed).to.be.eq("Curve2AssetsAdapter[CURVE_FRAX_POOL].add_liquidity_one_coin(amount: 3.00 [3000000000000000000], i: FRAX, minAmount: 2.00 [2000000000000000000])", "Curve2AssetsAdapter: Incorrect parse add_liquidity_one_coin");
|
|
22
|
-
parsed = parser.parse(ifc.encodeFunctionData("add_all_liquidity_one_coin", [0,
|
|
22
|
+
parsed = parser.parse(ifc.encodeFunctionData("add_all_liquidity_one_coin", [0, sdk_gov_1.RAY * 912n]));
|
|
23
23
|
(0, chai_1.expect)(parsed).to.be.eq("Curve2AssetsAdapter[CURVE_FRAX_POOL].add_all_liquidity_one_coin(i: FRAX, rateMinRAY: 912.00)", "Curve2AssetsAdapter: Incorrect parse add_all_liquidity_one_coin");
|
|
24
|
-
parsed = parser.parse(ifc.encodeFunctionData("remove_all_liquidity_one_coin", [0,
|
|
24
|
+
parsed = parser.parse(ifc.encodeFunctionData("remove_all_liquidity_one_coin", [0, sdk_gov_1.RAY * 721n]));
|
|
25
25
|
(0, chai_1.expect)(parsed).to.be.eq("Curve2AssetsAdapter[CURVE_FRAX_POOL].remove_all_liquidity_one_coin(i: FRAX, rateMinRAY: 721.00)", "Curve2AssetsAdapter: Incorrect parse remove_all_liquidity_one_coin");
|
|
26
26
|
parsed = parser.parse(ifc.encodeFunctionData("add_liquidity", [
|
|
27
|
-
[
|
|
28
|
-
|
|
27
|
+
[sdk_gov_1.WAD * 100n, sdk_gov_1.WAD * 100n],
|
|
28
|
+
sdk_gov_1.WAD * 80n,
|
|
29
29
|
]));
|
|
30
30
|
(0, chai_1.expect)(parsed).to.be.eq("Curve2AssetsAdapter[CURVE_FRAX_POOL].add_liquidity(amounts: [FRAX: 100.00 [100000000000000000000], 3Crv: 100.00 [100000000000000000000]], minAmount: 80.00 [80000000000000000000])", "Curve2AssetsAdapter: Incorrect parse add_liquidity");
|
|
31
31
|
parsed = parser.parse(ifc.encodeFunctionData("remove_liquidity", [
|
|
32
|
-
|
|
33
|
-
[
|
|
32
|
+
sdk_gov_1.WAD * 120n,
|
|
33
|
+
[sdk_gov_1.WAD * 100n, sdk_gov_1.WAD * 100n],
|
|
34
34
|
]));
|
|
35
35
|
(0, chai_1.expect)(parsed).to.be.eq("Curve2AssetsAdapter[CURVE_FRAX_POOL].remove_liquidity(amount: 120.00 [120000000000000000000], min_amounts: [FRAX: 100.00 [100000000000000000000], 3Crv: 100.00 [100000000000000000000]])", "Curve2AssetsAdapter: Incorrect parse remove_liquidity");
|
|
36
36
|
parsed = parser.parse(ifc.encodeFunctionData("remove_liquidity_imbalance", [
|
|
37
|
-
[
|
|
38
|
-
|
|
37
|
+
[sdk_gov_1.WAD * 100n, sdk_gov_1.WAD * 100n],
|
|
38
|
+
sdk_gov_1.WAD * 80n,
|
|
39
39
|
]));
|
|
40
40
|
(0, chai_1.expect)(parsed).to.be.eq("Curve2AssetsAdapter[CURVE_FRAX_POOL].remove_liquidity_imbalance(amounts: [FRAX: 100.00 [100000000000000000000], 3Crv: 100.00 [100000000000000000000]], max_burn_amount: 80.00 [80000000000000000000])", "Curve2AssetsAdapter: Incorrect parse remove_liquidity_imbalance");
|
|
41
41
|
});
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { SupportedContract } from "
|
|
1
|
+
import { SupportedContract } from "@gearbox-protocol/sdk-gov";
|
|
2
2
|
import { AbstractParser } from "./abstractParser";
|
|
3
3
|
import { IParser } from "./iParser";
|
|
4
4
|
export declare class LidoAdapterParser extends AbstractParser implements IParser {
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const sdk_gov_1 = require("@gearbox-protocol/sdk-gov");
|
|
3
4
|
const chai_1 = require("chai");
|
|
4
|
-
const constants_1 = require("../core/constants");
|
|
5
5
|
const types_1 = require("../types");
|
|
6
6
|
const lidoAdapterParser_1 = require("./lidoAdapterParser");
|
|
7
7
|
describe("LidoAdapterParser test", () => {
|
|
8
8
|
it("submit & submitAll function works well", () => {
|
|
9
9
|
let parser = new lidoAdapterParser_1.LidoAdapterParser("LIDO_STETH_GATEWAY", false);
|
|
10
10
|
const ifc = types_1.ILidoV1Adapter__factory.createInterface();
|
|
11
|
-
let parsed = parser.parse(ifc.encodeFunctionData("submit", [
|
|
11
|
+
let parsed = parser.parse(ifc.encodeFunctionData("submit", [sdk_gov_1.WAD * 1020n]));
|
|
12
12
|
(0, chai_1.expect)(parsed).to.be.eq("LidoV1Adapter[LIDO_STETH_GATEWAY].submit(amount: 1.02K [1020000000000000000000])", "Incorrect parse submit(amount)");
|
|
13
13
|
parser = new lidoAdapterParser_1.LidoAdapterParser("LIDO_STETH_GATEWAY", true);
|
|
14
14
|
parsed = parser.parse(ifc.encodeFunctionData("submitAll"));
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { SupportedToken } from "
|
|
1
|
+
import { SupportedToken } from "@gearbox-protocol/sdk-gov";
|
|
2
2
|
import { AbstractParser } from "./abstractParser";
|
|
3
3
|
import { IParser } from "./iParser";
|
|
4
4
|
export declare class LidoSTETHParser extends AbstractParser implements IParser {
|
|
@@ -1,6 +1,4 @@
|
|
|
1
|
-
import { SupportedContract } from "
|
|
2
|
-
import { NetworkType } from "../core/chains";
|
|
3
|
-
import { SupportedToken } from "../tokens/token";
|
|
1
|
+
import { NetworkType, SupportedContract, SupportedToken } from "@gearbox-protocol/sdk-gov";
|
|
4
2
|
import { MultiCallStruct } from "../types/@gearbox-protocol/router/contracts/interfaces/IClosePathResolver";
|
|
5
3
|
import { AbstractParser } from "./abstractParser";
|
|
6
4
|
import { IParser } from "./iParser";
|
package/lib/parsers/txParser.js
CHANGED
|
@@ -1,10 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.TxParser = void 0;
|
|
4
|
-
const
|
|
5
|
-
const contracts_1 = require("../contracts/contracts");
|
|
6
|
-
const token_1 = require("../tokens/token");
|
|
7
|
-
const mappers_1 = require("../utils/mappers");
|
|
4
|
+
const sdk_gov_1 = require("@gearbox-protocol/sdk-gov");
|
|
8
5
|
const addressProviderParser_1 = require("./addressProviderParser");
|
|
9
6
|
const airdropDistributorParser_1 = require("./airdropDistributorParser");
|
|
10
7
|
const convexBaseRewardPoolAdapterParser_1 = require("./convexBaseRewardPoolAdapterParser");
|
|
@@ -48,9 +45,9 @@ class TxParser {
|
|
|
48
45
|
}
|
|
49
46
|
static addAdapters(adapters) {
|
|
50
47
|
for (let a of adapters) {
|
|
51
|
-
const contract =
|
|
52
|
-
if (contract &&
|
|
53
|
-
TxParser.chooseContractParser(a.adapter, contract,
|
|
48
|
+
const contract = sdk_gov_1.contractsByAddress[a.contract.toLowerCase()];
|
|
49
|
+
if (contract && sdk_gov_1.contractParams[contract]) {
|
|
50
|
+
TxParser.chooseContractParser(a.adapter, contract, sdk_gov_1.contractParams[contract].type, false);
|
|
54
51
|
}
|
|
55
52
|
else {
|
|
56
53
|
console.error(`Unknown address: ${contract} at ${a.contract}`);
|
|
@@ -58,16 +55,16 @@ class TxParser {
|
|
|
58
55
|
}
|
|
59
56
|
}
|
|
60
57
|
static addContracts(network) {
|
|
61
|
-
|
|
62
|
-
const address =
|
|
58
|
+
sdk_gov_1.TypedObjectUtils.entries(sdk_gov_1.contractParams).forEach(([contract, contractData]) => {
|
|
59
|
+
const address = sdk_gov_1.contractsByNetwork[network][contract];
|
|
63
60
|
TxParser.chooseContractParser(address, contract, contractData.type, true);
|
|
64
|
-
if (contractData.type ===
|
|
61
|
+
if (contractData.type === sdk_gov_1.AdapterInterface.CONVEX_V1_BASE_REWARD_POOL) {
|
|
65
62
|
contractData.extraRewards.forEach(r => {
|
|
66
63
|
const extraAddress = r.poolAddress[network];
|
|
67
64
|
TxParser._addParser(extraAddress, new convextRewardPoolParser_1.ConvexRewardPoolParser(r.rewardToken));
|
|
68
65
|
});
|
|
69
66
|
}
|
|
70
|
-
if (contractData.type ===
|
|
67
|
+
if (contractData.type === sdk_gov_1.AdapterInterface.LIDO_V1) {
|
|
71
68
|
const extraAddress = contractData.oracle[network];
|
|
72
69
|
TxParser._addParser(extraAddress, new lidoOracleParser_1.LidoOracleParser());
|
|
73
70
|
}
|
|
@@ -77,14 +74,14 @@ class TxParser {
|
|
|
77
74
|
TxParser._addParser(creditFacade, new creditFacadeParser_1.CreditFacadeParser(underlying));
|
|
78
75
|
}
|
|
79
76
|
static addTokens(network) {
|
|
80
|
-
|
|
77
|
+
sdk_gov_1.TypedObjectUtils.entries(sdk_gov_1.tokenDataByNetwork[network]).forEach(([s, t]) => {
|
|
81
78
|
if (s === "STETH") {
|
|
82
79
|
TxParser._addParser(t, new lidoSTETHParser_1.LidoSTETHParser(s));
|
|
83
80
|
}
|
|
84
81
|
else {
|
|
85
|
-
const contract =
|
|
82
|
+
const contract = sdk_gov_1.contractsByAddress[t.toLowerCase()];
|
|
86
83
|
if (contract) {
|
|
87
|
-
TxParser.chooseContractParser(t, contract,
|
|
84
|
+
TxParser.chooseContractParser(t, contract, sdk_gov_1.contractParams[contract].type, true);
|
|
88
85
|
}
|
|
89
86
|
else {
|
|
90
87
|
TxParser._addParser(t, new ERC20Parser_1.ERC20Parser(s));
|
|
@@ -124,7 +121,7 @@ class TxParser {
|
|
|
124
121
|
}
|
|
125
122
|
static chooseContractParser(address, contract, adapterType, isContract) {
|
|
126
123
|
const addressLC = address.toLowerCase();
|
|
127
|
-
switch (
|
|
124
|
+
switch (sdk_gov_1.AdapterInterface[adapterType]) {
|
|
128
125
|
case "UNISWAP_V2_ROUTER":
|
|
129
126
|
TxParser._addParser(addressLC, new uniV2AdapterParser_1.UniswapV2AdapterParser(contract, isContract));
|
|
130
127
|
break;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { SupportedContract } from "
|
|
1
|
+
import { SupportedContract } from "@gearbox-protocol/sdk-gov";
|
|
2
2
|
import { AbstractParser } from "./abstractParser";
|
|
3
3
|
import { IParser } from "./iParser";
|
|
4
4
|
export declare class UniswapV2AdapterParser extends AbstractParser implements IParser {
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const sdk_gov_1 = require("@gearbox-protocol/sdk-gov");
|
|
3
4
|
const chai_1 = require("chai");
|
|
4
|
-
const constants_1 = require("../core/constants");
|
|
5
|
-
const token_1 = require("../tokens/token");
|
|
6
5
|
const types_1 = require("../types");
|
|
7
6
|
const uniV2AdapterParser_1 = require("./uniV2AdapterParser");
|
|
8
7
|
describe("UniswapV2AdapterParser test", () => {
|
|
@@ -10,35 +9,35 @@ describe("UniswapV2AdapterParser test", () => {
|
|
|
10
9
|
let parser = new uniV2AdapterParser_1.UniswapV2AdapterParser("UNISWAP_V2_ROUTER", false);
|
|
11
10
|
const ifc = types_1.IUniswapV2Adapter__factory.createInterface();
|
|
12
11
|
let parsed = parser.parse(ifc.encodeFunctionData("swapExactTokensForTokens", [
|
|
13
|
-
|
|
12
|
+
sdk_gov_1.WAD * 180000n,
|
|
14
13
|
BigInt(1e6) * 45n,
|
|
15
14
|
[
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
15
|
+
sdk_gov_1.tokenDataByNetwork.Mainnet.DAI,
|
|
16
|
+
sdk_gov_1.tokenDataByNetwork.Mainnet.WETH,
|
|
17
|
+
sdk_gov_1.tokenDataByNetwork.Mainnet.USDC,
|
|
19
18
|
],
|
|
20
|
-
|
|
19
|
+
sdk_gov_1.DUMB_ADDRESS,
|
|
21
20
|
45000,
|
|
22
21
|
]));
|
|
23
22
|
(0, chai_1.expect)(parsed).to.be.eq("UniswapV2Adapter[UNISWAP_V2_ROUTER].swapExactTokensForTokens(amountIn: 180.00K [180000000000000000000000], amountOutMin: 45.00 [45000000], path: [DAI => WETH => USDC])", "Incorrect parse swapExactTokensForTokens");
|
|
24
23
|
parsed = parser.parse(ifc.encodeFunctionData("swapTokensForExactTokens", [
|
|
25
24
|
BigInt(1e6) * 234500n,
|
|
26
|
-
|
|
25
|
+
sdk_gov_1.WAD * 17700n,
|
|
27
26
|
[
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
27
|
+
sdk_gov_1.tokenDataByNetwork.Mainnet.USDC,
|
|
28
|
+
sdk_gov_1.tokenDataByNetwork.Mainnet.DAI,
|
|
29
|
+
sdk_gov_1.tokenDataByNetwork.Mainnet.FRAX,
|
|
31
30
|
],
|
|
32
|
-
|
|
31
|
+
sdk_gov_1.DUMB_ADDRESS,
|
|
33
32
|
45033,
|
|
34
33
|
]));
|
|
35
34
|
(0, chai_1.expect)(parsed).to.be.eq("UniswapV2Adapter[UNISWAP_V2_ROUTER].swapTokensForExactTokens(amountOut: 234.50K [234500000000], amountInMax: 17.70K [17700000000000000000000], path: [USDC => DAI => FRAX])", "Incorrect parse swapTokensForExactTokens");
|
|
36
35
|
parsed = parser.parse(ifc.encodeFunctionData("swapAllTokensForTokens", [
|
|
37
|
-
|
|
36
|
+
sdk_gov_1.RAY * 3240n,
|
|
38
37
|
[
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
38
|
+
sdk_gov_1.tokenDataByNetwork.Mainnet.USDC,
|
|
39
|
+
sdk_gov_1.tokenDataByNetwork.Mainnet.DAI,
|
|
40
|
+
sdk_gov_1.tokenDataByNetwork.Mainnet.FRAX,
|
|
42
41
|
],
|
|
43
42
|
45033,
|
|
44
43
|
]));
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { SupportedContract } from "
|
|
1
|
+
import { SupportedContract } from "@gearbox-protocol/sdk-gov";
|
|
2
2
|
import { AbstractParser } from "./abstractParser";
|
|
3
3
|
import { IParser } from "./iParser";
|
|
4
4
|
export declare class UniswapV3AdapterParser extends AbstractParser implements IParser {
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const solidity_1 = require("@ethersproject/solidity");
|
|
4
|
+
const sdk_gov_1 = require("@gearbox-protocol/sdk-gov");
|
|
4
5
|
const chai_1 = require("chai");
|
|
5
|
-
const constants_1 = require("../core/constants");
|
|
6
|
-
const token_1 = require("../tokens/token");
|
|
7
6
|
const types_1 = require("../types");
|
|
8
7
|
const uniV3AdapterParser_1 = require("./uniV3AdapterParser");
|
|
9
8
|
const pathToUniV3Path = (path) => {
|
|
@@ -61,13 +60,13 @@ describe("UniswapV3AdapterParser test", () => {
|
|
|
61
60
|
parsed = parser.parse(ifc.encodeFunctionData("exactInput", [
|
|
62
61
|
{
|
|
63
62
|
path: pathToUniV3Path([
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
63
|
+
sdk_gov_1.tokenDataByNetwork.Mainnet.AAVE,
|
|
64
|
+
sdk_gov_1.tokenDataByNetwork.Mainnet.LINK,
|
|
65
|
+
sdk_gov_1.tokenDataByNetwork.Mainnet.USDC,
|
|
67
66
|
]),
|
|
68
|
-
recipient:
|
|
67
|
+
recipient: sdk_gov_1.DUMB_ADDRESS,
|
|
69
68
|
deadline: 1232131,
|
|
70
|
-
amountIn:
|
|
69
|
+
amountIn: sdk_gov_1.WAD * 12399n,
|
|
71
70
|
amountOutMinimum: BigInt(1e6) * 122n,
|
|
72
71
|
},
|
|
73
72
|
]));
|
|
@@ -75,11 +74,11 @@ describe("UniswapV3AdapterParser test", () => {
|
|
|
75
74
|
parsed = parser.parse(ifc.encodeFunctionData("exactAllInput", [
|
|
76
75
|
{
|
|
77
76
|
path: pathToUniV3Path([
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
77
|
+
sdk_gov_1.tokenDataByNetwork.Mainnet.AAVE,
|
|
78
|
+
sdk_gov_1.tokenDataByNetwork.Mainnet.LINK,
|
|
79
|
+
sdk_gov_1.tokenDataByNetwork.Mainnet.USDC,
|
|
81
80
|
]),
|
|
82
|
-
rateMinRAY:
|
|
81
|
+
rateMinRAY: sdk_gov_1.RAY * 1200n,
|
|
83
82
|
deadline: 1232131,
|
|
84
83
|
},
|
|
85
84
|
]));
|
|
@@ -105,14 +104,14 @@ describe("UniswapV3AdapterParser test", () => {
|
|
|
105
104
|
parsed = parser.parse(ifc.encodeFunctionData("exactOutput", [
|
|
106
105
|
{
|
|
107
106
|
path: pathToUniV3Path([
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
107
|
+
sdk_gov_1.tokenDataByNetwork.Mainnet.AAVE,
|
|
108
|
+
sdk_gov_1.tokenDataByNetwork.Mainnet.LINK,
|
|
109
|
+
sdk_gov_1.tokenDataByNetwork.Mainnet.USDC,
|
|
111
110
|
]),
|
|
112
|
-
recipient:
|
|
111
|
+
recipient: sdk_gov_1.DUMB_ADDRESS,
|
|
113
112
|
deadline: 1232131,
|
|
114
113
|
amountInMaximum: 123e6,
|
|
115
|
-
amountOut:
|
|
114
|
+
amountOut: sdk_gov_1.WAD * 122n,
|
|
116
115
|
},
|
|
117
116
|
]));
|
|
118
117
|
(0, chai_1.expect)(parsed).to.be.eq("UniswapV3Adapter[UNISWAP_V3_ROUTER].exactOutput(amountInMaximum: 123.00 [123000000], amountOut: 122.00 [122000000000000000000], path: USDC ==(fee: 3000)==> LINK ==(fee: 3000)==> AAVE", "Incorrect parse swapExactTokensForTokens");
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { SupportedContract } from "
|
|
1
|
+
import { SupportedContract } from "@gearbox-protocol/sdk-gov";
|
|
2
2
|
import { AbstractParser } from "./abstractParser";
|
|
3
3
|
import { IParser } from "./iParser";
|
|
4
4
|
export declare class WstETHAdapterParser extends AbstractParser implements IParser {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const sdk_gov_1 = require("@gearbox-protocol/sdk-gov");
|
|
3
4
|
const chai_1 = require("chai");
|
|
4
|
-
const constants_1 = require("../core/constants");
|
|
5
5
|
const types_1 = require("../types");
|
|
6
6
|
const wstETHAdapterParser_1 = require("./wstETHAdapterParser");
|
|
7
7
|
describe("WstETHAdapterParser test", () => {
|
|
@@ -13,9 +13,9 @@ describe("WstETHAdapterParser test", () => {
|
|
|
13
13
|
parsed = parser.parse(ifc.encodeFunctionData("unwrapAll"));
|
|
14
14
|
(0, chai_1.expect)(parsed).to.be.eq("wstETHAdapter[LIDO_WSTETH].unwrapAll()", "Incorrect parse unwrapAll()");
|
|
15
15
|
parser = new wstETHAdapterParser_1.WstETHAdapterParser("LIDO_WSTETH", true);
|
|
16
|
-
parsed = parser.parse(ifc.encodeFunctionData("wrap", [
|
|
16
|
+
parsed = parser.parse(ifc.encodeFunctionData("wrap", [sdk_gov_1.WAD * 1020n]));
|
|
17
17
|
(0, chai_1.expect)(parsed).to.be.eq("Contract[LIDO_WSTETH].wrap(amount: 1.02K [1020000000000000000000])", "Incorrect parse wrap(amount)");
|
|
18
|
-
parsed = parser.parse(ifc.encodeFunctionData("unwrap", [
|
|
18
|
+
parsed = parser.parse(ifc.encodeFunctionData("unwrap", [sdk_gov_1.WAD * 1020n]));
|
|
19
19
|
(0, chai_1.expect)(parsed).to.be.eq("Contract[LIDO_WSTETH].unwrap(amount: 1.02K [1020000000000000000000])", "Incorrect parse unwrap(amount)");
|
|
20
20
|
});
|
|
21
21
|
});
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const sdk_gov_1 = require("@gearbox-protocol/sdk-gov");
|
|
3
4
|
const chai_1 = require("chai");
|
|
4
|
-
const constants_1 = require("../core/constants");
|
|
5
5
|
const types_1 = require("../types");
|
|
6
6
|
const yearnV2AdapterParser_1 = require("./yearnV2AdapterParser");
|
|
7
7
|
describe("YearnV2AdapterParser test", () => {
|
|
@@ -10,27 +10,27 @@ describe("YearnV2AdapterParser test", () => {
|
|
|
10
10
|
const ifc = types_1.IYearnV2Adapter__factory.createInterface();
|
|
11
11
|
let parsed = parser.parse(ifc.encodeFunctionData("deposit()"));
|
|
12
12
|
(0, chai_1.expect)(parsed).to.be.eq("YearnV2Adapter[YEARN_CURVE_STETH_VAULT].deposit()", "Incorrect parse deposit()");
|
|
13
|
-
parsed = parser.parse(ifc.encodeFunctionData("deposit(uint256)", [
|
|
13
|
+
parsed = parser.parse(ifc.encodeFunctionData("deposit(uint256)", [sdk_gov_1.WAD * 19000n]));
|
|
14
14
|
(0, chai_1.expect)(parsed).to.be.eq("YearnV2Adapter[YEARN_CURVE_STETH_VAULT].deposit(amount: 19.00K [19000000000000000000000])", "Incorrect parse deposit(amount)");
|
|
15
15
|
parsed = parser.parse(ifc.encodeFunctionData("deposit(uint256,address)", [
|
|
16
|
-
|
|
17
|
-
|
|
16
|
+
sdk_gov_1.WAD * 19000n,
|
|
17
|
+
sdk_gov_1.DUMB_ADDRESS,
|
|
18
18
|
]));
|
|
19
|
-
(0, chai_1.expect)(parsed).to.be.eq(`YearnV2Adapter[YEARN_CURVE_STETH_VAULT].deposit(amount: 19.00K [19000000000000000000000], address: ${
|
|
19
|
+
(0, chai_1.expect)(parsed).to.be.eq(`YearnV2Adapter[YEARN_CURVE_STETH_VAULT].deposit(amount: 19.00K [19000000000000000000000], address: ${sdk_gov_1.DUMB_ADDRESS})`, "Incorrect parse deposit(amount,address)");
|
|
20
20
|
parsed = parser.parse(ifc.encodeFunctionData("withdraw()"));
|
|
21
21
|
(0, chai_1.expect)(parsed).to.be.eq("YearnV2Adapter[YEARN_CURVE_STETH_VAULT].withdraw()", "Incorrect parse withdraw()");
|
|
22
|
-
parsed = parser.parse(ifc.encodeFunctionData("withdraw(uint256)", [
|
|
22
|
+
parsed = parser.parse(ifc.encodeFunctionData("withdraw(uint256)", [sdk_gov_1.WAD * 19000n]));
|
|
23
23
|
(0, chai_1.expect)(parsed).to.be.eq("YearnV2Adapter[YEARN_CURVE_STETH_VAULT].withdraw(amount: 19.00K [19000000000000000000000])", "Incorrect parse withdraw(amount)");
|
|
24
24
|
parsed = parser.parse(ifc.encodeFunctionData("withdraw(uint256,address)", [
|
|
25
|
-
|
|
26
|
-
|
|
25
|
+
sdk_gov_1.WAD * 19000n,
|
|
26
|
+
sdk_gov_1.DUMB_ADDRESS,
|
|
27
27
|
]));
|
|
28
|
-
(0, chai_1.expect)(parsed).to.be.eq(`YearnV2Adapter[YEARN_CURVE_STETH_VAULT].withdraw(amount: 19.00K [19000000000000000000000], address: ${
|
|
28
|
+
(0, chai_1.expect)(parsed).to.be.eq(`YearnV2Adapter[YEARN_CURVE_STETH_VAULT].withdraw(amount: 19.00K [19000000000000000000000], address: ${sdk_gov_1.DUMB_ADDRESS})`, "Incorrect parse withdraw(amount,address)");
|
|
29
29
|
parsed = parser.parse(ifc.encodeFunctionData("withdraw(uint256,address,uint256)", [
|
|
30
|
-
|
|
31
|
-
|
|
30
|
+
sdk_gov_1.WAD * 19000n,
|
|
31
|
+
sdk_gov_1.DUMB_ADDRESS,
|
|
32
32
|
555,
|
|
33
33
|
]));
|
|
34
|
-
(0, chai_1.expect)(parsed).to.be.eq(`YearnV2Adapter[YEARN_CURVE_STETH_VAULT].withdraw(amount: 19.00K [19000000000000000000000], address: ${
|
|
34
|
+
(0, chai_1.expect)(parsed).to.be.eq(`YearnV2Adapter[YEARN_CURVE_STETH_VAULT].withdraw(amount: 19.00K [19000000000000000000000], address: ${sdk_gov_1.DUMB_ADDRESS}, maxLoss: 555)`, "Incorrect parse withdraw(amount,address,uint256)");
|
|
35
35
|
});
|
|
36
36
|
});
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { SupportedContract } from "
|
|
1
|
+
import { SupportedContract } from "@gearbox-protocol/sdk-gov";
|
|
2
2
|
import { AbstractParser } from "./abstractParser";
|
|
3
3
|
import { IParser } from "./iParser";
|
|
4
4
|
export declare class YearnV2AdapterParser extends AbstractParser implements IParser {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.YearnV2AdapterParser = void 0;
|
|
4
|
-
const
|
|
4
|
+
const sdk_gov_1 = require("@gearbox-protocol/sdk-gov");
|
|
5
5
|
const types_1 = require("../types");
|
|
6
6
|
const abstractParser_1 = require("./abstractParser");
|
|
7
7
|
class YearnV2AdapterParser extends abstractParser_1.AbstractParser {
|
|
@@ -20,7 +20,7 @@ class YearnV2AdapterParser extends abstractParser_1.AbstractParser {
|
|
|
20
20
|
case "withdraw(uint256)":
|
|
21
21
|
case "withdraw(uint256,address,uint256)": {
|
|
22
22
|
const [amount, address, maxLoss] = this.decodeFunctionData(functionFragment, calldata);
|
|
23
|
-
const yvSym = this.tokenSymbol(
|
|
23
|
+
const yvSym = this.tokenSymbol(sdk_gov_1.contractsByNetwork.Mainnet[this.contract]);
|
|
24
24
|
const amountStr = amount
|
|
25
25
|
? `amount: ${this.formatBN(amount, yvSym)}`
|
|
26
26
|
: "";
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
+
import { CurveLPToken, NetworkType } from "@gearbox-protocol/sdk-gov";
|
|
1
2
|
import { BigNumberish } from "ethers";
|
|
2
|
-
import { NetworkType } from "../core/chains";
|
|
3
|
-
import { CurveLPToken } from "../tokens/curveLP";
|
|
4
3
|
export interface PathOption {
|
|
5
4
|
target: string;
|
|
6
5
|
option: number;
|
|
@@ -1,11 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.PathOptionFactory = void 0;
|
|
4
|
-
const
|
|
5
|
-
const convex_1 = require("../tokens/convex");
|
|
6
|
-
const curveLP_1 = require("../tokens/curveLP");
|
|
7
|
-
const token_1 = require("../tokens/token");
|
|
8
|
-
const yearn_1 = require("../tokens/yearn");
|
|
4
|
+
const sdk_gov_1 = require("@gearbox-protocol/sdk-gov");
|
|
9
5
|
const formatter_1 = require("../utils/formatter");
|
|
10
6
|
class PathOptionFactory {
|
|
11
7
|
static generatePathOptions(balances, loopsInTx) {
|
|
@@ -13,9 +9,9 @@ class PathOptionFactory {
|
|
|
13
9
|
const network = PathOptionFactory.detectNetwork(Object.keys(balances)[0]);
|
|
14
10
|
const initPO = curvePools.map(symbol => {
|
|
15
11
|
return {
|
|
16
|
-
target:
|
|
12
|
+
target: sdk_gov_1.tokenDataByNetwork[network][symbol],
|
|
17
13
|
option: 0,
|
|
18
|
-
totalOptions:
|
|
14
|
+
totalOptions: sdk_gov_1.contractParams[sdk_gov_1.curveTokens[symbol].pool]
|
|
19
15
|
.tokens.length,
|
|
20
16
|
};
|
|
21
17
|
});
|
|
@@ -33,27 +29,27 @@ class PathOptionFactory {
|
|
|
33
29
|
return result;
|
|
34
30
|
}
|
|
35
31
|
static getCurvePools(balances) {
|
|
36
|
-
const curveSymbols = Object.keys(
|
|
32
|
+
const curveSymbols = Object.keys(sdk_gov_1.curveTokens);
|
|
37
33
|
const curvePools = Object.entries(balances)
|
|
38
34
|
.filter(([, balance]) => (0, formatter_1.toBigInt)(balance) > 1)
|
|
39
|
-
.map(([token]) =>
|
|
35
|
+
.map(([token]) => sdk_gov_1.tokenSymbolByAddress[token.toLowerCase()])
|
|
40
36
|
.filter(symbol => curveSymbols.includes(symbol));
|
|
41
|
-
const yearnCurveTokens = Object.entries(
|
|
37
|
+
const yearnCurveTokens = Object.entries(sdk_gov_1.yearnTokens)
|
|
42
38
|
.filter(([, data]) => curveSymbols.includes(data.underlying))
|
|
43
39
|
.map(([token]) => token);
|
|
44
40
|
const curvePoolsFromYearn = Object.entries(balances)
|
|
45
41
|
.filter(([, balance]) => (0, formatter_1.toBigInt)(balance) > 1)
|
|
46
|
-
.map(([token]) =>
|
|
42
|
+
.map(([token]) => sdk_gov_1.tokenSymbolByAddress[token.toLowerCase()])
|
|
47
43
|
.filter(symbol => yearnCurveTokens.includes(symbol))
|
|
48
|
-
.map(symbol =>
|
|
49
|
-
const convexCurveTokens = Object.entries(
|
|
44
|
+
.map(symbol => sdk_gov_1.yearnTokens[symbol].underlying);
|
|
45
|
+
const convexCurveTokens = Object.entries(sdk_gov_1.convexTokens)
|
|
50
46
|
.filter(([, data]) => curveSymbols.includes(data.underlying))
|
|
51
47
|
.map(([token]) => token);
|
|
52
48
|
const curvePoolsFromConvex = Object.entries(balances)
|
|
53
49
|
.filter(([, balance]) => (0, formatter_1.toBigInt)(balance) > 1)
|
|
54
|
-
.map(([token]) =>
|
|
50
|
+
.map(([token]) => sdk_gov_1.tokenSymbolByAddress[token.toLowerCase()])
|
|
55
51
|
.filter(symbol => convexCurveTokens.includes(symbol))
|
|
56
|
-
.map(symbol =>
|
|
52
|
+
.map(symbol => sdk_gov_1.convexTokens[symbol].underlying);
|
|
57
53
|
const curveSet = new Set([
|
|
58
54
|
...curvePools,
|
|
59
55
|
...curvePoolsFromYearn,
|
|
@@ -74,7 +70,7 @@ class PathOptionFactory {
|
|
|
74
70
|
throw new Error("Path options overflow");
|
|
75
71
|
}
|
|
76
72
|
static detectNetwork(underlying) {
|
|
77
|
-
return
|
|
73
|
+
return sdk_gov_1.tokenDataByNetwork.Mainnet[sdk_gov_1.tokenSymbolByAddress[underlying.toLowerCase()]].toLowerCase() === underlying.toLowerCase()
|
|
78
74
|
? "Mainnet"
|
|
79
75
|
: "Arbitrum";
|
|
80
76
|
}
|