@kumbaya_xyz/smart-order-router 4.22.38

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 (522) hide show
  1. package/CHANGELOG.md +255 -0
  2. package/LICENSE +674 -0
  3. package/README.md +315 -0
  4. package/build/main/index.d.ts +3 -0
  5. package/build/main/index.js +20 -0
  6. package/build/main/providers/cache-node.d.ts +10 -0
  7. package/build/main/providers/cache-node.js +33 -0
  8. package/build/main/providers/cache.d.ts +14 -0
  9. package/build/main/providers/cache.js +3 -0
  10. package/build/main/providers/caching/route/index.d.ts +2 -0
  11. package/build/main/providers/caching/route/index.js +19 -0
  12. package/build/main/providers/caching/route/model/cache-mode.d.ts +16 -0
  13. package/build/main/providers/caching/route/model/cache-mode.js +21 -0
  14. package/build/main/providers/caching/route/model/cached-route.d.ts +29 -0
  15. package/build/main/providers/caching/route/model/cached-route.js +77 -0
  16. package/build/main/providers/caching/route/model/cached-routes.d.ts +67 -0
  17. package/build/main/providers/caching/route/model/cached-routes.js +81 -0
  18. package/build/main/providers/caching/route/model/index.d.ts +3 -0
  19. package/build/main/providers/caching/route/model/index.js +20 -0
  20. package/build/main/providers/caching/route/route-caching-provider.d.ts +111 -0
  21. package/build/main/providers/caching/route/route-caching-provider.js +86 -0
  22. package/build/main/providers/caching-gas-provider.d.ts +23 -0
  23. package/build/main/providers/caching-gas-provider.js +41 -0
  24. package/build/main/providers/caching-subgraph-provider.d.ts +33 -0
  25. package/build/main/providers/caching-subgraph-provider.js +170 -0
  26. package/build/main/providers/caching-token-list-provider.d.ts +52 -0
  27. package/build/main/providers/caching-token-list-provider.js +147 -0
  28. package/build/main/providers/caching-token-provider.d.ts +24 -0
  29. package/build/main/providers/caching-token-provider.js +242 -0
  30. package/build/main/providers/eip-1559-gas-price-provider.d.ts +31 -0
  31. package/build/main/providers/eip-1559-gas-price-provider.js +71 -0
  32. package/build/main/providers/eth-estimate-gas-provider.d.ts +21 -0
  33. package/build/main/providers/eth-estimate-gas-provider.js +91 -0
  34. package/build/main/providers/eth-gas-station-info-gas-price-provider.d.ts +19 -0
  35. package/build/main/providers/eth-gas-station-info-gas-price-provider.js +36 -0
  36. package/build/main/providers/gas-price-provider.d.ts +10 -0
  37. package/build/main/providers/gas-price-provider.js +10 -0
  38. package/build/main/providers/index.d.ts +47 -0
  39. package/build/main/providers/index.js +64 -0
  40. package/build/main/providers/legacy-gas-price-provider.d.ts +7 -0
  41. package/build/main/providers/legacy-gas-price-provider.js +18 -0
  42. package/build/main/providers/multicall-provider.d.ts +83 -0
  43. package/build/main/providers/multicall-provider.js +15 -0
  44. package/build/main/providers/multicall-uniswap-provider.d.ts +37 -0
  45. package/build/main/providers/multicall-uniswap-provider.js +164 -0
  46. package/build/main/providers/on-chain-gas-price-provider.d.ts +19 -0
  47. package/build/main/providers/on-chain-gas-price-provider.js +37 -0
  48. package/build/main/providers/on-chain-quote-provider.d.ts +258 -0
  49. package/build/main/providers/on-chain-quote-provider.js +713 -0
  50. package/build/main/providers/pool-provider.d.ts +45 -0
  51. package/build/main/providers/pool-provider.js +73 -0
  52. package/build/main/providers/portion-provider.d.ts +86 -0
  53. package/build/main/providers/portion-provider.js +118 -0
  54. package/build/main/providers/provider.d.ts +38 -0
  55. package/build/main/providers/provider.js +3 -0
  56. package/build/main/providers/simulation-provider.d.ts +46 -0
  57. package/build/main/providers/simulation-provider.js +138 -0
  58. package/build/main/providers/static-gas-price-provider.d.ts +7 -0
  59. package/build/main/providers/static-gas-price-provider.js +13 -0
  60. package/build/main/providers/subgraph-provider-with-fallback.d.ts +11 -0
  61. package/build/main/providers/subgraph-provider-with-fallback.js +25 -0
  62. package/build/main/providers/subgraph-provider.d.ts +56 -0
  63. package/build/main/providers/subgraph-provider.js +287 -0
  64. package/build/main/providers/swap-router-provider.d.ts +30 -0
  65. package/build/main/providers/swap-router-provider.js +42 -0
  66. package/build/main/providers/tenderly-simulation-provider.d.ts +69 -0
  67. package/build/main/providers/tenderly-simulation-provider.js +458 -0
  68. package/build/main/providers/token-fee-fetcher.d.ts +31 -0
  69. package/build/main/providers/token-fee-fetcher.js +165 -0
  70. package/build/main/providers/token-properties-provider.d.ts +31 -0
  71. package/build/main/providers/token-properties-provider.js +118 -0
  72. package/build/main/providers/token-provider.d.ts +141 -0
  73. package/build/main/providers/token-provider.js +394 -0
  74. package/build/main/providers/token-validator-provider.d.ts +42 -0
  75. package/build/main/providers/token-validator-provider.js +99 -0
  76. package/build/main/providers/uri-subgraph-provider.d.ts +20 -0
  77. package/build/main/providers/uri-subgraph-provider.js +65 -0
  78. package/build/main/providers/v2/caching-pool-provider.d.ts +33 -0
  79. package/build/main/providers/v2/caching-pool-provider.js +89 -0
  80. package/build/main/providers/v2/caching-subgraph-provider.d.ts +19 -0
  81. package/build/main/providers/v2/caching-subgraph-provider.js +24 -0
  82. package/build/main/providers/v2/pool-provider.d.ts +63 -0
  83. package/build/main/providers/v2/pool-provider.js +148 -0
  84. package/build/main/providers/v2/quote-provider.d.ts +34 -0
  85. package/build/main/providers/v2/quote-provider.js +90 -0
  86. package/build/main/providers/v2/static-subgraph-provider.d.ts +19 -0
  87. package/build/main/providers/v2/static-subgraph-provider.js +171 -0
  88. package/build/main/providers/v2/subgraph-provider-with-fallback.d.ts +16 -0
  89. package/build/main/providers/v2/subgraph-provider-with-fallback.js +23 -0
  90. package/build/main/providers/v2/subgraph-provider.d.ts +53 -0
  91. package/build/main/providers/v2/subgraph-provider.js +344 -0
  92. package/build/main/providers/v2/uri-subgraph-provider.d.ts +4 -0
  93. package/build/main/providers/v2/uri-subgraph-provider.js +8 -0
  94. package/build/main/providers/v3/caching-pool-provider.d.ts +32 -0
  95. package/build/main/providers/v3/caching-pool-provider.js +84 -0
  96. package/build/main/providers/v3/caching-subgraph-provider.d.ts +19 -0
  97. package/build/main/providers/v3/caching-subgraph-provider.js +24 -0
  98. package/build/main/providers/v3/gas-data-provider.d.ts +39 -0
  99. package/build/main/providers/v3/gas-data-provider.js +26 -0
  100. package/build/main/providers/v3/pool-provider.d.ts +77 -0
  101. package/build/main/providers/v3/pool-provider.js +108 -0
  102. package/build/main/providers/v3/static-subgraph-provider.d.ts +21 -0
  103. package/build/main/providers/v3/static-subgraph-provider.js +217 -0
  104. package/build/main/providers/v3/subgraph-provider-with-fallback.d.ts +12 -0
  105. package/build/main/providers/v3/subgraph-provider-with-fallback.js +19 -0
  106. package/build/main/providers/v3/subgraph-provider.d.ts +45 -0
  107. package/build/main/providers/v3/subgraph-provider.js +46 -0
  108. package/build/main/providers/v3/uri-subgraph-provider.d.ts +4 -0
  109. package/build/main/providers/v3/uri-subgraph-provider.js +8 -0
  110. package/build/main/providers/v4/caching-pool-provider.d.ts +24 -0
  111. package/build/main/providers/v4/caching-pool-provider.js +81 -0
  112. package/build/main/providers/v4/caching-subgraph-provider.d.ts +19 -0
  113. package/build/main/providers/v4/caching-subgraph-provider.js +24 -0
  114. package/build/main/providers/v4/euler-swap-hooks-subgraph-provider.d.ts +25 -0
  115. package/build/main/providers/v4/euler-swap-hooks-subgraph-provider.js +160 -0
  116. package/build/main/providers/v4/pool-provider.d.ts +58 -0
  117. package/build/main/providers/v4/pool-provider.js +115 -0
  118. package/build/main/providers/v4/static-subgraph-provider.d.ts +15 -0
  119. package/build/main/providers/v4/static-subgraph-provider.js +78 -0
  120. package/build/main/providers/v4/subgraph-provider-with-fallback.d.ts +5 -0
  121. package/build/main/providers/v4/subgraph-provider-with-fallback.js +12 -0
  122. package/build/main/providers/v4/subgraph-provider.d.ts +63 -0
  123. package/build/main/providers/v4/subgraph-provider.js +63 -0
  124. package/build/main/providers/v4/uri-subgraph-provider.d.ts +4 -0
  125. package/build/main/providers/v4/uri-subgraph-provider.js +8 -0
  126. package/build/main/routers/alpha-router/alpha-router.d.ts +483 -0
  127. package/build/main/routers/alpha-router/alpha-router.js +1678 -0
  128. package/build/main/routers/alpha-router/config.d.ts +4 -0
  129. package/build/main/routers/alpha-router/config.js +131 -0
  130. package/build/main/routers/alpha-router/entities/index.d.ts +1 -0
  131. package/build/main/routers/alpha-router/entities/index.js +18 -0
  132. package/build/main/routers/alpha-router/entities/route-with-valid-quote.d.ts +208 -0
  133. package/build/main/routers/alpha-router/entities/route-with-valid-quote.js +194 -0
  134. package/build/main/routers/alpha-router/functions/best-swap-route.d.ts +24 -0
  135. package/build/main/routers/alpha-router/functions/best-swap-route.js +538 -0
  136. package/build/main/routers/alpha-router/functions/calculate-ratio-amount-in.d.ts +3 -0
  137. package/build/main/routers/alpha-router/functions/calculate-ratio-amount-in.js +18 -0
  138. package/build/main/routers/alpha-router/functions/compute-all-routes.d.ts +12 -0
  139. package/build/main/routers/alpha-router/functions/compute-all-routes.js +133 -0
  140. package/build/main/routers/alpha-router/functions/get-candidate-pools.d.ts +126 -0
  141. package/build/main/routers/alpha-router/functions/get-candidate-pools.js +1527 -0
  142. package/build/main/routers/alpha-router/gas-models/gas-costs.d.ts +12 -0
  143. package/build/main/routers/alpha-router/gas-models/gas-costs.js +200 -0
  144. package/build/main/routers/alpha-router/gas-models/gas-model.d.ts +107 -0
  145. package/build/main/routers/alpha-router/gas-models/gas-model.js +117 -0
  146. package/build/main/routers/alpha-router/gas-models/index.d.ts +2 -0
  147. package/build/main/routers/alpha-router/gas-models/index.js +19 -0
  148. package/build/main/routers/alpha-router/gas-models/mixedRoute/mixed-route-heuristic-gas-model.d.ts +24 -0
  149. package/build/main/routers/alpha-router/gas-models/mixedRoute/mixed-route-heuristic-gas-model.js +161 -0
  150. package/build/main/routers/alpha-router/gas-models/tick-based-heuristic-gas-model.d.ts +15 -0
  151. package/build/main/routers/alpha-router/gas-models/tick-based-heuristic-gas-model.js +191 -0
  152. package/build/main/routers/alpha-router/gas-models/v2/v2-heuristic-gas-model.d.ts +31 -0
  153. package/build/main/routers/alpha-router/gas-models/v2/v2-heuristic-gas-model.js +169 -0
  154. package/build/main/routers/alpha-router/gas-models/v3/v3-heuristic-gas-model.d.ts +26 -0
  155. package/build/main/routers/alpha-router/gas-models/v3/v3-heuristic-gas-model.js +41 -0
  156. package/build/main/routers/alpha-router/gas-models/v4/v4-heuristic-gas-model.d.ts +15 -0
  157. package/build/main/routers/alpha-router/gas-models/v4/v4-heuristic-gas-model.js +40 -0
  158. package/build/main/routers/alpha-router/index.d.ts +4 -0
  159. package/build/main/routers/alpha-router/index.js +21 -0
  160. package/build/main/routers/alpha-router/quoters/base-quoter.d.ts +77 -0
  161. package/build/main/routers/alpha-router/quoters/base-quoter.js +76 -0
  162. package/build/main/routers/alpha-router/quoters/index.d.ts +5 -0
  163. package/build/main/routers/alpha-router/quoters/index.js +22 -0
  164. package/build/main/routers/alpha-router/quoters/mixed-quoter.d.ts +32 -0
  165. package/build/main/routers/alpha-router/quoters/mixed-quoter.js +154 -0
  166. package/build/main/routers/alpha-router/quoters/model/index.d.ts +1 -0
  167. package/build/main/routers/alpha-router/quoters/model/index.js +18 -0
  168. package/build/main/routers/alpha-router/quoters/model/results/get-quotes-result.d.ts +6 -0
  169. package/build/main/routers/alpha-router/quoters/model/results/get-quotes-result.js +3 -0
  170. package/build/main/routers/alpha-router/quoters/model/results/get-routes-result.d.ts +6 -0
  171. package/build/main/routers/alpha-router/quoters/model/results/get-routes-result.js +3 -0
  172. package/build/main/routers/alpha-router/quoters/model/results/index.d.ts +2 -0
  173. package/build/main/routers/alpha-router/quoters/model/results/index.js +19 -0
  174. package/build/main/routers/alpha-router/quoters/v2-quoter.d.ts +24 -0
  175. package/build/main/routers/alpha-router/quoters/v2-quoter.js +141 -0
  176. package/build/main/routers/alpha-router/quoters/v3-quoter.d.ts +19 -0
  177. package/build/main/routers/alpha-router/quoters/v3-quoter.js +125 -0
  178. package/build/main/routers/alpha-router/quoters/v4-quoter.d.ts +18 -0
  179. package/build/main/routers/alpha-router/quoters/v4-quoter.js +122 -0
  180. package/build/main/routers/index.d.ts +4 -0
  181. package/build/main/routers/index.js +21 -0
  182. package/build/main/routers/legacy-router/bases.d.ts +213 -0
  183. package/build/main/routers/legacy-router/bases.js +124 -0
  184. package/build/main/routers/legacy-router/index.d.ts +1 -0
  185. package/build/main/routers/legacy-router/index.js +18 -0
  186. package/build/main/routers/legacy-router/legacy-router.d.ts +41 -0
  187. package/build/main/routers/legacy-router/legacy-router.js +291 -0
  188. package/build/main/routers/router.d.ts +195 -0
  189. package/build/main/routers/router.js +92 -0
  190. package/build/main/tsconfig.tsbuildinfo +1 -0
  191. package/build/main/types/other/factories/Erc20__factory.d.ts +45 -0
  192. package/build/main/types/other/factories/Erc20__factory.js +240 -0
  193. package/build/main/types/other/factories/GasDataArbitrum__factory.d.ts +18 -0
  194. package/build/main/types/other/factories/GasDataArbitrum__factory.js +58 -0
  195. package/build/main/types/other/factories/IMixedRouteQuoterV1__factory.d.ts +41 -0
  196. package/build/main/types/other/factories/IMixedRouteQuoterV1__factory.js +156 -0
  197. package/build/main/types/other/factories/ITokenValidator__factory.d.ts +22 -0
  198. package/build/main/types/other/factories/ITokenValidator__factory.js +78 -0
  199. package/build/main/types/other/factories/MixedRouteQuoterV2__factory.d.ts +86 -0
  200. package/build/main/types/other/factories/MixedRouteQuoterV2__factory.js +477 -0
  201. package/build/main/types/other/factories/Permit2__factory.d.ts +87 -0
  202. package/build/main/types/other/factories/Permit2__factory.js +941 -0
  203. package/build/main/types/other/factories/StateView__factory.d.ts +32 -0
  204. package/build/main/types/other/factories/StateView__factory.js +383 -0
  205. package/build/main/types/other/factories/SwapRouter02__factory.d.ts +67 -0
  206. package/build/main/types/other/factories/SwapRouter02__factory.js +1103 -0
  207. package/build/main/types/other/factories/TokenFeeDetector__factory.d.ts +47 -0
  208. package/build/main/types/other/factories/TokenFeeDetector__factory.js +243 -0
  209. package/build/main/types/other/factories/V4Quoter__factory.d.ts +37 -0
  210. package/build/main/types/other/factories/V4Quoter__factory.js +312 -0
  211. package/build/main/types/v2/factories/IUniswapV2Pair__factory.d.ts +35 -0
  212. package/build/main/types/v2/factories/IUniswapV2Pair__factory.js +671 -0
  213. package/build/main/types/v3/factories/IERC20Metadata__factory.d.ts +35 -0
  214. package/build/main/types/v3/factories/IERC20Metadata__factory.js +242 -0
  215. package/build/main/types/v3/factories/IQuoterV2__factory.d.ts +41 -0
  216. package/build/main/types/v3/factories/IQuoterV2__factory.js +220 -0
  217. package/build/main/types/v3/factories/IUniswapV3PoolState__factory.d.ts +22 -0
  218. package/build/main/types/v3/factories/IUniswapV3PoolState__factory.js +266 -0
  219. package/build/main/types/v3/factories/UniswapInterfaceMulticall__factory.d.ts +61 -0
  220. package/build/main/types/v3/factories/UniswapInterfaceMulticall__factory.js +132 -0
  221. package/build/main/util/addresses.d.ts +32 -0
  222. package/build/main/util/addresses.js +113 -0
  223. package/build/main/util/amounts.d.ts +10 -0
  224. package/build/main/util/amounts.js +94 -0
  225. package/build/main/util/callData.d.ts +1 -0
  226. package/build/main/util/callData.js +6 -0
  227. package/build/main/util/chains.d.ts +69 -0
  228. package/build/main/util/chains.js +740 -0
  229. package/build/main/util/defaultBlocksToLive.d.ts +4 -0
  230. package/build/main/util/defaultBlocksToLive.js +58 -0
  231. package/build/main/util/gas-factory-helpers.d.ts +34 -0
  232. package/build/main/util/gas-factory-helpers.js +439 -0
  233. package/build/main/util/hooksOptions.d.ts +5 -0
  234. package/build/main/util/hooksOptions.js +10 -0
  235. package/build/main/util/index.d.ts +10 -0
  236. package/build/main/util/index.js +27 -0
  237. package/build/main/util/intent.d.ts +6 -0
  238. package/build/main/util/intent.js +13 -0
  239. package/build/main/util/l2FeeChains.d.ts +2 -0
  240. package/build/main/util/l2FeeChains.js +18 -0
  241. package/build/main/util/log.d.ts +3 -0
  242. package/build/main/util/log.js +97 -0
  243. package/build/main/util/methodParameters.d.ts +5 -0
  244. package/build/main/util/methodParameters.js +147 -0
  245. package/build/main/util/metric.d.ts +48 -0
  246. package/build/main/util/metric.js +59 -0
  247. package/build/main/util/mixedRouteFilterOutV4Pools.d.ts +3 -0
  248. package/build/main/util/mixedRouteFilterOutV4Pools.js +17 -0
  249. package/build/main/util/onchainQuoteProviderConfigs.d.ts +42 -0
  250. package/build/main/util/onchainQuoteProviderConfigs.js +72 -0
  251. package/build/main/util/pool.d.ts +5 -0
  252. package/build/main/util/pool.js +44 -0
  253. package/build/main/util/protocols.d.ts +2 -0
  254. package/build/main/util/protocols.js +20 -0
  255. package/build/main/util/routes.d.ts +11 -0
  256. package/build/main/util/routes.js +148 -0
  257. package/build/main/util/serializeRouteIds.d.ts +2 -0
  258. package/build/main/util/serializeRouteIds.js +12 -0
  259. package/build/main/util/tenderlySimulationErrorBreakDown.d.ts +3 -0
  260. package/build/main/util/tenderlySimulationErrorBreakDown.js +33 -0
  261. package/build/main/util/unsupported-tokens.d.ts +37 -0
  262. package/build/main/util/unsupported-tokens.js +1119 -0
  263. package/build/module/index.d.ts +3 -0
  264. package/build/module/index.js +4 -0
  265. package/build/module/providers/cache-node.d.ts +10 -0
  266. package/build/module/providers/cache-node.js +29 -0
  267. package/build/module/providers/cache.d.ts +14 -0
  268. package/build/module/providers/cache.js +2 -0
  269. package/build/module/providers/caching/route/index.d.ts +2 -0
  270. package/build/module/providers/caching/route/index.js +3 -0
  271. package/build/module/providers/caching/route/model/cache-mode.d.ts +16 -0
  272. package/build/module/providers/caching/route/model/cache-mode.js +18 -0
  273. package/build/module/providers/caching/route/model/cached-route.d.ts +29 -0
  274. package/build/module/providers/caching/route/model/cached-route.js +73 -0
  275. package/build/module/providers/caching/route/model/cached-routes.d.ts +67 -0
  276. package/build/module/providers/caching/route/model/cached-routes.js +74 -0
  277. package/build/module/providers/caching/route/model/index.d.ts +3 -0
  278. package/build/module/providers/caching/route/model/index.js +4 -0
  279. package/build/module/providers/caching/route/route-caching-provider.d.ts +111 -0
  280. package/build/module/providers/caching/route/route-caching-provider.js +82 -0
  281. package/build/module/providers/caching-gas-provider.d.ts +23 -0
  282. package/build/module/providers/caching-gas-provider.js +37 -0
  283. package/build/module/providers/caching-subgraph-provider.d.ts +33 -0
  284. package/build/module/providers/caching-subgraph-provider.js +166 -0
  285. package/build/module/providers/caching-token-list-provider.d.ts +52 -0
  286. package/build/module/providers/caching-token-list-provider.js +140 -0
  287. package/build/module/providers/caching-token-provider.d.ts +24 -0
  288. package/build/module/providers/caching-token-provider.js +235 -0
  289. package/build/module/providers/eip-1559-gas-price-provider.d.ts +31 -0
  290. package/build/module/providers/eip-1559-gas-price-provider.js +64 -0
  291. package/build/module/providers/eth-estimate-gas-provider.d.ts +21 -0
  292. package/build/module/providers/eth-estimate-gas-provider.js +99 -0
  293. package/build/module/providers/eth-gas-station-info-gas-price-provider.d.ts +19 -0
  294. package/build/module/providers/eth-gas-station-info-gas-price-provider.js +29 -0
  295. package/build/module/providers/gas-price-provider.d.ts +10 -0
  296. package/build/module/providers/gas-price-provider.js +6 -0
  297. package/build/module/providers/index.d.ts +47 -0
  298. package/build/module/providers/index.js +48 -0
  299. package/build/module/providers/legacy-gas-price-provider.d.ts +7 -0
  300. package/build/module/providers/legacy-gas-price-provider.js +14 -0
  301. package/build/module/providers/multicall-provider.d.ts +83 -0
  302. package/build/module/providers/multicall-provider.js +11 -0
  303. package/build/module/providers/multicall-uniswap-provider.d.ts +37 -0
  304. package/build/module/providers/multicall-uniswap-provider.js +157 -0
  305. package/build/module/providers/on-chain-gas-price-provider.d.ts +19 -0
  306. package/build/module/providers/on-chain-gas-price-provider.js +33 -0
  307. package/build/module/providers/on-chain-quote-provider.d.ts +258 -0
  308. package/build/module/providers/on-chain-quote-provider.js +707 -0
  309. package/build/module/providers/pool-provider.d.ts +45 -0
  310. package/build/module/providers/pool-provider.js +66 -0
  311. package/build/module/providers/portion-provider.d.ts +86 -0
  312. package/build/module/providers/portion-provider.js +114 -0
  313. package/build/module/providers/provider.d.ts +38 -0
  314. package/build/module/providers/provider.js +2 -0
  315. package/build/module/providers/simulation-provider.d.ts +46 -0
  316. package/build/module/providers/simulation-provider.js +140 -0
  317. package/build/module/providers/static-gas-price-provider.d.ts +7 -0
  318. package/build/module/providers/static-gas-price-provider.js +9 -0
  319. package/build/module/providers/subgraph-provider-with-fallback.d.ts +11 -0
  320. package/build/module/providers/subgraph-provider-with-fallback.js +21 -0
  321. package/build/module/providers/subgraph-provider.d.ts +56 -0
  322. package/build/module/providers/subgraph-provider.js +284 -0
  323. package/build/module/providers/swap-router-provider.d.ts +30 -0
  324. package/build/module/providers/swap-router-provider.js +38 -0
  325. package/build/module/providers/tenderly-simulation-provider.d.ts +69 -0
  326. package/build/module/providers/tenderly-simulation-provider.js +456 -0
  327. package/build/module/providers/token-fee-fetcher.d.ts +31 -0
  328. package/build/module/providers/token-fee-fetcher.js +161 -0
  329. package/build/module/providers/token-properties-provider.d.ts +31 -0
  330. package/build/module/providers/token-properties-provider.js +114 -0
  331. package/build/module/providers/token-provider.d.ts +141 -0
  332. package/build/module/providers/token-provider.js +381 -0
  333. package/build/module/providers/token-validator-provider.d.ts +42 -0
  334. package/build/module/providers/token-validator-provider.js +92 -0
  335. package/build/module/providers/uri-subgraph-provider.d.ts +20 -0
  336. package/build/module/providers/uri-subgraph-provider.js +58 -0
  337. package/build/module/providers/v2/caching-pool-provider.d.ts +33 -0
  338. package/build/module/providers/v2/caching-pool-provider.js +85 -0
  339. package/build/module/providers/v2/caching-subgraph-provider.d.ts +19 -0
  340. package/build/module/providers/v2/caching-subgraph-provider.js +20 -0
  341. package/build/module/providers/v2/pool-provider.d.ts +63 -0
  342. package/build/module/providers/v2/pool-provider.js +141 -0
  343. package/build/module/providers/v2/quote-provider.d.ts +34 -0
  344. package/build/module/providers/v2/quote-provider.js +86 -0
  345. package/build/module/providers/v2/static-subgraph-provider.d.ts +19 -0
  346. package/build/module/providers/v2/static-subgraph-provider.js +164 -0
  347. package/build/module/providers/v2/subgraph-provider-with-fallback.d.ts +16 -0
  348. package/build/module/providers/v2/subgraph-provider-with-fallback.js +19 -0
  349. package/build/module/providers/v2/subgraph-provider.d.ts +53 -0
  350. package/build/module/providers/v2/subgraph-provider.js +341 -0
  351. package/build/module/providers/v2/uri-subgraph-provider.d.ts +4 -0
  352. package/build/module/providers/v2/uri-subgraph-provider.js +4 -0
  353. package/build/module/providers/v3/caching-pool-provider.d.ts +32 -0
  354. package/build/module/providers/v3/caching-pool-provider.js +77 -0
  355. package/build/module/providers/v3/caching-subgraph-provider.d.ts +19 -0
  356. package/build/module/providers/v3/caching-subgraph-provider.js +20 -0
  357. package/build/module/providers/v3/gas-data-provider.d.ts +39 -0
  358. package/build/module/providers/v3/gas-data-provider.js +22 -0
  359. package/build/module/providers/v3/pool-provider.d.ts +77 -0
  360. package/build/module/providers/v3/pool-provider.js +101 -0
  361. package/build/module/providers/v3/static-subgraph-provider.d.ts +21 -0
  362. package/build/module/providers/v3/static-subgraph-provider.js +210 -0
  363. package/build/module/providers/v3/subgraph-provider-with-fallback.d.ts +12 -0
  364. package/build/module/providers/v3/subgraph-provider-with-fallback.js +15 -0
  365. package/build/module/providers/v3/subgraph-provider.d.ts +45 -0
  366. package/build/module/providers/v3/subgraph-provider.js +42 -0
  367. package/build/module/providers/v3/uri-subgraph-provider.d.ts +4 -0
  368. package/build/module/providers/v3/uri-subgraph-provider.js +4 -0
  369. package/build/module/providers/v4/caching-pool-provider.d.ts +24 -0
  370. package/build/module/providers/v4/caching-pool-provider.js +74 -0
  371. package/build/module/providers/v4/caching-subgraph-provider.d.ts +19 -0
  372. package/build/module/providers/v4/caching-subgraph-provider.js +20 -0
  373. package/build/module/providers/v4/euler-swap-hooks-subgraph-provider.d.ts +25 -0
  374. package/build/module/providers/v4/euler-swap-hooks-subgraph-provider.js +153 -0
  375. package/build/module/providers/v4/pool-provider.d.ts +58 -0
  376. package/build/module/providers/v4/pool-provider.js +106 -0
  377. package/build/module/providers/v4/static-subgraph-provider.d.ts +15 -0
  378. package/build/module/providers/v4/static-subgraph-provider.js +71 -0
  379. package/build/module/providers/v4/subgraph-provider-with-fallback.d.ts +5 -0
  380. package/build/module/providers/v4/subgraph-provider-with-fallback.js +8 -0
  381. package/build/module/providers/v4/subgraph-provider.d.ts +63 -0
  382. package/build/module/providers/v4/subgraph-provider.js +59 -0
  383. package/build/module/providers/v4/uri-subgraph-provider.d.ts +4 -0
  384. package/build/module/providers/v4/uri-subgraph-provider.js +4 -0
  385. package/build/module/routers/alpha-router/alpha-router.d.ts +483 -0
  386. package/build/module/routers/alpha-router/alpha-router.js +1680 -0
  387. package/build/module/routers/alpha-router/config.d.ts +4 -0
  388. package/build/module/routers/alpha-router/config.js +127 -0
  389. package/build/module/routers/alpha-router/entities/index.d.ts +1 -0
  390. package/build/module/routers/alpha-router/entities/index.js +2 -0
  391. package/build/module/routers/alpha-router/entities/route-with-valid-quote.d.ts +208 -0
  392. package/build/module/routers/alpha-router/entities/route-with-valid-quote.js +184 -0
  393. package/build/module/routers/alpha-router/functions/best-swap-route.d.ts +24 -0
  394. package/build/module/routers/alpha-router/functions/best-swap-route.js +528 -0
  395. package/build/module/routers/alpha-router/functions/calculate-ratio-amount-in.d.ts +3 -0
  396. package/build/module/routers/alpha-router/functions/calculate-ratio-amount-in.js +14 -0
  397. package/build/module/routers/alpha-router/functions/compute-all-routes.d.ts +12 -0
  398. package/build/module/routers/alpha-router/functions/compute-all-routes.js +125 -0
  399. package/build/module/routers/alpha-router/functions/get-candidate-pools.d.ts +126 -0
  400. package/build/module/routers/alpha-router/functions/get-candidate-pools.js +1516 -0
  401. package/build/module/routers/alpha-router/gas-models/gas-costs.d.ts +12 -0
  402. package/build/module/routers/alpha-router/gas-models/gas-costs.js +189 -0
  403. package/build/module/routers/alpha-router/gas-models/gas-model.d.ts +107 -0
  404. package/build/module/routers/alpha-router/gas-models/gas-model.js +111 -0
  405. package/build/module/routers/alpha-router/gas-models/index.d.ts +2 -0
  406. package/build/module/routers/alpha-router/gas-models/index.js +3 -0
  407. package/build/module/routers/alpha-router/gas-models/mixedRoute/mixed-route-heuristic-gas-model.d.ts +24 -0
  408. package/build/module/routers/alpha-router/gas-models/mixedRoute/mixed-route-heuristic-gas-model.js +154 -0
  409. package/build/module/routers/alpha-router/gas-models/tick-based-heuristic-gas-model.d.ts +15 -0
  410. package/build/module/routers/alpha-router/gas-models/tick-based-heuristic-gas-model.js +187 -0
  411. package/build/module/routers/alpha-router/gas-models/v2/v2-heuristic-gas-model.d.ts +31 -0
  412. package/build/module/routers/alpha-router/gas-models/v2/v2-heuristic-gas-model.js +162 -0
  413. package/build/module/routers/alpha-router/gas-models/v3/v3-heuristic-gas-model.d.ts +26 -0
  414. package/build/module/routers/alpha-router/gas-models/v3/v3-heuristic-gas-model.js +37 -0
  415. package/build/module/routers/alpha-router/gas-models/v4/v4-heuristic-gas-model.d.ts +15 -0
  416. package/build/module/routers/alpha-router/gas-models/v4/v4-heuristic-gas-model.js +36 -0
  417. package/build/module/routers/alpha-router/index.d.ts +4 -0
  418. package/build/module/routers/alpha-router/index.js +5 -0
  419. package/build/module/routers/alpha-router/quoters/base-quoter.d.ts +77 -0
  420. package/build/module/routers/alpha-router/quoters/base-quoter.js +69 -0
  421. package/build/module/routers/alpha-router/quoters/index.d.ts +5 -0
  422. package/build/module/routers/alpha-router/quoters/index.js +6 -0
  423. package/build/module/routers/alpha-router/quoters/mixed-quoter.d.ts +32 -0
  424. package/build/module/routers/alpha-router/quoters/mixed-quoter.js +147 -0
  425. package/build/module/routers/alpha-router/quoters/model/index.d.ts +1 -0
  426. package/build/module/routers/alpha-router/quoters/model/index.js +2 -0
  427. package/build/module/routers/alpha-router/quoters/model/results/get-quotes-result.d.ts +6 -0
  428. package/build/module/routers/alpha-router/quoters/model/results/get-quotes-result.js +2 -0
  429. package/build/module/routers/alpha-router/quoters/model/results/get-routes-result.d.ts +6 -0
  430. package/build/module/routers/alpha-router/quoters/model/results/get-routes-result.js +2 -0
  431. package/build/module/routers/alpha-router/quoters/model/results/index.d.ts +2 -0
  432. package/build/module/routers/alpha-router/quoters/model/results/index.js +3 -0
  433. package/build/module/routers/alpha-router/quoters/v2-quoter.d.ts +24 -0
  434. package/build/module/routers/alpha-router/quoters/v2-quoter.js +138 -0
  435. package/build/module/routers/alpha-router/quoters/v3-quoter.d.ts +19 -0
  436. package/build/module/routers/alpha-router/quoters/v3-quoter.js +118 -0
  437. package/build/module/routers/alpha-router/quoters/v4-quoter.d.ts +18 -0
  438. package/build/module/routers/alpha-router/quoters/v4-quoter.js +115 -0
  439. package/build/module/routers/index.d.ts +4 -0
  440. package/build/module/routers/index.js +5 -0
  441. package/build/module/routers/legacy-router/bases.d.ts +213 -0
  442. package/build/module/routers/legacy-router/bases.js +130 -0
  443. package/build/module/routers/legacy-router/index.d.ts +1 -0
  444. package/build/module/routers/legacy-router/index.js +2 -0
  445. package/build/module/routers/legacy-router/legacy-router.d.ts +41 -0
  446. package/build/module/routers/legacy-router/legacy-router.js +292 -0
  447. package/build/module/routers/router.d.ts +195 -0
  448. package/build/module/routers/router.js +79 -0
  449. package/build/module/tsconfig.module.tsbuildinfo +1 -0
  450. package/build/module/types/other/factories/Erc20__factory.d.ts +45 -0
  451. package/build/module/types/other/factories/Erc20__factory.js +236 -0
  452. package/build/module/types/other/factories/GasDataArbitrum__factory.d.ts +18 -0
  453. package/build/module/types/other/factories/GasDataArbitrum__factory.js +54 -0
  454. package/build/module/types/other/factories/IMixedRouteQuoterV1__factory.d.ts +41 -0
  455. package/build/module/types/other/factories/IMixedRouteQuoterV1__factory.js +152 -0
  456. package/build/module/types/other/factories/ITokenValidator__factory.d.ts +22 -0
  457. package/build/module/types/other/factories/ITokenValidator__factory.js +74 -0
  458. package/build/module/types/other/factories/MixedRouteQuoterV2__factory.d.ts +86 -0
  459. package/build/module/types/other/factories/MixedRouteQuoterV2__factory.js +473 -0
  460. package/build/module/types/other/factories/Permit2__factory.d.ts +87 -0
  461. package/build/module/types/other/factories/Permit2__factory.js +937 -0
  462. package/build/module/types/other/factories/StateView__factory.d.ts +32 -0
  463. package/build/module/types/other/factories/StateView__factory.js +379 -0
  464. package/build/module/types/other/factories/SwapRouter02__factory.d.ts +67 -0
  465. package/build/module/types/other/factories/SwapRouter02__factory.js +1099 -0
  466. package/build/module/types/other/factories/TokenFeeDetector__factory.d.ts +47 -0
  467. package/build/module/types/other/factories/TokenFeeDetector__factory.js +239 -0
  468. package/build/module/types/other/factories/V4Quoter__factory.d.ts +37 -0
  469. package/build/module/types/other/factories/V4Quoter__factory.js +308 -0
  470. package/build/module/types/v2/factories/IUniswapV2Pair__factory.d.ts +35 -0
  471. package/build/module/types/v2/factories/IUniswapV2Pair__factory.js +667 -0
  472. package/build/module/types/v3/factories/IERC20Metadata__factory.d.ts +35 -0
  473. package/build/module/types/v3/factories/IERC20Metadata__factory.js +238 -0
  474. package/build/module/types/v3/factories/IQuoterV2__factory.d.ts +41 -0
  475. package/build/module/types/v3/factories/IQuoterV2__factory.js +216 -0
  476. package/build/module/types/v3/factories/IUniswapV3PoolState__factory.d.ts +22 -0
  477. package/build/module/types/v3/factories/IUniswapV3PoolState__factory.js +262 -0
  478. package/build/module/types/v3/factories/UniswapInterfaceMulticall__factory.d.ts +61 -0
  479. package/build/module/types/v3/factories/UniswapInterfaceMulticall__factory.js +128 -0
  480. package/build/module/util/addresses.d.ts +32 -0
  481. package/build/module/util/addresses.js +233 -0
  482. package/build/module/util/amounts.d.ts +10 -0
  483. package/build/module/util/amounts.js +82 -0
  484. package/build/module/util/callData.d.ts +1 -0
  485. package/build/module/util/callData.js +3 -0
  486. package/build/module/util/chains.d.ts +69 -0
  487. package/build/module/util/chains.js +732 -0
  488. package/build/module/util/defaultBlocksToLive.d.ts +4 -0
  489. package/build/module/util/defaultBlocksToLive.js +55 -0
  490. package/build/module/util/gas-factory-helpers.d.ts +34 -0
  491. package/build/module/util/gas-factory-helpers.js +421 -0
  492. package/build/module/util/hooksOptions.d.ts +5 -0
  493. package/build/module/util/hooksOptions.js +7 -0
  494. package/build/module/util/index.d.ts +10 -0
  495. package/build/module/util/index.js +11 -0
  496. package/build/module/util/intent.d.ts +6 -0
  497. package/build/module/util/intent.js +10 -0
  498. package/build/module/util/l2FeeChains.d.ts +2 -0
  499. package/build/module/util/l2FeeChains.js +15 -0
  500. package/build/module/util/log.d.ts +3 -0
  501. package/build/module/util/log.js +93 -0
  502. package/build/module/util/methodParameters.d.ts +5 -0
  503. package/build/module/util/methodParameters.js +145 -0
  504. package/build/module/util/metric.d.ts +48 -0
  505. package/build/module/util/metric.js +53 -0
  506. package/build/module/util/mixedRouteFilterOutV4Pools.d.ts +3 -0
  507. package/build/module/util/mixedRouteFilterOutV4Pools.js +12 -0
  508. package/build/module/util/onchainQuoteProviderConfigs.d.ts +42 -0
  509. package/build/module/util/onchainQuoteProviderConfigs.js +74 -0
  510. package/build/module/util/pool.d.ts +5 -0
  511. package/build/module/util/pool.js +41 -0
  512. package/build/module/util/protocols.d.ts +2 -0
  513. package/build/module/util/protocols.js +16 -0
  514. package/build/module/util/routes.d.ts +11 -0
  515. package/build/module/util/routes.js +136 -0
  516. package/build/module/util/serializeRouteIds.d.ts +2 -0
  517. package/build/module/util/serializeRouteIds.js +7 -0
  518. package/build/module/util/tenderlySimulationErrorBreakDown.d.ts +3 -0
  519. package/build/module/util/tenderlySimulationErrorBreakDown.js +29 -0
  520. package/build/module/util/unsupported-tokens.d.ts +37 -0
  521. package/build/module/util/unsupported-tokens.js +1116 -0
  522. package/package.json +129 -0
