{
  "contractName": "MoonwalkerPoolDeployer",
  "abi": [
    {
      "inputs": [],
      "name": "parameters",
      "outputs": [
        {
          "internalType": "address",
          "name": "factory",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "token0",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "token1",
          "type": "address"
        },
        {
          "internalType": "uint24",
          "name": "fee",
          "type": "uint24"
        },
        {
          "internalType": "int24",
          "name": "tickSpacing",
          "type": "int24"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "metadata": "{\"compiler\":{\"version\":\"0.7.6+commit.7338295f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"parameters\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"factory\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token0\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token1\",\"type\":\"address\"},{\"internalType\":\"uint24\",\"name\":\"fee\",\"type\":\"uint24\"},{\"internalType\":\"int24\",\"name\":\"tickSpacing\",\"type\":\"int24\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"stateVariables\":{\"parameters\":{\"details\":\"Called by the pool constructor to fetch the parameters of the pool Returns factory The factory address Returns token0 The first token of the pool by address sort order Returns token1 The second token of the pool by address sort order Returns fee The fee collected upon every swap in the pool, denominated in hundredths of a bip Returns tickSpacing The minimum number of ticks between initialized ticks\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"parameters()\":{\"notice\":\"Get the parameters to be used in constructing the pool, set transiently during pool creation.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/Users/warrenmason/Documents/UniswapV3Contracts/Core/LiveContracts/MoonwalkerSwap-v1-Core/contracts/MoonwalkerPoolDeployer.sol\":\"MoonwalkerPoolDeployer\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/warrenmason/Documents/UniswapV3Contracts/Core/LiveContracts/MoonwalkerSwap-v1-Core/contracts/MoonwalkerPool.sol\":{\"keccak256\":\"0xd435702358453955f8e247b5f61148b90024ed41a5057fb5ad29e858a229a227\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://599e092d75252a9362c90f74d638338d6e2fc44d1ad6767276b05624a613156f\",\"dweb:/ipfs/QmTvBiPmgK5HSRyTeCDuWm6KZoa3PVZQEeLzZ3PmV6tCWZ\"]},\"/Users/warrenmason/Documents/UniswapV3Contracts/Core/LiveContracts/MoonwalkerSwap-v1-Core/contracts/MoonwalkerPoolDeployer.sol\":{\"keccak256\":\"0x0143450066c07926aa1c3f24764870c0761659e77252491fd15984466a0c9c45\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c9fd217557523c19709ca7c018d9b64a0c54ac1587498191ec5835171619c0d\",\"dweb:/ipfs/Qmap8ohaXp99w5hQuv2NagASzkD9nTpn4kLSF1uaRZjPpY\"]},\"/Users/warrenmason/Documents/UniswapV3Contracts/Core/LiveContracts/MoonwalkerSwap-v1-Core/contracts/NoDelegateCall.sol\":{\"keccak256\":\"0x386511254c4d6d2633d7ffa3041630379d50e4a1ec492f9ca1b757947290b0e6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fd48f9bacc3be4e22d68a8b9ff22c009579ac2469c6a7a936f7f9771dcd581f5\",\"dweb:/ipfs/QmTMkABgncwV73CfemiKv9vbmdDJSL75soQr2KjBEwsJkY\"]},\"/Users/warrenmason/Documents/UniswapV3Contracts/Core/LiveContracts/MoonwalkerSwap-v1-Core/contracts/interfaces/IERC20Minimal.sol\":{\"keccak256\":\"0x7ab95ce2d6a483f0255ecee7068989051c3ed85fce0c44fab13889e7a71334e1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a62f6b6dc9ba1843687ad346a10cafc8d86b95d1f498032054f11baef3d6c22e\",\"dweb:/ipfs/QmdiDLfAZLr1pkE8ZVCnSgBocAEejPwstaJJvPN4LZYEcf\"]},\"/Users/warrenmason/Documents/UniswapV3Contracts/Core/LiveContracts/MoonwalkerSwap-v1-Core/contracts/interfaces/IMoonwalkerFactory.sol\":{\"keccak256\":\"0xef710eff542f772b16ac4729719c373436c2eb10206764bfb6a41dd33096f7df\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea2310bf2f9bfe77324a70ef2faf57f4c0bbf011f15d011b87360d5e035cc41a\",\"dweb:/ipfs/QmdK8PHBsB73CZMFZC2pWKeHire9XZhc638S2xVH9WFx4S\"]},\"/Users/warrenmason/Documents/UniswapV3Contracts/Core/LiveContracts/MoonwalkerSwap-v1-Core/contracts/interfaces/IMoonwalkerPool.sol\":{\"keccak256\":\"0xf75566267b21d70d099bcc5e810068457859fd9622df735d710a231685926249\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://562145c7d01947f5e859447b991bc0b5a76dea15361962aae150ebd303df7252\",\"dweb:/ipfs/QmYvZTnCekrYL1oBWwoyc2u9jBPRcmcK1iqaANgzgxyZwf\"]},\"/Users/warrenmason/Documents/UniswapV3Contracts/Core/LiveContracts/MoonwalkerSwap-v1-Core/contracts/interfaces/IMoonwalkerPoolDeployer.sol\":{\"keccak256\":\"0xdffb36773f8231a4b5816a13f14983b8f7bc2cac803d682bf5b2e9b73cf3a756\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://225881d83166c91b3bb64ea6ee88f0ef74cdeaddf6c28b3552022b43b69bc33b\",\"dweb:/ipfs/QmbNq5c7Apvpk58objNvBLKHiML7S8nLyNaB2uUK3nNLL4\"]},\"/Users/warrenmason/Documents/UniswapV3Contracts/Core/LiveContracts/MoonwalkerSwap-v1-Core/contracts/interfaces/callback/IMoonwalkerFlashCallback.sol\":{\"keccak256\":\"0x456376424212df363adc087b56dedac6c014f739adb86640478d1a93ca59f3db\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0abf23d373a3983679e9d8c396a59a9c0837ec26c4e94efbfaec9cae4a581a73\",\"dweb:/ipfs/QmZMpv8X5daH19PrTwYQqcpTr51u5zDE2rBqLLFeCuAoz9\"]},\"/Users/warrenmason/Documents/UniswapV3Contracts/Core/LiveContracts/MoonwalkerSwap-v1-Core/contracts/interfaces/callback/IMoonwalkerMintCallback.sol\":{\"keccak256\":\"0xfd57ef3ddedb21e814dc6a2e7415c672e4ecd90428f0e33bc70b58e83d07b996\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://14579a25f1f2f26521ce7a79dd936e7afe766a8e617a953917986cc079d7d959\",\"dweb:/ipfs/Qmc4Qv1Sqqq6WuEV8b4iWy95GhtE8B3KwtvKTPFsPfhGpQ\"]},\"/Users/warrenmason/Documents/UniswapV3Contracts/Core/LiveContracts/MoonwalkerSwap-v1-Core/contracts/interfaces/callback/IMoonwalkerSwapCallback.sol\":{\"keccak256\":\"0x0709f6eafdc1a998d714c4719e292df3747b0f298a95b994b82e7e0dfc8b70b7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b2c404b5a8aaf8aabeb87c1228d827e6e31a007cedbf0fe1527bf56f43a43f78\",\"dweb:/ipfs/QmT7fBphTzRgaP4bfL7qtK1kzEbNM5zPhXQaWat7KcHwJN\"]},\"/Users/warrenmason/Documents/UniswapV3Contracts/Core/LiveContracts/MoonwalkerSwap-v1-Core/contracts/interfaces/pool/IMoonwalkerPoolActions.sol\":{\"keccak256\":\"0xbe6848ebe6bc45a3b3dc9e4e471710f990bdf5984ad27aa735ba111ec5251000\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b85fc420f2279fabcc084d0cede0f16a27f5d79719d7aaf1d16c17f106b09ce9\",\"dweb:/ipfs/QmXRbXbZXmfiygmUenvn5osXNqSCogqWq1T16M2GGWfGsU\"]},\"/Users/warrenmason/Documents/UniswapV3Contracts/Core/LiveContracts/MoonwalkerSwap-v1-Core/contracts/interfaces/pool/IMoonwalkerPoolDerivedState.sol\":{\"keccak256\":\"0xdc30625cd50851cca3ce8898c1368c47d12749078132e28802c28213723767fe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bcf5c236dc728b42471b31cede6a34e49f3a2e5af813a62325d586dc3ed4da83\",\"dweb:/ipfs/Qmd2yDp6v1c7jgzYq7VSjrrDjUNfXs4ms4cKCiCyEQqpyS\"]},\"/Users/warrenmason/Documents/UniswapV3Contracts/Core/LiveContracts/MoonwalkerSwap-v1-Core/contracts/interfaces/pool/IMoonwalkerPoolEvents.sol\":{\"keccak256\":\"0x427dac308f06d66b382235330a372910f9a78dc4f2f61ea3bba4020aeb13aa60\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4141da347669273cd5fd7c7908e077ff87f4ef91aa3000536a5e999a9b8bf89d\",\"dweb:/ipfs/QmQ2ViDCBykc3WG5so61vcKdWk2v1wPHUEAPfVc8HziYTL\"]},\"/Users/warrenmason/Documents/UniswapV3Contracts/Core/LiveContracts/MoonwalkerSwap-v1-Core/contracts/interfaces/pool/IMoonwalkerPoolImmutables.sol\":{\"keccak256\":\"0xd0f2dfc66cc3400c6433e0adf4cd40117798f5cdb6963f79a8ff593375773ce2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b03f976151a3a375eadf6f60dd03187bf73f5cd3786ba6b74bcb3e08d6e5c823\",\"dweb:/ipfs/QmYwbt38mnGnB9ovtd9J3Ea8He8BZhrh4ybJ6cCQehZGJj\"]},\"/Users/warrenmason/Documents/UniswapV3Contracts/Core/LiveContracts/MoonwalkerSwap-v1-Core/contracts/interfaces/pool/IMoonwalkerPoolOwnerActions.sol\":{\"keccak256\":\"0x4e0aff2d20141240010056058a6e85faff9357390e1459a717b6bad0a5889ebb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://744646728b66bad9ac7fc5b4074e444ce02503738ae0bd465061d902e4b7e278\",\"dweb:/ipfs/Qmanknkx1G9c7by4b95AQC53FkbMiNBeHnLzES9o5nidN5\"]},\"/Users/warrenmason/Documents/UniswapV3Contracts/Core/LiveContracts/MoonwalkerSwap-v1-Core/contracts/interfaces/pool/IMoonwalkerPoolState.sol\":{\"keccak256\":\"0xe1d5e6e9fa35b108ad1b5a972a3e594be19265b14a9b77c61e92df577ae5cc76\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://07653aacb6a2fd1b4c1a583a19786840a4cb1e089de9cda1071e8c3ae816a5fb\",\"dweb:/ipfs/QmafQirBZzrGrykyHz6R9q9qaiH6nHkmteC8NTFLrs8nDx\"]},\"/Users/warrenmason/Documents/UniswapV3Contracts/Core/LiveContracts/MoonwalkerSwap-v1-Core/contracts/libraries/BitMath.sol\":{\"keccak256\":\"0xfdb9011d56f4fc6dbf7dfa9bd191d13c405dc1ef5f295e222d402fedd7b78b4a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://635d12ff3353f4996357c4c8798051c49755de9a9431c8068fdd45364c8359f4\",\"dweb:/ipfs/QmfTTffPWDnN1aBeNXgcdozJeBxa9Q6CWJJ2bZh7ZoymKz\"]},\"/Users/warrenmason/Documents/UniswapV3Contracts/Core/LiveContracts/MoonwalkerSwap-v1-Core/contracts/libraries/FixedPoint128.sol\":{\"keccak256\":\"0x2d1f4f73ae0d8f0a210b8d30084659b57c56ac8f2f96011fca36f00a6d417178\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://2ba88933f16cd2df398e19c6ad227268f83c03081b70d243c97116d2ed9bc241\",\"dweb:/ipfs/QmTUGxdh8snzEM9VrTSS47StCg9VVWvvLJtJeNnMTFY4xb\"]},\"/Users/warrenmason/Documents/UniswapV3Contracts/Core/LiveContracts/MoonwalkerSwap-v1-Core/contracts/libraries/FixedPoint96.sol\":{\"keccak256\":\"0xb466ea5c68592e0aab06e0ffa0937b047a2ec0916c2a181dee91f439e06c36d1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://90e2d3770039b4430765a328d1abc6d035ad5a6e71906ab8f120220f3a9a9899\",\"dweb:/ipfs/QmTJFjBkBJGL98BjRnyH48yDZC94LU42SuuEPkd5qhgTnW\"]},\"/Users/warrenmason/Documents/UniswapV3Contracts/Core/LiveContracts/MoonwalkerSwap-v1-Core/contracts/libraries/FullMath.sol\":{\"keccak256\":\"0xe511530871deaef86692cea9adb6076d26d7b47fd4815ce51af52af981026057\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc5a6ae776be3e7dcbd23d49ffbc9d792fed0ddf4b111ebb64b9bb2133ec263e\",\"dweb:/ipfs/QmbAUtWqvipzEARQpFpkzYKBELy3qeW5WXnZxHFU84sxG7\"]},\"/Users/warrenmason/Documents/UniswapV3Contracts/Core/LiveContracts/MoonwalkerSwap-v1-Core/contracts/libraries/LiquidityMath.sol\":{\"keccak256\":\"0x2fcb84bece328675849d09dee9439901fd14c852efa2cb84a7dd1ada04a90a1e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ce303eb639ca62f247a8a49a65f15b25b931fbd64b176c2180a6ea790f99bb11\",\"dweb:/ipfs/QmXehfxvPATibRJ2JWWBnLbDyA7hMk5jWCxidpJfDKGQVD\"]},\"/Users/warrenmason/Documents/UniswapV3Contracts/Core/LiveContracts/MoonwalkerSwap-v1-Core/contracts/libraries/LowGasSafeMath.sol\":{\"keccak256\":\"0xf2583083971cf8a4274e14515aabbf9f4855193e34fe2addb0ca7b1589519b0c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cbf0ada2bba8827d459101a2359e4682be749b9ddd0a3c44f26119c9a0898e82\",\"dweb:/ipfs/QmPmKotXLza9j7sjNaXSYY9XbyZhkkQ3nMeWE9tiHKeouC\"]},\"/Users/warrenmason/Documents/UniswapV3Contracts/Core/LiveContracts/MoonwalkerSwap-v1-Core/contracts/libraries/Oracle.sol\":{\"keccak256\":\"0x727f859fedfcb0402e648407042c022e3fa6568cb137ead98606166f10311772\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://d5500452fc47f728c5aff23fdecd19ce1083dc7562d7cc241a7e3b6740ded8c2\",\"dweb:/ipfs/QmXPCRHEn68oEM8uMMiWYScGtaUwfkN2DuajiAyzTgHnaF\"]},\"/Users/warrenmason/Documents/UniswapV3Contracts/Core/LiveContracts/MoonwalkerSwap-v1-Core/contracts/libraries/Position.sol\":{\"keccak256\":\"0x7fb1a35fcc8b2104f1899d98cd1ce49b5e3af1bdad9da28a5bcda1d4081465e9\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://28f43918f6528913abe8586ea4607281b97cdce35f869ae86369487c6ee6eb6c\",\"dweb:/ipfs/QmTgTRMZ5FQT2MCkgUmuhGbt39uyoiVwgXWNJbzoZqiC4f\"]},\"/Users/warrenmason/Documents/UniswapV3Contracts/Core/LiveContracts/MoonwalkerSwap-v1-Core/contracts/libraries/SafeCast.sol\":{\"keccak256\":\"0x4a12ab60fdb663b341bb3a2f5c6631ba40b7b6fa9d131c9540b60dbb4196a27e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d55e89b639f5ea027798cf3f246f38209308e812b8e568d19aa487bcdc8008a0\",\"dweb:/ipfs/QmfRWZGxKK21EgQea2PLxgJ6aypEbQjQSotHiruXGmKVm6\"]},\"/Users/warrenmason/Documents/UniswapV3Contracts/Core/LiveContracts/MoonwalkerSwap-v1-Core/contracts/libraries/SqrtPriceMath.sol\":{\"keccak256\":\"0x4f69701d331d364b69a1cda77cd7b983a0079d36ae0e06b0bb1d64ae56c3705e\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://f9ed4f172da650484c97d31cce084e905e69c3f3b072141cb15363f4ed0cd03c\",\"dweb:/ipfs/QmPNDM667PxzbbR8YDbtibFaPMGrcbK71GKpFPkGgDEYvb\"]},\"/Users/warrenmason/Documents/UniswapV3Contracts/Core/LiveContracts/MoonwalkerSwap-v1-Core/contracts/libraries/SwapMath.sol\":{\"keccak256\":\"0xcd310be830646d0d55bef86683847577f742704d227471ad7b4cab3df9c47cf7\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://e6029f7cbb62563f488ee9c4510fee69b5408b64119065d912c1bd682baeef84\",\"dweb:/ipfs/Qmed5zZvcEbqmDmkyGV2huNzrK3mk8KrF9UQohKWLTcc3n\"]},\"/Users/warrenmason/Documents/UniswapV3Contracts/Core/LiveContracts/MoonwalkerSwap-v1-Core/contracts/libraries/Tick.sol\":{\"keccak256\":\"0xdabed554c4b1fea880edd6cf571840824de530ce51d6c9703cad19221590af5a\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://160fc25b4e616c2b51f50a49289c43f269f049d7834c48eafe3356048d9f7824\",\"dweb:/ipfs/QmNbtt4nCxonZ7qfzTuoain4Wo3KiSBmuczP6PexcFnKj6\"]},\"/Users/warrenmason/Documents/UniswapV3Contracts/Core/LiveContracts/MoonwalkerSwap-v1-Core/contracts/libraries/TickBitmap.sol\":{\"keccak256\":\"0x2035bacd76333baa4ef2bbd6423561638e1b7e97cb19be5b4d61feeea3340364\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://55da2e8d44c094b9aa1a40577f9ff32605516ae45ad54e799ec9d570d007a206\",\"dweb:/ipfs/QmakgjThKgfBTaj6Vvf54oKkxeHqgxKFmyiVbcjstsGDBF\"]},\"/Users/warrenmason/Documents/UniswapV3Contracts/Core/LiveContracts/MoonwalkerSwap-v1-Core/contracts/libraries/TickMath.sol\":{\"keccak256\":\"0x1f864a2bf61ba05f3173eaf2e3f94c5e1da4bec0554757527b6d1ef1fe439e4e\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://5139b586df546a9d1c46804ca400b1cb9ce87236eaf212ebd64edee6747a172a\",\"dweb:/ipfs/QmVa2kcRw3VyuB6j1EVWXACKnkbQZgfXYXNi5voq3XkYG8\"]},\"/Users/warrenmason/Documents/UniswapV3Contracts/Core/LiveContracts/MoonwalkerSwap-v1-Core/contracts/libraries/TransferHelper.sol\":{\"keccak256\":\"0x3f66e0d24a6bfb74a62a667c7229c65add3075375ef77d8eb2f929994bd4ab3e\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://e1f9dcb71c151c5cd17f7733139100a4a5befb4f1f05e9085e905d0a32276c17\",\"dweb:/ipfs/QmNZBS1kh2y92bKufQbxxfpVRC1aAJDJD5B8qjmFyhuwMq\"]},\"/Users/warrenmason/Documents/UniswapV3Contracts/Core/LiveContracts/MoonwalkerSwap-v1-Core/contracts/libraries/UnsafeMath.sol\":{\"keccak256\":\"0x5f36d7d16348d8c37fe64fda932018d6e5e8acecd054f0f97d32db62d20c6c88\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://4bd4e817ea3d2c26bb2be7e58db3eaa403119562c18d4c09cc92fb31aa231496\",\"dweb:/ipfs/QmbpjgL8Hf1mhmUyf9hpuPk4noGAggCdTqaRBFKqNF3AQw\"]}},\"version\":1}",
  "bytecode": "0x608060405234801561001057600080fd5b5060e18061001f6000396000f3fe6080604052348015600f57600080fd5b506004361060285760003560e01c80638903573014602d575b600080fd5b60336075565b604080516001600160a01b0396871681529486166020860152929094168383015262ffffff16606083015260029290920b608082015290519081900360a00190f35b600054600154600280546001600160a01b03938416939283169281169162ffffff600160a01b83041691600160b81b9004900b8556fea264697066735822122001d59992fb5df1bef448e340f0f95ad329e3d558268f740f7f9bd0911981ec8764736f6c63430007060033",
  "deployedBytecode": "0x6080604052348015600f57600080fd5b506004361060285760003560e01c80638903573014602d575b600080fd5b60336075565b604080516001600160a01b0396871681529486166020860152929094168383015262ffffff16606083015260029290920b608082015290519081900360a00190f35b600054600154600280546001600160a01b03938416939283169281169162ffffff600160a01b83041691600160b81b9004900b8556fea264697066735822122001d59992fb5df1bef448e340f0f95ad329e3d558268f740f7f9bd0911981ec8764736f6c63430007060033",
  "immutableReferences": {},
  "generatedSources": [],
  "deployedGeneratedSources": [],
  "sourceMap": "141:1268:2:-:0;;;;;;;;;;;;;;;;;;;",
  "deployedSourceMap": "141:1268:2:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;401:37;;;:::i;:::-;;;;-1:-1:-1;;;;;401:37:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;401:37:2;;;;;;;;;;;;-1:-1:-1;;;401:37:2;;;;-1:-1:-1;;;401:37:2;;;;;:::o",
  "source": "// SPDX-License-Identifier: MIT\npragma solidity =0.7.6;\n\nimport './interfaces/IMoonwalkerPoolDeployer.sol';\n\nimport './MoonwalkerPool.sol';\n\ncontract MoonwalkerPoolDeployer is IMoonwalkerPoolDeployer {\n    struct Parameters {\n        address factory;\n        address token0;\n        address token1;\n        uint24 fee;\n        int24 tickSpacing;\n    }\n\n    /// @inheritdoc IMoonwalkerPoolDeployer\n    Parameters public override parameters;\n\n    /// @dev Deploys a pool with the given parameters by transiently setting the parameters storage slot and then\n    /// clearing it after deploying the pool.\n    /// @param factory The contract address of the Moonwalker  factory\n    /// @param token0 The first token of the pool by address sort order\n    /// @param token1 The second token of the pool by address sort order\n    /// @param fee The fee collected upon every swap in the pool, denominated in hundredths of a bip\n    /// @param tickSpacing The spacing between usable ticks\n    function deploy(\n        address factory,\n        address token0,\n        address token1,\n        uint24 fee,\n        int24 tickSpacing\n    ) internal returns (address pool) {\n        parameters = Parameters({factory: factory, token0: token0, token1: token1, fee: fee, tickSpacing: tickSpacing});\n        pool = address(new MoonwalkerPool{salt: keccak256(abi.encode(token0, token1, fee))}());\n        delete parameters;\n    }\n}\n",
  "sourcePath": "/Users/warrenmason/Documents/UniswapV3Contracts/Core/LiveContracts/MoonwalkerSwap-v1-Core/contracts/MoonwalkerPoolDeployer.sol",
  "ast": {
    "absolutePath": "/Users/warrenmason/Documents/UniswapV3Contracts/Core/LiveContracts/MoonwalkerSwap-v1-Core/contracts/MoonwalkerPoolDeployer.sol",
    "exportedSymbols": {
      "BitMath": [
        3800
      ],
      "FixedPoint128": [
        3807
      ],
      "FixedPoint96": [
        3817
      ],
      "FullMath": [
        3990
      ],
      "IERC20Minimal": [
        2936
      ],
      "IMoonwalkerFactory": [
        3019
      ],
      "IMoonwalkerFlashCallback": [
        3073
      ],
      "IMoonwalkerMintCallback": [
        3087
      ],
      "IMoonwalkerPool": [
        3041
      ],
      "IMoonwalkerPoolActions": [
        3197
      ],
      "IMoonwalkerPoolDeployer": [
        3059
      ],
      "IMoonwalkerPoolDerivedState": [
        3228
      ],
      "IMoonwalkerPoolEvents": [
        3347
      ],
      "IMoonwalkerPoolImmutables": [
        3387
      ],
      "IMoonwalkerPoolOwnerActions": [
        3413
      ],
      "IMoonwalkerPoolState": [
        3521
      ],
      "IMoonwalkerSwapCallback": [
        3101
      ],
      "LiquidityMath": [
        4042
      ],
      "LowGasSafeMath": [
        4172
      ],
      "MoonwalkerPool": [
        2754
      ],
      "MoonwalkerPoolDeployer": [
        2824
      ],
      "NoDelegateCall": [
        2864
      ],
      "Oracle": [
        4907
      ],
      "Position": [
        5080
      ],
      "SafeCast": [
        5150
      ],
      "SqrtPriceMath": [
        5666
      ],
      "SwapMath": [
        5927
      ],
      "Tick": [
        6379
      ],
      "TickBitmap": [
        6635
      ],
      "TickMath": [
        7170
      ],
      "TransferHelper": [
        7221
      ],
      "UnsafeMath": [
        7237
      ]
    },
    "id": 2825,
    "license": "MIT",
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 2756,
        "literals": [
          "solidity",
          "=",
          "0.7",
          ".6"
        ],
        "nodeType": "PragmaDirective",
        "src": "32:23:2"
      },
      {
        "absolutePath": "/Users/warrenmason/Documents/UniswapV3Contracts/Core/LiveContracts/MoonwalkerSwap-v1-Core/contracts/interfaces/IMoonwalkerPoolDeployer.sol",
        "file": "./interfaces/IMoonwalkerPoolDeployer.sol",
        "id": 2757,
        "nodeType": "ImportDirective",
        "scope": 2825,
        "sourceUnit": 3060,
        "src": "57:50:2",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/Users/warrenmason/Documents/UniswapV3Contracts/Core/LiveContracts/MoonwalkerSwap-v1-Core/contracts/MoonwalkerPool.sol",
        "file": "./MoonwalkerPool.sol",
        "id": 2758,
        "nodeType": "ImportDirective",
        "scope": 2825,
        "sourceUnit": 2755,
        "src": "109:30:2",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "abstract": false,
        "baseContracts": [
          {
            "baseName": {
              "id": 2759,
              "name": "IMoonwalkerPoolDeployer",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 3059,
              "src": "176:23:2",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_IMoonwalkerPoolDeployer_$3059",
                "typeString": "contract IMoonwalkerPoolDeployer"
              }
            },
            "id": 2760,
            "nodeType": "InheritanceSpecifier",
            "src": "176:23:2"
          }
        ],
        "contractDependencies": [
          2754,
          3059
        ],
        "contractKind": "contract",
        "fullyImplemented": true,
        "id": 2824,
        "linearizedBaseContracts": [
          2824,
          3059
        ],
        "name": "MoonwalkerPoolDeployer",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "canonicalName": "MoonwalkerPoolDeployer.Parameters",
            "id": 2771,
            "members": [
              {
                "constant": false,
                "id": 2762,
                "mutability": "mutable",
                "name": "factory",
                "nodeType": "VariableDeclaration",
                "scope": 2771,
                "src": "234:15:2",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                },
                "typeName": {
                  "id": 2761,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "234:7:2",
                  "stateMutability": "nonpayable",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 2764,
                "mutability": "mutable",
                "name": "token0",
                "nodeType": "VariableDeclaration",
                "scope": 2771,
                "src": "259:14:2",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                },
                "typeName": {
                  "id": 2763,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "259:7:2",
                  "stateMutability": "nonpayable",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 2766,
                "mutability": "mutable",
                "name": "token1",
                "nodeType": "VariableDeclaration",
                "scope": 2771,
                "src": "283:14:2",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                },
                "typeName": {
                  "id": 2765,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "283:7:2",
                  "stateMutability": "nonpayable",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 2768,
                "mutability": "mutable",
                "name": "fee",
                "nodeType": "VariableDeclaration",
                "scope": 2771,
                "src": "307:10:2",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint24",
                  "typeString": "uint24"
                },
                "typeName": {
                  "id": 2767,
                  "name": "uint24",
                  "nodeType": "ElementaryTypeName",
                  "src": "307:6:2",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint24",
                    "typeString": "uint24"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 2770,
                "mutability": "mutable",
                "name": "tickSpacing",
                "nodeType": "VariableDeclaration",
                "scope": 2771,
                "src": "327:17:2",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_int24",
                  "typeString": "int24"
                },
                "typeName": {
                  "id": 2769,
                  "name": "int24",
                  "nodeType": "ElementaryTypeName",
                  "src": "327:5:2",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int24",
                    "typeString": "int24"
                  }
                },
                "visibility": "internal"
              }
            ],
            "name": "Parameters",
            "nodeType": "StructDefinition",
            "scope": 2824,
            "src": "206:145:2",
            "visibility": "public"
          },
          {
            "baseFunctions": [
              3058
            ],
            "constant": false,
            "documentation": {
              "id": 2772,
              "nodeType": "StructuredDocumentation",
              "src": "357:39:2",
              "text": "@inheritdoc IMoonwalkerPoolDeployer"
            },
            "functionSelector": "89035730",
            "id": 2775,
            "mutability": "mutable",
            "name": "parameters",
            "nodeType": "VariableDeclaration",
            "overrides": {
              "id": 2774,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "419:8:2"
            },
            "scope": 2824,
            "src": "401:37:2",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_struct$_Parameters_$2771_storage",
              "typeString": "struct MoonwalkerPoolDeployer.Parameters"
            },
            "typeName": {
              "id": 2773,
              "name": "Parameters",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 2771,
              "src": "401:10:2",
              "typeDescriptions": {
                "typeIdentifier": "t_struct$_Parameters_$2771_storage_ptr",
                "typeString": "struct MoonwalkerPoolDeployer.Parameters"
              }
            },
            "visibility": "public"
          },
          {
            "body": {
              "id": 2822,
              "nodeType": "Block",
              "src": "1156:251:2",
              "statements": [
                {
                  "expression": {
                    "id": 2799,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 2791,
                      "name": "parameters",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2775,
                      "src": "1166:10:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Parameters_$2771_storage",
                        "typeString": "struct MoonwalkerPoolDeployer.Parameters storage ref"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "arguments": [
                        {
                          "id": 2793,
                          "name": "factory",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2778,
                          "src": "1200:7:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        {
                          "id": 2794,
                          "name": "token0",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2780,
                          "src": "1217:6:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        {
                          "id": 2795,
                          "name": "token1",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2782,
                          "src": "1233:6:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        {
                          "id": 2796,
                          "name": "fee",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2784,
                          "src": "1246:3:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint24",
                            "typeString": "uint24"
                          }
                        },
                        {
                          "id": 2797,
                          "name": "tickSpacing",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2786,
                          "src": "1264:11:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int24",
                            "typeString": "int24"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          },
                          {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          },
                          {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          },
                          {
                            "typeIdentifier": "t_uint24",
                            "typeString": "uint24"
                          },
                          {
                            "typeIdentifier": "t_int24",
                            "typeString": "int24"
                          }
                        ],
                        "id": 2792,
                        "name": "Parameters",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2771,
                        "src": "1179:10:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_struct$_Parameters_$2771_storage_ptr_$",
                          "typeString": "type(struct MoonwalkerPoolDeployer.Parameters storage pointer)"
                        }
                      },
                      "id": 2798,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "structConstructorCall",
                      "lValueRequested": false,
                      "names": [
                        "factory",
                        "token0",
                        "token1",
                        "fee",
                        "tickSpacing"
                      ],
                      "nodeType": "FunctionCall",
                      "src": "1179:98:2",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Parameters_$2771_memory_ptr",
                        "typeString": "struct MoonwalkerPoolDeployer.Parameters memory"
                      }
                    },
                    "src": "1166:111:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Parameters_$2771_storage",
                      "typeString": "struct MoonwalkerPoolDeployer.Parameters storage ref"
                    }
                  },
                  "id": 2800,
                  "nodeType": "ExpressionStatement",
                  "src": "1166:111:2"
                },
                {
                  "expression": {
                    "id": 2817,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 2801,
                      "name": "pool",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2789,
                      "src": "1287:4:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "arguments": [
                        {
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "expression": {
                              "argumentTypes": [],
                              "id": 2805,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "NewExpression",
                              "src": "1302:18:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_creation_nonpayable$__$returns$_t_contract$_MoonwalkerPool_$2754_$",
                                "typeString": "function () returns (contract MoonwalkerPool)"
                              },
                              "typeName": {
                                "id": 2804,
                                "name": "MoonwalkerPool",
                                "nodeType": "UserDefinedTypeName",
                                "referencedDeclaration": 2754,
                                "src": "1306:14:2",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_MoonwalkerPool_$2754",
                                  "typeString": "contract MoonwalkerPool"
                                }
                              }
                            },
                            "id": 2814,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "names": [
                              "salt"
                            ],
                            "nodeType": "FunctionCallOptions",
                            "options": [
                              {
                                "arguments": [
                                  {
                                    "arguments": [
                                      {
                                        "id": 2809,
                                        "name": "token0",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 2780,
                                        "src": "1348:6:2",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_address",
                                          "typeString": "address"
                                        }
                                      },
                                      {
                                        "id": 2810,
                                        "name": "token1",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 2782,
                                        "src": "1356:6:2",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_address",
                                          "typeString": "address"
                                        }
                                      },
                                      {
                                        "id": 2811,
                                        "name": "fee",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 2784,
                                        "src": "1364:3:2",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint24",
                                          "typeString": "uint24"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_address",
                                          "typeString": "address"
                                        },
                                        {
                                          "typeIdentifier": "t_address",
                                          "typeString": "address"
                                        },
                                        {
                                          "typeIdentifier": "t_uint24",
                                          "typeString": "uint24"
                                        }
                                      ],
                                      "expression": {
                                        "id": 2807,
                                        "name": "abi",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 4294967295,
                                        "src": "1337:3:2",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_magic_abi",
                                          "typeString": "abi"
                                        }
                                      },
                                      "id": 2808,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "memberName": "encode",
                                      "nodeType": "MemberAccess",
                                      "src": "1337:10:2",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$",
                                        "typeString": "function () pure returns (bytes memory)"
                                      }
                                    },
                                    "id": 2812,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "functionCall",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "1337:31:2",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes_memory_ptr",
                                      "typeString": "bytes memory"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_bytes_memory_ptr",
                                      "typeString": "bytes memory"
                                    }
                                  ],
                                  "id": 2806,
                                  "name": "keccak256",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 4294967288,
                                  "src": "1327:9:2",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                                    "typeString": "function (bytes memory) pure returns (bytes32)"
                                  }
                                },
                                "id": 2813,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "1327:42:2",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              }
                            ],
                            "src": "1302:68:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_creation_nonpayable$__$returns$_t_contract$_MoonwalkerPool_$2754_$salt",
                              "typeString": "function () returns (contract MoonwalkerPool)"
                            }
                          },
                          "id": 2815,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "1302:70:2",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_MoonwalkerPool_$2754",
                            "typeString": "contract MoonwalkerPool"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_contract$_MoonwalkerPool_$2754",
                            "typeString": "contract MoonwalkerPool"
                          }
                        ],
                        "id": 2803,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "1294:7:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_address_$",
                          "typeString": "type(address)"
                        },
                        "typeName": {
                          "id": 2802,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "1294:7:2",
                          "typeDescriptions": {}
                        }
                      },
                      "id": 2816,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "1294:79:2",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "1287:86:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 2818,
                  "nodeType": "ExpressionStatement",
                  "src": "1287:86:2"
                },
                {
                  "expression": {
                    "id": 2820,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "UnaryOperation",
                    "operator": "delete",
                    "prefix": true,
                    "src": "1383:17:2",
                    "subExpression": {
                      "id": 2819,
                      "name": "parameters",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2775,
                      "src": "1390:10:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Parameters_$2771_storage",
                        "typeString": "struct MoonwalkerPoolDeployer.Parameters storage ref"
                      }
                    },
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2821,
                  "nodeType": "ExpressionStatement",
                  "src": "1383:17:2"
                }
              ]
            },
            "documentation": {
              "id": 2776,
              "nodeType": "StructuredDocumentation",
              "src": "445:532:2",
              "text": "@dev Deploys a pool with the given parameters by transiently setting the parameters storage slot and then\n clearing it after deploying the pool.\n @param factory The contract address of the Moonwalker  factory\n @param token0 The first token of the pool by address sort order\n @param token1 The second token of the pool by address sort order\n @param fee The fee collected upon every swap in the pool, denominated in hundredths of a bip\n @param tickSpacing The spacing between usable ticks"
            },
            "id": 2823,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "deploy",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2787,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2778,
                  "mutability": "mutable",
                  "name": "factory",
                  "nodeType": "VariableDeclaration",
                  "scope": 2823,
                  "src": "1007:15:2",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2777,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1007:7:2",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2780,
                  "mutability": "mutable",
                  "name": "token0",
                  "nodeType": "VariableDeclaration",
                  "scope": 2823,
                  "src": "1032:14:2",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2779,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1032:7:2",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2782,
                  "mutability": "mutable",
                  "name": "token1",
                  "nodeType": "VariableDeclaration",
                  "scope": 2823,
                  "src": "1056:14:2",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2781,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1056:7:2",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2784,
                  "mutability": "mutable",
                  "name": "fee",
                  "nodeType": "VariableDeclaration",
                  "scope": 2823,
                  "src": "1080:10:2",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint24",
                    "typeString": "uint24"
                  },
                  "typeName": {
                    "id": 2783,
                    "name": "uint24",
                    "nodeType": "ElementaryTypeName",
                    "src": "1080:6:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint24",
                      "typeString": "uint24"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2786,
                  "mutability": "mutable",
                  "name": "tickSpacing",
                  "nodeType": "VariableDeclaration",
                  "scope": 2823,
                  "src": "1100:17:2",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int24",
                    "typeString": "int24"
                  },
                  "typeName": {
                    "id": 2785,
                    "name": "int24",
                    "nodeType": "ElementaryTypeName",
                    "src": "1100:5:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int24",
                      "typeString": "int24"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "997:126:2"
            },
            "returnParameters": {
              "id": 2790,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2789,
                  "mutability": "mutable",
                  "name": "pool",
                  "nodeType": "VariableDeclaration",
                  "scope": 2823,
                  "src": "1142:12:2",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2788,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1142:7:2",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1141:14:2"
            },
            "scope": 2824,
            "src": "982:425:2",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "internal"
          }
        ],
        "scope": 2825,
        "src": "141:1268:2"
      }
    ],
    "src": "32:1378:2"
  },
  "legacyAST": {
    "attributes": {
      "absolutePath": "/Users/warrenmason/Documents/UniswapV3Contracts/Core/LiveContracts/MoonwalkerSwap-v1-Core/contracts/MoonwalkerPoolDeployer.sol",
      "exportedSymbols": {
        "BitMath": [
          3800
        ],
        "FixedPoint128": [
          3807
        ],
        "FixedPoint96": [
          3817
        ],
        "FullMath": [
          3990
        ],
        "IERC20Minimal": [
          2936
        ],
        "IMoonwalkerFactory": [
          3019
        ],
        "IMoonwalkerFlashCallback": [
          3073
        ],
        "IMoonwalkerMintCallback": [
          3087
        ],
        "IMoonwalkerPool": [
          3041
        ],
        "IMoonwalkerPoolActions": [
          3197
        ],
        "IMoonwalkerPoolDeployer": [
          3059
        ],
        "IMoonwalkerPoolDerivedState": [
          3228
        ],
        "IMoonwalkerPoolEvents": [
          3347
        ],
        "IMoonwalkerPoolImmutables": [
          3387
        ],
        "IMoonwalkerPoolOwnerActions": [
          3413
        ],
        "IMoonwalkerPoolState": [
          3521
        ],
        "IMoonwalkerSwapCallback": [
          3101
        ],
        "LiquidityMath": [
          4042
        ],
        "LowGasSafeMath": [
          4172
        ],
        "MoonwalkerPool": [
          2754
        ],
        "MoonwalkerPoolDeployer": [
          2824
        ],
        "NoDelegateCall": [
          2864
        ],
        "Oracle": [
          4907
        ],
        "Position": [
          5080
        ],
        "SafeCast": [
          5150
        ],
        "SqrtPriceMath": [
          5666
        ],
        "SwapMath": [
          5927
        ],
        "Tick": [
          6379
        ],
        "TickBitmap": [
          6635
        ],
        "TickMath": [
          7170
        ],
        "TransferHelper": [
          7221
        ],
        "UnsafeMath": [
          7237
        ]
      },
      "license": "MIT"
    },
    "children": [
      {
        "attributes": {
          "literals": [
            "solidity",
            "=",
            "0.7",
            ".6"
          ]
        },
        "id": 2756,
        "name": "PragmaDirective",
        "src": "32:23:2"
      },
      {
        "attributes": {
          "SourceUnit": 3060,
          "absolutePath": "/Users/warrenmason/Documents/UniswapV3Contracts/Core/LiveContracts/MoonwalkerSwap-v1-Core/contracts/interfaces/IMoonwalkerPoolDeployer.sol",
          "file": "./interfaces/IMoonwalkerPoolDeployer.sol",
          "scope": 2825,
          "symbolAliases": [
            null
          ],
          "unitAlias": ""
        },
        "id": 2757,
        "name": "ImportDirective",
        "src": "57:50:2"
      },
      {
        "attributes": {
          "SourceUnit": 2755,
          "absolutePath": "/Users/warrenmason/Documents/UniswapV3Contracts/Core/LiveContracts/MoonwalkerSwap-v1-Core/contracts/MoonwalkerPool.sol",
          "file": "./MoonwalkerPool.sol",
          "scope": 2825,
          "symbolAliases": [
            null
          ],
          "unitAlias": ""
        },
        "id": 2758,
        "name": "ImportDirective",
        "src": "109:30:2"
      },
      {
        "attributes": {
          "abstract": false,
          "contractDependencies": [
            2754,
            3059
          ],
          "contractKind": "contract",
          "fullyImplemented": true,
          "linearizedBaseContracts": [
            2824,
            3059
          ],
          "name": "MoonwalkerPoolDeployer",
          "scope": 2825
        },
        "children": [
          {
            "attributes": {},
            "children": [
              {
                "attributes": {
                  "name": "IMoonwalkerPoolDeployer",
                  "referencedDeclaration": 3059,
                  "type": "contract IMoonwalkerPoolDeployer"
                },
                "id": 2759,
                "name": "UserDefinedTypeName",
                "src": "176:23:2"
              }
            ],
            "id": 2760,
            "name": "InheritanceSpecifier",
            "src": "176:23:2"
          },
          {
            "attributes": {
              "canonicalName": "MoonwalkerPoolDeployer.Parameters",
              "name": "Parameters",
              "scope": 2824,
              "visibility": "public"
            },
            "children": [
              {
                "attributes": {
                  "constant": false,
                  "mutability": "mutable",
                  "name": "factory",
                  "scope": 2771,
                  "stateVariable": false,
                  "storageLocation": "default",
                  "type": "address",
                  "visibility": "internal"
                },
                "children": [
                  {
                    "attributes": {
                      "name": "address",
                      "stateMutability": "nonpayable",
                      "type": "address"
                    },
                    "id": 2761,
                    "name": "ElementaryTypeName",
                    "src": "234:7:2"
                  }
                ],
                "id": 2762,
                "name": "VariableDeclaration",
                "src": "234:15:2"
              },
              {
                "attributes": {
                  "constant": false,
                  "mutability": "mutable",
                  "name": "token0",
                  "scope": 2771,
                  "stateVariable": false,
                  "storageLocation": "default",
                  "type": "address",
                  "visibility": "internal"
                },
                "children": [
                  {
                    "attributes": {
                      "name": "address",
                      "stateMutability": "nonpayable",
                      "type": "address"
                    },
                    "id": 2763,
                    "name": "ElementaryTypeName",
                    "src": "259:7:2"
                  }
                ],
                "id": 2764,
                "name": "VariableDeclaration",
                "src": "259:14:2"
              },
              {
                "attributes": {
                  "constant": false,
                  "mutability": "mutable",
                  "name": "token1",
                  "scope": 2771,
                  "stateVariable": false,
                  "storageLocation": "default",
                  "type": "address",
                  "visibility": "internal"
                },
                "children": [
                  {
                    "attributes": {
                      "name": "address",
                      "stateMutability": "nonpayable",
                      "type": "address"
                    },
                    "id": 2765,
                    "name": "ElementaryTypeName",
                    "src": "283:7:2"
                  }
                ],
                "id": 2766,
                "name": "VariableDeclaration",
                "src": "283:14:2"
              },
              {
                "attributes": {
                  "constant": false,
                  "mutability": "mutable",
                  "name": "fee",
                  "scope": 2771,
                  "stateVariable": false,
                  "storageLocation": "default",
                  "type": "uint24",
                  "visibility": "internal"
                },
                "children": [
                  {
                    "attributes": {
                      "name": "uint24",
                      "type": "uint24"
                    },
                    "id": 2767,
                    "name": "ElementaryTypeName",
                    "src": "307:6:2"
                  }
                ],
                "id": 2768,
                "name": "VariableDeclaration",
                "src": "307:10:2"
              },
              {
                "attributes": {
                  "constant": false,
                  "mutability": "mutable",
                  "name": "tickSpacing",
                  "scope": 2771,
                  "stateVariable": false,
                  "storageLocation": "default",
                  "type": "int24",
                  "visibility": "internal"
                },
                "children": [
                  {
                    "attributes": {
                      "name": "int24",
                      "type": "int24"
                    },
                    "id": 2769,
                    "name": "ElementaryTypeName",
                    "src": "327:5:2"
                  }
                ],
                "id": 2770,
                "name": "VariableDeclaration",
                "src": "327:17:2"
              }
            ],
            "id": 2771,
            "name": "StructDefinition",
            "src": "206:145:2"
          },
          {
            "attributes": {
              "baseFunctions": [
                3058
              ],
              "constant": false,
              "functionSelector": "89035730",
              "mutability": "mutable",
              "name": "parameters",
              "scope": 2824,
              "stateVariable": true,
              "storageLocation": "default",
              "type": "struct MoonwalkerPoolDeployer.Parameters",
              "visibility": "public"
            },
            "children": [
              {
                "attributes": {
                  "name": "Parameters",
                  "referencedDeclaration": 2771,
                  "type": "struct MoonwalkerPoolDeployer.Parameters"
                },
                "id": 2773,
                "name": "UserDefinedTypeName",
                "src": "401:10:2"
              },
              {
                "attributes": {
                  "overrides": [
                    null
                  ]
                },
                "id": 2774,
                "name": "OverrideSpecifier",
                "src": "419:8:2"
              },
              {
                "attributes": {
                  "text": "@inheritdoc IMoonwalkerPoolDeployer"
                },
                "id": 2772,
                "name": "StructuredDocumentation",
                "src": "357:39:2"
              }
            ],
            "id": 2775,
            "name": "VariableDeclaration",
            "src": "401:37:2"
          },
          {
            "attributes": {
              "implemented": true,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "deploy",
              "scope": 2824,
              "stateMutability": "nonpayable",
              "virtual": false,
              "visibility": "internal"
            },
            "children": [
              {
                "attributes": {
                  "text": "@dev Deploys a pool with the given parameters by transiently setting the parameters storage slot and then\n clearing it after deploying the pool.\n @param factory The contract address of the Moonwalker  factory\n @param token0 The first token of the pool by address sort order\n @param token1 The second token of the pool by address sort order\n @param fee The fee collected upon every swap in the pool, denominated in hundredths of a bip\n @param tickSpacing The spacing between usable ticks"
                },
                "id": 2776,
                "name": "StructuredDocumentation",
                "src": "445:532:2"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "factory",
                      "scope": 2823,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "stateMutability": "nonpayable",
                          "type": "address"
                        },
                        "id": 2777,
                        "name": "ElementaryTypeName",
                        "src": "1007:7:2"
                      }
                    ],
                    "id": 2778,
                    "name": "VariableDeclaration",
                    "src": "1007:15:2"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "token0",
                      "scope": 2823,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "stateMutability": "nonpayable",
                          "type": "address"
                        },
                        "id": 2779,
                        "name": "ElementaryTypeName",
                        "src": "1032:7:2"
                      }
                    ],
                    "id": 2780,
                    "name": "VariableDeclaration",
                    "src": "1032:14:2"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "token1",
                      "scope": 2823,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "stateMutability": "nonpayable",
                          "type": "address"
                        },
                        "id": 2781,
                        "name": "ElementaryTypeName",
                        "src": "1056:7:2"
                      }
                    ],
                    "id": 2782,
                    "name": "VariableDeclaration",
                    "src": "1056:14:2"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "fee",
                      "scope": 2823,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint24",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint24",
                          "type": "uint24"
                        },
                        "id": 2783,
                        "name": "ElementaryTypeName",
                        "src": "1080:6:2"
                      }
                    ],
                    "id": 2784,
                    "name": "VariableDeclaration",
                    "src": "1080:10:2"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "tickSpacing",
                      "scope": 2823,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "int24",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "int24",
                          "type": "int24"
                        },
                        "id": 2785,
                        "name": "ElementaryTypeName",
                        "src": "1100:5:2"
                      }
                    ],
                    "id": 2786,
                    "name": "VariableDeclaration",
                    "src": "1100:17:2"
                  }
                ],
                "id": 2787,
                "name": "ParameterList",
                "src": "997:126:2"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "pool",
                      "scope": 2823,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "stateMutability": "nonpayable",
                          "type": "address"
                        },
                        "id": 2788,
                        "name": "ElementaryTypeName",
                        "src": "1142:7:2"
                      }
                    ],
                    "id": 2789,
                    "name": "VariableDeclaration",
                    "src": "1142:12:2"
                  }
                ],
                "id": 2790,
                "name": "ParameterList",
                "src": "1141:14:2"
              },
              {
                "children": [
                  {
                    "children": [
                      {
                        "attributes": {
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "=",
                          "type": "struct MoonwalkerPoolDeployer.Parameters storage ref"
                        },
                        "children": [
                          {
                            "attributes": {
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 2775,
                              "type": "struct MoonwalkerPoolDeployer.Parameters storage ref",
                              "value": "parameters"
                            },
                            "id": 2791,
                            "name": "Identifier",
                            "src": "1166:10:2"
                          },
                          {
                            "attributes": {
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "isStructConstructorCall": true,
                              "lValueRequested": false,
                              "names": [
                                "factory",
                                "token0",
                                "token1",
                                "fee",
                                "tickSpacing"
                              ],
                              "tryCall": false,
                              "type": "struct MoonwalkerPoolDeployer.Parameters memory",
                              "type_conversion": false
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    },
                                    {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    },
                                    {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    },
                                    {
                                      "typeIdentifier": "t_uint24",
                                      "typeString": "uint24"
                                    },
                                    {
                                      "typeIdentifier": "t_int24",
                                      "typeString": "int24"
                                    }
                                  ],
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 2771,
                                  "type": "type(struct MoonwalkerPoolDeployer.Parameters storage pointer)",
                                  "value": "Parameters"
                                },
                                "id": 2792,
                                "name": "Identifier",
                                "src": "1179:10:2"
                              },
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 2778,
                                  "type": "address",
                                  "value": "factory"
                                },
                                "id": 2793,
                                "name": "Identifier",
                                "src": "1200:7:2"
                              },
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 2780,
                                  "type": "address",
                                  "value": "token0"
                                },
                                "id": 2794,
                                "name": "Identifier",
                                "src": "1217:6:2"
                              },
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 2782,
                                  "type": "address",
                                  "value": "token1"
                                },
                                "id": 2795,
                                "name": "Identifier",
                                "src": "1233:6:2"
                              },
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 2784,
                                  "type": "uint24",
                                  "value": "fee"
                                },
                                "id": 2796,
                                "name": "Identifier",
                                "src": "1246:3:2"
                              },
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 2786,
                                  "type": "int24",
                                  "value": "tickSpacing"
                                },
                                "id": 2797,
                                "name": "Identifier",
                                "src": "1264:11:2"
                              }
                            ],
                            "id": 2798,
                            "name": "FunctionCall",
                            "src": "1179:98:2"
                          }
                        ],
                        "id": 2799,
                        "name": "Assignment",
                        "src": "1166:111:2"
                      }
                    ],
                    "id": 2800,
                    "name": "ExpressionStatement",
                    "src": "1166:111:2"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "=",
                          "type": "address"
                        },
                        "children": [
                          {
                            "attributes": {
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 2789,
                              "type": "address",
                              "value": "pool"
                            },
                            "id": 2801,
                            "name": "Identifier",
                            "src": "1287:4:2"
                          },
                          {
                            "attributes": {
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "isStructConstructorCall": false,
                              "lValueRequested": false,
                              "names": [
                                null
                              ],
                              "tryCall": false,
                              "type": "address",
                              "type_conversion": true
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_contract$_MoonwalkerPool_$2754",
                                      "typeString": "contract MoonwalkerPool"
                                    }
                                  ],
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "type": "type(address)"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "name": "address"
                                    },
                                    "id": 2802,
                                    "name": "ElementaryTypeName",
                                    "src": "1294:7:2"
                                  }
                                ],
                                "id": 2803,
                                "name": "ElementaryTypeNameExpression",
                                "src": "1294:7:2"
                              },
                              {
                                "attributes": {
                                  "arguments": [
                                    null
                                  ],
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "isStructConstructorCall": false,
                                  "lValueRequested": false,
                                  "names": [
                                    null
                                  ],
                                  "tryCall": false,
                                  "type": "contract MoonwalkerPool",
                                  "type_conversion": false
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": [
                                        null
                                      ],
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "names": [
                                        "salt"
                                      ],
                                      "type": "function () returns (contract MoonwalkerPool)"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": [
                                            null
                                          ],
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "type": "function () returns (contract MoonwalkerPool)"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "name": "MoonwalkerPool",
                                              "referencedDeclaration": 2754,
                                              "type": "contract MoonwalkerPool"
                                            },
                                            "id": 2804,
                                            "name": "UserDefinedTypeName",
                                            "src": "1306:14:2"
                                          }
                                        ],
                                        "id": 2805,
                                        "name": "NewExpression",
                                        "src": "1302:18:2"
                                      },
                                      {
                                        "attributes": {
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "isStructConstructorCall": false,
                                          "lValueRequested": false,
                                          "names": [
                                            null
                                          ],
                                          "tryCall": false,
                                          "type": "bytes32",
                                          "type_conversion": false
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": [
                                                {
                                                  "typeIdentifier": "t_bytes_memory_ptr",
                                                  "typeString": "bytes memory"
                                                }
                                              ],
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 4294967288,
                                              "type": "function (bytes memory) pure returns (bytes32)",
                                              "value": "keccak256"
                                            },
                                            "id": 2806,
                                            "name": "Identifier",
                                            "src": "1327:9:2"
                                          },
                                          {
                                            "attributes": {
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": false,
                                              "isStructConstructorCall": false,
                                              "lValueRequested": false,
                                              "names": [
                                                null
                                              ],
                                              "tryCall": false,
                                              "type": "bytes memory",
                                              "type_conversion": false
                                            },
                                            "children": [
                                              {
                                                "attributes": {
                                                  "argumentTypes": [
                                                    {
                                                      "typeIdentifier": "t_address",
                                                      "typeString": "address"
                                                    },
                                                    {
                                                      "typeIdentifier": "t_address",
                                                      "typeString": "address"
                                                    },
                                                    {
                                                      "typeIdentifier": "t_uint24",
                                                      "typeString": "uint24"
                                                    }
                                                  ],
                                                  "isConstant": false,
                                                  "isLValue": false,
                                                  "isPure": true,
                                                  "lValueRequested": false,
                                                  "member_name": "encode",
                                                  "type": "function () pure returns (bytes memory)"
                                                },
                                                "children": [
                                                  {
                                                    "attributes": {
                                                      "overloadedDeclarations": [
                                                        null
                                                      ],
                                                      "referencedDeclaration": 4294967295,
                                                      "type": "abi",
                                                      "value": "abi"
                                                    },
                                                    "id": 2807,
                                                    "name": "Identifier",
                                                    "src": "1337:3:2"
                                                  }
                                                ],
                                                "id": 2808,
                                                "name": "MemberAccess",
                                                "src": "1337:10:2"
                                              },
                                              {
                                                "attributes": {
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 2780,
                                                  "type": "address",
                                                  "value": "token0"
                                                },
                                                "id": 2809,
                                                "name": "Identifier",
                                                "src": "1348:6:2"
                                              },
                                              {
                                                "attributes": {
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 2782,
                                                  "type": "address",
                                                  "value": "token1"
                                                },
                                                "id": 2810,
                                                "name": "Identifier",
                                                "src": "1356:6:2"
                                              },
                                              {
                                                "attributes": {
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 2784,
                                                  "type": "uint24",
                                                  "value": "fee"
                                                },
                                                "id": 2811,
                                                "name": "Identifier",
                                                "src": "1364:3:2"
                                              }
                                            ],
                                            "id": 2812,
                                            "name": "FunctionCall",
                                            "src": "1337:31:2"
                                          }
                                        ],
                                        "id": 2813,
                                        "name": "FunctionCall",
                                        "src": "1327:42:2"
                                      }
                                    ],
                                    "id": 2814,
                                    "name": "FunctionCallOptions",
                                    "src": "1302:68:2"
                                  }
                                ],
                                "id": 2815,
                                "name": "FunctionCall",
                                "src": "1302:70:2"
                              }
                            ],
                            "id": 2816,
                            "name": "FunctionCall",
                            "src": "1294:79:2"
                          }
                        ],
                        "id": 2817,
                        "name": "Assignment",
                        "src": "1287:86:2"
                      }
                    ],
                    "id": 2818,
                    "name": "ExpressionStatement",
                    "src": "1287:86:2"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "delete",
                          "prefix": true,
                          "type": "tuple()"
                        },
                        "children": [
                          {
                            "attributes": {
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 2775,
                              "type": "struct MoonwalkerPoolDeployer.Parameters storage ref",
                              "value": "parameters"
                            },
                            "id": 2819,
                            "name": "Identifier",
                            "src": "1390:10:2"
                          }
                        ],
                        "id": 2820,
                        "name": "UnaryOperation",
                        "src": "1383:17:2"
                      }
                    ],
                    "id": 2821,
                    "name": "ExpressionStatement",
                    "src": "1383:17:2"
                  }
                ],
                "id": 2822,
                "name": "Block",
                "src": "1156:251:2"
              }
            ],
            "id": 2823,
            "name": "FunctionDefinition",
            "src": "982:425:2"
          }
        ],
        "id": 2824,
        "name": "ContractDefinition",
        "src": "141:1268:2"
      }
    ],
    "id": 2825,
    "name": "SourceUnit",
    "src": "32:1378:2"
  },
  "compiler": {
    "name": "solc",
    "version": "0.7.6+commit.7338295f.Emscripten.clang"
  },
  "networks": {},
  "schemaVersion": "3.4.1",
  "updatedAt": "2022-01-17T20:05:41.691Z",
  "devdoc": {
    "kind": "dev",
    "methods": {},
    "stateVariables": {
      "parameters": {
        "details": "Called by the pool constructor to fetch the parameters of the pool Returns factory The factory address Returns token0 The first token of the pool by address sort order Returns token1 The second token of the pool by address sort order Returns fee The fee collected upon every swap in the pool, denominated in hundredths of a bip Returns tickSpacing The minimum number of ticks between initialized ticks"
      }
    },
    "version": 1
  },
  "userdoc": {
    "kind": "user",
    "methods": {
      "parameters()": {
        "notice": "Get the parameters to be used in constructing the pool, set transiently during pool creation."
      }
    },
    "version": 1
  }
}