@paraswap/dex-lib 4.8.13-stable-surge-v3.2 → 4.8.13

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 (297) hide show
  1. package/build/abi/{apex-defi/ApexDefiRouter.abi.json → BProtocol.json} +573 -538
  2. package/build/abi/Jarvis.json +1172 -0
  3. package/build/abi/{apex-defi/ApexDefiFactory.abi.json → MStableAsset.json} +781 -985
  4. package/build/abi/{apex-defi/ApexDefiWrapperFactory.abi.json → OneInchLp.json} +766 -569
  5. package/build/abi/Onebit.json +736 -0
  6. package/build/abi/Shell.json +1294 -0
  7. package/build/abi/TraderJoeV2Router.json +50 -0
  8. package/build/abi/wUSDM.json +757 -0
  9. package/build/abi/zrx.v2.json +1967 -0
  10. package/build/abi/zrx.v3.json +3454 -0
  11. package/build/abi/zrx.v4.json +2193 -0
  12. package/build/dex/OneInchLp.d.ts +24 -0
  13. package/build/dex/OneInchLp.js +43 -0
  14. package/build/dex/OneInchLp.js.map +1 -0
  15. package/build/dex/angle-transmuter/angle-transmuter-pool.js +1 -1
  16. package/build/dex/angle-transmuter/angle-transmuter-pool.js.map +1 -1
  17. package/build/dex/bProtocol/bProtocol.d.ts +15 -0
  18. package/build/dex/bProtocol/bProtocol.js +56 -0
  19. package/build/dex/bProtocol/bProtocol.js.map +1 -0
  20. package/build/dex/bProtocol/types.d.ts +11 -0
  21. package/build/dex/bProtocol/types.js +8 -0
  22. package/build/dex/bProtocol/types.js.map +1 -0
  23. package/build/dex/balancer-v3/balancer-v3.js +4 -1
  24. package/build/dex/balancer-v3/balancer-v3.js.map +1 -1
  25. package/build/dex/balancer-v3/config.js +0 -64
  26. package/build/dex/balancer-v3/config.js.map +1 -1
  27. package/build/dex/balancer-v3/getPoolsApi.js +7 -7
  28. package/build/dex/balancer-v3/getPoolsApi.js.map +1 -1
  29. package/build/dex/balancer-v3/getTopPoolsApi.js +4 -2
  30. package/build/dex/balancer-v3/getTopPoolsApi.js.map +1 -1
  31. package/build/dex/balancer-v3/hooks/balancer-hook-event-subscriber.d.ts +1 -1
  32. package/build/dex/balancer-v3/hooks/balancer-hook-event-subscriber.js +17 -44
  33. package/build/dex/balancer-v3/hooks/balancer-hook-event-subscriber.js.map +1 -1
  34. package/build/dex/balancer-v3/hooks/loadHooksConfig.js +1 -10
  35. package/build/dex/balancer-v3/hooks/loadHooksConfig.js.map +1 -1
  36. package/build/dex/balancer-v3/utils.js +3 -5
  37. package/build/dex/balancer-v3/utils.js.map +1 -1
  38. package/build/dex/curve-v1/curve-v1.d.ts +2 -5
  39. package/build/dex/curve-v1/curve-v1.js +53 -45
  40. package/build/dex/curve-v1/curve-v1.js.map +1 -1
  41. package/build/dex/ekubo/ekubo.d.ts +2 -0
  42. package/build/dex/ekubo/ekubo.js +19 -0
  43. package/build/dex/ekubo/ekubo.js.map +1 -1
  44. package/build/dex/infusion/infusion-stable-pool.d.ts +1 -1
  45. package/build/dex/infusion/infusion-stable-pool.js +1 -1
  46. package/build/dex/infusion/infusion-stable-pool.js.map +1 -1
  47. package/build/dex/infusion/infusion.d.ts +3 -3
  48. package/build/dex/infusion/infusion.js +104 -65
  49. package/build/dex/infusion/infusion.js.map +1 -1
  50. package/build/dex/jarvis.d.ts +56 -0
  51. package/build/dex/jarvis.js +163 -0
  52. package/build/dex/jarvis.js.map +1 -0
  53. package/build/dex/mStable.d.ts +44 -0
  54. package/build/dex/mStable.js +75 -0
  55. package/build/dex/mStable.js.map +1 -0
  56. package/build/dex/onebit/onebit.d.ts +16 -0
  57. package/build/dex/onebit/onebit.js +61 -0
  58. package/build/dex/onebit/onebit.js.map +1 -0
  59. package/build/dex/onebit/types.d.ts +14 -0
  60. package/build/dex/onebit/types.js +8 -0
  61. package/build/dex/onebit/types.js.map +1 -0
  62. package/build/dex/{yo → se-vlr}/config.d.ts +1 -1
  63. package/build/dex/se-vlr/config.js +24 -0
  64. package/build/dex/se-vlr/config.js.map +1 -0
  65. package/build/dex/{stabull/stabull-pool.d.ts → se-vlr/se-vlr-pool.d.ts} +6 -13
  66. package/build/dex/se-vlr/se-vlr-pool.js +70 -0
  67. package/build/dex/se-vlr/se-vlr-pool.js.map +1 -0
  68. package/build/dex/se-vlr/se-vlr.d.ts +35 -0
  69. package/build/dex/se-vlr/se-vlr.js +131 -0
  70. package/build/dex/se-vlr/se-vlr.js.map +1 -0
  71. package/build/dex/se-vlr/types.d.ts +6 -0
  72. package/build/dex/{yo → se-vlr}/types.js.map +1 -1
  73. package/build/dex/shell.d.ts +25 -0
  74. package/build/dex/shell.js +41 -0
  75. package/build/dex/shell.js.map +1 -0
  76. package/build/dex/solidly/forks-override/aerodrome.d.ts +1 -1
  77. package/build/dex/solidly/forks-override/aerodrome.js +14 -18
  78. package/build/dex/solidly/forks-override/aerodrome.js.map +1 -1
  79. package/build/dex/solidly/solidly.d.ts +2 -0
  80. package/build/dex/solidly/solidly.js +21 -0
  81. package/build/dex/solidly/solidly.js.map +1 -1
  82. package/build/dex/solidly-v3/solidly-v3.d.ts +2 -0
  83. package/build/dex/solidly-v3/solidly-v3.js +26 -5
  84. package/build/dex/solidly-v3/solidly-v3.js.map +1 -1
  85. package/build/dex/trader-joe-v2.d.ts +40 -0
  86. package/build/dex/trader-joe-v2.js +74 -0
  87. package/build/dex/trader-joe-v2.js.map +1 -0
  88. package/build/dex/uniswap-v2/uniswap-v2.d.ts +2 -0
  89. package/build/dex/uniswap-v2/uniswap-v2.js +27 -6
  90. package/build/dex/uniswap-v2/uniswap-v2.js.map +1 -1
  91. package/build/dex/uniswap-v3/uniswap-v3-new.d.ts +94 -0
  92. package/build/dex/uniswap-v3/uniswap-v3-new.js +923 -0
  93. package/build/dex/uniswap-v3/uniswap-v3-new.js.map +1 -0
  94. package/build/dex/uniswap-v3/uniswap-v3.d.ts +5 -5
  95. package/build/dex/uniswap-v3/uniswap-v3.js +32 -24
  96. package/build/dex/uniswap-v3/uniswap-v3.js.map +1 -1
  97. package/build/dex/uniswap-v4/contract-math/Position.d.ts +0 -6
  98. package/build/dex/uniswap-v4/contract-math/Position.js +0 -29
  99. package/build/dex/uniswap-v4/contract-math/Position.js.map +1 -1
  100. package/build/dex/uniswap-v4/uniswap-v4-pool-manager.d.ts +2 -0
  101. package/build/dex/uniswap-v4/uniswap-v4-pool-manager.js +25 -6
  102. package/build/dex/uniswap-v4/uniswap-v4-pool-manager.js.map +1 -1
  103. package/build/dex/{stabull → usual-bond}/config.d.ts +1 -1
  104. package/build/dex/usual-bond/config.js +13 -0
  105. package/build/dex/usual-bond/config.js.map +1 -0
  106. package/build/dex/usual-bond/types.d.ts +7 -0
  107. package/build/dex/{stabull → usual-bond}/types.js.map +1 -1
  108. package/build/dex/{aave-pt-to-underlying/aave-pt-to-underlying.d.ts → usual-bond/usual-bond.d.ts} +18 -23
  109. package/build/dex/usual-bond/usual-bond.js +176 -0
  110. package/build/dex/usual-bond/usual-bond.js.map +1 -0
  111. package/build/dex/wusdm/config.d.ts +3 -0
  112. package/build/dex/wusdm/config.js +43 -0
  113. package/build/dex/wusdm/config.js.map +1 -0
  114. package/build/dex/wusdm/constants.d.ts +2 -0
  115. package/build/dex/wusdm/constants.js +6 -0
  116. package/build/dex/wusdm/constants.js.map +1 -0
  117. package/build/dex/wusdm/types.d.ts +18 -0
  118. package/build/dex/wusdm/types.js +11 -0
  119. package/build/dex/wusdm/types.js.map +1 -0
  120. package/build/dex/wusdm/wusdm-pool.d.ts +21 -0
  121. package/build/dex/wusdm/wusdm-pool.js +74 -0
  122. package/build/dex/wusdm/wusdm-pool.js.map +1 -0
  123. package/build/dex/wusdm/wusdm.d.ts +46 -0
  124. package/build/dex/wusdm/wusdm.js +243 -0
  125. package/build/dex/wusdm/wusdm.js.map +1 -0
  126. package/build/dex/zerox/config.d.ts +2 -0
  127. package/build/dex/zerox/config.js +33 -0
  128. package/build/dex/zerox/config.js.map +1 -0
  129. package/build/dex/zerox/index.d.ts +22 -0
  130. package/build/dex/zerox/index.js +225 -0
  131. package/build/dex/zerox/index.js.map +1 -0
  132. package/build/dex/zerox/order.d.ts +88 -0
  133. package/build/dex/zerox/order.js +53 -0
  134. package/build/dex/zerox/order.js.map +1 -0
  135. package/build/dex/zerox/types.d.ts +73 -0
  136. package/build/dex/zerox/types.js +21 -0
  137. package/build/dex/zerox/types.js.map +1 -0
  138. package/build/pricing-helper.js +5 -2
  139. package/build/pricing-helper.js.map +1 -1
  140. package/package.json +1 -1
  141. package/build/abi/PendleRouterStatic.json +0 -19
  142. package/build/abi/apex-defi/ApexDefiToken.abi.json +0 -229
  143. package/build/abi/apex-defi/ApexDefiWrapper.abi.json +0 -92
  144. package/build/abi/clear/ClearFactory.json +0 -71
  145. package/build/abi/clear/ClearSwap.json +0 -334
  146. package/build/abi/clear/ClearVault.json +0 -20
  147. package/build/abi/ekubo-v3/boosted-fees-data-fetcher.json +0 -108
  148. package/build/abi/ekubo-v3/boosted-fees.json +0 -538
  149. package/build/abi/pangolin-v3/PangolinV3StateMulticall.abi.json +0 -796
  150. package/build/abi/pendle/pendle-deployer.abi.json +0 -520
  151. package/build/abi/pendle/pendle-oracle.abi.json +0 -413
  152. package/build/abi/ring-v2/few-wrapped-token.json +0 -587
  153. package/build/abi/ring-v2/ring-v2-factory.json +0 -125
  154. package/build/abi/ring-v2/ring-v2-pool.json +0 -461
  155. package/build/abi/ring-v2/ring-v2-router.json +0 -332
  156. package/build/abi/stabull/stabull-curve.json +0 -738
  157. package/build/abi/stabull/stabull-router.json +0 -76
  158. package/build/abi/uniswap-v4/hooks/SpotDynamicFeeManager.json +0 -26
  159. package/build/abi/uniswap-v4/hooks/SpotHook.json +0 -54
  160. package/build/abi/uniswap-v4/hooks/SpotPolicyManager.json +0 -45
  161. package/build/abi/uniswap-v4/hooks/cabalcoin-hook.abi.json +0 -682
  162. package/build/abi/uniswap-v4/hooks/fee-hook.abi.json +0 -1335
  163. package/build/dex/aave-pt-to-underlying/aave-pt-to-underlying-factory.d.ts +0 -29
  164. package/build/dex/aave-pt-to-underlying/aave-pt-to-underlying-factory.js +0 -153
  165. package/build/dex/aave-pt-to-underlying/aave-pt-to-underlying-factory.js.map +0 -1
  166. package/build/dex/aave-pt-to-underlying/aave-pt-to-underlying.js +0 -323
  167. package/build/dex/aave-pt-to-underlying/aave-pt-to-underlying.js.map +0 -1
  168. package/build/dex/aave-pt-to-underlying/config.d.ts +0 -3
  169. package/build/dex/aave-pt-to-underlying/config.js +0 -24
  170. package/build/dex/aave-pt-to-underlying/config.js.map +0 -1
  171. package/build/dex/aave-pt-to-underlying/constants.d.ts +0 -2
  172. package/build/dex/aave-pt-to-underlying/constants.js +0 -6
  173. package/build/dex/aave-pt-to-underlying/constants.js.map +0 -1
  174. package/build/dex/aave-pt-to-underlying/types.d.ts +0 -24
  175. package/build/dex/aave-pt-to-underlying/types.js.map +0 -1
  176. package/build/dex/aave-pt-to-usdc/aave-pt-to-usdc.d.ts +0 -39
  177. package/build/dex/aave-pt-to-usdc/aave-pt-to-usdc.js +0 -244
  178. package/build/dex/aave-pt-to-usdc/aave-pt-to-usdc.js.map +0 -1
  179. package/build/dex/aave-pt-to-usdc/config.d.ts +0 -3
  180. package/build/dex/aave-pt-to-usdc/config.js +0 -47
  181. package/build/dex/aave-pt-to-usdc/config.js.map +0 -1
  182. package/build/dex/aave-pt-to-usdc/constants.d.ts +0 -2
  183. package/build/dex/aave-pt-to-usdc/constants.js +0 -6
  184. package/build/dex/aave-pt-to-usdc/constants.js.map +0 -1
  185. package/build/dex/aave-pt-to-usdc/types.d.ts +0 -22
  186. package/build/dex/aave-pt-to-usdc/types.js.map +0 -1
  187. package/build/dex/apex-defi/apex-defi-factory.d.ts +0 -26
  188. package/build/dex/apex-defi/apex-defi-factory.js +0 -53
  189. package/build/dex/apex-defi/apex-defi-factory.js.map +0 -1
  190. package/build/dex/apex-defi/apex-defi-pool.d.ts +0 -55
  191. package/build/dex/apex-defi/apex-defi-pool.js +0 -247
  192. package/build/dex/apex-defi/apex-defi-pool.js.map +0 -1
  193. package/build/dex/apex-defi/apex-defi-wrapper-factory.d.ts +0 -57
  194. package/build/dex/apex-defi/apex-defi-wrapper-factory.js +0 -250
  195. package/build/dex/apex-defi/apex-defi-wrapper-factory.js.map +0 -1
  196. package/build/dex/apex-defi/apex-defi.d.ts +0 -97
  197. package/build/dex/apex-defi/apex-defi.js +0 -1021
  198. package/build/dex/apex-defi/apex-defi.js.map +0 -1
  199. package/build/dex/apex-defi/config.d.ts +0 -4
  200. package/build/dex/apex-defi/config.js +0 -138
  201. package/build/dex/apex-defi/config.js.map +0 -1
  202. package/build/dex/apex-defi/types.d.ts +0 -32
  203. package/build/dex/apex-defi/types.js +0 -3
  204. package/build/dex/apex-defi/types.js.map +0 -1
  205. package/build/dex/apex-defi/utils.d.ts +0 -46
  206. package/build/dex/apex-defi/utils.js +0 -133
  207. package/build/dex/apex-defi/utils.js.map +0 -1
  208. package/build/dex/clear/clear-factory.d.ts +0 -33
  209. package/build/dex/clear/clear-factory.js +0 -123
  210. package/build/dex/clear/clear-factory.js.map +0 -1
  211. package/build/dex/clear/clear.d.ts +0 -53
  212. package/build/dex/clear/clear.js +0 -311
  213. package/build/dex/clear/clear.js.map +0 -1
  214. package/build/dex/clear/config.d.ts +0 -3
  215. package/build/dex/clear/config.js +0 -14
  216. package/build/dex/clear/config.js.map +0 -1
  217. package/build/dex/clear/types.d.ts +0 -18
  218. package/build/dex/clear/types.js +0 -3
  219. package/build/dex/clear/types.js.map +0 -1
  220. package/build/dex/ekubo-v3/extension-type.d.ts +0 -9
  221. package/build/dex/ekubo-v3/extension-type.js +0 -36
  222. package/build/dex/ekubo-v3/extension-type.js.map +0 -1
  223. package/build/dex/ekubo-v3/pools/boosted-fees.d.ts +0 -39
  224. package/build/dex/ekubo-v3/pools/boosted-fees.js +0 -189
  225. package/build/dex/ekubo-v3/pools/boosted-fees.js.map +0 -1
  226. package/build/dex/ekubo-v3/pools/concentrated.d.ts +0 -47
  227. package/build/dex/ekubo-v3/pools/concentrated.js +0 -324
  228. package/build/dex/ekubo-v3/pools/concentrated.js.map +0 -1
  229. package/build/dex/ekubo-v3/pools/timed.d.ts +0 -25
  230. package/build/dex/ekubo-v3/pools/timed.js +0 -91
  231. package/build/dex/ekubo-v3/pools/timed.js.map +0 -1
  232. package/build/dex/maker-psm/maker-psm-event-pool.d.ts +0 -43
  233. package/build/dex/maker-psm/maker-psm-event-pool.js +0 -132
  234. package/build/dex/maker-psm/maker-psm-event-pool.js.map +0 -1
  235. package/build/dex/miro-migrator/miro-migrator-state.d.ts +0 -27
  236. package/build/dex/miro-migrator/miro-migrator-state.js +0 -89
  237. package/build/dex/miro-migrator/miro-migrator-state.js.map +0 -1
  238. package/build/dex/stabull/config.js +0 -177
  239. package/build/dex/stabull/config.js.map +0 -1
  240. package/build/dex/stabull/stabull-pool.js +0 -113
  241. package/build/dex/stabull/stabull-pool.js.map +0 -1
  242. package/build/dex/stabull/stabull.d.ts +0 -55
  243. package/build/dex/stabull/stabull.js +0 -286
  244. package/build/dex/stabull/stabull.js.map +0 -1
  245. package/build/dex/stabull/types.d.ts +0 -21
  246. package/build/dex/stabull/types.js +0 -3
  247. package/build/dex/uniswap-v3/forks/pangolin-v3/utils.d.ts +0 -4
  248. package/build/dex/uniswap-v3/forks/pangolin-v3/utils.js +0 -56
  249. package/build/dex/uniswap-v3/forks/pangolin-v3/utils.js.map +0 -1
  250. package/build/dex/uniswap-v4/hooks/arena.d.ts +0 -6
  251. package/build/dex/uniswap-v4/hooks/arena.js +0 -10
  252. package/build/dex/uniswap-v4/hooks/arena.js.map +0 -1
  253. package/build/dex/uniswap-v4/hooks/base-fee/base-fee-hook.d.ts +0 -0
  254. package/build/dex/uniswap-v4/hooks/base-fee/base-fee-hook.js +0 -2
  255. package/build/dex/uniswap-v4/hooks/base-fee/base-fee-hook.js.map +0 -1
  256. package/build/dex/uniswap-v4/hooks/cabalcoin-hook/cabalcoin-hook-pool.d.ts +0 -7
  257. package/build/dex/uniswap-v4/hooks/cabalcoin-hook/cabalcoin-hook-pool.js +0 -28
  258. package/build/dex/uniswap-v4/hooks/cabalcoin-hook/cabalcoin-hook-pool.js.map +0 -1
  259. package/build/dex/uniswap-v4/hooks/cabalcoin-hook/types.d.ts +0 -0
  260. package/build/dex/uniswap-v4/hooks/cabalcoin-hook/types.js +0 -2
  261. package/build/dex/uniswap-v4/hooks/cabalcoin-hook/types.js.map +0 -1
  262. package/build/dex/uniswap-v4/hooks/fee-hook/fee-hook-pool.d.ts +0 -7
  263. package/build/dex/uniswap-v4/hooks/fee-hook/fee-hook-pool.js +0 -28
  264. package/build/dex/uniswap-v4/hooks/fee-hook/fee-hook-pool.js.map +0 -1
  265. package/build/dex/uniswap-v4/hooks/fee-hook/types.d.ts +0 -0
  266. package/build/dex/uniswap-v4/hooks/fee-hook/types.js +0 -2
  267. package/build/dex/uniswap-v4/hooks/fee-hook/types.js.map +0 -1
  268. package/build/dex/uniswap-v4/hooks/index.d.ts +0 -1
  269. package/build/dex/uniswap-v4/hooks/index.js +0 -18
  270. package/build/dex/uniswap-v4/hooks/index.js.map +0 -1
  271. package/build/dex/uniswap-v4/hooks/spot.d.ts +0 -15
  272. package/build/dex/uniswap-v4/hooks/spot.js +0 -109
  273. package/build/dex/uniswap-v4/hooks/spot.js.map +0 -1
  274. package/build/dex/uniswap-v4/hooks/template.d.ts +0 -150
  275. package/build/dex/uniswap-v4/hooks/template.js +0 -104
  276. package/build/dex/uniswap-v4/hooks/template.js.map +0 -1
  277. package/build/dex/usdc-transmuter/usdc-transmuter-pool.d.ts +0 -26
  278. package/build/dex/usdc-transmuter/usdc-transmuter-pool.js +0 -75
  279. package/build/dex/usdc-transmuter/usdc-transmuter-pool.js.map +0 -1
  280. package/build/dex/usual/usual-usdc-usdc.d.ts +0 -17
  281. package/build/dex/usual/usual-usdc-usdc.js +0 -59
  282. package/build/dex/usual/usual-usdc-usdc.js.map +0 -1
  283. package/build/dex/yo/config.js +0 -21
  284. package/build/dex/yo/config.js.map +0 -1
  285. package/build/dex/yo/types.d.ts +0 -13
  286. package/build/dex/yo/types.js +0 -3
  287. package/build/dex/yo/yo-pool.d.ts +0 -13
  288. package/build/dex/yo/yo-pool.js +0 -26
  289. package/build/dex/yo/yo-pool.js.map +0 -1
  290. package/build/dex/yo/yo.d.ts +0 -39
  291. package/build/dex/yo/yo.js +0 -248
  292. package/build/dex/yo/yo.js.map +0 -1
  293. package/build/implementations/api-paraswap-sdk.d.ts +0 -25
  294. package/build/implementations/api-paraswap-sdk.js +0 -102
  295. package/build/implementations/api-paraswap-sdk.js.map +0 -1
  296. /package/build/dex/{aave-pt-to-underlying → se-vlr}/types.js +0 -0
  297. /package/build/dex/{aave-pt-to-usdc → usual-bond}/types.js +0 -0
