@paraswap/dex-lib 3.8.22 → 3.8.23

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 (327) hide show
  1. package/.vscode/launch.json +16 -0
  2. package/.vscode/settings.json +3 -0
  3. package/build/abi/AaveV1_lending_pool.json +27 -0
  4. package/build/abi/Uncompressor.json +250 -0
  5. package/build/abi/integral/factory.json +333 -0
  6. package/build/abi/integral/oracle.json +501 -0
  7. package/build/abi/integral/pool.json +1041 -0
  8. package/build/abi/integral/relayer.json +1536 -0
  9. package/build/abi/oswap/oswap.abi.json +452 -0
  10. package/build/abi/platypus/asset.json +490 -0
  11. package/build/abi/platypus/avax-pool.json +820 -0
  12. package/build/abi/platypus/oracle.json +119 -0
  13. package/build/abi/platypus/pool.json +677 -0
  14. package/build/abi/smardex/all/smardex-router.json +648 -0
  15. package/build/abi/smardex/layer-1/smardex-factory.json +242 -0
  16. package/build/abi/smardex/layer-1/smardex-pool.json +506 -0
  17. package/build/abi/smardex/layer-2/smardex-factory.json +185 -0
  18. package/build/abi/smardex/layer-2/smardex-pool.json +578 -0
  19. package/build/abi/swaap-v1/pool.json +1346 -0
  20. package/build/dex/aave-v1/aave-v1.d.ts +33 -0
  21. package/build/dex/aave-v1/aave-v1.js +158 -0
  22. package/build/dex/aave-v1/aave-v1.js.map +1 -0
  23. package/build/dex/aave-v1/config.d.ts +11 -0
  24. package/build/dex/aave-v1/config.js +20 -0
  25. package/build/dex/aave-v1/config.js.map +1 -0
  26. package/build/dex/aave-v1/tokens-mainnet.json +134 -0
  27. package/build/dex/aave-v1/tokens.d.ts +3 -0
  28. package/build/dex/aave-v1/tokens.js +50 -0
  29. package/build/dex/aave-v1/tokens.js.map +1 -0
  30. package/build/dex/aave-v1/types.d.ts +12 -0
  31. package/build/dex/aave-v1/types.js +3 -0
  32. package/build/dex/aave-v1/types.js.map +1 -0
  33. package/build/dex/bProtocol.d.ts +18 -0
  34. package/build/dex/bProtocol.js +39 -0
  35. package/build/dex/bProtocol.js.map +1 -0
  36. package/build/dex/bancor.d.ts +26 -0
  37. package/build/dex/bancor.js +58 -0
  38. package/build/dex/bancor.js.map +1 -0
  39. package/build/dex/compound.d.ts +18 -0
  40. package/build/dex/compound.js +46 -0
  41. package/build/dex/compound.js.map +1 -0
  42. package/build/dex/curve-v2.d.ts +58 -0
  43. package/build/dex/curve-v2.js +180 -0
  44. package/build/dex/curve-v2.js.map +1 -0
  45. package/build/dex/dodo-v1.d.ts +33 -0
  46. package/build/dex/dodo-v1.js +63 -0
  47. package/build/dex/dodo-v1.js.map +1 -0
  48. package/build/dex/etherfi/etherfi.d.ts +26 -0
  49. package/build/dex/etherfi/etherfi.js +96 -0
  50. package/build/dex/etherfi/etherfi.js.map +1 -0
  51. package/build/dex/integral/config.d.ts +4 -0
  52. package/build/dex/integral/config.js +20 -0
  53. package/build/dex/integral/config.js.map +1 -0
  54. package/build/dex/integral/context.d.ts +40 -0
  55. package/build/dex/integral/context.js +158 -0
  56. package/build/dex/integral/context.js.map +1 -0
  57. package/build/dex/integral/helpers.d.ts +17 -0
  58. package/build/dex/integral/helpers.js +157 -0
  59. package/build/dex/integral/helpers.js.map +1 -0
  60. package/build/dex/integral/integral-factory.d.ts +24 -0
  61. package/build/dex/integral/integral-factory.js +95 -0
  62. package/build/dex/integral/integral-factory.js.map +1 -0
  63. package/build/dex/integral/integral-pool.d.ts +50 -0
  64. package/build/dex/integral/integral-pool.js +149 -0
  65. package/build/dex/integral/integral-pool.js.map +1 -0
  66. package/build/dex/integral/integral-pricing.d.ts +18 -0
  67. package/build/dex/integral/integral-pricing.js +114 -0
  68. package/build/dex/integral/integral-pricing.js.map +1 -0
  69. package/build/dex/integral/integral-relayer.d.ts +42 -0
  70. package/build/dex/integral/integral-relayer.js +192 -0
  71. package/build/dex/integral/integral-relayer.js.map +1 -0
  72. package/build/dex/integral/integral-token.d.ts +27 -0
  73. package/build/dex/integral/integral-token.js +59 -0
  74. package/build/dex/integral/integral-token.js.map +1 -0
  75. package/build/dex/integral/integral.d.ts +41 -0
  76. package/build/dex/integral/integral.js +376 -0
  77. package/build/dex/integral/integral.js.map +1 -0
  78. package/build/dex/integral/types.d.ts +85 -0
  79. package/build/dex/integral/types.js +9 -0
  80. package/build/dex/integral/types.js.map +1 -0
  81. package/build/dex/integral/utils-e2e.d.ts +9 -0
  82. package/build/dex/integral/utils-e2e.js +131 -0
  83. package/build/dex/integral/utils-e2e.js.map +1 -0
  84. package/build/dex/integral/utils.d.ts +17 -0
  85. package/build/dex/integral/utils.js +94 -0
  86. package/build/dex/integral/utils.js.map +1 -0
  87. package/build/dex/lido.d.ts +19 -0
  88. package/build/dex/lido.js +42 -0
  89. package/build/dex/lido.js.map +1 -0
  90. package/build/dex/maverick-v2/config.js +4 -0
  91. package/build/dex/maverick-v2/config.js.map +1 -1
  92. package/build/dex/maverick-v2/maverick-math/maverick-pool-math.js +4 -0
  93. package/build/dex/maverick-v2/maverick-math/maverick-pool-math.js.map +1 -1
  94. package/build/dex/maverick-v2/maverick-v2-pool.d.ts +1 -1
  95. package/build/dex/maverick-v2/maverick-v2-pool.js +8 -8
  96. package/build/dex/maverick-v2/maverick-v2-pool.js.map +1 -1
  97. package/build/dex/maverick-v2/maverick-v2.d.ts +5 -4
  98. package/build/dex/maverick-v2/maverick-v2.js +73 -63
  99. package/build/dex/maverick-v2/maverick-v2.js.map +1 -1
  100. package/build/dex/maverick-v2/types.d.ts +4 -0
  101. package/build/dex/onebit.d.ts +25 -0
  102. package/build/dex/onebit.js +42 -0
  103. package/build/dex/onebit.js.map +1 -0
  104. package/build/dex/oswap/config.d.ts +5 -0
  105. package/build/dex/oswap/config.js +31 -0
  106. package/build/dex/oswap/config.js.map +1 -0
  107. package/build/dex/oswap/oswap-pool.d.ts +51 -0
  108. package/build/dex/oswap/oswap-pool.js +150 -0
  109. package/build/dex/oswap/oswap-pool.js.map +1 -0
  110. package/build/dex/oswap/oswap.d.ts +46 -0
  111. package/build/dex/oswap/oswap.js +266 -0
  112. package/build/dex/oswap/oswap.js.map +1 -0
  113. package/build/dex/oswap/types.d.ts +20 -0
  114. package/build/dex/oswap/types.js +3 -0
  115. package/build/dex/oswap/types.js.map +1 -0
  116. package/build/dex/platypus/asset.d.ts +14 -0
  117. package/build/dex/platypus/asset.js +97 -0
  118. package/build/dex/platypus/asset.js.map +1 -0
  119. package/build/dex/platypus/config.d.ts +11 -0
  120. package/build/dex/platypus/config.js +69 -0
  121. package/build/dex/platypus/config.js.map +1 -0
  122. package/build/dex/platypus/platypus.d.ts +62 -0
  123. package/build/dex/platypus/platypus.js +442 -0
  124. package/build/dex/platypus/platypus.js.map +1 -0
  125. package/build/dex/platypus/pool-avax.d.ts +8 -0
  126. package/build/dex/platypus/pool-avax.js +54 -0
  127. package/build/dex/platypus/pool-avax.js.map +1 -0
  128. package/build/dex/platypus/pool-base.d.ts +19 -0
  129. package/build/dex/platypus/pool-base.js +86 -0
  130. package/build/dex/platypus/pool-base.js.map +1 -0
  131. package/build/dex/platypus/pool-pure.d.ts +8 -0
  132. package/build/dex/platypus/pool-pure.js +37 -0
  133. package/build/dex/platypus/pool-pure.js.map +1 -0
  134. package/build/dex/platypus/pool-subscriber.d.ts +14 -0
  135. package/build/dex/platypus/pool-subscriber.js +167 -0
  136. package/build/dex/platypus/pool-subscriber.js.map +1 -0
  137. package/build/dex/platypus/pool.d.ts +8 -0
  138. package/build/dex/platypus/pool.js +58 -0
  139. package/build/dex/platypus/pool.js.map +1 -0
  140. package/build/dex/platypus/types.d.ts +92 -0
  141. package/build/dex/platypus/types.js +10 -0
  142. package/build/dex/platypus/types.js.map +1 -0
  143. package/build/dex/quickswap/spiritswap-v3.d.ts +6 -0
  144. package/build/dex/quickswap/spiritswap-v3.js +19 -0
  145. package/build/dex/quickswap/spiritswap-v3.js.map +1 -0
  146. package/build/dex/sdai/config.d.ts +11 -0
  147. package/build/dex/sdai/config.js +21 -0
  148. package/build/dex/sdai/config.js.map +1 -0
  149. package/build/dex/sdai/constants.d.ts +2 -0
  150. package/build/dex/sdai/constants.js +6 -0
  151. package/build/dex/sdai/constants.js.map +1 -0
  152. package/build/dex/sdai/scripts/validate-state.d.ts +1 -0
  153. package/build/dex/sdai/scripts/validate-state.js +102 -0
  154. package/build/dex/sdai/scripts/validate-state.js.map +1 -0
  155. package/build/dex/sdai/sdai-pool.d.ts +16 -0
  156. package/build/dex/sdai/sdai-pool.js +85 -0
  157. package/build/dex/sdai/sdai-pool.js.map +1 -0
  158. package/build/dex/sdai/sdai.d.ts +51 -0
  159. package/build/dex/sdai/sdai.js +172 -0
  160. package/build/dex/sdai/sdai.js.map +1 -0
  161. package/build/dex/sdai/types.d.ts +21 -0
  162. package/build/dex/sdai/types.js +11 -0
  163. package/build/dex/sdai/types.js.map +1 -0
  164. package/build/dex/sdai/utils.d.ts +4 -0
  165. package/build/dex/sdai/utils.js +39 -0
  166. package/build/dex/sdai/utils.js.map +1 -0
  167. package/build/dex/smardex/config.d.ts +4 -0
  168. package/build/dex/smardex/config.js +64 -0
  169. package/build/dex/smardex/config.js.map +1 -0
  170. package/build/dex/smardex/constants.d.ts +18 -0
  171. package/build/dex/smardex/constants.js +33 -0
  172. package/build/dex/smardex/constants.js.map +1 -0
  173. package/build/dex/smardex/sdk/constants.d.ts +6 -0
  174. package/build/dex/smardex/sdk/constants.js +13 -0
  175. package/build/dex/smardex/sdk/constants.js.map +1 -0
  176. package/build/dex/smardex/sdk/core.d.ts +113 -0
  177. package/build/dex/smardex/sdk/core.js +499 -0
  178. package/build/dex/smardex/sdk/core.js.map +1 -0
  179. package/build/dex/smardex/sdk/errors.d.ts +15 -0
  180. package/build/dex/smardex/sdk/errors.js +22 -0
  181. package/build/dex/smardex/sdk/errors.js.map +1 -0
  182. package/build/dex/smardex/sdk/types.d.ts +62 -0
  183. package/build/dex/smardex/sdk/types.js +3 -0
  184. package/build/dex/smardex/sdk/types.js.map +1 -0
  185. package/build/dex/smardex/sdk/utils.d.ts +44 -0
  186. package/build/dex/smardex/sdk/utils.js +133 -0
  187. package/build/dex/smardex/sdk/utils.js.map +1 -0
  188. package/build/dex/smardex/smardex-event-pool.d.ts +28 -0
  189. package/build/dex/smardex/smardex-event-pool.js +119 -0
  190. package/build/dex/smardex/smardex-event-pool.js.map +1 -0
  191. package/build/dex/smardex/smardex.d.ts +65 -0
  192. package/build/dex/smardex/smardex.js +519 -0
  193. package/build/dex/smardex/smardex.js.map +1 -0
  194. package/build/dex/smardex/types.d.ts +55 -0
  195. package/build/dex/smardex/types.js +3 -0
  196. package/build/dex/smardex/types.js.map +1 -0
  197. package/build/dex/smoothy.d.ts +26 -0
  198. package/build/dex/smoothy.js +48 -0
  199. package/build/dex/smoothy.js.map +1 -0
  200. package/build/dex/solidly/forks-override/cone.d.ts +22 -0
  201. package/build/dex/solidly/forks-override/cone.js +53 -0
  202. package/build/dex/solidly/forks-override/cone.js.map +1 -0
  203. package/build/dex/solidly/forks-override/solisnek.d.ts +8 -0
  204. package/build/dex/solidly/forks-override/solisnek.js +15 -0
  205. package/build/dex/solidly/forks-override/solisnek.js.map +1 -0
  206. package/build/dex/stable-pool.d.ts +28 -0
  207. package/build/dex/stable-pool.js +62 -0
  208. package/build/dex/stable-pool.js.map +1 -0
  209. package/build/dex/swaap-v1/config.d.ts +17 -0
  210. package/build/dex/swaap-v1/config.js +56 -0
  211. package/build/dex/swaap-v1/config.js.map +1 -0
  212. package/build/dex/swaap-v1/constants.d.ts +6 -0
  213. package/build/dex/swaap-v1/constants.js +17 -0
  214. package/build/dex/swaap-v1/constants.js.map +1 -0
  215. package/build/dex/swaap-v1/libraries/ChainlinkUtils.d.ts +25 -0
  216. package/build/dex/swaap-v1/libraries/ChainlinkUtils.js +62 -0
  217. package/build/dex/swaap-v1/libraries/ChainlinkUtils.js.map +1 -0
  218. package/build/dex/swaap-v1/libraries/Const.d.ts +18 -0
  219. package/build/dex/swaap-v1/libraries/Const.js +26 -0
  220. package/build/dex/swaap-v1/libraries/Const.js.map +1 -0
  221. package/build/dex/swaap-v1/libraries/GeometricBrownianMotion.d.ts +77 -0
  222. package/build/dex/swaap-v1/libraries/GeometricBrownianMotion.js +316 -0
  223. package/build/dex/swaap-v1/libraries/GeometricBrownianMotion.js.map +1 -0
  224. package/build/dex/swaap-v1/libraries/LogExpMath.d.ts +75 -0
  225. package/build/dex/swaap-v1/libraries/LogExpMath.js +418 -0
  226. package/build/dex/swaap-v1/libraries/LogExpMath.js.map +1 -0
  227. package/build/dex/swaap-v1/libraries/MathMMM.d.ts +185 -0
  228. package/build/dex/swaap-v1/libraries/MathMMM.js +453 -0
  229. package/build/dex/swaap-v1/libraries/MathMMM.js.map +1 -0
  230. package/build/dex/swaap-v1/libraries/Num.d.ts +31 -0
  231. package/build/dex/swaap-v1/libraries/Num.js +167 -0
  232. package/build/dex/swaap-v1/libraries/Num.js.map +1 -0
  233. package/build/dex/swaap-v1/libraries/PoolQuotations.d.ts +23 -0
  234. package/build/dex/swaap-v1/libraries/PoolQuotations.js +131 -0
  235. package/build/dex/swaap-v1/libraries/PoolQuotations.js.map +1 -0
  236. package/build/dex/swaap-v1/libraries/Struct.d.ts +56 -0
  237. package/build/dex/swaap-v1/libraries/Struct.js +3 -0
  238. package/build/dex/swaap-v1/libraries/Struct.js.map +1 -0
  239. package/build/dex/swaap-v1/swaap-v1-pool.d.ts +45 -0
  240. package/build/dex/swaap-v1/swaap-v1-pool.js +656 -0
  241. package/build/dex/swaap-v1/swaap-v1-pool.js.map +1 -0
  242. package/build/dex/swaap-v1/swaap-v1.d.ts +61 -0
  243. package/build/dex/swaap-v1/swaap-v1.js +369 -0
  244. package/build/dex/swaap-v1/swaap-v1.js.map +1 -0
  245. package/build/dex/swaap-v1/types.d.ts +106 -0
  246. package/build/dex/swaap-v1/types.js +9 -0
  247. package/build/dex/swaap-v1/types.js.map +1 -0
  248. package/build/dex/trader-joe-v2.1/optimizer.js +1 -4
  249. package/build/dex/trader-joe-v2.1/optimizer.js.map +1 -1
  250. package/build/dex/trader-joe-v2.1.d.ts +43 -0
  251. package/build/dex/trader-joe-v2.1.js +79 -0
  252. package/build/dex/trader-joe-v2.1.js.map +1 -0
  253. package/build/executor/compressor/Compressor.d.ts +23 -0
  254. package/build/executor/compressor/Compressor.js +144 -0
  255. package/build/executor/compressor/Compressor.js.map +1 -0
  256. package/build/executor/compressor/compress.d.ts +17 -0
  257. package/build/executor/compressor/compress.js +187 -0
  258. package/build/executor/compressor/compress.js.map +1 -0
  259. package/build/executor/compressor/compress_functions/addressSubstitution.d.ts +6 -0
  260. package/build/executor/compressor/compress_functions/addressSubstitution.js +29 -0
  261. package/build/executor/compressor/compress_functions/addressSubstitution.js.map +1 -0
  262. package/build/executor/compressor/compress_functions/addressSubstitutionFromObject.d.ts +10 -0
  263. package/build/executor/compressor/compress_functions/addressSubstitutionFromObject.js +40 -0
  264. package/build/executor/compressor/compress_functions/addressSubstitutionFromObject.js.map +1 -0
  265. package/build/executor/compressor/compress_functions/byteSubstitution.d.ts +11 -0
  266. package/build/executor/compressor/compress_functions/byteSubstitution.js +64 -0
  267. package/build/executor/compressor/compress_functions/byteSubstitution.js.map +1 -0
  268. package/build/executor/compressor/compress_functions/ffSubstitution.d.ts +7 -0
  269. package/build/executor/compressor/compress_functions/ffSubstitution.js +54 -0
  270. package/build/executor/compressor/compress_functions/ffSubstitution.js.map +1 -0
  271. package/build/executor/compressor/compress_functions/findLongestAndSubstitute.d.ts +8 -0
  272. package/build/executor/compressor/compress_functions/findLongestAndSubstitute.js +67 -0
  273. package/build/executor/compressor/compress_functions/findLongestAndSubstitute.js.map +1 -0
  274. package/build/executor/compressor/compress_functions/findLongestAndSubstitute_old.d.ts +8 -0
  275. package/build/executor/compressor/compress_functions/findLongestAndSubstitute_old.js +61 -0
  276. package/build/executor/compressor/compress_functions/findLongestAndSubstitute_old.js.map +1 -0
  277. package/build/executor/compressor/compress_functions/reverseAddressSubstitution.d.ts +6 -0
  278. package/build/executor/compressor/compress_functions/reverseAddressSubstitution.js +37 -0
  279. package/build/executor/compressor/compress_functions/reverseAddressSubstitution.js.map +1 -0
  280. package/build/executor/compressor/compress_functions/searchUnusedBytes.d.ts +9 -0
  281. package/build/executor/compressor/compress_functions/searchUnusedBytes.js +33 -0
  282. package/build/executor/compressor/compress_functions/searchUnusedBytes.js.map +1 -0
  283. package/build/executor/compressor/fetchSaved.d.ts +0 -0
  284. package/build/executor/compressor/fetchSaved.js +17 -0
  285. package/build/executor/compressor/fetchSaved.js.map +1 -0
  286. package/build/executor/compressor/utils/computeCostL2.d.ts +2 -0
  287. package/build/executor/compressor/utils/computeCostL2.js +14 -0
  288. package/build/executor/compressor/utils/computeCostL2.js.map +1 -0
  289. package/build/executor/compressor/utils/findLongestDuplicatedString.d.ts +2 -0
  290. package/build/executor/compressor/utils/findLongestDuplicatedString.js +30 -0
  291. package/build/executor/compressor/utils/findLongestDuplicatedString.js.map +1 -0
  292. package/build/executor/compressor/utils/getAllIndexes.d.ts +2 -0
  293. package/build/executor/compressor/utils/getAllIndexes.js +12 -0
  294. package/build/executor/compressor/utils/getAllIndexes.js.map +1 -0
  295. package/build/executor/compressor/utils/getByteForAddress.d.ts +2 -0
  296. package/build/executor/compressor/utils/getByteForAddress.js +14 -0
  297. package/build/executor/compressor/utils/getByteForAddress.js.map +1 -0
  298. package/build/executor/compressor/utils/intTo2Bytes.d.ts +2 -0
  299. package/build/executor/compressor/utils/intTo2Bytes.js +14 -0
  300. package/build/executor/compressor/utils/intTo2Bytes.js.map +1 -0
  301. package/build/executor/compressor/utils/intTo3Bytes.d.ts +2 -0
  302. package/build/executor/compressor/utils/intTo3Bytes.js +18 -0
  303. package/build/executor/compressor/utils/intTo3Bytes.js.map +1 -0
  304. package/build/executor/compressor/utils/intToByte.d.ts +2 -0
  305. package/build/executor/compressor/utils/intToByte.js +10 -0
  306. package/build/executor/compressor/utils/intToByte.js.map +1 -0
  307. package/package.json +1 -1
  308. package/src/abi/maverick-v2/MaverickV2Router.json +778 -0
  309. package/src/dex/maverick-v2/config.ts +4 -0
  310. package/src/dex/maverick-v2/maverick-math/maverick-pool-math.ts +5 -0
  311. package/src/dex/maverick-v2/maverick-v2-e2e.test.ts +21 -43
  312. package/src/dex/maverick-v2/maverick-v2-integration.test.ts +100 -96
  313. package/src/dex/maverick-v2/maverick-v2-pool.ts +8 -8
  314. package/src/dex/maverick-v2/maverick-v2.ts +111 -81
  315. package/src/dex/maverick-v2/types.ts +4 -0
  316. package/tests/constants-e2e.ts +9 -0
  317. package/.idea/aws.xml +0 -17
  318. package/.idea/codeStyles/Project.xml +0 -19
  319. package/.idea/codeStyles/codeStyleConfig.xml +0 -5
  320. package/.idea/misc.xml +0 -6
  321. package/.idea/modules.xml +0 -8
  322. package/.idea/paraswap-dex-lib.iml +0 -9
  323. package/.idea/prettier.xml +0 -7
  324. package/.idea/vcs.xml +0 -6
  325. package/build/dex/trader-joe-v2.1/trader-joe-v2.1-new.d.ts +0 -7
  326. package/build/dex/trader-joe-v2.1/trader-joe-v2.1-new.js +0 -20
  327. package/build/dex/trader-joe-v2.1/trader-joe-v2.1-new.js.map +0 -1
