@ring-protocol/smart-order-router 0.5.0

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 (606) hide show
  1. package/CHANGELOG.md +255 -0
  2. package/LICENSE +674 -0
  3. package/README.md +307 -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 +10 -0
  7. package/build/main/providers/cache-node.js +33 -0
  8. package/build/main/providers/cache.d.ts +14 -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 +29 -0
  15. package/build/main/providers/caching/route/model/cached-route.js +77 -0
  16. package/build/main/providers/caching/route/model/cached-routes.d.ts +67 -0
  17. package/build/main/providers/caching/route/model/cached-routes.js +81 -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 +111 -0
  21. package/build/main/providers/caching/route/route-caching-provider.js +86 -0
  22. package/build/main/providers/caching-gas-provider.d.ts +23 -0
  23. package/build/main/providers/caching-gas-provider.js +41 -0
  24. package/build/main/providers/caching-subgraph-provider.d.ts +33 -0
  25. package/build/main/providers/caching-subgraph-provider.js +186 -0
  26. package/build/main/providers/caching-token-list-provider.d.ts +52 -0
  27. package/build/main/providers/caching-token-list-provider.js +147 -0
  28. package/build/main/providers/caching-token-provider.d.ts +24 -0
  29. package/build/main/providers/caching-token-provider.js +234 -0
  30. package/build/main/providers/eip-1559-gas-price-provider.d.ts +31 -0
  31. package/build/main/providers/eip-1559-gas-price-provider.js +71 -0
  32. package/build/main/providers/eth-estimate-gas-provider.d.ts +21 -0
  33. package/build/main/providers/eth-estimate-gas-provider.js +91 -0
  34. package/build/main/providers/eth-gas-station-info-gas-price-provider.d.ts +19 -0
  35. package/build/main/providers/eth-gas-station-info-gas-price-provider.js +36 -0
  36. package/build/main/providers/fewV2/ring-caching-pool-provider.d.ts +33 -0
  37. package/build/main/providers/fewV2/ring-caching-pool-provider.js +89 -0
  38. package/build/main/providers/fewV2/ring-caching-subgraph-provider.d.ts +19 -0
  39. package/build/main/providers/fewV2/ring-caching-subgraph-provider.js +24 -0
  40. package/build/main/providers/fewV2/ring-pool-provider.d.ts +63 -0
  41. package/build/main/providers/fewV2/ring-pool-provider.js +148 -0
  42. package/build/main/providers/fewV2/ring-quote-provider.d.ts +34 -0
  43. package/build/main/providers/fewV2/ring-quote-provider.js +90 -0
  44. package/build/main/providers/fewV2/ring-static-subgraph-provider.d.ts +24 -0
  45. package/build/main/providers/fewV2/ring-static-subgraph-provider.js +284 -0
  46. package/build/main/providers/fewV2/ring-subgraph-provider-with-fallback.d.ts +16 -0
  47. package/build/main/providers/fewV2/ring-subgraph-provider-with-fallback.js +23 -0
  48. package/build/main/providers/fewV2/ring-subgraph-provider.d.ts +52 -0
  49. package/build/main/providers/fewV2/ring-subgraph-provider.js +183 -0
  50. package/build/main/providers/fewV2/ring-uri-subgraph-provider.d.ts +4 -0
  51. package/build/main/providers/fewV2/ring-uri-subgraph-provider.js +8 -0
  52. package/build/main/providers/gas-price-provider.d.ts +10 -0
  53. package/build/main/providers/gas-price-provider.js +10 -0
  54. package/build/main/providers/index.d.ts +56 -0
  55. package/build/main/providers/index.js +73 -0
  56. package/build/main/providers/legacy-gas-price-provider.d.ts +7 -0
  57. package/build/main/providers/legacy-gas-price-provider.js +18 -0
  58. package/build/main/providers/multicall-provider.d.ts +83 -0
  59. package/build/main/providers/multicall-provider.js +15 -0
  60. package/build/main/providers/multicall-ringswap-provider.d.ts +35 -0
  61. package/build/main/providers/multicall-ringswap-provider.js +164 -0
  62. package/build/main/providers/multicall-uniswap-provider.d.ts +37 -0
  63. package/build/main/providers/multicall-uniswap-provider.js +164 -0
  64. package/build/main/providers/on-chain-gas-price-provider.d.ts +19 -0
  65. package/build/main/providers/on-chain-gas-price-provider.js +37 -0
  66. package/build/main/providers/on-chain-quote-provider.d.ts +260 -0
  67. package/build/main/providers/on-chain-quote-provider.js +702 -0
  68. package/build/main/providers/pool-provider.d.ts +45 -0
  69. package/build/main/providers/pool-provider.js +73 -0
  70. package/build/main/providers/portion-provider.d.ts +86 -0
  71. package/build/main/providers/portion-provider.js +118 -0
  72. package/build/main/providers/provider.d.ts +38 -0
  73. package/build/main/providers/provider.js +3 -0
  74. package/build/main/providers/simulation-provider.d.ts +46 -0
  75. package/build/main/providers/simulation-provider.js +138 -0
  76. package/build/main/providers/static-gas-price-provider.d.ts +7 -0
  77. package/build/main/providers/static-gas-price-provider.js +13 -0
  78. package/build/main/providers/subgraph-provider-with-fallback.d.ts +11 -0
  79. package/build/main/providers/subgraph-provider-with-fallback.js +25 -0
  80. package/build/main/providers/subgraph-provider.d.ts +56 -0
  81. package/build/main/providers/subgraph-provider.js +287 -0
  82. package/build/main/providers/swap-router-provider.d.ts +30 -0
  83. package/build/main/providers/swap-router-provider.js +42 -0
  84. package/build/main/providers/tenderly-simulation-provider.d.ts +63 -0
  85. package/build/main/providers/tenderly-simulation-provider.js +446 -0
  86. package/build/main/providers/token-fee-fetcher.d.ts +31 -0
  87. package/build/main/providers/token-fee-fetcher.js +114 -0
  88. package/build/main/providers/token-properties-provider.d.ts +31 -0
  89. package/build/main/providers/token-properties-provider.js +118 -0
  90. package/build/main/providers/token-provider.d.ts +167 -0
  91. package/build/main/providers/token-provider.js +414 -0
  92. package/build/main/providers/token-validator-provider.d.ts +42 -0
  93. package/build/main/providers/token-validator-provider.js +99 -0
  94. package/build/main/providers/uri-subgraph-provider.d.ts +21 -0
  95. package/build/main/providers/uri-subgraph-provider.js +65 -0
  96. package/build/main/providers/v2/caching-pool-provider.d.ts +33 -0
  97. package/build/main/providers/v2/caching-pool-provider.js +89 -0
  98. package/build/main/providers/v2/caching-subgraph-provider.d.ts +19 -0
  99. package/build/main/providers/v2/caching-subgraph-provider.js +24 -0
  100. package/build/main/providers/v2/pool-provider.d.ts +63 -0
  101. package/build/main/providers/v2/pool-provider.js +148 -0
  102. package/build/main/providers/v2/quote-provider.d.ts +34 -0
  103. package/build/main/providers/v2/quote-provider.js +90 -0
  104. package/build/main/providers/v2/static-subgraph-provider.d.ts +19 -0
  105. package/build/main/providers/v2/static-subgraph-provider.js +183 -0
  106. package/build/main/providers/v2/subgraph-provider-with-fallback.d.ts +16 -0
  107. package/build/main/providers/v2/subgraph-provider-with-fallback.js +23 -0
  108. package/build/main/providers/v2/subgraph-provider.d.ts +52 -0
  109. package/build/main/providers/v2/subgraph-provider.js +334 -0
  110. package/build/main/providers/v2/uri-subgraph-provider.d.ts +4 -0
  111. package/build/main/providers/v2/uri-subgraph-provider.js +8 -0
  112. package/build/main/providers/v3/caching-pool-provider.d.ts +32 -0
  113. package/build/main/providers/v3/caching-pool-provider.js +84 -0
  114. package/build/main/providers/v3/caching-subgraph-provider.d.ts +19 -0
  115. package/build/main/providers/v3/caching-subgraph-provider.js +24 -0
  116. package/build/main/providers/v3/gas-data-provider.d.ts +39 -0
  117. package/build/main/providers/v3/gas-data-provider.js +26 -0
  118. package/build/main/providers/v3/pool-provider.d.ts +77 -0
  119. package/build/main/providers/v3/pool-provider.js +108 -0
  120. package/build/main/providers/v3/static-subgraph-provider.d.ts +21 -0
  121. package/build/main/providers/v3/static-subgraph-provider.js +229 -0
  122. package/build/main/providers/v3/subgraph-provider-with-fallback.d.ts +12 -0
  123. package/build/main/providers/v3/subgraph-provider-with-fallback.js +19 -0
  124. package/build/main/providers/v3/subgraph-provider.d.ts +45 -0
  125. package/build/main/providers/v3/subgraph-provider.js +46 -0
  126. package/build/main/providers/v3/uri-subgraph-provider.d.ts +4 -0
  127. package/build/main/providers/v3/uri-subgraph-provider.js +8 -0
  128. package/build/main/providers/v4/caching-pool-provider.d.ts +24 -0
  129. package/build/main/providers/v4/caching-pool-provider.js +81 -0
  130. package/build/main/providers/v4/caching-subgraph-provider.d.ts +19 -0
  131. package/build/main/providers/v4/caching-subgraph-provider.js +24 -0
  132. package/build/main/providers/v4/euler-swap-hooks-subgraph-provider.d.ts +25 -0
  133. package/build/main/providers/v4/euler-swap-hooks-subgraph-provider.js +160 -0
  134. package/build/main/providers/v4/pool-provider.d.ts +58 -0
  135. package/build/main/providers/v4/pool-provider.js +115 -0
  136. package/build/main/providers/v4/static-subgraph-provider.d.ts +15 -0
  137. package/build/main/providers/v4/static-subgraph-provider.js +78 -0
  138. package/build/main/providers/v4/subgraph-provider-with-fallback.d.ts +5 -0
  139. package/build/main/providers/v4/subgraph-provider-with-fallback.js +12 -0
  140. package/build/main/providers/v4/subgraph-provider.d.ts +63 -0
  141. package/build/main/providers/v4/subgraph-provider.js +63 -0
  142. package/build/main/providers/v4/uri-subgraph-provider.d.ts +4 -0
  143. package/build/main/providers/v4/uri-subgraph-provider.js +8 -0
  144. package/build/main/routers/alpha-router/alpha-router.d.ts +483 -0
  145. package/build/main/routers/alpha-router/alpha-router.js +2267 -0
  146. package/build/main/routers/alpha-router/config.d.ts +4 -0
  147. package/build/main/routers/alpha-router/config.js +129 -0
  148. package/build/main/routers/alpha-router/entities/index.d.ts +1 -0
  149. package/build/main/routers/alpha-router/entities/index.js +18 -0
  150. package/build/main/routers/alpha-router/entities/route-with-valid-quote.d.ts +329 -0
  151. package/build/main/routers/alpha-router/entities/route-with-valid-quote.js +319 -0
  152. package/build/main/routers/alpha-router/functions/best-swap-route.d.ts +25 -0
  153. package/build/main/routers/alpha-router/functions/best-swap-route.js +597 -0
  154. package/build/main/routers/alpha-router/functions/calculate-ratio-amount-in.d.ts +3 -0
  155. package/build/main/routers/alpha-router/functions/calculate-ratio-amount-in.js +18 -0
  156. package/build/main/routers/alpha-router/functions/compute-all-routes.d.ts +16 -0
  157. package/build/main/routers/alpha-router/functions/compute-all-routes.js +158 -0
  158. package/build/main/routers/alpha-router/functions/get-candidate-pools.d.ts +192 -0
  159. package/build/main/routers/alpha-router/functions/get-candidate-pools.js +3025 -0
  160. package/build/main/routers/alpha-router/gas-models/fewV2/v2-heuristic-gas-model.d.ts +31 -0
  161. package/build/main/routers/alpha-router/gas-models/fewV2/v2-heuristic-gas-model.js +169 -0
  162. package/build/main/routers/alpha-router/gas-models/gas-costs.d.ts +12 -0
  163. package/build/main/routers/alpha-router/gas-models/gas-costs.js +200 -0
  164. package/build/main/routers/alpha-router/gas-models/gas-model.d.ts +111 -0
  165. package/build/main/routers/alpha-router/gas-models/gas-model.js +120 -0
  166. package/build/main/routers/alpha-router/gas-models/index.d.ts +5 -0
  167. package/build/main/routers/alpha-router/gas-models/index.js +22 -0
  168. package/build/main/routers/alpha-router/gas-models/mixedRoute/mixed-route-heuristic-gas-model.d.ts +24 -0
  169. package/build/main/routers/alpha-router/gas-models/mixedRoute/mixed-route-heuristic-gas-model.js +161 -0
  170. package/build/main/routers/alpha-router/gas-models/ring-gas-model.d.ts +111 -0
  171. package/build/main/routers/alpha-router/gas-models/ring-gas-model.js +169 -0
  172. package/build/main/routers/alpha-router/gas-models/tick-based-heuristic-gas-model.d.ts +21 -0
  173. package/build/main/routers/alpha-router/gas-models/tick-based-heuristic-gas-model.js +366 -0
  174. package/build/main/routers/alpha-router/gas-models/uniswapFewV3/v3-heuristic-gas-model.d.ts +26 -0
  175. package/build/main/routers/alpha-router/gas-models/uniswapFewV3/v3-heuristic-gas-model.js +41 -0
  176. package/build/main/routers/alpha-router/gas-models/uniswapFewV4/v4-heuristic-gas-model.d.ts +15 -0
  177. package/build/main/routers/alpha-router/gas-models/uniswapFewV4/v4-heuristic-gas-model.js +40 -0
  178. package/build/main/routers/alpha-router/gas-models/v2/v2-heuristic-gas-model.d.ts +31 -0
  179. package/build/main/routers/alpha-router/gas-models/v2/v2-heuristic-gas-model.js +169 -0
  180. package/build/main/routers/alpha-router/gas-models/v3/v3-heuristic-gas-model.d.ts +26 -0
  181. package/build/main/routers/alpha-router/gas-models/v3/v3-heuristic-gas-model.js +41 -0
  182. package/build/main/routers/alpha-router/gas-models/v4/v4-heuristic-gas-model.d.ts +15 -0
  183. package/build/main/routers/alpha-router/gas-models/v4/v4-heuristic-gas-model.js +40 -0
  184. package/build/main/routers/alpha-router/index.d.ts +4 -0
  185. package/build/main/routers/alpha-router/index.js +21 -0
  186. package/build/main/routers/alpha-router/quoters/base-quoter.d.ts +78 -0
  187. package/build/main/routers/alpha-router/quoters/base-quoter.js +77 -0
  188. package/build/main/routers/alpha-router/quoters/few-v2-quoter.d.ts +24 -0
  189. package/build/main/routers/alpha-router/quoters/few-v2-quoter.js +141 -0
  190. package/build/main/routers/alpha-router/quoters/index.d.ts +5 -0
  191. package/build/main/routers/alpha-router/quoters/index.js +22 -0
  192. package/build/main/routers/alpha-router/quoters/mixed-quoter.d.ts +34 -0
  193. package/build/main/routers/alpha-router/quoters/mixed-quoter.js +156 -0
  194. package/build/main/routers/alpha-router/quoters/model/index.d.ts +1 -0
  195. package/build/main/routers/alpha-router/quoters/model/index.js +18 -0
  196. package/build/main/routers/alpha-router/quoters/model/results/get-quotes-result.d.ts +6 -0
  197. package/build/main/routers/alpha-router/quoters/model/results/get-quotes-result.js +3 -0
  198. package/build/main/routers/alpha-router/quoters/model/results/get-routes-result.d.ts +6 -0
  199. package/build/main/routers/alpha-router/quoters/model/results/get-routes-result.js +3 -0
  200. package/build/main/routers/alpha-router/quoters/model/results/index.d.ts +2 -0
  201. package/build/main/routers/alpha-router/quoters/model/results/index.js +19 -0
  202. package/build/main/routers/alpha-router/quoters/uniswap-few-v3-quoter.d.ts +19 -0
  203. package/build/main/routers/alpha-router/quoters/uniswap-few-v3-quoter.js +118 -0
  204. package/build/main/routers/alpha-router/quoters/uniswap-few-v4-quoter.d.ts +18 -0
  205. package/build/main/routers/alpha-router/quoters/uniswap-few-v4-quoter.js +121 -0
  206. package/build/main/routers/alpha-router/quoters/v2-quoter.d.ts +24 -0
  207. package/build/main/routers/alpha-router/quoters/v2-quoter.js +141 -0
  208. package/build/main/routers/alpha-router/quoters/v3-quoter.d.ts +19 -0
  209. package/build/main/routers/alpha-router/quoters/v3-quoter.js +125 -0
  210. package/build/main/routers/alpha-router/quoters/v4-quoter.d.ts +18 -0
  211. package/build/main/routers/alpha-router/quoters/v4-quoter.js +121 -0
  212. package/build/main/routers/index.d.ts +4 -0
  213. package/build/main/routers/index.js +21 -0
  214. package/build/main/routers/legacy-router/bases.d.ts +225 -0
  215. package/build/main/routers/legacy-router/bases.js +132 -0
  216. package/build/main/routers/legacy-router/index.d.ts +1 -0
  217. package/build/main/routers/legacy-router/index.js +18 -0
  218. package/build/main/routers/legacy-router/legacy-router.d.ts +41 -0
  219. package/build/main/routers/legacy-router/legacy-router.js +291 -0
  220. package/build/main/routers/router.d.ts +195 -0
  221. package/build/main/routers/router.js +68 -0
  222. package/build/main/tsconfig.tsbuildinfo +1 -0
  223. package/build/main/types/other/commons.d.ts +16 -0
  224. package/build/main/types/other/commons.js +6 -0
  225. package/build/main/types/other/factories/Erc20__factory.d.ts +45 -0
  226. package/build/main/types/other/factories/Erc20__factory.js +240 -0
  227. package/build/main/types/other/factories/GasDataArbitrum__factory.d.ts +18 -0
  228. package/build/main/types/other/factories/GasDataArbitrum__factory.js +58 -0
  229. package/build/main/types/other/factories/IMixedRouteQuoterV1__factory.d.ts +41 -0
  230. package/build/main/types/other/factories/IMixedRouteQuoterV1__factory.js +156 -0
  231. package/build/main/types/other/factories/ITokenValidator__factory.d.ts +22 -0
  232. package/build/main/types/other/factories/ITokenValidator__factory.js +78 -0
  233. package/build/main/types/other/factories/MixedRouteQuoterV2__factory.d.ts +86 -0
  234. package/build/main/types/other/factories/MixedRouteQuoterV2__factory.js +477 -0
  235. package/build/main/types/other/factories/Permit2__factory.d.ts +87 -0
  236. package/build/main/types/other/factories/Permit2__factory.js +936 -0
  237. package/build/main/types/other/factories/StateView__factory.d.ts +32 -0
  238. package/build/main/types/other/factories/StateView__factory.js +383 -0
  239. package/build/main/types/other/factories/SwapRouter02__factory.d.ts +67 -0
  240. package/build/main/types/other/factories/SwapRouter02__factory.js +1098 -0
  241. package/build/main/types/other/factories/TokenFeeDetector__factory.d.ts +47 -0
  242. package/build/main/types/other/factories/TokenFeeDetector__factory.js +243 -0
  243. package/build/main/types/other/factories/V4Quoter__factory.d.ts +37 -0
  244. package/build/main/types/other/factories/V4Quoter__factory.js +312 -0
  245. package/build/main/types/v2/commons.d.ts +16 -0
  246. package/build/main/types/v2/commons.js +6 -0
  247. package/build/main/types/v2/factories/IUniswapV2Pair__factory.d.ts +35 -0
  248. package/build/main/types/v2/factories/IUniswapV2Pair__factory.js +671 -0
  249. package/build/main/types/v3/commons.d.ts +16 -0
  250. package/build/main/types/v3/commons.js +6 -0
  251. package/build/main/types/v3/factories/IERC20Metadata__factory.d.ts +35 -0
  252. package/build/main/types/v3/factories/IERC20Metadata__factory.js +242 -0
  253. package/build/main/types/v3/factories/IQuoterV2__factory.d.ts +41 -0
  254. package/build/main/types/v3/factories/IQuoterV2__factory.js +220 -0
  255. package/build/main/types/v3/factories/IUniswapV3PoolState__factory.d.ts +22 -0
  256. package/build/main/types/v3/factories/IUniswapV3PoolState__factory.js +266 -0
  257. package/build/main/types/v3/factories/UniswapInterfaceMulticall__factory.d.ts +61 -0
  258. package/build/main/types/v3/factories/UniswapInterfaceMulticall__factory.js +127 -0
  259. package/build/main/util/addresses.d.ts +34 -0
  260. package/build/main/util/addresses.js +140 -0
  261. package/build/main/util/amounts.d.ts +10 -0
  262. package/build/main/util/amounts.js +94 -0
  263. package/build/main/util/callData.d.ts +1 -0
  264. package/build/main/util/callData.js +6 -0
  265. package/build/main/util/chains.d.ts +75 -0
  266. package/build/main/util/chains.js +780 -0
  267. package/build/main/util/defaultBlocksToLive.d.ts +4 -0
  268. package/build/main/util/defaultBlocksToLive.js +57 -0
  269. package/build/main/util/fewAddress.d.ts +48 -0
  270. package/build/main/util/fewAddress.js +624 -0
  271. package/build/main/util/gas-factory-helpers.d.ts +38 -0
  272. package/build/main/util/gas-factory-helpers.js +596 -0
  273. package/build/main/util/hooksOptions.d.ts +5 -0
  274. package/build/main/util/hooksOptions.js +10 -0
  275. package/build/main/util/index.d.ts +10 -0
  276. package/build/main/util/index.js +27 -0
  277. package/build/main/util/intent.d.ts +6 -0
  278. package/build/main/util/intent.js +13 -0
  279. package/build/main/util/l2FeeChains.d.ts +2 -0
  280. package/build/main/util/l2FeeChains.js +18 -0
  281. package/build/main/util/log.d.ts +3 -0
  282. package/build/main/util/log.js +97 -0
  283. package/build/main/util/methodParameters.d.ts +5 -0
  284. package/build/main/util/methodParameters.js +176 -0
  285. package/build/main/util/metric.d.ts +48 -0
  286. package/build/main/util/metric.js +59 -0
  287. package/build/main/util/mixedRouteFilterOutV4Pools.d.ts +3 -0
  288. package/build/main/util/mixedRouteFilterOutV4Pools.js +17 -0
  289. package/build/main/util/onchainQuoteProviderConfigs.d.ts +42 -0
  290. package/build/main/util/onchainQuoteProviderConfigs.js +72 -0
  291. package/build/main/util/pool.d.ts +5 -0
  292. package/build/main/util/pool.js +46 -0
  293. package/build/main/util/protocols.d.ts +2 -0
  294. package/build/main/util/protocols.js +22 -0
  295. package/build/main/util/routes.d.ts +11 -0
  296. package/build/main/util/routes.js +159 -0
  297. package/build/main/util/serializeRouteIds.d.ts +2 -0
  298. package/build/main/util/serializeRouteIds.js +12 -0
  299. package/build/main/util/simple-perf-tracker.d.ts +27 -0
  300. package/build/main/util/simple-perf-tracker.js +171 -0
  301. package/build/main/util/tenderlySimulationErrorBreakDown.d.ts +3 -0
  302. package/build/main/util/tenderlySimulationErrorBreakDown.js +33 -0
  303. package/build/main/util/unsupported-tokens.d.ts +37 -0
  304. package/build/main/util/unsupported-tokens.js +1119 -0
  305. package/build/module/index.d.ts +3 -0
  306. package/build/module/index.js +4 -0
  307. package/build/module/providers/cache-node.d.ts +10 -0
  308. package/build/module/providers/cache-node.js +29 -0
  309. package/build/module/providers/cache.d.ts +14 -0
  310. package/build/module/providers/cache.js +2 -0
  311. package/build/module/providers/caching/route/index.d.ts +2 -0
  312. package/build/module/providers/caching/route/index.js +3 -0
  313. package/build/module/providers/caching/route/model/cache-mode.d.ts +16 -0
  314. package/build/module/providers/caching/route/model/cache-mode.js +18 -0
  315. package/build/module/providers/caching/route/model/cached-route.d.ts +29 -0
  316. package/build/module/providers/caching/route/model/cached-route.js +73 -0
  317. package/build/module/providers/caching/route/model/cached-routes.d.ts +67 -0
  318. package/build/module/providers/caching/route/model/cached-routes.js +74 -0
  319. package/build/module/providers/caching/route/model/index.d.ts +3 -0
  320. package/build/module/providers/caching/route/model/index.js +4 -0
  321. package/build/module/providers/caching/route/route-caching-provider.d.ts +111 -0
  322. package/build/module/providers/caching/route/route-caching-provider.js +82 -0
  323. package/build/module/providers/caching-gas-provider.d.ts +23 -0
  324. package/build/module/providers/caching-gas-provider.js +37 -0
  325. package/build/module/providers/caching-subgraph-provider.d.ts +33 -0
  326. package/build/module/providers/caching-subgraph-provider.js +182 -0
  327. package/build/module/providers/caching-token-list-provider.d.ts +52 -0
  328. package/build/module/providers/caching-token-list-provider.js +140 -0
  329. package/build/module/providers/caching-token-provider.d.ts +24 -0
  330. package/build/module/providers/caching-token-provider.js +227 -0
  331. package/build/module/providers/eip-1559-gas-price-provider.d.ts +31 -0
  332. package/build/module/providers/eip-1559-gas-price-provider.js +64 -0
  333. package/build/module/providers/eth-estimate-gas-provider.d.ts +21 -0
  334. package/build/module/providers/eth-estimate-gas-provider.js +99 -0
  335. package/build/module/providers/eth-gas-station-info-gas-price-provider.d.ts +19 -0
  336. package/build/module/providers/eth-gas-station-info-gas-price-provider.js +29 -0
  337. package/build/module/providers/fewV2/ring-caching-pool-provider.d.ts +33 -0
  338. package/build/module/providers/fewV2/ring-caching-pool-provider.js +85 -0
  339. package/build/module/providers/fewV2/ring-caching-subgraph-provider.d.ts +19 -0
  340. package/build/module/providers/fewV2/ring-caching-subgraph-provider.js +20 -0
  341. package/build/module/providers/fewV2/ring-pool-provider.d.ts +63 -0
  342. package/build/module/providers/fewV2/ring-pool-provider.js +141 -0
  343. package/build/module/providers/fewV2/ring-quote-provider.d.ts +34 -0
  344. package/build/module/providers/fewV2/ring-quote-provider.js +86 -0
  345. package/build/module/providers/fewV2/ring-static-subgraph-provider.d.ts +24 -0
  346. package/build/module/providers/fewV2/ring-static-subgraph-provider.js +319 -0
  347. package/build/module/providers/fewV2/ring-subgraph-provider-with-fallback.d.ts +16 -0
  348. package/build/module/providers/fewV2/ring-subgraph-provider-with-fallback.js +19 -0
  349. package/build/module/providers/fewV2/ring-subgraph-provider.d.ts +52 -0
  350. package/build/module/providers/fewV2/ring-subgraph-provider.js +176 -0
  351. package/build/module/providers/fewV2/ring-uri-subgraph-provider.d.ts +4 -0
  352. package/build/module/providers/fewV2/ring-uri-subgraph-provider.js +4 -0
  353. package/build/module/providers/gas-price-provider.d.ts +10 -0
  354. package/build/module/providers/gas-price-provider.js +6 -0
  355. package/build/module/providers/index.d.ts +56 -0
  356. package/build/module/providers/index.js +57 -0
  357. package/build/module/providers/legacy-gas-price-provider.d.ts +7 -0
  358. package/build/module/providers/legacy-gas-price-provider.js +14 -0
  359. package/build/module/providers/multicall-provider.d.ts +83 -0
  360. package/build/module/providers/multicall-provider.js +11 -0
  361. package/build/module/providers/multicall-ringswap-provider.d.ts +35 -0
  362. package/build/module/providers/multicall-ringswap-provider.js +157 -0
  363. package/build/module/providers/multicall-uniswap-provider.d.ts +37 -0
  364. package/build/module/providers/multicall-uniswap-provider.js +157 -0
  365. package/build/module/providers/on-chain-gas-price-provider.d.ts +19 -0
  366. package/build/module/providers/on-chain-gas-price-provider.js +33 -0
  367. package/build/module/providers/on-chain-quote-provider.d.ts +260 -0
  368. package/build/module/providers/on-chain-quote-provider.js +696 -0
  369. package/build/module/providers/pool-provider.d.ts +45 -0
  370. package/build/module/providers/pool-provider.js +66 -0
  371. package/build/module/providers/portion-provider.d.ts +86 -0
  372. package/build/module/providers/portion-provider.js +114 -0
  373. package/build/module/providers/provider.d.ts +38 -0
  374. package/build/module/providers/provider.js +2 -0
  375. package/build/module/providers/simulation-provider.d.ts +46 -0
  376. package/build/module/providers/simulation-provider.js +140 -0
  377. package/build/module/providers/static-gas-price-provider.d.ts +7 -0
  378. package/build/module/providers/static-gas-price-provider.js +9 -0
  379. package/build/module/providers/subgraph-provider-with-fallback.d.ts +11 -0
  380. package/build/module/providers/subgraph-provider-with-fallback.js +21 -0
  381. package/build/module/providers/subgraph-provider.d.ts +56 -0
  382. package/build/module/providers/subgraph-provider.js +284 -0
  383. package/build/module/providers/swap-router-provider.d.ts +30 -0
  384. package/build/module/providers/swap-router-provider.js +38 -0
  385. package/build/module/providers/tenderly-simulation-provider.d.ts +63 -0
  386. package/build/module/providers/tenderly-simulation-provider.js +444 -0
  387. package/build/module/providers/token-fee-fetcher.d.ts +31 -0
  388. package/build/module/providers/token-fee-fetcher.js +110 -0
  389. package/build/module/providers/token-properties-provider.d.ts +31 -0
  390. package/build/module/providers/token-properties-provider.js +114 -0
  391. package/build/module/providers/token-provider.d.ts +167 -0
  392. package/build/module/providers/token-provider.js +401 -0
  393. package/build/module/providers/token-validator-provider.d.ts +42 -0
  394. package/build/module/providers/token-validator-provider.js +92 -0
  395. package/build/module/providers/uri-subgraph-provider.d.ts +21 -0
  396. package/build/module/providers/uri-subgraph-provider.js +58 -0
  397. package/build/module/providers/v2/caching-pool-provider.d.ts +33 -0
  398. package/build/module/providers/v2/caching-pool-provider.js +85 -0
  399. package/build/module/providers/v2/caching-subgraph-provider.d.ts +19 -0
  400. package/build/module/providers/v2/caching-subgraph-provider.js +20 -0
  401. package/build/module/providers/v2/pool-provider.d.ts +63 -0
  402. package/build/module/providers/v2/pool-provider.js +141 -0
  403. package/build/module/providers/v2/quote-provider.d.ts +34 -0
  404. package/build/module/providers/v2/quote-provider.js +86 -0
  405. package/build/module/providers/v2/static-subgraph-provider.d.ts +19 -0
  406. package/build/module/providers/v2/static-subgraph-provider.js +178 -0
  407. package/build/module/providers/v2/subgraph-provider-with-fallback.d.ts +16 -0
  408. package/build/module/providers/v2/subgraph-provider-with-fallback.js +19 -0
  409. package/build/module/providers/v2/subgraph-provider.d.ts +52 -0
  410. package/build/module/providers/v2/subgraph-provider.js +331 -0
  411. package/build/module/providers/v2/uri-subgraph-provider.d.ts +4 -0
  412. package/build/module/providers/v2/uri-subgraph-provider.js +4 -0
  413. package/build/module/providers/v3/caching-pool-provider.d.ts +32 -0
  414. package/build/module/providers/v3/caching-pool-provider.js +77 -0
  415. package/build/module/providers/v3/caching-subgraph-provider.d.ts +19 -0
  416. package/build/module/providers/v3/caching-subgraph-provider.js +20 -0
  417. package/build/module/providers/v3/gas-data-provider.d.ts +39 -0
  418. package/build/module/providers/v3/gas-data-provider.js +22 -0
  419. package/build/module/providers/v3/pool-provider.d.ts +77 -0
  420. package/build/module/providers/v3/pool-provider.js +101 -0
  421. package/build/module/providers/v3/static-subgraph-provider.d.ts +21 -0
  422. package/build/module/providers/v3/static-subgraph-provider.js +224 -0
  423. package/build/module/providers/v3/subgraph-provider-with-fallback.d.ts +12 -0
  424. package/build/module/providers/v3/subgraph-provider-with-fallback.js +15 -0
  425. package/build/module/providers/v3/subgraph-provider.d.ts +45 -0
  426. package/build/module/providers/v3/subgraph-provider.js +42 -0
  427. package/build/module/providers/v3/uri-subgraph-provider.d.ts +4 -0
  428. package/build/module/providers/v3/uri-subgraph-provider.js +4 -0
  429. package/build/module/providers/v4/caching-pool-provider.d.ts +24 -0
  430. package/build/module/providers/v4/caching-pool-provider.js +74 -0
  431. package/build/module/providers/v4/caching-subgraph-provider.d.ts +19 -0
  432. package/build/module/providers/v4/caching-subgraph-provider.js +20 -0
  433. package/build/module/providers/v4/euler-swap-hooks-subgraph-provider.d.ts +25 -0
  434. package/build/module/providers/v4/euler-swap-hooks-subgraph-provider.js +153 -0
  435. package/build/module/providers/v4/pool-provider.d.ts +58 -0
  436. package/build/module/providers/v4/pool-provider.js +106 -0
  437. package/build/module/providers/v4/static-subgraph-provider.d.ts +15 -0
  438. package/build/module/providers/v4/static-subgraph-provider.js +71 -0
  439. package/build/module/providers/v4/subgraph-provider-with-fallback.d.ts +5 -0
  440. package/build/module/providers/v4/subgraph-provider-with-fallback.js +8 -0
  441. package/build/module/providers/v4/subgraph-provider.d.ts +63 -0
  442. package/build/module/providers/v4/subgraph-provider.js +59 -0
  443. package/build/module/providers/v4/uri-subgraph-provider.d.ts +4 -0
  444. package/build/module/providers/v4/uri-subgraph-provider.js +4 -0
  445. package/build/module/routers/alpha-router/alpha-router.d.ts +483 -0
  446. package/build/module/routers/alpha-router/alpha-router.js +2280 -0
  447. package/build/module/routers/alpha-router/config.d.ts +4 -0
  448. package/build/module/routers/alpha-router/config.js +125 -0
  449. package/build/module/routers/alpha-router/entities/index.d.ts +1 -0
  450. package/build/module/routers/alpha-router/entities/index.js +2 -0
  451. package/build/module/routers/alpha-router/entities/route-with-valid-quote.d.ts +329 -0
  452. package/build/module/routers/alpha-router/entities/route-with-valid-quote.js +306 -0
  453. package/build/module/routers/alpha-router/functions/best-swap-route.d.ts +25 -0
  454. package/build/module/routers/alpha-router/functions/best-swap-route.js +586 -0
  455. package/build/module/routers/alpha-router/functions/calculate-ratio-amount-in.d.ts +3 -0
  456. package/build/module/routers/alpha-router/functions/calculate-ratio-amount-in.js +14 -0
  457. package/build/module/routers/alpha-router/functions/compute-all-routes.d.ts +16 -0
  458. package/build/module/routers/alpha-router/functions/compute-all-routes.js +147 -0
  459. package/build/module/routers/alpha-router/functions/get-candidate-pools.d.ts +192 -0
  460. package/build/module/routers/alpha-router/functions/get-candidate-pools.js +3010 -0
  461. package/build/module/routers/alpha-router/gas-models/fewV2/v2-heuristic-gas-model.d.ts +31 -0
  462. package/build/module/routers/alpha-router/gas-models/fewV2/v2-heuristic-gas-model.js +162 -0
  463. package/build/module/routers/alpha-router/gas-models/gas-costs.d.ts +12 -0
  464. package/build/module/routers/alpha-router/gas-models/gas-costs.js +189 -0
  465. package/build/module/routers/alpha-router/gas-models/gas-model.d.ts +111 -0
  466. package/build/module/routers/alpha-router/gas-models/gas-model.js +114 -0
  467. package/build/module/routers/alpha-router/gas-models/index.d.ts +5 -0
  468. package/build/module/routers/alpha-router/gas-models/index.js +6 -0
  469. package/build/module/routers/alpha-router/gas-models/mixedRoute/mixed-route-heuristic-gas-model.d.ts +24 -0
  470. package/build/module/routers/alpha-router/gas-models/mixedRoute/mixed-route-heuristic-gas-model.js +154 -0
  471. package/build/module/routers/alpha-router/gas-models/ring-gas-model.d.ts +111 -0
  472. package/build/module/routers/alpha-router/gas-models/ring-gas-model.js +163 -0
  473. package/build/module/routers/alpha-router/gas-models/tick-based-heuristic-gas-model.d.ts +21 -0
  474. package/build/module/routers/alpha-router/gas-models/tick-based-heuristic-gas-model.js +362 -0
  475. package/build/module/routers/alpha-router/gas-models/uniswapFewV3/v3-heuristic-gas-model.d.ts +26 -0
  476. package/build/module/routers/alpha-router/gas-models/uniswapFewV3/v3-heuristic-gas-model.js +37 -0
  477. package/build/module/routers/alpha-router/gas-models/uniswapFewV4/v4-heuristic-gas-model.d.ts +15 -0
  478. package/build/module/routers/alpha-router/gas-models/uniswapFewV4/v4-heuristic-gas-model.js +36 -0
  479. package/build/module/routers/alpha-router/gas-models/v2/v2-heuristic-gas-model.d.ts +31 -0
  480. package/build/module/routers/alpha-router/gas-models/v2/v2-heuristic-gas-model.js +162 -0
  481. package/build/module/routers/alpha-router/gas-models/v3/v3-heuristic-gas-model.d.ts +26 -0
  482. package/build/module/routers/alpha-router/gas-models/v3/v3-heuristic-gas-model.js +37 -0
  483. package/build/module/routers/alpha-router/gas-models/v4/v4-heuristic-gas-model.d.ts +15 -0
  484. package/build/module/routers/alpha-router/gas-models/v4/v4-heuristic-gas-model.js +36 -0
  485. package/build/module/routers/alpha-router/index.d.ts +4 -0
  486. package/build/module/routers/alpha-router/index.js +5 -0
  487. package/build/module/routers/alpha-router/quoters/base-quoter.d.ts +78 -0
  488. package/build/module/routers/alpha-router/quoters/base-quoter.js +70 -0
  489. package/build/module/routers/alpha-router/quoters/few-v2-quoter.d.ts +24 -0
  490. package/build/module/routers/alpha-router/quoters/few-v2-quoter.js +138 -0
  491. package/build/module/routers/alpha-router/quoters/index.d.ts +5 -0
  492. package/build/module/routers/alpha-router/quoters/index.js +6 -0
  493. package/build/module/routers/alpha-router/quoters/mixed-quoter.d.ts +34 -0
  494. package/build/module/routers/alpha-router/quoters/mixed-quoter.js +149 -0
  495. package/build/module/routers/alpha-router/quoters/model/index.d.ts +1 -0
  496. package/build/module/routers/alpha-router/quoters/model/index.js +2 -0
  497. package/build/module/routers/alpha-router/quoters/model/results/get-quotes-result.d.ts +6 -0
  498. package/build/module/routers/alpha-router/quoters/model/results/get-quotes-result.js +2 -0
  499. package/build/module/routers/alpha-router/quoters/model/results/get-routes-result.d.ts +6 -0
  500. package/build/module/routers/alpha-router/quoters/model/results/get-routes-result.js +2 -0
  501. package/build/module/routers/alpha-router/quoters/model/results/index.d.ts +2 -0
  502. package/build/module/routers/alpha-router/quoters/model/results/index.js +3 -0
  503. package/build/module/routers/alpha-router/quoters/uniswap-few-v3-quoter.d.ts +19 -0
  504. package/build/module/routers/alpha-router/quoters/uniswap-few-v3-quoter.js +111 -0
  505. package/build/module/routers/alpha-router/quoters/uniswap-few-v4-quoter.d.ts +18 -0
  506. package/build/module/routers/alpha-router/quoters/uniswap-few-v4-quoter.js +114 -0
  507. package/build/module/routers/alpha-router/quoters/v2-quoter.d.ts +24 -0
  508. package/build/module/routers/alpha-router/quoters/v2-quoter.js +138 -0
  509. package/build/module/routers/alpha-router/quoters/v3-quoter.d.ts +19 -0
  510. package/build/module/routers/alpha-router/quoters/v3-quoter.js +118 -0
  511. package/build/module/routers/alpha-router/quoters/v4-quoter.d.ts +18 -0
  512. package/build/module/routers/alpha-router/quoters/v4-quoter.js +114 -0
  513. package/build/module/routers/index.d.ts +4 -0
  514. package/build/module/routers/index.js +5 -0
  515. package/build/module/routers/legacy-router/bases.d.ts +225 -0
  516. package/build/module/routers/legacy-router/bases.js +138 -0
  517. package/build/module/routers/legacy-router/index.d.ts +1 -0
  518. package/build/module/routers/legacy-router/index.js +2 -0
  519. package/build/module/routers/legacy-router/legacy-router.d.ts +41 -0
  520. package/build/module/routers/legacy-router/legacy-router.js +292 -0
  521. package/build/module/routers/router.d.ts +195 -0
  522. package/build/module/routers/router.js +58 -0
  523. package/build/module/tsconfig.module.tsbuildinfo +1 -0
  524. package/build/module/types/other/commons.d.ts +16 -0
  525. package/build/module/types/other/commons.js +5 -0
  526. package/build/module/types/other/factories/Erc20__factory.d.ts +45 -0
  527. package/build/module/types/other/factories/Erc20__factory.js +236 -0
  528. package/build/module/types/other/factories/GasDataArbitrum__factory.d.ts +18 -0
  529. package/build/module/types/other/factories/GasDataArbitrum__factory.js +54 -0
  530. package/build/module/types/other/factories/IMixedRouteQuoterV1__factory.d.ts +41 -0
  531. package/build/module/types/other/factories/IMixedRouteQuoterV1__factory.js +152 -0
  532. package/build/module/types/other/factories/ITokenValidator__factory.d.ts +22 -0
  533. package/build/module/types/other/factories/ITokenValidator__factory.js +74 -0
  534. package/build/module/types/other/factories/MixedRouteQuoterV2__factory.d.ts +86 -0
  535. package/build/module/types/other/factories/MixedRouteQuoterV2__factory.js +473 -0
  536. package/build/module/types/other/factories/Permit2__factory.d.ts +87 -0
  537. package/build/module/types/other/factories/Permit2__factory.js +932 -0
  538. package/build/module/types/other/factories/StateView__factory.d.ts +32 -0
  539. package/build/module/types/other/factories/StateView__factory.js +379 -0
  540. package/build/module/types/other/factories/SwapRouter02__factory.d.ts +67 -0
  541. package/build/module/types/other/factories/SwapRouter02__factory.js +1094 -0
  542. package/build/module/types/other/factories/TokenFeeDetector__factory.d.ts +47 -0
  543. package/build/module/types/other/factories/TokenFeeDetector__factory.js +239 -0
  544. package/build/module/types/other/factories/V4Quoter__factory.d.ts +37 -0
  545. package/build/module/types/other/factories/V4Quoter__factory.js +308 -0
  546. package/build/module/types/v2/commons.d.ts +16 -0
  547. package/build/module/types/v2/commons.js +5 -0
  548. package/build/module/types/v2/factories/IUniswapV2Pair__factory.d.ts +35 -0
  549. package/build/module/types/v2/factories/IUniswapV2Pair__factory.js +667 -0
  550. package/build/module/types/v3/commons.d.ts +16 -0
  551. package/build/module/types/v3/commons.js +5 -0
  552. package/build/module/types/v3/factories/IERC20Metadata__factory.d.ts +35 -0
  553. package/build/module/types/v3/factories/IERC20Metadata__factory.js +238 -0
  554. package/build/module/types/v3/factories/IQuoterV2__factory.d.ts +41 -0
  555. package/build/module/types/v3/factories/IQuoterV2__factory.js +216 -0
  556. package/build/module/types/v3/factories/IUniswapV3PoolState__factory.d.ts +22 -0
  557. package/build/module/types/v3/factories/IUniswapV3PoolState__factory.js +262 -0
  558. package/build/module/types/v3/factories/UniswapInterfaceMulticall__factory.d.ts +61 -0
  559. package/build/module/types/v3/factories/UniswapInterfaceMulticall__factory.js +123 -0
  560. package/build/module/util/addresses.d.ts +34 -0
  561. package/build/module/util/addresses.js +280 -0
  562. package/build/module/util/amounts.d.ts +10 -0
  563. package/build/module/util/amounts.js +82 -0
  564. package/build/module/util/callData.d.ts +1 -0
  565. package/build/module/util/callData.js +3 -0
  566. package/build/module/util/chains.d.ts +75 -0
  567. package/build/module/util/chains.js +772 -0
  568. package/build/module/util/defaultBlocksToLive.d.ts +4 -0
  569. package/build/module/util/defaultBlocksToLive.js +54 -0
  570. package/build/module/util/fewAddress.d.ts +48 -0
  571. package/build/module/util/fewAddress.js +627 -0
  572. package/build/module/util/gas-factory-helpers.d.ts +38 -0
  573. package/build/module/util/gas-factory-helpers.js +575 -0
  574. package/build/module/util/hooksOptions.d.ts +5 -0
  575. package/build/module/util/hooksOptions.js +7 -0
  576. package/build/module/util/index.d.ts +10 -0
  577. package/build/module/util/index.js +11 -0
  578. package/build/module/util/intent.d.ts +6 -0
  579. package/build/module/util/intent.js +10 -0
  580. package/build/module/util/l2FeeChains.d.ts +2 -0
  581. package/build/module/util/l2FeeChains.js +15 -0
  582. package/build/module/util/log.d.ts +3 -0
  583. package/build/module/util/log.js +93 -0
  584. package/build/module/util/methodParameters.d.ts +5 -0
  585. package/build/module/util/methodParameters.js +176 -0
  586. package/build/module/util/metric.d.ts +48 -0
  587. package/build/module/util/metric.js +53 -0
  588. package/build/module/util/mixedRouteFilterOutV4Pools.d.ts +3 -0
  589. package/build/module/util/mixedRouteFilterOutV4Pools.js +12 -0
  590. package/build/module/util/onchainQuoteProviderConfigs.d.ts +42 -0
  591. package/build/module/util/onchainQuoteProviderConfigs.js +74 -0
  592. package/build/module/util/pool.d.ts +5 -0
  593. package/build/module/util/pool.js +43 -0
  594. package/build/module/util/protocols.d.ts +2 -0
  595. package/build/module/util/protocols.js +18 -0
  596. package/build/module/util/routes.d.ts +11 -0
  597. package/build/module/util/routes.js +147 -0
  598. package/build/module/util/serializeRouteIds.d.ts +2 -0
  599. package/build/module/util/serializeRouteIds.js +7 -0
  600. package/build/module/util/simple-perf-tracker.d.ts +27 -0
  601. package/build/module/util/simple-perf-tracker.js +161 -0
  602. package/build/module/util/tenderlySimulationErrorBreakDown.d.ts +3 -0
  603. package/build/module/util/tenderlySimulationErrorBreakDown.js +29 -0
  604. package/build/module/util/unsupported-tokens.d.ts +37 -0
  605. package/build/module/util/unsupported-tokens.js +1116 -0
  606. package/package.json +127 -0