@@ -0,0 +1,163 @@
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.Jarvis = void 0;
7
+ const abi_1 = require("@ethersproject/abi");
8
+ const constants_1 = require("../constants");
9
+ const simple_exchange_1 = require("./simple-exchange");
10
+ const Jarvis_json_1 = __importDefault(require("../abi/Jarvis.json"));
11
+ const utils_1 = require("../executor/utils");
12
+ const THIRTY_MINUTES = 60 * 30;
13
+ var JarvisFunctions;
14
+ (function (JarvisFunctions) {
15
+ JarvisFunctions["mint"] = "mint";
16
+ JarvisFunctions["redeem"] = "redeem";
17
+ JarvisFunctions["exchange"] = "exchange";
18
+ })(JarvisFunctions || (JarvisFunctions = {}));
19
+ class Jarvis extends simple_exchange_1.SimpleExchange {
20
+ constructor(dexHelper) {
21
+ super(dexHelper, 'jarvis');
22
+ this.needWrapNative = false;
23
+ this.poolInterface = new abi_1.Interface(Jarvis_json_1.default);
24
+ }
25
+ getAdapterParam(srcToken, destToken, srcAmount, destAmount, data, side) {
26
+ const { method } = data;
27
+ const type = [
28
+ JarvisFunctions.mint,
29
+ JarvisFunctions.redeem,
30
+ JarvisFunctions.exchange,
31
+ ].indexOf(method);
32
+ if (type === undefined) {
33
+ throw new Error(`Jarvis: Invalid OpType ${method}, Should be one of ['mint', 'exchange', 'redeem']`);
34
+ }
35
+ const payload = this.abiCoder.encodeParameter({
36
+ ParentStruct: {
37
+ opType: 'uint',
38
+ derivatives: 'address',
39
+ destDerivatives: 'address',
40
+ fee: 'uint128',
41
+ destPool: 'address',
42
+ expiration: 'uint128',
43
+ },
44
+ }, {
45
+ opType: type,
46
+ derivatives: data.derivatives,
47
+ destDerivatives: data.destDerivatives || constants_1.NULL_ADDRESS,
48
+ fee: data.fee,
49
+ destPool: data.pools[1] || constants_1.NULL_ADDRESS,
50
+ expiration: (Date.now() / 1000 + THIRTY_MINUTES).toFixed(0),
51
+ });
52
+ return {
53
+ targetExchange: data.pools[0],
54
+ payload,
55
+ networkFee: '0',
56
+ };
57
+ }
58
+ async getSimpleParam(srcToken, destToken, srcAmount, destAmount, data, side) {
59
+ const swapFunction = data.method;
60
+ const timestamp = (Date.now() / 1000 + THIRTY_MINUTES).toFixed(0);
61
+ let swapFunctionParams;
62
+ switch (swapFunction) {
63
+ case JarvisFunctions.mint:
64
+ swapFunctionParams = [
65
+ data.derivatives,
66
+ destAmount,
67
+ srcAmount,
68
+ data.fee,
69
+ timestamp,
70
+ this.augustusAddress,
71
+ ];
72
+ break;
73
+ case JarvisFunctions.redeem:
74
+ swapFunctionParams = [
75
+ data.derivatives,
76
+ srcAmount,
77
+ destAmount,
78
+ data.fee,
79
+ timestamp,
80
+ this.augustusAddress,
81
+ ];
82
+ break;
83
+ case JarvisFunctions.exchange:
84
+ swapFunctionParams = [
85
+ data.derivatives,
86
+ data.pools[1],
87
+ data.destDerivatives,
88
+ srcAmount,
89
+ destAmount,
90
+ data.fee,
91
+ timestamp,
92
+ this.augustusAddress,
93
+ ];
94
+ break;
95
+ default:
96
+ throw new Error(`Unknown function ${swapFunction}`);
97
+ }
98
+ const swapData = this.poolInterface.encodeFunctionData(swapFunction, [
99
+ swapFunctionParams,
100
+ ]);
101
+ return this.buildSimpleParamWithoutWETHConversion(srcToken, srcAmount, destToken, destAmount, swapData, data.pools[0]);
102
+ }
103
+ getDexParam(srcToken, destToken, srcAmount, destAmount, recipient, data, side) {
104
+ const swapFunction = data.method;
105
+ const timestamp = (Date.now() / 1000 + THIRTY_MINUTES).toFixed(0);
106
+ let swapFunctionParams;
107
+ let outputName;
108
+ switch (swapFunction) {
109
+ case JarvisFunctions.mint:
110
+ swapFunctionParams = [
111
+ data.derivatives,
112
+ destAmount,
113
+ srcAmount,
114
+ data.fee,
115
+ timestamp,
116
+ recipient,
117
+ ];
118
+ outputName = 'syntheticTokensMinted';
119
+ break;
120
+ case JarvisFunctions.redeem:
121
+ swapFunctionParams = [
122
+ data.derivatives,
123
+ srcAmount,
124
+ destAmount,
125
+ data.fee,
126
+ timestamp,
127
+ recipient,
128
+ ];
129
+ outputName = 'collateralRedeemed';
130
+ break;
131
+ case JarvisFunctions.exchange:
132
+ swapFunctionParams = [
133
+ data.derivatives,
134
+ data.pools[1],
135
+ data.destDerivatives,
136
+ srcAmount,
137
+ destAmount,
138
+ data.fee,
139
+ timestamp,
140
+ recipient,
141
+ ];
142
+ outputName = 'destNumTokensMinted';
143
+ break;
144
+ default:
145
+ throw new Error(`Unknown function ${swapFunction}`);
146
+ }
147
+ const swapData = this.poolInterface.encodeFunctionData(swapFunction, [
148
+ swapFunctionParams,
149
+ ]);
150
+ return {
151
+ needWrapNative: this.needWrapNative,
152
+ dexFuncHasRecipient: true,
153
+ exchangeData: swapData,
154
+ targetExchange: data.pools[0],
155
+ returnAmountPos: side === constants_1.SwapSide.SELL
156
+ ? (0, utils_1.extractReturnAmountPosition)(this.poolInterface, swapFunction, outputName)
157
+ : undefined,
158
+ };
159
+ }
160
+ }
161
+ exports.Jarvis = Jarvis;
162
+ Jarvis.dexKeys = ['jarvis'];
163
+ //# sourceMappingURL=jarvis.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jarvis.js","sourceRoot":"","sources":["../../src/dex/jarvis.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,44 @@
1
+ import { Interface } from '@ethersproject/abi';
2
+ import { SwapSide } from '../constants';
3
+ import { AdapterExchangeParam, SimpleExchangeParam } from '../types';
4
+ import { IDexTxBuilder } from './idex';
5
+ import { SimpleExchange } from './simple-exchange';
6
+ import { IDexHelper } from '../dex-helper';
7
+ declare enum MStableFunctions {
8
+ mint = "mint",
9
+ swap = "swap",
10
+ redeem = "redeem"
11
+ }
12
+ declare type MStableData = {
13
+ exchange: string;
14
+ opType: MStableFunctions;
15
+ isAssetContract: boolean;
16
+ };
17
+ declare type MStableMint = [
18
+ _input: string,
19
+ _inputQuantity: string,
20
+ _minOutputQuantity: string,
21
+ _recipient: string
22
+ ];
23
+ declare type MStableSwap = [
24
+ _input: string,
25
+ _output: string,
26
+ _inputQuantity: string,
27
+ _minOutputQuantity: string,
28
+ _recipient: string
29
+ ];
30
+ declare type MStableRedeem = [
31
+ _output: string,
32
+ _mAssetQuantity: string,
33
+ _minOutputQuantity: string,
34
+ _recipient: string
35
+ ];
36
+ declare type MStableParam = MStableMint | MStableSwap | MStableRedeem;
37
+ export declare class MStable extends SimpleExchange implements IDexTxBuilder<MStableData, MStableParam> {
38
+ static dexKeys: string[];
39
+ mStableAsset: Interface;
40
+ constructor(dexHelper: IDexHelper);
41
+ getAdapterParam(srcToken: string, destToken: string, srcAmount: string, destAmount: string, data: MStableData, side: SwapSide): AdapterExchangeParam;
42
+ getSimpleParam(srcToken: string, destToken: string, srcAmount: string, destAmount: string, data: MStableData, side: SwapSide): Promise<SimpleExchangeParam>;
43
+ }
44
+ export {};
@@ -0,0 +1,75 @@
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.MStable = void 0;
7
+ const abi_1 = require("@ethersproject/abi");
8
+ const simple_exchange_1 = require("./simple-exchange");
9
+ const MStableAsset_json_1 = __importDefault(require("../abi/MStableAsset.json"));
10
+ var MStableFunctions;
11
+ (function (MStableFunctions) {
12
+ MStableFunctions["mint"] = "mint";
13
+ MStableFunctions["swap"] = "swap";
14
+ MStableFunctions["redeem"] = "redeem";
15
+ })(MStableFunctions || (MStableFunctions = {}));
16
+ class MStable extends simple_exchange_1.SimpleExchange {
17
+ constructor(dexHelper) {
18
+ super(dexHelper, 'mStable');
19
+ this.mStableAsset = new abi_1.Interface(MStableAsset_json_1.default);
20
+ }
21
+ getAdapterParam(srcToken, destToken, srcAmount, destAmount, data, side) {
22
+ const { opType } = data;
23
+ const type = [
24
+ MStableFunctions.swap,
25
+ MStableFunctions.mint,
26
+ MStableFunctions.redeem,
27
+ ].indexOf(opType);
28
+ if (type === undefined) {
29
+ throw new Error(`mStable: Invalid OpType ${opType}, Should be one of ['mint', 'swap', 'redeem']`);
30
+ }
31
+ const payload = this.abiCoder.encodeParameter({
32
+ ParentStruct: {
33
+ opType: 'uint',
34
+ },
35
+ }, {
36
+ opType: type,
37
+ });
38
+ return {
39
+ targetExchange: data.exchange,
40
+ payload,
41
+ networkFee: '0',
42
+ };
43
+ }
44
+ async getSimpleParam(srcToken, destToken, srcAmount, destAmount, data, side) {
45
+ const { opType, isAssetContract } = data;
46
+ const [swapFunction, swapFunctionsParams] = (() => {
47
+ switch (opType) {
48
+ case MStableFunctions.mint:
49
+ return [
50
+ opType,
51
+ [srcToken, srcAmount, destAmount, this.augustusAddress],
52
+ ];
53
+ case MStableFunctions.swap:
54
+ return [
55
+ opType,
56
+ [srcToken, destToken, srcAmount, destAmount, this.augustusAddress],
57
+ ];
58
+ case MStableFunctions.redeem:
59
+ return [
60
+ opType,
61
+ [destToken, srcAmount, destAmount, this.augustusAddress],
62
+ ];
63
+ default:
64
+ throw new Error(`mStable's OpType ${opType} not supported, failed to build`);
65
+ }
66
+ })();
67
+ // mStableAsset & mStablePool both have the same interface hence we can
68
+ // simply use mStableAsset contract
69
+ const swapData = this.mStableAsset.encodeFunctionData(swapFunction, swapFunctionsParams);
70
+ return this.buildSimpleParamWithoutWETHConversion(srcToken, srcAmount, destToken, destAmount, swapData, data.exchange);
71
+ }
72
+ }
73
+ exports.MStable = MStable;
74
+ MStable.dexKeys = ['mStable'];
75
+ //# sourceMappingURL=mStable.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mStable.js","sourceRoot":"","sources":["../../src/dex/mStable.ts"],"names":[],"mappings":";;;;;;AAAA,4CAA6D;AAK7D,uDAAmD;AACnD,iFAAuD;AAIvD,IAAK,gBAIJ;AAJD,WAAK,gBAAgB;IACnB,iCAAa,CAAA;IACb,iCAAa,CAAA;IACb,qCAAiB,CAAA;AACnB,CAAC,EAJI,gBAAgB,KAAhB,gBAAgB,QAIpB;AA4BD,MAAa,OACX,SAAQ,gCAAc;IAMtB,YAAY,SAAqB;QAC/B,KAAK,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QAC5B,IAAI,CAAC,YAAY,GAAG,IAAI,eAAS,CAAC,2BAAiC,CAAC,CAAC;IACvE,CAAC;IAED,eAAe,CACb,QAAgB,EAChB,SAAiB,EACjB,SAAiB,EACjB,UAAkB,EAClB,IAAiB,EACjB,IAAc;QAEd,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;QACxB,MAAM,IAAI,GAAG;YACX,gBAAgB,CAAC,IAAI;YACrB,gBAAgB,CAAC,IAAI;YACrB,gBAAgB,CAAC,MAAM;SACxB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAElB,IAAI,IAAI,KAAK,SAAS,EAAE;YACtB,MAAM,IAAI,KAAK,CACb,2BAA2B,MAAM,+CAA+C,CACjF,CAAC;SACH;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,eAAe,CAC3C;YACE,YAAY,EAAE;gBACZ,MAAM,EAAE,MAAM;aACf;SACF,EACD;YACE,MAAM,EAAE,IAAI;SACb,CACF,CAAC;QAEF,OAAO;YACL,cAAc,EAAE,IAAI,CAAC,QAAQ;YAC7B,OAAO;YACP,UAAU,EAAE,GAAG;SAChB,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,cAAc,CAClB,QAAgB,EAChB,SAAiB,EACjB,SAAiB,EACjB,UAAkB,EAClB,IAAiB,EACjB,IAAc;QAEd,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,GAAG,IAAI,CAAC;QAEzC,MAAM,CAAC,YAAY,EAAE,mBAAmB,CAAC,GAAG,CAAC,GAG3C,EAAE;YACF,QAAQ,MAAM,EAAE;gBACd,KAAK,gBAAgB,CAAC,IAAI;oBACxB,OAAO;wBACL,MAAM;wBACN,CAAC,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,IAAI,CAAC,eAAe,CAAC;qBACxD,CAAC;gBACJ,KAAK,gBAAgB,CAAC,IAAI;oBACxB,OAAO;wBACL,MAAM;wBACN,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,IAAI,CAAC,eAAe,CAAC;qBACnE,CAAC;gBACJ,KAAK,gBAAgB,CAAC,MAAM;oBAC1B,OAAO;wBACL,MAAM;wBACN,CAAC,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,IAAI,CAAC,eAAe,CAAC;qBACzD,CAAC;gBACJ;oBACE,MAAM,IAAI,KAAK,CACb,oBAAoB,MAAM,iCAAiC,CAC5D,CAAC;aACL;QACH,CAAC,CAAC,EAAE,CAAC;QAEL,uEAAuE;QACvE,mCAAmC;QACnC,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,kBAAkB,CACnD,YAAY,EACZ,mBAAmB,CACpB,CAAC;QAEF,OAAO,IAAI,CAAC,qCAAqC,CAC/C,QAAQ,EACR,SAAS,EACT,SAAS,EACT,UAAU,EACV,QAAQ,EACR,IAAI,CAAC,QAAQ,CACd,CAAC;IACJ,CAAC;;AAvGH,0BAwGC;AApGQ,eAAO,GAAG,CAAC,SAAS,CAAC,CAAC"}
@@ -0,0 +1,16 @@
1
+ import { Interface } from '@ethersproject/abi';
2
+ import { SwapSide } from '../../constants';
3
+ import { AdapterExchangeParam, Address, DexExchangeParam, NumberAsString, SimpleExchangeParam } from '../../types';
4
+ import { IDexTxBuilder } from '../idex';
5
+ import { SimpleExchange } from '../simple-exchange';
6
+ import { IDexHelper } from '../../dex-helper';
7
+ import { OnebitData, OnebitParam } from './types';
8
+ export declare class Onebit extends SimpleExchange implements IDexTxBuilder<OnebitData, OnebitParam> {
9
+ static dexKeys: string[];
10
+ exchangeRouterInterface: Interface;
11
+ needWrapNative: boolean;
12
+ constructor(dexHelper: IDexHelper);
13
+ getAdapterParam(srcToken: string, destToken: string, srcAmount: string, destAmount: string, data: OnebitData, side: SwapSide): AdapterExchangeParam;
14
+ getSimpleParam(srcToken: string, destToken: string, srcAmount: string, destAmount: string, data: OnebitData, side: SwapSide): Promise<SimpleExchangeParam>;
15
+ getDexParam(srcToken: Address, destToken: Address, srcAmount: NumberAsString, destAmount: NumberAsString, recipient: Address, data: OnebitData, _side: SwapSide): DexExchangeParam;
16
+ }
@@ -0,0 +1,61 @@
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.Onebit = void 0;
7
+ const abi_1 = require("@ethersproject/abi");
8
+ const constants_1 = require("../../constants");
9
+ const simple_exchange_1 = require("../simple-exchange");
10
+ const Onebit_json_1 = __importDefault(require("../../abi/Onebit.json"));
11
+ const types_1 = require("./types");
12
+ const utils_1 = require("../../executor/utils");
13
+ class Onebit extends simple_exchange_1.SimpleExchange {
14
+ constructor(dexHelper) {
15
+ super(dexHelper, 'omm1');
16
+ this.needWrapNative = true;
17
+ this.exchangeRouterInterface = new abi_1.Interface(Onebit_json_1.default);
18
+ }
19
+ getAdapterParam(srcToken, destToken, srcAmount, destAmount, data, side) {
20
+ return {
21
+ targetExchange: data.router,
22
+ payload: '0x',
23
+ networkFee: '0',
24
+ };
25
+ }
26
+ async getSimpleParam(srcToken, destToken, srcAmount, destAmount, data, side) {
27
+ const swapFunction = types_1.OnebitFunctions.swapTokensWithTrust;
28
+ const swapFunctionParams = [
29
+ srcToken,
30
+ destToken,
31
+ srcAmount,
32
+ destAmount,
33
+ this.augustusAddress,
34
+ ];
35
+ const swapData = this.exchangeRouterInterface.encodeFunctionData(swapFunction, swapFunctionParams);
36
+ return this.buildSimpleParamWithoutWETHConversion(srcToken, srcAmount, destToken, destAmount, swapData, data.router);
37
+ }
38
+ getDexParam(srcToken, destToken, srcAmount, destAmount, recipient, data, _side) {
39
+ const swapFunction = types_1.OnebitFunctions.swapTokensWithTrust;
40
+ const swapFunctionParams = [
41
+ srcToken,
42
+ destToken,
43
+ srcAmount,
44
+ destAmount,
45
+ recipient,
46
+ ];
47
+ const swapData = this.exchangeRouterInterface.encodeFunctionData(swapFunction, swapFunctionParams);
48
+ return {
49
+ needWrapNative: this.needWrapNative,
50
+ dexFuncHasRecipient: true,
51
+ exchangeData: swapData,
52
+ targetExchange: data.router,
53
+ returnAmountPos: _side === constants_1.SwapSide.SELL
54
+ ? (0, utils_1.extractReturnAmountPosition)(this.exchangeRouterInterface, swapFunction)
55
+ : undefined,
56
+ };
57
+ }
58
+ }
59
+ exports.Onebit = Onebit;
60
+ Onebit.dexKeys = ['omm1'];
61
+ //# sourceMappingURL=onebit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"onebit.js","sourceRoot":"","sources":["../../../src/dex/onebit/onebit.ts"],"names":[],"mappings":";;;;;;AAAA,4CAA6D;AAE7D,+CAA2C;AAS3C,wDAAoD;AACpD,wEAA8C;AAE9C,mCAAmE;AACnE,gDAAmE;AAEnE,MAAa,MACX,SAAQ,gCAAc;IAOtB,YAAY,SAAqB;QAC/B,KAAK,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QAH3B,mBAAc,GAAG,IAAI,CAAC;QAIpB,IAAI,CAAC,uBAAuB,GAAG,IAAI,eAAS,CAAC,qBAA2B,CAAC,CAAC;IAC5E,CAAC;IAED,eAAe,CACb,QAAgB,EAChB,SAAiB,EACjB,SAAiB,EACjB,UAAkB,EAClB,IAAgB,EAChB,IAAc;QAEd,OAAO;YACL,cAAc,EAAE,IAAI,CAAC,MAAM;YAC3B,OAAO,EAAE,IAAI;YACb,UAAU,EAAE,GAAG;SAChB,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,cAAc,CAClB,QAAgB,EAChB,SAAiB,EACjB,SAAiB,EACjB,UAAkB,EAClB,IAAgB,EAChB,IAAc;QAEd,MAAM,YAAY,GAAG,uBAAe,CAAC,mBAAmB,CAAC;QACzD,MAAM,kBAAkB,GAAgB;YACtC,QAAQ;YACR,SAAS;YACT,SAAS;YACT,UAAU;YACV,IAAI,CAAC,eAAe;SACrB,CAAC;QACF,MAAM,QAAQ,GAAG,IAAI,CAAC,uBAAuB,CAAC,kBAAkB,CAC9D,YAAY,EACZ,kBAAkB,CACnB,CAAC;QAEF,OAAO,IAAI,CAAC,qCAAqC,CAC/C,QAAQ,EACR,SAAS,EACT,SAAS,EACT,UAAU,EACV,QAAQ,EACR,IAAI,CAAC,MAAM,CACZ,CAAC;IACJ,CAAC;IAED,WAAW,CACT,QAAiB,EACjB,SAAkB,EAClB,SAAyB,EACzB,UAA0B,EAC1B,SAAkB,EAClB,IAAgB,EAChB,KAAe;QAEf,MAAM,YAAY,GAAG,uBAAe,CAAC,mBAAmB,CAAC;QACzD,MAAM,kBAAkB,GAAgB;YACtC,QAAQ;YACR,SAAS;YACT,SAAS;YACT,UAAU;YACV,SAAS;SACV,CAAC;QACF,MAAM,QAAQ,GAAG,IAAI,CAAC,uBAAuB,CAAC,kBAAkB,CAC9D,YAAY,EACZ,kBAAkB,CACnB,CAAC;QAEF,OAAO;YACL,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,mBAAmB,EAAE,IAAI;YACzB,YAAY,EAAE,QAAQ;YACtB,cAAc,EAAE,IAAI,CAAC,MAAM;YAC3B,eAAe,EACb,KAAK,KAAK,oBAAQ,CAAC,IAAI;gBACrB,CAAC,CAAC,IAAA,mCAA2B,EACzB,IAAI,CAAC,uBAAuB,EAC5B,YAAY,CACb;gBACH,CAAC,CAAC,SAAS;SAChB,CAAC;IACJ,CAAC;;AA9FH,wBA+FC;AA3FQ,cAAO,GAAG,CAAC,MAAM,CAAC,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { Address } from '@paraswap/core';
2
+ export declare type OnebitData = {
3
+ router: Address;
4
+ };
5
+ export declare type OnebitParam = [
6
+ srcToken: string,
7
+ destToken: string,
8
+ srcAmount: string,
9
+ destAmountMin: string,
10
+ to: string
11
+ ];
12
+ export declare enum OnebitFunctions {
13
+ swapTokensWithTrust = "swapTokensWithTrust"
14
+ }
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.OnebitFunctions = void 0;
4
+ var OnebitFunctions;
5
+ (function (OnebitFunctions) {
6
+ OnebitFunctions["swapTokensWithTrust"] = "swapTokensWithTrust";
7
+ })(OnebitFunctions = exports.OnebitFunctions || (exports.OnebitFunctions = {}));
8
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/dex/onebit/types.ts"],"names":[],"mappings":";;;AAcA,IAAY,eAEX;AAFD,WAAY,eAAe;IACzB,8DAA2C,CAAA;AAC7C,CAAC,EAFW,eAAe,GAAf,uBAAe,KAAf,uBAAe,QAE1B"}
@@ -1,3 +1,3 @@
1
1
  import { DexParams } from './types';
