1 line
72 KiB
JSON
1 line
72 KiB
JSON
{"abi":[{"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":"0x6080806040523460175760399081601c823930815050f35b5f80fdfe5f80fdfea264697066735822122008e27455331254ec978a61f9011617f31b21e7523e770aa384a85e26f24f97b164736f6c634300081e0033","sourceMap":"496:5741:39:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x5f80fdfea264697066735822122008e27455331254ec978a61f9011617f31b21e7523e770aa384a85e26f24f97b164736f6c634300081e0033","sourceMap":"496:5741:39:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.30+commit.73712a01\"},\"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\"}],\"devdoc\":{\"details\":\"This library provides getters and event emitting update functions for https://eips.ethereum.org/EIPS/eip-1967[ERC-1967] 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.\"}]},\"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\":{\"node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol\":\"ERC1967Utils\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@ensdomains/=node_modules/@ensdomains/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"],\"viaIR\":true},\"sources\":{\"node_modules/@openzeppelin/contracts/interfaces/IERC1967.sol\":{\"keccak256\":\"0xbf2aefe54b76d7f7bcd4f6da1080b7b1662611937d870b880db584d09cea56b5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5e7e2f12e0feec75296e57f51f82fdaa8bd1551f4b8cc6560442c0bf60f818c\",\"dweb:/ipfs/QmcW9wDMaQ8RbQibMarfp17a3bABzY5KraWe2YDwuUrUoz\"]},\"node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0xa1ad192cd45317c788618bef5cb1fb3ca4ce8b230f6433ac68cc1d850fb81618\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b43447bb85a53679d269a403c693b9d88d6c74177dfb35eddca63abaf7cf110a\",\"dweb:/ipfs/QmXSDmpd4bNZj1PDgegr6C4w1jDaWHXCconC3rYiw9TSkQ\"]},\"node_modules/@openzeppelin/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0x20462ddb2665e9521372c76b001d0ce196e59dbbd989de9af5576cad0bd5628b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f417fd12aeec8fbfaceaa30e3a08a0724c0bc39de363e2acf6773c897abbaf6d\",\"dweb:/ipfs/QmU4Hko6sApdweVM92CsiuLKkCk8HfyBeutF89PCTz5Tye\"]},\"node_modules/@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0x6d0ae6e206645341fd122d278c2cb643dea260c190531f2f3f6a0426e77b00c0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://032d1201d839435be2c85b72e33206b3ea980c569d6ebf7fa57d811ab580a82f\",\"dweb:/ipfs/QmeqQjAtMvdZT2tG7zm39itcRJkuwu8AEReK6WRnLJ18DD\"]},\"node_modules/@openzeppelin/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"node_modules/@openzeppelin/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.30+commit.73712a01"},"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"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@ensdomains/=node_modules/@ensdomains/","@openzeppelin/=node_modules/@openzeppelin/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol":"ERC1967Utils"},"evmVersion":"prague","libraries":{},"viaIR":true},"sources":{"node_modules/@openzeppelin/contracts/interfaces/IERC1967.sol":{"keccak256":"0xbf2aefe54b76d7f7bcd4f6da1080b7b1662611937d870b880db584d09cea56b5","urls":["bzz-raw://f5e7e2f12e0feec75296e57f51f82fdaa8bd1551f4b8cc6560442c0bf60f818c","dweb:/ipfs/QmcW9wDMaQ8RbQibMarfp17a3bABzY5KraWe2YDwuUrUoz"],"license":"MIT"},"node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol":{"keccak256":"0xa1ad192cd45317c788618bef5cb1fb3ca4ce8b230f6433ac68cc1d850fb81618","urls":["bzz-raw://b43447bb85a53679d269a403c693b9d88d6c74177dfb35eddca63abaf7cf110a","dweb:/ipfs/QmXSDmpd4bNZj1PDgegr6C4w1jDaWHXCconC3rYiw9TSkQ"],"license":"MIT"},"node_modules/@openzeppelin/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0x20462ddb2665e9521372c76b001d0ce196e59dbbd989de9af5576cad0bd5628b","urls":["bzz-raw://f417fd12aeec8fbfaceaa30e3a08a0724c0bc39de363e2acf6773c897abbaf6d","dweb:/ipfs/QmU4Hko6sApdweVM92CsiuLKkCk8HfyBeutF89PCTz5Tye"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Address.sol":{"keccak256":"0x6d0ae6e206645341fd122d278c2cb643dea260c190531f2f3f6a0426e77b00c0","urls":["bzz-raw://032d1201d839435be2c85b72e33206b3ea980c569d6ebf7fa57d811ab580a82f","dweb:/ipfs/QmeqQjAtMvdZT2tG7zm39itcRJkuwu8AEReK6WRnLJ18DD"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Errors.sol":{"keccak256":"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123","urls":["bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf","dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/StorageSlot.sol":{"keccak256":"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97","urls":["bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b","dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol","id":12525,"exportedSymbols":{"Address":[13398],"ERC1967Utils":[12524],"IBeacon":[12570],"IERC1967":[12041],"StorageSlot":[13574]},"nodeType":"SourceUnit","src":"114:6124:39","nodes":[{"id":12232,"nodeType":"PragmaDirective","src":"114:24:39","nodes":[],"literals":["solidity","^","0.8",".21"]},{"id":12234,"nodeType":"ImportDirective","src":"140:46:39","nodes":[],"absolutePath":"node_modules/@openzeppelin/contracts/proxy/beacon/IBeacon.sol","file":"../beacon/IBeacon.sol","nameLocation":"-1:-1:-1","scope":12525,"sourceUnit":12571,"symbolAliases":[{"foreign":{"id":12233,"name":"IBeacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12570,"src":"148:7:39","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":12236,"nodeType":"ImportDirective","src":"187:55:39","nodes":[],"absolutePath":"node_modules/@openzeppelin/contracts/interfaces/IERC1967.sol","file":"../../interfaces/IERC1967.sol","nameLocation":"-1:-1:-1","scope":12525,"sourceUnit":12042,"symbolAliases":[{"foreign":{"id":12235,"name":"IERC1967","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12041,"src":"195:8:39","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":12238,"nodeType":"ImportDirective","src":"243:48:39","nodes":[],"absolutePath":"node_modules/@openzeppelin/contracts/utils/Address.sol","file":"../../utils/Address.sol","nameLocation":"-1:-1:-1","scope":12525,"sourceUnit":13399,"symbolAliases":[{"foreign":{"id":12237,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13398,"src":"251:7:39","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":12240,"nodeType":"ImportDirective","src":"292:56:39","nodes":[],"absolutePath":"node_modules/@openzeppelin/contracts/utils/StorageSlot.sol","file":"../../utils/StorageSlot.sol","nameLocation":"-1:-1:-1","scope":12525,"sourceUnit":13575,"symbolAliases":[{"foreign":{"id":12239,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13574,"src":"300:11:39","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":12524,"nodeType":"ContractDefinition","src":"496:5741:39","nodes":[{"id":12245,"nodeType":"VariableDeclaration","src":"763:114:39","nodes":[],"constant":true,"documentation":{"id":12242,"nodeType":"StructuredDocumentation","src":"523:170:39","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":"789:19:39","scope":12524,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12243,"name":"bytes32","nodeType":"ElementaryTypeName","src":"763:7:39","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307833363038393461313362613161333231303636376338323834393264623938646361336532303736636333373335613932306133636135303564333832626263","id":12244,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"811:66:39","typeDescriptions":{"typeIdentifier":"t_rational_24440054405305269366569402256811496959409073762505157381672968839269610695612_by_1","typeString":"int_const 2444...(69 digits omitted)...5612"},"value":"0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc"},"visibility":"internal"},{"id":12250,"nodeType":"ErrorDefinition","src":"958:59:39","nodes":[],"documentation":{"id":12246,"nodeType":"StructuredDocumentation","src":"884:69:39","text":" @dev The `implementation` of the proxy is invalid."},"errorSelector":"4c9c8ce3","name":"ERC1967InvalidImplementation","nameLocation":"964:28:39","parameters":{"id":12249,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12248,"mutability":"mutable","name":"implementation","nameLocation":"1001:14:39","nodeType":"VariableDeclaration","scope":12250,"src":"993:22:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12247,"name":"address","nodeType":"ElementaryTypeName","src":"993:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"992:24:39"}},{"id":12255,"nodeType":"ErrorDefinition","src":"1088:41:39","nodes":[],"documentation":{"id":12251,"nodeType":"StructuredDocumentation","src":"1023:60:39","text":" @dev The `admin` of the proxy is invalid."},"errorSelector":"62e77ba2","name":"ERC1967InvalidAdmin","nameLocation":"1094:19:39","parameters":{"id":12254,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12253,"mutability":"mutable","name":"admin","nameLocation":"1122:5:39","nodeType":"VariableDeclaration","scope":12255,"src":"1114:13:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12252,"name":"address","nodeType":"ElementaryTypeName","src":"1114:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1113:15:39"}},{"id":12260,"nodeType":"ErrorDefinition","src":"1201:43:39","nodes":[],"documentation":{"id":12256,"nodeType":"StructuredDocumentation","src":"1135:61:39","text":" @dev The `beacon` of the proxy is invalid."},"errorSelector":"64ced0ec","name":"ERC1967InvalidBeacon","nameLocation":"1207:20:39","parameters":{"id":12259,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12258,"mutability":"mutable","name":"beacon","nameLocation":"1236:6:39","nodeType":"VariableDeclaration","scope":12260,"src":"1228:14:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12257,"name":"address","nodeType":"ElementaryTypeName","src":"1228:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1227:16:39"}},{"id":12263,"nodeType":"ErrorDefinition","src":"1337:26:39","nodes":[],"documentation":{"id":12261,"nodeType":"StructuredDocumentation","src":"1250:82:39","text":" @dev An upgrade function sees `msg.value > 0` that may be lost."},"errorSelector":"b398979f","name":"ERC1967NonPayable","nameLocation":"1343:17:39","parameters":{"id":12262,"nodeType":"ParameterList","parameters":[],"src":"1360:2:39"}},{"id":12276,"nodeType":"FunctionDefinition","src":"1441:138:39","nodes":[],"body":{"id":12275,"nodeType":"Block","src":"1502:77:39","nodes":[],"statements":[{"expression":{"expression":{"arguments":[{"id":12271,"name":"IMPLEMENTATION_SLOT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12245,"src":"1546:19:39","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":12269,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13574,"src":"1519:11:39","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$13574_$","typeString":"type(library StorageSlot)"}},"id":12270,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1531:14:39","memberName":"getAddressSlot","nodeType":"MemberAccess","referencedDeclaration":13485,"src":"1519:26:39","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_AddressSlot_$13456_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.AddressSlot storage pointer)"}},"id":12272,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1519:47:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$13456_storage_ptr","typeString":"struct StorageSlot.AddressSlot storage pointer"}},"id":12273,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1567:5:39","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":13455,"src":"1519:53:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":12268,"id":12274,"nodeType":"Return","src":"1512:60:39"}]},"documentation":{"id":12264,"nodeType":"StructuredDocumentation","src":"1369:67:39","text":" @dev Returns the current implementation address."},"implemented":true,"kind":"function","modifiers":[],"name":"getImplementation","nameLocation":"1450:17:39","parameters":{"id":12265,"nodeType":"ParameterList","parameters":[],"src":"1467:2:39"},"returnParameters":{"id":12268,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12267,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12276,"src":"1493:7:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12266,"name":"address","nodeType":"ElementaryTypeName","src":"1493:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1492:9:39"},"scope":12524,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":12303,"nodeType":"FunctionDefinition","src":"1671:281:39","nodes":[],"body":{"id":12302,"nodeType":"Block","src":"1734:218:39","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12286,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":12282,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12279,"src":"1748:17:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":12283,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1766:4:39","memberName":"code","nodeType":"MemberAccess","src":"1748:22:39","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":12284,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1771:6:39","memberName":"length","nodeType":"MemberAccess","src":"1748:29:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":12285,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1781:1:39","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1748:34:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12292,"nodeType":"IfStatement","src":"1744:119:39","trueBody":{"id":12291,"nodeType":"Block","src":"1784:79:39","statements":[{"errorCall":{"arguments":[{"id":12288,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12279,"src":"1834:17:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":12287,"name":"ERC1967InvalidImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12250,"src":"1805:28:39","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$_t_error_$","typeString":"function (address) pure returns (error)"}},"id":12289,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1805:47:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":12290,"nodeType":"RevertStatement","src":"1798:54:39"}]}},{"expression":{"id":12300,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"arguments":[{"id":12296,"name":"IMPLEMENTATION_SLOT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12245,"src":"1899:19:39","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":12293,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13574,"src":"1872:11:39","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$13574_$","typeString":"type(library StorageSlot)"}},"id":12295,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1884:14:39","memberName":"getAddressSlot","nodeType":"MemberAccess","referencedDeclaration":13485,"src":"1872:26:39","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_AddressSlot_$13456_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.AddressSlot storage pointer)"}},"id":12297,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1872:47:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$13456_storage_ptr","typeString":"struct StorageSlot.AddressSlot storage pointer"}},"id":12298,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1920:5:39","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":13455,"src":"1872:53:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":12299,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12279,"src":"1928:17:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1872:73:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":12301,"nodeType":"ExpressionStatement","src":"1872:73:39"}]},"documentation":{"id":12277,"nodeType":"StructuredDocumentation","src":"1585:81:39","text":" @dev Stores a new address in the ERC-1967 implementation slot."},"implemented":true,"kind":"function","modifiers":[],"name":"_setImplementation","nameLocation":"1680:18:39","parameters":{"id":12280,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12279,"mutability":"mutable","name":"newImplementation","nameLocation":"1707:17:39","nodeType":"VariableDeclaration","scope":12303,"src":"1699:25:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12278,"name":"address","nodeType":"ElementaryTypeName","src":"1699:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1698:27:39"},"returnParameters":{"id":12281,"nodeType":"ParameterList","parameters":[],"src":"1734:0:39"},"scope":12524,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":12339,"nodeType":"FunctionDefinition","src":"2264:344:39","nodes":[],"body":{"id":12338,"nodeType":"Block","src":"2345:263:39","nodes":[],"statements":[{"expression":{"arguments":[{"id":12312,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12306,"src":"2374:17:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":12311,"name":"_setImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12303,"src":"2355:18:39","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":12313,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2355:37:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12314,"nodeType":"ExpressionStatement","src":"2355:37:39"},{"eventCall":{"arguments":[{"id":12318,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12306,"src":"2425:17:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":12315,"name":"IERC1967","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12041,"src":"2407:8:39","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC1967_$12041_$","typeString":"type(contract IERC1967)"}},"id":12317,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2416:8:39","memberName":"Upgraded","nodeType":"MemberAccess","referencedDeclaration":12028,"src":"2407:17:39","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":12319,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2407:36:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12320,"nodeType":"EmitStatement","src":"2402:41:39"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12324,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":12321,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12308,"src":"2458:4:39","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":12322,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2463:6:39","memberName":"length","nodeType":"MemberAccess","src":"2458:11:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":12323,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2472:1:39","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2458:15:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":12336,"nodeType":"Block","src":"2559:43:39","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":12333,"name":"_checkNonPayable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12523,"src":"2573:16:39","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":12334,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2573:18:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12335,"nodeType":"ExpressionStatement","src":"2573:18:39"}]},"id":12337,"nodeType":"IfStatement","src":"2454:148:39","trueBody":{"id":12332,"nodeType":"Block","src":"2475:78:39","statements":[{"expression":{"arguments":[{"id":12328,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12306,"src":"2518:17:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12329,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12308,"src":"2537:4:39","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":12325,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13398,"src":"2489:7:39","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Address_$13398_$","typeString":"type(library Address)"}},"id":12327,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2497:20:39","memberName":"functionDelegateCall","nodeType":"MemberAccess","referencedDeclaration":13315,"src":"2489:28:39","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":12330,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2489:53:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":12331,"nodeType":"ExpressionStatement","src":"2489:53:39"}]}}]},"documentation":{"id":12304,"nodeType":"StructuredDocumentation","src":"1958:301:39","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":"2273:16:39","parameters":{"id":12309,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12306,"mutability":"mutable","name":"newImplementation","nameLocation":"2298:17:39","nodeType":"VariableDeclaration","scope":12339,"src":"2290:25:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12305,"name":"address","nodeType":"ElementaryTypeName","src":"2290:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12308,"mutability":"mutable","name":"data","nameLocation":"2330:4:39","nodeType":"VariableDeclaration","scope":12339,"src":"2317:17:39","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":12307,"name":"bytes","nodeType":"ElementaryTypeName","src":"2317:5:39","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2289:46:39"},"returnParameters":{"id":12310,"nodeType":"ParameterList","parameters":[],"src":"2345:0:39"},"scope":12524,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":12343,"nodeType":"VariableDeclaration","src":"2829:105:39","nodes":[],"constant":true,"documentation":{"id":12340,"nodeType":"StructuredDocumentation","src":"2614:145:39","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":"2855:10:39","scope":12524,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12341,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2829:7:39","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307862353331323736383461353638623331373361653133623966386136303136653234336536336236653865653131373864366137313738353062356436313033","id":12342,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2868:66:39","typeDescriptions":{"typeIdentifier":"t_rational_81955473079516046949633743016697847541294818689821282749996681496272635257091_by_1","typeString":"int_const 8195...(69 digits omitted)...7091"},"value":"0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103"},"visibility":"internal"},{"id":12356,"nodeType":"FunctionDefinition","src":"3287:120:39","nodes":[],"body":{"id":12355,"nodeType":"Block","src":"3339:68:39","nodes":[],"statements":[{"expression":{"expression":{"arguments":[{"id":12351,"name":"ADMIN_SLOT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12343,"src":"3383:10:39","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":12349,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13574,"src":"3356:11:39","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$13574_$","typeString":"type(library StorageSlot)"}},"id":12350,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3368:14:39","memberName":"getAddressSlot","nodeType":"MemberAccess","referencedDeclaration":13485,"src":"3356:26:39","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_AddressSlot_$13456_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.AddressSlot storage pointer)"}},"id":12352,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3356:38:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$13456_storage_ptr","typeString":"struct StorageSlot.AddressSlot storage pointer"}},"id":12353,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3395:5:39","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":13455,"src":"3356:44:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":12348,"id":12354,"nodeType":"Return","src":"3349:51:39"}]},"documentation":{"id":12344,"nodeType":"StructuredDocumentation","src":"2941:341:39","text":" @dev Returns the current admin.\n TIP: To get this value clients can read directly from the storage slot shown below (specified by ERC-1967) 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":"3296:8:39","parameters":{"id":12345,"nodeType":"ParameterList","parameters":[],"src":"3304:2:39"},"returnParameters":{"id":12348,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12347,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12356,"src":"3330:7:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12346,"name":"address","nodeType":"ElementaryTypeName","src":"3330:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3329:9:39"},"scope":12524,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":12387,"nodeType":"FunctionDefinition","src":"3490:217:39","nodes":[],"body":{"id":12386,"nodeType":"Block","src":"3535:172:39","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":12367,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12362,"name":"newAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12359,"src":"3549:8:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":12365,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3569:1:39","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":12364,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3561:7:39","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":12363,"name":"address","nodeType":"ElementaryTypeName","src":"3561:7:39","typeDescriptions":{}}},"id":12366,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3561:10:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3549:22:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12376,"nodeType":"IfStatement","src":"3545:91:39","trueBody":{"id":12375,"nodeType":"Block","src":"3573:63:39","statements":[{"errorCall":{"arguments":[{"arguments":[{"hexValue":"30","id":12371,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3622:1:39","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":12370,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3614:7:39","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":12369,"name":"address","nodeType":"ElementaryTypeName","src":"3614:7:39","typeDescriptions":{}}},"id":12372,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3614:10:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":12368,"name":"ERC1967InvalidAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12255,"src":"3594:19:39","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$_t_error_$","typeString":"function (address) pure returns (error)"}},"id":12373,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3594:31:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":12374,"nodeType":"RevertStatement","src":"3587:38:39"}]}},{"expression":{"id":12384,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"arguments":[{"id":12380,"name":"ADMIN_SLOT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12343,"src":"3672:10:39","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":12377,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13574,"src":"3645:11:39","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$13574_$","typeString":"type(library StorageSlot)"}},"id":12379,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3657:14:39","memberName":"getAddressSlot","nodeType":"MemberAccess","referencedDeclaration":13485,"src":"3645:26:39","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_AddressSlot_$13456_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.AddressSlot storage pointer)"}},"id":12381,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3645:38:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$13456_storage_ptr","typeString":"struct StorageSlot.AddressSlot storage pointer"}},"id":12382,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3684:5:39","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":13455,"src":"3645:44:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":12383,"name":"newAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12359,"src":"3692:8:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3645:55:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":12385,"nodeType":"ExpressionStatement","src":"3645:55:39"}]},"documentation":{"id":12357,"nodeType":"StructuredDocumentation","src":"3413:72:39","text":" @dev Stores a new address in the ERC-1967 admin slot."},"implemented":true,"kind":"function","modifiers":[],"name":"_setAdmin","nameLocation":"3499:9:39","parameters":{"id":12360,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12359,"mutability":"mutable","name":"newAdmin","nameLocation":"3517:8:39","nodeType":"VariableDeclaration","scope":12387,"src":"3509:16:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12358,"name":"address","nodeType":"ElementaryTypeName","src":"3509:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3508:18:39"},"returnParameters":{"id":12361,"nodeType":"ParameterList","parameters":[],"src":"3535:0:39"},"scope":12524,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":12406,"nodeType":"FunctionDefinition","src":"3827:142:39","nodes":[],"body":{"id":12405,"nodeType":"Block","src":"3875:94:39","nodes":[],"statements":[{"eventCall":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":12396,"name":"getAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12356,"src":"3912:8:39","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":12397,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3912:10:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12398,"name":"newAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12390,"src":"3924:8:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":12393,"name":"IERC1967","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12041,"src":"3890:8:39","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC1967_$12041_$","typeString":"type(contract IERC1967)"}},"id":12395,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3899:12:39","memberName":"AdminChanged","nodeType":"MemberAccess","referencedDeclaration":12035,"src":"3890:21:39","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":12399,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3890:43:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12400,"nodeType":"EmitStatement","src":"3885:48:39"},{"expression":{"arguments":[{"id":12402,"name":"newAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12390,"src":"3953:8:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":12401,"name":"_setAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12387,"src":"3943:9:39","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":12403,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3943:19:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12404,"nodeType":"ExpressionStatement","src":"3943:19:39"}]},"documentation":{"id":12388,"nodeType":"StructuredDocumentation","src":"3713:109:39","text":" @dev Changes the admin of the proxy.\n Emits an {IERC1967-AdminChanged} event."},"implemented":true,"kind":"function","modifiers":[],"name":"changeAdmin","nameLocation":"3836:11:39","parameters":{"id":12391,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12390,"mutability":"mutable","name":"newAdmin","nameLocation":"3856:8:39","nodeType":"VariableDeclaration","scope":12406,"src":"3848:16:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12389,"name":"address","nodeType":"ElementaryTypeName","src":"3848:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3847:18:39"},"returnParameters":{"id":12392,"nodeType":"ParameterList","parameters":[],"src":"3875:0:39"},"scope":12524,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":12410,"nodeType":"VariableDeclaration","src":"4246:106:39","nodes":[],"constant":true,"documentation":{"id":12407,"nodeType":"StructuredDocumentation","src":"3975:201:39","text":" @dev The storage slot of the UpgradeableBeacon contract which defines the implementation for this proxy.\n This is the keccak-256 hash of \"eip1967.proxy.beacon\" subtracted by 1."},"mutability":"constant","name":"BEACON_SLOT","nameLocation":"4272:11:39","scope":12524,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12408,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4246:7:39","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307861336630616437346535343233616562666438306433656634333436353738333335613961373261656165653539666636636233353832623335313333643530","id":12409,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4286:66:39","typeDescriptions":{"typeIdentifier":"t_rational_74152234768234802001998023604048924213078445070507226371336425913862612794704_by_1","typeString":"int_const 7415...(69 digits omitted)...4704"},"value":"0xa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d50"},"visibility":"internal"},{"id":12423,"nodeType":"FunctionDefinition","src":"4415:122:39","nodes":[],"body":{"id":12422,"nodeType":"Block","src":"4468:69:39","nodes":[],"statements":[{"expression":{"expression":{"arguments":[{"id":12418,"name":"BEACON_SLOT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12410,"src":"4512:11:39","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":12416,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13574,"src":"4485:11:39","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$13574_$","typeString":"type(library StorageSlot)"}},"id":12417,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4497:14:39","memberName":"getAddressSlot","nodeType":"MemberAccess","referencedDeclaration":13485,"src":"4485:26:39","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_AddressSlot_$13456_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.AddressSlot storage pointer)"}},"id":12419,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4485:39:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$13456_storage_ptr","typeString":"struct StorageSlot.AddressSlot storage pointer"}},"id":12420,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4525:5:39","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":13455,"src":"4485:45:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":12415,"id":12421,"nodeType":"Return","src":"4478:52:39"}]},"documentation":{"id":12411,"nodeType":"StructuredDocumentation","src":"4359:51:39","text":" @dev Returns the current beacon."},"implemented":true,"kind":"function","modifiers":[],"name":"getBeacon","nameLocation":"4424:9:39","parameters":{"id":12412,"nodeType":"ParameterList","parameters":[],"src":"4433:2:39"},"returnParameters":{"id":12415,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12414,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12423,"src":"4459:7:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12413,"name":"address","nodeType":"ElementaryTypeName","src":"4459:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4458:9:39"},"scope":12524,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":12469,"nodeType":"FunctionDefinition","src":"4620:437:39","nodes":[],"body":{"id":12468,"nodeType":"Block","src":"4667:390:39","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12433,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":12429,"name":"newBeacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12426,"src":"4681:9:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":12430,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4691:4:39","memberName":"code","nodeType":"MemberAccess","src":"4681:14:39","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":12431,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4696:6:39","memberName":"length","nodeType":"MemberAccess","src":"4681:21:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":12432,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4706:1:39","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4681:26:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12439,"nodeType":"IfStatement","src":"4677:95:39","trueBody":{"id":12438,"nodeType":"Block","src":"4709:63:39","statements":[{"errorCall":{"arguments":[{"id":12435,"name":"newBeacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12426,"src":"4751:9:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":12434,"name":"ERC1967InvalidBeacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12260,"src":"4730:20:39","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$_t_error_$","typeString":"function (address) pure returns (error)"}},"id":12436,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4730:31:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":12437,"nodeType":"RevertStatement","src":"4723:38:39"}]}},{"expression":{"id":12447,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"arguments":[{"id":12443,"name":"BEACON_SLOT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12410,"src":"4809:11:39","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":12440,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13574,"src":"4782:11:39","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$13574_$","typeString":"type(library StorageSlot)"}},"id":12442,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4794:14:39","memberName":"getAddressSlot","nodeType":"MemberAccess","referencedDeclaration":13485,"src":"4782:26:39","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_AddressSlot_$13456_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.AddressSlot storage pointer)"}},"id":12444,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4782:39:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$13456_storage_ptr","typeString":"struct StorageSlot.AddressSlot storage pointer"}},"id":12445,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4822:5:39","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":13455,"src":"4782:45:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":12446,"name":"newBeacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12426,"src":"4830:9:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4782:57:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":12448,"nodeType":"ExpressionStatement","src":"4782:57:39"},{"assignments":[12450],"declarations":[{"constant":false,"id":12450,"mutability":"mutable","name":"beaconImplementation","nameLocation":"4858:20:39","nodeType":"VariableDeclaration","scope":12468,"src":"4850:28:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12449,"name":"address","nodeType":"ElementaryTypeName","src":"4850:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":12456,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":12452,"name":"newBeacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12426,"src":"4889:9:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":12451,"name":"IBeacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12570,"src":"4881:7:39","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IBeacon_$12570_$","typeString":"type(contract IBeacon)"}},"id":12453,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4881:18:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IBeacon_$12570","typeString":"contract IBeacon"}},"id":12454,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4900:14:39","memberName":"implementation","nodeType":"MemberAccess","referencedDeclaration":12569,"src":"4881:33:39","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":12455,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4881:35:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"4850:66:39"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12461,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":12457,"name":"beaconImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12450,"src":"4930:20:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":12458,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4951:4:39","memberName":"code","nodeType":"MemberAccess","src":"4930:25:39","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":12459,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4956:6:39","memberName":"length","nodeType":"MemberAccess","src":"4930:32:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":12460,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4966:1:39","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4930:37:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12467,"nodeType":"IfStatement","src":"4926:125:39","trueBody":{"id":12466,"nodeType":"Block","src":"4969:82:39","statements":[{"errorCall":{"arguments":[{"id":12463,"name":"beaconImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12450,"src":"5019:20:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":12462,"name":"ERC1967InvalidImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12250,"src":"4990:28:39","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$_t_error_$","typeString":"function (address) pure returns (error)"}},"id":12464,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4990:50:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":12465,"nodeType":"RevertStatement","src":"4983:57:39"}]}}]},"documentation":{"id":12424,"nodeType":"StructuredDocumentation","src":"4543:72:39","text":" @dev Stores a new beacon in the ERC-1967 beacon slot."},"implemented":true,"kind":"function","modifiers":[],"name":"_setBeacon","nameLocation":"4629:10:39","parameters":{"id":12427,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12426,"mutability":"mutable","name":"newBeacon","nameLocation":"4648:9:39","nodeType":"VariableDeclaration","scope":12469,"src":"4640:17:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12425,"name":"address","nodeType":"ElementaryTypeName","src":"4640:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4639:19:39"},"returnParameters":{"id":12428,"nodeType":"ParameterList","parameters":[],"src":"4667:0:39"},"scope":12524,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":12509,"nodeType":"FunctionDefinition","src":"5582:342:39","nodes":[],"body":{"id":12508,"nodeType":"Block","src":"5661:263:39","nodes":[],"statements":[{"expression":{"arguments":[{"id":12478,"name":"newBeacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12472,"src":"5682:9:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":12477,"name":"_setBeacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12469,"src":"5671:10:39","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":12479,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5671:21:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12480,"nodeType":"ExpressionStatement","src":"5671:21:39"},{"eventCall":{"arguments":[{"id":12484,"name":"newBeacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12472,"src":"5731:9:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":12481,"name":"IERC1967","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12041,"src":"5707:8:39","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC1967_$12041_$","typeString":"type(contract IERC1967)"}},"id":12483,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5716:14:39","memberName":"BeaconUpgraded","nodeType":"MemberAccess","referencedDeclaration":12040,"src":"5707:23:39","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":12485,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5707:34:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12486,"nodeType":"EmitStatement","src":"5702:39:39"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12490,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":12487,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12474,"src":"5756:4:39","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":12488,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5761:6:39","memberName":"length","nodeType":"MemberAccess","src":"5756:11:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":12489,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5770:1:39","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5756:15:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":12506,"nodeType":"Block","src":"5875:43:39","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":12503,"name":"_checkNonPayable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12523,"src":"5889:16:39","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":12504,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5889:18:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12505,"nodeType":"ExpressionStatement","src":"5889:18:39"}]},"id":12507,"nodeType":"IfStatement","src":"5752:166:39","trueBody":{"id":12502,"nodeType":"Block","src":"5773:96:39","statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":12495,"name":"newBeacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12472,"src":"5824:9:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":12494,"name":"IBeacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12570,"src":"5816:7:39","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IBeacon_$12570_$","typeString":"type(contract IBeacon)"}},"id":12496,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5816:18:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IBeacon_$12570","typeString":"contract IBeacon"}},"id":12497,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5835:14:39","memberName":"implementation","nodeType":"MemberAccess","referencedDeclaration":12569,"src":"5816:33:39","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":12498,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5816:35:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12499,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12474,"src":"5853:4:39","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":12491,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13398,"src":"5787:7:39","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Address_$13398_$","typeString":"type(library Address)"}},"id":12493,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5795:20:39","memberName":"functionDelegateCall","nodeType":"MemberAccess","referencedDeclaration":13315,"src":"5787:28:39","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":12500,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5787:71:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":12501,"nodeType":"ExpressionStatement","src":"5787:71:39"}]}}]},"documentation":{"id":12470,"nodeType":"StructuredDocumentation","src":"5063:514:39","text":" @dev Change the beacon and trigger a 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-BeaconUpgraded} event.\n CAUTION: Invoking this function has no effect on an instance of {BeaconProxy} since v5, since\n it uses an immutable beacon without looking at the value of the ERC-1967 beacon slot for\n efficiency."},"implemented":true,"kind":"function","modifiers":[],"name":"upgradeBeaconToAndCall","nameLocation":"5591:22:39","parameters":{"id":12475,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12472,"mutability":"mutable","name":"newBeacon","nameLocation":"5622:9:39","nodeType":"VariableDeclaration","scope":12509,"src":"5614:17:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12471,"name":"address","nodeType":"ElementaryTypeName","src":"5614:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12474,"mutability":"mutable","name":"data","nameLocation":"5646:4:39","nodeType":"VariableDeclaration","scope":12509,"src":"5633:17:39","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":12473,"name":"bytes","nodeType":"ElementaryTypeName","src":"5633:5:39","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5613:38:39"},"returnParameters":{"id":12476,"nodeType":"ParameterList","parameters":[],"src":"5661:0:39"},"scope":12524,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":12523,"nodeType":"FunctionDefinition","src":"6113:122:39","nodes":[],"body":{"id":12522,"nodeType":"Block","src":"6149:86:39","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12516,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":12513,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"6163:3:39","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":12514,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6167:5:39","memberName":"value","nodeType":"MemberAccess","src":"6163:9:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":12515,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6175:1:39","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6163:13:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12521,"nodeType":"IfStatement","src":"6159:70:39","trueBody":{"id":12520,"nodeType":"Block","src":"6178:51:39","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":12517,"name":"ERC1967NonPayable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12263,"src":"6199:17:39","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":12518,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6199:19:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":12519,"nodeType":"RevertStatement","src":"6192:26:39"}]}}]},"documentation":{"id":12510,"nodeType":"StructuredDocumentation","src":"5930:178:39","text":" @dev Reverts if `msg.value` is not zero. It can be used to avoid `msg.value` stuck in the contract\n if an upgrade doesn't perform an initialization call."},"implemented":true,"kind":"function","modifiers":[],"name":"_checkNonPayable","nameLocation":"6122:16:39","parameters":{"id":12511,"nodeType":"ParameterList","parameters":[],"src":"6138:2:39"},"returnParameters":{"id":12512,"nodeType":"ParameterList","parameters":[],"src":"6149:0:39"},"scope":12524,"stateMutability":"nonpayable","virtual":false,"visibility":"private"}],"abstract":false,"baseContracts":[],"canonicalName":"ERC1967Utils","contractDependencies":[],"contractKind":"library","documentation":{"id":12241,"nodeType":"StructuredDocumentation","src":"350:145:39","text":" @dev This library provides getters and event emitting update functions for\n https://eips.ethereum.org/EIPS/eip-1967[ERC-1967] slots."},"fullyImplemented":true,"linearizedBaseContracts":[12524],"name":"ERC1967Utils","nameLocation":"504:12:39","scope":12525,"usedErrors":[12250,12255,12260,12263],"usedEvents":[]}],"license":"MIT"},"id":39} |