alpha deployment

This commit is contained in:
Tim Olson
2023-11-16 17:36:43 -04:00
parent 81776bc79f
commit e9fd472ec1
77 changed files with 1163259 additions and 0 deletions

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,328 @@
{
"abi": [],
"bytecode": {
"object": "0x",
"sourceMap": "",
"linkReferences": {}
},
"deployedBytecode": {
"object": "0x",
"sourceMap": "",
"linkReferences": {}
},
"methodIdentifiers": {},
"rawMetadata": "{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Provides information about the current execution context, including the sender of the transaction and its data. While these are generally available via msg.sender and msg.data, they should not be accessed in such a direct manner, since when dealing with meta-transactions the account sending and paying for execution may not be the actual sender (as far as an application is concerned). This contract is only required for intermediate, library-like contracts.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":\"Context\"},\"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/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]}},\"version\":1}",
"metadata": {
"compiler": {
"version": "0.8.22+commit.4fc1097e"
},
"language": "Solidity",
"output": {
"abi": [],
"devdoc": {
"kind": "dev",
"methods": {},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"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/openzeppelin-contracts/contracts/utils/Context.sol": "Context"
},
"libraries": {}
},
"sources": {
"lib/openzeppelin-contracts/contracts/utils/Context.sol": {
"keccak256": "0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7",
"urls": [
"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92",
"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"
],
"license": "MIT"
}
},
"version": 1
},
"ast": {
"absolutePath": "lib/openzeppelin-contracts/contracts/utils/Context.sol",
"id": 43778,
"exportedSymbols": {
"Context": [
43777
]
},
"nodeType": "SourceUnit",
"src": "86:758:25",
"nodes": [
{
"id": 43757,
"nodeType": "PragmaDirective",
"src": "86:23:25",
"nodes": [],
"literals": [
"solidity",
"^",
"0.8",
".0"
]
},
{
"id": 43777,
"nodeType": "ContractDefinition",
"src": "608:235:25",
"nodes": [
{
"id": 43767,
"nodeType": "FunctionDefinition",
"src": "640:96:25",
"nodes": [],
"body": {
"id": 43766,
"nodeType": "Block",
"src": "702:34:25",
"nodes": [],
"statements": [
{
"expression": {
"expression": {
"id": 43763,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -15,
"src": "719:3:25",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 43764,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "723:6:25",
"memberName": "sender",
"nodeType": "MemberAccess",
"src": "719:10:25",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"functionReturnParameters": 43762,
"id": 43765,
"nodeType": "Return",
"src": "712:17:25"
}
]
},
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "_msgSender",
"nameLocation": "649:10:25",
"parameters": {
"id": 43759,
"nodeType": "ParameterList",
"parameters": [],
"src": "659:2:25"
},
"returnParameters": {
"id": 43762,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 43761,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 43767,
"src": "693:7:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 43760,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "693:7:25",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
}
],
"src": "692:9:25"
},
"scope": 43777,
"stateMutability": "view",
"virtual": true,
"visibility": "internal"
},
{
"id": 43776,
"nodeType": "FunctionDefinition",
"src": "742:99:25",
"nodes": [],
"body": {
"id": 43775,
"nodeType": "Block",
"src": "809:32:25",
"nodes": [],
"statements": [
{
"expression": {
"expression": {
"id": 43772,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -15,
"src": "826:3:25",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 43773,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "830:4:25",
"memberName": "data",
"nodeType": "MemberAccess",
"src": "826:8:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes calldata"
}
},
"functionReturnParameters": 43771,
"id": 43774,
"nodeType": "Return",
"src": "819:15:25"
}
]
},
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "_msgData",
"nameLocation": "751:8:25",
"parameters": {
"id": 43768,
"nodeType": "ParameterList",
"parameters": [],
"src": "759:2:25"
},
"returnParameters": {
"id": 43771,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 43770,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 43776,
"src": "793:14:25",
"stateVariable": false,
"storageLocation": "calldata",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 43769,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "793:5:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"visibility": "internal"
}
],
"src": "792:16:25"
},
"scope": 43777,
"stateMutability": "view",
"virtual": true,
"visibility": "internal"
}
],
"abstract": true,
"baseContracts": [],
"canonicalName": "Context",
"contractDependencies": [],
"contractKind": "contract",
"documentation": {
"id": 43758,
"nodeType": "StructuredDocumentation",
"src": "111:496:25",
"text": " @dev Provides information about the current execution context, including the\n sender of the transaction and its data. While these are generally available\n via msg.sender and msg.data, they should not be accessed in such a direct\n manner, since when dealing with meta-transactions the account sending and\n paying for execution may not be the actual sender (as far as an application\n is concerned).\n This contract is only required for intermediate, library-like contracts."
},
"fullyImplemented": true,
"linearizedBaseContracts": [
43777
],
"name": "Context",
"nameLocation": "626:7:25",
"scope": 43778,
"usedErrors": [],
"usedEvents": []
}
],
"license": "MIT"
},
"id": 25
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,223 @@
{
"abi": [],
"bytecode": {
"object": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122088a5e7bdd2c95b142656abd37b5c5cf17e80d321b44b327f797edb7cad07531864736f6c63430008160033",
"sourceMap": "245:134:36:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;245:134:36;;;;;;;;;;;;;;;;;",
"linkReferences": {}
},
"deployedBytecode": {
"object": "0x73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122088a5e7bdd2c95b142656abd37b5c5cf17e80d321b44b327f797edb7cad07531864736f6c63430008160033",
"sourceMap": "245:134:36:-:0;;;;;;;;",
"linkReferences": {}
},
"methodIdentifiers": {},
"rawMetadata": "{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Used in SqrtPriceMath.sol\",\"kind\":\"dev\",\"methods\":{},\"title\":\"FixedPoint96\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"A library for handling binary fixed point numbers, see https://en.wikipedia.org/wiki/Q_(number_format)\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib_uniswap/v3-core/contracts/libraries/FixedPoint96.sol\":\"FixedPoint96\"},\"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/libraries/FixedPoint96.sol\":{\"keccak256\":\"0x0ba8a9b95a956a4050749c0158e928398c447c91469682ca8a7cc7e77a7fe032\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://186d3b528866065a5856f96d2aeec698efa99f8da913e9adf34f8cc296cc993d\",\"dweb:/ipfs/QmUAiMvtAQp8c9dy57bqJYzG7hkb1uChiPaQmt264skoqP\"]}},\"version\":1}",
"metadata": {
"compiler": {
"version": "0.8.22+commit.4fc1097e"
},
"language": "Solidity",
"output": {
"abi": [],
"devdoc": {
"kind": "dev",
"methods": {},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"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/libraries/FixedPoint96.sol": "FixedPoint96"
},
"libraries": {}
},
"sources": {
"lib_uniswap/v3-core/contracts/libraries/FixedPoint96.sol": {
"keccak256": "0x0ba8a9b95a956a4050749c0158e928398c447c91469682ca8a7cc7e77a7fe032",
"urls": [
"bzz-raw://186d3b528866065a5856f96d2aeec698efa99f8da913e9adf34f8cc296cc993d",
"dweb:/ipfs/QmUAiMvtAQp8c9dy57bqJYzG7hkb1uChiPaQmt264skoqP"
],
"license": "GPL-2.0-or-later"
}
},
"version": 1
},
"ast": {
"absolutePath": "lib_uniswap/v3-core/contracts/libraries/FixedPoint96.sol",
"id": 44339,
"exportedSymbols": {
"FixedPoint96": [
44338
]
},
"nodeType": "SourceUnit",
"src": "45:335:36",
"nodes": [
{
"id": 44330,
"nodeType": "PragmaDirective",
"src": "45:24:36",
"nodes": [],
"literals": [
"solidity",
">=",
"0.4",
".0"
]
},
{
"id": 44338,
"nodeType": "ContractDefinition",
"src": "245:134:36",
"nodes": [
{
"id": 44334,
"nodeType": "VariableDeclaration",
"src": "272:39:36",
"nodes": [],
"constant": true,
"mutability": "constant",
"name": "RESOLUTION",
"nameLocation": "296:10:36",
"scope": 44338,
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
},
"typeName": {
"id": 44332,
"name": "uint8",
"nodeType": "ElementaryTypeName",
"src": "272:5:36",
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
}
},
"value": {
"hexValue": "3936",
"id": 44333,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "309:2:36",
"typeDescriptions": {
"typeIdentifier": "t_rational_96_by_1",
"typeString": "int_const 96"
},
"value": "96"
},
"visibility": "internal"
},
{
"id": 44337,
"nodeType": "VariableDeclaration",
"src": "317:59:36",
"nodes": [],
"constant": true,
"mutability": "constant",
"name": "Q96",
"nameLocation": "343:3:36",
"scope": 44338,
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 44335,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "317:7:36",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": {
"hexValue": "307831303030303030303030303030303030303030303030303030",
"id": 44336,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "349:27:36",
"typeDescriptions": {
"typeIdentifier": "t_rational_79228162514264337593543950336_by_1",
"typeString": "int_const 79228162514264337593543950336"
},
"value": "0x1000000000000000000000000"
},
"visibility": "internal"
}
],
"abstract": false,
"baseContracts": [],
"canonicalName": "FixedPoint96",
"contractDependencies": [],
"contractKind": "library",
"documentation": {
"id": 44331,
"nodeType": "StructuredDocumentation",
"src": "71:174:36",
"text": "@title FixedPoint96\n @notice A library for handling binary fixed point numbers, see https://en.wikipedia.org/wiki/Q_(number_format)\n @dev Used in SqrtPriceMath.sol"
},
"fullyImplemented": true,
"linearizedBaseContracts": [
44338
],
"name": "FixedPoint96",
"nameLocation": "253:12:36",
"scope": 44339,
"usedErrors": [],
"usedEvents": []
}
],
"license": "GPL-2.0-or-later"
},
"id": 36
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,271 @@
{
"abi": [
{
"inputs": [
{
"internalType": "bytes4",
"name": "interfaceId",
"type": "bytes4"
}
],
"name": "supportsInterface",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
}
],
"bytecode": {
"object": "0x",
"sourceMap": "",
"linkReferences": {}
},
"deployedBytecode": {
"object": "0x",
"sourceMap": "",
"linkReferences": {}
},
"methodIdentifiers": {
"supportsInterface(bytes4)": "01ffc9a7"
},
"rawMetadata": "{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the ERC165 standard, as defined in the https://eips.ethereum.org/EIPS/eip-165[EIP]. Implementers can declare support of contract interfaces, which can then be queried by others ({ERC165Checker}). For an implementation, see {ERC165}.\",\"kind\":\"dev\",\"methods\":{\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":\"IERC165\"},\"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/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]}},\"version\":1}",
"metadata": {
"compiler": {
"version": "0.8.22+commit.4fc1097e"
},
"language": "Solidity",
"output": {
"abi": [
{
"inputs": [
{
"internalType": "bytes4",
"name": "interfaceId",
"type": "bytes4"
}
],
"stateMutability": "view",
"type": "function",
"name": "supportsInterface",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
]
}
],
"devdoc": {
"kind": "dev",
"methods": {
"supportsInterface(bytes4)": {
"details": "Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas."
}
},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"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/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol": "IERC165"
},
"libraries": {}
},
"sources": {
"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol": {
"keccak256": "0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1",
"urls": [
"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f",
"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy"
],
"license": "MIT"
}
},
"version": 1
},
"ast": {
"absolutePath": "lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol",
"id": 43790,
"exportedSymbols": {
"IERC165": [
43789
]
},
"nodeType": "SourceUnit",
"src": "100:753:26",
"nodes": [
{
"id": 43779,
"nodeType": "PragmaDirective",
"src": "100:23:26",
"nodes": [],
"literals": [
"solidity",
"^",
"0.8",
".0"
]
},
{
"id": 43789,
"nodeType": "ContractDefinition",
"src": "405:447:26",
"nodes": [
{
"id": 43788,
"nodeType": "FunctionDefinition",
"src": "774:76:26",
"nodes": [],
"documentation": {
"id": 43781,
"nodeType": "StructuredDocumentation",
"src": "429:340:26",
"text": " @dev Returns true if this contract implements the interface defined by\n `interfaceId`. See the corresponding\n https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\n to learn more about how these ids are created.\n This function call must use less than 30 000 gas."
},
"functionSelector": "01ffc9a7",
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "supportsInterface",
"nameLocation": "783:17:26",
"parameters": {
"id": 43784,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 43783,
"mutability": "mutable",
"name": "interfaceId",
"nameLocation": "808:11:26",
"nodeType": "VariableDeclaration",
"scope": 43788,
"src": "801:18:26",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
},
"typeName": {
"id": 43782,
"name": "bytes4",
"nodeType": "ElementaryTypeName",
"src": "801:6:26",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"visibility": "internal"
}
],
"src": "800:20:26"
},
"returnParameters": {
"id": 43787,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 43786,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 43788,
"src": "844:4:26",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 43785,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "844:4:26",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"visibility": "internal"
}
],
"src": "843:6:26"
},
"scope": 43789,
"stateMutability": "view",
"virtual": false,
"visibility": "external"
}
],
"abstract": false,
"baseContracts": [],
"canonicalName": "IERC165",
"contractDependencies": [],
"contractKind": "interface",
"documentation": {
"id": 43780,
"nodeType": "StructuredDocumentation",
"src": "125:279:26",
"text": " @dev Interface of the ERC165 standard, as defined in the\n https://eips.ethereum.org/EIPS/eip-165[EIP].\n Implementers can declare support of contract interfaces, which can then be\n queried by others ({ERC165Checker}).\n For an implementation, see {ERC165}."
},
"fullyImplemented": false,
"linearizedBaseContracts": [
43789
],
"name": "IERC165",
"nameLocation": "415:7:26",
"scope": 43790,
"usedErrors": [],
"usedEvents": []
}
],
"license": "MIT"
},
"id": 26
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,329 @@
{
"abi": [
{
"inputs": [],
"name": "WETH9",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "factory",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
}
],
"bytecode": {
"object": "0x",
"sourceMap": "",
"linkReferences": {}
},
"deployedBytecode": {
"object": "0x",
"sourceMap": "",
"linkReferences": {}
},
"methodIdentifiers": {
"WETH9()": "4aa4a4fc",
"factory()": "c45a0155"
},
"rawMetadata": "{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"WETH9\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"factory\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"WETH9()\":{\"returns\":{\"_0\":\"Returns the address of WETH9\"}},\"factory()\":{\"returns\":{\"_0\":\"Returns the address of the Uniswap V3 factory\"}}},\"title\":\"Immutable state\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Functions that return immutable state of the router\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib_uniswap/v3-periphery/contracts/interfaces/IPeripheryImmutableState.sol\":\"IPeripheryImmutableState\"},\"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-periphery/contracts/interfaces/IPeripheryImmutableState.sol\":{\"keccak256\":\"0x7affcfeb5127c0925a71d6a65345e117c33537523aeca7bc98085ead8452519d\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://e16b291294210e71cb0f20cd0afe62ae2dc6878d627f5ccc19c4dc9cd80aec3f\",\"dweb:/ipfs/QmQGitSyBr26nour81BZmpmDMyJpvZRqHQZvnCD1Acb127\"]}},\"version\":1}",
"metadata": {
"compiler": {
"version": "0.8.22+commit.4fc1097e"
},
"language": "Solidity",
"output": {
"abi": [
{
"inputs": [],
"stateMutability": "view",
"type": "function",
"name": "WETH9",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
]
},
{
"inputs": [],
"stateMutability": "view",
"type": "function",
"name": "factory",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
]
}
],
"devdoc": {
"kind": "dev",
"methods": {
"WETH9()": {
"returns": {
"_0": "Returns the address of WETH9"
}
},
"factory()": {
"returns": {
"_0": "Returns the address of the Uniswap V3 factory"
}
}
},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"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-periphery/contracts/interfaces/IPeripheryImmutableState.sol": "IPeripheryImmutableState"
},
"libraries": {}
},
"sources": {
"lib_uniswap/v3-periphery/contracts/interfaces/IPeripheryImmutableState.sol": {
"keccak256": "0x7affcfeb5127c0925a71d6a65345e117c33537523aeca7bc98085ead8452519d",
"urls": [
"bzz-raw://e16b291294210e71cb0f20cd0afe62ae2dc6878d627f5ccc19c4dc9cd80aec3f",
"dweb:/ipfs/QmQGitSyBr26nour81BZmpmDMyJpvZRqHQZvnCD1Acb127"
],
"license": "GPL-2.0-or-later"
}
},
"version": 1
},
"ast": {
"absolutePath": "lib_uniswap/v3-periphery/contracts/interfaces/IPeripheryImmutableState.sol",
"id": 45310,
"exportedSymbols": {
"IPeripheryImmutableState": [
45309
]
},
"nodeType": "SourceUnit",
"src": "45:374:41",
"nodes": [
{
"id": 45295,
"nodeType": "PragmaDirective",
"src": "45:24:41",
"nodes": [],
"literals": [
"solidity",
">=",
"0.5",
".0"
]
},
{
"id": 45309,
"nodeType": "ContractDefinition",
"src": "162:256:41",
"nodes": [
{
"id": 45302,
"nodeType": "FunctionDefinition",
"src": "265:51:41",
"nodes": [],
"documentation": {
"id": 45297,
"nodeType": "StructuredDocumentation",
"src": "203:57:41",
"text": "@return Returns the address of the Uniswap V3 factory"
},
"functionSelector": "c45a0155",
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "factory",
"nameLocation": "274:7:41",
"parameters": {
"id": 45298,
"nodeType": "ParameterList",
"parameters": [],
"src": "281:2:41"
},
"returnParameters": {
"id": 45301,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 45300,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 45302,
"src": "307:7:41",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 45299,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "307:7:41",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
}
],
"src": "306:9:41"
},
"scope": 45309,
"stateMutability": "view",
"virtual": false,
"visibility": "external"
},
{
"id": 45308,
"nodeType": "FunctionDefinition",
"src": "367:49:41",
"nodes": [],
"documentation": {
"id": 45303,
"nodeType": "StructuredDocumentation",
"src": "322:40:41",
"text": "@return Returns the address of WETH9"
},
"functionSelector": "4aa4a4fc",
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "WETH9",
"nameLocation": "376:5:41",
"parameters": {
"id": 45304,
"nodeType": "ParameterList",
"parameters": [],
"src": "381:2:41"
},
"returnParameters": {
"id": 45307,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 45306,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 45308,
"src": "407:7:41",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 45305,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "407:7:41",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
}
],
"src": "406:9:41"
},
"scope": 45309,
"stateMutability": "view",
"virtual": false,
"visibility": "external"
}
],
"abstract": false,
"baseContracts": [],
"canonicalName": "IPeripheryImmutableState",
"contractDependencies": [],
"contractKind": "interface",
"documentation": {
"id": 45296,
"nodeType": "StructuredDocumentation",
"src": "71:91:41",
"text": "@title Immutable state\n @notice Functions that return immutable state of the router"
},
"fullyImplemented": false,
"linearizedBaseContracts": [
45309
],
"name": "IPeripheryImmutableState",
"nameLocation": "172:24:41",
"scope": 45310,
"usedErrors": [],
"usedEvents": []
}
],
"license": "GPL-2.0-or-later"
},
"id": 41
}

