@tokamak-network/thanos-contracts
Version:
1 lines • 79 kB
JSON
{"abi":[{"type":"event","name":"AdminChanged","inputs":[{"name":"previousAdmin","type":"address","indexed":false,"internalType":"address"},{"name":"newAdmin","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"BeaconUpgraded","inputs":[{"name":"beacon","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Upgraded","inputs":[{"name":"implementation","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"ERC1967InvalidAdmin","inputs":[{"name":"admin","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1967InvalidBeacon","inputs":[{"name":"beacon","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1967InvalidImplementation","inputs":[{"name":"implementation","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1967NonPayable","inputs":[]}],"bytecode":{"object":"0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"426:6273:255:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;426:6273:255;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"426:6273:255:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"}],\"name\":\"ERC1967InvalidAdmin\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"beacon\",\"type\":\"address\"}],\"name\":\"ERC1967InvalidBeacon\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"ERC1967InvalidImplementation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ERC1967NonPayable\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"previousAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"AdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"beacon\",\"type\":\"address\"}],\"name\":\"BeaconUpgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"}],\"devdoc\":{\"details\":\"This abstract contract provides getters and event emitting update functions for https://eips.ethereum.org/EIPS/eip-1967[EIP1967] slots.\",\"errors\":{\"ERC1967InvalidAdmin(address)\":[{\"details\":\"The `admin` of the proxy is invalid.\"}],\"ERC1967InvalidBeacon(address)\":[{\"details\":\"The `beacon` of the proxy is invalid.\"}],\"ERC1967InvalidImplementation(address)\":[{\"details\":\"The `implementation` of the proxy is invalid.\"}],\"ERC1967NonPayable()\":[{\"details\":\"An upgrade function sees `msg.value > 0` that may be lost.\"}]},\"events\":{\"AdminChanged(address,address)\":{\"details\":\"Emitted when the admin account has changed.\"},\"BeaconUpgraded(address)\":{\"details\":\"Emitted when the beacon is changed.\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{},\"stateVariables\":{\"ADMIN_SLOT\":{\"details\":\"Storage slot with the admin of the contract. This is the keccak-256 hash of \\\"eip1967.proxy.admin\\\" subtracted by 1.\"},\"BEACON_SLOT\":{\"details\":\"The storage slot of the UpgradeableBeacon contract which defines the implementation for this proxy. This is the keccak-256 hash of \\\"eip1967.proxy.beacon\\\" subtracted by 1.\"},\"IMPLEMENTATION_SLOT\":{\"details\":\"Storage slot with the address of the current implementation. This is the keccak-256 hash of \\\"eip1967.proxy.implementation\\\" subtracted by 1.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/tokamak-contracts/USDC/L1/libraries/ERC1967Utils.sol\":\"ERC1967Utils\"},\"evmVersion\":\"london\",\"libraries\":{\"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/FiatTokenV2_2.sol: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/L1/libraries/Address.sol\":{\"keccak256\":\"0x7a2becd0fc138ccd81f63dc85f73aa43ac9e16107b1060dfb9bfcbc46e089060\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9cfc1478aba538118b63dca8c71983d8d522b9ac97b96364ae27dc505b675a3\",\"dweb:/ipfs/QmQJnCRPn61XoPbDtykyGGcXS4YYydmMCxcWDymhBTG6JJ\"]},\"src/tokamak-contracts/USDC/L1/libraries/ERC1967Utils.sol\":{\"keccak256\":\"0xa2fa39ddac02eecd313cddb1353698256a9cbeab1fcd2047d92285bf4519a23a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb3ac2962400411740195781a6f4df2646b0475fc007ae741b3c5946c1b394bc\",\"dweb:/ipfs/QmWr1if5nFDoUN8xpz5V21Lqcy2hXghbqui1aoZUEgqpY3\"]},\"src/tokamak-contracts/USDC/L1/libraries/IBeacon.sol\":{\"keccak256\":\"0x716e742ed4bfcb97311d7d9d388bdc490cec880d9a4f52665d86ade99fca3b47\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://24a0fd4d5e3d505f19d8e7023048d7b312eff22d264247c03af42eb15d480656\",\"dweb:/ipfs/QmczJSWDXryDzppqPHZ4mLELen6z3M3vJmN5p3QTB8Y6EM\"]},\"src/tokamak-contracts/USDC/L1/libraries/StorageSlot.sol\":{\"keccak256\":\"0x787e1146303d8c96198e87b7af989cbebd915244bee4020d9f159de952e98b4f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://49f31c7732b2b886b9b6718745627936007aa23e8d6d309c316f8a60b936131a\",\"dweb:/ipfs/QmXVu5oFjH7eTM4oKrsiHAW5BrEk5d86RvZ2xMWBZvdw4G\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"admin","type":"address"}],"type":"error","name":"ERC1967InvalidAdmin"},{"inputs":[{"internalType":"address","name":"beacon","type":"address"}],"type":"error","name":"ERC1967InvalidBeacon"},{"inputs":[{"internalType":"address","name":"implementation","type":"address"}],"type":"error","name":"ERC1967InvalidImplementation"},{"inputs":[],"type":"error","name":"ERC1967NonPayable"},{"inputs":[{"internalType":"address","name":"previousAdmin","type":"address","indexed":false},{"internalType":"address","name":"newAdmin","type":"address","indexed":false}],"type":"event","name":"AdminChanged","anonymous":false},{"inputs":[{"internalType":"address","name":"beacon","type":"address","indexed":true}],"type":"event","name":"BeaconUpgraded","anonymous":false},{"inputs":[{"internalType":"address","name":"implementation","type":"address","indexed":true}],"type":"event","name":"Upgraded","anonymous":false}],"devdoc":{"kind":"dev","methods":{},"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/L1/libraries/ERC1967Utils.sol":"ERC1967Utils"},"evmVersion":"london","libraries":{"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/FiatTokenV2_2.sol:SignatureChecker":"0x4200000000000000000000000000000000000776"}},"sources":{"src/tokamak-contracts/USDC/L1/libraries/Address.sol":{"keccak256":"0x7a2becd0fc138ccd81f63dc85f73aa43ac9e16107b1060dfb9bfcbc46e089060","urls":["bzz-raw://a9cfc1478aba538118b63dca8c71983d8d522b9ac97b96364ae27dc505b675a3","dweb:/ipfs/QmQJnCRPn61XoPbDtykyGGcXS4YYydmMCxcWDymhBTG6JJ"],"license":"MIT"},"src/tokamak-contracts/USDC/L1/libraries/ERC1967Utils.sol":{"keccak256":"0xa2fa39ddac02eecd313cddb1353698256a9cbeab1fcd2047d92285bf4519a23a","urls":["bzz-raw://bb3ac2962400411740195781a6f4df2646b0475fc007ae741b3c5946c1b394bc","dweb:/ipfs/QmWr1if5nFDoUN8xpz5V21Lqcy2hXghbqui1aoZUEgqpY3"],"license":"MIT"},"src/tokamak-contracts/USDC/L1/libraries/IBeacon.sol":{"keccak256":"0x716e742ed4bfcb97311d7d9d388bdc490cec880d9a4f52665d86ade99fca3b47","urls":["bzz-raw://24a0fd4d5e3d505f19d8e7023048d7b312eff22d264247c03af42eb15d480656","dweb:/ipfs/QmczJSWDXryDzppqPHZ4mLELen6z3M3vJmN5p3QTB8Y6EM"],"license":"MIT"},"src/tokamak-contracts/USDC/L1/libraries/StorageSlot.sol":{"keccak256":"0x787e1146303d8c96198e87b7af989cbebd915244bee4020d9f159de952e98b4f","urls":["bzz-raw://49f31c7732b2b886b9b6718745627936007aa23e8d6d309c316f8a60b936131a","dweb:/ipfs/QmXVu5oFjH7eTM4oKrsiHAW5BrEk5d86RvZ2xMWBZvdw4G"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","details":"This abstract contract provides getters and event emitting update functions for https://eips.ethereum.org/EIPS/eip-1967[EIP1967] slots.","events":{"AdminChanged(address,address)":{"details":"Emitted when the admin account has changed."},"BeaconUpgraded(address)":{"details":"Emitted when the beacon is changed."},"Upgraded(address)":{"details":"Emitted when the implementation is upgraded."}},"errors":{"ERC1967InvalidAdmin(address)":[{"details":"The `admin` of the proxy is invalid."}],"ERC1967InvalidBeacon(address)":[{"details":"The `beacon` of the proxy is invalid."}],"ERC1967InvalidImplementation(address)":[{"details":"The `implementation` of the proxy is invalid."}],"ERC1967NonPayable()":[{"details":"An upgrade function sees `msg.value > 0` that may be lost."}]}},"ast":{"absolutePath":"src/tokamak-contracts/USDC/L1/libraries/ERC1967Utils.sol","id":119789,"exportedSymbols":{"Address":[119447],"ERC1967Utils":[119788],"IBeacon":[119798],"StorageSlot":[120348]},"nodeType":"SourceUnit","src":"114:6586:255","nodes":[{"id":119487,"nodeType":"PragmaDirective","src":"114:23:255","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":119489,"nodeType":"ImportDirective","src":"139:40:255","nodes":[],"absolutePath":"src/tokamak-contracts/USDC/L1/libraries/IBeacon.sol","file":"./IBeacon.sol","nameLocation":"-1:-1:-1","scope":119789,"sourceUnit":119799,"symbolAliases":[{"foreign":{"id":119488,"name":"IBeacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":119798,"src":"148:7:255","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":119491,"nodeType":"ImportDirective","src":"180:40:255","nodes":[],"absolutePath":"src/tokamak-contracts/USDC/L1/libraries/Address.sol","file":"./Address.sol","nameLocation":"-1:-1:-1","scope":119789,"sourceUnit":119448,"symbolAliases":[{"foreign":{"id":119490,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":119447,"src":"189:7:255","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":119493,"nodeType":"ImportDirective","src":"221:48:255","nodes":[],"absolutePath":"src/tokamak-contracts/USDC/L1/libraries/StorageSlot.sol","file":"./StorageSlot.sol","nameLocation":"-1:-1:-1","scope":119789,"sourceUnit":120349,"symbolAliases":[{"foreign":{"id":119492,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":120348,"src":"230:11:255","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":119788,"nodeType":"ContractDefinition","src":"426:6273:255","nodes":[{"id":119499,"nodeType":"EventDefinition","src":"710:47:255","nodes":[],"anonymous":false,"documentation":{"id":119495,"nodeType":"StructuredDocumentation","src":"637:68:255","text":" @dev Emitted when the implementation is upgraded."},"eventSelector":"bc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","name":"Upgraded","nameLocation":"716:8:255","parameters":{"id":119498,"nodeType":"ParameterList","parameters":[{"constant":false,"id":119497,"indexed":true,"mutability":"mutable","name":"implementation","nameLocation":"741:14:255","nodeType":"VariableDeclaration","scope":119499,"src":"725:30:255","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":119496,"name":"address","nodeType":"ElementaryTypeName","src":"725:7:255","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"724:32:255"}},{"id":119506,"nodeType":"EventDefinition","src":"835:60:255","nodes":[],"anonymous":false,"documentation":{"id":119500,"nodeType":"StructuredDocumentation","src":"763:67:255","text":" @dev Emitted when the admin account has changed."},"eventSelector":"7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f","name":"AdminChanged","nameLocation":"841:12:255","parameters":{"id":119505,"nodeType":"ParameterList","parameters":[{"constant":false,"id":119502,"indexed":false,"mutability":"mutable","name":"previousAdmin","nameLocation":"862:13:255","nodeType":"VariableDeclaration","scope":119506,"src":"854:21:255","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":119501,"name":"address","nodeType":"ElementaryTypeName","src":"854:7:255","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":119504,"indexed":false,"mutability":"mutable","name":"newAdmin","nameLocation":"885:8:255","nodeType":"VariableDeclaration","scope":119506,"src":"877:16:255","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":119503,"name":"address","nodeType":"ElementaryTypeName","src":"877:7:255","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"853:41:255"}},{"id":119511,"nodeType":"EventDefinition","src":"965:45:255","nodes":[],"anonymous":false,"documentation":{"id":119507,"nodeType":"StructuredDocumentation","src":"901:59:255","text":" @dev Emitted when the beacon is changed."},"eventSelector":"1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e","name":"BeaconUpgraded","nameLocation":"971:14:255","parameters":{"id":119510,"nodeType":"ParameterList","parameters":[{"constant":false,"id":119509,"indexed":true,"mutability":"mutable","name":"beacon","nameLocation":"1002:6:255","nodeType":"VariableDeclaration","scope":119511,"src":"986:22:255","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":119508,"name":"address","nodeType":"ElementaryTypeName","src":"986:7:255","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"985:24:255"}},{"id":119515,"nodeType":"VariableDeclaration","src":"1256:114:255","nodes":[],"constant":true,"documentation":{"id":119512,"nodeType":"StructuredDocumentation","src":"1016:170:255","text":" @dev Storage slot with the address of the current implementation.\n This is the keccak-256 hash of \"eip1967.proxy.implementation\" subtracted by 1."},"mutability":"constant","name":"IMPLEMENTATION_SLOT","nameLocation":"1282:19:255","scope":119788,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":119513,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1256:7:255","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307833363038393461313362613161333231303636376338323834393264623938646361336532303736636333373335613932306133636135303564333832626263","id":119514,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1304:66:255","typeDescriptions":{"typeIdentifier":"t_rational_24440054405305269366569402256811496959409073762505157381672968839269610695612_by_1","typeString":"int_const 2444...(69 digits omitted)...5612"},"value":"0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc"},"visibility":"internal"},{"id":119520,"nodeType":"ErrorDefinition","src":"1451:59:255","nodes":[],"documentation":{"id":119516,"nodeType":"StructuredDocumentation","src":"1377:69:255","text":" @dev The `implementation` of the proxy is invalid."},"errorSelector":"4c9c8ce3","name":"ERC1967InvalidImplementation","nameLocation":"1457:28:255","parameters":{"id":119519,"nodeType":"ParameterList","parameters":[{"constant":false,"id":119518,"mutability":"mutable","name":"implementation","nameLocation":"1494:14:255","nodeType":"VariableDeclaration","scope":119520,"src":"1486:22:255","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":119517,"name":"address","nodeType":"ElementaryTypeName","src":"1486:7:255","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1485:24:255"}},{"id":119525,"nodeType":"ErrorDefinition","src":"1581:41:255","nodes":[],"documentation":{"id":119521,"nodeType":"StructuredDocumentation","src":"1516:60:255","text":" @dev The `admin` of the proxy is invalid."},"errorSelector":"62e77ba2","name":"ERC1967InvalidAdmin","nameLocation":"1587:19:255","parameters":{"id":119524,"nodeType":"ParameterList","parameters":[{"constant":false,"id":119523,"mutability":"mutable","name":"admin","nameLocation":"1615:5:255","nodeType":"VariableDeclaration","scope":119525,"src":"1607:13:255","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":119522,"name":"address","nodeType":"ElementaryTypeName","src":"1607:7:255","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1606:15:255"}},{"id":119530,"nodeType":"ErrorDefinition","src":"1694:43:255","nodes":[],"documentation":{"id":119526,"nodeType":"StructuredDocumentation","src":"1628:61:255","text":" @dev The `beacon` of the proxy is invalid."},"errorSelector":"64ced0ec","name":"ERC1967InvalidBeacon","nameLocation":"1700:20:255","parameters":{"id":119529,"nodeType":"ParameterList","parameters":[{"constant":false,"id":119528,"mutability":"mutable","name":"beacon","nameLocation":"1729:6:255","nodeType":"VariableDeclaration","scope":119530,"src":"1721:14:255","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":119527,"name":"address","nodeType":"ElementaryTypeName","src":"1721:7:255","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1720:16:255"}},{"id":119533,"nodeType":"ErrorDefinition","src":"1830:26:255","nodes":[],"documentation":{"id":119531,"nodeType":"StructuredDocumentation","src":"1743:82:255","text":" @dev An upgrade function sees `msg.value > 0` that may be lost."},"errorSelector":"b398979f","name":"ERC1967NonPayable","nameLocation":"1836:17:255","parameters":{"id":119532,"nodeType":"ParameterList","parameters":[],"src":"1853:2:255"}},{"id":119546,"nodeType":"FunctionDefinition","src":"1934:138:255","nodes":[],"body":{"id":119545,"nodeType":"Block","src":"1995:77:255","nodes":[],"statements":[{"expression":{"expression":{"arguments":[{"id":119541,"name":"IMPLEMENTATION_SLOT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":119515,"src":"2039:19:255","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":119539,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":120348,"src":"2012:11:255","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$120348_$","typeString":"type(library StorageSlot)"}},"id":119540,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getAddressSlot","nodeType":"MemberAccess","referencedDeclaration":120270,"src":"2012:26:255","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_AddressSlot_$120244_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.AddressSlot storage pointer)"}},"id":119542,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2012:47:255","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$120244_storage_ptr","typeString":"struct StorageSlot.AddressSlot storage pointer"}},"id":119543,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"value","nodeType":"MemberAccess","referencedDeclaration":120243,"src":"2012:53:255","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":119538,"id":119544,"nodeType":"Return","src":"2005:60:255"}]},"documentation":{"id":119534,"nodeType":"StructuredDocumentation","src":"1862:67:255","text":" @dev Returns the current implementation address."},"implemented":true,"kind":"function","modifiers":[],"name":"getImplementation","nameLocation":"1943:17:255","parameters":{"id":119535,"nodeType":"ParameterList","parameters":[],"src":"1960:2:255"},"returnParameters":{"id":119538,"nodeType":"ParameterList","parameters":[{"constant":false,"id":119537,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":119546,"src":"1986:7:255","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":119536,"name":"address","nodeType":"ElementaryTypeName","src":"1986:7:255","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1985:9:255"},"scope":119788,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":119573,"nodeType":"FunctionDefinition","src":"2163:281:255","nodes":[],"body":{"id":119572,"nodeType":"Block","src":"2226:218:255","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":119556,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":119552,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":119549,"src":"2240:17:255","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":119553,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"code","nodeType":"MemberAccess","src":"2240:22:255","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":119554,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"2240:29:255","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":119555,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2273:1:255","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2240:34:255","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":119562,"nodeType":"IfStatement","src":"2236:119:255","trueBody":{"id":119561,"nodeType":"Block","src":"2276:79:255","statements":[{"errorCall":{"arguments":[{"id":119558,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":119549,"src":"2326:17:255","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":119557,"name":"ERC1967InvalidImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":119520,"src":"2297:28:255","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":119559,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2297:47:255","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":119560,"nodeType":"RevertStatement","src":"2290:54:255"}]}},{"expression":{"id":119570,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"arguments":[{"id":119566,"name":"IMPLEMENTATION_SLOT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":119515,"src":"2391:19:255","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":119563,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":120348,"src":"2364:11:255","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$120348_$","typeString":"type(library StorageSlot)"}},"id":119565,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getAddressSlot","nodeType":"MemberAccess","referencedDeclaration":120270,"src":"2364:26:255","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_AddressSlot_$120244_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.AddressSlot storage pointer)"}},"id":119567,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2364:47:255","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$120244_storage_ptr","typeString":"struct StorageSlot.AddressSlot storage pointer"}},"id":119568,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"value","nodeType":"MemberAccess","referencedDeclaration":120243,"src":"2364:53:255","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":119569,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":119549,"src":"2420:17:255","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2364:73:255","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":119571,"nodeType":"ExpressionStatement","src":"2364:73:255"}]},"documentation":{"id":119547,"nodeType":"StructuredDocumentation","src":"2078:80:255","text":" @dev Stores a new address in the EIP1967 implementation slot."},"implemented":true,"kind":"function","modifiers":[],"name":"_setImplementation","nameLocation":"2172:18:255","parameters":{"id":119550,"nodeType":"ParameterList","parameters":[{"constant":false,"id":119549,"mutability":"mutable","name":"newImplementation","nameLocation":"2199:17:255","nodeType":"VariableDeclaration","scope":119573,"src":"2191:25:255","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":119548,"name":"address","nodeType":"ElementaryTypeName","src":"2191:7:255","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2190:27:255"},"returnParameters":{"id":119551,"nodeType":"ParameterList","parameters":[],"src":"2226:0:255"},"scope":119788,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":119607,"nodeType":"FunctionDefinition","src":"2756:335:255","nodes":[],"body":{"id":119606,"nodeType":"Block","src":"2837:254:255","nodes":[],"statements":[{"expression":{"arguments":[{"id":119582,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":119576,"src":"2866:17:255","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":119581,"name":"_setImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":119573,"src":"2847:18:255","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":119583,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2847:37:255","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":119584,"nodeType":"ExpressionStatement","src":"2847:37:255"},{"eventCall":{"arguments":[{"id":119586,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":119576,"src":"2908:17:255","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":119585,"name":"Upgraded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":119499,"src":"2899:8:255","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":119587,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2899:27:255","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":119588,"nodeType":"EmitStatement","src":"2894:32:255"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":119592,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":119589,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":119578,"src":"2941:4:255","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":119590,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"2941:11:255","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":119591,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2955:1:255","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2941:15:255","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":119604,"nodeType":"Block","src":"3042:43:255","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":119601,"name":"_checkNonPayable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":119787,"src":"3056:16:255","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":119602,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3056:18:255","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":119603,"nodeType":"ExpressionStatement","src":"3056:18:255"}]},"id":119605,"nodeType":"IfStatement","src":"2937:148:255","trueBody":{"id":119600,"nodeType":"Block","src":"2958:78:255","statements":[{"expression":{"arguments":[{"id":119596,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":119576,"src":"3001:17:255","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":119597,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":119578,"src":"3020:4:255","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":119593,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":119447,"src":"2972:7:255","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Address_$119447_$","typeString":"type(library Address)"}},"id":119595,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"functionDelegateCall","nodeType":"MemberAccess","referencedDeclaration":119366,"src":"2972:28:255","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory) returns (bytes memory)"}},"id":119598,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2972:53:255","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":119599,"nodeType":"ExpressionStatement","src":"2972:53:255"}]}}]},"documentation":{"id":119574,"nodeType":"StructuredDocumentation","src":"2450:301:255","text":" @dev Performs implementation upgrade with additional setup call if data is nonempty.\n This function is payable only if the setup call is performed, otherwise `msg.value` is rejected\n to avoid stuck value in the contract.\n Emits an {IERC1967-Upgraded} event."},"implemented":true,"kind":"function","modifiers":[],"name":"upgradeToAndCall","nameLocation":"2765:16:255","parameters":{"id":119579,"nodeType":"ParameterList","parameters":[{"constant":false,"id":119576,"mutability":"mutable","name":"newImplementation","nameLocation":"2790:17:255","nodeType":"VariableDeclaration","scope":119607,"src":"2782:25:255","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":119575,"name":"address","nodeType":"ElementaryTypeName","src":"2782:7:255","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":119578,"mutability":"mutable","name":"data","nameLocation":"2822:4:255","nodeType":"VariableDeclaration","scope":119607,"src":"2809:17:255","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":119577,"name":"bytes","nodeType":"ElementaryTypeName","src":"2809:5:255","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2781:46:255"},"returnParameters":{"id":119580,"nodeType":"ParameterList","parameters":[],"src":"2837:0:255"},"scope":119788,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":119611,"nodeType":"VariableDeclaration","src":"3312:105:255","nodes":[],"constant":true,"documentation":{"id":119608,"nodeType":"StructuredDocumentation","src":"3097:145:255","text":" @dev Storage slot with the admin of the contract.\n This is the keccak-256 hash of \"eip1967.proxy.admin\" subtracted by 1."},"mutability":"constant","name":"ADMIN_SLOT","nameLocation":"3338:10:255","scope":119788,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":119609,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3312:7:255","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307862353331323736383461353638623331373361653133623966386136303136653234336536336236653865653131373864366137313738353062356436313033","id":119610,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3351:66:255","typeDescriptions":{"typeIdentifier":"t_rational_81955473079516046949633743016697847541294818689821282749996681496272635257091_by_1","typeString":"int_const 8195...(69 digits omitted)...7091"},"value":"0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103"},"visibility":"internal"},{"id":119624,"nodeType":"FunctionDefinition","src":"3769:120:255","nodes":[],"body":{"id":119623,"nodeType":"Block","src":"3821:68:255","nodes":[],"statements":[{"expression":{"expression":{"arguments":[{"id":119619,"name":"ADMIN_SLOT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":119611,"src":"3865:10:255","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":119617,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":120348,"src":"3838:11:255","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$120348_$","typeString":"type(library StorageSlot)"}},"id":119618,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getAddressSlot","nodeType":"MemberAccess","referencedDeclaration":120270,"src":"3838:26:255","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_AddressSlot_$120244_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.AddressSlot storage pointer)"}},"id":119620,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3838:38:255","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$120244_storage_ptr","typeString":"struct StorageSlot.AddressSlot storage pointer"}},"id":119621,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"value","nodeType":"MemberAccess","referencedDeclaration":120243,"src":"3838:44:255","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":119616,"id":119622,"nodeType":"Return","src":"3831:51:255"}]},"documentation":{"id":119612,"nodeType":"StructuredDocumentation","src":"3424:340:255","text":" @dev Returns the current admin.\n TIP: To get this value clients can read directly from the storage slot shown below (specified by EIP1967) using\n the https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call.\n `0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103`"},"implemented":true,"kind":"function","modifiers":[],"name":"getAdmin","nameLocation":"3778:8:255","parameters":{"id":119613,"nodeType":"ParameterList","parameters":[],"src":"3786:2:255"},"returnParameters":{"id":119616,"nodeType":"ParameterList","parameters":[{"constant":false,"id":119615,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":119624,"src":"3812:7:255","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":119614,"name":"address","nodeType":"ElementaryTypeName","src":"3812:7:255","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3811:9:255"},"scope":119788,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":119655,"nodeType":"FunctionDefinition","src":"3971:217:255","nodes":[],"body":{"id":119654,"nodeType":"Block","src":"4016:172:255","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":119635,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":119630,"name":"newAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":119627,"src":"4030:8:255","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":119633,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4050:1:255","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":119632,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4042:7:255","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":119631,"name":"address","nodeType":"ElementaryTypeName","src":"4042:7:255","typeDescriptions":{}}},"id":119634,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4042:10:255","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4030:22:255","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":119644,"nodeType":"IfStatement","src":"4026:91:255","trueBody":{"id":119643,"nodeType":"Block","src":"4054:63:255","statements":[{"errorCall":{"arguments":[{"arguments":[{"hexValue":"30","id":119639,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4103:1:255","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":119638,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4095:7:255","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":119637,"name":"address","nodeType":"ElementaryTypeName","src":"4095:7:255","typeDescriptions":{}}},"id":119640,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4095:10:255","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":119636,"name":"ERC1967InvalidAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":119525,"src":"4075:19:255","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":119641,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4075:31:255","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":119642,"nodeType":"RevertStatement","src":"4068:38:255"}]}},{"expression":{"id":119652,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"arguments":[{"id":119648,"name":"ADMIN_SLOT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":119611,"src":"4153:10:255","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":119645,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":120348,"src":"4126:11:255","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$120348_$","typeString":"type(library StorageSlot)"}},"id":119647,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getAddressSlot","nodeType":"MemberAccess","referencedDeclaration":120270,"src":"4126:26:255","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_AddressSlot_$120244_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.AddressSlot storage pointer)"}},"id":119649,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4126:38:255","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$120244_storage_ptr","typeString":"struct StorageSlot.AddressSlot storage pointer"}},"id":119650,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"value","nodeType":"MemberAccess","referencedDeclaration":120243,"src":"4126:44:255","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":119651,"name":"newAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":119627,"src":"4173:8:255","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4126:55:255","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":119653,"nodeType":"ExpressionStatement","src":"4126:55:255"}]},"documentation":{"id":119625,"nodeType":"StructuredDocumentation","src":"3895:71:255","text":" @dev Stores a new address in the EIP1967 admin slot."},"implemented":true,"kind":"function","modifiers":[],"name":"_setAdmin","nameLocation":"3980:9:255","parameters":{"id":119628,"nodeType":"ParameterList","parameters":[{"constant":false,"id":119627,"mutability":"mutable","name":"newAdmin","nameLocation":"3998:8:255","nodeType":"VariableDeclaration","scope":119655,"src":"3990:16:255","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":119626,"name":"address","nodeType":"ElementaryTypeName","src":"3990:7:255","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3989:18:255"},"returnParameters":{"id":119629,"nodeType":"ParameterList","parameters":[],"src":"4016:0:255"},"scope":119788,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":119672,"nodeType":"FunctionDefinition","src":"4308:133:255","nodes":[],"body":{"id":119671,"nodeType":"Block","src":"4356:85:255","nodes":[],"statements":[{"eventCall":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":119662,"name":"getAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":119624,"src":"4384:8:255","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":119663,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4384:10:255","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":119664,"name":"newAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":119658,"src":"4396:8:255","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeI