@paraswap/dex-lib 4.8.24 → 4.8.25

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 (432) hide show
  1. package/build/abi/AaveV2_lending_pool.json +53 -0
  2. package/build/abi/Bancor.json +392 -0
  3. package/build/abi/Compound_CETH.json +12 -0
  4. package/build/abi/SSPM.json +829 -0
  5. package/build/abi/Smoothy.json +1049 -0
  6. package/build/abi/StaderOracle.json +2170 -0
  7. package/build/abi/aave-weth-gateway-avalanche.json +242 -0
  8. package/build/abi/aave-weth-gateway-polygon.json +242 -0
  9. package/build/abi/aave-weth-gateway.json +24 -0
  10. package/build/abi/bunni-v2/BunniHook.abi.json +1921 -0
  11. package/build/abi/bunni-v2/BunniHub.abi.json +1598 -0
  12. package/build/abi/bunni-v2/BunniToken.abi.json +833 -0
  13. package/build/abi/bunni-v2/FeeOverrideHooklet.abi.json +1947 -0
  14. package/build/abi/bunni-v2/FloodPlain.abi.json +1195 -0
  15. package/build/abi/bunni-v2/PoolManager.abi.json +1366 -0
  16. package/build/abi/bunni-v2/V4Quoter.abi.json +637 -0
  17. package/build/abi/concentrator/arUSD.json +568 -0
  18. package/build/abi/concentrator/arUSD5115.json +1746 -0
  19. package/build/abi/gmx/fast-price-events.json +70 -0
  20. package/build/abi/gmx/fast-price-feed.json +748 -0
  21. package/build/abi/gmx/reader.json +337 -0
  22. package/build/abi/gmx/vault-price-feed.json +477 -0
  23. package/build/abi/gmx/vault.json +2002 -0
  24. package/build/abi/jarvis/ChainlinkAccessControlledOffchainAggregator.json +1009 -0
  25. package/build/abi/jarvis/SynthereumPriceFeed.json +381 -0
  26. package/build/abi/jarvis/jarvis-v6-pool.json +1041 -0
  27. package/build/abi/kyberdmm/kyber-dmm-exchange-router.abi.json +1148 -0
  28. package/build/abi/kyberdmm/kyber-dmm-factory.abi.json +335 -0
  29. package/build/abi/kyberdmm/kyber-dmm-pool.abi.json +803 -0
  30. package/build/abi/synthetix/CombinedSynthetix.abi.json +442 -0
  31. package/build/abi/wombat/asset.json +743 -0
  32. package/build/abi/wombat/bmw.json +1247 -0
  33. package/build/abi/wombat/pool-v2.json +1289 -0
  34. package/build/abi/wombat/pool-v3.json +2013 -0
  35. package/build/dex/aave-v2/aave-v2.d.ts +33 -0
  36. package/build/dex/aave-v2/aave-v2.js +328 -0
  37. package/build/dex/aave-v2/aave-v2.js.map +1 -0
  38. package/build/dex/aave-v2/config.d.ts +14 -0
  39. package/build/dex/aave-v2/config.js +49 -0
  40. package/build/dex/aave-v2/config.js.map +1 -0
  41. package/build/dex/aave-v2/tokenlist.json +904 -0
  42. package/build/dex/aave-v2/tokens.d.ts +8 -0
  43. package/build/dex/aave-v2/tokens.js +65 -0
  44. package/build/dex/aave-v2/tokens.js.map +1 -0
  45. package/build/dex/aave-v2/types.d.ts +33 -0
  46. package/build/dex/aave-v2/types.js +11 -0
  47. package/build/dex/aave-v2/types.js.map +1 -0
  48. package/build/dex/bancor/bancor.d.ts +15 -0
  49. package/build/dex/bancor/bancor.js +74 -0
  50. package/build/dex/bancor/bancor.js.map +1 -0
  51. package/build/dex/bancor/config.d.ts +6 -0
  52. package/build/dex/bancor/config.js +11 -0
  53. package/build/dex/bancor/config.js.map +1 -0
  54. package/build/dex/bancor/types.d.ts +16 -0
  55. package/build/dex/bancor/types.js +8 -0
  56. package/build/dex/bancor/types.js.map +1 -0
  57. package/build/dex/bebop/bebop.js +1 -1
  58. package/build/dex/bebop/bebop.js.map +1 -1
  59. package/build/dex/bunni-v2/bunni-v2-pool.d.ts +62 -0
  60. package/build/dex/bunni-v2/bunni-v2-pool.js +505 -0
  61. package/build/dex/bunni-v2/bunni-v2-pool.js.map +1 -0
  62. package/build/dex/bunni-v2/bunni-v2.d.ts +51 -0
  63. package/build/dex/bunni-v2/bunni-v2.js +460 -0
  64. package/build/dex/bunni-v2/bunni-v2.js.map +1 -0
  65. package/build/dex/{renegade → bunni-v2}/config.d.ts +1 -1
  66. package/build/dex/bunni-v2/config.js +130 -0
  67. package/build/dex/bunni-v2/config.js.map +1 -0
  68. package/build/dex/bunni-v2/encoder.d.ts +19 -0
  69. package/build/dex/{pancakeswap-infinity → bunni-v2}/encoder.js +199 -88
  70. package/build/dex/bunni-v2/encoder.js.map +1 -0
  71. package/build/dex/bunni-v2/getOnChainState.d.ts +26 -0
  72. package/build/dex/bunni-v2/getOnChainState.js +493 -0
  73. package/build/dex/bunni-v2/getOnChainState.js.map +1 -0
  74. package/build/dex/bunni-v2/hook/BunniSwapMath.d.ts +7 -0
  75. package/build/dex/bunni-v2/hook/BunniSwapMath.js +198 -0
  76. package/build/dex/bunni-v2/hook/BunniSwapMath.js.map +1 -0
  77. package/build/dex/bunni-v2/hook/SwapMath.d.ts +8 -0
  78. package/build/dex/bunni-v2/hook/SwapMath.js +65 -0
  79. package/build/dex/bunni-v2/hook/SwapMath.js.map +1 -0
  80. package/build/dex/bunni-v2/hooklet/FeeOverrideHooklet.d.ts +33 -0
  81. package/build/dex/bunni-v2/hooklet/FeeOverrideHooklet.js +33 -0
  82. package/build/dex/bunni-v2/hooklet/FeeOverrideHooklet.js.map +1 -0
  83. package/build/dex/bunni-v2/hooklet/index.d.ts +21 -0
  84. package/build/dex/bunni-v2/hooklet/index.js +64 -0
  85. package/build/dex/bunni-v2/hooklet/index.js.map +1 -0
  86. package/build/dex/bunni-v2/ldf/CarpetedDoubleGeometricDistribution.d.ts +70 -0
  87. package/build/dex/bunni-v2/ldf/CarpetedDoubleGeometricDistribution.js +277 -0
  88. package/build/dex/bunni-v2/ldf/CarpetedDoubleGeometricDistribution.js.map +1 -0
  89. package/build/dex/bunni-v2/ldf/CarpetedGeometricDistribution.d.ts +64 -0
  90. package/build/dex/bunni-v2/ldf/CarpetedGeometricDistribution.js +262 -0
  91. package/build/dex/bunni-v2/ldf/CarpetedGeometricDistribution.js.map +1 -0
  92. package/build/dex/bunni-v2/ldf/DoubleGeometricDistribution.d.ts +60 -0
  93. package/build/dex/bunni-v2/ldf/DoubleGeometricDistribution.js +224 -0
  94. package/build/dex/bunni-v2/ldf/DoubleGeometricDistribution.js.map +1 -0
  95. package/build/dex/bunni-v2/ldf/GeometricDistribution.d.ts +56 -0
  96. package/build/dex/bunni-v2/ldf/GeometricDistribution.js +489 -0
  97. package/build/dex/bunni-v2/ldf/GeometricDistribution.js.map +1 -0
  98. package/build/dex/bunni-v2/ldf/LDFType.d.ts +5 -0
  99. package/build/dex/bunni-v2/ldf/LDFType.js +10 -0
  100. package/build/dex/bunni-v2/ldf/LDFType.js.map +1 -0
  101. package/build/dex/bunni-v2/ldf/ShiftMode.d.ts +7 -0
  102. package/build/dex/bunni-v2/ldf/ShiftMode.js +19 -0
  103. package/build/dex/bunni-v2/ldf/ShiftMode.js.map +1 -0
  104. package/build/dex/bunni-v2/ldf/UniformDistribution.d.ts +55 -0
  105. package/build/dex/bunni-v2/ldf/UniformDistribution.js +291 -0
  106. package/build/dex/bunni-v2/ldf/UniformDistribution.js.map +1 -0
  107. package/build/dex/bunni-v2/ldf/index.d.ts +15 -0
  108. package/build/dex/bunni-v2/ldf/index.js +21 -0
  109. package/build/dex/bunni-v2/ldf/index.js.map +1 -0
  110. package/build/dex/bunni-v2/lib/AmAmmPayload.d.ts +4 -0
  111. package/build/dex/bunni-v2/lib/AmAmmPayload.js +10 -0
  112. package/build/dex/bunni-v2/lib/AmAmmPayload.js.map +1 -0
  113. package/build/dex/bunni-v2/lib/BitMath.d.ts +4 -0
  114. package/build/dex/bunni-v2/lib/BitMath.js +24 -0
  115. package/build/dex/bunni-v2/lib/BitMath.js.map +1 -0
  116. package/build/dex/bunni-v2/lib/Constants.d.ts +15 -0
  117. package/build/dex/bunni-v2/lib/Constants.js +19 -0
  118. package/build/dex/bunni-v2/lib/Constants.js.map +1 -0
  119. package/build/dex/bunni-v2/lib/ExpMath.d.ts +5 -0
  120. package/build/dex/bunni-v2/lib/ExpMath.js +121 -0
  121. package/build/dex/bunni-v2/lib/ExpMath.js.map +1 -0
  122. package/build/dex/bunni-v2/lib/FeeMath.d.ts +2 -0
  123. package/build/dex/bunni-v2/lib/FeeMath.js +27 -0
  124. package/build/dex/bunni-v2/lib/FeeMath.js.map +1 -0
  125. package/build/dex/bunni-v2/lib/FixedPointMath.d.ts +3 -0
  126. package/build/dex/bunni-v2/lib/FixedPointMath.js +15 -0
  127. package/build/dex/bunni-v2/lib/FixedPointMath.js.map +1 -0
  128. package/build/dex/bunni-v2/lib/FullMathX96.d.ts +4 -0
  129. package/build/dex/bunni-v2/lib/FullMathX96.js +21 -0
  130. package/build/dex/bunni-v2/lib/FullMathX96.js.map +1 -0
  131. package/build/dex/bunni-v2/lib/IdleBalance.d.ts +11 -0
  132. package/build/dex/bunni-v2/lib/IdleBalance.js +33 -0
  133. package/build/dex/bunni-v2/lib/IdleBalance.js.map +1 -0
  134. package/build/dex/bunni-v2/lib/LiquidityAmounts.d.ts +6 -0
  135. package/build/dex/bunni-v2/lib/LiquidityAmounts.js +25 -0
  136. package/build/dex/bunni-v2/lib/LiquidityAmounts.js.map +1 -0
  137. package/build/dex/bunni-v2/lib/Math.d.ts +28 -0
  138. package/build/dex/bunni-v2/lib/Math.js +169 -0
  139. package/build/dex/bunni-v2/lib/Math.js.map +1 -0
  140. package/build/dex/bunni-v2/lib/Oracle.d.ts +27 -0
  141. package/build/dex/bunni-v2/lib/Oracle.js +180 -0
  142. package/build/dex/bunni-v2/lib/Oracle.js.map +1 -0
  143. package/build/dex/bunni-v2/lib/QueryLDF.d.ts +12 -0
  144. package/build/dex/bunni-v2/lib/QueryLDF.js +90 -0
  145. package/build/dex/bunni-v2/lib/QueryLDF.js.map +1 -0
  146. package/build/dex/bunni-v2/lib/QueryTwap.d.ts +2 -0
  147. package/build/dex/bunni-v2/lib/QueryTwap.js +13 -0
  148. package/build/dex/bunni-v2/lib/QueryTwap.js.map +1 -0
  149. package/build/dex/bunni-v2/lib/SqrtPriceMath.d.ts +8 -0
  150. package/build/dex/bunni-v2/lib/SqrtPriceMath.js +84 -0
  151. package/build/dex/bunni-v2/lib/SqrtPriceMath.js.map +1 -0
  152. package/build/dex/bunni-v2/lib/TickMath.d.ts +11 -0
  153. package/build/dex/bunni-v2/lib/TickMath.js +100 -0
  154. package/build/dex/bunni-v2/lib/TickMath.js.map +1 -0
  155. package/build/dex/bunni-v2/lib/VaultMath.d.ts +2 -0
  156. package/build/dex/bunni-v2/lib/VaultMath.js +11 -0
  157. package/build/dex/bunni-v2/lib/VaultMath.js.map +1 -0
  158. package/build/dex/bunni-v2/logic/AmAmm.d.ts +11 -0
  159. package/build/dex/bunni-v2/logic/AmAmm.js +156 -0
  160. package/build/dex/bunni-v2/logic/AmAmm.js.map +1 -0
  161. package/build/dex/bunni-v2/logic/BunniHookLogic.d.ts +10 -0
  162. package/build/dex/bunni-v2/logic/BunniHookLogic.js +298 -0
  163. package/build/dex/bunni-v2/logic/BunniHookLogic.js.map +1 -0
  164. package/build/dex/bunni-v2/logic/BunniHubLogic.d.ts +5 -0
  165. package/build/dex/bunni-v2/logic/BunniHubLogic.js +245 -0
  166. package/build/dex/bunni-v2/logic/BunniHubLogic.js.map +1 -0
  167. package/build/dex/bunni-v2/logic/BunniQuoter.d.ts +12 -0
  168. package/build/dex/bunni-v2/logic/BunniQuoter.js +201 -0
  169. package/build/dex/bunni-v2/logic/BunniQuoter.js.map +1 -0
  170. package/build/dex/bunni-v2/subgraph.d.ts +7 -0
  171. package/build/dex/bunni-v2/subgraph.js +184 -0
  172. package/build/dex/bunni-v2/subgraph.js.map +1 -0
  173. package/build/dex/bunni-v2/types.d.ts +257 -0
  174. package/build/dex/{renegade/api → bunni-v2}/types.js.map +1 -1
  175. package/build/dex/bunni-v2/utils.d.ts +12 -0
  176. package/build/dex/bunni-v2/utils.js +182 -0
  177. package/build/dex/bunni-v2/utils.js.map +1 -0
  178. package/build/dex/compound/compound.d.ts +15 -0
  179. package/build/dex/compound/compound.js +57 -0
  180. package/build/dex/compound/compound.js.map +1 -0
  181. package/build/dex/compound/types.d.ts +8 -0
  182. package/build/dex/compound/types.js +9 -0
  183. package/build/dex/compound/types.js.map +1 -0
  184. package/build/dex/concentrator-arusd/concentrator-arusd-event.d.ts +17 -0
  185. package/build/dex/concentrator-arusd/concentrator-arusd-event.js +69 -0
  186. package/build/dex/concentrator-arusd/concentrator-arusd-event.js.map +1 -0
  187. package/build/dex/concentrator-arusd/concentrator-arusd.d.ts +41 -0
  188. package/build/dex/concentrator-arusd/concentrator-arusd.js +202 -0
  189. package/build/dex/concentrator-arusd/concentrator-arusd.js.map +1 -0
  190. package/build/dex/concentrator-arusd/config.d.ts +3 -0
  191. package/build/dex/concentrator-arusd/config.js +14 -0
  192. package/build/dex/concentrator-arusd/config.js.map +1 -0
  193. package/build/dex/concentrator-arusd/types.d.ts +14 -0
  194. package/build/dex/concentrator-arusd/types.js.map +1 -0
  195. package/build/dex/concentrator-arusd/utils.d.ts +4 -0
  196. package/build/dex/concentrator-arusd/utils.js +26 -0
  197. package/build/dex/concentrator-arusd/utils.js.map +1 -0
  198. package/build/dex/curve-v1/forks/swerve/config.d.ts +4 -0
  199. package/build/dex/curve-v1/forks/swerve/config.js +47 -0
  200. package/build/dex/curve-v1/forks/swerve/config.js.map +1 -0
  201. package/build/dex/curve-v1/forks/swerve/swerve.d.ts +16 -0
  202. package/build/dex/curve-v1/forks/swerve/swerve.js +46 -0
  203. package/build/dex/curve-v1/forks/swerve/swerve.js.map +1 -0
  204. package/build/dex/gmx/config.d.ts +11 -0
  205. package/build/dex/gmx/config.js +61 -0
  206. package/build/dex/gmx/config.js.map +1 -0
  207. package/build/dex/gmx/fast-price-feed.d.ts +26 -0
  208. package/build/dex/gmx/fast-price-feed.js +184 -0
  209. package/build/dex/gmx/fast-price-feed.js.map +1 -0
  210. package/build/dex/gmx/gmx.d.ts +54 -0
  211. package/build/dex/gmx/gmx.js +247 -0
  212. package/build/dex/gmx/gmx.js.map +1 -0
  213. package/build/dex/gmx/pool.d.ts +21 -0
  214. package/build/dex/gmx/pool.js +212 -0
  215. package/build/dex/gmx/pool.js.map +1 -0
  216. package/build/dex/gmx/types.d.ts +100 -0
  217. package/build/dex/gmx/types.js +3 -0
  218. package/build/dex/gmx/types.js.map +1 -0
  219. package/build/dex/gmx/usdg.d.ts +15 -0
  220. package/build/dex/gmx/usdg.js +62 -0
  221. package/build/dex/gmx/usdg.js.map +1 -0
  222. package/build/dex/gmx/vault-price-feed.d.ts +47 -0
  223. package/build/dex/gmx/vault-price-feed.js +245 -0
  224. package/build/dex/gmx/vault-price-feed.js.map +1 -0
  225. package/build/dex/gmx/vault-utils.d.ts +8 -0
  226. package/build/dex/gmx/vault-utils.js +42 -0
  227. package/build/dex/gmx/vault-utils.js.map +1 -0
  228. package/build/dex/gmx/vault.d.ts +46 -0
  229. package/build/dex/gmx/vault.js +182 -0
  230. package/build/dex/gmx/vault.js.map +1 -0
  231. package/build/dex/jarvis-v6/chainLinkpriceFeed-event.d.ts +15 -0
  232. package/build/dex/jarvis-v6/chainLinkpriceFeed-event.js +51 -0
  233. package/build/dex/jarvis-v6/chainLinkpriceFeed-event.js.map +1 -0
  234. package/build/dex/jarvis-v6/config.d.ts +4 -0
  235. package/build/dex/jarvis-v6/config.js +244 -0
  236. package/build/dex/jarvis-v6/config.js.map +1 -0
  237. package/build/dex/jarvis-v6/jarvis-v6-events.d.ts +27 -0
  238. package/build/dex/jarvis-v6/jarvis-v6-events.js +54 -0
  239. package/build/dex/jarvis-v6/jarvis-v6-events.js.map +1 -0
  240. package/build/dex/jarvis-v6/jarvis-v6.d.ts +49 -0
  241. package/build/dex/jarvis-v6/jarvis-v6.js +321 -0
  242. package/build/dex/jarvis-v6/jarvis-v6.js.map +1 -0
  243. package/build/dex/jarvis-v6/syntheteumPool-event.d.ts +15 -0
  244. package/build/dex/jarvis-v6/syntheteumPool-event.js +49 -0
  245. package/build/dex/jarvis-v6/syntheteumPool-event.js.map +1 -0
  246. package/build/dex/jarvis-v6/types.d.ts +48 -0
  247. package/build/dex/jarvis-v6/types.js +9 -0
  248. package/build/dex/jarvis-v6/types.js.map +1 -0
  249. package/build/dex/jarvis-v6/utils.d.ts +13 -0
  250. package/build/dex/jarvis-v6/utils.js +75 -0
  251. package/build/dex/jarvis-v6/utils.js.map +1 -0
  252. package/build/dex/kyberdmm/config.d.ts +9 -0
  253. package/build/dex/kyberdmm/config.js +59 -0
  254. package/build/dex/kyberdmm/config.js.map +1 -0
  255. package/build/dex/kyberdmm/fee-formula.d.ts +15 -0
  256. package/build/dex/kyberdmm/fee-formula.js +88 -0
  257. package/build/dex/kyberdmm/fee-formula.js.map +1 -0
  258. package/build/dex/kyberdmm/kyberdmm.d.ts +55 -0
  259. package/build/dex/kyberdmm/kyberdmm.js +447 -0
  260. package/build/dex/kyberdmm/kyberdmm.js.map +1 -0
  261. package/build/dex/kyberdmm/math-ext.d.ts +2 -0
  262. package/build/dex/kyberdmm/math-ext.js +27 -0
  263. package/build/dex/kyberdmm/math-ext.js.map +1 -0
  264. package/build/dex/kyberdmm/pool.d.ts +50 -0
  265. package/build/dex/kyberdmm/pool.js +157 -0
  266. package/build/dex/kyberdmm/pool.js.map +1 -0
  267. package/build/dex/kyberdmm/types.d.ts +81 -0
  268. package/build/dex/kyberdmm/types.js +9 -0
  269. package/build/dex/kyberdmm/types.js.map +1 -0
  270. package/build/dex/quickswap/thena-fusion.d.ts +6 -0
  271. package/build/dex/quickswap/thena-fusion.js +19 -0
  272. package/build/dex/quickswap/thena-fusion.js.map +1 -0
  273. package/build/dex/smoothy/smoothy.d.ts +16 -0
  274. package/build/dex/smoothy/smoothy.js +60 -0
  275. package/build/dex/smoothy/smoothy.js.map +1 -0
  276. package/build/dex/smoothy/types.d.ts +15 -0
  277. package/build/dex/smoothy/types.js +8 -0
  278. package/build/dex/smoothy/types.js.map +1 -0
  279. package/build/dex/stader/config.d.ts +3 -0
  280. package/build/dex/stader/config.js +14 -0
  281. package/build/dex/stader/config.js.map +1 -0
  282. package/build/dex/stader/stader-pool.d.ts +19 -0
  283. package/build/dex/stader/stader-pool.js +56 -0
  284. package/build/dex/stader/stader-pool.js.map +1 -0
  285. package/build/dex/stader/stader.d.ts +42 -0
  286. package/build/dex/stader/stader.js +195 -0
  287. package/build/dex/stader/stader.js.map +1 -0
  288. package/build/dex/stader/types.d.ts +13 -0
  289. package/build/dex/stader/types.js +8 -0
  290. package/build/dex/stader/types.js.map +1 -0
  291. package/build/dex/stader/utils.d.ts +4 -0
  292. package/build/dex/stader/utils.js +23 -0
  293. package/build/dex/stader/utils.js.map +1 -0
  294. package/build/dex/synthetix/config.d.ts +4 -0
  295. package/build/dex/synthetix/config.js +53 -0
  296. package/build/dex/synthetix/config.js.map +1 -0
  297. package/build/dex/synthetix/constants.d.ts +23 -0
  298. package/build/dex/synthetix/constants.js +32 -0
  299. package/build/dex/synthetix/constants.js.map +1 -0
  300. package/build/dex/synthetix/contract-math/DexPriceAggregatorUniswapV3.d.ts +17 -0
  301. package/build/dex/synthetix/contract-math/DexPriceAggregatorUniswapV3.js +102 -0
  302. package/build/dex/synthetix/contract-math/DexPriceAggregatorUniswapV3.js.map +1 -0
  303. package/build/dex/synthetix/contract-math/ExchangeRates.d.ts +8 -0
  304. package/build/dex/synthetix/contract-math/ExchangeRates.js +77 -0
  305. package/build/dex/synthetix/contract-math/ExchangeRates.js.map +1 -0
  306. package/build/dex/synthetix/contract-math/ExchangeRatesWithDexPricing.d.ts +17 -0
  307. package/build/dex/synthetix/contract-math/ExchangeRatesWithDexPricing.js +126 -0
  308. package/build/dex/synthetix/contract-math/ExchangeRatesWithDexPricing.js.map +1 -0
  309. package/build/dex/synthetix/contract-math/FullMath.d.ts +3 -0
  310. package/build/dex/synthetix/contract-math/FullMath.js +14 -0
  311. package/build/dex/synthetix/contract-math/FullMath.js.map +1 -0
  312. package/build/dex/synthetix/contract-math/OracleLibrary.d.ts +8 -0
  313. package/build/dex/synthetix/contract-math/OracleLibrary.js +60 -0
  314. package/build/dex/synthetix/contract-math/OracleLibrary.js.map +1 -0
  315. package/build/dex/synthetix/contract-math/SafeDecimalMath.d.ts +9 -0
  316. package/build/dex/synthetix/contract-math/SafeDecimalMath.js +41 -0
  317. package/build/dex/synthetix/contract-math/SafeDecimalMath.js.map +1 -0
  318. package/build/dex/synthetix/contract-math/TickMath.d.ts +7 -0
  319. package/build/dex/synthetix/contract-math/TickMath.js +63 -0
  320. package/build/dex/synthetix/contract-math/TickMath.js.map +1 -0
  321. package/build/dex/synthetix/contract-math/synthetix-math.d.ts +17 -0
  322. package/build/dex/synthetix/contract-math/synthetix-math.js +127 -0
  323. package/build/dex/synthetix/contract-math/synthetix-math.js.map +1 -0
  324. package/build/dex/synthetix/synthetix-state.d.ts +36 -0
  325. package/build/dex/synthetix/synthetix-state.js +615 -0
  326. package/build/dex/synthetix/synthetix-state.js.map +1 -0
  327. package/build/dex/synthetix/synthetix.d.ts +45 -0
  328. package/build/dex/synthetix/synthetix.js +304 -0
  329. package/build/dex/synthetix/synthetix.js.map +1 -0
  330. package/build/dex/synthetix/types.d.ts +90 -0
  331. package/build/dex/synthetix/types.js +3 -0
  332. package/build/dex/synthetix/types.js.map +1 -0
  333. package/build/dex/synthetix/utils.d.ts +10 -0
  334. package/build/dex/synthetix/utils.js +91 -0
  335. package/build/dex/synthetix/utils.js.map +1 -0
  336. package/build/dex/trader-joe-v2.1/trader-joe-v2.1.d.ts +7 -0
  337. package/build/dex/trader-joe-v2.1/trader-joe-v2.1.js +20 -0
  338. package/build/dex/trader-joe-v2.1/trader-joe-v2.1.js.map +1 -0
  339. package/build/dex/uniswap-v4/api-go/compare-pricing.d.ts +1 -0
  340. package/build/dex/uniswap-v4/api-go/compare-pricing.js +187 -0
  341. package/build/dex/uniswap-v4/api-go/compare-pricing.js.map +1 -0
  342. package/build/dex/uniswap-v4/api-go/compare-states.d.ts +1 -0
  343. package/build/dex/uniswap-v4/api-go/compare-states.js +149 -0
  344. package/build/dex/uniswap-v4/api-go/compare-states.js.map +1 -0
  345. package/build/dex/uniswap-v4/api-go/fetch-pool-key.d.ts +0 -0
  346. package/build/dex/uniswap-v4/api-go/fetch-pool-key.js +140 -0
  347. package/build/dex/uniswap-v4/api-go/fetch-pool-key.js.map +1 -0
  348. package/build/dex/wombat/config.d.ts +4 -0
  349. package/build/dex/wombat/config.js +77 -0
  350. package/build/dex/wombat/config.js.map +1 -0
  351. package/build/dex/wombat/types.d.ts +34 -0
  352. package/build/dex/wombat/types.js +3 -0
  353. package/build/dex/wombat/types.js.map +1 -0
  354. package/build/dex/wombat/utils.d.ts +10 -0
  355. package/build/dex/wombat/utils.js +79 -0
  356. package/build/dex/wombat/utils.js.map +1 -0
  357. package/build/dex/wombat/wombat-bmw.d.ts +40 -0
  358. package/build/dex/wombat/wombat-bmw.js +136 -0
  359. package/build/dex/wombat/wombat-bmw.js.map +1 -0
  360. package/build/dex/wombat/wombat-pool.d.ts +60 -0
  361. package/build/dex/wombat/wombat-pool.js +488 -0
  362. package/build/dex/wombat/wombat-pool.js.map +1 -0
  363. package/build/dex/wombat/wombat-quoter.d.ts +17 -0
  364. package/build/dex/wombat/wombat-quoter.js +192 -0
  365. package/build/dex/wombat/wombat-quoter.js.map +1 -0
  366. package/build/dex/wombat/wombat.d.ts +58 -0
  367. package/build/dex/wombat/wombat.js +298 -0
  368. package/build/dex/wombat/wombat.js.map +1 -0
  369. package/build/tenderly-simulation.d.ts +221 -0
  370. package/build/tenderly-simulation.js +517 -0
  371. package/build/tenderly-simulation.js.map +1 -0
  372. package/package.json +1 -1
  373. package/build/abi/pancakeswap-infinity/cl-pool-manager.abi.json +0 -136
  374. package/build/abi/pancakeswap-infinity/cl-quoter.abi.json +0 -66
  375. package/build/abi/pancakeswap-infinity/router.abi.json +0 -23
  376. package/build/dex/pancakeswap-infinity/config.d.ts +0 -4
  377. package/build/dex/pancakeswap-infinity/config.js +0 -30
  378. package/build/dex/pancakeswap-infinity/config.js.map +0 -1
  379. package/build/dex/pancakeswap-infinity/constants.d.ts +0 -11
  380. package/build/dex/pancakeswap-infinity/constants.js +0 -15
  381. package/build/dex/pancakeswap-infinity/constants.js.map +0 -1
  382. package/build/dex/pancakeswap-infinity/encoder.d.ts +0 -16
  383. package/build/dex/pancakeswap-infinity/encoder.js.map +0 -1
  384. package/build/dex/pancakeswap-infinity/liquidity.d.ts +0 -1
  385. package/build/dex/pancakeswap-infinity/liquidity.js +0 -7
  386. package/build/dex/pancakeswap-infinity/liquidity.js.map +0 -1
  387. package/build/dex/pancakeswap-infinity/optimizer.d.ts +0 -2
  388. package/build/dex/pancakeswap-infinity/optimizer.js +0 -48
  389. package/build/dex/pancakeswap-infinity/optimizer.js.map +0 -1
  390. package/build/dex/pancakeswap-infinity/pancakeswap-infinity-pool-manager.d.ts +0 -36
  391. package/build/dex/pancakeswap-infinity/pancakeswap-infinity-pool-manager.js +0 -393
  392. package/build/dex/pancakeswap-infinity/pancakeswap-infinity-pool-manager.js.map +0 -1
  393. package/build/dex/pancakeswap-infinity/pancakeswap-infinity-pool.d.ts +0 -37
  394. package/build/dex/pancakeswap-infinity/pancakeswap-infinity-pool.js +0 -289
  395. package/build/dex/pancakeswap-infinity/pancakeswap-infinity-pool.js.map +0 -1
  396. package/build/dex/pancakeswap-infinity/pancakeswap-infinity.d.ts +0 -42
  397. package/build/dex/pancakeswap-infinity/pancakeswap-infinity.js +0 -350
  398. package/build/dex/pancakeswap-infinity/pancakeswap-infinity.js.map +0 -1
  399. package/build/dex/pancakeswap-infinity/subgraph.d.ts +0 -8
  400. package/build/dex/pancakeswap-infinity/subgraph.js +0 -122
  401. package/build/dex/pancakeswap-infinity/subgraph.js.map +0 -1
  402. package/build/dex/pancakeswap-infinity/types.d.ts +0 -101
  403. package/build/dex/pancakeswap-infinity/types.js.map +0 -1
  404. package/build/dex/pancakeswap-infinity/utils.d.ts +0 -5
  405. package/build/dex/pancakeswap-infinity/utils.js +0 -45
  406. package/build/dex/pancakeswap-infinity/utils.js.map +0 -1
  407. package/build/dex/renegade/api/auth.d.ts +0 -1
  408. package/build/dex/renegade/api/auth.js +0 -63
  409. package/build/dex/renegade/api/auth.js.map +0 -1
  410. package/build/dex/renegade/api/renegade-client.d.ts +0 -18
  411. package/build/dex/renegade/api/renegade-client.js +0 -82
  412. package/build/dex/renegade/api/renegade-client.js.map +0 -1
  413. package/build/dex/renegade/api/types.d.ts +0 -110
  414. package/build/dex/renegade/config.js +0 -16
  415. package/build/dex/renegade/config.js.map +0 -1
  416. package/build/dex/renegade/constants.d.ts +0 -25
  417. package/build/dex/renegade/constants.js +0 -47
  418. package/build/dex/renegade/constants.js.map +0 -1
  419. package/build/dex/renegade/rate-fetcher.d.ts +0 -23
  420. package/build/dex/renegade/rate-fetcher.js +0 -135
  421. package/build/dex/renegade/rate-fetcher.js.map +0 -1
  422. package/build/dex/renegade/renegade-levels-response.d.ts +0 -22
  423. package/build/dex/renegade/renegade-levels-response.js +0 -99
  424. package/build/dex/renegade/renegade-levels-response.js.map +0 -1
  425. package/build/dex/renegade/renegade.d.ts +0 -57
  426. package/build/dex/renegade/renegade.js +0 -499
  427. package/build/dex/renegade/renegade.js.map +0 -1
  428. package/build/dex/renegade/types.d.ts +0 -38
  429. package/build/dex/renegade/types.js +0 -4
  430. package/build/dex/renegade/types.js.map +0 -1
  431. /package/build/dex/{pancakeswap-infinity → bunni-v2}/types.js +0 -0
  432. /package/build/dex/{renegade/api → concentrator-arusd}/types.js +0 -0