View File

@@ -0,0 +1,505 @@
{
"abi": [
{
"inputs": [],
"name": "refundETH",
"outputs": [],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "token",
"type": "address"
},
{
"internalType": "uint256",
"name": "amountMinimum",
"type": "uint256"
},
{
"internalType": "address",
"name": "recipient",
"type": "address"
}
],
"name": "sweepToken",
"outputs": [],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amountMinimum",
"type": "uint256"
},
{
"internalType": "address",
"name": "recipient",
"type": "address"
}
],
"name": "unwrapWETH9",
"outputs": [],
"stateMutability": "payable",
"type": "function"
}
],
"bytecode": {
"object": "0x",
"sourceMap": "",
"linkReferences": {}
},
"deployedBytecode": {
"object": "0x",
"sourceMap": "",
"linkReferences": {}
},
"methodIdentifiers": {
"refundETH()": "12210e8a",
"sweepToken(address,uint256,address)": "df2ab5bb",
"unwrapWETH9(uint256,address)": "49404b7c"
},
"rawMetadata": "{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"refundETH\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amountMinimum\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"}],\"name\":\"sweepToken\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountMinimum\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"}],\"name\":\"unwrapWETH9\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"refundETH()\":{\"details\":\"Useful for bundling with mint or increase liquidity that uses ether, or exact output swaps that use ether for the input amount\"},\"sweepToken(address,uint256,address)\":{\"details\":\"The amountMinimum parameter prevents malicious contracts from stealing the token from users\",\"params\":{\"amountMinimum\":\"The minimum amount of token required for a transfer\",\"recipient\":\"The destination address of the token\",\"token\":\"The contract address of the token which will be transferred to `recipient`\"}},\"unwrapWETH9(uint256,address)\":{\"details\":\"The amountMinimum parameter prevents malicious contracts from stealing WETH9 from users.\",\"params\":{\"amountMinimum\":\"The minimum amount of WETH9 to unwrap\",\"recipient\":\"The address receiving ETH\"}}},\"title\":\"Periphery Payments\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"refundETH()\":{\"notice\":\"Refunds any ETH balance held by this contract to the `msg.sender`\"},\"sweepToken(address,uint256,address)\":{\"notice\":\"Transfers the full amount of a token held by this contract to recipient\"},\"unwrapWETH9(uint256,address)\":{\"notice\":\"Unwraps the contract's WETH9 balance and sends it to recipient as ETH.\"}},\"notice\":\"Functions to ease deposits and withdrawals of ETH\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib_uniswap/v3-periphery/contracts/interfaces/IPeripheryPayments.sol\":\"IPeripheryPayments\"},\"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-periphery/contracts/interfaces/IPeripheryPayments.sol\":{\"keccak256\":\"0xb547e10f1e69bed03621a62b73a503e260643066c6b4054867a4d1fef47eb274\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://f9a90f58f5fd5fb42f7811f4094113b532f307b14a73764c91f977590747f407\",\"dweb:/ipfs/QmSeNH2mfiDMKf3Q6V2sqtNxx1s72JNuA1VVxRM9HoMqYp\"]}},\"version\":1}",
"metadata": {
"compiler": {
"version": "0.8.22+commit.4fc1097e"
},
"language": "Solidity",
"output": {
"abi": [
{
"inputs": [],
"stateMutability": "payable",
"type": "function",
"name": "refundETH"
},
{
"inputs": [
{
"internalType": "address",
"name": "token",
"type": "address"
},
{
"internalType": "uint256",
"name": "amountMinimum",
"type": "uint256"
},
{
"internalType": "address",
"name": "recipient",
"type": "address"
}
],
"stateMutability": "payable",
"type": "function",
"name": "sweepToken"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amountMinimum",
"type": "uint256"
},
{
"internalType": "address",
"name": "recipient",
"type": "address"
}
],
"stateMutability": "payable",
"type": "function",
"name": "unwrapWETH9"
}
],
"devdoc": {
"kind": "dev",
"methods": {
"refundETH()": {
"details": "Useful for bundling with mint or increase liquidity that uses ether, or exact output swaps that use ether for the input amount"
},
"sweepToken(address,uint256,address)": {
"details": "The amountMinimum parameter prevents malicious contracts from stealing the token from users",
"params": {
"amountMinimum": "The minimum amount of token required for a transfer",
"recipient": "The destination address of the token",
"token": "The contract address of the token which will be transferred to `recipient`"
}
},
"unwrapWETH9(uint256,address)": {
"details": "The amountMinimum parameter prevents malicious contracts from stealing WETH9 from users.",
"params": {
"amountMinimum": "The minimum amount of WETH9 to unwrap",
"recipient": "The address receiving ETH"
}
}
},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {
"refundETH()": {
"notice": "Refunds any ETH balance held by this contract to the `msg.sender`"
},
"sweepToken(address,uint256,address)": {
"notice": "Transfers the full amount of a token held by this contract to recipient"
},
"unwrapWETH9(uint256,address)": {
"notice": "Unwraps the contract's WETH9 balance and sends it to recipient as ETH."
}
},
"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-periphery/contracts/interfaces/IPeripheryPayments.sol": "IPeripheryPayments"
},
"libraries": {}
},
"sources": {
"lib_uniswap/v3-periphery/contracts/interfaces/IPeripheryPayments.sol": {
"keccak256": "0xb547e10f1e69bed03621a62b73a503e260643066c6b4054867a4d1fef47eb274",
"urls": [
"bzz-raw://f9a90f58f5fd5fb42f7811f4094113b532f307b14a73764c91f977590747f407",
"dweb:/ipfs/QmSeNH2mfiDMKf3Q6V2sqtNxx1s72JNuA1VVxRM9HoMqYp"
],
"license": "GPL-2.0-or-later"
}
},
"version": 1
},
"ast": {
"absolutePath": "lib_uniswap/v3-periphery/contracts/interfaces/IPeripheryPayments.sol",
"id": 45336,
"exportedSymbols": {
"IPeripheryPayments": [
45335
]
},
"nodeType": "SourceUnit",
"src": "45:1379:42",
"nodes": [
{
"id": 45311,
"nodeType": "PragmaDirective",
"src": "45:24:42",
"nodes": [],
"literals": [
"solidity",
">=",
"0.7",
".5"
]
},
{
"id": 45335,
"nodeType": "ContractDefinition",
"src": "163:1260:42",
"nodes": [
{
"id": 45320,
"nodeType": "FunctionDefinition",
"src": "505:80:42",
"nodes": [],
"documentation": {
"id": 45313,
"nodeType": "StructuredDocumentation",
"src": "198:302:42",
"text": "@notice Unwraps the contract's WETH9 balance and sends it to recipient as ETH.\n @dev The amountMinimum parameter prevents malicious contracts from stealing WETH9 from users.\n @param amountMinimum The minimum amount of WETH9 to unwrap\n @param recipient The address receiving ETH"
},
"functionSelector": "49404b7c",
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "unwrapWETH9",
"nameLocation": "514:11:42",
"parameters": {
"id": 45318,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 45315,
"mutability": "mutable",
"name": "amountMinimum",
"nameLocation": "534:13:42",
"nodeType": "VariableDeclaration",
"scope": 45320,
"src": "526:21:42",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 45314,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "526:7:42",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 45317,
"mutability": "mutable",
"name": "recipient",
"nameLocation": "557:9:42",
"nodeType": "VariableDeclaration",
"scope": 45320,
"src": "549:17:42",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 45316,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "549:7:42",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
}
],
"src": "525:42:42"
},
"returnParameters": {
"id": 45319,
"nodeType": "ParameterList",
"parameters": [],
"src": "584:0:42"
},
"scope": 45335,
"stateMutability": "payable",
"virtual": false,
"visibility": "external"
},
{
"id": 45324,
"nodeType": "FunctionDefinition",
"src": "821:38:42",
"nodes": [],
"documentation": {
"id": 45321,
"nodeType": "StructuredDocumentation",
"src": "591:225:42",
"text": "@notice Refunds any ETH balance held by this contract to the `msg.sender`\n @dev Useful for bundling with mint or increase liquidity that uses ether, or exact output swaps\n that use ether for the input amount"
},
"functionSelector": "12210e8a",
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "refundETH",
"nameLocation": "830:9:42",
"parameters": {
"id": 45322,
"nodeType": "ParameterList",
"parameters": [],
"src": "839:2:42"
},
"returnParameters": {
"id": 45323,
"nodeType": "ParameterList",
"parameters": [],
"src": "858:0:42"
},
"scope": 45335,
"stateMutability": "payable",
"virtual": false,
"visibility": "external"
},
{
"id": 45334,
"nodeType": "FunctionDefinition",
"src": "1297:124:42",
"nodes": [],
"documentation": {
"id": 45325,
"nodeType": "StructuredDocumentation",
"src": "865:427:42",
"text": "@notice Transfers the full amount of a token held by this contract to recipient\n @dev The amountMinimum parameter prevents malicious contracts from stealing the token from users\n @param token The contract address of the token which will be transferred to `recipient`\n @param amountMinimum The minimum amount of token required for a transfer\n @param recipient The destination address of the token"
},
"functionSelector": "df2ab5bb",
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "sweepToken",
"nameLocation": "1306:10:42",
"parameters": {
"id": 45332,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 45327,
"mutability": "mutable",
"name": "token",
"nameLocation": "1334:5:42",
"nodeType": "VariableDeclaration",
"scope": 45334,
"src": "1326:13:42",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 45326,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "1326:7:42",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 45329,
"mutability": "mutable",
"name": "amountMinimum",
"nameLocation": "1357:13:42",
"nodeType": "VariableDeclaration",
"scope": 45334,
"src": "1349:21:42",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 45328,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "1349:7:42",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 45331,
"mutability": "mutable",
"name": "recipient",
"nameLocation": "1388:9:42",
"nodeType": "VariableDeclaration",
"scope": 45334,
"src": "1380:17:42",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 45330,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "1380:7:42",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
}
],
"src": "1316:87:42"
},
"returnParameters": {
"id": 45333,
"nodeType": "ParameterList",
"parameters": [],
"src": "1420:0:42"
},
"scope": 45335,
"stateMutability": "payable",
"virtual": false,
"visibility": "external"
}
],
"abstract": false,
"baseContracts": [],
"canonicalName": "IPeripheryPayments",
"contractDependencies": [],
"contractKind": "interface",
"documentation": {
"id": 45312,
"nodeType": "StructuredDocumentation",
"src": "71:92:42",
"text": "@title Periphery Payments\n @notice Functions to ease deposits and withdrawals of ETH"
},
"fullyImplemented": false,
"linearizedBaseContracts": [
45335
],
"name": "IPeripheryPayments",
"nameLocation": "173:18:42",
"scope": 45336,
"usedErrors": [],
"usedEvents": []
}
],
"license": "GPL-2.0-or-later"
},
"id": 42
}

