@paraswap/dex-lib 5.1.14 → 5.1.16

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 (122) hide show
  1. package/build/abi/maverick-v2/MaverickV2Quoter.json +278 -0
  2. package/build/dex/aave-gsm/aave-gsm-pool.js +3 -2
  3. package/build/dex/aave-gsm/aave-gsm-pool.js.map +1 -1
  4. package/build/dex/algebra/algebra-factory.js +2 -1
  5. package/build/dex/algebra/algebra-factory.js.map +1 -1
  6. package/build/dex/algebra/algebra-pool-v1_1.js +2 -1
  7. package/build/dex/algebra/algebra-pool-v1_1.js.map +1 -1
  8. package/build/dex/algebra/algebra-pool-v1_9.js +2 -1
  9. package/build/dex/algebra/algebra-pool-v1_9.js.map +1 -1
  10. package/build/dex/algebra-integral/algebra-integral-factory.js +2 -1
  11. package/build/dex/algebra-integral/algebra-integral-factory.js.map +1 -1
  12. package/build/dex/algebra-integral/algebra-integral-pool.js +2 -1
  13. package/build/dex/algebra-integral/algebra-integral-pool.js.map +1 -1
  14. package/build/dex/angle-staked-stable/angle-staked-stable-pool.js +2 -1
  15. package/build/dex/angle-staked-stable/angle-staked-stable-pool.js.map +1 -1
  16. package/build/dex/angle-transmuter/morphoOracle.js +2 -1
  17. package/build/dex/angle-transmuter/morphoOracle.js.map +1 -1
  18. package/build/dex/angle-transmuter/morphoVault.js +2 -1
  19. package/build/dex/angle-transmuter/morphoVault.js.map +1 -1
  20. package/build/dex/angle-transmuter/transmuter.js +2 -1
  21. package/build/dex/angle-transmuter/transmuter.js.map +1 -1
  22. package/build/dex/balancer-v1/balancer-v1-pool.js +2 -1
  23. package/build/dex/balancer-v1/balancer-v1-pool.js.map +1 -1
  24. package/build/dex/balancer-v2/balancer-v2.js +2 -1
  25. package/build/dex/balancer-v2/balancer-v2.js.map +1 -1
  26. package/build/dex/balancer-v3/balancer-v3-pool.js +5 -2
  27. package/build/dex/balancer-v3/balancer-v3-pool.js.map +1 -1
  28. package/build/dex/balancer-v3/hooks/balancer-hook-event-subscriber.js +4 -1
  29. package/build/dex/balancer-v3/hooks/balancer-hook-event-subscriber.js.map +1 -1
  30. package/build/dex/camelot/camelot.js +2 -1
  31. package/build/dex/camelot/camelot.js.map +1 -1
  32. package/build/dex/cap/cap-pools.js +2 -1
  33. package/build/dex/cap/cap-pools.js.map +1 -1
  34. package/build/dex/curve-v1/pools/curve-metapool.d.ts +1 -0
  35. package/build/dex/curve-v1/pools/curve-metapool.js +8 -4
  36. package/build/dex/curve-v1/pools/curve-metapool.js.map +1 -1
  37. package/build/dex/curve-v1/pools/curve-pool.d.ts +1 -0
  38. package/build/dex/curve-v1/pools/curve-pool.js +8 -4
  39. package/build/dex/curve-v1/pools/curve-pool.js.map +1 -1
  40. package/build/dex/ekubo/pools/pool.js +2 -1
  41. package/build/dex/ekubo/pools/pool.js.map +1 -1
  42. package/build/dex/ekubo-v3/pools/pool.js +2 -1
  43. package/build/dex/ekubo-v3/pools/pool.js.map +1 -1
  44. package/build/dex/erc4626/erc-4626-pool.js +3 -1
  45. package/build/dex/erc4626/erc-4626-pool.js.map +1 -1
  46. package/build/dex/fluid-dex/fluid-dex-factory.js +2 -1
  47. package/build/dex/fluid-dex/fluid-dex-factory.js.map +1 -1
  48. package/build/dex/fluid-dex/fluid-dex-pool.js +2 -1
  49. package/build/dex/fluid-dex/fluid-dex-pool.js.map +1 -1
  50. package/build/dex/fluid-dex-lite/fluid-dex-lite-pool.js +3 -2
  51. package/build/dex/fluid-dex-lite/fluid-dex-lite-pool.js.map +1 -1
  52. package/build/dex/lite-psm/lite-psm-event-pool.js +4 -3
  53. package/build/dex/lite-psm/lite-psm-event-pool.js.map +1 -1
  54. package/build/dex/maverick-v1/maverick-v1-pool.js +2 -1
  55. package/build/dex/maverick-v1/maverick-v1-pool.js.map +1 -1
  56. package/build/dex/maverick-v2/maverick-math/maverick-basic-math.js +1 -8
  57. package/build/dex/maverick-v2/maverick-math/maverick-basic-math.js.map +1 -1
  58. package/build/dex/maverick-v2/maverick-math/maverick-pool-math.d.ts +3 -4
  59. package/build/dex/maverick-v2/maverick-math/maverick-pool-math.js +20 -12
  60. package/build/dex/maverick-v2/maverick-math/maverick-pool-math.js.map +1 -1
  61. package/build/dex/maverick-v2/maverick-math/maverick-tick-math.js +8 -8
  62. package/build/dex/maverick-v2/maverick-math/maverick-tick-math.js.map +1 -1
  63. package/build/dex/maverick-v2/maverick-v2-pool.d.ts +4 -4
  64. package/build/dex/maverick-v2/maverick-v2-pool.js +131 -73
  65. package/build/dex/maverick-v2/maverick-v2-pool.js.map +1 -1
  66. package/build/dex/maverick-v2/maverick-v2.js +8 -3
  67. package/build/dex/maverick-v2/maverick-v2.js.map +1 -1
  68. package/build/dex/maverick-v2/scripts/compare-onchain-quotes.d.ts +1 -0
  69. package/build/dex/maverick-v2/scripts/compare-onchain-quotes.js +285 -0
  70. package/build/dex/maverick-v2/scripts/compare-onchain-quotes.js.map +1 -0
  71. package/build/dex/maverick-v2/types.d.ts +3 -0
  72. package/build/dex/miro-migrator/miro-migrator-pool.js +2 -1
  73. package/build/dex/miro-migrator/miro-migrator-pool.js.map +1 -1
  74. package/build/dex/nerve/nerve-pool.js +3 -2
  75. package/build/dex/nerve/nerve-pool.js.map +1 -1
  76. package/build/dex/oswap/oswap-pool.js +4 -3
  77. package/build/dex/oswap/oswap-pool.js.map +1 -1
  78. package/build/dex/pancakeswap-v3/pancakeswap-v3-factory.js +2 -1
  79. package/build/dex/pancakeswap-v3/pancakeswap-v3-factory.js.map +1 -1
  80. package/build/dex/pancakeswap-v3/pancakeswap-v3-pool.js +2 -1
  81. package/build/dex/pancakeswap-v3/pancakeswap-v3-pool.js.map +1 -1
  82. package/build/dex/sky-converter/sky-converter-pool.js +2 -1
  83. package/build/dex/sky-converter/sky-converter-pool.js.map +1 -1
  84. package/build/dex/solidly-v3/solidly-v3-factory.js +2 -1
  85. package/build/dex/solidly-v3/solidly-v3-factory.js.map +1 -1
  86. package/build/dex/solidly-v3/solidly-v3-pool.js +2 -1
  87. package/build/dex/solidly-v3/solidly-v3-pool.js.map +1 -1
  88. package/build/dex/stkgho/stkgho-pool.js +2 -1
  89. package/build/dex/stkgho/stkgho-pool.js.map +1 -1
  90. package/build/dex/swell/rsweth-pool.js +2 -1
  91. package/build/dex/swell/rsweth-pool.js.map +1 -1
  92. package/build/dex/swell/sweth-pool.js +2 -1
  93. package/build/dex/swell/sweth-pool.js.map +1 -1
  94. package/build/dex/uniswap-v2/few-wrapped-token-event-pool.js +2 -1
  95. package/build/dex/uniswap-v2/few-wrapped-token-event-pool.js.map +1 -1
  96. package/build/dex/uniswap-v2/uniswap-v2-factory.js +2 -1
  97. package/build/dex/uniswap-v2/uniswap-v2-factory.js.map +1 -1
  98. package/build/dex/uniswap-v2/uniswap-v2.js +2 -1
  99. package/build/dex/uniswap-v2/uniswap-v2.js.map +1 -1
  100. package/build/dex/uniswap-v3/uniswap-v3-factory.js +2 -1
  101. package/build/dex/uniswap-v3/uniswap-v3-factory.js.map +1 -1
  102. package/build/dex/uniswap-v3/uniswap-v3-pool.js +2 -1
  103. package/build/dex/uniswap-v3/uniswap-v3-pool.js.map +1 -1
  104. package/build/dex/uniswap-v4/hooks/arena/arena-fee-helper.js +2 -1
  105. package/build/dex/uniswap-v4/hooks/arena/arena-fee-helper.js.map +1 -1
  106. package/build/dex/uniswap-v4/uniswap-v4-pool-manager.js +2 -1
  107. package/build/dex/uniswap-v4/uniswap-v4-pool-manager.js.map +1 -1
  108. package/build/dex/uniswap-v4/uniswap-v4-pool.js +2 -1
  109. package/build/dex/uniswap-v4/uniswap-v4-pool.js.map +1 -1
  110. package/build/dex/usual-pp/pool.js +2 -1
  111. package/build/dex/usual-pp/pool.js.map +1 -1
  112. package/build/lib/benqi/staked-avax.js +2 -1
  113. package/build/lib/benqi/staked-avax.js.map +1 -1
  114. package/build/lib/generics-events-subscribers/erc20-event-subscriber.js +3 -1
  115. package/build/lib/generics-events-subscribers/erc20-event-subscriber.js.map +1 -1
  116. package/build/lib/scripts/measure-log-decoding.d.ts +1 -0
  117. package/build/lib/scripts/measure-log-decoding.js +147 -0
  118. package/build/lib/scripts/measure-log-decoding.js.map +1 -0
  119. package/build/lib/topic-log-decoder.d.ts +34 -0
  120. package/build/lib/topic-log-decoder.js +81 -0
  121. package/build/lib/topic-log-decoder.js.map +1 -0
  122. package/package.json +1 -1