@@ -0,0 +1,937 @@
1
+ /* Autogenerated file. Do not edit manually. */
2
+ /* tslint:disable */
3
+ /* eslint-disable */
4
+ import { utils, Contract, ContractFactory } from "ethers";
5
+ const _abi = [
6
+ {
7
+ inputs: [
8
+ {
9
+ internalType: "uint256",
10
+ name: "deadline",
11
+ type: "uint256",
12
+ },
13
+ ],
14
+ name: "AllowanceExpired",
15
+ type: "error",
16
+ },
17
+ {
18
+ inputs: [],
19
+ name: "ExcessiveInvalidation",
20
+ type: "error",
21
+ },
22
+ {
23
+ inputs: [
24
+ {
25
+ internalType: "uint256",
26
+ name: "amount",
27
+ type: "uint256",
28
+ },
29
+ ],
30
+ name: "InsufficientAllowance",
31
+ type: "error",
32
+ },
33
+ {
34
+ inputs: [
35
+ {
36
+ internalType: "uint256",
37
+ name: "maxAmount",
38
+ type: "uint256",
39
+ },
40
+ ],
41
+ name: "InvalidAmount",
42
+ type: "error",
43
+ },
44
+ {
45
+ inputs: [],
46
+ name: "InvalidContractSignature",
47
+ type: "error",
48
+ },
49
+ {
50
+ inputs: [],
51
+ name: "InvalidNonce",
52
+ type: "error",
53
+ },
54
+ {
55
+ inputs: [],
56
+ name: "InvalidSignature",
57
+ type: "error",
58
+ },
59
+ {
60
+ inputs: [],
61
+ name: "InvalidSignatureLength",
62
+ type: "error",
63
+ },
64
+ {
65
+ inputs: [],
66
+ name: "InvalidSigner",
67
+ type: "error",
68
+ },
69
+ {
70
+ inputs: [],
71
+ name: "LengthMismatch",
72
+ type: "error",
73
+ },
74
+ {
75
+ inputs: [
76
+ {
77
+ internalType: "uint256",
78
+ name: "signatureDeadline",
79
+ type: "uint256",
80
+ },
81
+ ],
82
+ name: "SignatureExpired",
83
+ type: "error",
84
+ },
85
+ {
86
+ anonymous: false,
87
+ inputs: [
88
+ {
89
+ indexed: true,
90
+ internalType: "address",
91
+ name: "owner",
92
+ type: "address",
93
+ },
94
+ {
95
+ indexed: true,
96
+ internalType: "address",
97
+ name: "token",
98
+ type: "address",
99
+ },
100
+ {
101
+ indexed: true,
102
+ internalType: "address",
103
+ name: "spender",
104
+ type: "address",
105
+ },
106
+ {
107
+ indexed: false,
108
+ internalType: "uint160",
109
+ name: "amount",
110
+ type: "uint160",
111
+ },
112
+ {
113
+ indexed: false,
114
+ internalType: "uint48",
115
+ name: "expiration",
116
+ type: "uint48",
117
+ },
118
+ ],
119
+ name: "Approval",
120
+ type: "event",
121
+ },
122
+ {
123
+ anonymous: false,
124
+ inputs: [
125
+ {
126
+ indexed: true,
127
+ internalType: "address",
128
+ name: "owner",
129
+ type: "address",
130
+ },
131
+ {
132
+ indexed: false,
133
+ internalType: "address",
134
+ name: "token",
135
+ type: "address",
136
+ },
137
+ {
138
+ indexed: false,
139
+ internalType: "address",
140
+ name: "spender",
141
+ type: "address",
142
+ },
143
+ ],
144
+ name: "Lockdown",
145
+ type: "event",
146
+ },
147
+ {
148
+ anonymous: false,
149
+ inputs: [
150
+ {
151
+ indexed: true,
152
+ internalType: "address",
153
+ name: "owner",
154
+ type: "address",
155
+ },
156
+ {
157
+ indexed: true,
158
+ internalType: "address",
159
+ name: "token",
160
+ type: "address",
161
+ },
162
+ {
163
+ indexed: true,
164
+ internalType: "address",
165
+ name: "spender",
166
+ type: "address",
167
+ },
168
+ {
169
+ indexed: false,
170
+ internalType: "uint48",
171
+ name: "newNonce",
172
+ type: "uint48",
173
+ },
174
+ {
175
+ indexed: false,
176
+ internalType: "uint48",
177
+ name: "oldNonce",
178
+ type: "uint48",
179
+ },
180
+ ],
181
+ name: "NonceInvalidation",
182
+ type: "event",
183
+ },
184
+ {
185
+ anonymous: false,
186
+ inputs: [
187
+ {
188
+ indexed: true,
189
+ internalType: "address",
190
+ name: "owner",
191
+ type: "address",
192
+ },
193
+ {
194
+ indexed: true,
195
+ internalType: "address",
196
+ name: "token",
197
+ type: "address",
198
+ },
199
+ {
200
+ indexed: true,
201
+ internalType: "address",
202
+ name: "spender",
203
+ type: "address",
204
+ },
205
+ {
206
+ indexed: false,
207
+ internalType: "uint160",
208
+ name: "amount",
209
+ type: "uint160",
210
+ },
211
+ {
212
+ indexed: false,
213
+ internalType: "uint48",
214
+ name: "expiration",
215
+ type: "uint48",
216
+ },
217
+ {
218
+ indexed: false,
219
+ internalType: "uint48",
220
+ name: "nonce",
221
+ type: "uint48",
222
+ },
223
+ ],
224
+ name: "Permit",
225
+ type: "event",
226
+ },
227
+ {
228
+ anonymous: false,
229
+ inputs: [
230
+ {
231
+ indexed: true,
232
+ internalType: "address",
233
+ name: "owner",
234
+ type: "address",
235
+ },
236
+ {
237
+ indexed: false,
238
+ internalType: "uint256",
239
+ name: "word",
240
+ type: "uint256",
241
+ },
242
+ {
243
+ indexed: false,
244
+ internalType: "uint256",
245
+ name: "mask",
246
+ type: "uint256",
247
+ },
248
+ ],
249
+ name: "UnorderedNonceInvalidation",
250
+ type: "event",
251
+ },
252
+ {
253
+ inputs: [],
254
+ name: "DOMAIN_SEPARATOR",
255
+ outputs: [
256
+ {
257
+ internalType: "bytes32",
258
+ name: "",
259
+ type: "bytes32",
260
+ },
261
+ ],
262
+ stateMutability: "view",
263
+ type: "function",
264
+ },
265
+ {
266
+ inputs: [
267
+ {
268
+ internalType: "address",
269
+ name: "",
270
+ type: "address",
271
+ },
272
+ {
273
+ internalType: "address",
274
+ name: "",
275
+ type: "address",
276
+ },
277
+ {
278
+ internalType: "address",
279
+ name: "",
280
+ type: "address",
281
+ },
282
+ ],
283
+ name: "allowance",
284
+ outputs: [
285
+ {
286
+ internalType: "uint160",
287
+ name: "amount",
288
+ type: "uint160",
289
+ },
290
+ {
291
+ internalType: "uint48",
292
+ name: "expiration",
293
+ type: "uint48",
294
+ },
295
+ {
296
+ internalType: "uint48",
297
+ name: "nonce",
298
+ type: "uint48",
299
+ },
300
+ ],
301
+ stateMutability: "view",
302
+ type: "function",
303
+ },
304
+ {
305
+ inputs: [
306
+ {
307
+ internalType: "address",
308
+ name: "token",
309
+ type: "address",
310
+ },
311
+ {
312
+ internalType: "address",
313
+ name: "spender",
314
+ type: "address",
315
+ },
316
+ {
317
+ internalType: "uint160",
318
+ name: "amount",
319
+ type: "uint160",
320
+ },
321
+ {
322
+ internalType: "uint48",
323
+ name: "expiration",
324
+ type: "uint48",
325
+ },
326
+ ],
327
+ name: "approve",
328
+ outputs: [],
329
+ stateMutability: "nonpayable",
330
+ type: "function",
331
+ },
332
+ {
333
+ inputs: [
334
+ {
335
+ internalType: "address",
336
+ name: "token",
337
+ type: "address",
338
+ },
339
+ {
340
+ internalType: "address",
341
+ name: "spender",
342
+ type: "address",
343
+ },
344
+ {
345
+ internalType: "uint48",
346
+ name: "newNonce",
347
+ type: "uint48",
348
+ },
349
+ ],
350
+ name: "invalidateNonces",
351
+ outputs: [],
352
+ stateMutability: "nonpayable",
353
+ type: "function",
354
+ },
355
+ {
356
+ inputs: [
357
+ {
358
+ internalType: "uint256",
359
+ name: "wordPos",
360
+ type: "uint256",
361
+ },
362
+ {
363
+ internalType: "uint256",
364
+ name: "mask",
365
+ type: "uint256",
366
+ },
367
+ ],
368
+ name: "invalidateUnorderedNonces",
369
+ outputs: [],
370
+ stateMutability: "nonpayable",
371
+ type: "function",
372
+ },
373
+ {
374
+ inputs: [
375
+ {
376
+ components: [
377
+ {
378
+ internalType: "address",
379
+ name: "token",
380
+ type: "address",
381
+ },
382
+ {
383
+ internalType: "address",
384
+ name: "spender",
385
+ type: "address",
386
+ },
387
+ ],
388
+ internalType: "struct IAllowanceTransfer.TokenSpenderPair[]",
389
+ name: "approvals",
390
+ type: "tuple[]",
391
+ },
392
+ ],
393
+ name: "lockdown",
394
+ outputs: [],
395
+ stateMutability: "nonpayable",
396
+ type: "function",
397
+ },
398
+ {
399
+ inputs: [
400
+ {
401
+ internalType: "address",
402
+ name: "",
403
+ type: "address",
404
+ },
405
+ {
406
+ internalType: "uint256",
407
+ name: "",
408
+ type: "uint256",
409
+ },
410
+ ],
411
+ name: "nonceBitmap",
412
+ outputs: [
413
+ {
414
+ internalType: "uint256",
415
+ name: "",
416
+ type: "uint256",
417
+ },
418
+ ],
419
+ stateMutability: "view",
420
+ type: "function",
421
+ },
422
+ {
423
+ inputs: [
424
+ {
425
+ internalType: "address",
426
+ name: "owner",
427
+ type: "address",
428
+ },
429
+ {
430
+ components: [
431
+ {
432
+ components: [
433
+ {
434
+ internalType: "address",
435
+ name: "token",
436
+ type: "address",
437
+ },
438
+ {
439
+ internalType: "uint160",
440
+ name: "amount",
441
+ type: "uint160",
442
+ },
443
+ {
444
+ internalType: "uint48",
445
+ name: "expiration",
446
+ type: "uint48",
447
+ },
448
+ {
449
+ internalType: "uint48",
450
+ name: "nonce",
451
+ type: "uint48",
452
+ },
453
+ ],
454
+ internalType: "struct IAllowanceTransfer.PermitDetails[]",
455
+ name: "details",
456
+ type: "tuple[]",
457
+ },
458
+ {
459
+ internalType: "address",
460
+ name: "spender",
461
+ type: "address",
462
+ },
463
+ {
464
+ internalType: "uint256",
465
+ name: "sigDeadline",
466
+ type: "uint256",
467
+ },
468
+ ],
469
+ internalType: "struct IAllowanceTransfer.PermitBatch",
470
+ name: "permitBatch",
471
+ type: "tuple",
472
+ },
473
+ {
474
+ internalType: "bytes",
475
+ name: "signature",
476
+ type: "bytes",
477
+ },
478
+ ],
479
+ name: "permit",
480
+ outputs: [],
481
+ stateMutability: "nonpayable",
482
+ type: "function",
483
+ },
484
+ {
485
+ inputs: [
486
+ {
487
+ internalType: "address",
488
+ name: "owner",
489
+ type: "address",
490
+ },
491
+ {
492
+ components: [
493
+ {
494
+ components: [
495
+ {
496
+ internalType: "address",
497
+ name: "token",
498
+ type: "address",
499
+ },
500
+ {
501
+ internalType: "uint160",
502
+ name: "amount",
503
+ type: "uint160",
504
+ },
505
+ {
506
+ internalType: "uint48",
507
+ name: "expiration",
508
+ type: "uint48",
509
+ },
510
+ {
511
+ internalType: "uint48",
512
+ name: "nonce",
513
+ type: "uint48",
514
+ },
515
+ ],
516
+ internalType: "struct IAllowanceTransfer.PermitDetails",
517
+ name: "details",
518
+ type: "tuple",
519
+ },
520
+ {
521
+ internalType: "address",
522
+ name: "spender",
523
+ type: "address",
524
+ },
525
+ {
526
+ internalType: "uint256",
527
+ name: "sigDeadline",
528
+ type: "uint256",
529
+ },
530
+ ],
531
+ internalType: "struct IAllowanceTransfer.PermitSingle",
532
+ name: "permitSingle",
533
+ type: "tuple",
534
+ },
535
+ {
536
+ internalType: "bytes",
537
+ name: "signature",
538
+ type: "bytes",
539
+ },
540
+ ],
541
+ name: "permit",
542
+ outputs: [],
543
+ stateMutability: "nonpayable",
544
+ type: "function",
545
+ },
546
+ {
547
+ inputs: [
548
+ {
549
+ components: [
550
+ {
551
+ components: [
552
+ {
553
+ internalType: "address",
554
+ name: "token",
555
+ type: "address",
556
+ },
557
+ {
558
+ internalType: "uint256",
559
+ name: "amount",
560
+ type: "uint256",
561
+ },
562
+ ],
563
+ internalType: "struct ISignatureTransfer.TokenPermissions",
564
+ name: "permitted",
565
+ type: "tuple",
566
+ },
567
+ {
568
+ internalType: "uint256",
569
+ name: "nonce",
570
+ type: "uint256",
571
+ },
572
+ {
573
+ internalType: "uint256",
574
+ name: "deadline",
575
+ type: "uint256",
576
+ },
577
+ ],
578
+ internalType: "struct ISignatureTransfer.PermitTransferFrom",
579
+ name: "permit",
580
+ type: "tuple",
581
+ },
582
+ {
583
+ components: [
584
+ {
585
+ internalType: "address",
586
+ name: "to",
587
+ type: "address",
588
+ },
589
+ {
590
+ internalType: "uint256",
591
+ name: "requestedAmount",
592
+ type: "uint256",
593
+ },
594
+ ],
595
+ internalType: "struct ISignatureTransfer.SignatureTransferDetails",
596
+ name: "transferDetails",
597
+ type: "tuple",
598
+ },
599
+ {
600
+ internalType: "address",
601
+ name: "owner",
602
+ type: "address",
603
+ },
604
+ {
605
+ internalType: "bytes",
606
+ name: "signature",
607
+ type: "bytes",
608
+ },
609
+ ],
610
+ name: "permitTransferFrom",
611
+ outputs: [],
612
+ stateMutability: "nonpayable",
613
+ type: "function",
614
+ },
615
+ {
616
+ inputs: [
617
+ {
618
+ components: [
619
+ {
620
+ components: [
621
+ {
622
+ internalType: "address",
623
+ name: "token",
624
+ type: "address",
625
+ },
626
+ {
627
+ internalType: "uint256",
628
+ name: "amount",
629
+ type: "uint256",
630
+ },
631
+ ],
632
+ internalType: "struct ISignatureTransfer.TokenPermissions[]",
633
+ name: "permitted",
634
+ type: "tuple[]",
635
+ },
636
+ {
637
+ internalType: "uint256",
638
+ name: "nonce",
639
+ type: "uint256",
640
+ },
641
+ {
642
+ internalType: "uint256",
643
+ name: "deadline",
644
+ type: "uint256",
645
+ },
646
+ ],
647
+ internalType: "struct ISignatureTransfer.PermitBatchTransferFrom",
648
+ name: "permit",
649
+ type: "tuple",
650
+ },
651
+ {
652
+ components: [
653
+ {
654
+ internalType: "address",
655
+ name: "to",
656
+ type: "address",
657
+ },
658
+ {
659
+ internalType: "uint256",
660
+ name: "requestedAmount",
661
+ type: "uint256",
662
+ },
663
+ ],
664
+ internalType: "struct ISignatureTransfer.SignatureTransferDetails[]",
665
+ name: "transferDetails",
666
+ type: "tuple[]",
667
+ },
668
+ {
669
+ internalType: "address",
670
+ name: "owner",
671
+ type: "address",
672
+ },
673
+ {
674
+ internalType: "bytes",
675
+ name: "signature",
676
+ type: "bytes",
677
+ },
678
+ ],
679
+ name: "permitTransferFrom",
680
+ outputs: [],
681
+ stateMutability: "nonpayable",
682
+ type: "function",
683
+ },
684
+ {
685
+ inputs: [
686
+ {
687
+ components: [
688
+ {
689
+ components: [
690
+ {
691
+ internalType: "address",
692
+ name: "token",
693
+ type: "address",
694
+ },
695
+ {
696
+ internalType: "uint256",
697
+ name: "amount",
698
+ type: "uint256",
699
+ },
700
+ ],
701
+ internalType: "struct ISignatureTransfer.TokenPermissions",
702
+ name: "permitted",
703
+ type: "tuple",
704
+ },
705
+ {
706
+ internalType: "uint256",
707
+ name: "nonce",
708
+ type: "uint256",
709
+ },
710
+ {
711
+ internalType: "uint256",
712
+ name: "deadline",
713
+ type: "uint256",
714
+ },
715
+ ],
716
+ internalType: "struct ISignatureTransfer.PermitTransferFrom",
717
+ name: "permit",
718
+ type: "tuple",
719
+ },
720
+ {
721
+ components: [
722
+ {
723
+ internalType: "address",
724
+ name: "to",
725
+ type: "address",
726
+ },
727
+ {
728
+ internalType: "uint256",
729
+ name: "requestedAmount",
730
+ type: "uint256",
731
+ },
732
+ ],
733
+ internalType: "struct ISignatureTransfer.SignatureTransferDetails",
734
+ name: "transferDetails",
735
+ type: "tuple",
736
+ },
737
+ {
738
+ internalType: "address",
739
+ name: "owner",
740
+ type: "address",
741
+ },
742
+ {
743
+ internalType: "bytes32",
744
+ name: "witness",
745
+ type: "bytes32",
746
+ },
747
+ {
748
+ internalType: "string",
749
+ name: "witnessTypeString",
750
+ type: "string",
751
+ },
752
+ {
753
+ internalType: "bytes",
754
+ name: "signature",
755
+ type: "bytes",
756
+ },
757
+ ],
758
+ name: "permitWitnessTransferFrom",
759
+ outputs: [],
760
+ stateMutability: "nonpayable",
761
+ type: "function",
762
+ },
763
+ {
764
+ inputs: [
765
+ {
766
+ components: [
767
+ {
768
+ components: [
769
+ {
770
+ internalType: "address",
771
+ name: "token",
772
+ type: "address",
773
+ },
774
+ {
775
+ internalType: "uint256",
776
+ name: "amount",
777
+ type: "uint256",
778
+ },
779
+ ],
780
+ internalType: "struct ISignatureTransfer.TokenPermissions[]",
781
+ name: "permitted",
782
+ type: "tuple[]",
783
+ },
784
+ {
785
+ internalType: "uint256",
786
+ name: "nonce",
787
+ type: "uint256",
788
+ },
789
+ {
790
+ internalType: "uint256",
791
+ name: "deadline",
792
+ type: "uint256",
793
+ },
794
+ ],
795
+ internalType: "struct ISignatureTransfer.PermitBatchTransferFrom",
796
+ name: "permit",
797
+ type: "tuple",
798
+ },
799
+ {
800
+ components: [
801
+ {
802
+ internalType: "address",
803
+ name: "to",
804
+ type: "address",
805
+ },
806
+ {
807
+ internalType: "uint256",
808
+ name: "requestedAmount",
809
+ type: "uint256",
810
+ },
811
+ ],
812
+ internalType: "struct ISignatureTransfer.SignatureTransferDetails[]",
813
+ name: "transferDetails",
814
+ type: "tuple[]",
815
+ },
816
+ {
817
+ internalType: "address",
818
+ name: "owner",
819
+ type: "address",
820
+ },
821
+ {
822
+ internalType: "bytes32",
823
+ name: "witness",
824
+ type: "bytes32",
825
+ },
826
+ {
827
+ internalType: "string",
828
+ name: "witnessTypeString",
829
+ type: "string",
830
+ },
831
+ {
832
+ internalType: "bytes",
833
+ name: "signature",
834
+ type: "bytes",
835
+ },
836
+ ],
837
+ name: "permitWitnessTransferFrom",
838
+ outputs: [],
839
+ stateMutability: "nonpayable",
840
+ type: "function",
841
+ },
842
+ {
843
+ inputs: [
844
+ {
845
+ components: [
846
+ {
847
+ internalType: "address",
848
+ name: "from",
849
+ type: "address",
850
+ },
851
+ {
852
+ internalType: "address",
853
+ name: "to",
854
+ type: "address",
855
+ },
856
+ {
857
+ internalType: "uint160",
858
+ name: "amount",
859
+ type: "uint160",
860
+ },
861
+ {
862
+ internalType: "address",
863
+ name: "token",
864
+ type: "address",
865
+ },
866
+ ],
867
+ internalType: "struct IAllowanceTransfer.AllowanceTransferDetails[]",
868
+ name: "transferDetails",
869
+ type: "tuple[]",
870
+ },
871
+ ],
872
+ name: "transferFrom",
873
+ outputs: [],
874
+ stateMutability: "nonpayable",
875
+ type: "function",
876
+ },
877
+ {
878
+ inputs: [
879
+ {
880
+ internalType: "address",
881
+ name: "from",
882
+ type: "address",
883
+ },
884
+ {
885
+ internalType: "address",
886
+ name: "to",
887
+ type: "address",
888
+ },
889
+ {
890
+ internalType: "uint160",
891
+ name: "amount",
892
+ type: "uint160",
893
+ },
894
+ {
895
+ internalType: "address",
896
+ name: "token",
897
+ type: "address",
898
+ },
899
+ ],
900
+ name: "transferFrom",
901
+ outputs: [],
902
+ stateMutability: "nonpayable",
903
+ type: "function",
904
+ },
905
+ ];
906
+ const _bytecode = "0x60c0346100bb574660a052602081017f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86681527f9ac997416e8ff9d2ff6bebeb7149f65cdae5e32e2b90440b566bb3044041d36a60408301524660608301523060808301526080825260a082019180831060018060401b038411176100a557826040525190206080526123c090816100c1823960805181611a90015260a05181611a6a0152f35b634e487b7160e01b600052604160045260246000fd5b600080fdfe6040608081526004908136101561001557600080fd5b600090813560e01c80630d58b1db1461126c578063137c29fe146110755780632a2d80d114610db75780632b67b57014610bde57806330f28b7a14610ade5780633644e51514610a9d57806336c7851614610a285780633ff9dcb1146109a85780634fe02b441461093f57806365d9723c146107ac57806387517c451461067a578063927da105146105c3578063cc53287f146104a3578063edd9444b1461033a5763fe8ec1a7146100c657600080fd5b346103365760c07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103365767ffffffffffffffff833581811161033257610114903690860161164b565b60243582811161032e5761012b903690870161161a565b6101336114e6565b9160843585811161032a5761014b9036908a016115c1565b98909560a43590811161032657610164913691016115c1565b969095815190610173826113ff565b606b82527f5065726d697442617463685769746e6573735472616e7366657246726f6d285460208301527f6f6b656e5065726d697373696f6e735b5d207065726d69747465642c61646472838301527f657373207370656e6465722c75696e74323536206e6f6e63652c75696e74323560608301527f3620646561646c696e652c000000000000000000000000000000000000000000608083015282519a8b9181610222602085018096611edc565b918237018a8152039961025b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09b8c8101835282611437565b5190209085515161026b81611e04565b908a5b8181106102f95750506102f6999a6102ed9183516102a081610294602082018095611eaf565b03848101835282611437565b519020602089810151858b015195519182019687526040820192909252336060820152608081019190915260a081019390935260643560c08401528260e081015b03908101835282611437565b51902093611c40565b80f35b8061031161030b610321938c5161175e565b51611f9d565b61031b828661175e565b52611e53565b61026e565b8880fd5b8780fd5b8480fd5b8380fd5b5080fd5b5091346103365760807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103365767ffffffffffffffff9080358281116103325761038b903690830161164b565b60243583811161032e576103a2903690840161161a565b9390926103ad6114e6565b9160643590811161049f576103c4913691016115c1565b949093835151976103d489611e04565b98885b81811061047d5750506102f697988151610425816103f9602082018095611eaf565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08101835282611437565b5190206020860151828701519083519260208401947ffcf35f5ac6a2c28868dc44c302166470266239195f02b0ee408334829333b7668652840152336060840152608083015260a082015260a081526102ed8161141b565b808b61031b8261049461030b61049a968d5161175e565b9261175e565b6103d7565b8680fd5b5082346105bf57602090817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103325780359067ffffffffffffffff821161032e576104f49136910161161a565b929091845b848110610504578580f35b8061051a61051560019388886118b5565b6118c5565b61052f84610529848a8a6118b5565b016118c5565b3389528385528589209173ffffffffffffffffffffffffffffffffffffffff80911692838b528652868a20911690818a5285528589207fffffffffffffffffffffffff000000000000000000000000000000000000000081541690558551918252848201527f89b1add15eff56b3dfe299ad94e01f2b52fbcb80ae1a3baea6ae8c04cb2b98a4853392a2016104f9565b8280fd5b50346103365760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261033657610676816105ff6114a0565b936106086114c3565b6106106114e6565b73ffffffffffffffffffffffffffffffffffffffff968716835260016020908152848420928816845291825283832090871683528152919020549251938316845260a083901c65ffffffffffff169084015260d09190911c604083015281906060820190565b0390f35b50346103365760807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610336576106b26114a0565b906106bb6114c3565b916106c46114e6565b65ffffffffffff926064358481169081810361032a5779ffffffffffff0000000000000000000000000000000000000000947fda9fa7c1b00402c17d0161b249b1ab8bbec047c5a52207b9c112deffd817036b94338a5260016020527fffffffffffff0000000000000000000000000000000000000000000000000000858b209873ffffffffffffffffffffffffffffffffffffffff809416998a8d5260205283878d209b169a8b8d52602052868c209486156000146107a457504216925b8454921697889360a01b16911617179055815193845260208401523392a480f35b905092610783565b5082346105bf5760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126105bf576107e56114a0565b906107ee6114c3565b9265ffffffffffff604435818116939084810361032a57338852602091600183528489209673ffffffffffffffffffffffffffffffffffffffff80911697888b528452858a20981697888a5283528489205460d01c93848711156109175761ffff9085840316116108f05750907f55eb90d810e1700b35a8e7e25395ff7f2b2259abd7415ca2284dfb1c246418f393929133895260018252838920878a528252838920888a5282528389209079ffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffff000000000000000000000000000000000000000000000000000083549260d01b16911617905582519485528401523392a480f35b84517f24d35a26000000000000000000000000000000000000000000000000000000008152fd5b5084517f756688fe000000000000000000000000000000000000000000000000000000008152fd5b503461033657807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610336578060209273ffffffffffffffffffffffffffffffffffffffff61098f6114a0565b1681528084528181206024358252845220549051908152f35b5082346105bf57817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126105bf577f3704902f963766a4e561bbaab6e6cdc1b1dd12f6e9e99648da8843b3f46b918d90359160243533855284602052818520848652602052818520818154179055815193845260208401523392a280f35b8234610a9a5760807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610a9a57610a606114a0565b610a686114c3565b610a706114e6565b6064359173ffffffffffffffffffffffffffffffffffffffff8316830361032e576102f6936117a1565b80fd5b503461033657817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261033657602090610ad7611a67565b9051908152f35b508290346105bf576101007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126105bf57610b1a3661152a565b90807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7c36011261033257610b4c611478565b9160e43567ffffffffffffffff8111610bda576102f694610b6f913691016115c1565b939092610b7c8351611f9d565b6020840151828501519083519260208401947f939c21a48a8dbe3a9a2404a1d46691e4d39f6583d6ec6b35714604c986d801068652840152336060840152608083015260a082015260a08152610bd18161141b565b51902091611b6e565b8580fd5b509134610336576101007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261033657610c186114a0565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc360160c08112610332576080855191610c51836113e3565b1261033257845190610c6282611398565b73ffffffffffffffffffffffffffffffffffffffff91602435838116810361049f578152604435838116810361049f57602082015265ffffffffffff606435818116810361032a5788830152608435908116810361049f576060820152815260a435938285168503610bda576020820194855260c4359087830182815260e43567ffffffffffffffff811161032657610cfe90369084016115c1565b929093804211610d88575050918591610d786102f6999a610d7e95610d238851611f07565b90898c511690519083519260208401947ff3841cd1ff0085026a6327b620b67997ce40f282c88a8e905a7a5626e310f3d086528401526060830152608082015260808152610d70816113ff565b519020611b22565b91612010565b51925116916118e6565b602492508a51917fcd21db4f000000000000000000000000000000000000000000000000000000008352820152fd5b5091346103365760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc93818536011261033257610df36114a0565b9260249081359267ffffffffffffffff9788851161032a578590853603011261049f578051978589018981108282111761104a578252848301358181116103265785019036602383011215610326578382013591610e50836115ef565b90610e5d85519283611437565b838252602093878584019160071b83010191368311611046578801905b828210610fe9575050508a526044610e93868801611509565b96838c01978852013594838b0191868352604435908111610fe557610ebb90369087016115c1565b959096804211610fba575050508998995151610ed681611e04565b908b5b818110610f9757505092889492610d7892610f6497958351610f02816103f98682018095611eaf565b5190209073ffffffffffffffffffffffffffffffffffffffff9a8b8b51169151928551948501957faf1b0d30d2cab0380e68f0689007e3254993c596f2fdd0aaa7f4d04f794408638752850152830152608082015260808152610d70816113ff565b51169082515192845b848110610f78578580f35b80610f918585610f8b600195875161175e565b516118e6565b01610f6d565b80610311610fac8e9f9e93610fb2945161175e565b51611f07565b9b9a9b610ed9565b8551917fcd21db4f000000000000000000000000000000000000000000000000000000008352820152fd5b8a80fd5b6080823603126110465785608091885161100281611398565b61100b85611509565b8152611018838601611509565b838201526110278a8601611607565b8a8201528d611037818701611607565b90820152815201910190610e7a565b8c80fd5b84896041867f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b5082346105bf576101407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126105bf576110b03661152a565b91807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7c360112610332576110e2611478565b67ffffffffffffffff93906101043585811161049f5761110590369086016115c1565b90936101243596871161032a57611125610bd1966102f6983691016115c1565b969095825190611134826113ff565b606482527f5065726d69745769746e6573735472616e7366657246726f6d28546f6b656e5060208301527f65726d697373696f6e73207065726d69747465642c6164647265737320737065848301527f6e6465722c75696e74323536206e6f6e63652c75696e7432353620646561646c60608301527f696e652c0000000000000000000000000000000000000000000000000000000060808301528351948591816111e3602085018096611edc565b918237018b8152039361121c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe095868101835282611437565b5190209261122a8651611f9d565b6020878101518589015195519182019687526040820192909252336060820152608081019190915260a081019390935260e43560c08401528260e081016102e1565b5082346105bf576020807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261033257813567ffffffffffffffff92838211610bda5736602383011215610bda5781013592831161032e576024906007368386831b8401011161049f57865b8581106112e5578780f35b80821b83019060807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc83360301126103265761139288876001946060835161132c81611398565b611368608461133c8d8601611509565b9485845261134c60448201611509565b809785015261135d60648201611509565b809885015201611509565b918291015273ffffffffffffffffffffffffffffffffffffffff80808093169516931691166117a1565b016112da565b6080810190811067ffffffffffffffff8211176113b457604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6060810190811067ffffffffffffffff8211176113b457604052565b60a0810190811067ffffffffffffffff8211176113b457604052565b60c0810190811067ffffffffffffffff8211176113b457604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176113b457604052565b60c4359073ffffffffffffffffffffffffffffffffffffffff8216820361149b57565b600080fd5b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361149b57565b6024359073ffffffffffffffffffffffffffffffffffffffff8216820361149b57565b6044359073ffffffffffffffffffffffffffffffffffffffff8216820361149b57565b359073ffffffffffffffffffffffffffffffffffffffff8216820361149b57565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc01906080821261149b576040805190611563826113e3565b8082941261149b57805181810181811067ffffffffffffffff8211176113b457825260043573ffffffffffffffffffffffffffffffffffffffff8116810361149b578152602435602082015282526044356020830152606435910152565b9181601f8401121561149b5782359167ffffffffffffffff831161149b576020838186019501011161149b57565b67ffffffffffffffff81116113b45760051b60200190565b359065ffffffffffff8216820361149b57565b9181601f8401121561149b5782359167ffffffffffffffff831161149b576020808501948460061b01011161149b57565b91909160608184031261149b576040805191611666836113e3565b8294813567ffffffffffffffff9081811161149b57830182601f8201121561149b578035611693816115ef565b926116a087519485611437565b818452602094858086019360061b8501019381851161149b579086899897969594939201925b8484106116e3575050505050855280820135908501520135910152565b90919293949596978483031261149b578851908982019082821085831117611730578a928992845261171487611509565b81528287013583820152815201930191908897969594936116c6565b602460007f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b80518210156117725760209160051b010190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b92919273ffffffffffffffffffffffffffffffffffffffff604060008284168152600160205282828220961695868252602052818120338252602052209485549565ffffffffffff8760a01c16804211611884575082871696838803611812575b5050611810955016926122fc565b565b878484161160001461184f57602488604051907ff96fb0710000000000000000000000000000000000000000000000000000000082526004820152fd5b7fffffffffffffffffffffffff000000000000000000000000000000000000000084846118109a031691161790553880611802565b602490604051907fd81b2f2e0000000000000000000000000000000000000000000000000000000082526004820152fd5b91908110156117725760061b0190565b3573ffffffffffffffffffffffffffffffffffffffff8116810361149b5790565b9065ffffffffffff908160608401511673ffffffffffffffffffffffffffffffffffffffff908185511694826020820151169280866040809401511695169560009187835260016020528383208984526020528383209916988983526020528282209184835460d01c03611a3e579185611a1794927fc6a377bfc4eb120024a8ac08eef205be16b817020812c73223e81d1bdb9708ec98979694508715600014611a1c5779ffffffffffff00000000000000000000000000000000000000009042165b60a01b167fffffffffffff00000000000000000000000000000000000000000000000000006001860160d01b1617179055519384938491604091949373ffffffffffffffffffffffffffffffffffffffff606085019616845265ffffffffffff809216602085015216910152565b0390a4565b5079ffffffffffff0000000000000000000000000000000000000000876119a9565b600484517f756688fe000000000000000000000000000000000000000000000000000000008152fd5b467f000000000000000000000000000000000000000000000000000000000000000003611ab2577f000000000000000000000000000000000000000000000000000000000000000090565b60405160208101907f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86682527f9ac997416e8ff9d2ff6bebeb7149f65cdae5e32e2b90440b566bb3044041d36a604082015246606082015230608082015260808152611b1c816113ff565b51902090565b611b2a611a67565b906040519060208201927f190100000000000000000000000000000000000000000000000000000000000084526022830152604282015260428152611b1c81611398565b9192909360a435936040840151804211611c0f5750602084510151808611611bde5750918591610d78611bae94611ba9602088015186611d90565b611b22565b73ffffffffffffffffffffffffffffffffffffffff809151511692608435918216820361149b57611810936122fc565b602490604051907f3728b83d0000000000000000000000000000000000000000000000000000000082526004820152fd5b602490604051907fcd21db4f0000000000000000000000000000000000000000000000000000000082526004820152fd5b959093958051519560409283830151804211611d605750848803611d3757611c77918691610d7860209b611ba98d88015186611d90565b60005b868110611c8b575050505050505050565b611c9681835161175e565b5188611ca383878a6118b5565b01359089810151808311611d07575091818888886001968596611ccd575b50505050505001611c7a565b611cfc95611cf69273ffffffffffffffffffffffffffffffffffffffff610515935116956118b5565b916122fc565b803888888883611cc1565b6024908651907f3728b83d0000000000000000000000000000000000000000000000000000000082526004820152fd5b600484517fff633a38000000000000000000000000000000000000000000000000000000008152fd5b6024908551907fcd21db4f0000000000000000000000000000000000000000000000000000000082526004820152fd5b9073ffffffffffffffffffffffffffffffffffffffff600160ff83161b9216600052600060205260406000209060081c6000526020526040600020818154188091551615611dda57565b60046040517f756688fe000000000000000000000000000000000000000000000000000000008152fd5b90611e0e826115ef565b611e1b6040519182611437565b8281527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0611e4982946115ef565b0190602036910137565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114611e805760010190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b805160208092019160005b828110611ec8575050505090565b835185529381019392810192600101611eba565b9081519160005b838110611ef4575050016000815290565b8060208092840101518185015201611ee3565b60405160208101917f65626cad6cb96493bf6f5ebea28756c966f023ab9e8a83a7101849d5573b3678835273ffffffffffffffffffffffffffffffffffffffff8082511660408401526020820151166060830152606065ffffffffffff9182604082015116608085015201511660a082015260a0815260c0810181811067ffffffffffffffff8211176113b45760405251902090565b6040516020808201927f618358ac3db8dc274f0cd8829da7e234bd48cd73c4a740aede1adec9846d06a1845273ffffffffffffffffffffffffffffffffffffffff81511660408401520151606082015260608152611b1c81611398565b919082604091031261149b576020823592013590565b6000843b6121775750604182036120f55761202d82820182611ffa565b939092604010156117725760209360009360ff6040608095013560f81c5b60405194855216868401526040830152606082015282805260015afa156120e95773ffffffffffffffffffffffffffffffffffffffff80600051169182156120bf57160361209557565b60046040517f815e1d64000000000000000000000000000000000000000000000000000000008152fd5b60046040517f8baa579f000000000000000000000000000000000000000000000000000000008152fd5b6040513d6000823e3d90fd5b6040820361214d5761210991810190611ffa565b91601b7f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84169360ff1c019060ff8211611e805760209360009360ff60809461204b565b60046040517f4be6321b000000000000000000000000000000000000000000000000000000008152fd5b929391601f928173ffffffffffffffffffffffffffffffffffffffff60646020957fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0604051988997889687947f1626ba7e000000000000000000000000000000000000000000000000000000009e8f8752600487015260406024870152816044870152868601378b85828601015201168101030192165afa9081156122f1578291612273575b507fffffffff000000000000000000000000000000000000000000000000000000009150160361224957565b60046040517fb0669cbc000000000000000000000000000000000000000000000000000000008152fd5b90506020813d82116122e9575b8161228d60209383611437565b810103126103365751907fffffffff0000000000000000000000000000000000000000000000000000000082168203610a9a57507fffffffff00000000000000000000000000000000000000000000000000000000903861221d565b3d9150612280565b6040513d84823e3d90fd5b9060006064926020958295604051947f23b872dd0000000000000000000000000000000000000000000000000000000086526004860152602485015260448401525af13d15601f3d116001600051141617161561235557565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f5452414e534645525f46524f4d5f4641494c45440000000000000000000000006044820152fdfea164736f6c6343000811000a";
907
+ export class Permit2__factory extends ContractFactory {
908
+ constructor(...args) {
909
+ if (args.length === 1) {
910
+ super(_abi, _bytecode, args[0]);
911
+ }
912
+ else {
913
+ super(...args);
914
+ }
915
+ }
916
+ deploy(overrides) {
917
+ return super.deploy(overrides || {});
918
+ }
919
+ getDeployTransaction(overrides) {
920
+ return super.getDeployTransaction(overrides || {});
921
+ }
922
+ attach(address) {
923
+ return super.attach(address);
924
+ }
925
+ connect(signer) {
926
+ return super.connect(signer);
927
+ }
928
+ static createInterface() {
929
+ return new utils.Interface(_abi);
930
+ }
931
+ static connect(address, signerOrProvider) {
932
+ return new Contract(address, _abi, signerOrProvider);
933
+ }
934
+ }
935
+ Permit2__factory.bytecode = _bytecode;
936
+ Permit2__factory.abi = _abi;
937
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUGVybWl0Ml9fZmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy90eXBlcy9vdGhlci9mYWN0b3JpZXMvUGVybWl0Ml9fZmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrQ0FBK0M7QUFDL0Msb0JBQW9CO0FBQ3BCLG9CQUFvQjtBQUVwQixPQUFPLEVBQVUsS0FBSyxFQUFFLFFBQVEsRUFBRSxlQUFlLEVBQWEsTUFBTSxRQUFRLENBQUM7QUFJN0UsTUFBTSxJQUFJLEdBQUc7SUFDWDtRQUNFLE1BQU0sRUFBRTtZQUNOO2dCQUNFLFlBQVksRUFBRSxTQUFTO2dCQUN2QixJQUFJLEVBQUUsVUFBVTtnQkFDaEIsSUFBSSxFQUFFLFNBQVM7YUFDaEI7U0FDRjtRQUNELElBQUksRUFBRSxrQkFBa0I7UUFDeEIsSUFBSSxFQUFFLE9BQU87S0FDZDtJQUNEO1FBQ0UsTUFBTSxFQUFFLEVBQUU7UUFDVixJQUFJLEVBQUUsdUJBQXVCO1FBQzdCLElBQUksRUFBRSxPQUFPO0tBQ2Q7SUFDRDtRQUNFLE1BQU0sRUFBRTtZQUNOO2dCQUNFLFlBQVksRUFBRSxTQUFTO2dCQUN2QixJQUFJLEVBQUUsUUFBUTtnQkFDZCxJQUFJLEVBQUUsU0FBUzthQUNoQjtTQUNGO1FBQ0QsSUFBSSxFQUFFLHVCQUF1QjtRQUM3QixJQUFJLEVBQUUsT0FBTztLQUNkO0lBQ0Q7UUFDRSxNQUFNLEVBQUU7WUFDTjtnQkFDRSxZQUFZLEVBQUUsU0FBUztnQkFDdkIsSUFBSSxFQUFFLFdBQVc7Z0JBQ2pCLElBQUksRUFBRSxTQUFTO2FBQ2hCO1NBQ0Y7UUFDRCxJQUFJLEVBQUUsZUFBZTtRQUNyQixJQUFJLEVBQUUsT0FBTztLQUNkO0lBQ0Q7UUFDRSxNQUFNLEVBQUUsRUFBRTtRQUNWLElBQUksRUFBRSwwQkFBMEI7UUFDaEMsSUFBSSxFQUFFLE9BQU87S0FDZDtJQUNEO1FBQ0UsTUFBTSxFQUFFLEVBQUU7UUFDVixJQUFJ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