@gearbox-protocol/sdk 1.5.8 → 1.5.9

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.
@@ -71,4 +71,5 @@ export declare type UniversalParams = {
71
71
  export declare type ContractParams = UniswapV2Params | UniswapV3Params | CurveParams | CurveSteCRVPoolParams | YearnParams | ConvexParams | ConvexPoolParams | LidoParams | UniversalParams;
72
72
  export declare const contractParams: Record<SupportedContract, ContractParams>;
73
73
  export declare const contractsByAddress: Record<string, SupportedContract>;
74
+ export declare const isSupportedContract: (t: unknown) => t is SupportedContract;
74
75
  export {};
@@ -11,7 +11,7 @@ var __assign = (this && this.__assign) || function () {
11
11
  return __assign.apply(this, arguments);
12
12
  };
13
13
  Object.defineProperty(exports, "__esModule", { value: true });
14
- exports.contractsByAddress = exports.contractParams = exports.UNISWAP_V3_QUOTER = exports.contractsByNetwork = void 0;
14
+ exports.isSupportedContract = exports.contractsByAddress = exports.contractParams = exports.UNISWAP_V3_QUOTER = exports.contractsByNetwork = void 0;
15
15
  var token_1 = require("../tokens/token");
16
16
  var mappers_1 = require("../utils/mappers");
17
17
  var adapters_1 = require("./adapters");
@@ -299,3 +299,7 @@ exports.contractsByAddress = (0, mappers_1.objectEntries)(exports.contractsByNet
299
299
  var contracts = _a[1];
300
300
  return (__assign(__assign({}, acc), (0, mappers_1.filterEmptyKeys)((0, mappers_1.keyToLowercase)((0, mappers_1.swapKeyValue)(contracts)))));
301
301
  }, {});
302
+ var isSupportedContract = function (t) {
303
+ return typeof t === "string" && !!exports.contractParams[t];
304
+ };
305
+ exports.isSupportedContract = isSupportedContract;
@@ -1,34 +1,29 @@
1
1
  import { Signer } from "ethers";
2
2
  import { AdapterInterface } from "../contracts/adapters";
3
3
  import { SupportedContract } from "../contracts/contracts";
4
- import { PathFinderResultStructOutput } from "../types/contracts/pathfinder/interfaces/IPathFinder";
5
4
  import { EVMTx } from "./eventOrTx";
6
- export declare enum AdapterType {
7
- Swap = 1,
8
- LP = 2
9
- }
5
+ import { TradePath } from "./trade";
10
6
  interface BaseAdapterProps {
11
7
  name: string;
12
- type: AdapterType;
13
8
  adapterInterface: AdapterInterface;
14
9
  contractAddress: string;
15
10
  adapterAddress: string;
16
11
  contractSymbol: SupportedContract;
12
+ creditManager: string;
17
13
  }
18
14
  interface ExecuteProps {
19
- tradePath: PathFinderResultStructOutput;
15
+ tradePath: TradePath;
20
16
  slippage: number;
21
17
  signer: Signer;
22
18
  }
23
19
  export declare class BaseAdapter {
24
20
  readonly name: string;
25
- readonly type: AdapterType;
26
21
  readonly adapterInterface: AdapterInterface;
27
22
  readonly contractAddress: string;
28
23
  readonly adapterAddress: string;
29
24
  readonly contractSymbol: SupportedContract;
25
+ readonly creditManager: string;
30
26
  constructor(props: BaseAdapterProps);
31
27
  execute(props: ExecuteProps): Promise<EVMTx>;
32
- static connect(tradePath: PathFinderResultStructOutput): BaseAdapter;
33
28
  }
34
29
  export {};
@@ -36,21 +36,15 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
36
36
  }
37
37
  };
38
38
  Object.defineProperty(exports, "__esModule", { value: true });
39
- exports.BaseAdapter = exports.AdapterType = void 0;
40
- var adapters_1 = require("../contracts/adapters");
41
- var AdapterType;
42
- (function (AdapterType) {
43
- AdapterType[AdapterType["Swap"] = 1] = "Swap";
44
- AdapterType[AdapterType["LP"] = 2] = "LP";
45
- })(AdapterType = exports.AdapterType || (exports.AdapterType = {}));
39
+ exports.BaseAdapter = void 0;
46
40
  var BaseAdapter = /** @class */ (function () {
47
41
  function BaseAdapter(props) {
48
42
  this.name = props.name;
49
- this.type = props.type;
50
43
  this.adapterInterface = props.adapterInterface;
51
44
  this.adapterAddress = props.adapterAddress;
52
45
  this.contractAddress = props.contractAddress;
53
46
  this.contractSymbol = props.contractSymbol;
47
+ this.creditManager = props.creditManager;
54
48
  }
55
49
  BaseAdapter.prototype.execute = function (props) {
56
50
  return __awaiter(this, void 0, void 0, function () {
@@ -60,17 +54,6 @@ var BaseAdapter = /** @class */ (function () {
60
54
  });
61
55
  });
62
56
  };
63
- BaseAdapter.connect = function (tradePath) {
64
- console.debug(tradePath);
65
- return new BaseAdapter({
66
- name: "",
67
- type: AdapterType.Swap,
68
- adapterInterface: adapters_1.AdapterInterface.NO_SWAP,
69
- adapterAddress: "",
70
- contractAddress: "",
71
- contractSymbol: "CONVEX_3CRV_POOL",
72
- });
73
- };
74
57
  return BaseAdapter;
75
58
  }());