View File

@@ -0,0 +1,408 @@
{
"abi": [
{
"inputs": [
{
"internalType": "address",
"name": "token0",
"type": "address"
},
{
"internalType": "address",
"name": "token1",
"type": "address"
},
{
"internalType": "uint24",
"name": "fee",
"type": "uint24"
},
{
"internalType": "uint160",
"name": "sqrtPriceX96",
"type": "uint160"
}
],
"name": "createAndInitializePoolIfNecessary",
"outputs": [
{
"internalType": "address",
"name": "pool",
"type": "address"
}
],
"stateMutability": "payable",
"type": "function"
}
],
"bytecode": {
"object": "0x",
"sourceMap": "",
"linkReferences": {}
},
"deployedBytecode": {
"object": "0x",
"sourceMap": "",
"linkReferences": {}
},
"methodIdentifiers": {
"createAndInitializePoolIfNecessary(address,address,uint24,uint160)": "13ead562"
},
"rawMetadata": "{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token0\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token1\",\"type\":\"address\"},{\"internalType\":\"uint24\",\"name\":\"fee\",\"type\":\"uint24\"},{\"internalType\":\"uint160\",\"name\":\"sqrtPriceX96\",\"type\":\"uint160\"}],\"name\":\"createAndInitializePoolIfNecessary\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"pool\",\"type\":\"address\"}],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"createAndInitializePoolIfNecessary(address,address,uint24,uint160)\":{\"details\":\"This method can be bundled with others via IMulticall for the first action (e.g. mint) performed against a pool\",\"params\":{\"fee\":\"The fee amount of the v3 pool for the specified token pair\",\"sqrtPriceX96\":\"The initial square root price of the pool as a Q64.96 value\",\"token0\":\"The contract address of token0 of the pool\",\"token1\":\"The contract address of token1 of the pool\"},\"returns\":{\"pool\":\"Returns the pool address based on the pair of tokens and fee, will return the newly created pool address if necessary\"}}},\"title\":\"Creates and initializes V3 Pools\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"createAndInitializePoolIfNecessary(address,address,uint24,uint160)\":{\"notice\":\"Creates a new pool if it does not exist, then initializes if not initialized\"}},\"notice\":\"Provides a method for creating and initializing a pool, if necessary, for bundling with other methods that require the pool to exist.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib_uniswap/v3-periphery/contracts/interfaces/IPoolInitializer.sol\":\"IPoolInitializer\"},\"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-periphery/contracts/interfaces/IPoolInitializer.sol\":{\"keccak256\":\"0x9d7695e8d94c22cc5fcced602017aabb988de89981ea7bee29ea629d5328a862\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://61b50933026ee1017db2a6273af8cedc3238c95dca58880db0918dbdbb2f064f\",\"dweb:/ipfs/QmUebR26pqG25d18aBELKz8aFFKkmHa8PxntzXTA7o9Ldu\"]}},\"version\":1}",
"metadata": {
"compiler": {
"version": "0.8.22+commit.4fc1097e"
},
"language": "Solidity",
"output": {
"abi": [
{
"inputs": [
{
"internalType": "address",
"name": "token0",
"type": "address"
},
{
"internalType": "address",
"name": "token1",
"type": "address"
},
{
"internalType": "uint24",
"name": "fee",
"type": "uint24"
},
{
"internalType": "uint160",
"name": "sqrtPriceX96",
"type": "uint160"
}
],
"stateMutability": "payable",
"type": "function",
"name": "createAndInitializePoolIfNecessary",
"outputs": [
{
"internalType": "address",
"name": "pool",
"type": "address"
}
]
}
],
"devdoc": {
"kind": "dev",
"methods": {
"createAndInitializePoolIfNecessary(address,address,uint24,uint160)": {
"details": "This method can be bundled with others via IMulticall for the first action (e.g. mint) performed against a pool",
"params": {
"fee": "The fee amount of the v3 pool for the specified token pair",
"sqrtPriceX96": "The initial square root price of the pool as a Q64.96 value",
"token0": "The contract address of token0 of the pool",
"token1": "The contract address of token1 of the pool"
},
"returns": {
"pool": "Returns the pool address based on the pair of tokens and fee, will return the newly created pool address if necessary"
}
}
},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {
"createAndInitializePoolIfNecessary(address,address,uint24,uint160)": {
"notice": "Creates a new pool if it does not exist, then initializes if not initialized"
}
},
"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-periphery/contracts/interfaces/IPoolInitializer.sol": "IPoolInitializer"
},
"libraries": {}
},
"sources": {
"lib_uniswap/v3-periphery/contracts/interfaces/IPoolInitializer.sol": {
"keccak256": "0x9d7695e8d94c22cc5fcced602017aabb988de89981ea7bee29ea629d5328a862",
"urls": [
"bzz-raw://61b50933026ee1017db2a6273af8cedc3238c95dca58880db0918dbdbb2f064f",
"dweb:/ipfs/QmUebR26pqG25d18aBELKz8aFFKkmHa8PxntzXTA7o9Ldu"
],
"license": "GPL-2.0-or-later"
}
},
"version": 1
},
"ast": {
"absolutePath": "lib_uniswap/v3-periphery/contracts/interfaces/IPoolInitializer.sol",
"id": 45355,
"exportedSymbols": {
"IPoolInitializer": [
45354
]
},
"nodeType": "SourceUnit",
"src": "45:1117:43",
"nodes": [
{
"id": 45337,
"nodeType": "PragmaDirective",
"src": "45:24:43",
"nodes": [],
"literals": [
"solidity",
">=",
"0.7",
".5"
]
},
{
"id": 45338,
"nodeType": "PragmaDirective",
"src": "70:19:43",
"nodes": [],
"literals": [
"abicoder",
"v2"
]
},
{
"id": 45354,
"nodeType": "ContractDefinition",
"src": "285:876:43",
"nodes": [
{
"id": 45353,
"nodeType": "FunctionDefinition",
"src": "971:188:43",
"nodes": [],
"documentation": {
"id": 45340,
"nodeType": "StructuredDocumentation",
"src": "318:648:43",
"text": "@notice Creates a new pool if it does not exist, then initializes if not initialized\n @dev This method can be bundled with others via IMulticall for the first action (e.g. mint) performed against a pool\n @param token0 The contract address of token0 of the pool\n @param token1 The contract address of token1 of the pool\n @param fee The fee amount of the v3 pool for the specified token pair\n @param sqrtPriceX96 The initial square root price of the pool as a Q64.96 value\n @return pool Returns the pool address based on the pair of tokens and fee, will return the newly created pool address if necessary"
},
"functionSelector": "13ead562",
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "createAndInitializePoolIfNecessary",
"nameLocation": "980:34:43",
"parameters": {
"id": 45349,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 45342,
"mutability": "mutable",
"name": "token0",
"nameLocation": "1032:6:43",
"nodeType": "VariableDeclaration",
"scope": 45353,
"src": "1024:14:43",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 45341,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "1024:7:43",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 45344,
"mutability": "mutable",
"name": "token1",
"nameLocation": "1056:6:43",
"nodeType": "VariableDeclaration",
"scope": 45353,
"src": "1048:14:43",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 45343,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "1048:7:43",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 45346,
"mutability": "mutable",
"name": "fee",
"nameLocation": "1079:3:43",
"nodeType": "VariableDeclaration",
"scope": 45353,
"src": "1072:10:43",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint24",
"typeString": "uint24"
},
"typeName": {
"id": 45345,
"name": "uint24",
"nodeType": "ElementaryTypeName",
"src": "1072:6:43",
"typeDescriptions": {
"typeIdentifier": "t_uint24",
"typeString": "uint24"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 45348,
"mutability": "mutable",
"name": "sqrtPriceX96",
"nameLocation": "1100:12:43",
"nodeType": "VariableDeclaration",
"scope": 45353,
"src": "1092:20:43",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint160",
"typeString": "uint160"
},
"typeName": {
"id": 45347,
"name": "uint160",
"nodeType": "ElementaryTypeName",
"src": "1092:7:43",
"typeDescriptions": {
"typeIdentifier": "t_uint160",
"typeString": "uint160"
}
},
"visibility": "internal"
}
],
"src": "1014:104:43"
},
"returnParameters": {
"id": 45352,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 45351,
"mutability": "mutable",
"name": "pool",
"nameLocation": "1153:4:43",
"nodeType": "VariableDeclaration",
"scope": 45353,
"src": "1145:12:43",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 45350,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "1145:7:43",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
}
],
"src": "1144:14:43"
},
"scope": 45354,
"stateMutability": "payable",
"virtual": false,
"visibility": "external"
}
],
"abstract": false,
"baseContracts": [],
"canonicalName": "IPoolInitializer",
"contractDependencies": [],
"contractKind": "interface",
"documentation": {
"id": 45339,
"nodeType": "StructuredDocumentation",
"src": "91:194:43",
"text": "@title Creates and initializes V3 Pools\n @notice Provides a method for creating and initializing a pool, if necessary, for bundling with other methods that\n require the pool to exist."
},
"fullyImplemented": false,
"linearizedBaseContracts": [
45354
],
"name": "IPoolInitializer",
"nameLocation": "295:16:43",
"scope": 45355,
"usedErrors": [],
"usedEvents": []
}
],
"license": "GPL-2.0-or-later"
},
"id": 43
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,601 @@
{
"abi": [
{
"inputs": [
{
"internalType": "uint32[]",
"name": "secondsAgos",
"type": "uint32[]"
}
],
"name": "observe",
"outputs": [
{
"internalType": "int56[]",
"name": "tickCumulatives",
"type": "int56[]"
},
{
"internalType": "uint160[]",
"name": "secondsPerLiquidityCumulativeX128s",
"type": "uint160[]"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "int24",
"name": "tickLower",
"type": "int24"
},
{
"internalType": "int24",
"name": "tickUpper",
"type": "int24"
}
],
"name": "snapshotCumulativesInside",
"outputs": [
{
"internalType": "int56",
"name": "tickCumulativeInside",
"type": "int56"
},
{
"internalType": "uint160",
"name": "secondsPerLiquidityInsideX128",
"type": "uint160"
},
{
"internalType": "uint32",
"name": "secondsInside",
"type": "uint32"
}
],
"stateMutability": "view",
"type": "function"
}
],
"bytecode": {
"object": "0x",
"sourceMap": "",
"linkReferences": {}
},
"deployedBytecode": {
"object": "0x",
"sourceMap": "",
"linkReferences": {}
},
"methodIdentifiers": {
"observe(uint32[])": "883bdbfd",
"snapshotCumulativesInside(int24,int24)": "a38807f2"
},
"rawMetadata": "{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint32[]\",\"name\":\"secondsAgos\",\"type\":\"uint32[]\"}],\"name\":\"observe\",\"outputs\":[{\"internalType\":\"int56[]\",\"name\":\"tickCumulatives\",\"type\":\"int56[]\"},{\"internalType\":\"uint160[]\",\"name\":\"secondsPerLiquidityCumulativeX128s\",\"type\":\"uint160[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int24\",\"name\":\"tickLower\",\"type\":\"int24\"},{\"internalType\":\"int24\",\"name\":\"tickUpper\",\"type\":\"int24\"}],\"name\":\"snapshotCumulativesInside\",\"outputs\":[{\"internalType\":\"int56\",\"name\":\"tickCumulativeInside\",\"type\":\"int56\"},{\"internalType\":\"uint160\",\"name\":\"secondsPerLiquidityInsideX128\",\"type\":\"uint160\"},{\"internalType\":\"uint32\",\"name\":\"secondsInside\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"observe(uint32[])\":{\"details\":\"To get a time weighted average tick or liquidity-in-range, you must call this with two values, one representing the beginning of the period and another for the end of the period. E.g., to get the last hour time-weighted average tick, you must call it with secondsAgos = [3600, 0].The time weighted average tick represents the geometric time weighted average price of the pool, in log base sqrt(1.0001) of token1 / token0. The TickMath library can be used to go from a tick value to a ratio.\",\"params\":{\"secondsAgos\":\"From how long ago each cumulative tick and liquidity value should be returned\"},\"returns\":{\"secondsPerLiquidityCumulativeX128s\":\"Cumulative seconds per liquidity-in-range value as of each `secondsAgos` from the current block timestamp\",\"tickCumulatives\":\"Cumulative tick values as of each `secondsAgos` from the current block timestamp\"}},\"snapshotCumulativesInside(int24,int24)\":{\"details\":\"Snapshots must only be compared to other snapshots, taken over a period for which a position existed. I.e., snapshots cannot be compared if a position is not held for the entire period between when the first snapshot is taken and the second snapshot is taken.\",\"params\":{\"tickLower\":\"The lower tick of the range\",\"tickUpper\":\"The upper tick of the range\"},\"returns\":{\"secondsInside\":\"The snapshot of seconds per liquidity for the range\",\"secondsPerLiquidityInsideX128\":\"The snapshot of seconds per liquidity for the range\",\"tickCumulativeInside\":\"The snapshot of the tick accumulator for the range\"}}},\"title\":\"Pool state that is not stored\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"observe(uint32[])\":{\"notice\":\"Returns the cumulative tick and liquidity as of each timestamp `secondsAgo` from the current block timestamp\"},\"snapshotCumulativesInside(int24,int24)\":{\"notice\":\"Returns a snapshot of the tick cumulative, seconds per liquidity and seconds inside a tick range\"}},\"notice\":\"Contains view functions to provide information about the pool that is computed rather than stored on the blockchain. The functions here may have variable gas costs.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolDerivedState.sol\":\"IUniswapV3PoolDerivedState\"},\"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/IUniswapV3PoolDerivedState.sol\":{\"keccak256\":\"0xe603ac5b17ecdee73ba2b27efdf386c257a19c14206e87eee77e2017b742d9e5\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://8febc9bdb399a4d94bb89f5377732652e2400e4a8dee808201ade6848f9004e7\",\"dweb:/ipfs/QmaKDqYYFU4d2W2iN77aDHptfbFmYZRrMYXHeGpJmM8C1c\"]}},\"version\":1}",
"metadata": {
"compiler": {
"version": "0.8.22+commit.4fc1097e"
},
"language": "Solidity",
"output": {
"abi": [
{
"inputs": [
{
"internalType": "uint32[]",
"name": "secondsAgos",
"type": "uint32[]"
}
],
"stateMutability": "view",
"type": "function",
"name": "observe",
"outputs": [
{
"internalType": "int56[]",
"name": "tickCumulatives",
"type": "int56[]"
},
{
"internalType": "uint160[]",
"name": "secondsPerLiquidityCumulativeX128s",
"type": "uint160[]"
}
]
},
{
"inputs": [
{
"internalType": "int24",
"name": "tickLower",
"type": "int24"
},
{
"internalType": "int24",
"name": "tickUpper",
"type": "int24"
}
],
"stateMutability": "view",
"type": "function",
"name": "snapshotCumulativesInside",
"outputs": [
{
"internalType": "int56",
"name": "tickCumulativeInside",
"type": "int56"
},
{
"internalType": "uint160",
"name": "secondsPerLiquidityInsideX128",
"type": "uint160"
},
{
"internalType": "uint32",
"name": "secondsInside",
"type": "uint32"
}
]
}
],
"devdoc": {
"kind": "dev",
"methods": {
"observe(uint32[])": {
"details": "To get a time weighted average tick or liquidity-in-range, you must call this with two values, one representing the beginning of the period and another for the end of the period. E.g., to get the last hour time-weighted average tick, you must call it with secondsAgos = [3600, 0].The time weighted average tick represents the geometric time weighted average price of the pool, in log base sqrt(1.0001) of token1 / token0. The TickMath library can be used to go from a tick value to a ratio.",
"params": {
"secondsAgos": "From how long ago each cumulative tick and liquidity value should be returned"
},
"returns": {
"secondsPerLiquidityCumulativeX128s": "Cumulative seconds per liquidity-in-range value as of each `secondsAgos` from the current block timestamp",
"tickCumulatives": "Cumulative tick values as of each `secondsAgos` from the current block timestamp"
}
},
"snapshotCumulativesInside(int24,int24)": {
"details": "Snapshots must only be compared to other snapshots, taken over a period for which a position existed. I.e., snapshots cannot be compared if a position is not held for the entire period between when the first snapshot is taken and the second snapshot is taken.",
"params": {
"tickLower": "The lower tick of the range",
"tickUpper": "The upper tick of the range"
},
"returns": {
"secondsInside": "The snapshot of seconds per liquidity for the range",
"secondsPerLiquidityInsideX128": "The snapshot of seconds per liquidity for the range",
"tickCumulativeInside": "The snapshot of the tick accumulator for the range"
}
}
},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {
"observe(uint32[])": {
"notice": "Returns the cumulative tick and liquidity as of each timestamp `secondsAgo` from the current block timestamp"
},
"snapshotCumulativesInside(int24,int24)": {
"notice": "Returns a snapshot of the tick cumulative, seconds per liquidity and seconds inside a tick range"
}
},
"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/IUniswapV3PoolDerivedState.sol": "IUniswapV3PoolDerivedState"
},
"libraries": {}
},
"sources": {
"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolDerivedState.sol": {
"keccak256": "0xe603ac5b17ecdee73ba2b27efdf386c257a19c14206e87eee77e2017b742d9e5",
"urls": [
"bzz-raw://8febc9bdb399a4d94bb89f5377732652e2400e4a8dee808201ade6848f9004e7",
"dweb:/ipfs/QmaKDqYYFU4d2W2iN77aDHptfbFmYZRrMYXHeGpJmM8C1c"
],
"license": "GPL-2.0-or-later"
}
},
"version": 1
},
"ast": {
"absolutePath": "lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolDerivedState.sol",
"id": 44036,
"exportedSymbols": {
"IUniswapV3PoolDerivedState": [
44035
]
},
"nodeType": "SourceUnit",
"src": "45:2557:31",
"nodes": [
{
"id": 44006,
"nodeType": "PragmaDirective",
"src": "45:24:31",
"nodes": [],
"literals": [
"solidity",
">=",
"0.5",
".0"
]
},
{
"id": 44035,
"nodeType": "ContractDefinition",
"src": "293:2308:31",
"nodes": [
{
"id": 44020,
"nodeType": "FunctionDefinition",
"src": "1386:180:31",
"nodes": [],
"documentation": {
"id": 44008,
"nodeType": "StructuredDocumentation",
"src": "336:1045:31",
"text": "@notice Returns the cumulative tick and liquidity as of each timestamp `secondsAgo` from the current block timestamp\n @dev To get a time weighted average tick or liquidity-in-range, you must call this with two values, one representing\n the beginning of the period and another for the end of the period. E.g., to get the last hour time-weighted average tick,\n you must call it with secondsAgos = [3600, 0].\n @dev The time weighted average tick represents the geometric time weighted average price of the pool, in\n log base sqrt(1.0001) of token1 / token0. The TickMath library can be used to go from a tick value to a ratio.\n @param secondsAgos From how long ago each cumulative tick and liquidity value should be returned\n @return tickCumulatives Cumulative tick values as of each `secondsAgos` from the current block timestamp\n @return secondsPerLiquidityCumulativeX128s Cumulative seconds per liquidity-in-range value as of each `secondsAgos` from the current block\n timestamp"
},
"functionSelector": "883bdbfd",
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "observe",
"nameLocation": "1395:7:31",
"parameters": {
"id": 44012,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 44011,
"mutability": "mutable",
"name": "secondsAgos",
"nameLocation": "1421:11:31",
"nodeType": "VariableDeclaration",
"scope": 44020,
"src": "1403:29:31",
"stateVariable": false,
"storageLocation": "calldata",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint32_$dyn_calldata_ptr",
"typeString": "uint32[]"
},
"typeName": {
"baseType": {
"id": 44009,
"name": "uint32",
"nodeType": "ElementaryTypeName",
"src": "1403:6:31",
"typeDescriptions": {
"typeIdentifier": "t_uint32",
"typeString": "uint32"
}
},
"id": 44010,
"nodeType": "ArrayTypeName",
"src": "1403:8:31",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint32_$dyn_storage_ptr",
"typeString": "uint32[]"
}
},
"visibility": "internal"
}
],
"src": "1402:31:31"
},
"returnParameters": {
"id": 44019,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 44015,
"mutability": "mutable",
"name": "tickCumulatives",
"nameLocation": "1496:15:31",
"nodeType": "VariableDeclaration",
"scope": 44020,
"src": "1481:30:31",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_int56_$dyn_memory_ptr",
"typeString": "int56[]"
},
"typeName": {
"baseType": {
"id": 44013,
"name": "int56",
"nodeType": "ElementaryTypeName",
"src": "1481:5:31",
"typeDescriptions": {
"typeIdentifier": "t_int56",
"typeString": "int56"
}
},
"id": 44014,
"nodeType": "ArrayTypeName",
"src": "1481:7:31",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_int56_$dyn_storage_ptr",
"typeString": "int56[]"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 44018,
"mutability": "mutable",
"name": "secondsPerLiquidityCumulativeX128s",
"nameLocation": "1530:34:31",
"nodeType": "VariableDeclaration",
"scope": 44020,
"src": "1513:51:31",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint160_$dyn_memory_ptr",
"typeString": "uint160[]"
},
"typeName": {
"baseType": {
"id": 44016,
"name": "uint160",
"nodeType": "ElementaryTypeName",
"src": "1513:7:31",
"typeDescriptions": {
"typeIdentifier": "t_uint160",
"typeString": "uint160"
}
},
"id": 44017,
"nodeType": "ArrayTypeName",
"src": "1513:9:31",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint160_$dyn_storage_ptr",
"typeString": "uint160[]"
}
},
"visibility": "internal"
}
],
"src": "1480:85:31"
},
"scope": 44035,
"stateMutability": "view",
"virtual": false,
"visibility": "external"
},
{
"id": 44034,
"nodeType": "FunctionDefinition",
"src": "2348:251:31",
"nodes": [],
"documentation": {
"id": 44021,
"nodeType": "StructuredDocumentation",
"src": "1572:771:31",
"text": "@notice Returns a snapshot of the tick cumulative, seconds per liquidity and seconds inside a tick range\n @dev Snapshots must only be compared to other snapshots, taken over a period for which a position existed.\n I.e., snapshots cannot be compared if a position is not held for the entire period between when the first\n snapshot is taken and the second snapshot is taken.\n @param tickLower The lower tick of the range\n @param tickUpper The upper tick of the range\n @return tickCumulativeInside The snapshot of the tick accumulator for the range\n @return secondsPerLiquidityInsideX128 The snapshot of seconds per liquidity for the range\n @return secondsInside The snapshot of seconds per liquidity for the range"
},
"functionSelector": "a38807f2",
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "snapshotCumulativesInside",
"nameLocation": "2357:25:31",
"parameters": {
"id": 44026,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 44023,
"mutability": "mutable",
"name": "tickLower",
"nameLocation": "2389:9:31",
"nodeType": "VariableDeclaration",
"scope": 44034,
"src": "2383:15:31",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_int24",
"typeString": "int24"
},
"typeName": {
"id": 44022,
"name": "int24",
"nodeType": "ElementaryTypeName",
"src": "2383:5:31",
"typeDescriptions": {
"typeIdentifier": "t_int24",
"typeString": "int24"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 44025,
"mutability": "mutable",
"name": "tickUpper",
"nameLocation": "2406:9:31",
"nodeType": "VariableDeclaration",
"scope": 44034,
"src": "2400:15:31",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_int24",
"typeString": "int24"
},
"typeName": {
"id": 44024,
"name": "int24",
"nodeType": "ElementaryTypeName",
"src": "2400:5:31",
"typeDescriptions": {
"typeIdentifier": "t_int24",
"typeString": "int24"
}
},
"visibility": "internal"
}
],
"src": "2382:34:31"
},
"returnParameters": {
"id": 44033,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 44028,
"mutability": "mutable",
"name": "tickCumulativeInside",
"nameLocation": "2483:20:31",
"nodeType": "VariableDeclaration",
"scope": 44034,
"src": "2477:26:31",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_int56",
"typeString": "int56"
},
"typeName": {
"id": 44027,
"name": "int56",
"nodeType": "ElementaryTypeName",
"src": "2477:5:31",
"typeDescriptions": {
"typeIdentifier": "t_int56",
"typeString": "int56"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 44030,
"mutability": "mutable",
"name": "secondsPerLiquidityInsideX128",
"nameLocation": "2525:29:31",
"nodeType": "VariableDeclaration",
"scope": 44034,
"src": "2517:37:31",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint160",
"typeString": "uint160"
},
"typeName": {
"id": 44029,
"name": "uint160",
"nodeType": "ElementaryTypeName",
"src": "2517:7:31",
"typeDescriptions": {
"typeIdentifier": "t_uint160",
"typeString": "uint160"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 44032,
"mutability": "mutable",
"name": "secondsInside",
"nameLocation": "2575:13:31",
"nodeType": "VariableDeclaration",
"scope": 44034,
"src": "2568:20:31",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint32",
"typeString": "uint32"
},
"typeName": {
"id": 44031,
"name": "uint32",
"nodeType": "ElementaryTypeName",
"src": "2568:6:31",
"typeDescriptions": {
"typeIdentifier": "t_uint32",
"typeString": "uint32"
}
},
"visibility": "internal"
}
],
"src": "2463:135:31"
},
"scope": 44035,
"stateMutability": "view",
"virtual": false,
"visibility": "external"
}
],
"abstract": false,
"baseContracts": [],
"canonicalName": "IUniswapV3PoolDerivedState",
"contractDependencies": [],
"contractKind": "interface",
"documentation": {
"id": 44007,
"nodeType": "StructuredDocumentation",
"src": "71:222:31",
"text": "@title Pool state that is not stored\n @notice Contains view functions to provide information about the pool that is computed rather than stored on the\n blockchain. The functions here may have variable gas costs."
},
"fullyImplemented": false,
"linearizedBaseContracts": [
44035
],
"name": "IUniswapV3PoolDerivedState",
"nameLocation": "303:26:31",
"scope": 44036,
"usedErrors": [],
"usedEvents": []
}
],
"license": "GPL-2.0-or-later"
},
"id": 31
}

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,727 @@
{
"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
}

