@paraswap/dex-lib 2.42.11 → 2.42.12

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 (206) hide show
  1. package/build/abi/kyberswap-elastic/IAntiSnipAttackPositionManager.json +1276 -0
  2. package/build/abi/kyberswap-elastic/IFactory.json +550 -0
  3. package/build/abi/kyberswap-elastic/IPool.json +1042 -0
  4. package/build/abi/kyberswap-elastic/IQuoterV2.json +226 -0
  5. package/build/abi/kyberswap-elastic/IRouter.json +239 -0
  6. package/build/abi/kyberswap-elastic/TicksFeesReader.json +142 -0
  7. package/build/abi/wombat/asset.json +769 -0
  8. package/build/abi/wombat/bmw.json +1247 -0
  9. package/build/abi/wombat/pool.json +1364 -0
  10. package/build/dex/baseswap-v3/baseswap-v3-factory.d.ts +26 -0
  11. package/build/dex/baseswap-v3/baseswap-v3-factory.js +44 -0
  12. package/build/dex/baseswap-v3/baseswap-v3-factory.js.map +1 -0
  13. package/build/dex/{algebra/algebra-pool.d.ts → baseswap-v3/baseswap-v3-pool.d.ts} +16 -16
  14. package/build/dex/{algebra/algebra-pool.js → baseswap-v3/baseswap-v3-pool.js} +137 -161
  15. package/build/dex/baseswap-v3/baseswap-v3-pool.js.map +1 -0
  16. package/build/dex/baseswap-v3/baseswap-v3.d.ts +71 -0
  17. package/build/dex/baseswap-v3/baseswap-v3.js +752 -0
  18. package/build/dex/baseswap-v3/baseswap-v3.js.map +1 -0
  19. package/build/dex/baseswap-v3/config.d.ts +9 -0
  20. package/build/dex/baseswap-v3/config.js +48 -0
  21. package/build/dex/baseswap-v3/config.js.map +1 -0
  22. package/build/dex/baseswap-v3/constants.d.ts +28 -0
  23. package/build/dex/baseswap-v3/constants.js +35 -0
  24. package/build/dex/baseswap-v3/constants.js.map +1 -0
  25. package/build/dex/baseswap-v3/contract-math/BitMath.d.ts +4 -0
  26. package/build/dex/baseswap-v3/contract-math/BitMath.js +93 -0
  27. package/build/dex/baseswap-v3/contract-math/BitMath.js.map +1 -0
  28. package/build/dex/baseswap-v3/contract-math/FixedPoint128.d.ts +3 -0
  29. package/build/dex/baseswap-v3/contract-math/FixedPoint128.js +8 -0
  30. package/build/dex/baseswap-v3/contract-math/FixedPoint128.js.map +1 -0
  31. package/build/dex/baseswap-v3/contract-math/FixedPoint96.d.ts +4 -0
  32. package/build/dex/baseswap-v3/contract-math/FixedPoint96.js +9 -0
  33. package/build/dex/baseswap-v3/contract-math/FixedPoint96.js.map +1 -0
  34. package/build/dex/baseswap-v3/contract-math/FullMath.d.ts +4 -0
  35. package/build/dex/baseswap-v3/contract-math/FullMath.js +19 -0
  36. package/build/dex/baseswap-v3/contract-math/FullMath.js.map +1 -0
  37. package/build/dex/baseswap-v3/contract-math/LiquidityMath.d.ts +3 -0
  38. package/build/dex/baseswap-v3/contract-math/LiquidityMath.js +22 -0
  39. package/build/dex/baseswap-v3/contract-math/LiquidityMath.js.map +1 -0
  40. package/build/dex/baseswap-v3/contract-math/Oracle.d.ts +10 -0
  41. package/build/dex/baseswap-v3/contract-math/Oracle.js +133 -0
  42. package/build/dex/baseswap-v3/contract-math/Oracle.js.map +1 -0
  43. package/build/dex/baseswap-v3/contract-math/SqrtPriceMath.d.ts +10 -0
  44. package/build/dex/baseswap-v3/contract-math/SqrtPriceMath.js +91 -0
  45. package/build/dex/baseswap-v3/contract-math/SqrtPriceMath.js.map +1 -0
  46. package/build/dex/baseswap-v3/contract-math/SwapMath.d.ts +8 -0
  47. package/build/dex/baseswap-v3/contract-math/SwapMath.js +70 -0
  48. package/build/dex/baseswap-v3/contract-math/SwapMath.js.map +1 -0
  49. package/build/dex/baseswap-v3/contract-math/Tick.d.ts +7 -0
  50. package/build/dex/baseswap-v3/contract-math/Tick.js +45 -0
  51. package/build/dex/baseswap-v3/contract-math/Tick.js.map +1 -0
  52. package/build/dex/baseswap-v3/contract-math/TickBitMap.d.ts +7 -0
  53. package/build/dex/baseswap-v3/contract-math/TickBitMap.js +84 -0
  54. package/build/dex/baseswap-v3/contract-math/TickBitMap.js.map +1 -0
  55. package/build/dex/baseswap-v3/contract-math/TickMath.d.ts +8 -0
  56. package/build/dex/baseswap-v3/contract-math/TickMath.js +162 -0
  57. package/build/dex/baseswap-v3/contract-math/TickMath.js.map +1 -0
  58. package/build/dex/baseswap-v3/contract-math/UnsafeMath.d.ts +3 -0
  59. package/build/dex/baseswap-v3/contract-math/UnsafeMath.js +10 -0
  60. package/build/dex/baseswap-v3/contract-math/UnsafeMath.js.map +1 -0
  61. package/build/dex/baseswap-v3/contract-math/uniswap-v3-math.d.ts +37 -0
  62. package/build/dex/baseswap-v3/contract-math/uniswap-v3-math.js +393 -0
  63. package/build/dex/baseswap-v3/contract-math/uniswap-v3-math.js.map +1 -0
  64. package/build/dex/baseswap-v3/contract-math/utils.d.ts +7 -0
  65. package/build/dex/baseswap-v3/contract-math/utils.js +42 -0
  66. package/build/dex/baseswap-v3/contract-math/utils.js.map +1 -0
  67. package/build/dex/baseswap-v3/types.d.ts +164 -0
  68. package/build/dex/baseswap-v3/types.js +9 -0
  69. package/build/dex/baseswap-v3/types.js.map +1 -0
  70. package/build/dex/baseswap-v3/utils.d.ts +6 -0
  71. package/build/dex/baseswap-v3/utils.js +65 -0
  72. package/build/dex/baseswap-v3/utils.js.map +1 -0
  73. package/build/dex/dexalot/dexalot.d.ts +3 -2
  74. package/build/dex/dexalot/dexalot.js +33 -19
  75. package/build/dex/dexalot/dexalot.js.map +1 -1
  76. package/build/dex/hello/config.d.ts +4 -0
  77. package/build/dex/hello/config.js +15 -0
  78. package/build/dex/hello/config.js.map +1 -0
  79. package/build/dex/hello/hello-pool.d.ts +39 -0
  80. package/build/dex/hello/hello-pool.js +64 -0
  81. package/build/dex/hello/hello-pool.js.map +1 -0
  82. package/build/dex/hello/hello.d.ts +37 -0
  83. package/build/dex/hello/hello.js +126 -0
  84. package/build/dex/hello/hello.js.map +1 -0
  85. package/build/dex/hello/types.d.ts +6 -0
  86. package/build/dex/hello/types.js +3 -0
  87. package/build/dex/hello/types.js.map +1 -0
  88. package/build/dex/kyberswap-elastic/config.d.ts +4 -0
  89. package/build/dex/kyberswap-elastic/config.js +80 -0
  90. package/build/dex/kyberswap-elastic/config.js.map +1 -0
  91. package/build/dex/kyberswap-elastic/constants.d.ts +17 -0
  92. package/build/dex/kyberswap-elastic/constants.js +42 -0
  93. package/build/dex/kyberswap-elastic/constants.js.map +1 -0
  94. package/build/dex/kyberswap-elastic/contract-math/FixedPoint96.d.ts +4 -0
  95. package/build/dex/kyberswap-elastic/contract-math/FixedPoint96.js +9 -0
  96. package/build/dex/kyberswap-elastic/contract-math/FixedPoint96.js.map +1 -0
  97. package/build/dex/kyberswap-elastic/contract-math/FullMath.d.ts +5 -0
  98. package/build/dex/kyberswap-elastic/contract-math/FullMath.js +22 -0
  99. package/build/dex/kyberswap-elastic/contract-math/FullMath.js.map +1 -0
  100. package/build/dex/kyberswap-elastic/contract-math/LiqDeltaMath.d.ts +3 -0
  101. package/build/dex/kyberswap-elastic/contract-math/LiqDeltaMath.js +12 -0
  102. package/build/dex/kyberswap-elastic/contract-math/LiqDeltaMath.js.map +1 -0
  103. package/build/dex/kyberswap-elastic/contract-math/LiquidityMath.d.ts +3 -0
  104. package/build/dex/kyberswap-elastic/contract-math/LiquidityMath.js +22 -0
  105. package/build/dex/kyberswap-elastic/contract-math/LiquidityMath.js.map +1 -0
  106. package/build/dex/kyberswap-elastic/contract-math/QtyDeltaMath.d.ts +5 -0
  107. package/build/dex/kyberswap-elastic/contract-math/QtyDeltaMath.js +25 -0
  108. package/build/dex/kyberswap-elastic/contract-math/QtyDeltaMath.js.map +1 -0
  109. package/build/dex/kyberswap-elastic/contract-math/QuadMath.d.ts +4 -0
  110. package/build/dex/kyberswap-elastic/contract-math/QuadMath.js +27 -0
  111. package/build/dex/kyberswap-elastic/contract-math/QuadMath.js.map +1 -0
  112. package/build/dex/kyberswap-elastic/contract-math/ReinvestmentMath.d.ts +3 -0
  113. package/build/dex/kyberswap-elastic/contract-math/ReinvestmentMath.js +14 -0
  114. package/build/dex/kyberswap-elastic/contract-math/ReinvestmentMath.js.map +1 -0
  115. package/build/dex/kyberswap-elastic/contract-math/SafeCast.d.ts +8 -0
  116. package/build/dex/kyberswap-elastic/contract-math/SafeCast.js +30 -0
  117. package/build/dex/kyberswap-elastic/contract-math/SafeCast.js.map +1 -0
  118. package/build/dex/kyberswap-elastic/contract-math/SqrtPriceMath.d.ts +10 -0
  119. package/build/dex/kyberswap-elastic/contract-math/SqrtPriceMath.js +91 -0
  120. package/build/dex/kyberswap-elastic/contract-math/SqrtPriceMath.js.map +1 -0
  121. package/build/dex/kyberswap-elastic/contract-math/SwapMath.d.ts +13 -0
  122. package/build/dex/kyberswap-elastic/contract-math/SwapMath.js +188 -0
  123. package/build/dex/kyberswap-elastic/contract-math/SwapMath.js.map +1 -0
  124. package/build/dex/kyberswap-elastic/contract-math/TickLinkedList.d.ts +6 -0
  125. package/build/dex/kyberswap-elastic/contract-math/TickLinkedList.js +41 -0
  126. package/build/dex/kyberswap-elastic/contract-math/TickLinkedList.js.map +1 -0
  127. package/build/dex/kyberswap-elastic/contract-math/TickMath.d.ts +9 -0
  128. package/build/dex/kyberswap-elastic/contract-math/TickMath.js +165 -0
  129. package/build/dex/kyberswap-elastic/contract-math/TickMath.js.map +1 -0
  130. package/build/dex/kyberswap-elastic/contract-math/UnsafeMath.d.ts +3 -0
  131. package/build/dex/kyberswap-elastic/contract-math/UnsafeMath.js +10 -0
  132. package/build/dex/kyberswap-elastic/contract-math/UnsafeMath.js.map +1 -0
  133. package/build/dex/kyberswap-elastic/contract-math/kyberswap-elastic-math.d.ts +28 -0
  134. package/build/dex/kyberswap-elastic/contract-math/kyberswap-elastic-math.js +502 -0
  135. package/build/dex/kyberswap-elastic/contract-math/kyberswap-elastic-math.js.map +1 -0
  136. package/build/dex/kyberswap-elastic/contract-math/utils.d.ts +3 -0
  137. package/build/dex/kyberswap-elastic/contract-math/utils.js +16 -0
  138. package/build/dex/kyberswap-elastic/contract-math/utils.js.map +1 -0
  139. package/build/dex/kyberswap-elastic/errors.d.ts +2 -0
  140. package/build/dex/kyberswap-elastic/errors.js +6 -0
  141. package/build/dex/kyberswap-elastic/errors.js.map +1 -0
  142. package/build/dex/kyberswap-elastic/kyberswap-elastic-pool.d.ts +80 -0
  143. package/build/dex/kyberswap-elastic/kyberswap-elastic-pool.js +458 -0
  144. package/build/dex/kyberswap-elastic/kyberswap-elastic-pool.js.map +1 -0
  145. package/build/dex/kyberswap-elastic/kyberswap-elastic.d.ts +53 -0
  146. package/build/dex/kyberswap-elastic/kyberswap-elastic.js +610 -0
  147. package/build/dex/kyberswap-elastic/kyberswap-elastic.js.map +1 -0
  148. package/build/dex/kyberswap-elastic/types.d.ts +134 -0
  149. package/build/dex/kyberswap-elastic/types.js +9 -0
  150. package/build/dex/kyberswap-elastic/types.js.map +1 -0
  151. package/build/dex/kyberswap-elastic/utils/decoders.d.ts +9 -0
  152. package/build/dex/kyberswap-elastic/utils/decoders.js +78 -0
  153. package/build/dex/kyberswap-elastic/utils/decoders.js.map +1 -0
  154. package/build/dex/morphex/config.d.ts +11 -0
  155. package/build/dex/morphex/config.js +43 -0
  156. package/build/dex/morphex/config.js.map +1 -0
  157. package/build/dex/morphex/morphex.d.ts +25 -0
  158. package/build/dex/morphex/morphex.js +19 -0
  159. package/build/dex/morphex/morphex.js.map +1 -0
  160. package/build/dex/my-test-dex/config.d.ts +4 -0
  161. package/build/dex/my-test-dex/config.js +15 -0
  162. package/build/dex/my-test-dex/config.js.map +1 -0
  163. package/build/dex/my-test-dex/my-test-dex-pool.d.ts +39 -0
  164. package/build/dex/my-test-dex/my-test-dex-pool.js +64 -0
  165. package/build/dex/my-test-dex/my-test-dex-pool.js.map +1 -0
  166. package/build/dex/my-test-dex/my-test-dex.d.ts +37 -0
  167. package/build/dex/my-test-dex/my-test-dex.js +126 -0
  168. package/build/dex/my-test-dex/my-test-dex.js.map +1 -0
  169. package/build/dex/my-test-dex/types.d.ts +6 -0
  170. package/build/dex/my-test-dex/types.js +3 -0
  171. package/build/dex/my-test-dex/types.js.map +1 -0
  172. package/build/dex/solidly/forks-override/fvm.d.ts +20 -0
  173. package/build/dex/solidly/forks-override/fvm.js +42 -0
  174. package/build/dex/solidly/forks-override/fvm.js.map +1 -0
  175. package/build/dex/wombat/config.d.ts +5 -0
  176. package/build/dex/wombat/config.js +50 -0
  177. package/build/dex/wombat/config.js.map +1 -0
  178. package/build/dex/wombat/types.d.ts +33 -0
  179. package/build/dex/wombat/types.js +3 -0
  180. package/build/dex/wombat/types.js.map +1 -0
  181. package/build/dex/wombat/utils.d.ts +9 -0
  182. package/build/dex/wombat/utils.js +66 -0
  183. package/build/dex/wombat/utils.js.map +1 -0
  184. package/build/dex/wombat/wombat-bmw.d.ts +40 -0
  185. package/build/dex/wombat/wombat-bmw.js +145 -0
  186. package/build/dex/wombat/wombat-bmw.js.map +1 -0
  187. package/build/dex/wombat/wombat-pool.d.ts +22 -0
  188. package/build/dex/wombat/wombat-pool.js +161 -0
  189. package/build/dex/wombat/wombat-pool.js.map +1 -0
  190. package/build/dex/wombat/wombat-quoter.d.ts +16 -0
  191. package/build/dex/wombat/wombat-quoter.js +176 -0
  192. package/build/dex/wombat/wombat-quoter.js.map +1 -0
  193. package/build/dex/wombat/wombat.d.ts +55 -0
  194. package/build/dex/wombat/wombat.js +292 -0
  195. package/build/dex/wombat/wombat.js.map +1 -0
  196. package/package.json +1 -1
  197. package/src/dex/dexalot/dexalot.ts +48 -22
  198. package/build/abi/algebra/AlgebraPool.abi.json +0 -727
  199. package/build/abi/uniswap-v3/UniswapV3Quoter.abi.json +0 -193
  200. package/build/dex/algebra/algebra-pool.js.map +0 -1
  201. package/build/dex/quickswap/camelot-v3.d.ts +0 -6
  202. package/build/dex/quickswap/camelot-v3.js +0 -19
  203. package/build/dex/quickswap/camelot-v3.js.map +0 -1
  204. package/build/dex/quickswap/zyberswap-v3.d.ts +0 -6
  205. package/build/dex/quickswap/zyberswap-v3.js +0 -19
  206. package/build/dex/quickswap/zyberswap-v3.js.map +0 -1
