@paraswap/dex-lib 5.0.2-native-dex-math.1 → 5.0.2-native-dex-math.2

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 (302) hide show
  1. package/build/abi/pancakeswap-infinity/cl-pool-manager.json +80 -0
  2. package/build/dex/fluid-dex/scripts/measure-calc-time.js +178 -0
  3. package/build/dex/fluid-dex/scripts/measure-calc-time.js.map +1 -0
  4. package/build/dex/idex.d.ts +2 -2
  5. package/build/dex/metric/metric.d.ts +2 -2
  6. package/build/dex/metric/metric.js +2 -2
  7. package/build/dex/metric/metric.js.map +1 -1
  8. package/build/dex/simple-exchange.d.ts +1 -1
  9. package/build/dex/simple-exchange.js +1 -1
  10. package/build/dex/simple-exchange.js.map +1 -1
  11. package/build/dex/uniswap-v3/uniswap-v3.d.ts +2 -2
  12. package/build/dex/uniswap-v3/uniswap-v3.js +4 -3
  13. package/build/dex/uniswap-v3/uniswap-v3.js.map +1 -1
  14. package/build/dex/uniswap-v4/api-go/compare-pricing.d.ts +1 -0
  15. package/build/dex/uniswap-v4/api-go/compare-pricing.js +187 -0
  16. package/build/dex/uniswap-v4/api-go/compare-pricing.js.map +1 -0
  17. package/build/dex/uniswap-v4/api-go/compare-states.d.ts +1 -0
  18. package/build/dex/uniswap-v4/api-go/compare-states.js +149 -0
  19. package/build/dex/uniswap-v4/api-go/compare-states.js.map +1 -0
  20. package/build/dex/uniswap-v4/api-go/fetch-pool-key.d.ts +0 -0
  21. package/build/dex/uniswap-v4/api-go/fetch-pool-key.js +140 -0
  22. package/build/dex/uniswap-v4/api-go/fetch-pool-key.js.map +1 -0
  23. package/build/executor/__test-utils__/snapshot-test-helpers.d.ts +10 -0
  24. package/build/executor/__test-utils__/snapshot-test-helpers.js +72 -0
  25. package/build/executor/__test-utils__/snapshot-test-helpers.js.map +1 -0
  26. package/build/executor/address-utils.d.ts +2 -0
  27. package/build/executor/address-utils.js +7 -0
  28. package/build/executor/address-utils.js.map +1 -0
  29. package/build/executor/approval.d.ts +9 -0
  30. package/build/executor/approval.js +29 -0
  31. package/build/executor/approval.js.map +1 -0
  32. package/build/executor/encoding-context.d.ts +4 -0
  33. package/build/executor/encoding-context.js +54 -0
  34. package/build/executor/encoding-context.js.map +1 -0
  35. package/build/executor/encoding-types.d.ts +75 -0
  36. package/build/{dex/quick-perps/types.js → executor/encoding-types.js} +1 -1
  37. package/build/executor/encoding-types.js.map +1 -0
  38. package/build/executor/factory.d.ts +4 -0
  39. package/build/executor/factory.js +23 -0
  40. package/build/executor/factory.js.map +1 -0
  41. package/build/executor/route-plan.d.ts +8 -0
  42. package/build/executor/route-plan.js +109 -0
  43. package/build/executor/route-plan.js.map +1 -0
  44. package/build/generic-swap-transaction-builder/dex-encoder/direct-methods.d.ts +6 -0
  45. package/build/generic-swap-transaction-builder/dex-encoder/direct-methods.js +39 -0
  46. package/build/generic-swap-transaction-builder/dex-encoder/direct-methods.js.map +1 -0
  47. package/build/generic-swap-transaction-builder/dex-encoder/index.d.ts +4 -0
  48. package/build/generic-swap-transaction-builder/dex-encoder/index.js +21 -0
  49. package/build/generic-swap-transaction-builder/dex-encoder/index.js.map +1 -0
  50. package/build/generic-swap-transaction-builder/dex-encoder/ports.d.ts +26 -0
  51. package/build/{dex/maker-psm/types.js → generic-swap-transaction-builder/dex-encoder/ports.js} +1 -1
  52. package/build/generic-swap-transaction-builder/dex-encoder/ports.js.map +1 -0
  53. package/build/generic-swap-transaction-builder/dex-encoder/ts-adapter.d.ts +22 -0
  54. package/build/generic-swap-transaction-builder/dex-encoder/ts-adapter.js +299 -0
  55. package/build/generic-swap-transaction-builder/dex-encoder/ts-adapter.js.map +1 -0
  56. package/build/generic-swap-transaction-builder/dex-encoder/types.d.ts +207 -0
  57. package/build/generic-swap-transaction-builder/dex-encoder/types.js +194 -0
  58. package/build/generic-swap-transaction-builder/dex-encoder/types.js.map +1 -0
  59. package/build/generic-swap-transaction-builder/orchestration.d.ts +65 -0
  60. package/build/generic-swap-transaction-builder/orchestration.js +198 -0
  61. package/build/generic-swap-transaction-builder/orchestration.js.map +1 -0
  62. package/build/generic-swap-transaction-builder/resolved/build-transaction.d.ts +13 -0
  63. package/build/generic-swap-transaction-builder/resolved/build-transaction.js +343 -0
  64. package/build/generic-swap-transaction-builder/resolved/build-transaction.js.map +1 -0
  65. package/build/generic-swap-transaction-builder/resolved/index.d.ts +4 -0
  66. package/build/generic-swap-transaction-builder/resolved/index.js +21 -0
  67. package/build/generic-swap-transaction-builder/resolved/index.js.map +1 -0
  68. package/build/generic-swap-transaction-builder/resolved/route-plan.d.ts +2 -0
  69. package/build/generic-swap-transaction-builder/resolved/route-plan.js +11 -0
  70. package/build/generic-swap-transaction-builder/resolved/route-plan.js.map +1 -0
  71. package/build/generic-swap-transaction-builder/resolved/types.d.ts +67 -0
  72. package/build/generic-swap-transaction-builder/resolved/types.js.map +1 -0
  73. package/build/generic-swap-transaction-builder/resolved/validation.d.ts +10 -0
  74. package/build/generic-swap-transaction-builder/resolved/validation.js +69 -0
  75. package/build/generic-swap-transaction-builder/resolved/validation.js.map +1 -0
  76. package/build/generic-swap-transaction-builder.d.ts +6 -4
  77. package/build/generic-swap-transaction-builder.js +8 -6
  78. package/build/generic-swap-transaction-builder.js.map +1 -1
  79. package/build/index.d.ts +1 -1
  80. package/build/index.js.map +1 -1
  81. package/build/types.d.ts +3 -0
  82. package/package.json +2 -2
  83. package/build/abi/BProtocol.json +0 -1155
  84. package/build/abi/Jarvis.json +0 -1172
  85. package/build/abi/MStableAsset.json +0 -1545
  86. package/build/abi/OneInchLp.json +0 -1304
  87. package/build/abi/Onebit.json +0 -736
  88. package/build/abi/Shell.json +0 -1294
  89. package/build/abi/TraderJoeV2Router.json +0 -50
  90. package/build/abi/idle-dao/idle-cdo-factory.json +0 -38
  91. package/build/abi/idle-dao/idle-cdo.json +0 -1245
  92. package/build/abi/infusion/InfusionFactory.json +0 -147
  93. package/build/abi/infusion/InfusionPair.json +0 -658
  94. package/build/abi/infusion/InfusionRouter.json +0 -442
  95. package/build/abi/maker-psm/pot.json +0 -322
  96. package/build/abi/maker-psm/psm.json +0 -243
  97. package/build/abi/maker-psm/vat.json +0 -363
  98. package/build/abi/nomiswap-v2/nomiswap-v2-pool.json +0 -773
  99. package/build/abi/quick-perps/fast-price-events.json +0 -70
  100. package/build/abi/quick-perps/fast-price-feed.json +0 -741
  101. package/build/abi/quick-perps/reader.json +0 -313
  102. package/build/abi/quick-perps/vault-price-feed.json +0 -323
  103. package/build/abi/quick-perps/vault.json +0 -1953
  104. package/build/abi/uniswap-v2/excalibur-pool.json +0 -881
  105. package/build/abi/uniswap-v2/mdex-factory.json +0 -759
  106. package/build/abi/wUSDM.json +0 -757
  107. package/build/abi/zrx.v2.json +0 -1967
  108. package/build/abi/zrx.v3.json +0 -3454
  109. package/build/abi/zrx.v4.json +0 -2193
  110. package/build/dex/OneInchLp.d.ts +0 -24
  111. package/build/dex/OneInchLp.js +0 -43
  112. package/build/dex/OneInchLp.js.map +0 -1
  113. package/build/dex/bProtocol/bProtocol.d.ts +0 -15
  114. package/build/dex/bProtocol/bProtocol.js +0 -56
  115. package/build/dex/bProtocol/bProtocol.js.map +0 -1
  116. package/build/dex/bProtocol/types.d.ts +0 -11
  117. package/build/dex/bProtocol/types.js +0 -8
  118. package/build/dex/bProtocol/types.js.map +0 -1
  119. package/build/dex/ekubo/pools/base-pool.d.ts +0 -47
  120. package/build/dex/ekubo/pools/base-pool.js +0 -184
  121. package/build/dex/ekubo/pools/base-pool.js.map +0 -1
  122. package/build/dex/ekubo/pools/iface.d.ts +0 -46
  123. package/build/dex/ekubo/pools/iface.js +0 -75
  124. package/build/dex/ekubo/pools/iface.js.map +0 -1
  125. package/build/dex/ekubo/pools/math/price.d.ts +0 -7
  126. package/build/dex/ekubo/pools/math/price.js +0 -112
  127. package/build/dex/ekubo/pools/math/price.js.map +0 -1
  128. package/build/dex/ekubo/pools/oracle-pool.d.ts +0 -10
  129. package/build/dex/ekubo/pools/oracle-pool.js +0 -19
  130. package/build/dex/ekubo/pools/oracle-pool.js.map +0 -1
  131. package/build/dex/ekubo/pools/pool-utils.d.ts +0 -44
  132. package/build/dex/ekubo/pools/pool-utils.js +0 -240
  133. package/build/dex/ekubo/pools/pool-utils.js.map +0 -1
  134. package/build/dex/idle-dao/config.d.ts +0 -5
  135. package/build/dex/idle-dao/config.js +0 -24
  136. package/build/dex/idle-dao/config.js.map +0 -1
  137. package/build/dex/idle-dao/idle-dao.d.ts +0 -42
  138. package/build/dex/idle-dao/idle-dao.js +0 -279
  139. package/build/dex/idle-dao/idle-dao.js.map +0 -1
  140. package/build/dex/idle-dao/token_list.d.ts +0 -4
  141. package/build/dex/idle-dao/token_list.js +0 -289
  142. package/build/dex/idle-dao/token_list.js.map +0 -1
  143. package/build/dex/idle-dao/tokens.d.ts +0 -9
  144. package/build/dex/idle-dao/tokens.js +0 -68
  145. package/build/dex/idle-dao/tokens.js.map +0 -1
  146. package/build/dex/idle-dao/types.d.ts +0 -35
  147. package/build/dex/idle-dao/types.js +0 -11
  148. package/build/dex/idle-dao/types.js.map +0 -1
  149. package/build/dex/idle-dao/utils.d.ts +0 -8
  150. package/build/dex/idle-dao/utils.js +0 -149
  151. package/build/dex/idle-dao/utils.js.map +0 -1
  152. package/build/dex/infusion/config.d.ts +0 -3
  153. package/build/dex/infusion/config.js +0 -20
  154. package/build/dex/infusion/config.js.map +0 -1
  155. package/build/dex/infusion/infusion-stable-pool.d.ts +0 -4
  156. package/build/dex/infusion/infusion-stable-pool.js +0 -74
  157. package/build/dex/infusion/infusion-stable-pool.js.map +0 -1
  158. package/build/dex/infusion/infusion.d.ts +0 -51
  159. package/build/dex/infusion/infusion.js +0 -500
  160. package/build/dex/infusion/infusion.js.map +0 -1
  161. package/build/dex/infusion/types.d.ts +0 -45
  162. package/build/dex/infusion/types.js.map +0 -1
  163. package/build/dex/infusion/utils/isStablePair.d.ts +0 -2
  164. package/build/dex/infusion/utils/isStablePair.js +0 -18
  165. package/build/dex/infusion/utils/isStablePair.js.map +0 -1
  166. package/build/dex/jarvis.d.ts +0 -56
  167. package/build/dex/jarvis.js +0 -163
  168. package/build/dex/jarvis.js.map +0 -1
  169. package/build/dex/mStable.d.ts +0 -44
  170. package/build/dex/mStable.js +0 -75
  171. package/build/dex/mStable.js.map +0 -1
  172. package/build/dex/maker-psm/config.d.ts +0 -11
  173. package/build/dex/maker-psm/config.js +0 -53
  174. package/build/dex/maker-psm/config.js.map +0 -1
  175. package/build/dex/maker-psm/maker-psm.d.ts +0 -103
  176. package/build/dex/maker-psm/maker-psm.js +0 -493
  177. package/build/dex/maker-psm/maker-psm.js.map +0 -1
  178. package/build/dex/maker-psm/types.d.ts +0 -39
  179. package/build/dex/maker-psm/types.js.map +0 -1
  180. package/build/dex/onebit/onebit.d.ts +0 -16
  181. package/build/dex/onebit/onebit.js +0 -61
  182. package/build/dex/onebit/onebit.js.map +0 -1
  183. package/build/dex/onebit/types.d.ts +0 -14
  184. package/build/dex/onebit/types.js +0 -8
  185. package/build/dex/onebit/types.js.map +0 -1
  186. package/build/dex/quick-perps/config.d.ts +0 -11
  187. package/build/dex/quick-perps/config.js +0 -27
  188. package/build/dex/quick-perps/config.js.map +0 -1
  189. package/build/dex/quick-perps/fast-price-feed.d.ts +0 -26
  190. package/build/dex/quick-perps/fast-price-feed.js +0 -184
  191. package/build/dex/quick-perps/fast-price-feed.js.map +0 -1
  192. package/build/dex/quick-perps/pool.d.ts +0 -21
  193. package/build/dex/quick-perps/pool.js +0 -229
  194. package/build/dex/quick-perps/pool.js.map +0 -1
  195. package/build/dex/quick-perps/quick-perps.d.ts +0 -53
  196. package/build/dex/quick-perps/quick-perps.js +0 -247
  197. package/build/dex/quick-perps/quick-perps.js.map +0 -1
  198. package/build/dex/quick-perps/types.d.ts +0 -98
  199. package/build/dex/quick-perps/types.js.map +0 -1
  200. package/build/dex/quick-perps/usdq.d.ts +0 -15
  201. package/build/dex/quick-perps/usdq.js +0 -62
  202. package/build/dex/quick-perps/usdq.js.map +0 -1
  203. package/build/dex/quick-perps/vault-price-feed.d.ts +0 -43
  204. package/build/dex/quick-perps/vault-price-feed.js +0 -203
  205. package/build/dex/quick-perps/vault-price-feed.js.map +0 -1
  206. package/build/dex/quick-perps/vault-utils.d.ts +0 -8
  207. package/build/dex/quick-perps/vault-utils.js +0 -42
  208. package/build/dex/quick-perps/vault-utils.js.map +0 -1
  209. package/build/dex/quick-perps/vault.d.ts +0 -46
  210. package/build/dex/quick-perps/vault.js +0 -182
  211. package/build/dex/quick-perps/vault.js.map +0 -1
  212. package/build/dex/se-vlr/config.d.ts +0 -3
  213. package/build/dex/se-vlr/config.js +0 -24
  214. package/build/dex/se-vlr/config.js.map +0 -1
  215. package/build/dex/se-vlr/se-vlr-pool.d.ts +0 -39
  216. package/build/dex/se-vlr/se-vlr-pool.js +0 -70
  217. package/build/dex/se-vlr/se-vlr-pool.js.map +0 -1
  218. package/build/dex/se-vlr/se-vlr.d.ts +0 -35
  219. package/build/dex/se-vlr/se-vlr.js +0 -131
  220. package/build/dex/se-vlr/se-vlr.js.map +0 -1
  221. package/build/dex/se-vlr/types.d.ts +0 -6
  222. package/build/dex/se-vlr/types.js +0 -3
  223. package/build/dex/se-vlr/types.js.map +0 -1
  224. package/build/dex/shell.d.ts +0 -25
  225. package/build/dex/shell.js +0 -41
  226. package/build/dex/shell.js.map +0 -1
  227. package/build/dex/solidly/forks-override/aerodrome.d.ts +0 -14
  228. package/build/dex/solidly/forks-override/aerodrome.js +0 -46
  229. package/build/dex/solidly/forks-override/aerodrome.js.map +0 -1
  230. package/build/dex/solidly/forks-override/chronos.d.ts +0 -23
  231. package/build/dex/solidly/forks-override/chronos.js +0 -141
  232. package/build/dex/solidly/forks-override/chronos.js.map +0 -1
  233. package/build/dex/solidly/forks-override/usdfi.d.ts +0 -8
  234. package/build/dex/solidly/forks-override/usdfi.js +0 -15
  235. package/build/dex/solidly/forks-override/usdfi.js.map +0 -1
  236. package/build/dex/solidly/forks-override/velocimeter.d.ts +0 -23
  237. package/build/dex/solidly/forks-override/velocimeter.js +0 -77
  238. package/build/dex/solidly/forks-override/velocimeter.js.map +0 -1
  239. package/build/dex/tessera/types.d.ts +0 -3
  240. package/build/dex/tessera/types.js +0 -3
  241. package/build/dex/tessera/types.js.map +0 -1
  242. package/build/dex/trader-joe-v2.d.ts +0 -40
  243. package/build/dex/trader-joe-v2.js +0 -74
  244. package/build/dex/trader-joe-v2.js.map +0 -1
  245. package/build/dex/uniswap-v2/dfyn.d.ts +0 -19
  246. package/build/dex/uniswap-v2/dfyn.js +0 -61
  247. package/build/dex/uniswap-v2/dfyn.js.map +0 -1
  248. package/build/dex/uniswap-v2/excalibur.d.ts +0 -24
  249. package/build/dex/uniswap-v2/excalibur.js +0 -47
  250. package/build/dex/uniswap-v2/excalibur.js.map +0 -1
  251. package/build/dex/uniswap-v2/mdex.d.ts +0 -24
  252. package/build/dex/uniswap-v2/mdex.js +0 -50
  253. package/build/dex/uniswap-v2/mdex.js.map +0 -1
  254. package/build/dex/uniswap-v2/nomiswap-v2.d.ts +0 -24
  255. package/build/dex/uniswap-v2/nomiswap-v2.js +0 -57
  256. package/build/dex/uniswap-v2/nomiswap-v2.js.map +0 -1
  257. package/build/dex/uniswap-v3/scripts/bench-all-dexes.js +0 -160
  258. package/build/dex/uniswap-v3/scripts/bench-all-dexes.js.map +0 -1
  259. package/build/dex/uniswap-v3/uniswap-v3-new.d.ts +0 -94
  260. package/build/dex/uniswap-v3/uniswap-v3-new.js +0 -923
  261. package/build/dex/uniswap-v3/uniswap-v3-new.js.map +0 -1
  262. package/build/dex/uniswap-v4/contract-math/Position.d.ts +0 -3
  263. package/build/dex/uniswap-v4/contract-math/Position.js +0 -10
  264. package/build/dex/uniswap-v4/contract-math/Position.js.map +0 -1
  265. package/build/dex/usual-bond/config.d.ts +0 -3
  266. package/build/dex/usual-bond/config.js +0 -13
  267. package/build/dex/usual-bond/config.js.map +0 -1
  268. package/build/dex/usual-bond/types.d.ts +0 -7
  269. package/build/dex/usual-bond/types.js +0 -3
  270. package/build/dex/usual-bond/types.js.map +0 -1
  271. package/build/dex/usual-bond/usual-bond.d.ts +0 -35
  272. package/build/dex/usual-bond/usual-bond.js +0 -176
  273. package/build/dex/usual-bond/usual-bond.js.map +0 -1
  274. package/build/dex/wusdm/config.d.ts +0 -3
  275. package/build/dex/wusdm/config.js +0 -43
  276. package/build/dex/wusdm/config.js.map +0 -1
  277. package/build/dex/wusdm/constants.d.ts +0 -2
  278. package/build/dex/wusdm/constants.js +0 -6
  279. package/build/dex/wusdm/constants.js.map +0 -1
  280. package/build/dex/wusdm/types.d.ts +0 -18
  281. package/build/dex/wusdm/types.js +0 -11
  282. package/build/dex/wusdm/types.js.map +0 -1
  283. package/build/dex/wusdm/wusdm-pool.d.ts +0 -21
  284. package/build/dex/wusdm/wusdm-pool.js +0 -74
  285. package/build/dex/wusdm/wusdm-pool.js.map +0 -1
  286. package/build/dex/wusdm/wusdm.d.ts +0 -46
  287. package/build/dex/wusdm/wusdm.js +0 -243
  288. package/build/dex/wusdm/wusdm.js.map +0 -1
  289. package/build/dex/zerox/config.d.ts +0 -2
  290. package/build/dex/zerox/config.js +0 -33
  291. package/build/dex/zerox/config.js.map +0 -1
  292. package/build/dex/zerox/index.d.ts +0 -22
  293. package/build/dex/zerox/index.js +0 -225
  294. package/build/dex/zerox/index.js.map +0 -1
  295. package/build/dex/zerox/order.d.ts +0 -88
  296. package/build/dex/zerox/order.js +0 -53
  297. package/build/dex/zerox/order.js.map +0 -1
  298. package/build/dex/zerox/types.d.ts +0 -73
  299. package/build/dex/zerox/types.js +0 -21
  300. package/build/dex/zerox/types.js.map +0 -1
  301. /package/build/dex/{uniswap-v3/scripts/bench-all-dexes.d.ts → fluid-dex/scripts/measure-calc-time.d.ts} +0 -0
  302. /package/build/{dex/infusion → generic-swap-transaction-builder/resolved}/types.js +0 -0
