Files
contract/deployment/alpha/out/IUniswapV3Factory.sol/IUniswapV3Factory.json
2023-11-16 17:36:43 -04:00

1533 lines
59 KiB
JSON

{
"abi": [
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "uint24",
"name": "fee",
"type": "uint24"
},
{
"indexed": true,
"internalType": "int24",
"name": "tickSpacing",
"type": "int24"
}
],
"name": "FeeAmountEnabled",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "oldOwner",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "newOwner",
"type": "address"
}
],
"name": "OwnerChanged",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "token0",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "token1",
"type": "address"
},
{
"indexed": true,
"internalType": "uint24",
"name": "fee",
"type": "uint24"
},
{
"indexed": false,
"internalType": "int24",
"name": "tickSpacing",
"type": "int24"
},
{
"indexed": false,
"internalType": "address",
"name": "pool",
"type": "address"
}
],
"name": "PoolCreated",
"type": "event"
},
{
"inputs": [
{
"internalType": "address",
"name": "tokenA",
"type": "address"
},
{
"internalType": "address",
"name": "tokenB",
"type": "address"
},
{
"internalType": "uint24",
"name": "fee",
"type": "uint24"
}
],
"name": "createPool",
"outputs": [
{
"internalType": "address",
"name": "pool",
"type": "address"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint24",
"name": "fee",
"type": "uint24"
},
{
"internalType": "int24",
"name": "tickSpacing",
"type": "int24"
}
],
"name": "enableFeeAmount",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint24",
"name": "fee",
"type": "uint24"
}
],
"name": "feeAmountTickSpacing",
"outputs": [
{
"internalType": "int24",
"name": "",
"type": "int24"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "tokenA",
"type": "address"
},
{
"internalType": "address",
"name": "tokenB",
"type": "address"
},
{
"internalType": "uint24",
"name": "fee",
"type": "uint24"
}
],
"name": "getPool",
"outputs": [
{
"internalType": "address",
"name": "pool",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "owner",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_owner",
"type": "address"
}
],
"name": "setOwner",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
],
"bytecode": {
"object": "0x",
"sourceMap": "",
"linkReferences": {}
},
"deployedBytecode": {
"object": "0x",
"sourceMap": "",
"linkReferences": {}
},
"methodIdentifiers": {
"createPool(address,address,uint24)": "a1671295",
"enableFeeAmount(uint24,int24)": "8a7c195f",
"feeAmountTickSpacing(uint24)": "22afcccb",
"getPool(address,address,uint24)": "1698ee82",
"owner()": "8da5cb5b",
"setOwner(address)": "13af4035"
},
"rawMetadata": "{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint24\",\"name\":\"fee\",\"type\":\"uint24\"},{\"indexed\":true,\"internalType\":\"int24\",\"name\":\"tickSpacing\",\"type\":\"int24\"}],\"name\":\"FeeAmountEnabled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnerChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token0\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token1\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint24\",\"name\":\"fee\",\"type\":\"uint24\"},{\"indexed\":false,\"internalType\":\"int24\",\"name\":\"tickSpacing\",\"type\":\"int24\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"pool\",\"type\":\"address\"}],\"name\":\"PoolCreated\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenA\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenB\",\"type\":\"address\"},{\"internalType\":\"uint24\",\"name\":\"fee\",\"type\":\"uint24\"}],\"name\":\"createPool\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"pool\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint24\",\"name\":\"fee\",\"type\":\"uint24\"},{\"internalType\":\"int24\",\"name\":\"tickSpacing\",\"type\":\"int24\"}],\"name\":\"enableFeeAmount\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint24\",\"name\":\"fee\",\"type\":\"uint24\"}],\"name\":\"feeAmountTickSpacing\",\"outputs\":[{\"internalType\":\"int24\",\"name\":\"\",\"type\":\"int24\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenA\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenB\",\"type\":\"address\"},{\"internalType\":\"uint24\",\"name\":\"fee\",\"type\":\"uint24\"}],\"name\":\"getPool\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"pool\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"setOwner\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"FeeAmountEnabled(uint24,int24)\":{\"params\":{\"fee\":\"The enabled fee, denominated in hundredths of a bip\",\"tickSpacing\":\"The minimum number of ticks between initialized ticks for pools created with the given fee\"}},\"OwnerChanged(address,address)\":{\"params\":{\"newOwner\":\"The owner after the owner was changed\",\"oldOwner\":\"The owner before the owner was changed\"}},\"PoolCreated(address,address,uint24,int24,address)\":{\"params\":{\"fee\":\"The fee collected upon every swap in the pool, denominated in hundredths of a bip\",\"pool\":\"The address of the created pool\",\"tickSpacing\":\"The minimum number of ticks between initialized ticks\",\"token0\":\"The first token of the pool by address sort order\",\"token1\":\"The second token of the pool by address sort order\"}}},\"kind\":\"dev\",\"methods\":{\"createPool(address,address,uint24)\":{\"details\":\"tokenA and tokenB may be passed in either order: token0/token1 or token1/token0. tickSpacing is retrieved from the fee. The call will revert if the pool already exists, the fee is invalid, or the token arguments are invalid.\",\"params\":{\"fee\":\"The desired fee for the pool\",\"tokenA\":\"One of the two tokens in the desired pool\",\"tokenB\":\"The other of the two tokens in the desired pool\"},\"returns\":{\"pool\":\"The address of the newly created pool\"}},\"enableFeeAmount(uint24,int24)\":{\"details\":\"Fee amounts may never be removed once enabled\",\"params\":{\"fee\":\"The fee amount to enable, denominated in hundredths of a bip (i.e. 1e-6)\",\"tickSpacing\":\"The spacing between ticks to be enforced for all pools created with the given fee amount\"}},\"feeAmountTickSpacing(uint24)\":{\"details\":\"A fee amount can never be removed, so this value should be hard coded or cached in the calling context\",\"params\":{\"fee\":\"The enabled fee, denominated in hundredths of a bip. Returns 0 in case of unenabled fee\"},\"returns\":{\"_0\":\"The tick spacing\"}},\"getPool(address,address,uint24)\":{\"details\":\"tokenA and tokenB may be passed in either token0/token1 or token1/token0 order\",\"params\":{\"fee\":\"The fee collected upon every swap in the pool, denominated in hundredths of a bip\",\"tokenA\":\"The contract address of either token0 or token1\",\"tokenB\":\"The contract address of the other token\"},\"returns\":{\"pool\":\"The pool address\"}},\"owner()\":{\"details\":\"Can be changed by the current owner via setOwner\",\"returns\":{\"_0\":\"The address of the factory owner\"}},\"setOwner(address)\":{\"details\":\"Must be called by the current owner\",\"params\":{\"_owner\":\"The new owner of the factory\"}}},\"title\":\"The interface for the Uniswap V3 Factory\",\"version\":1},\"userdoc\":{\"events\":{\"FeeAmountEnabled(uint24,int24)\":{\"notice\":\"Emitted when a new fee amount is enabled for pool creation via the factory\"},\"OwnerChanged(address,address)\":{\"notice\":\"Emitted when the owner of the factory is changed\"},\"PoolCreated(address,address,uint24,int24,address)\":{\"notice\":\"Emitted when a pool is created\"}},\"kind\":\"user\",\"methods\":{\"createPool(address,address,uint24)\":{\"notice\":\"Creates a pool for the given two tokens and fee\"},\"enableFeeAmount(uint24,int24)\":{\"notice\":\"Enables a fee amount with the given tickSpacing\"},\"feeAmountTickSpacing(uint24)\":{\"notice\":\"Returns the tick spacing for a given fee amount, if enabled, or 0 if not enabled\"},\"getPool(address,address,uint24)\":{\"notice\":\"Returns the pool address for a given pair of tokens and a fee, or address 0 if it does not exist\"},\"owner()\":{\"notice\":\"Returns the current owner of the factory\"},\"setOwner(address)\":{\"notice\":\"Updates the owner of the factory\"}},\"notice\":\"The Uniswap V3 Factory facilitates creation of Uniswap V3 pools and control over the protocol fees\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib_uniswap/v3-core/contracts/interfaces/IUniswapV3Factory.sol\":\"IUniswapV3Factory\"},\"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/IUniswapV3Factory.sol\":{\"keccak256\":\"0xcc3d0c93fc9ac0febbe09f941b465b57f750bcf3b48432da0b97dc289cfdc489\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://b9379ad954680c44a0bc523b314ae4c4da735f9fe1d02aa56ea5bdba6f1136f2\",\"dweb:/ipfs/QmZXdgQNXKAckrXWz9R3mc47F1fvDvr28a2ewJrwNAw71B\"]}},\"version\":1}",
"metadata": {
"compiler": {
"version": "0.8.22+commit.4fc1097e"
},
"language": "Solidity",
"output": {
"abi": [
{
"inputs": [
{
"internalType": "uint24",
"name": "fee",
"type": "uint24",
"indexed": true
},
{
"internalType": "int24",
"name": "tickSpacing",
"type": "int24",
"indexed": true
}
],
"type": "event",
"name": "FeeAmountEnabled",
"anonymous": false
},
{
"inputs": [
{
"internalType": "address",
"name": "oldOwner",
"type": "address",
"indexed": true
},
{
"internalType": "address",
"name": "newOwner",
"type": "address",
"indexed": true
}
],
"type": "event",
"name": "OwnerChanged",
"anonymous": false
},
{
"inputs": [
{
"internalType": "address",
"name": "token0",
"type": "address",
"indexed": true
},
{
"internalType": "address",
"name": "token1",
"type": "address",
"indexed": true
},
{
"internalType": "uint24",
"name": "fee",
"type": "uint24",
"indexed": true
},
{
"internalType": "int24",
"name": "tickSpacing",
"type": "int24",
"indexed": false
},
{
"internalType": "address",
"name": "pool",
"type": "address",
"indexed": false
}
],
"type": "event",
"name": "PoolCreated",
"anonymous": false
},
{
"inputs": [
{
"internalType": "address",
"name": "tokenA",
"type": "address"
},
{
"internalType": "address",
"name": "tokenB",
"type": "address"
},
{
"internalType": "uint24",
"name": "fee",
"type": "uint24"
}
],
"stateMutability": "nonpayable",
"type": "function",
"name": "createPool",
"outputs": [
{
"internalType": "address",
"name": "pool",
"type": "address"
}
]
},
{
"inputs": [
{
"internalType": "uint24",
"name": "fee",
"type": "uint24"
},
{
"internalType": "int24",
"name": "tickSpacing",
"type": "int24"
}
],
"stateMutability": "nonpayable",
"type": "function",
"name": "enableFeeAmount"
},
{
"inputs": [
{
"internalType": "uint24",
"name": "fee",
"type": "uint24"
}
],
"stateMutability": "view",
"type": "function",
"name": "feeAmountTickSpacing",
"outputs": [
{
"internalType": "int24",
"name": "",
"type": "int24"
}
]
},
{
"inputs": [
{
"internalType": "address",
"name": "tokenA",
"type": "address"
},
{
"internalType": "address",
"name": "tokenB",
"type": "address"
},
{
"internalType": "uint24",
"name": "fee",
"type": "uint24"
}
],
"stateMutability": "view",
"type": "function",
"name": "getPool",
"outputs": [
{
"internalType": "address",
"name": "pool",
"type": "address"
}
]
},
{
"inputs": [],
"stateMutability": "view",
"type": "function",
"name": "owner",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
]
},
{
"inputs": [
{
"internalType": "address",
"name": "_owner",
"type": "address"
}
],
"stateMutability": "nonpayable",
"type": "function",
"name": "setOwner"
}
],
"devdoc": {
"kind": "dev",
"methods": {
"createPool(address,address,uint24)": {
"details": "tokenA and tokenB may be passed in either order: token0/token1 or token1/token0. tickSpacing is retrieved from the fee. The call will revert if the pool already exists, the fee is invalid, or the token arguments are invalid.",
"params": {
"fee": "The desired fee for the pool",
"tokenA": "One of the two tokens in the desired pool",
"tokenB": "The other of the two tokens in the desired pool"
},
"returns": {
"pool": "The address of the newly created pool"
}
},
"enableFeeAmount(uint24,int24)": {
"details": "Fee amounts may never be removed once enabled",
"params": {
"fee": "The fee amount to enable, denominated in hundredths of a bip (i.e. 1e-6)",
"tickSpacing": "The spacing between ticks to be enforced for all pools created with the given fee amount"
}
},
"feeAmountTickSpacing(uint24)": {
"details": "A fee amount can never be removed, so this value should be hard coded or cached in the calling context",
"params": {
"fee": "The enabled fee, denominated in hundredths of a bip. Returns 0 in case of unenabled fee"
},
"returns": {
"_0": "The tick spacing"
}
},
"getPool(address,address,uint24)": {
"details": "tokenA and tokenB may be passed in either token0/token1 or token1/token0 order",
"params": {
"fee": "The fee collected upon every swap in the pool, denominated in hundredths of a bip",
"tokenA": "The contract address of either token0 or token1",
"tokenB": "The contract address of the other token"
},
"returns": {
"pool": "The pool address"
}
},
"owner()": {
"details": "Can be changed by the current owner via setOwner",
"returns": {
"_0": "The address of the factory owner"
}
},
"setOwner(address)": {
"details": "Must be called by the current owner",
"params": {
"_owner": "The new owner of the factory"
}
}
},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {
"createPool(address,address,uint24)": {
"notice": "Creates a pool for the given two tokens and fee"
},
"enableFeeAmount(uint24,int24)": {
"notice": "Enables a fee amount with the given tickSpacing"
},
"feeAmountTickSpacing(uint24)": {
"notice": "Returns the tick spacing for a given fee amount, if enabled, or 0 if not enabled"
},
"getPool(address,address,uint24)": {
"notice": "Returns the pool address for a given pair of tokens and a fee, or address 0 if it does not exist"
},
"owner()": {
"notice": "Returns the current owner of the factory"
},
"setOwner(address)": {
"notice": "Updates the owner of the factory"
}
},
"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/IUniswapV3Factory.sol": "IUniswapV3Factory"
},
"libraries": {}
},
"sources": {
"lib_uniswap/v3-core/contracts/interfaces/IUniswapV3Factory.sol": {
"keccak256": "0xcc3d0c93fc9ac0febbe09f941b465b57f750bcf3b48432da0b97dc289cfdc489",
"urls": [
"bzz-raw://b9379ad954680c44a0bc523b314ae4c4da735f9fe1d02aa56ea5bdba6f1136f2",
"dweb:/ipfs/QmZXdgQNXKAckrXWz9R3mc47F1fvDvr28a2ewJrwNAw71B"
],
"license": "GPL-2.0-or-later"
}
},
"version": 1
},
"ast": {
"absolutePath": "lib_uniswap/v3-core/contracts/interfaces/IUniswapV3Factory.sol",
"id": 43873,
"exportedSymbols": {
"IUniswapV3Factory": [
43872
]
},
"nodeType": "SourceUnit",
"src": "45:3995:27",
"nodes": [
{
"id": 43791,
"nodeType": "PragmaDirective",
"src": "45:24:27",
"nodes": [],
"literals": [
"solidity",
">=",
"0.5",
".0"
]
},
{
"id": 43872,
"nodeType": "ContractDefinition",
"src": "234:3805:27",
"nodes": [
{
"id": 43799,
"nodeType": "EventDefinition",
"src": "458:71:27",
"nodes": [],
"anonymous": false,
"documentation": {
"id": 43793,
"nodeType": "StructuredDocumentation",
"src": "268:185:27",
"text": "@notice Emitted when the owner of the factory is changed\n @param oldOwner The owner before the owner was changed\n @param newOwner The owner after the owner was changed"
},
"eventSelector": "b532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c",
"name": "OwnerChanged",
"nameLocation": "464:12:27",
"parameters": {
"id": 43798,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 43795,
"indexed": true,
"mutability": "mutable",
"name": "oldOwner",
"nameLocation": "493:8:27",
"nodeType": "VariableDeclaration",
"scope": 43799,
"src": "477:24:27",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 43794,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "477:7:27",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 43797,
"indexed": true,
"mutability": "mutable",
"name": "newOwner",
"nameLocation": "519:8:27",
"nodeType": "VariableDeclaration",
"scope": 43799,
"src": "503:24:27",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 43796,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "503:7:27",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
}
],
"src": "476:52:27"
}
},
{
"id": 43812,
"nodeType": "EventDefinition",
"src": "961:165:27",
"nodes": [],
"anonymous": false,
"documentation": {
"id": 43800,
"nodeType": "StructuredDocumentation",
"src": "535:421:27",
"text": "@notice Emitted when a pool is created\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 minimum number of ticks between initialized ticks\n @param pool The address of the created pool"
},
"eventSelector": "783cca1c0412dd0d695e784568c96da2e9c22ff989357a2e8b1d9b2b4e6b7118",
"name": "PoolCreated",
"nameLocation": "967:11:27",
"parameters": {
"id": 43811,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 43802,
"indexed": true,
"mutability": "mutable",
"name": "token0",
"nameLocation": "1004:6:27",
"nodeType": "VariableDeclaration",
"scope": 43812,
"src": "988:22:27",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 43801,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "988:7:27",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 43804,
"indexed": true,
"mutability": "mutable",
"name": "token1",
"nameLocation": "1036:6:27",
"nodeType": "VariableDeclaration",
"scope": 43812,
"src": "1020:22:27",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 43803,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "1020:7:27",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 43806,
"indexed": true,
"mutability": "mutable",
"name": "fee",
"nameLocation": "1067:3:27",
"nodeType": "VariableDeclaration",
"scope": 43812,
"src": "1052:18:27",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint24",
"typeString": "uint24"
},
"typeName": {
"id": 43805,
"name": "uint24",
"nodeType": "ElementaryTypeName",
"src": "1052:6:27",
"typeDescriptions": {
"typeIdentifier": "t_uint24",
"typeString": "uint24"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 43808,
"indexed": false,
"mutability": "mutable",
"name": "tickSpacing",
"nameLocation": "1086:11:27",
"nodeType": "VariableDeclaration",
"scope": 43812,
"src": "1080:17:27",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_int24",
"typeString": "int24"
},
"typeName": {
"id": 43807,
"name": "int24",
"nodeType": "ElementaryTypeName",
"src": "1080:5:27",
"typeDescriptions": {
"typeIdentifier": "t_int24",
"typeString": "int24"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 43810,
"indexed": false,
"mutability": "mutable",
"name": "pool",
"nameLocation": "1115:4:27",
"nodeType": "VariableDeclaration",
"scope": 43812,
"src": "1107:12:27",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 43809,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "1107:7:27",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
}
],
"src": "978:147:27"
}
},
{
"id": 43819,
"nodeType": "EventDefinition",
"src": "1412:70:27",
"nodes": [],
"anonymous": false,
"documentation": {
"id": 43813,
"nodeType": "StructuredDocumentation",
"src": "1132:275:27",
"text": "@notice Emitted when a new fee amount is enabled for pool creation via the factory\n @param fee The enabled fee, denominated in hundredths of a bip\n @param tickSpacing The minimum number of ticks between initialized ticks for pools created with the given fee"
},
"eventSelector": "c66a3fdf07232cdd185febcc6579d408c241b47ae2f9907d84be655141eeaecc",
"name": "FeeAmountEnabled",
"nameLocation": "1418:16:27",
"parameters": {
"id": 43818,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 43815,
"indexed": true,
"mutability": "mutable",
"name": "fee",
"nameLocation": "1450:3:27",
"nodeType": "VariableDeclaration",
"scope": 43819,
"src": "1435:18:27",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint24",
"typeString": "uint24"
},
"typeName": {
"id": 43814,
"name": "uint24",
"nodeType": "ElementaryTypeName",
"src": "1435:6:27",
"typeDescriptions": {
"typeIdentifier": "t_uint24",
"typeString": "uint24"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 43817,
"indexed": true,
"mutability": "mutable",
"name": "tickSpacing",
"nameLocation": "1469:11:27",
"nodeType": "VariableDeclaration",
"scope": 43819,
"src": "1455:25:27",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_int24",
"typeString": "int24"
},
"typeName": {
"id": 43816,
"name": "int24",
"nodeType": "ElementaryTypeName",
"src": "1455:5:27",
"typeDescriptions": {
"typeIdentifier": "t_int24",
"typeString": "int24"
}
},
"visibility": "internal"
}
],
"src": "1434:47:27"
}
},
{
"id": 43825,
"nodeType": "FunctionDefinition",
"src": "1656:49:27",
"nodes": [],
"documentation": {
"id": 43820,
"nodeType": "StructuredDocumentation",
"src": "1488:163:27",
"text": "@notice Returns the current owner of the factory\n @dev Can be changed by the current owner via setOwner\n @return The address of the factory owner"
},
"functionSelector": "8da5cb5b",
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "owner",
"nameLocation": "1665:5:27",
"parameters": {
"id": 43821,
"nodeType": "ParameterList",
"parameters": [],
"src": "1670:2:27"
},
"returnParameters": {
"id": 43824,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 43823,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 43825,
"src": "1696:7:27",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 43822,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "1696:7:27",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
}
],
"src": "1695:9:27"
},
"scope": 43872,
"stateMutability": "view",
"virtual": false,
"visibility": "external"
},
{
"id": 43833,
"nodeType": "FunctionDefinition",
"src": "2064:72:27",
"nodes": [],
"documentation": {
"id": 43826,
"nodeType": "StructuredDocumentation",
"src": "1711:348:27",
"text": "@notice Returns the tick spacing for a given fee amount, if enabled, or 0 if not enabled\n @dev A fee amount can never be removed, so this value should be hard coded or cached in the calling context\n @param fee The enabled fee, denominated in hundredths of a bip. Returns 0 in case of unenabled fee\n @return The tick spacing"
},
"functionSelector": "22afcccb",
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "feeAmountTickSpacing",
"nameLocation": "2073:20:27",
"parameters": {
"id": 43829,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 43828,
"mutability": "mutable",
"name": "fee",
"nameLocation": "2101:3:27",
"nodeType": "VariableDeclaration",
"scope": 43833,
"src": "2094:10:27",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint24",
"typeString": "uint24"
},
"typeName": {
"id": 43827,
"name": "uint24",
"nodeType": "ElementaryTypeName",
"src": "2094:6:27",
"typeDescriptions": {
"typeIdentifier": "t_uint24",
"typeString": "uint24"
}
},
"visibility": "internal"
}
],
"src": "2093:12:27"
},
"returnParameters": {
"id": 43832,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 43831,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 43833,
"src": "2129:5:27",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_int24",
"typeString": "int24"
},
"typeName": {
"id": 43830,
"name": "int24",
"nodeType": "ElementaryTypeName",
"src": "2129:5:27",
"typeDescriptions": {
"typeIdentifier": "t_int24",
"typeString": "int24"
}
},
"visibility": "internal"
}
],
"src": "2128:7:27"
},
"scope": 43872,
"stateMutability": "view",
"virtual": false,
"visibility": "external"
},
{
"id": 43845,
"nodeType": "FunctionDefinition",
"src": "2618:128:27",
"nodes": [],
"documentation": {
"id": 43834,
"nodeType": "StructuredDocumentation",
"src": "2142:471:27",
"text": "@notice Returns the pool address for a given pair of tokens and a fee, or address 0 if it does not exist\n @dev tokenA and tokenB may be passed in either token0/token1 or token1/token0 order\n @param tokenA The contract address of either token0 or token1\n @param tokenB The contract address of the other token\n @param fee The fee collected upon every swap in the pool, denominated in hundredths of a bip\n @return pool The pool address"
},
"functionSelector": "1698ee82",
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "getPool",
"nameLocation": "2627:7:27",
"parameters": {
"id": 43841,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 43836,
"mutability": "mutable",
"name": "tokenA",
"nameLocation": "2652:6:27",
"nodeType": "VariableDeclaration",
"scope": 43845,
"src": "2644:14:27",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 43835,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "2644:7:27",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 43838,
"mutability": "mutable",
"name": "tokenB",
"nameLocation": "2676:6:27",
"nodeType": "VariableDeclaration",
"scope": 43845,
"src": "2668:14:27",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 43837,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "2668:7:27",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 43840,
"mutability": "mutable",
"name": "fee",
"nameLocation": "2699:3:27",
"nodeType": "VariableDeclaration",
"scope": 43845,
"src": "2692:10:27",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint24",
"typeString": "uint24"
},
"typeName": {
"id": 43839,
"name": "uint24",
"nodeType": "ElementaryTypeName",
"src": "2692:6:27",
"typeDescriptions": {
"typeIdentifier": "t_uint24",
"typeString": "uint24"
}
},
"visibility": "internal"
}
],
"src": "2634:74:27"
},
"returnParameters": {
"id": 43844,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 43843,
"mutability": "mutable",
"name": "pool",
"nameLocation": "2740:4:27",
"nodeType": "VariableDeclaration",
"scope": 43845,
"src": "2732:12:27",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 43842,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "2732:7:27",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
}
],
"src": "2731:14:27"
},
"scope": 43872,
"stateMutability": "view",
"virtual": false,
"visibility": "external"
},
{
"id": 43857,
"nodeType": "FunctionDefinition",
"src": "3311:126:27",
"nodes": [],
"documentation": {
"id": 43846,
"nodeType": "StructuredDocumentation",
"src": "2752:554:27",
"text": "@notice Creates a pool for the given two tokens and fee\n @param tokenA One of the two tokens in the desired pool\n @param tokenB The other of the two tokens in the desired pool\n @param fee The desired fee for the pool\n @dev tokenA and tokenB may be passed in either order: token0/token1 or token1/token0. tickSpacing is retrieved\n from the fee. The call will revert if the pool already exists, the fee is invalid, or the token arguments\n are invalid.\n @return pool The address of the newly created pool"
},
"functionSelector": "a1671295",
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "createPool",
"nameLocation": "3320:10:27",
"parameters": {
"id": 43853,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 43848,
"mutability": "mutable",
"name": "tokenA",
"nameLocation": "3348:6:27",
"nodeType": "VariableDeclaration",
"scope": 43857,
"src": "3340:14:27",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 43847,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "3340:7:27",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 43850,
"mutability": "mutable",
"name": "tokenB",
"nameLocation": "3372:6:27",
"nodeType": "VariableDeclaration",
"scope": 43857,
"src": "3364:14:27",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 43849,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "3364:7:27",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 43852,
"mutability": "mutable",
"name": "fee",
"nameLocation": "3395:3:27",
"nodeType": "VariableDeclaration",
"scope": 43857,
"src": "3388:10:27",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint24",
"typeString": "uint24"
},
"typeName": {
"id": 43851,
"name": "uint24",
"nodeType": "ElementaryTypeName",
"src": "3388:6:27",
"typeDescriptions": {
"typeIdentifier": "t_uint24",
"typeString": "uint24"
}
},
"visibility": "internal"
}
],
"src": "3330:74:27"
},
"returnParameters": {
"id": 43856,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 43855,
"mutability": "mutable",
"name": "pool",
"nameLocation": "3431:4:27",
"nodeType": "VariableDeclaration",
"scope": 43857,
"src": "3423:12:27",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 43854,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "3423:7:27",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
}
],
"src": "3422:14:27"
},
"scope": 43872,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "external"
},
{
"id": 43863,
"nodeType": "FunctionDefinition",
"src": "3592:43:27",
"nodes": [],
"documentation": {
"id": 43858,
"nodeType": "StructuredDocumentation",
"src": "3443:144:27",
"text": "@notice Updates the owner of the factory\n @dev Must be called by the current owner\n @param _owner The new owner of the factory"
},
"functionSelector": "13af4035",
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "setOwner",
"nameLocation": "3601:8:27",
"parameters": {
"id": 43861,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 43860,
"mutability": "mutable",
"name": "_owner",
"nameLocation": "3618:6:27",
"nodeType": "VariableDeclaration",
"scope": 43863,
"src": "3610:14:27",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 43859,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "3610:7:27",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
}
],
"src": "3609:16:27"
},
"returnParameters": {
"id": 43862,
"nodeType": "ParameterList",
"parameters": [],
"src": "3634:0:27"
},
"scope": 43872,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "external"
},
{
"id": 43871,
"nodeType": "FunctionDefinition",
"src": "3972:65:27",
"nodes": [],
"documentation": {
"id": 43864,
"nodeType": "StructuredDocumentation",
"src": "3641:326:27",
"text": "@notice Enables a fee amount with the given tickSpacing\n @dev Fee amounts may never be removed once enabled\n @param fee The fee amount to enable, denominated in hundredths of a bip (i.e. 1e-6)\n @param tickSpacing The spacing between ticks to be enforced for all pools created with the given fee amount"
},
"functionSelector": "8a7c195f",
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "enableFeeAmount",
"nameLocation": "3981:15:27",
"parameters": {
"id": 43869,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 43866,
"mutability": "mutable",
"name": "fee",
"nameLocation": "4004:3:27",
"nodeType": "VariableDeclaration",
"scope": 43871,
"src": "3997:10:27",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint24",
"typeString": "uint24"
},
"typeName": {
"id": 43865,
"name": "uint24",
"nodeType": "ElementaryTypeName",
"src": "3997:6:27",
"typeDescriptions": {
"typeIdentifier": "t_uint24",
"typeString": "uint24"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 43868,
"mutability": "mutable",
"name": "tickSpacing",
"nameLocation": "4015:11:27",
"nodeType": "VariableDeclaration",
"scope": 43871,
"src": "4009:17:27",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_int24",
"typeString": "int24"
},
"typeName": {
"id": 43867,
"name": "int24",
"nodeType": "ElementaryTypeName",
"src": "4009:5:27",
"typeDescriptions": {
"typeIdentifier": "t_int24",
"typeString": "int24"
}
},
"visibility": "internal"
}
],
"src": "3996:31:27"
},
"returnParameters": {
"id": 43870,
"nodeType": "ParameterList",
"parameters": [],
"src": "4036:0:27"
},
"scope": 43872,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "external"
}
],
"abstract": false,
"baseContracts": [],
"canonicalName": "IUniswapV3Factory",
"contractDependencies": [],
"contractKind": "interface",
"documentation": {
"id": 43792,
"nodeType": "StructuredDocumentation",
"src": "71:163:27",
"text": "@title The interface for the Uniswap V3 Factory\n @notice The Uniswap V3 Factory facilitates creation of Uniswap V3 pools and control over the protocol fees"
},
"fullyImplemented": false,
"linearizedBaseContracts": [
43872
],
"name": "IUniswapV3Factory",
"nameLocation": "244:17:27",
"scope": 43873,
"usedErrors": [],
"usedEvents": [
43799,
43812,
43819
]
}
],
"license": "GPL-2.0-or-later"
},
"id": 27
}