2
2
  import { DexConfigMap } from '../../types';
3
- export declare const YoConfig: DexConfigMap<DexParams>;
3
+ export declare const SeVlrConfig: DexConfigMap<DexParams>;
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SeVlrConfig = void 0;
4
+ const constants_1 = require("../../constants");
5
+ exports.SeVlrConfig = {
6
+ seVLR: {
7
+ [constants_1.Network.MAINNET]: {
8
+ contractAddress: '0x40000320d200c110100638040f10500c8f0010b9',
9
+ VLR: '0x4e107a0000db66f0e9fd2039288bf811dd1f9c74',
10
+ WETH: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',
11
+ },
12
+ [constants_1.Network.BASE]: {
13
+ contractAddress: '0x40000320d200c110100638040f10500c8f0010b9',
14
+ VLR: '0x4e107a0000db66f0e9fd2039288bf811dd1f9c74',
15
+ WETH: '0x4200000000000000000000000000000000000006 ',
16
+ },
17
+ [constants_1.Network.OPTIMISM]: {
18
+ contractAddress: '0x40000320d200c110100638040f10500c8f0010b9',
19
+ VLR: '0x4e107a0000db66f0e9fd2039288bf811dd1f9c74',
20
+ WETH: '0x4200000000000000000000000000000000000006 ',
21
+ },
22
+ },
23
+ };
24
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/dex/se-vlr/config.ts"],"names":[],"mappings":";;;AAEA,+CAA0C;AAE7B,QAAA,WAAW,GAA4B;IAClD,KAAK,EAAE;QACL,CAAC,mBAAO,CAAC,OAAO,CAAC,EAAE;YACjB,eAAe,EAAE,4CAA4C;YAC7D,GAAG,EAAE,4CAA4C;YACjD,IAAI,EAAE,4CAA4C;SACnD;QACD,CAAC,mBAAO,CAAC,IAAI,CAAC,EAAE;YACd,eAAe,EAAE,4CAA4C;YAC7D,GAAG,EAAE,4CAA4C;YACjD,IAAI,EAAE,6CAA6C;SACpD;QACD,CAAC,mBAAO,CAAC,QAAQ,CAAC,EAAE;YAClB,eAAe,EAAE,4CAA4C;YAC7D,GAAG,EAAE,4CAA4C;YACjD,IAAI,EAAE,6CAA6C;SACpD;KACF;CACF,CAAC"}
@@ -1,19 +1,20 @@
1
+ import { Interface } from '@ethersproject/abi';
1
2
  import { DeepReadonly } from 'ts-essentials';