@@ -0,0 +1,627 @@
1
+ import { ChainId } from "@ring-protocol/sdk-core";
2
+ const DEFAULT_NETWORKS = [
3
+ ChainId.MAINNET,
4
+ ChainId.SEPOLIA,
5
+ ChainId.BLAST,
6
+ ChainId.UNICHAIN_SEPOLIA,
7
+ ChainId.UNICHAIN,
8
+ ChainId.ARBITRUM_SEPOLIA,
9
+ ChainId.BASE,
10
+ ];
11
+ function constructSameAddressMap(address, additionalNetworks = []) {
12
+ return DEFAULT_NETWORKS.concat(additionalNetworks).reduce((memo, chainId) => {
13
+ memo[chainId] = address;
14
+ return memo;
15
+ }, {});
16
+ }
17
+ export const UNI_ADDRESSES = constructSameAddressMap('0x1f9840a85d5aF5bf1D1762F925BDADdC4201F984', [
18
+ ChainId.OPTIMISM,
19
+ ChainId.ARBITRUM_ONE,
20
+ ChainId.POLYGON,
21
+ ChainId.POLYGON_MUMBAI,
22
+ ChainId.SEPOLIA
23
+ ]);
24
+ export const UNISWAP_NFT_AIRDROP_CLAIM_ADDRESS = '0x8B799381ac40b838BBA4131ffB26197C432AFe78';
25
+ export const SEPOLIA_V2_FACTORY_ADDRESS = '0x509166db8Fb9571F8C34EfcD7347809B34dE4e04';
26
+ export const BLAST_V2_FACTORY_ADDRESS = '0xe4aa82591AD0E8AbFD15ca2A2ff74439c6052Fbf';
27
+ export const BLAST_MAINNET_V2_FACTORY_ADDRESS = '0x24F5Ac9A706De0cF795A8193F6AB3966B14ECfE6';
28
+ export const ETH_MAINNET_V2_FACTORY_ADDRESS = '0xeb2A625B704d73e82946D8d026E1F588Eed06416';
29
+ export const UNICHAIN_SEPOLIA_V2_FACTORY_ADDRESS = '0xd7413358bFE4Aa5D707CcF8Ae7B4FF58E79e149A';
30
+ export const UNICHAIN_V2_FACTORY_ADDRESS = '0xEeE400Eabfba8F60f4e6B351D8577394BeB972CD';
31
+ export const ARBITRUM_SEPOLIA_V2_FACTORY_ADDRESS = '0x13429d9780662560F526Ba0DA751C191DFdF1849';
32
+ export const BASE_V2_FACTORY_ADDRESS = '0x9BfFC3B30D6659e3D84754cc38865B3D60B4980E';
33
+ export const STORY_ODYSSEY_V2_FACTORY_ADDRESS = '0x13429d9780662560F526Ba0DA751C191DFdF1849';
34
+ export const BNB_V2_FACTORY_ADDRESS = '0x4De602A30Ad7fEf8223dcf67A9fB704324C4dd9B';
35
+ export const STORY_MAINNET_V2_FACTORY_ADDRESS = '0xEeE400Eabfba8F60f4e6B351D8577394BeB972CD';
36
+ export const V2_FACTORY_ADDRESSES = {
37
+ 11155111: '0x509166db8Fb9571F8C34EfcD7347809B34dE4e04',
38
+ 168587773: '0xe4aa82591AD0E8AbFD15ca2A2ff74439c6052Fbf',
39
+ 81457: '0x24F5Ac9A706De0cF795A8193F6AB3966B14ECfE6',
40
+ 1: '0xeb2A625B704d73e82946D8d026E1F588Eed06416',
41
+ 1301: '0xd7413358bFE4Aa5D707CcF8Ae7B4FF58E79e149A',
42
+ 130: '0xEeE400Eabfba8F60f4e6B351D8577394BeB972CD',
43
+ 421614: '0x13429d9780662560F526Ba0DA751C191DFdF1849',
44
+ 8453: '0x9BfFC3B30D6659e3D84754cc38865B3D60B4980E',
45
+ 1516: '0x13429d9780662560F526Ba0DA751C191DFdF1849',
46
+ 1514: '0xEeE400Eabfba8F60f4e6B351D8577394BeB972CD',
47
+ 56: '0x4De602A30Ad7fEf8223dcf67A9fB704324C4dd9B'
48
+ };
49
+ export const SEPOLIA_V2_ROUTER_ADDRESS = '0x1F802559f8b5495bD4fE6c23BC79345804DBA12A';
50
+ export const BLAST_V2_ROUTER_ADDRESS = '0x02F1e7A518e3E286C8E305E39cA7D4f25e0a44Aa';
51
+ export const BLAST_MAINNET_V2_ROUTER_ADDRESS = '0x7001F706ACB6440d17cBFaD63Fa50a22D51696fF';
52
+ export const ETH_MAINNET_V2_ROUTER_ADDRESS = '0x39d1d8fcC5E6EEAf567Bce4e29B94fec956D3519';
53
+ export const UNICHAIN_SEPOLIA_V2_ROUTER_ADDRESS = '0x32BC26BeA846951226d2c49f0B7D1adD8727D8e6';
54
+ export const UNICHAIN_V2_ROUTER_ADDRESS = '0xf9d7ff2f6A0c3631A807199276a493Af8097916F';
55
+ export const ARBITRUM_SEPOLIA_V2_ROUTER_ADDRESS = '0xCe8eA134624D439489f8a781e7750db533C0920';
56
+ export const BASE_V2_ROUTER_ADDRESS = '0x224749CDd5791480ECEBE452e5FFAEfEf94Cd254';
57
+ export const STORY_ODYSSEY_V2_ROUTER_ADDRESS = '0x8cf5249b81C0dF0F2Ce7Ca75677581D82018E503';
58
+ export const BNB_V2_ROUTER_ADDRESS = '0x20504f37A95eF80e3FC7476c4801fb39AaE6bAd0';
59
+ export const STORY_MAINNET_V2_ROUTER_ADDRESS = '0xf9d7ff2f6A0c3631A807199276a493Af8097916F';
60
+ export const V2_ROUTER_ADDRESSES = {
61
+ 11155111: '0x1F802559f8b5495bD4fE6c23BC79345804DBA12A',
62
+ 168587773: '0x02F1e7A518e3E286C8E305E39cA7D4f25e0a44Aa',
63
+ 81457: '0x7001F706ACB6440d17cBFaD63Fa50a22D51696fF',
64
+ 1: '0x39d1d8fcC5E6EEAf567Bce4e29B94fec956D3519',
65
+ 1301: '0x32BC26BeA846951226d2c49f0B7D1adD8727D8e6',
66
+ 130: '0xf9d7ff2f6A0c3631A807199276a493Af8097916F',
67
+ 421614: '0xCe8eA134624D439489f8a781e7750db533C0920',
68
+ 8453: '0x224749CDd5791480ECEBE452e5FFAEfEf94Cd254',
69
+ 1516: '0x8cf5249b81C0dF0F2Ce7Ca75677581D82018E503',
70
+ 1514: '0xf9d7ff2f6A0c3631A807199276a493Af8097916F',
71
+ 56: '0x20504f37A95eF80e3FC7476c4801fb39AaE6bAd0'
72
+ };
73
+ // Networks that share most of the same addresses i.e. Mainnet, Goerli, Optimism, Arbitrum, Polygon
74
+ const DEFAULT_ADDRESSES = {
75
+ v3CoreFactoryAddress: '0x1F98431c8aD98523631AE4a59f267346ea31F984',
76
+ multicallAddress: '0x1F98415757620B543A52E61c46B32eB19261F984',
77
+ quoterAddress: '0xb27308f9F90D607463bb33eA1BeBb41C27CE5AB6',
78
+ v3MigratorAddress: '0xA5644E29708357803b5A882D272c41cC0dF92B34',
79
+ nonfungiblePositionManagerAddress: '0xC36442b4a4522E871399CD717aBDD847Ab11FE88'
80
+ };
81
+ // const MAINNET_ADDRESSES: ChainAddresses = {
82
+ // ...DEFAULT_ADDRESSES,
83
+ // mixedRouteQuoterV1Address: '0x84E44095eeBfEC7793Cd7d5b57B7e401D7f1cA2E'
84
+ // }
85
+ const GOERLI_ADDRESSES = {
86
+ ...DEFAULT_ADDRESSES,
87
+ mixedRouteQuoterV1Address: '0xBa60b6e6fF25488308789E6e0A65D838be34194e'
88
+ };
89
+ // const BLAST_SEPOLIA_ADDRESSES: ChainAddresses = {
90
+ // v3CoreFactoryAddress: '0x0000000000000000000000000000000000000000',
91
+ // multicallAddress: '0x54c55551fEe014ec7C63F47Cd69f20e47ae178EB',
92
+ // quoterAddress: '0x0000000000000000000000000000000000000000',
93
+ // v3MigratorAddress: '0x0000000000000000000000000000000000000000',
94
+ // nonfungiblePositionManagerAddress: '0x0000000000000000000000000000000000000000',
95
+ // tickLensAddress: '0x0000000000000000000000000000000000000000',
96
+ // mixedRouteQuoterV1Address: '0x2947892b6bFcd719868f2d7Fe4A3F9A49B0894B9'
97
+ // }
98
+ const BLAST_MAINNET_ADDRESSES = {
99
+ v3CoreFactoryAddress: '0x0000000000000000000000000000000000000000',
100
+ multicallAddress: '0x8B34f931069645043b24Efc20aebc5E3E00cf256',
101
+ quoterAddress: '0x0000000000000000000000000000000000000000',
102
+ v3MigratorAddress: '0x0000000000000000000000000000000000000000',
103
+ nonfungiblePositionManagerAddress: '0x0000000000000000000000000000000000000000',
104
+ tickLensAddress: '0x0000000000000000000000000000000000000000',
105
+ mixedRouteQuoterV1Address: '0x39d1d8fcC5E6EEAf567Bce4e29B94fec956D3519'
106
+ };
107
+ const BLAST_SEPOLIA_ADDRESSES = {
108
+ v3CoreFactoryAddress: '0x0000000000000000000000000000000000000000',
109
+ multicallAddress: '0x54c55551fEe014ec7C63F47Cd69f20e47ae178EB',
110
+ quoterAddress: '0x0000000000000000000000000000000000000000',
111
+ v3MigratorAddress: '0x0000000000000000000000000000000000000000',
112
+ nonfungiblePositionManagerAddress: '0x0000000000000000000000000000000000000000',
113
+ tickLensAddress: '0x0000000000000000000000000000000000000000',
114
+ mixedRouteQuoterV1Address: '0x2947892b6bFcd719868f2d7Fe4A3F9A49B0894B9'
115
+ };
116
+ const STORY_ODYSSEY_ADDRESSES = {
117
+ v3CoreFactoryAddress: '0x0000000000000000000000000000000000000000',
118
+ multicallAddress: '0xb3Ad7754f363af676dC1C5be40423FE538a47920',
119
+ quoterAddress: '0x0000000000000000000000000000000000000000',
120
+ v3MigratorAddress: '0x0000000000000000000000000000000000000000',
121
+ nonfungiblePositionManagerAddress: '0x0000000000000000000000000000000000000000',
122
+ tickLensAddress: '0x0000000000000000000000000000000000000000',
123
+ mixedRouteQuoterV1Address: '0x0000000000000000000000000000000000000000'
124
+ };
125
+ const STORY_MAINNET_ADDRESSES = {
126
+ v3CoreFactoryAddress: '0x0000000000000000000000000000000000000000',
127
+ multicallAddress: '0xb981b930c6b78C4DfDe258eD2a9119ED69fB2faf',
128
+ quoterAddress: '0x0000000000000000000000000000000000000000',
129
+ v3MigratorAddress: '0x0000000000000000000000000000000000000000',
130
+ nonfungiblePositionManagerAddress: '0x0000000000000000000000000000000000000000',
131
+ tickLensAddress: '0x0000000000000000000000000000000000000000',
132
+ mixedRouteQuoterV1Address: '0x0000000000000000000000000000000000000000'
133
+ };
134
+ const ETH_MAINNET_ADDRESSES = {
135
+ v3CoreFactoryAddress: '0x0000000000000000000000000000000000000000',
136
+ multicallAddress: '0x1F98415757620B543A52E61c46B32eB19261F984',
137
+ quoterAddress: '0x0000000000000000000000000000000000000000',
138
+ v3MigratorAddress: '0x0000000000000000000000000000000000000000',
139
+ nonfungiblePositionManagerAddress: '0x0000000000000000000000000000000000000000',
140
+ tickLensAddress: '0x0000000000000000000000000000000000000000',
141
+ mixedRouteQuoterV1Address: '0xf09F1899074B5659148C615dd30C29060f264894'
142
+ };
143
+ const UNICHAIN_ADDRESSES = {
144
+ v3CoreFactoryAddress: '0x0000000000000000000000000000000000000000',
145
+ multicallAddress: '0x8721eaBF3F37B74C2ac8Abc3ceCD672aB2e15ABA',
146
+ quoterAddress: '0x0000000000000000000000000000000000000000',
147
+ v3MigratorAddress: '0x0000000000000000000000000000000000000000',
148
+ nonfungiblePositionManagerAddress: '0x0000000000000000000000000000000000000000',
149
+ tickLensAddress: '0x0000000000000000000000000000000000000000',
150
+ mixedRouteQuoterV1Address: '0x0000000000000000000000000000000000000000'
151
+ };
152
+ const UNICHAIN_SEPOLIA_ADDRESSES = {
153
+ v3CoreFactoryAddress: '0x0000000000000000000000000000000000000000',
154
+ multicallAddress: '0x1F98415757620B543A52E61c46B32eB19261F984',
155
+ quoterAddress: '0x0000000000000000000000000000000000000000',
156
+ v3MigratorAddress: '0x0000000000000000000000000000000000000000',
157
+ nonfungiblePositionManagerAddress: '0x0000000000000000000000000000000000000000',
158
+ tickLensAddress: '0x0000000000000000000000000000000000000000',
159
+ mixedRouteQuoterV1Address: '0xf09F1899074B5659148C615dd30C29060f264894'
160
+ };
161
+ const ARBITRUM_SEPOLIA_ADDRESSES = {
162
+ v3CoreFactoryAddress: '0x0000000000000000000000000000000000000000',
163
+ multicallAddress: '0xeF0A2a9CdbDf2F6b5b3508dE2bb9399502bc4598',
164
+ quoterAddress: '0x0000000000000000000000000000000000000000',
165
+ v3MigratorAddress: '0x0000000000000000000000000000000000000000',
166
+ nonfungiblePositionManagerAddress: '0x0000000000000000000000000000000000000000',
167
+ tickLensAddress: '0x0000000000000000000000000000000000000000',
168
+ mixedRouteQuoterV1Address: '0xcd58C52236c4A77BD0322857a662B09eAd5b0387'
169
+ };
170
+ // const STORY_ODYSSEY_ADDRESSES: ChainAddresses = {
171
+ // v3CoreFactoryAddress: '0x0000000000000000000000000000000000000000',
172
+ // multicallAddress: '0xb3Ad7754f363af676dC1C5be40423FE538a47920',
173
+ // quoterAddress: '0x0000000000000000000000000000000000000000',
174
+ // v3MigratorAddress: '0x0000000000000000000000000000000000000000',
175
+ // nonfungiblePositionManagerAddress: '0x0000000000000000000000000000000000000000',
176
+ // tickLensAddress: '0x0000000000000000000000000000000000000000',
177
+ // mixedRouteQuoterV1Address: '0x0000000000000000000000000000000000000000'
178
+ // }
179
+ // const STORY_MAINNET_ADDRESSES: ChainAddresses = {
180
+ // v3CoreFactoryAddress: '0x0000000000000000000000000000000000000000',
181
+ // multicallAddress: '0xb981b930c6b78C4DfDe258eD2a9119ED69fB2faf',
182
+ // quoterAddress: '0x0000000000000000000000000000000000000000',
183
+ // v3MigratorAddress: '0x0000000000000000000000000000000000000000',
184
+ // nonfungiblePositionManagerAddress: '0x0000000000000000000000000000000000000000',
185
+ // tickLensAddress: '0x0000000000000000000000000000000000000000',
186
+ // mixedRouteQuoterV1Address: '0x0000000000000000000000000000000000000000'
187
+ // }
188
+ const OPTIMISM_ADDRESSES = DEFAULT_ADDRESSES;
189
+ const ARBITRUM_ONE_ADDRESSES = {
190
+ ...DEFAULT_ADDRESSES,
191
+ multicallAddress: '0xadF885960B47eA2CD9B55E6DAc6B42b7Cb2806dB',
192
+ tickLensAddress: '0xbfd8137f7d1516D3ea5cA83523914859ec47F573'
193
+ };
194
+ const POLYGON_ADDRESSES = DEFAULT_ADDRESSES;
195
+ // celo v3 addresses
196
+ const CELO_ADDRESSES = {
197
+ v3CoreFactoryAddress: '0xAfE208a311B21f13EF87E33A90049fC17A7acDEc',
198
+ multicallAddress: '0x633987602DE5C4F337e3DbF265303A1080324204',
199
+ quoterAddress: '0x82825d0554fA07f7FC52Ab63c961F330fdEFa8E8',
200
+ v3MigratorAddress: '0x3cFd4d48EDfDCC53D3f173F596f621064614C582',
201
+ nonfungiblePositionManagerAddress: '0x3d79EdAaBC0EaB6F08ED885C05Fc0B014290D95A',
202
+ tickLensAddress: '0x5f115D9113F88e0a0Db1b5033D90D4a9690AcD3D'
203
+ };
204
+ // hyper mainnet v3 addresses
205
+ const HYPER_MAINNET_ADDRESSES = {
206
+ v3CoreFactoryAddress: '0x0000000000000000000000000000000000000000',
207
+ multicallAddress: '0x793b1b0111Ba64673f983Ea7d7C0aF15a1161bED',
208
+ quoterAddress: '0x0000000000000000000000000000000000000000',
209
+ v3MigratorAddress: '0x0000000000000000000000000000000000000000',
210
+ nonfungiblePositionManagerAddress: '0x0000000000000000000000000000000000000000',
211
+ tickLensAddress: '0x0000000000000000000000000000000000000000',
212
+ };
213
+ // BNB v3 addresses
214
+ const BNB_ADDRESSES = {
215
+ v3CoreFactoryAddress: '0xdB1d10011AD0Ff90774D0C6Bb92e5C5c8b4461F7',
216
+ multicallAddress: '0x963Df249eD09c358A4819E39d9Cd5736c3087184',
217
+ quoterAddress: '0x78D78E420Da98ad378D7799bE8f4AF69033EB077',
218
+ v3MigratorAddress: '0x32681814957e0C13117ddc0c2aba232b5c9e760f',
219
+ nonfungiblePositionManagerAddress: '0x7b8A01B39D58278b5DE7e48c8449c9f4F5170613',
220
+ tickLensAddress: '0xD9270014D396281579760619CCf4c3af0501A47C',
221
+ swapRouter02Address: '0xB971eF87ede563556b2ED4b1C0b0019111Dd85d2'
222
+ };
223
+ // optimism goerli addresses
224
+ const OPTIMISM_GOERLI_ADDRESSES = {
225
+ v3CoreFactoryAddress: '0xB656dA17129e7EB733A557f4EBc57B76CFbB5d10',
226
+ multicallAddress: '0x07F2D8a2a02251B62af965f22fC4744A5f96BCCd',
227
+ quoterAddress: '0x9569CbA925c8ca2248772A9A4976A516743A246F',
228
+ v3MigratorAddress: '0xf6c55fBe84B1C8c3283533c53F51bC32F5C7Aba8',
229
+ nonfungiblePositionManagerAddress: '0x39Ca85Af2F383190cBf7d7c41ED9202D27426EF6',
230
+ tickLensAddress: '0xe6140Bd164b63E8BfCfc40D5dF952f83e171758e'
231
+ };
232
+ // arbitrum goerli v3 addresses
233
+ const ARBITRUM_GOERLI_ADDRESSES = {
234
+ v3CoreFactoryAddress: '0x4893376342d5D7b3e31d4184c08b265e5aB2A3f6',
235
+ multicallAddress: '0x8260CB40247290317a4c062F3542622367F206Ee',
236
+ quoterAddress: '0x1dd92b83591781D0C6d98d07391eea4b9a6008FA',
237
+ v3MigratorAddress: '0xA815919D2584Ac3F76ea9CB62E6Fd40a43BCe0C3',
238
+ nonfungiblePositionManagerAddress: '0x622e4726a167799826d1E1D150b076A7725f5D81',
239
+ tickLensAddress: '0xb52429333da969a0C79a60930a4Bf0020E5D1DE8'
240
+ };
241
+ // sepolia v3 addresses
242
+ const SEPOLIA_ADDRESSES = {
243
+ v3CoreFactoryAddress: '0x0000000000000000000000000000000000000000',
244
+ multicallAddress: '0x23B0338e947A1f2B551e34969285C83e6eD5e5c8',
245
+ quoterAddress: '0x0000000000000000000000000000000000000000',
246
+ v3MigratorAddress: '0x0000000000000000000000000000000000000000',
247
+ nonfungiblePositionManagerAddress: '0x0000000000000000000000000000000000000000',
248
+ tickLensAddress: '0x0000000000000000000000000000000000000000',
249
+ mixedRouteQuoterV1Address: '0x7B77A426044f952540890148b65282CB7374e9e9'
250
+ };
251
+ // Avalanche v3 addresses
252
+ const AVALANCHE_ADDRESSES = {
253
+ v3CoreFactoryAddress: '0x740b1c1de25031C31FF4fC9A62f554A55cdC1baD',
254
+ multicallAddress: '0x0139141Cd4Ee88dF3Cdb65881D411bAE271Ef0C2',
255
+ quoterAddress: '0xbe0F5544EC67e9B3b2D979aaA43f18Fd87E6257F',
256
+ v3MigratorAddress: '0x44f5f1f5E452ea8d29C890E8F6e893fC0f1f0f97',
257
+ nonfungiblePositionManagerAddress: '0x655C406EBFa14EE2006250925e54ec43AD184f8B',
258
+ tickLensAddress: '0xEB9fFC8bf81b4fFd11fb6A63a6B0f098c6e21950',
259
+ swapRouter02Address: '0xbb00FF08d01D300023C629E8fFfFcb65A5a578cE'
260
+ };
261
+ const BASE_ADDRESSES = {
262
+ v3CoreFactoryAddress: '0x33128a8fC17869897dcE68Ed026d694621f6FDfD',
263
+ multicallAddress: '0x091e99cb1C49331a94dD62755D168E941AbD0693',
264
+ quoterAddress: '0x3d4e44Eb1374240CE5F1B871ab261CD16335B76a',
265
+ v3MigratorAddress: '0x23cF10b1ee3AdfCA73B0eF17C07F7577e7ACd2d7',
266
+ nonfungiblePositionManagerAddress: '0x03a520b32C04BF3bEEf7BEb72E919cf822Ed34f1',
267
+ tickLensAddress: '0x0CdeE061c75D43c82520eD998C23ac2991c9ac6d',
268
+ swapRouter02Address: '0x2626664c2603336E57B271c5C0b26F421741e481'
269
+ };
270
+ // Base Goerli v3 addresses
271
+ const BASE_GOERLI_ADDRESSES = {
272
+ v3CoreFactoryAddress: '0x9323c1d6D800ed51Bd7C6B216cfBec678B7d0BC2',
273
+ multicallAddress: '0xB206027a9E0E13F05eBEFa5D2402Bab3eA716439',
274
+ quoterAddress: '0xedf539058e28E5937dAef3f69cEd0b25fbE66Ae9',
275
+ v3MigratorAddress: '0x3efe5d02a04b7351D671Db7008ec6eBA9AD9e3aE',
276
+ nonfungiblePositionManagerAddress: '0x3c61369ef0D1D2AFa70d8feC2F31C5D6Ce134F30',
277
+ tickLensAddress: '0x1acB873Ee909D0c98adB18e4474943249F931b92',
278
+ swapRouter02Address: '0x8357227D4eDc78991Db6FDB9bD6ADE250536dE1d'
279
+ };
280
+ //////
281
+ // Networks that share most of the same addresses i.e. Mainnet, Goerli, Optimism, Arbitrum, Polygon
282
+ // const DEFAULT_ADDRESSES: ChainAddresses = {
283
+ // v3CoreFactoryAddress: '0x1F98431c8aD98523631AE4a59f267346ea31F984',
284
+ // multicallAddress: '0x1F98415757620B543A52E61c46B32eB19261F984',
285
+ // quoterAddress: '0xb27308f9F90D607463bb33eA1BeBb41C27CE5AB6',
286
+ // v3MigratorAddress: '0xA5644E29708357803b5A882D272c41cC0dF92B34',
287
+ // nonfungiblePositionManagerAddress: '0xC36442b4a4522E871399CD717aBDD847Ab11FE88',
288
+ // }
289
+ // const MAINNET_ADDRESSES: ChainAddresses = {
290
+ // ...DEFAULT_ADDRESSES,
291
+ // mixedRouteQuoterV1Address: '0x84E44095eeBfEC7793Cd7d5b57B7e401D7f1cA2E',
292
+ // v4PoolManagerAddress: '0x000000000004444c5dc75cB358380D2e3dE08A90',
293
+ // v4PositionManagerAddress: '0xbd216513d74c8cf14cf4747e6aaa6420ff64ee9e',
294
+ // v4StateView: '0x7ffe42c4a5deea5b0fec41c94c136cf115597227',
295
+ // v4QuoterAddress: '0x52f0e24d1c21c8a0cb1e5a5dd6198556bd9e1203',
296
+ // }
297
+ // const GOERLI_ADDRESSES: ChainAddresses = {
298
+ // ...DEFAULT_ADDRESSES,
299
+ // mixedRouteQuoterV1Address: '0xBa60b6e6fF25488308789E6e0A65D838be34194e',
300
+ // }
301
+ // const OPTIMISM_ADDRESSES: ChainAddresses = {
302
+ // ...DEFAULT_ADDRESSES,
303
+ // v4PoolManagerAddress: '0x9a13f98cb987694c9f086b1f5eb990eea8264ec3',
304
+ // v4PositionManagerAddress: '0x3c3ea4b57a46241e54610e5f022e5c45859a1017',
305
+ // v4StateView: '0xc18a3169788f4f75a170290584eca6395c75ecdb',
306
+ // v4QuoterAddress: '0x1f3131a13296fb91c90870043742c3cdbff1a8d7',
307
+ // }
308
+ // const ARBITRUM_ONE_ADDRESSES: ChainAddresses = {
309
+ // ...DEFAULT_ADDRESSES,
310
+ // multicallAddress: '0xadF885960B47eA2CD9B55E6DAc6B42b7Cb2806dB',
311
+ // tickLensAddress: '0xbfd8137f7d1516D3ea5cA83523914859ec47F573',
312
+ // v4PoolManagerAddress: '0x360e68faccca8ca495c1b759fd9eee466db9fb32',
313
+ // v4PositionManagerAddress: '0xd88f38f930b7952f2db2432cb002e7abbf3dd869',
314
+ // v4StateView: '0x76fd297e2d437cd7f76d50f01afe6160f86e9990',
315
+ // v4QuoterAddress: '0x3972c00f7ed4885e145823eb7c655375d275a1c5',
316
+ // }
317
+ // const POLYGON_ADDRESSES: ChainAddresses = {
318
+ // ...DEFAULT_ADDRESSES,
319
+ // v4PoolManagerAddress: '0x67366782805870060151383f4bbff9dab53e5cd6',
320
+ // v4PositionManagerAddress: '0x1ec2ebf4f37e7363fdfe3551602425af0b3ceef9',
321
+ // v4StateView: '0x5ea1bd7974c8a611cbab0bdcafcb1d9cc9b3ba5a',
322
+ // v4QuoterAddress: '0xb3d5c3dfc3a7aebff71895a7191796bffc2c81b9',
323
+ // }
324
+ // // celo v3 addresses
325
+ // const CELO_ADDRESSES: ChainAddresses = {
326
+ // v3CoreFactoryAddress: '0xAfE208a311B21f13EF87E33A90049fC17A7acDEc',
327
+ // multicallAddress: '0x633987602DE5C4F337e3DbF265303A1080324204',
328
+ // quoterAddress: '0x82825d0554fA07f7FC52Ab63c961F330fdEFa8E8',
329
+ // v3MigratorAddress: '0x3cFd4d48EDfDCC53D3f173F596f621064614C582',
330
+ // nonfungiblePositionManagerAddress: '0x3d79EdAaBC0EaB6F08ED885C05Fc0B014290D95A',
331
+ // tickLensAddress: '0x5f115D9113F88e0a0Db1b5033D90D4a9690AcD3D',
332
+ // }
333
+ // // BNB v3 addresses
334
+ // const BNB_ADDRESSES: ChainAddresses = {
335
+ // v3CoreFactoryAddress: '0xdB1d10011AD0Ff90774D0C6Bb92e5C5c8b4461F7',
336
+ // multicallAddress: '0x963Df249eD09c358A4819E39d9Cd5736c3087184',
337
+ // quoterAddress: '0x78D78E420Da98ad378D7799bE8f4AF69033EB077',
338
+ // v3MigratorAddress: '0x32681814957e0C13117ddc0c2aba232b5c9e760f',
339
+ // nonfungiblePositionManagerAddress: '0x7b8A01B39D58278b5DE7e48c8449c9f4F5170613',
340
+ // tickLensAddress: '0xD9270014D396281579760619CCf4c3af0501A47C',
341
+ // swapRouter02Address: '0xB971eF87ede563556b2ED4b1C0b0019111Dd85d2',
342
+ // v4PoolManagerAddress: '0x28e2ea090877bf75740558f6bfb36a5ffee9e9df',
343
+ // v4PositionManagerAddress: '0x7a4a5c919ae2541aed11041a1aeee68f1287f95b',
344
+ // v4StateView: '0xd13dd3d6e93f276fafc9db9e6bb47c1180aee0c4',
345
+ // v4QuoterAddress: '0x9f75dd27d6664c475b90e105573e550ff69437b0',
346
+ // }
347
+ // // optimism goerli addresses
348
+ // const OPTIMISM_GOERLI_ADDRESSES: ChainAddresses = {
349
+ // v3CoreFactoryAddress: '0xB656dA17129e7EB733A557f4EBc57B76CFbB5d10',
350
+ // multicallAddress: '0x07F2D8a2a02251B62af965f22fC4744A5f96BCCd',
351
+ // quoterAddress: '0x9569CbA925c8ca2248772A9A4976A516743A246F',
352
+ // v3MigratorAddress: '0xf6c55fBe84B1C8c3283533c53F51bC32F5C7Aba8',
353
+ // nonfungiblePositionManagerAddress: '0x39Ca85Af2F383190cBf7d7c41ED9202D27426EF6',
354
+ // tickLensAddress: '0xe6140Bd164b63E8BfCfc40D5dF952f83e171758e',
355
+ // }
356
+ // optimism sepolia addresses
357
+ const OPTIMISM_SEPOLIA_ADDRESSES = {
358
+ v3CoreFactoryAddress: '0x8CE191193D15ea94e11d327b4c7ad8bbE520f6aF',
359
+ multicallAddress: '0x80e4e06841bb76AA9735E0448cB8d003C0EF009a',
360
+ quoterAddress: '0x0FBEa6cf957d95ee9313490050F6A0DA68039404',
361
+ v3MigratorAddress: '0xE7EcbAAaA54D007A00dbb6c1d2f150066D69dA07',
362
+ nonfungiblePositionManagerAddress: '0xdA75cEf1C93078e8b736FCA5D5a30adb97C8957d',
363
+ tickLensAddress: '0xCb7f54747F58F8944973cea5b8f4ac2209BadDC5',
364
+ swapRouter02Address: '0x94cC0AaC535CCDB3C01d6787D6413C739ae12bc4',
365
+ };
366
+ // // arbitrum goerli v3 addresses
367
+ // const ARBITRUM_GOERLI_ADDRESSES: ChainAddresses = {
368
+ // v3CoreFactoryAddress: '0x4893376342d5D7b3e31d4184c08b265e5aB2A3f6',
369
+ // multicallAddress: '0x8260CB40247290317a4c062F3542622367F206Ee',
370
+ // quoterAddress: '0x1dd92b83591781D0C6d98d07391eea4b9a6008FA',
371
+ // v3MigratorAddress: '0xA815919D2584Ac3F76ea9CB62E6Fd40a43BCe0C3',
372
+ // nonfungiblePositionManagerAddress: '0x622e4726a167799826d1E1D150b076A7725f5D81',
373
+ // tickLensAddress: '0xb52429333da969a0C79a60930a4Bf0020E5D1DE8',
374
+ // }
375
+ // // arbitrum sepolia v3 addresses
376
+ // const ARBITRUM_SEPOLIA_ADDRESSES: ChainAddresses = {
377
+ // v3CoreFactoryAddress: '0x248AB79Bbb9bC29bB72f7Cd42F17e054Fc40188e',
378
+ // multicallAddress: '0x2B718b475e385eD29F56775a66aAB1F5cC6B2A0A',
379
+ // quoterAddress: '0x2779a0CC1c3e0E44D2542EC3e79e3864Ae93Ef0B',
380
+ // v3MigratorAddress: '0x398f43ef2c67B941147157DA1c5a868E906E043D',
381
+ // nonfungiblePositionManagerAddress: '0x6b2937Bde17889EDCf8fbD8dE31C3C2a70Bc4d65',
382
+ // tickLensAddress: '0x0fd18587734e5C2dcE2dccDcC7DD1EC89ba557d9',
383
+ // swapRouter02Address: '0x101F443B4d1b059569D643917553c771E1b9663E',
384
+ // v4PoolManagerAddress: '0xFB3e0C6F74eB1a21CC1Da29aeC80D2Dfe6C9a317',
385
+ // v4PositionManagerAddress: '0xAc631556d3d4019C95769033B5E719dD77124BAc',
386
+ // v4StateView: '0x9d467fa9062b6e9b1a46e26007ad82db116c67cb',
387
+ // v4QuoterAddress: '0x7de51022d70a725b508085468052e25e22b5c4c9',
388
+ // }
389
+ // // sepolia v3 addresses
390
+ // const SEPOLIA_ADDRESSES: ChainAddresses = {
391
+ // v3CoreFactoryAddress: '0x0227628f3F023bb0B980b67D528571c95c6DaC1c',
392
+ // multicallAddress: '0xD7F33bCdb21b359c8ee6F0251d30E94832baAd07',
393
+ // quoterAddress: '0xEd1f6473345F45b75F8179591dd5bA1888cf2FB3',
394
+ // v3MigratorAddress: '0x729004182cF005CEC8Bd85df140094b6aCbe8b15',
395
+ // nonfungiblePositionManagerAddress: '0x1238536071E1c677A632429e3655c799b22cDA52',
396
+ // tickLensAddress: '0xd7f33bcdb21b359c8ee6f0251d30e94832baad07',
397
+ // swapRouter02Address: '0x3bFA4769FB09eefC5a80d6E87c3B9C650f7Ae48E',
398
+ // // TODO: update mixedRouteQuoterV2Address once v4 on sepolia redeployed
399
+ // mixedRouteQuoterV2Address: '0x4745f77b56a0e2294426e3936dc4fab68d9543cd',
400
+ // // TODO: update all below once v4 on sepolia redeployed
401
+ // v4PoolManagerAddress: '0xE03A1074c86CFeDd5C142C4F04F1a1536e203543',
402
+ // v4PositionManagerAddress: '0x429ba70129df741B2Ca2a85BC3A2a3328e5c09b4',
403
+ // v4StateView: '0xe1dd9c3fa50edb962e442f60dfbc432e24537e4c',
404
+ // v4QuoterAddress: '0x61b3f2011a92d183c7dbadbda940a7555ccf9227',
405
+ // }
406
+ // // Avalanche v3 addresses
407
+ // const AVALANCHE_ADDRESSES: ChainAddresses = {
408
+ // v3CoreFactoryAddress: '0x740b1c1de25031C31FF4fC9A62f554A55cdC1baD',
409
+ // multicallAddress: '0x0139141Cd4Ee88dF3Cdb65881D411bAE271Ef0C2',
410
+ // quoterAddress: '0xbe0F5544EC67e9B3b2D979aaA43f18Fd87E6257F',
411
+ // v3MigratorAddress: '0x44f5f1f5E452ea8d29C890E8F6e893fC0f1f0f97',
412
+ // nonfungiblePositionManagerAddress: '0x655C406EBFa14EE2006250925e54ec43AD184f8B',
413
+ // tickLensAddress: '0xEB9fFC8bf81b4fFd11fb6A63a6B0f098c6e21950',
414
+ // swapRouter02Address: '0xbb00FF08d01D300023C629E8fFfFcb65A5a578cE',
415
+ // v4PoolManagerAddress: '0x06380c0e0912312b5150364b9dc4542ba0dbbc85',
416
+ // v4PositionManagerAddress: '0xb74b1f14d2754acfcbbe1a221023a5cf50ab8acd',
417
+ // v4StateView: '0xc3c9e198c735a4b97e3e683f391ccbdd60b69286',
418
+ // v4QuoterAddress: '0xbe40675bb704506a3c2ccfb762dcfd1e979845c2',
419
+ // }
420
+ // const BASE_ADDRESSES: ChainAddresses = {
421
+ // v3CoreFactoryAddress: '0x33128a8fC17869897dcE68Ed026d694621f6FDfD',
422
+ // multicallAddress: '0x091e99cb1C49331a94dD62755D168E941AbD0693',
423
+ // quoterAddress: '0x3d4e44Eb1374240CE5F1B871ab261CD16335B76a',
424
+ // v3MigratorAddress: '0x23cF10b1ee3AdfCA73B0eF17C07F7577e7ACd2d7',
425
+ // nonfungiblePositionManagerAddress: '0x03a520b32C04BF3bEEf7BEb72E919cf822Ed34f1',
426
+ // tickLensAddress: '0x0CdeE061c75D43c82520eD998C23ac2991c9ac6d',
427
+ // swapRouter02Address: '0x2626664c2603336E57B271c5C0b26F421741e481',
428
+ // mixedRouteQuoterV1Address: '0xe544efae946f0008ae9a8d64493efa7886b73776',
429
+ // v4PoolManagerAddress: '0x498581ff718922c3f8e6a244956af099b2652b2b',
430
+ // v4PositionManagerAddress: '0x7c5f5a4bbd8fd63184577525326123b519429bdc',
431
+ // v4StateView: '0xa3c0c9b65bad0b08107aa264b0f3db444b867a71',
432
+ // v4QuoterAddress: '0x0d5e0f971ed27fbff6c2837bf31316121532048d',
433
+ // }
434
+ // // Base Goerli v3 addresses
435
+ // const BASE_GOERLI_ADDRESSES: ChainAddresses = {
436
+ // v3CoreFactoryAddress: '0x9323c1d6D800ed51Bd7C6B216cfBec678B7d0BC2',
437
+ // multicallAddress: '0xB206027a9E0E13F05eBEFa5D2402Bab3eA716439',
438
+ // quoterAddress: '0xedf539058e28E5937dAef3f69cEd0b25fbE66Ae9',
439
+ // v3MigratorAddress: '0x3efe5d02a04b7351D671Db7008ec6eBA9AD9e3aE',
440
+ // nonfungiblePositionManagerAddress: '0x3c61369ef0D1D2AFa70d8feC2F31C5D6Ce134F30',
441
+ // tickLensAddress: '0x1acB873Ee909D0c98adB18e4474943249F931b92',
442
+ // swapRouter02Address: '0x8357227D4eDc78991Db6FDB9bD6ADE250536dE1d',
443
+ // }
444
+ // // Base Sepolia v3 addresses
445
+ const BASE_SEPOLIA_ADDRESSES = {
446
+ v3CoreFactoryAddress: '0x4752ba5DBc23f44D87826276BF6Fd6b1C372aD24',
447
+ multicallAddress: '0xd867e273eAbD6c853fCd0Ca0bFB6a3aE6491d2C1',
448
+ quoterAddress: '0xC5290058841028F1614F3A6F0F5816cAd0df5E27',
449
+ v3MigratorAddress: '0xCbf8b7f80800bd4888Fbc7bf1713B80FE4E23E10',
450
+ nonfungiblePositionManagerAddress: '0x27F971cb582BF9E50F397e4d29a5C7A34f11faA2',
451
+ tickLensAddress: '0xedf6066a2b290C185783862C7F4776A2C8077AD1',
452
+ swapRouter02Address: '0x94cC0AaC535CCDB3C01d6787D6413C739ae12bc4',
453
+ // v4
454
+ v4PoolManagerAddress: '0x05E73354cFDd6745C338b50BcFDfA3Aa6fA03408',
455
+ v4PositionManagerAddress: '0x4b2c77d209d3405f41a037ec6c77f7f5b8e2ca80',
456
+ v4StateView: '0x571291b572ed32ce6751a2cb2486ebee8defb9b4',
457
+ v4QuoterAddress: '0x4a6513c898fe1b2d0e78d3b0e0a4a151589b1cba',
458
+ };
459
+ const ZORA_ADDRESSES = {
460
+ v3CoreFactoryAddress: '0x7145F8aeef1f6510E92164038E1B6F8cB2c42Cbb',
461
+ multicallAddress: '0xA51c76bEE6746cB487a7e9312E43e2b8f4A37C15',
462
+ quoterAddress: '0x11867e1b3348F3ce4FcC170BC5af3d23E07E64Df',
463
+ v3MigratorAddress: '0x048352d8dCF13686982C799da63fA6426a9D0b60',
464
+ nonfungiblePositionManagerAddress: '0xbC91e8DfA3fF18De43853372A3d7dfe585137D78',
465
+ tickLensAddress: '0x209AAda09D74Ad3B8D0E92910Eaf85D2357e3044',
466
+ swapRouter02Address: '0x7De04c96BE5159c3b5CeffC82aa176dc81281557',
467
+ v4PoolManagerAddress: '0x0575338e4c17006ae181b47900a84404247ca30f',
468
+ v4PositionManagerAddress: '0xf66c7b99e2040f0d9b326b3b7c152e9663543d63',
469
+ v4StateView: '0x385785af07d63b50d0a0ea57c4ff89d06adf7328',
470
+ v4QuoterAddress: '0x5edaccc0660e0a2c44b06e07ce8b915e625dc2c6',
471
+ };
472
+ const ZORA_SEPOLIA_ADDRESSES = {
473
+ v3CoreFactoryAddress: '0x4324A677D74764f46f33ED447964252441aA8Db6',
474
+ multicallAddress: '0xA1E7e3A69671C4494EC59Dbd442de930a93F911A',
475
+ quoterAddress: '0xC195976fEF0985886E37036E2DF62bF371E12Df0',
476
+ v3MigratorAddress: '0x65ef259b31bf1d977c37e9434658694267674897',
477
+ nonfungiblePositionManagerAddress: '0xB8458EaAe43292e3c1F7994EFd016bd653d23c20',
478
+ tickLensAddress: '0x23C0F71877a1Fc4e20A78018f9831365c85f3064',
479
+ };
480
+ const ROOTSTOCK_ADDRESSES = {
481
+ v3CoreFactoryAddress: '0xaF37EC98A00FD63689CF3060BF3B6784E00caD82',
482
+ multicallAddress: '0x996a9858cDfa45Ad68E47c9A30a7201E29c6a386',
483
+ quoterAddress: '0xb51727c996C68E60F598A923a5006853cd2fEB31',
484
+ v3MigratorAddress: '0x16678977CA4ec3DAD5efc7b15780295FE5f56162',
485
+ nonfungiblePositionManagerAddress: '0x9d9386c042F194B460Ec424a1e57ACDE25f5C4b1',
486
+ tickLensAddress: '0x55B9dF5bF68ADe972191a91980459f48ecA16afC',
487
+ swapRouter02Address: '0x0B14ff67f0014046b4b99057Aec4509640b3947A',
488
+ };
489
+ // const BLAST_ADDRESSES: ChainAddresses = {
490
+ // v3CoreFactoryAddress: '0x792edAdE80af5fC680d96a2eD80A44247D2Cf6Fd',
491
+ // multicallAddress: '0xdC7f370de7631cE9e2c2e1DCDA6B3B5744Cf4705',
492
+ // quoterAddress: '0x6Cdcd65e03c1CEc3730AeeCd45bc140D57A25C77',
493
+ // v3MigratorAddress: '0x15CA7043CD84C5D21Ae76Ba0A1A967d42c40ecE0',
494
+ // nonfungiblePositionManagerAddress: '0xB218e4f7cF0533d4696fDfC419A0023D33345F28',
495
+ // tickLensAddress: '0x2E95185bCdD928a3e984B7e2D6560Ab1b17d7274',
496
+ // swapRouter02Address: '0x549FEB8c9bd4c12Ad2AB27022dA12492aC452B66',
497
+ // v4PoolManagerAddress: '0x1631559198a9e474033433b2958dabc135ab6446',
498
+ // v4PositionManagerAddress: '0x4ad2f4cca2682cbb5b950d660dd458a1d3f1baad',
499
+ // v4StateView: '0x12a88ae16f46dce4e8b15368008ab3380885df30',
500
+ // v4QuoterAddress: '0x6f71cdcb0d119ff72c6eb501abceb576fbf62bcf',
501
+ // }
502
+ const ZKSYNC_ADDRESSES = {
503
+ v3CoreFactoryAddress: '0x8FdA5a7a8dCA67BBcDd10F02Fa0649A937215422',
504
+ multicallAddress: '0x0c68a7C72f074d1c45C16d41fa74eEbC6D16a65C',
505
+ quoterAddress: '0x8Cb537fc92E26d8EBBb760E632c95484b6Ea3e28',
506
+ v3MigratorAddress: '0x611841b24E43C4ACfd290B427a3D6cf1A59dac8E',
507
+ nonfungiblePositionManagerAddress: '0x0616e5762c1E7Dc3723c50663dF10a162D690a86',
508
+ tickLensAddress: '0xe10FF11b809f8EE07b056B452c3B2caa7FE24f89',
509
+ swapRouter02Address: '0x99c56385daBCE3E81d8499d0b8d0257aBC07E8A3',
510
+ };
511
+ const WORLDCHAIN_ADDRESSES = {
512
+ v3CoreFactoryAddress: '0x7a5028BDa40e7B173C278C5342087826455ea25a',
513
+ multicallAddress: '0x0a22c04215c97E3F532F4eF30e0aD9458792dAB9',
514
+ quoterAddress: '0x10158D43e6cc414deE1Bd1eB0EfC6a5cBCfF244c',
515
+ v3MigratorAddress: '0x9EBDdCBa71C9027E1eB45135672a30bcFEec9de3',
516
+ nonfungiblePositionManagerAddress: '0xec12a9F9a09f50550686363766Cc153D03c27b5e',
517
+ tickLensAddress: '0xE61df0CaC9d85876aCE5E3037005D80943570623',
518
+ swapRouter02Address: '0x091AD9e2e6e5eD44c1c66dB50e49A601F9f36cF6',
519
+ v4PoolManagerAddress: '0xb1860d529182ac3bc1f51fa2abd56662b7d13f33',
520
+ v4PositionManagerAddress: '0xc585e0f504613b5fbf874f21af14c65260fb41fa',
521
+ v4StateView: '0x51d394718bc09297262e368c1a481217fdeb71eb',
522
+ v4QuoterAddress: '0x55d235b3ff2daf7c3ede0defc9521f1d6fe6c5c0',
523
+ };
524
+ // const UNICHAIN_SEPOLIA_ADDRESSES: ChainAddresses = {
525
+ // v3CoreFactoryAddress: '0x1F98431c8aD98523631AE4a59f267346ea31F984',
526
+ // multicallAddress: '0x9D0F15f2cf58655fDDcD1EE6129C547fDaeD01b1',
527
+ // quoterAddress: '0x6Dd37329A1A225a6Fca658265D460423DCafBF89',
528
+ // v3MigratorAddress: '0xb5FA244C9d6D04B2FBac84418b3c4910ED1Ae5f2',
529
+ // nonfungiblePositionManagerAddress: '0xB7F724d6dDDFd008eFf5cc2834edDE5F9eF0d075',
530
+ // tickLensAddress: '0x5f739c790a48E97eec0efb81bab5D152c0A0ecA0',
531
+ // swapRouter02Address: '0xd1AAE39293221B77B0C71fBD6dCb7Ea29Bb5B166',
532
+ // v4PoolManagerAddress: '0x00b036b58a818b1bc34d502d3fe730db729e62ac',
533
+ // v4PositionManagerAddress: '0xf969aee60879c54baaed9f3ed26147db216fd664',
534
+ // v4StateView: '0xc199f1072a74d4e905aba1a84d9a45e2546b6222',
535
+ // v4QuoterAddress: '0x56dcd40a3f2d466f48e7f48bdbe5cc9b92ae4472',
536
+ // }
537
+ // const UNICHAIN_ADDRESSES: ChainAddresses = {
538
+ // v3CoreFactoryAddress: '0x1f98400000000000000000000000000000000003',
539
+ // multicallAddress: '0xb7610f9b733e7d45184be3a1bc966960ccc54f0b',
540
+ // quoterAddress: '0x565ac8c7863d9bb16d07e809ff49fe5cd467634c',
541
+ // v3MigratorAddress: '0xb9d0c246f306b1aaf02ae6ba112d5ef25e5b60dc',
542
+ // nonfungiblePositionManagerAddress: '0x943e6e07a7e8e791dafc44083e54041d743c46e9',
543
+ // tickLensAddress: '0xd5d76fa166ab8d8ad4c9f61aaa81457b66cbe443',
544
+ // swapRouter02Address: '0x73855d06de49d0fe4a9c42636ba96c62da12ff9c',
545
+ // v4PoolManagerAddress: '0x1f98400000000000000000000000000000000004',
546
+ // v4PositionManagerAddress: '0x4529a01c7a0410167c5740c487a8de60232617bf',
547
+ // v4StateView: '0x86e8631a016f9068c3f085faf484ee3f5fdee8f2',
548
+ // v4QuoterAddress: '0x333e3c607b141b18ff6de9f258db6e77fe7491e0',
549
+ // }
550
+ const MONAD_TESTNET_ADDRESSES = {
551
+ v3CoreFactoryAddress: '0x961235a9020b05c44df1026d956d1f4d78014276',
552
+ multicallAddress: '0xa707ceb989cc3728551ed0e6e44b718dd114cf44',
553
+ quoterAddress: '0x1ba215c17565de7b0cb7ecab971bcf540c24a862',
554
+ v3MigratorAddress: '0x0a78348b71f8ae8caff2f8f9d4d74a2f36516661',
555
+ nonfungiblePositionManagerAddress: '0x3dcc735c74f10fe2b9db2bb55c40fbbbf24490f7',
556
+ tickLensAddress: '0x337478eb6058455ecb3696184b30dd6a29e3a893',
557
+ swapRouter02Address: '0x4c4eabd5fb1d1a7234a48692551eaecff8194ca7',
558
+ };
559
+ const MONAD_ADDRESSES = {
560
+ v3CoreFactoryAddress: '0x204faca1764b154221e35c0d20abb3c525710498',
561
+ multicallAddress: '0xd1b797d92d87b688193a2b976efc8d577d204343',
562
+ quoterAddress: '0x2d01411773c8c24805306e89a41f7855c3c4fe65',
563
+ v3MigratorAddress: '0x7078c4537c04c2b2e52ddba06074dbdacf23ca15',
564
+ nonfungiblePositionManagerAddress: '0x7197e214c0b767cfb76fb734ab638e2c192f4e53',
565
+ tickLensAddress: '0xf025e0fe9e331a0ef05c2ad3c4e9c64b625cda6f',
566
+ swapRouter02Address: '0xfe31f71c1b106eac32f1a19239c9a9a72ddfb900',
567
+ // v4
568
+ v4PoolManagerAddress: '0x188d586ddcf52439676ca21a244753fa19f9ea8e',
569
+ v4PositionManagerAddress: '0x5b7ec4a94ff9bedb700fb82ab09d5846972f4016',
570
+ v4StateView: '0x77395f3b2e73ae90843717371294fa97cc419d64',
571
+ v4QuoterAddress: '0xa222dd357a9076d1091ed6aa2e16c9742dd26891',
572
+ };
573
+ const SONEIUM_ADDRESSES = {
574
+ v3CoreFactoryAddress: '0x42ae7ec7ff020412639d443e245d936429fbe717',
575
+ multicallAddress: '0x8ad5ef2f2508288d2de66f04dd883ad5f4ef62b2',
576
+ quoterAddress: '0x3e6c707d0125226ff60f291b6bd1404634f00aba',
577
+ v3MigratorAddress: '0xa107580f73bd797bd8b87ff24e98346d99f93ddb',
578
+ nonfungiblePositionManagerAddress: '0x56c1205b0244332011c1e866f4ea5384eb6bfa2c',
579
+ tickLensAddress: '0xcd08eefb928c86499e6235ac155906bb7c4dc41a',
580
+ swapRouter02Address: '0x7e40db01736f88464e5f4e42394f3d5bbb6705b9',
581
+ v4PoolManagerAddress: '0x360e68faccca8ca495c1b759fd9eee466db9fb32',
582
+ v4PositionManagerAddress: '0x1b35d13a2e2528f192637f14b05f0dc0e7deb566',
583
+ v4StateView: '0x76fd297e2d437cd7f76d50f01afe6160f86e9990',
584
+ v4QuoterAddress: '0x3972c00f7ed4885e145823eb7c655375d275a1c5',
585
+ };
586
+ export const RING_CHAIN_TO_ADDRESSES_MAP = {
587
+ [ChainId.HYPER_MAINNET]: HYPER_MAINNET_ADDRESSES,
588
+ [ChainId.MAINNET]: ETH_MAINNET_ADDRESSES,
589
+ [ChainId.OPTIMISM]: OPTIMISM_ADDRESSES,
590
+ [ChainId.ARBITRUM_ONE]: ARBITRUM_ONE_ADDRESSES,
591
+ [ChainId.POLYGON]: POLYGON_ADDRESSES,
592
+ [ChainId.POLYGON_MUMBAI]: POLYGON_ADDRESSES,
593
+ [ChainId.GOERLI]: GOERLI_ADDRESSES,
594
+ [ChainId.CELO]: CELO_ADDRESSES,
595
+ [ChainId.CELO_ALFAJORES]: CELO_ADDRESSES,
596
+ [ChainId.BNB]: BNB_ADDRESSES,
597
+ [ChainId.OPTIMISM_GOERLI]: OPTIMISM_GOERLI_ADDRESSES,
598
+ [ChainId.OPTIMISM_SEPOLIA]: OPTIMISM_SEPOLIA_ADDRESSES,
599
+ [ChainId.ARBITRUM_GOERLI]: ARBITRUM_GOERLI_ADDRESSES,
600
+ [ChainId.ARBITRUM_SEPOLIA]: ARBITRUM_SEPOLIA_ADDRESSES,
601
+ [ChainId.SEPOLIA]: SEPOLIA_ADDRESSES,
602
+ [ChainId.AVALANCHE]: AVALANCHE_ADDRESSES,
603
+ [ChainId.BASE]: BASE_ADDRESSES,
604
+ [ChainId.BASE_GOERLI]: BASE_GOERLI_ADDRESSES,
605
+ [ChainId.BASE_SEPOLIA]: BASE_SEPOLIA_ADDRESSES,
606
+ [ChainId.ZORA]: ZORA_ADDRESSES,
607
+ [ChainId.ZORA_SEPOLIA]: ZORA_SEPOLIA_ADDRESSES,
608
+ [ChainId.ROOTSTOCK]: ROOTSTOCK_ADDRESSES,
609
+ [ChainId.BLAST]: BLAST_MAINNET_ADDRESSES,
610
+ [ChainId.BLAST_SEPOLIA]: BLAST_SEPOLIA_ADDRESSES,
611
+ [ChainId.STORY_ODYSSEY]: STORY_ODYSSEY_ADDRESSES,
612
+ [ChainId.STORY_MAINNET]: STORY_MAINNET_ADDRESSES,
613
+ [ChainId.ZKSYNC]: ZKSYNC_ADDRESSES,
614
+ [ChainId.WORLDCHAIN]: WORLDCHAIN_ADDRESSES,
615
+ [ChainId.UNICHAIN_SEPOLIA]: UNICHAIN_SEPOLIA_ADDRESSES,
616
+ [ChainId.UNICHAIN]: UNICHAIN_ADDRESSES,
617
+ [ChainId.MONAD_TESTNET]: MONAD_TESTNET_ADDRESSES,
618
+ [ChainId.MONAD]: MONAD_ADDRESSES,
619
+ [ChainId.SONEIUM]: SONEIUM_ADDRESSES,
620
+ };
621
+ export function isFewToken(token) {
622
+ var _a, _b, _c, _d;
623
+ const isFewWrappedName = (_b = (_a = token.name) === null || _a === void 0 ? void 0 : _a.startsWith('Few Wrapped ')) !== null && _b !== void 0 ? _b : false;
624
+ const isFwSymbol = (_d = (_c = token.symbol) === null || _c === void 0 ? void 0 : _c.startsWith('fw')) !== null && _d !== void 0 ? _d : false;
625
+ return isFewWrappedName || isFwSymbol;
626
+ }
627
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmV3QWRkcmVzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy91dGlsL2Zld0FkZHJlc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBOEIsTUFBTSx5QkFBeUIsQ0FBQTtBQXNCN0UsTUFBTSxnQkFBZ0IsR0FBRztJQUN2QixPQUFPLENBQUMsT0FBTztJQUNmLE9BQU8sQ0FBQyxPQUFPO0lBQ2YsT0FBTyxDQUFDLEtBQUs7SUFDYixPQUFPLENBQUMsZ0JBQWdCO0lBQ3hCLE9BQU8sQ0FBQyxRQUFRO0lBQ2hCLE9BQU8sQ0FBQyxnQkFBZ0I7SUFDeEIsT0FBTyxDQUFDLElBQUk7Q0FDYixDQUFBO0FBRUQsU0FBUyx1QkFBdUIsQ0FBQyxPQUFlLEVBQUUscUJBQWdDLEVBQUU7SUFDbEYsT0FBTyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxNQUFNLENBQWEsQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLEVBQUU7UUFDdEYsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLE9BQU8sQ0FBQTtRQUN2QixPQUFPLElBQUksQ0FBQTtJQUNiLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQTtBQUNSLENBQUM7QUFFRCxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQWUsdUJBQXVCLENBQUMsNENBQTRDLEVBQUU7SUFDN0csT0FBTyxDQUFDLFFBQVE7SUFDaEIsT0FBTyxDQUFDLFlBQVk7SUFDcEIsT0FBTyxDQUFDLE9BQU87SUFDZixPQUFPLENBQUMsY0FBYztJQUN0QixPQUFPLENBQUMsT0FBTztDQUNoQixDQUFDLENBQUE7QUFFRixNQUFNLENBQUMsTUFBTSxpQ0FBaUMsR0FBRyw0Q0FBNEMsQ0FBQTtBQUU3RixNQUFNLENBQUMsTUFBTSwwQkFBMEIsR0FBRyw0Q0FBNEMsQ0FBQTtBQUN0RixNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRyw0Q0FBNEMsQ0FBQTtBQUNwRixNQUFN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