@paraswap/dex-lib 2.49.2 → 2.49.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.vscode/launch.json +53 -0
- package/.vscode/settings.json +2 -0
- package/.vscode/tasks.json +15 -0
- package/build/abi/uniswap-v3/AlienBaseV3Router.abi.json +52 -0
- package/build/dex/pancakeswap-v3/config.js +15 -0
- package/build/dex/pancakeswap-v3/config.js.map +1 -1
- package/build/dex/pancakeswap-v3/pancakeswap-v3.js +1 -1
- package/build/dex/pancakeswap-v3/pancakeswap-v3.js.map +1 -1
- package/build/dex/solidly-v3/scripts/check-event-pool-event.d.ts +1 -0
- package/build/dex/solidly-v3/scripts/check-event-pool-event.js +53 -0
- package/build/dex/solidly-v3/scripts/check-event-pool-event.js.map +1 -0
- package/build/dex/uniswap-v3/forks/alien-base-v3/alien-base-v3.d.ts +17 -0
- package/build/dex/uniswap-v3/forks/alien-base-v3/alien-base-v3.js +64 -0
- package/build/dex/uniswap-v3/forks/alien-base-v3/alien-base-v3.js.map +1 -0
- package/build/dex/uniswap-v3/forks/alien-v3/alien-v3.d.ts +17 -0
- package/build/dex/uniswap-v3/forks/alien-v3/alien-v3.js +79 -0
- package/build/dex/uniswap-v3/forks/alien-v3/alien-v3.js.map +1 -0
- package/package.json +1 -1
- package/src/dex/pancakeswap-v3/config.ts +16 -0
- package/src/dex/pancakeswap-v3/pancakeswap-v3.ts +3 -1
- package/build/abi/Redstone.json +0 -739
- package/build/abi/angle/stagToken.json +0 -963
- package/build/abi/angle-transmuter/MorphoOracle.json +0 -193
- package/build/abi/angle-transmuter/MorphoVault.json +0 -2506
- package/build/abi/angle-transmuter/Pyth.json +0 -1534
- package/build/abi/angle-transmuter/Transmuter.json +0 -1711
- package/build/abi/pharaoh/PharaohPool.abi.json +0 -1582
- package/build/abi/smardex/smardex-factory.json +0 -185
- package/build/abi/smardex/smardex-pool.json +0 -578
- package/build/abi/smardex/smardex-router.json +0 -648
- package/build/abi/trader-joe-v2_1/FactoryABI.json +0 -1208
- package/build/abi/trader-joe-v2_1/PairABI.json +0 -1493
- package/build/abi/trader-joe-v2_1/RouterABI.json +0 -1489
- package/build/abi/trader-joe-v2_1/StateMulticall.json +0 -193
- package/build/dex/angle-staked-stable/angle-staked-stable-pool.d.ts +0 -55
- package/build/dex/angle-staked-stable/angle-staked-stable-pool.js +0 -183
- package/build/dex/angle-staked-stable/angle-staked-stable-pool.js.map +0 -1
- package/build/dex/angle-staked-stable/angle-staked-stable.d.ts +0 -50
- package/build/dex/angle-staked-stable/angle-staked-stable.js +0 -280
- package/build/dex/angle-staked-stable/angle-staked-stable.js.map +0 -1
- package/build/dex/angle-staked-stable/config.d.ts +0 -4
- package/build/dex/angle-staked-stable/config.js +0 -46
- package/build/dex/angle-staked-stable/config.js.map +0 -1
- package/build/dex/angle-staked-stable/types.d.ts +0 -17
- package/build/dex/angle-staked-stable/types.js +0 -3
- package/build/dex/angle-staked-stable/types.js.map +0 -1
- package/build/dex/angle-transmuter/angle-transmuter-pool.d.ts +0 -61
- package/build/dex/angle-transmuter/angle-transmuter-pool.js +0 -415
- package/build/dex/angle-transmuter/angle-transmuter-pool.js.map +0 -1
- package/build/dex/angle-transmuter/angle-transmuter.d.ts +0 -59
- package/build/dex/angle-transmuter/angle-transmuter.js +0 -262
- package/build/dex/angle-transmuter/angle-transmuter.js.map +0 -1
- package/build/dex/angle-transmuter/backedOracle.d.ts +0 -19
- package/build/dex/angle-transmuter/backedOracle.js +0 -56
- package/build/dex/angle-transmuter/backedOracle.js.map +0 -1
- package/build/dex/angle-transmuter/config.d.ts +0 -4
- package/build/dex/angle-transmuter/config.js +0 -30
- package/build/dex/angle-transmuter/config.js.map +0 -1
- package/build/dex/angle-transmuter/constants.d.ts +0 -77
- package/build/dex/angle-transmuter/constants.js +0 -94
- package/build/dex/angle-transmuter/constants.js.map +0 -1
- package/build/dex/angle-transmuter/morphoOracle.d.ts +0 -42
- package/build/dex/angle-transmuter/morphoOracle.js +0 -179
- package/build/dex/angle-transmuter/morphoOracle.js.map +0 -1
- package/build/dex/angle-transmuter/morphoVault.d.ts +0 -19
- package/build/dex/angle-transmuter/morphoVault.js +0 -78
- package/build/dex/angle-transmuter/morphoVault.js.map +0 -1
- package/build/dex/angle-transmuter/pyth.d.ts +0 -19
- package/build/dex/angle-transmuter/pyth.js +0 -70
- package/build/dex/angle-transmuter/pyth.js.map +0 -1
- package/build/dex/angle-transmuter/redstone.d.ts +0 -20
- package/build/dex/angle-transmuter/redstone.js +0 -73
- package/build/dex/angle-transmuter/redstone.js.map +0 -1
- package/build/dex/angle-transmuter/transmuter.d.ts +0 -52
- package/build/dex/angle-transmuter/transmuter.js +0 -374
- package/build/dex/angle-transmuter/transmuter.js.map +0 -1
- package/build/dex/angle-transmuter/types.d.ts +0 -188
- package/build/dex/angle-transmuter/types.js +0 -33
- package/build/dex/angle-transmuter/types.js.map +0 -1
- package/build/dex/angle-transmuter/utils.d.ts +0 -9
- package/build/dex/angle-transmuter/utils.js +0 -252
- package/build/dex/angle-transmuter/utils.js.map +0 -1
- package/build/dex/smardex/subgraph-queries.d.ts +0 -1
- package/build/dex/smardex/subgraph-queries.js +0 -17
- package/build/dex/smardex/subgraph-queries.js.map +0 -1
- package/build/dex/smardex/usd-reserves.d.ts +0 -23
- package/build/dex/smardex/usd-reserves.js +0 -86
- package/build/dex/smardex/usd-reserves.js.map +0 -1
- package/build/dex/trader-joe-v2-1-2/config.d.ts +0 -4
- package/build/dex/trader-joe-v2-1-2/config.js +0 -47
- package/build/dex/trader-joe-v2-1-2/config.js.map +0 -1
- package/build/dex/trader-joe-v2-1-2/constants.d.ts +0 -20
- package/build/dex/trader-joe-v2-1-2/constants.js +0 -22
- package/build/dex/trader-joe-v2-1-2/constants.js.map +0 -1
- package/build/dex/trader-joe-v2-1-2/math/index.d.ts +0 -37
- package/build/dex/trader-joe-v2-1-2/math/index.js +0 -291
- package/build/dex/trader-joe-v2-1-2/math/index.js.map +0 -1
- package/build/dex/trader-joe-v2-1-2/trader-joe-v2-1-2-pool.d.ts +0 -60
- package/build/dex/trader-joe-v2-1-2/trader-joe-v2-1-2-pool.js +0 -248
- package/build/dex/trader-joe-v2-1-2/trader-joe-v2-1-2-pool.js.map +0 -1
- package/build/dex/trader-joe-v2-1-2/trader-joe-v2-1-2.d.ts +0 -53
- package/build/dex/trader-joe-v2-1-2/trader-joe-v2-1-2.js +0 -307
- package/build/dex/trader-joe-v2-1-2/trader-joe-v2-1-2.js.map +0 -1
- package/build/dex/trader-joe-v2-1-2/types.d.ts +0 -82
- package/build/dex/trader-joe-v2-1-2/types.js +0 -9
- package/build/dex/trader-joe-v2-1-2/types.js.map +0 -1
- package/build/dex/trader-joe-v2_1/config.d.ts +0 -4
- package/build/dex/trader-joe-v2_1/config.js +0 -47
- package/build/dex/trader-joe-v2_1/config.js.map +0 -1
- package/build/dex/trader-joe-v2_1/constants.d.ts +0 -20
- package/build/dex/trader-joe-v2_1/constants.js +0 -22
- package/build/dex/trader-joe-v2_1/constants.js.map +0 -1
- package/build/dex/trader-joe-v2_1/math/index.d.ts +0 -37
- package/build/dex/trader-joe-v2_1/math/index.js +0 -291
- package/build/dex/trader-joe-v2_1/math/index.js.map +0 -1
- package/build/dex/trader-joe-v2_1/trader-joe-v2.1.d.ts +0 -0
- package/build/dex/trader-joe-v2_1/trader-joe-v2.1.js +0 -384
- package/build/dex/trader-joe-v2_1/trader-joe-v2.1.js.map +0 -1
- package/build/dex/trader-joe-v2_1/trader-joe-v2_1-pool.d.ts +0 -60
- package/build/dex/trader-joe-v2_1/trader-joe-v2_1-pool.js +0 -247
- package/build/dex/trader-joe-v2_1/trader-joe-v2_1-pool.js.map +0 -1
- package/build/dex/trader-joe-v2_1/trader-joe-v2_1.d.ts +0 -53
- package/build/dex/trader-joe-v2_1/trader-joe-v2_1.js +0 -307
- package/build/dex/trader-joe-v2_1/trader-joe-v2_1.js.map +0 -1
- package/build/dex/trader-joe-v2_1/types.d.ts +0 -82
- package/build/dex/trader-joe-v2_1/types.js +0 -9
- package/build/dex/trader-joe-v2_1/types.js.map +0 -1
- package/build/dex/wombat/wombat-pool-poller.d.ts +0 -22
- package/build/dex/wombat/wombat-pool-poller.js +0 -164
- package/build/dex/wombat/wombat-pool-poller.js.map +0 -1
- package/build/dex-helper/Cache.d.ts +0 -31
- package/build/dex-helper/Cache.js +0 -106
- package/build/dex-helper/Cache.js.map +0 -1
- package/build/dex-helper/RedisBatcher.d.ts +0 -20
- package/build/dex-helper/RedisBatcher.js +0 -75
- package/build/dex-helper/RedisBatcher.js.map +0 -1
- package/build/dex-helper/RedisWrapper.d.ts +0 -37
- package/build/dex-helper/RedisWrapper.js +0 -165
- package/build/dex-helper/RedisWrapper.js.map +0 -1
- package/src/abi/uniswap-v3/AlienBaseV3Router.abi.json +0 -52
|
@@ -1,384 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
// import { Network, SwapSide } from '../../constants';
|
|
3
|
-
// import {
|
|
4
|
-
// AdapterExchangeParam,
|
|
5
|
-
// Address,
|
|
6
|
-
// ExchangePrices,
|
|
7
|
-
// Logger,
|
|
8
|
-
// PoolPrices,
|
|
9
|
-
// SimpleExchangeParam,
|
|
10
|
-
// Token,
|
|
11
|
-
// } from '../../types';
|
|
12
|
-
// import { IDex, IDexTxBuilder } from '../idex';
|
|
13
|
-
// import { IDexHelper } from '../../dex-helper';
|
|
14
|
-
// import {
|
|
15
|
-
// getLocalDeadlineAsFriendlyPlaceholder,
|
|
16
|
-
// SimpleExchange,
|
|
17
|
-
// } from '../simple-exchange';
|
|
18
|
-
// import { NumberAsString } from '@paraswap/core';
|
|
19
|
-
// import { AsyncOrSync } from 'ts-essentials';
|
|
20
|
-
// import { Interface, JsonFragment } from '@ethersproject/abi';
|
|
21
|
-
// import TraderJoeV21RouterABI from '../../abi/TraderJoeV21Router.json';
|
|
22
|
-
// import { getBigIntPow, getDexKeysWithNetwork, interpolate } from '../../utils';
|
|
23
|
-
// import { Adapters, TraderJoeV2_1Config } from './config';
|
|
24
|
-
// // import * as CALLDATA_GAS_COST from '../calldata-gas-cost';
|
|
25
|
-
// import * as CALLDATA_GAS_COST from '../../calldata-gas-cost';
|
|
26
|
-
// import {
|
|
27
|
-
// TRADER_JOE_V2_CHUNKS,
|
|
28
|
-
// TRADER_JOE_V2_QUOTE_GASLIMIT,
|
|
29
|
-
// } from './constants';
|
|
30
|
-
// import { LBPairsAvailable } from './types';
|
|
31
|
-
// type RouterPath = [
|
|
32
|
-
// pairBinSteps: NumberAsString[],
|
|
33
|
-
// versions: NumberAsString[],
|
|
34
|
-
// tokenPath: Address[],
|
|
35
|
-
// ];
|
|
36
|
-
// type TraderJoeV2RouterSellParams = [
|
|
37
|
-
// _amountIn: NumberAsString,
|
|
38
|
-
// _amountOutMin: NumberAsString,
|
|
39
|
-
// _routerPath: RouterPath,
|
|
40
|
-
// to: Address,
|
|
41
|
-
// _deadline: string,
|
|
42
|
-
// ];
|
|
43
|
-
// type TraderJoeV2RouterBuyParams = [
|
|
44
|
-
// _amountOut: NumberAsString,
|
|
45
|
-
// _amountInMax: NumberAsString,
|
|
46
|
-
// _routerPath: RouterPath,
|
|
47
|
-
// to: Address,
|
|
48
|
-
// _deadline: string,
|
|
49
|
-
// ];
|
|
50
|
-
// type TraderJoeV2RouterParam =
|
|
51
|
-
// | TraderJoeV2RouterSellParams
|
|
52
|
-
// | TraderJoeV2RouterBuyParams;
|
|
53
|
-
// export type TraderJoeV2Data = {
|
|
54
|
-
// tokenIn: string; // redundant
|
|
55
|
-
// tokenOut: string; // redundant
|
|
56
|
-
// binStep: string;
|
|
57
|
-
// };
|
|
58
|
-
// enum TraderJoeV2RouterFunctions {
|
|
59
|
-
// swapExactTokensForTokens = 'swapExactTokensForTokens',
|
|
60
|
-
// swapTokensForExactTokens = 'swapTokensForExactTokens',
|
|
61
|
-
// }
|
|
62
|
-
// export class TraderJoeV21
|
|
63
|
-
// extends SimpleExchange
|
|
64
|
-
// implements IDex<TraderJoeV2Data, TraderJoeV2RouterParam>
|
|
65
|
-
// {
|
|
66
|
-
// availablePools: { [key: string]: string } = {};
|
|
67
|
-
// // pairs: { [key: string]: SmardexPair } = {};
|
|
68
|
-
// // factory: Contract;
|
|
69
|
-
// // routerInterface: Interface;
|
|
70
|
-
// exchangeRouterInterface: Interface;
|
|
71
|
-
// factoryAddress: string;
|
|
72
|
-
// routerAddress: string;
|
|
73
|
-
// protected subgraphURL: string | undefined;
|
|
74
|
-
// logger: Logger;
|
|
75
|
-
// needWrapNative = true;
|
|
76
|
-
// public static dexKeysWithNetwork: { key: string; networks: Network[] }[] =
|
|
77
|
-
// getDexKeysWithNetwork(TraderJoeV2_1Config);
|
|
78
|
-
// constructor(
|
|
79
|
-
// protected network: Network,
|
|
80
|
-
// dexKey: string,
|
|
81
|
-
// public dexHelper: IDexHelper,
|
|
82
|
-
// protected adapters = Adapters[network] || {},
|
|
83
|
-
// ) {
|
|
84
|
-
// super(dexHelper, dexKey);
|
|
85
|
-
// this.logger = dexHelper.getLogger(dexKey);
|
|
86
|
-
// const config = TraderJoeV2_1Config[dexKey];
|
|
87
|
-
// this.routerAddress = config[network].routerAddress!;
|
|
88
|
-
// this.factoryAddress = config[network].factoryAddress;
|
|
89
|
-
// // const factoryAbi = this.isLayer1()
|
|
90
|
-
// // ? SmardexFactoryLayerOneABI
|
|
91
|
-
// // : SmardexFactoryLayerTwoABI;
|
|
92
|
-
// // this.factory = new dexHelper.web3Provider.eth.Contract(
|
|
93
|
-
// // factoryAbi as any,
|
|
94
|
-
// // this.factoryAddress,
|
|
95
|
-
// // );
|
|
96
|
-
// // this.routerInterface = new Interface(ParaSwapABI);
|
|
97
|
-
// this.exchangeRouterInterface = new Interface(
|
|
98
|
-
// TraderJoeV21RouterABI as JsonFragment[],
|
|
99
|
-
// );
|
|
100
|
-
// // super(dexHelper, 'traderjoev2.1');
|
|
101
|
-
// // this.routerAddress =
|
|
102
|
-
// // TraderJoeV2_1Config[dexHelper.config.data.network].routerAddress;
|
|
103
|
-
// // // this.routerAddress =
|
|
104
|
-
// // // TRADERJOE_V2_1_ROUTER_ADDRESS[dexHelper.config.data.network];
|
|
105
|
-
// // this.exchangeRouterInterface = new Interface(
|
|
106
|
-
// // TraderJoeV21RouterABI as JsonFragment[],
|
|
107
|
-
// // );
|
|
108
|
-
// }
|
|
109
|
-
// getAdapterParam(
|
|
110
|
-
// srcToken: Address,
|
|
111
|
-
// destToken: Address,
|
|
112
|
-
// srcAmount: NumberAsString,
|
|
113
|
-
// destAmount: NumberAsString,
|
|
114
|
-
// data: TraderJoeV2Data,
|
|
115
|
-
// side: SwapSide,
|
|
116
|
-
// ): AdapterExchangeParam {
|
|
117
|
-
// let payload = this.abiCoder.encodeParameters(
|
|
118
|
-
// ['tuple(tuple(uint256[],uint8[],address[]),uint256)'],
|
|
119
|
-
// [
|
|
120
|
-
// [
|
|
121
|
-
// [
|
|
122
|
-
// [
|
|
123
|
-
// data.binStep, // _pairBinSteps: uint256[]
|
|
124
|
-
// ],
|
|
125
|
-
// [
|
|
126
|
-
// 2, // _versions: uint8[]
|
|
127
|
-
// ],
|
|
128
|
-
// [
|
|
129
|
-
// data.tokenIn,
|
|
130
|
-
// data.tokenOut, // _tokenPath: address[]
|
|
131
|
-
// ],
|
|
132
|
-
// ],
|
|
133
|
-
// getLocalDeadlineAsFriendlyPlaceholder(), // _deadline: uint256
|
|
134
|
-
// ],
|
|
135
|
-
// ],
|
|
136
|
-
// );
|
|
137
|
-
// return {
|
|
138
|
-
// targetExchange: this.routerAddress,
|
|
139
|
-
// payload,
|
|
140
|
-
// networkFee: '0',
|
|
141
|
-
// };
|
|
142
|
-
// }
|
|
143
|
-
// getSimpleParam(
|
|
144
|
-
// srcToken: Address,
|
|
145
|
-
// destToken: Address,
|
|
146
|
-
// srcAmount: NumberAsString,
|
|
147
|
-
// destAmount: NumberAsString,
|
|
148
|
-
// data: TraderJoeV2Data,
|
|
149
|
-
// side: SwapSide,
|
|
150
|
-
// ): AsyncOrSync<SimpleExchangeParam> {
|
|
151
|
-
// const swapFunction =
|
|
152
|
-
// side === SwapSide.SELL
|
|
153
|
-
// ? TraderJoeV2RouterFunctions.swapExactTokensForTokens
|
|
154
|
-
// : TraderJoeV2RouterFunctions.swapTokensForExactTokens;
|
|
155
|
-
// const swapFunctionParams: TraderJoeV2RouterParam =
|
|
156
|
-
// side === SwapSide.SELL
|
|
157
|
-
// ? [
|
|
158
|
-
// srcAmount,
|
|
159
|
-
// destAmount,
|
|
160
|
-
// [[data.binStep], ['2'], [srcToken, destToken]],
|
|
161
|
-
// this.augustusAddress,
|
|
162
|
-
// getLocalDeadlineAsFriendlyPlaceholder(),
|
|
163
|
-
// ]
|
|
164
|
-
// : [
|
|
165
|
-
// destAmount,
|
|
166
|
-
// srcAmount,
|
|
167
|
-
// [[data.binStep], ['2'], [srcToken, destToken]],
|
|
168
|
-
// this.augustusAddress,
|
|
169
|
-
// getLocalDeadlineAsFriendlyPlaceholder(),
|
|
170
|
-
// ];
|
|
171
|
-
// const swapData = this.exchangeRouterInterface.encodeFunctionData(
|
|
172
|
-
// swapFunction,
|
|
173
|
-
// swapFunctionParams,
|
|
174
|
-
// );
|
|
175
|
-
// return this.buildSimpleParamWithoutWETHConversion(
|
|
176
|
-
// srcToken,
|
|
177
|
-
// srcAmount,
|
|
178
|
-
// destToken,
|
|
179
|
-
// destAmount,
|
|
180
|
-
// swapData,
|
|
181
|
-
// this.routerAddress,
|
|
182
|
-
// );
|
|
183
|
-
// }
|
|
184
|
-
// async getPricesVolume(
|
|
185
|
-
// from: Token,
|
|
186
|
-
// to: Token,
|
|
187
|
-
// amounts: bigint[],
|
|
188
|
-
// side: SwapSide,
|
|
189
|
-
// routeID: number,
|
|
190
|
-
// usedPools: { [poolIdentifier: string]: number } | null,
|
|
191
|
-
// ): Promise<null | ExchangePrices<TraderJoeV2Data>> {
|
|
192
|
-
// try {
|
|
193
|
-
// const _from = this.dexHelper.config.wrapETH(from);
|
|
194
|
-
// const _to = this.dexHelper.config.wrapETH(to);
|
|
195
|
-
// const pools = await this.getPools(_from, _to);
|
|
196
|
-
// if (!pools || !pools.length) return null;
|
|
197
|
-
// const filteredPools = !usedPools
|
|
198
|
-
// ? pools
|
|
199
|
-
// : pools.filter(p => usedPools[this.getPoolIdentifier(p)] === routeID);
|
|
200
|
-
// if (!filteredPools.length) return null;
|
|
201
|
-
// const unitVolume = getBigIntPow(
|
|
202
|
-
// (side === SwapSide.SELL ? _from : _to).decimals,
|
|
203
|
-
// );
|
|
204
|
-
// const chunks = amounts.length - 1;
|
|
205
|
-
// const _width = Math.floor(chunks / TRADER_JOE_V2_CHUNKS);
|
|
206
|
-
// const _amounts = [unitVolume].concat(
|
|
207
|
-
// Array.from(Array(TRADER_JOE_V2_CHUNKS).keys()).map(
|
|
208
|
-
// i => amounts[(i + 1) * _width],
|
|
209
|
-
// ),
|
|
210
|
-
// );
|
|
211
|
-
// const calldata = filteredPools.flatMap(pool =>
|
|
212
|
-
// _amounts.map(_amount => ({
|
|
213
|
-
// target: this.routerAddress,
|
|
214
|
-
// gasLimit: TRADER_JOE_V2_QUOTE_GASLIMIT,
|
|
215
|
-
// callData: (side === SwapSide.SELL
|
|
216
|
-
// ? this.router.methods.getSwapOut(
|
|
217
|
-
// pool.LBPair,
|
|
218
|
-
// _amount.toString(),
|
|
219
|
-
// _from.address === pool.tokenX,
|
|
220
|
-
// )
|
|
221
|
-
// : this.router.methods.getSwapIn(
|
|
222
|
-
// pool.LBPair,
|
|
223
|
-
// _amount.toString(),
|
|
224
|
-
// _from.address === pool.tokenX,
|
|
225
|
-
// )
|
|
226
|
-
// ).encodeABI(),
|
|
227
|
-
// })),
|
|
228
|
-
// );
|
|
229
|
-
// const data = await this.uniswapMulti.methods.multicall(calldata).call();
|
|
230
|
-
// const quoteIndex = side === SwapSide.SELL ? 1 : 0;
|
|
231
|
-
// const quoteLeftIndex = side === SwapSide.SELL ? 0 : 1;
|
|
232
|
-
// const prices = filteredPools.map((pool, i) => {
|
|
233
|
-
// const rates = _amounts.map((_, j) => {
|
|
234
|
-
// if (!data.returnData[i * _amounts.length + j].success) {
|
|
235
|
-
// return 0n;
|
|
236
|
-
// }
|
|
237
|
-
// const decoded = defaultAbiCoder.decode(
|
|
238
|
-
// // amountInLeft amountOut fee
|
|
239
|
-
// ['uint128', 'uint128', 'uint128'],
|
|
240
|
-
// data.returnData[i * _amounts.length + j].returnData,
|
|
241
|
-
// );
|
|
242
|
-
// if (BigInt(decoded[quoteLeftIndex]).valueOf() !== 0n) {
|
|
243
|
-
// return BigInt(0);
|
|
244
|
-
// }
|
|
245
|
-
// return BigInt(decoded[quoteIndex].toString());
|
|
246
|
-
// });
|
|
247
|
-
// // index of pools, isolate pool
|
|
248
|
-
// const unit: bigint = rates[0];
|
|
249
|
-
// const prices = interpolate(
|
|
250
|
-
// _amounts.slice(1),
|
|
251
|
-
// rates.slice(1),
|
|
252
|
-
// amounts,
|
|
253
|
-
// side,
|
|
254
|
-
// );
|
|
255
|
-
// return {
|
|
256
|
-
// prices,
|
|
257
|
-
// unit,
|
|
258
|
-
// data: {
|
|
259
|
-
// tokenIn: _from.address, // redundant, fix by contract change
|
|
260
|
-
// tokenOut: _to.address, // same
|
|
261
|
-
// binStep: pool.binStep.toString(),
|
|
262
|
-
// },
|
|
263
|
-
// poolIdentifier: this.getPoolIdentifier(pool),
|
|
264
|
-
// exchange: this.routerAddress,
|
|
265
|
-
// gasCost: TRADER_JOE_V2_QUOTE_GASLIMIT,
|
|
266
|
-
// poolAddresses: [pool.LBPair],
|
|
267
|
-
// };
|
|
268
|
-
// });
|
|
269
|
-
// return prices;
|
|
270
|
-
// } catch (e) {
|
|
271
|
-
// this.logger.error(
|
|
272
|
-
// `Error_getPrices: ${this.dexKey} for pair (${
|
|
273
|
-
// from.symbol || from.address
|
|
274
|
-
// }, ${to.symbol || to.address}) and side=${side}:`,
|
|
275
|
-
// e,
|
|
276
|
-
// );
|
|
277
|
-
// return null;
|
|
278
|
-
// }
|
|
279
|
-
// }
|
|
280
|
-
// private async getPools(
|
|
281
|
-
// tokenA: Token,
|
|
282
|
-
// tokenB: Token,
|
|
283
|
-
// ): Promise<LBPairsAvailable[] | undefined> {
|
|
284
|
-
// try {
|
|
285
|
-
// const cacheKey = this.computeCacheKey(tokenA.address, tokenB.address);
|
|
286
|
-
// // TODO: Improve
|
|
287
|
-
// const poolsInCache = await this.dexHelper.cache.rawget(cacheKey);
|
|
288
|
-
// if (!!poolsInCache) {
|
|
289
|
-
// return JSON.parse(poolsInCache);
|
|
290
|
-
// }
|
|
291
|
-
// // warning: order between tokenX and tokenY is not guranteed on LBPairs
|
|
292
|
-
// const [tokenX, tokenY] = this._sortTokens(tokenA.address, tokenB.address);
|
|
293
|
-
// const pools: LBPairsAvailable[] =
|
|
294
|
-
// (await this.factory.methods.getAllLBPairs(tokenX, tokenY).call()) || [];
|
|
295
|
-
// if (!pools.length) {
|
|
296
|
-
// await this.dexHelper.cache.setex(cacheKey, EMPTY_POOL_CACHE_TTL, '[]');
|
|
297
|
-
// return [];
|
|
298
|
-
// }
|
|
299
|
-
// const getTokenXCallData = pools.map(pool => ({
|
|
300
|
-
// target: pool.LBPair,
|
|
301
|
-
// gasLimit: TRADER_JOE_V2_QUOTE_GASLIMIT,
|
|
302
|
-
// callData: this.pair.methods.getTokenX().encodeABI(),
|
|
303
|
-
// }));
|
|
304
|
-
// const data = await this.uniswapMulti.methods
|
|
305
|
-
// .multicall(getTokenXCallData)
|
|
306
|
-
// .call();
|
|
307
|
-
// const _pools = pools.map((pool, i) => {
|
|
308
|
-
// const decodedTokenX = defaultAbiCoder
|
|
309
|
-
// .decode(['address'], data.returnData[i].returnData)[0]
|
|
310
|
-
// .toString()
|
|
311
|
-
// .toLowerCase();
|
|
312
|
-
// return {
|
|
313
|
-
// ...pool,
|
|
314
|
-
// tokenX: decodedTokenX,
|
|
315
|
-
// };
|
|
316
|
-
// });
|
|
317
|
-
// await RedisWrapper.setex(
|
|
318
|
-
// cacheKey,
|
|
319
|
-
// POPULATED_POOL_CACHE_TTL,
|
|
320
|
-
// JSON.stringify(_pools),
|
|
321
|
-
// );
|
|
322
|
-
// return _pools;
|
|
323
|
-
// } catch (e) {
|
|
324
|
-
// logger.error(
|
|
325
|
-
// `${EXCHANGES.TRADERJOE_V2_1} Error 'poolByPair' reading from factory for pair: ${tokenA.address} and ${tokenA.address}:`,
|
|
326
|
-
// e,
|
|
327
|
-
// );
|
|
328
|
-
// return;
|
|
329
|
-
// }
|
|
330
|
-
// }
|
|
331
|
-
// protected getPoolIdentifier(pool: LBPairsAvailable) {
|
|
332
|
-
// return `${EXCHANGES.TRADERJOE_V2_1}_${pool.LBPair}`;
|
|
333
|
-
// }
|
|
334
|
-
// // FIXME
|
|
335
|
-
// getCalldataGasCost(
|
|
336
|
-
// poolPrices: PoolPrices<TraderJoeV2Data>,
|
|
337
|
-
// ): number | number[] {
|
|
338
|
-
// return (
|
|
339
|
-
// CALLDATA_GAS_COST.DEX_OVERHEAD +
|
|
340
|
-
// CALLDATA_GAS_COST.LENGTH_SMALL +
|
|
341
|
-
// // ParentStruct header
|
|
342
|
-
// CALLDATA_GAS_COST.OFFSET_SMALL +
|
|
343
|
-
// // ParentStruct -> path header
|
|
344
|
-
// CALLDATA_GAS_COST.OFFSET_SMALL +
|
|
345
|
-
// // ParentStruct -> deadline
|
|
346
|
-
// CALLDATA_GAS_COST.TIMESTAMP +
|
|
347
|
-
// // ParentStruct -> path (20+3+20 = 43 = 32+11 bytes)
|
|
348
|
-
// CALLDATA_GAS_COST.LENGTH_SMALL +
|
|
349
|
-
// CALLDATA_GAS_COST.FULL_WORD +
|
|
350
|
-
// CALLDATA_GAS_COST.wordNonZeroBytes(11)
|
|
351
|
-
// );
|
|
352
|
-
// }
|
|
353
|
-
// async getPoolIdentifiers(
|
|
354
|
-
// _from: Token,
|
|
355
|
-
// _to: Token,
|
|
356
|
-
// side: SwapSide,
|
|
357
|
-
// blockNumber: number,
|
|
358
|
-
// ): Promise<string[]> {
|
|
359
|
-
// const from = this.dexHelper.config.wrapETH(_from);
|
|
360
|
-
// const to = this.dexHelper.config.wrapETH(_to);
|
|
361
|
-
// if (from.address.toLowerCase() === to.address.toLowerCase()) {
|
|
362
|
-
// return [];
|
|
363
|
-
// }
|
|
364
|
-
// const tokenAddress = [from.address.toLowerCase(), to.address.toLowerCase()]
|
|
365
|
-
// .sort((a, b) => (a > b ? 1 : -1))
|
|
366
|
-
// .join('_');
|
|
367
|
-
// const poolIdentifier = `${this.dexKey}_${tokenAddress}`;
|
|
368
|
-
// return [poolIdentifier];
|
|
369
|
-
// }
|
|
370
|
-
// protected computeCacheKey(from: Address, to: Address): string {
|
|
371
|
-
// return `${this.dexKey}_${this.network}_${this._sortTokens(from, to).join(
|
|
372
|
-
// '_',
|
|
373
|
-
// )}_2`;
|
|
374
|
-
// }
|
|
375
|
-
// private _sortTokens(srcAddress: Address, destAddress: Address) {
|
|
376
|
-
// return [srcAddress.toLowerCase(), destAddress.toLowerCase()].sort((a, b) =>
|
|
377
|
-
// a < b ? -1 : 1,
|
|
378
|
-
// );
|
|
379
|
-
// }
|
|
380
|
-
// // protected getPoolIdentifier(pool: LBPairsAvailable) {
|
|
381
|
-
// // return `${EXCHANGES.TRADERJOE_V2_1}_${pool.LBPair}`;
|
|
382
|
-
// // }
|
|
383
|
-
// }
|
|
384
|
-
//# sourceMappingURL=trader-joe-v2.1.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"trader-joe-v2.1.js","sourceRoot":"","sources":["../../../src/dex/trader-joe-v2_1/trader-joe-v2.1.ts"],"names":[],"mappings":";AAAA,uDAAuD;AACvD,WAAW;AACX,0BAA0B;AAC1B,aAAa;AACb,oBAAoB;AACpB,YAAY;AACZ,gBAAgB;AAChB,yBAAyB;AACzB,WAAW;AACX,wBAAwB;AACxB,iDAAiD;AACjD,iDAAiD;AACjD,WAAW;AACX,2CAA2C;AAC3C,oBAAoB;AACpB,+BAA+B;AAC/B,mDAAmD;AACnD,+CAA+C;AAC/C,gEAAgE;AAChE,yEAAyE;AACzE,kFAAkF;AAClF,4DAA4D;AAC5D,gEAAgE;AAChE,gEAAgE;AAChE,WAAW;AACX,0BAA0B;AAC1B,kCAAkC;AAClC,wBAAwB;AACxB,8CAA8C;AAE9C,sBAAsB;AACtB,oCAAoC;AACpC,gCAAgC;AAChC,0BAA0B;AAC1B,KAAK;AACL,uCAAuC;AACvC,+BAA+B;AAC/B,mCAAmC;AACnC,6BAA6B;AAC7B,iBAAiB;AACjB,uBAAuB;AACvB,KAAK;AAEL,sCAAsC;AACtC,gCAAgC;AAChC,kCAAkC;AAClC,6BAA6B;AAC7B,iBAAiB;AACjB,uBAAuB;AACvB,KAAK;AAEL,gCAAgC;AAChC,kCAAkC;AAClC,kCAAkC;AAElC,kCAAkC;AAClC,kCAAkC;AAClC,mCAAmC;AACnC,qBAAqB;AACrB,KAAK;AAEL,oCAAoC;AACpC,2DAA2D;AAC3D,2DAA2D;AAC3D,IAAI;AACJ,4BAA4B;AAC5B,2BAA2B;AAC3B,6DAA6D;AAC7D,IAAI;AACJ,oDAAoD;AACpD,mDAAmD;AACnD,0BAA0B;AAE1B,mCAAmC;AACnC,wCAAwC;AAExC,4BAA4B;AAC5B,2BAA2B;AAE3B,+CAA+C;AAE/C,oBAAoB;AAEpB,2BAA2B;AAC3B,+EAA+E;AAC/E,kDAAkD;AAElD,iBAAiB;AACjB,kCAAkC;AAClC,sBAAsB;AACtB,oCAAoC;AACpC,oDAAoD;AACpD,QAAQ;AACR,gCAAgC;AAChC,iDAAiD;AACjD,kDAAkD;AAClD,2DAA2D;AAC3D,4DAA4D;AAC5D,4CAA4C;AAC5C,uCAAuC;AACvC,wCAAwC;AACxC,iEAAiE;AACjE,8BAA8B;AAC9B,gCAAgC;AAChC,YAAY;AACZ,4DAA4D;AAC5D,oDAAoD;AACpD,iDAAiD;AACjD,SAAS;AAET,4CAA4C;AAE5C,8BAA8B;AAC9B,6EAA6E;AAC7E,iCAAiC;AACjC,4EAA4E;AAE5E,uDAAuD;AACvD,oDAAoD;AACpD,YAAY;AACZ,MAAM;AAEN,qBAAqB;AACrB,yBAAyB;AACzB,0BAA0B;AAC1B,iCAAiC;AACjC,kCAAkC;AAClC,6BAA6B;AAC7B,sBAAsB;AACtB,8BAA8B;AAC9B,oDAAoD;AACpD,+DAA+D;AAC/D,UAAU;AACV,YAAY;AACZ,cAAc;AACd,gBAAgB;AAChB,0DAA0D;AAC1D,iBAAiB;AACjB,gBAAgB;AAChB,yCAAyC;AACzC,iBAAiB;AACjB,gBAAgB;AAChB,8BAA8B;AAC9B,wDAAwD;AACxD,iBAAiB;AACjB,eAAe;AACf,2EAA2E;AAC3E,aAAa;AACb,WAAW;AACX,SAAS;AAET,eAAe;AACf,4CAA4C;AAC5C,iBAAiB;AACjB,yBAAyB;AACzB,SAAS;AACT,MAAM;AAEN,oBAAoB;AACpB,yBAAyB;AACzB,0BAA0B;AAC1B,iCAAiC;AACjC,kCAAkC;AAClC,6BAA6B;AAC7B,sBAAsB;AACtB,0CAA0C;AAC1C,2BAA2B;AAC3B,+BAA+B;AAC/B,gEAAgE;AAChE,iEAAiE;AAEjE,yDAAyD;AACzD,+BAA+B;AAC/B,cAAc;AACd,yBAAyB;AACzB,0BAA0B;AAC1B,8DAA8D;AAC9D,oCAAoC;AACpC,uDAAuD;AACvD,cAAc;AACd,cAAc;AACd,0BAA0B;AAC1B,yBAAyB;AACzB,8DAA8D;AAC9D,oCAAoC;AACpC,uDAAuD;AACvD,eAAe;AAEf,wEAAwE;AACxE,sBAAsB;AACtB,4BAA4B;AAC5B,SAAS;AAET,yDAAyD;AACzD,kBAAkB;AAClB,mBAAmB;AACnB,mBAAmB;AACnB,oBAAoB;AACpB,kBAAkB;AAClB,4BAA4B;AAC5B,SAAS;AACT,MAAM;AAEN,2BAA2B;AAC3B,mBAAmB;AACnB,iBAAiB;AACjB,yBAAyB;AACzB,sBAAsB;AACtB,uBAAuB;AACvB,8DAA8D;AAC9D,yDAAyD;AACzD,YAAY;AACZ,2DAA2D;AAC3D,uDAAuD;AAEvD,uDAAuD;AAEvD,kDAAkD;AAElD,yCAAyC;AACzC,kBAAkB;AAClB,iFAAiF;AAEjF,gDAAgD;AAEhD,yCAAyC;AACzC,2DAA2D;AAC3D,WAAW;AAEX,2CAA2C;AAE3C,kEAAkE;AAElE,8CAA8C;AAC9C,8DAA8D;AAC9D,4CAA4C;AAC5C,aAAa;AACb,WAAW;AAEX,uDAAuD;AACvD,qCAAqC;AACrC,wCAAwC;AACxC,oDAAoD;AACpD,8CAA8C;AAC9C,gDAAgD;AAChD,+BAA+B;AAC/B,sCAAsC;AACtC,iDAAiD;AACjD,kBAAkB;AAClB,+CAA+C;AAC/C,+BAA+B;AAC/B,sCAAsC;AACtC,iDAAiD;AACjD,kBAAkB;AAClB,2BAA2B;AAC3B,eAAe;AACf,WAAW;AAEX,iFAAiF;AAEjF,2DAA2D;AAC3D,+DAA+D;AAE/D,wDAAwD;AACxD,iDAAiD;AACjD,qEAAqE;AACrE,yBAAyB;AACzB,cAAc;AAEd,oDAAoD;AACpD,4CAA4C;AAC5C,iDAAiD;AACjD,mEAAmE;AACnE,eAAe;AAEf,oEAAoE;AACpE,gCAAgC;AAChC,cAAc;AAEd,2DAA2D;AAC3D,cAAc;AAEd,0CAA0C;AAE1C,yCAAyC;AAEzC,sCAAsC;AACtC,+BAA+B;AAC/B,4BAA4B;AAC5B,qBAAqB;AACrB,kBAAkB;AAClB,aAAa;AAEb,mBAAmB;AACnB,oBAAoB;AACpB,kBAAkB;AAClB,oBAAoB;AACpB,2EAA2E;AAC3E,6CAA6C;AAC7C,gDAAgD;AAChD,eAAe;AACf,0DAA0D;AAC1D,0CAA0C;AAC1C,mDAAmD;AACnD,0CAA0C;AAC1C,aAAa;AACb,YAAY;AAEZ,uBAAuB;AACvB,oBAAoB;AACpB,2BAA2B;AAC3B,wDAAwD;AACxD,wCAAwC;AACxC,6DAA6D;AAC7D,aAAa;AACb,WAAW;AACX,qBAAqB;AACrB,QAAQ;AACR,MAAM;AAEN,4BAA4B;AAC5B,qBAAqB;AACrB,qBAAqB;AACrB,iDAAiD;AACjD,YAAY;AACZ,+EAA+E;AAC/E,yBAAyB;AACzB,0EAA0E;AAE1E,8BAA8B;AAC9B,2CAA2C;AAC3C,UAAU;AAEV,gFAAgF;AAChF,mFAAmF;AAEnF,0CAA0C;AAC1C,mFAAmF;AAEnF,6BAA6B;AAC7B,kFAAkF;AAClF,qBAAqB;AACrB,UAAU;AAEV,uDAAuD;AACvD,+BAA+B;AAC/B,kDAAkD;AAClD,+DAA+D;AAC/D,aAAa;AAEb,qDAAqD;AACrD,wCAAwC;AACxC,mBAAmB;AAEnB,gDAAgD;AAChD,gDAAgD;AAChD,mEAAmE;AACnE,wBAAwB;AACxB,4BAA4B;AAE5B,mBAAmB;AACnB,qBAAqB;AACrB,mCAAmC;AACnC,aAAa;AACb,YAAY;AAEZ,kCAAkC;AAClC,oBAAoB;AACpB,oCAAoC;AACpC,kCAAkC;AAClC,WAAW;AAEX,uBAAuB;AACvB,oBAAoB;AACpB,sBAAsB;AACtB,oIAAoI;AACpI,aAAa;AACb,WAAW;AACX,gBAAgB;AAChB,QAAQ;AACR,MAAM;AAEN,0DAA0D;AAC1D,2DAA2D;AAC3D,MAAM;AAEN,aAAa;AACb,wBAAwB;AACxB,+CAA+C;AAC/C,2BAA2B;AAC3B,eAAe;AACf,yCAAyC;AACzC,yCAAyC;AACzC,+BAA+B;AAC/B,yCAAyC;AACzC,uCAAuC;AACvC,yCAAyC;AACzC,oCAAoC;AACpC,sCAAsC;AACtC,6DAA6D;AAC7D,yCAAyC;AACzC,sCAAsC;AACtC,+CAA+C;AAC/C,SAAS;AACT,MAAM;AAEN,8BAA8B;AAC9B,oBAAoB;AACpB,kBAAkB;AAClB,sBAAsB;AACtB,2BAA2B;AAC3B,2BAA2B;AAC3B,yDAAyD;AACzD,qDAAqD;AAErD,qEAAqE;AACrE,mBAAmB;AACnB,QAAQ;AAER,kFAAkF;AAClF,0CAA0C;AAC1C,oBAAoB;AAEpB,+DAA+D;AAC/D,+BAA+B;AAC/B,MAAM;AAEN,oEAAoE;AACpE,gFAAgF;AAChF,aAAa;AACb,aAAa;AACb,MAAM;AAEN,qEAAqE;AACrE,kFAAkF;AAClF,wBAAwB;AACxB,SAAS;AACT,MAAM;AAEN,6DAA6D;AAC7D,8DAA8D;AAC9D,SAAS;AACT,IAAI"}
|
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
import { Interface } from '@ethersproject/abi';
|
|
2
|
-
import { DeepReadonly } from 'ts-essentials';
|
|
3
|
-
import { Address, Log, Logger } from '../../types';
|
|
4
|
-
import { StatefulEventSubscriber } from '../../stateful-event-subscriber';
|
|
5
|
-
import { IDexHelper } from '../../dex-helper/idex-helper';
|
|
6
|
-
import { PoolState } from './types';
|
|
7
|
-
export declare class TraderJoeV2_1EventPool extends StatefulEventSubscriber<PoolState> {
|
|
8
|
-
readonly parentName: string;
|
|
9
|
-
protected network: number;
|
|
10
|
-
protected dexHelper: IDexHelper;
|
|
11
|
-
private readonly factoryAddress;
|
|
12
|
-
private readonly stateMultiAddress;
|
|
13
|
-
handlers: {
|
|
14
|
-
[event: string]: (event: any, state: PoolState, log: Readonly<Log>) => DeepReadonly<PoolState> | null;
|
|
15
|
-
};
|
|
16
|
-
logDecoder: (log: Log) => any;
|
|
17
|
-
readonly binStep: bigint;
|
|
18
|
-
initFailed: boolean;
|
|
19
|
-
initRetryAttemptCount: number;
|
|
20
|
-
private stateMulti;
|
|
21
|
-
private math;
|
|
22
|
-
addressesSubscribed: string[];
|
|
23
|
-
poolAddress?: Address;
|
|
24
|
-
token0: Address;
|
|
25
|
-
token1: Address;
|
|
26
|
-
readonly poolIface: Interface;
|
|
27
|
-
constructor(parentName: string, network: number, dexHelper: IDexHelper, token0: Address, token1: Address, binStep: bigint, factoryAddress: Address, stateMultiAddress: Address, logger: Logger);
|
|
28
|
-
getSwapOut(amount: bigint, fromAddress: Address, blockNumber: number): bigint;
|
|
29
|
-
getSwapIn(amount: bigint, fromAddress: Address, blockNumber: number): bigint;
|
|
30
|
-
/**
|
|
31
|
-
* The function is called every time any of the subscribed
|
|
32
|
-
* addresses release log. The function accepts the current
|
|
33
|
-
* state, updates the state according to the log, and returns
|
|
34
|
-
* the updated state.
|
|
35
|
-
* @param state - Current state of event subscriber
|
|
36
|
-
* @param log - Log released by one of the subscribed addresses
|
|
37
|
-
* @returns Updates state of the event subscriber after the log
|
|
38
|
-
*/
|
|
39
|
-
protected processLog(state: DeepReadonly<PoolState>, log: Readonly<Log>): DeepReadonly<PoolState> | null;
|
|
40
|
-
/**
|
|
41
|
-
* The function generates state using on-chain calls. This
|
|
42
|
-
* function is called to regenerate state if the event based
|
|
43
|
-
* system fails to fetch events and the local state is no
|
|
44
|
-
* more correct.
|
|
45
|
-
* @param blockNumber - Blocknumber for which the state should
|
|
46
|
-
* should be generated
|
|
47
|
-
* @returns state of the event subscriber at blocknumber
|
|
48
|
-
*/
|
|
49
|
-
generateState(blockNumber: number): Promise<DeepReadonly<PoolState>>;
|
|
50
|
-
isValid(): boolean;
|
|
51
|
-
handleTransferBatch(event: any, state: PoolState, log: Readonly<Log>): DeepReadonly<PoolState> | null;
|
|
52
|
-
handleDepositedToBins(event: any, state: PoolState, log: Readonly<Log>): DeepReadonly<PoolState> | null;
|
|
53
|
-
handleWithdrawnFromBins(event: any, state: PoolState, log: Readonly<Log>): DeepReadonly<PoolState> | null;
|
|
54
|
-
handleCompositionFees(event: any, state: PoolState, log: Readonly<Log>): DeepReadonly<PoolState> | null;
|
|
55
|
-
handleSwap(event: any, state: PoolState, log: Readonly<Log>): DeepReadonly<PoolState> | null;
|
|
56
|
-
handleStaticFeeParametersSet(event: any, state: PoolState, log: Readonly<Log>): DeepReadonly<PoolState> | null;
|
|
57
|
-
handleFlashLoan(event: any, state: PoolState, log: Readonly<Log>): DeepReadonly<PoolState> | null;
|
|
58
|
-
handleForcedDecay(event: any, state: PoolState, log: Readonly<Log>): DeepReadonly<PoolState> | null;
|
|
59
|
-
private decodeAmounts;
|
|
60
|
-
}
|