@paraswap/dex-lib 4.1.24 → 4.1.25-executor02-flag-logic.0

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 (373) hide show
  1. package/build/dex/uniswap-v4/constants.d.ts +1 -0
  2. package/build/dex/uniswap-v4/constants.js +3 -2
  3. package/build/dex/uniswap-v4/constants.js.map +1 -1
  4. package/build/dex/uniswap-v4/encoder.d.ts +1 -1
  5. package/build/dex/uniswap-v4/encoder.js +3 -2
  6. package/build/dex/uniswap-v4/encoder.js.map +1 -1
  7. package/build/dex/uniswap-v4/subgraph.js +27 -12
  8. package/build/dex/uniswap-v4/subgraph.js.map +1 -1
  9. package/build/dex/uniswap-v4/types.d.ts +4 -0
  10. package/build/dex/uniswap-v4/uniswap-v4-pool-manager.d.ts +4 -3
  11. package/build/dex/uniswap-v4/uniswap-v4-pool-manager.js +47 -33
  12. package/build/dex/uniswap-v4/uniswap-v4-pool-manager.js.map +1 -1
  13. package/build/dex/uniswap-v4/uniswap-v4-pool.d.ts +2 -4
  14. package/build/dex/uniswap-v4/uniswap-v4-pool.js +1 -1
  15. package/build/dex/uniswap-v4/uniswap-v4-pool.js.map +1 -1
  16. package/build/dex/uniswap-v4/uniswap-v4.d.ts +1 -0
  17. package/build/dex/uniswap-v4/uniswap-v4.js +33 -19
  18. package/build/dex/uniswap-v4/uniswap-v4.js.map +1 -1
  19. package/build/executor/Executor02BytecodeBuilder.js +10 -9
  20. package/build/executor/Executor02BytecodeBuilder.js.map +1 -1
  21. package/package.json +1 -1
  22. package/build/abi/AaveV1_lending_pool.json +0 -27
  23. package/build/abi/Aave_GSM.json +0 -751
  24. package/build/abi/BProtocol.json +0 -1155
  25. package/build/abi/Balancer.json +0 -257
  26. package/build/abi/BalancerV2.json +0 -1179
  27. package/build/abi/Jarvis.json +0 -1172
  28. package/build/abi/MStableAsset.json +0 -1545
  29. package/build/abi/OneInchLp.json +0 -1304
  30. package/build/abi/Onebit.json +0 -736
  31. package/build/abi/RamsesV2Pool.abi.json +0 -1554
  32. package/build/abi/RamsesV2Quoter.abi.json +0 -274
  33. package/build/abi/Shell.json +0 -1294
  34. package/build/abi/TraderJoeV2Router.json +0 -50
  35. package/build/abi/USDM.json +0 -807
  36. package/build/abi/UniswapV2Router.json +0 -397
  37. package/build/abi/angle-transmuter/ChainlinkAccessControlledOffchainAggregator.json +0 -1246
  38. package/build/abi/angle-transmuter/ChainlinkEACAggregatorProxy.json +0 -509
  39. package/build/abi/curve-v1/CurveBUSDv2.abi.json +0 -1356
  40. package/build/abi/curve-v1/CurveTokenV1.json +0 -305
  41. package/build/abi/curve-v1/CurveTokenV2.json +0 -318
  42. package/build/abi/curve-v1/CurveV1StableNg.json +0 -1452
  43. package/build/abi/curve-v1/CurveV2Swap.json +0 -700
  44. package/build/abi/curve-v1/FactoryCryptoRegistry.json +0 -316
  45. package/build/abi/curve-v1/FactoryRegistry.json +0 -508
  46. package/build/abi/curve-v1/StableSwapAave.json +0 -1152
  47. package/build/abi/curve-v1/StableSwapBUSD.json +0 -814
  48. package/build/abi/curve-v1/StableSwapCompound.json +0 -814
  49. package/build/abi/curve-v1/StableSwapIDLE.json +0 -1253
  50. package/build/abi/curve-v1/StableSwapPax.json +0 -865
  51. package/build/abi/curve-v1/StableSwapSnow.json +0 -900
  52. package/build/abi/curve-v1/StableSwapUSDN.json +0 -1004
  53. package/build/abi/curve-v1/StableSwapUSDT.json +0 -814
  54. package/build/abi/curve-v1/StableSwapY.json +0 -814
  55. package/build/abi/inception/inception-ineth-pool.json +0 -1062
  56. package/build/abi/inception/inception-ineth.json +0 -609
  57. package/build/abi/inception/inception-ratio-feed.json +0 -329
  58. package/build/abi/inception/inception-vault.json +0 -991
  59. package/build/abi/kyberdmm/kyber-storage.abi.json +0 -824
  60. package/build/abi/kyberdmm.abi.json +0 -1148
  61. package/build/abi/maverick-v2/MaverickV2Quoter.json +0 -278
  62. package/build/abi/nerve/nerve-metapool.json +0 -790
  63. package/build/abi/platypus/asset.json +0 -490
  64. package/build/abi/platypus/avax-pool.json +0 -820
  65. package/build/abi/platypus/oracle.json +0 -119
  66. package/build/abi/platypus/pool.json +0 -677
  67. package/build/abi/smardex/all/smardex-router.json +0 -648
  68. package/build/abi/smardex/layer-1/smardex-factory.json +0 -242
  69. package/build/abi/smardex/layer-1/smardex-pool.json +0 -506
  70. package/build/abi/smardex/layer-2/smardex-factory.json +0 -185
  71. package/build/abi/smardex/layer-2/smardex-pool.json +0 -578
  72. package/build/abi/swaap-v1/pool.json +0 -1346
  73. package/build/abi/uniswap-v3/UniswapV3Quoter.abi.json +0 -193
  74. package/build/abi/velodrome-slipstream/VelodromeSlipstreamQuoterV2.abi.json +0 -267
  75. package/build/abi/wUSDM.json +0 -757
  76. package/build/abi/zrx.v2.json +0 -1967
  77. package/build/abi/zrx.v3.json +0 -3454
  78. package/build/abi/zrx.v4.json +0 -2193
  79. package/build/dex/OneInchLp.d.ts +0 -24
  80. package/build/dex/OneInchLp.js +0 -43
  81. package/build/dex/OneInchLp.js.map +0 -1
  82. package/build/dex/aave-v1/aave-v1.d.ts +0 -34
  83. package/build/dex/aave-v1/aave-v1.js +0 -180
  84. package/build/dex/aave-v1/aave-v1.js.map +0 -1
  85. package/build/dex/aave-v1/config.d.ts +0 -11
  86. package/build/dex/aave-v1/config.js +0 -20
  87. package/build/dex/aave-v1/config.js.map +0 -1
  88. package/build/dex/aave-v1/tokens-mainnet.json +0 -134
  89. package/build/dex/aave-v1/tokens.d.ts +0 -3
  90. package/build/dex/aave-v1/tokens.js +0 -50
  91. package/build/dex/aave-v1/tokens.js.map +0 -1
  92. package/build/dex/aave-v1/types.d.ts +0 -12
  93. package/build/dex/aave-v1/types.js +0 -3
  94. package/build/dex/aave-v1/types.js.map +0 -1
  95. package/build/dex/bProtocol/bProtocol.d.ts +0 -15
  96. package/build/dex/bProtocol/bProtocol.js +0 -56
  97. package/build/dex/bProtocol/bProtocol.js.map +0 -1
  98. package/build/dex/bProtocol/types.d.ts +0 -11
  99. package/build/dex/bProtocol/types.js +0 -8
  100. package/build/dex/bProtocol/types.js.map +0 -1
  101. package/build/dex/balancer-v1/balancer-pools.json +0 -33333
  102. package/build/dex/bebop/websocket-fetcher.d.ts +0 -35
  103. package/build/dex/bebop/websocket-fetcher.js +0 -87
  104. package/build/dex/bebop/websocket-fetcher.js.map +0 -1
  105. package/build/dex/idle-dao/idle-dao-pool.d.ts +0 -56
  106. package/build/dex/idle-dao/idle-dao-pool.js +0 -176
  107. package/build/dex/idle-dao/idle-dao-pool.js.map +0 -1
  108. package/build/dex/idle-dao/idle-dao-pooling-pool.d.ts +0 -16
  109. package/build/dex/idle-dao/idle-dao-pooling-pool.js +0 -57
  110. package/build/dex/idle-dao/idle-dao-pooling-pool.js.map +0 -1
  111. package/build/dex/idle-dao/scripts.d.ts +0 -9
  112. package/build/dex/idle-dao/scripts.js +0 -552
  113. package/build/dex/idle-dao/scripts.js.map +0 -1
  114. package/build/dex/inception/config.d.ts +0 -4
  115. package/build/dex/inception/config.js +0 -109
  116. package/build/dex/inception/config.js.map +0 -1
  117. package/build/dex/inception/inception-event-pool.d.ts +0 -16
  118. package/build/dex/inception/inception-event-pool.js +0 -51
  119. package/build/dex/inception/inception-event-pool.js.map +0 -1
  120. package/build/dex/inception/inception-native.d.ts +0 -43
  121. package/build/dex/inception/inception-native.js +0 -131
  122. package/build/dex/inception/inception-native.js.map +0 -1
  123. package/build/dex/inception/inception-pool.d.ts +0 -18
  124. package/build/dex/inception/inception-pool.js +0 -32
  125. package/build/dex/inception/inception-pool.js.map +0 -1
  126. package/build/dex/inception/inception-price-feed.d.ts +0 -19
  127. package/build/dex/inception/inception-price-feed.js +0 -51
  128. package/build/dex/inception/inception-price-feed.js.map +0 -1
  129. package/build/dex/inception/inception.d.ts +0 -43
  130. package/build/dex/inception/inception.js +0 -204
  131. package/build/dex/inception/inception.js.map +0 -1
  132. package/build/dex/inception/tokens.d.ts +0 -9
  133. package/build/dex/inception/tokens.js +0 -28
  134. package/build/dex/inception/tokens.js.map +0 -1
  135. package/build/dex/inception/types.d.ts +0 -22
  136. package/build/dex/inception/types.js +0 -3
  137. package/build/dex/inception/types.js.map +0 -1
  138. package/build/dex/inception/utils.d.ts +0 -6
  139. package/build/dex/inception/utils.js +0 -37
  140. package/build/dex/inception/utils.js.map +0 -1
  141. package/build/dex/jarvis.d.ts +0 -56
  142. package/build/dex/jarvis.js +0 -163
  143. package/build/dex/jarvis.js.map +0 -1
  144. package/build/dex/mStable.d.ts +0 -44
  145. package/build/dex/mStable.js +0 -75
  146. package/build/dex/mStable.js.map +0 -1
  147. package/build/dex/onebit/onebit.d.ts +0 -16
  148. package/build/dex/onebit/onebit.js +0 -61
  149. package/build/dex/onebit/onebit.js.map +0 -1
  150. package/build/dex/onebit/types.d.ts +0 -14
  151. package/build/dex/onebit/types.js +0 -8
  152. package/build/dex/onebit/types.js.map +0 -1
  153. package/build/dex/platypus/asset.d.ts +0 -14
  154. package/build/dex/platypus/asset.js +0 -97
  155. package/build/dex/platypus/asset.js.map +0 -1
  156. package/build/dex/platypus/config.d.ts +0 -11
  157. package/build/dex/platypus/config.js +0 -69
  158. package/build/dex/platypus/config.js.map +0 -1
  159. package/build/dex/platypus/platypus.d.ts +0 -63
  160. package/build/dex/platypus/platypus.js +0 -473
  161. package/build/dex/platypus/platypus.js.map +0 -1
  162. package/build/dex/platypus/pool-avax.d.ts +0 -8
  163. package/build/dex/platypus/pool-avax.js +0 -54
  164. package/build/dex/platypus/pool-avax.js.map +0 -1
  165. package/build/dex/platypus/pool-base.d.ts +0 -19
  166. package/build/dex/platypus/pool-base.js +0 -86
  167. package/build/dex/platypus/pool-base.js.map +0 -1
  168. package/build/dex/platypus/pool-pure.d.ts +0 -8
  169. package/build/dex/platypus/pool-pure.js +0 -37
  170. package/build/dex/platypus/pool-pure.js.map +0 -1
  171. package/build/dex/platypus/pool-subscriber.d.ts +0 -14
  172. package/build/dex/platypus/pool-subscriber.js +0 -167
  173. package/build/dex/platypus/pool-subscriber.js.map +0 -1
  174. package/build/dex/platypus/pool.d.ts +0 -8
  175. package/build/dex/platypus/pool.js +0 -58
  176. package/build/dex/platypus/pool.js.map +0 -1
  177. package/build/dex/platypus/types.d.ts +0 -92
  178. package/build/dex/platypus/types.js +0 -10
  179. package/build/dex/platypus/types.js.map +0 -1
  180. package/build/dex/quickswap/spiritswap-v3.d.ts +0 -6
  181. package/build/dex/quickswap/spiritswap-v3.js +0 -19
  182. package/build/dex/quickswap/spiritswap-v3.js.map +0 -1
  183. package/build/dex/shell.d.ts +0 -25
  184. package/build/dex/shell.js +0 -41
  185. package/build/dex/shell.js.map +0 -1
  186. package/build/dex/smardex/config.d.ts +0 -4
  187. package/build/dex/smardex/config.js +0 -64
  188. package/build/dex/smardex/config.js.map +0 -1
  189. package/build/dex/smardex/constants.d.ts +0 -18
  190. package/build/dex/smardex/constants.js +0 -33
  191. package/build/dex/smardex/constants.js.map +0 -1
  192. package/build/dex/smardex/sdk/constants.d.ts +0 -6
  193. package/build/dex/smardex/sdk/constants.js +0 -13
  194. package/build/dex/smardex/sdk/constants.js.map +0 -1
  195. package/build/dex/smardex/sdk/core.d.ts +0 -113
  196. package/build/dex/smardex/sdk/core.js +0 -499
  197. package/build/dex/smardex/sdk/core.js.map +0 -1
  198. package/build/dex/smardex/sdk/errors.d.ts +0 -15
  199. package/build/dex/smardex/sdk/errors.js +0 -22
  200. package/build/dex/smardex/sdk/errors.js.map +0 -1
  201. package/build/dex/smardex/sdk/types.d.ts +0 -62
  202. package/build/dex/smardex/sdk/types.js +0 -3
  203. package/build/dex/smardex/sdk/types.js.map +0 -1
  204. package/build/dex/smardex/sdk/utils.d.ts +0 -44
  205. package/build/dex/smardex/sdk/utils.js +0 -133
  206. package/build/dex/smardex/sdk/utils.js.map +0 -1
  207. package/build/dex/smardex/smardex-event-pool.d.ts +0 -28
  208. package/build/dex/smardex/smardex-event-pool.js +0 -119
  209. package/build/dex/smardex/smardex-event-pool.js.map +0 -1
  210. package/build/dex/smardex/smardex.d.ts +0 -65
  211. package/build/dex/smardex/smardex.js +0 -519
  212. package/build/dex/smardex/smardex.js.map +0 -1
  213. package/build/dex/smardex/types.d.ts +0 -55
  214. package/build/dex/smardex/types.js +0 -3
  215. package/build/dex/smardex/types.js.map +0 -1
  216. package/build/dex/solidly/forks-override/cone.d.ts +0 -22
  217. package/build/dex/solidly/forks-override/cone.js +0 -53
  218. package/build/dex/solidly/forks-override/cone.js.map +0 -1
  219. package/build/dex/solidly/forks-override/solisnek.d.ts +0 -8
  220. package/build/dex/solidly/forks-override/solisnek.js +0 -15
  221. package/build/dex/solidly/forks-override/solisnek.js.map +0 -1
  222. package/build/dex/swaap-v1/config.d.ts +0 -17
  223. package/build/dex/swaap-v1/config.js +0 -56
  224. package/build/dex/swaap-v1/config.js.map +0 -1
  225. package/build/dex/swaap-v1/constants.d.ts +0 -6
  226. package/build/dex/swaap-v1/constants.js +0 -17
  227. package/build/dex/swaap-v1/constants.js.map +0 -1
  228. package/build/dex/swaap-v1/libraries/ChainlinkUtils.d.ts +0 -25
  229. package/build/dex/swaap-v1/libraries/ChainlinkUtils.js +0 -62
  230. package/build/dex/swaap-v1/libraries/ChainlinkUtils.js.map +0 -1
  231. package/build/dex/swaap-v1/libraries/Const.d.ts +0 -18
  232. package/build/dex/swaap-v1/libraries/Const.js +0 -26
  233. package/build/dex/swaap-v1/libraries/Const.js.map +0 -1
  234. package/build/dex/swaap-v1/libraries/GeometricBrownianMotion.d.ts +0 -77
  235. package/build/dex/swaap-v1/libraries/GeometricBrownianMotion.js +0 -316
  236. package/build/dex/swaap-v1/libraries/GeometricBrownianMotion.js.map +0 -1
  237. package/build/dex/swaap-v1/libraries/LogExpMath.d.ts +0 -75
  238. package/build/dex/swaap-v1/libraries/LogExpMath.js +0 -418
  239. package/build/dex/swaap-v1/libraries/LogExpMath.js.map +0 -1
  240. package/build/dex/swaap-v1/libraries/MathMMM.d.ts +0 -185
  241. package/build/dex/swaap-v1/libraries/MathMMM.js +0 -453
  242. package/build/dex/swaap-v1/libraries/MathMMM.js.map +0 -1
  243. package/build/dex/swaap-v1/libraries/Num.d.ts +0 -31
  244. package/build/dex/swaap-v1/libraries/Num.js +0 -167
  245. package/build/dex/swaap-v1/libraries/Num.js.map +0 -1
  246. package/build/dex/swaap-v1/libraries/PoolQuotations.d.ts +0 -23
  247. package/build/dex/swaap-v1/libraries/PoolQuotations.js +0 -131
  248. package/build/dex/swaap-v1/libraries/PoolQuotations.js.map +0 -1
  249. package/build/dex/swaap-v1/libraries/Struct.d.ts +0 -56
  250. package/build/dex/swaap-v1/libraries/Struct.js +0 -3
  251. package/build/dex/swaap-v1/libraries/Struct.js.map +0 -1
  252. package/build/dex/swaap-v1/swaap-v1-pool.d.ts +0 -45
  253. package/build/dex/swaap-v1/swaap-v1-pool.js +0 -656
  254. package/build/dex/swaap-v1/swaap-v1-pool.js.map +0 -1
  255. package/build/dex/swaap-v1/swaap-v1.d.ts +0 -62
  256. package/build/dex/swaap-v1/swaap-v1.js +0 -379
  257. package/build/dex/swaap-v1/swaap-v1.js.map +0 -1
  258. package/build/dex/swaap-v1/types.d.ts +0 -106
  259. package/build/dex/swaap-v1/types.js +0 -9
  260. package/build/dex/swaap-v1/types.js.map +0 -1
  261. package/build/dex/trader-joe-v2.d.ts +0 -40
  262. package/build/dex/trader-joe-v2.js +0 -74
  263. package/build/dex/trader-joe-v2.js.map +0 -1
  264. package/build/dex/usual-bond/config.d.ts +0 -3
  265. package/build/dex/usual-bond/config.js +0 -13
  266. package/build/dex/usual-bond/config.js.map +0 -1
  267. package/build/dex/usual-bond/types.d.ts +0 -7
  268. package/build/dex/usual-bond/types.js +0 -3
  269. package/build/dex/usual-bond/types.js.map +0 -1
  270. package/build/dex/usual-bond/usual-bond.d.ts +0 -35
  271. package/build/dex/usual-bond/usual-bond.js +0 -176
  272. package/build/dex/usual-bond/usual-bond.js.map +0 -1
  273. package/build/dex/wusdm/config.d.ts +0 -3
  274. package/build/dex/wusdm/config.js +0 -43
  275. package/build/dex/wusdm/config.js.map +0 -1
  276. package/build/dex/wusdm/constants.d.ts +0 -2
  277. package/build/dex/wusdm/constants.js +0 -6
  278. package/build/dex/wusdm/constants.js.map +0 -1
  279. package/build/dex/wusdm/types.d.ts +0 -18
  280. package/build/dex/wusdm/types.js +0 -11
  281. package/build/dex/wusdm/types.js.map +0 -1
  282. package/build/dex/wusdm/wusdm-pool.d.ts +0 -21
  283. package/build/dex/wusdm/wusdm-pool.js +0 -74
  284. package/build/dex/wusdm/wusdm-pool.js.map +0 -1
  285. package/build/dex/wusdm/wusdm.d.ts +0 -46
  286. package/build/dex/wusdm/wusdm.js +0 -243
  287. package/build/dex/wusdm/wusdm.js.map +0 -1
  288. package/build/dex/zerox/config.d.ts +0 -2
  289. package/build/dex/zerox/config.js +0 -33
  290. package/build/dex/zerox/config.js.map +0 -1
  291. package/build/dex/zerox/index.d.ts +0 -22
  292. package/build/dex/zerox/index.js +0 -225
  293. package/build/dex/zerox/index.js.map +0 -1
  294. package/build/dex/zerox/order.d.ts +0 -88
  295. package/build/dex/zerox/order.js +0 -53
  296. package/build/dex/zerox/order.js.map +0 -1
  297. package/build/dex/zerox/types.d.ts +0 -73
  298. package/build/dex/zerox/types.js +0 -21
  299. package/build/dex/zerox/types.js.map +0 -1
  300. package/build/executor/fixtures/executor01/exchange-params/price-route-multiswap-balancerv1-curvev1-eth-usdc-gusd.json +0 -16
  301. package/build/executor/fixtures/executor01/exchange-params/price-route-multiswap-balancerv1-sushiv3-wbtc-eth-sushi.json +0 -16
  302. package/build/executor/fixtures/executor01/exchange-params/price-route-multiswap-sushiv3-curvev1-eth-usdc-gusd.json +0 -16
  303. package/build/executor/fixtures/executor01/exchange-params/price-route-multiswap-sushiv3-curvev1-gusd-usdc-eth.json +0 -16
  304. package/build/executor/fixtures/executor01/exchange-params/price-route-multiswap-sushiv3-dai-usdc-eth.json +0 -16
  305. package/build/executor/fixtures/executor01/exchange-params/price-route-multiswap-sushiv3-eth-usdc-dai.json +0 -16
  306. package/build/executor/fixtures/executor01/exchange-params/price-route-multiswap-sushiv3-usdc-eth-wbtc.json +0 -16
  307. package/build/executor/fixtures/executor01/exchange-params/price-route-multiswap-sushiv3-usdt-usdc-dai.json +0 -16
  308. package/build/executor/fixtures/executor01/exchange-params/price-route-simpleSwap-balancerv1-eth-usdc.json +0 -9
  309. package/build/executor/fixtures/executor01/exchange-params/price-route-simpleSwap-balancerv1-usdc-eth.json +0 -9
  310. package/build/executor/fixtures/executor01/exchange-params/price-route-simpleSwap-balancerv1-usdc-wbtc.json +0 -9
  311. package/build/executor/fixtures/executor01/exchange-params/price-route-simpleSwap-curvev1-eth-steth.json +0 -9
  312. package/build/executor/fixtures/executor01/exchange-params/price-route-simpleSwap-curvev1-steth-eth.json +0 -9
  313. package/build/executor/fixtures/executor01/exchange-params/price-route-simpleSwap-curvev1-usdc-usdt.json +0 -9
  314. package/build/executor/fixtures/executor01/exchange-params/price-route-simpleSwap-univ3-eth-usdc.json +0 -9
  315. package/build/executor/fixtures/executor01/exchange-params/price-route-simpleSwap-univ3-usdc-eth.json +0 -9
  316. package/build/executor/fixtures/executor01/exchange-params/price-route-simpleSwap-univ3-usdc-usdt.json +0 -9
  317. package/build/executor/fixtures/executor01/maybe-weth-calldata/price-route-multiswap-balancerv1-sushiv3-wbtc-eth-sushi.json +0 -12
  318. package/build/executor/fixtures/executor01/maybe-weth-calldata/price-route-multiswap-sushiv3-curvev1-eth-usdc-gusd.json +0 -7
  319. package/build/executor/fixtures/executor01/maybe-weth-calldata/price-route-multiswap-sushiv3-curvev1-gusd-usdc-eth.json +0 -7
  320. package/build/executor/fixtures/executor01/maybe-weth-calldata/price-route-multiswap-sushiv3-dai-usdc-eth.json +0 -7
  321. package/build/executor/fixtures/executor01/maybe-weth-calldata/price-route-multiswap-sushiv3-eth-usdc-dai.json +0 -7
  322. package/build/executor/fixtures/executor01/maybe-weth-calldata/price-route-multiswap-sushiv3-usdc-eth-wbtc.json +0 -12
  323. package/build/executor/fixtures/executor01/maybe-weth-calldata/price-route-simpleSwap-univ3-eth-usdc.json +0 -7
  324. package/build/executor/fixtures/executor01/maybe-weth-calldata/price-route-simpleSwap-univ3-usdc-eth.json +0 -7
  325. package/build/executor/fixtures/executor01/routes/price-route-multiswap-balancerv1-curvev1-eth-usdc-gusd.json +0 -78
  326. package/build/executor/fixtures/executor01/routes/price-route-multiswap-balancerv1-sushiv3-wbtc-eth-sushi.json +0 -81
  327. package/build/executor/fixtures/executor01/routes/price-route-multiswap-sushiv3-curvev1-eth-usdc-gusd.json +0 -78
  328. package/build/executor/fixtures/executor01/routes/price-route-multiswap-sushiv3-curvev1-gusd-usdc-eth.json +0 -78
  329. package/build/executor/fixtures/executor01/routes/price-route-multiswap-sushiv3-dai-usdc-eth.json +0 -81
  330. package/build/executor/fixtures/executor01/routes/price-route-multiswap-sushiv3-eth-usdc-dai.json +0 -81
  331. package/build/executor/fixtures/executor01/routes/price-route-multiswap-sushiv3-usdc-eth-wbtc.json +0 -81
  332. package/build/executor/fixtures/executor01/routes/price-route-multiswap-sushiv3-usdt-usdc-dai.json +0 -81
  333. package/build/executor/fixtures/executor01/routes/price-route-simpleSwap-balancerv1-eth-usdc.json +0 -64
  334. package/build/executor/fixtures/executor01/routes/price-route-simpleSwap-balancerv1-usdc-eth.json +0 -85
  335. package/build/executor/fixtures/executor01/routes/price-route-simpleSwap-balancerv1-usdc-wbtc.json +0 -64
  336. package/build/executor/fixtures/executor01/routes/price-route-simpleSwap-curvev1-eth-steth.json +0 -52
  337. package/build/executor/fixtures/executor01/routes/price-route-simpleSwap-curvev1-steth-eth.json +0 -52
  338. package/build/executor/fixtures/executor01/routes/price-route-simpleSwap-curvev1-usdc-usdt.json +0 -52
  339. package/build/executor/fixtures/executor01/routes/price-route-simpleSwap-univ3-eth-usdc.json +0 -55
  340. package/build/executor/fixtures/executor01/routes/price-route-simpleSwap-univ3-usdc-eth.json +0 -55
  341. package/build/executor/fixtures/executor01/routes/price-route-simpleSwap-univ3-usdc-usdt.json +0 -55
  342. package/build/executor/fixtures/executor02/exchange-params/price-route-multiSwap-balancerv1-sushiv3-univ3-bal-eth-sushi.json +0 -23
  343. package/build/executor/fixtures/executor02/exchange-params/price-route-multiSwap-maverickv1-sushiv3-univ3-eth-usdc-mav.json +0 -37
  344. package/build/executor/fixtures/executor02/exchange-params/price-route-multiSwap-univ3-sushiv3-sushi-eth-wbtc.json +0 -23
  345. package/build/executor/fixtures/executor02/exchange-params/price-route-multiSwap-univ3-sushiv3-wbtc-eth-sushi.json +0 -23
  346. package/build/executor/fixtures/executor02/exchange-params/price-route-multiswap-curvev1-univ3-dai-usdc-eth.json +0 -51
  347. package/build/executor/fixtures/executor02/exchange-params/price-route-multiswap-univ3-usdt-dai-eth.json +0 -58
  348. package/build/executor/fixtures/executor02/exchange-params/price-route-simpleSwap-sushiv3-balancerv1-eth-usdc.json +0 -23
  349. package/build/executor/fixtures/executor02/exchange-params/price-route-simpleSwap-sushiv3-balancerv1-usdc-eth.json +0 -23
  350. package/build/executor/fixtures/executor02/exchange-params/price-route-simpleSwap-sushiv3-univ3-eth-sushi.json +0 -9
  351. package/build/executor/fixtures/executor02/exchange-params/price-route-simpleSwap-sushiv3-univ3-sushi-eth.json +0 -16
  352. package/build/executor/fixtures/executor02/exchange-params/price-route-simpleSwap-univ3-curvev1-usdt-dai.json +0 -23
  353. package/build/executor/fixtures/executor02/maybe-weth-calldata/price-route-multiSwap-balancerv1-sushiv3-univ3-bal-eth-sushi.json +0 -12
  354. package/build/executor/fixtures/executor02/maybe-weth-calldata/price-route-multiSwap-maverickv1-sushiv3-univ3-eth-usdc-mav.json +0 -7
  355. package/build/executor/fixtures/executor02/maybe-weth-calldata/price-route-multiSwap-univ3-sushiv3-sushi-eth-wbtc.json +0 -12
  356. package/build/executor/fixtures/executor02/maybe-weth-calldata/price-route-multiSwap-univ3-sushiv3-wbtc-eth-sushi.json +0 -12
  357. package/build/executor/fixtures/executor02/maybe-weth-calldata/price-route-multiswap-curvev1-univ3-dai-usdc-eth.json +0 -7
  358. package/build/executor/fixtures/executor02/maybe-weth-calldata/price-route-multiswap-univ3-usdt-dai-eth.json +0 -7
  359. package/build/executor/fixtures/executor02/maybe-weth-calldata/price-route-simpleSwap-sushiv3-balancerv1-eth-usdc.json +0 -7
  360. package/build/executor/fixtures/executor02/maybe-weth-calldata/price-route-simpleSwap-sushiv3-balancerv1-usdc-eth.json +0 -7
  361. package/build/executor/fixtures/executor02/maybe-weth-calldata/price-route-simpleSwap-sushiv3-univ3-eth-sushi.json +0 -7
  362. package/build/executor/fixtures/executor02/maybe-weth-calldata/price-route-simpleSwap-sushiv3-univ3-sushi-eth.json +0 -7
  363. package/build/executor/fixtures/executor02/routes/price-route-multiSwap-balancerv1-sushiv3-univ3-bal-eth-sushi.json +0 -130
  364. package/build/executor/fixtures/executor02/routes/price-route-multiSwap-maverickv1-sushiv3-univ3-eth-usdc-mav.json +0 -136
  365. package/build/executor/fixtures/executor02/routes/price-route-multiSwap-univ3-sushiv3-sushi-eth-wbtc.json +0 -100
  366. package/build/executor/fixtures/executor02/routes/price-route-multiSwap-univ3-sushiv3-wbtc-eth-sushi.json +0 -100
  367. package/build/executor/fixtures/executor02/routes/price-route-multiswap-curvev1-univ3-dai-usdc-eth.json +0 -166
  368. package/build/executor/fixtures/executor02/routes/price-route-multiswap-univ3-usdt-dai-eth.json +0 -190
  369. package/build/executor/fixtures/executor02/routes/price-route-simpleSwap-sushiv3-balancerv1-eth-usdc.json +0 -114
  370. package/build/executor/fixtures/executor02/routes/price-route-simpleSwap-sushiv3-balancerv1-usdc-eth.json +0 -114
  371. package/build/executor/fixtures/executor02/routes/price-route-simpleSwap-sushiv3-univ3-eth-sushi.json +0 -55
  372. package/build/executor/fixtures/executor02/routes/price-route-simpleSwap-sushiv3-univ3-sushi-eth.json +0 -73
  373. package/build/executor/fixtures/executor02/routes/price-route-simpleSwap-univ3-curvev1-usdt-dai.json +0 -82
