v-swap-smart-order-router 3.10.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (414) hide show
  1. package/CHANGELOG.md +255 -0
  2. package/LICENSE +674 -0
  3. package/README.md +248 -0
  4. package/build/main/index.d.ts +3 -0
  5. package/build/main/index.js +20 -0
  6. package/build/main/providers/cache-node.d.ts +9 -0
  7. package/build/main/providers/cache-node.js +19 -0
  8. package/build/main/providers/cache.d.ts +13 -0
  9. package/build/main/providers/cache.js +3 -0
  10. package/build/main/providers/caching/route/index.d.ts +2 -0
  11. package/build/main/providers/caching/route/index.js +19 -0
  12. package/build/main/providers/caching/route/model/cache-mode.d.ts +16 -0
  13. package/build/main/providers/caching/route/model/cache-mode.js +21 -0
  14. package/build/main/providers/caching/route/model/cached-route.d.ts +26 -0
  15. package/build/main/providers/caching/route/model/cached-route.js +30 -0
  16. package/build/main/providers/caching/route/model/cached-routes.d.ts +63 -0
  17. package/build/main/providers/caching/route/model/cached-routes.js +73 -0
  18. package/build/main/providers/caching/route/model/index.d.ts +3 -0
  19. package/build/main/providers/caching/route/model/index.js +20 -0
  20. package/build/main/providers/caching/route/route-caching-provider.d.ts +91 -0
  21. package/build/main/providers/caching/route/route-caching-provider.js +65 -0
  22. package/build/main/providers/caching-gas-provider.d.ts +23 -0
  23. package/build/main/providers/caching-gas-provider.js +37 -0
  24. package/build/main/providers/caching-token-list-provider.d.ts +40 -0
  25. package/build/main/providers/caching-token-list-provider.js +123 -0
  26. package/build/main/providers/caching-token-provider.d.ts +25 -0
  27. package/build/main/providers/caching-token-provider.js +202 -0
  28. package/build/main/providers/eip-1559-gas-price-provider.d.ts +31 -0
  29. package/build/main/providers/eip-1559-gas-price-provider.js +66 -0
  30. package/build/main/providers/eth-estimate-gas-provider.d.ts +16 -0
  31. package/build/main/providers/eth-estimate-gas-provider.js +74 -0
  32. package/build/main/providers/eth-gas-station-info-gas-price-provider.d.ts +19 -0
  33. package/build/main/providers/eth-gas-station-info-gas-price-provider.js +37 -0
  34. package/build/main/providers/gas-price-provider.d.ts +10 -0
  35. package/build/main/providers/gas-price-provider.js +10 -0
  36. package/build/main/providers/index.d.ts +37 -0
  37. package/build/main/providers/index.js +54 -0
  38. package/build/main/providers/legacy-gas-price-provider.d.ts +7 -0
  39. package/build/main/providers/legacy-gas-price-provider.js +20 -0
  40. package/build/main/providers/multicall-provider.d.ts +82 -0
  41. package/build/main/providers/multicall-provider.js +15 -0
  42. package/build/main/providers/multicall-uniswap-provider.d.ts +37 -0
  43. package/build/main/providers/multicall-uniswap-provider.js +163 -0
  44. package/build/main/providers/on-chain-gas-price-provider.d.ts +19 -0
  45. package/build/main/providers/on-chain-gas-price-provider.js +38 -0
  46. package/build/main/providers/on-chain-quote-provider.d.ts +221 -0
  47. package/build/main/providers/on-chain-quote-provider.js +523 -0
  48. package/build/main/providers/provider.d.ts +10 -0
  49. package/build/main/providers/provider.js +3 -0
  50. package/build/main/providers/simulation-provider.d.ts +42 -0
  51. package/build/main/providers/simulation-provider.js +130 -0
  52. package/build/main/providers/static-gas-price-provider.d.ts +7 -0
  53. package/build/main/providers/static-gas-price-provider.js +13 -0
  54. package/build/main/providers/swap-router-provider.d.ts +31 -0
  55. package/build/main/providers/swap-router-provider.js +42 -0
  56. package/build/main/providers/tenderly-simulation-provider.d.ts +45 -0
  57. package/build/main/providers/tenderly-simulation-provider.js +254 -0
  58. package/build/main/providers/token-provider.d.ts +114 -0
  59. package/build/main/providers/token-provider.js +297 -0
  60. package/build/main/providers/token-validator-provider.d.ts +42 -0
  61. package/build/main/providers/token-validator-provider.js +95 -0
  62. package/build/main/providers/uri-subgraph-provider.d.ts +20 -0
  63. package/build/main/providers/uri-subgraph-provider.js +65 -0
  64. package/build/main/providers/v2/caching-pool-provider.d.ts +34 -0
  65. package/build/main/providers/v2/caching-pool-provider.js +88 -0
  66. package/build/main/providers/v2/caching-subgraph-provider.d.ts +23 -0
  67. package/build/main/providers/v2/caching-subgraph-provider.js +34 -0
  68. package/build/main/providers/v2/pool-provider.d.ts +60 -0
  69. package/build/main/providers/v2/pool-provider.js +110 -0
  70. package/build/main/providers/v2/quote-provider.d.ts +33 -0
  71. package/build/main/providers/v2/quote-provider.js +91 -0
  72. package/build/main/providers/v2/static-subgraph-provider.d.ts +20 -0
  73. package/build/main/providers/v2/static-subgraph-provider.js +103 -0
  74. package/build/main/providers/v2/subgraph-provider-with-fallback.d.ts +19 -0
  75. package/build/main/providers/v2/subgraph-provider-with-fallback.js +35 -0
  76. package/build/main/providers/v2/subgraph-provider.d.ts +34 -0
  77. package/build/main/providers/v2/subgraph-provider.js +135 -0
  78. package/build/main/providers/v2/uri-subgraph-provider.d.ts +4 -0
  79. package/build/main/providers/v2/uri-subgraph-provider.js +8 -0
  80. package/build/main/providers/v3/caching-pool-provider.d.ts +33 -0
  81. package/build/main/providers/v3/caching-pool-provider.js +77 -0
  82. package/build/main/providers/v3/caching-subgraph-provider.d.ts +23 -0
  83. package/build/main/providers/v3/caching-subgraph-provider.js +34 -0
  84. package/build/main/providers/v3/gas-data-provider.d.ts +57 -0
  85. package/build/main/providers/v3/gas-data-provider.js +66 -0
  86. package/build/main/providers/v3/pool-provider.d.ts +61 -0
  87. package/build/main/providers/v3/pool-provider.js +123 -0
  88. package/build/main/providers/v3/static-subgraph-provider.d.ts +21 -0
  89. package/build/main/providers/v3/static-subgraph-provider.js +203 -0
  90. package/build/main/providers/v3/subgraph-provider-with-fallback.d.ts +15 -0
  91. package/build/main/providers/v3/subgraph-provider-with-fallback.js +31 -0
  92. package/build/main/providers/v3/subgraph-provider.d.ts +37 -0
  93. package/build/main/providers/v3/subgraph-provider.js +145 -0
  94. package/build/main/providers/v3/uri-subgraph-provider.d.ts +4 -0
  95. package/build/main/providers/v3/uri-subgraph-provider.js +8 -0
  96. package/build/main/routers/alpha-router/alpha-router.d.ts +267 -0
  97. package/build/main/routers/alpha-router/alpha-router.js +825 -0
  98. package/build/main/routers/alpha-router/config.d.ts +4 -0
  99. package/build/main/routers/alpha-router/config.js +93 -0
  100. package/build/main/routers/alpha-router/entities/index.d.ts +1 -0
  101. package/build/main/routers/alpha-router/entities/index.js +18 -0
  102. package/build/main/routers/alpha-router/entities/route-with-valid-quote.d.ts +163 -0
  103. package/build/main/routers/alpha-router/entities/route-with-valid-quote.js +143 -0
  104. package/build/main/routers/alpha-router/functions/best-swap-route.d.ts +19 -0
  105. package/build/main/routers/alpha-router/functions/best-swap-route.js +364 -0
  106. package/build/main/routers/alpha-router/functions/calculate-ratio-amount-in.d.ts +3 -0
  107. package/build/main/routers/alpha-router/functions/calculate-ratio-amount-in.js +18 -0
  108. package/build/main/routers/alpha-router/functions/compute-all-routes.d.ts +8 -0
  109. package/build/main/routers/alpha-router/functions/compute-all-routes.js +72 -0
  110. package/build/main/routers/alpha-router/functions/get-candidate-pools.d.ts +78 -0
  111. package/build/main/routers/alpha-router/functions/get-candidate-pools.js +761 -0
  112. package/build/main/routers/alpha-router/gas-models/gas-model.d.ts +83 -0
  113. package/build/main/routers/alpha-router/gas-models/gas-model.js +68 -0
  114. package/build/main/routers/alpha-router/gas-models/index.d.ts +2 -0
  115. package/build/main/routers/alpha-router/gas-models/index.js +19 -0
  116. package/build/main/routers/alpha-router/gas-models/mixedRoute/mixed-route-heuristic-gas-model.d.ts +25 -0
  117. package/build/main/routers/alpha-router/gas-models/mixedRoute/mixed-route-heuristic-gas-model.js +175 -0
  118. package/build/main/routers/alpha-router/gas-models/v2/v2-heuristic-gas-model.d.ts +29 -0
  119. package/build/main/routers/alpha-router/gas-models/v2/v2-heuristic-gas-model.js +167 -0
  120. package/build/main/routers/alpha-router/gas-models/v3/gas-costs.d.ts +6 -0
  121. package/build/main/routers/alpha-router/gas-models/v3/gas-costs.js +110 -0
  122. package/build/main/routers/alpha-router/gas-models/v3/v3-heuristic-gas-model.d.ts +31 -0
  123. package/build/main/routers/alpha-router/gas-models/v3/v3-heuristic-gas-model.js +288 -0
  124. package/build/main/routers/alpha-router/index.d.ts +4 -0
  125. package/build/main/routers/alpha-router/index.js +21 -0
  126. package/build/main/routers/alpha-router/quoters/base-quoter.d.ts +68 -0
  127. package/build/main/routers/alpha-router/quoters/base-quoter.js +61 -0
  128. package/build/main/routers/alpha-router/quoters/index.d.ts +5 -0
  129. package/build/main/routers/alpha-router/quoters/index.js +22 -0
  130. package/build/main/routers/alpha-router/quoters/mixed-quoter.d.ts +20 -0
  131. package/build/main/routers/alpha-router/quoters/mixed-quoter.js +130 -0
  132. package/build/main/routers/alpha-router/quoters/model/index.d.ts +1 -0
  133. package/build/main/routers/alpha-router/quoters/model/index.js +18 -0
  134. package/build/main/routers/alpha-router/quoters/model/results/get-quotes-result.d.ts +6 -0
  135. package/build/main/routers/alpha-router/quoters/model/results/get-quotes-result.js +3 -0
  136. package/build/main/routers/alpha-router/quoters/model/results/get-routes-result.d.ts +6 -0
  137. package/build/main/routers/alpha-router/quoters/model/results/get-routes-result.js +3 -0
  138. package/build/main/routers/alpha-router/quoters/model/results/index.d.ts +2 -0
  139. package/build/main/routers/alpha-router/quoters/model/results/index.js +19 -0
  140. package/build/main/routers/alpha-router/quoters/v2-quoter.d.ts +21 -0
  141. package/build/main/routers/alpha-router/quoters/v2-quoter.js +122 -0
  142. package/build/main/routers/alpha-router/quoters/v3-quoter.d.ts +19 -0
  143. package/build/main/routers/alpha-router/quoters/v3-quoter.js +125 -0
  144. package/build/main/routers/index.d.ts +4 -0
  145. package/build/main/routers/index.js +21 -0
  146. package/build/main/routers/legacy-router/bases.d.ts +136 -0
  147. package/build/main/routers/legacy-router/bases.js +87 -0
  148. package/build/main/routers/legacy-router/index.d.ts +1 -0
  149. package/build/main/routers/legacy-router/index.js +18 -0
  150. package/build/main/routers/legacy-router/legacy-router.d.ts +42 -0
  151. package/build/main/routers/legacy-router/legacy-router.js +289 -0
  152. package/build/main/routers/router.d.ts +165 -0
  153. package/build/main/routers/router.js +52 -0
  154. package/build/main/tsconfig.tsbuildinfo +1 -0
  155. package/build/main/types/other/commons.d.ts +16 -0
  156. package/build/main/types/other/commons.js +6 -0
  157. package/build/main/types/other/factories/Erc20__factory.d.ts +45 -0
  158. package/build/main/types/other/factories/Erc20__factory.js +240 -0
  159. package/build/main/types/other/factories/GasDataArbitrum__factory.d.ts +18 -0
  160. package/build/main/types/other/factories/GasDataArbitrum__factory.js +58 -0
  161. package/build/main/types/other/factories/GasPriceOracle__factory.d.ts +46 -0
  162. package/build/main/types/other/factories/GasPriceOracle__factory.js +316 -0
  163. package/build/main/types/other/factories/IMixedRouteQuoterV1__factory.d.ts +41 -0
  164. package/build/main/types/other/factories/IMixedRouteQuoterV1__factory.js +156 -0
  165. package/build/main/types/other/factories/ITokenValidator__factory.d.ts +22 -0
  166. package/build/main/types/other/factories/ITokenValidator__factory.js +78 -0
  167. package/build/main/types/other/factories/Permit2__factory.d.ts +87 -0
  168. package/build/main/types/other/factories/Permit2__factory.js +936 -0
  169. package/build/main/types/other/factories/SwapRouter02__factory.d.ts +67 -0
  170. package/build/main/types/other/factories/SwapRouter02__factory.js +1098 -0
  171. package/build/main/types/v2/commons.d.ts +16 -0
  172. package/build/main/types/v2/commons.js +6 -0
  173. package/build/main/types/v2/factories/IUniswapV2Pair__factory.d.ts +35 -0
  174. package/build/main/types/v2/factories/IUniswapV2Pair__factory.js +671 -0
  175. package/build/main/types/v3/commons.d.ts +16 -0
  176. package/build/main/types/v3/commons.js +6 -0
  177. package/build/main/types/v3/factories/IERC20Metadata__factory.d.ts +35 -0
  178. package/build/main/types/v3/factories/IERC20Metadata__factory.js +242 -0
  179. package/build/main/types/v3/factories/IQuoterV2__factory.d.ts +41 -0
  180. package/build/main/types/v3/factories/IQuoterV2__factory.js +220 -0
  181. package/build/main/types/v3/factories/IUniswapV3PoolState__factory.d.ts +22 -0
  182. package/build/main/types/v3/factories/IUniswapV3PoolState__factory.js +266 -0
  183. package/build/main/types/v3/factories/UniswapInterfaceMulticall__factory.d.ts +61 -0
  184. package/build/main/types/v3/factories/UniswapInterfaceMulticall__factory.js +127 -0
  185. package/build/main/util/addresses.d.ts +26 -0
  186. package/build/main/util/addresses.js +73 -0
  187. package/build/main/util/amounts.d.ts +8 -0
  188. package/build/main/util/amounts.js +51 -0
  189. package/build/main/util/callData.d.ts +1 -0
  190. package/build/main/util/callData.js +6 -0
  191. package/build/main/util/chains.d.ts +77 -0
  192. package/build/main/util/chains.js +564 -0
  193. package/build/main/util/gas-factory-helpers.d.ts +24 -0
  194. package/build/main/util/gas-factory-helpers.js +308 -0
  195. package/build/main/util/index.d.ts +7 -0
  196. package/build/main/util/index.js +24 -0
  197. package/build/main/util/log.d.ts +3 -0
  198. package/build/main/util/log.js +97 -0
  199. package/build/main/util/methodParameters.d.ts +5 -0
  200. package/build/main/util/methodParameters.js +108 -0
  201. package/build/main/util/metric.d.ts +48 -0
  202. package/build/main/util/metric.js +59 -0
  203. package/build/main/util/protocols.d.ts +2 -0
  204. package/build/main/util/protocols.js +18 -0
  205. package/build/main/util/routes.d.ts +8 -0
  206. package/build/main/util/routes.js +60 -0
  207. package/build/main/util/unsupported-tokens.d.ts +37 -0
  208. package/build/main/util/unsupported-tokens.js +1119 -0
  209. package/build/module/index.d.ts +3 -0
  210. package/build/module/index.js +4 -0
  211. package/build/module/providers/cache-node.d.ts +9 -0
  212. package/build/module/providers/cache-node.js +15 -0
  213. package/build/module/providers/cache.d.ts +13 -0
  214. package/build/module/providers/cache.js +2 -0
  215. package/build/module/providers/caching/route/index.d.ts +2 -0
  216. package/build/module/providers/caching/route/index.js +3 -0
  217. package/build/module/providers/caching/route/model/cache-mode.d.ts +16 -0
  218. package/build/module/providers/caching/route/model/cache-mode.js +18 -0
  219. package/build/module/providers/caching/route/model/cached-route.d.ts +26 -0
  220. package/build/module/providers/caching/route/model/cached-route.js +26 -0
  221. package/build/module/providers/caching/route/model/cached-routes.d.ts +63 -0
  222. package/build/module/providers/caching/route/model/cached-routes.js +66 -0
  223. package/build/module/providers/caching/route/model/index.d.ts +3 -0
  224. package/build/module/providers/caching/route/model/index.js +4 -0
  225. package/build/module/providers/caching/route/route-caching-provider.d.ts +91 -0
  226. package/build/module/providers/caching/route/route-caching-provider.js +61 -0
  227. package/build/module/providers/caching-gas-provider.d.ts +23 -0
  228. package/build/module/providers/caching-gas-provider.js +33 -0
  229. package/build/module/providers/caching-token-list-provider.d.ts +40 -0
  230. package/build/module/providers/caching-token-list-provider.js +116 -0
  231. package/build/module/providers/caching-token-provider.d.ts +25 -0
  232. package/build/module/providers/caching-token-provider.js +195 -0
  233. package/build/module/providers/eip-1559-gas-price-provider.d.ts +31 -0
  234. package/build/module/providers/eip-1559-gas-price-provider.js +59 -0
  235. package/build/module/providers/eth-estimate-gas-provider.d.ts +16 -0
  236. package/build/module/providers/eth-estimate-gas-provider.js +82 -0
  237. package/build/module/providers/eth-gas-station-info-gas-price-provider.d.ts +19 -0
  238. package/build/module/providers/eth-gas-station-info-gas-price-provider.js +30 -0
  239. package/build/module/providers/gas-price-provider.d.ts +10 -0
  240. package/build/module/providers/gas-price-provider.js +6 -0
  241. package/build/module/providers/index.d.ts +37 -0
  242. package/build/module/providers/index.js +38 -0
  243. package/build/module/providers/legacy-gas-price-provider.d.ts +7 -0
  244. package/build/module/providers/legacy-gas-price-provider.js +16 -0
  245. package/build/module/providers/multicall-provider.d.ts +82 -0
  246. package/build/module/providers/multicall-provider.js +11 -0
  247. package/build/module/providers/multicall-uniswap-provider.d.ts +37 -0
  248. package/build/module/providers/multicall-uniswap-provider.js +156 -0
  249. package/build/module/providers/on-chain-gas-price-provider.d.ts +19 -0
  250. package/build/module/providers/on-chain-gas-price-provider.js +34 -0
  251. package/build/module/providers/on-chain-quote-provider.d.ts +221 -0
  252. package/build/module/providers/on-chain-quote-provider.js +517 -0
  253. package/build/module/providers/provider.d.ts +10 -0
  254. package/build/module/providers/provider.js +2 -0
  255. package/build/module/providers/simulation-provider.d.ts +42 -0
  256. package/build/module/providers/simulation-provider.js +132 -0
  257. package/build/module/providers/static-gas-price-provider.d.ts +7 -0
  258. package/build/module/providers/static-gas-price-provider.js +9 -0
  259. package/build/module/providers/swap-router-provider.d.ts +31 -0
  260. package/build/module/providers/swap-router-provider.js +38 -0
  261. package/build/module/providers/tenderly-simulation-provider.d.ts +45 -0
  262. package/build/module/providers/tenderly-simulation-provider.js +249 -0
  263. package/build/module/providers/token-provider.d.ts +114 -0
  264. package/build/module/providers/token-provider.js +285 -0
  265. package/build/module/providers/token-validator-provider.d.ts +42 -0
  266. package/build/module/providers/token-validator-provider.js +88 -0
  267. package/build/module/providers/uri-subgraph-provider.d.ts +20 -0
  268. package/build/module/providers/uri-subgraph-provider.js +58 -0
  269. package/build/module/providers/v2/caching-pool-provider.d.ts +34 -0
  270. package/build/module/providers/v2/caching-pool-provider.js +81 -0
  271. package/build/module/providers/v2/caching-subgraph-provider.d.ts +23 -0
  272. package/build/module/providers/v2/caching-subgraph-provider.js +30 -0
  273. package/build/module/providers/v2/pool-provider.d.ts +60 -0
  274. package/build/module/providers/v2/pool-provider.js +103 -0
  275. package/build/module/providers/v2/quote-provider.d.ts +33 -0
  276. package/build/module/providers/v2/quote-provider.js +87 -0
  277. package/build/module/providers/v2/static-subgraph-provider.d.ts +20 -0
  278. package/build/module/providers/v2/static-subgraph-provider.js +96 -0
  279. package/build/module/providers/v2/subgraph-provider-with-fallback.d.ts +19 -0
  280. package/build/module/providers/v2/subgraph-provider-with-fallback.js +31 -0
  281. package/build/module/providers/v2/subgraph-provider.d.ts +34 -0
  282. package/build/module/providers/v2/subgraph-provider.js +136 -0
  283. package/build/module/providers/v2/uri-subgraph-provider.d.ts +4 -0
  284. package/build/module/providers/v2/uri-subgraph-provider.js +4 -0
  285. package/build/module/providers/v3/caching-pool-provider.d.ts +33 -0
  286. package/build/module/providers/v3/caching-pool-provider.js +70 -0
  287. package/build/module/providers/v3/caching-subgraph-provider.d.ts +23 -0
  288. package/build/module/providers/v3/caching-subgraph-provider.js +30 -0
  289. package/build/module/providers/v3/gas-data-provider.d.ts +57 -0
  290. package/build/module/providers/v3/gas-data-provider.js +61 -0
  291. package/build/module/providers/v3/pool-provider.d.ts +61 -0
  292. package/build/module/providers/v3/pool-provider.js +116 -0
  293. package/build/module/providers/v3/static-subgraph-provider.d.ts +21 -0
  294. package/build/module/providers/v3/static-subgraph-provider.js +200 -0
  295. package/build/module/providers/v3/subgraph-provider-with-fallback.d.ts +15 -0
  296. package/build/module/providers/v3/subgraph-provider-with-fallback.js +27 -0
  297. package/build/module/providers/v3/subgraph-provider.d.ts +37 -0
  298. package/build/module/providers/v3/subgraph-provider.js +132 -0
  299. package/build/module/providers/v3/uri-subgraph-provider.d.ts +4 -0
  300. package/build/module/providers/v3/uri-subgraph-provider.js +4 -0
  301. package/build/module/routers/alpha-router/alpha-router.d.ts +267 -0
  302. package/build/module/routers/alpha-router/alpha-router.js +823 -0
  303. package/build/module/routers/alpha-router/config.d.ts +4 -0
  304. package/build/module/routers/alpha-router/config.js +89 -0
  305. package/build/module/routers/alpha-router/entities/index.d.ts +1 -0
  306. package/build/module/routers/alpha-router/entities/index.js +2 -0
  307. package/build/module/routers/alpha-router/entities/route-with-valid-quote.d.ts +163 -0
  308. package/build/module/routers/alpha-router/entities/route-with-valid-quote.js +134 -0
  309. package/build/module/routers/alpha-router/functions/best-swap-route.d.ts +19 -0
  310. package/build/module/routers/alpha-router/functions/best-swap-route.js +356 -0
  311. package/build/module/routers/alpha-router/functions/calculate-ratio-amount-in.d.ts +3 -0
  312. package/build/module/routers/alpha-router/functions/calculate-ratio-amount-in.js +14 -0
  313. package/build/module/routers/alpha-router/functions/compute-all-routes.d.ts +8 -0
  314. package/build/module/routers/alpha-router/functions/compute-all-routes.js +65 -0
  315. package/build/module/routers/alpha-router/functions/get-candidate-pools.d.ts +78 -0
  316. package/build/module/routers/alpha-router/functions/get-candidate-pools.js +776 -0
  317. package/build/module/routers/alpha-router/gas-models/gas-model.d.ts +83 -0
  318. package/build/module/routers/alpha-router/gas-models/gas-model.js +67 -0
  319. package/build/module/routers/alpha-router/gas-models/index.d.ts +2 -0
  320. package/build/module/routers/alpha-router/gas-models/index.js +3 -0
  321. package/build/module/routers/alpha-router/gas-models/mixedRoute/mixed-route-heuristic-gas-model.d.ts +25 -0
  322. package/build/module/routers/alpha-router/gas-models/mixedRoute/mixed-route-heuristic-gas-model.js +168 -0
  323. package/build/module/routers/alpha-router/gas-models/v2/v2-heuristic-gas-model.d.ts +29 -0
  324. package/build/module/routers/alpha-router/gas-models/v2/v2-heuristic-gas-model.js +160 -0
  325. package/build/module/routers/alpha-router/gas-models/v3/gas-costs.d.ts +6 -0
  326. package/build/module/routers/alpha-router/gas-models/v3/gas-costs.js +104 -0
  327. package/build/module/routers/alpha-router/gas-models/v3/v3-heuristic-gas-model.d.ts +31 -0
  328. package/build/module/routers/alpha-router/gas-models/v3/v3-heuristic-gas-model.js +281 -0
  329. package/build/module/routers/alpha-router/index.d.ts +4 -0
  330. package/build/module/routers/alpha-router/index.js +5 -0
  331. package/build/module/routers/alpha-router/quoters/base-quoter.d.ts +68 -0
  332. package/build/module/routers/alpha-router/quoters/base-quoter.js +54 -0
  333. package/build/module/routers/alpha-router/quoters/index.d.ts +5 -0
  334. package/build/module/routers/alpha-router/quoters/index.js +6 -0
  335. package/build/module/routers/alpha-router/quoters/mixed-quoter.d.ts +20 -0
  336. package/build/module/routers/alpha-router/quoters/mixed-quoter.js +123 -0
  337. package/build/module/routers/alpha-router/quoters/model/index.d.ts +1 -0
  338. package/build/module/routers/alpha-router/quoters/model/index.js +2 -0
  339. package/build/module/routers/alpha-router/quoters/model/results/get-quotes-result.d.ts +6 -0
  340. package/build/module/routers/alpha-router/quoters/model/results/get-quotes-result.js +2 -0
  341. package/build/module/routers/alpha-router/quoters/model/results/get-routes-result.d.ts +6 -0
  342. package/build/module/routers/alpha-router/quoters/model/results/get-routes-result.js +2 -0
  343. package/build/module/routers/alpha-router/quoters/model/results/index.d.ts +2 -0
  344. package/build/module/routers/alpha-router/quoters/model/results/index.js +3 -0
  345. package/build/module/routers/alpha-router/quoters/v2-quoter.d.ts +21 -0
  346. package/build/module/routers/alpha-router/quoters/v2-quoter.js +115 -0
  347. package/build/module/routers/alpha-router/quoters/v3-quoter.d.ts +19 -0
  348. package/build/module/routers/alpha-router/quoters/v3-quoter.js +118 -0
  349. package/build/module/routers/index.d.ts +4 -0
  350. package/build/module/routers/index.js +5 -0
  351. package/build/module/routers/legacy-router/bases.d.ts +136 -0
  352. package/build/module/routers/legacy-router/bases.js +93 -0
  353. package/build/module/routers/legacy-router/index.d.ts +1 -0
  354. package/build/module/routers/legacy-router/index.js +2 -0
  355. package/build/module/routers/legacy-router/legacy-router.d.ts +42 -0
  356. package/build/module/routers/legacy-router/legacy-router.js +290 -0
  357. package/build/module/routers/router.d.ts +165 -0
  358. package/build/module/routers/router.js +44 -0
  359. package/build/module/tsconfig.module.tsbuildinfo +1 -0
  360. package/build/module/types/other/commons.d.ts +16 -0
  361. package/build/module/types/other/commons.js +5 -0
  362. package/build/module/types/other/factories/Erc20__factory.d.ts +45 -0
  363. package/build/module/types/other/factories/Erc20__factory.js +236 -0
  364. package/build/module/types/other/factories/GasDataArbitrum__factory.d.ts +18 -0
  365. package/build/module/types/other/factories/GasDataArbitrum__factory.js +54 -0
  366. package/build/module/types/other/factories/GasPriceOracle__factory.d.ts +46 -0
  367. package/build/module/types/other/factories/GasPriceOracle__factory.js +312 -0
  368. package/build/module/types/other/factories/IMixedRouteQuoterV1__factory.d.ts +41 -0
  369. package/build/module/types/other/factories/IMixedRouteQuoterV1__factory.js +152 -0
  370. package/build/module/types/other/factories/ITokenValidator__factory.d.ts +22 -0
  371. package/build/module/types/other/factories/ITokenValidator__factory.js +74 -0
  372. package/build/module/types/other/factories/Permit2__factory.d.ts +87 -0
  373. package/build/module/types/other/factories/Permit2__factory.js +932 -0
  374. package/build/module/types/other/factories/SwapRouter02__factory.d.ts +67 -0
  375. package/build/module/types/other/factories/SwapRouter02__factory.js +1094 -0
  376. package/build/module/types/v2/commons.d.ts +16 -0
  377. package/build/module/types/v2/commons.js +5 -0
  378. package/build/module/types/v2/factories/IUniswapV2Pair__factory.d.ts +35 -0
  379. package/build/module/types/v2/factories/IUniswapV2Pair__factory.js +667 -0
  380. package/build/module/types/v3/commons.d.ts +16 -0
  381. package/build/module/types/v3/commons.js +5 -0
  382. package/build/module/types/v3/factories/IERC20Metadata__factory.d.ts +35 -0
  383. package/build/module/types/v3/factories/IERC20Metadata__factory.js +238 -0
  384. package/build/module/types/v3/factories/IQuoterV2__factory.d.ts +41 -0
  385. package/build/module/types/v3/factories/IQuoterV2__factory.js +216 -0
  386. package/build/module/types/v3/factories/IUniswapV3PoolState__factory.d.ts +22 -0
  387. package/build/module/types/v3/factories/IUniswapV3PoolState__factory.js +262 -0
  388. package/build/module/types/v3/factories/UniswapInterfaceMulticall__factory.d.ts +61 -0
  389. package/build/module/types/v3/factories/UniswapInterfaceMulticall__factory.js +123 -0
  390. package/build/module/util/addresses.d.ts +26 -0
  391. package/build/module/util/addresses.js +98 -0
  392. package/build/module/util/amounts.d.ts +8 -0
  393. package/build/module/util/amounts.js +41 -0
  394. package/build/module/util/callData.d.ts +1 -0
  395. package/build/module/util/callData.js +3 -0
  396. package/build/module/util/chains.d.ts +77 -0
  397. package/build/module/util/chains.js +556 -0
  398. package/build/module/util/gas-factory-helpers.d.ts +24 -0
  399. package/build/module/util/gas-factory-helpers.js +291 -0
  400. package/build/module/util/index.d.ts +7 -0
  401. package/build/module/util/index.js +8 -0
  402. package/build/module/util/log.d.ts +3 -0
  403. package/build/module/util/log.js +93 -0
  404. package/build/module/util/methodParameters.d.ts +5 -0
  405. package/build/module/util/methodParameters.js +106 -0
  406. package/build/module/util/metric.d.ts +48 -0
  407. package/build/module/util/metric.js +53 -0
  408. package/build/module/util/protocols.d.ts +2 -0
  409. package/build/module/util/protocols.js +14 -0
  410. package/build/module/util/routes.d.ts +8 -0
  411. package/build/module/util/routes.js +50 -0
  412. package/build/module/util/unsupported-tokens.d.ts +37 -0
  413. package/build/module/util/unsupported-tokens.js +1116 -0
  414. package/package.json +119 -0
