diff --git a/Ownable.json b/Ownable.json new file mode 100644 index 0000000..88cb616 --- /dev/null +++ b/Ownable.json @@ -0,0 +1,1464 @@ +{ + "abi": [ + { + "type": "function", + "name": "owner", + "inputs": [], + "outputs": [{ "name": "", "type": "address", "internalType": "address" }], + "stateMutability": "view" + }, + { + "type": "function", + "name": "renounceOwnership", + "inputs": [], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "transferOwnership", + "inputs": [ + { "name": "newOwner", "type": "address", "internalType": "address" } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "event", + "name": "OwnershipTransferred", + "inputs": [ + { + "name": "previousOwner", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "newOwner", + "type": "address", + "indexed": true, + "internalType": "address" + } + ], + "anonymous": false + } + ], + "bytecode": { "object": "0x", "sourceMap": "", "linkReferences": {} }, + "deployedBytecode": { "object": "0x", "sourceMap": "", "linkReferences": {} }, + "methodIdentifiers": { + "owner()": "8da5cb5b", + "renounceOwnership()": "715018a6", + "transferOwnership(address)": "f2fde38b" + }, + "rawMetadata": "{\"compiler\":{\"version\":\"0.8.18+commit.87f61d96\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Contract module which provides a basic access control mechanism, where there is an account (an owner) that can be granted exclusive access to specific functions. By default, the owner account will be the one that deploys the contract. This can later be changed with {transferOwnership}. This module is used through inheritance. It will make available the modifier `onlyOwner`, which can be applied to your functions to restrict their use to the owner.\",\"kind\":\"dev\",\"methods\":{\"constructor\":{\"details\":\"Initializes the contract setting the deployer as the initial owner.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":\"Ownable\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xee2b6bc803215b66037612da0fe9f23ec3c99ff89db4ff05449a8df17c9befc5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://127be279bb6b2f6106127ea6b431cfc879f9018dd76b7575841821be9eef3488\",\"dweb:/ipfs/QmfXqvL6sKx256hrVuQcSnNtirZrpm4JUbDFXwGHKgrrXU\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x81d5fc973a522c8909d60be6a201869d46aa47b030b8813f60616404628c2b94\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9755b505799e622d964a843a8ed1fd60fedffca230178e5cb95ae9280df4dcd2\",\"dweb:/ipfs/QmRkhUYUUgRZ2QYJjmtQct2ubyYwS3bdUMhbuFYM12VfYn\"]}},\"version\":1}", + "metadata": { + "compiler": { "version": "0.8.18+commit.87f61d96" }, + "language": "Solidity", + "output": { + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "previousOwner", + "type": "address", + "indexed": true + }, + { + "internalType": "address", + "name": "newOwner", + "type": "address", + "indexed": true + } + ], + "type": "event", + "name": "OwnershipTransferred", + "anonymous": false + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "owner", + "outputs": [ + { "internalType": "address", "name": "", "type": "address" } + ] + }, + { + "inputs": [], + "stateMutability": "nonpayable", + "type": "function", + "name": "renounceOwnership" + }, + { + "inputs": [ + { "internalType": "address", "name": "newOwner", "type": "address" } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "transferOwnership" + } + ], + "devdoc": { + "kind": "dev", + "methods": { + "constructor": { + "details": "Initializes the contract setting the deployer as the initial owner." + }, + "owner()": { "details": "Returns the address of the current owner." }, + "renounceOwnership()": { + "details": "Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner." + }, + "transferOwnership(address)": { + "details": "Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner." + } + }, + "version": 1 + }, + "userdoc": { "kind": "user", "methods": {}, "version": 1 } + }, + "settings": { + "remappings": [ + "ds-test/=lib/forge-std/lib/ds-test/src/", + "erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/", + "forge-std/=lib/forge-std/src/", + "openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/", + "openzeppelin-contracts/=lib/openzeppelin-contracts/", + "openzeppelin/=lib/openzeppelin-contracts/contracts/" + ], + "optimizer": { "enabled": true, "runs": 200 }, + "metadata": { "bytecodeHash": "ipfs" }, + "compilationTarget": { + "lib/openzeppelin-contracts/contracts/access/Ownable.sol": "Ownable" + }, + "libraries": {} + }, + "sources": { + "lib/openzeppelin-contracts/contracts/access/Ownable.sol": { + "keccak256": "0xee2b6bc803215b66037612da0fe9f23ec3c99ff89db4ff05449a8df17c9befc5", + "urls": [ + "bzz-raw://127be279bb6b2f6106127ea6b431cfc879f9018dd76b7575841821be9eef3488", + "dweb:/ipfs/QmfXqvL6sKx256hrVuQcSnNtirZrpm4JUbDFXwGHKgrrXU" + ], + "license": "MIT" + }, + "lib/openzeppelin-contracts/contracts/utils/Context.sol": { + "keccak256": "0x81d5fc973a522c8909d60be6a201869d46aa47b030b8813f60616404628c2b94", + "urls": [ + "bzz-raw://9755b505799e622d964a843a8ed1fd60fedffca230178e5cb95ae9280df4dcd2", + "dweb:/ipfs/QmRkhUYUUgRZ2QYJjmtQct2ubyYwS3bdUMhbuFYM12VfYn" + ], + "license": "MIT" + } + }, + "version": 1 + }, + "ast": { + "absolutePath": "lib/openzeppelin-contracts/contracts/access/Ownable.sol", + "id": 31848, + "exportedSymbols": { "Context": [36149], "Ownable": [31847] }, + "nodeType": "SourceUnit", + "src": "105:2601:33", + "nodes": [ + { + "id": 31736, + "nodeType": "PragmaDirective", + "src": "105:23:33", + "nodes": [], + "literals": ["solidity", "^", "0.8", ".0"] + }, + { + "id": 31737, + "nodeType": "ImportDirective", + "src": "132:30:33", + "nodes": [], + "absolutePath": "lib/openzeppelin-contracts/contracts/utils/Context.sol", + "file": "../utils/Context.sol", + "nameLocation": "-1:-1:-1", + "scope": 31848, + "sourceUnit": 36150, + "symbolAliases": [], + "unitAlias": "" + }, + { + "id": 31847, + "nodeType": "ContractDefinition", + "src": "673:2031:33", + "nodes": [ + { + "id": 31742, + "nodeType": "VariableDeclaration", + "src": "717:22:33", + "nodes": [], + "constant": false, + "mutability": "mutable", + "name": "_owner", + "nameLocation": "733:6:33", + "scope": 31847, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 31741, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "717:7:33", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "private" + }, + { + "id": 31748, + "nodeType": "EventDefinition", + "src": "748:84:33", + "nodes": [], + "anonymous": false, + "eventSelector": "8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", + "name": "OwnershipTransferred", + "nameLocation": "754:20:33", + "parameters": { + "id": 31747, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 31744, + "indexed": true, + "mutability": "mutable", + "name": "previousOwner", + "nameLocation": "791:13:33", + "nodeType": "VariableDeclaration", + "scope": 31748, + "src": "775:29:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 31743, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "775:7:33", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 31746, + "indexed": true, + "mutability": "mutable", + "name": "newOwner", + "nameLocation": "822:8:33", + "nodeType": "VariableDeclaration", + "scope": 31748, + "src": "806:24:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 31745, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "806:7:33", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "774:57:33" + } + }, + { + "id": 31758, + "nodeType": "FunctionDefinition", + "src": "939:65:33", + "nodes": [], + "body": { + "id": 31757, + "nodeType": "Block", + "src": "953:51:33", + "nodes": [], + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 31753, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 36139, + "src": "983:10:33", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 31754, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "983:12:33", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 31752, + "name": "_transferOwnership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 31846, + "src": "964:18:33", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 31755, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "964:32:33", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 31756, + "nodeType": "ExpressionStatement", + "src": "964:32:33" + } + ] + }, + "documentation": { + "id": 31749, + "nodeType": "StructuredDocumentation", + "src": "840:93:33", + "text": " @dev Initializes the contract setting the deployer as the initial owner." + }, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nameLocation": "-1:-1:-1", + "parameters": { + "id": 31750, + "nodeType": "ParameterList", + "parameters": [], + "src": "950:2:33" + }, + "returnParameters": { + "id": 31751, + "nodeType": "ParameterList", + "parameters": [], + "src": "953:0:33" + }, + "scope": 31847, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "id": 31766, + "nodeType": "ModifierDefinition", + "src": "1097:65:33", + "nodes": [], + "body": { + "id": 31765, + "nodeType": "Block", + "src": "1118:44:33", + "nodes": [], + "statements": [ + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 31761, + "name": "_checkOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 31789, + "src": "1129:11:33", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$__$", + "typeString": "function () view" + } + }, + "id": 31762, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1129:13:33", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 31763, + "nodeType": "ExpressionStatement", + "src": "1129:13:33" + }, + { + "id": 31764, + "nodeType": "PlaceholderStatement", + "src": "1153:1:33" + } + ] + }, + "documentation": { + "id": 31759, + "nodeType": "StructuredDocumentation", + "src": "1012:79:33", + "text": " @dev Throws if called by any account other than the owner." + }, + "name": "onlyOwner", + "nameLocation": "1106:9:33", + "parameters": { + "id": 31760, + "nodeType": "ParameterList", + "parameters": [], + "src": "1115:2:33" + }, + "virtual": false, + "visibility": "internal" + }, + { + "id": 31775, + "nodeType": "FunctionDefinition", + "src": "1243:87:33", + "nodes": [], + "body": { + "id": 31774, + "nodeType": "Block", + "src": "1298:32:33", + "nodes": [], + "statements": [ + { + "expression": { + "id": 31772, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 31742, + "src": "1316:6:33", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 31771, + "id": 31773, + "nodeType": "Return", + "src": "1309:13:33" + } + ] + }, + "documentation": { + "id": 31767, + "nodeType": "StructuredDocumentation", + "src": "1170:67:33", + "text": " @dev Returns the address of the current owner." + }, + "functionSelector": "8da5cb5b", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "owner", + "nameLocation": "1252:5:33", + "parameters": { + "id": 31768, + "nodeType": "ParameterList", + "parameters": [], + "src": "1257:2:33" + }, + "returnParameters": { + "id": 31771, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 31770, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 31775, + "src": "1289:7:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 31769, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1289:7:33", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1288:9:33" + }, + "scope": 31847, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "id": 31789, + "nodeType": "FunctionDefinition", + "src": "1408:132:33", + "nodes": [], + "body": { + "id": 31788, + "nodeType": "Block", + "src": "1453:87:33", + "nodes": [], + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 31784, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 31780, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 31775, + "src": "1472:5:33", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 31781, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1472:7:33", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 31782, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 36139, + "src": "1483:10:33", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 31783, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1483:12:33", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1472:23:33", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572", + "id": 31785, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1497:34:33", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe", + "typeString": "literal_string \"Ownable: caller is not the owner\"" + }, + "value": "Ownable: caller is not the owner" + } + ], + "expression": { + "argumentTypes": [ + { "typeIdentifier": "t_bool", "typeString": "bool" }, + { + "typeIdentifier": "t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe", + "typeString": "literal_string \"Ownable: caller is not the owner\"" + } + ], + "id": 31779, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [-18, -18], + "referencedDeclaration": -18, + "src": "1464:7:33", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 31786, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1464:68:33", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 31787, + "nodeType": "ExpressionStatement", + "src": "1464:68:33" + } + ] + }, + "documentation": { + "id": 31776, + "nodeType": "StructuredDocumentation", + "src": "1338:64:33", + "text": " @dev Throws if the sender is not the owner." + }, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_checkOwner", + "nameLocation": "1417:11:33", + "parameters": { + "id": 31777, + "nodeType": "ParameterList", + "parameters": [], + "src": "1428:2:33" + }, + "returnParameters": { + "id": 31778, + "nodeType": "ParameterList", + "parameters": [], + "src": "1453:0:33" + }, + "scope": 31847, + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "id": 31803, + "nodeType": "FunctionDefinition", + "src": "1891:103:33", + "nodes": [], + "body": { + "id": 31802, + "nodeType": "Block", + "src": "1945:49:33", + "nodes": [], + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 31798, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1983:1:33", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 31797, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1975:7:33", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 31796, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1975:7:33", + "typeDescriptions": {} + } + }, + "id": 31799, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1975:10:33", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 31795, + "name": "_transferOwnership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 31846, + "src": "1956:18:33", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 31800, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1956:30:33", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 31801, + "nodeType": "ExpressionStatement", + "src": "1956:30:33" + } + ] + }, + "documentation": { + "id": 31790, + "nodeType": "StructuredDocumentation", + "src": "1548:337:33", + "text": " @dev Leaves the contract without owner. It will not be possible to call\n `onlyOwner` functions anymore. Can only be called by the current owner.\n NOTE: Renouncing ownership will leave the contract without an owner,\n thereby removing any functionality that is only available to the owner." + }, + "functionSelector": "715018a6", + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 31793, + "kind": "modifierInvocation", + "modifierName": { + "id": 31792, + "name": "onlyOwner", + "nameLocations": ["1935:9:33"], + "nodeType": "IdentifierPath", + "referencedDeclaration": 31766, + "src": "1935:9:33" + }, + "nodeType": "ModifierInvocation", + "src": "1935:9:33" + } + ], + "name": "renounceOwnership", + "nameLocation": "1900:17:33", + "parameters": { + "id": 31791, + "nodeType": "ParameterList", + "parameters": [], + "src": "1917:2:33" + }, + "returnParameters": { + "id": 31794, + "nodeType": "ParameterList", + "parameters": [], + "src": "1945:0:33" + }, + "scope": 31847, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "id": 31826, + "nodeType": "FunctionDefinition", + "src": "2149:201:33", + "nodes": [], + "body": { + "id": 31825, + "nodeType": "Block", + "src": "2219:131:33", + "nodes": [], + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 31817, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 31812, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 31806, + "src": "2238:8:33", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 31815, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2258:1:33", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 31814, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2250:7:33", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 31813, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2250:7:33", + "typeDescriptions": {} + } + }, + "id": 31816, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2250:10:33", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "2238:22:33", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373", + "id": 31818, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2262:40:33", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe", + "typeString": "literal_string \"Ownable: new owner is the zero address\"" + }, + "value": "Ownable: new owner is the zero address" + } + ], + "expression": { + "argumentTypes": [ + { "typeIdentifier": "t_bool", "typeString": "bool" }, + { + "typeIdentifier": "t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe", + "typeString": "literal_string \"Ownable: new owner is the zero address\"" + } + ], + "id": 31811, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [-18, -18], + "referencedDeclaration": -18, + "src": "2230:7:33", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 31819, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2230:73:33", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 31820, + "nodeType": "ExpressionStatement", + "src": "2230:73:33" + }, + { + "expression": { + "arguments": [ + { + "id": 31822, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 31806, + "src": "2333:8:33", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 31821, + "name": "_transferOwnership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 31846, + "src": "2314:18:33", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 31823, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2314:28:33", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 31824, + "nodeType": "ExpressionStatement", + "src": "2314:28:33" + } + ] + }, + "documentation": { + "id": 31804, + "nodeType": "StructuredDocumentation", + "src": "2002:141:33", + "text": " @dev Transfers ownership of the contract to a new account (`newOwner`).\n Can only be called by the current owner." + }, + "functionSelector": "f2fde38b", + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 31809, + "kind": "modifierInvocation", + "modifierName": { + "id": 31808, + "name": "onlyOwner", + "nameLocations": ["2209:9:33"], + "nodeType": "IdentifierPath", + "referencedDeclaration": 31766, + "src": "2209:9:33" + }, + "nodeType": "ModifierInvocation", + "src": "2209:9:33" + } + ], + "name": "transferOwnership", + "nameLocation": "2158:17:33", + "parameters": { + "id": 31807, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 31806, + "mutability": "mutable", + "name": "newOwner", + "nameLocation": "2184:8:33", + "nodeType": "VariableDeclaration", + "scope": 31826, + "src": "2176:16:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 31805, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2176:7:33", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2175:18:33" + }, + "returnParameters": { + "id": 31810, + "nodeType": "ParameterList", + "parameters": [], + "src": "2219:0:33" + }, + "scope": 31847, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "id": 31846, + "nodeType": "FunctionDefinition", + "src": "2510:191:33", + "nodes": [], + "body": { + "id": 31845, + "nodeType": "Block", + "src": "2573:128:33", + "nodes": [], + "statements": [ + { + "assignments": [31833], + "declarations": [ + { + "constant": false, + "id": 31833, + "mutability": "mutable", + "name": "oldOwner", + "nameLocation": "2592:8:33", + "nodeType": "VariableDeclaration", + "scope": 31845, + "src": "2584:16:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 31832, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2584:7:33", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 31835, + "initialValue": { + "id": 31834, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 31742, + "src": "2603:6:33", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2584:25:33" + }, + { + "expression": { + "id": 31838, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 31836, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 31742, + "src": "2620:6:33", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 31837, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 31829, + "src": "2629:8:33", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "2620:17:33", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 31839, + "nodeType": "ExpressionStatement", + "src": "2620:17:33" + }, + { + "eventCall": { + "arguments": [ + { + "id": 31841, + "name": "oldOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 31833, + "src": "2674:8:33", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 31842, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 31829, + "src": "2684:8:33", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 31840, + "name": "OwnershipTransferred", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 31748, + "src": "2653:20:33", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", + "typeString": "function (address,address)" + } + }, + "id": 31843, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2653:40:33", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 31844, + "nodeType": "EmitStatement", + "src": "2648:45:33" + } + ] + }, + "documentation": { + "id": 31827, + "nodeType": "StructuredDocumentation", + "src": "2358:146:33", + "text": " @dev Transfers ownership of the contract to a new account (`newOwner`).\n Internal function without access restriction." + }, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_transferOwnership", + "nameLocation": "2519:18:33", + "parameters": { + "id": 31830, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 31829, + "mutability": "mutable", + "name": "newOwner", + "nameLocation": "2546:8:33", + "nodeType": "VariableDeclaration", + "scope": 31846, + "src": "2538:16:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 31828, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2538:7:33", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2537:18:33" + }, + "returnParameters": { + "id": 31831, + "nodeType": "ParameterList", + "parameters": [], + "src": "2573:0:33" + }, + "scope": 31847, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + } + ], + "abstract": true, + "baseContracts": [ + { + "baseName": { + "id": 31739, + "name": "Context", + "nameLocations": ["702:7:33"], + "nodeType": "IdentifierPath", + "referencedDeclaration": 36149, + "src": "702:7:33" + }, + "id": 31740, + "nodeType": "InheritanceSpecifier", + "src": "702:7:33" + } + ], + "canonicalName": "Ownable", + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 31738, + "nodeType": "StructuredDocumentation", + "src": "166:505:33", + "text": " @dev Contract module which provides a basic access control mechanism, where\n there is an account (an owner) that can be granted exclusive access to\n specific functions.\n By default, the owner account will be the one that deploys the contract. This\n can later be changed with {transferOwnership}.\n This module is used through inheritance. It will make available the modifier\n `onlyOwner`, which can be applied to your functions to restrict their use to\n the owner." + }, + "fullyImplemented": true, + "linearizedBaseContracts": [31847, 36149], + "name": "Ownable", + "nameLocation": "691:7:33", + "scope": 31848, + "usedErrors": [] + } + ], + "license": "MIT" + }, + "id": 33 +}