viem 0.0.1-cjs.10 → 0.0.1-sushi.26

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 (532) hide show
  1. package/contract/package.json +4 -0
  2. package/dist/call-ac509982.d.ts +23 -0
  3. package/dist/chain-c4ccb458.d.ts +5 -0
  4. package/dist/{rpc-b77c5aee.d.ts → chain-f16512e8.d.ts} +97 -17
  5. package/dist/chains.d.ts +1303 -74
  6. package/dist/chains.js +81 -85
  7. package/dist/chains.js.map +1 -0
  8. package/dist/chains.mjs +121 -125
  9. package/dist/chains.mjs.map +1 -0
  10. package/dist/chunk-2PFNLP3F.js +192 -0
  11. package/dist/chunk-2PFNLP3F.js.map +1 -0
  12. package/dist/chunk-5ND4P6QL.mjs +192 -0
  13. package/dist/chunk-5ND4P6QL.mjs.map +1 -0
  14. package/dist/{chunk-5ZBNF5WM.js → chunk-NXCI5KQC.js} +769 -359
  15. package/dist/chunk-NXCI5KQC.js.map +1 -0
  16. package/dist/{chunk-HLVCJ7RV.mjs → chunk-O7T5NQLB.mjs} +484 -477
  17. package/dist/chunk-O7T5NQLB.mjs.map +1 -0
  18. package/dist/{chunk-2FDH6XP5.mjs → chunk-SD5X7F4U.mjs} +777 -367
  19. package/dist/chunk-SD5X7F4U.mjs.map +1 -0
  20. package/dist/{chunk-46ZFLVHC.js → chunk-UTL6F7UN.js} +519 -512
  21. package/dist/chunk-UTL6F7UN.js.map +1 -0
  22. package/dist/contract-9e76e561.d.ts +166 -0
  23. package/dist/contract.d.ts +123 -0
  24. package/dist/contract.js +53 -0
  25. package/dist/contract.js.map +1 -0
  26. package/dist/contract.mjs +53 -0
  27. package/dist/contract.mjs.map +1 -0
  28. package/dist/createClient-68ee4bb4.d.ts +62 -0
  29. package/dist/createPublicClient-b732194e.d.ts +19 -0
  30. package/dist/createTestClient-dedf321e.d.ts +34 -0
  31. package/dist/createWalletClient-75813d83.d.ts +30 -0
  32. package/dist/decodeErrorResult-0b934d23.d.ts +16 -0
  33. package/dist/{eip1193-020a6f13.d.ts → eip1193-6f9ba163.d.ts} +12 -9
  34. package/dist/ens.d.ts +82 -0
  35. package/dist/ens.js +216 -0
  36. package/dist/ens.js.map +1 -0
  37. package/dist/ens.mjs +216 -0
  38. package/dist/ens.mjs.map +1 -0
  39. package/dist/getAbiItem-c8e6e7d4.d.ts +97 -0
  40. package/dist/index.d.ts +128 -33
  41. package/dist/index.js +240 -244
  42. package/dist/index.js.map +1 -0
  43. package/dist/index.mjs +257 -261
  44. package/dist/index.mjs.map +1 -0
  45. package/dist/public.d.ts +353 -0
  46. package/dist/public.js +58 -0
  47. package/dist/public.js.map +1 -0
  48. package/dist/public.mjs +58 -0
  49. package/dist/public.mjs.map +1 -0
  50. package/dist/readContract-4f6e2692.d.ts +10 -0
  51. package/dist/rpc-a5a7f376.d.ts +121 -0
  52. package/dist/sendTransaction-e713f90c.d.ts +12 -0
  53. package/dist/test.d.ts +161 -0
  54. package/dist/test.js +264 -0
  55. package/dist/test.js.map +1 -0
  56. package/dist/test.mjs +264 -0
  57. package/dist/test.mjs.map +1 -0
  58. package/dist/transactionReceipt-2a86c7c7.d.ts +26 -0
  59. package/dist/transactionRequest-c7794f5e.d.ts +15 -0
  60. package/dist/utils/index.d.ts +238 -24
  61. package/dist/utils/index.js +27 -2
  62. package/dist/utils/index.js.map +1 -0
  63. package/dist/utils/index.mjs +30 -5
  64. package/dist/utils/index.mjs.map +1 -0
  65. package/dist/wallet.d.ts +42 -0
  66. package/dist/wallet.js +24 -0
  67. package/dist/wallet.js.map +1 -0
  68. package/dist/wallet.mjs +24 -0
  69. package/dist/wallet.mjs.map +1 -0
  70. package/dist/watchEvent-c346c12d.d.ts +41 -0
  71. package/dist/window.d.ts +3 -2
  72. package/dist/window.js +1 -1
  73. package/dist/window.js.map +1 -0
  74. package/dist/window.mjs +1 -0
  75. package/dist/window.mjs.map +1 -0
  76. package/ens/package.json +4 -0
  77. package/package.json +40 -72
  78. package/src/_test/abis.ts +1420 -0
  79. package/src/_test/bench.ts +15 -0
  80. package/src/_test/constants.ts +63 -0
  81. package/src/_test/generated.ts +128 -0
  82. package/src/_test/globalSetup.ts +11 -0
  83. package/src/_test/index.ts +25 -0
  84. package/src/_test/setup.ts +8 -0
  85. package/src/_test/utils.ts +155 -0
  86. package/src/actions/ens/getEnsAddress.bench.ts +26 -0
  87. package/src/actions/ens/getEnsAddress.test.ts +97 -0
  88. package/src/actions/ens/getEnsAddress.ts +122 -0
  89. package/src/actions/ens/getEnsName.bench.ts +30 -0
  90. package/src/actions/ens/getEnsName.test.ts +101 -0
  91. package/src/actions/ens/getEnsName.ts +106 -0
  92. package/src/actions/ens/index.test.ts +12 -0
  93. package/src/actions/ens/index.ts +3 -0
  94. package/src/actions/index.test.ts +81 -0
  95. package/src/actions/index.ts +182 -0
  96. package/src/actions/public/call.bench.ts +48 -0
  97. package/src/actions/public/call.test.ts +99 -0
  98. package/src/actions/public/call.ts +97 -0
  99. package/src/actions/public/createBlockFilter.bench.ts +11 -0
  100. package/src/actions/public/createBlockFilter.test.ts +9 -0
  101. package/src/actions/public/createBlockFilter.ts +14 -0
  102. package/src/actions/public/createContractEventFilter.test.ts +119 -0
  103. package/src/actions/public/createContractEventFilter.ts +69 -0
  104. package/src/actions/public/createEventFilter.test.ts +277 -0
  105. package/src/actions/public/createEventFilter.ts +93 -0
  106. package/src/actions/public/createPendingTransactionFilter.bench.ts +11 -0
  107. package/src/actions/public/createPendingTransactionFilter.test.ts +9 -0
  108. package/src/actions/public/createPendingTransactionFilter.ts +14 -0
  109. package/src/actions/public/estimateGas.bench.ts +46 -0
  110. package/src/actions/public/estimateGas.test.ts +92 -0
  111. package/src/actions/public/estimateGas.ts +61 -0
  112. package/src/actions/public/getBalance.test.ts +83 -0
  113. package/src/actions/public/getBalance.ts +37 -0
  114. package/src/actions/public/getBlock.bench.ts +28 -0
  115. package/src/actions/public/getBlock.test.ts +575 -0
  116. package/src/actions/public/getBlock.ts +65 -0
  117. package/src/actions/public/getBlockNumber.bench.ts +28 -0
  118. package/src/actions/public/getBlockNumber.test.ts +27 -0
  119. package/src/actions/public/getBlockNumber.ts +32 -0
  120. package/src/actions/public/getBlockTransactionCount.bench.ts +15 -0
  121. package/src/actions/public/getBlockTransactionCount.test.ts +57 -0
  122. package/src/actions/public/getBlockTransactionCount.ts +52 -0
  123. package/src/actions/public/getBytecode.test.ts +27 -0
  124. package/src/actions/public/getBytecode.ts +32 -0
  125. package/src/actions/public/getChainId.bench.ts +15 -0
  126. package/src/actions/public/getChainId.test.ts +8 -0
  127. package/src/actions/public/getChainId.ts +7 -0
  128. package/src/actions/public/getFeeHistory.bench.ts +18 -0
  129. package/src/actions/public/getFeeHistory.test.ts +137 -0
  130. package/src/actions/public/getFeeHistory.ts +44 -0
  131. package/src/actions/public/getFilterChanges.bench.ts +13 -0
  132. package/src/actions/public/getFilterChanges.test.ts +383 -0
  133. package/src/actions/public/getFilterChanges.ts +23 -0
  134. package/src/actions/public/getFilterLogs.test.ts +297 -0
  135. package/src/actions/public/getFilterLogs.ts +20 -0
  136. package/src/actions/public/getGasPrice.bench.ts +19 -0
  137. package/src/actions/public/getGasPrice.test.ts +8 -0
  138. package/src/actions/public/getGasPrice.ts +15 -0
  139. package/src/actions/public/getLogs.test.ts +306 -0
  140. package/src/actions/public/getLogs.ts +84 -0
  141. package/src/actions/public/getStorageAt.test.ts +34 -0
  142. package/src/actions/public/getStorageAt.ts +32 -0
  143. package/src/actions/public/getTransaction.bench.ts +33 -0
  144. package/src/actions/public/getTransaction.test.ts +311 -0
  145. package/src/actions/public/getTransaction.ts +95 -0
  146. package/src/actions/public/getTransactionConfirmations.test.ts +69 -0
  147. package/src/actions/public/getTransactionConfirmations.ts +38 -0
  148. package/src/actions/public/getTransactionCount.test.ts +56 -0
  149. package/src/actions/public/getTransactionCount.ts +34 -0
  150. package/src/actions/public/getTransactionReceipt.bench.ts +33 -0
  151. package/src/actions/public/getTransactionReceipt.test.ts +179 -0
  152. package/src/actions/public/getTransactionReceipt.ts +34 -0
  153. package/src/actions/public/index.test.ts +43 -0
  154. package/src/actions/public/index.ts +146 -0
  155. package/src/actions/public/multicall.test.ts +452 -0
  156. package/src/actions/public/multicall.ts +108 -0
  157. package/src/actions/public/readContract.test.ts +328 -0
  158. package/src/actions/public/readContract.ts +73 -0
  159. package/src/actions/public/simulateContract.bench.ts +41 -0
  160. package/src/actions/public/simulateContract.test.ts +410 -0
  161. package/src/actions/public/simulateContract.ts +91 -0
  162. package/src/actions/public/uninstallFilter.bench.ts +13 -0
  163. package/src/actions/public/uninstallFilter.test.ts +65 -0
  164. package/src/actions/public/uninstallFilter.ts +17 -0
  165. package/src/actions/public/waitForTransactionReceipt.test.ts +322 -0
  166. package/src/actions/public/waitForTransactionReceipt.ts +170 -0
  167. package/src/actions/public/watchBlockNumber.test.ts +166 -0
  168. package/src/actions/public/watchBlockNumber.ts +79 -0
  169. package/src/actions/public/watchBlocks.test.ts +210 -0
  170. package/src/actions/public/watchBlocks.ts +114 -0
  171. package/src/actions/public/watchContractEvent.test.ts +305 -0
  172. package/src/actions/public/watchContractEvent.ts +108 -0
  173. package/src/actions/public/watchEvent.test.ts +195 -0
  174. package/src/actions/public/watchEvent.ts +95 -0
  175. package/src/actions/public/watchPendingTransactions.test.ts +116 -0
  176. package/src/actions/public/watchPendingTransactions.ts +74 -0
  177. package/src/actions/test/dropTransaction.test.ts +34 -0
  178. package/src/actions/test/dropTransaction.ts +17 -0
  179. package/src/actions/test/getAutomine.test.ts +14 -0
  180. package/src/actions/test/getAutomine.ts +11 -0
  181. package/src/actions/test/getTxpoolContent.test.ts +45 -0
  182. package/src/actions/test/getTxpoolContent.ts +7 -0
  183. package/src/actions/test/getTxpoolStatus.test.ts +41 -0
  184. package/src/actions/test/getTxpoolStatus.ts +12 -0
  185. package/src/actions/test/impersonateAccount.test.ts +26 -0
  186. package/src/actions/test/impersonateAccount.ts +17 -0
  187. package/src/actions/test/increaseTime.test.ts +18 -0
  188. package/src/actions/test/increaseTime.ts +17 -0
  189. package/src/actions/test/index.test.ts +38 -0
  190. package/src/actions/test/index.ts +77 -0
  191. package/src/actions/test/inspectTxpool.test.ts +50 -0
  192. package/src/actions/test/inspectTxpool.ts +7 -0
  193. package/src/actions/test/mine.test.ts +20 -0
  194. package/src/actions/test/mine.ts +16 -0
  195. package/src/actions/test/removeBlockTimestampInterval.test.ts +23 -0
  196. package/src/actions/test/removeBlockTimestampInterval.ts +7 -0
  197. package/src/actions/test/reset.test.ts +19 -0
  198. package/src/actions/test/reset.ts +18 -0
  199. package/src/actions/test/revert.test.ts +39 -0
  200. package/src/actions/test/revert.ts +14 -0
  201. package/src/actions/test/sendUnsignedTransaction.test.ts +52 -0
  202. package/src/actions/test/sendUnsignedTransaction.ts +19 -0
  203. package/src/actions/test/setAutomine.test.ts +14 -0
  204. package/src/actions/test/setAutomine.ts +8 -0
  205. package/src/actions/test/setBalance.test.ts +29 -0
  206. package/src/actions/test/setBalance.ts +20 -0
  207. package/src/actions/test/setBlockGasLimit.test.ts +21 -0
  208. package/src/actions/test/setBlockGasLimit.ts +17 -0
  209. package/src/actions/test/setBlockTimestampInterval.test.ts +23 -0
  210. package/src/actions/test/setBlockTimestampInterval.ts +16 -0
  211. package/src/actions/test/setCode.test.ts +26 -0
  212. package/src/actions/test/setCode.ts +19 -0
  213. package/src/actions/test/setCoinbase.test.ts +11 -0
  214. package/src/actions/test/setCoinbase.ts +17 -0
  215. package/src/actions/test/setIntervalMining.test.ts +30 -0
  216. package/src/actions/test/setIntervalMining.ts +16 -0
  217. package/src/actions/test/setLoggingEnabled.test.ts +10 -0
  218. package/src/actions/test/setLoggingEnabled.ts +8 -0
  219. package/src/actions/test/setMinGasPrice.test.ts +22 -0
  220. package/src/actions/test/setMinGasPrice.ts +17 -0
  221. package/src/actions/test/setNextBlockBaseFeePerGas.test.ts +23 -0
  222. package/src/actions/test/setNextBlockBaseFeePerGas.ts +17 -0
  223. package/src/actions/test/setNextBlockTimestamp.test.ts +19 -0
  224. package/src/actions/test/setNextBlockTimestamp.ts +17 -0
  225. package/src/actions/test/setNonce.test.ts +28 -0
  226. package/src/actions/test/setNonce.ts +20 -0
  227. package/src/actions/test/setRpcUrl.test.ts +9 -0
  228. package/src/actions/test/setRpcUrl.ts +8 -0
  229. package/src/actions/test/setStorageAt.test.ts +36 -0
  230. package/src/actions/test/setStorageAt.ts +26 -0
  231. package/src/actions/test/snapshot.test.ts +18 -0
  232. package/src/actions/test/snapshot.ts +7 -0
  233. package/src/actions/test/stopImpersonatingAccount.test.ts +29 -0
  234. package/src/actions/test/stopImpersonatingAccount.ts +17 -0
  235. package/src/actions/wallet/addChain.test.ts +14 -0
  236. package/src/actions/wallet/addChain.ts +21 -0
  237. package/src/actions/wallet/deployContract.test.ts +55 -0
  238. package/src/actions/wallet/deployContract.ts +38 -0
  239. package/src/actions/wallet/getAccounts.test.ts +22 -0
  240. package/src/actions/wallet/getAccounts.ts +7 -0
  241. package/src/actions/wallet/getPermissions.test.ts +24 -0
  242. package/src/actions/wallet/getPermissions.ts +9 -0
  243. package/src/actions/wallet/index.test.ts +21 -0
  244. package/src/actions/wallet/index.ts +36 -0
  245. package/src/actions/wallet/requestAccounts.test.ts +13 -0
  246. package/src/actions/wallet/requestAccounts.ts +7 -0
  247. package/src/actions/wallet/requestPermissions.test.ts +26 -0
  248. package/src/actions/wallet/requestPermissions.ts +19 -0
  249. package/src/actions/wallet/sendTransaction.bench.ts +57 -0
  250. package/src/actions/wallet/sendTransaction.test.ts +440 -0
  251. package/src/actions/wallet/sendTransaction.ts +77 -0
  252. package/src/actions/wallet/signMessage.test.ts +61 -0
  253. package/src/actions/wallet/signMessage.ts +35 -0
  254. package/src/actions/wallet/switchChain.test.ts +21 -0
  255. package/src/actions/wallet/switchChain.ts +19 -0
  256. package/src/actions/wallet/watchAsset.test.ts +40 -0
  257. package/src/actions/wallet/watchAsset.ts +16 -0
  258. package/src/actions/wallet/writeContract.test.ts +84 -0
  259. package/src/actions/wallet/writeContract.ts +47 -0
  260. package/src/chains.test.ts +439 -0
  261. package/src/chains.ts +99 -0
  262. package/src/clients/createClient.test.ts +295 -0
  263. package/src/clients/createClient.ts +81 -0
  264. package/src/clients/createPublicClient.test.ts +165 -0
  265. package/src/clients/createPublicClient.ts +49 -0
  266. package/src/clients/createTestClient.test.ts +145 -0
  267. package/src/clients/createTestClient.ts +72 -0
  268. package/src/clients/createWalletClient.test.ts +121 -0
  269. package/src/clients/createWalletClient.ts +54 -0
  270. package/src/clients/index.test.ts +19 -0
  271. package/src/clients/index.ts +31 -0
  272. package/src/clients/transports/createTransport.test.ts +58 -0
  273. package/src/clients/transports/createTransport.ts +48 -0
  274. package/src/clients/transports/custom.test.ts +98 -0
  275. package/src/clients/transports/custom.ts +34 -0
  276. package/src/clients/transports/fallback.test.ts +393 -0
  277. package/src/clients/transports/fallback.ts +58 -0
  278. package/src/clients/transports/http.test.ts +109 -0
  279. package/src/clients/transports/http.ts +51 -0
  280. package/src/clients/transports/index.test.ts +15 -0
  281. package/src/clients/transports/index.ts +17 -0
  282. package/src/clients/transports/webSocket.test.ts +164 -0
  283. package/src/clients/transports/webSocket.ts +118 -0
  284. package/src/constants/abis.test.ts +53 -0
  285. package/src/constants/abis.ts +44 -0
  286. package/src/constants/index.test.ts +14 -0
  287. package/src/constants/index.ts +3 -0
  288. package/src/constants/solidity.test.ts +41 -0
  289. package/src/constants/solidity.ts +35 -0
  290. package/src/contract.test.ts +32 -0
  291. package/src/contract.ts +68 -0
  292. package/src/ens.test.ts +15 -0
  293. package/src/ens.ts +8 -0
  294. package/src/errors/abi.test.ts +81 -0
  295. package/src/errors/abi.ts +254 -0
  296. package/src/errors/address.test.ts +14 -0
  297. package/src/errors/address.ts +9 -0
  298. package/src/errors/base.test.ts +114 -0
  299. package/src/errors/base.ts +57 -0
  300. package/src/errors/block.test.ts +24 -0
  301. package/src/errors/block.ts +18 -0
  302. package/src/errors/chain.test.ts +46 -0
  303. package/src/errors/chain.ts +33 -0
  304. package/src/errors/contract.test.ts +233 -0
  305. package/src/errors/contract.ts +178 -0
  306. package/src/errors/data.ts +20 -0
  307. package/src/errors/encoding.ts +60 -0
  308. package/src/errors/index.ts +82 -0
  309. package/src/errors/log.ts +8 -0
  310. package/src/errors/request.test.ts +330 -0
  311. package/src/errors/request.ts +163 -0
  312. package/src/errors/rpc.test.ts +87 -0
  313. package/src/errors/rpc.ts +113 -0
  314. package/src/errors/transaction.test.ts +83 -0
  315. package/src/errors/transaction.ts +54 -0
  316. package/src/errors/transport.test.ts +11 -0
  317. package/src/errors/transport.ts +12 -0
  318. package/src/index.test.ts +116 -0
  319. package/src/index.ts +132 -0
  320. package/src/public.test.ts +36 -0
  321. package/src/public.ts +76 -0
  322. package/src/test.test.ts +38 -0
  323. package/src/test.ts +52 -0
  324. package/src/types/block.ts +71 -0
  325. package/src/types/chain.ts +6 -0
  326. package/src/types/contract.ts +497 -0
  327. package/src/types/eip1193.ts +1041 -0
  328. package/src/types/fee.ts +47 -0
  329. package/src/types/filter.ts +8 -0
  330. package/src/types/formatter.ts +23 -0
  331. package/src/types/index.ts +84 -0
  332. package/src/types/log.ts +22 -0
  333. package/src/types/misc.ts +5 -0
  334. package/src/types/multicall.ts +82 -0
  335. package/src/types/rpc.ts +35 -0
  336. package/src/types/transaction.ts +145 -0
  337. package/src/types/utils.ts +88 -0
  338. package/src/types/window.ts +9 -0
  339. package/src/utils/abi/decodeAbi.bench.ts +135 -0
  340. package/src/utils/abi/decodeAbi.test.ts +1614 -0
  341. package/src/utils/abi/decodeAbi.ts +300 -0
  342. package/src/utils/abi/decodeDeployData.test.ts +151 -0
  343. package/src/utils/abi/decodeDeployData.ts +44 -0
  344. package/src/utils/abi/decodeErrorResult.test.ts +230 -0
  345. package/src/utils/abi/decodeErrorResult.ts +45 -0
  346. package/src/utils/abi/decodeEventLog.test.ts +542 -0
  347. package/src/utils/abi/decodeEventLog.ts +107 -0
  348. package/src/utils/abi/decodeFunctionData.test.ts +138 -0
  349. package/src/utils/abi/decodeFunctionData.ts +32 -0
  350. package/src/utils/abi/decodeFunctionResult.test.ts +333 -0
  351. package/src/utils/abi/decodeFunctionResult.ts +57 -0
  352. package/src/utils/abi/encodeAbi.bench.ts +163 -0
  353. package/src/utils/abi/encodeAbi.test.ts +1447 -0
  354. package/src/utils/abi/encodeAbi.ts +273 -0
  355. package/src/utils/abi/encodeDeployData.test.ts +124 -0
  356. package/src/utils/abi/encodeDeployData.ts +40 -0
  357. package/src/utils/abi/encodeErrorResult.test.ts +192 -0
  358. package/src/utils/abi/encodeErrorResult.ts +47 -0
  359. package/src/utils/abi/encodeEventTopics.test.ts +345 -0
  360. package/src/utils/abi/encodeEventTopics.ts +75 -0
  361. package/src/utils/abi/encodeFunctionData.test.ts +138 -0
  362. package/src/utils/abi/encodeFunctionData.ts +42 -0
  363. package/src/utils/abi/encodeFunctionResult.test.ts +279 -0
  364. package/src/utils/abi/encodeFunctionResult.ts +41 -0
  365. package/src/utils/abi/formatAbiItem.test.ts +335 -0
  366. package/src/utils/abi/formatAbiItem.ts +41 -0
  367. package/src/utils/abi/formatAbiItemWithArgs.test.ts +291 -0
  368. package/src/utils/abi/formatAbiItemWithArgs.ts +27 -0
  369. package/src/utils/abi/getAbiItem.test.ts +547 -0
  370. package/src/utils/abi/getAbiItem.ts +95 -0
  371. package/src/utils/abi/index.test.ts +24 -0
  372. package/src/utils/abi/index.ts +48 -0
  373. package/src/utils/address/getAddress.bench.ts +22 -0
  374. package/src/utils/address/getAddress.test.ts +46 -0
  375. package/src/utils/address/getAddress.ts +28 -0
  376. package/src/utils/address/getContractAddress.bench.ts +20 -0
  377. package/src/utils/address/getContractAddress.test.ts +78 -0
  378. package/src/utils/address/getContractAddress.ts +59 -0
  379. package/src/utils/address/index.test.ts +17 -0
  380. package/src/utils/address/index.ts +16 -0
  381. package/src/utils/address/isAddress.test.ts +10 -0
  382. package/src/utils/address/isAddress.ts +10 -0
  383. package/src/utils/address/isAddressEqual.test.ts +55 -0
  384. package/src/utils/address/isAddressEqual.ts +6 -0
  385. package/src/utils/buildRequest.test.ts +428 -0
  386. package/src/utils/buildRequest.ts +72 -0
  387. package/src/utils/chain.test.ts +43 -0
  388. package/src/utils/chain.ts +8 -0
  389. package/src/utils/contract/extractFunctionParts.test.ts +109 -0
  390. package/src/utils/contract/extractFunctionParts.ts +27 -0
  391. package/src/utils/contract/getContractError.test.ts +282 -0
  392. package/src/utils/contract/getContractError.ts +58 -0
  393. package/src/utils/contract/index.test.ts +15 -0
  394. package/src/utils/contract/index.ts +8 -0
  395. package/src/utils/data/concat.test.ts +35 -0
  396. package/src/utils/data/concat.ts +34 -0
  397. package/src/utils/data/index.test.ts +23 -0
  398. package/src/utils/data/index.ts +13 -0
  399. package/src/utils/data/isBytes.test.ts +9 -0
  400. package/src/utils/data/isBytes.ts +7 -0
  401. package/src/utils/data/isHex.test.ts +13 -0
  402. package/src/utils/data/isHex.ts +5 -0
  403. package/src/utils/data/pad.bench.ts +30 -0
  404. package/src/utils/data/pad.test.ts +367 -0
  405. package/src/utils/data/pad.ts +53 -0
  406. package/src/utils/data/size.test.ts +18 -0
  407. package/src/utils/data/size.ts +13 -0
  408. package/src/utils/data/slice.test.ts +203 -0
  409. package/src/utils/data/slice.ts +60 -0
  410. package/src/utils/data/trim.bench.ts +34 -0
  411. package/src/utils/data/trim.test.ts +175 -0
  412. package/src/utils/data/trim.ts +33 -0
  413. package/src/utils/encoding/decodeBytes.bench.ts +40 -0
  414. package/src/utils/encoding/decodeBytes.test.ts +144 -0
  415. package/src/utils/encoding/decodeBytes.ts +63 -0
  416. package/src/utils/encoding/decodeHex.bench.ts +24 -0
  417. package/src/utils/encoding/decodeHex.test.ts +167 -0
  418. package/src/utils/encoding/decodeHex.ts +76 -0
  419. package/src/utils/encoding/decodeRlp.bench.ts +34 -0
  420. package/src/utils/encoding/decodeRlp.test.ts +350 -0
  421. package/src/utils/encoding/decodeRlp.ts +121 -0
  422. package/src/utils/encoding/encodeBytes.bench.ts +29 -0
  423. package/src/utils/encoding/encodeBytes.test.ts +676 -0
  424. package/src/utils/encoding/encodeBytes.ts +59 -0
  425. package/src/utils/encoding/encodeHex.bench.ts +49 -0
  426. package/src/utils/encoding/encodeHex.test.ts +232 -0
  427. package/src/utils/encoding/encodeHex.ts +104 -0
  428. package/src/utils/encoding/encodeRlp.bench.ts +54 -0
  429. package/src/utils/encoding/encodeRlp.test.ts +254 -0
  430. package/src/utils/encoding/encodeRlp.ts +48 -0
  431. package/src/utils/encoding/index.test.ts +32 -0
  432. package/src/utils/encoding/index.ts +36 -0
  433. package/src/utils/ens/index.test.ts +14 -0
  434. package/src/utils/ens/index.ts +7 -0
  435. package/src/utils/ens/labelhash.test.ts +55 -0
  436. package/src/utils/ens/labelhash.ts +16 -0
  437. package/src/utils/ens/namehash.test.ts +65 -0
  438. package/src/utils/ens/namehash.ts +28 -0
  439. package/src/utils/ens/normalize.bench.ts +14 -0
  440. package/src/utils/ens/normalize.test.ts +35 -0
  441. package/src/utils/ens/normalize.ts +14 -0
  442. package/src/utils/ens/packetToBytes.test.ts +11 -0
  443. package/src/utils/ens/packetToBytes.ts +29 -0
  444. package/src/utils/formatters/block.bench.ts +51 -0
  445. package/src/utils/formatters/block.test.ts +115 -0
  446. package/src/utils/formatters/block.ts +37 -0
  447. package/src/utils/formatters/extract.test.ts +14 -0
  448. package/src/utils/formatters/extract.ts +18 -0
  449. package/src/utils/formatters/feeHistory.test.ts +66 -0
  450. package/src/utils/formatters/feeHistory.ts +12 -0
  451. package/src/utils/formatters/format.test.ts +93 -0
  452. package/src/utils/formatters/format.ts +90 -0
  453. package/src/utils/formatters/index.test.ts +27 -0
  454. package/src/utils/formatters/index.ts +34 -0
  455. package/src/utils/formatters/log.test.ts +79 -0
  456. package/src/utils/formatters/log.ts +12 -0
  457. package/src/utils/formatters/transaction.test.ts +271 -0
  458. package/src/utils/formatters/transaction.ts +63 -0
  459. package/src/utils/formatters/transactionReceipt.bench.ts +73 -0
  460. package/src/utils/formatters/transactionReceipt.test.ts +151 -0
  461. package/src/utils/formatters/transactionReceipt.ts +63 -0
  462. package/src/utils/formatters/transactionRequest.bench.ts +29 -0
  463. package/src/utils/formatters/transactionRequest.test.ts +237 -0
  464. package/src/utils/formatters/transactionRequest.ts +56 -0
  465. package/src/utils/hash/getEventSignature.test.ts +61 -0
  466. package/src/utils/hash/getEventSignature.ts +4 -0
  467. package/src/utils/hash/getFunctionSignature.test.ts +22 -0
  468. package/src/utils/hash/getFunctionSignature.ts +5 -0
  469. package/src/utils/hash/hashFunction.test.ts +65 -0
  470. package/src/utils/hash/hashFunction.ts +12 -0
  471. package/src/utils/hash/index.test.ts +13 -0
  472. package/src/utils/hash/index.ts +5 -0
  473. package/src/utils/hash/keccak256.test.ts +59 -0
  474. package/src/utils/hash/keccak256.ts +21 -0
  475. package/src/utils/index.test.ts +111 -0
  476. package/src/utils/index.ts +142 -0
  477. package/src/utils/observe.test.ts +176 -0
  478. package/src/utils/observe.ts +66 -0
  479. package/src/utils/poll.test.ts +127 -0
  480. package/src/utils/poll.ts +42 -0
  481. package/src/utils/promise/index.test.ts +14 -0
  482. package/src/utils/promise/index.ts +3 -0
  483. package/src/utils/promise/withCache.test.ts +97 -0
  484. package/src/utils/promise/withCache.ts +73 -0
  485. package/src/utils/promise/withRetry.test.ts +231 -0
  486. package/src/utils/promise/withRetry.ts +61 -0
  487. package/src/utils/promise/withTimeout.test.ts +37 -0
  488. package/src/utils/promise/withTimeout.ts +39 -0
  489. package/src/utils/rpc.test.ts +990 -0
  490. package/src/utils/rpc.ts +294 -0
  491. package/src/utils/stringify.test.ts +13 -0
  492. package/src/utils/stringify.ts +5 -0
  493. package/src/utils/uid.ts +14 -0
  494. package/src/utils/unit/constants.test.ts +22 -0
  495. package/src/utils/unit/constants.ts +12 -0
  496. package/src/utils/unit/formatEther.test.ts +75 -0
  497. package/src/utils/unit/formatEther.ts +6 -0
  498. package/src/utils/unit/formatGwei.test.ts +32 -0
  499. package/src/utils/unit/formatGwei.ts +6 -0
  500. package/src/utils/unit/formatUnit.bench.ts +21 -0
  501. package/src/utils/unit/formatUnit.test.ts +40 -0
  502. package/src/utils/unit/formatUnit.ts +16 -0
  503. package/src/utils/unit/index.test.ts +28 -0
  504. package/src/utils/unit/index.ts +7 -0
  505. package/src/utils/unit/parseEther.test.ts +126 -0
  506. package/src/utils/unit/parseEther.ts +6 -0
  507. package/src/utils/unit/parseGwei.test.ts +50 -0
  508. package/src/utils/unit/parseGwei.ts +6 -0
  509. package/src/utils/unit/parseUnit.bench.ts +21 -0
  510. package/src/utils/unit/parseUnit.test.ts +54 -0
  511. package/src/utils/unit/parseUnit.ts +27 -0
  512. package/src/utils/wait.ts +3 -0
  513. package/src/wallet.test.ts +19 -0
  514. package/src/wallet.ts +23 -0
  515. package/src/window.ts +1 -0
  516. package/wallet/package.json +4 -0
  517. package/actions/package.json +0 -4
  518. package/clients/package.json +0 -4
  519. package/dist/actions/index.d.ts +0 -8
  520. package/dist/actions/index.js +0 -125
  521. package/dist/actions/index.mjs +0 -125
  522. package/dist/chunk-CWCWWGBC.mjs +0 -258
  523. package/dist/chunk-SGTIBKHG.js +0 -258
  524. package/dist/clients/index.d.ts +0 -7
  525. package/dist/clients/index.js +0 -23
  526. package/dist/clients/index.mjs +0 -23
  527. package/dist/createWalletClient-d612fe08.d.ts +0 -130
  528. package/dist/parseGwei-7c87ff41.d.ts +0 -278
  529. package/dist/rpc-26932bae.d.ts +0 -61
  530. package/dist/transactionRequest-08d30731.d.ts +0 -132
  531. package/dist/watchAsset-bc6373f4.d.ts +0 -534
  532. package/dist/webSocket-7f88e9e0.d.ts +0 -83