76
59
  exports.BaseAdapter = BaseAdapter;
@@ -1,49 +1,47 @@
1
- import { BigNumber, Signer } from "ethers";
1
+ import { BigNumber } from "ethers";
2
2
  import { AdapterInterface } from "../contracts/adapters";
3
3
  import { SwapType } from "../pathfinder/tradeTypes";
4
- import { TokenData } from "../tokens/tokenData";
5
- import { PathFinderResultStructOutput } from "../types/contracts/pathfinder/interfaces/IPathFinder";
4
+ import { ICreditFacade } from "../types";
5
+ import { PathFinderResultStruct, PathFinderResultStructOutput } from "../types/contracts/pathfinder/interfaces/IPathFinder";
6
6
  import { BaseAdapter } from "./adapter";
7
7
  import { EVMTx } from "./eventOrTx";
8
+ import { TXSwap } from "./transactions";
9
+ export declare type TradePath = Pick<PathFinderResultStructOutput, keyof PathFinderResultStruct>;
8
10
  export interface BaseTradeInterface {
9
11
  swapType: SwapType;
12
+ sourceAmount: BigNumber;
10
13
  expectedAmount: BigNumber;
11
14
  rate: BigNumber;
12
15
  tokenFrom: string;
13
16
  tokenTo: string;
14
- operationName: string;
17
+ operationName: TradeOperations;
15
18
  }