@@ -0,0 +1,65 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.decodeStateMultiCallResultWithRelativeBitmaps = exports.getUniswapV3DexKey = void 0;
4
+ const ethers_1 = require("ethers");
5
+ const ts_essentials_1 = require("ts-essentials");
6
+ const decoders_1 = require("../../lib/decoders");
7
+ function getUniswapV3DexKey(UniswapV3Config) {
8
+ const UniswapV3Keys = Object.keys(UniswapV3Config);
9
+ if (UniswapV3Keys.length !== 1) {
10
+ throw new Error(`UniswapV3 key in UniswapV3Config is not unique. Update relevant places (optimizer) or fix config issue. Received: ${JSON.stringify(UniswapV3Config, (_0, value) => (typeof value === 'bigint' ? value.toString() : value))}`);
11
+ }
12
+ return UniswapV3Keys[0].toLowerCase();
13
+ }
14
+ exports.getUniswapV3DexKey = getUniswapV3DexKey;
15
+ function decodeStateMultiCallResultWithRelativeBitmaps(result) {
16
+ const [isSuccess, toDecode] = (0, decoders_1.extractSuccessAndValue)(result);
17
+ (0, ts_essentials_1.assert)(isSuccess && toDecode !== '0x', `decodeStateMultiCallResultWithRelativeBitmaps failed to get decodable result: ${result}`);
18
+ const decoded = ethers_1.ethers.utils.defaultAbiCoder.decode([
19
+ // I don't want to pass here any interface, so I just use it in ethers format
20
+ `
21
+ tuple(
22
+ address pool,
23
+ uint256 blockTimestamp,
24
+ tuple(
25
+ uint160 sqrtPriceX96,
26
+ int24 tick,
27
+ uint16 observationIndex,
28
+ uint16 observationCardinality,
29
+ uint16 observationCardinalityNext,
30
+ uint8 feeProtocol,
31
+ bool unlocked,
32
+ ) slot0,
33
+ uint128 liquidity,
34
+ int24 tickSpacing,
35
+ uint128 maxLiquidityPerTick,
36
+ tuple(
37
+ uint32 blockTimestamp,
38
+ int56 tickCumulative,
39
+ uint160 secondsPerLiquidityCumulativeX128,
40
+ bool initialized,
41
+ ) observation,
42
+ tuple(
43
+ int16 index,
44
+ uint256 value,
45
+ )[] tickBitmap,
46
+ tuple(
47
+ int24 index,
48
+ tuple(
49
+ uint128 liquidityGross,
50
+ int128 liquidityNet,
51
+ int56 tickCumulativeOutside,
52
+ uint160 secondsPerLiquidityOutsideX128,
53
+ uint32 secondsOutside,
54
+ bool initialized,
55
+ ) value,
56
+ )[] ticks
57
+ )
58
+ `,
59
+ ], toDecode)[0];
60
+ // This conversion is not precise, because when we decode, we have more values
61
+ // But I typed only the ones that are used later
62
+ return decoded;
63
+ }
64
+ exports.decodeStateMultiCallResultWithRelativeBitmaps = decodeStateMultiCallResultWithRelativeBitmaps;
65
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/dex/baseswap-v3/utils.ts"],"names":[],"mappings":";;;AAAA,mCAA2C;AAC3C,iDAAuC;AACvC,iDAA4D;AAQ5D,SAAgB,kBAAkB,CAAC,eAAwC;IACzE,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IACnD,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE;QAC9B,MAAM,IAAI,KAAK,CACb,qHAAqH,IAAI,CAAC,SAAS,CACjI,eAAe,EACf,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CACtE,EAAE,CACJ,CAAC;KACH;IAED,OAAO,aAAa,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;AACxC,CAAC;AAZD,gDAYC;AAED,SAAgB,6CAA6C,CAC3D,MAA0C;IAE1C,MAAM,CAAC,SAAS,EAAE,QAAQ,CAAC,GAAG,IAAA,iCAAsB,EAAC,MAAM,CAAC,CAAC;IAE7D,IAAA,sBAAM,EACJ,SAAS,IAAI,QAAQ,KAAK,IAAI,EAC9B,iFAAiF,MAAM,EAAE,CAC1F,CAAC;IAEF,MAAM,OAAO,GAAG,eAAM,CAAC,KAAK,CAAC,eAAe,CAAC,MAAM,CACjD;QACE,6EAA6E;QAC7E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAsCD;KACA,EACD,QAAQ,CACT,CAAC,CAAC,CAAC,CAAC;IACL,8EAA8E;IAC9E,gDAAgD;IAChD,OAAO,OAAyD,CAAC;AACnE,CAAC;AA1DD,sGA0DC"}
@@ -55,8 +55,9 @@ export declare class Dexalot extends SimpleExchange implements IDex<DexalotData>
55
55
  getCalldataGasCost(poolPrices: PoolPrices<DexalotData>): number | number[];
