{ "abi": [ { "inputs": [], "name": "factory", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "fee", "outputs": [ { "internalType": "uint24", "name": "", "type": "uint24" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "maxLiquidityPerTick", "outputs": [ { "internalType": "uint128", "name": "", "type": "uint128" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "tickSpacing", "outputs": [ { "internalType": "int24", "name": "", "type": "int24" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "token0", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "token1", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" } ], "bytecode": { "object": "0x", "sourceMap": "", "linkReferences": {} }, "deployedBytecode": { "object": "0x", "sourceMap": "", "linkReferences": {} }, "methodIdentifiers": { "factory()": "c45a0155", "fee()": "ddca3f43", "maxLiquidityPerTick()": "70cf754a", "tickSpacing()": "d0c93a7c", "token0()": "0dfe1681", "token1()": "d21220a7" }, "rawMetadata": "{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"factory\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"fee\",\"outputs\":[{\"internalType\":\"uint24\",\"name\":\"\",\"type\":\"uint24\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maxLiquidityPerTick\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"\",\"type\":\"uint128\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"tickSpacing\",\"outputs\":[{\"internalType\":\"int24\",\"name\":\"\",\"type\":\"int24\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"token0\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"token1\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"factory()\":{\"returns\":{\"_0\":\"The contract address\"}},\"fee()\":{\"returns\":{\"_0\":\"The fee\"}},\"maxLiquidityPerTick()\":{\"details\":\"This parameter is enforced per tick to prevent liquidity from overflowing a uint128 at any point, and also prevents out-of-range liquidity from being used to prevent adding in-range liquidity to a pool\",\"returns\":{\"_0\":\"The max amount of liquidity per tick\"}},\"tickSpacing()\":{\"details\":\"Ticks can only be used at multiples of this value, minimum of 1 and always positive e.g.: a tickSpacing of 3 means ticks can be initialized every 3rd tick, i.e., ..., -6, -3, 0, 3, 6, ... This value is an int24 to avoid casting even though it is always positive.\",\"returns\":{\"_0\":\"The tick spacing\"}},\"token0()\":{\"returns\":{\"_0\":\"The token contract address\"}},\"token1()\":{\"returns\":{\"_0\":\"The token contract address\"}}},\"title\":\"Pool state that never changes\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"factory()\":{\"notice\":\"The contract that deployed the pool, which must adhere to the IUniswapV3Factory interface\"},\"fee()\":{\"notice\":\"The pool's fee in hundredths of a bip, i.e. 1e-6\"},\"maxLiquidityPerTick()\":{\"notice\":\"The maximum amount of position liquidity that can use any tick in the range\"},\"tickSpacing()\":{\"notice\":\"The pool tick spacing\"},\"token0()\":{\"notice\":\"The first of the two tokens of the pool, sorted by address\"},\"token1()\":{\"notice\":\"The second of the two tokens of the pool, sorted by address\"}},\"notice\":\"These parameters are fixed for a pool forever, i.e., the methods will always return the same values\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolImmutables.sol\":\"IUniswapV3PoolImmutables\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":true,\"yulDetails\":{\"optimizerSteps\":\"dhfoD[xarrscLMcCTU]uljmul:fDnTOcmu\",\"stackAllocation\":true}},\"runs\":999999999},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@uniswap/v3-core/=lib_uniswap/v3-core/\",\":@uniswap/v3-periphery/=lib_uniswap/v3-periphery/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":v3-core/=lib_uniswap/v3-core/\",\":v3-periphery/libraries/=lib_uniswap/v3-periphery/contracts/libraries/\"]},\"sources\":{\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolImmutables.sol\":{\"keccak256\":\"0xf6e5d2cd1139c4c276bdbc8e1d2b256e456c866a91f1b868da265c6d2685c3f7\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://b99c8c9ae8e27ee6559e5866bea82cbc9ffc8247f8d15b7422a4deb287d4d047\",\"dweb:/ipfs/QmfL8gaqt3ffAnm6nVj5ksuNpLygXuL3xq5VBqrkwC2JJ3\"]}},\"version\":1}", "metadata": { "compiler": { "version": "0.8.22+commit.4fc1097e" }, "language": "Solidity", "output": { "abi": [ { "inputs": [], "stateMutability": "view", "type": "function", "name": "factory", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ] }, { "inputs": [], "stateMutability": "view", "type": "function", "name": "fee", "outputs": [ { "internalType": "uint24", "name": "", "type": "uint24" } ] }, { "inputs": [], "stateMutability": "view", "type": "function", "name": "maxLiquidityPerTick", "outputs": [ { "internalType": "uint128", "name": "", "type": "uint128" } ] }, { "inputs": [], "stateMutability": "view", "type": "function", "name": "tickSpacing", "outputs": [ { "internalType": "int24", "name": "", "type": "int24" } ] }, { "inputs": [], "stateMutability": "view", "type": "function", "name": "token0", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ] }, { "inputs": [], "stateMutability": "view", "type": "function", "name": "token1", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ] } ], "devdoc": { "kind": "dev", "methods": { "factory()": { "returns": { "_0": "The contract address" } }, "fee()": { "returns": { "_0": "The fee" } }, "maxLiquidityPerTick()": { "details": "This parameter is enforced per tick to prevent liquidity from overflowing a uint128 at any point, and also prevents out-of-range liquidity from being used to prevent adding in-range liquidity to a pool", "returns": { "_0": "The max amount of liquidity per tick" } }, "tickSpacing()": { "details": "Ticks can only be used at multiples of this value, minimum of 1 and always positive e.g.: a tickSpacing of 3 means ticks can be initialized every 3rd tick, i.e., ..., -6, -3, 0, 3, 6, ... This value is an int24 to avoid casting even though it is always positive.", "returns": { "_0": "The tick spacing" } }, "token0()": { "returns": { "_0": "The token contract address" } }, "token1()": { "returns": { "_0": "The token contract address" } } }, "version": 1 }, "userdoc": { "kind": "user", "methods": { "factory()": { "notice": "The contract that deployed the pool, which must adhere to the IUniswapV3Factory interface" }, "fee()": { "notice": "The pool's fee in hundredths of a bip, i.e. 1e-6" }, "maxLiquidityPerTick()": { "notice": "The maximum amount of position liquidity that can use any tick in the range" }, "tickSpacing()": { "notice": "The pool tick spacing" }, "token0()": { "notice": "The first of the two tokens of the pool, sorted by address" }, "token1()": { "notice": "The second of the two tokens of the pool, sorted by address" } }, "version": 1 } }, "settings": { "remappings": [ "@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/", "@uniswap/v3-core/=lib_uniswap/v3-core/", "@uniswap/v3-periphery/=lib_uniswap/v3-periphery/", "ds-test/=lib/forge-std/lib/ds-test/src/", "forge-std/=lib/forge-std/src/", "openzeppelin-contracts/=lib/openzeppelin-contracts/", "v3-core/=lib_uniswap/v3-core/", "v3-periphery/libraries/=lib_uniswap/v3-periphery/contracts/libraries/" ], "optimizer": { "runs": 999999999, "details": { "peephole": true, "inliner": true, "jumpdestRemover": true, "orderLiterals": true, "deduplicate": true, "cse": true, "constantOptimizer": true, "yul": true, "yulDetails": { "stackAllocation": true, "optimizerSteps": "dhfoD[xarrscLMcCTU]uljmul:fDnTOcmu" } } }, "metadata": { "bytecodeHash": "ipfs" }, "compilationTarget": { "lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolImmutables.sol": "IUniswapV3PoolImmutables" }, "libraries": {} }, "sources": { "lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolImmutables.sol": { "keccak256": "0xf6e5d2cd1139c4c276bdbc8e1d2b256e456c866a91f1b868da265c6d2685c3f7", "urls": [ "bzz-raw://b99c8c9ae8e27ee6559e5866bea82cbc9ffc8247f8d15b7422a4deb287d4d047", "dweb:/ipfs/QmfL8gaqt3ffAnm6nVj5ksuNpLygXuL3xq5VBqrkwC2JJ3" ], "license": "GPL-2.0-or-later" } }, "version": 1 }, "ast": { "absolutePath": "lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolImmutables.sol", "id": 44195, "exportedSymbols": { "IUniswapV3PoolImmutables": [ 44194 ] }, "nodeType": "SourceUnit", "src": "45:1766:33", "nodes": [ { "id": 44156, "nodeType": "PragmaDirective", "src": "45:24:33", "nodes": [], "literals": [ "solidity", ">=", "0.5", ".0" ] }, { "id": 44194, "nodeType": "ContractDefinition", "src": "224:1586:33", "nodes": [ { "id": 44163, "nodeType": "FunctionDefinition", "src": "408:51:33", "nodes": [], "documentation": { "id": 44158, "nodeType": "StructuredDocumentation", "src": "265:138:33", "text": "@notice The contract that deployed the pool, which must adhere to the IUniswapV3Factory interface\n @return The contract address" }, "functionSelector": "c45a0155", "implemented": false, "kind": "function", "modifiers": [], "name": "factory", "nameLocation": "417:7:33", "parameters": { "id": 44159, "nodeType": "ParameterList", "parameters": [], "src": "424:2:33" }, "returnParameters": { "id": 44162, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 44161, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 44163, "src": "450:7:33", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 44160, "name": "address", "nodeType": "ElementaryTypeName", "src": "450:7:33", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" } ], "src": "449:9:33" }, "scope": 44194, "stateMutability": "view", "virtual": false, "visibility": "external" }, { "id": 44169, "nodeType": "FunctionDefinition", "src": "583:50:33", "nodes": [], "documentation": { "id": 44164, "nodeType": "StructuredDocumentation", "src": "465:113:33", "text": "@notice The first of the two tokens of the pool, sorted by address\n @return The token contract address" }, "functionSelector": "0dfe1681", "implemented": false, "kind": "function", "modifiers": [], "name": "token0", "nameLocation": "592:6:33", "parameters": { "id": 44165, "nodeType": "ParameterList", "parameters": [], "src": "598:2:33" }, "returnParameters": { "id": 44168, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 44167, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 44169, "src": "624:7:33", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 44166, "name": "address", "nodeType": "ElementaryTypeName", "src": "624:7:33", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" } ], "src": "623:9:33" }, "scope": 44194, "stateMutability": "view", "virtual": false, "visibility": "external" }, { "id": 44175, "nodeType": "FunctionDefinition", "src": "758:50:33", "nodes": [], "documentation": { "id": 44170, "nodeType": "StructuredDocumentation", "src": "639:114:33", "text": "@notice The second of the two tokens of the pool, sorted by address\n @return The token contract address" }, "functionSelector": "d21220a7", "implemented": false, "kind": "function", "modifiers": [], "name": "token1", "nameLocation": "767:6:33", "parameters": { "id": 44171, "nodeType": "ParameterList", "parameters": [], "src": "773:2:33" }, "returnParameters": { "id": 44174, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 44173, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 44175, "src": "799:7:33", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 44172, "name": "address", "nodeType": "ElementaryTypeName", "src": "799:7:33", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" } ], "src": "798:9:33" }, "scope": 44194, "stateMutability": "view", "virtual": false, "visibility": "external" }, { "id": 44181, "nodeType": "FunctionDefinition", "src": "903:46:33", "nodes": [], "documentation": { "id": 44176, "nodeType": "StructuredDocumentation", "src": "814:84:33", "text": "@notice The pool's fee in hundredths of a bip, i.e. 1e-6\n @return The fee" }, "functionSelector": "ddca3f43", "implemented": false, "kind": "function", "modifiers": [], "name": "fee", "nameLocation": "912:3:33", "parameters": { "id": 44177, "nodeType": "ParameterList", "parameters": [], "src": "915:2:33" }, "returnParameters": { "id": 44180, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 44179, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 44181, "src": "941:6:33", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint24", "typeString": "uint24" }, "typeName": { "id": 44178, "name": "uint24", "nodeType": "ElementaryTypeName", "src": "941:6:33", "typeDescriptions": { "typeIdentifier": "t_uint24", "typeString": "uint24" } }, "visibility": "internal" } ], "src": "940:8:33" }, "scope": 44194, "stateMutability": "view", "virtual": false, "visibility": "external" }, { "id": 44187, "nodeType": "FunctionDefinition", "src": "1318:53:33", "nodes": [], "documentation": { "id": 44182, "nodeType": "StructuredDocumentation", "src": "955:358:33", "text": "@notice The pool tick spacing\n @dev Ticks can only be used at multiples of this value, minimum of 1 and always positive\n e.g.: a tickSpacing of 3 means ticks can be initialized every 3rd tick, i.e., ..., -6, -3, 0, 3, 6, ...\n This value is an int24 to avoid casting even though it is always positive.\n @return The tick spacing" }, "functionSelector": "d0c93a7c", "implemented": false, "kind": "function", "modifiers": [], "name": "tickSpacing", "nameLocation": "1327:11:33", "parameters": { "id": 44183, "nodeType": "ParameterList", "parameters": [], "src": "1338:2:33" }, "returnParameters": { "id": 44186, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 44185, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 44187, "src": "1364:5:33", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_int24", "typeString": "int24" }, "typeName": { "id": 44184, "name": "int24", "nodeType": "ElementaryTypeName", "src": "1364:5:33", "typeDescriptions": { "typeIdentifier": "t_int24", "typeString": "int24" } }, "visibility": "internal" } ], "src": "1363:7:33" }, "scope": 44194, "stateMutability": "view", "virtual": false, "visibility": "external" }, { "id": 44193, "nodeType": "FunctionDefinition", "src": "1745:63:33", "nodes": [], "documentation": { "id": 44188, "nodeType": "StructuredDocumentation", "src": "1377:363:33", "text": "@notice The maximum amount of position liquidity that can use any tick in the range\n @dev This parameter is enforced per tick to prevent liquidity from overflowing a uint128 at any point, and\n also prevents out-of-range liquidity from being used to prevent adding in-range liquidity to a pool\n @return The max amount of liquidity per tick" }, "functionSelector": "70cf754a", "implemented": false, "kind": "function", "modifiers": [], "name": "maxLiquidityPerTick", "nameLocation": "1754:19:33", "parameters": { "id": 44189, "nodeType": "ParameterList", "parameters": [], "src": "1773:2:33" }, "returnParameters": { "id": 44192, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 44191, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 44193, "src": "1799:7:33", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" }, "typeName": { "id": 44190, "name": "uint128", "nodeType": "ElementaryTypeName", "src": "1799:7:33", "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" } }, "visibility": "internal" } ], "src": "1798:9:33" }, "scope": 44194, "stateMutability": "view", "virtual": false, "visibility": "external" } ], "abstract": false, "baseContracts": [], "canonicalName": "IUniswapV3PoolImmutables", "contractDependencies": [], "contractKind": "interface", "documentation": { "id": 44157, "nodeType": "StructuredDocumentation", "src": "71:153:33", "text": "@title Pool state that never changes\n @notice These parameters are fixed for a pool forever, i.e., the methods will always return the same values" }, "fullyImplemented": false, "linearizedBaseContracts": [ 44194 ], "name": "IUniswapV3PoolImmutables", "nameLocation": "234:24:33", "scope": 44195, "usedErrors": [], "usedEvents": [] } ], "license": "GPL-2.0-or-later" }, "id": 33 }