@paraswap/dex-lib 5.0.2-native-dex-math.0 → 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 (313) hide show
  1. package/build/abi/pancakeswap-infinity/cl-pool-manager.json +80 -0
  2. package/build/config.js +24 -24
  3. package/build/dex/fluid-dex/scripts/measure-calc-time.js +178 -0
  4. package/build/dex/fluid-dex/scripts/measure-calc-time.js.map +1 -0
  5. package/build/dex/idex.d.ts +2 -2
  6. package/build/dex/metric/metric.d.ts +2 -2
  7. package/build/dex/metric/metric.js +2 -2
  8. package/build/dex/metric/metric.js.map +1 -1
  9. package/build/dex/simple-exchange.d.ts +1 -1
  10. package/build/dex/simple-exchange.js +1 -1
  11. package/build/dex/simple-exchange.js.map +1 -1
  12. package/build/dex/uniswap-v3/uniswap-v3.d.ts +2 -2
  13. package/build/dex/uniswap-v3/uniswap-v3.js +4 -3
  14. package/build/dex/uniswap-v3/uniswap-v3.js.map +1 -1
  15. package/build/dex/uniswap-v4/api-go/compare-pricing.d.ts +1 -0
  16. package/build/dex/uniswap-v4/api-go/compare-pricing.js +187 -0
  17. package/build/dex/uniswap-v4/api-go/compare-pricing.js.map +1 -0
  18. package/build/dex/uniswap-v4/api-go/compare-states.d.ts +1 -0
  19. package/build/dex/uniswap-v4/api-go/compare-states.js +149 -0
  20. package/build/dex/uniswap-v4/api-go/compare-states.js.map +1 -0
  21. package/build/dex/uniswap-v4/api-go/fetch-pool-key.d.ts +0 -0
  22. package/build/dex/uniswap-v4/api-go/fetch-pool-key.js +140 -0
  23. package/build/dex/uniswap-v4/api-go/fetch-pool-key.js.map +1 -0
  24. package/build/executor/Executor01BytecodeBuilder.js +4 -4
  25. package/build/executor/Executor01BytecodeBuilder.js.map +1 -1
  26. package/build/executor/Executor02BytecodeBuilder.js +4 -4
  27. package/build/executor/Executor02BytecodeBuilder.js.map +1 -1
  28. package/build/executor/Executor03BytecodeBuilder.d.ts +0 -15
  29. package/build/executor/Executor03BytecodeBuilder.js +1 -61
  30. package/build/executor/Executor03BytecodeBuilder.js.map +1 -1
  31. package/build/executor/ExecutorBytecodeBuilder.d.ts +4 -0
  32. package/build/executor/ExecutorBytecodeBuilder.js +39 -0
  33. package/build/executor/ExecutorBytecodeBuilder.js.map +1 -1
  34. package/build/executor/__test-utils__/snapshot-test-helpers.d.ts +10 -0
  35. package/build/executor/__test-utils__/snapshot-test-helpers.js +72 -0
  36. package/build/executor/__test-utils__/snapshot-test-helpers.js.map +1 -0
  37. package/build/executor/address-utils.d.ts +2 -0
  38. package/build/executor/address-utils.js +7 -0
  39. package/build/executor/address-utils.js.map +1 -0
  40. package/build/executor/approval.d.ts +9 -0
  41. package/build/executor/approval.js +29 -0
  42. package/build/executor/approval.js.map +1 -0
  43. package/build/executor/encoding-context.d.ts +4 -0
  44. package/build/executor/encoding-context.js +54 -0
  45. package/build/executor/encoding-context.js.map +1 -0
  46. package/build/executor/encoding-types.d.ts +75 -0
  47. package/build/{dex/quick-perps/types.js → executor/encoding-types.js} +1 -1
  48. package/build/executor/encoding-types.js.map +1 -0
  49. package/build/executor/factory.d.ts +4 -0
  50. package/build/executor/factory.js +23 -0
  51. package/build/executor/factory.js.map +1 -0
  52. package/build/executor/route-plan.d.ts +8 -0
  53. package/build/executor/route-plan.js +109 -0
  54. package/build/executor/route-plan.js.map +1 -0
  55. package/build/generic-swap-transaction-builder/dex-encoder/direct-methods.d.ts +6 -0
  56. package/build/generic-swap-transaction-builder/dex-encoder/direct-methods.js +39 -0
  57. package/build/generic-swap-transaction-builder/dex-encoder/direct-methods.js.map +1 -0
  58. package/build/generic-swap-transaction-builder/dex-encoder/index.d.ts +4 -0
  59. package/build/generic-swap-transaction-builder/dex-encoder/index.js +21 -0
  60. package/build/generic-swap-transaction-builder/dex-encoder/index.js.map +1 -0
  61. package/build/generic-swap-transaction-builder/dex-encoder/ports.d.ts +26 -0
  62. package/build/{dex/maker-psm/types.js → generic-swap-transaction-builder/dex-encoder/ports.js} +1 -1
  63. package/build/generic-swap-transaction-builder/dex-encoder/ports.js.map +1 -0
  64. package/build/generic-swap-transaction-builder/dex-encoder/ts-adapter.d.ts +22 -0
  65. package/build/generic-swap-transaction-builder/dex-encoder/ts-adapter.js +299 -0
  66. package/build/generic-swap-transaction-builder/dex-encoder/ts-adapter.js.map +1 -0
  67. package/build/generic-swap-transaction-builder/dex-encoder/types.d.ts +207 -0
  68. package/build/generic-swap-transaction-builder/dex-encoder/types.js +194 -0
  69. package/build/generic-swap-transaction-builder/dex-encoder/types.js.map +1 -0
  70. package/build/generic-swap-transaction-builder/orchestration.d.ts +65 -0
  71. package/build/generic-swap-transaction-builder/orchestration.js +198 -0
  72. package/build/generic-swap-transaction-builder/orchestration.js.map +1 -0
  73. package/build/generic-swap-transaction-builder/resolved/build-transaction.d.ts +13 -0
  74. package/build/generic-swap-transaction-builder/resolved/build-transaction.js +343 -0
  75. package/build/generic-swap-transaction-builder/resolved/build-transaction.js.map +1 -0
  76. package/build/generic-swap-transaction-builder/resolved/index.d.ts +4 -0
  77. package/build/generic-swap-transaction-builder/resolved/index.js +21 -0
  78. package/build/generic-swap-transaction-builder/resolved/index.js.map +1 -0
  79. package/build/generic-swap-transaction-builder/resolved/route-plan.d.ts +2 -0
  80. package/build/generic-swap-transaction-builder/resolved/route-plan.js +11 -0
  81. package/build/generic-swap-transaction-builder/resolved/route-plan.js.map +1 -0
  82. package/build/generic-swap-transaction-builder/resolved/types.d.ts +67 -0
  83. package/build/generic-swap-transaction-builder/resolved/types.js.map +1 -0
  84. package/build/generic-swap-transaction-builder/resolved/validation.d.ts +10 -0
  85. package/build/generic-swap-transaction-builder/resolved/validation.js +69 -0
  86. package/build/generic-swap-transaction-builder/resolved/validation.js.map +1 -0
  87. package/build/generic-swap-transaction-builder.d.ts +6 -4
  88. package/build/generic-swap-transaction-builder.js +8 -6
  89. package/build/generic-swap-transaction-builder.js.map +1 -1
  90. package/build/index.d.ts +1 -1
  91. package/build/index.js.map +1 -1
  92. package/build/types.d.ts +3 -0
  93. package/package.json +2 -2
  94. package/build/abi/BProtocol.json +0 -1155
  95. package/build/abi/Jarvis.json +0 -1172
  96. package/build/abi/MStableAsset.json +0 -1545
  97. package/build/abi/OneInchLp.json +0 -1304
  98. package/build/abi/Onebit.json +0 -736
  99. package/build/abi/Shell.json +0 -1294
  100. package/build/abi/TraderJoeV2Router.json +0 -50
  101. package/build/abi/idle-dao/idle-cdo-factory.json +0 -38
  102. package/build/abi/idle-dao/idle-cdo.json +0 -1245
  103. package/build/abi/infusion/InfusionFactory.json +0 -147
  104. package/build/abi/infusion/InfusionPair.json +0 -658
  105. package/build/abi/infusion/InfusionRouter.json +0 -442
  106. package/build/abi/maker-psm/pot.json +0 -322
  107. package/build/abi/maker-psm/psm.json +0 -243
  108. package/build/abi/maker-psm/vat.json +0 -363
  109. package/build/abi/nomiswap-v2/nomiswap-v2-pool.json +0 -773
  110. package/build/abi/quick-perps/fast-price-events.json +0 -70
  111. package/build/abi/quick-perps/fast-price-feed.json +0 -741
  112. package/build/abi/quick-perps/reader.json +0 -313
  113. package/build/abi/quick-perps/vault-price-feed.json +0 -323
  114. package/build/abi/quick-perps/vault.json +0 -1953
  115. package/build/abi/uniswap-v2/excalibur-pool.json +0 -881
  116. package/build/abi/uniswap-v2/mdex-factory.json +0 -759
  117. package/build/abi/wUSDM.json +0 -757
  118. package/build/abi/zrx.v2.json +0 -1967
  119. package/build/abi/zrx.v3.json +0 -3454
  120. package/build/abi/zrx.v4.json +0 -2193
  121. package/build/dex/OneInchLp.d.ts +0 -24
  122. package/build/dex/OneInchLp.js +0 -43
  123. package/build/dex/OneInchLp.js.map +0 -1
  124. package/build/dex/bProtocol/bProtocol.d.ts +0 -15
  125. package/build/dex/bProtocol/bProtocol.js +0 -56
  126. package/build/dex/bProtocol/bProtocol.js.map +0 -1
  127. package/build/dex/bProtocol/types.d.ts +0 -11
  128. package/build/dex/bProtocol/types.js +0 -8
  129. package/build/dex/bProtocol/types.js.map +0 -1
  130. package/build/dex/ekubo/pools/base-pool.d.ts +0 -47
  131. package/build/dex/ekubo/pools/base-pool.js +0 -184
  132. package/build/dex/ekubo/pools/base-pool.js.map +0 -1
  133. package/build/dex/ekubo/pools/iface.d.ts +0 -46
  134. package/build/dex/ekubo/pools/iface.js +0 -75
  135. package/build/dex/ekubo/pools/iface.js.map +0 -1
  136. package/build/dex/ekubo/pools/math/price.d.ts +0 -7
  137. package/build/dex/ekubo/pools/math/price.js +0 -112
  138. package/build/dex/ekubo/pools/math/price.js.map +0 -1
  139. package/build/dex/ekubo/pools/oracle-pool.d.ts +0 -10
  140. package/build/dex/ekubo/pools/oracle-pool.js +0 -19
  141. package/build/dex/ekubo/pools/oracle-pool.js.map +0 -1
  142. package/build/dex/ekubo/pools/pool-utils.d.ts +0 -44
  143. package/build/dex/ekubo/pools/pool-utils.js +0 -240
  144. package/build/dex/ekubo/pools/pool-utils.js.map +0 -1
  145. package/build/dex/idle-dao/config.d.ts +0 -5
  146. package/build/dex/idle-dao/config.js +0 -24
  147. package/build/dex/idle-dao/config.js.map +0 -1
  148. package/build/dex/idle-dao/idle-dao.d.ts +0 -42
  149. package/build/dex/idle-dao/idle-dao.js +0 -279
  150. package/build/dex/idle-dao/idle-dao.js.map +0 -1
  151. package/build/dex/idle-dao/token_list.d.ts +0 -4
  152. package/build/dex/idle-dao/token_list.js +0 -289
  153. package/build/dex/idle-dao/token_list.js.map +0 -1
  154. package/build/dex/idle-dao/tokens.d.ts +0 -9
  155. package/build/dex/idle-dao/tokens.js +0 -68
  156. package/build/dex/idle-dao/tokens.js.map +0 -1
  157. package/build/dex/idle-dao/types.d.ts +0 -35
  158. package/build/dex/idle-dao/types.js +0 -11
  159. package/build/dex/idle-dao/types.js.map +0 -1
  160. package/build/dex/idle-dao/utils.d.ts +0 -8
  161. package/build/dex/idle-dao/utils.js +0 -149
  162. package/build/dex/idle-dao/utils.js.map +0 -1
  163. package/build/dex/infusion/config.d.ts +0 -3
  164. package/build/dex/infusion/config.js +0 -20
  165. package/build/dex/infusion/config.js.map +0 -1
  166. package/build/dex/infusion/infusion-stable-pool.d.ts +0 -4
  167. package/build/dex/infusion/infusion-stable-pool.js +0 -74
  168. package/build/dex/infusion/infusion-stable-pool.js.map +0 -1
  169. package/build/dex/infusion/infusion.d.ts +0 -51
  170. package/build/dex/infusion/infusion.js +0 -500
  171. package/build/dex/infusion/infusion.js.map +0 -1
  172. package/build/dex/infusion/types.d.ts +0 -45
  173. package/build/dex/infusion/types.js.map +0 -1
  174. package/build/dex/infusion/utils/isStablePair.d.ts +0 -2
  175. package/build/dex/infusion/utils/isStablePair.js +0 -18
  176. package/build/dex/infusion/utils/isStablePair.js.map +0 -1
  177. package/build/dex/jarvis.d.ts +0 -56
  178. package/build/dex/jarvis.js +0 -163
  179. package/build/dex/jarvis.js.map +0 -1
  180. package/build/dex/mStable.d.ts +0 -44
  181. package/build/dex/mStable.js +0 -75
  182. package/build/dex/mStable.js.map +0 -1
  183. package/build/dex/maker-psm/config.d.ts +0 -11
  184. package/build/dex/maker-psm/config.js +0 -53
  185. package/build/dex/maker-psm/config.js.map +0 -1
  186. package/build/dex/maker-psm/maker-psm.d.ts +0 -103
  187. package/build/dex/maker-psm/maker-psm.js +0 -493
  188. package/build/dex/maker-psm/maker-psm.js.map +0 -1
  189. package/build/dex/maker-psm/types.d.ts +0 -39
  190. package/build/dex/maker-psm/types.js.map +0 -1
  191. package/build/dex/onebit/onebit.d.ts +0 -16
  192. package/build/dex/onebit/onebit.js +0 -61
  193. package/build/dex/onebit/onebit.js.map +0 -1
  194. package/build/dex/onebit/types.d.ts +0 -14
  195. package/build/dex/onebit/types.js +0 -8
  196. package/build/dex/onebit/types.js.map +0 -1
  197. package/build/dex/quick-perps/config.d.ts +0 -11
  198. package/build/dex/quick-perps/config.js +0 -27
  199. package/build/dex/quick-perps/config.js.map +0 -1
  200. package/build/dex/quick-perps/fast-price-feed.d.ts +0 -26
  201. package/build/dex/quick-perps/fast-price-feed.js +0 -184
  202. package/build/dex/quick-perps/fast-price-feed.js.map +0 -1
  203. package/build/dex/quick-perps/pool.d.ts +0 -21
  204. package/build/dex/quick-perps/pool.js +0 -229
  205. package/build/dex/quick-perps/pool.js.map +0 -1
  206. package/build/dex/quick-perps/quick-perps.d.ts +0 -53
  207. package/build/dex/quick-perps/quick-perps.js +0 -247
  208. package/build/dex/quick-perps/quick-perps.js.map +0 -1
  209. package/build/dex/quick-perps/types.d.ts +0 -98
  210. package/build/dex/quick-perps/types.js.map +0 -1
  211. package/build/dex/quick-perps/usdq.d.ts +0 -15
  212. package/build/dex/quick-perps/usdq.js +0 -62
  213. package/build/dex/quick-perps/usdq.js.map +0 -1
  214. package/build/dex/quick-perps/vault-price-feed.d.ts +0 -43
  215. package/build/dex/quick-perps/vault-price-feed.js +0 -203
  216. package/build/dex/quick-perps/vault-price-feed.js.map +0 -1
  217. package/build/dex/quick-perps/vault-utils.d.ts +0 -8
  218. package/build/dex/quick-perps/vault-utils.js +0 -42
  219. package/build/dex/quick-perps/vault-utils.js.map +0 -1
  220. package/build/dex/quick-perps/vault.d.ts +0 -46
  221. package/build/dex/quick-perps/vault.js +0 -182
  222. package/build/dex/quick-perps/vault.js.map +0 -1
  223. package/build/dex/se-vlr/config.d.ts +0 -3
  224. package/build/dex/se-vlr/config.js +0 -24
  225. package/build/dex/se-vlr/config.js.map +0 -1
  226. package/build/dex/se-vlr/se-vlr-pool.d.ts +0 -39
  227. package/build/dex/se-vlr/se-vlr-pool.js +0 -70
  228. package/build/dex/se-vlr/se-vlr-pool.js.map +0 -1
  229. package/build/dex/se-vlr/se-vlr.d.ts +0 -35
  230. package/build/dex/se-vlr/se-vlr.js +0 -131
  231. package/build/dex/se-vlr/se-vlr.js.map +0 -1
  232. package/build/dex/se-vlr/types.d.ts +0 -6
  233. package/build/dex/se-vlr/types.js +0 -3
  234. package/build/dex/se-vlr/types.js.map +0 -1
  235. package/build/dex/shell.d.ts +0 -25
  236. package/build/dex/shell.js +0 -41
  237. package/build/dex/shell.js.map +0 -1
  238. package/build/dex/solidly/forks-override/aerodrome.d.ts +0 -14
  239. package/build/dex/solidly/forks-override/aerodrome.js +0 -46
  240. package/build/dex/solidly/forks-override/aerodrome.js.map +0 -1
  241. package/build/dex/solidly/forks-override/chronos.d.ts +0 -23
  242. package/build/dex/solidly/forks-override/chronos.js +0 -141
  243. package/build/dex/solidly/forks-override/chronos.js.map +0 -1
  244. package/build/dex/solidly/forks-override/usdfi.d.ts +0 -8
  245. package/build/dex/solidly/forks-override/usdfi.js +0 -15
  246. package/build/dex/solidly/forks-override/usdfi.js.map +0 -1
  247. package/build/dex/solidly/forks-override/velocimeter.d.ts +0 -23
  248. package/build/dex/solidly/forks-override/velocimeter.js +0 -77
  249. package/build/dex/solidly/forks-override/velocimeter.js.map +0 -1
  250. package/build/dex/tessera/types.d.ts +0 -3
  251. package/build/dex/tessera/types.js +0 -3
  252. package/build/dex/tessera/types.js.map +0 -1
  253. package/build/dex/trader-joe-v2.d.ts +0 -40
  254. package/build/dex/trader-joe-v2.js +0 -74
  255. package/build/dex/trader-joe-v2.js.map +0 -1
  256. package/build/dex/uniswap-v2/dfyn.d.ts +0 -19
  257. package/build/dex/uniswap-v2/dfyn.js +0 -61
  258. package/build/dex/uniswap-v2/dfyn.js.map +0 -1
  259. package/build/dex/uniswap-v2/excalibur.d.ts +0 -24
  260. package/build/dex/uniswap-v2/excalibur.js +0 -47
  261. package/build/dex/uniswap-v2/excalibur.js.map +0 -1
  262. package/build/dex/uniswap-v2/mdex.d.ts +0 -24
  263. package/build/dex/uniswap-v2/mdex.js +0 -50
  264. package/build/dex/uniswap-v2/mdex.js.map +0 -1
  265. package/build/dex/uniswap-v2/nomiswap-v2.d.ts +0 -24
  266. package/build/dex/uniswap-v2/nomiswap-v2.js +0 -57
  267. package/build/dex/uniswap-v2/nomiswap-v2.js.map +0 -1
  268. package/build/dex/uniswap-v3/scripts/bench-all-dexes.js +0 -160
  269. package/build/dex/uniswap-v3/scripts/bench-all-dexes.js.map +0 -1
  270. package/build/dex/uniswap-v3/uniswap-v3-new.d.ts +0 -94
  271. package/build/dex/uniswap-v3/uniswap-v3-new.js +0 -923
  272. package/build/dex/uniswap-v3/uniswap-v3-new.js.map +0 -1
  273. package/build/dex/uniswap-v4/contract-math/Position.d.ts +0 -3
  274. package/build/dex/uniswap-v4/contract-math/Position.js +0 -10
  275. package/build/dex/uniswap-v4/contract-math/Position.js.map +0 -1
  276. package/build/dex/usual-bond/config.d.ts +0 -3
  277. package/build/dex/usual-bond/config.js +0 -13
  278. package/build/dex/usual-bond/config.js.map +0 -1
  279. package/build/dex/usual-bond/types.d.ts +0 -7
  280. package/build/dex/usual-bond/types.js +0 -3
  281. package/build/dex/usual-bond/types.js.map +0 -1
  282. package/build/dex/usual-bond/usual-bond.d.ts +0 -35
  283. package/build/dex/usual-bond/usual-bond.js +0 -176
  284. package/build/dex/usual-bond/usual-bond.js.map +0 -1
  285. package/build/dex/wusdm/config.d.ts +0 -3
  286. package/build/dex/wusdm/config.js +0 -43
  287. package/build/dex/wusdm/config.js.map +0 -1
  288. package/build/dex/wusdm/constants.d.ts +0 -2
  289. package/build/dex/wusdm/constants.js +0 -6
  290. package/build/dex/wusdm/constants.js.map +0 -1
  291. package/build/dex/wusdm/types.d.ts +0 -18
  292. package/build/dex/wusdm/types.js +0 -11
  293. package/build/dex/wusdm/types.js.map +0 -1
  294. package/build/dex/wusdm/wusdm-pool.d.ts +0 -21
  295. package/build/dex/wusdm/wusdm-pool.js +0 -74
  296. package/build/dex/wusdm/wusdm-pool.js.map +0 -1
  297. package/build/dex/wusdm/wusdm.d.ts +0 -46
  298. package/build/dex/wusdm/wusdm.js +0 -243
  299. package/build/dex/wusdm/wusdm.js.map +0 -1
  300. package/build/dex/zerox/config.d.ts +0 -2
  301. package/build/dex/zerox/config.js +0 -33
  302. package/build/dex/zerox/config.js.map +0 -1
  303. package/build/dex/zerox/index.d.ts +0 -22
  304. package/build/dex/zerox/index.js +0 -225
  305. package/build/dex/zerox/index.js.map +0 -1
  306. package/build/dex/zerox/order.d.ts +0 -88
  307. package/build/dex/zerox/order.js +0 -53
  308. package/build/dex/zerox/order.js.map +0 -1
  309. package/build/dex/zerox/types.d.ts +0 -73
  310. package/build/dex/zerox/types.js +0 -21
  311. package/build/dex/zerox/types.js.map +0 -1
  312. /package/build/dex/{uniswap-v3/scripts/bench-all-dexes.d.ts → fluid-dex/scripts/measure-calc-time.d.ts} +0 -0
  313. /package/build/{dex/infusion → generic-swap-transaction-builder/resolved}/types.js +0 -0