@@ -1,656 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.SwaapV1Pool = void 0;
7
- const stateful_event_subscriber_1 = require("../../stateful-event-subscriber");
8
- const pool_json_1 = __importDefault(require("../../abi/swaap-v1/pool.json"));
9
- const chainlink_json_1 = __importDefault(require("../../abi/chainlink.json"));
10
- const erc20_json_1 = __importDefault(require("../../abi/erc20.json"));
11
- const abi_1 = require("@ethersproject/abi");
12
- const bytes_1 = require("@ethersproject/bytes");
13
- class SwaapV1Pool extends stateful_event_subscriber_1.StatefulEventSubscriber {
14
- constructor(dexKey, network, pool, dexHelper) {
15
- super(dexKey, pool.id, dexHelper, dexHelper.getLogger(`${dexKey}-${network}-${pool.id}`));
16
- this.pool = pool;
17
- this.dexHelper = dexHelper;
18
- this.id = pool.id;
19
- this.tokens = pool.tokens.map(t => t.address);
20
- this.addressesSubscribed = [pool.id];
21
- this.oracleTokenMap = pool.tokens.reduce((acc, t) => {
22
- this.addressesSubscribed.push(t.oracleInitialState.aggregator.toLowerCase());
23
- return {
24
- ...acc,
25
- [t.oracleInitialState.aggregator.toLowerCase()]: t.address,
26
- };
27
- }, {});
28
- }
29
- // Function which transforms the given state for the given log event.
30
- // If the provided log does not affect the state, return null.
31
- async processLog(state, log, blockHeader) {
32
- try {
33
- const tokenAddress = this.oracleTokenMap[log.address.toLowerCase()];
34
- if (tokenAddress) {
35
- // log comes from a subscribed oracle
36
- if (log.topics[0] != SwaapV1Pool.ANSWER_UPDATED_TOPIC)
37
- return null;
38
- const decoded = SwaapV1Pool.proxyInterface.decodeEventLog('AnswerUpdated', log.data, log.topics);
39
- const latestRoundId = Number(decoded.roundId.toString());
40
- const latestRoundData = {
41
- answer: BigInt(decoded.current.toString()),
42
- timestamp: BigInt(decoded.updatedAt.toString()),
43
- };
44
- let previousRoundId = state.oracles[tokenAddress].latestRoundId;
45
- if (previousRoundId == latestRoundId) {
46
- return null;
47
- }
48
- let updatedHistoricalState = {
49
- ...state.oracles[tokenAddress].historicalOracleState,
50
- };
51
- const roundLookbackWindow = (state.parameters.priceStatisticsLookbackInRound - 1) *
52
- state.parameters.priceStatisticsLookbackStepInRound;
53
- // Case where roundIds are skipped
54
- while (latestRoundId > previousRoundId + 1) {
55
- delete updatedHistoricalState[previousRoundId - roundLookbackWindow];
56
- updatedHistoricalState[++previousRoundId] = {
57
- answer: 0n,
58
- timestamp: 0n,
59
- };
60
- }
61
- delete updatedHistoricalState[previousRoundId - roundLookbackWindow];
62
- updatedHistoricalState[latestRoundId] = latestRoundData;
63
- return {
64
- ...state,
65
- oracles: {
66
- ...state.oracles,
67
- [tokenAddress]: {
68
- ...state.oracles[tokenAddress],
69
- latestRoundId: latestRoundId,
70
- historicalOracleState: updatedHistoricalState,
71
- },
72
- },
73
- };
74
- }
75
- else if (this.pool.id === log.address.toLowerCase()) {
76
- // log comes from the Pool
77
- // Check if the event is anonymous or not
78
- let isAnonymousEvent = true;
79
- const nameOrSignatureOrTopic = log.topics[0];
80
- if ((0, bytes_1.isHexString)(nameOrSignatureOrTopic)) {
81
- const topichash = nameOrSignatureOrTopic.toLowerCase();
82
- for (const name of Object.keys(SwaapV1Pool.poolInterface.events)) {
83
- if (topichash === SwaapV1Pool.poolInterface.getEventTopic(name)) {
84
- isAnonymousEvent = false;
85
- break;
86
- }
87
- }
88
- }
89
- if (isAnonymousEvent) {
90
- // anonymous events
91
- const topic0 = log.topics[0];
92
- switch (topic0) {
93
- // setSwapFee
94
- case SwaapV1Pool.SWAP_FEE_TOPIC: {
95
- const value = BigInt(SwaapV1Pool.getValueFromAnonymousEvent(log));
96
- return {
97
- ...state,
98
- parameters: {
99
- ...state.parameters,
100
- swapFee: value,
101
- },
102
- };
103
- }
104
- // setPriceStatisticsLookbackInRound
105
- case SwaapV1Pool.LB_IN_ROUND_TOPIC: {
106
- const value = Number(SwaapV1Pool.getValueFromAnonymousEvent(log));
107
- const oldRoundLookbackWindow = (state.parameters.priceStatisticsLookbackInRound - 1) *
108
- state.parameters.priceStatisticsLookbackStepInRound;
109
- const newRoundLookbackWindow = (value - 1) *
110
- state.parameters.priceStatisticsLookbackStepInRound;
111
- const tokens = Object.keys(state.oracles);
112
- if (value > state.parameters.priceStatisticsLookbackInRound) {
113
- const multiCallInputs = tokens
114
- .map((token) => {
115
- return [
116
- {
117
- target: state.oracles[token].oraclesBindState.proxy,
118
- callData: SwaapV1Pool.proxyInterface.encodeFunctionData('latestRound'),
119
- },
120
- ];
121
- })
122
- .flat();
123
- const multicallOutputs = (await this.dexHelper.multiContract.methods
124
- .aggregate(multiCallInputs)
125
- .call({}, blockHeader.number)).returnData;
126
- let i = 0;
127
- const latestRoundIdsBN = tokens.reduce((acc, token) => {
128
- return {
129
- ...acc,
130
- [token]: BigInt(SwaapV1Pool.proxyInterface
131
- .decodeFunctionResult('latestRound', multicallOutputs[i++])[0]
132
- .toString()),
133
- };
134
- }, {});
135
- const missingHistoricalData = await this.getHistoricalRoundsData(tokens, newRoundLookbackWindow, latestRoundIdsBN, state.oracles, blockHeader.number);
136
- const updatedOraclesData = tokens.reduce((acc, token) => {
137
- return {
138
- ...acc,
139
- [token]: {
140
- oraclesBindState: {
141
- ...state.oracles[token].oraclesBindState,
142
- },
143
- latestRoundId: state.oracles[token].latestRoundId,
144
- historicalOracleState: missingHistoricalData[token],
145
- },
146
- };
147
- }, {});
148
- return {
149
- ...state,
150
- parameters: {
151
- ...state.parameters,
152
- priceStatisticsLookbackInRound: value,
153
- },
154
- oracles: { ...updatedOraclesData },
155
- };
156
- }
157
- else if (value < state.parameters.priceStatisticsLookbackInRound) {
158
- const updatedOraclesData = tokens.reduce((acc, token) => {
159
- let historicalData = {
160
- ...state.oracles[token].historicalOracleState,
161
- };
162
- let roundId = state.oracles[token].latestRoundId - oldRoundLookbackWindow;
163
- const endRoundId = state.oracles[token].latestRoundId - newRoundLookbackWindow;
164
- while (roundId < endRoundId) {
165
- delete historicalData[roundId++];
166
- }
167
- return {
168
- ...acc,
169
- [token]: {
170
- oraclesBindState: {
171
- ...state.oracles[token].oraclesBindState,
172
- },
173
- latestRoundId: state.oracles[token].latestRoundId,
174
- historicalOracleState: historicalData,
175
- },
176
- };
177
- }, {});
178
- return {
179
- ...state,
180
- parameters: {
181
- ...state.parameters,
182
- priceStatisticsLookbackInRound: value,
183
- },
184
- oracles: updatedOraclesData,
185
- };
186
- }
187
- return null;
188
- }
189
- // setPriceStatisticsLookbackStepInRound
190
- case SwaapV1Pool.LB_STEP_IN_ROUND_TOPIC: {
191
- const value = Number(SwaapV1Pool.getValueFromAnonymousEvent(log));
192
- const oldRoundLookbackWindow = (state.parameters.priceStatisticsLookbackInRound - 1) *
193
- state.parameters.priceStatisticsLookbackStepInRound;
194
- const newRoundLookbackWindow = (state.parameters.priceStatisticsLookbackInRound - 1) * value;
195
- const tokens = Object.keys(state.oracles);
196
- if (value > state.parameters.priceStatisticsLookbackStepInRound) {
197
- const multiCallInputs = tokens
198
- .map((token) => {
199
- return [
200
- {
201
- target: state.oracles[token].oraclesBindState.proxy,
202
- callData: SwaapV1Pool.proxyInterface.encodeFunctionData('latestRound'),
203
- },
204
- ];
205
- })
206
- .flat();
207
- const multicallOutputs = (await this.dexHelper.multiContract.methods
208
- .aggregate(multiCallInputs)
209
- .call({}, blockHeader.number)).returnData;
210
- let i = 0;
211
- const latestRoundIdsBN = tokens.reduce((acc, token) => {
212
- return {
213
- ...acc,
214
- [token]: BigInt(SwaapV1Pool.proxyInterface
215
- .decodeFunctionResult('latestRound', multicallOutputs[i++])[0]
216
- .toString()),
217
- };
218
- }, {});
219
- const missingHistoricalData = await this.getHistoricalRoundsData(tokens, newRoundLookbackWindow, latestRoundIdsBN, state.oracles, blockHeader.number);
220
- const updatedOraclesData = tokens.reduce((acc, token) => {
221
- return {
222
- ...acc,
223
- [token]: {
224
- oraclesBindState: {
225
- ...state.oracles[token].oraclesBindState,
226
- },
227
- latestRoundId: state.oracles[token].latestRoundId,
228
- historicalOracleState: missingHistoricalData[token],
229
- },
230
- };
231
- }, {});
232
- return {
233
- ...state,
234
- parameters: {
235
- ...state.parameters,
236
- priceStatisticsLookbackStepInRound: value,
237
- },
238
- oracles: { ...updatedOraclesData },
239
- };
240
- }
241
- else if (value < state.parameters.priceStatisticsLookbackStepInRound) {
242
- const updatedOraclesData = tokens.reduce((acc, token) => {
243
- let historicalData = {
244
- ...state.oracles[token].historicalOracleState,
245
- };
246
- let roundId = state.oracles[token].latestRoundId - oldRoundLookbackWindow;
247
- const endRoundId = state.oracles[token].latestRoundId - newRoundLookbackWindow;
248
- while (roundId < endRoundId) {
249
- delete historicalData[roundId++];
250
- }
251
- return {
252
- ...acc,
253
- [token]: {
254
- oraclesBindState: {
255
- ...state.oracles[token].oraclesBindState,
256
- },
257
- latestRoundId: state.oracles[token].latestRoundId,
258
- historicalOracleState: historicalData,
259
- },
260
- };
261
- }, {});
262
- return {
263
- ...state,
264
- parameters: {
265
- ...state.parameters,
266
- priceStatisticsLookbackStepInRound: value,
267
- },
268
- oracles: updatedOraclesData,
269
- };
270
- }
271
- return {
272
- ...state,
273
- parameters: {
274
- ...state.parameters,
275
- priceStatisticsLookbackStepInRound: value,
276
- },
277
- };
278
- }
279
- // setDynamicCoverageFeesZ
280
- case SwaapV1Pool.Z_TOPIC: {
281
- const value = BigInt(SwaapV1Pool.getValueFromAnonymousEvent(log));
282
- return {
283
- ...state,
284
- parameters: {
285
- ...state.parameters,
286
- dynamicCoverageFeesZ: value,
287
- },
288
- };
289
- }
290
- // setDynamicCoverageFeesHorizon
291
- case SwaapV1Pool.HORIZON_TOPIC: {
292
- const value = BigInt(SwaapV1Pool.getValueFromAnonymousEvent(log));
293
- return {
294
- ...state,
295
- parameters: {
296
- ...state.parameters,
297
- dynamicCoverageFeesHorizon: value,
298
- },
299
- };
300
- }
301
- // setPriceStatisticsLookbackInSec
302
- case SwaapV1Pool.LB_IN_SEC_TOPIC: {
303
- const value = BigInt(SwaapV1Pool.getValueFromAnonymousEvent(log));
304
- return {
305
- ...state,
306
- parameters: {
307
- ...state.parameters,
308
- priceStatisticsLookbackInSec: value,
309
- },
310
- };
311
- }
312
- // setMaxPriceUnpegRatio
313
- case SwaapV1Pool.MAX_UNPEG_TOPIC: {
314
- const value = BigInt(SwaapV1Pool.getValueFromAnonymousEvent(log));
315
- return {
316
- ...state,
317
- parameters: {
318
- ...state.parameters,
319
- maxPriceUnpegRatio: value,
320
- },
321
- };
322
- }
323
- }
324
- }
325
- else {
326
- // named events
327
- const parsed = SwaapV1Pool.poolInterface.parseLog(log);
328
- switch (parsed.name) {
329
- case 'LOG_JOIN': {
330
- const tokenIn = parsed.args.tokenIn.toString().toLowerCase();
331
- const tokenAmountIn = BigInt(parsed.args.tokenAmountIn.toString());
332
- return {
333
- ...state,
334
- liquidities: {
335
- ...state.liquidities,
336
- [tokenIn]: {
337
- ...state.liquidities[tokenIn],
338
- balance: state.liquidities[tokenIn].balance + tokenAmountIn,
339
- },
340
- },
341
- };
342
- }
343
- case 'LOG_EXIT': {
344
- const tokenOut = parsed.args.tokenOut.toString().toLowerCase();
345
- const tokenAmountOut = BigInt(parsed.args.tokenAmountOut.toString());
346
- return {
347
- ...state,
348
- liquidities: {
349
- ...state.liquidities,
350
- [tokenOut]: {
351
- ...state.liquidities[tokenOut],
352
- balance: state.liquidities[tokenOut].balance - tokenAmountOut,
353
- },
354
- },
355
- };
356
- }
357
- case 'LOG_SWAP': {
358
- const tokenIn = parsed.args.tokenIn.toString().toLowerCase();
359
- const tokenAmountIn = BigInt(parsed.args.tokenAmountIn.toString());
360
- const tokenOut = parsed.args.tokenOut.toString().toLowerCase();
361
- const tokenAmountOut = BigInt(parsed.args.tokenAmountOut.toString());
362
- return {
363
- ...state,
364
- liquidities: {
365
- ...state.liquidities,
366
- [tokenIn]: {
367
- ...state.liquidities[tokenIn],
368
- balance: state.liquidities[tokenIn].balance + tokenAmountIn,
369
- },
370
- [tokenOut]: {
371
- ...state.liquidities[tokenOut],
372
- balance: state.liquidities[tokenOut].balance - tokenAmountOut,
373
- },
374
- },
375
- };
376
- }
377
- default: {
378
- return null;
379
- }
380
- }
381
- }
382
- }
383
- return null;
384
- }
385
- catch (e) {
386
- this.logger.error('Failed to decode result', e);
387
- return null;
388
- }
389
- }
390
- async getTokensAndParameters(blockNumber) {
391
- const multiCallInputs = [
392
- {
393
- target: this.pool.id,
394
- callData: SwaapV1Pool.poolInterface.encodeFunctionData('getTokens'),
395
- },
396
- {
397
- target: this.pool.id,
398
- callData: SwaapV1Pool.poolInterface.encodeFunctionData('getCoverageParameters'),
399
- },
400
- {
401
- target: this.pool.id,
402
- callData: SwaapV1Pool.poolInterface.encodeFunctionData('getSwapFee'),
403
- },
404
- ];
405
- const returnData = (await this.dexHelper.multiContract.methods
406
- .aggregate(multiCallInputs)
407
- .call({}, blockNumber)).returnData;
408
- let tokens = SwaapV1Pool.poolInterface.decodeFunctionResult('getTokens', returnData[0])[0];
409
- tokens = tokens.map(t => t.toLowerCase());
410
- const coverageParameters = SwaapV1Pool.poolInterface.decodeFunctionResult('getCoverageParameters', returnData[1]);
411
- const parameters = {
412
- swapFee: BigInt(SwaapV1Pool.poolInterface
413
- .decodeFunctionResult('getSwapFee', returnData[2])[0]
414
- .toString()),
415
- priceStatisticsLookbackInRound: Number(coverageParameters[0].toString()),
416
- priceStatisticsLookbackStepInRound: Number(coverageParameters[1].toString()),
417
- dynamicCoverageFeesZ: BigInt(coverageParameters[2].toString()),
418
- dynamicCoverageFeesHorizon: BigInt(coverageParameters[3].toString()),
419
- priceStatisticsLookbackInSec: BigInt(coverageParameters[4].toString()),
420
- maxPriceUnpegRatio: BigInt(coverageParameters[5].toString()),
421
- };
422
- return [tokens, parameters];
423
- }
424
- async getProxiesAndLiquidities(tokens, blockNumber) {
425
- let multiCallInputs = tokens
426
- .map(token => {
427
- return [
428
- {
429
- target: this.pool.id,
430
- callData: SwaapV1Pool.poolInterface.encodeFunctionData('getBalance', [token]),
431
- },
432
- {
433
- target: this.pool.id,
434
- callData: SwaapV1Pool.poolInterface.encodeFunctionData('getDenormalizedWeight', [token]),
435
- },
436
- {
437
- target: token,
438
- callData: SwaapV1Pool.erc20Interface.encodeFunctionData('decimals'),
439
- },
440
- ];
441
- })
442
- .flat();
443
- multiCallInputs = tokens.reduce((acc, token) => {
444
- return [
445
- ...acc,
446
- {
447
- target: this.pool.id,
448
- callData: SwaapV1Pool.poolInterface.encodeFunctionData('getTokenPriceOracle', [token]),
449
- },
450
- ].flat();
451
- }, multiCallInputs);
452
- let multicallOutputs = (await this.dexHelper.multiContract.methods
453
- .aggregate(multiCallInputs)
454
- .call({}, blockNumber)).returnData;
455
- let idx = 0;
456
- // get liquidities
457
- const liquidities = tokens.reduce((acc, token) => {
458
- const balance = BigInt(SwaapV1Pool.poolInterface
459
- .decodeFunctionResult('getBalance', multicallOutputs[idx++])[0]
460
- .toString());
461
- const initialWeight = BigInt(SwaapV1Pool.poolInterface
462
- .decodeFunctionResult('getDenormalizedWeight', multicallOutputs[idx++])[0]
463
- .toString());
464
- const decimals = parseInt(SwaapV1Pool.erc20Interface
465
- .decodeFunctionResult('decimals', multicallOutputs[idx++])[0]
466
- .toString());
467
- return {
468
- ...acc,
469
- [token]: {
470
- balance: balance,
471
- initialWeight: initialWeight,
472
- decimals: decimals,
473
- },
474
- };
475
- }, {});
476
- const oracles = tokens.reduce((acc, token) => {
477
- const oracle = SwaapV1Pool.poolInterface
478
- .decodeFunctionResult('getTokenPriceOracle', multicallOutputs[idx++])[0]
479
- .toString()
480
- .toLowerCase();
481
- return {
482
- ...acc,
483
- [token]: oracle,
484
- };
485
- }, {});
486
- return [oracles, liquidities];
487
- }
488
- async getOraclesData(tokens, proxies, // key: token, value: proxy
489
- parameters, blockNumber) {
490
- // aggregators
491
- let multiCallInputs = tokens.map((token) => {
492
- return {
493
- target: proxies[token],
494
- callData: SwaapV1Pool.proxyInterface.encodeFunctionData('aggregator'),
495
- };
496
- });
497
- // oracle's addresses
498
- let multicallOutputs = (await this.dexHelper.multiContract.methods
499
- .aggregate(multiCallInputs)
500
- .call({}, blockNumber)).returnData;
501
- let i = 0;
502
- const oracles = tokens.reduce((acc, token) => {
503
- return {
504
- ...acc,
505
- [token]: SwaapV1Pool.poolInterface
506
- .decodeFunctionResult('getTokenPriceOracle', multicallOutputs[i++])[0]
507
- .toString()
508
- .toLowerCase(),
509
- };
510
- }, {});
511
- multiCallInputs = tokens
512
- .map((token) => {
513
- return [
514
- {
515
- target: this.pool.id,
516
- callData: SwaapV1Pool.poolInterface.encodeFunctionData('getTokenOracleInitialPrice', [token]),
517
- },
518
- {
519
- target: proxies[token],
520
- callData: SwaapV1Pool.proxyInterface.encodeFunctionData('decimals'),
521
- },
522
- {
523
- target: proxies[token],
524
- callData: SwaapV1Pool.proxyInterface.encodeFunctionData('description'),
525
- },
526
- {
527
- target: proxies[token],
528
- callData: SwaapV1Pool.proxyInterface.encodeFunctionData('latestRoundData'),
529
- },
530
- ];
531
- })
532
- .flat();
533
- multicallOutputs = (await this.dexHelper.multiContract.methods
534
- .aggregate(multiCallInputs)
535
- .call({}, blockNumber)).returnData;
536
- let latestRoundIdsBN = {};
537
- i = 0;
538
- let oraclesData = tokens.reduce((acc, token) => {
539
- const oraclesBindState = {
540
- proxy: proxies[token],
541
- aggregator: oracles[token],
542
- price: BigInt(SwaapV1Pool.poolInterface
543
- .decodeFunctionResult('getTokenOracleInitialPrice', multicallOutputs[i++])[0]
544
- .toString()),
545
- decimals: Number(SwaapV1Pool.proxyInterface
546
- .decodeFunctionResult('decimals', multicallOutputs[i++])[0]
547
- .toString()),
548
- description: SwaapV1Pool.proxyInterface
549
- .decodeFunctionResult('description', multicallOutputs[i++])[0]
550
- .toString(),
551
- };
552
- const latestRoundData = SwaapV1Pool.proxyInterface.decodeFunctionResult('latestRoundData', multicallOutputs[i++]);
553
- const latestRoundId = BigInt(latestRoundData.roundId.toString());
554
- latestRoundIdsBN[token] = latestRoundId;
555
- return {
556
- ...acc,
557
- [token]: {
558
- oraclesBindState: oraclesBindState,
559
- latestRoundId: Number(latestRoundId % 2n ** 64n),
560
- historicalOracleState: {
561
- [Number(latestRoundId % 2n ** 64n)]: {
562
- answer: BigInt(latestRoundData.answer.toString()),
563
- timestamp: BigInt(latestRoundData.updatedAt.toString()),
564
- },
565
- },
566
- },
567
- };
568
- }, {});
569
- const roundLookbackWindow = (parameters.priceStatisticsLookbackInRound - 1) *
570
- parameters.priceStatisticsLookbackStepInRound;
571
- const historicalRoundsData = await this.getHistoricalRoundsData(tokens, roundLookbackWindow, latestRoundIdsBN, oraclesData, blockNumber);
572
- tokens.forEach(token => {
573
- oraclesData[token].historicalOracleState = historicalRoundsData[token];
574
- });
575
- return oraclesData;
576
- }
577
- async getHistoricalRoundsData(tokens, roundLookbackWindow, latestRoundIdsBN, oraclesData, blockNumber) {
578
- // historical round data
579
- let historicalStates = tokens.reduce((acc, token) => {
580
- return {
581
- ...acc,
582
- [token]: { ...oraclesData[token].historicalOracleState },
583
- };
584
- }, {});
585
- let multiCallInputs = tokens
586
- .map((token) => {
587
- const startRoundId = latestRoundIdsBN[token];
588
- return Array.from({ length: roundLookbackWindow }, (x, idx) => idx)
589
- .map(idx => {
590
- return {
591
- target: oraclesData[token].oraclesBindState.proxy,
592
- callData: SwaapV1Pool.proxyInterface.encodeFunctionData('getRoundData', [startRoundId - BigInt(idx + 1)]),
593
- };
594
- })
595
- .flat();
596
- })
597
- .flat();
598
- try {
599
- let multicallOutputs = (await this.dexHelper.multiContract.methods
600
- .aggregate(multiCallInputs)
601
- .call({}, blockNumber)).returnData;
602
- let i = 0;
603
- tokens.map(token => {
604
- Array.from({ length: roundLookbackWindow }, (x, idx) => idx).map(idx => {
605
- const decoded = SwaapV1Pool.proxyInterface.decodeFunctionResult('getRoundData', multicallOutputs[i++]);
606
- const roundId = Number(BigInt(decoded.roundId.toString()) % 2n ** 64n);
607
- historicalStates[token][roundId] = {
608
- answer: BigInt(decoded.answer.toString()),
609
- timestamp: BigInt(decoded.updatedAt.toString()),
610
- };
611
- });
612
- });
613
- }
614
- catch (e) {
615
- this.logger.error('Failed to get historical round data', e);
616
- }
617
- return historicalStates;
618
- }
619
- //Function used to generate a state if one is not currently present, which
620
- //must be the state at exactly the given block number, unless one is not
621
- //provided, in which case one should be generated for latest block. This
622
- //function should not use any previous states to derive a new state, it should
623
- //generate one from scratch.
624
- async generateState(blockNumber) {
625
- if (blockNumber === 'latest' || blockNumber === undefined) {
626
- blockNumber = await this.dexHelper.provider.getBlockNumber();
627
- }
628
- const [tokens, parameters] = await this.getTokensAndParameters(blockNumber);
629
- const [proxies, liquidities] = await this.getProxiesAndLiquidities(tokens, blockNumber);
630
- const oracles = await this.getOraclesData(tokens, proxies, parameters, blockNumber);
631
- return {
632
- parameters: parameters,
633
- liquidities: liquidities,
634
- oracles: oracles,
635
- };
636
- }
637
- static getValueFromAnonymousEvent(log) {
638
- const data = log.data.toString();
639
- const startIdx = 2 + 64 + 64 + 8;
640
- return '0x' + data.slice(startIdx, startIdx + 64).toString();
641
- }
642
- }
643
- exports.SwaapV1Pool = SwaapV1Pool;
644
- SwaapV1Pool.poolInterface = new abi_1.Interface(pool_json_1.default);
645
- SwaapV1Pool.proxyInterface = new abi_1.Interface(chainlink_json_1.default);
646
- SwaapV1Pool.erc20Interface = new abi_1.Interface(erc20_json_1.default);
647
- // LOG_CALL Event topics 0
648
- SwaapV1Pool.SWAP_FEE_TOPIC = '0x34e1990700000000000000000000000000000000000000000000000000000000';
649
- SwaapV1Pool.LB_IN_ROUND_TOPIC = '0x3cc3396000000000000000000000000000000000000000000000000000000000';
650
- SwaapV1Pool.LB_STEP_IN_ROUND_TOPIC = '0x045dbae000000000000000000000000000000000000000000000000000000000';
651
- SwaapV1Pool.Z_TOPIC = '0x3c515d9900000000000000000000000000000000000000000000000000000000';
652
- SwaapV1Pool.HORIZON_TOPIC = '0x314d204f00000000000000000000000000000000000000000000000000000000';
653
- SwaapV1Pool.LB_IN_SEC_TOPIC = '0x538e285c00000000000000000000000000000000000000000000000000000000';
654
- SwaapV1Pool.MAX_UNPEG_TOPIC = '0xacb21b3100000000000000000000000000000000000000000000000000000000';
655
- SwaapV1Pool.ANSWER_UPDATED_TOPIC = SwaapV1Pool.proxyInterface.getEventTopic('AnswerUpdated');
656
- //# sourceMappingURL=swaap-v1-pool.js.map