@gearbox-protocol/sdk 3.0.0-next.235 → 3.0.0-next.236

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.
Files changed (84) hide show
  1. package/lib/core/creditAccount.d.ts +5 -5
  2. package/lib/core/creditAccount.js +13 -11
  3. package/lib/core/creditManager.d.ts +0 -12
  4. package/lib/core/creditManager.js +0 -114
  5. package/lib/core/pool.d.ts +0 -6
  6. package/lib/core/pool.js +0 -11
  7. package/lib/core/rewardConvex.js +1 -1
  8. package/lib/gearboxRewards/api.d.ts +8 -2
  9. package/lib/gearboxRewards/api.js +31 -15
  10. package/lib/index.d.ts +0 -2
  11. package/lib/index.js +0 -2
  12. package/lib/pathfinder/core.d.ts +0 -14
  13. package/lib/pathfinder/core.js +0 -7
  14. package/lib/pathfinder/index.d.ts +0 -3
  15. package/lib/pathfinder/index.js +0 -3
  16. package/lib/payload/creditAccount.d.ts +4 -1
  17. package/lib/payload/pool.d.ts +0 -6
  18. package/package.json +1 -1
  19. package/lib/core/trade.d.ts +0 -38
  20. package/lib/core/trade.js +0 -110
  21. package/lib/parsers/ERC20Parser.d.ts +0 -8
  22. package/lib/parsers/ERC20Parser.js +0 -36
  23. package/lib/parsers/aaveV2LendingPoolAdapterParser.d.ts +0 -8
  24. package/lib/parsers/aaveV2LendingPoolAdapterParser.js +0 -21
  25. package/lib/parsers/aaveV2WrappedATokenAdapterParser.d.ts +0 -8
  26. package/lib/parsers/aaveV2WrappedATokenAdapterParser.js +0 -21
  27. package/lib/parsers/abstractParser.d.ts +0 -30
  28. package/lib/parsers/abstractParser.js +0 -61
  29. package/lib/parsers/balancerV2VaultParser.d.ts +0 -8
  30. package/lib/parsers/balancerV2VaultParser.js +0 -32
  31. package/lib/parsers/compoundV2CTokenAdapterParser.d.ts +0 -8
  32. package/lib/parsers/compoundV2CTokenAdapterParser.js +0 -21
  33. package/lib/parsers/convexBaseRewardPoolAdapterParser.d.ts +0 -10
  34. package/lib/parsers/convexBaseRewardPoolAdapterParser.js +0 -50
  35. package/lib/parsers/convexBoosterAdapterParser.d.ts +0 -10
  36. package/lib/parsers/convexBoosterAdapterParser.js +0 -44
  37. package/lib/parsers/convextRewardPoolParser.d.ts +0 -8
  38. package/lib/parsers/convextRewardPoolParser.js +0 -21
  39. package/lib/parsers/creditFacadeParser.d.ts +0 -11
  40. package/lib/parsers/creditFacadeParser.js +0 -84
  41. package/lib/parsers/creditManagerParser.d.ts +0 -7
  42. package/lib/parsers/creditManagerParser.js +0 -22
  43. package/lib/parsers/curveAdapterParser.d.ts +0 -13
  44. package/lib/parsers/curveAdapterParser.js +0 -124
  45. package/lib/parsers/erc626AdapterParser.d.ts +0 -8
  46. package/lib/parsers/erc626AdapterParser.js +0 -21
  47. package/lib/parsers/iParser.d.ts +0 -6
  48. package/lib/parsers/iParser.js +0 -2
  49. package/lib/parsers/lidoAdapterParser.d.ts +0 -8
  50. package/lib/parsers/lidoAdapterParser.js +0 -29
  51. package/lib/parsers/lidoSTETHParser.d.ts +0 -8
  52. package/lib/parsers/lidoSTETHParser.js +0 -36
  53. package/lib/parsers/priceOracleParser.d.ts +0 -7
  54. package/lib/parsers/priceOracleParser.js +0 -23
  55. package/lib/parsers/txParser.d.ts +0 -37
  56. package/lib/parsers/txParser.js +0 -170
  57. package/lib/parsers/uniV2AdapterParser.d.ts +0 -8
  58. package/lib/parsers/uniV2AdapterParser.js +0 -51
  59. package/lib/parsers/uniV2AdapterParser.spec.d.ts +0 -1
  60. package/lib/parsers/uniV2AdapterParser.spec.js +0 -59
  61. package/lib/parsers/uniV3AdapterParser.d.ts +0 -10
  62. package/lib/parsers/uniV3AdapterParser.js +0 -101
  63. package/lib/parsers/uniV3AdapterParser.spec.d.ts +0 -1
  64. package/lib/parsers/uniV3AdapterParser.spec.js +0 -96
  65. package/lib/parsers/wstETHAdapterParser.d.ts +0 -8
  66. package/lib/parsers/wstETHAdapterParser.js +0 -50
  67. package/lib/parsers/wstETHAdapterParser.spec.d.ts +0 -1
  68. package/lib/parsers/wstETHAdapterParser.spec.js +0 -37
  69. package/lib/parsers/yearnAdapterParser.spec.d.ts +0 -1
  70. package/lib/parsers/yearnAdapterParser.spec.js +0 -54
  71. package/lib/parsers/yearnV2AdapterParser.d.ts +0 -8
  72. package/lib/parsers/yearnV2AdapterParser.js +0 -57
  73. package/lib/pathfinder/balancerVault.d.ts +0 -33
  74. package/lib/pathfinder/balancerVault.js +0 -59
  75. package/lib/pathfinder/pathOptions.d.ts +0 -16
  76. package/lib/pathfinder/pathOptions.js +0 -93
  77. package/lib/pathfinder/pathOptions.spec.d.ts +0 -1
  78. package/lib/pathfinder/pathOptions.spec.js +0 -138
  79. package/lib/pathfinder/pathfinder.d.ts +0 -72
  80. package/lib/pathfinder/pathfinder.js +0 -176
  81. package/lib/pathfinder/pathfinder.spec.d.ts +0 -1
  82. package/lib/pathfinder/pathfinder.spec.js +0 -52
  83. package/lib/pathfinder/utils.d.ts +0 -34
  84. package/lib/pathfinder/utils.js +0 -186