View File

@@ -0,0 +1,529 @@
{
"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
}

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,313 @@
{
"abi": [
{
"inputs": [
{
"internalType": "int256",
"name": "amount0Delta",
"type": "int256"
},
{
"internalType": "int256",
"name": "amount1Delta",
"type": "int256"
},
{
"internalType": "bytes",
"name": "data",
"type": "bytes"
}
],
"name": "uniswapV3SwapCallback",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
],
"bytecode": {
"object": "0x",
"sourceMap": "",
"linkReferences": {}
},
"deployedBytecode": {
"object": "0x",
"sourceMap": "",
"linkReferences": {}
},
"methodIdentifiers": {
"uniswapV3SwapCallback(int256,int256,bytes)": "fa461e33"
},
"rawMetadata": "{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"amount0Delta\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"amount1Delta\",\"type\":\"int256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"uniswapV3SwapCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"uniswapV3SwapCallback(int256,int256,bytes)\":{\"details\":\"In the implementation you must pay the pool tokens owed for the swap. The caller of this method must be checked to be a UniswapV3Pool deployed by the canonical UniswapV3Factory. amount0Delta and amount1Delta can both be 0 if no tokens were swapped.\",\"params\":{\"amount0Delta\":\"The amount of token0 that was sent (negative) or must be received (positive) by the pool by the end of the swap. If positive, the callback must send that amount of token0 to the pool.\",\"amount1Delta\":\"The amount of token1 that was sent (negative) or must be received (positive) by the pool by the end of the swap. If positive, the callback must send that amount of token1 to the pool.\",\"data\":\"Any data passed through by the caller via the IUniswapV3PoolActions#swap call\"}}},\"title\":\"Callback for IUniswapV3PoolActions#swap\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"uniswapV3SwapCallback(int256,int256,bytes)\":{\"notice\":\"Called to `msg.sender` after executing a swap via IUniswapV3Pool#swap.\"}},\"notice\":\"Any contract that calls IUniswapV3PoolActions#swap must implement this interface\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib_uniswap/v3-core/contracts/interfaces/callback/IUniswapV3SwapCallback.sol\":\"IUniswapV3SwapCallback\"},\"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/callback/IUniswapV3SwapCallback.sol\":{\"keccak256\":\"0x3f485fb1a44e8fbeadefb5da07d66edab3cfe809f0ac4074b1e54e3eb3c4cf69\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://095ce0626b41318c772b3ebf19d548282607f6a8f3d6c41c13edfbd5370c8652\",\"dweb:/ipfs/QmVDZfJJ89UUCE1hMyzqpkZAtQ8jUsBgZNE5AMRG7RzRFS\"]}},\"version\":1}",
"metadata": {
"compiler": {
"version": "0.8.22+commit.4fc1097e"
},
"language": "Solidity",
"output": {
"abi": [
{
"inputs": [
{
"internalType": "int256",
"name": "amount0Delta",
"type": "int256"
},
{
"internalType": "int256",
"name": "amount1Delta",
"type": "int256"
},
{
"internalType": "bytes",
"name": "data",
"type": "bytes"
}
],
"stateMutability": "nonpayable",
"type": "function",
"name": "uniswapV3SwapCallback"
}
],
"devdoc": {
"kind": "dev",
"methods": {
"uniswapV3SwapCallback(int256,int256,bytes)": {
"details": "In the implementation you must pay the pool tokens owed for the swap. The caller of this method must be checked to be a UniswapV3Pool deployed by the canonical UniswapV3Factory. amount0Delta and amount1Delta can both be 0 if no tokens were swapped.",
"params": {
"amount0Delta": "The amount of token0 that was sent (negative) or must be received (positive) by the pool by the end of the swap. If positive, the callback must send that amount of token0 to the pool.",
"amount1Delta": "The amount of token1 that was sent (negative) or must be received (positive) by the pool by the end of the swap. If positive, the callback must send that amount of token1 to the pool.",
"data": "Any data passed through by the caller via the IUniswapV3PoolActions#swap call"
}
}
},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {
"uniswapV3SwapCallback(int256,int256,bytes)": {
"notice": "Called to `msg.sender` after executing a swap via IUniswapV3Pool#swap."
}
},
"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/callback/IUniswapV3SwapCallback.sol": "IUniswapV3SwapCallback"
},
"libraries": {}
},
"sources": {
"lib_uniswap/v3-core/contracts/interfaces/callback/IUniswapV3SwapCallback.sol": {
"keccak256": "0x3f485fb1a44e8fbeadefb5da07d66edab3cfe809f0ac4074b1e54e3eb3c4cf69",
"urls": [
"bzz-raw://095ce0626b41318c772b3ebf19d548282607f6a8f3d6c41c13edfbd5370c8652",
"dweb:/ipfs/QmVDZfJJ89UUCE1hMyzqpkZAtQ8jUsBgZNE5AMRG7RzRFS"
],
"license": "GPL-2.0-or-later"
}
},
"version": 1
},
"ast": {
"absolutePath": "lib_uniswap/v3-core/contracts/interfaces/callback/IUniswapV3SwapCallback.sol",
"id": 43909,
"exportedSymbols": {
"IUniswapV3SwapCallback": [
43908
]
},
"nodeType": "SourceUnit",
"src": "45:1248:29",
"nodes": [
{
"id": 43896,
"nodeType": "PragmaDirective",
"src": "45:24:29",
"nodes": [],
"literals": [
"solidity",
">=",
"0.5",
".0"
]
},
{
"id": 43908,
"nodeType": "ContractDefinition",
"src": "215:1077:29",
"nodes": [
{
"id": 43907,
"nodeType": "FunctionDefinition",
"src": "1157:133:29",
"nodes": [],
"documentation": {
"id": 43898,
"nodeType": "StructuredDocumentation",
"src": "254:898:29",
"text": "@notice Called to `msg.sender` after executing a swap via IUniswapV3Pool#swap.\n @dev In the implementation you must pay the pool tokens owed for the swap.\n The caller of this method must be checked to be a UniswapV3Pool deployed by the canonical UniswapV3Factory.\n amount0Delta and amount1Delta can both be 0 if no tokens were swapped.\n @param amount0Delta The amount of token0 that was sent (negative) or must be received (positive) by the pool by\n the end of the swap. If positive, the callback must send that amount of token0 to the pool.\n @param amount1Delta The amount of token1 that was sent (negative) or must be received (positive) by the pool by\n the end of the swap. If positive, the callback must send that amount of token1 to the pool.\n @param data Any data passed through by the caller via the IUniswapV3PoolActions#swap call"
},
"functionSelector": "fa461e33",
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "uniswapV3SwapCallback",
"nameLocation": "1166:21:29",
"parameters": {
"id": 43905,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 43900,
"mutability": "mutable",
"name": "amount0Delta",
"nameLocation": "1204:12:29",
"nodeType": "VariableDeclaration",
"scope": 43907,
"src": "1197:19:29",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_int256",
"typeString": "int256"
},
"typeName": {
"id": 43899,
"name": "int256",
"nodeType": "ElementaryTypeName",
"src": "1197:6:29",
"typeDescriptions": {
"typeIdentifier": "t_int256",
"typeString": "int256"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 43902,
"mutability": "mutable",
"name": "amount1Delta",
"nameLocation": "1233:12:29",
"nodeType": "VariableDeclaration",
"scope": 43907,
"src": "1226:19:29",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_int256",
"typeString": "int256"
},
"typeName": {
"id": 43901,
"name": "int256",
"nodeType": "ElementaryTypeName",
"src": "1226:6:29",
"typeDescriptions": {
"typeIdentifier": "t_int256",
"typeString": "int256"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 43904,
"mutability": "mutable",
"name": "data",
"nameLocation": "1270:4:29",
"nodeType": "VariableDeclaration",
"scope": 43907,
"src": "1255:19:29",
"stateVariable": false,
"storageLocation": "calldata",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 43903,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "1255:5:29",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"visibility": "internal"
}
],
"src": "1187:93:29"
},
"returnParameters": {
"id": 43906,
"nodeType": "ParameterList",
"parameters": [],
"src": "1289:0:29"
},
"scope": 43908,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "external"
}
],
"abstract": false,
"baseContracts": [],
"canonicalName": "IUniswapV3SwapCallback",
"contractDependencies": [],
"contractKind": "interface",
"documentation": {
"id": 43897,
"nodeType": "StructuredDocumentation",
"src": "71:144:29",
"text": "@title Callback for IUniswapV3PoolActions#swap\n @notice Any contract that calls IUniswapV3PoolActions#swap must implement this interface"
},
"fullyImplemented": false,
"linearizedBaseContracts": [
43908
],
"name": "IUniswapV3SwapCallback",
"nameLocation": "225:22:29",
"scope": 43909,
"usedErrors": [],
"usedEvents": []
}
],
"license": "GPL-2.0-or-later"
},
"id": 29
}

View File

@@ -0,0 +1,226 @@
{
"abi": [
{
"inputs": [],
"name": "parameters",
"outputs": [
{
"internalType": "address",
"name": "owner",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
}
],
"bytecode": {
"object": "0x",
"sourceMap": "",
"linkReferences": {}
},
"deployedBytecode": {
"object": "0x",
"sourceMap": "",
"linkReferences": {}
},
"methodIdentifiers": {
"parameters()": "89035730"
},
"rawMetadata": "{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"parameters\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/interface/IVaultDeployer.sol\":\"IVaultDeployer\"},\"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\":{\"src/interface/IVaultDeployer.sol\":{\"keccak256\":\"0x2985c864a3b5cf99244cc443871b356b47bb6bfb758bbf89b9cceb2e15c68886\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://2d3df393bad985f53c8a31e9907badd10766891d5951a3ab95acea2cc6d2092a\",\"dweb:/ipfs/QmbE7z2SwfCnCF2XxKM1FEEPaddrS6WNbCJ5yqSP2Zn8d7\"]}},\"version\":1}",
"metadata": {
"compiler": {
"version": "0.8.22+commit.4fc1097e"
},
"language": "Solidity",
"output": {
"abi": [
{
"inputs": [],
"stateMutability": "view",
"type": "function",
"name": "parameters",
"outputs": [
{
"internalType": "address",
"name": "owner",
"type": "address"
}
]
}
],
"devdoc": {
"kind": "dev",
"methods": {},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"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": {
"src/interface/IVaultDeployer.sol": "IVaultDeployer"
},
"libraries": {}
},
"sources": {
"src/interface/IVaultDeployer.sol": {
"keccak256": "0x2985c864a3b5cf99244cc443871b356b47bb6bfb758bbf89b9cceb2e15c68886",
"urls": [
"bzz-raw://2d3df393bad985f53c8a31e9907badd10766891d5951a3ab95acea2cc6d2092a",
"dweb:/ipfs/QmbE7z2SwfCnCF2XxKM1FEEPaddrS6WNbCJ5yqSP2Zn8d7"
],
"license": "UNLICENSED"
}
},
"version": 1
},
"ast": {
"absolutePath": "src/interface/IVaultDeployer.sol",
"id": 49446,
"exportedSymbols": {
"IVaultDeployer": [
49445
]
},
"nodeType": "SourceUnit",
"src": "65:140:62",
"nodes": [
{
"id": 49438,
"nodeType": "PragmaDirective",
"src": "65:24:62",
"nodes": [],
"literals": [
"solidity",
">=",
"0.8",
".0"
]
},
{
"id": 49439,
"nodeType": "PragmaDirective",
"src": "90:19:62",
"nodes": [],
"literals": [
"abicoder",
"v2"
]
},
{
"id": 49445,
"nodeType": "ContractDefinition",
"src": "111:93:62",
"nodes": [
{
"id": 49444,
"nodeType": "FunctionDefinition",
"src": "142:60:62",
"nodes": [],
"functionSelector": "89035730",
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "parameters",
"nameLocation": "151:10:62",
"parameters": {
"id": 49440,
"nodeType": "ParameterList",
"parameters": [],
"src": "161:2:62"
},
"returnParameters": {
"id": 49443,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 49442,
"mutability": "mutable",
"name": "owner",
"nameLocation": "195:5:62",
"nodeType": "VariableDeclaration",
"scope": 49444,
"src": "187:13:62",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 49441,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "187:7:62",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
}
],
"src": "186:15:62"
},
"scope": 49445,
"stateMutability": "view",
"virtual": false,
"visibility": "external"
}
],
"abstract": false,
"baseContracts": [],
"canonicalName": "IVaultDeployer",
"contractDependencies": [],
"contractKind": "interface",
"fullyImplemented": false,
"linearizedBaseContracts": [
49445
],
"name": "IVaultDeployer",
"nameLocation": "121:14:62",
"scope": 49446,
"usedErrors": [],
"usedEvents": []
}
],
"license": "UNLICENSED"
},
"id": 62
}

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,905 @@
{
"abi": [
{
"inputs": [
{
"internalType": "int24",
"name": "tick",
"type": "int24"
},
{
"internalType": "int24",
"name": "window",
"type": "int24"
}
],
"name": "roundTick",
"outputs": [
{
"internalType": "int24",
"name": "",
"type": "int24"
}
],
"stateMutability": "pure",
"type": "function"
}
],
"bytecode": {
"object": "0x6103a761003a600b82828239805160001a60731461002d57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106100355760003560e01c806397fd6da71461003a575b600080fd5b61004d61004836600461012a565b610063565b60405161005a9190610172565b60405180910390f35b60008061007083856101af565b905060008460020b12156100c95761008960028461020a565b60020b6100958261028a565b60020b13156100b7576100a881846102ce565b6100b2908561031f565b6100c1565b6100c1818561031f565b915050610100565b6100d460028461020a565b60020b8160020b136100ea576100b2818561031f565b6100f4818461031f565b6100c190856102ce565b505b92915050565b6101108160020b90565b811461011b57600080fd5b50565b8035806100fe81610106565b6000806040838503121561014057610140600080fd5b61014a848461011e565b9150610159846020850161011e565b90509250929050565b61016c8160020b90565b82525050565b602081016101008284610162565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006101bb8260020b90565b6101c58460020b90565b806101d2576101d2610180565b90079392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006102168260020b90565b6102208460020b90565b8061022d5761022d610180565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81147fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80000083141615610281576102816101db565b90059392505050565b60006102968260020b90565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80000081036102c5576102c56101db565b60000392915050565b60006102da8260020b90565b6102e48460020b90565b01905080627fffff81137fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff800000821217156100fe576100fe6101db565b600061032b8260020b90565b6103358460020b90565b90039050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8000008112627fffff821317156100fe576100fe6101db56fea2646970667358221220be582b7790b0dd5891fafeb05a05cb82784990891eb12728aa69c5903ca0d6e164736f6c63430008160033",
"sourceMap": "111:365:57:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;111:365:57;;;;;;;;;;;;;;;;;",
"linkReferences": {}
},
"deployedBytecode": {
"object": "0x73000000000000000000000000000000000000000030146080604052600436106100355760003560e01c806397fd6da71461003a575b600080fd5b61004d61004836600461012a565b610063565b60405161005a9190610172565b60405180910390f35b60008061007083856101af565b905060008460020b12156100c95761008960028461020a565b60020b6100958261028a565b60020b13156100b7576100a881846102ce565b6100b2908561031f565b6100c1565b6100c1818561031f565b915050610100565b6100d460028461020a565b60020b8160020b136100ea576100b2818561031f565b6100f4818461031f565b6100c190856102ce565b505b92915050565b6101108160020b90565b811461011b57600080fd5b50565b8035806100fe81610106565b6000806040838503121561014057610140600080fd5b61014a848461011e565b9150610159846020850161011e565b90509250929050565b61016c8160020b90565b82525050565b602081016101008284610162565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006101bb8260020b90565b6101c58460020b90565b806101d2576101d2610180565b90079392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006102168260020b90565b6102208460020b90565b8061022d5761022d610180565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81147fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80000083141615610281576102816101db565b90059392505050565b60006102968260020b90565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80000081036102c5576102c56101db565b60000392915050565b60006102da8260020b90565b6102e48460020b90565b01905080627fffff81137fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff800000821217156100fe576100fe6101db565b600061032b8260020b90565b6103358460020b90565b90039050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8000008112627fffff821317156100fe576100fe6101db56fea2646970667358221220be582b7790b0dd5891fafeb05a05cb82784990891eb12728aa69c5903ca0d6e164736f6c63430008160033",
"sourceMap": "111:365:57:-:0;;;;;;;;;;;;;;;;;;;;;;;;130:344;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;196:5;;268:13;275:6;268:4;:13;:::i;:::-;256:25;;302:1;295:4;:8;;;291:176;;;333:10;342:1;333:6;:10;:::i;:::-;324:19;;:5;326:3;324:5;:::i;:::-;:19;;;;:56;;367:12;376:3;367:6;:12;:::i;:::-;359:21;;:4;:21;:::i;:::-;324:56;;;346:10;353:3;346:4;:10;:::i;:::-;317:63;;;;;291:176;420:10;429:1;420:6;:10;:::i;:::-;414:16;;:3;:16;;;:53;;457:10;464:3;457:4;:10;:::i;414:53::-;441:12;450:3;441:6;:12;:::i;:::-;433:21;;:4;:21;:::i;291:176::-;203:271;130:344;;;;;:::o;225:118:69:-;298:20;312:5;205:1;194:20;;128:92;298:20;291:5;288:31;278:59;;333:1;330;323:12;278:59;225:118;:::o;348:168::-;425:20;;;479:31;425:20;479:31;:::i;521:365::-;585:6;593;646:2;634:9;625:7;621:23;617:32;614:147;;;672:79;111:365:57;;;672:79:69;780:36;808:7;797:9;780:36;:::i;:::-;770:46;;835:45;872:7;867:2;856:9;852:18;835:45;:::i;:::-;825:55;;521:365;;;;;:::o;891:91::-;955:20;969:5;205:1;194:20;;128:92;955:20;950:3;943:33;;;891:91::o;987:191::-;1125:2;1110:18;;1137:35;1114:9;1154:6;1137:35;:::i;1183:184::-;1235:77;1232:1;1225:88;1332:4;1329:1;1322:15;1356:4;1353:1;1346:15;1372:189;1402:1;1429:16;1443:1;205;194:20;;128:92;1429:16;1465;1479:1;205;194:20;;128:92;1465:16;1500:3;1490:37;;1507:18;;:::i;:::-;1541:14;;;1372:189;-1:-1:-1;;;1372:189:69:o;1566:184::-;1618:77;1615:1;1608:88;1715:4;1712:1;1705:15;1739:4;1736:1;1729:15;1755:389;1793:1;1820:16;1834:1;205;194:20;;128:92;1820:16;1856;1870:1;205;194:20;;128:92;1856:16;1891:3;1881:37;;1898:18;;:::i;:::-;2019:66;2014:3;2011:75;1942:66;1937:3;1934:75;1930:157;1927:183;;;2090:18;;:::i;:::-;2124:14;;;1755:389;-1:-1:-1;;;1755:389:69:o;2149:238::-;2183:3;2216:20;2230:5;205:1;194:20;;128:92;2216:20;2260:66;2251:7;2248:79;2245:105;;2330:18;;:::i;:::-;2370:1;2366:15;;2149:238;-1:-1:-1;;2149:238:69:o;2392:297::-;2430:3;2459:16;2473:1;205;194:20;;128:92;2459:16;2506;2520:1;205;194:20;;128:92;2506:16;2497:26;;-1:-1:-1;2497:26:69;2570:8;2559:20;;2592:66;2581:78;;2556:104;2553:130;;;2663:18;;:::i;2694:303::-;2732:4;2762:16;2776:1;205;194:20;;128:92;2762:16;2810;2824:1;205;194:20;;128:92;2810:16;2801:26;;;-1:-1:-1;2801:26:69;2877:66;2865:79;;2958:8;2946:21;;2862:106;2859:132;;;2971:18;;:::i",
"linkReferences": {}
},
"methodIdentifiers": {
"roundTick(int24,int24)": "97fd6da7"
},
"rawMetadata": "{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"int24\",\"name\":\"tick\",\"type\":\"int24\"},{\"internalType\":\"int24\",\"name\":\"window\",\"type\":\"int24\"}],\"name\":\"roundTick\",\"outputs\":[{\"internalType\":\"int24\",\"name\":\"\",\"type\":\"int24\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/Util.sol\":\"Util\"},\"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\":{\"src/Util.sol\":{\"keccak256\":\"0xbf0a5fb064064aa53474e43777176662a9f09fdb61b823b87705bd0c6d1909ad\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://6dbdd417018821ed9cc564f5d64e92b5efaf067cdc559e7f1dd7bff2afa07a80\",\"dweb:/ipfs/QmPQTGJbnrV4PSCCXNbBQKZ3enF5r7Wv115ivoHFCjVCJr\"]}},\"version\":1}",
"metadata": {
"compiler": {
"version": "0.8.22+commit.4fc1097e"
},
"language": "Solidity",
"output": {
"abi": [
{
"inputs": [
{
"internalType": "int24",
"name": "tick",
"type": "int24"
},
{
"internalType": "int24",
"name": "window",
"type": "int24"
}
],
"stateMutability": "pure",
"type": "function",
"name": "roundTick",
"outputs": [
{
"internalType": "int24",
"name": "",
"type": "int24"
}
]
}
],
"devdoc": {
"kind": "dev",
"methods": {},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"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": {
"src/Util.sol": "Util"
},
"libraries": {}
},
"sources": {
"src/Util.sol": {
"keccak256": "0xbf0a5fb064064aa53474e43777176662a9f09fdb61b823b87705bd0c6d1909ad",
"urls": [
"bzz-raw://6dbdd417018821ed9cc564f5d64e92b5efaf067cdc559e7f1dd7bff2afa07a80",
"dweb:/ipfs/QmPQTGJbnrV4PSCCXNbBQKZ3enF5r7Wv115ivoHFCjVCJr"
],
"license": "UNLICENSED"
}
},
"version": 1
},
"ast": {
"absolutePath": "src/Util.sol",
"id": 48905,
"exportedSymbols": {
"Util": [
48904
]
},
"nodeType": "SourceUnit",
"src": "65:412:57",
"nodes": [
{
"id": 48849,
"nodeType": "PragmaDirective",
"src": "65:24:57",
"nodes": [],
"literals": [
"solidity",
">=",
"0.8",
".0"
]
},
{
"id": 48850,
"nodeType": "PragmaDirective",
"src": "90:19:57",
"nodes": [],
"literals": [
"abicoder",
"v2"
]
},
{
"id": 48904,
"nodeType": "ContractDefinition",
"src": "111:365:57",
"nodes": [
{
"id": 48903,
"nodeType": "FunctionDefinition",
"src": "130:344:57",
"nodes": [],
"body": {
"id": 48902,
"nodeType": "Block",
"src": "203:271:57",
"nodes": [],
"statements": [
{
"assignments": [
48860
],
"declarations": [
{
"constant": false,
"id": 48860,
"mutability": "mutable",
"name": "mod",
"nameLocation": "262:3:57",
"nodeType": "VariableDeclaration",
"scope": 48902,
"src": "256:9:57",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_int24",
"typeString": "int24"
},
"typeName": {
"id": 48859,
"name": "int24",
"nodeType": "ElementaryTypeName",
"src": "256:5:57",
"typeDescriptions": {
"typeIdentifier": "t_int24",
"typeString": "int24"
}
},
"visibility": "internal"
}
],
"id": 48864,
"initialValue": {
"commonType": {
"typeIdentifier": "t_int24",
"typeString": "int24"
},
"id": 48863,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"id": 48861,
"name": "tick",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 48852,
"src": "268:4:57",
"typeDescriptions": {
"typeIdentifier": "t_int24",
"typeString": "int24"
}
},
"nodeType": "BinaryOperation",
"operator": "%",
"rightExpression": {
"id": 48862,
"name": "window",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 48854,
"src": "275:6:57",
"typeDescriptions": {
"typeIdentifier": "t_int24",
"typeString": "int24"
}
},
"src": "268:13:57",
"typeDescriptions": {
"typeIdentifier": "t_int24",
"typeString": "int24"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "256:25:57"
},
{
"condition": {
"commonType": {
"typeIdentifier": "t_int24",
"typeString": "int24"
},
"id": 48867,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"id": 48865,
"name": "tick",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 48852,
"src": "295:4:57",
"typeDescriptions": {
"typeIdentifier": "t_int24",
"typeString": "int24"
}
},
"nodeType": "BinaryOperation",
"operator": "<",
"rightExpression": {
"hexValue": "30",
"id": 48866,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "302:1:57",
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
"src": "295:8:57",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"falseBody": {
"expression": {
"condition": {
"commonType": {
"typeIdentifier": "t_int24",
"typeString": "int24"
},
"id": 48889,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"id": 48885,
"name": "mod",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 48860,
"src": "414:3:57",
"typeDescriptions": {
"typeIdentifier": "t_int24",
"typeString": "int24"
}
},
"nodeType": "BinaryOperation",
"operator": ">",
"rightExpression": {
"commonType": {
"typeIdentifier": "t_int24",
"typeString": "int24"
},
"id": 48888,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"id": 48886,
"name": "window",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 48854,
"src": "420:6:57",
"typeDescriptions": {
"typeIdentifier": "t_int24",
"typeString": "int24"
}
},
"nodeType": "BinaryOperation",
"operator": "/",
"rightExpression": {
"hexValue": "32",
"id": 48887,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "429:1:57",
"typeDescriptions": {
"typeIdentifier": "t_rational_2_by_1",
"typeString": "int_const 2"
},
"value": "2"
},
"src": "420:10:57",
"typeDescriptions": {
"typeIdentifier": "t_int24",
"typeString": "int24"
}
},
"src": "414:16:57",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"falseExpression": {
"commonType": {
"typeIdentifier": "t_int24",
"typeString": "int24"
},
"id": 48898,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"id": 48896,
"name": "tick",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 48852,
"src": "457:4:57",
"typeDescriptions": {
"typeIdentifier": "t_int24",
"typeString": "int24"
}
},
"nodeType": "BinaryOperation",
"operator": "-",
"rightExpression": {
"id": 48897,
"name": "mod",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 48860,
"src": "464:3:57",
"typeDescriptions": {
"typeIdentifier": "t_int24",
"typeString": "int24"
}
},
"src": "457:10:57",
"typeDescriptions": {
"typeIdentifier": "t_int24",
"typeString": "int24"
}
},
"id": 48899,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "Conditional",
"src": "414:53:57",
"trueExpression": {
"commonType": {
"typeIdentifier": "t_int24",
"typeString": "int24"
},
"id": 48895,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"id": 48890,
"name": "tick",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 48852,
"src": "433:4:57",
"typeDescriptions": {
"typeIdentifier": "t_int24",
"typeString": "int24"
}
},
"nodeType": "BinaryOperation",
"operator": "+",
"rightExpression": {
"components": [
{
"commonType": {
"typeIdentifier": "t_int24",
"typeString": "int24"
},
"id": 48893,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"id": 48891,
"name": "window",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 48854,
"src": "441:6:57",
"typeDescriptions": {
"typeIdentifier": "t_int24",
"typeString": "int24"
}
},
"nodeType": "BinaryOperation",
"operator": "-",
"rightExpression": {
"id": 48892,
"name": "mod",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 48860,
"src": "450:3:57",
"typeDescriptions": {
"typeIdentifier": "t_int24",
"typeString": "int24"
}
},
"src": "441:12:57",
"typeDescriptions": {
"typeIdentifier": "t_int24",
"typeString": "int24"
}
}
],
"id": 48894,
"isConstant": false,
"isInlineArray": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "TupleExpression",
"src": "440:14:57",
"typeDescriptions": {
"typeIdentifier": "t_int24",
"typeString": "int24"
}
},
"src": "433:21:57",
"typeDescriptions": {
"typeIdentifier": "t_int24",
"typeString": "int24"
}
},
"typeDescriptions": {
"typeIdentifier": "t_int24",
"typeString": "int24"
}
},
"functionReturnParameters": 48858,
"id": 48900,
"nodeType": "Return",
"src": "407:60:57"
},
"id": 48901,
"nodeType": "IfStatement",
"src": "291:176:57",
"trueBody": {
"expression": {
"condition": {
"commonType": {
"typeIdentifier": "t_int24",
"typeString": "int24"
},
"id": 48873,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"id": 48869,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "UnaryOperation",
"operator": "-",
"prefix": true,
"src": "324:5:57",
"subExpression": {
"id": 48868,
"name": "mod",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 48860,
"src": "326:3:57",
"typeDescriptions": {
"typeIdentifier": "t_int24",
"typeString": "int24"
}
},
"typeDescriptions": {
"typeIdentifier": "t_int24",
"typeString": "int24"
}
},
"nodeType": "BinaryOperation",
"operator": "<=",
"rightExpression": {
"commonType": {
"typeIdentifier": "t_int24",
"typeString": "int24"
},
"id": 48872,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"id": 48870,
"name": "window",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 48854,
"src": "333:6:57",
"typeDescriptions": {
"typeIdentifier": "t_int24",
"typeString": "int24"
}
},
"nodeType": "BinaryOperation",
"operator": "/",
"rightExpression": {
"hexValue": "32",
"id": 48871,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "342:1:57",
"typeDescriptions": {
"typeIdentifier": "t_rational_2_by_1",
"typeString": "int_const 2"
},
"value": "2"
},
"src": "333:10:57",
"typeDescriptions": {
"typeIdentifier": "t_int24",
"typeString": "int24"
}
},
"src": "324:19:57",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"falseExpression": {
"commonType": {
"typeIdentifier": "t_int24",
"typeString": "int24"
},
"id": 48882,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"id": 48877,
"name": "tick",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 48852,
"src": "359:4:57",
"typeDescriptions": {
"typeIdentifier": "t_int24",
"typeString": "int24"
}
},
"nodeType": "BinaryOperation",
"operator": "-",
"rightExpression": {
"components": [
{
"commonType": {
"typeIdentifier": "t_int24",
"typeString": "int24"
},
"id": 48880,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"id": 48878,
"name": "window",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 48854,
"src": "367:6:57",
"typeDescriptions": {
"typeIdentifier": "t_int24",
"typeString": "int24"
}
},
"nodeType": "BinaryOperation",
"operator": "+",
"rightExpression": {
"id": 48879,
"name": "mod",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 48860,
"src": "376:3:57",
"typeDescriptions": {
"typeIdentifier": "t_int24",
"typeString": "int24"
}
},
"src": "367:12:57",
"typeDescriptions": {
"typeIdentifier": "t_int24",
"typeString": "int24"
}
}
],
"id": 48881,
"isConstant": false,
"isInlineArray": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "TupleExpression",
"src": "366:14:57",
"typeDescriptions": {
"typeIdentifier": "t_int24",
"typeString": "int24"
}
},
"src": "359:21:57",
"typeDescriptions": {
"typeIdentifier": "t_int24",
"typeString": "int24"
}
},
"id": 48883,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "Conditional",
"src": "324:56:57",
"trueExpression": {
"commonType": {
"typeIdentifier": "t_int24",
"typeString": "int24"
},
"id": 48876,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"id": 48874,
"name": "tick",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 48852,
"src": "346:4:57",
"typeDescriptions": {
"typeIdentifier": "t_int24",
"typeString": "int24"
}
},
"nodeType": "BinaryOperation",
"operator": "-",
"rightExpression": {
"id": 48875,
"name": "mod",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 48860,
"src": "353:3:57",
"typeDescriptions": {
"typeIdentifier": "t_int24",
"typeString": "int24"
}
},
"src": "346:10:57",
"typeDescriptions": {
"typeIdentifier": "t_int24",
"typeString": "int24"
}
},
"typeDescriptions": {
"typeIdentifier": "t_int24",
"typeString": "int24"
}
},
"functionReturnParameters": 48858,
"id": 48884,
"nodeType": "Return",
"src": "317:63:57"
}
}
]
},
"functionSelector": "97fd6da7",
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "roundTick",
"nameLocation": "139:9:57",
"parameters": {
"id": 48855,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 48852,
"mutability": "mutable",
"name": "tick",
"nameLocation": "155:4:57",
"nodeType": "VariableDeclaration",
"scope": 48903,
"src": "149:10:57",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_int24",
"typeString": "int24"
},
"typeName": {
"id": 48851,
"name": "int24",
"nodeType": "ElementaryTypeName",
"src": "149:5:57",
"typeDescriptions": {
"typeIdentifier": "t_int24",
"typeString": "int24"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 48854,
"mutability": "mutable",
"name": "window",
"nameLocation": "167:6:57",
"nodeType": "VariableDeclaration",
"scope": 48903,
"src": "161:12:57",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_int24",
"typeString": "int24"
},
"typeName": {
"id": 48853,
"name": "int24",
"nodeType": "ElementaryTypeName",
"src": "161:5:57",
"typeDescriptions": {
"typeIdentifier": "t_int24",
"typeString": "int24"
}
},
"visibility": "internal"
}
],
"src": "148:26:57"
},
"returnParameters": {
"id": 48858,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 48857,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 48903,
"src": "196:5:57",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_int24",
"typeString": "int24"
},
"typeName": {
"id": 48856,
"name": "int24",
"nodeType": "ElementaryTypeName",
"src": "196:5:57",
"typeDescriptions": {
"typeIdentifier": "t_int24",
"typeString": "int24"
}
},
"visibility": "internal"
}
],
"src": "195:7:57"
},
"scope": 48904,
"stateMutability": "pure",
"virtual": false,
"visibility": "public"
}
],
"abstract": false,
"baseContracts": [],
"canonicalName": "Util",
"contractDependencies": [],
"contractKind": "library",
"fullyImplemented": true,
"linearizedBaseContracts": [
48904
],
"name": "Util",
"nameLocation": "119:4:57",
"scope": 48905,
"usedErrors": [],
"usedEvents": []
}
],
"license": "UNLICENSED"
},
"id": 57
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long