@@ -0,0 +1,48 @@
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.Smoothy = 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 Smoothy_json_1 = __importDefault(require("../abi/Smoothy.json"));
11
+ var SmoothyFunctions;
12
+ (function (SmoothyFunctions) {
13
+ SmoothyFunctions["swap"] = "swap";
14
+ })(SmoothyFunctions || (SmoothyFunctions = {}));
15
+ class Smoothy extends simple_exchange_1.SimpleExchange {
16
+ constructor(dexHelper) {
17
+ super(dexHelper, 'smoothy');
18
+ this.minConversionRate = '1';
19
+ this.exchangeRouterInterface = new abi_1.Interface(Smoothy_json_1.default);
20
+ }
21
+ getAdapterParam(srcToken, destToken, srcAmount, destAmount, data, side) {
22
+ if (side === constants_1.SwapSide.BUY)
23
+ throw new Error(`Buy not supported`);
24
+ const { i, j } = data;
25
+ const payload = this.abiCoder.encodeParameter({
26
+ ParentStruct: {
27
+ i: 'int128',
28
+ j: 'int128',
29
+ },
30
+ }, { i, j });
31
+ return {
32
+ targetExchange: data.exchange,
33
+ payload,
34
+ networkFee: '0',
35
+ };
36
+ }
37
+ async getSimpleParam(srcToken, destToken, srcAmount, destAmount, data, side) {
38
+ if (side === constants_1.SwapSide.BUY)
39
+ throw new Error(`Buy not supported`);
40
+ const { exchange, i, j } = data;
41
+ const swapFunctionParams = [i, j, srcAmount, destAmount];
42
+ const swapData = this.exchangeRouterInterface.encodeFunctionData(SmoothyFunctions.swap, swapFunctionParams);
43
+ return this.buildSimpleParamWithoutWETHConversion(srcToken, srcAmount, destToken, destAmount, swapData, exchange);
44
+ }
45
+ }
46
+ exports.Smoothy = Smoothy;
47
+ Smoothy.dexKeys = ['smoothy'];
48
+ //# sourceMappingURL=smoothy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"smoothy.js","sourceRoot":"","sources":["../../src/dex/smoothy.ts"],"names":[],"mappings":";;;;;;AAAA,4CAA+C;AAE/C,4CAAwC;AAQxC,uDAAmD;AACnD,uEAA6C;AAiB7C,IAAK,gBAEJ;AAFD,WAAK,gBAAgB;IACnB,iCAAa,CAAA;AACf,CAAC,EAFI,gBAAgB,KAAhB,gBAAgB,QAEpB;AAED,MAAa,OACX,SAAQ,gCAAc;IAOtB,YAAY,SAAqB;QAC/B,KAAK,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QAH9B,sBAAiB,GAAG,GAAG,CAAC;QAItB,IAAI,CAAC,uBAAuB,GAAG,IAAI,eAAS,CAAC,sBAAU,CAAC,CAAC;IAC3D,CAAC;IAED,eAAe,CACb,QAAgB,EAChB,SAAiB,EACjB,SAAiB,EACjB,UAAkB,EAClB,IAAiB,EACjB,IAAc;QAEd,IAAI,IAAI,KAAK,oBAAQ,CAAC,GAAG;YAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;QAEhE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,IAAI,CAAC;QACtB,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,eAAe,CAC3C;YACE,YAAY,EAAE;gBACZ,CAAC,EAAE,QAAQ;gBACX,CAAC,EAAE,QAAQ;aACZ;SACF,EACD,EAAE,CAAC,EAAE,CAAC,EAAE,CACT,CAAC;QACF,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,IAAI,IAAI,KAAK,oBAAQ,CAAC,GAAG;YAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;QAEhE,MAAM,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,IAAI,CAAC;QAChC,MAAM,kBAAkB,GAAiB,CAAC,CAAC,EAAE,CAAC,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;QACvE,MAAM,QAAQ,GAAG,IAAI,CAAC,uBAAuB,CAAC,kBAAkB,CAC9D,gBAAgB,CAAC,IAAI,EACrB,kBAAkB,CACnB,CAAC;QAEF,OAAO,IAAI,CAAC,qCAAqC,CAC/C,QAAQ,EACR,SAAS,EACT,SAAS,EACT,UAAU,EACV,QAAQ,EACR,QAAQ,CACT,CAAC;IACJ,CAAC;;AAjEH,0BAkEC;AA9DQ,eAAO,GAAG,CAAC,SAAS,CAAC,CAAC"}
@@ -0,0 +1,22 @@
1
+ import { Solidly } from '../solidly';
2
+ import { SolidlyPair } from '../types';
3
+ import { Network } from '../../../constants';
4
+ import { IDexHelper } from '../../../dex-helper';
5
+ export declare class Cone extends Solidly {
6
+ protected network: Network;
7
+ protected dexHelper: IDexHelper;
8
+ feeFactor: number;
9
+ static dexKeysWithNetwork: {
10
+ key: string;
11
+ networks: Network[];
12
+ }[];
13
+ constructor(network: Network, dexKey: string, dexHelper: IDexHelper);
14
+ private callDecoder;
15
+ protected getFeesMultiCallData(pair: SolidlyPair): {
16
+ callEntry: {
17
+ target: string;
18
+ callData: string;
19
+ };
20
+ callDecoder: (values: any[]) => number;
21
+ };
22
+ }
@@ -0,0 +1,53 @@
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.Cone = void 0;
7
+ const solidly_1 = require("../solidly");
8
+ const abi_1 = require("@ethersproject/abi");
9
+ const config_1 = require("../config");
10
+ const utils_1 = require("../../../utils");
11
+ const lodash_1 = __importDefault(require("lodash"));
12
+ const swapFeeFunctionName = 'swapFee';
13
+ const ConePairABI = [
14
+ {
15
+ inputs: [],
16
+ name: swapFeeFunctionName,
17
+ outputs: [{ internalType: 'uint256', name: '', type: 'uint256' }],
18
+ stateMutability: 'view',
19
+ type: 'function',
20
+ },
21
+ ];
22
+ const conePairIface = new abi_1.Interface(ConePairABI);
23
+ class Cone extends solidly_1.Solidly {
24
+ constructor(network, dexKey, dexHelper) {
25
+ super(network, dexKey, dexHelper, true);
26
+ this.network = network;
27
+ this.dexHelper = dexHelper;
28
+ this.feeFactor = 1e4;
29
+ }
30
+ callDecoder(values) {
31
+ const fees = parseInt(conePairIface
32
+ .decodeFunctionResult(swapFeeFunctionName, values)[0]
33
+ .toString());
34
+ if (!fees)
35
+ return 0;
36
+ // noinspection UnnecessaryLocalVariableJS
37
+ const feeCode = Math.ceil(this.feeFactor / fees);
38
+ return feeCode;
39
+ }
40
+ getFeesMultiCallData(pair) {
41
+ const callEntry = {
42
+ target: pair.exchange,
43
+ callData: conePairIface.encodeFunctionData(swapFeeFunctionName, []),
44
+ };
45
+ return {
46
+ callEntry,
47
+ callDecoder: this.callDecoder.bind(this),
48
+ };
49
+ }
50
+ }
51
+ exports.Cone = Cone;
52
+ Cone.dexKeysWithNetwork = (0, utils_1.getDexKeysWithNetwork)(lodash_1.default.pick(config_1.SolidlyConfig, ['Cone']));
53
+ //# sourceMappingURL=cone.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cone.js","sourceRoot":"","sources":["../../../../src/dex/solidly/forks-override/cone.ts"],"names":[],"mappings":";;;;;;AAAA,wCAAqC;AAIrC,4CAA+C;AAC/C,sCAA0C;AAC1C,0CAAuD;AACvD,oDAAuB;AAEvB,MAAM,mBAAmB,GAAG,SAAS,CAAC;AAEtC,MAAM,WAAW,GAAG;IAClB;QACE,MAAM,EAAE,EAAE;QACV,IAAI,EAAE,mBAAmB;QACzB,OAAO,EAAE,CAAC,EAAE,YAAY,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QACjE,eAAe,EAAE,MAAM;QACvB,IAAI,EAAE,UAAU;KACjB;CACF,CAAC;AAEF,MAAM,aAAa,GAAG,IAAI,eAAS,CAAC,WAAW,CAAC,CAAC;AAEjD,MAAa,IAAK,SAAQ,iBAAO;IAM/B,YACY,OAAgB,EAC1B,MAAc,EACJ,SAAqB;QAE/B,KAAK,CACH,OAAO,EACP,MAAM,EACN,SAAS,EACT,IAAI,CACL,CAAC;QATQ,YAAO,GAAP,OAAO,CAAS;QAEhB,cAAS,GAAT,SAAS,CAAY;QARjC,cAAS,GAAG,GAAG,CAAC;IAgBhB,CAAC;IAEO,WAAW,CAAC,MAAa;QAC/B,MAAM,IAAI,GAAG,QAAQ,CACnB,aAAa;aACV,oBAAoB,CAAC,mBAAmB,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;aACpD,QAAQ,EAAE,CACd,CAAC;QACF,IAAI,CAAC,IAAI;YAAE,OAAO,CAAC,CAAC;QAEpB,0CAA0C;QAC1C,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC;QACjD,OAAO,OAAO,CAAC;IACjB,CAAC;IAES,oBAAoB,CAAC,IAAiB;QAC9C,MAAM,SAAS,GAAG;YAChB,MAAM,EAAE,IAAI,CAAC,QAAS;YACtB,QAAQ,EAAE,aAAa,CAAC,kBAAkB,CAAC,mBAAmB,EAAE,EAAE,CAAC;SACpE,CAAC;QAEF,OAAO;YACL,SAAS;YACT,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC;SACzC,CAAC;IACJ,CAAC;;AA1CH,oBA2CC;AAxCe,uBAAkB,GAC9B,IAAA,6BAAqB,EAAC,gBAAC,CAAC,IAAI,CAAC,sBAAa,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { Velodrome } from './velodrome';
2
+ import { Network } from '../../../constants';
3
+ export declare class SoliSnek extends Velodrome {
4
+ static dexKeysWithNetwork: {
5
+ key: string;
6
+ networks: Network[];
7
+ }[];
8
+ }
@@ -0,0 +1,15 @@
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.SoliSnek = void 0;
7
+ const velodrome_1 = require("./velodrome");
8
+ const utils_1 = require("../../../utils");
9
+ const config_1 = require("../config");
10
+ const lodash_1 = __importDefault(require("lodash"));
11
+ class SoliSnek extends velodrome_1.Velodrome {
12
+ }
13
+ exports.SoliSnek = SoliSnek;
14
+ SoliSnek.dexKeysWithNetwork = (0, utils_1.getDexKeysWithNetwork)(lodash_1.default.pick(config_1.SolidlyConfig, ['SoliSnek']));
15
+ //# sourceMappingURL=solisnek.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"solisnek.js","sourceRoot":"","sources":["../../../../src/dex/solidly/forks-override/solisnek.ts"],"names":[],"mappings":";;;;;;AAAA,2CAAwC;AAExC,0CAAuD;AACvD,sCAA0C;AAC1C,oDAAuB;AAEvB,MAAa,QAAS,SAAQ,qBAAS;;AAAvC,4BAGC;AAFe,2BAAkB,GAC9B,IAAA,6BAAqB,EAAC,gBAAC,CAAC,IAAI,CAAC,sBAAa,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC"}
@@ -0,0 +1,28 @@
1
+ import { Interface } from '@ethersproject/abi';
2
+ import { SwapSide } from '../constants';
3
+ import { AdapterExchangeParam, NumberAsString, SimpleExchangeParam } from '../types';
4
+ import { IDexTxBuilder } from './idex';
5
+ import { SimpleExchange } from './simple-exchange';
6
+ import { IDexHelper } from '../dex-helper';
7
+ declare type StablePoolData = {
8
+ exchange: string;
9
+ i: string;
10
+ j: string;
11
+ deadline: string;
12
+ };
13
+ declare type StablePoolParam = [
14
+ i: NumberAsString,
15
+ j: NumberAsString,
16
+ dx: NumberAsString,
17
+ min_dy: NumberAsString,
18
+ deadline?: string
19
+ ];
20
+ export declare class StablePool extends SimpleExchange implements IDexTxBuilder<StablePoolData, StablePoolParam> {
21
+ static dexKeys: string[];
22
+ exchangeRouterInterface: Interface;
23
+ minConversionRate: string;
24
+ constructor(dexHelper: IDexHelper);
25
+ getAdapterParam(srcToken: string, destToken: string, srcAmount: string, destAmount: string, data: StablePoolData, side: SwapSide): AdapterExchangeParam;
26
+ getSimpleParam(srcToken: string, destToken: string, srcAmount: string, destAmount: string, data: StablePoolData, side: SwapSide): Promise<SimpleExchangeParam>;
27
+ }
28
+ export {};
@@ -0,0 +1,62 @@
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.StablePool = 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 StablePool_json_1 = __importDefault(require("../abi/StablePool.json"));
11
+ var StabePoolFunctions;
12
+ (function (StabePoolFunctions) {
13
+ StabePoolFunctions["swap"] = "swap";
14
+ })(StabePoolFunctions || (StabePoolFunctions = {}));
15
+ class StablePool extends simple_exchange_1.SimpleExchange {
16
+ constructor(dexHelper) {
17
+ super(dexHelper, 'stablePool');
18
+ this.minConversionRate = '1';
19
+ this.exchangeRouterInterface = new abi_1.Interface(StablePool_json_1.default);
20
+ }
21
+ getAdapterParam(srcToken, destToken, srcAmount, destAmount, data, side) {
22
+ if (side === constants_1.SwapSide.BUY)
23
+ throw new Error(`Buy not supported`);
24
+ const { i, j, deadline } = data;
25
+ const payload = this.abiCoder.encodeParameter({
26
+ ParentStruct: {
27
+ i: 'int128',
28
+ j: 'int128',
29
+ deadline: 'uint256',
30
+ },
31
+ }, { i, j, deadline });
32
+ return {
33
+ targetExchange: data.exchange,
34
+ payload,
35
+ networkFee: '0',
36
+ };
37
+ }
38
+ async getSimpleParam(srcToken, destToken, srcAmount, destAmount, data, side) {
39
+ if (side === constants_1.SwapSide.BUY)
40
+ throw new Error(`Buy not supported`);
41
+ const { exchange, i, j, deadline } = data;
42
+ const swapFunctionParams = [
43
+ i,
44
+ j,
45
+ srcAmount,
46
+ this.minConversionRate,
47
+ deadline,
48
+ ];
49
+ const swapData = this.exchangeRouterInterface.encodeFunctionData(StabePoolFunctions.swap, swapFunctionParams);
50
+ return this.buildSimpleParamWithoutWETHConversion(srcToken, srcAmount, destToken, destAmount, swapData, exchange);
51
+ }
52
+ }
53
+ exports.StablePool = StablePool;
54
+ StablePool.dexKeys = [
55
+ 'nerve',
56
+ 'saddle',
57
+ 'ironv2',
58
+ 'snowball',
59
+ 'axial',
60
+ 'zyberswapstable',
61
+ ];
62
+ //# sourceMappingURL=stable-pool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stable-pool.js","sourceRoot":"","sources":["../../src/dex/stable-pool.ts"],"names":[],"mappings":";;;;;;AAAA,4CAA+C;AAE/C,4CAAwC;AAQxC,uDAAmD;AACnD,6EAAmD;AAmBnD,IAAK,kBAEJ;AAFD,WAAK,kBAAkB;IACrB,mCAAa,CAAA;AACf,CAAC,EAFI,kBAAkB,KAAlB,kBAAkB,QAEtB;AAED,MAAa,UACX,SAAQ,gCAAc;IActB,YAAY,SAAqB;QAC/B,KAAK,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;QAHjC,sBAAiB,GAAG,GAAG,CAAC;QAItB,IAAI,CAAC,uBAAuB,GAAG,IAAI,eAAS,CAAC,yBAAa,CAAC,CAAC;IAC9D,CAAC;IAED,eAAe,CACb,QAAgB,EAChB,SAAiB,EACjB,SAAiB,EACjB,UAAkB,EAClB,IAAoB,EACpB,IAAc;QAEd,IAAI,IAAI,KAAK,oBAAQ,CAAC,GAAG;YAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;QAEhE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;QAChC,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,eAAe,CAC3C;YACE,YAAY,EAAE;gBACZ,CAAC,EAAE,QAAQ;gBACX,CAAC,EAAE,QAAQ;gBACX,QAAQ,EAAE,SAAS;aACpB;SACF,EACD,EAAE,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,CACnB,CAAC;QACF,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,IAAoB,EACpB,IAAc;QAEd,IAAI,IAAI,KAAK,oBAAQ,CAAC,GAAG;YAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;QAEhE,MAAM,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;QAC1C,MAAM,kBAAkB,GAAoB;YAC1C,CAAC;YACD,CAAC;YACD,SAAS;YACT,IAAI,CAAC,iBAAiB;YACtB,QAAQ;SACT,CAAC;QACF,MAAM,QAAQ,GAAG,IAAI,CAAC,uBAAuB,CAAC,kBAAkB,CAC9D,kBAAkB,CAAC,IAAI,EACvB,kBAAkB,CACnB,CAAC;QAEF,OAAO,IAAI,CAAC,qCAAqC,CAC/C,QAAQ,EACR,SAAS,EACT,SAAS,EACT,UAAU,EACV,QAAQ,EACR,QAAQ,CACT,CAAC;IACJ,CAAC;;AA/EH,gCAgFC;AA5EQ,kBAAO,GAAG;IACf,OAAO;IACP,QAAQ;IACR,QAAQ;IACR,UAAU;IACV,OAAO;IACP,iBAAiB;CAClB,CAAC"}
@@ -0,0 +1,17 @@
1
+ import { DexParams } from './types';
2
+ import { DexConfigMap } from '../../types';
3
+ export declare const MAX_GAS_COST_ESTIMATION: number;
4
+ export declare const SUBGRAPH_TIMEOUT: number;
5
+ export declare const MAX_POOL_CNT = 1000;
6
+ export declare const POOL_CACHE_TTL: number;
7
+ export declare const RECCURING_POOL_FETCH_INTERVAL_MS: number;
8
+ export declare const SwaapV1Config: DexConfigMap<DexParams>;
9
+ export declare const Adapters: {
10
+ [chainId: number]: {
11
+ [side: string]: {
12
+ name: string;
13
+ index: number;
14
+ }[] | null;
15
+ };
16
+ };
17
+ export declare const SUBGRAPH_FETCH_ALL_POOOLS_RQ = "query ($count: Int) {\n pools: pools(first: $count, orderBy: liquidity, orderDirection: desc, where: {finalized: true}) {\n id\n tokens {\n address\n decimals\n oracleInitialState {\n proxy\n price: fixedPointPrice\n decimals\n }\n }\n liquidityUSD: liquidity\n swapFee\n dynamicCoverageFeesZ\n dynamicCoverageFeesHorizon\n priceStatisticsLookbackInSec\n priceStatisticsLookbackInRound\n priceStatisticsLookbackStepInRound\n maxPriceUnpegRatio\n }\n}";
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SUBGRAPH_FETCH_ALL_POOOLS_RQ = exports.Adapters = exports.SwaapV1Config = exports.RECCURING_POOL_FETCH_INTERVAL_MS = exports.POOL_CACHE_TTL = exports.MAX_POOL_CNT = exports.SUBGRAPH_TIMEOUT = exports.MAX_GAS_COST_ESTIMATION = void 0;
4
+ const constants_1 = require("../../constants");
5
+ exports.MAX_GAS_COST_ESTIMATION = 375 * 1000;
6
+ exports.SUBGRAPH_TIMEOUT = 1000 * 10;
7
+ exports.MAX_POOL_CNT = 1000;
8
+ exports.POOL_CACHE_TTL = 60 * 60; // 1hr
9
+ exports.RECCURING_POOL_FETCH_INTERVAL_MS = 12 * 3600 * 1000; // 12h (in ms)
10
+ exports.SwaapV1Config = {
11
+ SwaapV1: {
12
+ [constants_1.Network.POLYGON]: {
13
+ subgraphURL: 'https://api.thegraph.com/subgraphs/name/swaap-labs/swaapv1',
14
+ exchangeProxy: '0x718cc95685a0b0af73c2c8534243039a28687037',
15
+ },
16
+ },
17
+ };
18
+ exports.Adapters = {
19
+ [constants_1.Network.POLYGON]: {
20
+ [constants_1.SwapSide.SELL]: [
21
+ {
22
+ name: 'PolygonAdapter02',
23
+ index: 6,
24
+ },
25
+ ],
26
+ [constants_1.SwapSide.BUY]: [
27
+ {
28
+ name: 'PolygonBuyAdapter',
29
+ index: 4,
30
+ },
31
+ ],
32
+ },
33
+ };
34
+ exports.SUBGRAPH_FETCH_ALL_POOOLS_RQ = `query ($count: Int) {
35
+ pools: pools(first: $count, orderBy: liquidity, orderDirection: desc, where: {finalized: true}) {
36
+ id
37
+ tokens {
38
+ address
39
+ decimals
40
+ oracleInitialState {
41
+ proxy
42
+ price: fixedPointPrice
43
+ decimals
44
+ }
45
+ }
46
+ liquidityUSD: liquidity
47
+ swapFee
48
+ dynamicCoverageFeesZ
49
+ dynamicCoverageFeesHorizon
50
+ priceStatisticsLookbackInSec
51
+ priceStatisticsLookbackInRound
52
+ priceStatisticsLookbackStepInRound
53
+ maxPriceUnpegRatio
54
+ }
55
+ }`;
56
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/dex/swaap-v1/config.ts"],"names":[],"mappings":";;;AAEA,+CAAoD;AAEvC,QAAA,uBAAuB,GAAG,GAAG,GAAG,IAAI,CAAC;AACrC,QAAA,gBAAgB,GAAG,IAAI,GAAG,EAAE,CAAC;AAC7B,QAAA,YAAY,GAAG,IAAI,CAAC;AACpB,QAAA,cAAc,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,MAAM;AAChC,QAAA,gCAAgC,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,cAAc;AAEnE,QAAA,aAAa,GAA4B;IACpD,OAAO,EAAE;QACP,CAAC,mBAAO,CAAC,OAAO,CAAC,EAAE;YACjB,WAAW,EAAE,4DAA4D;YACzE,aAAa,EAAE,4CAA4C;SAC5D;KACF;CACF,CAAC;AAEW,QAAA,QAAQ,GAIjB;IACF,CAAC,mBAAO,CAAC,OAAO,CAAC,EAAE;QACjB,CAAC,oBAAQ,CAAC,IAAI,CAAC,EAAE;YACf;gBACE,IAAI,EAAE,kBAAkB;gBACxB,KAAK,EAAE,CAAC;aACT;SACF;QACD,CAAC,oBAAQ,CAAC,GAAG,CAAC,EAAE;YACd;gBACE,IAAI,EAAE,mBAAmB;gBACzB,KAAK,EAAE,CAAC;aACT;SACF;KACF;CACF,CAAC;AAEW,QAAA,4BAA4B,GAAG;;;;;;;;;;;;;;;;;;;;;EAqB1C,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { BigNumber } from '@0x/utils';
2
+ import { SwaapV1PoolParameters, SwaapV1PoolLiquidities, SwaapV1PoolOracles } from './types';
3
+ export declare const defaultParametersState: SwaapV1PoolParameters;
4
+ export declare const defaultLiquiditiesState: SwaapV1PoolLiquidities;
5
+ export declare const defaultOraclesState: SwaapV1PoolOracles;
6
+ export declare const protocolPrecision: BigNumber;
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.protocolPrecision = exports.defaultOraclesState = exports.defaultLiquiditiesState = exports.defaultParametersState = void 0;
4
+ const utils_1 = require("@0x/utils");
5
+ exports.defaultParametersState = {
6
+ swapFee: BigInt(10 ** 12),
7
+ priceStatisticsLookbackInRound: 5,
8
+ priceStatisticsLookbackStepInRound: 4,
9
+ dynamicCoverageFeesZ: BigInt(6),
10
+ dynamicCoverageFeesHorizon: BigInt(5),
11
+ priceStatisticsLookbackInSec: BigInt(3600),
12
+ maxPriceUnpegRatio: BigInt(1025000000000000000),
13
+ };
14
+ exports.defaultLiquiditiesState = {};
15
+ exports.defaultOraclesState = {};
16
+ exports.protocolPrecision = new utils_1.BigNumber(10).pow(new utils_1.BigNumber(18));
17
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/dex/swaap-v1/constants.ts"],"names":[],"mappings":";;;AAAA,qCAAsC;AAOzB,QAAA,sBAAsB,GAA0B;IAC3D,OAAO,EAAE,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC;IACzB,8BAA8B,EAAE,CAAC;IACjC,kCAAkC,EAAE,CAAC;IACrC,oBAAoB,EAAE,MAAM,CAAC,CAAC,CAAC;IAC/B,0BAA0B,EAAE,MAAM,CAAC,CAAC,CAAC;IACrC,4BAA4B,EAAE,MAAM,CAAC,IAAI,CAAC;IAC1C,kBAAkB,EAAE,MAAM,CAAC,mBAAmB,CAAC;CAChD,CAAC;AAEW,QAAA,uBAAuB,GAA2B,EAAE,CAAC;AAErD,QAAA,mBAAmB,GAAuB,EAAE,CAAC;AAE7C,QAAA,iBAAiB,GAAG,IAAI,iBAAS,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,iBAAS,CAAC,EAAE,CAAC,CAAC,CAAC"}
@@ -0,0 +1,25 @@
1
+ import * as Struct from './Struct';
2
+ import { ChainLinkData } from '../types';
3
+ export declare class ChainlinkUtils {
4
+ static getLatestRound(latestRoundId: number, historicalPrices: ChainLinkData, currentTimestamp: bigint): Struct.LatestRound;
5
+ /**
6
+ * @notice Retrieves historical data from round id.
7
+ * @dev Special cases:
8
+ * - if retrieved price is negative --> fails
9
+ * - if no data can be found --> returns (0,0)
10
+ * @param oracle The price feed oracle
11
+ * @param _roundId The the round of interest ID
12
+ * @return The round price
13
+ * @return The round timestamp
14
+ */
15
+ static getRoundData(_roundId: number, historicalPrices: ChainLinkData): [bigint, bigint];
16
+ /**
17
+ * @notice Computes the price of token 2 in terms of token 1
18
+ * @param price_1 The latest price data for token 1
19
+ * @param decimals_1 The sum of the decimals of token 1 its oracle
20
+ * @param price_2 The latest price data for token 2
21
+ * @param decimals_2 The sum of the decimals of token 2 its oracle
22
+ * @return The last price of token 2 divded by the last price of token 1
23
+ */
24
+ static getTokenRelativePrice(price_1: bigint, decimals_1: bigint, price_2: bigint, decimals_2: bigint): bigint;
25
+ }
@@ -0,0 +1,62 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ChainlinkUtils = void 0;
4
+ const Const_1 = require("./Const");
5
+ const Num_1 = require("./Num");
6
+ const _require = (b, message) => {
7
+ if (!b)
8
+ throw new Error(message);
9
+ };
10
+ class ChainlinkUtils {
11
+ static getLatestRound(latestRoundId, historicalPrices, currentTimestamp) {
12
+ let latestRoundData = historicalPrices[latestRoundId];
13
+ let latestPrice = latestRoundData.answer;
14
+ let latestTimestamp = latestRoundData.timestamp;
15
+ _require(currentTimestamp - latestTimestamp <= Const_1.Const.ORACLE_TIMEOUT, 'Err.EXCEEDED_ORACLE_TIMEOUT');
16
+ _require(latestPrice > 0, 'Err.NON_POSITIVE_PRICE');
17
+ return {
18
+ roundId: latestRoundId,
19
+ price: latestPrice,
20
+ timestamp: latestTimestamp,
21
+ };
22
+ }
23
+ /**
24
+ * @notice Retrieves historical data from round id.
25
+ * @dev Special cases:
26
+ * - if retrieved price is negative --> fails
27
+ * - if no data can be found --> returns (0,0)
28
+ * @param oracle The price feed oracle
29
+ * @param _roundId The the round of interest ID
30
+ * @return The round price
31
+ * @return The round timestamp
32
+ */
33
+ static getRoundData(_roundId, historicalPrices) {
34
+ let data = historicalPrices[_roundId];
35
+ _require(data != undefined, 'Err.UNAVAILABLE_HISTORICAL_PRICE');
36
+ _require(data.answer >= 0, 'Err.NEGATIVE_PRICE');
37
+ return [data.answer, data.timestamp];
38
+ }
39
+ /**
40
+ * @notice Computes the price of token 2 in terms of token 1
41
+ * @param price_1 The latest price data for token 1
42
+ * @param decimals_1 The sum of the decimals of token 1 its oracle
43
+ * @param price_2 The latest price data for token 2
44
+ * @param decimals_2 The sum of the decimals of token 2 its oracle
45
+ * @return The last price of token 2 divded by the last price of token 1
46
+ */
47
+ static getTokenRelativePrice(price_1, decimals_1, price_2, decimals_2) {
48
+ // we consider tokens price to be > 0
49
+ if (decimals_1 > decimals_2) {
50
+ return Num_1.Num.div(Num_1.Num.mul(price_2, 10n ** (decimals_1 - decimals_2) * Const_1.Const.ONE), price_1);
51
+ }
52
+ else if (decimals_1 < decimals_2) {
53
+ return Num_1.Num.div(Num_1.Num.div(price_2, price_1), 10n ** (decimals_2 - decimals_1) * Const_1.Const.ONE);
54
+ }
55
+ else {
56
+ // decimals_1 == decimals_2
57
+ return Num_1.Num.div(price_2, price_1);
58
+ }
59
+ }
60
+ }
61
+ exports.ChainlinkUtils = ChainlinkUtils;
62
+ //# sourceMappingURL=ChainlinkUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChainlinkUtils.js","sourceRoot":"","sources":["../../../../src/dex/swaap-v1/libraries/ChainlinkUtils.ts"],"names":[],"mappings":";;;AAAA,mCAAgC;AAChC,+BAA4B;AAI5B,MAAM,QAAQ,GAAG,CAAC,CAAU,EAAE,OAAe,EAAE,EAAE;IAC/C,IAAI,CAAC,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;AACnC,CAAC,CAAC;AAEF,MAAa,cAAc;IACzB,MAAM,CAAC,cAAc,CACnB,aAAqB,EACrB,gBAA+B,EAC/B,gBAAwB;QAExB,IAAI,eAAe,GAAG,gBAAgB,CAAC,aAAa,CAAC,CAAC;QAEtD,IAAI,WAAW,GAAG,eAAe,CAAC,MAAM,CAAC;QACzC,IAAI,eAAe,GAAG,eAAe,CAAC,SAAS,CAAC;QAEhD,QAAQ,CACN,gBAAgB,GAAG,eAAe,IAAI,aAAK,CAAC,cAAc,EAC1D,6BAA6B,CAC9B,CAAC;QACF,QAAQ,CAAC,WAAW,GAAG,CAAC,EAAE,wBAAwB,CAAC,CAAC;QAEpD,OAAO;YACL,OAAO,EAAE,aAAa;YACtB,KAAK,EAAE,WAAW;YAClB,SAAS,EAAE,eAAe;SAC3B,CAAC;IACJ,CAAC;IAED;;;;;;;;;OASG;IACH,MAAM,CAAC,YAAY,CACjB,QAAgB,EAChB,gBAA+B;QAE/B,IAAI,IAAI,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QAEtC,QAAQ,CAAC,IAAI,IAAI,SAAS,EAAE,kCAAkC,CAAC,CAAC;QAChE,QAAQ,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,EAAE,oBAAoB,CAAC,CAAC;QAEjD,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IACvC,CAAC;IAED;;;;;;;OAOG;IACH,MAAM,CAAC,qBAAqB,CAC1B,OAAe,EACf,UAAkB,EAClB,OAAe,EACf,UAAkB;QAElB,qCAAqC;QACrC,IAAI,UAAU,GAAG,UAAU,EAAE;YAC3B,OAAO,SAAG,CAAC,GAAG,CACZ,SAAG,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,GAAG,aAAK,CAAC,GAAG,CAAC,EAC9D,OAAO,CACR,CAAC;SACH;aAAM,IAAI,UAAU,GAAG,UAAU,EAAE;YAClC,OAAO,SAAG,CAAC,GAAG,CACZ,SAAG,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,EACzB,GAAG,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,GAAG,aAAK,CAAC,GAAG,CAC7C,CAAC;SACH;aAAM;YACL,2BAA2B;YAC3B,OAAO,SAAG,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;SAClC;IACH,CAAC;CAmEF;AA9ID,wCA8IC"}
@@ -0,0 +1,18 @@
1
+ export declare class Const {
2
+ static ONE: bigint;
3
+ static MIN_POW_BASE: bigint;
4
+ static MAX_POW_BASE: bigint;
5
+ static POW_PRECISION: bigint;
6
+ static ORACLE_TIMEOUT: bigint;
7
+ static MIN_FEE: bigint;
8
+ static EXIT_FEE: bigint;
9
+ static BASE_Z: bigint;
10
+ static BASE_HORIZON: bigint;
11
+ static BASE_LOOKBACK_IN_ROUND: number;
12
+ static BASE_LOOKBACK_IN_SEC: bigint;
13
+ static LOOKBACK_STEP_IN_ROUND: number;
14
+ static MAX_IN_RATIO: bigint;
15
+ static MAX_OUT_RATIO: bigint;
16
+ static FALLBACK_SPREAD: bigint;
17
+ static BASE_MAX_PRICE_UNPEG_RATIO: bigint;
18
+ }
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ var _a;
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.Const = void 0;
5
+ const bigint_constants_1 = require("../../../bigint-constants");
6
+ class Const {
7
+ }
8
+ exports.Const = Const;
9
+ _a = Const;
10
+ Const.ONE = bigint_constants_1.BI_POWS[18];
11
+ Const.MIN_POW_BASE = 1n;
12
+ Const.MAX_POW_BASE = 2n * _a.ONE - 1n;
13
+ Const.POW_PRECISION = _a.ONE / 10n ** 10n;
14
+ Const.ORACLE_TIMEOUT = 2n * 60n;
15
+ Const.MIN_FEE = _a.ONE / 10n ** 6n;
16
+ Const.EXIT_FEE = 0n;
17
+ Const.BASE_Z = 6n * _a.ONE;
18
+ Const.BASE_HORIZON = 5n * _a.ONE;
19
+ Const.BASE_LOOKBACK_IN_ROUND = 5;
20
+ Const.BASE_LOOKBACK_IN_SEC = 3600n;
21
+ Const.LOOKBACK_STEP_IN_ROUND = 4;
22
+ Const.MAX_IN_RATIO = _a.ONE / 2n;
23
+ Const.MAX_OUT_RATIO = _a.ONE / 3n + 1n;
24
+ Const.FALLBACK_SPREAD = (3n * _a.ONE) / 1000n;
25
+ Const.BASE_MAX_PRICE_UNPEG_RATIO = _a.ONE + _a.ONE / 40n;
26
+ //# sourceMappingURL=Const.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Const.js","sourceRoot":"","sources":["../../../../src/dex/swaap-v1/libraries/Const.ts"],"names":[],"mappings":";;;;AAAA,gEAAoD;AAEpD,MAAa,KAAK;;AAAlB,sBA0BC;;AAzBQ,SAAG,GAAG,0BAAO,CAAC,EAAE,CAAC,CAAC;AAElB,kBAAY,GAAG,EAAE,CAAC;AAClB,kBAAY,GAAG,EAAE,GAAG,EAAI,CAAC,GAAG,GAAG,EAAE,CAAC;AAElC,mBAAa,GAAG,EAAI,CAAC,GAAG,GAAG,GAAG,IAAI,GAAG,CAAC;AAEtC,oBAAc,GAAG,EAAE,GAAG,GAAG,CAAC;AAE1B,aAAO,GAAG,EAAI,CAAC,GAAG,GAAG,GAAG,IAAI,EAAE,CAAC;AAC/B,cAAQ,GAAG,EAAE,CAAC;AAEd,YAAM,GAAG,EAAE,GAAG,EAAI,CAAC,GAAG,CAAC;AACvB,kBAAY,GAAG,EAAE,GAAG,EAAI,CAAC,GAAG,CAAC;AAE7B,4BAAsB,GAAG,CAAC,CAAC;AAC3B,0BAAoB,GAAG,KAAK,CAAC;AAC7B,4BAAsB,GAAG,CAAC,CAAC;AAE3B,kBAAY,GAAG,EAAI,CAAC,GAAG,GAAG,EAAE,CAAC;AAC7B,mBAAa,GAAG,EAAI,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,CAAC;AAEnC,qBAAe,GAAG,CAAC,EAAE,GAAG,EAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAE1C,gCAA0B,GAAG,EAAI,CAAC,GAAG,GAAG,EAAI,CAAC,GAAG,GAAG,GAAG,CAAC"}
@@ -0,0 +1,77 @@
1
+ import * as Struct from './Struct';
2
+ import { ChainLinkData } from '../types';
3
+ export declare class GeometricBrownianMotion {
4
+ /**
5
+ * @notice Gets asset-pair approximate historical return's mean and variance
6
+ * @param latestRoundIn The round-to-start-from's data including its ID of tokenIn
7
+ * @param latestRoundOut The round-to-start-from's data including its ID of tokenOut
8
+ * @param hpParameters The parameters for historical prices retrieval
9
+ * @return gbmEstimation The asset-pair historical return's mean and variance
10
+ */
11
+ static getParametersEstimation(latestRoundIn: Struct.LatestRound, latestRoundOut: Struct.LatestRound, hpParameters: Struct.HistoricalPricesParameters, historicalOracleStateIn: ChainLinkData, historicalOracleStateOut: ChainLinkData): Struct.GBMEstimation;
12
+ /**
13
+ * @notice Gets asset-pair historical data return's mean and variance
14
+ * @param noMoreDataPoints True if and only if the retrieved data span over the whole time window of interest
15
+ * @param hpDataIn Historical prices data of tokenIn
16
+ * @param hpDataOut Historical prices data of tokenOut
17
+ * @param hpParameters The parameters for historical prices retrieval
18
+ * @return gbmEstimation The asset-pair historical return's mean and variance
19
+ */
20
+ static _getParametersEstimation(noMoreDataPoints: boolean, hpDataIn: Struct.HistoricalPricesData, hpDataOut: Struct.HistoricalPricesData, hpParameters: Struct.HistoricalPricesParameters): Struct.GBMEstimation;
21
+ /**
22
+ * @notice Gets asset-pair historical prices with timestamps
23
+ * @param pricesIn The historical prices of tokenIn
24
+ * @param timestampsIn The timestamps corresponding to the tokenIn's historical prices
25
+ * @param startIndexIn The tokenIn historical data's last valid index
26
+ * @param pricesOut The tokenIn historical data's last valid index
27
+ * @param timestampsOut The timestamps corresponding to the tokenOut's historical prices
28
+ * @param startIndexOut The tokenOut historical data's last valid index
29
+ * @return values The asset-pair historical prices array
30
+ * @return timestamps The asset-pair historical timestamps array
31
+ */
32
+ static getSeries(pricesIn: bigint[], timestampsIn: bigint[], startIndexIn: number, pricesOut: bigint[], timestampsOut: bigint[], startIndexOut: number): [bigint[], bigint[]];
33
+ /**
34
+ * @notice Gets asset-pair historical mean/variance from timestamped data
35
+ * @param values The historical values
36
+ * @param timestamps The corresponding time deltas, in seconds
37
+ * @return mean The asset-pair historical return's mean
38
+ * @return variance asset-pair historical return's variance
39
+ */
40
+ static getStatistics(values: bigint[], timestamps: bigint[]): [bigint, bigint];
41
+ /**
42
+ * @notice Gets historical prices from a Chainlink data feed
43
+ * @dev Few specificities:
44
+ * - it filters out round data with null price or timestamp
45
+ * - it stops filling the prices/timestamps when:
46
+ * a) hpParameters.lookbackInRound rounds have already been found
47
+ * b) time window induced by hpParameters.lookbackInSec is no more satisfied
48
+ * @param latestRound The round-to-start-from's data including its ID
49
+ * @param hpParameters The parameters for historical prices retrieval
50
+ * @return historicalPrices The historical prices of a token
51
+ * @return historicalTimestamps The timestamps of the reported prices
52
+ * @return index The last valid index of the returned arrays
53
+ * @return noMoreDataPoints True if the reported historical prices reaches the lookback time limit
54
+ */
55
+ static getHistoricalPrices(latestRound: Struct.LatestRound, hpParameters: Struct.HistoricalPricesParameters, historicalOracleState: ChainLinkData): [bigint[], bigint[], number, boolean];
56
+ /**
57
+ * @notice Finds the next data point in chronological order
58
+ * @dev Few considerations:
59
+ * - data point with same timestamp as previous point are tagged with a 'skip=true'
60
+ * - when we reach the last point of a token, we consider it's value constant going forward with the other token
61
+ * As a result the variance of those returns will be underestimated.
62
+ * @param startIndexIn The tokenIn historical data's last valid index
63
+ * @param startIndexOut The tokenOut historical data's last valid index
64
+ * @param timestampsIn The timestamps corresponding to the tokenIn's historical prices
65
+ * @param timestampsOut The timestamps corresponding to the tokenOut's historical prices
66
+ * @return skip The 'skip' tag
67
+ * @return startIndexIn The updated startIndexIn
68
+ * @return startIndexOut The updated startIndexOut
69
+ */
70
+ static getNextSample(startIndexIn: number, startIndexOut: number, timestampsIn: bigint[], timestampsOut: bigint[]): [boolean, number, number];
71
+ /**
72
+ * @notice Consolidate the last valid indexes of tokenIn and tokenOut
73
+ * @param hpDataIn Historical prices data of tokenIn
74
+ * @param hpDataOut Historical prices data of tokenOut
75
+ */
76
+ static consolidateStartIndices(hpDataIn: Struct.HistoricalPricesData, hpDataOut: Struct.HistoricalPricesData): void;
77
+ }