@@ -1,22 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.CreditManagerParser = void 0;
4
- const types_1 = require("../types");
5
- const abstractParser_1 = require("./abstractParser");
6
- class CreditManagerParser extends abstractParser_1.AbstractParser {
7
- constructor(version) {
8
- super(`CreditManager_V${version}`);
9
- this.abi = version === 2 ? types_1.iCreditManagerV2Abi : types_1.iCreditManagerV3Abi;
10
- }
11
- parse(calldata) {
12
- const { functionName, functionData } = this.parseSelector(calldata);
13
- switch (functionData.functionName) {
14
- case "creditConfigurator": {
15
- return `${functionName}()`;
16
- }
17
- default:
18
- return this.reportUnknownFragment(this.adapterName || this.contract, functionName, calldata);
19
- }
20
- }
21
- }
22
- exports.CreditManagerParser = CreditManagerParser;
@@ -1,13 +0,0 @@
1
- import { SupportedContract, SupportedToken } from "@gearbox-protocol/sdk-gov";
2
- import { Address } from "viem";
3
- import { BigNumberish } from "../utils/formatter";
4
- import { AbstractParser } from "./abstractParser";
5
- import { IParser } from "./iParser";
6
- export declare class CurveAdapterParser extends AbstractParser implements IParser {
7
- protected lpToken: SupportedToken;
8
- constructor(contract: SupportedContract, isContract: boolean);
9
- parse(calldata: Address): string;
10
- getTokenByIndex(index: number): SupportedToken;
11
- getUnderlyingTokenByIndex(index: number): SupportedToken;
12
- convertAmounts(amounts: Array<BigNumberish>): string;
13
- }
@@ -1,124 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.CurveAdapterParser = void 0;
4
- const sdk_gov_1 = require("@gearbox-protocol/sdk-gov");
5
- const types_1 = require("../types");
6
- const abstractParser_1 = require("./abstractParser");
7
- class CurveAdapterParser extends abstractParser_1.AbstractParser {
8
- lpToken;
9
- constructor(contract, isContract) {
10
- super(contract);
11
- let contractName = "";
12
- const nCoins = sdk_gov_1.contractParams[contract].tokens.length;
13
- switch (nCoins) {
14
- case 2:
15
- this.abi = types_1.iCurveV1_2AssetsAdapterAbi;
16
- contractName = `Curve2AssetsAdapter`;
17
- break;
18
- case 3:
19
- this.abi = types_1.iCurveV1_3AssetsAdapterAbi;
20
- contractName = `Curve3AssetsAdapter`;
21
- break;
22
- case 4:
23
- this.abi = types_1.iCurveV1_4AssetsAdapterAbi;
24
- contractName = `Curve4AssetsAdapter`;
25
- break;
26
- default:
27
- throw new Error(`Unsupported curve contract ${contract}`);
28
- }
29
- this.lpToken = sdk_gov_1.contractParams[contract].lpToken;
30
- if (!isContract)
31
- this.adapterName = contractName;
32
- }
33
- parse(calldata) {
34
- const { functionName, functionData } = this.parseSelector(calldata);
35
- switch (functionData.functionName) {
36
- case "exchange":
37
- case "exchange_underlying": {
38
- const [i, j, dx, min_dy] = functionData.args || [];
39
- const iSym = functionData.functionName === "exchange_underlying"
40
- ? this.getUnderlyingTokenByIndex(i)
41
- : this.getTokenByIndex(i);
42
- const jSym = functionData.functionName === "exchange_underlying"
43
- ? this.getUnderlyingTokenByIndex(j)
44
- : this.getTokenByIndex(j);
45
- return `${functionName}(i ,j: ${iSym} => ${jSym}, dx: ${this.formatBN(dx, iSym)}, min_dy: ${this.formatBN(min_dy, jSym)})`;
46
- }
47
- case "exchange_diff":
48
- case "exchange_diff_underlying": {
49
- const [i, j, leftoverAmount, rateMinRAY] = functionData.args || [];
50
- const iSym = functionData.functionName === "exchange_diff_underlying"
51
- ? this.getUnderlyingTokenByIndex(i)
52
- : this.getTokenByIndex(i);
53
- const jSym = functionData.functionName === "exchange_diff_underlying"
54
- ? this.getUnderlyingTokenByIndex(j)
55
- : this.getTokenByIndex(j);
56
- return `${functionName}(i: ${iSym}, j: ${jSym}, leftoverAmount: ${this.formatBN(leftoverAmount, iSym)}, rateMinRAY: ${(0, sdk_gov_1.formatBN)(rateMinRAY, 27)}`;
57
- }
58
- case "add_liquidity_one_coin": {
59
- const [amount, i, minAmount] = functionData.args || [];
60
- const iSym = this.getTokenByIndex(i);
61
- return `${functionName}(amount: ${this.formatBN(amount, iSym)}, i: ${iSym}, minAmount: ${this.formatBN(minAmount, this.lpToken)})`;
62
- }
63
- case "add_diff_liquidity_one_coin":
64
- case "remove_diff_liquidity_one_coin": {
65
- const [leftoverAmount, i, rateMinRAY] = functionData.args || [];
66
- return `${functionName}(leftoverAmount: ${this.formatBN(leftoverAmount, i)}, i: ${this.getTokenByIndex(i)}, rateMinRAY: ${(0, sdk_gov_1.formatBN)(rateMinRAY, 27)})`;
67
- }
68
- case "add_liquidity": {
69
- const [amounts, minAmount] = functionData.args || [];
70
- return `${functionName}(amounts: [${this.convertAmounts(amounts)}], minAmount: ${this.formatBN(minAmount, this.lpToken)})`;
71
- }
72
- case "remove_liquidity": {
73
- const [amount, min_amounts] = functionData.args || [];
74
- return `${functionName}(amount: ${this.formatBN(amount, this.lpToken)}, min_amounts: [${this.convertAmounts(min_amounts)}])`;
75
- }
76
- case "remove_liquidity_imbalance": {
77
- const [amounts, maxBurnAmount] = functionData.args || [];
78
- return `${functionName}(amounts: [${this.convertAmounts(amounts)}], max_burn_amount: ${this.formatBN(maxBurnAmount, this.lpToken)})`;
79
- }
80
- case "remove_liquidity_one_coin": {
81
- const [amount, i, min_amount] = functionData.args || [];
82
- const iSym = this.getTokenByIndex(i);
83
- return `${functionName}(amount: ${this.formatBN(amount, this.lpToken)},i: ${iSym}, min_amount: ${this.formatBN(min_amount, iSym)})`;
84
- }
85
- case "totalSupply": {
86
- return `${functionName}()`;
87
- }
88
- case "balances": {
89
- const [i] = functionData.args || [];
90
- return `${functionName}(${this.getTokenByIndex(i)})`;
91
- }
92
- case "balanceOf": {
93
- const [address] = functionData.args || [];
94
- return `${functionName}(${address})`;
95
- }
96
- case "get_virtual_price": {
97
- return `${functionName}()`;
98
- }
99
- case "allowance": {
100
- const [account, to] = functionData.args || [];
101
- return `${functionName}(account: ${account}, to: ${to})`;
102
- }
103
- default:
104
- return this.reportUnknownFragment(this.adapterName || this.contract, functionName, calldata);
105
- }
106
- }
107
- getTokenByIndex(index) {
108
- return sdk_gov_1.contractParams[this.contract]
109
- .tokens[index];
110
- }
111
- getUnderlyingTokenByIndex(index) {
112
- return sdk_gov_1.contractParams[this.contract]
113
- .underlyings[index];
114
- }
115
- convertAmounts(amounts) {
116
- return amounts
117
- .map((a, coin) => {
118
- const sym = this.getTokenByIndex(coin);
119
- return `${sym}: ${this.formatBN(a, sym)}`;
120
- })
121
- .join(", ");
122
- }
123
- }
124
- exports.CurveAdapterParser = CurveAdapterParser;
@@ -1,8 +0,0 @@
1
- import { SupportedContract } from "@gearbox-protocol/sdk-gov";
2
- import { Address } from "viem";
3
- import { AbstractParser } from "./abstractParser";
4
- import { IParser } from "./iParser";
5
- export declare class ERC4626AdapterParser extends AbstractParser implements IParser {
6
- constructor(contract: SupportedContract, isContract: boolean);
7
- parse(calldata: Address): string;
8
- }
@@ -1,21 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ERC4626AdapterParser = void 0;
4
- const types_1 = require("../types");
5
- const abstractParser_1 = require("./abstractParser");
6
- class ERC4626AdapterParser extends abstractParser_1.AbstractParser {
7
- constructor(contract, isContract) {
8
- super(contract);
9
- this.abi = types_1.ierc4626AdapterAbi;
10
- if (!isContract)
11
- this.adapterName = "ERC4626Adapter";
12
- }
13
- parse(calldata) {
14
- const { functionName, functionData } = this.parseSelector(calldata);
15
- switch (functionData.functionName) {
16
- default:
17
- return this.reportUnknownFragment(this.adapterName || this.contract, functionName, calldata);
18
- }
19
- }
20
- }
21
- exports.ERC4626AdapterParser = ERC4626AdapterParser;
@@ -1,6 +0,0 @@
1
- import { Address } from "viem";
2
- import { ParsedObject } from "./abstractParser";
3
- export interface IParser {
4
- parse: (calldata: Address) => string;
5
- parseToObject?: (address: Address, calldata: Address) => ParsedObject;
6
- }
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,8 +0,0 @@
1
- import { SupportedContract } from "@gearbox-protocol/sdk-gov";
2
- import { Address } from "viem";
3
- import { AbstractParser } from "./abstractParser";
4
- import { IParser } from "./iParser";
5
- export declare class LidoAdapterParser extends AbstractParser implements IParser {
6
- constructor(contract: SupportedContract, isContract: boolean);
7
- parse(calldata: Address): string;
8
- }
@@ -1,29 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.LidoAdapterParser = void 0;
4
- const types_1 = require("../types");
5
- const abstractParser_1 = require("./abstractParser");
6
- class LidoAdapterParser extends abstractParser_1.AbstractParser {
7
- constructor(contract, isContract) {
8
- super(contract);
9
- this.abi = types_1.iLidoV1AdapterAbi;
10
- if (!isContract)
11
- this.adapterName = "LidoV1Adapter";
12
- }
13
- parse(calldata) {
14
- const { functionName, functionData } = this.parseSelector(calldata);
15
- switch (functionData.functionName) {
16
- case "submit": {
17
- const [amount] = functionData.args || [];
18
- return `${functionName}(amount: ${this.formatBN(amount, "STETH")})`;
19
- }
20
- case "submitDiff": {
21
- const [leftoverAmount] = functionData.args || [];
22
- return `${functionName}(leftoverAmount: ${this.formatBN(leftoverAmount, "STETH")})`;
23
- }
24
- default:
25
- return this.reportUnknownFragment(this.adapterName || this.contract, functionName, calldata);
26
- }
27
- }
28
- }
29
- exports.LidoAdapterParser = LidoAdapterParser;
@@ -1,8 +0,0 @@
1
- import { SupportedToken } from "@gearbox-protocol/sdk-gov";
2
- import { Address } from "viem";
3
- import { AbstractParser } from "./abstractParser";
4
- import { IParser } from "./iParser";
5
- export declare class LidoSTETHParser extends AbstractParser implements IParser {
6
- constructor(symbol: SupportedToken);
7
- parse(calldata: Address): string;
8
- }
@@ -1,36 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.LidoSTETHParser = void 0;
4
- const sdk_gov_1 = require("@gearbox-protocol/sdk-gov");
5
- const types_1 = require("../types");
6
- const abstractParser_1 = require("./abstractParser");
7
- class LidoSTETHParser extends abstractParser_1.AbstractParser {
8
- constructor(symbol) {
9
- super(`LIDO_${symbol}`);
10
- this.abi = types_1.istEthAbi;
11
- }
12
- parse(calldata) {
13
- const { functionName, functionData } = this.parseSelector(calldata);
14
- switch (functionData.functionName) {
15
- case "getFee":
16
- case "totalSupply": {
17
- return `${functionName}()`;
18
- }
19
- case "balanceOf": {
20
- const [address] = functionData.args || [];
21
- return `${functionName}(${address})`;
22
- }
23
- case "allowance": {
24
- const [account, to] = functionData.args || [];
25
- return `${functionName}(account: ${account}, to: ${to})`;
26
- }
27
- case "approve": {
28
- const [spender, amount] = functionData.args || [];
29
- return `${functionName}(${spender}, [${(0, sdk_gov_1.toBigInt)(amount).toString()}])`;
30
- }
31
- default:
32
- return this.reportUnknownFragment(this.adapterName || this.contract, functionName, calldata);
33
- }
34
- }
35
- }
36
- exports.LidoSTETHParser = LidoSTETHParser;
@@ -1,7 +0,0 @@
1
- import { Address } from "viem";
2
- import { AbstractParser } from "./abstractParser";
3
- import { IParser } from "./iParser";
4
- export declare class PriceOracleParser extends AbstractParser implements IParser {
5
- constructor();
6
- parse(calldata: Address): string;
7
- }
@@ -1,23 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.PriceOracleParser = void 0;
4
- const types_1 = require("../types");
5
- const abstractParser_1 = require("./abstractParser");
6
- class PriceOracleParser extends abstractParser_1.AbstractParser {
7
- constructor() {
8
- super("PriceOracle");
9
- this.abi = types_1.iPriceOracleBaseAbi;
10
- }
11
- parse(calldata) {
12
- const { functionName, functionData } = this.parseSelector(calldata);
13
- switch (functionData.functionName) {
14
- case "getPrice": {
15
- const [token] = functionData.args || [];
16
- return `${functionName}(${this.tokenSymbol(token)})`;
17
- }
18
- default:
19
- return this.reportUnknownFragment(this.adapterName || this.contract, functionName, calldata);
20
- }
21
- }
22
- }
23
- exports.PriceOracleParser = PriceOracleParser;
@@ -1,37 +0,0 @@
1
- import { NetworkType, SupportedContract, SupportedToken } from "@gearbox-protocol/sdk-gov";
2
- import { Address } from "viem";
3
- import { MultiCall } from "../pathfinder/core";
4
- import { AbstractParser } from "./abstractParser";
5
- import { IParser } from "./iParser";
6
- export interface AdapterForParser {
7
- adapter: Address;
8
- contract: Address;
9
- }
10
- interface ParseData {
11
- contract: string;
12
- adapterName: string;
13
- }
14
- export declare class TxParser {
15
- protected static parsers: Record<Address, IParser & AbstractParser>;
16
- static parse(address: Address, calldata: Address): string | null;
17
- static parseToObject(address: Address, calldata: Address): {
18
- callObject: import("./abstractParser").ParsedObject;
19
- parser: IParser & AbstractParser;
20
- } | null;
21
- static getParseData(address: Address): ParseData;
22
- static parseMultiCall(calls: Array<MultiCall>): (string | null)[];
23
- static parseToObjectMultiCall(calls: Array<MultiCall>): ({
24
- callObject: import("./abstractParser").ParsedObject;
25
- parser: IParser & AbstractParser;
26
- } | null)[];
27
- static addAdapters(adapters: Array<AdapterForParser>): void;
28
- static addContracts(network: NetworkType): void;
29
- static addCreditFacade(creditFacade: Address, underlying: SupportedToken, version: number): void;
30
- static addTokens(network: NetworkType): void;
31
- static addPriceOracle(address: Address): void;
32
- static addCreditManager(address: Address, version: number): void;
33
- static getParser(address: Address): IParser & AbstractParser;
34
- protected static chooseContractParser(address: Address, contract: SupportedContract, adapterType: number, isContract: boolean): void;
35
- protected static _addParser(address: Address, parser: IParser & AbstractParser): void;
36
- }
37
- export {};
@@ -1,170 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.TxParser = void 0;
4
- const sdk_gov_1 = require("@gearbox-protocol/sdk-gov");
5
- const aaveV2LendingPoolAdapterParser_1 = require("./aaveV2LendingPoolAdapterParser");
6
- const aaveV2WrappedATokenAdapterParser_1 = require("./aaveV2WrappedATokenAdapterParser");
7
- const balancerV2VaultParser_1 = require("./balancerV2VaultParser");
8
- const compoundV2CTokenAdapterParser_1 = require("./compoundV2CTokenAdapterParser");
9
- const convexBaseRewardPoolAdapterParser_1 = require("./convexBaseRewardPoolAdapterParser");
10
- const convexBoosterAdapterParser_1 = require("./convexBoosterAdapterParser");
11
- const convextRewardPoolParser_1 = require("./convextRewardPoolParser");
12
- const creditFacadeParser_1 = require("./creditFacadeParser");
13
- const creditManagerParser_1 = require("./creditManagerParser");
14
- const curveAdapterParser_1 = require("./curveAdapterParser");
15
- const ERC20Parser_1 = require("./ERC20Parser");
16
- const erc626AdapterParser_1 = require("./erc626AdapterParser");
17
- const lidoAdapterParser_1 = require("./lidoAdapterParser");
18
- const lidoSTETHParser_1 = require("./lidoSTETHParser");
19
- const priceOracleParser_1 = require("./priceOracleParser");
20
- const uniV2AdapterParser_1 = require("./uniV2AdapterParser");
21
- const uniV3AdapterParser_1 = require("./uniV3AdapterParser");
22
- const wstETHAdapterParser_1 = require("./wstETHAdapterParser");
23
- const yearnV2AdapterParser_1 = require("./yearnV2AdapterParser");
24
- class TxParser {
25
- static parsers = {};
26
- static parse(address, calldata) {
27
- let parser;
28
- try {
29
- parser = TxParser.getParser(address);
30
- const callStr = parser.parse(calldata);
31
- return callStr;
32
- }
33
- catch (e) {
34
- console.error(`Error while parsing ${address}`, parser, e);
35
- return null;
36
- }
37
- }
38
- static parseToObject(address, calldata) {
39
- let parser;
40
- try {
41
- parser = TxParser.getParser(address);
42
- const callObject = parser.parseToObject(address, calldata);
43
- return { callObject, parser };
44
- }
45
- catch (e) {
46
- console.error(`Error while parsing ${address}`, parser, e);
47
- return null;
48
- }
49
- }
50
- static getParseData(address) {
51
- const parser = TxParser.getParser(address);
52
- return { contract: parser.contract, adapterName: parser.adapterName };
53
- }
54
- static parseMultiCall(calls) {
55
- return calls.map(call => TxParser.parse(call.target, call.callData));
56
- }
57
- static parseToObjectMultiCall(calls) {
58
- return calls.map(call => TxParser.parseToObject(call.target, call.callData));
59
- }
60
- static addAdapters(adapters) {
61
- for (let a of adapters) {
62
- const contract = sdk_gov_1.contractsByAddress[a.contract.toLowerCase()];
63
- if (contract && sdk_gov_1.contractParams[contract]) {
64
- TxParser.chooseContractParser(a.adapter, contract, sdk_gov_1.contractParams[contract].type, false);
65
- }
66
- else {
67
- console.error(`Unknown address: ${contract} at ${a.contract}`);
68
- }
69
- }
70
- }
71
- static addContracts(network) {
72
- sdk_gov_1.TypedObjectUtils.entries(sdk_gov_1.contractParams).forEach(([contract, contractData]) => {
73
- const address = sdk_gov_1.contractsByNetwork[network][contract];
74
- TxParser.chooseContractParser(address, contract, contractData.type, true);
75
- if (contractData.type === sdk_gov_1.AdapterInterface.CONVEX_V1_BASE_REWARD_POOL) {
76
- contractData.extraRewards.forEach(r => {
77
- const extraAddress = r.poolAddress[network];
78
- TxParser._addParser(extraAddress, new convextRewardPoolParser_1.ConvexRewardPoolParser(r.rewardToken));
79
- });
80
- }
81
- });
82
- }
83
- static addCreditFacade(creditFacade, underlying, version) {
84
- TxParser._addParser(creditFacade, new creditFacadeParser_1.CreditFacadeParser(underlying, version));
85
- }
86
- static addTokens(network) {
87
- sdk_gov_1.TypedObjectUtils.entries(sdk_gov_1.tokenDataByNetwork[network]).forEach(([s, t]) => {
88
- if (s === "STETH") {
89
- TxParser._addParser(t, new lidoSTETHParser_1.LidoSTETHParser(s));
90
- }
91
- else {
92
- const contract = sdk_gov_1.contractsByAddress[t.toLowerCase()];
93
- if (contract) {
94
- TxParser.chooseContractParser(t, contract, sdk_gov_1.contractParams[contract].type, true);
95
- }
96
- else {
97
- TxParser._addParser(t, new ERC20Parser_1.ERC20Parser(s));
98
- }
99
- }
100
- });
101
- }
102
- static addPriceOracle(address) {
103
- TxParser._addParser(address, new priceOracleParser_1.PriceOracleParser());
104
- }
105
- static addCreditManager(address, version) {
106
- TxParser._addParser(address, new creditManagerParser_1.CreditManagerParser(version));
107
- }
108
- static getParser(address) {
109
- const parser = TxParser.parsers[address.toLowerCase()];
110
- if (!parser)
111
- throw new Error(`Can't find parser for ${address}`);
112
- return parser;
113
- }
114
- static chooseContractParser(address, contract, adapterType, isContract) {
115
- const addressLC = address.toLowerCase();
116
- switch (sdk_gov_1.AdapterInterface[adapterType]) {
117
- case "UNISWAP_V2_ROUTER":
118
- TxParser._addParser(addressLC, new uniV2AdapterParser_1.UniswapV2AdapterParser(contract, isContract));
119
- break;
120
- case "UNISWAP_V3_ROUTER":
121
- TxParser._addParser(addressLC, new uniV3AdapterParser_1.UniswapV3AdapterParser(contract, isContract));
122
- break;
123
- case "CURVE_V1_EXCHANGE_ONLY":
124
- case "CURVE_V1_2ASSETS":
125
- case "CURVE_V1_3ASSETS":
126
- case "CURVE_V1_4ASSETS":
127
- case "CURVE_V1_STECRV_POOL":
128
- case "CURVE_V1_WRAPPER":
129
- TxParser._addParser(addressLC, new curveAdapterParser_1.CurveAdapterParser(contract, isContract));
130
- break;
131
- case "YEARN_V2":
132
- TxParser._addParser(addressLC, new yearnV2AdapterParser_1.YearnV2AdapterParser(contract, isContract));
133
- break;
134
- case "CONVEX_V1_BASE_REWARD_POOL":
135
- TxParser._addParser(addressLC, new convexBaseRewardPoolAdapterParser_1.ConvexBaseRewardPoolAdapterParser(contract, isContract));
136
- break;
137
- case "CONVEX_V1_BOOSTER":
138
- TxParser._addParser(addressLC, new convexBoosterAdapterParser_1.ConvexBoosterAdapterParser(contract, isContract));
139
- break;
140
- case "CONVEX_V1_CLAIM_ZAP":
141
- break;
142
- case "LIDO_V1":
143
- TxParser._addParser(addressLC, new lidoAdapterParser_1.LidoAdapterParser(contract, isContract));
144
- break;
145
- case "LIDO_WSTETH_V1":
146
- TxParser._addParser(addressLC, new wstETHAdapterParser_1.WstETHAdapterParser(contract, isContract));
147
- break;
148
- case "AAVE_V2_LENDING_POOL":
149
- TxParser._addParser(addressLC, new aaveV2LendingPoolAdapterParser_1.AaveV2LendingPoolAdapterParser(contract, isContract));
150
- break;
151
- case "AAVE_V2_WRAPPED_ATOKEN":
152
- TxParser._addParser(addressLC, new aaveV2WrappedATokenAdapterParser_1.AaveV2WrappedATokenAdapterParser(contract, isContract));
153
- break;
154
- case "BALANCER_VAULT":
155
- TxParser._addParser(addressLC, new balancerV2VaultParser_1.BalancerV2VaultParser(contract, isContract));
156
- break;
157
- case "COMPOUND_V2_CERC20":
158
- case "COMPOUND_V2_CETHER":
159
- TxParser._addParser(addressLC, new compoundV2CTokenAdapterParser_1.CompoundV2CTokenAdapterParser(contract, isContract));
160
- break;
161
- case "ERC4626_VAULT":
162
- TxParser._addParser(addressLC, new erc626AdapterParser_1.ERC4626AdapterParser(contract, isContract));
163
- break;
164
- }
165
- }
166
- static _addParser(address, parser) {
167
- TxParser.parsers[address.toLowerCase()] = parser;
168
- }
169
- }
170
- exports.TxParser = TxParser;
@@ -1,8 +0,0 @@
1
- import { SupportedContract } from "@gearbox-protocol/sdk-gov";
2
- import { Address } from "viem";
3
- import { AbstractParser } from "./abstractParser";
4
- import { IParser } from "./iParser";
5
- export declare class UniswapV2AdapterParser extends AbstractParser implements IParser {
6
- constructor(contract: SupportedContract, isContract: boolean);
7
- parse(calldata: Address): string;
8
- }
@@ -1,51 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.UniswapV2AdapterParser = void 0;
4
- const sdk_gov_1 = require("@gearbox-protocol/sdk-gov");
5
- const types_1 = require("../types");
6
- const abstractParser_1 = require("./abstractParser");
7
- class UniswapV2AdapterParser extends abstractParser_1.AbstractParser {
8
- constructor(contract, isContract) {
9
- super(contract);
10
- this.abi = types_1.iUniswapV2AdapterAbi;
11
- if (!isContract)
12
- this.adapterName = "UniswapV2Adapter";
13
- }
14
- parse(calldata) {
15
- const { functionData, functionName } = this.parseSelector(calldata);
16
- switch (functionData.functionName) {
17
- case "swapExactTokensForTokens": {
18
- const [amountIn, amountOutMin, path] = functionData.args || [];
19
- const pathStr = path
20
- .map(r => this.tokenSymbol(r))
21
- .join(" => ");
22
- const tokenIn = this.tokenSymbol(path[0]);
23
- const tokenOut = this.tokenSymbol(path[path.length - 1]);
24
- const amountInStr = this.formatBN(amountIn, tokenIn);
25
- const amountOutStr = this.formatBN(amountOutMin, tokenOut);
26
- return `${functionName}(amountIn: ${amountInStr}, amountOutMin: ${amountOutStr}, path: [${pathStr}])`;
27
- }
28
- case "swapTokensForExactTokens": {
29
- const [amountOut, amountInMax, path] = functionData.args || [];
30
- const pathStr = path
31
- .map(r => this.tokenSymbol(r))
32
- .join(" => ");
33
- const tokenIn = this.tokenSymbol(path[0]);
34
- const tokenOut = this.tokenSymbol(path[path.length - 1]);
35
- const amountOutStr = this.formatBN(amountOut, tokenIn);
36
- const amountInMaxStr = this.formatBN(amountInMax, tokenOut);
37
- return `${functionName}(amountOut: ${amountOutStr}, amountInMax: ${amountInMaxStr}, path: [${pathStr}])`;
38
- }
39
- case "swapDiffTokensForTokens": {
40
- const [leftoverAmount, rateMinRAY, path] = functionData.args || [];
41
- const tokenIn = this.tokenSymbol(path[0]);
42
- return `${functionName}(leftoverAmount: ${this.formatBN(leftoverAmount, tokenIn)}, rate: ${(0, sdk_gov_1.formatBN)(rateMinRAY, 27)}, path: [${path
43
- .map(r => this.tokenSymbol(r))
44
- .join(" => ")}])`;
45
- }
46
- default:
47
- return this.reportUnknownFragment(this.adapterName || this.contract, functionName, calldata);
48
- }
49
- }
50
- }
51
- exports.UniswapV2AdapterParser = UniswapV2AdapterParser;
@@ -1 +0,0 @@
1
- export {};
@@ -1,59 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const sdk_gov_1 = require("@gearbox-protocol/sdk-gov");
4
- const chai_1 = require("chai");
5
- const viem_1 = require("viem");
6
- const types_1 = require("../types");
7
- const uniV2AdapterParser_1 = require("./uniV2AdapterParser");
8
- describe("UniswapV2AdapterParser test", () => {
9
- it("swap functions works well", () => {
10
- let parser = new uniV2AdapterParser_1.UniswapV2AdapterParser("UNISWAP_V2_ROUTER", false);
11
- let parsed = parser.parse((0, viem_1.encodeFunctionData)({
12
- abi: types_1.iUniswapV2AdapterAbi,
13
- functionName: "swapExactTokensForTokens",
14
- args: [
15
- sdk_gov_1.WAD * 180000n,
16
- BigInt(1e6) * 45n,
17
- [
18
- sdk_gov_1.tokenDataByNetwork.Mainnet.DAI,
19
- sdk_gov_1.tokenDataByNetwork.Mainnet.WETH,
20
- sdk_gov_1.tokenDataByNetwork.Mainnet.USDC,
21
- ],
22
- sdk_gov_1.DUMB_ADDRESS,
23
- 45000n,
24
- ],
25
- }));
26
- (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");
27
- parsed = parser.parse((0, viem_1.encodeFunctionData)({
28
- abi: types_1.iUniswapV2AdapterAbi,
29
- functionName: "swapTokensForExactTokens",
30
- args: [
31
- BigInt(1e6) * 234500n,
32
- sdk_gov_1.WAD * 17700n,
33
- [
34
- sdk_gov_1.tokenDataByNetwork.Mainnet.USDC,
35
- sdk_gov_1.tokenDataByNetwork.Mainnet.DAI,
36
- sdk_gov_1.tokenDataByNetwork.Mainnet.FRAX,
37
- ],
38
- sdk_gov_1.DUMB_ADDRESS,
39
- 45033n,
40
- ],
41
- }));
42
- (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");
43
- parsed = parser.parse((0, viem_1.encodeFunctionData)({
44
- abi: types_1.iUniswapV2AdapterAbi,
45
- functionName: "swapDiffTokensForTokens",
46
- args: [
47
- BigInt(1e6) * 234500n,
48
- sdk_gov_1.RAY * 3240n,
49
- [
50
- sdk_gov_1.tokenDataByNetwork.Mainnet.USDC,
51
- sdk_gov_1.tokenDataByNetwork.Mainnet.DAI,
52
- sdk_gov_1.tokenDataByNetwork.Mainnet.FRAX,
53
- ],
54
- 45033n,
55
- ],
56
- }));
57
- (0, chai_1.expect)(parsed).to.be.eq("UniswapV2Adapter[UNISWAP_V2_ROUTER].swapDiffTokensForTokens(leftoverAmount: 234.50K [234500000000], rate: 3.24K, path: [USDC => DAI => FRAX])", "Incorrect parse swapDiffTokensForTokens");
58
- });
59
- });