@fanx-protocol/smart-order-router 0.0.1 → 1.0.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 (397) hide show
  1. package/build/main/providers/caching-subgraph-provider.d.ts +1 -1
  2. package/build/main/providers/eip-1559-gas-price-provider.d.ts +2 -2
  3. package/build/main/providers/eth-estimate-gas-provider.js +2 -2
  4. package/build/main/providers/eth-gas-station-info-gas-price-provider.d.ts +1 -1
  5. package/build/main/providers/gas-price-provider.d.ts +1 -1
  6. package/build/main/providers/multicall-provider.d.ts +6 -6
  7. package/build/main/providers/multicall-uniswap-provider.d.ts +1 -1
  8. package/build/main/providers/on-chain-quote-provider.d.ts +17 -17
  9. package/build/main/providers/pool-provider.d.ts +4 -4
  10. package/build/main/providers/provider.d.ts +2 -2
  11. package/build/main/providers/simulation-provider.d.ts +1 -1
  12. package/build/main/providers/subgraph-provider.d.ts +2 -2
  13. package/build/main/providers/swap-router-provider.d.ts +1 -1
  14. package/build/main/providers/token-fee-fetcher.d.ts +3 -3
  15. package/build/main/providers/token-properties-provider.d.ts +3 -3
  16. package/build/main/providers/token-provider.d.ts +1 -1
  17. package/build/main/providers/v2/pool-provider.d.ts +2 -2
  18. package/build/main/providers/v2/quote-provider.d.ts +2 -2
  19. package/build/main/providers/v3/gas-data-provider.d.ts +1 -1
  20. package/build/main/providers/v3/pool-provider.d.ts +5 -5
  21. package/build/main/providers/v3/subgraph-provider.d.ts +1 -1
  22. package/build/main/routers/alpha-router/alpha-router.d.ts +3 -3
  23. package/build/main/routers/alpha-router/entities/route-with-valid-quote.d.ts +7 -7
  24. package/build/main/routers/alpha-router/entities/route-with-valid-quote.js +10 -10
  25. package/build/main/routers/alpha-router/functions/best-swap-route.d.ts +1 -1
  26. package/build/main/routers/alpha-router/functions/get-candidate-pools.d.ts +12 -12
  27. package/build/main/routers/alpha-router/gas-models/gas-model.d.ts +7 -7
  28. package/build/main/routers/router.d.ts +14 -14
  29. package/build/main/tsconfig.tsbuildinfo +1 -1
  30. package/build/main/types/other/factories/GasPriceOracle__factory.d.ts +46 -0
  31. package/build/main/types/other/factories/GasPriceOracle__factory.js +316 -0
  32. package/build/main/types/other/factories/IApproveAndCall__factory.d.ts +41 -0
  33. package/build/main/types/other/factories/IApproveAndCall__factory.js +222 -0
  34. package/build/main/types/other/factories/IImmutableState__factory.d.ts +18 -0
  35. package/build/main/types/other/factories/IImmutableState__factory.js +46 -0
  36. package/build/main/types/other/factories/IMulticallExtended__factory.d.ts +22 -0
  37. package/build/main/types/other/factories/IMulticallExtended__factory.js +87 -0
  38. package/build/main/types/other/factories/IOracleSlippage__factory.d.ts +18 -0
  39. package/build/main/types/other/factories/IOracleSlippage__factory.js +71 -0
  40. package/build/main/types/other/factories/IPeripheryPaymentsExtended__factory.d.ts +18 -0
  41. package/build/main/types/other/factories/IPeripheryPaymentsExtended__factory.js +130 -0
  42. package/build/main/types/other/factories/IPeripheryPaymentsWithFeeExtended__factory.d.ts +18 -0
  43. package/build/main/types/other/factories/IPeripheryPaymentsWithFeeExtended__factory.js +242 -0
  44. package/build/main/types/other/factories/IQuoterV2__factory.d.ts +41 -0
  45. package/build/main/types/other/factories/IQuoterV2__factory.js +220 -0
  46. package/build/main/types/other/factories/IQuoter__factory.d.ts +22 -0
  47. package/build/main/types/other/factories/IQuoter__factory.js +146 -0
  48. package/build/main/types/other/factories/ISwapRouter02__factory.d.ts +41 -0
  49. package/build/main/types/other/factories/ISwapRouter02__factory.js +726 -0
  50. package/build/main/types/other/factories/IV2SwapRouter__factory.d.ts +22 -0
  51. package/build/main/types/other/factories/IV2SwapRouter__factory.js +88 -0
  52. package/build/main/types/other/factories/IV3SwapRouter__factory.d.ts +37 -0
  53. package/build/main/types/other/factories/IV3SwapRouter__factory.js +237 -0
  54. package/build/main/types/other/factories/IWETH__factory.d.ts +22 -0
  55. package/build/main/types/other/factories/IWETH__factory.js +64 -0
  56. package/build/main/types/other/factories/MixedRouteQuoterV1__factory.d.ts +61 -0
  57. package/build/main/types/other/factories/MixedRouteQuoterV1__factory.js +261 -0
  58. package/build/main/types/other/factories/Multicall2__factory.d.ts +42 -0
  59. package/build/main/types/other/factories/Multicall2__factory.js +331 -0
  60. package/build/main/types/other/factories/Permit2__factory.d.ts +1 -1
  61. package/build/main/types/other/factories/Permit2__factory.js +8 -3
  62. package/build/main/types/other/factories/QuoterV2__factory.d.ts +61 -0
  63. package/build/main/types/other/factories/QuoterV2__factory.js +307 -0
  64. package/build/main/types/other/factories/Quoter__factory.d.ts +42 -0
  65. package/build/main/types/other/factories/Quoter__factory.js +233 -0
  66. package/build/main/types/other/factories/StateView__factory.d.ts +32 -0
  67. package/build/main/types/other/factories/StateView__factory.js +383 -0
  68. package/build/main/types/other/factories/SwapRouter02__factory.d.ts +1 -1
  69. package/build/main/types/other/factories/SwapRouter02__factory.js +8 -3
  70. package/build/main/types/other/factories/TokenValidator__factory.d.ts +42 -0
  71. package/build/main/types/other/factories/TokenValidator__factory.js +170 -0
  72. package/build/main/types/other/factories/V2SwapRouter__factory.d.ts +28 -0
  73. package/build/main/types/other/factories/V2SwapRouter__factory.js +366 -0
  74. package/build/main/types/other/factories/V3SwapRouter__factory.d.ts +43 -0
  75. package/build/main/types/other/factories/V3SwapRouter__factory.js +540 -0
  76. package/build/main/types/other/factories/V4Quoter__factory.d.ts +37 -0
  77. package/build/main/types/other/factories/V4Quoter__factory.js +312 -0
  78. package/build/main/types/other/index.d.ts +42 -0
  79. package/build/main/types/other/index.js +46 -0
  80. package/build/main/types/token-lists/index.d.ts +40 -0
  81. package/build/main/types/token-lists/index.js +3 -0
  82. package/build/main/types/v2/factories/IUniswapV2Callee__factory.d.ts +18 -0
  83. package/build/main/types/v2/factories/IUniswapV2Callee__factory.js +48 -0
  84. package/build/main/types/v2/factories/IUniswapV2ERC20__factory.d.ts +39 -0
  85. package/build/main/types/v2/factories/IUniswapV2ERC20__factory.js +356 -0
  86. package/build/main/types/v2/factories/IUniswapV2Factory__factory.d.ts +35 -0
  87. package/build/main/types/v2/factories/IUniswapV2Factory__factory.js +183 -0
  88. package/build/main/types/v2/factories/IUniswapV2Migrator__factory.d.ts +18 -0
  89. package/build/main/types/v2/factories/IUniswapV2Migrator__factory.js +53 -0
  90. package/build/main/types/v2/factories/IUniswapV2Router01__factory.d.ts +22 -0
  91. package/build/main/types/v2/factories/IUniswapV2Router01__factory.js +769 -0
  92. package/build/main/types/v2/factories/IUniswapV2Router02__factory.d.ts +22 -0
  93. package/build/main/types/v2/factories/IUniswapV2Router02__factory.js +971 -0
  94. package/build/main/types/v2/factories/UniswapV2ERC20__factory.d.ts +58 -0
  95. package/build/main/types/v2/factories/UniswapV2ERC20__factory.js +384 -0
  96. package/build/main/types/v2/factories/UniswapV2Factory__factory.d.ts +62 -0
  97. package/build/main/types/v2/factories/UniswapV2Factory__factory.js +233 -0
  98. package/build/main/types/v2/factories/UniswapV2Migrator__factory.d.ts +44 -0
  99. package/build/main/types/v2/factories/UniswapV2Migrator__factory.js +95 -0
  100. package/build/main/types/v2/factories/UniswapV2Pair__factory.d.ts +58 -0
  101. package/build/main/types/v2/factories/UniswapV2Pair__factory.js +753 -0
  102. package/build/main/types/v2/factories/UniswapV2Router01__factory.d.ts +48 -0
  103. package/build/main/types/v2/factories/UniswapV2Router01__factory.js +811 -0
  104. package/build/main/types/v2/factories/UniswapV2Router02__factory.d.ts +48 -0
  105. package/build/main/types/v2/factories/UniswapV2Router02__factory.js +1013 -0
  106. package/build/main/types/v2/index.d.ts +26 -0
  107. package/build/main/types/v2/index.js +30 -0
  108. package/build/main/types/v3/factories/IERC1271__factory.d.ts +22 -0
  109. package/build/main/types/v3/factories/IERC1271__factory.js +44 -0
  110. package/build/main/types/v3/factories/IERC20Minimal__factory.d.ts +35 -0
  111. package/build/main/types/v3/factories/IERC20Minimal__factory.js +190 -0
  112. package/build/main/types/v3/factories/IERC20PermitAllowed__factory.d.ts +18 -0
  113. package/build/main/types/v3/factories/IERC20PermitAllowed__factory.js +68 -0
  114. package/build/main/types/v3/factories/IERC721Permit__factory.d.ts +35 -0
  115. package/build/main/types/v3/factories/IERC721Permit__factory.js +369 -0
  116. package/build/main/types/v3/factories/IMulticall__factory.d.ts +22 -0
  117. package/build/main/types/v3/factories/IMulticall__factory.js +39 -0
  118. package/build/main/types/v3/factories/INonfungiblePositionManager__factory.d.ts +55 -0
  119. package/build/main/types/v3/factories/INonfungiblePositionManager__factory.js +1007 -0
  120. package/build/main/types/v3/factories/INonfungibleTokenPositionDescriptor__factory.d.ts +22 -0
  121. package/build/main/types/v3/factories/INonfungibleTokenPositionDescriptor__factory.js +44 -0
  122. package/build/main/types/v3/factories/IPeripheryImmutableState__factory.d.ts +18 -0
  123. package/build/main/types/v3/factories/IPeripheryImmutableState__factory.js +46 -0
  124. package/build/main/types/v3/factories/IPeripheryPaymentsWithFee__factory.d.ts +18 -0
  125. package/build/main/types/v3/factories/IPeripheryPaymentsWithFee__factory.js +129 -0
  126. package/build/main/types/v3/factories/IPeripheryPayments__factory.d.ts +18 -0
  127. package/build/main/types/v3/factories/IPeripheryPayments__factory.js +68 -0
  128. package/build/main/types/v3/factories/IPoolInitializer__factory.d.ts +22 -0
  129. package/build/main/types/v3/factories/IPoolInitializer__factory.js +54 -0
  130. package/build/main/types/v3/factories/IQuoter__factory.d.ts +22 -0
  131. package/build/main/types/v3/factories/IQuoter__factory.js +146 -0
  132. package/build/main/types/v3/factories/ISelfPermit__factory.d.ts +18 -0
  133. package/build/main/types/v3/factories/ISelfPermit__factory.js +172 -0
  134. package/build/main/types/v3/factories/ISwapRouter__factory.d.ts +37 -0
  135. package/build/main/types/v3/factories/ISwapRouter__factory.js +257 -0
  136. package/build/main/types/v3/factories/ITickLens__factory.d.ts +27 -0
  137. package/build/main/types/v3/factories/ITickLens__factory.js +61 -0
  138. package/build/main/types/v3/factories/IUniswapV3Factory__factory.d.ts +35 -0
  139. package/build/main/types/v3/factories/IUniswapV3Factory__factory.js +216 -0
  140. package/build/main/types/v3/factories/IUniswapV3FlashCallback__factory.d.ts +18 -0
  141. package/build/main/types/v3/factories/IUniswapV3FlashCallback__factory.js +43 -0
  142. package/build/main/types/v3/factories/IUniswapV3MintCallback__factory.d.ts +18 -0
  143. package/build/main/types/v3/factories/IUniswapV3MintCallback__factory.js +43 -0
  144. package/build/main/types/v3/factories/IUniswapV3PoolActions__factory.d.ts +22 -0
  145. package/build/main/types/v3/factories/IUniswapV3PoolActions__factory.js +240 -0
  146. package/build/main/types/v3/factories/IUniswapV3PoolDeployer__factory.d.ts +18 -0
  147. package/build/main/types/v3/factories/IUniswapV3PoolDeployer__factory.js +53 -0
  148. package/build/main/types/v3/factories/IUniswapV3PoolDerivedState__factory.d.ts +22 -0
  149. package/build/main/types/v3/factories/IUniswapV3PoolDerivedState__factory.js +78 -0
  150. package/build/main/types/v3/factories/IUniswapV3PoolEvents__factory.d.ts +18 -0
  151. package/build/main/types/v3/factories/IUniswapV3PoolEvents__factory.js +347 -0
  152. package/build/main/types/v3/factories/IUniswapV3PoolImmutables__factory.d.ts +18 -0
  153. package/build/main/types/v3/factories/IUniswapV3PoolImmutables__factory.js +98 -0
  154. package/build/main/types/v3/factories/IUniswapV3PoolOwnerActions__factory.d.ts +22 -0
  155. package/build/main/types/v3/factories/IUniswapV3PoolOwnerActions__factory.js +72 -0
  156. package/build/main/types/v3/factories/IUniswapV3Pool__factory.d.ts +35 -0
  157. package/build/main/types/v3/factories/IUniswapV3Pool__factory.js +1001 -0
  158. package/build/main/types/v3/factories/IUniswapV3SwapCallback__factory.d.ts +18 -0
  159. package/build/main/types/v3/factories/IUniswapV3SwapCallback__factory.js +43 -0
  160. package/build/main/types/v3/factories/IV3Migrator__factory.d.ts +37 -0
  161. package/build/main/types/v3/factories/IV3Migrator__factory.js +305 -0
  162. package/build/main/types/v3/factories/IWETH9__factory.d.ts +35 -0
  163. package/build/main/types/v3/factories/IWETH9__factory.js +223 -0
  164. package/build/main/types/v3/factories/NFTDescriptor__factory.d.ts +37 -0
  165. package/build/main/types/v3/factories/NFTDescriptor__factory.js +133 -0
  166. package/build/main/types/v3/factories/NonfungiblePositionManager__factory.d.ts +83 -0
  167. package/build/main/types/v3/factories/NonfungiblePositionManager__factory.js +1261 -0
  168. package/build/main/types/v3/factories/NonfungibleTokenPositionDescriptor__factory.d.ts +51 -0
  169. package/build/main/types/v3/factories/NonfungibleTokenPositionDescriptor__factory.js +187 -0
  170. package/build/main/types/v3/factories/PairFlash__factory.d.ts +69 -0
  171. package/build/main/types/v3/factories/PairFlash__factory.js +227 -0
  172. package/build/main/types/v3/factories/QuoterV2__factory.d.ts +61 -0
  173. package/build/main/types/v3/factories/QuoterV2__factory.js +307 -0
  174. package/build/main/types/v3/factories/Quoter__factory.d.ts +42 -0
  175. package/build/main/types/v3/factories/Quoter__factory.js +233 -0
  176. package/build/main/types/v3/factories/SwapRouter__factory.d.ts +67 -0
  177. package/build/main/types/v3/factories/SwapRouter__factory.js +605 -0
  178. package/build/main/types/v3/factories/TickLens__factory.d.ts +37 -0
  179. package/build/main/types/v3/factories/TickLens__factory.js +83 -0
  180. package/build/main/types/v3/factories/UniswapInterfaceMulticall__factory.d.ts +1 -1
  181. package/build/main/types/v3/factories/UniswapInterfaceMulticall__factory.js +8 -3
  182. package/build/main/types/v3/factories/UniswapV3Factory__factory.d.ts +52 -0
  183. package/build/main/types/v3/factories/UniswapV3Factory__factory.js +276 -0
  184. package/build/main/types/v3/factories/UniswapV3Pool__factory.d.ts +52 -0
  185. package/build/main/types/v3/factories/UniswapV3Pool__factory.js +1028 -0
  186. package/build/main/types/v3/factories/V3Migrator__factory.d.ts +63 -0
  187. package/build/main/types/v3/factories/V3Migrator__factory.js +391 -0
  188. package/build/main/types/v3/index.d.ts +86 -0
  189. package/build/main/types/v3/index.js +90 -0
  190. package/build/main/util/addresses.d.ts +1 -1
  191. package/build/main/util/chains.js +3 -3
  192. package/build/main/util/onchainQuoteProviderConfigs.d.ts +1 -1
  193. package/build/module/providers/caching-subgraph-provider.d.ts +1 -1
  194. package/build/module/providers/eip-1559-gas-price-provider.d.ts +2 -2
  195. package/build/module/providers/eth-estimate-gas-provider.js +2 -2
  196. package/build/module/providers/eth-gas-station-info-gas-price-provider.d.ts +1 -1
  197. package/build/module/providers/gas-price-provider.d.ts +1 -1
  198. package/build/module/providers/multicall-provider.d.ts +6 -6
  199. package/build/module/providers/multicall-uniswap-provider.d.ts +1 -1
  200. package/build/module/providers/on-chain-quote-provider.d.ts +17 -17
  201. package/build/module/providers/pool-provider.d.ts +4 -4
  202. package/build/module/providers/provider.d.ts +2 -2
  203. package/build/module/providers/simulation-provider.d.ts +1 -1
  204. package/build/module/providers/subgraph-provider.d.ts +2 -2
  205. package/build/module/providers/swap-router-provider.d.ts +1 -1
  206. package/build/module/providers/token-fee-fetcher.d.ts +3 -3
  207. package/build/module/providers/token-properties-provider.d.ts +3 -3
  208. package/build/module/providers/token-provider.d.ts +1 -1
  209. package/build/module/providers/v2/pool-provider.d.ts +2 -2
  210. package/build/module/providers/v2/quote-provider.d.ts +2 -2
  211. package/build/module/providers/v3/gas-data-provider.d.ts +1 -1
  212. package/build/module/providers/v3/pool-provider.d.ts +5 -5
  213. package/build/module/providers/v3/subgraph-provider.d.ts +1 -1
  214. package/build/module/routers/alpha-router/alpha-router.d.ts +3 -3
  215. package/build/module/routers/alpha-router/entities/route-with-valid-quote.d.ts +7 -7
  216. package/build/module/routers/alpha-router/entities/route-with-valid-quote.js +10 -10
  217. package/build/module/routers/alpha-router/functions/best-swap-route.d.ts +1 -1
  218. package/build/module/routers/alpha-router/functions/get-candidate-pools.d.ts +12 -12
  219. package/build/module/routers/alpha-router/gas-models/gas-model.d.ts +7 -7
  220. package/build/module/routers/router.d.ts +14 -14
  221. package/build/module/tsconfig.module.tsbuildinfo +1 -1
  222. package/build/module/types/other/factories/GasPriceOracle__factory.d.ts +46 -0
  223. package/build/module/types/other/factories/GasPriceOracle__factory.js +312 -0
  224. package/build/module/types/other/factories/IApproveAndCall__factory.d.ts +41 -0
  225. package/build/module/types/other/factories/IApproveAndCall__factory.js +218 -0
  226. package/build/module/types/other/factories/IImmutableState__factory.d.ts +18 -0
  227. package/build/module/types/other/factories/IImmutableState__factory.js +42 -0
  228. package/build/module/types/other/factories/IMulticallExtended__factory.d.ts +22 -0
  229. package/build/module/types/other/factories/IMulticallExtended__factory.js +83 -0
  230. package/build/module/types/other/factories/IOracleSlippage__factory.d.ts +18 -0
  231. package/build/module/types/other/factories/IOracleSlippage__factory.js +67 -0
  232. package/build/module/types/other/factories/IPeripheryPaymentsExtended__factory.d.ts +18 -0
  233. package/build/module/types/other/factories/IPeripheryPaymentsExtended__factory.js +126 -0
  234. package/build/module/types/other/factories/IPeripheryPaymentsWithFeeExtended__factory.d.ts +18 -0
  235. package/build/module/types/other/factories/IPeripheryPaymentsWithFeeExtended__factory.js +238 -0
  236. package/build/module/types/other/factories/IQuoterV2__factory.d.ts +41 -0
  237. package/build/module/types/other/factories/IQuoterV2__factory.js +216 -0
  238. package/build/module/types/other/factories/IQuoter__factory.d.ts +22 -0
  239. package/build/module/types/other/factories/IQuoter__factory.js +142 -0
  240. package/build/module/types/other/factories/ISwapRouter02__factory.d.ts +41 -0
  241. package/build/module/types/other/factories/ISwapRouter02__factory.js +722 -0
  242. package/build/module/types/other/factories/IV2SwapRouter__factory.d.ts +22 -0
  243. package/build/module/types/other/factories/IV2SwapRouter__factory.js +84 -0
  244. package/build/module/types/other/factories/IV3SwapRouter__factory.d.ts +37 -0
  245. package/build/module/types/other/factories/IV3SwapRouter__factory.js +233 -0
  246. package/build/module/types/other/factories/IWETH__factory.d.ts +22 -0
  247. package/build/module/types/other/factories/IWETH__factory.js +60 -0
  248. package/build/module/types/other/factories/MixedRouteQuoterV1__factory.d.ts +61 -0
  249. package/build/module/types/other/factories/MixedRouteQuoterV1__factory.js +257 -0
  250. package/build/module/types/other/factories/Multicall2__factory.d.ts +42 -0
  251. package/build/module/types/other/factories/Multicall2__factory.js +327 -0
  252. package/build/module/types/other/factories/Permit2__factory.d.ts +1 -1
  253. package/build/module/types/other/factories/Permit2__factory.js +8 -3
  254. package/build/module/types/other/factories/QuoterV2__factory.d.ts +61 -0
  255. package/build/module/types/other/factories/QuoterV2__factory.js +303 -0
  256. package/build/module/types/other/factories/Quoter__factory.d.ts +42 -0
  257. package/build/module/types/other/factories/Quoter__factory.js +229 -0
  258. package/build/module/types/other/factories/StateView__factory.d.ts +32 -0
  259. package/build/module/types/other/factories/StateView__factory.js +379 -0
  260. package/build/module/types/other/factories/SwapRouter02__factory.d.ts +1 -1
  261. package/build/module/types/other/factories/SwapRouter02__factory.js +8 -3
  262. package/build/module/types/other/factories/TokenValidator__factory.d.ts +42 -0
  263. package/build/module/types/other/factories/TokenValidator__factory.js +166 -0
  264. package/build/module/types/other/factories/V2SwapRouter__factory.d.ts +28 -0
  265. package/build/module/types/other/factories/V2SwapRouter__factory.js +362 -0
  266. package/build/module/types/other/factories/V3SwapRouter__factory.d.ts +43 -0
  267. package/build/module/types/other/factories/V3SwapRouter__factory.js +536 -0
  268. package/build/module/types/other/factories/V4Quoter__factory.d.ts +37 -0
  269. package/build/module/types/other/factories/V4Quoter__factory.js +308 -0
  270. package/build/module/types/other/index.d.ts +42 -0
  271. package/build/module/types/other/index.js +22 -0
  272. package/build/module/types/token-lists/index.d.ts +40 -0
  273. package/build/module/types/token-lists/index.js +2 -0
  274. package/build/module/types/v2/factories/IUniswapV2Callee__factory.d.ts +18 -0
  275. package/build/module/types/v2/factories/IUniswapV2Callee__factory.js +44 -0
  276. package/build/module/types/v2/factories/IUniswapV2ERC20__factory.d.ts +39 -0
  277. package/build/module/types/v2/factories/IUniswapV2ERC20__factory.js +352 -0
  278. package/build/module/types/v2/factories/IUniswapV2Factory__factory.d.ts +35 -0
  279. package/build/module/types/v2/factories/IUniswapV2Factory__factory.js +179 -0
  280. package/build/module/types/v2/factories/IUniswapV2Migrator__factory.d.ts +18 -0
  281. package/build/module/types/v2/factories/IUniswapV2Migrator__factory.js +49 -0
  282. package/build/module/types/v2/factories/IUniswapV2Router01__factory.d.ts +22 -0
  283. package/build/module/types/v2/factories/IUniswapV2Router01__factory.js +765 -0
  284. package/build/module/types/v2/factories/IUniswapV2Router02__factory.d.ts +22 -0
  285. package/build/module/types/v2/factories/IUniswapV2Router02__factory.js +967 -0
  286. package/build/module/types/v2/factories/UniswapV2ERC20__factory.d.ts +58 -0
  287. package/build/module/types/v2/factories/UniswapV2ERC20__factory.js +380 -0
  288. package/build/module/types/v2/factories/UniswapV2Factory__factory.d.ts +62 -0
  289. package/build/module/types/v2/factories/UniswapV2Factory__factory.js +229 -0
  290. package/build/module/types/v2/factories/UniswapV2Migrator__factory.d.ts +44 -0
  291. package/build/module/types/v2/factories/UniswapV2Migrator__factory.js +91 -0
  292. package/build/module/types/v2/factories/UniswapV2Pair__factory.d.ts +58 -0
  293. package/build/module/types/v2/factories/UniswapV2Pair__factory.js +749 -0
  294. package/build/module/types/v2/factories/UniswapV2Router01__factory.d.ts +48 -0
  295. package/build/module/types/v2/factories/UniswapV2Router01__factory.js +807 -0
  296. package/build/module/types/v2/factories/UniswapV2Router02__factory.d.ts +48 -0
  297. package/build/module/types/v2/factories/UniswapV2Router02__factory.js +1009 -0
  298. package/build/module/types/v2/index.d.ts +26 -0
  299. package/build/module/types/v2/index.js +14 -0
  300. package/build/module/types/v3/factories/IERC1271__factory.d.ts +22 -0
  301. package/build/module/types/v3/factories/IERC1271__factory.js +40 -0
  302. package/build/module/types/v3/factories/IERC20Minimal__factory.d.ts +35 -0
  303. package/build/module/types/v3/factories/IERC20Minimal__factory.js +186 -0
  304. package/build/module/types/v3/factories/IERC20PermitAllowed__factory.d.ts +18 -0
  305. package/build/module/types/v3/factories/IERC20PermitAllowed__factory.js +64 -0
  306. package/build/module/types/v3/factories/IERC721Permit__factory.d.ts +35 -0
  307. package/build/module/types/v3/factories/IERC721Permit__factory.js +365 -0
  308. package/build/module/types/v3/factories/IMulticall__factory.d.ts +22 -0
  309. package/build/module/types/v3/factories/IMulticall__factory.js +35 -0
  310. package/build/module/types/v3/factories/INonfungiblePositionManager__factory.d.ts +55 -0
  311. package/build/module/types/v3/factories/INonfungiblePositionManager__factory.js +1003 -0
  312. package/build/module/types/v3/factories/INonfungibleTokenPositionDescriptor__factory.d.ts +22 -0
  313. package/build/module/types/v3/factories/INonfungibleTokenPositionDescriptor__factory.js +40 -0
  314. package/build/module/types/v3/factories/IPeripheryImmutableState__factory.d.ts +18 -0
  315. package/build/module/types/v3/factories/IPeripheryImmutableState__factory.js +42 -0
  316. package/build/module/types/v3/factories/IPeripheryPaymentsWithFee__factory.d.ts +18 -0
  317. package/build/module/types/v3/factories/IPeripheryPaymentsWithFee__factory.js +125 -0
  318. package/build/module/types/v3/factories/IPeripheryPayments__factory.d.ts +18 -0
  319. package/build/module/types/v3/factories/IPeripheryPayments__factory.js +64 -0
  320. package/build/module/types/v3/factories/IPoolInitializer__factory.d.ts +22 -0
  321. package/build/module/types/v3/factories/IPoolInitializer__factory.js +50 -0
  322. package/build/module/types/v3/factories/IQuoter__factory.d.ts +22 -0
  323. package/build/module/types/v3/factories/IQuoter__factory.js +142 -0
  324. package/build/module/types/v3/factories/ISelfPermit__factory.d.ts +18 -0
  325. package/build/module/types/v3/factories/ISelfPermit__factory.js +168 -0
  326. package/build/module/types/v3/factories/ISwapRouter__factory.d.ts +37 -0
  327. package/build/module/types/v3/factories/ISwapRouter__factory.js +253 -0
  328. package/build/module/types/v3/factories/ITickLens__factory.d.ts +27 -0
  329. package/build/module/types/v3/factories/ITickLens__factory.js +57 -0
  330. package/build/module/types/v3/factories/IUniswapV3Factory__factory.d.ts +35 -0
  331. package/build/module/types/v3/factories/IUniswapV3Factory__factory.js +212 -0
  332. package/build/module/types/v3/factories/IUniswapV3FlashCallback__factory.d.ts +18 -0
  333. package/build/module/types/v3/factories/IUniswapV3FlashCallback__factory.js +39 -0
  334. package/build/module/types/v3/factories/IUniswapV3MintCallback__factory.d.ts +18 -0
  335. package/build/module/types/v3/factories/IUniswapV3MintCallback__factory.js +39 -0
  336. package/build/module/types/v3/factories/IUniswapV3PoolActions__factory.d.ts +22 -0
  337. package/build/module/types/v3/factories/IUniswapV3PoolActions__factory.js +236 -0
  338. package/build/module/types/v3/factories/IUniswapV3PoolDeployer__factory.d.ts +18 -0
  339. package/build/module/types/v3/factories/IUniswapV3PoolDeployer__factory.js +49 -0
  340. package/build/module/types/v3/factories/IUniswapV3PoolDerivedState__factory.d.ts +22 -0
  341. package/build/module/types/v3/factories/IUniswapV3PoolDerivedState__factory.js +74 -0
  342. package/build/module/types/v3/factories/IUniswapV3PoolEvents__factory.d.ts +18 -0
  343. package/build/module/types/v3/factories/IUniswapV3PoolEvents__factory.js +343 -0
  344. package/build/module/types/v3/factories/IUniswapV3PoolImmutables__factory.d.ts +18 -0
  345. package/build/module/types/v3/factories/IUniswapV3PoolImmutables__factory.js +94 -0
  346. package/build/module/types/v3/factories/IUniswapV3PoolOwnerActions__factory.d.ts +22 -0
  347. package/build/module/types/v3/factories/IUniswapV3PoolOwnerActions__factory.js +68 -0
  348. package/build/module/types/v3/factories/IUniswapV3Pool__factory.d.ts +35 -0
  349. package/build/module/types/v3/factories/IUniswapV3Pool__factory.js +997 -0
  350. package/build/module/types/v3/factories/IUniswapV3SwapCallback__factory.d.ts +18 -0
  351. package/build/module/types/v3/factories/IUniswapV3SwapCallback__factory.js +39 -0
  352. package/build/module/types/v3/factories/IV3Migrator__factory.d.ts +37 -0
  353. package/build/module/types/v3/factories/IV3Migrator__factory.js +301 -0
  354. package/build/module/types/v3/factories/IWETH9__factory.d.ts +35 -0
  355. package/build/module/types/v3/factories/IWETH9__factory.js +219 -0
  356. package/build/module/types/v3/factories/NFTDescriptor__factory.d.ts +37 -0
  357. package/build/module/types/v3/factories/NFTDescriptor__factory.js +129 -0
  358. package/build/module/types/v3/factories/NonfungiblePositionManager__factory.d.ts +83 -0
  359. package/build/module/types/v3/factories/NonfungiblePositionManager__factory.js +1257 -0
  360. package/build/module/types/v3/factories/NonfungibleTokenPositionDescriptor__factory.d.ts +51 -0
  361. package/build/module/types/v3/factories/NonfungibleTokenPositionDescriptor__factory.js +183 -0
  362. package/build/module/types/v3/factories/PairFlash__factory.d.ts +69 -0
  363. package/build/module/types/v3/factories/PairFlash__factory.js +223 -0
  364. package/build/module/types/v3/factories/QuoterV2__factory.d.ts +61 -0
  365. package/build/module/types/v3/factories/QuoterV2__factory.js +303 -0
  366. package/build/module/types/v3/factories/Quoter__factory.d.ts +42 -0
  367. package/build/module/types/v3/factories/Quoter__factory.js +229 -0
  368. package/build/module/types/v3/factories/SwapRouter__factory.d.ts +67 -0
  369. package/build/module/types/v3/factories/SwapRouter__factory.js +601 -0
  370. package/build/module/types/v3/factories/TickLens__factory.d.ts +37 -0
  371. package/build/module/types/v3/factories/TickLens__factory.js +79 -0
  372. package/build/module/types/v3/factories/UniswapInterfaceMulticall__factory.d.ts +1 -1
  373. package/build/module/types/v3/factories/UniswapInterfaceMulticall__factory.js +8 -3
  374. package/build/module/types/v3/factories/UniswapV3Factory__factory.d.ts +52 -0
  375. package/build/module/types/v3/factories/UniswapV3Factory__factory.js +272 -0
  376. package/build/module/types/v3/factories/UniswapV3Pool__factory.d.ts +52 -0
  377. package/build/module/types/v3/factories/UniswapV3Pool__factory.js +1024 -0
  378. package/build/module/types/v3/factories/V3Migrator__factory.d.ts +63 -0
  379. package/build/module/types/v3/factories/V3Migrator__factory.js +387 -0
  380. package/build/module/types/v3/index.d.ts +86 -0
  381. package/build/module/types/v3/index.js +44 -0
  382. package/build/module/util/addresses.d.ts +1 -1
  383. package/build/module/util/chains.js +3 -3
  384. package/build/module/util/onchainQuoteProviderConfigs.d.ts +1 -1
  385. package/package.json +23 -18
  386. package/build/main/types/other/commons.d.ts +0 -16
  387. package/build/main/types/other/commons.js +0 -6
  388. package/build/main/types/v2/commons.d.ts +0 -16
  389. package/build/main/types/v2/commons.js +0 -6
  390. package/build/main/types/v3/commons.d.ts +0 -16
  391. package/build/main/types/v3/commons.js +0 -6
  392. package/build/module/types/other/commons.d.ts +0 -16
  393. package/build/module/types/other/commons.js +0 -5
  394. package/build/module/types/v2/commons.d.ts +0 -16
  395. package/build/module/types/v2/commons.js +0 -5
  396. package/build/module/types/v3/commons.d.ts +0 -16
  397. package/build/module/types/v3/commons.js +0 -5