@@ -0,0 +1,1420 @@
1
+ export const baycContractConfig = {
2
+ address: '0xbc4ca0eda7647a8ab7c2061c2e118a18a936f13d',
3
+ abi: [
4
+ {
5
+ inputs: [
6
+ { internalType: 'string', name: 'name', type: 'string' },
7
+ { internalType: 'string', name: 'symbol', type: 'string' },
8
+ { internalType: 'uint256', name: 'maxNftSupply', type: 'uint256' },
9
+ { internalType: 'uint256', name: 'saleStart', type: 'uint256' },
10
+ ],
11
+ stateMutability: 'nonpayable',
12
+ type: 'constructor',
13
+ },
14
+ {
15
+ anonymous: false,
16
+ inputs: [
17
+ {
18
+ indexed: true,
19
+ internalType: 'address',
20
+ name: 'owner',
21
+ type: 'address',
22
+ },
23
+ {
24
+ indexed: true,
25
+ internalType: 'address',
26
+ name: 'approved',
27
+ type: 'address',
28
+ },
29
+ {
30
+ indexed: true,
31
+ internalType: 'uint256',
32
+ name: 'tokenId',
33
+ type: 'uint256',
34
+ },
35
+ ],
36
+ name: 'Approval',
37
+ type: 'event',
38
+ },
39
+ {
40
+ anonymous: false,
41
+ inputs: [
42
+ {
43
+ indexed: true,
44
+ internalType: 'address',
45
+ name: 'owner',
46
+ type: 'address',
47
+ },
48
+ {
49
+ indexed: true,
50
+ internalType: 'address',
51
+ name: 'operator',
52
+ type: 'address',
53
+ },
54
+ {
55
+ indexed: false,
56
+ internalType: 'bool',
57
+ name: 'approved',
58
+ type: 'bool',
59
+ },
60
+ ],
61
+ name: 'ApprovalForAll',
62
+ type: 'event',
63
+ },
64
+ {
65
+ anonymous: false,
66
+ inputs: [
67
+ {
68
+ indexed: true,
69
+ internalType: 'address',
70
+ name: 'previousOwner',
71
+ type: 'address',
72
+ },
73
+ {
74
+ indexed: true,
75
+ internalType: 'address',
76
+ name: 'newOwner',
77
+ type: 'address',
78
+ },
79
+ ],
80
+ name: 'OwnershipTransferred',
81
+ type: 'event',
82
+ },
83
+ {
84
+ anonymous: false,
85
+ inputs: [
86
+ {
87
+ indexed: true,
88
+ internalType: 'address',
89
+ name: 'from',
90
+ type: 'address',
91
+ },
92
+ { indexed: true, internalType: 'address', name: 'to', type: 'address' },
93
+ {
94
+ indexed: true,
95
+ internalType: 'uint256',
96
+ name: 'tokenId',
97
+ type: 'uint256',
98
+ },
99
+ ],
100
+ name: 'Transfer',
101
+ type: 'event',
102
+ },
103
+ {
104
+ inputs: [],
105
+ name: 'BAYC_PROVENANCE',
106
+ outputs: [{ internalType: 'string', name: '', type: 'string' }],
107
+ stateMutability: 'view',
108
+ type: 'function',
109
+ },
110
+ {
111
+ inputs: [],
112
+ name: 'MAX_APES',
113
+ outputs: [{ internalType: 'uint256', name: '', type: 'uint256' }],
114
+ stateMutability: 'view',
115
+ type: 'function',
116
+ },
117
+ {
118
+ inputs: [],
119
+ name: 'REVEAL_TIMESTAMP',
120
+ outputs: [{ internalType: 'uint256', name: '', type: 'uint256' }],
121
+ stateMutability: 'view',
122
+ type: 'function',
123
+ },
124
+ {
125
+ inputs: [],
126
+ name: 'apePrice',
127
+ outputs: [{ internalType: 'uint256', name: '', type: 'uint256' }],
128
+ stateMutability: 'view',
129
+ type: 'function',
130
+ },
131
+ {
132
+ inputs: [
133
+ { internalType: 'address', name: 'to', type: 'address' },
134
+ { internalType: 'uint256', name: 'tokenId', type: 'uint256' },
135
+ ],
136
+ name: 'approve',
137
+ outputs: [],
138
+ stateMutability: 'nonpayable',
139
+ type: 'function',
140
+ },
141
+ {
142
+ inputs: [{ internalType: 'address', name: 'owner', type: 'address' }],
143
+ name: 'balanceOf',
144
+ outputs: [{ internalType: 'uint256', name: '', type: 'uint256' }],
145
+ stateMutability: 'view',
146
+ type: 'function',
147
+ },
148
+ {
149
+ inputs: [],
150
+ name: 'baseURI',
151
+ outputs: [{ internalType: 'string', name: '', type: 'string' }],
152
+ stateMutability: 'view',
153
+ type: 'function',
154
+ },
155
+ {
156
+ inputs: [],
157
+ name: 'emergencySetStartingIndexBlock',
158
+ outputs: [],
159
+ stateMutability: 'nonpayable',
160
+ type: 'function',
161
+ },
162
+ {
163
+ inputs: [],
164
+ name: 'flipSaleState',
165
+ outputs: [],
166
+ stateMutability: 'nonpayable',
167
+ type: 'function',
168
+ },
169
+ {
170
+ inputs: [{ internalType: 'uint256', name: 'tokenId', type: 'uint256' }],
171
+ name: 'getApproved',
172
+ outputs: [{ internalType: 'address', name: '', type: 'address' }],
173
+ stateMutability: 'view',
174
+ type: 'function',
175
+ },
176
+ {
177
+ inputs: [
178
+ { internalType: 'address', name: 'owner', type: 'address' },
179
+ { internalType: 'address', name: 'operator', type: 'address' },
180
+ ],
181
+ name: 'isApprovedForAll',
182
+ outputs: [{ internalType: 'bool', name: '', type: 'bool' }],
183
+ stateMutability: 'view',
184
+ type: 'function',
185
+ },
186
+ {
187
+ inputs: [],
188
+ name: 'maxApePurchase',
189
+ outputs: [{ internalType: 'uint256', name: '', type: 'uint256' }],
190
+ stateMutability: 'view',
191
+ type: 'function',
192
+ },
193
+ {
194
+ inputs: [
195
+ { internalType: 'uint256', name: 'numberOfTokens', type: 'uint256' },
196
+ ],
197
+ name: 'mintApe',
198
+ outputs: [],
199
+ stateMutability: 'payable',
200
+ type: 'function',
201
+ },
202
+ {
203
+ inputs: [],
204
+ name: 'name',
205
+ outputs: [{ internalType: 'string', name: '', type: 'string' }],
206
+ stateMutability: 'view',
207
+ type: 'function',
208
+ },
209
+ {
210
+ inputs: [],
211
+ name: 'owner',
212
+ outputs: [{ internalType: 'address', name: '', type: 'address' }],
213
+ stateMutability: 'view',
214
+ type: 'function',
215
+ },
216
+ {
217
+ inputs: [{ internalType: 'uint256', name: 'tokenId', type: 'uint256' }],
218
+ name: 'ownerOf',
219
+ outputs: [{ internalType: 'address', name: '', type: 'address' }],
220
+ stateMutability: 'view',
221
+ type: 'function',
222
+ },
223
+ {
224
+ inputs: [],
225
+ name: 'renounceOwnership',
226
+ outputs: [],
227
+ stateMutability: 'nonpayable',
228
+ type: 'function',
229
+ },
230
+ {
231
+ inputs: [],
232
+ name: 'reserveApes',
233
+ outputs: [],
234
+ stateMutability: 'nonpayable',
235
+ type: 'function',
236
+ },
237
+ {
238
+ inputs: [
239
+ { internalType: 'address', name: 'from', type: 'address' },
240
+ { internalType: 'address', name: 'to', type: 'address' },
241
+ { internalType: 'uint256', name: 'tokenId', type: 'uint256' },
242
+ ],
243
+ name: 'safeTransferFrom',
244
+ outputs: [],
245
+ stateMutability: 'nonpayable',
246
+ type: 'function',
247
+ },
248
+ {
249
+ inputs: [
250
+ { internalType: 'address', name: 'from', type: 'address' },
251
+ { internalType: 'address', name: 'to', type: 'address' },
252
+ { internalType: 'uint256', name: 'tokenId', type: 'uint256' },
253
+ { internalType: 'bytes', name: '_data', type: 'bytes' },
254
+ ],
255
+ name: 'safeTransferFrom',
256
+ outputs: [],
257
+ stateMutability: 'nonpayable',
258
+ type: 'function',
259
+ },
260
+ {
261
+ inputs: [],
262
+ name: 'saleIsActive',
263
+ outputs: [{ internalType: 'bool', name: '', type: 'bool' }],
264
+ stateMutability: 'view',
265
+ type: 'function',
266
+ },
267
+ {
268
+ inputs: [
269
+ { internalType: 'address', name: 'operator', type: 'address' },
270
+ { internalType: 'bool', name: 'approved', type: 'bool' },
271
+ ],
272
+ name: 'setApprovalForAll',
273
+ outputs: [],
274
+ stateMutability: 'nonpayable',
275
+ type: 'function',
276
+ },
277
+ {
278
+ inputs: [{ internalType: 'string', name: 'baseURI', type: 'string' }],
279
+ name: 'setBaseURI',
280
+ outputs: [],
281
+ stateMutability: 'nonpayable',
282
+ type: 'function',
283
+ },
284
+ {
285
+ inputs: [
286
+ { internalType: 'string', name: 'provenanceHash', type: 'string' },
287
+ ],
288
+ name: 'setProvenanceHash',
289
+ outputs: [],
290
+ stateMutability: 'nonpayable',
291
+ type: 'function',
292
+ },
293
+ {
294
+ inputs: [
295
+ { internalType: 'uint256', name: 'revealTimeStamp', type: 'uint256' },
296
+ ],
297
+ name: 'setRevealTimestamp',
298
+ outputs: [],
299
+ stateMutability: 'nonpayable',
300
+ type: 'function',
301
+ },
302
+ {
303
+ inputs: [],
304
+ name: 'setStartingIndex',
305
+ outputs: [],
306
+ stateMutability: 'nonpayable',
307
+ type: 'function',
308
+ },
309
+ {
310
+ inputs: [],
311
+ name: 'startingIndex',
312
+ outputs: [{ internalType: 'uint256', name: '', type: 'uint256' }],
313
+ stateMutability: 'view',
314
+ type: 'function',
315
+ },
316
+ {
317
+ inputs: [],
318
+ name: 'startingIndexBlock',
319
+ outputs: [{ internalType: 'uint256', name: '', type: 'uint256' }],
320
+ stateMutability: 'view',
321
+ type: 'function',
322
+ },
323
+ {
324
+ inputs: [{ internalType: 'bytes4', name: 'interfaceId', type: 'bytes4' }],
325
+ name: 'supportsInterface',
326
+ outputs: [{ internalType: 'bool', name: '', type: 'bool' }],
327
+ stateMutability: 'view',
328
+ type: 'function',
329
+ },
330
+ {
331
+ inputs: [],
332
+ name: 'symbol',
333
+ outputs: [{ internalType: 'string', name: '', type: 'string' }],
334
+ stateMutability: 'view',
335
+ type: 'function',
336
+ },
337
+ {
338
+ inputs: [{ internalType: 'uint256', name: 'index', type: 'uint256' }],
339
+ name: 'tokenByIndex',
340
+ outputs: [{ internalType: 'uint256', name: '', type: 'uint256' }],
341
+ stateMutability: 'view',
342
+ type: 'function',
343
+ },
344
+ {
345
+ inputs: [
346
+ { internalType: 'address', name: 'owner', type: 'address' },
347
+ { internalType: 'uint256', name: 'index', type: 'uint256' },
348
+ ],
349
+ name: 'tokenOfOwnerByIndex',
350
+ outputs: [{ internalType: 'uint256', name: '', type: 'uint256' }],
351
+ stateMutability: 'view',
352
+ type: 'function',
353
+ },
354
+ {
355
+ inputs: [{ internalType: 'uint256', name: 'tokenId', type: 'uint256' }],
356
+ name: 'tokenURI',
357
+ outputs: [{ internalType: 'string', name: '', type: 'string' }],
358
+ stateMutability: 'view',
359
+ type: 'function',
360
+ },
361
+ {
362
+ inputs: [],
363
+ name: 'totalSupply',
364
+ outputs: [{ internalType: 'uint256', name: '', type: 'uint256' }],
365
+ stateMutability: 'view',
366
+ type: 'function',
367
+ },
368
+ {
369
+ inputs: [
370
+ { internalType: 'address', name: 'from', type: 'address' },
371
+ { internalType: 'address', name: 'to', type: 'address' },
372
+ { internalType: 'uint256', name: 'tokenId', type: 'uint256' },
373
+ ],
374
+ name: 'transferFrom',
375
+ outputs: [],
376
+ stateMutability: 'nonpayable',
377
+ type: 'function',
378
+ },
379
+ {
380
+ inputs: [{ internalType: 'address', name: 'newOwner', type: 'address' }],
381
+ name: 'transferOwnership',
382
+ outputs: [],
383
+ stateMutability: 'nonpayable',
384
+ type: 'function',
385
+ },
386
+ {
387
+ inputs: [],
388
+ name: 'withdraw',
389
+ outputs: [],
390
+ stateMutability: 'nonpayable',
391
+ type: 'function',
392
+ },
393
+ ],
394
+ bytecode:
395
+ '0x608060405260405180602001604052806000815250600b90805190602001906200002b92919062000484565b506000600f60006101000a81548160ff0219169083151502179055503480156200005457600080fd5b50604051620046d0380380620046d0833981810160405260808110156200007a57600080fd5b81019080805160405193929190846401000000008211156200009b57600080fd5b83820191506020820185811115620000b257600080fd5b8251866001820283011164010000000082111715620000d057600080fd5b8083526020830192505050908051906020019080838360005b8381101562000106578082015181840152602081019050620000e9565b50505050905090810190601f168015620001345780820380516001836020036101000a031916815260200191505b50604052602001805160405193929190846401000000008211156200015857600080fd5b838201915060208201858111156200016f57600080fd5b82518660018202830111640100000000821117156200018d57600080fd5b8083526020830192505050908051906020019080838360005b83811015620001c3578082015181840152602081019050620001a6565b50505050905090810190601f168015620001f15780820380516001836020036101000a031916815260200191505b5060405260200180519060200190929190805190602001909291905050508383620002296301ffc9a760e01b6200037360201b60201c565b81600690805190602001906200024192919062000484565b5080600790805190602001906200025a92919062000484565b50620002736380ac58cd60e01b6200037360201b60201c565b6200028b635b5e139f60e01b6200037360201b60201c565b620002a363780e9d6360e01b6200037360201b60201c565b50506000620002b76200047c60201b60201c565b905080600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35081600e81905550620bdd808101601081905550505050506200052a565b63ffffffff60e01b817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916141562000410576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4552433136353a20696e76616c696420696e746572666163652069640000000081525060200191505060405180910390fd5b6001600080837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600033905090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620004c757805160ff1916838001178555620004f8565b82800160010185558215620004f8579182015b82811115620004f7578251825591602001919060010190620004da565b5b5090506200050791906200050b565b5090565b5b80821115620005265760008160009055506001016200050c565b5090565b614196806200053a6000396000f3fe60806040526004361061021a5760003560e01c80636c0360eb11610123578063b0f67427116100ab578063e36d64981161006f578063e36d649814610ddf578063e985e9c514610e0a578063e986655014610e91578063eb8d244414610ea8578063f2fde38b14610ed55761021a565b8063b0f6742714610bac578063b88d4fde14610bc3578063bb8a16bd14610cd5578063c87b56dd14610d00578063cb774d4714610db45761021a565b80637d17fcbe116100f25780637d17fcbe14610a395780638da5cb5b14610a5057806395d89b4114610a91578063a22cb46514610b21578063a723533e14610b7e5761021a565b80636c0360eb1461090257806370a0823114610992578063715018a6146109f75780637a3f451e14610a0e5761021a565b80632f745c59116101a65780634f6ccce7116101755780634f6ccce7146106cb57806355f804b31461071a578063571dff3b146107e2578063607e20e31461080d5780636352211e1461089d5761021a565b80632f745c59146105b357806334918dfd146106225780633ccfd60b1461063957806342842e0e146106505761021a565b8063095ea7b3116101ed578063095ea7b3146103bf578063109695231461041a57806318160ddd146104e257806318e20a381461050d57806323b872dd146105385761021a565b8063018a2c371461021f57806301ffc9a71461025a57806306fdde03146102ca578063081812fc1461035a575b600080fd5b34801561022b57600080fd5b506102586004803603602081101561024257600080fd5b8101908080359060200190929190505050610f26565b005b34801561026657600080fd5b506102b26004803603602081101561027d57600080fd5b8101908080357bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610fdf565b60405180821515815260200191505060405180910390f35b3480156102d657600080fd5b506102df611046565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561031f578082015181840152602081019050610304565b50505050905090810190601f16801561034c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561036657600080fd5b506103936004803603602081101561037d57600080fd5b81019080803590602001909291905050506110e8565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156103cb57600080fd5b50610418600480360360408110156103e257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611183565b005b34801561042657600080fd5b506104e06004803603602081101561043d57600080fd5b810190808035906020019064010000000081111561045a57600080fd5b82018360208201111561046c57600080fd5b8035906020019184600183028401116401000000008311171561048e57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192905050506112c7565b005b3480156104ee57600080fd5b506104f7611390565b6040518082815260200191505060405180910390f35b34801561051957600080fd5b506105226113a1565b6040518082815260200191505060405180910390f35b34801561054457600080fd5b506105b16004803603606081101561055b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506113a7565b005b3480156105bf57600080fd5b5061060c600480360360408110156105d657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061141d565b6040518082815260200191505060405180910390f35b34801561062e57600080fd5b50610637611478565b005b34801561064557600080fd5b5061064e611553565b005b34801561065c57600080fd5b506106c96004803603606081101561067357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611651565b005b3480156106d757600080fd5b50610704600480360360208110156106ee57600080fd5b8101908080359060200190929190505050611671565b6040518082815260200191505060405180910390f35b34801561072657600080fd5b506107e06004803603602081101561073d57600080fd5b810190808035906020019064010000000081111561075a57600080fd5b82018360208201111561076c57600080fd5b8035906020019184600183028401116401000000008311171561078e57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050611694565b005b3480156107ee57600080fd5b506107f761174f565b6040518082815260200191505060405180910390f35b34801561081957600080fd5b50610822611754565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610862578082015181840152602081019050610847565b50505050905090810190601f16801561088f5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156108a957600080fd5b506108d6600480360360208110156108c057600080fd5b81019080803590602001909291905050506117f2565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561090e57600080fd5b50610917611829565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561095757808201518184015260208101905061093c565b50505050905090810190601f1680156109845780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561099e57600080fd5b506109e1600480360360208110156109b557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506118cb565b6040518082815260200191505060405180910390f35b348015610a0357600080fd5b50610a0c6119a0565b005b348015610a1a57600080fd5b50610a23611b10565b6040518082815260200191505060405180910390f35b348015610a4557600080fd5b50610a4e611b1c565b005b348015610a5c57600080fd5b50610a65611c4c565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610a9d57600080fd5b50610aa6611c76565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610ae6578082015181840152602081019050610acb565b50505050905090810190601f168015610b135780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610b2d57600080fd5b50610b7c60048036036040811015610b4457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050611d18565b005b610baa60048036036020811015610b9457600080fd5b8101908080359060200190929190505050611ece565b005b348015610bb857600080fd5b50610bc1612127565b005b348015610bcf57600080fd5b50610cd360048036036080811015610be657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190640100000000811115610c4d57600080fd5b820183602082011115610c5f57600080fd5b80359060200191846001830284011164010000000083111715610c8157600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050919291929050505061220b565b005b348015610ce157600080fd5b50610cea612283565b6040518082815260200191505060405180910390f35b348015610d0c57600080fd5b50610d3960048036036020811015610d2357600080fd5b8101908080359060200190929190505050612289565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610d79578082015181840152602081019050610d5e565b50505050905090810190601f168015610da65780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610dc057600080fd5b50610dc961255a565b6040518082815260200191505060405180910390f35b348015610deb57600080fd5b50610df4612560565b6040518082815260200191505060405180910390f35b348015610e1657600080fd5b50610e7960048036036040811015610e2d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612566565b60405180821515815260200191505060405180910390f35b348015610e9d57600080fd5b50610ea66125fa565b005b348015610eb457600080fd5b50610ebd612764565b60405180821515815260200191505060405180910390f35b348015610ee157600080fd5b50610f2460048036036020811015610ef857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612777565b005b610f2e61296c565b73ffffffffffffffffffffffffffffffffffffffff16610f4c611c4c565b73ffffffffffffffffffffffffffffffffffffffff1614610fd5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b8060108190555050565b6000806000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009054906101000a900460ff169050919050565b606060068054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156110de5780601f106110b3576101008083540402835291602001916110de565b820191906000526020600020905b8154815290600101906020018083116110c157829003601f168201915b5050505050905090565b60006110f382612974565b611148576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c81526020018061408b602c913960400191505060405180910390fd5b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600061118e826117f2565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611215576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602181526020018061410f6021913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1661123461296c565b73ffffffffffffffffffffffffffffffffffffffff16148061126357506112628161125d61296c565b612566565b5b6112b8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526038815260200180613f956038913960400191505060405180910390fd5b6112c28383612991565b505050565b6112cf61296c565b73ffffffffffffffffffffffffffffffffffffffff166112ed611c4c565b73ffffffffffffffffffffffffffffffffffffffff1614611376576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600b908051906020019061138c929190613de6565b5050565b600061139c6002612a4a565b905090565b60105481565b6113b86113b261296c565b82612a5f565b61140d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260318152602001806141306031913960400191505060405180910390fd5b611418838383612b53565b505050565b600061147082600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020612d9690919063ffffffff16565b905092915050565b61148061296c565b73ffffffffffffffffffffffffffffffffffffffff1661149e611c4c565b73ffffffffffffffffffffffffffffffffffffffff1614611527576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600f60009054906101000a900460ff1615600f60006101000a81548160ff021916908315150217905550565b61155b61296c565b73ffffffffffffffffffffffffffffffffffffffff16611579611c4c565b73ffffffffffffffffffffffffffffffffffffffff1614611602576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b60004790503373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561164d573d6000803e3d6000fd5b5050565b61166c8383836040518060200160405280600081525061220b565b505050565b600080611688836002612db090919063ffffffff16565b50905080915050919050565b61169c61296c565b73ffffffffffffffffffffffffffffffffffffffff166116ba611c4c565b73ffffffffffffffffffffffffffffffffffffffff1614611743576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b61174c81612ddc565b50565b601481565b600b8054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156117ea5780601f106117bf576101008083540402835291602001916117ea565b820191906000526020600020905b8154815290600101906020018083116117cd57829003601f168201915b505050505081565b600061182282604051806060016040528060298152602001613ff7602991396002612df69092919063ffffffff16565b9050919050565b606060098054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156118c15780601f10611896576101008083540402835291602001916118c1565b820191906000526020600020905b8154815290600101906020018083116118a457829003601f168201915b5050505050905090565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611952576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180613fcd602a913960400191505060405180910390fd5b611999600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020612e15565b9050919050565b6119a861296c565b73ffffffffffffffffffffffffffffffffffffffff166119c6611c4c565b73ffffffffffffffffffffffffffffffffffffffff1614611a4f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b67011c37937e08000081565b611b2461296c565b73ffffffffffffffffffffffffffffffffffffffff16611b42611c4c565b73ffffffffffffffffffffffffffffffffffffffff1614611bcb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6000600d5414611c43576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f5374617274696e6720696e64657820697320616c72656164792073657400000081525060200191505060405180910390fd5b43600c81905550565b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060078054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611d0e5780601f10611ce357610100808354040283529160200191611d0e565b820191906000526020600020905b815481529060010190602001808311611cf157829003601f168201915b5050505050905090565b611d2061296c565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611dc1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f4552433732313a20617070726f766520746f2063616c6c65720000000000000081525060200191505060405180910390fd5b8060056000611dce61296c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff16611e7b61296c565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c318360405180821515815260200191505060405180910390a35050565b600f60009054906101000a900460ff16611f50576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f53616c65206d7573742062652061637469766520746f206d696e74204170650081525060200191505060405180910390fd5b6014811115611faa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180613f746021913960400191505060405180910390fd5b600e54611fc782611fb9611390565b612e2a90919063ffffffff16565b111561201e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001806140426028913960400191505060405180910390fd5b3461203a8267011c37937e080000612eb290919063ffffffff16565b11156120ae576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f45746865722076616c75652073656e74206973206e6f7420636f72726563740081525060200191505060405180910390fd5b60005b818110156120ef5760006120c3611390565b9050600e546120d0611390565b10156120e1576120e03382612f38565b5b5080806001019150506120b1565b506000600c541480156121175750600e54612108611390565b148061211657506010544210155b5b156121245743600c819055505b50565b61212f61296c565b73ffffffffffffffffffffffffffffffffffffffff1661214d611c4c565b73ffffffffffffffffffffffffffffffffffffffff16146121d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b60006121e0611390565b905060005b601e811015612207576121fa33828401612f38565b80806001019150506121e5565b5050565b61221c61221661296c565b83612a5f565b612271576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260318152602001806141306031913960400191505060405180910390fd5b61227d84848484612f56565b50505050565b600e5481565b606061229482612974565b6122e9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f8152602001806140e0602f913960400191505060405180910390fd5b6060600860008481526020019081526020016000208054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156123925780601f1061236757610100808354040283529160200191612392565b820191906000526020600020905b81548152906001019060200180831161237557829003601f168201915b5050505050905060606123a3611829565b90506000815114156123b9578192505050612555565b60008251111561248a5780826040516020018083805190602001908083835b602083106123fb57805182526020820191506020810190506020830392506123d8565b6001836020036101000a03801982511681845116808217855250505050505090500182805190602001908083835b6020831061244c5780518252602082019150602081019050602083039250612429565b6001836020036101000a0380198251168184511680821785525050505050509050019250505060405160208183030381529060405292505050612555565b8061249485612fc8565b6040516020018083805190602001908083835b602083106124ca57805182526020820191506020810190506020830392506124a7565b6001836020036101000a03801982511681845116808217855250505050505090500182805190602001908083835b6020831061251b57805182526020820191506020810190506020830392506124f8565b6001836020036101000a03801982511681845116808217855250505050505090500192505050604051602081830303815290604052925050505b919050565b600d5481565b600c5481565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000600d5414612672576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f5374617274696e6720696e64657820697320616c72656164792073657400000081525060200191505060405180910390fd5b6000600c5414156126eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f5374617274696e6720696e64657820626c6f636b206d7573742062652073657481525060200191505060405180910390fd5b600e54600c544060001c816126fc57fe5b06600d8190555060ff61271a600c544361310f90919063ffffffff16565b111561273a57600e54600143034060001c8161273257fe5b06600d819055505b6000600d5414156127625761275b6001600d54612e2a90919063ffffffff16565b600d819055505b565b600f60009054906101000a900460ff1681565b61277f61296c565b73ffffffffffffffffffffffffffffffffffffffff1661279d611c4c565b73ffffffffffffffffffffffffffffffffffffffff1614612826576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156128ac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180613ed86026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600061298a82600261319290919063ffffffff16565b9050919050565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16612a04836117f2565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000612a58826000016131ac565b9050919050565b6000612a6a82612974565b612abf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180613f48602c913960400191505060405180910390fd5b6000612aca836117f2565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480612b3957508373ffffffffffffffffffffffffffffffffffffffff16612b21846110e8565b73ffffffffffffffffffffffffffffffffffffffff16145b80612b4a5750612b498185612566565b5b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff16612b73826117f2565b73ffffffffffffffffffffffffffffffffffffffff1614612bdf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001806140b76029913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612c65576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180613efe6024913960400191505060405180910390fd5b612c708383836131bd565b612c7b600082612991565b612ccc81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206131c290919063ffffffff16565b50612d1e81600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206131dc90919063ffffffff16565b50612d35818360026131f69092919063ffffffff16565b50808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b6000612da5836000018361322b565b60001c905092915050565b600080600080612dc386600001866132ae565b915091508160001c8160001c9350935050509250929050565b8060099080519060200190612df2929190613de6565b5050565b6000612e09846000018460001b84613347565b60001c90509392505050565b6000612e238260000161343d565b9050919050565b600080828401905083811015612ea8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600080831415612ec55760009050612f32565b6000828402905082848281612ed657fe5b0414612f2d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602181526020018061406a6021913960400191505060405180910390fd5b809150505b92915050565b612f5282826040518060200160405280600081525061344e565b5050565b612f61848484612b53565b612f6d848484846134bf565b612fc2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526032815260200180613ea66032913960400191505060405180910390fd5b50505050565b60606000821415613010576040518060400160405280600181526020017f3000000000000000000000000000000000000000000000000000000000000000815250905061310a565b600082905060005b6000821461303a578080600101915050600a828161303257fe5b049150613018565b60608167ffffffffffffffff8111801561305357600080fd5b506040519080825280601f01601f1916602001820160405280156130865781602001600182028036833780820191505090505b50905060006001830390508593505b6000841461310257600a84816130a757fe5b0660300160f81b828280600190039350815181106130c157fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a84816130fa57fe5b049350613095565b819450505050505b919050565b600082821115613187576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525060200191505060405180910390fd5b818303905092915050565b60006131a4836000018360001b6136d8565b905092915050565b600081600001805490509050919050565b505050565b60006131d4836000018360001b6136fb565b905092915050565b60006131ee836000018360001b6137e3565b905092915050565b6000613222846000018460001b8473ffffffffffffffffffffffffffffffffffffffff1660001b613853565b90509392505050565b60008183600001805490501161328c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180613e846022913960400191505060405180910390fd5b82600001828154811061329b57fe5b9060005260206000200154905092915050565b60008082846000018054905011613310576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806140206022913960400191505060405180910390fd5b600084600001848154811061332157fe5b906000526020600020906002020190508060000154816001015492509250509250929050565b6000808460010160008581526020019081526020016000205490506000811415839061340e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156133d35780820151818401526020810190506133b8565b50505050905090810190601f1680156134005780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5084600001600182038154811061342157fe5b9060005260206000209060020201600101549150509392505050565b600081600001805490509050919050565b613458838361392f565b61346560008484846134bf565b6134ba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526032815260200180613ea66032913960400191505060405180910390fd5b505050565b60006134e08473ffffffffffffffffffffffffffffffffffffffff16613b23565b6134ed57600190506136d0565b606061365763150b7a0260e01b61350261296c565b888787604051602401808573ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff16815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561358657808201518184015260208101905061356b565b50505050905090810190601f1680156135b35780820380516001836020036101000a031916815260200191505b5095505050505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051806060016040528060328152602001613ea6603291398773ffffffffffffffffffffffffffffffffffffffff16613b369092919063ffffffff16565b9050600081806020019051602081101561367057600080fd5b8101908080519060200190929190505050905063150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614925050505b949350505050565b600080836001016000848152602001908152602001600020541415905092915050565b600080836001016000848152602001908152602001600020549050600081146137d7576000600182039050600060018660000180549050039050600086600001828154811061374657fe5b906000526020600020015490508087600001848154811061376357fe5b906000526020600020018190555060018301876001016000838152602001908152602001600020819055508660000180548061379b57fe5b600190038181906000526020600020016000905590558660010160008781526020019081526020016000206000905560019450505050506137dd565b60009150505b92915050565b60006137ef8383613b4e565b61384857826000018290806001815401808255809150506001900390600052602060002001600090919091909150558260000180549050836001016000848152602001908152602001600020819055506001905061384d565b600090505b92915050565b60008084600101600085815260200190815260200160002054905060008114156138fa57846000016040518060400160405280868152602001858152509080600181540180825580915050600190039060005260206000209060020201600090919091909150600082015181600001556020820151816001015550508460000180549050856001016000868152602001908152602001600020819055506001915050613928565b8285600001600183038154811061390d57fe5b90600052602060002090600202016001018190555060009150505b9392505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156139d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4552433732313a206d696e7420746f20746865207a65726f206164647265737381525060200191505060405180910390fd5b6139db81612974565b15613a4e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4552433732313a20746f6b656e20616c7265616479206d696e7465640000000081525060200191505060405180910390fd5b613a5a600083836131bd565b613aab81600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206131dc90919063ffffffff16565b50613ac2818360026131f69092919063ffffffff16565b50808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b600080823b905060008111915050919050565b6060613b458484600085613b71565b90509392505050565b600080836001016000848152602001908152602001600020541415905092915050565b606082471015613bcc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180613f226026913960400191505060405180910390fd5b613bd585613b23565b613c47576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000081525060200191505060405180910390fd5b600060608673ffffffffffffffffffffffffffffffffffffffff1685876040518082805190602001908083835b60208310613c975780518252602082019150602081019050602083039250613c74565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d8060008114613cf9576040519150601f19603f3d011682016040523d82523d6000602084013e613cfe565b606091505b5091509150613d0e828286613d1a565b92505050949350505050565b60608315613d2a57829050613ddf565b600083511115613d3d5782518084602001fd5b816040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613da4578082015181840152602081019050613d89565b50505050905090810190601f168015613dd15780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b9392505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10613e2757805160ff1916838001178555613e55565b82800160010185558215613e55579182015b82811115613e54578251825591602001919060010190613e39565b5b509050613e629190613e66565b5090565b5b80821115613e7f576000816000905550600101613e67565b509056fe456e756d657261626c655365743a20696e646578206f7574206f6620626f756e64734552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e7465724f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573734552433732313a207472616e7366657220746f20746865207a65726f2061646472657373416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c4552433732313a206f70657261746f7220717565727920666f72206e6f6e6578697374656e7420746f6b656e43616e206f6e6c79206d696e7420323020746f6b656e7320617420612074696d654552433732313a20617070726f76652063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f76656420666f7220616c6c4552433732313a2062616c616e636520717565727920666f7220746865207a65726f20616464726573734552433732313a206f776e657220717565727920666f72206e6f6e6578697374656e7420746f6b656e456e756d657261626c654d61703a20696e646578206f7574206f6620626f756e6473507572636861736520776f756c6420657863656564206d617820737570706c79206f662041706573536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f774552433732313a20617070726f76656420717565727920666f72206e6f6e6578697374656e7420746f6b656e4552433732313a207472616e73666572206f6620746f6b656e2074686174206973206e6f74206f776e4552433732314d657461646174613a2055524920717565727920666f72206e6f6e6578697374656e7420746f6b656e4552433732313a20617070726f76616c20746f2063757272656e74206f776e65724552433732313a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564a2646970667358221220b0e64d1fa6c4dbeb9c6f54607d7e1996943fe27624a80652f57b53fda084621b64736f6c63430007000033000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000002710000000000000000000000000000000000000000000000000000000006080e6d70000000000000000000000000000000000000000000000000000000000000011426f7265644170655961636874436c756200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044241594300000000000000000000000000000000000000000000000000000000',
396
+ } as const
397
+
398
+ export const uniswapV3PositionsContractConfig = {
399
+ address: '0xC36442b4a4522E871399CD717aBDD847Ab11FE88',
400
+ abi: [
401
+ {
402
+ inputs: [
403
+ { internalType: 'address', name: '_factory', type: 'address' },
404
+ { internalType: 'address', name: '_WETH9', type: 'address' },
405
+ { internalType: 'address', name: '_tokenDescriptor_', type: 'address' },
406
+ ],
407
+ stateMutability: 'nonpayable',
408
+ type: 'constructor',
409
+ },
410
+ {
411
+ anonymous: false,
412
+ inputs: [
413
+ {
414
+ indexed: true,
415
+ internalType: 'address',
416
+ name: 'owner',
417
+ type: 'address',
418
+ },
419
+ {
420
+ indexed: true,
421
+ internalType: 'address',
422
+ name: 'approved',
423
+ type: 'address',
424
+ },
425
+ {
426
+ indexed: true,
427
+ internalType: 'uint256',
428
+ name: 'tokenId',
429
+ type: 'uint256',
430
+ },
431
+ ],
432
+ name: 'Approval',
433
+ type: 'event',
434
+ },
435
+ {
436
+ anonymous: false,
437
+ inputs: [
438
+ {
439
+ indexed: true,
440
+ internalType: 'address',
441
+ name: 'owner',
442
+ type: 'address',
443
+ },
444
+ {
445
+ indexed: true,
446
+ internalType: 'address',
447
+ name: 'operator',
448
+ type: 'address',
449
+ },
450
+ {
451
+ indexed: false,
452
+ internalType: 'bool',
453
+ name: 'approved',
454
+ type: 'bool',
455
+ },
456
+ ],
457
+ name: 'ApprovalForAll',
458
+ type: 'event',
459
+ },
460
+ {
461
+ anonymous: false,
462
+ inputs: [
463
+ {
464
+ indexed: true,
465
+ internalType: 'uint256',
466
+ name: 'tokenId',
467
+ type: 'uint256',
468
+ },
469
+ {
470
+ indexed: false,
471
+ internalType: 'address',
472
+ name: 'recipient',
473
+ type: 'address',
474
+ },
475
+ {
476
+ indexed: false,
477
+ internalType: 'uint256',
478
+ name: 'amount0',
479
+ type: 'uint256',
480
+ },
481
+ {
482
+ indexed: false,
483
+ internalType: 'uint256',
484
+ name: 'amount1',
485
+ type: 'uint256',
486
+ },
487
+ ],
488
+ name: 'Collect',
489
+ type: 'event',
490
+ },
491
+ {
492
+ anonymous: false,
493
+ inputs: [
494
+ {
495
+ indexed: true,
496
+ internalType: 'uint256',
497
+ name: 'tokenId',
498
+ type: 'uint256',
499
+ },
500
+ {
501
+ indexed: false,
502
+ internalType: 'uint128',
503
+ name: 'liquidity',
504
+ type: 'uint128',
505
+ },
506
+ {
507
+ indexed: false,
508
+ internalType: 'uint256',
509
+ name: 'amount0',
510
+ type: 'uint256',
511
+ },
512
+ {
513
+ indexed: false,
514
+ internalType: 'uint256',
515
+ name: 'amount1',
516
+ type: 'uint256',
517
+ },
518
+ ],
519
+ name: 'DecreaseLiquidity',
520
+ type: 'event',
521
+ },
522
+ {
523
+ anonymous: false,
524
+ inputs: [
525
+ {
526
+ indexed: true,
527
+ internalType: 'uint256',
528
+ name: 'tokenId',
529
+ type: 'uint256',
530
+ },
531
+ {
532
+ indexed: false,
533
+ internalType: 'uint128',
534
+ name: 'liquidity',
535
+ type: 'uint128',
536
+ },
537
+ {
538
+ indexed: false,
539
+ internalType: 'uint256',
540
+ name: 'amount0',
541
+ type: 'uint256',
542
+ },
543
+ {
544
+ indexed: false,
545
+ internalType: 'uint256',
546
+ name: 'amount1',
547
+ type: 'uint256',
548
+ },
549
+ ],
550
+ name: 'IncreaseLiquidity',
551
+ type: 'event',
552
+ },
553
+ {
554
+ anonymous: false,
555
+ inputs: [
556
+ {
557
+ indexed: true,
558
+ internalType: 'address',
559
+ name: 'from',
560
+ type: 'address',
561
+ },
562
+ { indexed: true, internalType: 'address', name: 'to', type: 'address' },
563
+ {
564
+ indexed: true,
565
+ internalType: 'uint256',
566
+ name: 'tokenId',
567
+ type: 'uint256',
568
+ },
569
+ ],
570
+ name: 'Transfer',
571
+ type: 'event',
572
+ },
573
+ {
574
+ inputs: [],
575
+ name: 'DOMAIN_SEPARATOR',
576
+ outputs: [{ internalType: 'bytes32', name: '', type: 'bytes32' }],
577
+ stateMutability: 'view',
578
+ type: 'function',
579
+ },
580
+ {
581
+ inputs: [],
582
+ name: 'PERMIT_TYPEHASH',
583
+ outputs: [{ internalType: 'bytes32', name: '', type: 'bytes32' }],
584
+ stateMutability: 'view',
585
+ type: 'function',
586
+ },
587
+ {
588
+ inputs: [],
589
+ name: 'WETH9',
590
+ outputs: [{ internalType: 'address', name: '', type: 'address' }],
591
+ stateMutability: 'view',
592
+ type: 'function',
593
+ },
594
+ {
595
+ inputs: [
596
+ { internalType: 'address', name: 'to', type: 'address' },
597
+ { internalType: 'uint256', name: 'tokenId', type: 'uint256' },
598
+ ],
599
+ name: 'approve',
600
+ outputs: [],
601
+ stateMutability: 'nonpayable',
602
+ type: 'function',
603
+ },
604
+ {
605
+ inputs: [{ internalType: 'address', name: 'owner', type: 'address' }],
606
+ name: 'balanceOf',
607
+ outputs: [{ internalType: 'uint256', name: '', type: 'uint256' }],
608
+ stateMutability: 'view',
609
+ type: 'function',
610
+ },
611
+ {
612
+ inputs: [],
613
+ name: 'baseURI',
614
+ outputs: [{ internalType: 'string', name: '', type: 'string' }],
615
+ stateMutability: 'pure',
616
+ type: 'function',
617
+ },
618
+ {
619
+ inputs: [{ internalType: 'uint256', name: 'tokenId', type: 'uint256' }],
620
+ name: 'burn',
621
+ outputs: [],
622
+ stateMutability: 'payable',
623
+ type: 'function',
624
+ },
625
+ {
626
+ inputs: [
627
+ {
628
+ components: [
629
+ { internalType: 'uint256', name: 'tokenId', type: 'uint256' },
630
+ { internalType: 'address', name: 'recipient', type: 'address' },
631
+ { internalType: 'uint128', name: 'amount0Max', type: 'uint128' },
632
+ { internalType: 'uint128', name: 'amount1Max', type: 'uint128' },
633
+ ],
634
+ internalType: 'struct INonfungiblePositionManager.CollectParams',
635
+ name: 'params',
636
+ type: 'tuple',
637
+ },
638
+ ],
639
+ name: 'collect',
640
+ outputs: [
641
+ { internalType: 'uint256', name: 'amount0', type: 'uint256' },
642
+ { internalType: 'uint256', name: 'amount1', type: 'uint256' },
643
+ ],
644
+ stateMutability: 'payable',
645
+ type: 'function',
646
+ },
647
+ {
648
+ inputs: [
649
+ { internalType: 'address', name: 'token0', type: 'address' },
650
+ { internalType: 'address', name: 'token1', type: 'address' },
651
+ { internalType: 'uint24', name: 'fee', type: 'uint24' },
652
+ { internalType: 'uint160', name: 'sqrtPriceX96', type: 'uint160' },
653
+ ],
654
+ name: 'createAndInitializePoolIfNecessary',
655
+ outputs: [{ internalType: 'address', name: 'pool', type: 'address' }],
656
+ stateMutability: 'payable',
657
+ type: 'function',
658
+ },
659
+ {
660
+ inputs: [
661
+ {
662
+ components: [
663
+ { internalType: 'uint256', name: 'tokenId', type: 'uint256' },
664
+ { internalType: 'uint128', name: 'liquidity', type: 'uint128' },
665
+ { internalType: 'uint256', name: 'amount0Min', type: 'uint256' },
666
+ { internalType: 'uint256', name: 'amount1Min', type: 'uint256' },
667
+ { internalType: 'uint256', name: 'deadline', type: 'uint256' },
668
+ ],
669
+ internalType:
670
+ 'struct INonfungiblePositionManager.DecreaseLiquidityParams',
671
+ name: 'params',
672
+ type: 'tuple',
673
+ },
674
+ ],
675
+ name: 'decreaseLiquidity',
676
+ outputs: [
677
+ { internalType: 'uint256', name: 'amount0', type: 'uint256' },
678
+ { internalType: 'uint256', name: 'amount1', type: 'uint256' },
679
+ ],
680
+ stateMutability: 'payable',
681
+ type: 'function',
682
+ },
683
+ {
684
+ inputs: [],
685
+ name: 'factory',
686
+ outputs: [{ internalType: 'address', name: '', type: 'address' }],
687
+ stateMutability: 'view',
688
+ type: 'function',
689
+ },
690
+ {
691
+ inputs: [{ internalType: 'uint256', name: 'tokenId', type: 'uint256' }],
692
+ name: 'getApproved',
693
+ outputs: [{ internalType: 'address', name: '', type: 'address' }],
694
+ stateMutability: 'view',
695
+ type: 'function',
696
+ },
697
+ {
698
+ inputs: [
699
+ {
700
+ components: [
701
+ { internalType: 'uint256', name: 'tokenId', type: 'uint256' },
702
+ {
703
+ internalType: 'uint256',
704
+ name: 'amount0Desired',
705
+ type: 'uint256',
706
+ },
707
+ {
708
+ internalType: 'uint256',
709
+ name: 'amount1Desired',
710
+ type: 'uint256',
711
+ },
712
+ { internalType: 'uint256', name: 'amount0Min', type: 'uint256' },
713
+ { internalType: 'uint256', name: 'amount1Min', type: 'uint256' },
714
+ { internalType: 'uint256', name: 'deadline', type: 'uint256' },
715
+ ],
716
+ internalType:
717
+ 'struct INonfungiblePositionManager.IncreaseLiquidityParams',
718
+ name: 'params',
719
+ type: 'tuple',
720
+ },
721
+ ],
722
+ name: 'increaseLiquidity',
723
+ outputs: [
724
+ { internalType: 'uint128', name: 'liquidity', type: 'uint128' },
725
+ { internalType: 'uint256', name: 'amount0', type: 'uint256' },
726
+ { internalType: 'uint256', name: 'amount1', type: 'uint256' },
727
+ ],
728
+ stateMutability: 'payable',
729
+ type: 'function',
730
+ },
731
+ {
732
+ inputs: [
733
+ { internalType: 'address', name: 'owner', type: 'address' },
734
+ { internalType: 'address', name: 'operator', type: 'address' },
735
+ ],
736
+ name: 'isApprovedForAll',
737
+ outputs: [{ internalType: 'bool', name: '', type: 'bool' }],
738
+ stateMutability: 'view',
739
+ type: 'function',
740
+ },
741
+ {
742
+ inputs: [
743
+ {
744
+ components: [
745
+ { internalType: 'address', name: 'token0', type: 'address' },
746
+ { internalType: 'address', name: 'token1', type: 'address' },
747
+ { internalType: 'uint24', name: 'fee', type: 'uint24' },
748
+ { internalType: 'int24', name: 'tickLower', type: 'int24' },
749
+ { internalType: 'int24', name: 'tickUpper', type: 'int24' },
750
+ {
751
+ internalType: 'uint256',
752
+ name: 'amount0Desired',
753
+ type: 'uint256',
754
+ },
755
+ {
756
+ internalType: 'uint256',
757
+ name: 'amount1Desired',
758
+ type: 'uint256',
759
+ },
760
+ { internalType: 'uint256', name: 'amount0Min', type: 'uint256' },
761
+ { internalType: 'uint256', name: 'amount1Min', type: 'uint256' },
762
+ { internalType: 'address', name: 'recipient', type: 'address' },
763
+ { internalType: 'uint256', name: 'deadline', type: 'uint256' },
764
+ ],
765
+ internalType: 'struct INonfungiblePositionManager.MintParams',
766
+ name: 'params',
767
+ type: 'tuple',
768
+ },
769
+ ],
770
+ name: 'mint',
771
+ outputs: [
772
+ { internalType: 'uint256', name: 'tokenId', type: 'uint256' },
773
+ { internalType: 'uint128', name: 'liquidity', type: 'uint128' },
774
+ { internalType: 'uint256', name: 'amount0', type: 'uint256' },
775
+ { internalType: 'uint256', name: 'amount1', type: 'uint256' },
776
+ ],
777
+ stateMutability: 'payable',
778
+ type: 'function',
779
+ },
780
+ {
781
+ inputs: [{ internalType: 'bytes[]', name: 'data', type: 'bytes[]' }],
782
+ name: 'multicall',
783
+ outputs: [{ internalType: 'bytes[]', name: 'results', type: 'bytes[]' }],
784
+ stateMutability: 'payable',
785
+ type: 'function',
786
+ },
787
+ {
788
+ inputs: [],
789
+ name: 'name',
790
+ outputs: [{ internalType: 'string', name: '', type: 'string' }],
791
+ stateMutability: 'view',
792
+ type: 'function',
793
+ },
794
+ {
795
+ inputs: [{ internalType: 'uint256', name: 'tokenId', type: 'uint256' }],
796
+ name: 'ownerOf',
797
+ outputs: [{ internalType: 'address', name: '', type: 'address' }],
798
+ stateMutability: 'view',
799
+ type: 'function',
800
+ },
801
+ {
802
+ inputs: [
803
+ { internalType: 'address', name: 'spender', type: 'address' },
804
+ { internalType: 'uint256', name: 'tokenId', type: 'uint256' },
805
+ { internalType: 'uint256', name: 'deadline', type: 'uint256' },
806
+ { internalType: 'uint8', name: 'v', type: 'uint8' },
807
+ { internalType: 'bytes32', name: 'r', type: 'bytes32' },
808
+ { internalType: 'bytes32', name: 's', type: 'bytes32' },
809
+ ],
810
+ name: 'permit',
811
+ outputs: [],
812
+ stateMutability: 'payable',
813
+ type: 'function',
814
+ },
815
+ {
816
+ inputs: [{ internalType: 'uint256', name: 'tokenId', type: 'uint256' }],
817
+ name: 'positions',
818
+ outputs: [
819
+ { internalType: 'uint96', name: 'nonce', type: 'uint96' },
820
+ { internalType: 'address', name: 'operator', type: 'address' },
821
+ { internalType: 'address', name: 'token0', type: 'address' },
822
+ { internalType: 'address', name: 'token1', type: 'address' },
823
+ { internalType: 'uint24', name: 'fee', type: 'uint24' },
824
+ { internalType: 'int24', name: 'tickLower', type: 'int24' },
825
+ { internalType: 'int24', name: 'tickUpper', type: 'int24' },
826
+ { internalType: 'uint128', name: 'liquidity', type: 'uint128' },
827
+ {
828
+ internalType: 'uint256',
829
+ name: 'feeGrowthInside0LastX128',
830
+ type: 'uint256',
831
+ },
832
+ {
833
+ internalType: 'uint256',
834
+ name: 'feeGrowthInside1LastX128',
835
+ type: 'uint256',
836
+ },
837
+ { internalType: 'uint128', name: 'tokensOwed0', type: 'uint128' },
838
+ { internalType: 'uint128', name: 'tokensOwed1', type: 'uint128' },
839
+ ],
840
+ stateMutability: 'view',
841
+ type: 'function',
842
+ },
843
+ {
844
+ inputs: [],
845
+ name: 'refundETH',
846
+ outputs: [],
847
+ stateMutability: 'payable',
848
+ type: 'function',
849
+ },
850
+ {
851
+ inputs: [
852
+ { internalType: 'address', name: 'from', type: 'address' },
853
+ { internalType: 'address', name: 'to', type: 'address' },
854
+ { internalType: 'uint256', name: 'tokenId', type: 'uint256' },
855
+ ],
856
+ name: 'safeTransferFrom',
857
+ outputs: [],
858
+ stateMutability: 'nonpayable',
859
+ type: 'function',
860
+ },
861
+ {
862
+ inputs: [
863
+ { internalType: 'address', name: 'from', type: 'address' },
864
+ { internalType: 'address', name: 'to', type: 'address' },
865
+ { internalType: 'uint256', name: 'tokenId', type: 'uint256' },
866
+ { internalType: 'bytes', name: '_data', type: 'bytes' },
867
+ ],
868
+ name: 'safeTransferFrom',
869
+ outputs: [],
870
+ stateMutability: 'nonpayable',
871
+ type: 'function',
872
+ },
873
+ {
874
+ inputs: [
875
+ { internalType: 'address', name: 'token', type: 'address' },
876
+ { internalType: 'uint256', name: 'value', type: 'uint256' },
877
+ { internalType: 'uint256', name: 'deadline', type: 'uint256' },
878
+ { internalType: 'uint8', name: 'v', type: 'uint8' },
879
+ { internalType: 'bytes32', name: 'r', type: 'bytes32' },
880
+ { internalType: 'bytes32', name: 's', type: 'bytes32' },
881
+ ],
882
+ name: 'selfPermit',
883
+ outputs: [],
884
+ stateMutability: 'payable',
885
+ type: 'function',
886
+ },
887
+ {
888
+ inputs: [
889
+ { internalType: 'address', name: 'token', type: 'address' },
890
+ { internalType: 'uint256', name: 'nonce', type: 'uint256' },
891
+ { internalType: 'uint256', name: 'expiry', type: 'uint256' },
892
+ { internalType: 'uint8', name: 'v', type: 'uint8' },
893
+ { internalType: 'bytes32', name: 'r', type: 'bytes32' },
894
+ { internalType: 'bytes32', name: 's', type: 'bytes32' },
895
+ ],
896
+ name: 'selfPermitAllowed',
897
+ outputs: [],
898
+ stateMutability: 'payable',
899
+ type: 'function',
900
+ },
901
+ {
902
+ inputs: [
903
+ { internalType: 'address', name: 'token', type: 'address' },
904
+ { internalType: 'uint256', name: 'nonce', type: 'uint256' },
905
+ { internalType: 'uint256', name: 'expiry', type: 'uint256' },
906
+ { internalType: 'uint8', name: 'v', type: 'uint8' },
907
+ { internalType: 'bytes32', name: 'r', type: 'bytes32' },
908
+ { internalType: 'bytes32', name: 's', type: 'bytes32' },
909
+ ],
910
+ name: 'selfPermitAllowedIfNecessary',
911
+ outputs: [],
912
+ stateMutability: 'payable',
913
+ type: 'function',
914
+ },
915
+ {
916
+ inputs: [
917
+ { internalType: 'address', name: 'token', type: 'address' },
918
+ { internalType: 'uint256', name: 'value', type: 'uint256' },
919
+ { internalType: 'uint256', name: 'deadline', type: 'uint256' },
920
+ { internalType: 'uint8', name: 'v', type: 'uint8' },
921
+ { internalType: 'bytes32', name: 'r', type: 'bytes32' },
922
+ { internalType: 'bytes32', name: 's', type: 'bytes32' },
923
+ ],
924
+ name: 'selfPermitIfNecessary',
925
+ outputs: [],
926
+ stateMutability: 'payable',
927
+ type: 'function',
928
+ },
929
+ {
930
+ inputs: [
931
+ { internalType: 'address', name: 'operator', type: 'address' },
932
+ { internalType: 'bool', name: 'approved', type: 'bool' },
933
+ ],
934
+ name: 'setApprovalForAll',
935
+ outputs: [],
936
+ stateMutability: 'nonpayable',
937
+ type: 'function',
938
+ },
939
+ {
940
+ inputs: [{ internalType: 'bytes4', name: 'interfaceId', type: 'bytes4' }],
941
+ name: 'supportsInterface',
942
+ outputs: [{ internalType: 'bool', name: '', type: 'bool' }],
943
+ stateMutability: 'view',
944
+ type: 'function',
945
+ },
946
+ {
947
+ inputs: [
948
+ { internalType: 'address', name: 'token', type: 'address' },
949
+ { internalType: 'uint256', name: 'amountMinimum', type: 'uint256' },
950
+ { internalType: 'address', name: 'recipient', type: 'address' },
951
+ ],
952
+ name: 'sweepToken',
953
+ outputs: [],
954
+ stateMutability: 'payable',
955
+ type: 'function',
956
+ },
957
+ {
958
+ inputs: [],
959
+ name: 'symbol',
960
+ outputs: [{ internalType: 'string', name: '', type: 'string' }],
961
+ stateMutability: 'view',
962
+ type: 'function',
963
+ },
964
+ {
965
+ inputs: [{ internalType: 'uint256', name: 'index', type: 'uint256' }],
966
+ name: 'tokenByIndex',
967
+ outputs: [{ internalType: 'uint256', name: '', type: 'uint256' }],
968
+ stateMutability: 'view',
969
+ type: 'function',
970
+ },
971
+ {
972
+ inputs: [
973
+ { internalType: 'address', name: 'owner', type: 'address' },
974
+ { internalType: 'uint256', name: 'index', type: 'uint256' },
975
+ ],
976
+ name: 'tokenOfOwnerByIndex',
977
+ outputs: [{ internalType: 'uint256', name: '', type: 'uint256' }],
978
+ stateMutability: 'view',
979
+ type: 'function',
980
+ },
981
+ {
982
+ inputs: [{ internalType: 'uint256', name: 'tokenId', type: 'uint256' }],
983
+ name: 'tokenURI',
984
+ outputs: [{ internalType: 'string', name: '', type: 'string' }],
985
+ stateMutability: 'view',
986
+ type: 'function',
987
+ },
988
+ {
989
+ inputs: [],
990
+ name: 'totalSupply',
991
+ outputs: [{ internalType: 'uint256', name: '', type: 'uint256' }],
992
+ stateMutability: 'view',
993
+ type: 'function',
994
+ },
995
+ {
996
+ inputs: [
997
+ { internalType: 'address', name: 'from', type: 'address' },
998
+ { internalType: 'address', name: 'to', type: 'address' },
999
+ { internalType: 'uint256', name: 'tokenId', type: 'uint256' },
1000
+ ],
1001
+ name: 'transferFrom',
1002
+ outputs: [],
1003
+ stateMutability: 'nonpayable',
1004
+ type: 'function',
1005
+ },
1006
+ {
1007
+ inputs: [
1008
+ { internalType: 'uint256', name: 'amount0Owed', type: 'uint256' },
1009
+ { internalType: 'uint256', name: 'amount1Owed', type: 'uint256' },
1010
+ { internalType: 'bytes', name: 'data', type: 'bytes' },
1011
+ ],
1012
+ name: 'uniswapV3MintCallback',
1013
+ outputs: [],
1014
+ stateMutability: 'nonpayable',
1015
+ type: 'function',
1016
+ },
1017
+ {
1018
+ inputs: [
1019
+ { internalType: 'uint256', name: 'amountMinimum', type: 'uint256' },
1020
+ { internalType: 'address', name: 'recipient', type: 'address' },
1021
+ ],
1022
+ name: 'unwrapWETH9',
1023
+ outputs: [],
1024
+ stateMutability: 'payable',
1025
+ type: 'function',
1026
+ },
1027
+ { stateMutability: 'payable', type: 'receive' },
1028
+ ],
1029
+ } as const
1030
+
1031
+ export const wagmiContractConfig = {
1032
+ address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',
1033
+ abi: [
1034
+ { inputs: [], stateMutability: 'nonpayable', type: 'constructor' },
1035
+ {
1036
+ anonymous: false,
1037
+ inputs: [
1038
+ {
1039
+ indexed: true,
1040
+ name: 'owner',
1041
+ type: 'address',
1042
+ },
1043
+ {
1044
+ indexed: true,
1045
+ name: 'approved',
1046
+ type: 'address',
1047
+ },
1048
+ {
1049
+ indexed: true,
1050
+ name: 'tokenId',
1051
+ type: 'uint256',
1052
+ },
1053
+ ],
1054
+ name: 'Approval',
1055
+ type: 'event',
1056
+ },
1057
+ {
1058
+ anonymous: false,
1059
+ inputs: [
1060
+ {
1061
+ indexed: true,
1062
+ name: 'owner',
1063
+ type: 'address',
1064
+ },
1065
+ {
1066
+ indexed: true,
1067
+ name: 'operator',
1068
+ type: 'address',
1069
+ },
1070
+ {
1071
+ indexed: false,
1072
+ name: 'approved',
1073
+ type: 'bool',
1074
+ },
1075
+ ],
1076
+ name: 'ApprovalForAll',
1077
+ type: 'event',
1078
+ },
1079
+ {
1080
+ anonymous: false,
1081
+ inputs: [
1082
+ {
1083
+ indexed: true,
1084
+ name: 'from',
1085
+ type: 'address',
1086
+ },
1087
+ { indexed: true, name: 'to', type: 'address' },
1088
+ {
1089
+ indexed: true,
1090
+ name: 'tokenId',
1091
+ type: 'uint256',
1092
+ },
1093
+ ],
1094
+ name: 'Transfer',
1095
+ type: 'event',
1096
+ },
1097
+ {
1098
+ inputs: [
1099
+ { name: 'to', type: 'address' },
1100
+ { name: 'tokenId', type: 'uint256' },
1101
+ ],
1102
+ name: 'approve',
1103
+ outputs: [],
1104
+ stateMutability: 'nonpayable',
1105
+ type: 'function',
1106
+ },
1107
+ {
1108
+ inputs: [{ name: 'owner', type: 'address' }],
1109
+ name: 'balanceOf',
1110
+ outputs: [{ name: '', type: 'uint256' }],
1111
+ stateMutability: 'view',
1112
+ type: 'function',
1113
+ },
1114
+ {
1115
+ inputs: [{ name: 'tokenId', type: 'uint256' }],
1116
+ name: 'getApproved',
1117
+ outputs: [{ name: '', type: 'address' }],
1118
+ stateMutability: 'view',
1119
+ type: 'function',
1120
+ },
1121
+ {
1122
+ inputs: [
1123
+ { name: 'owner', type: 'address' },
1124
+ { name: 'operator', type: 'address' },
1125
+ ],
1126
+ name: 'isApprovedForAll',
1127
+ outputs: [{ name: '', type: 'bool' }],
1128
+ stateMutability: 'view',
1129
+ type: 'function',
1130
+ },
1131
+ {
1132
+ inputs: [],
1133
+ name: 'mint',
1134
+ outputs: [],
1135
+ stateMutability: 'nonpayable',
1136
+ type: 'function',
1137
+ },
1138
+ {
1139
+ inputs: [{ internalType: 'uint256', name: 'tokenId', type: 'uint256' }],
1140
+ name: 'mint',
1141
+ outputs: [],
1142
+ stateMutability: 'nonpayable',
1143
+ type: 'function',
1144
+ },
1145
+ {
1146
+ inputs: [],
1147
+ name: 'name',
1148
+ outputs: [{ name: '', type: 'string' }],
1149
+ stateMutability: 'view',
1150
+ type: 'function',
1151
+ },
1152
+ {
1153
+ inputs: [{ name: 'tokenId', type: 'uint256' }],
1154
+ name: 'ownerOf',
1155
+ outputs: [{ name: '', type: 'address' }],
1156
+ stateMutability: 'view',
1157
+ type: 'function',
1158
+ },
1159
+ {
1160
+ inputs: [
1161
+ { name: 'from', type: 'address' },
1162
+ { name: 'to', type: 'address' },
1163
+ { name: 'tokenId', type: 'uint256' },
1164
+ ],
1165
+ name: 'safeTransferFrom',
1166
+ outputs: [],
1167
+ stateMutability: 'nonpayable',
1168
+ type: 'function',
1169
+ },
1170
+ {
1171
+ inputs: [
1172
+ { name: 'from', type: 'address' },
1173
+ { name: 'to', type: 'address' },
1174
+ { name: 'tokenId', type: 'uint256' },
1175
+ { name: '_data', type: 'bytes' },
1176
+ ],
1177
+ name: 'safeTransferFrom',
1178
+ outputs: [],
1179
+ stateMutability: 'nonpayable',
1180
+ type: 'function',
1181
+ },
1182
+ {
1183
+ inputs: [
1184
+ { name: 'operator', type: 'address' },
1185
+ { name: 'approved', type: 'bool' },
1186
+ ],
1187
+ name: 'setApprovalForAll',
1188
+ outputs: [],
1189
+ stateMutability: 'nonpayable',
1190
+ type: 'function',
1191
+ },
1192
+ {
1193
+ inputs: [{ name: 'interfaceId', type: 'bytes4' }],
1194
+ name: 'supportsInterface',
1195
+ outputs: [{ name: '', type: 'bool' }],
1196
+ stateMutability: 'view',
1197
+ type: 'function',
1198
+ },
1199
+ {
1200
+ inputs: [],
1201
+ name: 'symbol',
1202
+ outputs: [{ name: '', type: 'string' }],
1203
+ stateMutability: 'view',
1204
+ type: 'function',
1205
+ },
1206
+ {
1207
+ inputs: [{ name: 'tokenId', type: 'uint256' }],
1208
+ name: 'tokenURI',
1209
+ outputs: [{ name: '', type: 'string' }],
1210
+ stateMutability: 'pure',
1211
+ type: 'function',
1212
+ },
1213
+ {
1214
+ inputs: [],
1215
+ name: 'totalSupply',
1216
+ outputs: [{ name: '', type: 'uint256' }],
1217
+ stateMutability: 'view',
1218
+ type: 'function',
1219
+ },
1220
+ {
1221
+ inputs: [
1222
+ { name: 'from', type: 'address' },
1223
+ { name: 'to', type: 'address' },
1224
+ { name: 'tokenId', type: 'uint256' },
1225
+ ],
1226
+ name: 'transferFrom',
1227
+ outputs: [],
1228
+ stateMutability: 'nonpayable',
1229
+ type: 'function',
1230
+ },
1231
+ ],
1232
+ } as const
1233
+
1234
+ export const usdcContractConfig = {
1235
+ address: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',
1236
+ abi: [
1237
+ {
1238
+ type: 'event',
1239
+ name: 'Approval',
1240
+ inputs: [
1241
+ {
1242
+ indexed: true,
1243
+ name: 'owner',
1244
+ type: 'address',
1245
+ },
1246
+ {
1247
+ indexed: true,
1248
+ name: 'spender',
1249
+ type: 'address',
1250
+ },
1251
+ {
1252
+ indexed: false,
1253
+ name: 'value',
1254
+ type: 'uint256',
1255
+ },
1256
+ ],
1257
+ },
1258
+ {
1259
+ type: 'event',
1260
+ name: 'Transfer',
1261
+ inputs: [
1262
+ {
1263
+ indexed: true,
1264
+ name: 'from',
1265
+ type: 'address',
1266
+ },
1267
+ {
1268
+ indexed: true,
1269
+ name: 'to',
1270
+ type: 'address',
1271
+ },
1272
+ {
1273
+ indexed: false,
1274
+ name: 'value',
1275
+ type: 'uint256',
1276
+ },
1277
+ ],
1278
+ },
1279
+ {
1280
+ type: 'function',
1281
+ name: 'allowance',
1282
+ stateMutability: 'view',
1283
+ inputs: [
1284
+ {
1285
+ name: 'owner',
1286
+ type: 'address',
1287
+ },
1288
+ {
1289
+ name: 'spender',
1290
+ type: 'address',
1291
+ },
1292
+ ],
1293
+ outputs: [{ type: 'uint256' }],
1294
+ },
1295
+ {
1296
+ type: 'function',
1297
+ name: 'approve',
1298
+ stateMutability: 'nonpayable',
1299
+ inputs: [
1300
+ {
1301
+ name: 'spender',
1302
+ type: 'address',
1303
+ },
1304
+ {
1305
+ name: 'amount',
1306
+ type: 'uint256',
1307
+ },
1308
+ ],
1309
+ outputs: [{ type: 'bool' }],
1310
+ },
1311
+ {
1312
+ type: 'function',
1313
+ name: 'balanceOf',
1314
+ stateMutability: 'view',
1315
+ inputs: [
1316
+ {
1317
+ name: 'account',
1318
+ type: 'address',
1319
+ },
1320
+ ],
1321
+ outputs: [{ type: 'uint256' }],
1322
+ },
1323
+ {
1324
+ type: 'function',
1325
+ name: 'decimals',
1326
+ stateMutability: 'view',
1327
+ inputs: [],
1328
+ outputs: [{ type: 'uint8' }],
1329
+ },
1330
+ {
1331
+ type: 'function',
1332
+ name: 'name',
1333
+ stateMutability: 'view',
1334
+ inputs: [],
1335
+ outputs: [{ type: 'string' }],
1336
+ },
1337
+ {
1338
+ type: 'function',
1339
+ name: 'symbol',
1340
+ stateMutability: 'view',
1341
+ inputs: [],
1342
+ outputs: [{ type: 'string' }],
1343
+ },
1344
+ {
1345
+ type: 'function',
1346
+ name: 'totalSupply',
1347
+ stateMutability: 'view',
1348
+ inputs: [],
1349
+ outputs: [{ type: 'uint256' }],
1350
+ },
1351
+ {
1352
+ type: 'function',
1353
+ name: 'transfer',
1354
+ stateMutability: 'nonpayable',
1355
+ inputs: [
1356
+ {
1357
+ name: 'recipient',
1358
+ type: 'address',
1359
+ },
1360
+ {
1361
+ name: 'amount',
1362
+ type: 'uint256',
1363
+ },
1364
+ ],
1365
+ outputs: [{ type: 'bool' }],
1366
+ },
1367
+ {
1368
+ type: 'function',
1369
+ name: 'transferFrom',
1370
+ stateMutability: 'nonpayable',
1371
+ inputs: [
1372
+ {
1373
+ name: 'sender',
1374
+ type: 'address',
1375
+ },
1376
+ {
1377
+ name: 'recipient',
1378
+ type: 'address',
1379
+ },
1380
+ {
1381
+ name: 'amount',
1382
+ type: 'uint256',
1383
+ },
1384
+ ],
1385
+ outputs: [{ type: 'bool' }],
1386
+ },
1387
+ {
1388
+ type: 'function',
1389
+ name: 'increaseAllowance',
1390
+ stateMutability: 'nonpayable',
1391
+ inputs: [
1392
+ {
1393
+ name: 'spender',
1394
+ type: 'address',
1395
+ },
1396
+ {
1397
+ name: 'addedValue',
1398
+ type: 'uint256',
1399
+ },
1400
+ ],
1401
+ outputs: [{ type: 'bool' }],
1402
+ },
1403
+ {
1404
+ type: 'function',
1405
+ name: 'decreaseAllowance',
1406
+ stateMutability: 'nonpayable',
1407
+ inputs: [
1408
+ {
1409
+ name: 'spender',
1410
+ type: 'address',
1411
+ },
1412
+ {
1413
+ name: 'subtractedValue',
1414
+ type: 'uint256',
1415
+ },
1416
+ ],
1417
+ outputs: [{ type: 'bool' }],
1418
+ },
1419
+ ],
1420
+ } as const