2
3
  import { Log, Logger } from '../../types';
3
4
  import { StatefulEventSubscriber } from '../../stateful-event-subscriber';
4
5
  import { IDexHelper } from '../../dex-helper/idex-helper';
5
6
  import { PoolState } from './types';
6
- export declare class StabullEventPool extends StatefulEventSubscriber<PoolState> {
7
+ export declare class SeVlrEventPool extends StatefulEventSubscriber<PoolState> {
7
8
  readonly parentName: string;
8
9
  protected network: number;
9
10
  protected dexHelper: IDexHelper;
10
- readonly poolAddress: string;
11
- protected addressesSubscribed_: string[];
11
+ protected seVlrIface: Interface;
12
12
  handlers: {
13
13
  [event: string]: (event: any, state: DeepReadonly<PoolState>, log: Readonly<Log>) => DeepReadonly<PoolState> | null;
14
14
  };
15
15
  logDecoder: (log: Log) => any;
16
- constructor(parentName: string, network: number, dexHelper: IDexHelper, poolAddress: string, addressesSubscribed_: string[], logger: Logger);
16
+ addressesSubscribed: string[];
17
+ constructor(parentName: string, network: number, dexHelper: IDexHelper, logger: Logger, seVlrIface?: Interface);
17
18
  /**
18
19
  * The function is called every time any of the subscribed
19
20
  * addresses release log. The function accepts the current
@@ -34,13 +35,5 @@ export declare class StabullEventPool extends StatefulEventSubscriber<PoolState>
34
35
  * @returns state of the event subscriber at blocknumber
35
36
  */
36
37
  generateState(blockNumber: number): Promise<DeepReadonly<PoolState>>;
37
- /**
38
- * Handles a transfer event and updates the pool state accordingly.
39
- *
40
- * @param event - The transfer event object containing details about the transfer.
41
- * @param state - The current state of the pool.
42
- * @param log - The log object containing additional information about the event.
43
- * @returns The updated pool state if the transfer involves the pool, otherwise null.
44
- */
45
- handleTransfer(event: any, state: DeepReadonly<PoolState>, log: Readonly<Log>): DeepReadonly<PoolState> | null;
38
+ handleMyEvent(event: any, state: DeepReadonly<PoolState>, log: Readonly<Log>): DeepReadonly<PoolState> | null;
46
39
  }
@@ -0,0 +1,70 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SeVlrEventPool = void 0;
4
+ const abi_1 = require("@ethersproject/abi");
5
+ const utils_1 = require("../../utils");
6
+ const stateful_event_subscriber_1 = require("../../stateful-event-subscriber");
7
+ class SeVlrEventPool extends stateful_event_subscriber_1.StatefulEventSubscriber {
8
+ parentName;
9
+ network;
10
+ dexHelper;
11
+ seVlrIface;
12
+ handlers = {};
13
+ logDecoder;
14
+ addressesSubscribed;
15
+ constructor(parentName, network, dexHelper, logger, seVlrIface = new abi_1.Interface('' /* TODO: Import and put here SeVlr ABI */)) {
16
+ // TODO: Add pool name
17
+ super(parentName, 'POOL_NAME', dexHelper, logger);
18
+ this.parentName = parentName;
19
+ this.network = network;
20
+ this.dexHelper = dexHelper;
21
+ this.seVlrIface = seVlrIface;
22
+ // TODO: make logDecoder decode logs that
23
+ this.logDecoder = (log) => this.seVlrIface.parseLog(log);
24
+ this.addressesSubscribed = [
25
+ /* subscribed addresses */
26
+ ];
27
+ // Add handlers
28
+ this.handlers['myEvent'] = this.handleMyEvent.bind(this);
29
+ }
30
+ /**
31
+ * The function is called every time any of the subscribed
32
+ * addresses release log. The function accepts the current
33
+ * state, updates the state according to the log, and returns
34
+ * the updated state.
35
+ * @param state - Current state of event subscriber
36
+ * @param log - Log released by one of the subscribed addresses
37
+ * @returns Updates state of the event subscriber after the log
38
+ */
39
+ processLog(state, log) {
40
+ try {
41
+ const event = this.logDecoder(log);
42
+ if (event.name in this.handlers) {
43
+ return this.handlers[event.name](event, state, log);
44
+ }
45
+ }
46
+ catch (e) {
47
+ (0, utils_1.catchParseLogError)(e, this.logger);
48
+ }
49
+ return null;
50
+ }
51
+ /**
52
+ * The function generates state using on-chain calls. This
53
+ * function is called to regenerate state if the event based
54
+ * system fails to fetch events and the local state is no
55
+ * more correct.
56
+ * @param blockNumber - Blocknumber for which the state should
57
+ * should be generated
58
+ * @returns state of the event subscriber at blocknumber
59
+ */
60
+ async generateState(blockNumber) {
61
+ // TODO: complete me!
62
+ return {};
63
+ }
64
+ // Its just a dummy example
65
+ handleMyEvent(event, state, log) {
66
+ return null;
67
+ }
68
+ }
69
+ exports.SeVlrEventPool = SeVlrEventPool;
70
+ //# sourceMappingURL=se-vlr-pool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"se-vlr-pool.js","sourceRoot":"","sources":["../../../src/dex/se-vlr/se-vlr-pool.ts"],"names":[],"mappings":";;;AAAA,4CAA+C;AAG/C,uCAAiD;AACjD,+EAA0E;AAI1E,MAAa,cAAe,SAAQ,mDAAkC;IAczD;IACC;IACA;IAEA;IAjBZ,QAAQ,GAMJ,EAAE,CAAC;IAEP,UAAU,CAAoB;IAE9B,mBAAmB,CAAW;IAE9B,YACW,UAAkB,EACjB,OAAe,EACf,SAAqB,EAC/B,MAAc,EACJ,aAAa,IAAI,eAAS,CAClC,EAAE,CAAC,yCAAyC,CAC7C;QAED,sBAAsB;QACtB,KAAK,CAAC,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;QATzC,eAAU,GAAV,UAAU,CAAQ;QACjB,YAAO,GAAP,OAAO,CAAQ;QACf,cAAS,GAAT,SAAS,CAAY;QAErB,eAAU,GAAV,UAAU,CAEnB;QAKD,yCAAyC;QACzC,IAAI,CAAC,UAAU,GAAG,CAAC,GAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAC9D,IAAI,CAAC,mBAAmB,GAAG;QACzB,0BAA0B;SAC3B,CAAC;QAEF,eAAe;QACf,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3D,CAAC;IAED;;;;;;;;OAQG;IACO,UAAU,CAClB,KAA8B,EAC9B,GAAkB;QAElB,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;YACnC,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAChC,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;YACtD,CAAC;QACH,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAA,0BAAkB,EAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QACrC,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,aAAa,CAAC,WAAmB;QACrC,qBAAqB;QACrB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,2BAA2B;IAC3B,aAAa,CACX,KAAU,EACV,KAA8B,EAC9B,GAAkB;QAElB,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AAlFD,wCAkFC"}
@@ -0,0 +1,35 @@
1
+ import { AsyncOrSync } from 'ts-essentials';
2
+ import { Token, Address, ExchangePrices, PoolPrices, AdapterExchangeParam, PoolLiquidity, Logger } from '../../types';
3
+ import { SwapSide, Network } from '../../constants';
4
+ import { IDex } from '../../dex/idex';
5
+ import { IDexHelper } from '../../dex-helper/idex-helper';
6
+ import { SeVlrData } from './types';
7
+ import { SimpleExchange } from '../simple-exchange';
8
+ import { SeVlrEventPool } from './se-vlr-pool';
9
+ export declare class SeVlr extends SimpleExchange implements IDex<SeVlrData> {
10
+ readonly network: Network;
11
+ readonly dexKey: string;
12
+ readonly dexHelper: IDexHelper;
13
+ protected eventPools: SeVlrEventPool;
14
+ readonly hasConstantPriceLargeAmounts = false;
15
+ readonly needWrapNative = true;
16
+ readonly isFeeOnTransferSupported = false;
17
+ static dexKeysWithNetwork: {
18
+ key: string;
19
+ networks: Network[];
20
+ }[];
21
+ logger: Logger;
22
+ constructor(network: Network, dexKey: string, dexHelper: IDexHelper);
23
+ initializePricing(blockNumber: number): Promise<void>;
24
+ getAdapters(side: SwapSide): {
25
+ name: string;
26
+ index: number;
27
+ }[] | null;
28
+ getPoolIdentifiers(srcToken: Token, destToken: Token, side: SwapSide, blockNumber: number): Promise<string[]>;
29
+ getPricesVolume(srcToken: Token, destToken: Token, amounts: bigint[], side: SwapSide, blockNumber: number, limitPools?: string[]): Promise<null | ExchangePrices<SeVlrData>>;
30
+ getCalldataGasCost(poolPrices: PoolPrices<SeVlrData>): number | number[];
31
+ getAdapterParam(srcToken: string, destToken: string, srcAmount: string, destAmount: string, data: SeVlrData, side: SwapSide): AdapterExchangeParam;
32
+ updatePoolState(): Promise<void>;
33
+ getTopPoolsForToken(tokenAddress: Address, limit: number): Promise<PoolLiquidity[]>;
34
+ releaseResources(): AsyncOrSync<void>;
35
+ }