@@ -0,0 +1,110 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.COST_PER_HOP = exports.COST_PER_INIT_TICK = exports.BASE_SWAP_COST = exports.COST_PER_UNINIT_TICK = void 0;
4
+ const bignumber_1 = require("@ethersproject/bignumber");
5
+ const __1 = require("../../../..");
6
+ // Cost for crossing an uninitialized tick.
7
+ exports.COST_PER_UNINIT_TICK = bignumber_1.BigNumber.from(0);
8
+ //l2 execution fee on optimism is roughly the same as mainnet
9
+ const BASE_SWAP_COST = (id) => {
10
+ switch (id) {
11
+ case __1.ChainId.MAINNET:
12
+ case __1.ChainId.ROPSTEN:
13
+ case __1.ChainId.RINKEBY:
14
+ case __1.ChainId.GÖRLI:
15
+ case __1.ChainId.OPTIMISM:
16
+ case __1.ChainId.OPTIMISM_GOERLI:
17
+ case __1.ChainId.OPTIMISTIC_KOVAN:
18
+ case __1.ChainId.BSC:
19
+ case __1.ChainId.KOVAN:
20
+ return bignumber_1.BigNumber.from(2000);
21
+ case __1.ChainId.ARBITRUM_ONE:
22
+ case __1.ChainId.ARBITRUM_RINKEBY:
23
+ case __1.ChainId.ARBITRUM_GOERLI:
24
+ return bignumber_1.BigNumber.from(5000);
25
+ case __1.ChainId.POLYGON:
26
+ case __1.ChainId.POLYGON_MUMBAI:
27
+ return bignumber_1.BigNumber.from(2000);
28
+ case __1.ChainId.CELO:
29
+ case __1.ChainId.CELO_ALFAJORES:
30
+ return bignumber_1.BigNumber.from(2000);
31
+ //TODO determine if sufficient
32
+ case __1.ChainId.GNOSIS:
33
+ return bignumber_1.BigNumber.from(2000);
34
+ case __1.ChainId.MOONBEAM:
35
+ return bignumber_1.BigNumber.from(2000);
36
+ case __1.ChainId.CFX:
37
+ return bignumber_1.BigNumber.from(4000);
38
+ case __1.ChainId.CFX_TEST:
39
+ return bignumber_1.BigNumber.from(4000);
40
+ }
41
+ };
42
+ exports.BASE_SWAP_COST = BASE_SWAP_COST;
43
+ const COST_PER_INIT_TICK = (id) => {
44
+ switch (id) {
45
+ case __1.ChainId.MAINNET:
46
+ case __1.ChainId.ROPSTEN:
47
+ case __1.ChainId.RINKEBY:
48
+ case __1.ChainId.GÖRLI:
49
+ case __1.ChainId.BSC:
50
+ case __1.ChainId.KOVAN:
51
+ return bignumber_1.BigNumber.from(31000);
52
+ case __1.ChainId.OPTIMISM:
53
+ case __1.ChainId.OPTIMISM_GOERLI:
54
+ case __1.ChainId.OPTIMISTIC_KOVAN:
55
+ return bignumber_1.BigNumber.from(31000);
56
+ case __1.ChainId.ARBITRUM_ONE:
57
+ case __1.ChainId.ARBITRUM_RINKEBY:
58
+ case __1.ChainId.ARBITRUM_GOERLI:
59
+ return bignumber_1.BigNumber.from(31000);
60
+ case __1.ChainId.POLYGON:
61
+ case __1.ChainId.POLYGON_MUMBAI:
62
+ return bignumber_1.BigNumber.from(31000);
63
+ case __1.ChainId.CELO:
64
+ case __1.ChainId.CELO_ALFAJORES:
65
+ return bignumber_1.BigNumber.from(31000);
66
+ case __1.ChainId.GNOSIS:
67
+ return bignumber_1.BigNumber.from(31000);
68
+ case __1.ChainId.MOONBEAM:
69
+ return bignumber_1.BigNumber.from(31000);
70
+ case __1.ChainId.CFX:
71
+ return bignumber_1.BigNumber.from(62000);
72
+ case __1.ChainId.CFX_TEST:
73
+ return bignumber_1.BigNumber.from(62000);
74
+ }
75
+ };
76
+ exports.COST_PER_INIT_TICK = COST_PER_INIT_TICK;
77
+ const COST_PER_HOP = (id) => {
78
+ switch (id) {
79
+ case __1.ChainId.MAINNET:
80
+ case __1.ChainId.ROPSTEN:
81
+ case __1.ChainId.RINKEBY:
82
+ case __1.ChainId.GÖRLI:
83
+ case __1.ChainId.KOVAN:
84
+ case __1.ChainId.BSC:
85
+ case __1.ChainId.OPTIMISM:
86
+ case __1.ChainId.OPTIMISM_GOERLI:
87
+ case __1.ChainId.OPTIMISTIC_KOVAN:
88
+ return bignumber_1.BigNumber.from(80000);
89
+ case __1.ChainId.ARBITRUM_ONE:
90
+ case __1.ChainId.ARBITRUM_RINKEBY:
91
+ case __1.ChainId.ARBITRUM_GOERLI:
92
+ return bignumber_1.BigNumber.from(80000);
93
+ case __1.ChainId.POLYGON:
94
+ case __1.ChainId.POLYGON_MUMBAI:
95
+ return bignumber_1.BigNumber.from(80000);
96
+ case __1.ChainId.CELO:
97
+ case __1.ChainId.CELO_ALFAJORES:
98
+ return bignumber_1.BigNumber.from(80000);
99
+ case __1.ChainId.GNOSIS:
100
+ return bignumber_1.BigNumber.from(80000);
101
+ case __1.ChainId.MOONBEAM:
102
+ return bignumber_1.BigNumber.from(80000);
103
+ case __1.ChainId.CFX:
104
+ return bignumber_1.BigNumber.from(160000);
105
+ case __1.ChainId.CFX_TEST:
106
+ return bignumber_1.BigNumber.from(160000);
107
+ }
108
+ };
109
+ exports.COST_PER_HOP = COST_PER_HOP;
110
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2FzLWNvc3RzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3JvdXRlcnMvYWxwaGEtcm91dGVyL2dhcy1tb2RlbHMvdjMvZ2FzLWNvc3RzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHdEQUFxRDtBQUVyRCxtQ0FBc0M7QUFFdEMsMkNBQTJDO0FBQzlCLFFBQUEsb0JBQW9CLEdBQUcscUJBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFFdEQsNkRBQTZEO0FBQ3RELE1BQU0sY0FBYyxHQUFHLENBQUMsRUFBVyxFQUFhLEVBQUU7SUFDdkQsUUFBUSxFQUFFLEVBQUU7UUFDVixLQUFLLFdBQU8sQ0FBQyxPQUFPLENBQUM7UUFDckIsS0FBSyxXQUFPLENBQUMsT0FBTyxDQUFDO1FBQ3JCLEtBQUssV0FBTyxDQUFDLE9BQU8sQ0FBQztRQUNyQixLQUFLLFdBQU8sQ0FBQyxLQUFLLENBQUM7UUFDbkIsS0FBSyxXQUFPLENBQUMsUUFBUSxDQUFDO1FBQ3RCLEtBQUssV0FBTyxDQUFDLGVBQWUsQ0FBQztRQUM3QixLQUFLLFdBQU8sQ0FBQyxnQkFBZ0IsQ0FBQztRQUM5QixLQUFLLFdBQU8sQ0FBQyxHQUFHLENBQUM7UUFDakIsS0FBSyxXQUFPLENBQUMsS0FBSztZQUNoQixPQUFPLHFCQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzlCLEtBQUssV0FBTyxDQUFDLFlBQVksQ0FBQztRQUMxQixLQUFLLFdBQU8sQ0FBQyxnQkFBZ0IsQ0FBQztRQUM5QixLQUFLLFdBQU8sQ0FBQyxlQUFlO1lBQzFCLE9BQU8scUJBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDOUIsS0FBSyxXQUFPLENBQUMsT0FBTyxDQUFDO1FBQ3JCLEtBQUssV0FBTyxDQUFDLGNBQWM7WUFDekIsT0FBTyxxQkFBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUU5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
@@ -0,0 +1,31 @@
1
+ import { V3RouteWithValidQuote } from '../../entities/route-with-valid-quote';
2
+ import { BuildOnChainGasModelFactoryType, IGasModel, IOnChainGasModelFactory } from '../gas-model';
3
+ /**
4
+ * Computes a gas estimate for a V3 swap using heuristics.
5
+ * Considers number of hops in the route, number of ticks crossed
6
+ * and the typical base cost for a swap.
7
+ *
8
+ * We get the number of ticks crossed in a swap from the QuoterV2
9
+ * contract.
10
+ *
11
+ * We compute gas estimates off-chain because
12
+ * 1/ Calling eth_estimateGas for a swaps requires the caller to have
13
+ * the full balance token being swapped, and approvals.
14
+ * 2/ Tracking gas used using a wrapper contract is not accurate with Multicall
15
+ * due to EIP-2929. We would have to make a request for every swap we wanted to estimate.
16
+ * 3/ For V2 we simulate all our swaps off-chain so have no way to track gas used.
17
+ *
18
+ * @export
19
+ * @class V3HeuristicGasModelFactory
20
+ */
21
+ export declare class V3HeuristicGasModelFactory extends IOnChainGasModelFactory {
22
+ constructor();
23
+ buildGasModel({ chainId, gasPriceWei, v3poolProvider: poolProvider, amountToken, quoteToken, l2GasDataProvider, }: BuildOnChainGasModelFactoryType): Promise<IGasModel<V3RouteWithValidQuote>>;
24
+ private estimateGas;
25
+ /**
26
+ * To avoid having a call to optimism's L1 security fee contract for every route and amount combination,
27
+ * we replicate the gas cost accounting here.
28
+ */
29
+ private calculateOptimismToL1SecurityFee;
30
+ private calculateArbitrumToL1SecurityFee;
31
+ }
@@ -0,0 +1,288 @@
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.V3HeuristicGasModelFactory = void 0;
7
+ const bignumber_1 = require("@ethersproject/bignumber");
8
+ const sdk_core_1 = require("@uniswap/sdk-core");
9
+ const lodash_1 = __importDefault(require("lodash"));
10
+ const __1 = require("../../../..");
11
+ const util_1 = require("../../../../util");
12
+ const amounts_1 = require("../../../../util/amounts");
13
+ const gas_factory_helpers_1 = require("../../../../util/gas-factory-helpers");
14
+ const log_1 = require("../../../../util/log");
15
+ const methodParameters_1 = require("../../../../util/methodParameters");
16
+ const gas_model_1 = require("../gas-model");
17
+ const gas_costs_1 = require("./gas-costs");
18
+ /**
19
+ * Computes a gas estimate for a V3 swap using heuristics.
20
+ * Considers number of hops in the route, number of ticks crossed
21
+ * and the typical base cost for a swap.
22
+ *
23
+ * We get the number of ticks crossed in a swap from the QuoterV2
24
+ * contract.
25
+ *
26
+ * We compute gas estimates off-chain because
27
+ * 1/ Calling eth_estimateGas for a swaps requires the caller to have
28
+ * the full balance token being swapped, and approvals.
29
+ * 2/ Tracking gas used using a wrapper contract is not accurate with Multicall
30
+ * due to EIP-2929. We would have to make a request for every swap we wanted to estimate.
31
+ * 3/ For V2 we simulate all our swaps off-chain so have no way to track gas used.
32
+ *
33
+ * @export
34
+ * @class V3HeuristicGasModelFactory
35
+ */
36
+ class V3HeuristicGasModelFactory extends gas_model_1.IOnChainGasModelFactory {
37
+ constructor() {
38
+ super();
39
+ }
40
+ async buildGasModel({ chainId, gasPriceWei, v3poolProvider: poolProvider, amountToken, quoteToken, l2GasDataProvider, }) {
41
+ const l2GasData = l2GasDataProvider
42
+ ? await l2GasDataProvider.getGasData()
43
+ : undefined;
44
+ const usdPool = await (0, gas_factory_helpers_1.getHighestLiquidityV3USDPool)(chainId, poolProvider);
45
+ const calculateL1GasFees = async (route) => {
46
+ const swapOptions = {
47
+ type: __1.SwapType.UNIVERSAL_ROUTER,
48
+ recipient: '0x0000000000000000000000000000000000000001',
49
+ deadlineOrPreviousBlockhash: 100,
50
+ slippageTolerance: new sdk_core_1.Percent(5, 10000),
51
+ };
52
+ let l1Used = bignumber_1.BigNumber.from(0);
53
+ let l1FeeInWei = bignumber_1.BigNumber.from(0);
54
+ if (chainId == util_1.ChainId.OPTIMISM ||
55
+ chainId == util_1.ChainId.OPTIMISTIC_KOVAN ||
56
+ chainId == util_1.ChainId.OPTIMISM_GOERLI) {
57
+ [l1Used, l1FeeInWei] = this.calculateOptimismToL1SecurityFee(route, swapOptions, l2GasData);
58
+ }
59
+ else if (chainId == util_1.ChainId.ARBITRUM_ONE ||
60
+ chainId == util_1.ChainId.ARBITRUM_RINKEBY ||
61
+ chainId == util_1.ChainId.ARBITRUM_GOERLI) {
62
+ [l1Used, l1FeeInWei] = this.calculateArbitrumToL1SecurityFee(route, swapOptions, l2GasData);
63
+ }
64
+ // wrap fee to native currency
65
+ const nativeCurrency = __1.WRAPPED_NATIVE_CURRENCY[chainId];
66
+ const costNativeCurrency = amounts_1.CurrencyAmount.fromRawAmount(nativeCurrency, l1FeeInWei.toString());
67
+ // convert fee into usd
68
+ const nativeTokenPrice = usdPool.token0.address == nativeCurrency.address
69
+ ? usdPool.token0Price
70
+ : usdPool.token1Price;
71
+ const gasCostL1USD = nativeTokenPrice.quote(costNativeCurrency);
72
+ let gasCostL1QuoteToken = costNativeCurrency;
73
+ // if the inputted token is not in the native currency, quote a native/quote token pool to get the gas cost in terms of the quote token
74
+ if (!quoteToken.equals(nativeCurrency)) {
75
+ const nativePool = await (0, gas_factory_helpers_1.getHighestLiquidityV3NativePool)(quoteToken, poolProvider);
76
+ if (!nativePool) {
77
+ log_1.log.info('Could not find a pool to convert the cost into the quote token');
78
+ gasCostL1QuoteToken = amounts_1.CurrencyAmount.fromRawAmount(quoteToken, 0);
79
+ }
80
+ else {
81
+ const nativeTokenPrice = nativePool.token0.address == nativeCurrency.address
82
+ ? nativePool.token0Price
83
+ : nativePool.token1Price;
84
+ gasCostL1QuoteToken = nativeTokenPrice.quote(costNativeCurrency);
85
+ }
86
+ }
87
+ // gasUsedL1 is the gas units used calculated from the bytes of the calldata
88
+ // gasCostL1USD and gasCostL1QuoteToken is the cost of gas in each of those tokens
89
+ return {
90
+ gasUsedL1: l1Used,
91
+ gasCostL1USD,
92
+ gasCostL1QuoteToken,
93
+ };
94
+ };
95
+ // If our quote token is WETH, we don't need to convert our gas use to be in terms
96
+ // of the quote token in order to produce a gas adjusted amount.
97
+ // We do return a gas use in USD however, so we still convert to usd.
98
+ const nativeCurrency = __1.WRAPPED_NATIVE_CURRENCY[chainId];
99
+ if (quoteToken.equals(nativeCurrency)) {
100
+ const estimateGasCost = (routeWithValidQuote) => {
101
+ const { totalGasCostNativeCurrency, baseGasUse } = this.estimateGas(routeWithValidQuote, gasPriceWei, chainId);
102
+ const token0 = usdPool.token0.address == nativeCurrency.address;
103
+ const nativeTokenPrice = token0
104
+ ? usdPool.token0Price
105
+ : usdPool.token1Price;
106
+ const gasCostInTermsOfUSD = nativeTokenPrice.quote(totalGasCostNativeCurrency);
107
+ return {
108
+ gasEstimate: baseGasUse,
109
+ gasCostInToken: totalGasCostNativeCurrency,
110
+ gasCostInUSD: gasCostInTermsOfUSD,
111
+ };
112
+ };
113
+ return {
114
+ estimateGasCost,
115
+ calculateL1GasFees,
116
+ };
117
+ }
118
+ // If the quote token is not in the native currency, we convert the gas cost to be in terms of the quote token.
119
+ // We do this by getting the highest liquidity <quoteToken>/<nativeCurrency> pool. eg. <quoteToken>/ETH pool.
120
+ const nativePool = await (0, gas_factory_helpers_1.getHighestLiquidityV3NativePool)(quoteToken, poolProvider);
121
+ let nativeAmountPool = null;
122
+ if (!amountToken.equals(nativeCurrency)) {
123
+ nativeAmountPool = await (0, gas_factory_helpers_1.getHighestLiquidityV3NativePool)(amountToken, poolProvider);
124
+ }
125
+ const usdToken = usdPool.token0.address == nativeCurrency.address
126
+ ? usdPool.token1
127
+ : usdPool.token0;
128
+ const estimateGasCost = (routeWithValidQuote) => {
129
+ const { totalGasCostNativeCurrency, baseGasUse } = this.estimateGas(routeWithValidQuote, gasPriceWei, chainId);
130
+ let gasCostInTermsOfQuoteToken = null;
131
+ if (nativePool) {
132
+ const token0 = nativePool.token0.address == nativeCurrency.address;
133
+ // returns mid price in terms of the native currency (the ratio of quoteToken/nativeToken)
134
+ const nativeTokenPrice = token0
135
+ ? nativePool.token0Price
136
+ : nativePool.token1Price;
137
+ try {
138
+ // native token is base currency
139
+ gasCostInTermsOfQuoteToken = nativeTokenPrice.quote(totalGasCostNativeCurrency);
140
+ }
141
+ catch (err) {
142
+ log_1.log.info({
143
+ nativeTokenPriceBase: nativeTokenPrice.baseCurrency,
144
+ nativeTokenPriceQuote: nativeTokenPrice.quoteCurrency,
145
+ gasCostInEth: totalGasCostNativeCurrency.currency,
146
+ }, 'Debug eth price token issue');
147
+ throw err;
148
+ }
149
+ }
150
+ // we have a nativeAmountPool, but not a nativePool
151
+ else {
152
+ log_1.log.info(`Unable to find ${nativeCurrency.symbol} pool with the quote token, ${quoteToken.symbol} to produce gas adjusted costs. Using amountToken to calculate gas costs.`);
153
+ }
154
+ // Highest liquidity pool for the non quote token / ETH
155
+ // A pool with the non quote token / ETH should not be required and errors should be handled separately
156
+ if (nativeAmountPool) {
157
+ // get current execution price (amountToken / quoteToken)
158
+ const executionPrice = new sdk_core_1.Price(routeWithValidQuote.amount.currency, routeWithValidQuote.quote.currency, routeWithValidQuote.amount.quotient, routeWithValidQuote.quote.quotient);
159
+ const inputIsToken0 = nativeAmountPool.token0.address == nativeCurrency.address;
160
+ // ratio of input / native
161
+ const nativeAmountTokenPrice = inputIsToken0
162
+ ? nativeAmountPool.token0Price
163
+ : nativeAmountPool.token1Price;
164
+ const gasCostInTermsOfAmountToken = nativeAmountTokenPrice.quote(totalGasCostNativeCurrency);
165
+ // Convert gasCostInTermsOfAmountToken to quote token using execution price
166
+ const syntheticGasCostInTermsOfQuoteToken = executionPrice.quote(gasCostInTermsOfAmountToken);
167
+ // Note that the syntheticGasCost being lessThan the original quoted value is not always strictly better
168
+ // e.g. the scenario where the amountToken/ETH pool is very illiquid as well and returns an extremely small number
169
+ // however, it is better to have the gasEstimation be almost 0 than almost infinity, as the user will still receive a quote
170
+ if (gasCostInTermsOfQuoteToken === null ||
171
+ syntheticGasCostInTermsOfQuoteToken.lessThan(gasCostInTermsOfQuoteToken.asFraction)) {
172
+ log_1.log.info({
173
+ nativeAmountTokenPrice: nativeAmountTokenPrice.toSignificant(6),
174
+ gasCostInTermsOfQuoteToken: gasCostInTermsOfQuoteToken
175
+ ? gasCostInTermsOfQuoteToken.toExact()
176
+ : 0,
177
+ gasCostInTermsOfAmountToken: gasCostInTermsOfAmountToken.toExact(),
178
+ executionPrice: executionPrice.toSignificant(6),
179
+ syntheticGasCostInTermsOfQuoteToken: syntheticGasCostInTermsOfQuoteToken.toSignificant(6),
180
+ }, 'New gasCostInTermsOfQuoteToken calculated with synthetic quote token price is less than original');
181
+ gasCostInTermsOfQuoteToken = syntheticGasCostInTermsOfQuoteToken;
182
+ }
183
+ }
184
+ // true if token0 is the native currency
185
+ const token0USDPool = usdPool.token0.address == nativeCurrency.address;
186
+ // gets the mid price of the pool in terms of the native token
187
+ const nativeTokenPriceUSDPool = token0USDPool
188
+ ? usdPool.token0Price
189
+ : usdPool.token1Price;
190
+ let gasCostInTermsOfUSD;
191
+ try {
192
+ gasCostInTermsOfUSD = nativeTokenPriceUSDPool.quote(totalGasCostNativeCurrency);
193
+ }
194
+ catch (err) {
195
+ log_1.log.info({
196
+ usdT1: usdPool.token0.symbol,
197
+ usdT2: usdPool.token1.symbol,
198
+ gasCostInNativeToken: totalGasCostNativeCurrency.currency.symbol,
199
+ }, 'Failed to compute USD gas price');
200
+ throw err;
201
+ }
202
+ // If gasCostInTermsOfQuoteToken is null, both attempts to calculate gasCostInTermsOfQuoteToken failed (nativePool and amountNativePool)
203
+ if (gasCostInTermsOfQuoteToken === null) {
204
+ log_1.log.info(`Unable to find ${nativeCurrency.symbol} pool with the quote token, ${quoteToken.symbol}, or amount Token, ${amountToken.symbol} to produce gas adjusted costs. Route will not account for gas.`);
205
+ return {
206
+ gasEstimate: baseGasUse,
207
+ gasCostInToken: amounts_1.CurrencyAmount.fromRawAmount(quoteToken, 0),
208
+ gasCostInUSD: amounts_1.CurrencyAmount.fromRawAmount(usdToken, 0),
209
+ };
210
+ }
211
+ return {
212
+ gasEstimate: baseGasUse,
213
+ gasCostInToken: gasCostInTermsOfQuoteToken,
214
+ gasCostInUSD: gasCostInTermsOfUSD,
215
+ };
216
+ };
217
+ return {
218
+ estimateGasCost: estimateGasCost.bind(this),
219
+ calculateL1GasFees,
220
+ };
221
+ }
222
+ estimateGas(routeWithValidQuote, gasPriceWei, chainId) {
223
+ const totalInitializedTicksCrossed = bignumber_1.BigNumber.from(Math.max(1, lodash_1.default.sum(routeWithValidQuote.initializedTicksCrossedList)));
224
+ const totalHops = bignumber_1.BigNumber.from(routeWithValidQuote.route.pools.length);
225
+ const hopsGasUse = (0, gas_costs_1.COST_PER_HOP)(chainId).mul(totalHops);
226
+ const tickGasUse = (0, gas_costs_1.COST_PER_INIT_TICK)(chainId).mul(totalInitializedTicksCrossed);
227
+ const uninitializedTickGasUse = gas_costs_1.COST_PER_UNINIT_TICK.mul(0);
228
+ // base estimate gas used based on chainId estimates for hops and ticks gas useage
229
+ const baseGasUse = (0, gas_costs_1.BASE_SWAP_COST)(chainId)
230
+ .add(hopsGasUse)
231
+ .add(tickGasUse)
232
+ .add(uninitializedTickGasUse);
233
+ const baseGasCostWei = gasPriceWei.mul(baseGasUse);
234
+ const wrappedCurrency = __1.WRAPPED_NATIVE_CURRENCY[chainId];
235
+ const totalGasCostNativeCurrency = amounts_1.CurrencyAmount.fromRawAmount(wrappedCurrency, baseGasCostWei.toString());
236
+ return {
237
+ totalGasCostNativeCurrency,
238
+ totalInitializedTicksCrossed,
239
+ baseGasUse,
240
+ };
241
+ }
242
+ /**
243
+ * To avoid having a call to optimism's L1 security fee contract for every route and amount combination,
244
+ * we replicate the gas cost accounting here.
245
+ */
246
+ calculateOptimismToL1SecurityFee(routes, swapConfig, gasData) {
247
+ const { l1BaseFee, scalar, decimals, overhead } = gasData;
248
+ const route = routes[0];
249
+ const amountToken = route.tradeType == sdk_core_1.TradeType.EXACT_INPUT
250
+ ? route.amount.currency
251
+ : route.quote.currency;
252
+ const outputToken = route.tradeType == sdk_core_1.TradeType.EXACT_INPUT
253
+ ? route.quote.currency
254
+ : route.amount.currency;
255
+ // build trade for swap calldata
256
+ const trade = (0, methodParameters_1.buildTrade)(amountToken, outputToken, route.tradeType, routes);
257
+ const data = (0, methodParameters_1.buildSwapMethodParameters)(trade, swapConfig, util_1.ChainId.OPTIMISM).calldata;
258
+ const l1GasUsed = (0, gas_factory_helpers_1.getL2ToL1GasUsed)(data, overhead);
259
+ // l1BaseFee is L1 Gas Price on etherscan
260
+ const l1Fee = l1GasUsed.mul(l1BaseFee);
261
+ const unscaled = l1Fee.mul(scalar);
262
+ // scaled = unscaled / (10 ** decimals)
263
+ const scaledConversion = bignumber_1.BigNumber.from(10).pow(decimals);
264
+ const scaled = unscaled.div(scaledConversion);
265
+ return [l1GasUsed, scaled];
266
+ }
267
+ calculateArbitrumToL1SecurityFee(routes, swapConfig, gasData) {
268
+ const { perL2TxFee, perL1CalldataFee } = gasData;
269
+ const route = routes[0];
270
+ const amountToken = route.tradeType == sdk_core_1.TradeType.EXACT_INPUT
271
+ ? route.amount.currency
272
+ : route.quote.currency;
273
+ const outputToken = route.tradeType == sdk_core_1.TradeType.EXACT_INPUT
274
+ ? route.quote.currency
275
+ : route.amount.currency;
276
+ // build trade for swap calldata
277
+ const trade = (0, methodParameters_1.buildTrade)(amountToken, outputToken, route.tradeType, routes);
278
+ const data = (0, methodParameters_1.buildSwapMethodParameters)(trade, swapConfig, util_1.ChainId.ARBITRUM_ONE).calldata;
279
+ // calculates gas amounts based on bytes of calldata, use 0 as overhead.
280
+ const l1GasUsed = (0, gas_factory_helpers_1.getL2ToL1GasUsed)(data, bignumber_1.BigNumber.from(0));
281
+ // multiply by the fee per calldata and add the flat l2 fee
282
+ let l1Fee = l1GasUsed.mul(perL1CalldataFee);
283
+ l1Fee = l1Fee.add(perL2TxFee);
284
+ return [l1GasUsed, l1Fee];
285
+ }
286
+ }
287
+ exports.V3HeuristicGasModelFactory = V3HeuristicGasModelFactory;
288
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidjMtaGV1cmlzdGljLWdhcy1tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9yb3V0ZXJzL2FscGhhLXJvdXRlci9nYXMtbW9kZWxzL3YzL3YzLWhldXJpc3RpYy1nYXMtbW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsd0RBQXFEO0FBQ3JELGdEQUE4RDtBQUU5RCxvREFBdUI7QUFFdkIsbUNBSXFCO0FBS3JCLDJDQUEyQztBQUMzQyxzREFBMEQ7QUFDMUQsOEVBSThDO0FBQzlDLDhDQUEyQztBQUMzQyx3RUFHMkM7QUFFM0MsNENBSXNCO0FBRXRCLDJDQUtxQjtBQUVyQjs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FpQkc7QUFDSCxNQUFhLDBCQUEyQixTQUFRLG1DQUF1QjtJQUNyRTtRQUNFLEtBQUssRUFBRSxDQUFDO0lBQ1YsQ0FBQztJQUVNLEtBQUssQ0FBQyxhQUFhLENBQUMsRUFDekIsT0FBTyxFQUNQLFdBQVcsRUFDWCxjQUFjLEVBQUUsWUFBWSxFQUM1QixXQUFXLEVBQ1gsVUFBVSxFQUNWLGlCQUFpQixHQUNlO1FBR2hDLE1BQU0sU0FBUyxHQUFHLGlCQUFpQjtZQUNqQyxDQUFDLENBQUMsTUFBTSxpQkFBaUIsQ0FBQyxVQUFVLEVBQUU7WUFDdEMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUVkLE1BQU0sT0FBTyxHQUFTLE1BQU0sSUFBQSxrREFBNEIsRUFDdEQsT0FBTyxFQUNQLFlBQVksQ0FDYixDQUFDO1FBRUYsTUFBTSxrQkFBa0IsR0FBRyxLQUFLLEVBQzlCLEtBQThCLEVBSzdCLEVBQUU7WUFDSCxNQUFNLFdBQVcsR0FBK0I7Z0JBQzlDLElBQUksRUFBRSxZQUFRLENBQUMsZ0JBQWdCO2dCQUMvQixTQUFTLEVBQUUsNENBQTRDO2dCQUN2RCwyQkFBMkIsRUFBRSxHQUFHO2dCQUNoQyxpQkFBaUIsRUFBRSxJQUFJLGtCQUFPLENBQUMsQ0FBQyxFQUFFLEtBQU0sQ0FB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
@@ -0,0 +1,4 @@
1
+ export * from './alpha-router';
2
+ export * from './entities';
3
+ export * from './gas-models';
4
+ export * from './quoters';
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./alpha-router"), exports);
18
+ __exportStar(require("./entities"), exports);
19
+ __exportStar(require("./gas-models"), exports);
20
+ __exportStar(require("./quoters"), exports);
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvcm91dGVycy9hbHBoYS1yb3V0ZXIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLGlEQUErQjtBQUMvQiw2Q0FBMkI7QUFDM0IsK0NBQTZCO0FBQzdCLDRDQUEwQiJ9
@@ -0,0 +1,68 @@
1
+ import { BigNumber } from '@ethersproject/bignumber';
2
+ import { Currency, Token, TradeType } from '@uniswap/sdk-core';
3
+ import { Pair } from '@uniswap/v2-sdk';
4
+ import { Pool } from '@uniswap/v3-sdk';
5
+ import { ITokenListProvider, ITokenProvider, ITokenValidatorProvider, TokenValidationResult } from '../../../providers';
6
+ import { ChainId, CurrencyAmount } from '../../../util';
7
+ import { MixedRoute, V2Route, V3Route } from '../../router';
8
+ import { AlphaRouterConfig } from '../alpha-router';
9
+ import { RouteWithValidQuote } from '../entities/route-with-valid-quote';
10
+ import { CandidatePoolsBySelectionCriteria } from '../functions/get-candidate-pools';
11
+ import { IGasModel } from '../gas-models';
12
+ import { GetQuotesResult, GetRoutesResult } from './model/results';
13
+ /**
14
+ * Interface for a Quoter.
15
+ * Defines the base dependencies, helper methods and interface for how to fetch quotes.
16
+ *
17
+ * @abstract
18
+ * @template Route
19
+ */
20
+ export declare abstract class BaseQuoter<Route extends V2Route | V3Route | MixedRoute> {
21
+ protected tokenProvider: ITokenProvider;
22
+ protected chainId: ChainId;
23
+ protected blockedTokenListProvider?: ITokenListProvider;
24
+ protected tokenValidatorProvider?: ITokenValidatorProvider;
25
+ constructor(tokenProvider: ITokenProvider, chainId: ChainId, blockedTokenListProvider?: ITokenListProvider, tokenValidatorProvider?: ITokenValidatorProvider);
26
+ /**
27
+ * Protected method in charge of fetching the routes for the tokenIn/tokenOut pair.
28
+ *
29
+ * @protected
30
+ * @abstract
31
+ * @param tokenIn The token that the user wants to provide
32
+ * @param tokenOut The token that the usaw wants to receive
33
+ * @param tradeType The type of quote the user wants. He could want to provide exactly X tokenIn or receive exactly X tokenOut
34
+ * @param routingConfig
35
+ * @returns Promise<GetRoutesResult<Route>>
36
+ */
37
+ protected abstract getRoutes(tokenIn: Token, tokenOut: Token, tradeType: TradeType, routingConfig: AlphaRouterConfig): Promise<GetRoutesResult<Route>>;
38
+ /**
39
+ * Public method that will fetch quotes for the combination of every route and every amount.
40
+ *
41
+ * @param routes the list of route that can be used to fetch a quote.
42
+ * @param amounts the list of amounts to query for EACH route.
43
+ * @param percents the percentage of each amount.
44
+ * @param quoteToken
45
+ * @param tradeType
46
+ * @param routingConfig
47
+ * @param candidatePools the candidate pools that were used to generate the routes
48
+ * @param gasModel the gasModel to be used for estimating gas cost
49
+ * @param gasPriceWei instead of passing gasModel, gasPriceWei is used to generate a gasModel
50
+ * @returns Promise<GetQuotesResult<Route>>
51
+ */
52
+ abstract getQuotes(routes: Route[], amounts: CurrencyAmount[], percents: number[], quoteToken: Token, tradeType: TradeType, routingConfig: AlphaRouterConfig, candidatePools?: CandidatePoolsBySelectionCriteria, gasModel?: IGasModel<RouteWithValidQuote>, gasPriceWei?: BigNumber): Promise<GetQuotesResult>;
53
+ /**
54
+ * Public method which would first get the routes and then get the quotes.
55
+ *
56
+ * @param tokenIn The token that the user wants to provide
57
+ * @param tokenOut The token that the usaw wants to receive
58
+ * @param amounts the list of amounts to query for EACH route.
59
+ * @param percents the percentage of each amount.
60
+ * @param quoteToken
61
+ * @param tradeType
62
+ * @param routingConfig
63
+ * @param gasModel the gasModel to be used for estimating gas cost
64
+ * @param gasPriceWei instead of passing gasModel, gasPriceWei is used to generate a gasModel
65
+ */
66
+ getRoutesThenQuotes(tokenIn: Token, tokenOut: Token, amounts: CurrencyAmount[], percents: number[], quoteToken: Token, tradeType: TradeType, routingConfig: AlphaRouterConfig, gasModel?: IGasModel<RouteWithValidQuote>, gasPriceWei?: BigNumber): Promise<GetQuotesResult>;
67
+ protected applyTokenValidatorToPools<T extends Pool | Pair>(pools: T[], isInvalidFn: (token: Currency, tokenValidation: TokenValidationResult | undefined) => boolean): Promise<T[]>;
68
+ }
@@ -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.BaseQuoter = void 0;
7
+ const lodash_1 = __importDefault(require("lodash"));
8
+ const util_1 = require("../../../util");
9
+ /**
10
+ * Interface for a Quoter.
11
+ * Defines the base dependencies, helper methods and interface for how to fetch quotes.
12
+ *
13
+ * @abstract
14
+ * @template Route
15
+ */
16
+ class BaseQuoter {
17
+ constructor(tokenProvider, chainId, blockedTokenListProvider, tokenValidatorProvider) {
18
+ this.tokenProvider = tokenProvider;
19
+ this.chainId = chainId;
20
+ this.blockedTokenListProvider = blockedTokenListProvider;
21
+ this.tokenValidatorProvider = tokenValidatorProvider;
22
+ }
23
+ /**
24
+ * Public method which would first get the routes and then get the quotes.
25
+ *
26
+ * @param tokenIn The token that the user wants to provide
27
+ * @param tokenOut The token that the usaw wants to receive
28
+ * @param amounts the list of amounts to query for EACH route.
29
+ * @param percents the percentage of each amount.
30
+ * @param quoteToken
31
+ * @param tradeType
32
+ * @param routingConfig
33
+ * @param gasModel the gasModel to be used for estimating gas cost
34
+ * @param gasPriceWei instead of passing gasModel, gasPriceWei is used to generate a gasModel
35
+ */
36
+ getRoutesThenQuotes(tokenIn, tokenOut, amounts, percents, quoteToken, tradeType, routingConfig, gasModel, gasPriceWei) {
37
+ return this.getRoutes(tokenIn, tokenOut, tradeType, routingConfig)
38
+ .then((routesResult) => this.getQuotes(routesResult.routes, amounts, percents, quoteToken, tradeType, routingConfig, routesResult.candidatePools, gasModel, gasPriceWei));
39
+ }
40
+ async applyTokenValidatorToPools(pools, isInvalidFn) {
41
+ if (!this.tokenValidatorProvider) {
42
+ return pools;
43
+ }
44
+ util_1.log.info(`Running token validator on ${pools.length} pools`);
45
+ const tokens = lodash_1.default.flatMap(pools, (pool) => [pool.token0, pool.token1]);
46
+ const tokenValidationResults = await this.tokenValidatorProvider.validateTokens(tokens);
47
+ const poolsFiltered = lodash_1.default.filter(pools, (pool) => {
48
+ const token0Validation = tokenValidationResults.getValidationByToken(pool.token0);
49
+ const token1Validation = tokenValidationResults.getValidationByToken(pool.token1);
50
+ const token0Invalid = isInvalidFn(pool.token0, token0Validation);
51
+ const token1Invalid = isInvalidFn(pool.token1, token1Validation);
52
+ if (token0Invalid || token1Invalid) {
53
+ util_1.log.info(`Dropping pool ${(0, util_1.poolToString)(pool)} because token is invalid. ${pool.token0.symbol}: ${token0Validation}, ${pool.token1.symbol}: ${token1Validation}`);
54
+ }
55
+ return !token0Invalid && !token1Invalid;
56
+ });
57
+ return poolsFiltered;
58
+ }
59
+ }
60
+ exports.BaseQuoter = BaseQuoter;
61
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1xdW90ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvcm91dGVycy9hbHBoYS1yb3V0ZXIvcXVvdGVycy9iYXNlLXF1b3Rlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFJQSxvREFBdUI7QUFHdkIsd0NBQTJFO0FBUzNFOzs7Ozs7R0FNRztBQUNILE1BQXNCLFVBQVU7SUFNOUIsWUFDRSxhQUE2QixFQUM3QixPQUFnQixFQUNoQix3QkFBNkMsRUFDN0Msc0JBQWdEO1FBRWhELElBQUksQ0FBQyxhQUFhLEdBQUcsYUFBYSxDQUFDO1FBQ25DLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyx3QkFBd0IsR0FBRyx3QkFBd0IsQ0FBQztRQUN6RCxJQUFJLENBQUMsc0JBQXNCLEdBQUcsc0JBQXNCLENBQUM7SUFDdkQsQ0FBQztJQThDRDs7Ozs7Ozs7Ozs7O09BWUc7SUFDSSxtQkFBbUIsQ0FDeEIsT0FBYyxFQUNkLFFBQWUsRUFDZixPQUF5QixFQUN6QixRQUFrQixFQUNsQixVQUFpQixFQUNqQixTQUFvQixFQUNwQixhQUFnQyxFQUNoQyxRQUF5QyxFQUN6QyxXQUF1QjtRQUV2QixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsYUFBYSxDQUFDO2FBQy9ELElBQUksQ0FBQyxDQUFDLFlBQVksRUFBRSxFQUFFLENBQ3JCLElBQUksQ0FBQyxTQUFTLENBQ1osWUFBWSxDQUFDLE1BQU0sRUFDbkIsT0FBTyxFQUNQLFFBQVEsRUFDUixVQUFVLEVBQ1YsU0FBUyxFQUNULGFBQWEsRUFDYixZQUFZLENBQUMsY0FBYyxFQUMzQixRQUFRLEVBQ1IsV0FBVyxDQUNaLENBQ0YsQ0FBQztJQUNOLENBQUM7SUFFUyxLQUFLLENBQUMsMEJBQTBCLENBQ3hDLEtBQVUsRUFDVixXQUdZO1FBRVosSUFBSSxDQUFDLElBQUksQ0FBQyxzQkFBc0IsRUFBRTtZQUNoQyxPQUFPLEtBQUssQ0FBQztTQUNkO1FBRUQsVUFBRyxDQUFDLElBQUksQ0FBQyw4QkFBOEIsS0FBSyxDQUFDLE1BQU0sUUFBUSxDQUFDLENBQUM7UUFFN0QsTUFBTSxNQUFNLEdBQUcsZ0JBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFFdEUsTUFBTSxzQkFBc0IsR0FBRyxNQUFNLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFeEYsTUFBTSxhQUFhLEdBQUcsZ0JBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsSUFBTyxFQUFFLEVBQUU7WUFDaEQsTUFBTSxnQkFBZ0IsR0FBRyxzQkFBc0IsQ0FBQyxvQkFBb0IsQ0FDbEUsSUFBSSxDQUFDLE1BQU0sQ0FDWixDQUFDO1lBQ0YsTUFBTSxnQkFBZ0IsR0FBRyxzQkFBc0IsQ0FBQyxvQkFBb0IsQ0FDbEUsSUFBSSxDQUFDLE1BQU0sQ0FDWixDQUFDO1lBRUYsTUFBTSxhQUFhLEdBQUcsV0FBVyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztZQUNqRSxNQUFNLGFBQWEsR0FBRyxXQUFXLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO1lBRWpFLElBQUksYUFBYSxJQUFJLGFBQWEsRUFBRTtnQkFDbEMsVUFBRyxDQUFDLElBQUksQ0FDTixpQkFBaUIsSUFBQSxtQkFBWSxFQUFDLElBQUksQ0FBQyw4QkFBOEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUM3RSxLQUFLLGdCQUFnQixLQUFLLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxLQUFLLGdCQUFnQixFQUFFLENBQ3BFLENBQUM7YUFDSDtZQUVELE9BQU8sQ0FBQyxhQUFhLElBQUksQ0FBQyxhQUFhLENBQUM7UUFDMUMsQ0FBQyxDQUFDLENBQUM7UUFFSCxPQUFPLGFBQWEsQ0FBQztJQUN2QixDQUFDO0NBQ0Y7QUE5SUQsZ0NBOElDIn0=
@@ -0,0 +1,5 @@
1
+ export * from './model/';
2
+ export * from './base-quoter';
3
+ export * from './v2-quoter';
4
+ export * from './v3-quoter';
5
+ export * from './mixed-quoter';