@paraswap/dex-lib 2.23.2 → 2.23.3-uniswap-v2-pairs-distant-cache

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 (61) hide show
  1. package/.idea/aws.xml +17 -0
  2. package/.idea/codeStyles/Project.xml +19 -0
  3. package/.idea/codeStyles/codeStyleConfig.xml +5 -0
  4. package/.idea/misc.xml +6 -0
  5. package/.idea/modules.xml +8 -0
  6. package/.idea/paraswap-dex-lib.iml +9 -0
  7. package/.idea/vcs.xml +6 -0
  8. package/build/dex/aave-v3/tokens/arbitrum.json +50 -0
  9. package/build/dex/aave-v3/tokens/avalanche.json +74 -0
  10. package/build/dex/aave-v3/tokens/fantom.json +62 -0
  11. package/build/dex/aave-v3/tokens/optimism.json +50 -0
  12. package/build/dex/aave-v3/tokens/polygon.json +116 -0
  13. package/build/dex/pancakeswap-v3/types.d.ts +14 -0
  14. package/build/dex/{algebra → pancakeswap-v3}/types.js.map +1 -1
  15. package/build/dex/solidly/forks-override/ramses.d.ts +8 -0
  16. package/build/dex/solidly/forks-override/ramses.js +15 -0
  17. package/build/dex/solidly/forks-override/ramses.js.map +1 -0
  18. package/build/dex/uniswap-v2/constants.d.ts +1 -0
  19. package/build/dex/uniswap-v2/constants.js +2 -1
  20. package/build/dex/uniswap-v2/constants.js.map +1 -1
  21. package/build/dex/uniswap-v2/uniswap-v2.d.ts +0 -3
  22. package/build/dex/uniswap-v2/uniswap-v2.js +6 -5
  23. package/build/dex/uniswap-v2/uniswap-v2.js.map +1 -1
  24. package/package.json +1 -1
  25. package/src/dex/uniswap-v2/constants.ts +2 -0
  26. package/src/dex/uniswap-v2/uniswap-v2.ts +22 -5
  27. package/build/abi/algebra/AlgebraPool.abi.json +0 -727
  28. package/build/abi/algebra/AlgebraQuoter.abi.json +0 -138
  29. package/build/abi/algebra/AlgebraStateMulticall.abi.json +0 -801
  30. package/build/dex/algebra/algebra-pool.d.ts +0 -41
  31. package/build/dex/algebra/algebra-pool.js +0 -267
  32. package/build/dex/algebra/algebra-pool.js.map +0 -1
  33. package/build/dex/algebra/algebra.d.ts +0 -53
  34. package/build/dex/algebra/algebra.js +0 -457
  35. package/build/dex/algebra/algebra.js.map +0 -1
  36. package/build/dex/algebra/config.d.ts +0 -4
  37. package/build/dex/algebra/config.js +0 -41
  38. package/build/dex/algebra/config.js.map +0 -1
  39. package/build/dex/algebra/lib/AlgebraMath.d.ts +0 -14
  40. package/build/dex/algebra/lib/AlgebraMath.js +0 -274
  41. package/build/dex/algebra/lib/AlgebraMath.js.map +0 -1
  42. package/build/dex/algebra/lib/AlgebraXUniV3.d.ts +0 -5
  43. package/build/dex/algebra/lib/AlgebraXUniV3.js +0 -45
  44. package/build/dex/algebra/lib/AlgebraXUniV3.js.map +0 -1
  45. package/build/dex/algebra/lib/Constants.d.ts +0 -5
  46. package/build/dex/algebra/lib/Constants.js +0 -10
  47. package/build/dex/algebra/lib/Constants.js.map +0 -1
  48. package/build/dex/algebra/lib/DataStorage.d.ts +0 -24
  49. package/build/dex/algebra/lib/DataStorage.js +0 -388
  50. package/build/dex/algebra/lib/DataStorage.js.map +0 -1
  51. package/build/dex/algebra/lib/DataStorageOperator.d.ts +0 -9
  52. package/build/dex/algebra/lib/DataStorageOperator.js +0 -66
  53. package/build/dex/algebra/lib/DataStorageOperator.js.map +0 -1
  54. package/build/dex/algebra/lib/Sqrt.d.ts +0 -3
  55. package/build/dex/algebra/lib/Sqrt.js +0 -60
  56. package/build/dex/algebra/lib/Sqrt.js.map +0 -1
  57. package/build/dex/algebra/lib/TickManager.d.ts +0 -10
  58. package/build/dex/algebra/lib/TickManager.js +0 -3
  59. package/build/dex/algebra/lib/TickManager.js.map +0 -1
  60. package/build/dex/algebra/types.d.ts +0 -55
  61. /package/build/dex/{algebra → pancakeswap-v3}/types.js +0 -0