@@ -0,0 +1,194 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.WETH_DEPOSIT_WITHDRAW_RESULT_FIELD_CONTRACT = exports.WETH_DEPOSIT_WITHDRAW_INPUT_FIELD_CONTRACT = exports.DIRECT_PARAM_RESULT_FIELD_CONTRACT = exports.DIRECT_PARAM_INPUT_FIELD_CONTRACT = exports.DEX_EXCHANGE_PARAM_FIELD_CONTRACT = exports.DEX_PARAM_INPUT_FIELD_CONTRACT = exports.NEED_WRAP_NATIVE_INPUT_FIELD_CONTRACT = exports.SPECIAL_DEX_FLAG_RESERVED_RANGE = exports.KNOWN_SPECIAL_DEX_FLAGS = exports.DEX_ENCODER_DTO_NORMALIZATION_POLICY = exports.AUDITED_FUNCTION_NEED_WRAP_NATIVE_DEXES = void 0;
4
+ const types_1 = require("../../executor/types");
5
+ // Phase 0 audit: concrete V6 DEX keys under src/dex/** whose needWrapNative
6
+ // member is function-shaped instead of a static boolean.
7
+ exports.AUDITED_FUNCTION_NEED_WRAP_NATIVE_DEXES = [
8
+ 'CurveV1Factory',
9
+ 'CurveV1StableNg',
10
+ ];
11
+ exports.DEX_ENCODER_DTO_NORMALIZATION_POLICY = {
12
+ addressFields: 'lowercase',
13
+ amountFields: 'decimal-string',
14
+ calldataFields: '0x-prefixed-hex',
15
+ swapExchangeData: 'dex-owned-pass-through',
16
+ unknownFields: 'reject',
17
+ optionalFields: 'omit-or-null-normalized-to-undefined',
18
+ };
19
+ // Keep this list in lockstep with SpecialDex until Phase 5 adds an enum/list
20
+ // parity test alongside the needWrapNative audit scanner.
21
+ exports.KNOWN_SPECIAL_DEX_FLAGS = [
22
+ types_1.SpecialDex.DEFAULT,
23
+ types_1.SpecialDex.SWAP_ON_SWAAP_V2_SINGLE,
24
+ types_1.SpecialDex.SWAP_ON_BALANCER_V1,
25
+ types_1.SpecialDex.SWAP_ON_MAKER_PSM,
26
+ types_1.SpecialDex.SEND_NATIVE,
27
+ types_1.SpecialDex.SWAP_ON_BALANCER_V2,
28
+ types_1.SpecialDex.SWAP_ON_UNISWAP_V2_FORK,
29
+ types_1.SpecialDex.SWAP_ON_DYSTOPIA_UNISWAP_V2_FORK,
30
+ types_1.SpecialDex.SWAP_ON_DYSTOPIA_UNISWAP_V2_FORK_WITH_FEE,
31
+ types_1.SpecialDex.SWAP_ON_AUGUSTUS_RFQ,
32
+ types_1.SpecialDex.EXECUTE_VERTICAL_BRANCHING,
33
+ types_1.SpecialDex.BUY_ON_SOLIDLY_V3,
34
+ types_1.SpecialDex.SWAP_ON_DEXALOT,
35
+ types_1.SpecialDex.SWAP_ON_HASHFLOW,
36
+ ];
37
+ exports.SPECIAL_DEX_FLAG_RESERVED_RANGE = {
38
+ min: 0,
39
+ max: 255,
40
+ };
41
+ exports.NEED_WRAP_NATIVE_INPUT_FIELD_CONTRACT = {
42
+ addressFields: [
43
+ 'route.srcToken',
44
+ 'route.destToken',
45
+ 'swap.srcToken',
46
+ 'swap.destToken',
47
+ ],
48
+ amountFields: [
49
+ 'route.srcAmount',
50
+ 'route.destAmount',
51
+ 'swap.srcAmount',
52
+ 'swap.destAmount',
53
+ 'swapExchange.srcAmount',
54
+ 'swapExchange.destAmount',
55
+ ],
56
+ booleanFields: [],
57
+ calldataFields: [],
58
+ nullableInputFields: ['swapExchange.data'],
59
+ numberFields: [
60
+ 'route.network',
61
+ 'route.routeIndex',
62
+ 'route.routePercent',
63
+ 'route.blockNumber',
64
+ 'swap.swapIndex',
65
+ 'swapExchange.swapExchangeIndex',
66
+ 'swapExchange.percent',
67
+ ],
68
+ passThroughFields: ['swapExchange.data'],
69
+ strictOutputFields: [],
70
+ };
71
+ exports.DEX_PARAM_INPUT_FIELD_CONTRACT = {
72
+ addressFields: [
73
+ ...exports.NEED_WRAP_NATIVE_INPUT_FIELD_CONTRACT.addressFields,
74
+ 'srcToken',
75
+ 'destToken',
76
+ 'recipient',
77
+ 'executorAddress',
78
+ ],
79
+ amountFields: [
80
+ ...exports.NEED_WRAP_NATIVE_INPUT_FIELD_CONTRACT.amountFields,
81
+ 'srcAmount',
82
+ 'destAmount',
83
+ ],
84
+ booleanFields: exports.NEED_WRAP_NATIVE_INPUT_FIELD_CONTRACT.booleanFields,
85
+ calldataFields: [],
86
+ nullableInputFields: [
87
+ ...exports.NEED_WRAP_NATIVE_INPUT_FIELD_CONTRACT.nullableInputFields,
88
+ 'data',
89
+ ],
90
+ numberFields: exports.NEED_WRAP_NATIVE_INPUT_FIELD_CONTRACT.numberFields,
91
+ passThroughFields: [
92
+ ...exports.NEED_WRAP_NATIVE_INPUT_FIELD_CONTRACT.passThroughFields,
93
+ 'data',
94
+ ],
95
+ strictOutputFields: [],
96
+ };
97
+ exports.DEX_EXCHANGE_PARAM_FIELD_CONTRACT = {
98
+ addressFields: [
99
+ 'wethAddress',
100
+ 'targetExchange',
101
+ 'transferSrcTokenBeforeSwap',
102
+ 'spender',
103
+ ],
104
+ amountFields: [],
105
+ booleanFields: [
106
+ 'needWrapNative',
107
+ 'needUnwrapNative',
108
+ 'skipApproval',
109
+ 'dexFuncHasRecipient',
110
+ 'sendEthButSupportsInsertFromAmount',
111
+ 'specialDexSupportsInsertFromAmount',
112
+ 'swappedAmountNotPresentInExchangeData',
113
+ 'amountsPacked128',
114
+ 'permit2Approval',
115
+ ],
116
+ calldataFields: ['exchangeData'],
117
+ nullableInputFields: [
118
+ 'needUnwrapNative',
119
+ 'skipApproval',
120
+ 'wethAddress',
121
+ 'specialDexFlag',
122
+ 'transferSrcTokenBeforeSwap',
123
+ 'spender',
124
+ 'sendEthButSupportsInsertFromAmount',
125
+ 'specialDexSupportsInsertFromAmount',
126
+ 'swappedAmountNotPresentInExchangeData',
127
+ 'returnAmountPos',
128
+ 'insertFromAmountPos',
129
+ 'amountsPacked128',
130
+ 'permit2Approval',
131
+ ],
132
+ numberFields: ['specialDexFlag', 'returnAmountPos', 'insertFromAmountPos'],
133
+ passThroughFields: [],
134
+ strictOutputFields: [
135
+ 'needWrapNative',
136
+ 'needUnwrapNative',
137
+ 'skipApproval',
138
+ 'wethAddress',
139
+ 'exchangeData',
140
+ 'targetExchange',
141
+ 'dexFuncHasRecipient',
142
+ 'specialDexFlag',
143
+ 'transferSrcTokenBeforeSwap',
144
+ 'spender',
145
+ 'sendEthButSupportsInsertFromAmount',
146
+ 'specialDexSupportsInsertFromAmount',
147
+ 'swappedAmountNotPresentInExchangeData',
148
+ 'returnAmountPos',
149
+ 'insertFromAmountPos',
150
+ 'amountsPacked128',
151
+ 'permit2Approval',
152
+ ],
153
+ };
154
+ exports.DIRECT_PARAM_INPUT_FIELD_CONTRACT = {
155
+ addressFields: ['srcToken', 'destToken', 'beneficiary'],
156
+ amountFields: ['srcAmount', 'destAmount', 'quotedAmount', 'partnerAndFee'],
157
+ booleanFields: [],
158
+ calldataFields: ['permit'],
159
+ nullableInputFields: ['data'],
160
+ numberFields: ['network', 'blockNumber'],
161
+ passThroughFields: ['data'],
162
+ strictOutputFields: [],
163
+ };
164
+ exports.DIRECT_PARAM_RESULT_FIELD_CONTRACT = {
165
+ addressFields: [],
166
+ amountFields: [],
167
+ booleanFields: [],
168
+ calldataFields: [],
169
+ nullableInputFields: [],
170
+ numberFields: [],
171
+ passThroughFields: ['params'],
172
+ strictOutputFields: ['params'],
173
+ };
174
+ exports.WETH_DEPOSIT_WITHDRAW_INPUT_FIELD_CONTRACT = {
175
+ addressFields: [],
176
+ amountFields: ['srcAmountWeth', 'destAmountWeth'],
177
+ booleanFields: [],
178
+ calldataFields: [],
179
+ nullableInputFields: [],
180
+ numberFields: [],
181
+ passThroughFields: [],
182
+ strictOutputFields: [],
183
+ };
184
+ exports.WETH_DEPOSIT_WITHDRAW_RESULT_FIELD_CONTRACT = {
185
+ addressFields: ['deposit.callee', 'withdraw.callee'],
186
+ amountFields: ['deposit.value', 'withdraw.value'],
187
+ booleanFields: [],
188
+ calldataFields: ['deposit.calldata', 'withdraw.calldata'],
189
+ nullableInputFields: ['deposit', 'withdraw'],
190
+ numberFields: [],
191
+ passThroughFields: [],
192
+ strictOutputFields: ['deposit', 'withdraw'],
193
+ };
194
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/generic-swap-transaction-builder/dex-encoder/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,65 @@
1
+ import { SwapSide } from '@paraswap/core';
2
+ import type { DepositWithdrawReturn } from '../dex/weth/types';
3
+ import type { ExecutorEncodingContext } from '../executor/encoding-types';
4
+ import type { Address, OptimalRate, OptimalSwap, OptimalSwapExchange } from '../types';
5
+ import type { ResolvedLeg, RoutePlan } from './resolved/types';
6
+ export type GenericDexCallParams = {
7
+ srcToken: Address;
8
+ destToken: Address;
9
+ recipient: Address;
10
+ srcAmount: string;
11
+ destAmount: string;
12
+ wethDeposit: bigint;
13
+ wethWithdraw: bigint;
14
+ };
15
+ export type WethCallDataProvider = (srcAmountWeth: string, destAmountWeth: string, side: SwapSide) => DepositWithdrawReturn | undefined | Promise<DepositWithdrawReturn | undefined>;
16
+ export type ResolvedLegWithWeth = {
17
+ resolvedLeg: ResolvedLeg;
18
+ wethDeposit: bigint;
19
+ wethWithdraw: bigint;
20
+ };
21
+ export type DexExchangeApprovalRequest = {
22
+ params: [token: Address, target: Address, permit2: boolean];
23
+ routePositionKey: string;
24
+ };
25
+ export declare function resolveQuotedAmount(priceRoute: Pick<OptimalRate, 'side' | 'srcAmount' | 'destAmount'>, quotedAmount?: string): string;
26
+ export declare function resolveBeneficiary(userAddress: Address, beneficiary?: Address): Address;
27
+ export declare function resolvePermit(permit?: string): string;
28
+ export declare function buildGenericDexCallParams({ priceRoute, routeIndex, swap, swapIndex, swapExchange, minMaxAmount, dexNeedWrapNative, executionContractAddress, wrappedNativeTokenAddress, augustusV6Address, }: {
29
+ priceRoute: OptimalRate;
30
+ routeIndex: number;
31
+ swap: OptimalSwap;
32
+ swapIndex: number;
33
+ swapExchange: OptimalSwapExchange<unknown>;
34
+ minMaxAmount: string;
35
+ dexNeedWrapNative: boolean;
36
+ executionContractAddress: Address;
37
+ wrappedNativeTokenAddress: Address;
38
+ augustusV6Address: Address;
39
+ }): GenericDexCallParams;
40
+ export declare function buildResolvedWethPlan({ resolvedLegsWithWeth, side, routePlan, getWethCallData, wrappedNativeTokenAddress, }: {
41
+ resolvedLegsWithWeth: ResolvedLegWithWeth[];
42
+ side: SwapSide;
43
+ routePlan: RoutePlan;
44
+ getWethCallData: WethCallDataProvider;
45
+ wrappedNativeTokenAddress: Address;
46
+ }): Promise<{
47
+ resolvedLegs: ResolvedLeg[];
48
+ wethPlan?: DepositWithdrawReturn;
49
+ }>;
50
+ export declare function hasAnyRouteWithEthAndDifferentNeedWrapNative({ routePlan, resolvedLegs, wrappedNativeTokenAddress, }: {
51
+ routePlan: RoutePlan;
52
+ resolvedLegs: ResolvedLeg[];
53
+ wrappedNativeTokenAddress: Address;
54
+ }): boolean;
55
+ export declare function buildDexExchangeApprovalRequests({ executorEncodingContext, priceRoute, routePlan, resolvedLegs, }: {
56
+ executorEncodingContext: ExecutorEncodingContext;
57
+ priceRoute: OptimalRate;
58
+ routePlan: RoutePlan;
59
+ resolvedLegs: ResolvedLeg[];
60
+ }): DexExchangeApprovalRequest[];
61
+ export declare function applyDexExchangeApprovalDecisions({ resolvedLegs, approvalRequests, approvalDecisions, }: {
62
+ resolvedLegs: ResolvedLeg[];
63
+ approvalRequests: DexExchangeApprovalRequest[];
64
+ approvalDecisions: boolean[];
65
+ }): ResolvedLeg[];
@@ -0,0 +1,198 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.resolveQuotedAmount = resolveQuotedAmount;
4
+ exports.resolveBeneficiary = resolveBeneficiary;
5
+ exports.resolvePermit = resolvePermit;
6
+ exports.buildGenericDexCallParams = buildGenericDexCallParams;
7
+ exports.buildResolvedWethPlan = buildResolvedWethPlan;
8
+ exports.hasAnyRouteWithEthAndDifferentNeedWrapNative = hasAnyRouteWithEthAndDifferentNeedWrapNative;
9
+ exports.buildDexExchangeApprovalRequests = buildDexExchangeApprovalRequests;
10
+ exports.applyDexExchangeApprovalDecisions = applyDexExchangeApprovalDecisions;
11
+ const core_1 = require("@paraswap/core");
12
+ const constants_1 = require("../constants");
13
+ const approval_1 = require("../executor/approval");
14
+ const utils_1 = require("../utils");
15
+ const route_plan_1 = require("./resolved/route-plan");
16
+ function resolveQuotedAmount(priceRoute, quotedAmount) {
17
+ if (quotedAmount)
18
+ return quotedAmount;
19
+ return priceRoute.side === core_1.SwapSide.SELL
20
+ ? priceRoute.destAmount
21
+ : priceRoute.srcAmount;
22
+ }
23
+ function resolveBeneficiary(userAddress, beneficiary = constants_1.NULL_ADDRESS) {
24
+ return beneficiary !== constants_1.NULL_ADDRESS &&
25
+ beneficiary.toLowerCase() !== userAddress.toLowerCase()
26
+ ? beneficiary
27
+ : constants_1.NULL_ADDRESS;
28
+ }
29
+ function resolvePermit(permit) {
30
+ return permit || '0x';
31
+ }
32
+ function buildGenericDexCallParams({ priceRoute, routeIndex, swap, swapIndex, swapExchange, minMaxAmount, dexNeedWrapNative, executionContractAddress, wrappedNativeTokenAddress, augustusV6Address, }) {
33
+ const side = priceRoute.side;
34
+ const isMegaSwap = priceRoute.bestRoute.length > 1;
35
+ const isMultiSwap = !isMegaSwap && priceRoute.bestRoute[0].swaps.length > 1;
36
+ const isLastSwap = swapIndex === priceRoute.bestRoute[routeIndex].swaps.length - 1;
37
+ let srcToken = swap.srcToken;
38
+ let destToken = swap.destToken;
39
+ let wethDeposit = 0n;
40
+ let wethWithdraw = 0n;
41
+ // For buys, apply slippage to the first swap srcAmount in the same
42
+ // proportion as the complete swap.
43
+ const srcAmount = swapIndex > 0 || side === core_1.SwapSide.SELL
44
+ ? swapExchange.srcAmount
45
+ : ((BigInt(swapExchange.srcAmount) * BigInt(minMaxAmount)) /
46
+ BigInt(priceRoute.srcAmount)).toString();
47
+ const destAmount = side === core_1.SwapSide.SELL ? '1' : swapExchange.destAmount;
48
+ if ((0, utils_1.isETHAddress)(swap.srcToken) && dexNeedWrapNative) {
49
+ srcToken = wrappedNativeTokenAddress;
50
+ wethDeposit = BigInt(srcAmount);
51
+ }
52
+ const forceUnwrap = (0, utils_1.isETHAddress)(swap.destToken) &&
53
+ (isMultiSwap || isMegaSwap) &&
54
+ !dexNeedWrapNative &&
55
+ !isLastSwap;
56
+ if (((0, utils_1.isETHAddress)(swap.destToken) && dexNeedWrapNative) || forceUnwrap) {
57
+ destToken =
58
+ forceUnwrap && !dexNeedWrapNative ? destToken : wrappedNativeTokenAddress;
59
+ wethWithdraw = BigInt(swapExchange.destAmount);
60
+ }
61
+ const needToWithdrawAfterSwap = destToken === wrappedNativeTokenAddress && wethWithdraw > 0n;
62
+ return {
63
+ srcToken,
64
+ destToken,
65
+ recipient: needToWithdrawAfterSwap || !isLastSwap || priceRoute.side === core_1.SwapSide.BUY
66
+ ? executionContractAddress
67
+ : augustusV6Address,
68
+ srcAmount,
69
+ destAmount,
70
+ wethDeposit,
71
+ wethWithdraw,
72
+ };
73
+ }
74
+ async function buildResolvedWethPlan({ resolvedLegsWithWeth, side, routePlan, getWethCallData, wrappedNativeTokenAddress, }) {
75
+ const { resolvedLegs, srcAmountWethToDeposit, destAmountWethToWithdraw } = resolvedLegsWithWeth.reduce((acc, resolvedLegWithWeth) => {
76
+ acc.srcAmountWethToDeposit += BigInt(resolvedLegWithWeth.wethDeposit);
77
+ acc.destAmountWethToWithdraw += BigInt(resolvedLegWithWeth.wethWithdraw);
78
+ acc.resolvedLegs.push(resolvedLegWithWeth.resolvedLeg);
79
+ return acc;
80
+ }, {
81
+ resolvedLegs: [],
82
+ srcAmountWethToDeposit: 0n,
83
+ destAmountWethToWithdraw: 0n,
84
+ });
85
+ if (srcAmountWethToDeposit === 0n && destAmountWethToWithdraw === 0n) {
86
+ return { resolvedLegs };
87
+ }
88
+ if (srcAmountWethToDeposit === destAmountWethToWithdraw &&
89
+ !hasAnyRouteWithEthAndDifferentNeedWrapNative({
90
+ routePlan,
91
+ resolvedLegs,
92
+ wrappedNativeTokenAddress,
93
+ })) {
94
+ return { resolvedLegs };
95
+ }
96
+ return {
97
+ resolvedLegs,
98
+ wethPlan: await getWethCallData(srcAmountWethToDeposit.toString(), destAmountWethToWithdraw.toString(), side),
99
+ };
100
+ }
101
+ function hasAnyRouteWithEthAndDifferentNeedWrapNative({ routePlan, resolvedLegs, wrappedNativeTokenAddress, }) {
102
+ const eth = constants_1.ETHER_ADDRESS.toLowerCase();
103
+ const weth = wrappedNativeTokenAddress.toLowerCase();
104
+ const resolvedLegByKey = buildResolvedLegMap(resolvedLegs);
105
+ return !routePlan.routes.every((route, routeIndex) => {
106
+ const swapExchangeParams = [];
107
+ route.swaps.forEach((swap, swapIndex) => {
108
+ swap.swapExchanges.forEach((_swapExchange, swapExchangeIndex) => {
109
+ const key = (0, route_plan_1.routePositionKey)({
110
+ routeIndex,
111
+ swapIndex,
112
+ swapExchangeIndex,
113
+ });
114
+ const curResolvedLeg = resolvedLegByKey.get(key);
115
+ if (!curResolvedLeg) {
116
+ throw new Error(`missing resolved leg for route position ${key}`);
117
+ }
118
+ if (swap.destToken.toLowerCase() === weth ||
119
+ swap.destToken.toLowerCase() === eth ||
120
+ swap.srcToken.toLowerCase() === weth ||
121
+ swap.srcToken.toLowerCase() === eth) {
122
+ swapExchangeParams.push(curResolvedLeg.exchangeParam);
123
+ }
124
+ });
125
+ });
126
+ return (swapExchangeParams.every(p => p.needWrapNative === true) ||
127
+ swapExchangeParams.every(p => p.needWrapNative === false));
128
+ });
129
+ }
130
+ function buildDexExchangeApprovalRequests({ executorEncodingContext, priceRoute, routePlan, resolvedLegs, }) {
131
+ const resolvedLegByKey = buildResolvedLegMap(resolvedLegs);
132
+ const approvalRequests = [];
133
+ (0, route_plan_1.walkRoutePlan)(routePlan).forEach(routePosition => {
134
+ const key = (0, route_plan_1.routePositionKey)(routePosition);
135
+ const curResolvedLeg = resolvedLegByKey.get(key);
136
+ if (!curResolvedLeg) {
137
+ throw new Error(`missing resolved leg for route position ${key}`);
138
+ }
139
+ const swap = priceRoute.bestRoute[routePosition.routeIndex].swaps[routePosition.swapIndex];
140
+ const curExchangeParam = curResolvedLeg.exchangeParam;
141
+ const approveParams = (0, approval_1.getApprovalTokenAndTarget)(swap, curExchangeParam, executorEncodingContext);
142
+ if (approveParams) {
143
+ approvalRequests.push({
144
+ params: [
145
+ approveParams.token,
146
+ approveParams.target,
147
+ !!curExchangeParam.permit2Approval,
148
+ ],
149
+ routePositionKey: key,
150
+ });
151
+ }
152
+ });
153
+ return approvalRequests;
154
+ }
155
+ function applyDexExchangeApprovalDecisions({ resolvedLegs, approvalRequests, approvalDecisions, }) {
156
+ if (approvalDecisions.length !== approvalRequests.length) {
157
+ throw new Error('approval decision length must match approval request count');
158
+ }
159
+ const resolvedLegByKey = buildResolvedLegMap(resolvedLegs);
160
+ approvalDecisions.forEach((alreadyApproved, index) => {
161
+ if (alreadyApproved)
162
+ return;
163
+ const [token, target] = approvalRequests[index].params;
164
+ const key = approvalRequests[index].routePositionKey;
165
+ const curResolvedLeg = resolvedLegByKey.get(key);
166
+ if (!curResolvedLeg) {
167
+ throw new Error(`missing resolved leg for route position ${key}`);
168
+ }
169
+ resolvedLegByKey.set(key, {
170
+ ...curResolvedLeg,
171
+ exchangeParam: {
172
+ ...curResolvedLeg.exchangeParam,
173
+ approveData: {
174
+ token: normalizeAddress(token),
175
+ target: normalizeAddress(target),
176
+ },
177
+ },
178
+ });
179
+ });
180
+ return resolvedLegs.map(resolvedLeg => {
181
+ const key = (0, route_plan_1.routePositionKey)(resolvedLeg);
182
+ const curResolvedLeg = resolvedLegByKey.get(key);
183
+ if (!curResolvedLeg) {
184
+ throw new Error(`missing resolved leg for route position ${key}`);
185
+ }
186
+ return curResolvedLeg;
187
+ });
188
+ }
189
+ function buildResolvedLegMap(resolvedLegs) {
190
+ return new Map(resolvedLegs.map(resolvedLeg => [
191
+ (0, route_plan_1.routePositionKey)(resolvedLeg),
192
+ resolvedLeg,
193
+ ]));
194
+ }
195
+ function normalizeAddress(address) {
196
+ return address.toLowerCase();
197
+ }
198
+ //# sourceMappingURL=orchestration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"orchestration.js","sourceRoot":"","sources":["../../src/generic-swap-transaction-builder/orchestration.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import { Interface } from '@ethersproject/abi';
2
+ import type { ExecutorEncodingContext } from '../../executor/encoding-types';
3
+ import type { BuildInput, DirectBuildInput, FeeInput, ResolvedBuildOutput, ResolvedDirectBuildOutput } from './types';
4
+ export type ResolvedBuildDeps = {
5
+ encodingContext: ExecutorEncodingContext;
6
+ augustusV6Interface: Interface;
7
+ };
8
+ export type ResolvedDirectBuildDeps = {
9
+ augustusV6Interface: Interface;
10
+ };
11
+ export declare function buildTransactionFromResolved(input: BuildInput, deps: ResolvedBuildDeps): ResolvedBuildOutput;
12
+ export declare function buildDirectTransactionFromResolved(input: DirectBuildInput, deps: ResolvedDirectBuildDeps): ResolvedDirectBuildOutput;
13
+ export declare function buildFeesV6(fee: FeeInput): string;