{ "abi": [ { "inputs": [ { "internalType": "address", "name": "recipient", "type": "address" }, { "internalType": "uint128", "name": "amount0Requested", "type": "uint128" }, { "internalType": "uint128", "name": "amount1Requested", "type": "uint128" } ], "name": "collectProtocol", "outputs": [ { "internalType": "uint128", "name": "amount0", "type": "uint128" }, { "internalType": "uint128", "name": "amount1", "type": "uint128" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint8", "name": "feeProtocol0", "type": "uint8" }, { "internalType": "uint8", "name": "feeProtocol1", "type": "uint8" } ], "name": "setFeeProtocol", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ], "bytecode": { "object": "0x", "sourceMap": "", "linkReferences": {} }, "deployedBytecode": { "object": "0x", "sourceMap": "", "linkReferences": {} }, "methodIdentifiers": { "collectProtocol(address,uint128,uint128)": "85b66729", "setFeeProtocol(uint8,uint8)": "8206a4d1" }, "rawMetadata": "{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint128\",\"name\":\"amount0Requested\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"amount1Requested\",\"type\":\"uint128\"}],\"name\":\"collectProtocol\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"amount0\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"amount1\",\"type\":\"uint128\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"feeProtocol0\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"feeProtocol1\",\"type\":\"uint8\"}],\"name\":\"setFeeProtocol\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"collectProtocol(address,uint128,uint128)\":{\"params\":{\"amount0Requested\":\"The maximum amount of token0 to send, can be 0 to collect fees in only token1\",\"amount1Requested\":\"The maximum amount of token1 to send, can be 0 to collect fees in only token0\",\"recipient\":\"The address to which collected protocol fees should be sent\"},\"returns\":{\"amount0\":\"The protocol fee collected in token0\",\"amount1\":\"The protocol fee collected in token1\"}},\"setFeeProtocol(uint8,uint8)\":{\"params\":{\"feeProtocol0\":\"new protocol fee for token0 of the pool\",\"feeProtocol1\":\"new protocol fee for token1 of the pool\"}}},\"title\":\"Permissioned pool actions\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"collectProtocol(address,uint128,uint128)\":{\"notice\":\"Collect the protocol fee accrued to the pool\"},\"setFeeProtocol(uint8,uint8)\":{\"notice\":\"Set the denominator of the protocol's % share of the fees\"}},\"notice\":\"Contains pool methods that may only be called by the factory owner\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolOwnerActions.sol\":\"IUniswapV3PoolOwnerActions\"},\"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/IUniswapV3PoolOwnerActions.sol\":{\"keccak256\":\"0x759b78a2918af9e99e246dc3af084f654e48ef32bb4e4cb8a966aa3dcaece235\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://64144fb96e1c7fdba87305acadb98a198d26a3d46c097cb3a666e567f6f29735\",\"dweb:/ipfs/QmUnWVwN9FKB9uV5Pr8YfLpWZnYM2DENnRMaadZ492JS9u\"]}},\"version\":1}", "metadata": { "compiler": { "version": "0.8.22+commit.4fc1097e" }, "language": "Solidity", "output": { "abi": [ { "inputs": [ { "internalType": "address", "name": "recipient", "type": "address" }, { "internalType": "uint128", "name": "amount0Requested", "type": "uint128" }, { "internalType": "uint128", "name": "amount1Requested", "type": "uint128" } ], "stateMutability": "nonpayable", "type": "function", "name": "collectProtocol", "outputs": [ { "internalType": "uint128", "name": "amount0", "type": "uint128" }, { "internalType": "uint128", "name": "amount1", "type": "uint128" } ] }, { "inputs": [ { "internalType": "uint8", "name": "feeProtocol0", "type": "uint8" }, { "internalType": "uint8", "name": "feeProtocol1", "type": "uint8" } ], "stateMutability": "nonpayable", "type": "function", "name": "setFeeProtocol" } ], "devdoc": { "kind": "dev", "methods": { "collectProtocol(address,uint128,uint128)": { "params": { "amount0Requested": "The maximum amount of token0 to send, can be 0 to collect fees in only token1", "amount1Requested": "The maximum amount of token1 to send, can be 0 to collect fees in only token0", "recipient": "The address to which collected protocol fees should be sent" }, "returns": { "amount0": "The protocol fee collected in token0", "amount1": "The protocol fee collected in token1" } }, "setFeeProtocol(uint8,uint8)": { "params": { "feeProtocol0": "new protocol fee for token0 of the pool", "feeProtocol1": "new protocol fee for token1 of the pool" } } }, "version": 1 }, "userdoc": { "kind": "user", "methods": { "collectProtocol(address,uint128,uint128)": { "notice": "Collect the protocol fee accrued to the pool" }, "setFeeProtocol(uint8,uint8)": { "notice": "Set the denominator of the protocol's % share of the fees" } }, "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/IUniswapV3PoolOwnerActions.sol": "IUniswapV3PoolOwnerActions" }, "libraries": {} }, "sources": { "lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolOwnerActions.sol": { "keccak256": "0x759b78a2918af9e99e246dc3af084f654e48ef32bb4e4cb8a966aa3dcaece235", "urls": [ "bzz-raw://64144fb96e1c7fdba87305acadb98a198d26a3d46c097cb3a666e567f6f29735", "dweb:/ipfs/QmUnWVwN9FKB9uV5Pr8YfLpWZnYM2DENnRMaadZ492JS9u" ], "license": "GPL-2.0-or-later" } }, "version": 1 }, "ast": { "absolutePath": "lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolOwnerActions.sol", "id": 44221, "exportedSymbols": { "IUniswapV3PoolOwnerActions": [ 44220 ] }, "nodeType": "SourceUnit", "src": "45:1143:34", "nodes": [ { "id": 44196, "nodeType": "PragmaDirective", "src": "45:24:34", "nodes": [], "literals": [ "solidity", ">=", "0.5", ".0" ] }, { "id": 44220, "nodeType": "ContractDefinition", "src": "187:1000:34", "nodes": [ { "id": 44205, "nodeType": "FunctionDefinition", "src": "440:73:34", "nodes": [], "documentation": { "id": 44198, "nodeType": "StructuredDocumentation", "src": "230:205:34", "text": "@notice Set the denominator of the protocol's % share of the fees\n @param feeProtocol0 new protocol fee for token0 of the pool\n @param feeProtocol1 new protocol fee for token1 of the pool" }, "functionSelector": "8206a4d1", "implemented": false, "kind": "function", "modifiers": [], "name": "setFeeProtocol", "nameLocation": "449:14:34", "parameters": { "id": 44203, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 44200, "mutability": "mutable", "name": "feeProtocol0", "nameLocation": "470:12:34", "nodeType": "VariableDeclaration", "scope": 44205, "src": "464:18:34", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" }, "typeName": { "id": 44199, "name": "uint8", "nodeType": "ElementaryTypeName", "src": "464:5:34", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, "visibility": "internal" }, { "constant": false, "id": 44202, "mutability": "mutable", "name": "feeProtocol1", "nameLocation": "490:12:34", "nodeType": "VariableDeclaration", "scope": 44205, "src": "484:18:34", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" }, "typeName": { "id": 44201, "name": "uint8", "nodeType": "ElementaryTypeName", "src": "484:5:34", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, "visibility": "internal" } ], "src": "463:40:34" }, "returnParameters": { "id": 44204, "nodeType": "ParameterList", "parameters": [], "src": "512:0:34" }, "scope": 44220, "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "id": 44219, "nodeType": "FunctionDefinition", "src": "1007:178:34", "nodes": [], "documentation": { "id": 44206, "nodeType": "StructuredDocumentation", "src": "519:483:34", "text": "@notice Collect the protocol fee accrued to the pool\n @param recipient The address to which collected protocol fees should be sent\n @param amount0Requested The maximum amount of token0 to send, can be 0 to collect fees in only token1\n @param amount1Requested The maximum amount of token1 to send, can be 0 to collect fees in only token0\n @return amount0 The protocol fee collected in token0\n @return amount1 The protocol fee collected in token1" }, "functionSelector": "85b66729", "implemented": false, "kind": "function", "modifiers": [], "name": "collectProtocol", "nameLocation": "1016:15:34", "parameters": { "id": 44213, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 44208, "mutability": "mutable", "name": "recipient", "nameLocation": "1049:9:34", "nodeType": "VariableDeclaration", "scope": 44219, "src": "1041:17:34", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 44207, "name": "address", "nodeType": "ElementaryTypeName", "src": "1041:7:34", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" }, { "constant": false, "id": 44210, "mutability": "mutable", "name": "amount0Requested", "nameLocation": "1076:16:34", "nodeType": "VariableDeclaration", "scope": 44219, "src": "1068:24:34", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" }, "typeName": { "id": 44209, "name": "uint128", "nodeType": "ElementaryTypeName", "src": "1068:7:34", "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" } }, "visibility": "internal" }, { "constant": false, "id": 44212, "mutability": "mutable", "name": "amount1Requested", "nameLocation": "1110:16:34", "nodeType": "VariableDeclaration", "scope": 44219, "src": "1102:24:34", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" }, "typeName": { "id": 44211, "name": "uint128", "nodeType": "ElementaryTypeName", "src": "1102:7:34", "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" } }, "visibility": "internal" } ], "src": "1031:101:34" }, "returnParameters": { "id": 44218, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 44215, "mutability": "mutable", "name": "amount0", "nameLocation": "1159:7:34", "nodeType": "VariableDeclaration", "scope": 44219, "src": "1151:15:34", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" }, "typeName": { "id": 44214, "name": "uint128", "nodeType": "ElementaryTypeName", "src": "1151:7:34", "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" } }, "visibility": "internal" }, { "constant": false, "id": 44217, "mutability": "mutable", "name": "amount1", "nameLocation": "1176:7:34", "nodeType": "VariableDeclaration", "scope": 44219, "src": "1168:15:34", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" }, "typeName": { "id": 44216, "name": "uint128", "nodeType": "ElementaryTypeName", "src": "1168:7:34", "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" } }, "visibility": "internal" } ], "src": "1150:34:34" }, "scope": 44220, "stateMutability": "nonpayable", "virtual": false, "visibility": "external" } ], "abstract": false, "baseContracts": [], "canonicalName": "IUniswapV3PoolOwnerActions", "contractDependencies": [], "contractKind": "interface", "documentation": { "id": 44197, "nodeType": "StructuredDocumentation", "src": "71:116:34", "text": "@title Permissioned pool actions\n @notice Contains pool methods that may only be called by the factory owner" }, "fullyImplemented": false, "linearizedBaseContracts": [ 44220 ], "name": "IUniswapV3PoolOwnerActions", "nameLocation": "197:26:34", "scope": 44221, "usedErrors": [], "usedEvents": [] } ], "license": "GPL-2.0-or-later" }, "id": 34 }