UNPKG

@tokamak-network/thanos-contracts

Version:
1 lines 79.6 kB
{"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":"0x602c6032600b8282823980515f1a607314602657634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f80fdfea164736f6c634300081a000a","sourceMap":"426:6273:85:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;426:6273:85;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x730000000000000000000000000000000000000000301460806040525f80fdfea164736f6c634300081a000a","sourceMap":"426:6273:85:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"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\":\"cancun\",\"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.26+commit.8a97fa7a"},"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":"cancun","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":59623,"exportedSymbols":{"Address":[59281],"ERC1967Utils":[59622],"IBeacon":[59632],"StorageSlot":[60182]},"nodeType":"SourceUnit","src":"114:6586:85","nodes":[{"id":59321,"nodeType":"PragmaDirective","src":"114:23:85","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":59323,"nodeType":"ImportDirective","src":"139:40:85","nodes":[],"absolutePath":"src/tokamak-contracts/USDC/L1/libraries/IBeacon.sol","file":"./IBeacon.sol","nameLocation":"-1:-1:-1","scope":59623,"sourceUnit":59633,"symbolAliases":[{"foreign":{"id":59322,"name":"IBeacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59632,"src":"148:7:85","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":59325,"nodeType":"ImportDirective","src":"180:40:85","nodes":[],"absolutePath":"src/tokamak-contracts/USDC/L1/libraries/Address.sol","file":"./Address.sol","nameLocation":"-1:-1:-1","scope":59623,"sourceUnit":59282,"symbolAliases":[{"foreign":{"id":59324,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59281,"src":"189:7:85","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":59327,"nodeType":"ImportDirective","src":"221:48:85","nodes":[],"absolutePath":"src/tokamak-contracts/USDC/L1/libraries/StorageSlot.sol","file":"./StorageSlot.sol","nameLocation":"-1:-1:-1","scope":59623,"sourceUnit":60183,"symbolAliases":[{"foreign":{"id":59326,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60182,"src":"230:11:85","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":59622,"nodeType":"ContractDefinition","src":"426:6273:85","nodes":[{"id":59333,"nodeType":"EventDefinition","src":"710:47:85","nodes":[],"anonymous":false,"documentation":{"id":59329,"nodeType":"StructuredDocumentation","src":"637:68:85","text":" @dev Emitted when the implementation is upgraded."},"eventSelector":"bc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","name":"Upgraded","nameLocation":"716:8:85","parameters":{"id":59332,"nodeType":"ParameterList","parameters":[{"constant":false,"id":59331,"indexed":true,"mutability":"mutable","name":"implementation","nameLocation":"741:14:85","nodeType":"VariableDeclaration","scope":59333,"src":"725:30:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":59330,"name":"address","nodeType":"ElementaryTypeName","src":"725:7:85","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"724:32:85"}},{"id":59340,"nodeType":"EventDefinition","src":"835:60:85","nodes":[],"anonymous":false,"documentation":{"id":59334,"nodeType":"StructuredDocumentation","src":"763:67:85","text":" @dev Emitted when the admin account has changed."},"eventSelector":"7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f","name":"AdminChanged","nameLocation":"841:12:85","parameters":{"id":59339,"nodeType":"ParameterList","parameters":[{"constant":false,"id":59336,"indexed":false,"mutability":"mutable","name":"previousAdmin","nameLocation":"862:13:85","nodeType":"VariableDeclaration","scope":59340,"src":"854:21:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":59335,"name":"address","nodeType":"ElementaryTypeName","src":"854:7:85","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":59338,"indexed":false,"mutability":"mutable","name":"newAdmin","nameLocation":"885:8:85","nodeType":"VariableDeclaration","scope":59340,"src":"877:16:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":59337,"name":"address","nodeType":"ElementaryTypeName","src":"877:7:85","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"853:41:85"}},{"id":59345,"nodeType":"EventDefinition","src":"965:45:85","nodes":[],"anonymous":false,"documentation":{"id":59341,"nodeType":"StructuredDocumentation","src":"901:59:85","text":" @dev Emitted when the beacon is changed."},"eventSelector":"1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e","name":"BeaconUpgraded","nameLocation":"971:14:85","parameters":{"id":59344,"nodeType":"ParameterList","parameters":[{"constant":false,"id":59343,"indexed":true,"mutability":"mutable","name":"beacon","nameLocation":"1002:6:85","nodeType":"VariableDeclaration","scope":59345,"src":"986:22:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":59342,"name":"address","nodeType":"ElementaryTypeName","src":"986:7:85","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"985:24:85"}},{"id":59349,"nodeType":"VariableDeclaration","src":"1256:114:85","nodes":[],"constant":true,"documentation":{"id":59346,"nodeType":"StructuredDocumentation","src":"1016:170:85","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:85","scope":59622,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":59347,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1256:7:85","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307833363038393461313362613161333231303636376338323834393264623938646361336532303736636333373335613932306133636135303564333832626263","id":59348,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1304:66:85","typeDescriptions":{"typeIdentifier":"t_rational_24440054405305269366569402256811496959409073762505157381672968839269610695612_by_1","typeString":"int_const 2444...(69 digits omitted)...5612"},"value":"0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc"},"visibility":"internal"},{"id":59354,"nodeType":"ErrorDefinition","src":"1451:59:85","nodes":[],"documentation":{"id":59350,"nodeType":"StructuredDocumentation","src":"1377:69:85","text":" @dev The `implementation` of the proxy is invalid."},"errorSelector":"4c9c8ce3","name":"ERC1967InvalidImplementation","nameLocation":"1457:28:85","parameters":{"id":59353,"nodeType":"ParameterList","parameters":[{"constant":false,"id":59352,"mutability":"mutable","name":"implementation","nameLocation":"1494:14:85","nodeType":"VariableDeclaration","scope":59354,"src":"1486:22:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":59351,"name":"address","nodeType":"ElementaryTypeName","src":"1486:7:85","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1485:24:85"}},{"id":59359,"nodeType":"ErrorDefinition","src":"1581:41:85","nodes":[],"documentation":{"id":59355,"nodeType":"StructuredDocumentation","src":"1516:60:85","text":" @dev The `admin` of the proxy is invalid."},"errorSelector":"62e77ba2","name":"ERC1967InvalidAdmin","nameLocation":"1587:19:85","parameters":{"id":59358,"nodeType":"ParameterList","parameters":[{"constant":false,"id":59357,"mutability":"mutable","name":"admin","nameLocation":"1615:5:85","nodeType":"VariableDeclaration","scope":59359,"src":"1607:13:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":59356,"name":"address","nodeType":"ElementaryTypeName","src":"1607:7:85","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1606:15:85"}},{"id":59364,"nodeType":"ErrorDefinition","src":"1694:43:85","nodes":[],"documentation":{"id":59360,"nodeType":"StructuredDocumentation","src":"1628:61:85","text":" @dev The `beacon` of the proxy is invalid."},"errorSelector":"64ced0ec","name":"ERC1967InvalidBeacon","nameLocation":"1700:20:85","parameters":{"id":59363,"nodeType":"ParameterList","parameters":[{"constant":false,"id":59362,"mutability":"mutable","name":"beacon","nameLocation":"1729:6:85","nodeType":"VariableDeclaration","scope":59364,"src":"1721:14:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":59361,"name":"address","nodeType":"ElementaryTypeName","src":"1721:7:85","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1720:16:85"}},{"id":59367,"nodeType":"ErrorDefinition","src":"1830:26:85","nodes":[],"documentation":{"id":59365,"nodeType":"StructuredDocumentation","src":"1743:82:85","text":" @dev An upgrade function sees `msg.value > 0` that may be lost."},"errorSelector":"b398979f","name":"ERC1967NonPayable","nameLocation":"1836:17:85","parameters":{"id":59366,"nodeType":"ParameterList","parameters":[],"src":"1853:2:85"}},{"id":59380,"nodeType":"FunctionDefinition","src":"1934:138:85","nodes":[],"body":{"id":59379,"nodeType":"Block","src":"1995:77:85","nodes":[],"statements":[{"expression":{"expression":{"arguments":[{"id":59375,"name":"IMPLEMENTATION_SLOT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59349,"src":"2039:19:85","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":59373,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60182,"src":"2012:11:85","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$60182_$","typeString":"type(library StorageSlot)"}},"id":59374,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2024:14:85","memberName":"getAddressSlot","nodeType":"MemberAccess","referencedDeclaration":60104,"src":"2012:26:85","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_AddressSlot_$60078_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.AddressSlot storage pointer)"}},"id":59376,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2012:47:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$60078_storage_ptr","typeString":"struct StorageSlot.AddressSlot storage pointer"}},"id":59377,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2060:5:85","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":60077,"src":"2012:53:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":59372,"id":59378,"nodeType":"Return","src":"2005:60:85"}]},"documentation":{"id":59368,"nodeType":"StructuredDocumentation","src":"1862:67:85","text":" @dev Returns the current implementation address."},"implemented":true,"kind":"function","modifiers":[],"name":"getImplementation","nameLocation":"1943:17:85","parameters":{"id":59369,"nodeType":"ParameterList","parameters":[],"src":"1960:2:85"},"returnParameters":{"id":59372,"nodeType":"ParameterList","parameters":[{"constant":false,"id":59371,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":59380,"src":"1986:7:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":59370,"name":"address","nodeType":"ElementaryTypeName","src":"1986:7:85","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1985:9:85"},"scope":59622,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":59407,"nodeType":"FunctionDefinition","src":"2163:281:85","nodes":[],"body":{"id":59406,"nodeType":"Block","src":"2226:218:85","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":59390,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":59386,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59383,"src":"2240:17:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":59387,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2258:4:85","memberName":"code","nodeType":"MemberAccess","src":"2240:22:85","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":59388,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2263:6:85","memberName":"length","nodeType":"MemberAccess","src":"2240:29:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":59389,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2273:1:85","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2240:34:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":59396,"nodeType":"IfStatement","src":"2236:119:85","trueBody":{"id":59395,"nodeType":"Block","src":"2276:79:85","statements":[{"errorCall":{"arguments":[{"id":59392,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59383,"src":"2326:17:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":59391,"name":"ERC1967InvalidImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59354,"src":"2297:28:85","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$_t_error_$","typeString":"function (address) pure returns (error)"}},"id":59393,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2297:47:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":59394,"nodeType":"RevertStatement","src":"2290:54:85"}]}},{"expression":{"id":59404,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"arguments":[{"id":59400,"name":"IMPLEMENTATION_SLOT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59349,"src":"2391:19:85","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":59397,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60182,"src":"2364:11:85","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$60182_$","typeString":"type(library StorageSlot)"}},"id":59399,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2376:14:85","memberName":"getAddressSlot","nodeType":"MemberAccess","referencedDeclaration":60104,"src":"2364:26:85","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_AddressSlot_$60078_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.AddressSlot storage pointer)"}},"id":59401,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2364:47:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$60078_storage_ptr","typeString":"struct StorageSlot.AddressSlot storage pointer"}},"id":59402,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2412:5:85","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":60077,"src":"2364:53:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":59403,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59383,"src":"2420:17:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2364:73:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":59405,"nodeType":"ExpressionStatement","src":"2364:73:85"}]},"documentation":{"id":59381,"nodeType":"StructuredDocumentation","src":"2078:80:85","text":" @dev Stores a new address in the EIP1967 implementation slot."},"implemented":true,"kind":"function","modifiers":[],"name":"_setImplementation","nameLocation":"2172:18:85","parameters":{"id":59384,"nodeType":"ParameterList","parameters":[{"constant":false,"id":59383,"mutability":"mutable","name":"newImplementation","nameLocation":"2199:17:85","nodeType":"VariableDeclaration","scope":59407,"src":"2191:25:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":59382,"name":"address","nodeType":"ElementaryTypeName","src":"2191:7:85","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2190:27:85"},"returnParameters":{"id":59385,"nodeType":"ParameterList","parameters":[],"src":"2226:0:85"},"scope":59622,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":59441,"nodeType":"FunctionDefinition","src":"2756:335:85","nodes":[],"body":{"id":59440,"nodeType":"Block","src":"2837:254:85","nodes":[],"statements":[{"expression":{"arguments":[{"id":59416,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59410,"src":"2866:17:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":59415,"name":"_setImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59407,"src":"2847:18:85","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":59417,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2847:37:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":59418,"nodeType":"ExpressionStatement","src":"2847:37:85"},{"eventCall":{"arguments":[{"id":59420,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59410,"src":"2908:17:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":59419,"name":"Upgraded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59333,"src":"2899:8:85","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":59421,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2899:27:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":59422,"nodeType":"EmitStatement","src":"2894:32:85"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":59426,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":59423,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59412,"src":"2941:4:85","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":59424,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2946:6:85","memberName":"length","nodeType":"MemberAccess","src":"2941:11:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":59425,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2955:1:85","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2941:15:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":59438,"nodeType":"Block","src":"3042:43:85","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":59435,"name":"_checkNonPayable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59621,"src":"3056:16:85","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":59436,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3056:18:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":59437,"nodeType":"ExpressionStatement","src":"3056:18:85"}]},"id":59439,"nodeType":"IfStatement","src":"2937:148:85","trueBody":{"id":59434,"nodeType":"Block","src":"2958:78:85","statements":[{"expression":{"arguments":[{"id":59430,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59410,"src":"3001:17:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":59431,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59412,"src":"3020:4:85","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":59427,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59281,"src":"2972:7:85","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Address_$59281_$","typeString":"type(library Address)"}},"id":59429,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2980:20:85","memberName":"functionDelegateCall","nodeType":"MemberAccess","referencedDeclaration":59200,"src":"2972:28:85","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":59432,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2972:53:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":59433,"nodeType":"ExpressionStatement","src":"2972:53:85"}]}}]},"documentation":{"id":59408,"nodeType":"StructuredDocumentation","src":"2450:301:85","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:85","parameters":{"id":59413,"nodeType":"ParameterList","parameters":[{"constant":false,"id":59410,"mutability":"mutable","name":"newImplementation","nameLocation":"2790:17:85","nodeType":"VariableDeclaration","scope":59441,"src":"2782:25:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":59409,"name":"address","nodeType":"ElementaryTypeName","src":"2782:7:85","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":59412,"mutability":"mutable","name":"data","nameLocation":"2822:4:85","nodeType":"VariableDeclaration","scope":59441,"src":"2809:17:85","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":59411,"name":"bytes","nodeType":"ElementaryTypeName","src":"2809:5:85","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2781:46:85"},"returnParameters":{"id":59414,"nodeType":"ParameterList","parameters":[],"src":"2837:0:85"},"scope":59622,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":59445,"nodeType":"VariableDeclaration","src":"3312:105:85","nodes":[],"constant":true,"documentation":{"id":59442,"nodeType":"StructuredDocumentation","src":"3097:145:85","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:85","scope":59622,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":59443,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3312:7:85","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307862353331323736383461353638623331373361653133623966386136303136653234336536336236653865653131373864366137313738353062356436313033","id":59444,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3351:66:85","typeDescriptions":{"typeIdentifier":"t_rational_81955473079516046949633743016697847541294818689821282749996681496272635257091_by_1","typeString":"int_const 8195...(69 digits omitted)...7091"},"value":"0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103"},"visibility":"internal"},{"id":59458,"nodeType":"FunctionDefinition","src":"3769:120:85","nodes":[],"body":{"id":59457,"nodeType":"Block","src":"3821:68:85","nodes":[],"statements":[{"expression":{"expression":{"arguments":[{"id":59453,"name":"ADMIN_SLOT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59445,"src":"3865:10:85","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":59451,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60182,"src":"3838:11:85","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$60182_$","typeString":"type(library StorageSlot)"}},"id":59452,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3850:14:85","memberName":"getAddressSlot","nodeType":"MemberAccess","referencedDeclaration":60104,"src":"3838:26:85","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_AddressSlot_$60078_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.AddressSlot storage pointer)"}},"id":59454,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3838:38:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$60078_storage_ptr","typeString":"struct StorageSlot.AddressSlot storage pointer"}},"id":59455,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3877:5:85","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":60077,"src":"3838:44:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":59450,"id":59456,"nodeType":"Return","src":"3831:51:85"}]},"documentation":{"id":59446,"nodeType":"StructuredDocumentation","src":"3424:340:85","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:85","parameters":{"id":59447,"nodeType":"ParameterList","parameters":[],"src":"3786:2:85"},"returnParameters":{"id":59450,"nodeType":"ParameterList","parameters":[{"constant":false,"id":59449,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":59458,"src":"3812:7:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":59448,"name":"address","nodeType":"ElementaryTypeName","src":"3812:7:85","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3811:9:85"},"scope":59622,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":59489,"nodeType":"FunctionDefinition","src":"3971:217:85","nodes":[],"body":{"id":59488,"nodeType":"Block","src":"4016:172:85","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":59469,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":59464,"name":"newAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59461,"src":"4030:8:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":59467,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4050:1:85","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":59466,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4042:7:85","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":59465,"name":"address","nodeType":"ElementaryTypeName","src":"4042:7:85","typeDescriptions":{}}},"id":59468,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4042:10:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4030:22:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":59478,"nodeType":"IfStatement","src":"4026:91:85","trueBody":{"id":59477,"nodeType":"Block","src":"4054:63:85","statements":[{"errorCall":{"arguments":[{"arguments":[{"hexValue":"30","id":59473,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4103:1:85","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":59472,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4095:7:85","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":59471,"name":"address","nodeType":"ElementaryTypeName","src":"4095:7:85","typeDescriptions":{}}},"id":59474,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4095:10:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":59470,"name":"ERC1967InvalidAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59359,"src":"4075:19:85","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$_t_error_$","typeString":"function (address) pure returns (error)"}},"id":59475,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4075:31:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":59476,"nodeType":"RevertStatement","src":"4068:38:85"}]}},{"expression":{"id":59486,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"arguments":[{"id":59482,"name":"ADMIN_SLOT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59445,"src":"4153:10:85","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":59479,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60182,"src":"4126:11:85","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$60182_$","typeString":"type(library StorageSlot)"}},"id":59481,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4138:14:85","memberName":"getAddressSlot","nodeType":"MemberAccess","referencedDeclaration":60104,"src":"4126:26:85","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_AddressSlot_$60078_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.AddressSlot storage pointer)"}},"id":59483,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4126:38:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$60078_storage_ptr","typeString":"struct StorageSlot.AddressSlot storage pointer"}},"id":59484,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4165:5:85","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":60077,"src":"4126:44:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":59485,"name":"newAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59461,"src":"4173:8:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4126:55:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":59487,"nodeType":"ExpressionStatement","src":"4126:55:85"}]},"documentation":{"id":59459,"nodeType":"StructuredDocumentation","src":"3895:71:85","text":" @dev Stores a new address in the EIP1967 admin slot."},"implemented":true,"kind":"function","modifiers":[],"name":"_setAdmin","nameLocation":"3980:9:85","parameters":{"id":59462,"nodeType":"ParameterList","parameters":[{"constant":false,"id":59461,"mutability":"mutable","name":"newAdmin","nameLocation":"3998:8:85","nodeType":"VariableDeclaration","scope":59489,"src":"3990:16:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":59460,"name":"address","nodeType":"ElementaryTypeName","src":"3990:7:85","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3989:18:85"},"returnParameters":{"id":59463,"nodeType":"ParameterList","parameters":[],"src":"4016:0:85"},"scope":59622,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":59506,"nodeType":"FunctionDefinition","src":"4308:133:85","nodes":[],"body":{"id":59505,"nodeType":"Block","src":"4356:85:85","nodes":[],"statements":[{"eventCall":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":59496,"name":"getAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59458,"src":"4384:8:85","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":59497,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4384:10:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":59498,"name":"newAdmin","nodeType":"Identifier","overloadedDeclarations"