moonwalkerswap-v1-core
Version:
Moonwalkerswap v1 core
530 lines • 23 kB
JSON
{
"contractName": "IMoonwalkerPoolDeployer",
"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\":{\"details\":\"This is used to avoid having constructor arguments in the pool contract, which results in the init code hash of the pool being constant allowing the CREATE2 address of the pool to be cheaply computed on-chain\",\"kind\":\"dev\",\"methods\":{\"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\"}},\"title\":\"An interface for a contract that is capable of deploying Moonwalker Pools\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"parameters()\":{\"notice\":\"Get the parameters to be used in constructing the pool, set transiently during pool creation.\"}},\"notice\":\"A contract that constructs a pool must implement this to pass arguments to the pool\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"/Users/warrenmason/Documents/UniswapV3Contracts/Core/LiveContracts/MoonwalkerSwap-v1-Core/contracts/interfaces/IMoonwalkerPoolDeployer.sol\":\"IMoonwalkerPoolDeployer\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/warrenmason/Documents/UniswapV3Contracts/Core/LiveContracts/MoonwalkerSwap-v1-Core/contracts/interfaces/IMoonwalkerPoolDeployer.sol\":{\"keccak256\":\"0xdffb36773f8231a4b5816a13f14983b8f7bc2cac803d682bf5b2e9b73cf3a756\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://225881d83166c91b3bb64ea6ee88f0ef74cdeaddf6c28b3552022b43b69bc33b\",\"dweb:/ipfs/QmbNq5c7Apvpk58objNvBLKHiML7S8nLyNaB2uUK3nNLL4\"]}},\"version\":1}",
"bytecode": "0x",
"deployedBytecode": "0x",
"immutableReferences": {},
"generatedSources": [],
"deployedGeneratedSources": [],
"sourceMap": "",
"deployedSourceMap": "",
"source": "// SPDX-License-Identifier: MIT\npragma solidity >=0.5.0;\n\n/// @title An interface for a contract that is capable of deploying Moonwalker Pools\n/// @notice A contract that constructs a pool must implement this to pass arguments to the pool\n/// @dev This is used to avoid having constructor arguments in the pool contract, which results in the init code hash\n/// of the pool being constant allowing the CREATE2 address of the pool to be cheaply computed on-chain\ninterface IMoonwalkerPoolDeployer {\n /// @notice Get the parameters to be used in constructing the pool, set transiently during pool creation.\n /// @dev Called by the pool constructor to fetch the parameters of the pool\n /// Returns factory The factory address\n /// Returns token0 The first token of the pool by address sort order\n /// Returns token1 The second token of the pool by address sort order\n /// Returns fee The fee collected upon every swap in the pool, denominated in hundredths of a bip\n /// Returns tickSpacing The minimum number of ticks between initialized ticks\n function parameters()\n external\n view\n returns (\n address factory,\n address token0,\n address token1,\n uint24 fee,\n int24 tickSpacing\n );\n}\n",
"sourcePath": "/Users/warrenmason/Documents/UniswapV3Contracts/Core/LiveContracts/MoonwalkerSwap-v1-Core/contracts/interfaces/IMoonwalkerPoolDeployer.sol",
"ast": {
"absolutePath": "/Users/warrenmason/Documents/UniswapV3Contracts/Core/LiveContracts/MoonwalkerSwap-v1-Core/contracts/interfaces/IMoonwalkerPoolDeployer.sol",
"exportedSymbols": {
"IMoonwalkerPoolDeployer": [
3059
]
},
"id": 3060,
"license": "MIT",
"nodeType": "SourceUnit",
"nodes": [
{
"id": 3043,
"literals": [
"solidity",
">=",
"0.5",
".0"
],
"nodeType": "PragmaDirective",
"src": "32:24:7"
},
{
"abstract": false,
"baseContracts": [],
"contractDependencies": [],
"contractKind": "interface",
"documentation": {
"id": 3044,
"nodeType": "StructuredDocumentation",
"src": "58:404:7",
"text": "@title An interface for a contract that is capable of deploying Moonwalker Pools\n @notice A contract that constructs a pool must implement this to pass arguments to the pool\n @dev This is used to avoid having constructor arguments in the pool contract, which results in the init code hash\n of the pool being constant allowing the CREATE2 address of the pool to be cheaply computed on-chain"
},
"fullyImplemented": false,
"id": 3059,
"linearizedBaseContracts": [
3059
],
"name": "IMoonwalkerPoolDeployer",
"nodeType": "ContractDefinition",
"nodes": [
{
"documentation": {
"id": 3045,
"nodeType": "StructuredDocumentation",
"src": "502:560:7",
"text": "@notice Get the parameters to be used in constructing the pool, set transiently during pool creation.\n @dev Called by the pool constructor to fetch the parameters of the pool\n Returns factory The factory address\n Returns token0 The first token of the pool by address sort order\n Returns token1 The second token of the pool by address sort order\n Returns fee The fee collected upon every swap in the pool, denominated in hundredths of a bip\n Returns tickSpacing The minimum number of ticks between initialized ticks"
},
"functionSelector": "89035730",
"id": 3058,
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "parameters",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 3046,
"nodeType": "ParameterList",
"parameters": [],
"src": "1086:2:7"
},
"returnParameters": {
"id": 3057,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3048,
"mutability": "mutable",
"name": "factory",
"nodeType": "VariableDeclaration",
"scope": 3058,
"src": "1149:15:7",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 3047,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "1149:7:7",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 3050,
"mutability": "mutable",
"name": "token0",
"nodeType": "VariableDeclaration",
"scope": 3058,
"src": "1178:14:7",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 3049,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "1178:7:7",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 3052,
"mutability": "mutable",
"name": "token1",
"nodeType": "VariableDeclaration",
"scope": 3058,
"src": "1206:14:7",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 3051,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "1206:7:7",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 3054,
"mutability": "mutable",
"name": "fee",
"nodeType": "VariableDeclaration",
"scope": 3058,
"src": "1234:10:7",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint24",
"typeString": "uint24"
},
"typeName": {
"id": 3053,
"name": "uint24",
"nodeType": "ElementaryTypeName",
"src": "1234:6:7",
"typeDescriptions": {
"typeIdentifier": "t_uint24",
"typeString": "uint24"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 3056,
"mutability": "mutable",
"name": "tickSpacing",
"nodeType": "VariableDeclaration",
"scope": 3058,
"src": "1258:17:7",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_int24",
"typeString": "int24"
},
"typeName": {
"id": 3055,
"name": "int24",
"nodeType": "ElementaryTypeName",
"src": "1258:5:7",
"typeDescriptions": {
"typeIdentifier": "t_int24",
"typeString": "int24"
}
},
"visibility": "internal"
}
],
"src": "1135:150:7"
},
"scope": 3059,
"src": "1067:219:7",
"stateMutability": "view",
"virtual": false,
"visibility": "external"
}
],
"scope": 3060,
"src": "462:826:7"
}
],
"src": "32:1257:7"
},
"legacyAST": {
"attributes": {
"absolutePath": "/Users/warrenmason/Documents/UniswapV3Contracts/Core/LiveContracts/MoonwalkerSwap-v1-Core/contracts/interfaces/IMoonwalkerPoolDeployer.sol",
"exportedSymbols": {
"IMoonwalkerPoolDeployer": [
3059
]
},
"license": "MIT"
},
"children": [
{
"attributes": {
"literals": [
"solidity",
">=",
"0.5",
".0"
]
},
"id": 3043,
"name": "PragmaDirective",
"src": "32:24:7"
},
{
"attributes": {
"abstract": false,
"baseContracts": [
null
],
"contractDependencies": [
null
],
"contractKind": "interface",
"fullyImplemented": false,
"linearizedBaseContracts": [
3059
],
"name": "IMoonwalkerPoolDeployer",
"scope": 3060
},
"children": [
{
"attributes": {
"text": "@title An interface for a contract that is capable of deploying Moonwalker Pools\n @notice A contract that constructs a pool must implement this to pass arguments to the pool\n @dev This is used to avoid having constructor arguments in the pool contract, which results in the init code hash\n of the pool being constant allowing the CREATE2 address of the pool to be cheaply computed on-chain"
},
"id": 3044,
"name": "StructuredDocumentation",
"src": "58:404:7"
},
{
"attributes": {
"functionSelector": "89035730",
"implemented": false,
"isConstructor": false,
"kind": "function",
"modifiers": [
null
],
"name": "parameters",
"scope": 3059,
"stateMutability": "view",
"virtual": false,
"visibility": "external"
},
"children": [
{
"attributes": {
"text": "@notice Get the parameters to be used in constructing the pool, set transiently during pool creation.\n @dev Called by the pool constructor to fetch the parameters of the pool\n Returns factory The factory address\n Returns token0 The first token of the pool by address sort order\n Returns token1 The second token of the pool by address sort order\n Returns fee The fee collected upon every swap in the pool, denominated in hundredths of a bip\n Returns tickSpacing The minimum number of ticks between initialized ticks"
},
"id": 3045,
"name": "StructuredDocumentation",
"src": "502:560:7"
},
{
"attributes": {
"parameters": [
null
]
},
"children": [],
"id": 3046,
"name": "ParameterList",
"src": "1086:2:7"
},
{
"children": [
{
"attributes": {
"constant": false,
"mutability": "mutable",
"name": "factory",
"scope": 3058,
"stateVariable": false,
"storageLocation": "default",
"type": "address",
"visibility": "internal"
},
"children": [
{
"attributes": {
"name": "address",
"stateMutability": "nonpayable",
"type": "address"
},
"id": 3047,
"name": "ElementaryTypeName",
"src": "1149:7:7"
}
],
"id": 3048,
"name": "VariableDeclaration",
"src": "1149:15:7"
},
{
"attributes": {
"constant": false,
"mutability": "mutable",
"name": "token0",
"scope": 3058,
"stateVariable": false,
"storageLocation": "default",
"type": "address",
"visibility": "internal"
},
"children": [
{
"attributes": {
"name": "address",
"stateMutability": "nonpayable",
"type": "address"
},
"id": 3049,
"name": "ElementaryTypeName",
"src": "1178:7:7"
}
],
"id": 3050,
"name": "VariableDeclaration",
"src": "1178:14:7"
},
{
"attributes": {
"constant": false,
"mutability": "mutable",
"name": "token1",
"scope": 3058,
"stateVariable": false,
"storageLocation": "default",
"type": "address",
"visibility": "internal"
},
"children": [
{
"attributes": {
"name": "address",
"stateMutability": "nonpayable",
"type": "address"
},
"id": 3051,
"name": "ElementaryTypeName",
"src": "1206:7:7"
}
],
"id": 3052,
"name": "VariableDeclaration",
"src": "1206:14:7"
},
{
"attributes": {
"constant": false,
"mutability": "mutable",
"name": "fee",
"scope": 3058,
"stateVariable": false,
"storageLocation": "default",
"type": "uint24",
"visibility": "internal"
},
"children": [
{
"attributes": {
"name": "uint24",
"type": "uint24"
},
"id": 3053,
"name": "ElementaryTypeName",
"src": "1234:6:7"
}
],
"id": 3054,
"name": "VariableDeclaration",
"src": "1234:10:7"
},
{
"attributes": {
"constant": false,
"mutability": "mutable",
"name": "tickSpacing",
"scope": 3058,
"stateVariable": false,
"storageLocation": "default",
"type": "int24",
"visibility": "internal"
},
"children": [
{
"attributes": {
"name": "int24",
"type": "int24"
},
"id": 3055,
"name": "ElementaryTypeName",
"src": "1258:5:7"
}
],
"id": 3056,
"name": "VariableDeclaration",
"src": "1258:17:7"
}
],
"id": 3057,
"name": "ParameterList",
"src": "1135:150:7"
}
],
"id": 3058,
"name": "FunctionDefinition",
"src": "1067:219:7"
}
],
"id": 3059,
"name": "ContractDefinition",
"src": "462:826:7"
}
],
"id": 3060,
"name": "SourceUnit",
"src": "32:1257:7"
},
"compiler": {
"name": "solc",
"version": "0.7.6+commit.7338295f.Emscripten.clang"
},
"networks": {},
"schemaVersion": "3.4.1",
"updatedAt": "2022-01-17T20:05:41.698Z",
"devdoc": {
"details": "This is used to avoid having constructor arguments in the pool contract, which results in the init code hash of the pool being constant allowing the CREATE2 address of the pool to be cheaply computed on-chain",
"kind": "dev",
"methods": {
"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"
}
},
"title": "An interface for a contract that is capable of deploying Moonwalker Pools",
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {
"parameters()": {
"notice": "Get the parameters to be used in constructing the pool, set transiently during pool creation."
}
},
"notice": "A contract that constructs a pool must implement this to pass arguments to the pool",
"version": 1
}
}