UNPKG

@tokamak-network/thanos-contracts

Version:
1 lines 31.5 kB
{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":false,"internalType":"address"},{"name":"newOwner","type":"address","indexed":false,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x608060405234801561001057600080fd5b5061001a3361001f565b610041565b600080546001600160a01b0319166001600160a01b0392909216919091179055565b61028a806100506000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c80638da5cb5b1461003b578063f2fde38b1461006c575b600080fd5b6100436100a1565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b61009f6004803603602081101561008257600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166100bd565b005b60005473ffffffffffffffffffffffffffffffffffffffff1690565b60005473ffffffffffffffffffffffffffffffffffffffff16331461014357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff81166101af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806102586026913960400191505060405180910390fd5b6000546040805173ffffffffffffffffffffffffffffffffffffffff9283168152918316602083015280517f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09281900390910190a161020d81610210565b50565b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff9290921691909117905556fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373a164736f6c634300060c000a","sourceMap":"1720:1465:23:-:0;;;2195:58;;;;;;;;;-1:-1:-1;2226:20:23;2235:10;2226:8;:20::i;:::-;1720:1465;;2496:79;2551:6;:17;;-1:-1:-1;;;;;;2551:17:23;-1:-1:-1;;;;;2551:17:23;;;;;;;;;;2496:79::o;1720:1465::-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100365760003560e01c80638da5cb5b1461003b578063f2fde38b1461006c575b600080fd5b6100436100a1565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b61009f6004803603602081101561008257600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166100bd565b005b60005473ffffffffffffffffffffffffffffffffffffffff1690565b60005473ffffffffffffffffffffffffffffffffffffffff16331461014357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff81166101af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806102586026913960400191505060405180910390fd5b6000546040805173ffffffffffffffffffffffffffffffffffffffff9283168152918316602083015280517f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09281900390910190a161020d81610210565b50565b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff9290921691909117905556fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373a164736f6c634300060c000a","sourceMap":"1720:1465:23:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2358:79;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2948:235;;;;;;;;;;;;;;;;-1:-1:-1;2948:235:23;;;;:::i;:::-;;2358:79;2398:7;2424:6;;;2358:79;:::o;2948:235::-;2716:6;;;;2702:10;:20;2694:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3030:22:::1;::::0;::::1;3022:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3131:6;::::0;3110:38:::1;::::0;;3131:6:::1;::::0;;::::1;3110:38:::0;;;;::::1;;::::0;::::1;::::0;;;::::1;::::0;;;;;;;;::::1;3158:18;3167:8;3158;:18::i;:::-;2948:235:::0;:::o;2496:79::-;2551:6;:17;;;;;;;;;;;;;;;2496:79::o","linkReferences":{}},"methodIdentifiers":{"owner()":"8da5cb5b","transferOwnership(address)":"f2fde38b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.6.12+commit.27d51765\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Forked from https://github.com/OpenZeppelin/openzeppelin-labs/blob/3887ab77b8adafba4a26ace002f3a684c1a3388b/upgradeability_ownership/contracts/ownership/Ownable.sol Modifications: 1. Consolidate OwnableStorage into this contract (7/13/18) 2. Reformat, conform to Solidity 0.6 syntax, and add error messages (5/13/20) 3. Make public functions external (5/27/20)\",\"events\":{\"OwnershipTransferred(address,address)\":{\"details\":\"Event to show ownership has been transferred\",\"params\":{\"newOwner\":\"representing the address of the new owner\",\"previousOwner\":\"representing the address of the previous owner\"}}},\"kind\":\"dev\",\"methods\":{\"constructor\":{\"details\":\"The constructor sets the original owner of the contract to the sender account.\"},\"owner()\":{\"details\":\"Tells the address of the owner\",\"returns\":{\"_0\":\"the address of the owner\"}},\"transferOwnership(address)\":{\"details\":\"Allows the current owner to transfer control of the contract to a newOwner.\",\"params\":{\"newOwner\":\"The address to transfer ownership to.\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"The Ownable contract has an owner address, and provides basic authorization control functions\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/tokamak-contracts/USDC/L2/tokamak-USDC/v1/Ownable.sol\":\"Ownable\"},\"evmVersion\":\"istanbul\",\"libraries\":{\"SignatureChecker\":\"0x4200000000000000000000000000000000000776\"},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@openzeppelin/contracts_v3.1.0/=lib/openzeppelin-contracts_v3.1.0/contracts/\",\":@openzeppelin/contracts_v5.0.1/=lib/openzeppelin-contracts_v5.0.1/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":automate/=lib/automate/contracts/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts_v5.0.1/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":gelato/=lib/automate/contracts/\",\":hardhat/=lib/automate/node_modules/hardhat/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin-contracts_v3.1.0/=lib/openzeppelin-contracts_v3.1.0/contracts/\",\":openzeppelin-contracts_v5.0.1/=lib/openzeppelin-contracts_v5.0.1/\",\":prb-test/=lib/automate/lib/prb-test/src/\",\":prb/-est/=lib/automate/lib/prb-test/src/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/tokamak-contracts/USDC/L2/tokamak-USDC/v1/Ownable.sol\":{\"keccak256\":\"0x3185c30c5c78bfab0e88f219e3ad48c30aaeca8ebd4d888e6efda41021a5a759\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://03e00b50b100a50ef4dc0e07663291ddda6ba6023befc7b47c899bb700ad1549\",\"dweb:/ipfs/QmcHhU6ppJDQnY8UWpzSMy1XSLUJ4ZXqhuwnShxP4sQ2gB\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.6.12+commit.27d51765"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":false},{"internalType":"address","name":"newOwner","type":"address","indexed":false}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"}],"devdoc":{"kind":"dev","methods":{"constructor":{"details":"The constructor sets the original owner of the contract to the sender account."},"owner()":{"details":"Tells the address of the owner","returns":{"_0":"the address of the owner"}},"transferOwnership(address)":{"details":"Allows the current owner to transfer control of the contract to a newOwner.","params":{"newOwner":"The address to transfer ownership to."}}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@openzeppelin/contracts_v3.1.0/=lib/openzeppelin-contracts_v3.1.0/contracts/","@openzeppelin/contracts_v5.0.1/=lib/openzeppelin-contracts_v5.0.1/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","automate/=lib/automate/contracts/","ds-test/=lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts_v5.0.1/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","gelato/=lib/automate/contracts/","hardhat/=lib/automate/node_modules/hardhat/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin-contracts_v3.1.0/=lib/openzeppelin-contracts_v3.1.0/contracts/","openzeppelin-contracts_v5.0.1/=lib/openzeppelin-contracts_v5.0.1/","prb-test/=lib/automate/lib/prb-test/src/","prb/-est/=lib/automate/lib/prb-test/src/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/tokamak-contracts/USDC/L2/tokamak-USDC/v1/Ownable.sol":"Ownable"},"evmVersion":"istanbul","libraries":{"SignatureChecker":"0x4200000000000000000000000000000000000776"}},"sources":{"src/tokamak-contracts/USDC/L2/tokamak-USDC/v1/Ownable.sol":{"keccak256":"0x3185c30c5c78bfab0e88f219e3ad48c30aaeca8ebd4d888e6efda41021a5a759","urls":["bzz-raw://03e00b50b100a50ef4dc0e07663291ddda6ba6023befc7b47c899bb700ad1549","dweb:/ipfs/QmcHhU6ppJDQnY8UWpzSMy1XSLUJ4ZXqhuwnShxP4sQ2gB"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":3029,"contract":"src/tokamak-contracts/USDC/L2/tokamak-USDC/v1/Ownable.sol:Ownable","label":"_owner","offset":0,"slot":"0","type":"t_address"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"}}},"userdoc":{"version":1,"kind":"user","notice":"The Ownable contract has an owner address, and provides basic authorization control functions"},"devdoc":{"version":1,"kind":"dev","details":"Forked from https://github.com/OpenZeppelin/openzeppelin-labs/blob/3887ab77b8adafba4a26ace002f3a684c1a3388b/upgradeability_ownership/contracts/ownership/Ownable.sol Modifications: 1. Consolidate OwnableStorage into this contract (7/13/18) 2. Reformat, conform to Solidity 0.6 syntax, and add error messages (5/13/20) 3. Make public functions external (5/27/20)","methods":{"constructor":{"details":"The constructor sets the original owner of the contract to the sender account."},"owner()":{"details":"Tells the address of the owner","returns":{"_0":"the address of the owner"}},"transferOwnership(address)":{"details":"Allows the current owner to transfer control of the contract to a newOwner.","params":{"newOwner":"The address to transfer ownership to."}}},"events":{"OwnershipTransferred(address,address)":{"details":"Event to show ownership has been transferred","params":{"newOwner":"representing the address of the new owner","previousOwner":"representing the address of the previous owner"}}}},"ast":{"absolutePath":"src/tokamak-contracts/USDC/L2/tokamak-USDC/v1/Ownable.sol","id":3109,"exportedSymbols":{"Ownable":[3108]},"nodeType":"SourceUnit","src":"1195:1991:23","nodes":[{"id":3026,"nodeType":"PragmaDirective","src":"1195:23:23","nodes":[],"literals":["solidity","0.6",".12"]},{"id":3108,"nodeType":"ContractDefinition","src":"1720:1465:23","nodes":[{"id":3029,"nodeType":"VariableDeclaration","src":"1772:22:23","nodes":[],"constant":false,"mutability":"mutable","name":"_owner","overrides":null,"scope":3108,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3028,"name":"address","nodeType":"ElementaryTypeName","src":"1772:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"private"},{"id":3036,"nodeType":"EventDefinition","src":"2014:68:23","nodes":[],"anonymous":false,"documentation":{"id":3030,"nodeType":"StructuredDocumentation","src":"1801:208:23","text":" @dev Event to show ownership has been transferred\n @param previousOwner representing the address of the previous owner\n @param newOwner representing the address of the new owner"},"name":"OwnershipTransferred","parameters":{"id":3035,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3032,"indexed":false,"mutability":"mutable","name":"previousOwner","nodeType":"VariableDeclaration","overrides":null,"scope":3036,"src":"2041:21:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3031,"name":"address","nodeType":"ElementaryTypeName","src":"2041:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":3034,"indexed":false,"mutability":"mutable","name":"newOwner","nodeType":"VariableDeclaration","overrides":null,"scope":3036,"src":"2064:16:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3033,"name":"address","nodeType":"ElementaryTypeName","src":"2064:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"2040:41:23"}},{"id":3046,"nodeType":"FunctionDefinition","src":"2195:58:23","nodes":[],"body":{"id":3045,"nodeType":"Block","src":"2216:37:23","nodes":[],"statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3041,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2235:3:23","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":3042,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2235:10:23","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":3040,"name":"setOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3066,"src":"2226:8:23","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":3043,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2226:20:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3044,"nodeType":"ExpressionStatement","src":"2226:20:23"}]},"documentation":{"id":3037,"nodeType":"StructuredDocumentation","src":"2088:102:23","text":" @dev The constructor sets the original owner of the contract to the sender account."},"implemented":true,"kind":"constructor","modifiers":[],"name":"","overrides":null,"parameters":{"id":3038,"nodeType":"ParameterList","parameters":[],"src":"2206:2:23"},"returnParameters":{"id":3039,"nodeType":"ParameterList","parameters":[],"src":"2216:0:23"},"scope":3108,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":3055,"nodeType":"FunctionDefinition","src":"2358:79:23","nodes":[],"body":{"id":3054,"nodeType":"Block","src":"2407:30:23","nodes":[],"statements":[{"expression":{"argumentTypes":null,"id":3052,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3029,"src":"2424:6:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":3051,"id":3053,"nodeType":"Return","src":"2417:13:23"}]},"documentation":{"id":3047,"nodeType":"StructuredDocumentation","src":"2259:94:23","text":" @dev Tells the address of the owner\n @return the address of the owner"},"functionSelector":"8da5cb5b","implemented":true,"kind":"function","modifiers":[],"name":"owner","overrides":null,"parameters":{"id":3048,"nodeType":"ParameterList","parameters":[],"src":"2372:2:23"},"returnParameters":{"id":3051,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3050,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","overrides":null,"scope":3055,"src":"2398:7:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3049,"name":"address","nodeType":"ElementaryTypeName","src":"2398:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"2397:9:23"},"scope":3108,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":3066,"nodeType":"FunctionDefinition","src":"2496:79:23","nodes":[],"body":{"id":3065,"nodeType":"Block","src":"2541:34:23","nodes":[],"statements":[{"expression":{"argumentTypes":null,"id":3063,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":3061,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3029,"src":"2551:6:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":3062,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3058,"src":"2560:8:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2551:17:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":3064,"nodeType":"ExpressionStatement","src":"2551:17:23"}]},"documentation":{"id":3056,"nodeType":"StructuredDocumentation","src":"2443:48:23","text":" @dev Sets a new owner address"},"implemented":true,"kind":"function","modifiers":[],"name":"setOwner","overrides":null,"parameters":{"id":3059,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3058,"mutability":"mutable","name":"newOwner","nodeType":"VariableDeclaration","overrides":null,"scope":3066,"src":"2514:16:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3057,"name":"address","nodeType":"ElementaryTypeName","src":"2514:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"2513:18:23"},"returnParameters":{"id":3060,"nodeType":"ParameterList","parameters":[],"src":"2541:0:23"},"scope":3108,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":3079,"nodeType":"ModifierDefinition","src":"2663:114:23","nodes":[],"body":{"id":3078,"nodeType":"Block","src":"2684:93:23","nodes":[],"statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":3073,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3070,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2702:3:23","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":3071,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2702:10:23","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"id":3072,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3029,"src":"2716:6:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2702:20:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572","id":3074,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2724:34:23","subdenomination":null,"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":3069,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2694:7:23","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3075,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2694:65:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3076,"nodeType":"ExpressionStatement","src":"2694:65:23"},{"id":3077,"nodeType":"PlaceholderStatement","src":"2769:1:23"}]},"documentation":{"id":3067,"nodeType":"StructuredDocumentation","src":"2581:77:23","text":" @dev Throws if called by any account other than the owner."},"name":"onlyOwner","overrides":null,"parameters":{"id":3068,"nodeType":"ParameterList","parameters":[],"src":"2681:2:23"},"virtual":false,"visibility":"internal"},{"id":3107,"nodeType":"FunctionDefinition","src":"2948:235:23","nodes":[],"body":{"id":3106,"nodeType":"Block","src":"3012:171:23","nodes":[],"statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":3093,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":3088,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3082,"src":"3030:8:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":3091,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3050:1:23","subdenomination":null,"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":3090,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3042:7:23","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3089,"name":"address","nodeType":"ElementaryTypeName","src":"3042:7:23","typeDescriptions":{"typeIdentifier":null,"typeString":null}}},"id":3092,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3042:10:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"3030:22:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373","id":3094,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3054:40:23","subdenomination":null,"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":3087,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3022:7:23","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3095,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3022:73:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3096,"nodeType":"ExpressionStatement","src":"3022:73:23"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":3098,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3029,"src":"3131:6:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":3099,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3082,"src":"3139:8:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":3097,"name":"OwnershipTransferred","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3036,"src":"3110:20:23","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":3100,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3110:38:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3101,"nodeType":"EmitStatement","src":"3105:43:23"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":3103,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3082,"src":"3167:8:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3102,"name":"setOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3066,"src":"3158:8:23","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":3104,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3158:18:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3105,"nodeType":"ExpressionStatement","src":"3158:18:23"}]},"documentation":{"id":3080,"nodeType":"StructuredDocumentation","src":"2783:160:23","text":" @dev Allows the current owner to transfer control of the contract to a newOwner.\n @param newOwner The address to transfer ownership to."},"functionSelector":"f2fde38b","implemented":true,"kind":"function","modifiers":[{"arguments":null,"id":3085,"modifierName":{"argumentTypes":null,"id":3084,"name":"onlyOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3079,"src":"3002:9:23","typeDescriptions":{"typeIdentifier":"t_modifier$__$","typeString":"modifier ()"}},"nodeType":"ModifierInvocation","src":"3002:9:23"}],"name":"transferOwnership","overrides":null,"parameters":{"id":3083,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3082,"mutability":"mutable","name":"newOwner","nodeType":"VariableDeclaration","overrides":null,"scope":3107,"src":"2975:16:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3081,"name":"address","nodeType":"ElementaryTypeName","src":"2975:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"2974:18:23"},"returnParameters":{"id":3086,"nodeType":"ParameterList","parameters":[],"src":"3012:0:23"},"scope":3108,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"contract","documentation":{"id":3027,"nodeType":"StructuredDocumentation","src":"1220:499:23","text":" @notice The Ownable contract has an owner address, and provides basic\n authorization control functions\n @dev Forked from\n https://github.com/OpenZeppelin/openzeppelin-labs/blob/3887ab77b8adafba4a26ace002f3a684c1a3388b/upgradeability_ownership/contracts/ownership/Ownable.sol\n Modifications:\n 1. Consolidate OwnableStorage into this contract (7/13/18)\n 2. Reformat, conform to Solidity 0.6 syntax, and add error messages (5/13/20)\n 3. Make public functions external (5/27/20)"},"fullyImplemented":true,"linearizedBaseContracts":[3108],"name":"Ownable","scope":3109}],"license":"MIT"},"id":23}