@paraswap/dex-lib 4.1.7 → 4.1.8

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 (294) hide show
  1. package/.idea/codeStyles/Project.xml +44 -4
  2. package/.idea/codeStyles/codeStyleConfig.xml +1 -1
  3. package/.idea/inspectionProfiles/Project_Default.xml +6 -0
  4. package/.idea/paraswap-dex-lib.iml +7 -4
  5. package/build/dex/angle-staked-stable/angle-staked-stable.js +2 -1
  6. package/build/dex/angle-staked-stable/angle-staked-stable.js.map +1 -1
  7. package/build/dex/angle-transmuter/angle-transmuter.js.map +1 -1
  8. package/build/dex/balancer-v1/config.js +2 -1
  9. package/build/dex/balancer-v1/config.js.map +1 -1
  10. package/build/dex/jarvis.d.ts +2 -1
  11. package/build/dex/jarvis.js +58 -0
  12. package/build/dex/jarvis.js.map +1 -1
  13. package/build/dex/weth/weth.js +2 -1
  14. package/build/dex/weth/weth.js.map +1 -1
  15. package/build/dex/zerox/index.d.ts +3 -25
  16. package/build/dex/zerox/index.js +50 -42
  17. package/build/dex/zerox/index.js.map +1 -1
  18. package/build/dex/zerox/types.d.ts +29 -0
  19. package/build/dex/zerox/types.js +8 -1
  20. package/build/dex/zerox/types.js.map +1 -1
  21. package/package.json +1 -1
  22. package/scripts/get-uniswap-v3-dexes.ts +64 -0
  23. package/src/dex/aave-gsm/aave-gsm-gas-estimation.test.ts +32 -0
  24. package/src/dex/aave-v2/aave-v2-gas-estimation.test.ts +28 -0
  25. package/src/dex/aave-v3/aave-v3-gas-estimation.test.ts +66 -0
  26. package/src/dex/aave-v3-stata/aave-v3-stata-gas-estimation.test.ts +41 -0
  27. package/src/dex/aave-v3-stata-v2/aave-v3-stata-v2-gas-estimation.test.ts +41 -0
  28. package/src/dex/angle-staked-stable/angle-staked-stable-gas-estimation.test.ts +29 -0
  29. package/src/dex/angle-staked-stable/angle-staked-stable.ts +2 -1
  30. package/src/dex/angle-transmuter/angle-transmuter-gas-estimation.test.ts +41 -0
  31. package/src/dex/angle-transmuter/angle-transmuter.ts +0 -1
  32. package/src/dex/balancer-v1/balancer-v1-gas-estimation.test.ts +29 -0
  33. package/src/dex/balancer-v1/config.ts +2 -1
  34. package/src/dex/balancer-v2/balancer-v2-gas-estimation.test.ts +98 -0
  35. package/src/dex/balancer-v3/balancer-v3-gas-estimation.test.ts +30 -0
  36. package/src/dex/bancor/bancor-gas-estimation.test.ts +30 -0
  37. package/src/dex/bebop/bebop-gas-estimation.test.ts +30 -0
  38. package/src/dex/concentrator-arusd/concentrator-arusd-gas-estimation.test.ts +29 -0
  39. package/src/dex/curve-v1/curve-v1-gas-estimation.test.ts +29 -0
  40. package/src/dex/curve-v2/curve-v2-gas-estimation.test.ts +29 -0
  41. package/src/dex/fluid-dex/fluid-dex-gas-estimation.test.ts +29 -0
  42. package/src/dex/fx-protocol-rusd/fx-protocol-rusd-gas-estimation.test.ts +29 -0
  43. package/src/dex/hashflow/hashflow-gas-estimation.test.ts +30 -0
  44. package/src/dex/idle-dao/idle-dao--gas-estimation.test.ts +30 -0
  45. package/src/dex/lido/lido-gas-estimation.test.ts +29 -0
  46. package/src/dex/lite-psm/lite-psm-gas-estimation.test.ts +34 -0
  47. package/src/dex/maker-psm/maker-psm-gas-estimation.test.ts +34 -0
  48. package/src/dex/maverick-v1/maverick-v1-gas-estimation.test.ts +29 -0
  49. package/src/dex/maverick-v2/maverick-v2-gas-estimation.test.ts +29 -0
  50. package/src/dex/pancakeswap-v3/pancakeswap-v3-gas-estimation.test.ts +29 -0
  51. package/src/dex/polygon-migrator/polygon-migrator-gas-estimation.test.ts +41 -0
  52. package/src/dex/sky-converter/sky-converter-gas-estimation.test.ts +78 -0
  53. package/src/dex/solidly/solidly-gas-estimation.test.ts +29 -0
  54. package/src/dex/solidly-v3/solidly-v3-gas-estimation.test.ts +29 -0
  55. package/src/dex/spark/spark-gas-estimation.test.ts +29 -0
  56. package/src/dex/stader/stader-gas-estimation.test.ts +29 -0
  57. package/src/dex/stkgho/stkgho-gas-estimation.test.ts +29 -0
  58. package/src/dex/swaap-v2/swaap-v2-estimation.test.ts +29 -0
  59. package/src/dex/swell/swell-estimation.test.ts +29 -0
  60. package/src/dex/trader-joe-v2.1/trader-joe-v2.1-gas-estimation.test.ts +29 -0
  61. package/src/dex/uniswap-v2/uniswap-v2-gas-estimation.test.ts +98 -0
  62. package/src/dex/uniswap-v3/uniswap-v3-gas-estimation.test.ts +98 -0
  63. package/src/dex/usual/usual-gas-estimation.test.ts +54 -0
  64. package/src/dex/usual-pp/usual-pp-gas-estimation.test.ts +29 -0
  65. package/src/dex/weth/weth-gas-estimation.test.ts +42 -0
  66. package/src/dex/weth/weth.ts +3 -1
  67. package/src/dex/wombat/wombat-gas-estimation.test.ts +29 -0
  68. package/src/dex/wsteth/wsteth-gas-estimation.test.ts +41 -0
  69. package/src/dex/wusdm/wusdm-gas-estimation.test.ts +41 -0
  70. package/tests/constants-e2e.ts +8 -0
  71. package/tests/tenderly-simulation-new.test.ts +151 -0
  72. package/tests/tenderly-simulation-new.ts +698 -0
  73. package/tests/token-storage-slots.json +532 -0
  74. package/tests/utils-e2e.ts +137 -1
  75. package/.idea/aws.xml +0 -17
  76. package/.idea/misc.xml +0 -6
  77. package/.idea/prettier.xml +0 -7
  78. package/build/abi/AaveV1_lending_pool.json +0 -27
  79. package/build/abi/integral/factory.json +0 -333
  80. package/build/abi/integral/oracle.json +0 -501
  81. package/build/abi/integral/pool.json +0 -1041
  82. package/build/abi/integral/relayer.json +0 -1536
  83. package/build/abi/platypus/asset.json +0 -490
  84. package/build/abi/platypus/avax-pool.json +0 -820
  85. package/build/abi/platypus/oracle.json +0 -119
  86. package/build/abi/platypus/pool.json +0 -677
  87. package/build/abi/smardex/all/smardex-router.json +0 -648
  88. package/build/abi/smardex/layer-1/smardex-factory.json +0 -242
  89. package/build/abi/smardex/layer-1/smardex-pool.json +0 -506
  90. package/build/abi/smardex/layer-2/smardex-factory.json +0 -185
  91. package/build/abi/smardex/layer-2/smardex-pool.json +0 -578
  92. package/build/abi/swaap-v1/pool.json +0 -1346
  93. package/build/dex/aave-v1/aave-v1.d.ts +0 -33
  94. package/build/dex/aave-v1/aave-v1.js +0 -158
  95. package/build/dex/aave-v1/aave-v1.js.map +0 -1
  96. package/build/dex/aave-v1/config.d.ts +0 -11
  97. package/build/dex/aave-v1/config.js +0 -20
  98. package/build/dex/aave-v1/config.js.map +0 -1
  99. package/build/dex/aave-v1/tokens-mainnet.json +0 -134
  100. package/build/dex/aave-v1/tokens.d.ts +0 -3
  101. package/build/dex/aave-v1/tokens.js +0 -50
  102. package/build/dex/aave-v1/tokens.js.map +0 -1
  103. package/build/dex/aave-v1/types.d.ts +0 -12
  104. package/build/dex/aave-v1/types.js +0 -3
  105. package/build/dex/aave-v1/types.js.map +0 -1
  106. package/build/dex/bProtocol.d.ts +0 -18
  107. package/build/dex/bProtocol.js +0 -39
  108. package/build/dex/bProtocol.js.map +0 -1
  109. package/build/dex/bancor.d.ts +0 -26
  110. package/build/dex/bancor.js +0 -58
  111. package/build/dex/bancor.js.map +0 -1
  112. package/build/dex/compound.d.ts +0 -18
  113. package/build/dex/compound.js +0 -46
  114. package/build/dex/compound.js.map +0 -1
  115. package/build/dex/curve-v2.d.ts +0 -58
  116. package/build/dex/curve-v2.js +0 -180
  117. package/build/dex/curve-v2.js.map +0 -1
  118. package/build/dex/dodo-v1.d.ts +0 -33
  119. package/build/dex/dodo-v1.js +0 -63
  120. package/build/dex/dodo-v1.js.map +0 -1
  121. package/build/dex/fluid-dex/fluid-dex-generate-pool.d.ts +0 -49
  122. package/build/dex/fluid-dex/fluid-dex-generate-pool.js +0 -104
  123. package/build/dex/fluid-dex/fluid-dex-generate-pool.js.map +0 -1
  124. package/build/dex/integral/config.d.ts +0 -4
  125. package/build/dex/integral/config.js +0 -20
  126. package/build/dex/integral/config.js.map +0 -1
  127. package/build/dex/integral/context.d.ts +0 -40
  128. package/build/dex/integral/context.js +0 -158
  129. package/build/dex/integral/context.js.map +0 -1
  130. package/build/dex/integral/integral-factory.d.ts +0 -24
  131. package/build/dex/integral/integral-factory.js +0 -95
  132. package/build/dex/integral/integral-factory.js.map +0 -1
  133. package/build/dex/integral/integral-pool.d.ts +0 -50
  134. package/build/dex/integral/integral-pool.js +0 -149
  135. package/build/dex/integral/integral-pool.js.map +0 -1
  136. package/build/dex/integral/integral-pricing.d.ts +0 -18
  137. package/build/dex/integral/integral-pricing.js +0 -114
  138. package/build/dex/integral/integral-pricing.js.map +0 -1
  139. package/build/dex/integral/integral-relayer.d.ts +0 -42
  140. package/build/dex/integral/integral-relayer.js +0 -192
  141. package/build/dex/integral/integral-relayer.js.map +0 -1
  142. package/build/dex/integral/integral-token.d.ts +0 -27
  143. package/build/dex/integral/integral-token.js +0 -59
  144. package/build/dex/integral/integral-token.js.map +0 -1
  145. package/build/dex/integral/integral.d.ts +0 -41
  146. package/build/dex/integral/integral.js +0 -376
  147. package/build/dex/integral/integral.js.map +0 -1
  148. package/build/dex/integral/types.d.ts +0 -85
  149. package/build/dex/integral/types.js +0 -9
  150. package/build/dex/integral/types.js.map +0 -1
  151. package/build/dex/integral/utils-e2e.d.ts +0 -9
  152. package/build/dex/integral/utils-e2e.js +0 -131
  153. package/build/dex/integral/utils-e2e.js.map +0 -1
  154. package/build/dex/integral/utils.d.ts +0 -17
  155. package/build/dex/integral/utils.js +0 -94
  156. package/build/dex/integral/utils.js.map +0 -1
  157. package/build/dex/lido.d.ts +0 -19
  158. package/build/dex/lido.js +0 -42
  159. package/build/dex/lido.js.map +0 -1
  160. package/build/dex/m-token/config.d.ts +0 -3
  161. package/build/dex/m-token/config.js +0 -19
  162. package/build/dex/m-token/config.js.map +0 -1
  163. package/build/dex/m-token/m-token.d.ts +0 -29
  164. package/build/dex/m-token/m-token.js +0 -145
  165. package/build/dex/m-token/m-token.js.map +0 -1
  166. package/build/dex/m-token/m-wrapped-m.d.ts +0 -17
  167. package/build/dex/m-token/m-wrapped-m.js +0 -50
  168. package/build/dex/m-token/m-wrapped-m.js.map +0 -1
  169. package/build/dex/m-token/types.d.ts +0 -12
  170. package/build/dex/m-token/types.js +0 -3
  171. package/build/dex/m-token/types.js.map +0 -1
  172. package/build/dex/onebit.d.ts +0 -25
  173. package/build/dex/onebit.js +0 -42
  174. package/build/dex/onebit.js.map +0 -1
  175. package/build/dex/platypus/asset.d.ts +0 -14
  176. package/build/dex/platypus/asset.js +0 -97
  177. package/build/dex/platypus/asset.js.map +0 -1
  178. package/build/dex/platypus/config.d.ts +0 -11
  179. package/build/dex/platypus/config.js +0 -69
  180. package/build/dex/platypus/config.js.map +0 -1
  181. package/build/dex/platypus/platypus.d.ts +0 -62
  182. package/build/dex/platypus/platypus.js +0 -442
  183. package/build/dex/platypus/platypus.js.map +0 -1
  184. package/build/dex/platypus/pool-avax.d.ts +0 -8
  185. package/build/dex/platypus/pool-avax.js +0 -54
  186. package/build/dex/platypus/pool-avax.js.map +0 -1
  187. package/build/dex/platypus/pool-base.d.ts +0 -19
  188. package/build/dex/platypus/pool-base.js +0 -86
  189. package/build/dex/platypus/pool-base.js.map +0 -1
  190. package/build/dex/platypus/pool-pure.d.ts +0 -8
  191. package/build/dex/platypus/pool-pure.js +0 -37
  192. package/build/dex/platypus/pool-pure.js.map +0 -1
  193. package/build/dex/platypus/pool-subscriber.d.ts +0 -14
  194. package/build/dex/platypus/pool-subscriber.js +0 -167
  195. package/build/dex/platypus/pool-subscriber.js.map +0 -1
  196. package/build/dex/platypus/pool.d.ts +0 -8
  197. package/build/dex/platypus/pool.js +0 -58
  198. package/build/dex/platypus/pool.js.map +0 -1
  199. package/build/dex/platypus/types.d.ts +0 -92
  200. package/build/dex/platypus/types.js +0 -10
  201. package/build/dex/platypus/types.js.map +0 -1
  202. package/build/dex/quickswap/spiritswap-v3.d.ts +0 -6
  203. package/build/dex/quickswap/spiritswap-v3.js +0 -19
  204. package/build/dex/quickswap/spiritswap-v3.js.map +0 -1
  205. package/build/dex/smardex/config.d.ts +0 -4
  206. package/build/dex/smardex/config.js +0 -64
  207. package/build/dex/smardex/config.js.map +0 -1
  208. package/build/dex/smardex/constants.d.ts +0 -18
  209. package/build/dex/smardex/constants.js +0 -33
  210. package/build/dex/smardex/constants.js.map +0 -1
  211. package/build/dex/smardex/sdk/constants.d.ts +0 -6
  212. package/build/dex/smardex/sdk/constants.js +0 -13
  213. package/build/dex/smardex/sdk/constants.js.map +0 -1
  214. package/build/dex/smardex/sdk/core.d.ts +0 -113
  215. package/build/dex/smardex/sdk/core.js +0 -499
  216. package/build/dex/smardex/sdk/core.js.map +0 -1
  217. package/build/dex/smardex/sdk/errors.d.ts +0 -15
  218. package/build/dex/smardex/sdk/errors.js +0 -22
  219. package/build/dex/smardex/sdk/errors.js.map +0 -1
  220. package/build/dex/smardex/sdk/types.d.ts +0 -62
  221. package/build/dex/smardex/sdk/types.js +0 -3
  222. package/build/dex/smardex/sdk/types.js.map +0 -1
  223. package/build/dex/smardex/sdk/utils.d.ts +0 -44
  224. package/build/dex/smardex/sdk/utils.js +0 -133
  225. package/build/dex/smardex/sdk/utils.js.map +0 -1
  226. package/build/dex/smardex/smardex-event-pool.d.ts +0 -28
  227. package/build/dex/smardex/smardex-event-pool.js +0 -119
  228. package/build/dex/smardex/smardex-event-pool.js.map +0 -1
  229. package/build/dex/smardex/smardex.d.ts +0 -65
  230. package/build/dex/smardex/smardex.js +0 -519
  231. package/build/dex/smardex/smardex.js.map +0 -1
  232. package/build/dex/smardex/types.d.ts +0 -55
  233. package/build/dex/smardex/types.js +0 -3
  234. package/build/dex/smardex/types.js.map +0 -1
  235. package/build/dex/smoothy.d.ts +0 -26
  236. package/build/dex/smoothy.js +0 -48
  237. package/build/dex/smoothy.js.map +0 -1
  238. package/build/dex/solidly/forks-override/cone.d.ts +0 -22
  239. package/build/dex/solidly/forks-override/cone.js +0 -53
  240. package/build/dex/solidly/forks-override/cone.js.map +0 -1
  241. package/build/dex/solidly/forks-override/solisnek.d.ts +0 -8
  242. package/build/dex/solidly/forks-override/solisnek.js +0 -15
  243. package/build/dex/solidly/forks-override/solisnek.js.map +0 -1
  244. package/build/dex/stable-pool.d.ts +0 -28
  245. package/build/dex/stable-pool.js +0 -62
  246. package/build/dex/stable-pool.js.map +0 -1
  247. package/build/dex/swaap-v1/config.d.ts +0 -17
  248. package/build/dex/swaap-v1/config.js +0 -56
  249. package/build/dex/swaap-v1/config.js.map +0 -1
  250. package/build/dex/swaap-v1/constants.d.ts +0 -6
  251. package/build/dex/swaap-v1/constants.js +0 -17
  252. package/build/dex/swaap-v1/constants.js.map +0 -1
  253. package/build/dex/swaap-v1/libraries/ChainlinkUtils.d.ts +0 -25
  254. package/build/dex/swaap-v1/libraries/ChainlinkUtils.js +0 -62
  255. package/build/dex/swaap-v1/libraries/ChainlinkUtils.js.map +0 -1
  256. package/build/dex/swaap-v1/libraries/Const.d.ts +0 -18
  257. package/build/dex/swaap-v1/libraries/Const.js +0 -26
  258. package/build/dex/swaap-v1/libraries/Const.js.map +0 -1
  259. package/build/dex/swaap-v1/libraries/GeometricBrownianMotion.d.ts +0 -77
  260. package/build/dex/swaap-v1/libraries/GeometricBrownianMotion.js +0 -316
  261. package/build/dex/swaap-v1/libraries/GeometricBrownianMotion.js.map +0 -1
  262. package/build/dex/swaap-v1/libraries/LogExpMath.d.ts +0 -75
  263. package/build/dex/swaap-v1/libraries/LogExpMath.js +0 -418
  264. package/build/dex/swaap-v1/libraries/LogExpMath.js.map +0 -1
  265. package/build/dex/swaap-v1/libraries/MathMMM.d.ts +0 -185
  266. package/build/dex/swaap-v1/libraries/MathMMM.js +0 -453
  267. package/build/dex/swaap-v1/libraries/MathMMM.js.map +0 -1
  268. package/build/dex/swaap-v1/libraries/Num.d.ts +0 -31
  269. package/build/dex/swaap-v1/libraries/Num.js +0 -167
  270. package/build/dex/swaap-v1/libraries/Num.js.map +0 -1
  271. package/build/dex/swaap-v1/libraries/PoolQuotations.d.ts +0 -23
  272. package/build/dex/swaap-v1/libraries/PoolQuotations.js +0 -131
  273. package/build/dex/swaap-v1/libraries/PoolQuotations.js.map +0 -1
  274. package/build/dex/swaap-v1/libraries/Struct.d.ts +0 -56
  275. package/build/dex/swaap-v1/libraries/Struct.js +0 -3
  276. package/build/dex/swaap-v1/libraries/Struct.js.map +0 -1
  277. package/build/dex/swaap-v1/swaap-v1-pool.d.ts +0 -45
  278. package/build/dex/swaap-v1/swaap-v1-pool.js +0 -656
  279. package/build/dex/swaap-v1/swaap-v1-pool.js.map +0 -1
  280. package/build/dex/swaap-v1/swaap-v1.d.ts +0 -61
  281. package/build/dex/swaap-v1/swaap-v1.js +0 -369
  282. package/build/dex/swaap-v1/swaap-v1.js.map +0 -1
  283. package/build/dex/swaap-v1/types.d.ts +0 -106
  284. package/build/dex/swaap-v1/types.js +0 -9
  285. package/build/dex/swaap-v1/types.js.map +0 -1
  286. package/build/dex/trader-joe-v2.1/optimizer.d.ts +0 -2
  287. package/build/dex/trader-joe-v2.1/optimizer.js +0 -47
  288. package/build/dex/trader-joe-v2.1/optimizer.js.map +0 -1
  289. package/build/dex/trader-joe-v2.1/trader-joe-v2.1-new.d.ts +0 -7
  290. package/build/dex/trader-joe-v2.1/trader-joe-v2.1-new.js +0 -20
  291. package/build/dex/trader-joe-v2.1/trader-joe-v2.1-new.js.map +0 -1
  292. package/build/dex/trader-joe-v2.1.d.ts +0 -43
  293. package/build/dex/trader-joe-v2.1.js +0 -79
  294. package/build/dex/trader-joe-v2.1.js.map +0 -1