@@ -0,0 +1,1261 @@
1
+ "use strict";
2
+ /* Autogenerated file. Do not edit manually. */
3
+ /* tslint:disable */
4
+ /* eslint-disable */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.NonfungiblePositionManager__factory = void 0;
7
+ const ethers_1 = require("ethers");
8
+ const _abi = [
9
+ {
10
+ inputs: [
11
+ {
12
+ internalType: "address",
13
+ name: "_factory",
14
+ type: "address",
15
+ },
16
+ {
17
+ internalType: "address",
18
+ name: "_WETH9",
19
+ type: "address",
20
+ },
21
+ {
22
+ internalType: "address",
23
+ name: "_tokenDescriptor_",
24
+ type: "address",
25
+ },
26
+ ],
27
+ stateMutability: "nonpayable",
28
+ type: "constructor",
29
+ },
30
+ {
31
+ anonymous: false,
32
+ inputs: [
33
+ {
34
+ indexed: true,
35
+ internalType: "address",
36
+ name: "owner",
37
+ type: "address",
38
+ },
39
+ {
40
+ indexed: true,
41
+ internalType: "address",
42
+ name: "approved",
43
+ type: "address",
44
+ },
45
+ {
46
+ indexed: true,
47
+ internalType: "uint256",
48
+ name: "tokenId",
49
+ type: "uint256",
50
+ },
51
+ ],
52
+ name: "Approval",
53
+ type: "event",
54
+ },
55
+ {
56
+ anonymous: false,
57
+ inputs: [
58
+ {
59
+ indexed: true,
60
+ internalType: "address",
61
+ name: "owner",
62
+ type: "address",
63
+ },
64
+ {
65
+ indexed: true,
66
+ internalType: "address",
67
+ name: "operator",
68
+ type: "address",
69
+ },
70
+ {
71
+ indexed: false,
72
+ internalType: "bool",
73
+ name: "approved",
74
+ type: "bool",
75
+ },
76
+ ],
77
+ name: "ApprovalForAll",
78
+ type: "event",
79
+ },
80
+ {
81
+ anonymous: false,
82
+ inputs: [
83
+ {
84
+ indexed: true,
85
+ internalType: "uint256",
86
+ name: "tokenId",
87
+ type: "uint256",
88
+ },
89
+ {
90
+ indexed: false,
91
+ internalType: "address",
92
+ name: "recipient",
93
+ type: "address",
94
+ },
95
+ {
96
+ indexed: false,
97
+ internalType: "uint256",
98
+ name: "amount0",
99
+ type: "uint256",
100
+ },
101
+ {
102
+ indexed: false,
103
+ internalType: "uint256",
104
+ name: "amount1",
105
+ type: "uint256",
106
+ },
107
+ ],
108
+ name: "Collect",
109
+ type: "event",
110
+ },
111
+ {
112
+ anonymous: false,
113
+ inputs: [
114
+ {
115
+ indexed: true,
116
+ internalType: "uint256",
117
+ name: "tokenId",
118
+ type: "uint256",
119
+ },
120
+ {
121
+ indexed: false,
122
+ internalType: "uint128",
123
+ name: "liquidity",
124
+ type: "uint128",
125
+ },
126
+ {
127
+ indexed: false,
128
+ internalType: "uint256",
129
+ name: "amount0",
130
+ type: "uint256",
131
+ },
132
+ {
133
+ indexed: false,
134
+ internalType: "uint256",
135
+ name: "amount1",
136
+ type: "uint256",
137
+ },
138
+ ],
139
+ name: "DecreaseLiquidity",
140
+ type: "event",
141
+ },
142
+ {
143
+ anonymous: false,
144
+ inputs: [
145
+ {
146
+ indexed: true,
147
+ internalType: "uint256",
148
+ name: "tokenId",
149
+ type: "uint256",
150
+ },
151
+ {
152
+ indexed: false,
153
+ internalType: "uint128",
154
+ name: "liquidity",
155
+ type: "uint128",
156
+ },
157
+ {
158
+ indexed: false,
159
+ internalType: "uint256",
160
+ name: "amount0",
161
+ type: "uint256",
162
+ },
163
+ {
164
+ indexed: false,
165
+ internalType: "uint256",
166
+ name: "amount1",
167
+ type: "uint256",
168
+ },
169
+ ],
170
+ name: "IncreaseLiquidity",
171
+ type: "event",
172
+ },
173
+ {
174
+ anonymous: false,
175
+ inputs: [
176
+ {
177
+ indexed: true,
178
+ internalType: "address",
179
+ name: "from",
180
+ type: "address",
181
+ },
182
+ {
183
+ indexed: true,
184
+ internalType: "address",
185
+ name: "to",
186
+ type: "address",
187
+ },
188
+ {
189
+ indexed: true,
190
+ internalType: "uint256",
191
+ name: "tokenId",
192
+ type: "uint256",
193
+ },
194
+ ],
195
+ name: "Transfer",
196
+ type: "event",
197
+ },
198
+ {
199
+ inputs: [],
200
+ name: "DOMAIN_SEPARATOR",
201
+ outputs: [
202
+ {
203
+ internalType: "bytes32",
204
+ name: "",
205
+ type: "bytes32",
206
+ },
207
+ ],
208
+ stateMutability: "view",
209
+ type: "function",
210
+ },
211
+ {
212
+ inputs: [],
213
+ name: "PERMIT_TYPEHASH",
214
+ outputs: [
215
+ {
216
+ internalType: "bytes32",
217
+ name: "",
218
+ type: "bytes32",
219
+ },
220
+ ],
221
+ stateMutability: "view",
222
+ type: "function",
223
+ },
224
+ {
225
+ inputs: [],
226
+ name: "WETH9",
227
+ outputs: [
228
+ {
229
+ internalType: "address",
230
+ name: "",
231
+ type: "address",
232
+ },
233
+ ],
234
+ stateMutability: "view",
235
+ type: "function",
236
+ },
237
+ {
238
+ inputs: [
239
+ {
240
+ internalType: "address",
241
+ name: "to",
242
+ type: "address",
243
+ },
244
+ {
245
+ internalType: "uint256",
246
+ name: "tokenId",
247
+ type: "uint256",
248
+ },
249
+ ],
250
+ name: "approve",
251
+ outputs: [],
252
+ stateMutability: "nonpayable",
253
+ type: "function",
254
+ },
255
+ {
256
+ inputs: [
257
+ {
258
+ internalType: "address",
259
+ name: "owner",
260
+ type: "address",
261
+ },
262
+ ],
263
+ name: "balanceOf",
264
+ outputs: [
265
+ {
266
+ internalType: "uint256",
267
+ name: "",
268
+ type: "uint256",
269
+ },
270
+ ],
271
+ stateMutability: "view",
272
+ type: "function",
273
+ },
274
+ {
275
+ inputs: [],
276
+ name: "baseURI",
277
+ outputs: [
278
+ {
279
+ internalType: "string",
280
+ name: "",
281
+ type: "string",
282
+ },
283
+ ],
284
+ stateMutability: "pure",
285
+ type: "function",
286
+ },
287
+ {
288
+ inputs: [
289
+ {
290
+ internalType: "uint256",
291
+ name: "tokenId",
292
+ type: "uint256",
293
+ },
294
+ ],
295
+ name: "burn",
296
+ outputs: [],
297
+ stateMutability: "payable",
298
+ type: "function",
299
+ },
300
+ {
301
+ inputs: [
302
+ {
303
+ components: [
304
+ {
305
+ internalType: "uint256",
306
+ name: "tokenId",
307
+ type: "uint256",
308
+ },
309
+ {
310
+ internalType: "address",
311
+ name: "recipient",
312
+ type: "address",
313
+ },
314
+ {
315
+ internalType: "uint128",
316
+ name: "amount0Max",
317
+ type: "uint128",
318
+ },
319
+ {
320
+ internalType: "uint128",
321
+ name: "amount1Max",
322
+ type: "uint128",
323
+ },
324
+ ],
325
+ internalType: "struct INonfungiblePositionManager.CollectParams",
326
+ name: "params",
327
+ type: "tuple",
328
+ },
329
+ ],
330
+ name: "collect",
331
+ outputs: [
332
+ {
333
+ internalType: "uint256",
334
+ name: "amount0",
335
+ type: "uint256",
336
+ },
337
+ {
338
+ internalType: "uint256",
339
+ name: "amount1",
340
+ type: "uint256",
341
+ },
342
+ ],
343
+ stateMutability: "payable",
344
+ type: "function",
345
+ },
346
+ {
347
+ inputs: [
348
+ {
349
+ internalType: "address",
350
+ name: "token0",
351
+ type: "address",
352
+ },
353
+ {
354
+ internalType: "address",
355
+ name: "token1",
356
+ type: "address",
357
+ },
358
+ {
359
+ internalType: "uint24",
360
+ name: "fee",
361
+ type: "uint24",
362
+ },
363
+ {
364
+ internalType: "uint160",
365
+ name: "sqrtPriceX96",
366
+ type: "uint160",
367
+ },
368
+ ],
369
+ name: "createAndInitializePoolIfNecessary",
370
+ outputs: [
371
+ {
372
+ internalType: "address",
373
+ name: "pool",
374
+ type: "address",
375
+ },
376
+ ],
377
+ stateMutability: "payable",
378
+ type: "function",
379
+ },
380
+ {
381
+ inputs: [
382
+ {
383
+ components: [
384
+ {
385
+ internalType: "uint256",
386
+ name: "tokenId",
387
+ type: "uint256",
388
+ },
389
+ {
390
+ internalType: "uint128",
391
+ name: "liquidity",
392
+ type: "uint128",
393
+ },
394
+ {
395
+ internalType: "uint256",
396
+ name: "amount0Min",
397
+ type: "uint256",
398
+ },
399
+ {
400
+ internalType: "uint256",
401
+ name: "amount1Min",
402
+ type: "uint256",
403
+ },
404
+ {
405
+ internalType: "uint256",
406
+ name: "deadline",
407
+ type: "uint256",
408
+ },
409
+ ],
410
+ internalType: "struct INonfungiblePositionManager.DecreaseLiquidityParams",
411
+ name: "params",
412
+ type: "tuple",
413
+ },
414
+ ],
415
+ name: "decreaseLiquidity",
416
+ outputs: [
417
+ {
418
+ internalType: "uint256",
419
+ name: "amount0",
420
+ type: "uint256",
421
+ },
422
+ {
423
+ internalType: "uint256",
424
+ name: "amount1",
425
+ type: "uint256",
426
+ },
427
+ ],
428
+ stateMutability: "payable",
429
+ type: "function",
430
+ },
431
+ {
432
+ inputs: [],
433
+ name: "factory",
434
+ outputs: [
435
+ {
436
+ internalType: "address",
437
+ name: "",
438
+ type: "address",
439
+ },
440
+ ],
441
+ stateMutability: "view",
442
+ type: "function",
443
+ },
444
+ {
445
+ inputs: [
446
+ {
447
+ internalType: "uint256",
448
+ name: "tokenId",
449
+ type: "uint256",
450
+ },
451
+ ],
452
+ name: "getApproved",
453
+ outputs: [
454
+ {
455
+ internalType: "address",
456
+ name: "",
457
+ type: "address",
458
+ },
459
+ ],
460
+ stateMutability: "view",
461
+ type: "function",
462
+ },
463
+ {
464
+ inputs: [
465
+ {
466
+ components: [
467
+ {
468
+ internalType: "uint256",
469
+ name: "tokenId",
470
+ type: "uint256",
471
+ },
472
+ {
473
+ internalType: "uint256",
474
+ name: "amount0Desired",
475
+ type: "uint256",
476
+ },
477
+ {
478
+ internalType: "uint256",
479
+ name: "amount1Desired",
480
+ type: "uint256",
481
+ },
482
+ {
483
+ internalType: "uint256",
484
+ name: "amount0Min",
485
+ type: "uint256",
486
+ },
487
+ {
488
+ internalType: "uint256",
489
+ name: "amount1Min",
490
+ type: "uint256",
491
+ },
492
+ {
493
+ internalType: "uint256",
494
+ name: "deadline",
495
+ type: "uint256",
496
+ },
497
+ ],
498
+ internalType: "struct INonfungiblePositionManager.IncreaseLiquidityParams",
499
+ name: "params",
500
+ type: "tuple",
501
+ },
502
+ ],
503
+ name: "increaseLiquidity",
504
+ outputs: [
505
+ {
506
+ internalType: "uint128",
507
+ name: "liquidity",
508
+ type: "uint128",
509
+ },
510
+ {
511
+ internalType: "uint256",
512
+ name: "amount0",
513
+ type: "uint256",
514
+ },
515
+ {
516
+ internalType: "uint256",
517
+ name: "amount1",
518
+ type: "uint256",
519
+ },
520
+ ],
521
+ stateMutability: "payable",
522
+ type: "function",
523
+ },
524
+ {
525
+ inputs: [
526
+ {
527
+ internalType: "address",
528
+ name: "owner",
529
+ type: "address",
530
+ },
531
+ {
532
+ internalType: "address",
533
+ name: "operator",
534
+ type: "address",
535
+ },
536
+ ],
537
+ name: "isApprovedForAll",
538
+ outputs: [
539
+ {
540
+ internalType: "bool",
541
+ name: "",
542
+ type: "bool",
543
+ },
544
+ ],
545
+ stateMutability: "view",
546
+ type: "function",
547
+ },
548
+ {
549
+ inputs: [
550
+ {
551
+ components: [
552
+ {
553
+ internalType: "address",
554
+ name: "token0",
555
+ type: "address",
556
+ },
557
+ {
558
+ internalType: "address",
559
+ name: "token1",
560
+ type: "address",
561
+ },
562
+ {
563
+ internalType: "uint24",
564
+ name: "fee",
565
+ type: "uint24",
566
+ },
567
+ {
568
+ internalType: "int24",
569
+ name: "tickLower",
570
+ type: "int24",
571
+ },
572
+ {
573
+ internalType: "int24",
574
+ name: "tickUpper",
575
+ type: "int24",
576
+ },
577
+ {
578
+ internalType: "uint256",
579
+ name: "amount0Desired",
580
+ type: "uint256",
581
+ },
582
+ {
583
+ internalType: "uint256",
584
+ name: "amount1Desired",
585
+ type: "uint256",
586
+ },
587
+ {
588
+ internalType: "uint256",
589
+ name: "amount0Min",
590
+ type: "uint256",
591
+ },
592
+ {
593
+ internalType: "uint256",
594
+ name: "amount1Min",
595
+ type: "uint256",
596
+ },
597
+ {
598
+ internalType: "address",
599
+ name: "recipient",
600
+ type: "address",
601
+ },
602
+ {
603
+ internalType: "uint256",
604
+ name: "deadline",
605
+ type: "uint256",
606
+ },
607
+ ],
608
+ internalType: "struct INonfungiblePositionManager.MintParams",
609
+ name: "params",
610
+ type: "tuple",
611
+ },
612
+ ],
613
+ name: "mint",
614
+ outputs: [
615
+ {
616
+ internalType: "uint256",
617
+ name: "tokenId",
618
+ type: "uint256",
619
+ },
620
+ {
621
+ internalType: "uint128",
622
+ name: "liquidity",
623
+ type: "uint128",
624
+ },
625
+ {
626
+ internalType: "uint256",
627
+ name: "amount0",
628
+ type: "uint256",
629
+ },
630
+ {
631
+ internalType: "uint256",
632
+ name: "amount1",
633
+ type: "uint256",
634
+ },
635
+ ],
636
+ stateMutability: "payable",
637
+ type: "function",
638
+ },
639
+ {
640
+ inputs: [
641
+ {
642
+ internalType: "bytes[]",
643
+ name: "data",
644
+ type: "bytes[]",
645
+ },
646
+ ],
647
+ name: "multicall",
648
+ outputs: [
649
+ {
650
+ internalType: "bytes[]",
651
+ name: "results",
652
+ type: "bytes[]",
653
+ },
654
+ ],
655
+ stateMutability: "payable",
656
+ type: "function",
657
+ },
658
+ {
659
+ inputs: [],
660
+ name: "name",
661
+ outputs: [
662
+ {
663
+ internalType: "string",
664
+ name: "",
665
+ type: "string",
666
+ },
667
+ ],
668
+ stateMutability: "view",
669
+ type: "function",
670
+ },
671
+ {
672
+ inputs: [
673
+ {
674
+ internalType: "uint256",
675
+ name: "tokenId",
676
+ type: "uint256",
677
+ },
678
+ ],
679
+ name: "ownerOf",
680
+ outputs: [
681
+ {
682
+ internalType: "address",
683
+ name: "",
684
+ type: "address",
685
+ },
686
+ ],
687
+ stateMutability: "view",
688
+ type: "function",
689
+ },
690
+ {
691
+ inputs: [
692
+ {
693
+ internalType: "address",
694
+ name: "spender",
695
+ type: "address",
696
+ },
697
+ {
698
+ internalType: "uint256",
699
+ name: "tokenId",
700
+ type: "uint256",
701
+ },
702
+ {
703
+ internalType: "uint256",
704
+ name: "deadline",
705
+ type: "uint256",
706
+ },
707
+ {
708
+ internalType: "uint8",
709
+ name: "v",
710
+ type: "uint8",
711
+ },
712
+ {
713
+ internalType: "bytes32",
714
+ name: "r",
715
+ type: "bytes32",
716
+ },
717
+ {
718
+ internalType: "bytes32",
719
+ name: "s",
720
+ type: "bytes32",
721
+ },
722
+ ],
723
+ name: "permit",
724
+ outputs: [],
725
+ stateMutability: "payable",
726
+ type: "function",
727
+ },
728
+ {
729
+ inputs: [
730
+ {
731
+ internalType: "uint256",
732
+ name: "tokenId",
733
+ type: "uint256",
734
+ },
735
+ ],
736
+ name: "positions",
737
+ outputs: [
738
+ {
739
+ internalType: "uint96",
740
+ name: "nonce",
741
+ type: "uint96",
742
+ },
743
+ {
744
+ internalType: "address",
745
+ name: "operator",
746
+ type: "address",
747
+ },
748
+ {
749
+ internalType: "address",
750
+ name: "token0",
751
+ type: "address",
752
+ },
753
+ {
754
+ internalType: "address",
755
+ name: "token1",
756
+ type: "address",
757
+ },
758
+ {
759
+ internalType: "uint24",
760
+ name: "fee",
761
+ type: "uint24",
762
+ },
763
+ {
764
+ internalType: "int24",
765
+ name: "tickLower",
766
+ type: "int24",
767
+ },
768
+ {
769
+ internalType: "int24",
770
+ name: "tickUpper",
771
+ type: "int24",
772
+ },
773
+ {
774
+ internalType: "uint128",
775
+ name: "liquidity",
776
+ type: "uint128",
777
+ },
778
+ {
779
+ internalType: "uint256",
780
+ name: "feeGrowthInside0LastX128",
781
+ type: "uint256",
782
+ },
783
+ {
784
+ internalType: "uint256",
785
+ name: "feeGrowthInside1LastX128",
786
+ type: "uint256",
787
+ },
788
+ {
789
+ internalType: "uint128",
790
+ name: "tokensOwed0",
791
+ type: "uint128",
792
+ },
793
+ {
794
+ internalType: "uint128",
795
+ name: "tokensOwed1",
796
+ type: "uint128",
797
+ },
798
+ ],
799
+ stateMutability: "view",
800
+ type: "function",
801
+ },
802
+ {
803
+ inputs: [],
804
+ name: "refundETH",
805
+ outputs: [],
806
+ stateMutability: "payable",
807
+ type: "function",
808
+ },
809
+ {
810
+ inputs: [
811
+ {
812
+ internalType: "address",
813
+ name: "from",
814
+ type: "address",
815
+ },
816
+ {
817
+ internalType: "address",
818
+ name: "to",
819
+ type: "address",
820
+ },
821
+ {
822
+ internalType: "uint256",
823
+ name: "tokenId",
824
+ type: "uint256",
825
+ },
826
+ ],
827
+ name: "safeTransferFrom",
828
+ outputs: [],
829
+ stateMutability: "nonpayable",
830
+ type: "function",
831
+ },
832
+ {
833
+ inputs: [
834
+ {
835
+ internalType: "address",
836
+ name: "from",
837
+ type: "address",
838
+ },
839
+ {
840
+ internalType: "address",
841
+ name: "to",
842
+ type: "address",
843
+ },
844
+ {
845
+ internalType: "uint256",
846
+ name: "tokenId",
847
+ type: "uint256",
848
+ },
849
+ {
850
+ internalType: "bytes",
851
+ name: "_data",
852
+ type: "bytes",
853
+ },
854
+ ],
855
+ name: "safeTransferFrom",
856
+ outputs: [],
857
+ stateMutability: "nonpayable",
858
+ type: "function",
859
+ },
860
+ {
861
+ inputs: [
862
+ {
863
+ internalType: "address",
864
+ name: "token",
865
+ type: "address",
866
+ },
867
+ {
868
+ internalType: "uint256",
869
+ name: "value",
870
+ type: "uint256",
871
+ },
872
+ {
873
+ internalType: "uint256",
874
+ name: "deadline",
875
+ type: "uint256",
876
+ },
877
+ {
878
+ internalType: "uint8",
879
+ name: "v",
880
+ type: "uint8",
881
+ },
882
+ {
883
+ internalType: "bytes32",
884
+ name: "r",
885
+ type: "bytes32",
886
+ },
887
+ {
888
+ internalType: "bytes32",
889
+ name: "s",
890
+ type: "bytes32",
891
+ },
892
+ ],
893
+ name: "selfPermit",
894
+ outputs: [],
895
+ stateMutability: "payable",
896
+ type: "function",
897
+ },
898
+ {
899
+ inputs: [
900
+ {
901
+ internalType: "address",
902
+ name: "token",
903
+ type: "address",
904
+ },
905
+ {
906
+ internalType: "uint256",
907
+ name: "nonce",
908
+ type: "uint256",
909
+ },
910
+ {
911
+ internalType: "uint256",
912
+ name: "expiry",
913
+ type: "uint256",
914
+ },
915
+ {
916
+ internalType: "uint8",
917
+ name: "v",
918
+ type: "uint8",
919
+ },
920
+ {
921
+ internalType: "bytes32",
922
+ name: "r",
923
+ type: "bytes32",
924
+ },
925
+ {
926
+ internalType: "bytes32",
927
+ name: "s",
928
+ type: "bytes32",
929
+ },
930
+ ],
931
+ name: "selfPermitAllowed",
932
+ outputs: [],
933
+ stateMutability: "payable",
934
+ type: "function",
935
+ },
936
+ {
937
+ inputs: [
938
+ {
939
+ internalType: "address",
940
+ name: "token",
941
+ type: "address",
942
+ },
943
+ {
944
+ internalType: "uint256",
945
+ name: "nonce",
946
+ type: "uint256",
947
+ },
948
+ {
949
+ internalType: "uint256",
950
+ name: "expiry",
951
+ type: "uint256",
952
+ },
953
+ {
954
+ internalType: "uint8",
955
+ name: "v",
956
+ type: "uint8",
957
+ },
958
+ {
959
+ internalType: "bytes32",
960
+ name: "r",
961
+ type: "bytes32",
962
+ },
963
+ {
964
+ internalType: "bytes32",
965
+ name: "s",
966
+ type: "bytes32",
967
+ },
968
+ ],
969
+ name: "selfPermitAllowedIfNecessary",
970
+ outputs: [],
971
+ stateMutability: "payable",
972
+ type: "function",
973
+ },
974
+ {
975
+ inputs: [
976
+ {
977
+ internalType: "address",
978
+ name: "token",
979
+ type: "address",
980
+ },
981
+ {
982
+ internalType: "uint256",
983
+ name: "value",
984
+ type: "uint256",
985
+ },
986
+ {
987
+ internalType: "uint256",
988
+ name: "deadline",
989
+ type: "uint256",
990
+ },
991
+ {
992
+ internalType: "uint8",
993
+ name: "v",
994
+ type: "uint8",
995
+ },
996
+ {
997
+ internalType: "bytes32",
998
+ name: "r",
999
+ type: "bytes32",
1000
+ },
1001
+ {
1002
+ internalType: "bytes32",
1003
+ name: "s",
1004
+ type: "bytes32",
1005
+ },
1006
+ ],
1007
+ name: "selfPermitIfNecessary",
1008
+ outputs: [],
1009
+ stateMutability: "payable",
1010
+ type: "function",
1011
+ },
1012
+ {
1013
+ inputs: [
1014
+ {
1015
+ internalType: "address",
1016
+ name: "operator",
1017
+ type: "address",
1018
+ },
1019
+ {
1020
+ internalType: "bool",
1021
+ name: "approved",
1022
+ type: "bool",
1023
+ },
1024
+ ],
1025
+ name: "setApprovalForAll",
1026
+ outputs: [],
1027
+ stateMutability: "nonpayable",
1028
+ type: "function",
1029
+ },
1030
+ {
1031
+ inputs: [
1032
+ {
1033
+ internalType: "bytes4",
1034
+ name: "interfaceId",
1035
+ type: "bytes4",
1036
+ },
1037
+ ],
1038
+ name: "supportsInterface",
1039
+ outputs: [
1040
+ {
1041
+ internalType: "bool",
1042
+ name: "",
1043
+ type: "bool",
1044
+ },
1045
+ ],
1046
+ stateMutability: "view",
1047
+ type: "function",
1048
+ },
1049
+ {
1050
+ inputs: [
1051
+ {
1052
+ internalType: "address",
1053
+ name: "token",
1054
+ type: "address",
1055
+ },
1056
+ {
1057
+ internalType: "uint256",
1058
+ name: "amountMinimum",
1059
+ type: "uint256",
1060
+ },
1061
+ {
1062
+ internalType: "address",
1063
+ name: "recipient",
1064
+ type: "address",
1065
+ },
1066
+ ],
1067
+ name: "sweepToken",
1068
+ outputs: [],
1069
+ stateMutability: "payable",
1070
+ type: "function",
1071
+ },
1072
+ {
1073
+ inputs: [],
1074
+ name: "symbol",
1075
+ outputs: [
1076
+ {
1077
+ internalType: "string",
1078
+ name: "",
1079
+ type: "string",
1080
+ },
1081
+ ],
1082
+ stateMutability: "view",
1083
+ type: "function",
1084
+ },
1085
+ {
1086
+ inputs: [
1087
+ {
1088
+ internalType: "uint256",
1089
+ name: "index",
1090
+ type: "uint256",
1091
+ },
1092
+ ],
1093
+ name: "tokenByIndex",
1094
+ outputs: [
1095
+ {
1096
+ internalType: "uint256",
1097
+ name: "",
1098
+ type: "uint256",
1099
+ },
1100
+ ],
1101
+ stateMutability: "view",
1102
+ type: "function",
1103
+ },
1104
+ {
1105
+ inputs: [
1106
+ {
1107
+ internalType: "address",
1108
+ name: "owner",
1109
+ type: "address",
1110
+ },
1111
+ {
1112
+ internalType: "uint256",
1113
+ name: "index",
1114
+ type: "uint256",
1115
+ },
1116
+ ],
1117
+ name: "tokenOfOwnerByIndex",
1118
+ outputs: [
1119
+ {
1120
+ internalType: "uint256",
1121
+ name: "",
1122
+ type: "uint256",
1123
+ },
1124
+ ],
1125
+ stateMutability: "view",
1126
+ type: "function",
1127
+ },
1128
+ {
1129
+ inputs: [
1130
+ {
1131
+ internalType: "uint256",
1132
+ name: "tokenId",
1133
+ type: "uint256",
1134
+ },
1135
+ ],
1136
+ name: "tokenURI",
1137
+ outputs: [
1138
+ {
1139
+ internalType: "string",
1140
+ name: "",
1141
+ type: "string",
1142
+ },
1143
+ ],
1144
+ stateMutability: "view",
1145
+ type: "function",
1146
+ },
1147
+ {
1148
+ inputs: [],
1149
+ name: "totalSupply",
1150
+ outputs: [
1151
+ {
1152
+ internalType: "uint256",
1153
+ name: "",
1154
+ type: "uint256",
1155
+ },
1156
+ ],
1157
+ stateMutability: "view",
1158
+ type: "function",
1159
+ },
1160
+ {
1161
+ inputs: [
1162
+ {
1163
+ internalType: "address",
1164
+ name: "from",
1165
+ type: "address",
1166
+ },
1167
+ {
1168
+ internalType: "address",
1169
+ name: "to",
1170
+ type: "address",
1171
+ },
1172
+ {
1173
+ internalType: "uint256",
1174
+ name: "tokenId",
1175
+ type: "uint256",
1176
+ },
1177
+ ],
1178
+ name: "transferFrom",
1179
+ outputs: [],
1180
+ stateMutability: "nonpayable",
1181
+ type: "function",
1182
+ },
1183
+ {
1184
+ inputs: [
1185
+ {
1186
+ internalType: "uint256",
1187
+ name: "amount0Owed",
1188
+ type: "uint256",
1189
+ },
1190
+ {
1191
+ internalType: "uint256",
1192
+ name: "amount1Owed",
1193
+ type: "uint256",
1194
+ },
1195
+ {
1196
+ internalType: "bytes",
1197
+ name: "data",
1198
+ type: "bytes",
1199
+ },
1200
+ ],
1201
+ name: "uniswapV3MintCallback",
1202
+ outputs: [],
1203
+ stateMutability: "nonpayable",
1204
+ type: "function",
1205
+ },
1206
+ {
1207
+ inputs: [
1208
+ {
1209
+ internalType: "uint256",
1210
+ name: "amountMinimum",
1211
+ type: "uint256",
1212
+ },
1213
+ {
1214
+ internalType: "address",
1215
+ name: "recipient",
1216
+ type: "address",
1217
+ },
1218
+ ],
1219
+ name: "unwrapWETH9",
1220
+ outputs: [],
1221
+ stateMutability: "payable",
1222
+ type: "function",
1223
+ },
1224
+ {
1225
+ stateMutability: "payable",
1226
+ type: "receive",
1227
+ },
1228
+ ];
1229
+ const _bytecode = "0x610120604052600d80546001600160b01b0319166001176001600160b01b0316600160b01b1790553480156200003457600080fd5b50604051620062e9380380620062e98339810160408190526200005791620002db565b82826040518060400160405280601b81526020017f556e697377617020563320506f736974696f6e73204e46542d563100000000008152506040518060400160405280600a815260200169554e492d56332d504f5360b01b815250604051806040016040528060018152602001603160f81b8152508282620000e66301ffc9a760e01b6200018d60201b60201c565b8151620000fb90600690602085019062000212565b5080516200011190600790602084019062000212565b50620001246380ac58cd60e01b6200018d565b62000136635b5e139f60e01b6200018d565b6200014863780e9d6360e01b6200018d565b50508251602093840120608052805192019190912060a052506001600160601b0319606092831b811660c05290821b811660e05291901b166101005250620003249050565b6001600160e01b03198082161415620001ed576040805162461bcd60e51b815260206004820152601c60248201527f4552433136353a20696e76616c696420696e7465726661636520696400000000604482015290519081900360640190fd5b6001600160e01b0319166000908152602081905260409020805460ff19166001179055565b828054600181600116156101000203166002900490600052602060002090601f0160209004810192826200024a576000855562000295565b82601f106200026557805160ff191683800117855562000295565b8280016001018555821562000295579182015b828111156200029557825182559160200191906001019062000278565b50620002a3929150620002a7565b5090565b5b80821115620002a35760008155600101620002a8565b80516001600160a01b0381168114620002d657600080fd5b919050565b600080600060608486031215620002f0578283fd5b620002fb84620002be565b92506200030b60208501620002be565b91506200031b60408501620002be565b90509250925092565b60805160a05160c05160601c60e05160601c6101005160601c615f40620003a960003980612a835250806102995280611718528061180e52806118965280613e5d5280613ea35280613f17525080610aa75280610dde5280610ea55280612a1d5280612b235280612e4452806136e15250806114ff5250806114de5250615f406000f3fe6080604052600436106102895760003560e01c80636352211e11610153578063ac9650d8116100cb578063d34879971161007f578063e985e9c511610064578063e985e9c5146106f5578063f3995c6714610715578063fc6f7865146107285761030d565b8063d3487997146106c2578063df2ab5bb146106e25761030d565b8063c2e3140a116100b0578063c2e3140a1461067a578063c45a01551461068d578063c87b56dd146106a25761030d565b8063ac9650d81461063a578063b88d4fde1461065a5761030d565b8063883164561161012257806399fbab881161010757806399fbab88146105cf578063a22cb46514610607578063a4a78f0c146106275761030d565b8063883164561461059757806395d89b41146105ba5761030d565b80636352211e1461052f5780636c0360eb1461054f57806370a08231146105645780637ac2ff7b146105845761030d565b806323b872dd1161020157806342966c68116101b557806349404b7c1161019a57806349404b7c146104e75780634aa4a4fc146104fa5780634f6ccce71461050f5761030d565b806342966c68146104c15780634659a494146104d45761030d565b806330adf81f116101e657806330adf81f146104775780633644e5151461048c57806342842e0e146104a15761030d565b806323b872dd146104375780632f745c59146104575761030d565b80630c49ccbe1161025857806313ead5621161023d57806313ead562146103e057806318160ddd146103f3578063219f5d17146104155761030d565b80630c49ccbe146103b757806312210e8a146103d85761030d565b806301ffc9a71461031257806306fdde0314610348578063081812fc1461036a578063095ea7b3146103975761030d565b3661030d57336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461030b576040805162461bcd60e51b815260206004820152600960248201527f4e6f742057455448390000000000000000000000000000000000000000000000604482015290519081900360640190fd5b005b600080fd5b34801561031e57600080fd5b5061033261032d3660046153a6565b61073b565b60405161033f919061591e565b60405180910390f35b34801561035457600080fd5b5061035d610776565b60405161033f9190615971565b34801561037657600080fd5b5061038a6103853660046156b8565b61080c565b60405161033f91906157e2565b3480156103a357600080fd5b5061030b6103b2366004615270565b610868565b6103ca6103c5366004615483565b61093e565b60405161033f929190615b42565b61030b610daa565b61038a6103ee366004615103565b610dbc565b3480156103ff57600080fd5b506104086110c9565b60405161033f9190615929565b610428610423366004615494565b6110da565b60405161033f93929190615afd565b34801561044357600080fd5b5061030b61045236600461515c565b611413565b34801561046357600080fd5b50610408610472366004615270565b61146a565b34801561048357600080fd5b50610408611495565b34801561049857600080fd5b506104086114b9565b3480156104ad57600080fd5b5061030b6104bc36600461515c565b611577565b61030b6104cf3660046156b8565b611592565b61030b6104e23660046152dc565b611661565b61030b6104f53660046156d0565b611714565b34801561050657600080fd5b5061038a611894565b34801561051b57600080fd5b5061040861052a3660046156b8565b6118b8565b34801561053b57600080fd5b5061038a61054a3660046156b8565b6118ce565b34801561055b57600080fd5b5061035d6118f6565b34801561057057600080fd5b5061040861057f3660046150af565b6118fb565b61030b6105923660046152dc565b611963565b6105aa6105a5366004615550565b611e0f565b60405161033f9493929190615b1e565b3480156105c657600080fd5b5061035d612370565b3480156105db57600080fd5b506105ef6105ea3660046156b8565b6123d1565b60405161033f9c9b9a99989796959493929190615b50565b34801561061357600080fd5b5061030b610622366004615243565b612600565b61030b6106353660046152dc565b612723565b61064d610648366004615337565b6127d5565b60405161033f91906158a0565b34801561066657600080fd5b5061030b61067536600461519c565b612915565b61030b6106883660046152dc565b612973565b34801561069957600080fd5b5061038a612a1b565b3480156106ae57600080fd5b5061035d6106bd3660046156b8565b612a3f565b3480156106ce57600080fd5b5061030b6106dd366004615717565b612b0e565b61030b6106f036600461529b565b612b8c565b34801561070157600080fd5b506103326107103660046150cb565b612c6f565b61030b6107233660046152dc565b612c9d565b6103ca61073636600461546c565b612d28565b7fffffffff00000000000000000000000000000000000000000000000000000000811660009081526020819052604090205460ff165b919050565b60068054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156108025780601f106107d757610100808354040283529160200191610802565b820191906000526020600020905b8154815290600101906020018083116107e557829003601f168201915b5050505050905090565b600061081782613246565b61083c5760405162461bcd60e51b8152600401610833906159bb565b60405180910390fd5b506000908152600c60205260409020546c0100000000000000000000000090046001600160a01b031690565b6000610873826118ce565b9050806001600160a01b0316836001600160a01b031614156108c65760405162461bcd60e51b8152600401808060200182810382526021815260200180615ee26021913960400191505060405180910390fd5b806001600160a01b03166108d8613253565b6001600160a01b031614806108f457506108f481610710613253565b61092f5760405162461bcd60e51b8152600401808060200182810382526038815260200180615e0c6038913960400191505060405180910390fd5b6109398383613257565b505050565b600080823561094d33826132db565b6109695760405162461bcd60e51b815260040161083390615984565b836080013580610977613377565b11156109ca576040805162461bcd60e51b815260206004820152601360248201527f5472616e73616374696f6e20746f6f206f6c6400000000000000000000000000604482015290519081900360640190fd5b60006109dc6040870160208801615562565b6001600160801b0316116109ef57600080fd5b84356000908152600c602090815260409182902060018101549092600160801b9091046001600160801b031691610a2a918901908901615562565b6001600160801b0316816001600160801b03161015610a4857600080fd5b60018281015469ffffffffffffffffffff166000908152600b60209081526040808320815160608101835281546001600160a01b039081168252919095015490811692850192909252600160a01b90910462ffffff1690830152610acc7f00000000000000000000000000000000000000000000000000000000000000008361337b565b60018501549091506001600160a01b0382169063a34123a7906a01000000000000000000008104600290810b91600160681b9004900b610b1260408e0160208f01615562565b6040518463ffffffff1660e01b8152600401610b309392919061594b565b6040805180830381600087803b158015610b4957600080fd5b505af1158015610b5d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b8191906156f4565b909850965060408901358810801590610b9e575088606001358710155b610bba5760405162461bcd60e51b815260040161083390615a18565b6001840154600090610bea9030906a01000000000000000000008104600290810b91600160681b9004900b613477565b9050600080836001600160a01b031663514ea4bf846040518263ffffffff1660e01b8152600401610c1b9190615929565b60a06040518083038186803b158015610c3357600080fd5b505afa158015610c47573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c6b91906155ac565b50509250925050610c9087600201548303876001600160801b0316600160801b6134d1565b6004880180546fffffffffffffffffffffffffffffffff198116928e016001600160801b039182160181169290921790556003880154610cda91908303908816600160801b6134d1565b6004880180546001600160801b03808216938e01600160801b9283900482160116029190911790556002870182905560038701819055610d2060408d0160208e01615562565b86038760010160106101000a8154816001600160801b0302191690836001600160801b031602179055508b600001357f26f6a048ee9138f2c0ce266f322cb99228e8d619ae2bff30c67f8dcf9d2377b48d6020016020810190610d839190615562565b8d8d604051610d9493929190615afd565b60405180910390a2505050505050505050915091565b4715610dba57610dba3347613580565b565b6000836001600160a01b0316856001600160a01b031610610ddc57600080fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316631698ee828686866040518463ffffffff1660e01b815260040180846001600160a01b03168152602001836001600160a01b031681526020018262ffffff168152602001935050505060206040518083038186803b158015610e6757600080fd5b505afa158015610e7b573d6000803e3d6000fd5b505050506040513d6020811015610e9157600080fd5b505190506001600160a01b038116610fe0577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663a16712958686866040518463ffffffff1660e01b815260040180846001600160a01b03168152602001836001600160a01b031681526020018262ffffff1681526020019350505050602060405180830381600087803b158015610f3057600080fd5b505af1158015610f44573d6000803e3d6000fd5b505050506040513d6020811015610f5a57600080fd5b5051604080517ff637731d0000000000000000000000000000000000000000000000000000000081526001600160a01b03858116600483015291519293509083169163f637731d9160248082019260009290919082900301818387803b158015610fc357600080fd5b505af1158015610fd7573d6000803e3d6000fd5b505050506110c1565b6000816001600160a01b0316633850c7bd6040518163ffffffff1660e01b815260040160e06040518083038186803b15801561101b57600080fd5b505afa15801561102f573d6000803e3d6000fd5b505050506040513d60e081101561104557600080fd5b505190506001600160a01b0381166110bf57816001600160a01b031663f637731d846040518263ffffffff1660e01b815260040180826001600160a01b03168152602001915050600060405180830381600087803b1580156110a657600080fd5b505af11580156110ba573d6000803e3d6000fd5b505050505b505b949350505050565b60006110d56002613689565b905090565b60008060008360a00135806110ed613377565b1115611140576040805162461bcd60e51b815260206004820152601360248201527f5472616e73616374696f6e20746f6f206f6c6400000000000000000000000000604482015290519081900360640190fd5b84356000908152600c6020908152604080832060018082015469ffffffffffffffffffff81168652600b855283862084516060808201875282546001600160a01b039081168352929094015480831682890190815262ffffff600160a01b9092048216838901908152885161014081018a528451861681529151909416818a01529251168287015230828501526a01000000000000000000008304600290810b810b608080850191909152600160681b909404810b900b60a0830152958c013560c0820152938b013560e0850152908a0135610100840152890135610120830152929061122c90613694565b6001870154939a50919850965091506000906112669030906a01000000000000000000008104600290810b91600160681b9004900b613477565b9050600080836001600160a01b031663514ea4bf846040518263ffffffff1660e01b81526004016112979190615929565b60a06040518083038186803b1580156112af57600080fd5b505afa1580156112c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112e791906155ac565b50509250925050611323866002015483038760010160109054906101000a90046001600160801b03166001600160801b0316600160801b6134d1565b6004870180546001600160801b0380821690930183166fffffffffffffffffffffffffffffffff19909116179055600387015460018801546113739291840391600160801b9182900416906134d1565b6004870180546001600160801b03600160801b80830482169094018116840291811691909117909155600288018490556003880183905560018801805483810483168e018316909302929091169190911790556040518b35907f3067048beee31b25b2f1681f88dac838c8bba36af25bfb2b7cf7473a5847e35f906113fd908d908d908d90615afd565b60405180910390a2505050505050509193909250565b61142461141e613253565b826132db565b61145f5760405162461bcd60e51b8152600401808060200182810382526031815260200180615f036031913960400191505060405180910390fd5b6109398383836138cf565b6001600160a01b038216600090815260016020526040812061148c9083613a1b565b90505b92915050565b7f49ecf333e5b8c95c40fdafc95c1ad136e8914a8fb55e9dc8bb01eaa83a2df9ad81565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f7f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000611526613a27565b3060405160200180868152602001858152602001848152602001838152602001826001600160a01b031681526020019550505050505060405160208183030381529060405280519060200120905090565b61093983838360405180602001604052806000815250612915565b8061159d33826132db565b6115b95760405162461bcd60e51b815260040161083390615984565b6000828152600c602052604090206001810154600160801b90046001600160801b03161580156115f4575060048101546001600160801b0316155b801561161257506004810154600160801b90046001600160801b0316155b61162e5760405162461bcd60e51b815260040161083390615a86565b6000838152600c602052604081208181556001810182905560028101829055600381018290556004015561093983613a2b565b604080517f8fcbaf0c00000000000000000000000000000000000000000000000000000000815233600482015230602482015260448101879052606481018690526001608482015260ff851660a482015260c4810184905260e4810183905290516001600160a01b03881691638fcbaf0c9161010480830192600092919082900301818387803b1580156116f457600080fd5b505af1158015611708573d6000803e3d6000fd5b50505050505050505050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166370a08231306040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b15801561178357600080fd5b505afa158015611797573d6000803e3d6000fd5b505050506040513d60208110156117ad57600080fd5b5051905082811015611806576040805162461bcd60e51b815260206004820152601260248201527f496e73756666696369656e742057455448390000000000000000000000000000604482015290519081900360640190fd5b8015610939577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632e1a7d4d826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561187257600080fd5b505af1158015611886573d6000803e3d6000fd5b505050506109398282613580565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000806118c6600284613af8565b509392505050565b600061148f82604051806060016040528060298152602001615e6e6029913960029190613b16565b606090565b60006001600160a01b0382166119425760405162461bcd60e51b815260040180806020018281038252602a815260200180615e44602a913960400191505060405180910390fd5b6001600160a01b038216600090815260016020526040902061148f90613689565b8361196c613377565b11156119bf576040805162461bcd60e51b815260206004820152600e60248201527f5065726d69742065787069726564000000000000000000000000000000000000604482015290519081900360640190fd5b60006119c96114b9565b7f49ecf333e5b8c95c40fdafc95c1ad136e8914a8fb55e9dc8bb01eaa83a2df9ad88886119f581613b23565b604080516020808201969096526001600160a01b03909416848201526060840192909252608083015260a08083018a90528151808403909101815260c0830182528051908401207f190100000000000000000000000000000000000000000000000000000000000060e084015260e283019490945261010280830194909452805180830390940184526101229091019052815191012090506000611a98876118ce565b9050806001600160a01b0316886001600160a01b03161415611aeb5760405162461bcd60e51b8152600401808060200182810382526027815260200180615d6f6027913960400191505060405180910390fd5b611af481613b62565b15611ccf576040805160208082018790528183018690527fff0000000000000000000000000000000000000000000000000000000000000060f889901b16606083015282516041818403018152606183018085527f1626ba7e0000000000000000000000000000000000000000000000000000000090526065830186815260858401948552815160a585015281516001600160a01b03871695631626ba7e958995919260c59091019185019080838360005b83811015611bbe578181015183820152602001611ba6565b50505050905090810190601f168015611beb5780820380516001836020036101000a031916815260200191505b50935050505060206040518083038186803b158015611c0957600080fd5b505afa158015611c1d573d6000803e3d6000fd5b505050506040513d6020811015611c3357600080fd5b50517fffffffff00000000000000000000000000000000000000000000000000000000167f1626ba7e0000000000000000000000000000000000000000000000000000000014611cca576040805162461bcd60e51b815260206004820152600c60248201527f556e617574686f72697a65640000000000000000000000000000000000000000604482015290519081900360640190fd5b611dfb565b600060018387878760405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015611d2b573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116611d93576040805162461bcd60e51b815260206004820152601160248201527f496e76616c6964207369676e6174757265000000000000000000000000000000604482015290519081900360640190fd5b816001600160a01b0316816001600160a01b031614611df9576040805162461bcd60e51b815260206004820152600c60248201527f556e617574686f72697a65640000000000000000000000000000000000000000604482015290519081900360640190fd5b505b611e058888613257565b5050505050505050565b60008060008084610140013580611e24613377565b1115611e77576040805162461bcd60e51b815260206004820152601360248201527f5472616e73616374696f6e20746f6f206f6c6400000000000000000000000000604482015290519081900360640190fd5b604080516101408101909152600090611f439080611e9860208b018b6150af565b6001600160a01b03168152602001896020016020810190611eb991906150af565b6001600160a01b03168152602001611ed760608b0160408c0161569e565b62ffffff168152306020820152604001611ef760808b0160608c016153e6565b60020b8152602001611f0f60a08b0160808c016153e6565b60020b81526020018960a0013581526020018960c0013581526020018960e001358152602001896101000135815250613694565b92975090955093509050611fb7611f6261014089016101208a016150af565b600d80547fffffffffffffffffffff000000000000000000000000000000000000000000008116600175ffffffffffffffffffffffffffffffffffffffffffff92831690810190921617909155975087613b68565b6000611fe230611fcd60808b0160608c016153e6565b611fdd60a08c0160808d016153e6565b613477565b9050600080836001600160a01b031663514ea4bf846040518263ffffffff1660e01b81526004016120139190615929565b60a06040518083038186803b15801561202b57600080fd5b505afa15801561203f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061206391906155ac565b5050925092505060006120dc8560405180606001604052808e600001602081019061208e91906150af565b6001600160a01b031681526020018e60200160208101906120af91906150af565b6001600160a01b031681526020018e60400160208101906120d0919061569e565b62ffffff169052613c96565b905060405180610140016040528060006bffffffffffffffffffffffff16815260200160006001600160a01b031681526020018269ffffffffffffffffffff1681526020018c606001602081019061213491906153e6565b60020b815260200161214c60a08e0160808f016153e6565b60020b81526020018a6001600160801b0316815260200184815260200183815260200160006001600160801b0316815260200160006001600160801b0316815250600c60008c815260200190815260200160002060008201518160000160006101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff160217905550602082015181600001600c6101000a8154816001600160a01b0302191690836001600160a01b0316021790555060408201518160010160006101000a81548169ffffffffffffffffffff021916908369ffffffffffffffffffff160217905550606082015181600101600a6101000a81548162ffffff021916908360020b62ffffff160217905550608082015181600101600d6101000a81548162ffffff021916908360020b62ffffff16021790555060a08201518160010160106101000a8154816001600160801b0302191690836001600160801b0316021790555060c0820151816002015560e082015181600301556101008201518160040160006101000a8154816001600160801b0302191690836001600160801b031602179055506101208201518160040160106101000a8154816001600160801b0302191690836001600160801b03160217905550905050897f3067048beee31b25b2f1681f88dac838c8bba36af25bfb2b7cf7473a5847e35f8a8a8a60405161235b93929190615afd565b60405180910390a25050505050509193509193565b60078054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156108025780601f106107d757610100808354040283529160200191610802565b6000818152600c6020908152604080832081516101408101835281546bffffffffffffffffffffffff811682526001600160a01b036c010000000000000000000000009091041693810193909352600181015469ffffffffffffffffffff81169284018390526a01000000000000000000008104600290810b810b810b6060860152600160681b8204810b810b810b60808601526001600160801b03600160801b92839004811660a08701529083015460c0860152600383015460e0860152600490920154808316610100860152041661012083015282918291829182918291829182918291829182918291906124da5760405162461bcd60e51b815260040161083390615a4f565b6000600b6000836040015169ffffffffffffffffffff1669ffffffffffffffffffff1681526020019081526020016000206040518060600160405290816000820160009054906101000a90046001600160a01b03166001600160a01b03166001600160a01b031681526020016001820160009054906101000a90046001600160a01b03166001600160a01b03166001600160a01b031681526020016001820160149054906101000a900462ffffff1662ffffff1662ffffff1681525050905081600001518260200151826000015183602001518460400151866060015187608001518860a001518960c001518a60e001518b61010001518c61012001519d509d509d509d509d509d509d509d509d509d509d509d50505091939597999b5091939597999b565b612608613253565b6001600160a01b0316826001600160a01b0316141561266e576040805162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c657200000000000000604482015290519081900360640190fd5b806005600061267b613253565b6001600160a01b0390811682526020808301939093526040918201600090812091871680825291909352912080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016921515929092179091556126dd613253565b6001600160a01b03167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c318360405180821515815260200191505060405180910390a35050565b604080517fdd62ed3e0000000000000000000000000000000000000000000000000000000081523360048201523060248201529051600019916001600160a01b0389169163dd62ed3e91604480820192602092909190829003018186803b15801561278d57600080fd5b505afa1580156127a1573d6000803e3d6000fd5b505050506040513d60208110156127b757600080fd5b505110156127cd576127cd868686868686611661565b505050505050565b60608167ffffffffffffffff811180156127ee57600080fd5b5060405190808252806020026020018201604052801561282257816020015b606081526020019060019003908161280d5790505b50905060005b8281101561290e576000803086868581811061284057fe5b90506020028101906128529190615bef565b6040516128609291906157d2565b600060405180830381855af49150503d806000811461289b576040519150601f19603f3d011682016040523d82523d6000602084013e6128a0565b606091505b5091509150816128ec576044815110156128b957600080fd5b600481019050808060200190518101906128d39190615402565b60405162461bcd60e51b81526004016108339190615971565b808484815181106128f957fe5b60209081029190910101525050600101612828565b5092915050565b612926612920613253565b836132db565b6129615760405162461bcd60e51b8152600401808060200182810382526031815260200180615f036031913960400191505060405180910390fd5b61296d84848484613de6565b50505050565b604080517fdd62ed3e000000000000000000000000000000000000000000000000000000008152336004820152306024820152905186916001600160a01b0389169163dd62ed3e91604480820192602092909190829003018186803b1580156129db57600080fd5b505afa1580156129ef573d6000803e3d6000fd5b505050506040513d6020811015612a0557600080fd5b505110156127cd576127cd868686868686612c9d565b7f000000000000000000000000000000000000000000000000000000000000000081565b6060612a4a82613246565b612a5357600080fd5b6040517fe9dc63750000000000000000000000000000000000000000000000000000000081526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063e9dc637590612aba9030908690600401615932565b60006040518083038186803b158015612ad257600080fd5b505afa158015612ae6573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261148f9190810190615402565b6000612b1c828401846154a5565b9050612b4c7f00000000000000000000000000000000000000000000000000000000000000008260000151613e38565b508415612b67578051516020820151612b6791903388613e5b565b8315612b8557612b8581600001516020015182602001513387613e5b565b5050505050565b6000836001600160a01b03166370a08231306040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b158015612bdb57600080fd5b505afa158015612bef573d6000803e3d6000fd5b505050506040513d6020811015612c0557600080fd5b5051905082811015612c5e576040805162461bcd60e51b815260206004820152601260248201527f496e73756666696369656e7420746f6b656e0000000000000000000000000000604482015290519081900360640190fd5b801561296d5761296d848383613feb565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b604080517fd505accf000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018790526064810186905260ff8516608482015260a4810184905260c4810183905290516001600160a01b0388169163d505accf9160e480830192600092919082900301818387803b1580156116f457600080fd5b6000808235612d3733826132db565b612d535760405162461bcd60e51b815260040161083390615984565b6000612d656060860160408701615562565b6001600160801b03161180612d9257506000612d876080860160608701615562565b6001600160801b0316115b612d9b57600080fd5b600080612dae60408701602088016150af565b6001600160a01b031614612dd157612dcc60408601602087016150af565b612dd3565b305b85356000908152600c6020908152604080832060018082015469ffffffffffffffffffff168552600b8452828520835160608101855281546001600160a01b039081168252919092015490811694820194909452600160a01b90930462ffffff169183019190915292935090612e697f00000000000000000000000000000000000000000000000000000000000000008361337b565b600484015460018501549192506001600160801b0380821692600160801b92839004821692900416156130865760018501546040517fa34123a70000000000000000000000000000000000000000000000000000000081526001600160a01b0385169163a34123a791612f00916a01000000000000000000008104600290810b92600160681b909204900b9060009060040161594b565b6040805180830381600087803b158015612f1957600080fd5b505af1158015612f2d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f5191906156f4565b5050600185015460009081906001600160a01b0386169063514ea4bf90612f969030906a01000000000000000000008104600290810b91600160681b9004900b613477565b6040518263ffffffff1660e01b8152600401612fb29190615929565b60a06040518083038186803b158015612fca57600080fd5b505afa158015612fde573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061300291906155ac565b5050925092505061303e876002015483038860010160109054906101000a90046001600160801b03166001600160801b0316600160801b6134d1565b84019350613077876003015482038860010160109054906101000a90046001600160801b03166001600160801b0316600160801b6134d1565b60028801929092556003870155015b6000806001600160801b0384166130a360608e0160408f01615562565b6001600160801b0316116130c6576130c160608d0160408e01615562565b6130c8565b835b836001600160801b03168d60600160208101906130e59190615562565b6001600160801b0316116131085761310360808e0160608f01615562565b61310a565b835b60018901546040517f4f1eb3d80000000000000000000000000000000000000000000000000000000081529294509092506001600160a01b03871691634f1eb3d89161317d918c916a01000000000000000000008104600290810b92600160681b909204900b9088908890600401615839565b6040805180830381600087803b15801561319657600080fd5b505af11580156131aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131ce919061557e565b6004890180546fffffffffffffffffffffffffffffffff196001600160801b03918216600160801b878a0384160217168689038216179091556040519281169d50169a508c35907f40d0efd1a53d60ecbf40971b9daf7dc90178c3aadc7aab1765632738fa8b8f0190610d94908b9086908690615876565b600061148f60028361417b565b3390565b6000818152600c6020526040902080546bffffffffffffffffffffffff166c010000000000000000000000006001600160a01b0385169081029190911790915581906132a2826118ce565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b60006132e682613246565b6133215760405162461bcd60e51b815260040180806020018281038252602c815260200180615de0602c913960400191505060405180910390fd5b600061332c836118ce565b9050806001600160a01b0316846001600160a01b031614806133675750836001600160a01b031661335c8461080c565b6001600160a01b0316145b806110c157506110c18185612c6f565b4290565b600081602001516001600160a01b031682600001516001600160a01b0316106133a357600080fd5b50805160208083015160409384015184516001600160a01b0394851681850152939091168385015262ffffff166060808401919091528351808403820181526080840185528051908301207fff0000000000000000000000000000000000000000000000000000000000000060a085015294901b6bffffffffffffffffffffffff191660a183015260b58201939093527fe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b5460d5808301919091528251808303909101815260f5909101909152805191012090565b604080516bffffffffffffffffffffffff19606086901b16602080830191909152600285810b60e890811b60348501529085900b901b60378301528251601a818403018152603a90920190925280519101205b9392505050565b600080806000198587098686029250828110908390030390508061350757600084116134fc57600080fd5b5082900490506134ca565b80841161351357600080fd5b6000848688096000868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010186841190950394909402919094039290920491909117919091029150509392505050565b604080516000808252602082019092526001600160a01b0384169083906040518082805190602001908083835b602083106135cc5780518252601f1990920191602091820191016135ad565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d806000811461362e576040519150601f19603f3d011682016040523d82523d6000602084013e613633565b606091505b5050905080610939576040805162461bcd60e51b815260206004820152600360248201527f5354450000000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b600061148f82614187565b6000806000806000604051806060016040528087600001516001600160a01b0316815260200187602001516001600160a01b03168152602001876040015162ffffff1681525090506137067f00000000000000000000000000000000000000000000000000000000000000008261337b565b91506000826001600160a01b0316633850c7bd6040518163ffffffff1660e01b815260040160e06040518083038186803b15801561374357600080fd5b505afa158015613757573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061377b919061560d565b50505050505090506000613792886080015161418b565b905060006137a38960a0015161418b565b90506137ba8383838c60c001518d60e001516144d9565b9750505050816001600160a01b0316633c8a7d8d876060015188608001518960a00151896040518060400160405280888152602001336001600160a01b031681525060405160200161380c9190615abd565b6040516020818303038152906040526040518663ffffffff1660e01b815260040161383b9594939291906157f6565b6040805180830381600087803b15801561385457600080fd5b505af1158015613868573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061388c91906156f4565b610100880151919550935084108015906138ab57508561012001518310155b6138c75760405162461bcd60e51b815260040161083390615a18565b509193509193565b826001600160a01b03166138e2826118ce565b6001600160a01b0316146139275760405162461bcd60e51b8152600401808060200182810382526029815260200180615eb96029913960400191505060405180910390fd5b6001600160a01b03821661396c5760405162461bcd60e51b8152600401808060200182810382526024815260200180615d966024913960400191505060405180910390fd5b613977838383610939565b613982600082613257565b6001600160a01b03831660009081526001602052604090206139a4908261459d565b506001600160a01b03821660009081526001602052604090206139c790826145a9565b506139d4600282846145b5565b5080826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b600061148c83836145cb565b4690565b6000613a36826118ce565b9050613a4481600084610939565b613a4f600083613257565b6000828152600860205260409020546002600019610100600184161502019091160415613a8d576000828152600860205260408120613a8d9161501f565b6001600160a01b0381166000908152600160205260409020613aaf908361459d565b50613abb60028361462f565b5060405182906000906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b6000808080613b07868661463b565b909450925050505b9250929050565b60006110c18484846146b6565b6000908152600c6020526040902080546bffffffffffffffffffffffff19811660016bffffffffffffffffffffffff9283169081019092161790915590565b3b151590565b6001600160a01b038216613bc3576040805162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f2061646472657373604482015290519081900360640190fd5b613bcc81613246565b15613c1e576040805162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000604482015290519081900360640190fd5b613c2a60008383610939565b6001600160a01b0382166000908152600160205260409020613c4c90826145a9565b50613c59600282846145b5565b5060405181906001600160a01b038416906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b6001600160a01b0382166000908152600a602052604090205469ffffffffffffffffffff168061148f5750600d8054600169ffffffffffffffffffff76010000000000000000000000000000000000000000000080840482168381019092160275ffffffffffffffffffffffffffffffffffffffffffff909316929092179092556001600160a01b038085166000908152600a6020908152604080832080547fffffffffffffffffffffffffffffffffffffffffffff000000000000000000001686179055848352600b825291829020865181549085167fffffffffffffffffffffffff000000000000000000000000000000000000000091821617825591870151950180549287015162ffffff16600160a01b027fffffffffffffffffff000000ffffffffffffffffffffffffffffffffffffffff969094169290911691909117939093161790915592915050565b613df18484846138cf565b613dfd84848484614780565b61296d5760405162461bcd60e51b8152600401808060200182810382526032815260200180615d3d6032913960400191505060405180910390fd5b6000613e44838361337b565b9050336001600160a01b0382161461148f57600080fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316846001600160a01b0316148015613e9c5750804710155b15613fbe577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db0826040518263ffffffff1660e01b81526004016000604051808303818588803b158015613efc57600080fd5b505af1158015613f10573d6000803e3d6000fd5b50505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663a9059cbb83836040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050602060405180830381600087803b158015613f8c57600080fd5b505af1158015613fa0573d6000803e3d6000fd5b505050506040513d6020811015613fb657600080fd5b5061296d9050565b6001600160a01b038316301415613fdf57613fda848383613feb565b61296d565b61296d8484848461495c565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb000000000000000000000000000000000000000000000000000000001781529251825160009485949389169392918291908083835b602083106140955780518252601f199092019160209182019101614076565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d80600081146140f7576040519150601f19603f3d011682016040523d82523d6000602084013e6140fc565b606091505b509150915081801561412a57508051158061412a575080806020019051602081101561412757600080fd5b50515b612b85576040805162461bcd60e51b815260206004820152600260248201527f5354000000000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b600061148c8383614af4565b5490565b60008060008360020b126141a2578260020b6141aa565b8260020b6000035b9050620d89e8811115614204576040805162461bcd60e51b815260206004820152600160248201527f5400000000000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b60006001821661421857600160801b61422a565b6ffffcb933bd6fad37aa2d162d1a5940015b70ffffffffffffffffffffffffffffffffff169050600282161561425e576ffff97272373d413259a46990580e213a0260801c5b600482161561427d576ffff2e50f5f656932ef12357cf3c7fdcc0260801c5b600882161561429c576fffe5caca7e10e4e61c3624eaa0941cd00260801c5b60108216156142bb576fffcb9843d60f6159c9db58835c9266440260801c5b60208216156142da576fff973b41fa98c081472e6896dfb254c00260801c5b60408216156142f9576fff2ea16466c96a3843ec78b326b528610260801c5b6080821615614318576ffe5dee046a99a2a811c461f1969c30530260801c5b610100821615614338576ffcbe86c7900a88aedcffc83b479aa3a40260801c5b610200821615614358576ff987a7253ac413176f2b074cf7815e540260801c5b610400821615614378576ff3392b0822b70005940c7a398e4b70f30260801c5b610800821615614398576fe7159475a2c29b7443b29c7fa6e889d90260801c5b6110008216156143b8576fd097f3bdfd2022b8845ad8f792aa58250260801c5b6120008216156143d8576fa9f746462d870fdf8a65dc1f90e061e50260801c5b6140008216156143f8576f70d869a156d2a1b890bb3df62baf32f70260801c5b618000821615614418576f31be135f97d08fd981231505542fcfa60260801c5b62010000821615614439576f09aa508b5b7a84e1c677de54f3e99bc90260801c5b62020000821615614459576e5d6af8dedb81196699c329225ee6040260801c5b62040000821615614478576d2216e584f5fa1ea926041bedfe980260801c5b62080000821615614495576b048a170391f7dc42444e8fa20260801c5b60008460020b13156144b05780600019816144ac57fe5b0490505b6401000000008106156144c45760016144c7565b60005b60ff16602082901c0192505050919050565b6000836001600160a01b0316856001600160a01b031611156144f9579293925b846001600160a01b0316866001600160a01b0316116145245761451d858585614b0c565b9050614594565b836001600160a01b0316866001600160a01b0316101561458657600061454b878686614b0c565b9050600061455a878986614b78565b9050806001600160801b0316826001600160801b03161061457b578061457d565b815b92505050614594565b614591858584614b78565b90505b95945050505050565b600061148c8383614bbe565b600061148c8383614c84565b60006110c184846001600160a01b038516614cce565b8154600090821061460d5760405162461bcd60e51b8152600401808060200182810382526022815260200180615d1b6022913960400191505060405180910390fd5b82600001828154811061461c57fe5b9060005260206000200154905092915050565b600061148c8383614d65565b81546000908190831061467f5760405162461bcd60e51b8152600401808060200182810382526022815260200180615e976022913960400191505060405180910390fd5b600084600001848154811061469057fe5b906000526020600020906002020190508060000154816001015492509250509250929050565b600082815260018401602052604081205482816147515760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156147165781810151838201526020016146fe565b50505050905090810190601f1680156147435780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5084600001600182038154811061476457fe5b9060005260206000209060020201600101549150509392505050565b6000614794846001600160a01b0316613b62565b6147a0575060016110c1565b60006148f17f150b7a02000000000000000000000000000000000000000000000000000000006147ce613253565b88878760405160240180856001600160a01b03168152602001846001600160a01b0316815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561483557818101518382015260200161481d565b50505050905090810190601f1680156148625780820380516001836020036101000a031916815260200191505b5095505050505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051806060016040528060328152602001615d3d603291396001600160a01b0388169190614e39565b9050600081806020019051602081101561490a57600080fd5b50517fffffffff00000000000000000000000000000000000000000000000000000000167f150b7a02000000000000000000000000000000000000000000000000000000001492505050949350505050565b604080516001600160a01b0385811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd00000000000000000000000000000000000000000000000000000000178152925182516000948594938a169392918291908083835b60208310614a0e5780518252601f1990920191602091820191016149ef565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114614a70576040519150601f19603f3d011682016040523d82523d6000602084013e614a75565b606091505b5091509150818015614aa3575080511580614aa35750808060200190516020811015614aa057600080fd5b50515b6127cd576040805162461bcd60e51b815260206004820152600360248201527f5354460000000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b60009081526001919091016020526040902054151590565b6000826001600160a01b0316846001600160a01b03161115614b2c579192915b6000614b58856001600160a01b0316856001600160a01b03166c010000000000000000000000006134d1565b9050614594614b7384838888036001600160a01b03166134d1565b614e48565b6000826001600160a01b0316846001600160a01b03161115614b98579192915b6110c1614b73836c010000000000000000000000008787036001600160a01b03166134d1565b60008181526001830160205260408120548015614c7a5783546000198083019190810190600090879083908110614bf157fe5b9060005260206000200154905080876000018481548110614c0e57fe5b600091825260208083209091019290925582815260018981019092526040902090840190558654879080614c3e57fe5b6001900381819060005260206000200160009055905586600101600087815260200190815260200160002060009055600194505050505061148f565b600091505061148f565b6000614c908383614af4565b614cc65750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915561148f565b50600061148f565b600082815260018401602052604081205480614d335750506040805180820182528381526020808201848152865460018181018955600089815284812095516002909302909501918255915190820155865486845281880190925292909120556134ca565b82856000016001830381548110614d4657fe5b90600052602060002090600202016001018190555060009150506134ca565b60008181526001830160205260408120548015614c7a5783546000198083019190810190600090879083908110614d9857fe5b9060005260206000209060020201905080876000018481548110614db857fe5b600091825260208083208454600290930201918255600193840154918401919091558354825289830190526040902090840190558654879080614df757fe5b600082815260208082206002600019909401938402018281556001908101839055929093558881528982019092526040822091909155945061148f9350505050565b60606110c18484600085614e5e565b806001600160801b038116811461077157600080fd5b606082471015614e9f5760405162461bcd60e51b8152600401808060200182810382526026815260200180615dba6026913960400191505060405180910390fd5b614ea885613b62565b614ef9576040805162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015290519081900360640190fd5b600080866001600160a01b031685876040518082805190602001908083835b60208310614f375780518252601f199092019160209182019101614f18565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d8060008114614f99576040519150601f19603f3d011682016040523d82523d6000602084013e614f9e565b606091505b5091509150614fae828286614fb9565b979650505050505050565b60608315614fc85750816134ca565b825115614fd85782518084602001fd5b60405162461bcd60e51b81526020600482018181528451602484015284518593919283926044019190850190808383600083156147165781810151838201526020016146fe565b50805460018160011615610100020316600290046000825580601f106150455750615063565b601f0160209004906000526020600020908101906150639190615066565b50565b5b8082111561507b5760008155600101615067565b5090565b803561077181615cc4565b805161ffff8116811461077157600080fd5b803562ffffff8116811461077157600080fd5b6000602082840312156150c0578081fd5b81356134ca81615cc4565b600080604083850312156150dd578081fd5b82356150e881615cc4565b915060208301356150f881615cc4565b809150509250929050565b60008060008060808587031215615118578182fd5b843561512381615cc4565b9350602085013561513381615cc4565b92506151416040860161509c565b9150606085013561515181615cc4565b939692955090935050565b600080600060608486031215615170578081fd5b833561517b81615cc4565b9250602084013561518b81615cc4565b929592945050506040919091013590565b600080600080608085870312156151b1578182fd5b84356151bc81615cc4565b935060208501356151cc81615cc4565b925060408501359150606085013567ffffffffffffffff8111156151ee578182fd5b8501601f810187136151fe578182fd5b803561521161520c82615c76565b615c52565b818152886020838501011115615225578384fd5b81602084016020830137908101602001929092525092959194509250565b60008060408385031215615255578182fd5b823561526081615cc4565b915060208301356150f881615cd9565b60008060408385031215615282578182fd5b823561528d81615cc4565b946020939093013593505050565b6000806000606084860312156152af578081fd5b83356152ba81615cc4565b92506020840135915060408401356152d181615cc4565b809150509250925092565b60008060008060008060c087890312156152f4578384fd5b86356152ff81615cc4565b95506020870135945060408701359350606087013561531d81615d0b565b9598949750929560808101359460a0909101359350915050565b60008060208385031215615349578182fd5b823567ffffffffffffffff80821115615360578384fd5b818501915085601f830112615373578384fd5b813581811115615381578485fd5b8660208083028501011115615394578485fd5b60209290920196919550909350505050565b6000602082840312156153b7578081fd5b81357fffffffff00000000000000000000000000000000000000000000000000000000811681146134ca578182fd5b6000602082840312156153f7578081fd5b81356134ca81615ce7565b600060208284031215615413578081fd5b815167ffffffffffffffff811115615429578182fd5b8201601f81018413615439578182fd5b805161544761520c82615c76565b81815285602083850101111561545b578384fd5b614594826020830160208601615c98565b60006080828403121561547d578081fd5b50919050565b600060a0828403121561547d578081fd5b600060c0828403121561547d578081fd5b600081830360808112156154b7578182fd5b6040516040810167ffffffffffffffff82821081831117156154d557fe5b8160405260608412156154e6578485fd5b60a08301935081841081851117156154fa57fe5b50826040528435925061550c83615cc4565b91825260208401359161551e83615cc4565b8260608301526155306040860161509c565b608083015281526155436060850161507f565b6020820152949350505050565b6000610160828403121561547d578081fd5b600060208284031215615573578081fd5b81356134ca81615cf6565b60008060408385031215615590578182fd5b825161559b81615cf6565b60208401519092506150f881615cf6565b600080600080600060a086880312156155c3578283fd5b85516155ce81615cf6565b80955050602086015193506040860151925060608601516155ee81615cf6565b60808701519092506155ff81615cf6565b809150509295509295909350565b600080600080600080600060e0888a031215615627578485fd5b875161563281615cc4565b602089015190975061564381615ce7565b95506156516040890161508a565b945061565f6060890161508a565b935061566d6080890161508a565b925060a088015161567d81615d0b565b60c089015190925061568e81615cd9565b8091505092959891949750929550565b6000602082840312156156af578081fd5b61148c8261509c565b6000602082840312156156c9578081fd5b5035919050565b600080604083850312156156e2578182fd5b8235915060208301356150f881615cc4565b60008060408385031215615706578182fd5b505080516020909101519092909150565b6000806000806060858703121561572c578182fd5b8435935060208501359250604085013567ffffffffffffffff80821115615751578384fd5b818701915087601f830112615764578384fd5b813581811115615772578485fd5b886020828501011115615783578485fd5b95989497505060200194505050565b600081518084526157aa816020860160208601615c98565b601f01601f19169290920160200192915050565b60020b9052565b6001600160801b03169052565b6000828483379101908152919050565b6001600160a01b0391909116815260200190565b60006001600160a01b03871682528560020b60208301528460020b60408301526001600160801b038416606083015260a06080830152614fae60a0830184615792565b6001600160a01b03959095168552600293840b60208601529190920b60408401526001600160801b03918216606084015216608082015260a00190565b6001600160a01b039390931683526001600160801b03918216602084015216604082015260600190565b6000602080830181845280855180835260408601915060408482028701019250838701855b82811015615911577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08886030184526158ff858351615792565b945092850192908501906001016158c5565b5092979650505050505050565b901515815260200190565b90815260200190565b6001600160a01b03929092168252602082015260400190565b600293840b81529190920b60208201526001600160801b03909116604082015260600190565b60006020825261148c6020830184615792565b6020808252600c908201527f4e6f7420617070726f7665640000000000000000000000000000000000000000604082015260600190565b6020808252602c908201527f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860408201527f697374656e7420746f6b656e0000000000000000000000000000000000000000606082015260800190565b60208082526014908201527f507269636520736c69707061676520636865636b000000000000000000000000604082015260600190565b60208082526010908201527f496e76616c696420746f6b656e20494400000000000000000000000000000000604082015260600190565b6020808252600b908201527f4e6f7420636c6561726564000000000000000000000000000000000000000000604082015260600190565b815180516001600160a01b03908116835260208083015182168185015260409283015162ffffff1692840192909252920151909116606082015260800190565b6001600160801b039390931683526020830191909152604082015260600190565b9384526001600160801b039290921660208401526040830152606082015260800190565b918252602082015260400190565b6bffffffffffffffffffffffff8d1681526001600160a01b038c811660208301528b811660408301528a16606082015262ffffff89166080820152600288900b60a08201526101808101615ba760c08301896157be565b615bb460e08301886157c5565b8561010083015284610120830152615bd06101408301856157c5565b615bde6101608301846157c5565b9d9c50505050505050505050505050565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112615c23578283fd5b83018035915067ffffffffffffffff821115615c3d578283fd5b602001915036819003821315613b0f57600080fd5b60405181810167ffffffffffffffff81118282101715615c6e57fe5b604052919050565b600067ffffffffffffffff821115615c8a57fe5b50601f01601f191660200190565b60005b83811015615cb3578181015183820152602001615c9b565b8381111561296d5750506000910152565b6001600160a01b038116811461506357600080fd5b801515811461506357600080fd5b8060020b811461506357600080fd5b6001600160801b038116811461506357600080fd5b60ff8116811461506357600080fdfe456e756d657261626c655365743a20696e646578206f7574206f6620626f756e64734552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e7465724552433732315065726d69743a20617070726f76616c20746f2063757272656e74206f776e65724552433732313a207472616e7366657220746f20746865207a65726f2061646472657373416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c4552433732313a206f70657261746f7220717565727920666f72206e6f6e6578697374656e7420746f6b656e4552433732313a20617070726f76652063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f76656420666f7220616c6c4552433732313a2062616c616e636520717565727920666f7220746865207a65726f20616464726573734552433732313a206f776e657220717565727920666f72206e6f6e6578697374656e7420746f6b656e456e756d657261626c654d61703a20696e646578206f7574206f6620626f756e64734552433732313a207472616e73666572206f6620746f6b656e2074686174206973206e6f74206f776e4552433732313a20617070726f76616c20746f2063757272656e74206f776e65724552433732313a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564a164736f6c6343000706000a";
1230
+ class NonfungiblePositionManager__factory extends ethers_1.ContractFactory {
1231
+ constructor(...args) {
1232
+ if (args.length === 1) {
1233
+ super(_abi, _bytecode, args[0]);
1234
+ }
1235
+ else {
1236
+ super(...args);
1237
+ }
1238
+ }
1239
+ deploy(_factory, _WETH9, _tokenDescriptor_, overrides) {
1240
+ return super.deploy(_factory, _WETH9, _tokenDescriptor_, overrides || {});
1241
+ }
1242
+ getDeployTransaction(_factory, _WETH9, _tokenDescriptor_, overrides) {
1243
+ return super.getDeployTransaction(_factory, _WETH9, _tokenDescriptor_, overrides || {});
1244
+ }
1245
+ attach(address) {
1246
+ return super.attach(address);
1247
+ }
1248
+ connect(signer) {
1249
+ return super.connect(signer);
1250
+ }
1251
+ static createInterface() {
1252
+ return new ethers_1.utils.Interface(_abi);
1253
+ }
1254
+ static connect(address, signerOrProvider) {
1255
+ return new ethers_1.Contract(address, _abi, signerOrProvider);
1256
+ }
1257
+ }
1258
+ exports.NonfungiblePositionManager__factory = NonfungiblePositionManager__factory;
1259
+ NonfungiblePositionManager__factory.bytecode = _bytecode;
1260
+ NonfungiblePositionManager__factory.abi = _abi;
1261
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTm9uZnVuZ2libGVQb3NpdGlvbk1hbmFnZXJfX2ZhY3RvcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvdHlwZXMvdjMvZmFjdG9yaWVzL05vbmZ1bmdpYmxlUG9zaXRpb25NYW5hZ2VyX19mYWN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSwrQ0FBK0M7QUFDL0Msb0JBQW9CO0FBQ3BCLG9CQUFvQjs7O0FBRXBCLG1DQUE2RTtBQU83RSxNQUFNLElBQUksR0FBRztJQUNYO1FBQ0UsTUFBTSxFQUFFO1lBQ047Z0JBQ0UsWUFBWSxFQUFFLFNBQVM7Z0JBQ3ZCLElBQUksRUFBRSxVQUFVO2dCQUNoQixJQUFJLEVBQUUsU0FBUzthQUNoQjtZQUNEO2dCQUNFLFlBQVksRUFBRSxTQUFTO2dCQUN2QixJQUFJLEVBQUUsUUFBUTtnQkFDZCxJQUFJLEVBQUUsU0FBUzthQUNoQjtZQUNEO2dCQUNFLFlBQVksRUFBRSxTQUFTO2dCQUN2QixJQUFJLEVBQUUsbUJBQW1CO2dCQUN6QixJQUFJLEVBQUUsU0FBUzthQUNoQjtTQUNGO1FBQ0QsZUFBZSxFQUFFLFlBQVk7UUFDN0IsSUFBSSxFQUFFLGFBQWE7S0FDcEI7SUFDRDtRQUNFLFNBQVMsRUFBRSxLQUFLO1FBQ2hCLE1BQU0sRUFBRTtZQUNOO2dCQUNFLE9BQU8sRUFBRSxJQUFJO2dCQUNiLFlBQVksRUFBRSxTQUFTO2dCQUN2QixJQUFJLEVBQUUsT0FBTztnQkFDYixJQUFJLEVBQUUsU0FBUzthQUNoQjtZQUNEO2dCQUNFLE9BQU8sRUFBRSxJQUFJO2dCQUNiLFlBQVksRUFBRSxTQUFTO2dCQUN2QixJQUFJLEVBQUUsVUFBVTtnQkFDaEIsSUFBSSxFQUFFLFNBQVM7YUFDaEI7WUFDRDtnQkFDRSxPQUFPLEVBQUUsSUFBSTtnQkFDYixZQUFZLEVBQUUsU0FBUztnQkFDdkIsSUFBSSxFQUFFLFNBQVM7Z0JBQ2YsSUFBSSxFQUFFLFNBQVM7YUFDaEI7U0FD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