@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,1013 @@
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.UniswapV2Router02__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: "_WETH",
19
+ type: "address",
20
+ },
21
+ ],
22
+ stateMutability: "nonpayable",
23
+ type: "constructor",
24
+ },
25
+ {
26
+ inputs: [],
27
+ name: "WETH",
28
+ outputs: [
29
+ {
30
+ internalType: "address",
31
+ name: "",
32
+ type: "address",
33
+ },
34
+ ],
35
+ stateMutability: "view",
36
+ type: "function",
37
+ },
38
+ {
39
+ inputs: [
40
+ {
41
+ internalType: "address",
42
+ name: "tokenA",
43
+ type: "address",
44
+ },
45
+ {
46
+ internalType: "address",
47
+ name: "tokenB",
48
+ type: "address",
49
+ },
50
+ {
51
+ internalType: "uint256",
52
+ name: "amountADesired",
53
+ type: "uint256",
54
+ },
55
+ {
56
+ internalType: "uint256",
57
+ name: "amountBDesired",
58
+ type: "uint256",
59
+ },
60
+ {
61
+ internalType: "uint256",
62
+ name: "amountAMin",
63
+ type: "uint256",
64
+ },
65
+ {
66
+ internalType: "uint256",
67
+ name: "amountBMin",
68
+ type: "uint256",
69
+ },
70
+ {
71
+ internalType: "address",
72
+ name: "to",
73
+ type: "address",
74
+ },
75
+ {
76
+ internalType: "uint256",
77
+ name: "deadline",
78
+ type: "uint256",
79
+ },
80
+ ],
81
+ name: "addLiquidity",
82
+ outputs: [
83
+ {
84
+ internalType: "uint256",
85
+ name: "amountA",
86
+ type: "uint256",
87
+ },
88
+ {
89
+ internalType: "uint256",
90
+ name: "amountB",
91
+ type: "uint256",
92
+ },
93
+ {
94
+ internalType: "uint256",
95
+ name: "liquidity",
96
+ type: "uint256",
97
+ },
98
+ ],
99
+ stateMutability: "nonpayable",
100
+ type: "function",
101
+ },
102
+ {
103
+ inputs: [
104
+ {
105
+ internalType: "address",
106
+ name: "token",
107
+ type: "address",
108
+ },
109
+ {
110
+ internalType: "uint256",
111
+ name: "amountTokenDesired",
112
+ type: "uint256",
113
+ },
114
+ {
115
+ internalType: "uint256",
116
+ name: "amountTokenMin",
117
+ type: "uint256",
118
+ },
119
+ {
120
+ internalType: "uint256",
121
+ name: "amountETHMin",
122
+ type: "uint256",
123
+ },
124
+ {
125
+ internalType: "address",
126
+ name: "to",
127
+ type: "address",
128
+ },
129
+ {
130
+ internalType: "uint256",
131
+ name: "deadline",
132
+ type: "uint256",
133
+ },
134
+ ],
135
+ name: "addLiquidityETH",
136
+ outputs: [
137
+ {
138
+ internalType: "uint256",
139
+ name: "amountToken",
140
+ type: "uint256",
141
+ },
142
+ {
143
+ internalType: "uint256",
144
+ name: "amountETH",
145
+ type: "uint256",
146
+ },
147
+ {
148
+ internalType: "uint256",
149
+ name: "liquidity",
150
+ type: "uint256",
151
+ },
152
+ ],
153
+ stateMutability: "payable",
154
+ type: "function",
155
+ },
156
+ {
157
+ inputs: [],
158
+ name: "factory",
159
+ outputs: [
160
+ {
161
+ internalType: "address",
162
+ name: "",
163
+ type: "address",
164
+ },
165
+ ],
166
+ stateMutability: "view",
167
+ type: "function",
168
+ },
169
+ {
170
+ inputs: [
171
+ {
172
+ internalType: "uint256",
173
+ name: "amountOut",
174
+ type: "uint256",
175
+ },
176
+ {
177
+ internalType: "uint256",
178
+ name: "reserveIn",
179
+ type: "uint256",
180
+ },
181
+ {
182
+ internalType: "uint256",
183
+ name: "reserveOut",
184
+ type: "uint256",
185
+ },
186
+ ],
187
+ name: "getAmountIn",
188
+ outputs: [
189
+ {
190
+ internalType: "uint256",
191
+ name: "amountIn",
192
+ type: "uint256",
193
+ },
194
+ ],
195
+ stateMutability: "pure",
196
+ type: "function",
197
+ },
198
+ {
199
+ inputs: [
200
+ {
201
+ internalType: "uint256",
202
+ name: "amountIn",
203
+ type: "uint256",
204
+ },
205
+ {
206
+ internalType: "uint256",
207
+ name: "reserveIn",
208
+ type: "uint256",
209
+ },
210
+ {
211
+ internalType: "uint256",
212
+ name: "reserveOut",
213
+ type: "uint256",
214
+ },
215
+ ],
216
+ name: "getAmountOut",
217
+ outputs: [
218
+ {
219
+ internalType: "uint256",
220
+ name: "amountOut",
221
+ type: "uint256",
222
+ },
223
+ ],
224
+ stateMutability: "pure",
225
+ type: "function",
226
+ },
227
+ {
228
+ inputs: [
229
+ {
230
+ internalType: "uint256",
231
+ name: "amountOut",
232
+ type: "uint256",
233
+ },
234
+ {
235
+ internalType: "address[]",
236
+ name: "path",
237
+ type: "address[]",
238
+ },
239
+ ],
240
+ name: "getAmountsIn",
241
+ outputs: [
242
+ {
243
+ internalType: "uint256[]",
244
+ name: "amounts",
245
+ type: "uint256[]",
246
+ },
247
+ ],
248
+ stateMutability: "view",
249
+ type: "function",
250
+ },
251
+ {
252
+ inputs: [
253
+ {
254
+ internalType: "uint256",
255
+ name: "amountIn",
256
+ type: "uint256",
257
+ },
258
+ {
259
+ internalType: "address[]",
260
+ name: "path",
261
+ type: "address[]",
262
+ },
263
+ ],
264
+ name: "getAmountsOut",
265
+ outputs: [
266
+ {
267
+ internalType: "uint256[]",
268
+ name: "amounts",
269
+ type: "uint256[]",
270
+ },
271
+ ],
272
+ stateMutability: "view",
273
+ type: "function",
274
+ },
275
+ {
276
+ inputs: [
277
+ {
278
+ internalType: "uint256",
279
+ name: "amountA",
280
+ type: "uint256",
281
+ },
282
+ {
283
+ internalType: "uint256",
284
+ name: "reserveA",
285
+ type: "uint256",
286
+ },
287
+ {
288
+ internalType: "uint256",
289
+ name: "reserveB",
290
+ type: "uint256",
291
+ },
292
+ ],
293
+ name: "quote",
294
+ outputs: [
295
+ {
296
+ internalType: "uint256",
297
+ name: "amountB",
298
+ type: "uint256",
299
+ },
300
+ ],
301
+ stateMutability: "pure",
302
+ type: "function",
303
+ },
304
+ {
305
+ inputs: [
306
+ {
307
+ internalType: "address",
308
+ name: "tokenA",
309
+ type: "address",
310
+ },
311
+ {
312
+ internalType: "address",
313
+ name: "tokenB",
314
+ type: "address",
315
+ },
316
+ {
317
+ internalType: "uint256",
318
+ name: "liquidity",
319
+ type: "uint256",
320
+ },
321
+ {
322
+ internalType: "uint256",
323
+ name: "amountAMin",
324
+ type: "uint256",
325
+ },
326
+ {
327
+ internalType: "uint256",
328
+ name: "amountBMin",
329
+ type: "uint256",
330
+ },
331
+ {
332
+ internalType: "address",
333
+ name: "to",
334
+ type: "address",
335
+ },
336
+ {
337
+ internalType: "uint256",
338
+ name: "deadline",
339
+ type: "uint256",
340
+ },
341
+ ],
342
+ name: "removeLiquidity",
343
+ outputs: [
344
+ {
345
+ internalType: "uint256",
346
+ name: "amountA",
347
+ type: "uint256",
348
+ },
349
+ {
350
+ internalType: "uint256",
351
+ name: "amountB",
352
+ type: "uint256",
353
+ },
354
+ ],
355
+ stateMutability: "nonpayable",
356
+ type: "function",
357
+ },
358
+ {
359
+ inputs: [
360
+ {
361
+ internalType: "address",
362
+ name: "token",
363
+ type: "address",
364
+ },
365
+ {
366
+ internalType: "uint256",
367
+ name: "liquidity",
368
+ type: "uint256",
369
+ },
370
+ {
371
+ internalType: "uint256",
372
+ name: "amountTokenMin",
373
+ type: "uint256",
374
+ },
375
+ {
376
+ internalType: "uint256",
377
+ name: "amountETHMin",
378
+ type: "uint256",
379
+ },
380
+ {
381
+ internalType: "address",
382
+ name: "to",
383
+ type: "address",
384
+ },
385
+ {
386
+ internalType: "uint256",
387
+ name: "deadline",
388
+ type: "uint256",
389
+ },
390
+ ],
391
+ name: "removeLiquidityETH",
392
+ outputs: [
393
+ {
394
+ internalType: "uint256",
395
+ name: "amountToken",
396
+ type: "uint256",
397
+ },
398
+ {
399
+ internalType: "uint256",
400
+ name: "amountETH",
401
+ type: "uint256",
402
+ },
403
+ ],
404
+ stateMutability: "nonpayable",
405
+ type: "function",
406
+ },
407
+ {
408
+ inputs: [
409
+ {
410
+ internalType: "address",
411
+ name: "token",
412
+ type: "address",
413
+ },
414
+ {
415
+ internalType: "uint256",
416
+ name: "liquidity",
417
+ type: "uint256",
418
+ },
419
+ {
420
+ internalType: "uint256",
421
+ name: "amountTokenMin",
422
+ type: "uint256",
423
+ },
424
+ {
425
+ internalType: "uint256",
426
+ name: "amountETHMin",
427
+ type: "uint256",
428
+ },
429
+ {
430
+ internalType: "address",
431
+ name: "to",
432
+ type: "address",
433
+ },
434
+ {
435
+ internalType: "uint256",
436
+ name: "deadline",
437
+ type: "uint256",
438
+ },
439
+ ],
440
+ name: "removeLiquidityETHSupportingFeeOnTransferTokens",
441
+ outputs: [
442
+ {
443
+ internalType: "uint256",
444
+ name: "amountETH",
445
+ type: "uint256",
446
+ },
447
+ ],
448
+ stateMutability: "nonpayable",
449
+ type: "function",
450
+ },
451
+ {
452
+ inputs: [
453
+ {
454
+ internalType: "address",
455
+ name: "token",
456
+ type: "address",
457
+ },
458
+ {
459
+ internalType: "uint256",
460
+ name: "liquidity",
461
+ type: "uint256",
462
+ },
463
+ {
464
+ internalType: "uint256",
465
+ name: "amountTokenMin",
466
+ type: "uint256",
467
+ },
468
+ {
469
+ internalType: "uint256",
470
+ name: "amountETHMin",
471
+ type: "uint256",
472
+ },
473
+ {
474
+ internalType: "address",
475
+ name: "to",
476
+ type: "address",
477
+ },
478
+ {
479
+ internalType: "uint256",
480
+ name: "deadline",
481
+ type: "uint256",
482
+ },
483
+ {
484
+ internalType: "bool",
485
+ name: "approveMax",
486
+ type: "bool",
487
+ },
488
+ {
489
+ internalType: "uint8",
490
+ name: "v",
491
+ type: "uint8",
492
+ },
493
+ {
494
+ internalType: "bytes32",
495
+ name: "r",
496
+ type: "bytes32",
497
+ },
498
+ {
499
+ internalType: "bytes32",
500
+ name: "s",
501
+ type: "bytes32",
502
+ },
503
+ ],
504
+ name: "removeLiquidityETHWithPermit",
505
+ outputs: [
506
+ {
507
+ internalType: "uint256",
508
+ name: "amountToken",
509
+ type: "uint256",
510
+ },
511
+ {
512
+ internalType: "uint256",
513
+ name: "amountETH",
514
+ type: "uint256",
515
+ },
516
+ ],
517
+ stateMutability: "nonpayable",
518
+ type: "function",
519
+ },
520
+ {
521
+ inputs: [
522
+ {
523
+ internalType: "address",
524
+ name: "token",
525
+ type: "address",
526
+ },
527
+ {
528
+ internalType: "uint256",
529
+ name: "liquidity",
530
+ type: "uint256",
531
+ },
532
+ {
533
+ internalType: "uint256",
534
+ name: "amountTokenMin",
535
+ type: "uint256",
536
+ },
537
+ {
538
+ internalType: "uint256",
539
+ name: "amountETHMin",
540
+ type: "uint256",
541
+ },
542
+ {
543
+ internalType: "address",
544
+ name: "to",
545
+ type: "address",
546
+ },
547
+ {
548
+ internalType: "uint256",
549
+ name: "deadline",
550
+ type: "uint256",
551
+ },
552
+ {
553
+ internalType: "bool",
554
+ name: "approveMax",
555
+ type: "bool",
556
+ },
557
+ {
558
+ internalType: "uint8",
559
+ name: "v",
560
+ type: "uint8",
561
+ },
562
+ {
563
+ internalType: "bytes32",
564
+ name: "r",
565
+ type: "bytes32",
566
+ },
567
+ {
568
+ internalType: "bytes32",
569
+ name: "s",
570
+ type: "bytes32",
571
+ },
572
+ ],
573
+ name: "removeLiquidityETHWithPermitSupportingFeeOnTransferTokens",
574
+ outputs: [
575
+ {
576
+ internalType: "uint256",
577
+ name: "amountETH",
578
+ type: "uint256",
579
+ },
580
+ ],
581
+ stateMutability: "nonpayable",
582
+ type: "function",
583
+ },
584
+ {
585
+ inputs: [
586
+ {
587
+ internalType: "address",
588
+ name: "tokenA",
589
+ type: "address",
590
+ },
591
+ {
592
+ internalType: "address",
593
+ name: "tokenB",
594
+ type: "address",
595
+ },
596
+ {
597
+ internalType: "uint256",
598
+ name: "liquidity",
599
+ type: "uint256",
600
+ },
601
+ {
602
+ internalType: "uint256",
603
+ name: "amountAMin",
604
+ type: "uint256",
605
+ },
606
+ {
607
+ internalType: "uint256",
608
+ name: "amountBMin",
609
+ type: "uint256",
610
+ },
611
+ {
612
+ internalType: "address",
613
+ name: "to",
614
+ type: "address",
615
+ },
616
+ {
617
+ internalType: "uint256",
618
+ name: "deadline",
619
+ type: "uint256",
620
+ },
621
+ {
622
+ internalType: "bool",
623
+ name: "approveMax",
624
+ type: "bool",
625
+ },
626
+ {
627
+ internalType: "uint8",
628
+ name: "v",
629
+ type: "uint8",
630
+ },
631
+ {
632
+ internalType: "bytes32",
633
+ name: "r",
634
+ type: "bytes32",
635
+ },
636
+ {
637
+ internalType: "bytes32",
638
+ name: "s",
639
+ type: "bytes32",
640
+ },
641
+ ],
642
+ name: "removeLiquidityWithPermit",
643
+ outputs: [
644
+ {
645
+ internalType: "uint256",
646
+ name: "amountA",
647
+ type: "uint256",
648
+ },
649
+ {
650
+ internalType: "uint256",
651
+ name: "amountB",
652
+ type: "uint256",
653
+ },
654
+ ],
655
+ stateMutability: "nonpayable",
656
+ type: "function",
657
+ },
658
+ {
659
+ inputs: [
660
+ {
661
+ internalType: "uint256",
662
+ name: "amountOut",
663
+ type: "uint256",
664
+ },
665
+ {
666
+ internalType: "address[]",
667
+ name: "path",
668
+ type: "address[]",
669
+ },
670
+ {
671
+ internalType: "address",
672
+ name: "to",
673
+ type: "address",
674
+ },
675
+ {
676
+ internalType: "uint256",
677
+ name: "deadline",
678
+ type: "uint256",
679
+ },
680
+ ],
681
+ name: "swapETHForExactTokens",
682
+ outputs: [
683
+ {
684
+ internalType: "uint256[]",
685
+ name: "amounts",
686
+ type: "uint256[]",
687
+ },
688
+ ],
689
+ stateMutability: "payable",
690
+ type: "function",
691
+ },
692
+ {
693
+ inputs: [
694
+ {
695
+ internalType: "uint256",
696
+ name: "amountOutMin",
697
+ type: "uint256",
698
+ },
699
+ {
700
+ internalType: "address[]",
701
+ name: "path",
702
+ type: "address[]",
703
+ },
704
+ {
705
+ internalType: "address",
706
+ name: "to",
707
+ type: "address",
708
+ },
709
+ {
710
+ internalType: "uint256",
711
+ name: "deadline",
712
+ type: "uint256",
713
+ },
714
+ ],
715
+ name: "swapExactETHForTokens",
716
+ outputs: [
717
+ {
718
+ internalType: "uint256[]",
719
+ name: "amounts",
720
+ type: "uint256[]",
721
+ },
722
+ ],
723
+ stateMutability: "payable",
724
+ type: "function",
725
+ },
726
+ {
727
+ inputs: [
728
+ {
729
+ internalType: "uint256",
730
+ name: "amountOutMin",
731
+ type: "uint256",
732
+ },
733
+ {
734
+ internalType: "address[]",
735
+ name: "path",
736
+ type: "address[]",
737
+ },
738
+ {
739
+ internalType: "address",
740
+ name: "to",
741
+ type: "address",
742
+ },
743
+ {
744
+ internalType: "uint256",
745
+ name: "deadline",
746
+ type: "uint256",
747
+ },
748
+ ],
749
+ name: "swapExactETHForTokensSupportingFeeOnTransferTokens",
750
+ outputs: [],
751
+ stateMutability: "payable",
752
+ type: "function",
753
+ },
754
+ {
755
+ inputs: [
756
+ {
757
+ internalType: "uint256",
758
+ name: "amountIn",
759
+ type: "uint256",
760
+ },
761
+ {
762
+ internalType: "uint256",
763
+ name: "amountOutMin",
764
+ type: "uint256",
765
+ },
766
+ {
767
+ internalType: "address[]",
768
+ name: "path",
769
+ type: "address[]",
770
+ },
771
+ {
772
+ internalType: "address",
773
+ name: "to",
774
+ type: "address",
775
+ },
776
+ {
777
+ internalType: "uint256",
778
+ name: "deadline",
779
+ type: "uint256",
780
+ },
781
+ ],
782
+ name: "swapExactTokensForETH",
783
+ outputs: [
784
+ {
785
+ internalType: "uint256[]",
786
+ name: "amounts",
787
+ type: "uint256[]",
788
+ },
789
+ ],
790
+ stateMutability: "nonpayable",
791
+ type: "function",
792
+ },
793
+ {
794
+ inputs: [
795
+ {
796
+ internalType: "uint256",
797
+ name: "amountIn",
798
+ type: "uint256",
799
+ },
800
+ {
801
+ internalType: "uint256",
802
+ name: "amountOutMin",
803
+ type: "uint256",
804
+ },
805
+ {
806
+ internalType: "address[]",
807
+ name: "path",
808
+ type: "address[]",
809
+ },
810
+ {
811
+ internalType: "address",
812
+ name: "to",
813
+ type: "address",
814
+ },
815
+ {
816
+ internalType: "uint256",
817
+ name: "deadline",
818
+ type: "uint256",
819
+ },
820
+ ],
821
+ name: "swapExactTokensForETHSupportingFeeOnTransferTokens",
822
+ outputs: [],
823
+ stateMutability: "nonpayable",
824
+ type: "function",
825
+ },
826
+ {
827
+ inputs: [
828
+ {
829
+ internalType: "uint256",
830
+ name: "amountIn",
831
+ type: "uint256",
832
+ },
833
+ {
834
+ internalType: "uint256",
835
+ name: "amountOutMin",
836
+ type: "uint256",
837
+ },
838
+ {
839
+ internalType: "address[]",
840
+ name: "path",
841
+ type: "address[]",
842
+ },
843
+ {
844
+ internalType: "address",
845
+ name: "to",
846
+ type: "address",
847
+ },
848
+ {
849
+ internalType: "uint256",
850
+ name: "deadline",
851
+ type: "uint256",
852
+ },
853
+ ],
854
+ name: "swapExactTokensForTokens",
855
+ outputs: [
856
+ {
857
+ internalType: "uint256[]",
858
+ name: "amounts",
859
+ type: "uint256[]",
860
+ },
861
+ ],
862
+ stateMutability: "nonpayable",
863
+ type: "function",
864
+ },
865
+ {
866
+ inputs: [
867
+ {
868
+ internalType: "uint256",
869
+ name: "amountIn",
870
+ type: "uint256",
871
+ },
872
+ {
873
+ internalType: "uint256",
874
+ name: "amountOutMin",
875
+ type: "uint256",
876
+ },
877
+ {
878
+ internalType: "address[]",
879
+ name: "path",
880
+ type: "address[]",
881
+ },
882
+ {
883
+ internalType: "address",
884
+ name: "to",
885
+ type: "address",
886
+ },
887
+ {
888
+ internalType: "uint256",
889
+ name: "deadline",
890
+ type: "uint256",
891
+ },
892
+ ],
893
+ name: "swapExactTokensForTokensSupportingFeeOnTransferTokens",
894
+ outputs: [],
895
+ stateMutability: "nonpayable",
896
+ type: "function",
897
+ },
898
+ {
899
+ inputs: [
900
+ {
901
+ internalType: "uint256",
902
+ name: "amountOut",
903
+ type: "uint256",
904
+ },
905
+ {
906
+ internalType: "uint256",
907
+ name: "amountInMax",
908
+ type: "uint256",
909
+ },
910
+ {
911
+ internalType: "address[]",
912
+ name: "path",
913
+ type: "address[]",
914
+ },
915
+ {
916
+ internalType: "address",
917
+ name: "to",
918
+ type: "address",
919
+ },
920
+ {
921
+ internalType: "uint256",
922
+ name: "deadline",
923
+ type: "uint256",
924
+ },
925
+ ],
926
+ name: "swapTokensForExactETH",
927
+ outputs: [
928
+ {
929
+ internalType: "uint256[]",
930
+ name: "amounts",
931
+ type: "uint256[]",
932
+ },
933
+ ],
934
+ stateMutability: "nonpayable",
935
+ type: "function",
936
+ },
937
+ {
938
+ inputs: [
939
+ {
940
+ internalType: "uint256",
941
+ name: "amountOut",
942
+ type: "uint256",
943
+ },
944
+ {
945
+ internalType: "uint256",
946
+ name: "amountInMax",
947
+ type: "uint256",
948
+ },
949
+ {
950
+ internalType: "address[]",
951
+ name: "path",
952
+ type: "address[]",
953
+ },
954
+ {
955
+ internalType: "address",
956
+ name: "to",
957
+ type: "address",
958
+ },
959
+ {
960
+ internalType: "uint256",
961
+ name: "deadline",
962
+ type: "uint256",
963
+ },
964
+ ],
965
+ name: "swapTokensForExactTokens",
966
+ outputs: [
967
+ {
968
+ internalType: "uint256[]",
969
+ name: "amounts",
970
+ type: "uint256[]",
971
+ },
972
+ ],
973
+ stateMutability: "nonpayable",
974
+ type: "function",
975
+ },
976
+ {
977
+ stateMutability: "payable",
978
+ type: "receive",
979
+ },
980
+ ];
981
+ const _bytecode = "0x60c06040523480156200001157600080fd5b506040516200573e3803806200573e833981810160405260408110156200003757600080fd5b5080516020909101516001600160601b0319606092831b8116608052911b1660a05260805160601c60a05160601c6155b762000187600039806101ac5280610e5d5280610e985280610fd5528061129852806116f252806118d65280611e1e5280611fa252806120725280612179528061232c52806123c15280612673528061271a52806127ef52806128f452806129dc5280612a5d52806130ec5280613422528061347852806134ac528061352d528061374752806138f7528061398c5250806110c752806111c5528061136b52806113a4528061154f52806117e452806118b45280611aa1528061225f528061240052806125a95280612a9c5280612ddf5280613071528061309a52806130ca52806132a75280613456528061382d52806139cb528061444a528061448d52806147ed52806149ce5280614f49528061502a52806150aa52506155b76000f3fe60806040526004361061018f5760003560e01c80638803dbee116100d6578063c45a01551161007f578063e8e3370011610059578063e8e3370014610c71578063f305d71914610cfe578063fb3bdb4114610d51576101d5565b8063c45a015514610b25578063d06ca61f14610b3a578063ded9382a14610bf1576101d5565b8063af2979eb116100b0578063af2979eb146109c8578063b6f9de9514610a28578063baa2abde14610abb576101d5565b80638803dbee146108af578063ad5c464814610954578063ad615dec14610992576101d5565b80634a25d94a11610138578063791ac94711610112578063791ac947146107415780637ff36ab5146107e657806385f8c25914610879576101d5565b80634a25d94a146105775780635b0d59841461061c5780635c11d7951461069c576101d5565b80631f00ca74116101695780631f00ca74146103905780632195995c1461044757806338ed1739146104d2576101d5565b806302751cec146101da578063054d50d41461025357806318cbafe51461029b576101d5565b366101d5573373ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016146101d357fe5b005b600080fd5b3480156101e657600080fd5b5061023a600480360360c08110156101fd57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020810135916040820135916060810135916080820135169060a00135610de4565b6040805192835260208301919091528051918290030190f35b34801561025f57600080fd5b506102896004803603606081101561027657600080fd5b5080359060208101359060400135610f37565b60408051918252519081900360200190f35b3480156102a757600080fd5b50610340600480360360a08110156102be57600080fd5b8135916020810135918101906060810160408201356401000000008111156102e557600080fd5b8201836020820111156102f757600080fd5b8035906020019184602083028401116401000000008311171561031957600080fd5b919350915073ffffffffffffffffffffffffffffffffffffffff8135169060200135610f4c565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561037c578181015183820152602001610364565b505050509050019250505060405180910390f35b34801561039c57600080fd5b50610340600480360360408110156103b357600080fd5b813591908101906040810160208201356401000000008111156103d557600080fd5b8201836020820111156103e757600080fd5b8035906020019184602083028401116401000000008311171561040957600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550611364945050505050565b34801561045357600080fd5b5061023a600480360361016081101561046b57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602081013582169160408201359160608101359160808201359160a08101359091169060c08101359060e081013515159060ff610100820135169061012081013590610140013561139a565b3480156104de57600080fd5b50610340600480360360a08110156104f557600080fd5b81359160208101359181019060608101604082013564010000000081111561051c57600080fd5b82018360208201111561052e57600080fd5b8035906020019184602083028401116401000000008311171561055057600080fd5b919350915073ffffffffffffffffffffffffffffffffffffffff81351690602001356114d8565b34801561058357600080fd5b50610340600480360360a081101561059a57600080fd5b8135916020810135918101906060810160408201356401000000008111156105c157600080fd5b8201836020820111156105d357600080fd5b803590602001918460208302840111640100000000831117156105f557600080fd5b919350915073ffffffffffffffffffffffffffffffffffffffff8135169060200135611669565b34801561062857600080fd5b50610289600480360361014081101561064057600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020810135916040820135916060810135916080820135169060a08101359060c081013515159060ff60e082013516906101008101359061012001356118ac565b3480156106a857600080fd5b506101d3600480360360a08110156106bf57600080fd5b8135916020810135918101906060810160408201356401000000008111156106e657600080fd5b8201836020820111156106f857600080fd5b8035906020019184602083028401116401000000008311171561071a57600080fd5b919350915073ffffffffffffffffffffffffffffffffffffffff81351690602001356119fe565b34801561074d57600080fd5b506101d3600480360360a081101561076457600080fd5b81359160208101359181019060608101604082013564010000000081111561078b57600080fd5b82018360208201111561079d57600080fd5b803590602001918460208302840111640100000000831117156107bf57600080fd5b919350915073ffffffffffffffffffffffffffffffffffffffff8135169060200135611d97565b610340600480360360808110156107fc57600080fd5b8135919081019060408101602082013564010000000081111561081e57600080fd5b82018360208201111561083057600080fd5b8035906020019184602083028401116401000000008311171561085257600080fd5b919350915073ffffffffffffffffffffffffffffffffffffffff8135169060200135612105565b34801561088557600080fd5b506102896004803603606081101561089c57600080fd5b5080359060208101359060400135612525565b3480156108bb57600080fd5b50610340600480360360a08110156108d257600080fd5b8135916020810135918101906060810160408201356401000000008111156108f957600080fd5b82018360208201111561090b57600080fd5b8035906020019184602083028401116401000000008311171561092d57600080fd5b919350915073ffffffffffffffffffffffffffffffffffffffff8135169060200135612532565b34801561096057600080fd5b50610969612671565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b34801561099e57600080fd5b50610289600480360360608110156109b557600080fd5b5080359060208101359060400135612695565b3480156109d457600080fd5b50610289600480360360c08110156109eb57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020810135916040820135916060810135916080820135169060a001356126a2565b6101d360048036036080811015610a3e57600080fd5b81359190810190604081016020820135640100000000811115610a6057600080fd5b820183602082011115610a7257600080fd5b80359060200191846020830284011164010000000083111715610a9457600080fd5b919350915073ffffffffffffffffffffffffffffffffffffffff8135169060200135612882565b348015610ac757600080fd5b5061023a600480360360e0811015610ade57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602081013582169160408201359160608101359160808201359160a08101359091169060c00135612d65565b348015610b3157600080fd5b5061096961306f565b348015610b4657600080fd5b5061034060048036036040811015610b5d57600080fd5b81359190810190604081016020820135640100000000811115610b7f57600080fd5b820183602082011115610b9157600080fd5b80359060200191846020830284011164010000000083111715610bb357600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550613093945050505050565b348015610bfd57600080fd5b5061023a6004803603610140811015610c1557600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020810135916040820135916060810135916080820135169060a08101359060c081013515159060ff60e082013516906101008101359061012001356130c0565b348015610c7d57600080fd5b50610ce06004803603610100811015610c9557600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602081013582169160408201359160608101359160808201359160a08101359160c0820135169060e00135613218565b60408051938452602084019290925282820152519081900360600190f35b610ce0600480360360c0811015610d1457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020810135916040820135916060810135916080820135169060a001356133a7565b61034060048036036080811015610d6757600080fd5b81359190810190604081016020820135640100000000811115610d8957600080fd5b820183602082011115610d9b57600080fd5b80359060200191846020830284011164010000000083111715610dbd57600080fd5b919350915073ffffffffffffffffffffffffffffffffffffffff81351690602001356136d3565b6000808242811015610e5757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b610e86897f00000000000000000000000000000000000000000000000000000000000000008a8a8a308a612d65565b9093509150610e96898685613b22565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16632e1a7d4d836040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015610f0957600080fd5b505af1158015610f1d573d6000803e3d6000fd5b50505050610f2b8583613cff565b50965096945050505050565b6000610f44848484613e3c565b949350505050565b60608142811015610fbe57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001686867fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff810181811061102357fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110c257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f556e69737761705632526f757465723a20494e56414c49445f50415448000000604482015290519081900360640190fd5b6111207f000000000000000000000000000000000000000000000000000000000000000089888880806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250613f6092505050565b9150868260018451038151811061113357fe5b60200260200101511015611192576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180615508602b913960400191505060405180910390fd5b611257868660008181106111a257fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff163361123d7f00000000000000000000000000000000000000000000000000000000000000008a8a60008181106111f157fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff168b8b600181811061121b57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff166140c6565b8560008151811061124a57fe5b60200260200101516141b1565b61129682878780806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250309250614381915050565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16632e1a7d4d836001855103815181106112e257fe5b60200260200101516040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561132057600080fd5b505af1158015611334573d6000803e3d6000fd5b50505050611359848360018551038151811061134c57fe5b6020026020010151613cff565b509695505050505050565b60606113917f00000000000000000000000000000000000000000000000000000000000000008484614608565b90505b92915050565b60008060006113ca7f00000000000000000000000000000000000000000000000000000000000000008f8f6140c6565b90506000876113d9578c6113fb565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5b604080517fd505accf00000000000000000000000000000000000000000000000000000000815233600482015230602482015260448101839052606481018c905260ff8a16608482015260a4810189905260c48101889052905191925073ffffffffffffffffffffffffffffffffffffffff84169163d505accf9160e48082019260009290919082900301818387803b15801561149757600080fd5b505af11580156114ab573d6000803e3d6000fd5b505050506114be8f8f8f8f8f8f8f612d65565b809450819550505050509b509b9950505050505050505050565b6060814281101561154a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b6115a87f000000000000000000000000000000000000000000000000000000000000000089888880806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250613f6092505050565b915086826001845103815181106115bb57fe5b6020026020010151101561161a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180615508602b913960400191505060405180910390fd5b61162a868660008181106111a257fe5b61135982878780806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250899250614381915050565b606081428110156116db57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001686867fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff810181811061174057fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117df57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f556e69737761705632526f757465723a20494e56414c49445f50415448000000604482015290519081900360640190fd5b61183d7f00000000000000000000000000000000000000000000000000000000000000008988888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061460892505050565b9150868260008151811061184d57fe5b60200260200101511115611192576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260278152602001806154986027913960400191505060405180910390fd5b6000806118fa7f00000000000000000000000000000000000000000000000000000000000000008d7f00000000000000000000000000000000000000000000000000000000000000006140c6565b9050600086611909578b61192b565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5b604080517fd505accf00000000000000000000000000000000000000000000000000000000815233600482015230602482015260448101839052606481018b905260ff8916608482015260a4810188905260c48101879052905191925073ffffffffffffffffffffffffffffffffffffffff84169163d505accf9160e48082019260009290919082900301818387803b1580156119c757600080fd5b505af11580156119db573d6000803e3d6000fd5b505050506119ed8d8d8d8d8d8d6126a2565b9d9c50505050505050505050505050565b8042811015611a6e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b611afd85856000818110611a7e57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1633611af77f000000000000000000000000000000000000000000000000000000000000000089896000818110611acd57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff168a8a600181811061121b57fe5b8a6141b1565b600085857fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8101818110611b2d57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231856040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611bc657600080fd5b505afa158015611bda573d6000803e3d6000fd5b505050506040513d6020811015611bf057600080fd5b50516040805160208881028281018201909352888252929350611c32929091899189918291850190849080828437600092019190915250889250614796915050565b86611d368288887fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8101818110611c6557fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231886040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611cfe57600080fd5b505afa158015611d12573d6000803e3d6000fd5b505050506040513d6020811015611d2857600080fd5b50519063ffffffff614b2916565b1015611d8d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180615508602b913960400191505060405180910390fd5b5050505050505050565b8042811015611e0757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001685857fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8101818110611e6c57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f0b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f556e69737761705632526f757465723a20494e56414c49445f50415448000000604482015290519081900360640190fd5b611f1b85856000818110611a7e57fe5b611f59858580806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250309250614796915050565b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905160009173ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016916370a0823191602480820192602092909190829003018186803b158015611fe957600080fd5b505afa158015611ffd573d6000803e3d6000fd5b505050506040513d602081101561201357600080fd5b5051905086811015612070576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180615508602b913960400191505060405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16632e1a7d4d826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b1580156120e357600080fd5b505af11580156120f7573d6000803e3d6000fd5b50505050611d8d8482613cff565b6060814281101561217757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16868660008181106121bb57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461225a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f556e69737761705632526f757465723a20494e56414c49445f50415448000000604482015290519081900360640190fd5b6122b87f000000000000000000000000000000000000000000000000000000000000000034888880806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250613f6092505050565b915086826001845103815181106122cb57fe5b6020026020010151101561232a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180615508602b913960400191505060405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663d0e30db08360008151811061237357fe5b60200260200101516040518263ffffffff1660e01b81526004016000604051808303818588803b1580156123a657600080fd5b505af11580156123ba573d6000803e3d6000fd5b50505050507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb61242c7f000000000000000000000000000000000000000000000000000000000000000089896000818110611acd57fe5b8460008151811061243957fe5b60200260200101516040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156124aa57600080fd5b505af11580156124be573d6000803e3d6000fd5b505050506040513d60208110156124d457600080fd5b50516124dc57fe5b61251b82878780806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250899250614381915050565b5095945050505050565b6000610f44848484614b9b565b606081428110156125a457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b6126027f00000000000000000000000000000000000000000000000000000000000000008988888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061460892505050565b9150868260008151811061261257fe5b6020026020010151111561161a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260278152602001806154986027913960400191505060405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000081565b6000610f44848484614cbf565b6000814281101561271457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b612743887f00000000000000000000000000000000000000000000000000000000000000008989893089612d65565b604080517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015290519194506127ed92508a91879173ffffffffffffffffffffffffffffffffffffffff8416916370a0823191602480820192602092909190829003018186803b1580156127bc57600080fd5b505afa1580156127d0573d6000803e3d6000fd5b505050506040513d60208110156127e657600080fd5b5051613b22565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16632e1a7d4d836040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561286057600080fd5b505af1158015612874573d6000803e3d6000fd5b505050506113598483613cff565b80428110156128f257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168585600081811061293657fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146129d557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f556e69737761705632526f757465723a20494e56414c49445f50415448000000604482015290519081900360640190fd5b60003490507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663d0e30db0826040518263ffffffff1660e01b81526004016000604051808303818588803b158015612a4257600080fd5b505af1158015612a56573d6000803e3d6000fd5b50505050507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb612ac87f000000000000000000000000000000000000000000000000000000000000000089896000818110611acd57fe5b836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015612b3257600080fd5b505af1158015612b46573d6000803e3d6000fd5b505050506040513d6020811015612b5c57600080fd5b5051612b6457fe5b600086867fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8101818110612b9457fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231866040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015612c2d57600080fd5b505afa158015612c41573d6000803e3d6000fd5b505050506040513d6020811015612c5757600080fd5b50516040805160208981028281018201909352898252929350612c999290918a918a918291850190849080828437600092019190915250899250614796915050565b87611d368289897fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8101818110612ccc57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231896040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611cfe57600080fd5b6000808242811015612dd857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b6000612e057f00000000000000000000000000000000000000000000000000000000000000008c8c6140c6565b604080517f23b872dd00000000000000000000000000000000000000000000000000000000815233600482015273ffffffffffffffffffffffffffffffffffffffff831660248201819052604482018d9052915192935090916323b872dd916064808201926020929091908290030181600087803b158015612e8657600080fd5b505af1158015612e9a573d6000803e3d6000fd5b505050506040513d6020811015612eb057600080fd5b5050604080517f89afcb4400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff888116600483015282516000938493928616926389afcb44926024808301939282900301818787803b158015612f2357600080fd5b505af1158015612f37573d6000803e3d6000fd5b505050506040513d6040811015612f4d57600080fd5b50805160209091015190925090506000612f678e8e614d9f565b5090508073ffffffffffffffffffffffffffffffffffffffff168e73ffffffffffffffffffffffffffffffffffffffff1614612fa4578183612fa7565b82825b90975095508a871015613005576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806154bf6026913960400191505060405180910390fd5b8986101561305e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806154256026913960400191505060405180910390fd5b505050505097509795505050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60606113917f00000000000000000000000000000000000000000000000000000000000000008484613f60565b60008060006131107f00000000000000000000000000000000000000000000000000000000000000008e7f00000000000000000000000000000000000000000000000000000000000000006140c6565b905060008761311f578c613141565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5b604080517fd505accf00000000000000000000000000000000000000000000000000000000815233600482015230602482015260448101839052606481018c905260ff8a16608482015260a4810189905260c48101889052905191925073ffffffffffffffffffffffffffffffffffffffff84169163d505accf9160e48082019260009290919082900301818387803b1580156131dd57600080fd5b505af11580156131f1573d6000803e3d6000fd5b505050506132038e8e8e8e8e8e610de4565b909f909e509c50505050505050505050505050565b6000806000834281101561328d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b61329b8c8c8c8c8c8c614ef2565b909450925060006132cd7f00000000000000000000000000000000000000000000000000000000000000008e8e6140c6565b90506132db8d3383886141b1565b6132e78c3383876141b1565b8073ffffffffffffffffffffffffffffffffffffffff16636a627842886040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561336657600080fd5b505af115801561337a573d6000803e3d6000fd5b505050506040513d602081101561339057600080fd5b5051949d939c50939a509198505050505050505050565b6000806000834281101561341c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b61344a8a7f00000000000000000000000000000000000000000000000000000000000000008b348c8c614ef2565b9094509250600061349c7f00000000000000000000000000000000000000000000000000000000000000008c7f00000000000000000000000000000000000000000000000000000000000000006140c6565b90506134aa8b3383886141b1565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663d0e30db0856040518263ffffffff1660e01b81526004016000604051808303818588803b15801561351257600080fd5b505af1158015613526573d6000803e3d6000fd5b50505050507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb82866040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156135d257600080fd5b505af11580156135e6573d6000803e3d6000fd5b505050506040513d60208110156135fc57600080fd5b505161360457fe5b8073ffffffffffffffffffffffffffffffffffffffff16636a627842886040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561368357600080fd5b505af1158015613697573d6000803e3d6000fd5b505050506040513d60208110156136ad57600080fd5b50519250348410156136c5576136c533853403613cff565b505096509650969350505050565b6060814281101561374557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168686600081811061378957fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461382857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f556e69737761705632526f757465723a20494e56414c49445f50415448000000604482015290519081900360640190fd5b6138867f00000000000000000000000000000000000000000000000000000000000000008888888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061460892505050565b9150348260008151811061389657fe5b602002602001015111156138f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260278152602001806154986027913960400191505060405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663d0e30db08360008151811061393e57fe5b60200260200101516040518263ffffffff1660e01b81526004016000604051808303818588803b15801561397157600080fd5b505af1158015613985573d6000803e3d6000fd5b50505050507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6139f77f000000000000000000000000000000000000000000000000000000000000000089896000818110611acd57fe5b84600081518110613a0457fe5b60200260200101516040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015613a7557600080fd5b505af1158015613a89573d6000803e3d6000fd5b505050506040513d6020811015613a9f57600080fd5b5051613aa757fe5b613ae682878780806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250899250614381915050565b81600081518110613af357fe5b602002602001015134111561251b5761251b3383600081518110613b1357fe5b60200260200101513403613cff565b6040805173ffffffffffffffffffffffffffffffffffffffff8481166024830152604480830185905283518084039091018152606490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb00000000000000000000000000000000000000000000000000000000178152925182516000946060949389169392918291908083835b60208310613bf857805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101613bbb565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114613c5a576040519150601f19603f3d011682016040523d82523d6000602084013e613c5f565b606091505b5091509150818015613c8d575080511580613c8d5750808060200190516020811015613c8a57600080fd5b50515b613cf857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5472616e7366657248656c7065723a205452414e534645525f4641494c454400604482015290519081900360640190fd5b5050505050565b6040805160008082526020820190925273ffffffffffffffffffffffffffffffffffffffff84169083906040518082805190602001908083835b60208310613d7657805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101613d39565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d8060008114613dd8576040519150601f19603f3d011682016040523d82523d6000602084013e613ddd565b606091505b5050905080613e37576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001806154e56023913960400191505060405180910390fd5b505050565b6000808411613e96576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180615557602b913960400191505060405180910390fd5b600083118015613ea65750600082115b613efb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602881526020018061544b6028913960400191505060405180910390fd5b6000613f0f856103e563ffffffff6151f316565b90506000613f23828563ffffffff6151f316565b90506000613f4983613f3d886103e863ffffffff6151f316565b9063ffffffff61527916565b9050808281613f5457fe5b04979650505050505050565b6060600282511015613fd357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f556e697377617056324c6962726172793a20494e56414c49445f504154480000604482015290519081900360640190fd5b815167ffffffffffffffff81118015613feb57600080fd5b50604051908082528060200260200182016040528015614015578160200160208202803683370190505b509050828160008151811061402657fe5b60200260200101818152505060005b60018351038110156140be576000806140788786858151811061405457fe5b602002602001015187866001018151811061406b57fe5b60200260200101516152eb565b9150915061409a84848151811061408b57fe5b60200260200101518383613e3c565b8484600101815181106140a957fe5b60209081029190910101525050600101614035565b509392505050565b60008060006140d58585614d9f565b604080517fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606094851b811660208084019190915293851b81166034830152825160288184030181526048830184528051908501207fff0000000000000000000000000000000000000000000000000000000000000060688401529a90941b9093166069840152607d8301989098527f96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f609d808401919091528851808403909101815260bd909201909752805196019590952095945050505050565b6040805173ffffffffffffffffffffffffffffffffffffffff85811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd0000000000000000000000000000000000000000000000000000000017815292518251600094606094938a169392918291908083835b6020831061428f57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101614252565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d80600081146142f1576040519150601f19603f3d011682016040523d82523d6000602084013e6142f6565b606091505b5091509150818015614324575080511580614324575080806020019051602081101561432157600080fd5b50515b614379576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806155336024913960400191505060405180910390fd5b505050505050565b60005b60018351038110156146025760008084838151811061439f57fe5b60200260200101518584600101815181106143b657fe5b60200260200101519150915060006143ce8383614d9f565b50905060008785600101815181106143e257fe5b602002602001015190506000808373ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161461442a5782600061442e565b6000835b91509150600060028a510388106144455788614486565b6144867f0000000000000000000000000000000000000000000000000000000000000000878c8b6002018151811061447957fe5b60200260200101516140c6565b90506144b37f000000000000000000000000000000000000000000000000000000000000000088886140c6565b73ffffffffffffffffffffffffffffffffffffffff1663022c0d9f84848460006040519080825280601f01601f1916602001820160405280156144fd576020820181803683370190505b506040518563ffffffff1660e01b8152600401808581526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b83811015614588578181015183820152602001614570565b50505050905090810190601f1680156145b55780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b1580156145d757600080fd5b505af11580156145eb573d6000803e3d6000fd5b505060019099019850614384975050505050505050565b50505050565b606060028251101561467b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f556e697377617056324c6962726172793a20494e56414c49445f504154480000604482015290519081900360640190fd5b815167ffffffffffffffff8111801561469357600080fd5b506040519080825280602002602001820160405280156146bd578160200160208202803683370190505b50905082816001835103815181106146d157fe5b602090810291909101015281517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff015b80156140be576000806147318786600186038151811061471d57fe5b602002602001015187868151811061406b57fe5b9150915061475384848151811061474457fe5b60200260200101518383614b9b565b84600185038151811061476257fe5b602090810291909101015250507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01614701565b60005b6001835103811015613e37576000808483815181106147b457fe5b60200260200101518584600101815181106147cb57fe5b60200260200101519150915060006147e38383614d9f565b50905060006148137f000000000000000000000000000000000000000000000000000000000000000085856140c6565b90506000806000808473ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b15801561486157600080fd5b505afa158015614875573d6000803e3d6000fd5b505050506040513d606081101561488b57600080fd5b5080516020909101516dffffffffffffffffffffffffffff918216935016905060008073ffffffffffffffffffffffffffffffffffffffff8a8116908916146148d55782846148d8565b83835b9150915061495d828b73ffffffffffffffffffffffffffffffffffffffff166370a082318a6040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611cfe57600080fd5b955061496a868383613e3c565b9450505050506000808573ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff16146149ae578260006149b2565b6000835b91509150600060028c51038a106149c9578a6149fd565b6149fd7f0000000000000000000000000000000000000000000000000000000000000000898e8d6002018151811061447957fe5b60408051600080825260208201928390527f022c0d9f000000000000000000000000000000000000000000000000000000008352602482018781526044830187905273ffffffffffffffffffffffffffffffffffffffff8086166064850152608060848501908152845160a48601819052969750908c169563022c0d9f958a958a958a9591949193919260c486019290918190849084905b83811015614aad578181015183820152602001614a95565b50505050905090810190601f168015614ada5780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b158015614afc57600080fd5b505af1158015614b10573d6000803e3d6000fd5b50506001909b019a506147999950505050505050505050565b8082038281111561139457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f64732d6d6174682d7375622d756e646572666c6f770000000000000000000000604482015290519081900360640190fd5b6000808411614bf5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001806153d4602c913960400191505060405180910390fd5b600083118015614c055750600082115b614c5a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602881526020018061544b6028913960400191505060405180910390fd5b6000614c7e6103e8614c72868863ffffffff6151f316565b9063ffffffff6151f316565b90506000614c986103e5614c72868963ffffffff614b2916565b9050614cb56001828481614ca857fe5b049063ffffffff61527916565b9695505050505050565b6000808411614d19576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806154736025913960400191505060405180910390fd5b600083118015614d295750600082115b614d7e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602881526020018061544b6028913960400191505060405180910390fd5b82614d8f858463ffffffff6151f316565b81614d9657fe5b04949350505050565b6000808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415614e27576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806154006025913960400191505060405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1610614e61578284614e64565b83835b909250905073ffffffffffffffffffffffffffffffffffffffff8216614eeb57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f556e697377617056324c6962726172793a205a45524f5f414444524553530000604482015290519081900360640190fd5b9250929050565b604080517fe6a4390500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff888116600483015287811660248301529151600092839283927f00000000000000000000000000000000000000000000000000000000000000009092169163e6a4390591604480820192602092909190829003018186803b158015614f9257600080fd5b505afa158015614fa6573d6000803e3d6000fd5b505050506040513d6020811015614fbc57600080fd5b505173ffffffffffffffffffffffffffffffffffffffff1614156150a257604080517fc9c6539600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8a81166004830152898116602483015291517f00000000000000000000000000000000000000000000000000000000000000009092169163c9c65396916044808201926020929091908290030181600087803b15801561507557600080fd5b505af1158015615089573d6000803e3d6000fd5b505050506040513d602081101561509f57600080fd5b50505b6000806150d07f00000000000000000000000000000000000000000000000000000000000000008b8b6152eb565b915091508160001480156150e2575080155b156150f2578793508692506151e6565b60006150ff898484614cbf565b905087811161516c5785811015615161576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806154256026913960400191505060405180910390fd5b8894509250826151e4565b6000615179898486614cbf565b90508981111561518557fe5b878110156151de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806154bf6026913960400191505060405180910390fd5b94508793505b505b5050965096945050505050565b600081158061520e5750508082028282828161520b57fe5b04145b61139457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6d756c2d6f766572666c6f77000000000000000000000000604482015290519081900360640190fd5b8082018281101561139457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6164642d6f766572666c6f77000000000000000000000000604482015290519081900360640190fd5b60008060006152fa8585614d9f565b50905060008061530b8888886140c6565b73ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b15801561535057600080fd5b505afa158015615364573d6000803e3d6000fd5b505050506040513d606081101561537a57600080fd5b5080516020909101516dffffffffffffffffffffffffffff918216935016905073ffffffffffffffffffffffffffffffffffffffff878116908416146153c15780826153c4565b81815b9099909850965050505050505056fe556e697377617056324c6962726172793a20494e53554646494349454e545f4f55545055545f414d4f554e54556e697377617056324c6962726172793a204944454e544943414c5f414444524553534553556e69737761705632526f757465723a20494e53554646494349454e545f425f414d4f554e54556e697377617056324c6962726172793a20494e53554646494349454e545f4c4951554944495459556e697377617056324c6962726172793a20494e53554646494349454e545f414d4f554e54556e69737761705632526f757465723a204558434553534956455f494e5055545f414d4f554e54556e69737761705632526f757465723a20494e53554646494349454e545f415f414d4f554e545472616e7366657248656c7065723a204554485f5452414e534645525f4641494c4544556e69737761705632526f757465723a20494e53554646494349454e545f4f55545055545f414d4f554e545472616e7366657248656c7065723a205452414e534645525f46524f4d5f4641494c4544556e697377617056324c6962726172793a20494e53554646494349454e545f494e5055545f414d4f554e54a26469706673582212206dd6e03c4b2c0a8e55214926227ae9e2d6f9fec2ce74a6446d615afa355c84f364736f6c63430006060033";
982
+ class UniswapV2Router02__factory extends ethers_1.ContractFactory {
983
+ constructor(...args) {
984
+ if (args.length === 1) {
985
+ super(_abi, _bytecode, args[0]);
986
+ }
987
+ else {
988
+ super(...args);
989
+ }
990
+ }
991
+ deploy(_factory, _WETH, overrides) {
992
+ return super.deploy(_factory, _WETH, overrides || {});
993
+ }
994
+ getDeployTransaction(_factory, _WETH, overrides) {
995
+ return super.getDeployTransaction(_factory, _WETH, overrides || {});
996
+ }
997
+ attach(address) {
998
+ return super.attach(address);
999
+ }
1000
+ connect(signer) {
1001
+ return super.connect(signer);
1002
+ }
1003
+ static createInterface() {
1004
+ return new ethers_1.utils.Interface(_abi);
1005
+ }
1006
+ static connect(address, signerOrProvider) {
1007
+ return new ethers_1.Contract(address, _abi, signerOrProvider);
1008
+ }
1009
+ }
1010
+ exports.UniswapV2Router02__factory = UniswapV2Router02__factory;
1011
+ UniswapV2Router02__factory.bytecode = _bytecode;
1012
+ UniswapV2Router02__factory.abi = _abi;
1013
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVW5pc3dhcFYyUm91dGVyMDJfX2ZhY3RvcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvdHlwZXMvdjIvZmFjdG9yaWVzL1VuaXN3YXBWMlJvdXRlcjAyX19mYWN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSwrQ0FBK0M7QUFDL0Msb0JBQW9CO0FBQ3BCLG9CQUFvQjs7O0FBRXBCLG1DQUE2RTtBQU83RSxNQUFNLElBQUksR0FBRztJQUNYO1FBQ0UsTUFBTSxFQUFFO1lBQ047Z0JBQ0UsWUFBWSxFQUFFLFNBQVM7Z0JBQ3ZCLElBQUksRUFBRSxVQUFVO2dCQUNoQixJQUFJLEVBQUUsU0FBUzthQUNoQjtZQUNEO2dCQUNFLFlBQVksRUFBRSxTQUFTO2dCQUN2QixJQUFJLEVBQUUsT0FBTztnQkFDYixJQUFJLEVBQUUsU0FBUzthQUNoQjtTQUNGO1FBQ0QsZUFBZSxFQUFFLFlBQVk7UUFDN0IsSUFBSSxFQUFFLGFBQWE7S0FDcEI7SUFDRDtRQUNFLE1BQU0sRUFBRSxFQUFFO1FBQ1YsSUFBSSxFQUFFLE1BQU07UUFDWixPQUFPLEVBQUU7WUFDUDtnQkFDRSxZQUFZLEVBQUUsU0FBUztnQkFDdkIsSUFBSSxFQUFFLEVBQUU7Z0JBQ1IsSUFBSSxFQUFFLFNBQVM7YUFDaEI7U0FDRjtRQUNELGVBQWUsRUFBRSxNQUFNO1FBQ3ZCLElBQUksRUFBRSxVQUFVO0tBQ2pCO0lBQ0Q7UUFDRSxNQUFNLEVBQUU7WUFDTjtnQkFDRSxZQUFZLEVBQUUsU0FBUztnQkFDdkIsSUFBSSxFQUFFLFFBQVE7Z0JBQ2QsSUFBSSxFQUFFLFNBQVM7YUFDaEI7WUFDRDtnQkFDRSxZQUFZLEVBQUUsU0FBUztnQkFDdkIsSUFBSSxFQUFFLFFBQVE7Z0JBQ2QsSUFBSSxFQUFFLFNBQVM7YUFDaEI7WUFDRDtnQkFDRSxZQUFZLEVBQUUsU0FBUztnQkFDdkIsSUFBSSxFQUFFLGdCQUFnQjtnQkFDdEIsSUFBSSxFQUFFLFNBQVM7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