@@ -14,6 +14,7 @@ import {
14
14
  TenderlySimulation,
15
15
  TransactionSimulator,
16
16
  } from './tenderly-simulation';
17
+ import { TenderlySimulatorNew, StateOverride } from './tenderly-simulation-new';
17
18
  import {
18
19
  SwapSide,
19
20
  ETHER_ADDRESS,
@@ -124,7 +125,7 @@ class APIParaswapSDK implements IParaSwapSDK {
124
125
  constructor(
125
126
  protected network: number,
126
127
  dexKeys: string | string[],
127
- rpcUrl: string,
128
+ rpcUrl?: string,
128
129
  ) {
129
130
  this.dexKeys = Array.isArray(dexKeys) ? dexKeys : [dexKeys];
130
131
  this.paraSwap = constructSimpleSDK({
@@ -224,6 +225,10 @@ class APIParaswapSDK implements IParaSwapSDK {
224
225
  uuid: uuid(),
225
226
  })) as TxObject;
226
227
  }
228
+
229
+ async releaseResources(): Promise<void> {
230
+ await this.pricingHelper.releaseResources(this.dexKeys);
231
+ }
227
232
  }
228
233
 
229
234
  function send1WeiTo(token: Address, to: Address, network: Network) {
@@ -1028,3 +1033,134 @@ export const constructE2ETests = (
1028
1033
  });
1029
1034
  });