@@ -0,0 +1,21 @@
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 __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./direct-methods"), exports);
18
+ __exportStar(require("./ports"), exports);
19
+ __exportStar(require("./ts-adapter"), exports);
20
+ __exportStar(require("./types"), exports);
21
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/generic-swap-transaction-builder/dex-encoder/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,mDAAiC;AACjC,0CAAwB;AACxB,+CAA6B;AAC7B,0CAAwB"}
@@ -0,0 +1,26 @@
1
+ import type { ExecutorEncodingContext } from '../../executor/encoding-types';
2
+ import type { DexExchangeParam, DexParamInput, DirectParamInput, DirectParamResult, NeedWrapNativeInput, WethDepositWithdrawInput, WethDepositWithdrawResult } from './types';
3
+ export type MaybePromise<T> = T | Promise<T>;
4
+ export type DexEncoderPort = {
5
+ needWrapNative(input: NeedWrapNativeInput): MaybePromise<boolean>;
6
+ getDexParam(input: DexParamInput): MaybePromise<DexExchangeParam>;
7
+ };
8
+ export type DirectDexEncoderPort = {
9
+ getDirectParam(input: DirectParamInput): MaybePromise<DirectParamResult>;
10
+ };
11
+ export type DexEncoderLookup = {
12
+ network: number;
13
+ dexKey: string;
14
+ };
15
+ export type DirectDexEncoderLookup = DexEncoderLookup & {
16
+ contractMethod: DirectParamInput['contractMethod'];
17
+ };
18
+ export type DexEncoderRegistryPort = {
19
+ getDexEncoder(lookup: DexEncoderLookup): MaybePromise<DexEncoderPort>;
20
+ getDirectDexEncoder(lookup: DirectDexEncoderLookup): MaybePromise<DirectDexEncoderPort>;
21
+ };
22
+ export type WethCallDataProviderPort = {
23
+ getDepositWithdrawCallData(input: WethDepositWithdrawInput): MaybePromise<WethDepositWithdrawResult | undefined>;
24
+ };
25
+ export type CreateWethCallDataProviderPort = (context: ExecutorEncodingContext) => WethCallDataProviderPort;
26
+ export type CreateWethCallDataProvider = CreateWethCallDataProviderPort;
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=types.js.map
3
+ //# sourceMappingURL=ports.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ports.js","sourceRoot":"","sources":["../../../src/generic-swap-transaction-builder/dex-encoder/ports.ts"],"names":[],"mappings":""}
@@ -0,0 +1,22 @@
1
+ import type { DexAdapterService } from '../../dex';
2
+ import type { ExecutorEncodingContext } from '../../executor/encoding-types';
3
+ import { type DirectParamInput } from './types';
4
+ import type { DexEncoderPort, DexEncoderRegistryPort, DirectDexEncoderPort, WethCallDataProviderPort } from './ports';
5
+ type TsDexAdapterService = Pick<DexAdapterService, 'network' | 'getTxBuilderDexByKey'>;
6
+ export declare function createTsDexEncoderRegistry(dexAdapterService: TsDexAdapterService): DexEncoderRegistryPort;
7
+ export declare class TsDexEncoderRegistryAdapter implements DexEncoderRegistryPort {
8
+ private readonly dexAdapterService;
9
+ constructor(dexAdapterService: TsDexAdapterService);
10
+ getDexEncoder({ network, dexKey, }: {
11
+ network: number;
12
+ dexKey: string;
13
+ }): Promise<DexEncoderPort>;
14
+ getDirectDexEncoder({ network, dexKey, contractMethod, }: {
15
+ network: number;
16
+ dexKey: string;
17
+ contractMethod: DirectParamInput['contractMethod'];
18
+ }): Promise<DirectDexEncoderPort>;
19
+ private assertNetwork;
20
+ }
21
+ export declare function createWethCallDataProvider(context: ExecutorEncodingContext): WethCallDataProviderPort;
22
+ export {};
@@ -0,0 +1,299 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.TsDexEncoderRegistryAdapter = void 0;
7
+ exports.createTsDexEncoderRegistry = createTsDexEncoderRegistry;
8
+ exports.createWethCallDataProvider = createWethCallDataProvider;
9
+ const abi_1 = require("@ethersproject/abi");
10
+ const core_1 = require("@paraswap/core");
11
+ const erc20_json_1 = __importDefault(require("../../abi/erc20.json"));
12
+ const constants_1 = require("../../constants");
13
+ const types_1 = require("../../dex/weth/types");
14
+ const types_2 = require("./types");
15
+ const direct_methods_1 = require("./direct-methods");
16
+ const ERC20_INTERFACE = new abi_1.Interface(erc20_json_1.default);
17
+ const DEX_EXCHANGE_PARAM_FIELDS = new Set([
18
+ 'needWrapNative',
19
+ 'needUnwrapNative',
20
+ 'skipApproval',
21
+ 'wethAddress',
22
+ 'exchangeData',
23
+ 'targetExchange',
24
+ 'dexFuncHasRecipient',
25
+ 'specialDexFlag',
26
+ 'transferSrcTokenBeforeSwap',
27
+ 'spender',
28
+ 'sendEthButSupportsInsertFromAmount',
29
+ 'specialDexSupportsInsertFromAmount',
30
+ 'swappedAmountNotPresentInExchangeData',
31
+ 'returnAmountPos',
32
+ 'insertFromAmountPos',
33
+ 'amountsPacked128',
34
+ 'permit2Approval',
35
+ ]);
36
+ function createTsDexEncoderRegistry(dexAdapterService) {
37
+ return new TsDexEncoderRegistryAdapter(dexAdapterService);
38
+ }
39
+ class TsDexEncoderRegistryAdapter {
40
+ dexAdapterService;
41
+ constructor(dexAdapterService) {
42
+ this.dexAdapterService = dexAdapterService;
43
+ }
44
+ async getDexEncoder({ network, dexKey, }) {
45
+ this.assertNetwork(network);
46
+ return new TsDexEncoderAdapter(dexKey, this.dexAdapterService.getTxBuilderDexByKey(dexKey));
47
+ }
48
+ async getDirectDexEncoder({ network, dexKey, contractMethod, }) {
49
+ this.assertNetwork(network);
50
+ if (!(0, direct_methods_1.isDirectContractMethodV6)(contractMethod)) {
51
+ throw new Error(`Unsupported V6 direct method ${contractMethod}`);
52
+ }
53
+ const dex = this.dexAdapterService.getTxBuilderDexByKey(dexKey);
54
+ if (!dex)
55
+ throw new Error(`Failed to find dex : ${dexKey}`);
56
+ if (!dex.getDirectParamV6) {
57
+ throw new Error(`Invalid DEX: dex should have getDirectParamV6: ${dexKey}`);
58
+ }
59
+ const supportedMethods = getSupportedDirectMethods(dex);
60
+ if (!supportedMethods.some(method => method.toLowerCase() === contractMethod.toLowerCase())) {
61
+ throw new Error(`Invalid DEX: ${dexKey} does not support direct method ${contractMethod}`);
62
+ }
63
+ return new TsDirectDexEncoderAdapter(dexKey, contractMethod, dex);
64
+ }
65
+ assertNetwork(network) {
66
+ if (network !== this.dexAdapterService.network) {
67
+ throw new Error(`DEX encoder registry network mismatch: lookup ${network}, adapter ${this.dexAdapterService.network}`);
68
+ }
69
+ }
70
+ }
71
+ exports.TsDexEncoderRegistryAdapter = TsDexEncoderRegistryAdapter;
72
+ class TsDexEncoderAdapter {
73
+ dexKey;
74
+ dex;
75
+ constructor(dexKey, dex) {
76
+ this.dexKey = dexKey;
77
+ this.dex = dex;
78
+ }
79
+ async needWrapNative(input) {
80
+ return resolveNeedWrapNative(this.dex.needWrapNative, input, this.dexKey);
81
+ }
82
+ async getDexParam(input) {
83
+ if (!this.dex.getDexParam) {
84
+ throw new Error(`Invalid DEX: dex should have getDexParam: ${this.dexKey}`);
85
+ }
86
+ const result = await this.dex.getDexParam(input.srcToken, input.destToken, input.srcAmount, input.destAmount, input.recipient, input.data, input.side, input.executorAddress);
87
+ return normalizeDexExchangeParam(result, input, this.dexKey);
88
+ }
89
+ }
90
+ class TsDirectDexEncoderAdapter {
91
+ dexKey;
92
+ contractMethod;
93
+ dex;
94
+ constructor(dexKey, contractMethod, dex) {
95
+ this.dexKey = dexKey;
96
+ this.contractMethod = contractMethod;
97
+ this.dex = dex;
98
+ }
99
+ async getDirectParam(input) {
100
+ if (input.contractMethod !== this.contractMethod) {
101
+ throw new Error(`Direct DEX encoder method mismatch: lookup ${this.contractMethod}, input ${input.contractMethod}`);
102
+ }
103
+ if (!this.dex.getDirectParamV6) {
104
+ throw new Error(`Invalid DEX: dex should have getDirectParamV6: ${this.dexKey}`);
105
+ }
106
+ const result = (await this.dex.getDirectParamV6(input.srcToken, input.destToken, input.srcAmount, input.destAmount, input.quotedAmount, input.data, input.side, input.permit, input.uuid, input.partnerAndFee, input.beneficiary, input.blockNumber, input.contractMethod));
107
+ return {
108
+ params: cloneJsonValue(result.params, `${this.dexKey}.params`),
109
+ };
110
+ }
111
+ }
112
+ function createWethCallDataProvider(context) {
113
+ return {
114
+ getDepositWithdrawCallData(input) {
115
+ return buildWethDepositWithdrawCallData(context, input);
116
+ },
117
+ };
118
+ }
119
+ function buildWethDepositWithdrawCallData(context, { srcAmountWeth, destAmountWeth, side }) {
120
+ const result = {};
121
+ let needWithdraw = false;
122
+ if (srcAmountWeth !== '0') {
123
+ result.deposit = {
124
+ callee: context.wrappedNativeTokenAddress,
125
+ calldata: ERC20_INTERFACE.encodeFunctionData(types_1.WethFunctions.deposit),
126
+ value: srcAmountWeth,
127
+ };
128
+ if (side === core_1.SwapSide.BUY)
129
+ needWithdraw = true;
130
+ }
131
+ if (needWithdraw || destAmountWeth !== '0') {
132
+ result.withdraw = {
133
+ callee: constants_1.NULL_ADDRESS,
134
+ calldata: ERC20_INTERFACE.encodeFunctionData(types_1.WethFunctions.withdraw, [
135
+ destAmountWeth,
136
+ ]),
137
+ value: '0',
138
+ };
139
+ }
140
+ return result;
141
+ }
142
+ function normalizeDexExchangeParam(raw, input, dexKey) {
143
+ if (!isPlainObject(raw)) {
144
+ throw new Error(`Invalid DEX: getDexParam must return an object for ${dexKey}`);
145
+ }
146
+ Object.keys(raw).forEach(field => {
147
+ if (!DEX_EXCHANGE_PARAM_FIELDS.has(field)) {
148
+ throw new Error(`Invalid DEX: unsupported getDexParam field ${field} for ${dexKey}`);
149
+ }
150
+ });
151
+ const record = raw;
152
+ const output = {
153
+ needWrapNative: resolveNeedWrapNative(record.needWrapNative, input, dexKey),
154
+ exchangeData: requiredHex(record.exchangeData, dexKey, 'exchangeData'),
155
+ targetExchange: requiredAddress(record.targetExchange, dexKey, 'targetExchange'),
156
+ dexFuncHasRecipient: requiredBoolean(record.dexFuncHasRecipient, dexKey, 'dexFuncHasRecipient'),
157
+ };
158
+ assignOptionalBoolean(output, record, dexKey, 'needUnwrapNative');
159
+ assignOptionalBoolean(output, record, dexKey, 'skipApproval');
160
+ assignOptionalAddress(output, record, dexKey, 'wethAddress');
161
+ assignOptionalNumber(output, record, dexKey, 'specialDexFlag');
162
+ assignOptionalAddress(output, record, dexKey, 'transferSrcTokenBeforeSwap');
163
+ assignOptionalAddress(output, record, dexKey, 'spender');
164
+ assignOptionalBoolean(output, record, dexKey, 'sendEthButSupportsInsertFromAmount');
165
+ assignOptionalBoolean(output, record, dexKey, 'specialDexSupportsInsertFromAmount');
166
+ assignOptionalBoolean(output, record, dexKey, 'swappedAmountNotPresentInExchangeData');
167
+ assignOptionalNumber(output, record, dexKey, 'returnAmountPos');
168
+ assignOptionalNumber(output, record, dexKey, 'insertFromAmountPos');
169
+ assignOptionalBoolean(output, record, dexKey, 'amountsPacked128');
170
+ assignOptionalBoolean(output, record, dexKey, 'permit2Approval');
171
+ return output;
172
+ }
173
+ function resolveNeedWrapNative(needWrapNative, input, dexKey) {
174
+ const resolved = typeof needWrapNative === 'function'
175
+ ? needWrapNative(...buildLegacyNeedWrapArgs(input))
176
+ : needWrapNative;
177
+ if (typeof resolved !== 'boolean') {
178
+ throw new Error(`Invalid DEX: needWrapNative must resolve to boolean for ${dexKey}`);
179
+ }
180
+ return resolved;
181
+ }
182
+ function buildLegacyNeedWrapArgs(input) {
183
+ const swapExchange = {
184
+ exchange: input.swapExchange.exchange,
185
+ srcAmount: input.swapExchange.srcAmount,
186
+ destAmount: input.swapExchange.destAmount,
187
+ percent: input.swapExchange.percent,
188
+ data: input.swapExchange.data,
189
+ };
190
+ const swap = {
191
+ srcToken: input.swap.srcToken,
192
+ destToken: input.swap.destToken,
193
+ srcDecimals: 0,
194
+ destDecimals: 0,
195
+ srcAmount: input.swap.srcAmount,
196
+ destAmount: input.swap.destAmount,
197
+ swapExchanges: [swapExchange],
198
+ };
199
+ const priceRoute = {
200
+ network: input.route.network,
201
+ side: input.route.side,
202
+ srcToken: input.route.srcToken,
203
+ destToken: input.route.destToken,
204
+ srcAmount: input.route.srcAmount,
205
+ destAmount: input.route.destAmount,
206
+ blockNumber: input.route.blockNumber,
207
+ bestRoute: [{ percent: input.route.routePercent, swaps: [swap] }],
208
+ };
209
+ return [priceRoute, swap, swapExchange];
210
+ }
211
+ function getSupportedDirectMethods(dex) {
212
+ const instanceProvider = dex;
213
+ if (typeof instanceProvider.getDirectFunctionNameV6 === 'function') {
214
+ return instanceProvider.getDirectFunctionNameV6();
215
+ }
216
+ const constructorProvider = dex.constructor;
217
+ if (typeof constructorProvider.getDirectFunctionNameV6 === 'function') {
218
+ return constructorProvider.getDirectFunctionNameV6();
219
+ }
220
+ return [];
221
+ }
222
+ function assignOptionalBoolean(output, record, dexKey, field) {
223
+ if (record[field] == null)
224
+ return;
225
+ output[field] = requiredBoolean(record[field], dexKey, field);
226
+ }
227
+ function assignOptionalAddress(output, record, dexKey, field) {
228
+ if (record[field] == null)
229
+ return;
230
+ output[field] = requiredAddress(record[field], dexKey, field);
231
+ }
232
+ function assignOptionalNumber(output, record, dexKey, field) {
233
+ if (record[field] == null)
234
+ return;
235
+ const value = requiredNumber(record[field], dexKey, field);
236
+ if (field === 'specialDexFlag' &&
237
+ (value < types_2.SPECIAL_DEX_FLAG_RESERVED_RANGE.min ||
238
+ value > types_2.SPECIAL_DEX_FLAG_RESERVED_RANGE.max)) {
239
+ throw new Error(`Invalid DEX: ${dexKey}.${field} must be within reserved range ${types_2.SPECIAL_DEX_FLAG_RESERVED_RANGE.min}-${types_2.SPECIAL_DEX_FLAG_RESERVED_RANGE.max}`);
240
+ }
241
+ output[field] = value;
242
+ }
243
+ function requiredBoolean(value, dexKey, field) {
244
+ if (typeof value !== 'boolean') {
245
+ throw new Error(`Invalid DEX: ${dexKey}.${field} must be boolean`);
246
+ }
247
+ return value;
248
+ }
249
+ function requiredNumber(value, dexKey, field) {
250
+ if (typeof value !== 'number' || !Number.isFinite(value)) {
251
+ throw new Error(`Invalid DEX: ${dexKey}.${field} must be a finite number`);
252
+ }
253
+ return value;
254
+ }
255
+ function requiredAddress(value, dexKey, field) {
256
+ if (typeof value !== 'string' || !/^0x[a-fA-F0-9]{40}$/.test(value)) {
257
+ throw new Error(`Invalid DEX: ${dexKey}.${field} must be a 42-character hex address`);
258
+ }
259
+ return value.toLowerCase();
260
+ }
261
+ function requiredHex(value, dexKey, field) {
262
+ if (typeof value !== 'string' || !/^0x(?:[a-fA-F0-9]{2})*$/.test(value)) {
263
+ throw new Error(`Invalid DEX: ${dexKey}.${field} must be 0x-prefixed even-length hex`);
264
+ }
265
+ return value.toLowerCase();
266
+ }
267
+ function cloneJsonValue(value, field) {
268
+ const cloned = cloneDirectParamJsonValue(value, field);
269
+ if (!Array.isArray(cloned)) {
270
+ throw new Error(`Invalid DEX: ${field} must be an array`);
271
+ }
272
+ return cloned;
273
+ }
274
+ function cloneDirectParamJsonValue(value, field) {
275
+ if (value === null)
276
+ return null;
277
+ if (typeof value === 'string' ||
278
+ typeof value === 'boolean' ||
279
+ typeof value === 'number') {
280
+ if (typeof value === 'number' && !Number.isFinite(value)) {
281
+ throw new Error(`Invalid DEX: ${field} must be JSON-serializable; non-finite numbers are not supported`);
282
+ }
283
+ return value;
284
+ }
285
+ if (Array.isArray(value)) {
286
+ return value.map((item, index) => cloneDirectParamJsonValue(item, `${field}[${index}]`));
287
+ }
288
+ if (isPlainObject(value)) {
289
+ return Object.fromEntries(Object.entries(value).map(([key, item]) => [
290
+ key,
291
+ cloneDirectParamJsonValue(item, `${field}.${key}`),
292
+ ]));
293
+ }
294
+ throw new Error(`Invalid DEX: ${field} must be JSON-serializable; received ${typeof value}`);
295
+ }
296
+ function isPlainObject(value) {
297
+ return typeof value === 'object' && value !== null && !Array.isArray(value);
298
+ }
299
+ //# sourceMappingURL=ts-adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ts-adapter.js","sourceRoot":"","sources":["../../../src/generic-swap-transaction-builder/dex-encoder/ts-adapter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,207 @@
1
+ import type { SwapSide } from '@paraswap/core';
2
+ import type { Address } from '../../types';
3
+ import { SpecialDex } from '../../executor/types';
4
+ import type { DirectContractMethodV6 } from './direct-methods';
5
+ export type DecimalString = string;
6
+ export type HexString = `0x${string}`;
7
+ export type DexEncoderJsonValue = null | boolean | number | string | DexEncoderJsonValue[] | {
8
+ [key: string]: DexEncoderJsonValue;
9
+ };
10
+ export type DexEncoderSwapExchangeData = DexEncoderJsonValue;
11
+ export type NeedWrapNativeAuditDexKey = 'CurveV1Factory' | 'CurveV1StableNg';
12
+ export declare const AUDITED_FUNCTION_NEED_WRAP_NATIVE_DEXES: readonly ["CurveV1Factory", "CurveV1StableNg"];
13
+ export type AddressNormalizationPolicy = 'lowercase';
14
+ export type AmountNormalizationPolicy = 'decimal-string';
15
+ export type BytesNormalizationPolicy = '0x-prefixed-hex';
16
+ export type UnknownFieldPolicy = 'reject';
17
+ export type SwapExchangeDataPolicy = 'dex-owned-pass-through';
18
+ export type OptionalFieldPolicy = 'omit-or-null-normalized-to-undefined';
19
+ export type DexEncoderDtoNormalizationPolicy = {
20
+ addressFields: AddressNormalizationPolicy;
21
+ amountFields: AmountNormalizationPolicy;
22
+ calldataFields: BytesNormalizationPolicy;
23
+ swapExchangeData: SwapExchangeDataPolicy;
24
+ unknownFields: UnknownFieldPolicy;
25
+ optionalFields: OptionalFieldPolicy;
26
+ };
27
+ export declare const DEX_ENCODER_DTO_NORMALIZATION_POLICY: DexEncoderDtoNormalizationPolicy;
28
+ export type DexEncoderDtoFieldContract = {
29
+ addressFields: readonly string[];
30
+ amountFields: readonly string[];
31
+ booleanFields: readonly string[];
32
+ calldataFields: readonly string[];
33
+ nullableInputFields: readonly string[];
34
+ numberFields: readonly string[];
35
+ passThroughFields: readonly string[];
36
+ strictOutputFields: readonly string[];
37
+ };
38
+ export declare const KNOWN_SPECIAL_DEX_FLAGS: readonly [SpecialDex.DEFAULT, SpecialDex.SWAP_ON_SWAAP_V2_SINGLE, SpecialDex.SWAP_ON_BALANCER_V1, SpecialDex.SWAP_ON_MAKER_PSM, SpecialDex.SEND_NATIVE, SpecialDex.SWAP_ON_BALANCER_V2, SpecialDex.SWAP_ON_UNISWAP_V2_FORK, SpecialDex.SWAP_ON_DYSTOPIA_UNISWAP_V2_FORK, SpecialDex.SWAP_ON_DYSTOPIA_UNISWAP_V2_FORK_WITH_FEE, SpecialDex.SWAP_ON_AUGUSTUS_RFQ, SpecialDex.EXECUTE_VERTICAL_BRANCHING, SpecialDex.BUY_ON_SOLIDLY_V3, SpecialDex.SWAP_ON_DEXALOT, SpecialDex.SWAP_ON_HASHFLOW];
39
+ export declare const SPECIAL_DEX_FLAG_RESERVED_RANGE: {
40
+ readonly min: 0;
41
+ readonly max: 255;
42
+ };
43
+ export type NeedWrapNativeRouteContext = {
44
+ network: number;
45
+ side: SwapSide;
46
+ routeIndex: number;
47
+ routePercent: number;
48
+ blockNumber: number;
49
+ srcToken: Address;
50
+ destToken: Address;
51
+ srcAmount: DecimalString;
52
+ destAmount: DecimalString;
53
+ };
54
+ export type NeedWrapNativeSwapContext = {
55
+ swapIndex: number;
56
+ srcToken: Address;
57
+ destToken: Address;
58
+ srcAmount: DecimalString;
59
+ destAmount: DecimalString;
60
+ };
61
+ export type NeedWrapNativeSwapExchangeContext = {
62
+ swapExchangeIndex: number;
63
+ exchange: string;
64
+ srcAmount: DecimalString;
65
+ destAmount: DecimalString;
66
+ percent: number;
67
+ data: DexEncoderSwapExchangeData;
68
+ };
69
+ export type NeedWrapNativeInput = {
70
+ route: NeedWrapNativeRouteContext;
71
+ swap: NeedWrapNativeSwapContext;
72
+ swapExchange: NeedWrapNativeSwapExchangeContext;
73
+ };
74
+ export declare const NEED_WRAP_NATIVE_INPUT_FIELD_CONTRACT: {
75
+ readonly addressFields: readonly ["route.srcToken", "route.destToken", "swap.srcToken", "swap.destToken"];
76
+ readonly amountFields: readonly ["route.srcAmount", "route.destAmount", "swap.srcAmount", "swap.destAmount", "swapExchange.srcAmount", "swapExchange.destAmount"];
77
+ readonly booleanFields: readonly [];
78
+ readonly calldataFields: readonly [];
79
+ readonly nullableInputFields: readonly ["swapExchange.data"];
80
+ readonly numberFields: readonly ["route.network", "route.routeIndex", "route.routePercent", "route.blockNumber", "swap.swapIndex", "swapExchange.swapExchangeIndex", "swapExchange.percent"];
81
+ readonly passThroughFields: readonly ["swapExchange.data"];
82
+ readonly strictOutputFields: readonly [];
83
+ };
84
+ export type DexParamInput = NeedWrapNativeInput & {
85
+ dexKey: string;
86
+ srcToken: Address;
87
+ destToken: Address;
88
+ srcAmount: DecimalString;
89
+ destAmount: DecimalString;
90
+ recipient: Address;
91
+ executorAddress: Address;
92
+ side: SwapSide;
93
+ data: DexEncoderSwapExchangeData;
94
+ };
95
+ export declare const DEX_PARAM_INPUT_FIELD_CONTRACT: {
96
+ readonly addressFields: readonly ["route.srcToken", "route.destToken", "swap.srcToken", "swap.destToken", "srcToken", "destToken", "recipient", "executorAddress"];
97
+ readonly amountFields: readonly ["route.srcAmount", "route.destAmount", "swap.srcAmount", "swap.destAmount", "swapExchange.srcAmount", "swapExchange.destAmount", "srcAmount", "destAmount"];
98
+ readonly booleanFields: readonly [];
99
+ readonly calldataFields: readonly [];
100
+ readonly nullableInputFields: readonly ["swapExchange.data", "data"];
101
+ readonly numberFields: readonly ["route.network", "route.routeIndex", "route.routePercent", "route.blockNumber", "swap.swapIndex", "swapExchange.swapExchangeIndex", "swapExchange.percent"];
102
+ readonly passThroughFields: readonly ["swapExchange.data", "data"];
103
+ readonly strictOutputFields: readonly [];
104
+ };
105
+ export type DexExchangeParam = {
106
+ needWrapNative: boolean;
107
+ needUnwrapNative?: boolean;
108
+ skipApproval?: boolean;
109
+ wethAddress?: Address;
110
+ exchangeData: HexString;
111
+ targetExchange: Address;
112
+ dexFuncHasRecipient: boolean;
113
+ specialDexFlag?: SpecialDex;
114
+ transferSrcTokenBeforeSwap?: Address;
115
+ spender?: Address;
116
+ sendEthButSupportsInsertFromAmount?: boolean;
117
+ specialDexSupportsInsertFromAmount?: boolean;
118
+ swappedAmountNotPresentInExchangeData?: boolean;
119
+ returnAmountPos?: number;
120
+ insertFromAmountPos?: number;
121
+ amountsPacked128?: boolean;
122
+ permit2Approval?: boolean;
123
+ };
124
+ export declare const DEX_EXCHANGE_PARAM_FIELD_CONTRACT: {
125
+ readonly addressFields: readonly ["wethAddress", "targetExchange", "transferSrcTokenBeforeSwap", "spender"];
126
+ readonly amountFields: readonly [];
127
+ readonly booleanFields: readonly ["needWrapNative", "needUnwrapNative", "skipApproval", "dexFuncHasRecipient", "sendEthButSupportsInsertFromAmount", "specialDexSupportsInsertFromAmount", "swappedAmountNotPresentInExchangeData", "amountsPacked128", "permit2Approval"];
128
+ readonly calldataFields: readonly ["exchangeData"];
129
+ readonly nullableInputFields: readonly ["needUnwrapNative", "skipApproval", "wethAddress", "specialDexFlag", "transferSrcTokenBeforeSwap", "spender", "sendEthButSupportsInsertFromAmount", "specialDexSupportsInsertFromAmount", "swappedAmountNotPresentInExchangeData", "returnAmountPos", "insertFromAmountPos", "amountsPacked128", "permit2Approval"];
130
+ readonly numberFields: readonly ["specialDexFlag", "returnAmountPos", "insertFromAmountPos"];
131
+ readonly passThroughFields: readonly [];
132
+ readonly strictOutputFields: readonly ["needWrapNative", "needUnwrapNative", "skipApproval", "wethAddress", "exchangeData", "targetExchange", "dexFuncHasRecipient", "specialDexFlag", "transferSrcTokenBeforeSwap", "spender", "sendEthButSupportsInsertFromAmount", "specialDexSupportsInsertFromAmount", "swappedAmountNotPresentInExchangeData", "returnAmountPos", "insertFromAmountPos", "amountsPacked128", "permit2Approval"];
133
+ };
134
+ export type DirectParamInput = {
135
+ dexKey: string;
136
+ network: number;
137
+ contractMethod: DirectContractMethodV6;
138
+ srcToken: Address;
139
+ destToken: Address;
140
+ srcAmount: DecimalString;
141
+ destAmount: DecimalString;
142
+ quotedAmount: DecimalString;
143
+ data: DexEncoderSwapExchangeData;
144
+ side: SwapSide;
145
+ permit: HexString;
146
+ uuid: string;
147
+ partnerAndFee: DecimalString;
148
+ beneficiary: Address;
149
+ blockNumber: number;
150
+ };
151
+ export declare const DIRECT_PARAM_INPUT_FIELD_CONTRACT: {
152
+ readonly addressFields: readonly ["srcToken", "destToken", "beneficiary"];
153
+ readonly amountFields: readonly ["srcAmount", "destAmount", "quotedAmount", "partnerAndFee"];
154
+ readonly booleanFields: readonly [];
155
+ readonly calldataFields: readonly ["permit"];
156
+ readonly nullableInputFields: readonly ["data"];
157
+ readonly numberFields: readonly ["network", "blockNumber"];
158
+ readonly passThroughFields: readonly ["data"];
159
+ readonly strictOutputFields: readonly [];
160
+ };
161
+ export type DirectParamResult = {
162
+ params: DexEncoderJsonValue[];
163
+ };
164
+ export declare const DIRECT_PARAM_RESULT_FIELD_CONTRACT: {
165
+ readonly addressFields: readonly [];
166
+ readonly amountFields: readonly [];
167
+ readonly booleanFields: readonly [];
168
+ readonly calldataFields: readonly [];
169
+ readonly nullableInputFields: readonly [];
170
+ readonly numberFields: readonly [];
171
+ readonly passThroughFields: readonly ["params"];
172
+ readonly strictOutputFields: readonly ["params"];
173
+ };
174
+ export type WethDepositWithdrawInput = {
175
+ srcAmountWeth: DecimalString;
176
+ destAmountWeth: DecimalString;
177
+ side: SwapSide;
178
+ };
179
+ export type WethCallData = {
180
+ callee: Address;
181
+ calldata: HexString;
182
+ value: DecimalString;
183
+ };
184
+ export type WethDepositWithdrawResult = {
185
+ deposit?: WethCallData;
186
+ withdraw?: WethCallData;
187
+ };
188
+ export declare const WETH_DEPOSIT_WITHDRAW_INPUT_FIELD_CONTRACT: {
189
+ readonly addressFields: readonly [];
190
+ readonly amountFields: readonly ["srcAmountWeth", "destAmountWeth"];
191
+ readonly booleanFields: readonly [];
192
+ readonly calldataFields: readonly [];
193
+ readonly nullableInputFields: readonly [];
194
+ readonly numberFields: readonly [];
195
+ readonly passThroughFields: readonly [];
196
+ readonly strictOutputFields: readonly [];
197
+ };
198
+ export declare const WETH_DEPOSIT_WITHDRAW_RESULT_FIELD_CONTRACT: {
199
+ readonly addressFields: readonly ["deposit.callee", "withdraw.callee"];
200
+ readonly amountFields: readonly ["deposit.value", "withdraw.value"];
201
+ readonly booleanFields: readonly [];
202
+ readonly calldataFields: readonly ["deposit.calldata", "withdraw.calldata"];
203
+ readonly nullableInputFields: readonly ["deposit", "withdraw"];
204
+ readonly numberFields: readonly [];
205
+ readonly passThroughFields: readonly [];
206
+ readonly strictOutputFields: readonly ["deposit", "withdraw"];
207
+ };