@@ -0,0 +1,517 @@
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 () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.TenderlySimulator = void 0;
40
+ /* eslint-disable no-console */
41
+ require("dotenv/config");
42
+ const axios_1 = __importDefault(require("axios"));
43
+ const ethers_1 = require("ethers");
44
+ const fs = __importStar(require("fs/promises"));
45
+ const path = __importStar(require("path"));
46
+ const constants_1 = require("./constants");
47
+ const lodash_1 = require("lodash");
48
+ let TENDERLY_TOKEN = process.env.TENDERLY_TOKEN;
49
+ let TENDERLY_ACCOUNT_ID = process.env.TENDERLY_ACCOUNT_ID;
50
+ let TENDERLY_PROJECT = process.env.TENDERLY_PROJECT;
51
+ let TENDERLY_VNET_ID = process.env.TENDERLY_VNET_ID;
52
+ class TokenStorageSlotsCache {
53
+ static cache = null;
54
+ static TOKEN_FILE_STORAGE_SLOTS = null;
55
+ static TOKEN_STORAGE_SLOTS_FILEPATH = path.join(__dirname, '../tests/token-storage-slots.json');
56
+ static setRedisCache(cache) {
57
+ TokenStorageSlotsCache.cache = cache ?? null;
58
+ }
59
+ static redisKey(chainId) {
60
+ return `token_storage_slots_${chainId}`;
61
+ }
62
+ static async loadTokenFileStorageSlots() {
63
+ return JSON.parse(await fs.readFile(TokenStorageSlotsCache.TOKEN_STORAGE_SLOTS_FILEPATH, {
64
+ encoding: 'utf-8',
65
+ }));
66
+ }
67
+ static async saveTokenFileStorageSlots() {
68
+ await fs.writeFile(TokenStorageSlotsCache.TOKEN_STORAGE_SLOTS_FILEPATH, JSON.stringify(TokenStorageSlotsCache.TOKEN_FILE_STORAGE_SLOTS, null, 2) +
69
+ '\n', { encoding: 'utf-8' });
70
+ }
71
+ static async getTokenStorageSlots(chainId, token) {
72
+ const normalizedToken = token.toLowerCase();
73
+ if (TokenStorageSlotsCache.cache) {
74
+ try {
75
+ const cached = await TokenStorageSlotsCache.cache.hget(TokenStorageSlotsCache.redisKey(chainId), normalizedToken);
76
+ if (cached) {
77
+ return JSON.parse(cached);
78
+ }
79
+ }
80
+ catch (e) {
81
+ // Redis error — fall through to return null
82
+ }
83
+ return null;
84
+ }
85
+ if (!TokenStorageSlotsCache.TOKEN_FILE_STORAGE_SLOTS) {
86
+ TokenStorageSlotsCache.TOKEN_FILE_STORAGE_SLOTS =
87
+ await TokenStorageSlotsCache.loadTokenFileStorageSlots();
88
+ }
89
+ return (TokenStorageSlotsCache.TOKEN_FILE_STORAGE_SLOTS[chainId]?.[normalizedToken] ?? null);
90
+ }
91
+ static async setTokenStorageSlots(chainId, token, slots) {
92
+ const normalizedToken = token.toLowerCase();
93
+ if (TokenStorageSlotsCache.cache) {
94
+ void TokenStorageSlotsCache.cache.hset(TokenStorageSlotsCache.redisKey(chainId), normalizedToken, JSON.stringify(slots));
95
+ return;
96
+ }
97
+ if (!TokenStorageSlotsCache.TOKEN_FILE_STORAGE_SLOTS) {
98
+ TokenStorageSlotsCache.TOKEN_FILE_STORAGE_SLOTS =
99
+ await TokenStorageSlotsCache.loadTokenFileStorageSlots();
100
+ }
101
+ TokenStorageSlotsCache.TOKEN_FILE_STORAGE_SLOTS ||= {};
102
+ TokenStorageSlotsCache.TOKEN_FILE_STORAGE_SLOTS[chainId] ||= {};
103
+ TokenStorageSlotsCache.TOKEN_FILE_STORAGE_SLOTS[chainId][normalizedToken] =
104
+ slots;
105
+ void TokenStorageSlotsCache.saveTokenFileStorageSlots();
106
+ }
107
+ }
108
+ class TenderlySimulator {
109
+ // public constants
110
+ static DEFAULT_OWNER = '0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa';
111
+ static DEFAULT_SPENDER = '0xbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb';
112
+ // singleton
113
+ static instance;
114
+ constructor() { }
115
+ static getInstance(cache, tenderlyToken, tenderlyProject, tenderlyAccountId) {
116
+ if (!TenderlySimulator.instance) {
117
+ TenderlySimulator.instance = new TenderlySimulator();
118
+ }
119
+ if (cache) {
120
+ TokenStorageSlotsCache.setRedisCache(cache);
121
+ }
122
+ if (tenderlyToken) {
123
+ TENDERLY_TOKEN = tenderlyToken;
124
+ }
125
+ if (tenderlyProject) {
126
+ TENDERLY_PROJECT = tenderlyProject;
127
+ }
128
+ if (tenderlyAccountId) {
129
+ TENDERLY_ACCOUNT_ID = tenderlyAccountId;
130
+ }
131
+ return TenderlySimulator.instance;
132
+ }
133
+ async simulateTransaction(request, forceSimulationAPI = false) {
134
+ if (TENDERLY_VNET_ID && !forceSimulationAPI) {
135
+ return this.simulateWithTenderlyVNet(request);
136
+ }
137
+ else {
138
+ return this.simulateWithTenderlySimulationAPI(request);
139
+ }
140
+ }
141
+ async simulateWithTenderlySimulationAPI(request) {
142
+ const data = {
143
+ network_id: request.chainId,
144
+ from: request.from,
145
+ to: request.to,
146
+ input: request.data,
147
+ value: request.value,
148
+ save: true,
149
+ save_if_fails: true,
150
+ state_objects: request.stateOverride,
151
+ block_number: request.blockNumber,
152
+ };
153
+ console.log('Sending transaction simulation with params:');
154
+ console.log(JSON.stringify(data, null, 2));
155
+ const { data: { transaction, simulation }, } = await axios_1.default.post(`https://api.tenderly.co/api/v1/account/${TENDERLY_ACCOUNT_ID}/project/${TENDERLY_PROJECT}/simulate`, data, {
156
+ headers: {
157
+ 'X-Access-Key': TENDERLY_TOKEN,
158
+ },
159
+ });
160
+ const url = `https://dashboard.tenderly.co/${TENDERLY_ACCOUNT_ID}/${TENDERLY_PROJECT}/simulator/${simulation.id}`;
161
+ console.log('Successfully simulated a transaction:');
162
+ console.log(`Simulation URL - ${url}`);
163
+ return { transaction, simulation };
164
+ }
165
+ async simulateWithTenderlyVNet(request) {
166
+ const data = {
167
+ network_id: request.chainId,
168
+ from: request.from,
169
+ to: request.to,
170
+ input: request.data,
171
+ value: request.value,
172
+ save: true,
173
+ save_if_fails: true,
174
+ state_objects: request.stateOverride,
175
+ block_number: request.blockNumber,
176
+ };
177
+ console.log('Sending transaction simulation with params:');
178
+ console.log(JSON.stringify(data, null, 2));
179
+ const { data: { transaction, simulation }, } = await axios_1.default.post(`https://api.tenderly.co/api/v1/account/${TENDERLY_ACCOUNT_ID}/project/${TENDERLY_PROJECT}/testnet/${TENDERLY_VNET_ID}/simulate`, data, {
180
+ headers: {
181
+ 'X-Access-Key': TENDERLY_TOKEN,
182
+ },
183
+ });
184
+ const url = `https://dashboard.tenderly.co/${TENDERLY_ACCOUNT_ID}/${TENDERLY_PROJECT}/testnet/${TENDERLY_VNET_ID}/simulator/${simulation.id}`;
185
+ console.log('Successfully simulated a transaction:');
186
+ console.log(`Simulation URL - ${url}`);
187
+ return { transaction, simulation };
188
+ }
189
+ async getSimulatedTransactionDetails(id) {
190
+ try {
191
+ const { data } = await axios_1.default.post(`https://api.tenderly.co/api/v1/account/${TENDERLY_ACCOUNT_ID}/project/${TENDERLY_PROJECT}/simulations/${id}`, {}, { headers: { 'X-Access-Key': TENDERLY_TOKEN } });
192
+ return data;
193
+ }
194
+ catch (e) {
195
+ console.error(e);
196
+ return null;
197
+ }
198
+ }
199
+ getSLOADCalls = (callTrace, parentCall = null) => {
200
+ const results = [];
201
+ if (callTrace.call_type === 'SLOAD') {
202
+ results.push({ ...callTrace, parentCall });
203
+ }
204
+ if (callTrace.calls) {
205
+ for (const call of callTrace.calls) {
206
+ results.push(...this.getSLOADCalls(call, callTrace));
207
+ }
208
+ }
209
+ return results;
210
+ };
211
+ /**
212
+ *
213
+ * @param balanceOfSlot storage slot of `balanceOf` mapping
214
+ * @param owner account's address
215
+ * @param isVyper `true` if contract is written in Vyper
216
+ */
217
+ calculateAddressBalanceSlot(balanceOfSlot, owner, isVyper = false) {
218
+ return isVyper
219
+ ? this.calculateVyperAddressBalanceSlot(balanceOfSlot, owner)
220
+ : this.calculateSolidityAddressBalanceSlot(balanceOfSlot, owner);
221
+ }
222
+ /**
223
+ *
224
+ * @param balanceOfSlot storage slot of `balanceOf` mapping
225
+ * @param owner account's address
226
+ */
227
+ calculateSolidityAddressBalanceSlot(balanceOfSlot, owner) {
228
+ return ethers_1.ethers.utils.keccak256(ethers_1.ethers.utils.concat([ethers_1.ethers.utils.hexZeroPad(owner, 32), balanceOfSlot]));
229
+ }
230
+ /**
231
+ *
232
+ * @param balanceOfSlot storage slot of `balanceOf` mapping
233
+ * @param owner account's address
234
+ */
235
+ calculateVyperAddressBalanceSlot(balanceOfSlot, owner) {
236
+ return ethers_1.ethers.utils.keccak256(ethers_1.ethers.utils.concat([balanceOfSlot, ethers_1.ethers.utils.hexZeroPad(owner, 32)]));
237
+ }
238
+ /**
239
+ *
240
+ * @param allowanceSlot storage slot of `allowance` mapping
241
+ * @param owner account's address
242
+ * @param spender spender's address
243
+ * @param isVyper `true` if contract is written in Vyper
244
+ */
245
+ calculateAddressAllowanceSlot(allowanceSlot, owner, spender, isVyper = false) {
246
+ return isVyper
247
+ ? this.calculateVyperAddressAllowanceSlot(allowanceSlot, owner, spender)
248
+ : this.calculateSolidityAddressAllowanceSlot(allowanceSlot, owner, spender);
249
+ }
250
+ /**
251
+ *
252
+ * @param allowanceSlot storage slot of `allowance` mapping
253
+ * @param owner account's address
254
+ * @param spender spender's address
255
+ */
256
+ calculateSolidityAddressAllowanceSlot(allowanceSlot, owner, spender) {
257
+ const slotHash = ethers_1.ethers.utils.keccak256(ethers_1.ethers.utils.concat([
258
+ ethers_1.ethers.utils.hexZeroPad(owner, 32),
259
+ ethers_1.ethers.utils.hexZeroPad(allowanceSlot, 32),
260
+ ]));
261
+ return ethers_1.ethers.utils.keccak256(ethers_1.ethers.utils.concat([ethers_1.ethers.utils.hexZeroPad(spender, 32), slotHash]));
262
+ }
263
+ /**
264
+ *
265
+ * @param allowanceSlot storage slot of `allowance` mapping
266
+ * @param owner account's address
267
+ * @param spender spender's address
268
+ */
269
+ calculateVyperAddressAllowanceSlot(allowanceSlot, owner, spender) {
270
+ const slotHash = ethers_1.ethers.utils.keccak256(ethers_1.ethers.utils.concat([
271
+ ethers_1.ethers.utils.hexZeroPad(allowanceSlot, 32),
272
+ ethers_1.ethers.utils.hexZeroPad(owner, 32),
273
+ ]));
274
+ return ethers_1.ethers.utils.keccak256(ethers_1.ethers.utils.concat([slotHash, ethers_1.ethers.utils.hexZeroPad(spender, 32)]));
275
+ }
276
+ buildBalanceOfSimulationRequest(chainId, token, owner) {
277
+ const iface = new ethers_1.ethers.utils.Interface([
278
+ 'function balanceOf(address owner) view returns (uint)',
279
+ ]);
280
+ return {
281
+ from: ethers_1.ethers.constants.AddressZero,
282
+ to: token,
283
+ data: iface.encodeFunctionData('balanceOf', [owner]),
284
+ chainId,
285
+ };
286
+ }
287
+ buildAllowanceSimulationRequest(chainId, token, owner, spender) {
288
+ const iface = new ethers_1.ethers.utils.Interface([
289
+ 'function allowance(address owner, address spender) view returns (uint)',
290
+ ]);
291
+ return {
292
+ from: ethers_1.ethers.constants.AddressZero,
293
+ to: token,
294
+ data: iface.encodeFunctionData('allowance', [owner, spender]),
295
+ chainId,
296
+ };
297
+ }
298
+ /**
299
+ * Finds the slot of the `balanceOf` mapping in given token contract's storage.
300
+ * Supports `Solidity` and `Vyper` contracts
301
+ * @param chainId token chain id
302
+ * @param token token address
303
+ */
304
+ async findTokenBalanceOfSlot(chainId, token) {
305
+ const account = TenderlySimulator.DEFAULT_OWNER;
306
+ const balanceOfSimulationRequest = this.buildBalanceOfSimulationRequest(chainId, token, account);
307
+ const { simulation: { id: simulationId }, } = await this.simulateTransaction(balanceOfSimulationRequest, true);
308
+ const simulationDetails = await this.getSimulatedTransactionDetails(simulationId);
309
+ if (!simulationDetails) {
310
+ throw `No simulation with id ${simulationId} details found`;
311
+ }
312
+ const callTrace = simulationDetails.transaction.transaction_info.call_trace;
313
+ const sloadCalls = this.getSLOADCalls(callTrace);
314
+ // token's storage slots that were read during the `balanceOf` call
315
+ const readSlots = sloadCalls
316
+ .map(call => ({
317
+ slot: call.storage_slot?.[0],
318
+ address: call.storage_address,
319
+ parentCallType: call.parentCall ? call.parentCall.call_type : null,
320
+ }))
321
+ .filter(({ slot }) => !!slot);
322
+ const startingPoints = [
323
+ // regular contract
324
+ 0n,
325
+ // ERC20Upgradeable
326
+ BigInt('0x52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace00'),
327
+ ];
328
+ for (const startingPoint of startingPoints) {
329
+ for (let i = startingPoint; i < startingPoint + 1000n; i += 1n) {
330
+ const candidateSlot = ethers_1.ethers.utils.defaultAbiCoder.encode(['uint'], [i]);
331
+ // try solidity slot
332
+ const solitidyBalanceOfSlot = this.calculateSolidityAddressBalanceSlot(candidateSlot, account);
333
+ const foundSoliditySlot = readSlots.find(({ slot }) => slot === solitidyBalanceOfSlot);
334
+ if (foundSoliditySlot) {
335
+ return foundSoliditySlot.address !== token.toLowerCase() &&
336
+ foundSoliditySlot.parentCallType !== 'DELEGATECALL'
337
+ ? { slot: candidateSlot, stateProxy: foundSoliditySlot.address }
338
+ : { slot: candidateSlot };
339
+ }
340
+ // try vyper slot
341
+ const vyperBalanceOfSlot = this.calculateVyperAddressBalanceSlot(candidateSlot, account);
342
+ const foundVyperSlot = readSlots.find(({ slot }) => slot === vyperBalanceOfSlot);
343
+ if (foundVyperSlot) {
344
+ return foundVyperSlot.address === token.toLowerCase() &&
345
+ foundVyperSlot.parentCallType !== 'DELEGATECALL'
346
+ ? {
347
+ slot: candidateSlot,
348
+ isVyper: true,
349
+ stateProxy: foundVyperSlot.address,
350
+ }
351
+ : { slot: candidateSlot, isVyper: true };
352
+ }
353
+ }
354
+ }
355
+ throw new Error(`Could not find a 'balanceOf' mapping slot for token ${token} on chain ${chainId}`);
356
+ }
357
+ /**
358
+ * Finds the slot of the `allowance` mapping in given token contract's storage
359
+ * Supports `Solidity` and `Vyper` contracts
360
+ * @param chainId token chain id
361
+ * @param token token address
362
+ */
363
+ async findTokenAllowanceSlot(chainId, token) {
364
+ const account = TenderlySimulator.DEFAULT_OWNER;
365
+ const spender = TenderlySimulator.DEFAULT_SPENDER;
366
+ const allowanceSimulationRequest = this.buildAllowanceSimulationRequest(chainId, token, account, spender);
367
+ const { simulation: { id: simulationId }, } = await this.simulateTransaction(allowanceSimulationRequest, true);
368
+ const simulationDetails = await this.getSimulatedTransactionDetails(simulationId);
369
+ if (!simulationDetails) {
370
+ throw `No simulation with id ${simulationId} details found`;
371
+ }
372
+ const callTrace = simulationDetails.transaction.transaction_info.call_trace;
373
+ // console.log(callTrace);
374
+ const sloadCalls = this.getSLOADCalls(callTrace);
375
+ // token's storage slots that were read during the `allowance` call
376
+ const readSlots = sloadCalls
377
+ .map(call => ({
378
+ slot: call.storage_slot?.[0],
379
+ address: call.storage_address,
380
+ parentCallType: call.parentCall ? call.parentCall.call_type : null,
381
+ }))
382
+ .filter(({ slot }) => !!slot);
383
+ console.log(readSlots);
384
+ const startingPoints = [
385
+ // regular contract
386
+ 0n,
387
+ // ERC20Upgradeable
388
+ BigInt('0x52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace00'),
389
+ ];
390
+ for (const init of startingPoints) {
391
+ for (let i = init; i < init + 1000n; i += 1n) {
392
+ const candidateSlot = ethers_1.ethers.utils.defaultAbiCoder.encode(['uint'], [i]);
393
+ // try solidity
394
+ const solidityAllowanceSlot = this.calculateSolidityAddressAllowanceSlot(candidateSlot, account, spender);
395
+ const foundSoliditySlot = readSlots.find(({ slot }) => solidityAllowanceSlot === slot);
396
+ if (foundSoliditySlot) {
397
+ return token.toLowerCase() !== foundSoliditySlot.address &&
398
+ foundSoliditySlot.parentCallType !== 'DELEGATECALL'
399
+ ? {
400
+ slot: candidateSlot,
401
+ stateProxy: foundSoliditySlot.address,
402
+ }
403
+ : {
404
+ slot: candidateSlot,
405
+ };
406
+ }
407
+ // try vyper
408
+ const vyperAllowanceSlot = this.calculateVyperAddressAllowanceSlot(candidateSlot, account, spender);
409
+ const foundVyperSlot = readSlots.find(({ slot }) => vyperAllowanceSlot === slot);
410
+ if (foundVyperSlot) {
411
+ return token.toLowerCase() !== foundVyperSlot.address &&
412
+ foundVyperSlot.parentCallType !== 'DELEGATECALL'
413
+ ? {
414
+ slot: candidateSlot,
415
+ stateProxy: foundVyperSlot.address,
416
+ }
417
+ : {
418
+ slot: candidateSlot,
419
+ };
420
+ }
421
+ }
422
+ }
423
+ throw new Error(`Could not find a 'allowance' mapping slot for token ${token} on chain ${chainId}`);
424
+ }
425
+ /**
426
+ * Returns storage slots for the given token contract.
427
+ * @param chainId Token chain ID
428
+ * @param token Token address. Doesn't have to be normalized
429
+ */
430
+ async getTokenStorageSlots(chainId, token) {
431
+ const normalizedToken = token.toLowerCase();
432
+ if (normalizedToken === constants_1.ETHER_ADDRESS) {
433
+ throw new Error('Cannot provide storage slots for native token');
434
+ }
435
+ // check cache
436
+ const cachedSlots = await TokenStorageSlotsCache.getTokenStorageSlots(chainId, normalizedToken);
437
+ // return if cached
438
+ if (cachedSlots) {
439
+ return cachedSlots;
440
+ }
441
+ // find the slots
442
+ const [balanceSlot, allowanceSlot] = await Promise.all([
443
+ this.findTokenBalanceOfSlot(chainId, token),
444
+ this.findTokenAllowanceSlot(chainId, token),
445
+ ]);
446
+ // save the slots and return
447
+ const slots = {
448
+ balanceSlot: balanceSlot.slot,
449
+ allowanceSlot: allowanceSlot.slot,
450
+ isVyper: balanceSlot.isVyper,
451
+ stateProxy: balanceSlot.stateProxy,
452
+ };
453
+ // no need to await
454
+ void TokenStorageSlotsCache.setTokenStorageSlots(chainId, token, slots);
455
+ return slots;
456
+ }
457
+ /**
458
+ * Adds native balance override to an existing `StateOverride` object
459
+ * @param stateOverride object to add the override to
460
+ * @param account address to be given the balance
461
+ * @param amount token amount in wei
462
+ */
463
+ addBalanceOverride(stateOverride, account, amount) {
464
+ // add the balance override
465
+ stateOverride[account] ||= {};
466
+ stateOverride[account].balance = amount.toString();
467
+ }
468
+ /**
469
+ * Adds token balance override to an existing `StateOverride` object
470
+ * @param stateOverride object to add the override to
471
+ * @param chainId token chain ID
472
+ * @param token token address
473
+ * @param account address to be given the balance
474
+ * @param amount token amount in wei
475
+ */
476
+ async addTokenBalanceOverride(stateOverride, chainId, token, account, amount) {
477
+ // get mapping slots
478
+ const tokenSlots = await this.getTokenStorageSlots(chainId, token);
479
+ // calculate balance slot
480
+ const slotToOverride = this.calculateAddressBalanceSlot(tokenSlots.balanceSlot, account, tokenSlots.isVyper);
481
+ // add the balance override
482
+ const address = tokenSlots.stateProxy ? tokenSlots.stateProxy : token;
483
+ stateOverride[address] ||= {};
484
+ stateOverride[address].storage ||= {};
485
+ stateOverride[address].storage[slotToOverride] =
486
+ ethers_1.ethers.utils.defaultAbiCoder.encode(['uint'], [amount]);
487
+ if (tokenSlots.additionalOverrides) {
488
+ (0, lodash_1.merge)(stateOverride, tokenSlots.additionalOverrides);
489
+ }
490
+ }
491
+ /**
492
+ * Adds token allowance override to an existing `StateOverride` object
493
+ * @param stateOverride object to add the override to
494
+ * @param chainId token chain ID
495
+ * @param token token address
496
+ * @param account owner address
497
+ * @param spender spender address
498
+ * @param amount token amount in wei
499
+ */
500
+ async addAllowanceOverride(stateOverride, chainId, token, account, spender, amount) {
501
+ // get mapping slots
502
+ const tokenSlots = await this.getTokenStorageSlots(chainId, token);
503
+ // calculate allowance slot
504
+ const slotToOverride = this.calculateAddressAllowanceSlot(tokenSlots.allowanceSlot, account, spender, tokenSlots.isVyper);
505
+ // add the allowance override
506
+ const address = tokenSlots.stateProxy ? tokenSlots.stateProxy : token;
507
+ stateOverride[address] ||= {};
508
+ stateOverride[address].storage ||= {};
509
+ stateOverride[address].storage[slotToOverride] =
510
+ ethers_1.ethers.utils.defaultAbiCoder.encode(['uint'], [amount]);
511
+ if (tokenSlots.additionalOverrides) {
512
+ (0, lodash_1.merge)(stateOverride, tokenSlots.additionalOverrides);
513
+ }
514
+ }
515
+ }
516
+ exports.TenderlySimulator = TenderlySimulator;
517
+ //# sourceMappingURL=tenderly-simulation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tenderly-simulation.js","sourceRoot":"","sources":["../src/tenderly-simulation.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@paraswap/dex-lib",
3
- "version": "4.8.24",
3
+ "version": "4.8.25",
4
4
  "main": "build/index.js",
5
5
  "types": "build/index.d.ts",
6
6
  "repository": "https://github.com/paraswap/paraswap-dex-lib",