16
- export interface TradeProps {
19
+ export interface TradeProps extends BaseTradeInterface {
17
20
  adapter: BaseAdapter;
18
- tradePath: PathFinderResultStructOutput;
19
- swapType: SwapType;
20
- expectedAmount: BigNumber;
21
- rate: BigNumber;
22
- tokenFrom: string;
23
- tokenTo: string;
24
- operationName: string;
25
- }
26
- export interface ConnectTradeProps {
27
- adapter: BaseAdapter;
28
- tradePath: PathFinderResultStructOutput;
21
+ tradePath: TradePath;
22
+ creditFacade: ICreditFacade;
29
23
  }
24
+ export declare type TradeOperations = "farmWithdraw" | "farmDeposit" | "swap" | "unknownOperation";
30
25
  export declare class Trade implements BaseTradeInterface {
31
26
  protected helper: BaseAdapter;
32
- protected tradePath: PathFinderResultStructOutput;
27
+ protected tradePath: TradePath;
28
+ protected creditFacade: ICreditFacade;
33
29
  readonly swapType: SwapType;
30
+ readonly sourceAmount: BigNumber;
34
31
  readonly expectedAmount: BigNumber;
35
32
  readonly rate: BigNumber;
36
33
  readonly tokenFrom: string;
37
34
  readonly tokenTo: string;
38
- readonly operationName: string;
39
- constructor({ tradePath, adapter }: TradeProps);
40
- static connect({ tradePath, adapter }: ConnectTradeProps): Trade;
35
+ readonly operationName: TradeOperations;
36
+ constructor(props: TradeProps);
41
37
  getName(): string;
42
38
  getAdapterInterface(): AdapterInterface;
43
39
  getContractAddress(): string;
44
40
  getAdapterAddress(): string;
45
- execute(slippage: number, signer: Signer): Promise<EVMTx>;
46
- toString(tokenData: Record<string, TokenData>): string;
41
+ execute(): Promise<EVMTx>;
42
+ protected _execute(): Promise<TXSwap>;
43
+ toString(): string;
47
44
  getFromAmount(slippage: number): BigNumber;
48
45
  getToAmount(slippage: number): BigNumber;
46
+ static getOperationName(tokenInAddress: string, tokenOutAddress: string): TradeOperations;
49
47
  }
package/lib/core/trade.js CHANGED
@@ -1,36 +1,66 @@
1
1
  "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __generator = (this && this.__generator) || function (thisArg, body) {
12
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
+ function verb(n) { return function (v) { return step([n, v]); }; }
15
+ function step(op) {
16
+ if (f) throw new TypeError("Generator is already executing.");
17
+ while (_) try {
18
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
+ if (y = 0, t) op = [op[0] & 2, t.value];
20
+ switch (op[0]) {
21
+ case 0: case 1: t = op; break;
22
+ case 4: _.label++; return { value: op[1], done: false };
23
+ case 5: _.label++; y = op[1]; op = [0]; continue;
24
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
+ default:
26
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
+ if (t[2]) _.ops.pop();
31
+ _.trys.pop(); continue;
32
+ }
33
+ op = body.call(thisArg, _);
34
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
+ }
37
+ };
2
38
  Object.defineProperty(exports, "__esModule", { value: true });
3
39
  exports.Trade = void 0;
4
- var ethers_1 = require("ethers");
5
- var tradeTypes_1 = require("../pathfinder/tradeTypes");
40
+ var decimals_1 = require("../tokens/decimals");
41
+ var token_1 = require("../tokens/token");
6
42
  var formatter_1 = require("../utils/formatter");
7
- var adapter_1 = require("./adapter");
8
43
  var constants_1 = require("./constants");
44
+ var transactions_1 = require("./transactions");
45
+ var OPERATION_NAMES = {
46
+ farmWithdraw: "Farm withdraw",
47
+ farmDeposit: "Farm deposit",
48
+ swap: "Swap",
49
+ unknownOperation: "Unknown operation",
50
+ };
9
51
  var Trade = /** @class */ (function () {
10
- function Trade(_a) {
11
- var tradePath = _a.tradePath, adapter = _a.adapter;
12
- this.helper = adapter;
13
- this.tradePath = tradePath;
14
- this.swapType = tradeTypes_1.SwapType.ExactInput;
15
- this.expectedAmount = ethers_1.BigNumber.from(0);
16
- this.rate = ethers_1.BigNumber.from(0);
17
- this.tokenFrom = "";
18
- this.tokenTo = "";
19
- this.operationName = "";
52
+ function Trade(props) {
53
+ this.helper = props.adapter;
54
+ this.tradePath = props.tradePath;
55
+ this.creditFacade = props.creditFacade;
56
+ this.swapType = props.swapType;
57
+ this.sourceAmount = props.sourceAmount;
58
+ this.expectedAmount = props.expectedAmount;
59
+ this.rate = props.rate;
60
+ this.tokenFrom = props.tokenFrom;
61
+ this.tokenTo = props.tokenTo;
62
+ this.operationName = props.operationName;
20
63
  }
21
- Trade.connect = function (_a) {
22
- var tradePath = _a.tradePath, adapter = _a.adapter;
23
- return new Trade({
24
- tradePath: tradePath,
25
- adapter: adapter,
26
- swapType: tradeTypes_1.SwapType.ExactInput,
27
- expectedAmount: ethers_1.BigNumber.from(0),
28
- rate: ethers_1.BigNumber.from(0),
29
- tokenFrom: "",
30
- tokenTo: "",
31
- operationName: "",
32
- });
33
- };
34
64
  Trade.prototype.getName = function () {
35
65
  return this.helper.name;
36
66
  };
@@ -43,17 +73,42 @@ var Trade = /** @class */ (function () {
43
73
  Trade.prototype.getAdapterAddress = function () {
44
74
  return this.helper.adapterAddress;
45
75
  };
46
- Trade.prototype.execute = function (slippage, signer) {
47
- return this.helper.execute({ tradePath: this.tradePath, slippage: slippage, signer: signer });
76
+ Trade.prototype.execute = function () {
77
+ return this._execute();
48
78
  };
49
- Trade.prototype.toString = function (tokenData) {
50
- var result = this.helper.type === adapter_1.AdapterType.Swap
51
- ? "Swap "
52
- : "".concat(this.operationName || "Farm", " ");
53
- var fromToken = tokenData[this.tokenFrom];
54
- var toToken = tokenData[this.tokenTo];
55
- result += "".concat((0, formatter_1.formatBN)(this.tradePath.amount, fromToken.decimals), " ").concat(fromToken.symbol, " \u21D2 ").concat((0, formatter_1.formatBN)(this.expectedAmount, toToken.decimals), " ").concat(toToken.symbol, " on ").concat(this.helper.name);
56
- return result;
79
+ Trade.prototype._execute = function () {
80
+ return __awaiter(this, void 0, void 0, function () {
81
+ var receipt;
82
+ return __generator(this, function (_a) {
83
+ switch (_a.label) {
84
+ case 0: return [4 /*yield*/, this.creditFacade.multicall(this.tradePath.calls)];
85
+ case 1:
86
+ receipt = _a.sent();
87
+ return [2 /*return*/, new transactions_1.TXSwap({
88
+ txHash: receipt.hash,
89
+ protocol: this.helper.contractAddress,
90
+ operation: OPERATION_NAMES[this.operationName],
91
+ amountFrom: this.sourceAmount,
92
+ amountTo: this.expectedAmount,
93
+ tokenFrom: this.tokenFrom,
94
+ tokenTo: this.tokenTo,
95
+ creditManager: this.helper.creditManager,
96
+ timestamp: 0,
97
+ })];
98
+ }
99
+ });
100
+ });
101
+ };
102
+ Trade.prototype.toString = function () {
103
+ var symbolFrom = token_1.tokenSymbolByAddress[this.tokenFrom.toLowerCase()];
104
+ var symbolTo = token_1.tokenSymbolByAddress[this.tokenTo.toLowerCase()];
105
+ if (!symbolFrom)
106
+ throw new Error("Unknown token: ".concat(this.tokenFrom));
107
+ if (!symbolTo)
108
+ throw new Error("Unknown token: ".concat(this.tokenTo));
109
+ var decimalsFrom = decimals_1.decimals[symbolFrom];
110
+ var decimalsTo = decimals_1.decimals[symbolTo];
111
+ return "".concat(this.operationName, " ").concat((0, formatter_1.formatBN)(this.sourceAmount, decimalsFrom), " ").concat(symbolFrom, " \u21D2 ").concat((0, formatter_1.formatBN)(this.expectedAmount, decimalsTo), " ").concat(symbolTo, " on ").concat(this.helper.name);
57
112
  };
58
113
  Trade.prototype.getFromAmount = function (slippage) {
59
114
  return this.expectedAmount
@@ -65,6 +120,23 @@ var Trade = /** @class */ (function () {
65
120
  .mul(constants_1.PERCENTAGE_FACTOR + slippage)
66
121
  .div(constants_1.PERCENTAGE_FACTOR);
67
122
  };
123
+ Trade.getOperationName = function (tokenInAddress, tokenOutAddress) {
124
+ var tokenInSymbol = token_1.tokenSymbolByAddress[tokenInAddress];
125
+ var tokenOutSymbol = token_1.tokenSymbolByAddress[tokenOutAddress];
126
+ var tokenInIsLp = (0, token_1.isLPToken)(tokenInSymbol);
127
+ var tokenOutIsLp = (0, token_1.isLPToken)(tokenOutSymbol);
128
+ if (!tokenInSymbol)
129
+ throw new Error("Unknown token: ".concat(tokenInAddress));
130
+ if (!tokenOutSymbol)
131
+ throw new Error("Unknown token: ".concat(tokenOutAddress));
132
+ if (tokenInIsLp && !tokenOutIsLp)
133
+ return "farmWithdraw";
134
+ if (!tokenInIsLp && tokenOutIsLp)
135
+ return "farmDeposit";
136
+ if (!tokenInIsLp && !tokenOutIsLp)
137
+ return "swap";
138
+ return "unknownOperation";
139
+ };
68
140
  return Trade;
69
141
  }());
70
142
  exports.Trade = Trade;
@@ -2,17 +2,25 @@ import { SupportedContract } from "../contracts/contracts";
2
2
  import { NetworkType } from "../core/constants";
3
3
  import { SupportedToken } from "../tokens/token";
4
4
  import { MultiCallStruct } from "../types/contracts/interfaces/ICreditFacade.sol/ICreditFacade";
5
+ import { AbstractParser } from "./abstractParser";
5
6
  import { IParser } from "./iParser";
6
7
  export interface AdapterForParser {
7
8
  adapter: string;
8
9
  contract: string;
9
10
  }
11
+ interface ParseData {
12
+ contract: string;
13
+ adapterName: string;
14
+ }
10
15
  export declare class TxParser {
11
- protected static parsers: Record<string, IParser>;
16
+ protected static parsers: Record<string, IParser & AbstractParser>;
12
17
  static parse(address: string, calldata: string): string;
18
+ static getParseData(address: string): ParseData;
13
19
  static parseMultiCall(calls: Array<MultiCallStruct>): Array<string>;
14
20
  static addAdapters(adapters: Array<AdapterForParser>): void;
15
21
  static addContracts(network: NetworkType): void;
16
22
  static addCreditFacade(creditFacade: string, underlying: SupportedToken): void;
23
+ static getParser(address: string): IParser & AbstractParser;
17
24
  protected static addParser(address: string, contract: SupportedContract, adapterType: number, isContract: boolean): void;
18
25
  }
26
+ export {};
@@ -15,11 +15,13 @@ var TxParser = /** @class */ (function () {
15
15
  function TxParser() {
16
16
  }
17
17
  TxParser.parse = function (address, calldata) {
18
- var parser = this.parsers[address.toLowerCase()];
19
- if (!parser)
20
- throw new Error("Can find parser for ".concat(address));
18
+ var parser = this.getParser(address);
21
19
  return parser.parse(calldata);
22
20
  };
21
+ TxParser.getParseData = function (address) {
22
+ var parser = this.getParser(address);
23
+ return { contract: parser.contract, adapterName: parser.adapterName };
24
+ };
23
25
  TxParser.parseMultiCall = function (calls) {
24
26
  return calls.map(function (call) {
25
27
  return TxParser.parse(call.target, call.callData.toString());
@@ -42,6 +44,12 @@ var TxParser = /** @class */ (function () {
42
44
  TxParser.addCreditFacade = function (creditFacade, underlying) {
43
45
  this.parsers[creditFacade.toLowerCase()] = new creditFacadeParser_1.CreditFacadeParser(underlying);
44
46
  };
47
+ TxParser.getParser = function (address) {
48
+ var parser = this.parsers[address.toLowerCase()];
49
+ if (!parser)
50
+ throw new Error("Can find parser for ".concat(address));
51
+ return parser;
52
+ };
45
53
  TxParser.addParser = function (address, contract, adapterType, isContract) {
46
54
  var addressLC = address.toLowerCase();
47
55
  switch (adapters_1.AdapterInterface[adapterType]) {
@@ -12,7 +12,7 @@ export declare class Multicall2__factory extends ContractFactory {
12
12
  }): TransactionRequest;
13
13
  attach(address: string): Multicall2;
14
14
  connect(signer: Signer): Multicall2__factory;
15
- static readonly bytecode = "0x608060405234801561001057600080fd5b50610b51806100206000396000f3fe608060405234801561001057600080fd5b50600436106100d45760003560e01c806372425d9d11610081578063bce38bd71161005b578063bce38bd714610181578063c3077fa9146101a1578063ee82ac5e146101b457600080fd5b806372425d9d1461016757806386d516e81461016d578063a8b0574e1461017357600080fd5b8063399542e9116100b2578063399542e91461011757806342cbb15c146101395780634d2301cc1461013f57600080fd5b80630f28c97d146100d9578063252dba42146100ee57806327e86d6e1461010f575b600080fd5b425b6040519081526020015b60405180910390f35b6101016100fc3660046107df565b6101c6565b6040516100e5929190610896565b6100db610373565b61012a61012536600461091e565b610386565b6040516100e5939291906109db565b436100db565b6100db61014d366004610a03565b73ffffffffffffffffffffffffffffffffffffffff163190565b446100db565b456100db565b6040514181526020016100e5565b61019461018f36600461091e565b61039e565b6040516100e59190610a25565b61012a6101af3660046107df565b610599565b6100db6101c2366004610a38565b4090565b8051439060609067ffffffffffffffff8111156101e5576101e56105b6565b60405190808252806020026020018201604052801561021857816020015b60608152602001906001900390816102035790505b50905060005b835181101561036d5760008085838151811061023c5761023c610a51565b60200260200101516000015173ffffffffffffffffffffffffffffffffffffffff1686848151811061027057610270610a51565b6020026020010151602001516040516102899190610a80565b6000604051808303816000865af19150503d80600081146102c6576040519150601f19603f3d011682016040523d82523d6000602084013e6102cb565b606091505b50915091508161033c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4d756c746963616c6c206167677265676174653a2063616c6c206661696c656460448201526064015b60405180910390fd5b8084848151811061034f5761034f610a51565b602002602001018190525050508061036690610acb565b905061021e565b50915091565b6000610380600143610b04565b40905090565b4380406060610395858561039e565b90509250925092565b6060815167ffffffffffffffff8111156103ba576103ba6105b6565b60405190808252806020026020018201604052801561040057816020015b6040805180820190915260008152606060208201528152602001906001900390816103d85790505b50905060005b82518110156105925760008084838151811061042457610424610a51565b60200260200101516000015173ffffffffffffffffffffffffffffffffffffffff1685848151811061045857610458610a51565b6020026020010151602001516040516104719190610a80565b6000604051808303816000865af19150503d80600081146104ae576040519150601f19603f3d011682016040523d82523d6000602084013e6104b3565b606091505b5091509150851561054b578161054b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f4d756c746963616c6c32206167677265676174653a2063616c6c206661696c6560448201527f64000000000000000000000000000000000000000000000000000000000000006064820152608401610333565b604051806040016040528083151581526020018281525084848151811061057457610574610a51565b602002602001018190525050508061058b90610acb565b9050610406565b5092915050565b60008060606105a9600185610386565b9196909550909350915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040805190810167ffffffffffffffff81118282101715610608576106086105b6565b60405290565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715610655576106556105b6565b604052919050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461068157600080fd5b919050565b6000601f838184011261069857600080fd5b8235602067ffffffffffffffff808311156106b5576106b56105b6565b8260051b6106c483820161060e565b93845286810183019383810190898611156106de57600080fd5b84890192505b858310156107d2578235848111156106fc5760008081fd5b890160407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0828d0381018213156107335760008081fd5b61073b6105e5565b61074689850161065d565b8152828401358881111561075a5760008081fd5b8085019450508d603f8501126107705760008081fd5b8884013588811115610784576107846105b6565b6107938a848e8401160161060e565b92508083528e848287010111156107aa5760008081fd5b808486018b85013760009083018a0152808901919091528452505091840191908401906106e4565b9998505050505050505050565b6000602082840312156107f157600080fd5b813567ffffffffffffffff81111561080857600080fd5b61081484828501610686565b949350505050565b60005b8381101561083757818101518382015260200161081f565b83811115610846576000848401525b50505050565b6000815180845261086481602086016020860161081c565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b600060408201848352602060408185015281855180845260608601915060608160051b870101935082870160005b82811015610910577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa08887030184526108fe86835161084c565b955092840192908401906001016108c4565b509398975050505050505050565b6000806040838503121561093157600080fd5b8235801515811461094157600080fd5b9150602083013567ffffffffffffffff81111561095d57600080fd5b61096985828601610686565b9150509250929050565b6000815180845260208085019450848260051b860182860160005b858110156109ce578383038952815180511515845285015160408685018190526109ba8186018361084c565b9a87019a945050509084019060010161098e565b5090979650505050505050565b8381528260208201526060604082015260006109fa6060830184610973565b95945050505050565b600060208284031215610a1557600080fd5b610a1e8261065d565b9392505050565b602081526000610a1e6020830184610973565b600060208284031215610a4a57600080fd5b5035919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008251610a9281846020870161081c565b9190910192915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415610afd57610afd610a9c565b5060010190565b600082821015610b1657610b16610a9c565b50039056fea2646970667358221220125df3e1e21b5f72a198b151923a51a6f30c33ef274b23d8593ad64b95e7c91f64736f6c634300080a0033";
15
+ static readonly bytecode = "0x608060405234801561001057600080fd5b50610b51806100206000396000f3fe608060405234801561001057600080fd5b50600436106100d45760003560e01c806372425d9d11610081578063bce38bd71161005b578063bce38bd714610181578063c3077fa9146101a1578063ee82ac5e146101b457600080fd5b806372425d9d1461016757806386d516e81461016d578063a8b0574e1461017357600080fd5b8063399542e9116100b2578063399542e91461011757806342cbb15c146101395780634d2301cc1461013f57600080fd5b80630f28c97d146100d9578063252dba42146100ee57806327e86d6e1461010f575b600080fd5b425b6040519081526020015b60405180910390f35b6101016100fc3660046107df565b6101c6565b6040516100e5929190610896565b6100db610373565b61012a61012536600461091e565b610386565b6040516100e5939291906109db565b436100db565b6100db61014d366004610a03565b73ffffffffffffffffffffffffffffffffffffffff163190565b446100db565b456100db565b6040514181526020016100e5565b61019461018f36600461091e565b61039e565b6040516100e59190610a25565b61012a6101af3660046107df565b610599565b6100db6101c2366004610a38565b4090565b8051439060609067ffffffffffffffff8111156101e5576101e56105b6565b60405190808252806020026020018201604052801561021857816020015b60608152602001906001900390816102035790505b50905060005b835181101561036d5760008085838151811061023c5761023c610a51565b60200260200101516000015173ffffffffffffffffffffffffffffffffffffffff1686848151811061027057610270610a51565b6020026020010151602001516040516102899190610a80565b6000604051808303816000865af19150503d80600081146102c6576040519150601f19603f3d011682016040523d82523d6000602084013e6102cb565b606091505b50915091508161033c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4d756c746963616c6c206167677265676174653a2063616c6c206661696c656460448201526064015b60405180910390fd5b8084848151811061034f5761034f610a51565b602002602001018190525050508061036690610acb565b905061021e565b50915091565b6000610380600143610b04565b40905090565b4380406060610395858561039e565b90509250925092565b6060815167ffffffffffffffff8111156103ba576103ba6105b6565b60405190808252806020026020018201604052801561040057816020015b6040805180820190915260008152606060208201528152602001906001900390816103d85790505b50905060005b82518110156105925760008084838151811061042457610424610a51565b60200260200101516000015173ffffffffffffffffffffffffffffffffffffffff1685848151811061045857610458610a51565b6020026020010151602001516040516104719190610a80565b6000604051808303816000865af19150503d80600081146104ae576040519150601f19603f3d011682016040523d82523d6000602084013e6104b3565b606091505b5091509150851561054b578161054b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f4d756c746963616c6c32206167677265676174653a2063616c6c206661696c6560448201527f64000000000000000000000000000000000000000000000000000000000000006064820152608401610333565b604051806040016040528083151581526020018281525084848151811061057457610574610a51565b602002602001018190525050508061058b90610acb565b9050610406565b5092915050565b60008060606105a9600185610386565b9196909550909350915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040805190810167ffffffffffffffff81118282101715610608576106086105b6565b60405290565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715610655576106556105b6565b604052919050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461068157600080fd5b919050565b6000601f838184011261069857600080fd5b8235602067ffffffffffffffff808311156106b5576106b56105b6565b8260051b6106c483820161060e565b93845286810183019383810190898611156106de57600080fd5b84890192505b858310156107d2578235848111156106fc5760008081fd5b890160407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0828d0381018213156107335760008081fd5b61073b6105e5565b61074689850161065d565b8152828401358881111561075a5760008081fd5b8085019450508d603f8501126107705760008081fd5b8884013588811115610784576107846105b6565b6107938a848e8401160161060e565b92508083528e848287010111156107aa5760008081fd5b808486018b85013760009083018a0152808901919091528452505091840191908401906106e4565b9998505050505050505050565b6000602082840312156107f157600080fd5b813567ffffffffffffffff81111561080857600080fd5b61081484828501610686565b949350505050565b60005b8381101561083757818101518382015260200161081f565b83811115610846576000848401525b50505050565b6000815180845261086481602086016020860161081c565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b600060408201848352602060408185015281855180845260608601915060608160051b870101935082870160005b82811015610910577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa08887030184526108fe86835161084c565b955092840192908401906001016108c4565b509398975050505050505050565b6000806040838503121561093157600080fd5b8235801515811461094157600080fd5b9150602083013567ffffffffffffffff81111561095d57600080fd5b61096985828601610686565b9150509250929050565b6000815180845260208085019450848260051b860182860160005b858110156109ce578383038952815180511515845285015160408685018190526109ba8186018361084c565b9a87019a945050509084019060010161098e565b5090979650505050505050565b8381528260208201526060604082015260006109fa6060830184610973565b95945050505050565b600060208284031215610a1557600080fd5b610a1e8261065d565b9392505050565b602081526000610a1e6020830184610973565b600060208284031215610a4a57600080fd5b5035919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008251610a9281846020870161081c565b9190910192915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415610afd57610afd610a9c565b5060010190565b600082821015610b1657610b16610a9c565b50039056fea26469706673582212202c69e970f479545d7be246c48610ba0d642f18252c98dea6e14ebbeeb819c8f864736f6c634300080a0033";
16
16
  static readonly abi: {
17
17
  inputs: ({
18
18
  internalType: string;
@@ -333,7 +333,7 @@ var _abi = [
333
333
  type: "function",
334
334
  },
335
335
  ];
336
- var _bytecode = "0x608060405234801561001057600080fd5b50610b51806100206000396000f3fe608060405234801561001057600080fd5b50600436106100d45760003560e01c806372425d9d11610081578063bce38bd71161005b578063bce38bd714610181578063c3077fa9146101a1578063ee82ac5e146101b457600080fd5b806372425d9d1461016757806386d516e81461016d578063a8b0574e1461017357600080fd5b8063399542e9116100b2578063399542e91461011757806342cbb15c146101395780634d2301cc1461013f57600080fd5b80630f28c97d146100d9578063252dba42146100ee57806327e86d6e1461010f575b600080fd5b425b6040519081526020015b60405180910390f35b6101016100fc3660046107df565b6101c6565b6040516100e5929190610896565b6100db610373565b61012a61012536600461091e565b610386565b6040516100e5939291906109db565b436100db565b6100db61014d366004610a03565b73ffffffffffffffffffffffffffffffffffffffff163190565b446100db565b456100db565b6040514181526020016100e5565b61019461018f36600461091e565b61039e565b6040516100e59190610a25565b61012a6101af3660046107df565b610599565b6100db6101c2366004610a38565b4090565b8051439060609067ffffffffffffffff8111156101e5576101e56105b6565b60405190808252806020026020018201604052801561021857816020015b60608152602001906001900390816102035790505b50905060005b835181101561036d5760008085838151811061023c5761023c610a51565b60200260200101516000015173ffffffffffffffffffffffffffffffffffffffff1686848151811061027057610270610a51565b6020026020010151602001516040516102899190610a80565b6000604051808303816000865af19150503d80600081146102c6576040519150601f19603f3d011682016040523d82523d6000602084013e6102cb565b606091505b50915091508161033c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4d756c746963616c6c206167677265676174653a2063616c6c206661696c656460448201526064015b60405180910390fd5b8084848151811061034f5761034f610a51565b602002602001018190525050508061036690610acb565b905061021e565b50915091565b6000610380600143610b04565b40905090565b4380406060610395858561039e565b90509250925092565b6060815167ffffffffffffffff8111156103ba576103ba6105b6565b60405190808252806020026020018201604052801561040057816020015b6040805180820190915260008152606060208201528152602001906001900390816103d85790505b50905060005b82518110156105925760008084838151811061042457610424610a51565b60200260200101516000015173ffffffffffffffffffffffffffffffffffffffff1685848151811061045857610458610a51565b6020026020010151602001516040516104719190610a80565b6000604051808303816000865af19150503d80600081146104ae576040519150601f19603f3d011682016040523d82523d6000602084013e6104b3565b606091505b5091509150851561054b578161054b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f4d756c746963616c6c32206167677265676174653a2063616c6c206661696c6560448201527f64000000000000000000000000000000000000000000000000000000000000006064820152608401610333565b604051806040016040528083151581526020018281525084848151811061057457610574610a51565b602002602001018190525050508061058b90610acb565b9050610406565b5092915050565b60008060606105a9600185610386565b9196909550909350915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040805190810167ffffffffffffffff81118282101715610608576106086105b6565b60405290565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715610655576106556105b6565b604052919050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461068157600080fd5b919050565b6000601f838184011261069857600080fd5b8235602067ffffffffffffffff808311156106b5576106b56105b6565b8260051b6106c483820161060e565b93845286810183019383810190898611156106de57600080fd5b84890192505b858310156107d2578235848111156106fc5760008081fd5b890160407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0828d0381018213156107335760008081fd5b61073b6105e5565b61074689850161065d565b8152828401358881111561075a5760008081fd5b8085019450508d603f8501126107705760008081fd5b8884013588811115610784576107846105b6565b6107938a848e8401160161060e565b92508083528e848287010111156107aa5760008081fd5b808486018b85013760009083018a0152808901919091528452505091840191908401906106e4565b9998505050505050505050565b6000602082840312156107f157600080fd5b813567ffffffffffffffff81111561080857600080fd5b61081484828501610686565b949350505050565b60005b8381101561083757818101518382015260200161081f565b83811115610846576000848401525b50505050565b6000815180845261086481602086016020860161081c565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b600060408201848352602060408185015281855180845260608601915060608160051b870101935082870160005b82811015610910577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa08887030184526108fe86835161084c565b955092840192908401906001016108c4565b509398975050505050505050565b6000806040838503121561093157600080fd5b8235801515811461094157600080fd5b9150602083013567ffffffffffffffff81111561095d57600080fd5b61096985828601610686565b9150509250929050565b6000815180845260208085019450848260051b860182860160005b858110156109ce578383038952815180511515845285015160408685018190526109ba8186018361084c565b9a87019a945050509084019060010161098e565b5090979650505050505050565b8381528260208201526060604082015260006109fa6060830184610973565b95945050505050565b600060208284031215610a1557600080fd5b610a1e8261065d565b9392505050565b602081526000610a1e6020830184610973565b600060208284031215610a4a57600080fd5b5035919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008251610a9281846020870161081c565b9190910192915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415610afd57610afd610a9c565b5060010190565b600082821015610b1657610b16610a9c565b50039056fea2646970667358221220125df3e1e21b5f72a198b151923a51a6f30c33ef274b23d8593ad64b95e7c91f64736f6c634300080a0033";
336
+ var _bytecode = "0x608060405234801561001057600080fd5b50610b51806100206000396000f3fe608060405234801561001057600080fd5b50600436106100d45760003560e01c806372425d9d11610081578063bce38bd71161005b578063bce38bd714610181578063c3077fa9146101a1578063ee82ac5e146101b457600080fd5b806372425d9d1461016757806386d516e81461016d578063a8b0574e1461017357600080fd5b8063399542e9116100b2578063399542e91461011757806342cbb15c146101395780634d2301cc1461013f57600080fd5b80630f28c97d146100d9578063252dba42146100ee57806327e86d6e1461010f575b600080fd5b425b6040519081526020015b60405180910390f35b6101016100fc3660046107df565b6101c6565b6040516100e5929190610896565b6100db610373565b61012a61012536600461091e565b610386565b6040516100e5939291906109db565b436100db565b6100db61014d366004610a03565b73ffffffffffffffffffffffffffffffffffffffff163190565b446100db565b456100db565b6040514181526020016100e5565b61019461018f36600461091e565b61039e565b6040516100e59190610a25565b61012a6101af3660046107df565b610599565b6100db6101c2366004610a38565b4090565b8051439060609067ffffffffffffffff8111156101e5576101e56105b6565b60405190808252806020026020018201604052801561021857816020015b60608152602001906001900390816102035790505b50905060005b835181101561036d5760008085838151811061023c5761023c610a51565b60200260200101516000015173ffffffffffffffffffffffffffffffffffffffff1686848151811061027057610270610a51565b6020026020010151602001516040516102899190610a80565b6000604051808303816000865af19150503d80600081146102c6576040519150601f19603f3d011682016040523d82523d6000602084013e6102cb565b606091505b50915091508161033c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4d756c746963616c6c206167677265676174653a2063616c6c206661696c656460448201526064015b60405180910390fd5b8084848151811061034f5761034f610a51565b602002602001018190525050508061036690610acb565b905061021e565b50915091565b6000610380600143610b04565b40905090565b4380406060610395858561039e565b90509250925092565b6060815167ffffffffffffffff8111156103ba576103ba6105b6565b60405190808252806020026020018201604052801561040057816020015b6040805180820190915260008152606060208201528152602001906001900390816103d85790505b50905060005b82518110156105925760008084838151811061042457610424610a51565b60200260200101516000015173ffffffffffffffffffffffffffffffffffffffff1685848151811061045857610458610a51565b6020026020010151602001516040516104719190610a80565b6000604051808303816000865af19150503d80600081146104ae576040519150601f19603f3d011682016040523d82523d6000602084013e6104b3565b606091505b5091509150851561054b578161054b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f4d756c746963616c6c32206167677265676174653a2063616c6c206661696c6560448201527f64000000000000000000000000000000000000000000000000000000000000006064820152608401610333565b604051806040016040528083151581526020018281525084848151811061057457610574610a51565b602002602001018190525050508061058b90610acb565b9050610406565b5092915050565b60008060606105a9600185610386565b9196909550909350915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040805190810167ffffffffffffffff81118282101715610608576106086105b6565b60405290565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715610655576106556105b6565b604052919050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461068157600080fd5b919050565b6000601f838184011261069857600080fd5b8235602067ffffffffffffffff808311156106b5576106b56105b6565b8260051b6106c483820161060e565b93845286810183019383810190898611156106de57600080fd5b84890192505b858310156107d2578235848111156106fc5760008081fd5b890160407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0828d0381018213156107335760008081fd5b61073b6105e5565b61074689850161065d565b8152828401358881111561075a5760008081fd5b8085019450508d603f8501126107705760008081fd5b8884013588811115610784576107846105b6565b6107938a848e8401160161060e565b92508083528e848287010111156107aa5760008081fd5b808486018b85013760009083018a0152808901919091528452505091840191908401906106e4565b9998505050505050505050565b6000602082840312156107f157600080fd5b813567ffffffffffffffff81111561080857600080fd5b61081484828501610686565b949350505050565b60005b8381101561083757818101518382015260200161081f565b83811115610846576000848401525b50505050565b6000815180845261086481602086016020860161081c565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b600060408201848352602060408185015281855180845260608601915060608160051b870101935082870160005b82811015610910577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa08887030184526108fe86835161084c565b955092840192908401906001016108c4565b509398975050505050505050565b6000806040838503121561093157600080fd5b8235801515811461094157600080fd5b9150602083013567ffffffffffffffff81111561095d57600080fd5b61096985828601610686565b9150509250929050565b6000815180845260208085019450848260051b860182860160005b858110156109ce578383038952815180511515845285015160408685018190526109ba8186018361084c565b9a87019a945050509084019060010161098e565b5090979650505050505050565b8381528260208201526060604082015260006109fa6060830184610973565b95945050505050565b600060208284031215610a1557600080fd5b610a1e8261065d565b9392505050565b602081526000610a1e6020830184610973565b600060208284031215610a4a57600080fd5b5035919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008251610a9281846020870161081c565b9190910192915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415610afd57610afd610a9c565b5060010190565b600082821015610b1657610b16610a9c565b50039056fea26469706673582212202c69e970f479545d7be246c48610ba0d642f18252c98dea6e14ebbeeb819c8f864736f6c634300080a0033";
337
337
  var isSuperArgs = function (xs) { return xs.length > 1; };
338
338
  var Multicall2__factory = /** @class */ (function (_super) {
339
339
  __extends(Multicall2__factory, _super);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gearbox-protocol/sdk",
3
- "version": "1.5.8",
3
+ "version": "1.5.9",
4
4
  "description": "Gearbox SDK",
5
5
  "main": "./lib/index.js",
6
6
  "types": "./lib/index.d.ts",