1030
1035
  };
1036
+
1037
+ export const testGasEstimation = async (
1038
+ network: Network,
1039
+ srcToken: Token,
1040
+ destToken: Token,
1041
+ amount: bigint,
1042
+ swapSide: SwapSide,
1043
+ dexKeys: string | string[],
1044
+ contractMethod: ContractMethod,
1045
+ route?: string[],
1046
+ targetDifference?: number,
1047
+ ) => {
1048
+ assert(
1049
+ testingEndpoint,
1050
+ 'Estimation can only be tested with testing endpoint',
1051
+ );
1052
+ // initialize pricing
1053
+ const sdk = new APIParaswapSDK(network, dexKeys);
1054
+ await sdk.initializePricing();
1055
+ // fetch the route
1056
+ const priceRoute = await sdk.getPrices(
1057
+ srcToken,
1058
+ destToken,
1059
+ amount,
1060
+ swapSide,
1061
+ contractMethod,
1062
+ undefined,
1063
+ undefined,
1064
+ route,
1065
+ );
1066
+ // make sure fetched route uses correct `contractMethod`
1067
+ assert(
1068
+ priceRoute.contractMethod === contractMethod,
1069
+ 'Price route has incorrect contract method!',
1070
+ );
1071
+ // log the route for visibility
1072
+ console.log({ priceRoute: JSON.stringify(priceRoute, null, 2) });
1073
+ // prepare state overrides
1074
+ const tenderlySimulator = TenderlySimulatorNew.getInstance();
1075
+ // any address works
1076
+ const userAddress = TenderlySimulatorNew.DEFAULT_OWNER;
1077
+ // init `StateOverride` object
1078
+ const stateOverride: StateOverride = {};
1079
+ // fund x2 just in case
1080
+ const amountToFund = amount * 2n;
1081
+ // add overrides for src token
1082
+ if (srcToken.address.toLowerCase() === ETHER_ADDRESS) {
1083
+ // add eth balance to user
1084
+ tenderlySimulator.addBalanceOverride(
1085
+ stateOverride,
1086
+ userAddress,
1087
+ amountToFund,
1088
+ );
1089
+ } else {
1090
+ // add token balance and allowance to Augustus
1091
+ await tenderlySimulator.addTokenBalanceOverride(
1092
+ stateOverride,
1093
+ network,
1094
+ srcToken.address,
1095
+ userAddress,
1096
+ amountToFund,
1097
+ );
1098
+ await tenderlySimulator.addAllowanceOverride(
1099
+ stateOverride,
1100
+ network,
1101
+ srcToken.address,
1102
+ userAddress,
1103
+ priceRoute.tokenTransferProxy,
1104
+ amountToFund,
1105
+ );
1106
+ }
1107
+ // add overrides for dest token (dust balance)
1108
+ if (destToken.address.toLowerCase() === ETHER_ADDRESS) {
1109
+ // add eth dust
1110
+ tenderlySimulator.addBalanceOverride(stateOverride, userAddress, 1n);
1111
+ } else {
1112
+ // add token dust
1113
+ await tenderlySimulator.addTokenBalanceOverride(
1114
+ stateOverride,
1115
+ network,
1116
+ destToken.address,
1117
+ userAddress,
1118
+ 1n,
1119
+ );
1120
+ }
1121
+ // build swap transaction
1122
+ const slippage = 100n;
1123
+ const minMaxAmount =
1124
+ (swapSide === SwapSide.SELL
1125
+ ? BigInt(priceRoute.destAmount) * (10000n - slippage)
1126
+ : BigInt(priceRoute.srcAmount) * (10000n + slippage)) / 10000n;
1127
+ const swapParams = await sdk.buildTransaction(
1128
+ priceRoute,
1129
+ minMaxAmount,
1130
+ userAddress,
1131
+ );
1132
+ assert(
1133
+ swapParams.to !== undefined,
1134
+ 'Transaction params missing `to` property',
1135
+ );
1136
+ // assemble `SimulationRequest`
1137
+ const { from, to, data, value } = swapParams;
1138
+ const simulationRequest = {
1139
+ chainId: network,
1140
+ from,
1141
+ to,
1142
+ data,
1143
+ value,
1144
+ blockNumber: priceRoute.blockNumber,
1145
+ stateOverride,
1146
+ };
1147
+ // simulate the transaction with overrides
1148
+ const simulation = await tenderlySimulator.simulateTransaction(
1149
+ simulationRequest,
1150
+ );
1151
+ // compare and assert
1152
+ const estimatedGas = Number(priceRoute.gasCost);
1153
+ const actualGas = simulation.gas_used;
1154
+ const diffPercent = ((estimatedGas - actualGas) / actualGas) * 100;
1155
+ console.log(
1156
+ `Estimated gas cost: ${estimatedGas}, actual gas cost: ${actualGas}, diff: ${diffPercent}%`,
1157
+ );
1158
+ if (targetDifference !== undefined) {
1159
+ assert(
1160
+ targetDifference <= Math.abs(diffPercent),
1161
+ `Deviation is higher than target ${targetDifference}%`,
1162
+ );
1163
+ }
1164
+ // release
1165
+ await sdk.releaseResources();
1166
+ };
package/.idea/aws.xml DELETED
@@ -1,17 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <project version="4">
3
- <component name="accountSettings">
4
- <option name="activeProfile" value="profile:default" />
5
- <option name="activeRegion" value="us-east-1" />
6
- <option name="recentlyUsedProfiles">
7
- <list>
8
- <option value="profile:default" />
9
- </list>
10
- </option>
11
- <option name="recentlyUsedRegions">
12
- <list>
13
- <option value="us-east-1" />
14
- </list>
15
- </option>
16
- </component>
17
- </project>
package/.idea/misc.xml DELETED
@@ -1,6 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <project version="4">
3
- <component name="ProjectRootManager">
4
- <output url="file://$PROJECT_DIR$/out" />
5
- </component>
6
- </project>
@@ -1,7 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <project version="4">
3
- <component name="PrettierConfiguration">
4
- <option name="myRunOnSave" value="true" />
5
- <option name="myRunOnReformat" value="true" />
6
- </component>
7
- </project>
@@ -1,27 +0,0 @@
1
- [
2
- {
3
- "constant": false,
4
- "inputs": [
5
- {
6
- "internalType": "address",
7
- "name": "_reserve",
8
- "type": "address"
9
- },
10
- {
11
- "internalType": "uint256",
12
- "name": "_amount",
13
- "type": "uint256"
14
- },
15
- {
16
- "internalType": "uint16",
17
- "name": "_referralCode",
18
- "type": "uint16"
19
- }
20
- ],
21
- "name": "deposit",
22
- "outputs": [],
23
- "payable": true,
24
- "stateMutability": "payable",
25
- "type": "function"
26
- }
27
- ]
@@ -1,333 +0,0 @@
1
- [
2
- {
3
- "inputs": [],
4
- "stateMutability": "nonpayable",
5
- "type": "constructor"
6
- },
7
- {
8
- "anonymous": false,
9
- "inputs": [
10
- {
11
- "indexed": false,
12
- "internalType": "address",
13
- "name": "owner",
14
- "type": "address"
15
- }
16
- ],
17
- "name": "OwnerSet",
18
- "type": "event"
19
- },
20
- {
21
- "anonymous": false,
22
- "inputs": [
23
- {
24
- "indexed": true,
25
- "internalType": "address",
26
- "name": "token0",
27
- "type": "address"
28
- },
29
- {
30
- "indexed": true,
31
- "internalType": "address",
32
- "name": "token1",
33
- "type": "address"
34
- },
35
- {
36
- "indexed": false,
37
- "internalType": "address",
38
- "name": "pair",
39
- "type": "address"
40
- },
41
- {
42
- "indexed": false,
43
- "internalType": "uint256",
44
- "name": "",
45
- "type": "uint256"
46
- }
47
- ],
48
- "name": "PairCreated",
49
- "type": "event"
50
- },
51
- {
52
- "inputs": [
53
- {
54
- "internalType": "uint256",
55
- "name": "",
56
- "type": "uint256"
57
- }
58
- ],
59
- "name": "allPairs",
60
- "outputs": [
61
- {
62
- "internalType": "address",
63
- "name": "",
64
- "type": "address"
65
- }
66
- ],
67
- "stateMutability": "view",
68
- "type": "function"
69
- },
70
- {
71
- "inputs": [],
72
- "name": "allPairsLength",
73
- "outputs": [
74
- {
75
- "internalType": "uint256",
76
- "name": "",
77
- "type": "uint256"
78
- }
79
- ],
80
- "stateMutability": "view",
81
- "type": "function"
82
- },
83
- {
84
- "inputs": [
85
- {
86
- "internalType": "address",
87
- "name": "tokenA",
88
- "type": "address"
89
- },
90
- {
91
- "internalType": "address",
92
- "name": "tokenB",
93
- "type": "address"
94
- },
95
- {
96
- "internalType": "address",
97
- "name": "to",
98
- "type": "address"
99
- }
100
- ],
101
- "name": "collect",
102
- "outputs": [],
103
- "stateMutability": "nonpayable",
104
- "type": "function"
105
- },
106
- {
107
- "inputs": [
108
- {
109
- "internalType": "address",
110
- "name": "tokenA",
111
- "type": "address"
112
- },
113
- {
114
- "internalType": "address",
115
- "name": "tokenB",
116
- "type": "address"
117
- },
118
- {
119
- "internalType": "address",
120
- "name": "oracle",
121
- "type": "address"
122
- },
123
- {
124
- "internalType": "address",
125
- "name": "trader",
126
- "type": "address"
127
- }
128
- ],
129
- "name": "createPair",
130
- "outputs": [
131
- {
132
- "internalType": "address",
133
- "name": "pair",
134
- "type": "address"
135
- }
136
- ],
137
- "stateMutability": "nonpayable",
138
- "type": "function"
139
- },
140
- {
141
- "inputs": [
142
- {
143
- "internalType": "address",
144
- "name": "",
145
- "type": "address"
146
- },
147
- {
148
- "internalType": "address",
149
- "name": "",
150
- "type": "address"
151
- }
152
- ],
153
- "name": "getPair",
154
- "outputs": [
155
- {
156
- "internalType": "address",
157
- "name": "",
158
- "type": "address"
159
- }
160
- ],
161
- "stateMutability": "view",
162
- "type": "function"
163
- },
164
- {
165
- "inputs": [],
166
- "name": "owner",
167
- "outputs": [
168
- {
169
- "internalType": "address",
170
- "name": "",
171
- "type": "address"
172
- }
173
- ],
174
- "stateMutability": "view",
175
- "type": "function"
176
- },
177
- {
178
- "inputs": [
179
- {
180
- "internalType": "address",
181
- "name": "tokenA",
182
- "type": "address"
183
- },
184
- {
185
- "internalType": "address",
186
- "name": "tokenB",
187
- "type": "address"
188
- },
189
- {
190
- "internalType": "uint256",
191
- "name": "fee",
192
- "type": "uint256"
193
- }
194
- ],
195
- "name": "setBurnFee",
196
- "outputs": [],
197
- "stateMutability": "nonpayable",
198
- "type": "function"
199
- },
200
- {
201
- "inputs": [
202
- {
203
- "internalType": "address",
204
- "name": "tokenA",
205
- "type": "address"
206
- },
207
- {
208
- "internalType": "address",
209
- "name": "tokenB",
210
- "type": "address"
211
- },
212
- {
213
- "internalType": "uint256",
214
- "name": "fee",
215
- "type": "uint256"
216
- }
217
- ],
218
- "name": "setMintFee",
219
- "outputs": [],
220
- "stateMutability": "nonpayable",
221
- "type": "function"
222
- },
223
- {
224
- "inputs": [
225
- {
226
- "internalType": "address",
227
- "name": "tokenA",
228
- "type": "address"
229
- },
230
- {
231
- "internalType": "address",
232
- "name": "tokenB",
233
- "type": "address"
234
- },
235
- {
236
- "internalType": "address",
237
- "name": "oracle",
238
- "type": "address"
239
- }
240
- ],
241
- "name": "setOracle",
242
- "outputs": [],
243
- "stateMutability": "nonpayable",
244
- "type": "function"
245
- },
246
- {
247
- "inputs": [
248
- {
249
- "internalType": "address",
250
- "name": "_owner",
251
- "type": "address"
252
- }
253
- ],
254
- "name": "setOwner",
255
- "outputs": [],
256
- "stateMutability": "nonpayable",
257
- "type": "function"
258
- },
259
- {
260
- "inputs": [
261
- {
262
- "internalType": "address",
263
- "name": "tokenA",
264
- "type": "address"
265
- },
266
- {
267
- "internalType": "address",
268
- "name": "tokenB",
269
- "type": "address"
270
- },
271
- {
272
- "internalType": "uint256",
273
- "name": "fee",
274
- "type": "uint256"
275
- }
276
- ],
277
- "name": "setSwapFee",
278
- "outputs": [],
279
- "stateMutability": "nonpayable",
280
- "type": "function"
281
- },
282
- {
283
- "inputs": [
284
- {
285
- "internalType": "address",
286
- "name": "tokenA",
287
- "type": "address"
288
- },
289
- {
290
- "internalType": "address",
291
- "name": "tokenB",
292
- "type": "address"
293
- },
294
- {
295
- "internalType": "address",
296
- "name": "trader",
297
- "type": "address"
298
- }
299
- ],
300
- "name": "setTrader",
301
- "outputs": [],
302
- "stateMutability": "nonpayable",
303
- "type": "function"
304
- },
305
- {
306
- "inputs": [
307
- {
308
- "internalType": "address",
309
- "name": "tokenA",
310
- "type": "address"
311
- },
312
- {
313
- "internalType": "address",
314
- "name": "tokenB",
315
- "type": "address"
316
- },
317
- {
318
- "internalType": "uint256",
319
- "name": "amount",
320
- "type": "uint256"
321
- },
322
- {
323
- "internalType": "address",
324
- "name": "to",
325
- "type": "address"
326
- }
327
- ],
328
- "name": "withdraw",
329
- "outputs": [],
330
- "stateMutability": "nonpayable",
331
- "type": "function"
332
- }
333
- ]