56
56
  getTokenFromAddress(address: Address): Token;
57
57
  getAdapterParam(srcToken: string, destToken: string, srcAmount: string, destAmount: string, data: DexalotData, side: SwapSide): AdapterExchangeParam;
58
- restrict(ttl?: number): Promise<boolean>;
59
- isRestricted(): Promise<boolean>;
58
+ getRestrictedPoolKey(poolIdentifier: string): string;
59
+ restrictPool(poolIdentifier: string, ttl?: number): Promise<boolean>;
60
+ isRestrictedPool(poolIdentifier: string): Promise<boolean>;
60
61
  setBlacklist(txOrigin: Address, ttl?: number): Promise<boolean>;
61
62
  isBlacklisted(txOrigin: Address): Promise<boolean>;
62
63
  getRateLimitedKey(address: Address): string;
@@ -256,8 +256,9 @@ class Dexalot extends simple_exchange_1.SimpleExchange {
256
256
  .parseUnits(orderbook[left][1], quoteToken.decimals)
257
257
  .toString());
258
258
  if (isInputQuote) {
259
- lQty = (lQty * BigInt(10 ** (baseToken.decimals * 2))) /
260
- (lPrice * BigInt(10 ** quoteToken.decimals));
259
+ lQty =
260
+ (lQty * BigInt(10 ** (baseToken.decimals * 2))) /
261
+ (lPrice * BigInt(10 ** quoteToken.decimals));
261
262
  rQty =
262
263
  (rQty * BigInt(10 ** (baseToken.decimals * 2))) /
263
264
  (rPrice * BigInt(10 ** quoteToken.decimals));
@@ -280,19 +281,17 @@ class Dexalot extends simple_exchange_1.SimpleExchange {
280
281
  }
281
282
  async getPricesVolume(srcToken, destToken, amounts, side, blockNumber, limitPools, transferFees) {
282
283
  try {
283
- if (await this.isRestricted()) {
284
- return null;
285
- }
286
284
  const normalizedSrcToken = this.normalizeToken(srcToken);
287
285
  const normalizedDestToken = this.normalizeToken(destToken);
288
286
  this.tokensMap = (await this.getCachedTokens()) || {};
289
287
  if (normalizedSrcToken.address === normalizedDestToken.address) {
290
288
  return null;
291
289
  }
292
- const pools = limitPools
290
+ let pools = limitPools
293
291
  ? limitPools.filter(p => p ===
294
292
  this.getIdentifier(normalizedSrcToken.address, normalizedDestToken.address))
295
293
  : await this.getPoolIdentifiers(srcToken, destToken, side, blockNumber);
294
+ pools = await Promise.all(pools.map(async (p) => !(await this.isRestrictedPool(p)))).then(res => pools.filter((_v, i) => res[i]));
296
295
  if (pools.length === 0) {
297
296
  return null;
298
297
  }
@@ -327,7 +326,8 @@ class Dexalot extends simple_exchange_1.SimpleExchange {
327
326
  if (orderbook.length === 0) {
328
327
  throw new Error(`Empty orderbook for ${pairKey}`);
329
328
  }
330
- const isInputQuote = (clobSide === types_1.ClobSide.ASK && side === constants_1.SwapSide.SELL) || (clobSide === types_1.ClobSide.BID && side === constants_1.SwapSide.BUY);
329
+ const isInputQuote = (clobSide === types_1.ClobSide.ASK && side === constants_1.SwapSide.SELL) ||
330
+ (clobSide === types_1.ClobSide.BID && side === constants_1.SwapSide.BUY);
331
331
  const prices = this.calculateOrderPrice(amounts, orderbook, baseToken, quoteToken, isInputQuote);
332
332
  const outDecimals = clobSide === types_1.ClobSide.BID ? baseToken.decimals : quoteToken.decimals;
333
333
  const poolIdentifier = this.getIdentifier(pairData.base, pairData.quote);
@@ -367,13 +367,23 @@ class Dexalot extends simple_exchange_1.SimpleExchange {
367
367
  try {
368
368
  const makerToken = normalizedDestToken;
369
369
  const takerToken = normalizedSrcToken;
370
+ const isSell = side === constants_1.SwapSide.SELL;
371
+ const isBuy = side === constants_1.SwapSide.BUY;
372
+ const slippageBps = isSell
373
+ ? (0, bignumber_js_1.default)(1)
374
+ .minus(options.slippageFactor)
375
+ .multipliedBy(10000)
376
+ .toFixed(0)
377
+ : options.slippageFactor.minus(1).multipliedBy(10000).toFixed(0);
370
378
  const rfqParams = {
371
379
  makerAsset: ethers_1.ethers.utils.getAddress(makerToken.address),
372
380
  takerAsset: ethers_1.ethers.utils.getAddress(takerToken.address),
373
- makerAmount: side === constants_1.SwapSide.BUY ? optimalSwapExchange.destAmount : undefined,
374
- takerAmount: side === constants_1.SwapSide.SELL ? optimalSwapExchange.srcAmount : undefined,
381
+ makerAmount: isBuy ? optimalSwapExchange.destAmount : undefined,
382
+ takerAmount: isSell ? optimalSwapExchange.srcAmount : undefined,
375
383
  userAddress: options.txOrigin,
376
384
  chainid: this.network,
385
+ partner: options.partner,
386
+ slippage: slippageBps,
377
387
  };
378
388
  const rfq = await this.dexHelper.httpRequest.post(`${constants_2.DEXALOT_API_URL}/api/rfq/firm`, rfqParams, constants_2.DEXALOT_FIRM_QUOTE_TIMEOUT_MS, { 'x-apikey': this.dexalotAuthToken });
379
389
  if (!rfq) {
@@ -386,7 +396,7 @@ class Dexalot extends simple_exchange_1.SimpleExchange {
386
396
  const { order } = rfq;
387
397
  (0, ts_essentials_1.assert)(order.makerAsset.toLowerCase() === makerToken.address, `QuoteData makerAsset=${order.makerAsset} is different from Paraswap makerAsset=${makerToken.address}`);
388
398
  (0, ts_essentials_1.assert)(order.takerAsset.toLowerCase() === takerToken.address, `QuoteData takerAsset=${order.takerAsset} is different from Paraswap takerAsset=${takerToken.address}`);
389
- if (side === constants_1.SwapSide.SELL) {
399
+ if (isSell) {
390
400
  (0, ts_essentials_1.assert)(order.takerAmount === optimalSwapExchange.srcAmount, `QuoteData takerAmount=${order.takerAmount} is different from Paraswap srcAmount=${optimalSwapExchange.srcAmount}`);
391
401
  }
392
402
  else {
@@ -397,7 +407,7 @@ class Dexalot extends simple_exchange_1.SimpleExchange {
397
407
  const slippageFactor = options.slippageFactor;
398
408
  let isFailOnSlippage = false;
399
409
  let slippageErrorMessage = '';
400
- if (side === constants_1.SwapSide.SELL) {
410
+ if (isSell) {
401
411
  if (BigInt(order.makerAmount) <
402
412
  BigInt(new bignumber_js_1.default(optimalSwapExchange.destAmount.toString())
403
413
  .times(slippageFactor)
@@ -421,14 +431,14 @@ class Dexalot extends simple_exchange_1.SimpleExchange {
421
431
  }
422
432
  let isTooStrictSlippage = false;
423
433
  if (isFailOnSlippage &&
424
- side === constants_1.SwapSide.SELL &&
434
+ isSell &&
425
435
  new bignumber_js_1.default(1)
426
436
  .minus(slippageFactor)
427
437
  .lt(constants_2.DEXALOT_MIN_SLIPPAGE_FACTOR_THRESHOLD_FOR_RESTRICTION)) {
428
438
  isTooStrictSlippage = true;
429
439
  }
430
440
  else if (isFailOnSlippage &&
431
- side === constants_1.SwapSide.BUY &&
441
+ isBuy &&
432
442
  slippageFactor
433
443
  .minus(1)
434
444
  .lt(constants_2.DEXALOT_MIN_SLIPPAGE_FACTOR_THRESHOLD_FOR_RESTRICTION)) {
@@ -467,8 +477,9 @@ class Dexalot extends simple_exchange_1.SimpleExchange {
467
477
  this.logger.warn(`${this.dexKey}-${this.network}: failed to build transaction on side ${side} with too strict slippage. Skipping restriction`);
468
478
  }
469
479
  else {
470
- this.logger.warn(`${this.dexKey}-${this.network}: protocol is restricted`);
471
- await this.restrict();
480
+ const poolIdentifiers = await this.getPoolIdentifiers(srcToken, destToken, side, 0);
481
+ this.logger.warn(`${this.dexKey}-${this.network}: protocol is restricted for pools ${poolIdentifiers} due to swap: ${swapIdentifier}`);
482
+ await Promise.all(poolIdentifiers.map(async (p) => await this.restrictPool(p)));
472
483
  }
473
484
  }
474
485
  throw e;
@@ -529,12 +540,15 @@ class Dexalot extends simple_exchange_1.SimpleExchange {
529
540
  networkFee: '0',
530
541
  };
531
542
  }
532
- async restrict(ttl = constants_2.DEXALOT_RESTRICT_TTL_S) {
533
- await this.dexHelper.cache.setex(this.dexKey, this.network, constants_2.DEXALOT_RESTRICTED_CACHE_KEY, ttl, 'true');
543
+ getRestrictedPoolKey(poolIdentifier) {
544
+ return `${constants_2.DEXALOT_RESTRICTED_CACHE_KEY}-${poolIdentifier}`;
545
+ }
546
+ async restrictPool(poolIdentifier, ttl = constants_2.DEXALOT_RESTRICT_TTL_S) {
547
+ await this.dexHelper.cache.setex(this.dexKey, this.network, this.getRestrictedPoolKey(poolIdentifier), ttl, 'true');
534
548
  return true;
535
549
  }
536
- async isRestricted() {
537
- const result = await this.dexHelper.cache.get(this.dexKey, this.network, constants_2.DEXALOT_RESTRICTED_CACHE_KEY);
550
+ async isRestrictedPool(poolIdentifier) {
551
+ const result = await this.dexHelper.cache.get(this.dexKey, this.network, this.getRestrictedPoolKey(poolIdentifier));
538
552
  return result === 'true';
539
553
  }
540
554
  async setBlacklist(txOrigin, ttl = constants_2.DEXALOT_BLACKLIST_CACHES_TTL_S) {
@@ -1 +1 @@
1
- {"version":3,"file":"dexalot.js","sourceRoot":"","sources":["../../../src/dex/dexalot/dexalot.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dexalot.js","sourceRoot":"","sources":["../../../src/dex/dexalot/dexalot.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAcA,+CAKyB;AACzB,2EAA6D;AAC7D,uCAAkE;AAGlE,mCAYiB;AACjB,gDAG8B;AAC9B,wDAAoD;AACpD,qCAAmD;AACnD,iDAA6C;AAC7C,sGAAqE;AACrE,4CAA6C;AAC7C,iDAAuC;AACvC,2CAgBqB;AACrB,6DAAwD;AACxD,mCAAgC;AAChC,gEAAqC;AAGrC,MAAa,OAAQ,SAAQ,gCAAc;IAqBzC,YACW,OAAgB,EAChB,MAAc,EACd,SAAqB,EACpB,WAAW,iBAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,EACnC,oBAA4B,sBAAa,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC;SACnE,iBAAiB,EACV,eAAe,IAAI,iBAAS,CAAC,gCAAa,CAAC;QAErD,KAAK,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QARhB,YAAO,GAAP,OAAO,CAAS;QAChB,WAAM,GAAN,MAAM,CAAQ;QACd,cAAS,GAAT,SAAS,CAAY;QACpB,aAAQ,GAAR,QAAQ,CAA0B;QACnC,sBAAiB,GAAjB,iBAAiB,CACN;QACV,iBAAY,GAAZ,YAAY,CAA+B;QA3B9C,sBAAiB,GAAG,IAAI,CAAC;QACzB,iCAA4B,GAAG,KAAK,CAAC;QACrC,mBAAc,GAAG,KAAK,CAAC;QACvB,6BAAwB,GAAG,KAAK,CAAC;QAUlC,cAAS,GAAiB,EAAE,CAAC;QAiBnC,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAE1C,MAAM,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC;QACzD,IAAA,sBAAM,EACJ,SAAS,KAAK,SAAS,EACvB,uDAAuD,CACxD,CAAC;QACF,IAAI,CAAC,gBAAgB,GAAG,SAAS,CAAC;QAElC,IAAI,CAAC,cAAc,GAAG,QAAQ,CAAC;QAC/B,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC;QAC7B,IAAI,CAAC,kBAAkB,GAAG,aAAa,CAAC;QACxC,IAAI,CAAC,cAAc,GAAG,QAAQ,CAAC;QAC/B,IAAI,CAAC,iBAAiB,GAAG,WAAW,CAAC;QAErC,IAAI,CAAC,WAAW,GAAG,IAAI,0BAAW,CAChC,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,MAAM,EACX;YACE,UAAU,EAAE;gBACV,eAAe,EAAE,iDAAqC;gBACtD,gBAAgB,EAAE,kDAAsC;gBACxD,mBAAmB,EAAE,qDAAyC;gBAC9D,cAAc,EAAE,IAAI,CAAC,eAAe,CAAC,eAAe,EAAE,KAAK,CAAC;gBAC5D,eAAe,EAAE,IAAI,CAAC,eAAe,CAAC,gBAAgB,EAAE,KAAK,CAAC;gBAC9D,kBAAkB,EAAE,IAAI,CAAC,eAAe,CAAC,mBAAmB,EAAE,KAAK,CAAC;gBACpE,aAAa,EAAE,IAAI,CAAC,aAAa;gBACjC,iBAAiB,EAAE,sCAA0B;gBAC7C,cAAc,EAAE,IAAI,CAAC,cAAc;gBACnC,kBAAkB,EAAE,uCAA2B;gBAC/C,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;gBAC3C,cAAc,EAAE,IAAI,CAAC,cAAc;gBACnC,kBAAkB,EAAE,uCAA2B;gBAC/C,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;gBACzC,qBAAqB,EAAE,0CAA8B;aACtD;SACF,CACF,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,WAAmB;QACzC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,EAAE;YAClC,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;SAC1B;QAED,OAAO;IACT,CAAC;IAED,WAAW,CAAC,IAAc;QACxB,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC1D,CAAC;IAED,aAAa,CAAC,SAAgB,EAAE,UAAiB;QAC/C,OAAO,GAAG,SAAS,CAAC,MAAM,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC,WAAW,EAAE,CAAC;IAClE,CAAC;IAED,KAAK,CAAC,WAAW,CACf,QAAe,EACf,SAAgB;QAEhB,MAAM,kBAAkB,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;QACzD,MAAM,mBAAmB,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;QAC3D,IAAI,kBAAkB,CAAC,OAAO,KAAK,mBAAmB,CAAC,OAAO,EAAE;YAC9D,OAAO,IAAI,CAAC;SACb;QAED,MAAM,YAAY,GAAG,CAAC,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC,IAAI,EAAE,CAAC;QAC1D,IACE,CAAC,CAAC,kBAAkB,CAAC,OAAO,IAAI,YAAY,CAAC;YAC7C,CAAC,CAAC,mBAAmB,CAAC,OAAO,IAAI,YAAY,CAAC,EAC9C;YACA,OAAO,IAAI,CAAC;SACb;QACD,kBAAkB,CAAC,MAAM,GAAG,YAAY,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;QAC5E,mBAAmB,CAAC,MAAM;YACxB,YAAY,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;QAEnD,MAAM,WAAW,GAAG,CAAC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC,IAAI,EAAE,CAAC;QAExD,MAAM,cAAc,GAAG;YACrB;gBACE,UAAU,EAAE,IAAI,CAAC,aAAa,CAAC,kBAAkB,EAAE,mBAAmB,CAAC;gBACvE,SAAS,EAAE,IAAI;aAChB;YACD;gBACE,UAAU,EAAE,IAAI,CAAC,aAAa,CAAC,mBAAmB,EAAE,kBAAkB,CAAC;gBACvE,SAAS,EAAE,KAAK;aACjB;SACF,CAAC;QAEF,KAAK,MAAM,IAAI,IAAI,cAAc,EAAE;YACjC,IAAI,IAAI,CAAC,UAAU,IAAI,WAAW,EAAE;gBAClC,MAAM,QAAQ,GAAG,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;gBAC9C,QAAQ,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;gBACpC,OAAO,QAAQ,CAAC;aACjB;SACF;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,aAAa,CAAC,UAAmB,EAAE,WAAoB;QACrD,MAAM,eAAe,GACnB,UAAU,GAAG,WAAW;YACtB,CAAC,CAAC,CAAC,UAAU,EAAE,WAAW,CAAC;YAC3B,CAAC,CAAC,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;QAEhC,OAAO,GACL,IAAI,CAAC,MACP,IAAI,eAAe,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,IAAI,eAAe,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC;IAC7E,CAAC;IAED,KAAK,CAAC,kBAAkB,CACtB,QAAe,EACf,SAAgB,EAChB,IAAc,EACd,WAAmB;QAEnB,IAAI,CAAC,QAAQ,IAAI,CAAC,SAAS,EAAE;YAC3B,OAAO,EAAE,CAAC;SACX;QACD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;QAC7D,IAAI,CAAC,QAAQ,EAAE;YACb,OAAO,EAAE,CAAC;SACX;QAED,MAAM,UAAU,GAAG,CAAC,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC,IAAI,EAAE,CAAC;QAE5D,OAAO;YACL,IAAI,CAAC,aAAa,CAChB,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,EACvC,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CACzC;SACF,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,cAAc;QAClB,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAChD,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,aAAa,CACnB,CAAC;QAEF,IAAI,WAAW,EAAE;YACf,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,CAAgB,CAAC;SAC/C;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,eAAe;QACnB,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CACjD,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,cAAc,CACpB,CAAC;QAEF,IAAI,YAAY,EAAE;YAChB,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAiB,CAAC;SACjD;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,mBAAmB;QACvB,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CACrD,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,kBAAkB,CACxB,CAAC;QAEF,IAAI,gBAAgB,EAAE;YACpB,OAAO,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAqB,CAAC;SACzD;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,eAAe;QACnB,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CACjD,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,cAAc,CACpB,CAAC;QAEF,IAAI,YAAY,EAAE;YAChB,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAiB,CAAC;SACjD;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED,gBAAgB,CAAC,OAAe;QAC9B,OAAO,OAAO,CAAC,WAAW,EAAE,KAAK,yBAAa;YAC5C,CAAC,CAAC,wBAAY;YACd,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;IAC5B,CAAC;IAED,kBAAkB,CAAC,OAAe;QAChC,OAAO,OAAO,CAAC,WAAW,EAAE,KAAK,wBAAY;YAC3C,CAAC,CAAC,yBAAa;YACf,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;IAC5B,CAAC;IAED,6EAA6E;IAC7E,cAAc,CAAC,KAAY;QACzB,OAAO;YACL,OAAO,EAAE,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,OAAO,CAAC;YAC7C,QAAQ,EAAE,KAAK,CAAC,QAAQ;SACzB,CAAC;IACJ,CAAC;IAED,gBAAgB,CAAC,KAAY;QAC3B,OAAO;YACL,OAAO,EAAE,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,OAAO,CAAC;YAC/C,QAAQ,EAAE,KAAK,CAAC,QAAQ;SACzB,CAAC;IACJ,CAAC;IAED,mBAAmB,CACjB,OAAiB,EACjB,SAAqB,EACrB,SAAgB,EAChB,UAAiB,EACjB,YAAqB;QAErB,IAAI,MAAM,GAAG,EAAE,CAAC;QAEhB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACvC,IAAI,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;YACrB,IAAI,GAAG,KAAK,EAAE,EAAE;gBACd,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACjB,SAAS;aACV;YAED,IAAI,IAAI,GAAG,CAAC,EACV,KAAK,GAAG,SAAS,CAAC,MAAM,CAAC;YAC3B,IAAI,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YAEpB,OAAO,IAAI,GAAG,KAAK,EAAE;gBACnB,IAAI,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;gBACzC,GAAG,GAAG,MAAM,CACV,eAAM,CAAC,KAAK;qBACT,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,QAAQ,CAAC;qBAClD,QAAQ,EAAE,CACd,CAAC;gBACF,IAAI,YAAY,EAAE;oBAChB,MAAM,KAAK,GAAG,MAAM,CAClB,eAAM,CAAC,KAAK;yBACT,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,QAAQ,CAAC;yBACjD,QAAQ,EAAE,CACd,CAAC;oBACF,GAAG;wBACD,CAAC,GAAG,GAAG,MAAM,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC;4BAC9C,CAAC,KAAK,GAAG,MAAM,CAAC,EAAE,IAAI,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;iBAC/C;gBACD,IAAI,GAAG,IAAI,GAAG,EAAE;oBACd,IAAI,GAAG,GAAG,GAAG,CAAC,CAAC;iBAChB;qBAAM;oBACL,KAAK,GAAG,GAAG,CAAC;iBACb;aACF;YAED,IAAI,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,EACnB,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YACrB,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;gBACtB,KAAK,GAAG,MAAM,CACZ,eAAM,CAAC,KAAK;qBACT,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,QAAQ,CAAC;qBAClD,QAAQ,EAAE,CACd,CAAC;gBACF,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;aACrB;iBAAM,IAAI,IAAI,KAAK,CAAC,EAAE;gBACrB,KAAK,GAAG,EAAE,CAAC;aACZ;iBAAM,IAAI,IAAI,GAAG,SAAS,CAAC,MAAM,EAAE;gBAClC,MAAM,MAAM,GAAG,MAAM,CACnB,eAAM,CAAC,KAAK;qBACT,UAAU,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,QAAQ,CAAC;qBACtD,QAAQ,EAAE,CACd,CAAC;gBACF,MAAM,MAAM,GAAG,MAAM,CACnB,eAAM,CAAC,KAAK;qBACT,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,QAAQ,CAAC;qBAClD,QAAQ,EAAE,CACd,CAAC;gBACF,IAAI,IAAI,GAAG,MAAM,CACf,eAAM,CAAC,KAAK;qBACT,UAAU,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,QAAQ,CAAC;qBACvD,QAAQ,EAAE,CACd,CAAC;gBACF,IAAI,IAAI,GAAG,MAAM,CACf,eAAM,CAAC,KAAK;qBACT,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,QAAQ,CAAC;qBACnD,QAAQ,EAAE,CACd,CAAC;gBACF,IAAI,YAAY,EAAE;oBAChB,IAAI;wBACF,CAAC,IAAI,GAAG,MAAM,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC;4BAC/C,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,IAAI,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;oBAC/C,IAAI;wBACF,CAAC,IAAI,GAAG,MAAM,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC;4BAC/C,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,IAAI,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;iBAChD;gBACD,KAAK,GAAG,MAAM,GAAG,CAAC,CAAC,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;gBACpE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;aACrB;YAED,IAAI,YAAY,EAAE;gBAChB,MAAM,CAAC,IAAI,CACT,CAAC,KAAK,GAAG,MAAM,GAAG,MAAM,CAAC,EAAE,IAAI,UAAU,CAAC,QAAQ,CAAC,CAAC;oBAClD,MAAM,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CACzC,CAAC;aACH;iBAAM;gBACL,MAAM,CAAC,IAAI,CACT,KAAK,KAAK,EAAE,CAAC,kCAAkC;oBAC7C,CAAC,CAAC,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC;wBAC/C,CAAC,KAAK,GAAG,MAAM,CAAC,EAAE,IAAI,UAAU,CAAC,QAAQ,CAAC,CAAC;oBAC/C,CAAC,CAAC,EAAE,CACP,CAAC;aACH;SACF;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,eAAe,CACnB,QAAe,EACf,SAAgB,EAChB,OAAiB,EACjB,IAAc,EACd,WAAmB,EACnB,UAAqB,EACrB,YAAgC;QAEhC,IAAI;YACF,MAAM,kBAAkB,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;YACzD,MAAM,mBAAmB,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;YAE3D,IAAI,CAAC,SAAS,GAAG,CAAC,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC,IAAI,EAAE,CAAC;YACtD,IAAI,kBAAkB,CAAC,OAAO,KAAK,mBAAmB,CAAC,OAAO,EAAE;gBAC9D,OAAO,IAAI,CAAC;aACb;YAED,IAAI,KAAK,GAAG,UAAU;gBACpB,CAAC,CAAC,UAAU,CAAC,MAAM,CACf,CAAC,CAAC,EAAE,CACF,CAAC;oBACD,IAAI,CAAC,aAAa,CAChB,kBAAkB,CAAC,OAAO,EAC1B,mBAAmB,CAAC,OAAO,CAC5B,CACJ;gBACH,CAAC,CAAC,MAAM,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;YAE1E,KAAK,GAAG,MAAM,OAAO,CAAC,GAAG,CACvB,KAAK,CAAC,GAAG,CAAC,KAAK,EAAC,CAAC,EAAC,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CACxD,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC/C,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;gBACtB,OAAO,IAAI,CAAC;aACb;YAED,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,CACrC,kBAAkB,EAClB,mBAAmB,CACpB,CAAC;YACF,IAAI,CAAC,QAAQ,EAAE;gBACb,OAAO,IAAI,CAAC;aACb;YAED,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;YAC9C,IAAI,CAAC,QAAQ,EAAE;gBACb,OAAO,IAAI,CAAC;aACb;YAED,MAAM,UAAU,GAAG,CAAC,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC,IAAI,EAAE,CAAC;YAC5D,MAAM,OAAO,GAAG,GAAG,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC,WAAW,EAAE,CAAC;YACnE,IACE,CAAC,CAAC,OAAO,IAAI,QAAQ,CAAC;gBACtB,CAAC,KAAK,CAAC,QAAQ,CACb,IAAI,CAAC,aAAa,CAChB,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,EACvC,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CACzC,CACF,EACD;gBACA,OAAO,IAAI,CAAC;aACb;YAED,MAAM,SAAS,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;YACpC,MAAM,SAAS,GAAG,QAAQ,CAAC,SAAS;gBAClC,CAAC,CAAC,kBAAkB;gBACpB,CAAC,CAAC,mBAAmB,CAAC;YACxB,MAAM,UAAU,GAAG,QAAQ,CAAC,SAAS;gBACnC,CAAC,CAAC,mBAAmB;gBACrB,CAAC,CAAC,kBAAkB,CAAC;YAEvB,iCAAiC;YACjC,IAAI,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC;YAC/B,IAAI,QAAQ,GAAG,gBAAQ,CAAC,GAAG,CAAC;YAC5B,IAAI,QAAQ,CAAC,SAAS,EAAE;gBACtB,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC;gBAC3B,QAAQ,GAAG,gBAAQ,CAAC,GAAG,CAAC;aACzB;YACD,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;gBAC1B,MAAM,IAAI,KAAK,CAAC,uBAAuB,OAAO,EAAE,CAAC,CAAC;aACnD;YAED,MAAM,YAAY,GAChB,CAAC,QAAQ,KAAK,gBAAQ,CAAC,GAAG,IAAI,IAAI,KAAK,oBAAQ,CAAC,IAAI,CAAC;gBACrD,CAAC,QAAQ,KAAK,gBAAQ,CAAC,GAAG,IAAI,IAAI,KAAK,oBAAQ,CAAC,GAAG,CAAC,CAAC;YAEvD,MAAM,MAAM,GAAG,IAAI,CAAC,mBAAmB,CACrC,OAAO,EACP,SAAS,EACT,SAAS,EACT,UAAU,EACV,YAAY,CACb,CAAC;YACF,MAAM,WAAW,GACf,QAAQ,KAAK,gBAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC;YACvE,MAAM,cAAc,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;YAEzE,OAAO;gBACL;oBACE,MAAM;oBACN,IAAI,EAAE,MAAM,CAAC,WAAW,CAAC;oBACzB,IAAI,EAAE,EAAE;oBACR,cAAc,EAAE,cAAc;oBAC9B,QAAQ,EAAE,IAAI,CAAC,MAAM;oBACrB,OAAO,EAAE,4BAAgB;oBACzB,aAAa,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC;iBACxC;aACF,CAAC;SACH;QAAC,OAAO,CAAU,EAAE;YACnB,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,yBAAyB,QAAQ,CAAC,OAAO,IAAI,QAAQ,CAAC,MAAM,KAC1D,SAAS,CAAC,OAAO,IAAI,SAAS,CAAC,MACjC,KAAK,IAAI,GAAG,EACZ,CAAC,CACF,CAAC;YACF,OAAO,IAAI,CAAC;SACb;IACH,CAAC;IAED,gBAAgB,CAAC,QAAgB,EAAE,cAAsB;QACvD,MAAM,OAAO,GAAG,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,OAAO,6BAA6B,cAAc,KAAK,QAAQ,EAAE,CAAC;QACzG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC1B,MAAM,IAAI,uBAAe,CAAC,OAAO,CAAC,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,qBAAqB,CACzB,mBAAqD,EACrD,QAAe,EACf,SAAgB,EAChB,IAAc,EACd,OAAqC;QAErC,IAAI,MAAM,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;YAC9C,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,OAAO,oCAAoC,OAAO,CAAC,QAAQ,6CAA6C,CAChI,CAAC;YACF,MAAM,IAAI,KAAK,CACb,GAAG,IAAI,CAAC,MAAM,IACZ,IAAI,CAAC,OACP,UAAU,OAAO,CAAC,QAAQ,CAAC,WAAW,EAAE,iBAAiB,CAC1D,CAAC;SACH;QAED,IAAI,MAAM,CAAC,mBAAmB,CAAC,SAAS,CAAC,KAAK,EAAE,EAAE;YAChD,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;SAC5D;QAED,MAAM,kBAAkB,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;QACzD,MAAM,mBAAmB,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;QAC3D,MAAM,cAAc,GAAG,GAAG,IAAI,CAAC,aAAa,CAC1C,kBAAkB,CAAC,OAAO,EAC1B,mBAAmB,CAAC,OAAO,CAC5B,IAAI,IAAI,EAAE,CAAC;QAEZ,IAAI;YACF,MAAM,UAAU,GAAG,mBAAmB,CAAC;YACvC,MAAM,UAAU,GAAG,kBAAkB,CAAC;YAEtC,MAAM,MAAM,GAAG,IAAI,KAAK,oBAAQ,CAAC,IAAI,CAAC;YACtC,MAAM,KAAK,GAAG,IAAI,KAAK,oBAAQ,CAAC,GAAG,CAAC;YAEpC,MAAM,WAAW,GAAG,MAAM;gBACxB,CAAC,CAAC,IAAA,sBAAS,EAAC,CAAC,CAAC;qBACT,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC;qBAC7B,YAAY,CAAC,KAAK,CAAC;qBACnB,OAAO,CAAC,CAAC,CAAC;gBACf,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YACnE,MAAM,SAAS,GAAG;gBAChB,UAAU,EAAE,eAAM,CAAC,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,OAAO,CAAC;gBACvD,UAAU,EAAE,eAAM,CAAC,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,OAAO,CAAC;gBACvD,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS;gBAC/D,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;gBAC/D,WAAW,EAAE,OAAO,CAAC,QAAQ;gBAC7B,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,QAAQ,EAAE,WAAW;aACtB,CAAC;YAEF,MAAM,GAAG,GAAgB,MAAM,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAC5D,GAAG,2BAAe,eAAe,EACjC,SAAS,EACT,yCAA6B,EAC7B,EAAE,UAAU,EAAE,IAAI,CAAC,gBAAgB,EAAE,CACtC,CAAC;YACF,IAAI,CAAC,GAAG,EAAE;gBACR,IAAI,CAAC,gBAAgB,CACnB,oBAAoB,EACpB,OAAO,cAAc,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAC/C,CAAC;aACH;iBAAM,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE;gBACzB,IAAI,CAAC,gBAAgB,CAAC,mBAAmB,EAAE,cAAc,CAAC,CAAC;aAC5D;YACD,GAAG,CAAC,KAAK,CAAC,SAAS,GAAG,GAAG,CAAC,SAAS,CAAC;YAEpC,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,CAAC;YAEtB,IAAA,sBAAM,EACJ,KAAK,CAAC,UAAU,CAAC,WAAW,EAAE,KAAK,UAAU,CAAC,OAAO,EACrD,wBAAwB,KAAK,CAAC,UAAU,0CAA0C,UAAU,CAAC,OAAO,EAAE,CACvG,CAAC;YACF,IAAA,sBAAM,EACJ,KAAK,CAAC,UAAU,CAAC,WAAW,EAAE,KAAK,UAAU,CAAC,OAAO,EACrD,wBAAwB,KAAK,CAAC,UAAU,0CAA0C,UAAU,CAAC,OAAO,EAAE,CACvG,CAAC;YACF,IAAI,MAAM,EAAE;gBACV,IAAA,sBAAM,EACJ,KAAK,CAAC,WAAW,KAAK,mBAAmB,CAAC,SAAS,EACnD,yBAAyB,KAAK,CAAC,WAAW,yCAAyC,mBAAmB,CAAC,SAAS,EAAE,CACnH,CAAC;aACH;iBAAM;gBACL,IAAA,sBAAM,EACJ,KAAK,CAAC,WAAW,KAAK,mBAAmB,CAAC,UAAU,EACpD,yBAAyB,KAAK,CAAC,WAAW,0CAA0C,mBAAmB,CAAC,UAAU,EAAE,CACrH,CAAC;aACH;YAED,MAAM,cAAc,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAC5C,MAAM,WAAW,GAAG,cAAc,GAAG,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,iCAAc,CAAC;YAEzE,MAAM,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC;YAC9C,IAAI,gBAAgB,GAAG,KAAK,CAAC;YAC7B,IAAI,oBAAoB,GAAG,EAAE,CAAC;YAE9B,IAAI,MAAM,EAAE;gBACV,IACE,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC;oBACzB,MAAM,CACJ,IAAI,sBAAS,CAAC,mBAAmB,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;yBACrD,KAAK,CAAC,cAAc,CAAC;yBACrB,OAAO,CAAC,CAAC,CAAC,CACd,EACD;oBACA,gBAAgB,GAAG,IAAI,CAAC;oBACxB,MAAM,OAAO,GAAG,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,OAAO,gCAAgC,IAAI,qBAAqB,KAAK,CAAC,WAAW,iBAAiB,mBAAmB,CAAC,UAAU,MAAM,cAAc,EAAE,CAAC;oBAC9L,oBAAoB,GAAG,OAAO,CAAC;oBAC/B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;iBAC3B;aACF;iBAAM;gBACL,IACE,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC;oBACzB,MAAM,CACJ,cAAc;yBACX,KAAK,CAAC,mBAAmB,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;yBAC/C,OAAO,CAAC,CAAC,CAAC,CACd,EACD;oBACA,gBAAgB,GAAG,IAAI,CAAC;oBACxB,MAAM,OAAO,GAAG,GAAG,IAAI,CAAC,MAAM,IAC5B,IAAI,CAAC,OACP,gCAAgC,IAAI,oBAClC,KAAK,CAAC,WACR,gBACE,mBAAmB,CAAC,SACtB,MAAM,cAAc,CAAC,OAAO,EAAE,EAAE,CAAC;oBACjC,oBAAoB,GAAG,OAAO,CAAC;oBAC/B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;iBAC3B;aACF;YAED,IAAI,mBAAmB,GAAG,KAAK,CAAC;YAChC,IACE,gBAAgB;gBAChB,MAAM;gBACN,IAAI,sBAAS,CAAC,CAAC,CAAC;qBACb,KAAK,CAAC,cAAc,CAAC;qBACrB,EAAE,CAAC,iEAAqD,CAAC,EAC5D;gBACA,mBAAmB,GAAG,IAAI,CAAC;aAC5B;iBAAM,IACL,gBAAgB;gBAChB,KAAK;gBACL,cAAc;qBACX,KAAK,CAAC,CAAC,CAAC;qBACR,EAAE,CAAC,iEAAqD,CAAC,EAC5D;gBACA,mBAAmB,GAAG,IAAI,CAAC;aAC5B;YAED,IAAI,gBAAgB,IAAI,mBAAmB,EAAE;gBAC3C,MAAM,IAAI,mCAA2B,CAAC,oBAAoB,CAAC,CAAC;aAC7D;iBAAM,IAAI,gBAAgB,IAAI,CAAC,mBAAmB,EAAE;gBACnD,MAAM,IAAI,0BAAkB,CAAC,oBAAoB,CAAC,CAAC;aACpD;YAED,OAAO;gBACL;oBACE,GAAG,mBAAmB;oBACtB,IAAI,EAAE;wBACJ,SAAS,EAAE,KAAK;qBACjB;iBACF;gBACD,EAAE,QAAQ,EAAE,WAAW,EAAE;aAC1B,CAAC;SACH;QAAC,OAAO,CAAC,EAAE;YACV,IAAI,IAAA,oBAAY,EAAC,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE;gBACpD,MAAM,SAAS,GAAqB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;gBACpD,IAAI,SAAS,CAAC,UAAU,KAAK,QAAQ,EAAE;oBACrC,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,OAAO,mCAAmC,OAAO,CAAC,QAAQ,oCAAoC,CACtH,CAAC;oBACF,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,QAAQ,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC;iBACnE;qBAAM;oBACL,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;oBAC1C,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,OAAO,6BAA6B,cAAc,KAAK,SAAS,CAAC,MAAM,EAAE,CACjG,CAAC;iBACH;aACF;iBAAM;gBACL,IAAI,CAAC,YAAY,mCAA2B,EAAE;oBAC5C,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,OAAO,yCAAyC,IAAI,iDAAiD,CAC7H,CAAC;iBACH;qBAAM;oBACL,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,kBAAkB,CACnD,QAAQ,EACR,SAAS,EACT,IAAI,EACJ,CAAC,CACF,CAAC;oBACF,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,OAAO,sCAAsC,eAAe,iBAAiB,cAAc,EAAE,CACrH,CAAC;oBACF,MAAM,OAAO,CAAC,GAAG,CACf,eAAe,CAAC,GAAG,CAAC,KAAK,EAAC,CAAC,EAAC,EAAE,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAC3D,CAAC;iBACH;aACF;YAED,MAAM,CAAC,CAAC;SACT;IACH,CAAC;IAED,kBAAkB,CAAC,UAAmC;QACpD,OAAO,CACL,iBAAiB,CAAC,YAAY;YAC9B,kDAAkD;YAClD,iBAAiB,CAAC,OAAO,GAAG,CAAC;YAC7B,kBAAkB;YAClB,iBAAiB,CAAC,gBAAgB,CAAC,EAAE,CAAC;YACtC,kDAAkD;YAClD,iBAAiB,CAAC,MAAM,GAAG,CAAC;YAC5B,+BAA+B;YAC/B,iBAAiB,CAAC,SAAS,GAAG,CAAC;YAC/B,iBAAiB,CAAC,YAAY,CAC/B,CAAC;IACJ,CAAC;IAED,mBAAmB,CAAC,OAAgB;QAClC,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC;IACxD,CAAC;IAED,eAAe,CACb,QAAgB,EAChB,SAAiB,EACjB,SAAiB,EACjB,UAAkB,EAClB,IAAiB,EACjB,IAAc;QAEd,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC;QAE3B,IAAA,sBAAM,EACJ,SAAS,KAAK,SAAS,EACvB,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,OAAO,uBAAuB,CACtD,CAAC;QAEF,MAAM,MAAM,GAAG;YACb;gBACE,YAAY,EAAE,SAAS,CAAC,YAAY;gBACpC,MAAM,EAAE,SAAS,CAAC,MAAM;gBACxB,UAAU,EAAE,SAAS,CAAC,UAAU;gBAChC,UAAU,EAAE,SAAS,CAAC,UAAU;gBAChC,KAAK,EAAE,SAAS,CAAC,KAAK;gBACtB,KAAK,EAAE,SAAS,CAAC,KAAK;gBACtB,WAAW,EAAE,SAAS,CAAC,WAAW;gBAClC,WAAW,EAAE,SAAS,CAAC,WAAW;aACnC;YACD,SAAS,CAAC,SAAS;SACpB,CAAC;QAEF,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,eAAe,CAC3C;YACE,YAAY,EAAE;gBACZ,KAAK,EAAE;oBACL,YAAY,EAAE,SAAS;oBACvB,MAAM,EAAE,SAAS;oBACjB,UAAU,EAAE,SAAS;oBACrB,UAAU,EAAE,SAAS;oBACrB,KAAK,EAAE,SAAS;oBAChB,KAAK,EAAE,SAAS;oBAChB,WAAW,EAAE,SAAS;oBACtB,WAAW,EAAE,SAAS;iBACvB;gBACD,SAAS,EAAE,OAAO;aACnB;SACF,EACD;YACE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;YAChB,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC;SACrB,CACF,CAAC;QAEF,OAAO;YACL,cAAc,EAAE,IAAI,CAAC,iBAAiB;YACtC,OAAO;YACP,UAAU,EAAE,GAAG;SAChB,CAAC;IACJ,CAAC;IAED,oBAAoB,CAAC,cAAsB;QACzC,OAAO,GAAG,wCAA4B,IAAI,cAAc,EAAE,CAAC;IAC7D,CAAC;IAED,KAAK,CAAC,YAAY,CAChB,cAAsB,EACtB,MAAc,kCAAsB;QAEpC,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAC9B,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,oBAAoB,CAAC,cAAc,CAAC,EACzC,GAAG,EACH,MAAM,CACP,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,cAAsB;QAC3C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAC3C,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,oBAAoB,CAAC,cAAc,CAAC,CAC1C,CAAC;QAEF,OAAO,MAAM,KAAK,MAAM,CAAC;IAC3B,CAAC;IAED,KAAK,CAAC,YAAY,CAChB,QAAiB,EACjB,MAAc,0CAA8B;QAE5C,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CACpD,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,iBAAiB,CACvB,CAAC;QAEF,IAAI,SAAS,GAAa,EAAE,CAAC;QAC7B,IAAI,eAAe,EAAE;YACnB,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;SACzC;QAED,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC;QAEvC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CACxB,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,iBAAiB,EACtB,GAAG,EACH,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAC1B,CAAC;QAEF,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,QAAiB;QACnC,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CACpD,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,iBAAiB,CACvB,CAAC;QAEF,IAAI,eAAe,EAAE;YACnB,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,CAAa,CAAC;YAC1D,OAAO,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC;SACnD;QAED,6CAA6C;QAC7C,IAAI,MAAM,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE;YACtC,OAAO,IAAI,CAAC;SACb;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED,iBAAiB,CAAC,OAAgB;QAChC,OAAO,gBAAgB,OAAO,EAAE,CAAC,WAAW,EAAE,CAAC;IACjD,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,QAAiB;QACnC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAC3C,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CACjC,CAAC;QACF,OAAO,MAAM,KAAK,yCAA6B,CAAC;IAClD,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,QAAiB,EAAE,GAAG,GAAG,sCAA0B;QACtE,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAC9B,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,EAChC,GAAG,EACH,yCAA6B,CAC9B,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,cAAc,CAClB,QAAgB,EAChB,SAAiB,EACjB,SAAiB,EACjB,UAAkB,EAClB,IAAiB,EACjB,IAAc;QAEd,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC;QAE3B,IAAA,sBAAM,EACJ,SAAS,KAAK,SAAS,EACvB,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,OAAO,uBAAuB,CACtD,CAAC;QAEF,MAAM,YAAY,GAAG,YAAY,CAAC;QAClC,MAAM,kBAAkB,GAAG;YACzB;gBACE,SAAS,CAAC,YAAY;gBACtB,SAAS,CAAC,MAAM;gBAChB,SAAS,CAAC,UAAU;gBACpB,SAAS,CAAC,UAAU;gBACpB,SAAS,CAAC,KAAK;gBACf,SAAS,CAAC,KAAK;gBACf,SAAS,CAAC,WAAW;gBACrB,SAAS,CAAC,WAAW;aACtB;YACD,SAAS,CAAC,SAAS;SACpB,CAAC;QAEF,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,kBAAkB,CACnD,YAAY,EACZ,kBAAkB,CACnB,CAAC;QAEF,OAAO,IAAI,CAAC,qCAAqC,CAC/C,QAAQ,EACR,SAAS,EACT,SAAS,EACT,UAAU,EACV,QAAQ,EACR,IAAI,CAAC,iBAAiB,CACvB,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,mBAAmB,CACvB,YAAqB,EACrB,KAAa;QAEb,MAAM,sBAAsB,GAAG,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;QACnE,MAAM,KAAK,GAAG,CAAC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC,IAAI,EAAE,CAAC;QAClD,IAAI,CAAC,SAAS,GAAG,CAAC,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC,IAAI,EAAE,CAAC;QACtD,MAAM,UAAU,GAAG,CAAC,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC,IAAI,EAAE,CAAC;QAC5D,MAAM,KAAK,GAAG,IAAI,CAAC,mBAAmB,CAAC,sBAAsB,CAAC,CAAC;QAC/D,IAAI,CAAC,KAAK,EAAE;YACV,OAAO,EAAE,CAAC;SACX;QAED,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;QAEtD,IAAI,gBAAgB,GAAG,EAAE,CAAC;QAC1B,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;YACzC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE;gBACnC,SAAS;aACV;YAED,MAAM,YAAY,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACzC,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE;gBAC7B,SAAS;aACV;YAED,MAAM,CAAC,SAAS,EAAE,UAAU,CAAC,GAAG,YAAY,CAAC;YAC7C,MAAM,IAAI,GAAG,UAAU,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,CAAC;YACjD,IAAI,WAAW,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;YACjD,IAAI,SAAS,KAAK,WAAW,EAAE;gBAC7B,MAAM,IAAI,GAAG,UAAU,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,CAAC;gBAClD,WAAW,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;aAC9C;YAED,MAAM,iBAAiB,GAAG,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC;YAE7D,gBAAgB,CAAC,IAAI,CAAC;gBACpB,QAAQ,EAAE,IAAI,CAAC,MAAM;gBACrB,OAAO,EAAE,IAAI,CAAC,iBAAiB;gBAC/B,eAAe,EAAE;oBACf;wBACE,OAAO,EAAE,iBAAiB,CAAC,OAAO;wBAClC,QAAQ,EAAE,iBAAiB,CAAC,QAAQ;qBACrC;iBACF;gBACD,YAAY,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,YAAY;aAC3C,CAAC,CAAC;SACJ;QAED,gBAAgB,CAAC,IAAI,CACnB,CAAC,CAAgB,EAAE,CAAgB,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,GAAG,CAAC,CAAC,YAAY,CACxE,CAAC;QAEF,OAAO,gBAAgB,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IAC1C,CAAC;IAED,eAAe,CAAC,QAAgB,EAAE,MAAc;QAC9C,OAAO;YACL,GAAG,EAAE,GAAG,2BAAe,IAAI,QAAQ,EAAE;YACrC,OAAO,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,gBAAgB,EAAE;YAC9C,MAAM,EAAE;gBACN,OAAO,EAAE,IAAI,CAAC,OAAO;aACtB;YACD,MAAM,EAAE,MAAM;SACf,CAAC;IACJ,CAAC;IAED,gBAAgB;QACd,IAAI,IAAI,CAAC,WAAW,EAAE;YACpB,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;SACzB;IACH,CAAC;;AAr9BH,0BAs9BC;AAt8Be,0BAAkB,GAC9B,IAAA,6BAAqB,EAAC,sBAAa,CAAC,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { DexParams } from './types';
2
+ import { DexConfigMap, AdapterMappings } from '../../types';
3
+ export declare const HelloConfig: DexConfigMap<DexParams>;
4
+ export declare const Adapters: Record<number, AdapterMappings>;
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Adapters = exports.HelloConfig = void 0;
4
+ const constants_1 = require("../../constants");
5
+ exports.HelloConfig = {
6
+ Hello: {
7
+ // TODO: complete me!
8
+ },
9
+ };
10
+ exports.Adapters = {
11
+ // TODO: add adapters for each chain
12
+ // This is an example to copy
13
+ [constants_1.Network.MAINNET]: { [constants_1.SwapSide.SELL]: [{ name: '', index: 0 }] },
14
+ };
15
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/dex/hello/config.ts"],"names":[],"mappings":";;;AAEA,+CAAoD;AAEvC,QAAA,WAAW,GAA4B;IAClD,KAAK,EAAE;IACL,qBAAqB;KACtB;CACF,CAAC;AAEW,QAAA,QAAQ,GAAoC;IACvD,oCAAoC;IACpC,6BAA6B;IAC7B,CAAC,mBAAO,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,oBAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE;CACjE,CAAC"}
@@ -0,0 +1,39 @@
1
+ import { Interface } from '@ethersproject/abi';
2
+ import { DeepReadonly } from 'ts-essentials';
3
+ import { 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 HelloEventPool extends StatefulEventSubscriber<PoolState> {
8
+ readonly parentName: string;
9
+ protected network: number;
10
+ protected dexHelper: IDexHelper;
11
+ protected helloIface: Interface;
12
+ handlers: {
13
+ [event: string]: (event: any, state: DeepReadonly<PoolState>, log: Readonly<Log>) => DeepReadonly<PoolState> | null;
14
+ };
15
+ logDecoder: (log: Log) => any;
16
+ addressesSubscribed: string[];
17
+ constructor(parentName: string, network: number, dexHelper: IDexHelper, logger: Logger, helloIface?: Interface);
18
+ /**
19
+ * The function is called every time any of the subscribed
20
+ * addresses release log. The function accepts the current
21
+ * state, updates the state according to the log, and returns
22
+ * the updated state.
23
+ * @param state - Current state of event subscriber
24
+ * @param log - Log released by one of the subscribed addresses
25
+ * @returns Updates state of the event subscriber after the log
26
+ */
27
+ protected processLog(state: DeepReadonly<PoolState>, log: Readonly<Log>): DeepReadonly<PoolState> | null;
28
+ /**
29
+ * The function generates state using on-chain calls. This
30
+ * function is called to regenerate state if the event based
31
+ * system fails to fetch events and the local state is no
32
+ * more correct.
33
+ * @param blockNumber - Blocknumber for which the state should
34
+ * should be generated
35
+ * @returns state of the event subscriber at blocknumber
36
+ */
37
+ generateState(blockNumber: number): Promise<DeepReadonly<PoolState>>;
38
+ handleMyEvent(event: any, state: DeepReadonly<PoolState>, log: Readonly<Log>): DeepReadonly<PoolState> | null;
39
+ }
@@ -0,0 +1,64 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.HelloEventPool = void 0;
4
+ const abi_1 = require("@ethersproject/abi");
5
+ const utils_1 = require("../../utils");
6
+ const stateful_event_subscriber_1 = require("../../stateful-event-subscriber");
7
+ class HelloEventPool extends stateful_event_subscriber_1.StatefulEventSubscriber {
8
+ constructor(parentName, network, dexHelper, logger, helloIface = new abi_1.Interface('' /* TODO: Import and put here Hello ABI */)) {
9
+ // TODO: Add pool name
10
+ super(parentName, 'POOL_NAME', dexHelper, logger);
11
+ this.parentName = parentName;
12
+ this.network = network;
13
+ this.dexHelper = dexHelper;
14
+ this.helloIface = helloIface;
15
+ this.handlers = {};
16
+ // TODO: make logDecoder decode logs that
17
+ this.logDecoder = (log) => this.helloIface.parseLog(log);
18
+ this.addressesSubscribed = [
19
+ /* subscribed addresses */
20
+ ];
21
+ // Add handlers
22
+ this.handlers['myEvent'] = this.handleMyEvent.bind(this);
23
+ }
24
+ /**
25
+ * The function is called every time any of the subscribed
26
+ * addresses release log. The function accepts the current
27
+ * state, updates the state according to the log, and returns
28
+ * the updated state.
29
+ * @param state - Current state of event subscriber
30
+ * @param log - Log released by one of the subscribed addresses
31
+ * @returns Updates state of the event subscriber after the log
32
+ */
33
+ processLog(state, log) {
34
+ try {
35
+ const event = this.logDecoder(log);
36
+ if (event.name in this.handlers) {
37
+ return this.handlers[event.name](event, state, log);
38
+ }
39
+ }
40
+ catch (e) {
41
+ (0, utils_1.catchParseLogError)(e, this.logger);
42
+ }
43
+ return null;
44
+ }
45
+ /**
46
+ * The function generates state using on-chain calls. This
47
+ * function is called to regenerate state if the event based
48
+ * system fails to fetch events and the local state is no
49
+ * more correct.
50
+ * @param blockNumber - Blocknumber for which the state should
51
+ * should be generated
52
+ * @returns state of the event subscriber at blocknumber
53
+ */
54
+ async generateState(blockNumber) {
55
+ // TODO: complete me!
56
+ return {};
57
+ }
58
+ // Its just a dummy example
59
+ handleMyEvent(event, state, log) {
60
+ return null;
61
+ }
62
+ }
63
+ exports.HelloEventPool = HelloEventPool;
64
+ //# sourceMappingURL=hello-pool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hello-pool.js","sourceRoot":"","sources":["../../../src/dex/hello/hello-pool.ts"],"names":[],"mappings":";;;AAAA,4CAA+C;AAG/C,uCAAiD;AACjD,+EAA0E;AAI1E,MAAa,cAAe,SAAQ,mDAAkC;IAapE,YACW,UAAkB,EACjB,OAAe,EACf,SAAqB,EAC/B,MAAc,EACJ,aAAa,IAAI,eAAS,CAClC,EAAE,CAAC,yCAAyC,CAC7C;QAED,sBAAsB;QACtB,KAAK,CAAC,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;QATzC,eAAU,GAAV,UAAU,CAAQ;QACjB,YAAO,GAAP,OAAO,CAAQ;QACf,cAAS,GAAT,SAAS,CAAY;QAErB,eAAU,GAAV,UAAU,CAEnB;QAnBH,aAAQ,GAMJ,EAAE,CAAC;QAkBL,yCAAyC;QACzC,IAAI,CAAC,UAAU,GAAG,CAAC,GAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAC9D,IAAI,CAAC,mBAAmB,GAAG;QACzB,0BAA0B;SAC3B,CAAC;QAEF,eAAe;QACf,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3D,CAAC;IAED;;;;;;;;OAQG;IACO,UAAU,CAClB,KAA8B,EAC9B,GAAkB;QAElB,IAAI;YACF,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;YACnC,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,EAAE;gBAC/B,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;aACrD;SACF;QAAC,OAAO,CAAC,EAAE;YACV,IAAA,0BAAkB,EAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;SACpC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,aAAa,CAAC,WAAmB;QACrC,qBAAqB;QACrB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,2BAA2B;IAC3B,aAAa,CACX,KAAU,EACV,KAA8B,EAC9B,GAAkB;QAElB,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AAlFD,wCAkFC"}
@@ -0,0 +1,37 @@
1
+ import { AsyncOrSync } from 'ts-essentials';
2
+ import { Token, Address, ExchangePrices, PoolPrices, AdapterExchangeParam, SimpleExchangeParam, PoolLiquidity, Logger } from '../../types';
3
+ import { SwapSide, Network } from '../../constants';
4
+ import { IDex } from '../../dex/idex';
5
+ import { IDexHelper } from '../../dex-helper/idex-helper';
6
+ import { HelloData } from './types';
7
+ import { SimpleExchange } from '../simple-exchange';
8
+ import { HelloEventPool } from './hello-pool';
9
+ export declare class Hello extends SimpleExchange implements IDex<HelloData> {
10
+ readonly network: Network;
11
+ readonly dexKey: string;
12
+ readonly dexHelper: IDexHelper;
13
+ protected adapters: import("../../types").AdapterMappings;
14
+ protected eventPools: HelloEventPool;
15
+ readonly hasConstantPriceLargeAmounts = false;
16
+ readonly needWrapNative = true;
17
+ readonly isFeeOnTransferSupported = false;
18
+ static dexKeysWithNetwork: {
19
+ key: string;
20
+ networks: Network[];
21
+ }[];
22
+ logger: Logger;
23
+ constructor(network: Network, dexKey: string, dexHelper: IDexHelper, adapters?: import("../../types").AdapterMappings);
24
+ initializePricing(blockNumber: number): Promise<void>;
25
+ getAdapters(side: SwapSide): {
26
+ name: string;
27
+ index: number;
28
+ }[] | null;
29
+ getPoolIdentifiers(srcToken: Token, destToken: Token, side: SwapSide, blockNumber: number): Promise<string[]>;
30
+ getPricesVolume(srcToken: Token, destToken: Token, amounts: bigint[], side: SwapSide, blockNumber: number, limitPools?: string[]): Promise<null | ExchangePrices<HelloData>>;
31
+ getCalldataGasCost(poolPrices: PoolPrices<HelloData>): number | number[];
32
+ getAdapterParam(srcToken: string, destToken: string, srcAmount: string, destAmount: string, data: HelloData, side: SwapSide): AdapterExchangeParam;
33
+ getSimpleParam(srcToken: string, destToken: string, srcAmount: string, destAmount: string, data: HelloData, side: SwapSide): Promise<SimpleExchangeParam>;
34
+ updatePoolState(): Promise<void>;
35
+ getTopPoolsForToken(tokenAddress: Address, limit: number): Promise<PoolLiquidity[]>;
36
+ releaseResources(): AsyncOrSync<void>;
37
+ }
@@ -0,0 +1,126 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.Hello = void 0;
27
+ const CALLDATA_GAS_COST = __importStar(require("../../calldata-gas-cost"));
28
+ const utils_1 = require("../../utils");
29
+ const simple_exchange_1 = require("../simple-exchange");
30
+ const config_1 = require("./config");
31
+ const hello_pool_1 = require("./hello-pool");
32
+ class Hello extends simple_exchange_1.SimpleExchange {
33
+ constructor(network, dexKey, dexHelper, adapters = config_1.Adapters[network] || {}) {
34
+ super(dexHelper, dexKey);
35
+ this.network = network;
36
+ this.dexKey = dexKey;
37
+ this.dexHelper = dexHelper;
38
+ this.adapters = adapters;
39
+ this.hasConstantPriceLargeAmounts = false;
40
+ // TODO: set true here if protocols works only with wrapped asset
41
+ this.needWrapNative = true;
42
+ this.isFeeOnTransferSupported = false;
43
+ this.logger = dexHelper.getLogger(dexKey);
44
+ this.eventPools = new hello_pool_1.HelloEventPool(dexKey, network, dexHelper, this.logger);
45
+ }
46
+ // Initialize pricing is called once in the start of
47
+ // pricing service. It is intended to setup the integration
48
+ // for pricing requests. It is optional for a DEX to
49
+ // implement this function
50
+ async initializePricing(blockNumber) {
51
+ // TODO: complete me!
52
+ }
53
+ // Returns the list of contract adapters (name and index)
54
+ // for a buy/sell. Return null if there are no adapters.
55
+ getAdapters(side) {
56
+ return this.adapters[side] ? this.adapters[side] : null;
57
+ }
58
+ // Returns list of pool identifiers that can be used
59
+ // for a given swap. poolIdentifiers must be unique
60
+ // across DEXes. It is recommended to use
61
+ // ${dexKey}_${poolAddress} as a poolIdentifier
62
+ async getPoolIdentifiers(srcToken, destToken, side, blockNumber) {
63
+ // TODO: complete me!
64
+ return [];
65
+ }
66
+ // Returns pool prices for amounts.
67
+ // If limitPools is defined only pools in limitPools
68
+ // should be used. If limitPools is undefined then
69
+ // any pools can be used.
70
+ async getPricesVolume(srcToken, destToken, amounts, side, blockNumber, limitPools) {
71
+ // TODO: complete me!
72
+ return null;
73
+ }
74
+ // Returns estimated gas cost of calldata for this DEX in multiSwap
75
+ getCalldataGasCost(poolPrices) {
76
+ // TODO: update if there is any payload in getAdapterParam
77
+ return CALLDATA_GAS_COST.DEX_NO_PAYLOAD;
78
+ }
79
+ // Encode params required by the exchange adapter
80
+ // Used for multiSwap, buy & megaSwap
81
+ // Hint: abiCoder.encodeParameter() could be useful
82
+ getAdapterParam(srcToken, destToken, srcAmount, destAmount, data, side) {
83
+ // TODO: complete me!
84
+ const { exchange } = data;
85
+ // Encode here the payload for adapter
86
+ const payload = '';
87
+ return {
88
+ targetExchange: exchange,
89
+ payload,
90
+ networkFee: '0',
91
+ };
92
+ }
93
+ // Encode call data used by simpleSwap like routers
94
+ // Used for simpleSwap & simpleBuy
95
+ // Hint: this.buildSimpleParamWithoutWETHConversion
96
+ // could be useful
97
+ async getSimpleParam(srcToken, destToken, srcAmount, destAmount, data, side) {
98
+ // TODO: complete me!
99
+ const { exchange } = data;
100
+ // Encode here the transaction arguments
101
+ const swapData = '';
102
+ return this.buildSimpleParamWithoutWETHConversion(srcToken, srcAmount, destToken, destAmount, swapData, exchange);
103
+ }
104
+ // This is called once before getTopPoolsForToken is
105
+ // called for multiple tokens. This can be helpful to
106
+ // update common state required for calculating
107
+ // getTopPoolsForToken. It is optional for a DEX
108
+ // to implement this
109
+ async updatePoolState() {
110
+ // TODO: complete me!
111
+ }
112
+ // Returns list of top pools based on liquidity. Max
113
+ // limit number pools should be returned.
114
+ async getTopPoolsForToken(tokenAddress, limit) {
115
+ //TODO: complete me!
116
+ return [];
117
+ }
118
+ // This is optional function in case if your implementation has acquired any resources
119
+ // you need to release for graceful shutdown. For example, it may be any interval timer
120
+ releaseResources() {
121
+ // TODO: complete me!
122
+ }
123
+ }
124
+ exports.Hello = Hello;
125
+ Hello.dexKeysWithNetwork = (0, utils_1.getDexKeysWithNetwork)(config_1.HelloConfig);
126
+ //# sourceMappingURL=hello.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hello.js","sourceRoot":"","sources":["../../../src/dex/hello/hello.ts"],"names":[],"mappings":"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"}