@@ -11,11 +11,8 @@ const maverick_bin_math_1 = require("./maverick-bin-math");
11
11
  const maverick_pool_lib_1 = require("./maverick-pool-lib");
12
12
  const maverick_tick_math_1 = require("./maverick-tick-math");
13
13
  class MaverickPoolMath {
14
- feeAIn;
15
- feeBIn;
16
14
  lookback;
17
15
  tickSpacing;
18
- protocolFeeRatioD3;
19
16
  activeTick;
20
17
  tokenADecimals;
21
18
  tokenBDecimals;
@@ -23,12 +20,10 @@ class MaverickPoolMath {
23
20
  tokenAScale;
24
21
  tokenBScale;
25
22
  timestamp;
26
- constructor(feeAIn, feeBIn, lookback, tickSpacing, protocolFeeRatioD3, activeTick, tokenADecimals, tokenBDecimals) {
27
- this.feeAIn = feeAIn;
28
- this.feeBIn = feeBIn;
23
+ sqrtPriceCache = new Map();
24
+ constructor(lookback, tickSpacing, activeTick, tokenADecimals, tokenBDecimals) {
29
25
  this.lookback = lookback;
30
26
  this.tickSpacing = tickSpacing;
31
- this.protocolFeeRatioD3 = protocolFeeRatioD3;
32
27
  this.activeTick = activeTick;
33
28
  this.tokenADecimals = tokenADecimals;
34
29
  this.tokenBDecimals = tokenBDecimals;
@@ -39,6 +34,9 @@ class MaverickPoolMath {
39
34
  lastTwaD8: 0n,
40
35
  lastLogPriceD8: 0n,
41
36
  lastTimestamp: 0n,
37
+ feeAIn: 0n,
38
+ feeBIn: 0n,
39
+ protocolFeeRatioD3: 0n,
42
40
  binCounter: 0n,
43
41
  bins: {},
44
42
  ticks: {},
@@ -248,7 +246,7 @@ class MaverickPoolMath {
248
246
  startingTickState.reserveA = maverick_basic_math_1.MaverickBasicMath.clip(startingTickState.reserveA, firstBinA);
249
247
  startingTickState.reserveB = maverick_basic_math_1.MaverickBasicMath.clip(startingTickState.reserveB, firstBinB);
250
248
  startingTickState.totalSupply = maverick_basic_math_1.MaverickBasicMath.clip(startingTickState.totalSupply, firstBin.tickBalance);
251
- startingTickState.binIdsByTick[moveData.kind.toString()] = 0n;
249
+ delete startingTickState.binIdsByTick[moveData.kind.toString()];
252
250
  if (this.state.ticks[firstBin.tick.toString()].totalSupply === 0n) {
253
251
  delete this.state.ticks[firstBin.tick.toString()];
254
252
  }
@@ -377,6 +375,16 @@ class MaverickPoolMath {
377
375
  this.state.reserveA += maverick_math_1.MaverickMath.ammScaleToTokenScale(tokenAAmount, this.tokenAScale, true);
378
376
  this.state.reserveB += maverick_math_1.MaverickMath.ammScaleToTokenScale(tokenBAmount, this.tokenBScale, true);
379
377
  }
378
+ // Tick sqrt prices depend only on (tickSpacing, tick), so they are memoised
379
+ // per pool: computing them costs ~20 wide multiplications and a division.
380
+ tickSqrtPrices(tick) {
381
+ let prices = this.sqrtPriceCache.get(tick);
382
+ if (!prices) {
383
+ prices = maverick_tick_math_1.MaverickTickMath.tickSqrtPrices(this.tickSpacing, tick);
384
+ this.sqrtPriceCache.set(tick, prices);
385
+ }
386
+ return prices;
387
+ }
380
388
  tickSqrtPriceAndLiquidity(tick) {
381
389
  let tickState = this.state.ticks[tick.toString()];
382
390
  let output = {
@@ -384,7 +392,7 @@ class MaverickPoolMath {
384
392
  currentReserveB: tickState.reserveB,
385
393
  currentLiquidity: 0n,
386
394
  };
387
- let [sqrtLowerTickPrice, sqrtUpperTickPrice] = maverick_tick_math_1.MaverickTickMath.tickSqrtPrices(this.tickSpacing, tick);
395
+ let [sqrtLowerTickPrice, sqrtUpperTickPrice] = this.tickSqrtPrices(tick);
388
396
  let sqrtPrice;
389
397
  [sqrtPrice, output.currentLiquidity] =
390
398
  maverick_tick_math_1.MaverickTickMath.getTickSqrtPriceAndL(output.currentReserveA, output.currentReserveB, sqrtLowerTickPrice, sqrtUpperTickPrice);
@@ -414,8 +422,8 @@ class MaverickPoolMath {
414
422
  ] = this.tickSqrtPriceAndLiquidity(activeTick);
415
423
  this.state.activeTick = activeTick;
416
424
  newDelta = delta.exactOutput
417
- ? maverick_swap_math_1.MaverickSwapMath.computeSwapExactOut(delta.sqrtPrice, tickData, delta.excess, delta.tokenAIn, this.fee(delta.tokenAIn), this.protocolFeeRatioD3)
418
- : maverick_swap_math_1.MaverickSwapMath.computeSwapExactIn(delta.sqrtPrice, tickData, delta.excess, delta.tokenAIn, this.fee(delta.tokenAIn), this.protocolFeeRatioD3);
425
+ ? maverick_swap_math_1.MaverickSwapMath.computeSwapExactOut(delta.sqrtPrice, tickData, delta.excess, delta.tokenAIn, this.fee(delta.tokenAIn), this.state.protocolFeeRatioD3)
426
+ : maverick_swap_math_1.MaverickSwapMath.computeSwapExactIn(delta.sqrtPrice, tickData, delta.excess, delta.tokenAIn, this.fee(delta.tokenAIn), this.state.protocolFeeRatioD3);
419
427
  if (newDelta.excess === 0n) {
420
428
  maverick_swap_math_1.MaverickSwapMath.computeEndPrice(delta, newDelta, tickData);
421
429
  }
@@ -428,7 +436,7 @@ class MaverickPoolMath {
428
436
  return newDelta;
429
437
  }
430
438
  fee(tokenAIn) {
431
- return tokenAIn ? this.feeAIn : this.feeBIn;
439
+ return tokenAIn ? this.state.feeAIn : this.state.feeBIn;
432
440
  }
433
441
  allocateSwapValuesToTick(delta, tokenAIn, tick) {
434
442
  const key = tick.toString();
@@ -1 +1 @@
1
- {"version":3,"file":"maverick-pool-math.js","sourceRoot":"","sources":["../../../../src/dex/maverick-v2/maverick-math/maverick-pool-math.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"maverick-pool-math.js","sourceRoot":"","sources":["../../../../src/dex/maverick-v2/maverick-math/maverick-pool-math.ts"],"names":[],"mappings":";;;AAUA,gEAAoD;AAEpD,+DAA0D;AAC1D,mDAA+C;AAC/C,+DAAiE;AACjE,2DAA8C;AAC9C,6DAAwD;AACxD,2DAAsD;AACtD,2DAAsD;AACtD,6DAAwD;AAExD,MAAa,gBAAgB;IASjB;IACA;IACA;IACA;IACA;IAZV,KAAK,CAAY;IACjB,WAAW,CAAS;IACpB,WAAW,CAAS;IACpB,SAAS,CAAS;IAEV,cAAc,GAAG,IAAI,GAAG,EAA4B,CAAC;IAE7D,YACU,QAAgB,EAChB,WAAmB,EACnB,UAAkB,EAClB,cAAsB,EACtB,cAAsB;QAJtB,aAAQ,GAAR,QAAQ,CAAQ;QAChB,gBAAW,GAAX,WAAW,CAAQ;QACnB,eAAU,GAAV,UAAU,CAAQ;QAClB,mBAAc,GAAd,cAAc,CAAQ;QACtB,mBAAc,GAAd,cAAc,CAAQ;QAE9B,IAAI,CAAC,KAAK,GAAG;YACX,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,QAAQ,EAAE,EAAE;YACZ,QAAQ,EAAE,EAAE;YACZ,SAAS,EAAE,EAAE;YACb,cAAc,EAAE,EAAE;YAClB,aAAa,EAAE,EAAE;YACjB,MAAM,EAAE,EAAE;YACV,MAAM,EAAE,EAAE;YACV,kBAAkB,EAAE,EAAE;YACtB,UAAU,EAAE,EAAE;YACd,IAAI,EAAE,EAAE;YACR,KAAK,EAAE,EAAE;SACV,CAAC;QACF,IAAI,CAAC,WAAW,GAAG,4BAAY,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC3D,IAAI,CAAC,WAAW,GAAG,4BAAY,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC3D,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;IACtB,CAAC;IAED,WAAW,CAAC,KAAa;QACvB,IAAI,CAAC,SAAS,IAAI,KAAK,CAAC;IAC1B,CAAC;IAED,OAAO,CAAC,IAAW,EAAE,KAAY;QAC/B,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACtB,IAAI,CAAC,kBAAkB,IAAI,KAAK,CAAC,kBAAkB,CAAC;YACpD,IAAI,CAAC,UAAU,IAAI,KAAK,CAAC,UAAU,CAAC;YACpC,IAAI,CAAC,WAAW,IAAI,KAAK,CAAC,WAAW,CAAC;QACxC,CAAC;QACD,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;QAC3B,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC,iBAAiB,CAAC;QACjD,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC,cAAc,CAAC;IAC7C,CAAC;IAED,YAAY,CACV,KAAgB,EAChB,MAAc,EACd,QAAiB,EACjB,WAAoB,EACpB,SAAiB;QAEjB,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACrB,IAAI,KAAK,GAAU;YACjB,kBAAkB,EAAE,EAAE;YACtB,UAAU,EAAE,EAAE;YACd,WAAW,EAAE,EAAE;YACf,MAAM,EAAE,MAAM;YACd,QAAQ,EAAE,QAAQ;YAClB,WAAW,EAAE,WAAW;YACxB,iBAAiB,EAAE,KAAK;YACxB,WAAW,EAAE,KAAK;YAClB,SAAS,EAAE,SAAS;YACpB,kBAAkB,EAAE,EAAE;YACtB,kBAAkB,EAAE,EAAE;YACtB,SAAS,EAAE,EAAE;YACb,cAAc,EAAE,EAAE;SACnB,CAAC;QAEF,IAAI,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;QACzC,IACE,CAAC,YAAY,GAAG,SAAS,IAAI,QAAQ,CAAC;YACtC,CAAC,YAAY,GAAG,SAAS,IAAI,CAAC,QAAQ,CAAC,EACvC,CAAC;YACD,MAAM,mBAAmB,CAAC;QAC5B,CAAC;QAED,MAAM,WAAW,GAAG,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC;QAC/D,IAAI,WAAW,IAAI,MAAM,GAAG,WAAW,EAAE,CAAC;YACxC,MAAM,2CAA2C,CAAC;QACpD,CAAC;QAED,IAAI,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC;QAC7D,IAAI,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC;QAE9D,KAAK,CAAC,MAAM,GAAG,CAAC,WAAW;YACzB,CAAC,CAAC,4BAAY,CAAC,oBAAoB,CAAC,MAAM,EAAE,OAAO,CAAC;YACpD,CAAC,CAAC,4BAAY,CAAC,oBAAoB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QAExD,KAAK,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAC1B,KAAK,CAAC,WAAW,GAAG,WAAW,CAAC;QAChC,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;QAE5B,OAAO,KAAK,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC;YAC1B,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YACpC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QAChC,CAAC;QAED,IAAI,QAAQ,GAAG,4BAAY,CAAC,oBAAoB,CAC9C,KAAK,CAAC,UAAU,EAChB,OAAO,EACP,WAAW,IAAI,KAAK,CAAC,iBAAiB,CACvC,CAAC;QAEF,IAAI,SAAS,GAAG,4BAAY,CAAC,oBAAoB,CAC/C,KAAK,CAAC,WAAW,EACjB,QAAQ,EACR,KAAK,CACN,CAAC;QAEF,OAAO,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IAC/B,CAAC;IAED,IAAI,CACF,KAAgB,EAChB,SAAiB,EACjB,MAAc,EACd,QAAiB,EACjB,WAAoB,EACpB,SAAiB;QAEjB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACrB,IAAI,KAAK,GAAU;YACjB,kBAAkB,EAAE,EAAE;YACtB,UAAU,EAAE,EAAE;YACd,WAAW,EAAE,EAAE;YACf,MAAM,EAAE,MAAM;YACd,QAAQ,EAAE,QAAQ;YAClB,WAAW,EAAE,WAAW;YACxB,iBAAiB,EAAE,KAAK;YACxB,WAAW,EAAE,KAAK;YAClB,SAAS,EAAE,SAAS;YACpB,kBAAkB,EAAE,EAAE;YACtB,kBAAkB,EAAE,EAAE;YACtB,SAAS,EAAE,EAAE;YACb,cAAc,EAAE,EAAE;SACnB,CAAC;QAEF,IAAI,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;QACzC,IACE,CAAC,YAAY,GAAG,SAAS,IAAI,QAAQ,CAAC;YACtC,CAAC,YAAY,GAAG,SAAS,IAAI,CAAC,QAAQ,CAAC,EACvC,CAAC;YACD,MAAM,mBAAmB,CAAC;QAC5B,CAAC;QAED,IAAI,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC;QAC7D,IAAI,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC;QAE9D,KAAK,CAAC,MAAM,GAAG,CAAC,WAAW;YACzB,CAAC,CAAC,4BAAY,CAAC,oBAAoB,CAAC,MAAM,EAAE,OAAO,CAAC;YACpD,CAAC,CAAC,4BAAY,CAAC,oBAAoB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QAExD,KAAK,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAC1B,KAAK,CAAC,WAAW,GAAG,WAAW,CAAC;QAChC,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;QAE5B,OAAO,KAAK,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC;YAC1B,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YACpC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QAChC,CAAC;QAED,IAAI,QAAQ,GAAG,4BAAY,CAAC,oBAAoB,CAC9C,KAAK,CAAC,UAAU,EAChB,OAAO,EACP,WAAW,IAAI,KAAK,CAAC,iBAAiB,CACvC,CAAC;QAEF,IAAI,SAAS,GAAG,4BAAY,CAAC,oBAAoB,CAC/C,KAAK,CAAC,WAAW,EACjB,QAAQ,EACR,KAAK,CACN,CAAC;QAEF,IAAI,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC;QAErC,2BAAO,CAAC,WAAW,CACjB,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,0BAAO,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,cAAc,EACzD,IAAI,CAAC,QAAQ,EACb,IAAI,CAAC,SAAS,CACf,CAAC;QAEF,IAAI,CAAC,QAAQ,CACX,YAAY,EACZ,IAAI,CAAC,KAAK,CAAC,UAAU,EACrB,SAAS,EACT,IAAI,CAAC,KAAK,CAAC,SAAS,EACpB,EAAE,GAAG,0BAAO,CAAC,CAAC,CAAC,CAChB,CAAC;QAEF,IAAI,kBAAkB,GAAG,QAAQ;YAC/B,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,QAAQ;YAChC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAEnC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,QAAQ;YACnD,CAAC,CAAC,CAAC,kBAAkB,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,SAAS,CAAC;YACvD,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,SAAS,EAAE,kBAAkB,CAAC,CAAC;QAE1D,OAAO,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IAC/B,CAAC;IAED,QAAQ,CACN,kBAA0B,EAC1B,UAAkB,EAClB,UAAkB,EAClB,SAAiB,EACjB,QAAgB;QAEhB,IAAI,OAAO,GAAG,uCAAiB,CAAC,gBAAgB,CAAC,SAAS,GAAG,QAAQ,CAAC,CAAC;QACvE,IAAI,QAAQ,GAAG,uCAAiB,CAAC,gBAAgB,CAAC,UAAU,GAAG,QAAQ,CAAC,CAAC;QAEzE,IAAI,UAAU,GAAG,kBAAkB,IAAI,OAAO,GAAG,QAAQ,EAAE,CAAC;YAC1D,IAAI,QAAQ,GAAa;gBACvB,IAAI,EAAE,EAAE;gBACR,eAAe,EAAE,EAAE;gBACnB,aAAa,EAAE,EAAE;gBACjB,SAAS,EAAE,EAAE;gBACb,YAAY,EAAE,EAAE;gBAChB,UAAU,EAAE,EAAE;gBACd,eAAe,EAAE,EAAE;gBACnB,aAAa,EAAE,EAAE;gBACjB,aAAa,EAAE,EAAE;gBACjB,SAAS,EAAE,EAAE;gBACb,OAAO,EAAE,EAAE;aACZ,CAAC;YAEF,QAAQ,CAAC,SAAS,GAAG,uCAAiB,CAAC,GAAG,CAAC,UAAU,GAAG,EAAE,EAAE,OAAO,CAAC,CAAC;YAErE,IAAI,QAAQ,GAAG,EAAE,GAAG,QAAQ,CAAC,SAAS,EAAE,CAAC;gBACvC,QAAQ,CAAC,eAAe,GAAG,QAAQ,GAAG,EAAE,CAAC;gBACzC,QAAQ,CAAC,aAAa,GAAG,QAAQ,CAAC,SAAS,CAAC;gBAC5C,QAAQ,CAAC,IAAI,GAAG,EAAE,CAAC;gBACnB,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;gBAC7B,QAAQ,CAAC,IAAI,GAAG,EAAE,CAAC;gBACnB,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;gBAE7B,8CAA8C;gBAC9C,OAAO;YACT,CAAC;QACH,CAAC;QAED,OAAO,GAAG,uCAAiB,CAAC,gBAAgB,CAAC,SAAS,GAAG,QAAQ,CAAC,CAAC;QACnE,QAAQ,GAAG,uCAAiB,CAAC,gBAAgB,CAAC,UAAU,GAAG,QAAQ,CAAC,CAAC;QAErE,IAAI,UAAU,GAAG,kBAAkB,IAAI,OAAO,GAAG,QAAQ,EAAE,CAAC;YAC1D,IAAI,QAAQ,GAAa;gBACvB,IAAI,EAAE,EAAE;gBACR,eAAe,EAAE,EAAE;gBACnB,aAAa,EAAE,EAAE;gBACjB,SAAS,EAAE,EAAE;gBACb,YAAY,EAAE,EAAE;gBAChB,UAAU,EAAE,EAAE;gBACd,eAAe,EAAE,EAAE;gBACnB,aAAa,EAAE,EAAE;gBACjB,aAAa,EAAE,EAAE;gBACjB,SAAS,EAAE,EAAE;gBACb,OAAO,EAAE,EAAE;aACZ,CAAC;YAEF,QAAQ,CAAC,SAAS,GAAG,uCAAiB,CAAC,GAAG,CAAC,OAAO,EAAE,UAAU,GAAG,EAAE,CAAC,CAAC;YAErE,IAAI,QAAQ,CAAC,SAAS,GAAG,QAAQ,GAAG,EAAE,EAAE,CAAC;gBACvC,QAAQ,CAAC,eAAe,GAAG,QAAQ,CAAC,SAAS,CAAC;gBAC9C,QAAQ,CAAC,aAAa,GAAG,QAAQ,GAAG,EAAE,CAAC;gBACvC,QAAQ,CAAC,IAAI,GAAG,EAAE,CAAC;gBACnB,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;gBAC7B,QAAQ,CAAC,IAAI,GAAG,EAAE,CAAC;gBACnB,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;YAC/B,CAAC;QACH,CAAC;IACH,CAAC;IAED,aAAa,CAAC,QAAkB;QAC9B,QAAQ,CAAC,YAAY,GAAG,EAAE,CAAC;QAC3B,QAAQ,CAAC,UAAU,GAAG,EAAE,CAAC;QACzB,QAAQ,CAAC,eAAe,GAAG,EAAE,CAAC;QAC9B,QAAQ,CAAC,aAAa,GAAG,EAAE,CAAC;QAC5B,QAAQ,CAAC,aAAa,GAAG,EAAE,CAAC;QAC5B,QAAQ,CAAC,OAAO,GAAG,EAAE,CAAC;QAEtB,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC,CAAC;QAEtC,IACE,QAAQ,CAAC,UAAU,KAAK,EAAE;YAC1B,CAAC,QAAQ,CAAC,OAAO,KAAK,EAAE,IAAI,QAAQ,CAAC,SAAS,KAAK,QAAQ,CAAC,YAAY,CAAC,EACzE,CAAC;YACD,OAAO;QACT,CAAC;QAED,IAAI,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC/D,IAAI,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC3E,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,iBAAiB,EAAE,QAAQ,CAAC,CAAC;QAC5D,IAAI,QAAQ,CAAC,SAAS,IAAI,QAAQ,CAAC,YAAY,EAAE,CAAC;YAChD,IAAI,CAAC,gBAAgB,CACnB,QAAQ,EACR,iBAAiB,EACjB,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,EAC/C,QAAQ,CACT,CAAC;QACJ,CAAC;IACH,CAAC;IAED,sBAAsB,CAAC,QAAkB;QACvC,KACE,IAAI,IAAI,GAAG,QAAQ,CAAC,eAAe,EACnC,IAAI,IAAI,QAAQ,CAAC,aAAa,EAC9B,IAAI,EAAE,EACN,CAAC;YACD,IAAI,QAAQ,CAAC,OAAO,KAAK,EAAE;gBAAE,OAAO;YACpC,IAAI,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;YACtD,IAAI,KAAK,KAAK,EAAE;gBAAE,SAAS;YAC3B,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,GAAG,KAAK,CAAC;YACxD,QAAQ,CAAC,OAAO,EAAE,CAAC;YACnB,IAAI,QAAQ,CAAC,UAAU,KAAK,EAAE,IAAI,KAAK,GAAG,QAAQ,CAAC,UAAU,EAAE,CAAC;gBAC9D,QAAQ,CAAC,UAAU,GAAG,KAAK,CAAC;gBAC5B,QAAQ,CAAC,YAAY,GAAG,IAAI,CAAC;YAC/B,CAAC;QACH,CAAC;IACH,CAAC;IAED,eAAe,CAAC,IAAY,EAAE,IAAY;QACxC,OAAO,CACL,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,EAAE,YAAY,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CACvE,CAAC;IACJ,CAAC;IAED,gBAAgB,CACd,QAAa,EACb,iBAAuB,EACvB,eAAqB,EACrB,QAAkB;QAElB,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,GAAG,mCAAe,CAAC,WAAW,CACtD,QAAQ,EACR,iBAAiB,CAClB,CAAC;QAEF,iBAAiB,CAAC,QAAQ,GAAG,uCAAiB,CAAC,IAAI,CACjD,iBAAiB,CAAC,QAAQ,EAC1B,SAAS,CACV,CAAC;QACF,iBAAiB,CAAC,QAAQ,GAAG,uCAAiB,CAAC,IAAI,CACjD,iBAAiB,CAAC,QAAQ,EAC1B,SAAS,CACV,CAAC;QACF,iBAAiB,CAAC,WAAW,GAAG,uCAAiB,CAAC,IAAI,CACpD,iBAAiB,CAAC,WAAW,EAC7B,QAAQ,CAAC,WAAW,CACrB,CAAC;QACF,OAAO,iBAAiB,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QAChE,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,WAAW,KAAK,EAAE,EAAE,CAAC;YAClE,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QACpD,CAAC;QACD,eAAe,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACpD,QAAQ,CAAC,UAAU,CAAC;QACtB,QAAQ,CAAC,IAAI,GAAG,QAAQ,CAAC,SAAS,CAAC;QACnC,IAAI,gBAAgB,CAAC;QACrB,IAAI,SAAS,GAAG,SAAS,EAAE,CAAC;YAC1B,gBAAgB,GAAG,uCAAiB,CAAC,UAAU,CAC7C,SAAS,EACT,uCAAiB,CAAC,GAAG,CAAC,EAAE,EAAE,eAAe,CAAC,WAAW,CAAC,EACtD,eAAe,CAAC,QAAQ,CACzB,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,gBAAgB,GAAG,uCAAiB,CAAC,UAAU,CAC7C,SAAS,EACT,uCAAiB,CAAC,GAAG,CAAC,EAAE,EAAE,eAAe,CAAC,WAAW,CAAC,EACtD,eAAe,CAAC,QAAQ,CACzB,CAAC;QACJ,CAAC;QAED,eAAe,CAAC,QAAQ,IAAI,SAAS,CAAC;QACtC,eAAe,CAAC,QAAQ,IAAI,SAAS,CAAC;QACtC,QAAQ,CAAC,WAAW,GAAG,gBAAgB,CAAC;QACxC,eAAe,CAAC,WAAW,IAAI,gBAAgB,CAAC;IAClD,CAAC;IAED,eAAe,CAAC,QAAa,EAAE,iBAAuB,EAAE,QAAkB;QACxE,IAAI,YAAY,CAAC;QAEjB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC;YAC1C,IAAI,KAAK,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;YAClC,IAAI,KAAK,KAAK,QAAQ,CAAC,UAAU;gBAAE,SAAS;YAC5C,YAAY,GAAG,IAAI,CAAC;YAEpB,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,eAAe,CAAC,GAAG,IAAI,CAAC,uBAAuB,CAC9D,KAAK,EACL,QAAQ,CAAC,UAAU,EACnB,QAAQ,EACR,iBAAiB,EACjB,QAAQ,CAAC,IAAI,CACd,CAAC;YAEF,QAAQ,CAAC,aAAa,IAAI,IAAI,CAAC;YAC/B,QAAQ,CAAC,aAAa,IAAI,IAAI,CAAC;YAC/B,QAAQ,CAAC,eAAe,IAAI,eAAe,CAAC;QAC9C,CAAC;QAED,IAAI,YAAY,EAAE,CAAC;YACjB,mCAAe,CAAC,sBAAsB,CACpC,QAAQ,EACR,iBAAiB,EACjB,QAAQ,CAAC,aAAa,EACtB,QAAQ,CAAC,aAAa,EACtB,QAAQ,CAAC,eAAe,CACzB,CAAC;QACJ,CAAC;IACH,CAAC;IAED,uBAAuB,CACrB,eAAuB,EACvB,WAAmB,EACnB,SAAc,EACd,aAAmB,EACnB,IAAY;QAEZ,IAAI,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC,CAAC;QACtD,IAAI,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QAEjD,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,mCAAe,CAAC,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAC1D,GAAG,CAAC,OAAO,GAAG,WAAW,CAAC;QAE1B,IAAI,eAAe,GAAG,mCAAe,CAAC,0BAA0B,CAC9D,SAAS,EACT,aAAa,EACb,IAAI,EACJ,IAAI,CACL,CAAC;QACF,GAAG,CAAC,eAAe,GAAG,eAAe,CAAC;QAEtC,IAAI,CAAC,WAAW,GAAG,uCAAiB,CAAC,IAAI,CACvC,IAAI,CAAC,WAAW,EAChB,GAAG,CAAC,WAAW,CAChB,CAAC;QACF,IAAI,CAAC,QAAQ,GAAG,uCAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAC5D,IAAI,CAAC,QAAQ,GAAG,uCAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAC5D,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QAE1C,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,eAAe,CAAC,CAAC;IACvC,CAAC;IAED,eAAe,CACb,KAAgB,EAChB,SAAiB,EACjB,MAA6B;QAE7B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAErB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC9C,IAAI,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;YACvD,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,mCAAe,CAAC,eAAe,CACpD,GAAG,EACH,IAAI,CAAC,KAAK,CAAC,KAAK,EAChB,IAAI,CAAC,KAAK,CAAC,IAAI,EACf,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAClB,CAAC;YAEF,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,4BAAY,CAAC,oBAAoB,CACtD,MAAM,EACN,IAAI,CAAC,WAAW,EAChB,KAAK,CACN,CAAC;YACF,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,4BAAY,CAAC,oBAAoB,CACtD,MAAM,EACN,IAAI,CAAC,WAAW,EAChB,KAAK,CACN,CAAC;QACJ,CAAC;IACH,CAAC;IAED,cAAc,CAAC,IAAY,EAAE,IAAY;QACvC,IAAI,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAE7C,IAAI,GAAG,CAAC;QACR,IAAI,KAAK,KAAK,EAAE,EAAE,CAAC;YACjB,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;YACxB,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;YAC9B,GAAG,GAAG;gBACJ,IAAI,EAAE,IAAI;gBACV,IAAI,EAAE,IAAI;gBACV,eAAe,EAAE,EAAE;gBACnB,OAAO,EAAE,EAAE;gBACX,WAAW,EAAE,EAAE;gBACf,WAAW,EAAE,EAAE;aAChB,CAAC;YACF,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,GAAG,GAAG,CAAC;YACxC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC;gBACvC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,GAAG;oBAClC,QAAQ,EAAE,EAAE;oBACZ,QAAQ,EAAE,EAAE;oBACZ,WAAW,EAAE,EAAE;oBACf,YAAY,EAAE,EAAE;iBACjB,CAAC;YACJ,CAAC;YACD,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,GAAG,KAAK,CAAC;QAC1E,CAAC;QAED,IAAI,CAAC,GAAG;YAAE,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;QAElD,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IACtB,CAAC;IAED,iBAAiB,CAAC,KAAa,EAAE,YAAoB;QACnD,IAAI,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC5C,mCAAe,CAAC,kBAAkB,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;IACzE,CAAC;IAED,QAAQ,CAAC,KAAgB;QACvB,IAAI,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;QACvC,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,0BAAO,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,0BAAO,CAAC,CAAC,CAAC,CAAC;QACjE,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QAEnB,IAAI,IAAI,CAAC,KAAK,CAAC,aAAa,KAAK,EAAE,EAAE,CAAC;YACpC,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,UAAU,CAAC;YACnC,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC;YAC7B,IAAI,CAAC,KAAK,CAAC,cAAc,GAAG,KAAK,CAAC;YAClC,IAAI,CAAC,KAAK,CAAC,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC;QAC5C,CAAC;IACH,CAAC;IAED,YAAY,CACV,KAAgB,EAChB,SAAiB,EACjB,MAA0B;QAE1B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACrB,IAAI,gBAAgB,GAAqB;YACvC,MAAM,EAAE,EAAE;YACV,MAAM,EAAE,EAAE;YACV,YAAY,EAAE,KAAK;YACnB,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,IAAI,EAAE,EAAE;SACT,CAAC;QAEF,IAAI,YAAY,GAAG,EAAE,CAAC;QACtB,IAAI,YAAY,GAAG,EAAE,CAAC;QAEtB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC7C,gBAAgB,CAAC,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACxC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YACrE,gBAAgB,CAAC,YAAY;gBAC3B,gBAAgB,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;YAEhD,mCAAe,CAAC,YAAY,CAC1B,GAAG,EACH,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,EACrC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EACjB,gBAAgB,CACjB,CAAC;YAEF,IAAI,gBAAgB,CAAC,MAAM,KAAK,EAAE,IAAI,gBAAgB,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;gBACrE,MAAM,sBAAsB,CAAC;YAC/B,CAAC;YAED,YAAY,IAAI,gBAAgB,CAAC,MAAM,CAAC;YACxC,YAAY,IAAI,gBAAgB,CAAC,MAAM,CAAC;QAC1C,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,4BAAY,CAAC,oBAAoB,CACtD,YAAY,EACZ,IAAI,CAAC,WAAW,EAChB,IAAI,CACL,CAAC;QACF,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,4BAAY,CAAC,oBAAoB,CACtD,YAAY,EACZ,IAAI,CAAC,WAAW,EAChB,IAAI,CACL,CAAC;IACJ,CAAC;IAED,4EAA4E;IAC5E,0EAA0E;IAC1E,cAAc,CAAC,IAAY;QACzB,IAAI,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC3C,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,GAAG,qCAAgB,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;YACjE,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACxC,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,yBAAyB,CAAC,IAAY;QACpC,IAAI,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QAClD,IAAI,MAAM,GAAa;YACrB,eAAe,EAAE,SAAS,CAAC,QAAQ;YACnC,eAAe,EAAE,SAAS,CAAC,QAAQ;YACnC,gBAAgB,EAAE,EAAE;SACrB,CAAC;QAEF,IAAI,CAAC,kBAAkB,EAAE,kBAAkB,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QAEzE,IAAI,SAAS,CAAC;QACd,CAAC,SAAS,EAAE,MAAM,CAAC,gBAAgB,CAAC;YAClC,qCAAgB,CAAC,oBAAoB,CACnC,MAAM,CAAC,eAAe,EACtB,MAAM,CAAC,eAAe,EACtB,kBAAkB,EAClB,kBAAkB,CACnB,CAAC;QAEJ,OAAO,CAAC,kBAAkB,EAAE,kBAAkB,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;IACrE,CAAC;IAED,QAAQ,CAAC,KAAY;QACnB,IAAI,QAAkB,CAAC;QACvB,IAAI,QAAQ,CAAC;QACb,IAAI,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;QACvC,IAAI,uCAAiB,CAAC,WAAW,CAAC,KAAK,EAAE,UAAU,CAAC,EAAE,CAAC;YACrD,IAAI,CAAC,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACnD,OAAO,KAAK,CAAC;QACf,CAAC;QAED,OACE,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,EAAE,QAAQ,IAAI,EAAE,CAAC,KAAK,EAAE;YAChE,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,EAAE,QAAQ,IAAI,EAAE,CAAC,KAAK,EAAE,EAChE,CAAC;YACD,UAAU,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAExC,IAAI,uCAAiB,CAAC,WAAW,CAAC,KAAK,EAAE,UAAU,CAAC,EAAE,CAAC;gBACrD,IAAI,CAAC,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACnD,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;QAED;YACE,KAAK,CAAC,kBAAkB;YACxB,KAAK,CAAC,kBAAkB;YACxB,KAAK,CAAC,SAAS;YACf,QAAQ;SACT,GAAG,IAAI,CAAC,yBAAyB,CAAC,UAAU,CAAC,CAAC;QAE/C,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,UAAU,CAAC;QAEnC,QAAQ,GAAG,KAAK,CAAC,WAAW;YAC1B,CAAC,CAAC,qCAAgB,CAAC,mBAAmB,CAClC,KAAK,CAAC,SAAS,EACf,QAAQ,EACR,KAAK,CAAC,MAAM,EACZ,KAAK,CAAC,QAAQ,EACd,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,EACxB,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAC9B;YACH,CAAC,CAAC,qCAAgB,CAAC,kBAAkB,CACjC,KAAK,CAAC,SAAS,EACf,QAAQ,EACR,KAAK,CAAC,MAAM,EACZ,KAAK,CAAC,QAAQ,EACd,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,EACxB,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAC9B,CAAC;QAEN,IAAI,QAAQ,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;YAC3B,qCAAgB,CAAC,eAAe,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAC9D,CAAC;QAED,IAAI,CAAC,wBAAwB,CAC3B,QAAQ,EACR,KAAK,CAAC,QAAQ,EACd,IAAI,CAAC,KAAK,CAAC,UAAU,CACtB,CAAC;QAEF,IAAI,QAAQ,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC;YAC1B,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC,QAAQ;gBACpC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,EAAE;gBAC5B,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,EAAE,CAAC;QACjC,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,GAAG,CAAC,QAAiB;QACnB,OAAO,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;IAC1D,CAAC;IAED,wBAAwB,CAAC,KAAY,EAAE,QAAiB,EAAE,IAAY;QACpE,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC5B,IAAI,SAAS,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;QAC7C,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC;QAClC,IAAI,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC;QAClC,IAAI,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC;QAElC,IAAI,QAAQ,EAAE,CAAC;YACb,QAAQ,GAAG,QAAQ,GAAG,KAAK,CAAC,kBAAkB,CAAC;YAC/C,QAAQ;gBACN,KAAK,CAAC,MAAM,GAAG,EAAE;oBACf,CAAC,CAAC,EAAE;oBACJ,CAAC,CAAC,uCAAiB,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;QAC5D,CAAC;aAAM,CAAC;YACN,QAAQ;gBACN,KAAK,CAAC,MAAM,GAAG,EAAE;oBACf,CAAC,CAAC,EAAE;oBACJ,CAAC,CAAC,uCAAiB,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;YAC1D,QAAQ,GAAG,QAAQ,GAAG,KAAK,CAAC,kBAAkB,CAAC;QACjD,CAAC;QAED,SAAS,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAC9B,SAAS,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAChC,CAAC;CACF;AAlsBD,4CAksBC"}
@@ -28,14 +28,14 @@ class MaverickTickMath {
28
28
  reserveA <<= precisionBump;
29
29
  reserveB <<= precisionBump;
30
30
  }
31
- let diff;
32
- let b = maverick_basic_math_1.MaverickBasicMath.divDown(reserveA, sqrtUpperTickPrice) +
33
- maverick_basic_math_1.MaverickBasicMath.mulDown(reserveB, sqrtLowerTickPrice);
34
- diff = sqrtUpperTickPrice - sqrtLowerTickPrice;
35
- if (reserveA === 0n || reserveB === 0n)
36
- return (maverick_basic_math_1.MaverickBasicMath.mulDivDown(b, sqrtUpperTickPrice, diff) >>
37
- precisionBump);
38
- b >>= 1n;
31
+ const diff = sqrtUpperTickPrice - sqrtLowerTickPrice;
32
+ if (reserveB === 0n)
33
+ return maverick_basic_math_1.MaverickBasicMath.divDown(reserveA, diff) >> precisionBump;
34
+ if (reserveA === 0n)
35
+ return (maverick_basic_math_1.MaverickBasicMath.mulDivDown(maverick_basic_math_1.MaverickBasicMath.mulDown(reserveB, sqrtLowerTickPrice), sqrtUpperTickPrice, diff) >> precisionBump);
36
+ const b = (maverick_basic_math_1.MaverickBasicMath.divDown(reserveA, sqrtUpperTickPrice) +
37
+ maverick_basic_math_1.MaverickBasicMath.mulDown(reserveB, sqrtLowerTickPrice)) >>
38
+ 1n;
39
39
  return (maverick_basic_math_1.MaverickBasicMath.mulDiv(b +
40
40
  maverick_basic_math_1.MaverickBasicMath.sqrt(maverick_basic_math_1.MaverickBasicMath.mulDiv(b, b, bigint_constants_1.BI_POWS[18]) +
41
41
  maverick_basic_math_1.MaverickBasicMath.mulDiv(maverick_basic_math_1.MaverickBasicMath.mulFloor(reserveB, reserveA), diff, sqrtUpperTickPrice)) *
@@ -1 +1 @@
1
- {"version":3,"file":"maverick-tick-math.js","sourceRoot":"","sources":["../../../../src/dex/maverick-v2/maverick-math/maverick-tick-math.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"maverick-tick-math.js","sourceRoot":"","sources":["../../../../src/dex/maverick-v2/maverick-math/maverick-tick-math.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,6 @@ import { Address, BlockHeader, Log, Logger, Token } from '../../types';
4
4
  import { StatefulEventSubscriber } from '../../stateful-event-subscriber';
5
5
  import { IDexHelper } from '../../dex-helper/idex-helper';
6
6
  import { PoolState } from './types';
7
- import { Contract } from 'web3-eth-contract';
8
7
  import { MaverickPoolMath } from './maverick-math/maverick-pool-math';
9
8
  import { MultiResult } from '../../lib/multi-wrapper';
10
9
  import { BytesLike } from 'ethers';
@@ -18,7 +17,6 @@ export declare class MaverickV2EventPool extends StatefulEventSubscriber<PoolSta
18
17
  feeAIn: bigint;
19
18
  feeBIn: bigint;
20
19
  tickSpacing: bigint;
21
- protocolFeeRatio: bigint;
22
20
  lookback: bigint;
23
21
  activeTick: bigint;
24
22
  address: Address;
@@ -28,11 +26,10 @@ export declare class MaverickV2EventPool extends StatefulEventSubscriber<PoolSta
28
26
  handlers: {
29
27
  [event: string]: (event: any, state: DeepReadonly<PoolState>, log: Readonly<Log>, blockHeader: BlockHeader) => DeepReadonly<PoolState> | null;
30
28
  };
31
- poolContract: Contract;
32
29
  logDecoder: (log: Log) => any;
33
30
  addressesSubscribed: string[];
34
31
  poolMath: MaverickPoolMath;
35
- constructor(parentName: string, network: number, dexHelper: IDexHelper, logger: Logger, tokenA: Token, tokenB: Token, feeAIn: bigint, feeBIn: bigint, tickSpacing: bigint, protocolFeeRatio: bigint, lookback: bigint, activeTick: bigint, address: Address, poolLensAddress: Address, maverickV2Iface?: Interface, maverickV2LensIface?: Interface);
32
+ constructor(parentName: string, network: number, dexHelper: IDexHelper, logger: Logger, tokenA: Token, tokenB: Token, feeAIn: bigint, feeBIn: bigint, tickSpacing: bigint, lookback: bigint, activeTick: bigint, address: Address, poolLensAddress: Address, maverickV2Iface?: Interface, maverickV2LensIface?: Interface);
36
33
  /**
37
34
  * The function is called every time any of the subscribed
38
35
  * addresses release log. The function accepts the current
@@ -52,7 +49,10 @@ export declare class MaverickV2EventPool extends StatefulEventSubscriber<PoolSta
52
49
  * should be generated
53
50
  * @returns state of the event subscriber at blocknumber
54
51
  */
52
+ private lensCall;
55
53
  generateState(blockNumber: number): Promise<DeepReadonly<PoolState>>;
54
+ handleSetVariableFeeEvent(event: any, state: PoolState): PoolState;
55
+ handleSetProtocolFeeRatioEvent(event: any, state: PoolState): PoolState;
56
56
  handleRemoveLiquidityEvent(event: any, state: PoolState, log: Log, blockHeader: BlockHeader): PoolState;
57
57
  handleAddLiquidityEvent(event: any, state: PoolState, log: Log, blockHeader: BlockHeader): PoolState;
58
58
  handleSwapEvent(event: any, state: PoolState, log: Log, blockHeader: BlockHeader): PoolState;
@@ -11,6 +11,8 @@ const MaverickV2Pool_json_1 = __importDefault(require("../../abi/maverick-v2/Mav
11
11
  const MaverickV2PoolLens_json_1 = __importDefault(require("../../abi/maverick-v2/MaverickV2PoolLens.json"));
12
12
  const maverick_pool_math_1 = require("./maverick-math/maverick-pool-math");
13
13
  const decoders_1 = require("../../lib/decoders");
14
+ const topic_log_decoder_1 = require("../../lib/topic-log-decoder");
15
+ const BINS_PER_LENS_CALL = 5000n;
14
16
  const decodeMaverickFullState = (result) => {
15
17
  const [isSuccess, toDecode] = (0, decoders_1.extractSuccessAndValue)(result);
16
18
  if (!isSuccess || toDecode === '0x') {
@@ -63,7 +65,6 @@ class MaverickV2EventPool extends stateful_event_subscriber_1.StatefulEventSubsc
63
65
  feeAIn;
64
66
  feeBIn;
65
67
  tickSpacing;
66
- protocolFeeRatio;
67
68
  lookback;
68
69
  activeTick;
69
70
  address;
@@ -71,11 +72,10 @@ class MaverickV2EventPool extends stateful_event_subscriber_1.StatefulEventSubsc
71
72
  maverickV2Iface;
72
73
  maverickV2LensIface;
73
74
  handlers = {};
74
- poolContract;
75
75
  logDecoder;
76
76
  addressesSubscribed;
77
77
  poolMath;
78
- constructor(parentName, network, dexHelper, logger, tokenA, tokenB, feeAIn, feeBIn, tickSpacing, protocolFeeRatio, lookback, activeTick, address, poolLensAddress, maverickV2Iface = new abi_1.Interface(MaverickV2Pool_json_1.default), maverickV2LensIface = new abi_1.Interface(MaverickV2PoolLens_json_1.default)) {
78
+ constructor(parentName, network, dexHelper, logger, tokenA, tokenB, feeAIn, feeBIn, tickSpacing, lookback, activeTick, address, poolLensAddress, maverickV2Iface = new abi_1.Interface(MaverickV2Pool_json_1.default), maverickV2LensIface = new abi_1.Interface(MaverickV2PoolLens_json_1.default)) {
79
79
  const name = `${parentName.toLowerCase()}-${tokenA.symbol}-${tokenB.symbol}-${address.toLowerCase()}-${feeAIn}-${feeBIn}-${tickSpacing}-${lookback}`;
80
80
  super(parentName, name, dexHelper, logger);
81
81
  this.parentName = parentName;
@@ -86,7 +86,6 @@ class MaverickV2EventPool extends stateful_event_subscriber_1.StatefulEventSubsc
86
86
  this.feeAIn = feeAIn;
87
87
  this.feeBIn = feeBIn;
88
88
  this.tickSpacing = tickSpacing;
89
- this.protocolFeeRatio = protocolFeeRatio;
90
89
  this.lookback = lookback;
91
90
  this.activeTick = activeTick;
92
91
  this.address = address;
@@ -94,15 +93,18 @@ class MaverickV2EventPool extends stateful_event_subscriber_1.StatefulEventSubsc
94
93
  this.maverickV2Iface = maverickV2Iface;
95
94
  this.maverickV2LensIface = maverickV2LensIface;
96
95
  // TODO: make logDecoder decode logs that
97
- this.logDecoder = (log) => this.maverickV2Iface.parseLog(log);
96
+ this.logDecoder = (log) => (0, topic_log_decoder_1.getTopicLogDecoder)(this.maverickV2Iface).decode(log);
98
97
  this.addressesSubscribed = [address];
99
98
  // Add handlers
100
99
  this.handlers['PoolAddLiquidity'] = this.handleAddLiquidityEvent.bind(this);
101
100
  this.handlers['PoolRemoveLiquidity'] =
102
101
  this.handleRemoveLiquidityEvent.bind(this);
103
102
  this.handlers['PoolSwap'] = this.handleSwapEvent.bind(this);
104
- this.poolMath = new maverick_pool_math_1.MaverickPoolMath(BigInt(feeAIn), BigInt(feeBIn), BigInt(lookback), BigInt(tickSpacing), BigInt(protocolFeeRatio), BigInt(activeTick), BigInt(tokenA.decimals), BigInt(tokenB.decimals));
105
- this.poolContract = new this.dexHelper.web3Provider.eth.Contract(MaverickV2Pool_json_1.default, this.address);
103
+ this.handlers['PoolSetVariableFee'] =
104
+ this.handleSetVariableFeeEvent.bind(this);
105
+ this.handlers['PoolSetProtocolFeeRatio'] =
106
+ this.handleSetProtocolFeeRatioEvent.bind(this);
107
+ this.poolMath = new maverick_pool_math_1.MaverickPoolMath(BigInt(lookback), BigInt(tickSpacing), BigInt(activeTick), BigInt(tokenA.decimals), BigInt(tokenB.decimals));
106
108
  }
107
109
  /**
108
110
  * The function is called every time any of the subscribed
@@ -134,77 +136,129 @@ class MaverickV2EventPool extends stateful_event_subscriber_1.StatefulEventSubsc
134
136
  * should be generated
135
137
  * @returns state of the event subscriber at blocknumber
136
138
  */
139
+ lensCall(binStart) {
140
+ return {
141
+ target: this.poolLensAddress,
142
+ callData: this.maverickV2LensIface.encodeFunctionData('getFullPoolState', [this.address, binStart, binStart + BINS_PER_LENS_CALL - 1n]),
143
+ decodeFunction: (data) => {
144
+ const [, returnData] = (0, decoders_1.extractSuccessAndValue)(data);
145
+ return returnData === '0x' ? null : (0, exports.decodeMaverickFullState)(returnData);
146
+ },
147
+ };
148
+ }
137
149
  async generateState(blockNumber) {
138
- try {
139
- const poolContractState = await this.poolContract.methods
140
- .getState()
141
- .call({}, blockNumber);
142
- const poolState = {
143
- activeTick: BigInt(poolContractState.activeTick),
144
- binCounter: BigInt(poolContractState.binCounter),
145
- reserveA: BigInt(poolContractState.reserveA),
146
- reserveB: BigInt(poolContractState.reserveB),
147
- lastTwaD8: BigInt(poolContractState.lastTwaD8),
148
- lastLogPriceD8: BigInt(poolContractState.lastLogPriceD8),
149
- lastTimestamp: BigInt(poolContractState.lastTimestamp),
150
- bins: {},
151
- ticks: {},
152
- };
153
- const calls = [];
154
- for (let i = 0n; i < poolState.binCounter / 5000n + 1n; i++) {
155
- calls.push({
156
- target: this.poolLensAddress,
157
- callData: this.maverickV2LensIface.encodeFunctionData('getFullPoolState', [this.address, i * 5000n, (i + 1n) * 5000n]),
158
- decodeFunction: (data) => data.toString(),
159
- });
160
- }
161
- const poolLensStates = await this.dexHelper.multiWrapper
162
- .aggregate(calls, blockNumber)
163
- .then(data => {
164
- return data.map(item => (0, exports.decodeMaverickFullState)(item));
165
- });
166
- poolLensStates.forEach(poolLensState => {
167
- poolLensState.binStateMapping.forEach((bin, i) => {
168
- if (i === 0)
169
- return;
170
- const tick = poolLensState.tickStateMapping[i];
171
- poolState.bins[i.toString()] = {
172
- mergeBinBalance: BigInt(bin.mergeBinBalance),
173
- mergeId: BigInt(bin.mergeId),
174
- totalSupply: BigInt(bin.totalSupply),
175
- kind: BigInt(bin.kind),
176
- tick: BigInt(bin.tick),
177
- tickBalance: BigInt(bin.tickBalance),
178
- };
179
- poolState.ticks[bin.tick.toString()] = {
180
- reserveA: BigInt(tick.reserveA),
181
- reserveB: BigInt(tick.reserveB),
182
- totalSupply: BigInt(tick.totalSupply),
183
- binIdsByTick: {},
184
- };
185
- tick.binIdsByTick.forEach((id, i) => {
186
- if (id != 0n) {
187
- poolState.ticks[bin.tick.toString()].binIdsByTick[i.toString()] =
188
- BigInt(id);
189
- }
190
- });
191
- });
192
- });
193
- return poolState;
194
- }
195
- catch {
150
+ // Pool params and the first page of bins in one round-trip; only pools
151
+ // with more than BINS_PER_LENS_CALL bins need a second one
152
+ const [stateResult, feeAInResult, feeBInResult, firstLensPage] = await this.dexHelper.multiWrapper.tryAggregate(false, [
153
+ {
154
+ target: this.address,
155
+ callData: this.maverickV2Iface.encodeFunctionData('getState'),
156
+ decodeFunction: (data) => {
157
+ const [, returnData] = (0, decoders_1.extractSuccessAndValue)(data);
158
+ return returnData === '0x'
159
+ ? null
160
+ : this.maverickV2Iface.decodeFunctionResult('getState', returnData)[0];
161
+ },
162
+ },
163
+ ...[true, false].map(tokenAIn => ({
164
+ target: this.address,
165
+ callData: this.maverickV2Iface.encodeFunctionData('fee', [
166
+ tokenAIn,
167
+ ]),
168
+ decodeFunction: (data) => {
169
+ const [, returnData] = (0, decoders_1.extractSuccessAndValue)(data);
170
+ return returnData === '0x'
171
+ ? null
172
+ : BigInt(this.maverickV2Iface
173
+ .decodeFunctionResult('fee', returnData)[0]
174
+ .toString());
175
+ },
176
+ })),
177
+ this.lensCall(0n),
178
+ ], blockNumber, undefined, false);
179
+ // The pool is not deployed yet at this block (call fails or returns no
180
+ // data): empty state with the creation parameters, so that logs from the
181
+ // creation block replay
182
+ if (!stateResult.success || stateResult.returnData == null) {
196
183
  return {
197
- activeTick: BigInt(0),
198
- binCounter: BigInt(0),
199
- reserveA: BigInt(0),
200
- reserveB: BigInt(0),
201
- lastTwaD8: BigInt(0),
202
- lastLogPriceD8: BigInt(0),
203
- lastTimestamp: BigInt(0),
184
+ activeTick: BigInt(this.activeTick),
185
+ binCounter: 0n,
186
+ reserveA: 0n,
187
+ reserveB: 0n,
188
+ lastTwaD8: 0n,
189
+ lastLogPriceD8: 0n,
190
+ lastTimestamp: 0n,
191
+ feeAIn: BigInt(this.feeAIn),
192
+ feeBIn: BigInt(this.feeBIn),
193
+ protocolFeeRatioD3: 0n,
204
194
  bins: {},
205
195
  ticks: {},
206
196
  };
207
197
  }
198
+ const poolContractState = stateResult.returnData;
199
+ const poolState = {
200
+ activeTick: BigInt(poolContractState.activeTick),
201
+ binCounter: BigInt(poolContractState.binCounter),
202
+ reserveA: BigInt(poolContractState.reserveA.toString()),
203
+ reserveB: BigInt(poolContractState.reserveB.toString()),
204
+ lastTwaD8: BigInt(poolContractState.lastTwaD8.toString()),
205
+ lastLogPriceD8: BigInt(poolContractState.lastLogPriceD8.toString()),
206
+ lastTimestamp: BigInt(poolContractState.lastTimestamp),
207
+ protocolFeeRatioD3: BigInt(poolContractState.protocolFeeRatioD3),
208
+ feeAIn: feeAInResult.returnData,
209
+ feeBIn: feeBInResult.returnData,
210
+ bins: {},
211
+ ticks: {},
212
+ };
213
+ const poolLensStates = [firstLensPage.returnData];
214
+ const calls = [];
215
+ for (let binStart = BINS_PER_LENS_CALL; binStart <= poolState.binCounter; binStart += BINS_PER_LENS_CALL) {
216
+ calls.push(this.lensCall(binStart));
217
+ }
218
+ if (calls.length) {
219
+ poolLensStates.push(...(await this.dexHelper.multiWrapper.aggregate(calls, blockNumber)));
220
+ }
221
+ // The lens returns arrays indexed relative to binStart, not by bin id
222
+ poolLensStates.forEach((poolLensState, page) => {
223
+ const binStart = BigInt(page) * BINS_PER_LENS_CALL;
224
+ poolLensState.binStateMapping.forEach((bin, i) => {
225
+ const binId = binStart + BigInt(i);
226
+ if (binId === 0n)
227
+ return;
228
+ const tick = poolLensState.tickStateMapping[i];
229
+ const tickKey = bin.tick.toString();
230
+ poolState.bins[binId.toString()] = {
231
+ mergeBinBalance: BigInt(bin.mergeBinBalance),
232
+ mergeId: BigInt(bin.mergeId),
233
+ totalSupply: BigInt(bin.totalSupply),
234
+ kind: BigInt(bin.kind),
235
+ tick: BigInt(bin.tick),
236
+ tickBalance: BigInt(bin.tickBalance),
237
+ };
238
+ poolState.ticks[tickKey] = {
239
+ reserveA: BigInt(tick.reserveA),
240
+ reserveB: BigInt(tick.reserveB),
241
+ totalSupply: BigInt(tick.totalSupply),
242
+ binIdsByTick: {},
243
+ };
244
+ tick.binIdsByTick.forEach((id, kind) => {
245
+ const tickBinId = BigInt(id.toString());
246
+ if (tickBinId !== 0n) {
247
+ poolState.ticks[tickKey].binIdsByTick[kind.toString()] = tickBinId;
248
+ }
249
+ });
250
+ });
251
+ });
252
+ return poolState;
253
+ }
254
+ handleSetVariableFeeEvent(event, state) {
255
+ state.feeAIn = BigInt(event.args.newFeeAIn.toString());
256
+ state.feeBIn = BigInt(event.args.newFeeBIn.toString());
257
+ return state;
258
+ }
259
+ handleSetProtocolFeeRatioEvent(event, state) {
260
+ state.protocolFeeRatioD3 = BigInt(event.args.protocolFeeRatioD3.toString());
261
+ return state;
208
262
  }
209
263
  handleRemoveLiquidityEvent(event, state, log, blockHeader) {
210
264
  const blockTimestamp = BigInt(blockHeader.timestamp);
@@ -231,9 +285,13 @@ class MaverickV2EventPool extends stateful_event_subscriber_1.StatefulEventSubsc
231
285
  swap(amount, from, to, exactOutput) {
232
286
  try {
233
287
  const s = this.state;
288
+ // Copy-on-write overlay: estimateSwap only reads ticks by key and
289
+ // replaces the ones it touches, so a prototype-chained object avoids
290
+ // copying the whole ticks map on every quote. The estimate path must
291
+ // never iterate or delete ticks for this to stay correct.
234
292
  const tempState = {
235
293
  ...s,
236
- ticks: { ...s.ticks },
294
+ ticks: Object.create(s.ticks),
237
295
  };
238
296
  const preActiveTick = tempState.activeTick;
239
297
  const [amountIn, amountOut] = this.poolMath.estimateSwap(tempState, amount, from.address.toLowerCase() === this.tokenA.address.toLowerCase(), exactOutput, from.address.toLowerCase() === this.tokenA.address.toLowerCase()
@@ -1 +1 @@
1
- {"version":3,"file":"maverick-v2-pool.js","sourceRoot":"","sources":["../../../src/dex/maverick-v2/maverick-v2-pool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"maverick-v2-pool.js","sourceRoot":"","sources":["../../../src/dex/maverick-v2/maverick-v2-pool.ts"],"names":[],"mappings":"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"}
@@ -89,9 +89,14 @@ class MaverickV2 extends simple_exchange_1.SimpleExchange {
89
89
  address: pool.tokenB.address,
90
90
  symbol: pool.tokenB.symbol,
91
91
  decimals: pool.tokenB.decimals,
92
- }, BigInt(pool.fee * 1e18), BigInt(pool.feeB * 1e18), BigInt(pool.tickSpacing), BigInt(0), BigInt(pool.lookback), BigInt(pool.lowerTick), pool.id, this.config.poolLensAddress);
93
- await eventPool.initialize(blockNumber);
94
- this.pools[eventPool.address] = eventPool;
92
+ }, BigInt(pool.fee * 1e18), BigInt(pool.feeB * 1e18), BigInt(pool.tickSpacing), BigInt(pool.lookback), BigInt(pool.lowerTick), pool.id, this.config.poolLensAddress);
93
+ try {
94
+ await eventPool.initialize(blockNumber);
95
+ this.pools[eventPool.address] = eventPool;
96
+ }
97
+ catch (e) {
98
+ this.logger.error(`${this.dexKey}: failed to initialize pool ${pool.id}, skipping`, e);
99
+ }
95
100
  }));
96
101
  }
97
102
  getAdapters(side) {