@@ -1,274 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.AlgebraMath = void 0;
4
- const Tick_1 = require("../../uniswap-v3/contract-math/Tick");
5
- const TickBitMap_1 = require("../../uniswap-v3/contract-math/TickBitMap");
6
- const SqrtPriceMath_1 = require("../../uniswap-v3/contract-math/SqrtPriceMath");
7
- const TickMath_1 = require("../../uniswap-v3/contract-math/TickMath");
8
- const LiquidityMath_1 = require("../../uniswap-v3/contract-math/LiquidityMath");
9
- const utils_1 = require("../../../utils");
10
- const DataStorageOperator_1 = require("./DataStorageOperator");
11
- const SwapMath_1 = require("../../uniswap-v3/contract-math/SwapMath");
12
- const Constants_1 = require("./Constants");
13
- const FullMath_1 = require("../../uniswap-v3/contract-math/FullMath");
14
- const FixedPoint128_1 = require("../../uniswap-v3/contract-math/FixedPoint128");
15
- var Status;
16
- (function (Status) {
17
- Status[Status["NOT_EXIST"] = 0] = "NOT_EXIST";
18
- Status[Status["ACTIVE"] = 1] = "ACTIVE";
19
- Status[Status["NOT_STARTED"] = 2] = "NOT_STARTED";
20
- })(Status || (Status = {}));
21
- class AlgebraMathClass {
22
- queryOutputs(state, amounts, zeroForOne, side) {
23
- // TODO
24
- return {
25
- outputs: [],
26
- tickCounts: [],
27
- };
28
- }
29
- // same as uniswapV3Pool: line 328 -> 369
30
- _getAmountsForLiquidity(bottomTick, topTick, liquidityDelta, currentTick, currentPrice) {
31
- let amount0;
32
- let amount1;
33
- let globalLiquidityDelta;
34
- // If current tick is less than the provided bottom one then only the token0 has to be provided
35
- if (currentTick < bottomTick) {
36
- amount0 = SqrtPriceMath_1.SqrtPriceMath._getAmount0DeltaO(TickMath_1.TickMath.getSqrtRatioAtTick(bottomTick), TickMath_1.TickMath.getSqrtRatioAtTick(topTick), liquidityDelta);
37
- }
38
- else if (currentTick < topTick) {
39
- amount0 = SqrtPriceMath_1.SqrtPriceMath._getAmount0DeltaO(currentPrice, TickMath_1.TickMath.getSqrtRatioAtTick(topTick), liquidityDelta);
40
- amount1 = SqrtPriceMath_1.SqrtPriceMath._getAmount1DeltaO(TickMath_1.TickMath.getSqrtRatioAtTick(bottomTick), currentPrice, liquidityDelta);
41
- globalLiquidityDelta = liquidityDelta;
42
- }
43
- // If current tick is greater than the provided top one then only the token1 has to be provided
44
- else {
45
- amount1 = SqrtPriceMath_1.SqrtPriceMath._getAmount1DeltaO(TickMath_1.TickMath.getSqrtRatioAtTick(bottomTick), TickMath_1.TickMath.getSqrtRatioAtTick(topTick), liquidityDelta);
46
- }
47
- return [amount0, amount1, globalLiquidityDelta];
48
- }
49
- _updatePositionTicksAndFees(state, bottomTick, topTick, liquidityDelta) {
50
- const { globalState, liquidity, volumePerLiquidityInBlock } = state;
51
- let toggledBottom = false;
52
- let toggledTop = false;
53
- const cache = {
54
- price: globalState.price,
55
- tick: globalState.tick,
56
- timepointIndex: globalState.timepointIndex,
57
- };
58
- // skip position logic
59
- // skip fee logic
60
- if (liquidityDelta !== 0n) {
61
- const time = this._blockTimestamp(state);
62
- const [tickCumulative, secondsPerLiquidityCumulative] = DataStorageOperator_1.DataStorageOperator.getSingleTimepoint(state, time, 0n, cache.tick, cache.timepointIndex, liquidity);
63
- if (Tick_1.Tick.update(state, bottomTick, cache.tick, liquidityDelta, secondsPerLiquidityCumulative, tickCumulative, time, false, // isTopTick,
64
- state.maxLiquidityPerTick)) {
65
- toggledBottom = true;
66
- TickBitMap_1.TickBitMap.flipTick(state, bottomTick, state.tickSpacing);
67
- }
68
- if (Tick_1.Tick.update(state, topTick, cache.tick, liquidityDelta, secondsPerLiquidityCumulative, tickCumulative, time, true, // isTopTick
69
- state.maxLiquidityPerTick)) {
70
- toggledTop = true;
71
- TickBitMap_1.TickBitMap.flipTick(state, topTick, state.tickSpacing);
72
- }
73
- }
74
- // skip fee && position related stuffs
75
- // same as UniwapV3Pool.sol line 327 -> if (params.liquidityDelta != 0) {
76
- if (liquidityDelta !== 0n) {
77
- // if liquidityDelta is negative and the tick was toggled, it means that it should not be initialized anymore, so we delete it
78
- if (liquidityDelta < 0) {
79
- if (toggledBottom)
80
- Tick_1.Tick.clear(state, bottomTick);
81
- if (toggledTop)
82
- Tick_1.Tick.clear(state, topTick);
83
- }
84
- // same as UniswapV3Pool.sol line 331 ? -> amount0 = SqrtPriceMath.getAmount0Delta(
85
- // skip amount0 and amount1 as already read from event
86
- const [, , globalLiquidityDelta] = this._getAmountsForLiquidity(bottomTick, topTick, liquidityDelta, cache.tick, cache.price);
87
- if (globalLiquidityDelta != 0n) {
88
- let liquidityBefore = liquidity;
89
- // same as UniswapV3Pool line 340 -> (slot0.observationIndex, slot0.observationCardinality) = observations.write(
90
- let newTimepointIndex = DataStorageOperator_1.DataStorageOperator.write(state, cache.timepointIndex, this._blockTimestamp(state), cache.tick, liquidityBefore, volumePerLiquidityInBlock);
91
- if (cache.timepointIndex != newTimepointIndex) {
92
- // skip fee, updated via another handler
93
- //globalState.fee = _getNewFee(_blockTimestamp(), cache.tick, newTimepointIndex, liquidityBefore);
94
- globalState.timepointIndex = newTimepointIndex;
95
- state.volumePerLiquidityInBlock = 0n;
96
- }
97
- // same as UniswapV3Pool line 361 -> liquidity = LiquidityMath.addDelta(liquidityBefore, params.liquidityDelta);
98
- state.liquidity = LiquidityMath_1.LiquidityMath.addDelta(liquidityBefore, liquidityDelta);
99
- }
100
- }
101
- // TODO mutate poolState
102
- }
103
- _calculateSwapAndLock(poolState, zeroToOne, amountRequired, newTick, // ?
104
- limitSqrtPrice) {
105
- const { globalState, liquidity, volumePerLiquidityInBlock } = poolState;
106
- let blockTimestamp;
107
- let cache = {
108
- amountCalculated: 0n,
109
- amountRequiredInitial: 0n,
110
- communityFee: 0n,
111
- computedLatestTimepoint: false,
112
- exactInput: false,
113
- fee: 0n,
114
- incentiveStatus: Status.NOT_EXIST,
115
- secondsPerLiquidityCumulative: 0n,
116
- startTick: 0n,
117
- tickCumulative: 0n,
118
- timepointIndex: 0n,
119
- totalFeeGrowth: 0n,
120
- totalFeeGrowthB: 0n,
121
- volumePerLiquidityInBlock: 0n,
122
- };
123
- let communityFeeAmount = 0n;
124
- // load from one storage slot
125
- let currentPrice = globalState.price;
126
- let currentTick = globalState.tick;
127
- cache.fee = globalState.fee;
128
- cache.timepointIndex = globalState.timepointIndex;
129
- let _communityFeeToken0 = globalState.communityFeeToken0;
130
- let _communityFeeToken1 = globalState.communityFeeToken1;
131
- let unlocked = globalState.unlocked;
132
- globalState.unlocked = false; // lock will not be released in this function
133
- (0, utils_1._require)(unlocked, 'LOK');
134
- (0, utils_1._require)(amountRequired != 0n, 'AS');
135
- [cache.amountRequiredInitial, cache.exactInput] = [
136
- amountRequired,
137
- amountRequired > 0,
138
- ];
139
- let currentLiquidity;
140
- [currentLiquidity, cache.volumePerLiquidityInBlock] = [
141
- liquidity,
142
- volumePerLiquidityInBlock,
143
- ];
144
- if (zeroToOne) {
145
- (0, utils_1._require)(limitSqrtPrice < currentPrice &&
146
- limitSqrtPrice > TickMath_1.TickMath.MIN_SQRT_RATIO, 'SPL');
147
- // cache.totalFeeGrowth = totalFeeGrowth0Token;
148
- cache.communityFee = _communityFeeToken0;
149
- }
150
- else {
151
- (0, utils_1._require)(limitSqrtPrice > currentPrice &&
152
- limitSqrtPrice < TickMath_1.TickMath.MAX_SQRT_RATIO, 'SPL');
153
- // cache.totalFeeGrowth = totalFeeGrowth1Token;
154
- cache.communityFee = _communityFeeToken1;
155
- }
156
- cache.startTick = currentTick;
157
- blockTimestamp = this._blockTimestamp(poolState);
158
- let newTimepointIndex = DataStorageOperator_1.DataStorageOperator.write(poolState, cache.timepointIndex, blockTimestamp, cache.startTick, currentLiquidity, cache.volumePerLiquidityInBlock);
159
- // new timepoint appears only for first swap in block
160
- if (newTimepointIndex != cache.timepointIndex) {
161
- cache.timepointIndex = newTimepointIndex;
162
- cache.volumePerLiquidityInBlock = 0n;
163
- cache.fee = poolState.globalState.fee; // safe to take as updated just before// _getNewFee(blockTimestamp, currentTick, newTimepointIndex, currentLiquidity);
164
- }
165
- let step = {
166
- feeAmount: 0n,
167
- initialized: true,
168
- input: 0n,
169
- nextTick: 0n,
170
- nextTickPrice: 0n,
171
- output: 0n,
172
- stepSqrtPrice: 0n,
173
- };
174
- // swap until there is remaining input or output tokens or we reach the price limit
175
- while (true) {
176
- step.stepSqrtPrice = currentPrice;
177
- //equivalent of tickTable.nextTickInTheSameRow(currentTick, zeroToOne);
178
- [step.nextTick, step.initialized] =
179
- TickBitMap_1.TickBitMap.nextInitializedTickWithinOneWord(poolState, currentTick, poolState.tickSpacing, zeroToOne, false);
180
- step.nextTickPrice = TickMath_1.TickMath.getSqrtRatioAtTick(step.nextTick);
181
- // equivalent of PriceMovementMath.movePriceTowardsTarget
182
- const result = SwapMath_1.SwapMath.computeSwapStep(poolState.globalState.price, zeroToOne == step.nextTickPrice < limitSqrtPrice
183
- ? limitSqrtPrice
184
- : step.nextTickPrice, currentLiquidity, amountRequired, cache.fee);
185
- [currentPrice, step.input, step.output, step.feeAmount] = [
186
- result.sqrtRatioNextX96,
187
- result.amountIn,
188
- result.amountOut,
189
- result.feeAmount,
190
- ];
191
- if (cache.exactInput) {
192
- amountRequired -= (0, utils_1.int256)(step.input + step.feeAmount); // decrease remaining input amount
193
- cache.amountCalculated = cache.amountCalculated - (0, utils_1.int256)(step.output); // decrease calculated output amount
194
- }
195
- else {
196
- amountRequired += (0, utils_1.int256)(step.output); // increase remaining output amount (since its negative)
197
- cache.amountCalculated =
198
- cache.amountCalculated + (0, utils_1.int256)(step.input + step.feeAmount); // increase calculated input amount
199
- }
200
- if (cache.communityFee > 0) {
201
- let delta = (step.feeAmount * cache.communityFee) /
202
- Constants_1.Constants.COMMUNITY_FEE_DENOMINATOR;
203
- step.feeAmount -= delta;
204
- communityFeeAmount += delta;
205
- }
206
- if (currentLiquidity > 0n)
207
- cache.totalFeeGrowth += FullMath_1.FullMath.mulDiv(step.feeAmount, FixedPoint128_1.FixedPoint128.Q128, currentLiquidity);
208
- if (currentPrice == step.nextTickPrice) {
209
- // if the reached tick is initialized then we need to cross it
210
- if (step.initialized) {
211
- // once at a swap we have to get the last timepoint of the observation
212
- if (!cache.computedLatestTimepoint) {
213
- [cache.tickCumulative, cache.secondsPerLiquidityCumulative, ,] =
214
- DataStorageOperator_1.DataStorageOperator.getSingleTimepoint(poolState, blockTimestamp, 0n, cache.startTick, cache.timepointIndex, currentLiquidity);
215
- cache.computedLatestTimepoint = true;
216
- // cache.totalFeeGrowthB = zeroToOne ? totalFeeGrowth1Token : totalFeeGrowth0Token;
217
- }
218
- // // every tick cross is needed to be duplicated in a virtual pool
219
- // if (cache.incentiveStatus != IAlgebraVirtualPool.Status.NOT_EXIST) {
220
- // IAlgebraVirtualPool(activeIncentive).cross(step.nextTick, zeroToOne);
221
- // }
222
- let liquidityDelta;
223
- if (zeroToOne) {
224
- liquidityDelta = -Tick_1.Tick.cross(poolState.ticks, step.nextTick,
225
- // cache.totalFeeGrowth, // A == 0
226
- // cache.totalFeeGrowthB, // B == 1
227
- cache.secondsPerLiquidityCumulative, cache.tickCumulative, blockTimestamp);
228
- }
229
- else {
230
- liquidityDelta = Tick_1.Tick.cross(poolState.ticks, step.nextTick,
231
- // cache.totalFeeGrowthB, // B == 0
232
- // cache.totalFeeGrowth, // A == 1
233
- cache.secondsPerLiquidityCumulative, cache.tickCumulative, blockTimestamp);
234
- }
235
- currentLiquidity = LiquidityMath_1.LiquidityMath.addDelta(currentLiquidity, liquidityDelta);
236
- }
237
- currentTick = zeroToOne ? step.nextTick - 1n : step.nextTick;
238
- }
239
- else if (currentPrice != step.stepSqrtPrice) {
240
- // if the price has changed but hasn't reached the target
241
- currentTick = TickMath_1.TickMath.getTickAtSqrtRatio(currentPrice);
242
- break; // since the price hasn't reached the target, amountRequired should be 0
243
- }
244
- // check stop condition
245
- if (amountRequired == 0n || currentPrice == limitSqrtPrice) {
246
- break;
247
- }
248
- }
249
- let [amount0, amount1] = zeroToOne == cache.exactInput // the amount to provide could be less then initially specified (e.g. reached limit)
250
- ? [cache.amountRequiredInitial - amountRequired, cache.amountCalculated] // the amount to get could be less then initially specified (e.g. reached limit)
251
- : [
252
- cache.amountCalculated,
253
- cache.amountRequiredInitial - amountRequired,
254
- ];
255
- // validate that amount0 and amount 1 are same here
256
- [
257
- globalState.price,
258
- globalState.tick,
259
- globalState.fee,
260
- globalState.timepointIndex,
261
- ] = [currentPrice, currentTick, cache.fee, cache.timepointIndex];
262
- [poolState.liquidity, poolState.volumePerLiquidityInBlock] = [
263
- currentLiquidity,
264
- cache.volumePerLiquidityInBlock +
265
- DataStorageOperator_1.DataStorageOperator.calculateVolumePerLiquidity(currentLiquidity, amount0, amount1),
266
- ];
267
- // no need to update fees
268
- }
269
- _blockTimestamp(state) {
270
- return (0, utils_1.uint32)(state.blockTimestamp);
271
- }
272
- }
273
- exports.AlgebraMath = new AlgebraMathClass();
274
- //# sourceMappingURL=AlgebraMath.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AlgebraMath.js","sourceRoot":"","sources":["../../../../src/dex/algebra/lib/AlgebraMath.ts"],"names":[],"mappings":";;;AAIA,8DAA2D;AAC3D,0EAAuE;AACvE,gFAA6E;AAC7E,sEAAmE;AACnE,gFAA6E;AAC7E,0CAA0D;AAC1D,+DAA4D;AAC5D,sEAAmE;AACnE,2CAAwC;AACxC,sEAAmE;AACnE,gFAA6E;AAQ7E,IAAK,MAIJ;AAJD,WAAK,MAAM;IACT,6CAAS,CAAA;IACT,uCAAM,CAAA;IACN,iDAAW,CAAA;AACb,CAAC,EAJI,MAAM,KAAN,MAAM,QAIV;AA6BD,MAAM,gBAAgB;IACpB,YAAY,CACV,KAA8B,EAC9B,OAAiB,EACjB,UAAmB,EACnB,IAAc;QAEd,OAAO;QACP,OAAO;YACL,OAAO,EAAE,EAAE;YACX,UAAU,EAAE,EAAE;SACf,CAAC;IACJ,CAAC;IAED,yCAAyC;IACzC,uBAAuB,CACrB,UAAkB,EAClB,OAAe,EACf,cAAsB,EACtB,WAAmB,EACnB,YAAoB;QAEpB,IAAI,OAAO,CAAC;QACZ,IAAI,OAAO,CAAC;QACZ,IAAI,oBAAoB,CAAC;QACzB,+FAA+F;QAC/F,IAAI,WAAW,GAAG,UAAU,EAAE;YAC5B,OAAO,GAAG,6BAAa,CAAC,iBAAiB,CACvC,mBAAQ,CAAC,kBAAkB,CAAC,UAAU,CAAC,EACvC,mBAAQ,CAAC,kBAAkB,CAAC,OAAO,CAAC,EACpC,cAAc,CACf,CAAC;SACH;aAAM,IAAI,WAAW,GAAG,OAAO,EAAE;YAChC,OAAO,GAAG,6BAAa,CAAC,iBAAiB,CACvC,YAAY,EACZ,mBAAQ,CAAC,kBAAkB,CAAC,OAAO,CAAC,EACpC,cAAc,CACf,CAAC;YACF,OAAO,GAAG,6BAAa,CAAC,iBAAiB,CACvC,mBAAQ,CAAC,kBAAkB,CAAC,UAAU,CAAC,EACvC,YAAY,EACZ,cAAc,CACf,CAAC;YAEF,oBAAoB,GAAG,cAAc,CAAC;SACvC;QACD,+FAA+F;aAC1F;YACH,OAAO,GAAG,6BAAa,CAAC,iBAAiB,CACvC,mBAAQ,CAAC,kBAAkB,CAAC,UAAU,CAAC,EACvC,mBAAQ,CAAC,kBAAkB,CAAC,OAAO,CAAC,EACpC,cAAc,CACf,CAAC;SACH;QAED,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,oBAAoB,CAAC,CAAC;IAClD,CAAC;IAED,2BAA2B,CACzB,KAAgB,EAChB,UAAkB,EAClB,OAAe,EACf,cAAsB;QAEtB,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,yBAAyB,EAAE,GAAG,KAAK,CAAC;QACpE,IAAI,aAAa,GAAY,KAAK,CAAC;QACnC,IAAI,UAAU,GAAY,KAAK,CAAC;QAChC,MAAM,KAAK,GAAwB;YACjC,KAAK,EAAE,WAAW,CAAC,KAAK;YACxB,IAAI,EAAE,WAAW,CAAC,IAAI;YACtB,cAAc,EAAE,WAAW,CAAC,cAAc;SAC3C,CAAC;QACF,sBAAsB;QACtB,iBAAiB;QAEjB,IAAI,cAAc,KAAK,EAAE,EAAE;YACzB,MAAM,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;YACzC,MAAM,CAAC,cAAc,EAAE,6BAA6B,CAAC,GACnD,yCAAmB,CAAC,kBAAkB,CACpC,KAAK,EACL,IAAI,EACJ,EAAE,EACF,KAAK,CAAC,IAAI,EACV,KAAK,CAAC,cAAc,EACpB,SAAS,CACV,CAAC;YACJ,IACE,WAAI,CAAC,MAAM,CACT,KAAK,EACL,UAAU,EACV,KAAK,CAAC,IAAI,EACV,cAAc,EACd,6BAA6B,EAC7B,cAAc,EACd,IAAI,EACJ,KAAK,EAAE,aAAa;YACpB,KAAK,CAAC,mBAAmB,CAC1B,EACD;gBACA,aAAa,GAAG,IAAI,CAAC;gBACrB,uBAAU,CAAC,QAAQ,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;aAC3D;YACD,IACE,WAAI,CAAC,MAAM,CACT,KAAK,EACL,OAAO,EACP,KAAK,CAAC,IAAI,EACV,cAAc,EACd,6BAA6B,EAC7B,cAAc,EACd,IAAI,EACJ,IAAI,EAAE,YAAY;YAClB,KAAK,CAAC,mBAAmB,CAC1B,EACD;gBACA,UAAU,GAAG,IAAI,CAAC;gBAClB,uBAAU,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;aACxD;SACF;QAED,sCAAsC;QAEtC,2EAA2E;QAC3E,IAAI,cAAc,KAAK,EAAE,EAAE;YACzB,8HAA8H;YAC9H,IAAI,cAAc,GAAG,CAAC,EAAE;gBACtB,IAAI,aAAa;oBAAE,WAAI,CAAC,KAAK,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;gBACjD,IAAI,UAAU;oBAAE,WAAI,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;aAC5C;YACD,mFAAmF;YACnF,sDAAsD;YACtD,MAAM,CAAC,EAAE,AAAD,EAAG,oBAAoB,CAAC,GAAG,IAAI,CAAC,uBAAuB,CAC7D,UAAU,EACV,OAAO,EACP,cAAc,EACd,KAAK,CAAC,IAAI,EACV,KAAK,CAAC,KAAK,CACZ,CAAC;YACF,IAAI,oBAAoB,IAAI,EAAE,EAAE;gBAC9B,IAAI,eAAe,GAAG,SAAS,CAAC;gBAChC,iHAAiH;gBACjH,IAAI,iBAAiB,GAAG,yCAAmB,CAAC,KAAK,CAC/C,KAAK,EACL,KAAK,CAAC,cAAc,EACpB,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,EAC3B,KAAK,CAAC,IAAI,EACV,eAAe,EACf,yBAAyB,CAC1B,CAAC;gBACF,IAAI,KAAK,CAAC,cAAc,IAAI,iBAAiB,EAAE;oBAC7C,wCAAwC;oBACxC,kGAAkG;oBAClG,WAAW,CAAC,cAAc,GAAG,iBAAiB,CAAC;oBAC/C,KAAK,CAAC,yBAAyB,GAAG,EAAE,CAAC;iBACtC;gBACD,iHAAiH;gBACjH,KAAK,CAAC,SAAS,GAAG,6BAAa,CAAC,QAAQ,CACtC,eAAe,EACf,cAAc,CACf,CAAC;aACH;SACF;QAED,wBAAwB;IAC1B,CAAC;IAED,qBAAqB,CACnB,SAAoB,EACpB,SAAkB,EAClB,cAAsB,EACtB,OAAe,EAAE,IAAI;IACrB,cAAsB;QAEtB,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,yBAAyB,EAAE,GAAG,SAAS,CAAC;QAExE,IAAI,cAAc,CAAC;QACnB,IAAI,KAAK,GAAyB;YAChC,gBAAgB,EAAE,EAAE;YACpB,qBAAqB,EAAE,EAAE;YACzB,YAAY,EAAE,EAAE;YAChB,uBAAuB,EAAE,KAAK;YAC9B,UAAU,EAAE,KAAK;YACjB,GAAG,EAAE,EAAE;YACP,eAAe,EAAE,MAAM,CAAC,SAAS;YACjC,6BAA6B,EAAE,EAAE;YACjC,SAAS,EAAE,EAAE;YACb,cAAc,EAAE,EAAE;YAClB,cAAc,EAAE,EAAE;YAClB,cAAc,EAAE,EAAE;YAClB,eAAe,EAAE,EAAE;YACnB,yBAAyB,EAAE,EAAE;SAC9B,CAAC;QACF,IAAI,kBAAkB,GAAG,EAAE,CAAC;QAE5B,6BAA6B;QAC7B,IAAI,YAAY,GAAG,WAAW,CAAC,KAAK,CAAC;QACrC,IAAI,WAAW,GAAG,WAAW,CAAC,IAAI,CAAC;QACnC,KAAK,CAAC,GAAG,GAAG,WAAW,CAAC,GAAG,CAAC;QAC5B,KAAK,CAAC,cAAc,GAAG,WAAW,CAAC,cAAc,CAAC;QAClD,IAAI,mBAAmB,GAAG,WAAW,CAAC,kBAAkB,CAAC;QACzD,IAAI,mBAAmB,GAAG,WAAW,CAAC,kBAAkB,CAAC;QACzD,IAAI,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC;QAEpC,WAAW,CAAC,QAAQ,GAAG,KAAK,CAAC,CAAC,6CAA6C;QAC3E,IAAA,gBAAQ,EAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QAE1B,IAAA,gBAAQ,EAAC,cAAc,IAAI,EAAE,EAAE,IAAI,CAAC,CAAC;QACrC,CAAC,KAAK,CAAC,qBAAqB,EAAE,KAAK,CAAC,UAAU,CAAC,GAAG;YAChD,cAAc;YACd,cAAc,GAAG,CAAC;SACnB,CAAC;QAEF,IAAI,gBAAgB,CAAC;QAErB,CAAC,gBAAgB,EAAE,KAAK,CAAC,yBAAyB,CAAC,GAAG;YACpD,SAAS;YACT,yBAAyB;SAC1B,CAAC;QAEF,IAAI,SAAS,EAAE;YACb,IAAA,gBAAQ,EACN,cAAc,GAAG,YAAY;gBAC3B,cAAc,GAAG,mBAAQ,CAAC,cAAc,EAC1C,KAAK,CACN,CAAC;YACF,+CAA+C;YAC/C,KAAK,CAAC,YAAY,GAAG,mBAAmB,CAAC;SAC1C;aAAM;YACL,IAAA,gBAAQ,EACN,cAAc,GAAG,YAAY;gBAC3B,cAAc,GAAG,mBAAQ,CAAC,cAAc,EAC1C,KAAK,CACN,CAAC;YACF,+CAA+C;YAC/C,KAAK,CAAC,YAAY,GAAG,mBAAmB,CAAC;SAC1C;QAED,KAAK,CAAC,SAAS,GAAG,WAAW,CAAC;QAE9B,cAAc,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;QAEjD,IAAI,iBAAiB,GAAG,yCAAmB,CAAC,KAAK,CAC/C,SAAS,EACT,KAAK,CAAC,cAAc,EACpB,cAAc,EACd,KAAK,CAAC,SAAS,EACf,gBAAgB,EAChB,KAAK,CAAC,yBAAyB,CAChC,CAAC;QAEF,qDAAqD;QACrD,IAAI,iBAAiB,IAAI,KAAK,CAAC,cAAc,EAAE;YAC7C,KAAK,CAAC,cAAc,GAAG,iBAAiB,CAAC;YACzC,KAAK,CAAC,yBAAyB,GAAG,EAAE,CAAC;YACrC,KAAK,CAAC,GAAG,GAAG,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,sHAAsH;SAC9J;QAED,IAAI,IAAI,GAAuB;YAC7B,SAAS,EAAE,EAAE;YACb,WAAW,EAAE,IAAI;YACjB,KAAK,EAAE,EAAE;YACT,QAAQ,EAAE,EAAE;YACZ,aAAa,EAAE,EAAE;YACjB,MAAM,EAAE,EAAE;YACV,aAAa,EAAE,EAAE;SAClB,CAAC;QACF,mFAAmF;QACnF,OAAO,IAAI,EAAE;YACX,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC;YAElC,uEAAuE;YACvE,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC;gBAC/B,uBAAU,CAAC,gCAAgC,CACzC,SAAS,EACT,WAAW,EACX,SAAS,CAAC,WAAW,EACrB,SAAS,EACT,KAAK,CACN,CAAC;YAEJ,IAAI,CAAC,aAAa,GAAG,mBAAQ,CAAC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAEhE,0DAA0D;YAC1D,MAAM,MAAM,GAAG,mBAAQ,CAAC,eAAe,CACrC,SAAS,CAAC,WAAW,CAAC,KAAK,EAC3B,SAAS,IAAI,IAAI,CAAC,aAAa,GAAG,cAAc;gBAC9C,CAAC,CAAC,cAAc;gBAChB,CAAC,CAAC,IAAI,CAAC,aAAa,EACtB,gBAAgB,EAChB,cAAc,EACd,KAAK,CAAC,GAAG,CACV,CAAC;YACF,CAAC,YAAY,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG;gBACxD,MAAM,CAAC,gBAAgB;gBACvB,MAAM,CAAC,QAAQ;gBACf,MAAM,CAAC,SAAS;gBAChB,MAAM,CAAC,SAAS;aACjB,CAAC;YAEF,IAAI,KAAK,CAAC,UAAU,EAAE;gBACpB,cAAc,IAAI,IAAA,cAAM,EAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,kCAAkC;gBACzF,KAAK,CAAC,gBAAgB,GAAG,KAAK,CAAC,gBAAgB,GAAG,IAAA,cAAM,EAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,oCAAoC;aAC5G;iBAAM;gBACL,cAAc,IAAI,IAAA,cAAM,EAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,wDAAwD;gBAC/F,KAAK,CAAC,gBAAgB;oBACpB,KAAK,CAAC,gBAAgB,GAAG,IAAA,cAAM,EAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,mCAAmC;aACpG;YAED,IAAI,KAAK,CAAC,YAAY,GAAG,CAAC,EAAE;gBAC1B,IAAI,KAAK,GACP,CAAC,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,YAAY,CAAC;oBACrC,qBAAS,CAAC,yBAAyB,CAAC;gBACtC,IAAI,CAAC,SAAS,IAAI,KAAK,CAAC;gBACxB,kBAAkB,IAAI,KAAK,CAAC;aAC7B;YAED,IAAI,gBAAgB,GAAG,EAAE;gBACvB,KAAK,CAAC,cAAc,IAAI,mBAAQ,CAAC,MAAM,CACrC,IAAI,CAAC,SAAS,EACd,6BAAa,CAAC,IAAI,EAClB,gBAAgB,CACjB,CAAC;YAEJ,IAAI,YAAY,IAAI,IAAI,CAAC,aAAa,EAAE;gBACtC,8DAA8D;gBAC9D,IAAI,IAAI,CAAC,WAAW,EAAE;oBACpB,sEAAsE;oBACtE,IAAI,CAAC,KAAK,CAAC,uBAAuB,EAAE;wBAClC,CAAC,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,6BAA6B,EAAE,AAAD,EAAG;4BAC5D,yCAAmB,CAAC,kBAAkB,CACpC,SAAS,EACT,cAAc,EACd,EAAE,EACF,KAAK,CAAC,SAAS,EACf,KAAK,CAAC,cAAc,EACpB,gBAAgB,CACjB,CAAC;wBACJ,KAAK,CAAC,uBAAuB,GAAG,IAAI,CAAC;wBACrC,mFAAmF;qBACpF;oBACD,mEAAmE;oBACnE,uEAAuE;oBACvE,0EAA0E;oBAC1E,IAAI;oBACJ,IAAI,cAAc,CAAC;oBACnB,IAAI,SAAS,EAAE;wBACb,cAAc,GAAG,CAAC,WAAI,CAAC,KAAK,CAC1B,SAAS,CAAC,KAAK,EACf,IAAI,CAAC,QAAQ;wBACb,kCAAkC;wBAClC,mCAAmC;wBACnC,KAAK,CAAC,6BAA6B,EACnC,KAAK,CAAC,cAAc,EACpB,cAAc,CACf,CAAC;qBACH;yBAAM;wBACL,cAAc,GAAG,WAAI,CAAC,KAAK,CACzB,SAAS,CAAC,KAAK,EACf,IAAI,CAAC,QAAQ;wBACb,mCAAmC;wBACnC,kCAAkC;wBAClC,KAAK,CAAC,6BAA6B,EACnC,KAAK,CAAC,cAAc,EACpB,cAAc,CACf,CAAC;qBACH;oBAED,gBAAgB,GAAG,6BAAa,CAAC,QAAQ,CACvC,gBAAgB,EAChB,cAAc,CACf,CAAC;iBACH;gBAED,WAAW,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC;aAC9D;iBAAM,IAAI,YAAY,IAAI,IAAI,CAAC,aAAa,EAAE;gBAC7C,yDAAyD;gBACzD,WAAW,GAAG,mBAAQ,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC;gBACxD,MAAM,CAAC,wEAAwE;aAChF;YAED,uBAAuB;YACvB,IAAI,cAAc,IAAI,EAAE,IAAI,YAAY,IAAI,cAAc,EAAE;gBAC1D,MAAM;aACP;SACF;QAED,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,GACpB,SAAS,IAAI,KAAK,CAAC,UAAU,CAAC,oFAAoF;YAChH,CAAC,CAAC,CAAC,KAAK,CAAC,qBAAqB,GAAG,cAAc,EAAE,KAAK,CAAC,gBAAgB,CAAC,CAAC,gFAAgF;YACzJ,CAAC,CAAC;gBACE,KAAK,CAAC,gBAAgB;gBACtB,KAAK,CAAC,qBAAqB,GAAG,cAAc;aAC7C,CAAC;QAER,mDAAmD;QAEnD;YACE,WAAW,CAAC,KAAK;YACjB,WAAW,CAAC,IAAI;YAChB,WAAW,CAAC,GAAG;YACf,WAAW,CAAC,cAAc;SAC3B,GAAG,CAAC,YAAY,EAAE,WAAW,EAAE,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC;QAEjE,CAAC,SAAS,CAAC,SAAS,EAAE,SAAS,CAAC,yBAAyB,CAAC,GAAG;YAC3D,gBAAgB;YAChB,KAAK,CAAC,yBAAyB;gBAC7B,yCAAmB,CAAC,2BAA2B,CAC7C,gBAAgB,EAChB,OAAO,EACP,OAAO,CACR;SACJ,CAAC;QAEF,yBAAyB;IAC3B,CAAC;IAED,eAAe,CAAC,KAA8B;QAC5C,OAAO,IAAA,cAAM,EAAC,KAAK,CAAC,cAAc,CAAC,CAAC;IACtC,CAAC;CACF;AAEY,QAAA,WAAW,GAAG,IAAI,gBAAgB,EAAE,CAAC"}
@@ -1,5 +0,0 @@
1
- import { PoolState } from '../types';
2
- import { PoolState as UniV3PoolState } from '../../uniswap-v3/types';
3
- declare type MinUniV3PoolState = Pick<UniV3PoolState, 'slot0' | 'liquidity' | 'blockTimestamp' | 'startTickBitmap' | 'tickBitmap' | 'tickSpacing' | 'fee' | 'observations' | 'ticks'>;
4
- export declare const transformAlgebraToMinUniv3PoolState: (state: PoolState) => MinUniV3PoolState;
5
- export {};
@@ -1,45 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.transformAlgebraToMinUniv3PoolState = void 0;
4
- const Constants_1 = require("./Constants");
5
- // @FIXME NOT OPTIMIZED
6
- const transformAlgebraToMinUniv3PoolState = (state) => {
7
- const { globalState, timepoints } = state;
8
- const observations = Object.entries(timepoints).reduce((acc, [key, value]) => {
9
- acc[parseInt(key)] = {
10
- ...value,
11
- secondsPerLiquidityCumulativeX128: value.secondsPerLiquidityCumulative,
12
- };
13
- return acc;
14
- }, {});
15
- const ticks = Object.entries(state.ticks).reduce((acc, [key, value]) => {
16
- acc[parseInt(key)] = {
17
- ...value,
18
- secondsPerLiquidityOutsideX128: value.outerSecondsPerLiquidity,
19
- tickCumulativeOutside: value.outerTickCumulative,
20
- liquidityGross: value.liquidityTotal,
21
- liquidityNet: value.liquidityDelta,
22
- secondsOutside: value.outerSecondsSpent,
23
- };
24
- return acc;
25
- }, {});
26
- const slot0 = {
27
- feeProtocol: globalState.communityFeeToken0 + (globalState.communityFeeToken1 << 4n),
28
- observationCardinality: 0,
29
- observationCardinalityNext: 0,
30
- observationIndex: Number(state.globalState.timepointIndex),
31
- sqrtPriceX96: state.globalState.price,
32
- tick: globalState.tick,
33
- };
34
- return {
35
- ...state,
36
- fee: globalState.fee,
37
- tickSpacing: Constants_1.TICK_SPACING,
38
- slot0,
39
- observations,
40
- ticks,
41
- tickBitmap: state.tickTable,
42
- };
43
- };
44
- exports.transformAlgebraToMinUniv3PoolState = transformAlgebraToMinUniv3PoolState;
45
- //# sourceMappingURL=AlgebraXUniV3.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AlgebraXUniV3.js","sourceRoot":"","sources":["../../../../src/dex/algebra/lib/AlgebraXUniV3.ts"],"names":[],"mappings":";;;AAIA,2CAA2C;AAe3C,uBAAuB;AAChB,MAAM,mCAAmC,GAAG,CACjD,KAAgB,EACG,EAAE;IACrB,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,GAAG,KAAK,CAAC;IAE1C,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,MAAM,CAEpD,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;QACtB,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG;YACnB,GAAG,KAAK;YACR,iCAAiC,EAAE,KAAK,CAAC,6BAA6B;SACvE,CAAC;QACF,OAAO,GAAG,CAAC;IACb,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAC9C,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;QACpB,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG;YACnB,GAAG,KAAK;YACR,8BAA8B,EAAE,KAAK,CAAC,wBAAwB;YAC9D,qBAAqB,EAAE,KAAK,CAAC,mBAAmB;YAChD,cAAc,EAAE,KAAK,CAAC,cAAc;YACpC,YAAY,EAAE,KAAK,CAAC,cAAc;YAClC,cAAc,EAAE,KAAK,CAAC,iBAAiB;SACxC,CAAC;QACF,OAAO,GAAG,CAAC;IACb,CAAC,EACD,EAAE,CACH,CAAC;IAEF,MAAM,KAAK,GAA4B;QACrC,WAAW,EACT,WAAW,CAAC,kBAAkB,GAAG,CAAC,WAAW,CAAC,kBAAkB,IAAI,EAAE,CAAC;QACzE,sBAAsB,EAAE,CAAC;QACzB,0BAA0B,EAAE,CAAC;QAC7B,gBAAgB,EAAE,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,cAAc,CAAC;QAC1D,YAAY,EAAE,KAAK,CAAC,WAAW,CAAC,KAAK;QACrC,IAAI,EAAE,WAAW,CAAC,IAAI;KACvB,CAAC;IAEF,OAAO;QACL,GAAG,KAAK;QACR,GAAG,EAAE,WAAW,CAAC,GAAG;QACpB,WAAW,EAAE,wBAAY;QACzB,KAAK;QACL,YAAY;QACZ,KAAK;QACL,UAAU,EAAE,KAAK,CAAC,SAAS;KAC5B,CAAC;AACJ,CAAC,CAAC;AAjDW,QAAA,mCAAmC,uCAiD9C"}
@@ -1,5 +0,0 @@
1
- export declare class Constants {
2
- static TICK_SPACING: bigint;
3
- static MAX_LIQUIDITY_PER_TICK: bigint;
4
- static COMMUNITY_FEE_DENOMINATOR: bigint;
5
- }
@@ -1,10 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Constants = void 0;
4
- class Constants {
5
- }
6
- exports.Constants = Constants;
7
- Constants.TICK_SPACING = 60n;
8
- Constants.MAX_LIQUIDITY_PER_TICK = 11505743598341114571880798222544994n;
9
- Constants.COMMUNITY_FEE_DENOMINATOR = 1000n;
10
- //# sourceMappingURL=Constants.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Constants.js","sourceRoot":"","sources":["../../../../src/dex/algebra/lib/Constants.ts"],"names":[],"mappings":";;;AAAA,MAAa,SAAS;;AAAtB,8BAIC;AAHQ,sBAAY,GAAG,GAAG,CAAC;AACnB,gCAAsB,GAAG,oCAAoC,CAAC;AAC9D,mCAAyB,GAAG,KAAK,CAAC"}
@@ -1,24 +0,0 @@
1
- import './FullMath.sol';
2
- interface Timepoint {
3
- initialized: boolean;
4
- blockTimestamp: bigint;
5
- tickCumulative: bigint;
6
- secondsPerLiquidityCumulative: bigint;
7
- volatilityCumulative: bigint;
8
- averageTick: bigint;
9
- volumePerLiquidityCumulative: bigint;
10
- }
11
- export declare class DataStorage {
12
- static WINDOW: bigint;
13
- static UINT16_MODULO: bigint;
14
- static _volatilityOnRange(dt: bigint, tick0: bigint, tick1: bigint, avgTick0: bigint, avgTick1: bigint): bigint;
15
- static createNewTimepoint(last: Timepoint, blockTimestamp: bigint, tick: bigint, prevTick: bigint, liquidity: bigint, averageTick: bigint, volumePerLiquidity: bigint): Timepoint;
16
- static lteConsideringOverflow(a: bigint, b: bigint, currentTime: bigint): boolean;
17
- static _getAverageTick(self: Record<number, Timepoint>, time: bigint, tick: bigint, index: bigint, oldestIndex: bigint, lastTimestamp: bigint, lastTickCumulative: bigint): bigint;
18
- static binarySearch(self: Record<number, Timepoint>, time: bigint, target: bigint, lastIndex: bigint, oldestIndex: bigint): [Timepoint, Timepoint];
19
- static getSingleTimepoint(self: Record<number, Timepoint>, time: bigint, secondsAgo: bigint, tick: bigint, index: bigint, oldestIndex: bigint, liquidity: bigint): Timepoint;
20
- static getTimepoints(self: Record<number, Timepoint>, time: bigint, secondsAgos: bigint[], tick: bigint, index: bigint, liquidity: bigint): [bigint[], bigint[], bigint[], bigint[]];
21
- static getAverages(self: Record<number, Timepoint>, time: bigint, tick: bigint, index: bigint, liquidity: bigint): [bigint, bigint];
22
- static write(self: Record<number, Timepoint>, index: bigint, blockTimestamp: bigint, tick: bigint, liquidity: bigint, volumePerLiquidity: bigint): bigint;
23
- }
24
- export {};