1 line
53 KiB
JSON
1 line
53 KiB
JSON
{"abi":[{"type":"function","name":"UPGRADE_INTERFACE_VERSION","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"proxiableUUID","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"upgradeToAndCall","inputs":[{"name":"newImplementation","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"Upgraded","inputs":[{"name":"implementation","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1967InvalidImplementation","inputs":[{"name":"implementation","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1967NonPayable","inputs":[]},{"type":"error","name":"FailedCall","inputs":[]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"UUPSUnauthorizedCallContext","inputs":[]},{"type":"error","name":"UUPSUnsupportedProxiableUUID","inputs":[{"name":"slot","type":"bytes32","internalType":"bytes32"}]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"UPGRADE_INTERFACE_VERSION()":"ad3cb1cc","proxiableUUID()":"52d1902d","upgradeToAndCall(address,bytes)":"4f1ef286"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.30+commit.73712a01\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"ERC1967InvalidImplementation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ERC1967NonPayable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UUPSUnauthorizedCallContext\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"slot\",\"type\":\"bytes32\"}],\"name\":\"UUPSUnsupportedProxiableUUID\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"UPGRADE_INTERFACE_VERSION\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"An upgradeability mechanism designed for UUPS proxies. The functions included here can perform an upgrade of an {ERC1967Proxy}, when this contract is set as the implementation behind such a proxy. A security mechanism ensures that an upgrade does not turn off upgradeability accidentally, although this risk is reinstated if the upgrade retains upgradeability but removes the security mechanism, e.g. by replacing `UUPSUpgradeable` with a custom implementation of upgrades. The {_authorizeUpgrade} function must be overridden to include access restriction to the upgrade mechanism.\",\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"ERC1967InvalidImplementation(address)\":[{\"details\":\"The `implementation` of the proxy is invalid.\"}],\"ERC1967NonPayable()\":[{\"details\":\"An upgrade function sees `msg.value > 0` that may be lost.\"}],\"FailedCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"UUPSUnauthorizedCallContext()\":[{\"details\":\"The call is from an unauthorized context.\"}],\"UUPSUnsupportedProxiableUUID(bytes32)\":[{\"details\":\"The storage `slot` is unsupported as a UUID.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{\"proxiableUUID()\":{\"details\":\"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier.\"},\"upgradeToAndCall(address,bytes)\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"}},\"stateVariables\":{\"UPGRADE_INTERFACE_VERSION\":{\"details\":\"The version of the upgrade interface of the contract. If this getter is missing, both `upgradeTo(address)` and `upgradeToAndCall(address,bytes)` are present, and `upgradeTo` must be used if no function should be called, while `upgradeToAndCall` will invoke the `receive` function if the second argument is the empty byte string. If the getter returns `\\\"5.0.0\\\"`, only `upgradeToAndCall(address,bytes)` is present, and the second argument must be the empty byte string if no function should be called, making it impossible to invoke the `receive` function during an upgrade.\"},\"__self\":{\"custom:oz-upgrades-unsafe-allow\":\"state-variable-immutable\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol\":\"UUPSUpgradeable\"},\"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-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0xdb4d24ee2c087c391d587cd17adfe5b3f9d93b3110b1388c2ab6c7c0ad1dcd05\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab7b6d5b9e2b88176312967fe0f0e78f3d9a1422fa5e4b64e2440c35869b5d08\",\"dweb:/ipfs/QmXKYWWyzcLg1B2k7Sb1qkEXgLCYfXecR9wYW5obRzWP1Q\"]},\"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol\":{\"keccak256\":\"0x574a7451e42724f7de29e2855c392a8a5020acd695169466a18459467d719d63\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5bc189f63b639ee173dd7b6fecc39baf7113bf161776aea22b34c57fdd1872ec\",\"dweb:/ipfs/QmZAf2VtjDLRULqjJkde6LNsxAg12tUqpPqgUQQZbAjgtZ\"]},\"node_modules/@openzeppelin/contracts/interfaces/IERC1967.sol\":{\"keccak256\":\"0xbf2aefe54b76d7f7bcd4f6da1080b7b1662611937d870b880db584d09cea56b5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5e7e2f12e0feec75296e57f51f82fdaa8bd1551f4b8cc6560442c0bf60f818c\",\"dweb:/ipfs/QmcW9wDMaQ8RbQibMarfp17a3bABzY5KraWe2YDwuUrUoz\"]},\"node_modules/@openzeppelin/contracts/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0x82f757819bf2429a0d4db141b99a4bbe5039e4ef86dfb94e2e6d40577ed5b28b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://37c30ed931e19fb71fdb806bb504cfdb9913b7127545001b64d4487783374422\",\"dweb:/ipfs/QmUBHpv4hm3ZmwJ4GH8BeVzK4mv41Q6vBbWXxn8HExPXza\"]},\"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":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"inputs":[{"internalType":"address","name":"implementation","type":"address"}],"type":"error","name":"ERC1967InvalidImplementation"},{"inputs":[],"type":"error","name":"ERC1967NonPayable"},{"inputs":[],"type":"error","name":"FailedCall"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[],"type":"error","name":"UUPSUnauthorizedCallContext"},{"inputs":[{"internalType":"bytes32","name":"slot","type":"bytes32"}],"type":"error","name":"UUPSUnsupportedProxiableUUID"},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"address","name":"implementation","type":"address","indexed":true}],"type":"event","name":"Upgraded","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"UPGRADE_INTERFACE_VERSION","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"proxiableUUID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"payable","type":"function","name":"upgradeToAndCall"}],"devdoc":{"kind":"dev","methods":{"proxiableUUID()":{"details":"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier."},"upgradeToAndCall(address,bytes)":{"custom:oz-upgrades-unsafe-allow-reachable":"delegatecall","details":"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event."}},"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-upgradeable/proxy/utils/UUPSUpgradeable.sol":"UUPSUpgradeable"},"evmVersion":"prague","libraries":{},"viaIR":true},"sources":{"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol":{"keccak256":"0xdb4d24ee2c087c391d587cd17adfe5b3f9d93b3110b1388c2ab6c7c0ad1dcd05","urls":["bzz-raw://ab7b6d5b9e2b88176312967fe0f0e78f3d9a1422fa5e4b64e2440c35869b5d08","dweb:/ipfs/QmXKYWWyzcLg1B2k7Sb1qkEXgLCYfXecR9wYW5obRzWP1Q"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol":{"keccak256":"0x574a7451e42724f7de29e2855c392a8a5020acd695169466a18459467d719d63","urls":["bzz-raw://5bc189f63b639ee173dd7b6fecc39baf7113bf161776aea22b34c57fdd1872ec","dweb:/ipfs/QmZAf2VtjDLRULqjJkde6LNsxAg12tUqpPqgUQQZbAjgtZ"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/IERC1967.sol":{"keccak256":"0xbf2aefe54b76d7f7bcd4f6da1080b7b1662611937d870b880db584d09cea56b5","urls":["bzz-raw://f5e7e2f12e0feec75296e57f51f82fdaa8bd1551f4b8cc6560442c0bf60f818c","dweb:/ipfs/QmcW9wDMaQ8RbQibMarfp17a3bABzY5KraWe2YDwuUrUoz"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/draft-IERC1822.sol":{"keccak256":"0x82f757819bf2429a0d4db141b99a4bbe5039e4ef86dfb94e2e6d40577ed5b28b","urls":["bzz-raw://37c30ed931e19fb71fdb806bb504cfdb9913b7127545001b64d4487783374422","dweb:/ipfs/QmUBHpv4hm3ZmwJ4GH8BeVzK4mv41Q6vBbWXxn8HExPXza"],"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-upgradeable/proxy/utils/UUPSUpgradeable.sol","id":10835,"exportedSymbols":{"ERC1967Utils":[12524],"IERC1822Proxiable":[12055],"Initializable":[10652],"UUPSUpgradeable":[10834]},"nodeType":"SourceUnit","src":"115:6458:26","nodes":[{"id":10654,"nodeType":"PragmaDirective","src":"115:24:26","nodes":[],"literals":["solidity","^","0.8",".22"]},{"id":10656,"nodeType":"ImportDirective","src":"141:88:26","nodes":[],"absolutePath":"node_modules/@openzeppelin/contracts/interfaces/draft-IERC1822.sol","file":"@openzeppelin/contracts/interfaces/draft-IERC1822.sol","nameLocation":"-1:-1:-1","scope":10835,"sourceUnit":12056,"symbolAliases":[{"foreign":{"id":10655,"name":"IERC1822Proxiable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12055,"src":"149:17:26","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":10658,"nodeType":"ImportDirective","src":"230:84:26","nodes":[],"absolutePath":"node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol","file":"@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol","nameLocation":"-1:-1:-1","scope":10835,"sourceUnit":12525,"symbolAliases":[{"foreign":{"id":10657,"name":"ERC1967Utils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12524,"src":"238:12:26","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":10660,"nodeType":"ImportDirective","src":"315:50:26","nodes":[],"absolutePath":"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","file":"./Initializable.sol","nameLocation":"-1:-1:-1","scope":10835,"sourceUnit":10653,"symbolAliases":[{"foreign":{"id":10659,"name":"Initializable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10652,"src":"323:13:26","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":10834,"nodeType":"ContractDefinition","src":"986:5586:26","nodes":[{"id":10672,"nodeType":"VariableDeclaration","src":"1128:48:26","nodes":[],"constant":false,"documentation":{"id":10666,"nodeType":"StructuredDocumentation","src":"1062:61:26","text":"@custom:oz-upgrades-unsafe-allow state-variable-immutable"},"mutability":"immutable","name":"__self","nameLocation":"1154:6:26","scope":10834,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10667,"name":"address","nodeType":"ElementaryTypeName","src":"1128:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"id":10670,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1171:4:26","typeDescriptions":{"typeIdentifier":"t_contract$_UUPSUpgradeable_$10834","typeString":"contract UUPSUpgradeable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_UUPSUpgradeable_$10834","typeString":"contract UUPSUpgradeable"}],"id":10669,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1163:7:26","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":10668,"name":"address","nodeType":"ElementaryTypeName","src":"1163:7:26","typeDescriptions":{}}},"id":10671,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1163:13:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"private"},{"id":10676,"nodeType":"VariableDeclaration","src":"1819:58:26","nodes":[],"constant":true,"documentation":{"id":10673,"nodeType":"StructuredDocumentation","src":"1183:631:26","text":" @dev The version of the upgrade interface of the contract. If this getter is missing, both `upgradeTo(address)`\n and `upgradeToAndCall(address,bytes)` are present, and `upgradeTo` must be used if no function should be called,\n while `upgradeToAndCall` will invoke the `receive` function if the second argument is the empty byte string.\n If the getter returns `\"5.0.0\"`, only `upgradeToAndCall(address,bytes)` is present, and the second argument must\n be the empty byte string if no function should be called, making it impossible to invoke the `receive` function\n during an upgrade."},"functionSelector":"ad3cb1cc","mutability":"constant","name":"UPGRADE_INTERFACE_VERSION","nameLocation":"1842:25:26","scope":10834,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10674,"name":"string","nodeType":"ElementaryTypeName","src":"1819:6:26","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"352e302e30","id":10675,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1870:7:26","typeDescriptions":{"typeIdentifier":"t_stringliteral_2ade050ecfcf8ae20ae1d10a23573f9d7e0bad85e74a2cf8338a65401e64558c","typeString":"literal_string \"5.0.0\""},"value":"5.0.0"},"visibility":"public"},{"id":10679,"nodeType":"ErrorDefinition","src":"1954:36:26","nodes":[],"documentation":{"id":10677,"nodeType":"StructuredDocumentation","src":"1884:65:26","text":" @dev The call is from an unauthorized context."},"errorSelector":"e07c8dba","name":"UUPSUnauthorizedCallContext","nameLocation":"1960:27:26","parameters":{"id":10678,"nodeType":"ParameterList","parameters":[],"src":"1987:2:26"}},{"id":10684,"nodeType":"ErrorDefinition","src":"2069:49:26","nodes":[],"documentation":{"id":10680,"nodeType":"StructuredDocumentation","src":"1996:68:26","text":" @dev The storage `slot` is unsupported as a UUID."},"errorSelector":"aa1d49a4","name":"UUPSUnsupportedProxiableUUID","nameLocation":"2075:28:26","parameters":{"id":10683,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10682,"mutability":"mutable","name":"slot","nameLocation":"2112:4:26","nodeType":"VariableDeclaration","scope":10684,"src":"2104:12:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10681,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2104:7:26","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2103:14:26"}},{"id":10692,"nodeType":"ModifierDefinition","src":"2624:62:26","nodes":[],"body":{"id":10691,"nodeType":"Block","src":"2645:41:26","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":10687,"name":"_checkProxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10766,"src":"2655:11:26","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":10688,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2655:13:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10689,"nodeType":"ExpressionStatement","src":"2655:13:26"},{"id":10690,"nodeType":"PlaceholderStatement","src":"2678:1:26"}]},"documentation":{"id":10685,"nodeType":"StructuredDocumentation","src":"2124:495:26","text":" @dev Check that the execution is being performed through a delegatecall call and that the execution context is\n a proxy contract with an implementation (as defined in ERC-1967) pointing to self. This should only be the case\n for UUPS and transparent proxies that are using the current contract as their implementation. Execution of a\n function through ERC-1167 minimal proxies (clones) would not normally pass this test, but is not guaranteed to\n fail."},"name":"onlyProxy","nameLocation":"2633:9:26","parameters":{"id":10686,"nodeType":"ParameterList","parameters":[],"src":"2642:2:26"},"virtual":false,"visibility":"internal"},{"id":10700,"nodeType":"ModifierDefinition","src":"2892:72:26","nodes":[],"body":{"id":10699,"nodeType":"Block","src":"2916:48:26","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":10695,"name":"_checkNotDelegated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10782,"src":"2926:18:26","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":10696,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2926:20:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10697,"nodeType":"ExpressionStatement","src":"2926:20:26"},{"id":10698,"nodeType":"PlaceholderStatement","src":"2956:1:26"}]},"documentation":{"id":10693,"nodeType":"StructuredDocumentation","src":"2692:195:26","text":" @dev Check that the execution is not being performed through a delegate call. This allows a function to be\n callable on the implementing contract but not through proxies."},"name":"notDelegated","nameLocation":"2901:12:26","parameters":{"id":10694,"nodeType":"ParameterList","parameters":[],"src":"2913:2:26"},"virtual":false,"visibility":"internal"},{"id":10706,"nodeType":"FunctionDefinition","src":"2970:67:26","nodes":[],"body":{"id":10705,"nodeType":"Block","src":"3030:7:26","nodes":[],"statements":[]},"implemented":true,"kind":"function","modifiers":[{"id":10703,"kind":"modifierInvocation","modifierName":{"id":10702,"name":"onlyInitializing","nameLocations":["3013:16:26"],"nodeType":"IdentifierPath","referencedDeclaration":10547,"src":"3013:16:26"},"nodeType":"ModifierInvocation","src":"3013:16:26"}],"name":"__UUPSUpgradeable_init","nameLocation":"2979:22:26","parameters":{"id":10701,"nodeType":"ParameterList","parameters":[],"src":"3001:2:26"},"returnParameters":{"id":10704,"nodeType":"ParameterList","parameters":[],"src":"3030:0:26"},"scope":10834,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":10712,"nodeType":"FunctionDefinition","src":"3043:77:26","nodes":[],"body":{"id":10711,"nodeType":"Block","src":"3113:7:26","nodes":[],"statements":[]},"implemented":true,"kind":"function","modifiers":[{"id":10709,"kind":"modifierInvocation","modifierName":{"id":10708,"name":"onlyInitializing","nameLocations":["3096:16:26"],"nodeType":"IdentifierPath","referencedDeclaration":10547,"src":"3096:16:26"},"nodeType":"ModifierInvocation","src":"3096:16:26"}],"name":"__UUPSUpgradeable_init_unchained","nameLocation":"3052:32:26","parameters":{"id":10707,"nodeType":"ParameterList","parameters":[],"src":"3084:2:26"},"returnParameters":{"id":10710,"nodeType":"ParameterList","parameters":[],"src":"3113:0:26"},"scope":10834,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":10724,"nodeType":"FunctionDefinition","src":"3708:134:26","nodes":[],"body":{"id":10723,"nodeType":"Block","src":"3786:56:26","nodes":[],"statements":[{"expression":{"expression":{"id":10720,"name":"ERC1967Utils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12524,"src":"3803:12:26","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC1967Utils_$12524_$","typeString":"type(library ERC1967Utils)"}},"id":10721,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3816:19:26","memberName":"IMPLEMENTATION_SLOT","nodeType":"MemberAccess","referencedDeclaration":12245,"src":"3803:32:26","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":10719,"id":10722,"nodeType":"Return","src":"3796:39:26"}]},"baseFunctions":[12054],"documentation":{"id":10713,"nodeType":"StructuredDocumentation","src":"3125:578:26","text":" @dev Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the\n implementation. It is used to validate the implementation's compatibility when performing an upgrade.\n IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks\n bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this\n function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier."},"functionSelector":"52d1902d","implemented":true,"kind":"function","modifiers":[{"id":10716,"kind":"modifierInvocation","modifierName":{"id":10715,"name":"notDelegated","nameLocations":["3755:12:26"],"nodeType":"IdentifierPath","referencedDeclaration":10700,"src":"3755:12:26"},"nodeType":"ModifierInvocation","src":"3755:12:26"}],"name":"proxiableUUID","nameLocation":"3717:13:26","parameters":{"id":10714,"nodeType":"ParameterList","parameters":[],"src":"3730:2:26"},"returnParameters":{"id":10719,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10718,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10724,"src":"3777:7:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10717,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3777:7:26","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3776:9:26"},"scope":10834,"stateMutability":"view","virtual":true,"visibility":"external"},{"id":10744,"nodeType":"FunctionDefinition","src":"4161:214:26","nodes":[],"body":{"id":10743,"nodeType":"Block","src":"4266:109:26","nodes":[],"statements":[{"expression":{"arguments":[{"id":10735,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10727,"src":"4294:17:26","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":10734,"name":"_authorizeUpgrade","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10788,"src":"4276:17:26","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":10736,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4276:36:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10737,"nodeType":"ExpressionStatement","src":"4276:36:26"},{"expression":{"arguments":[{"id":10739,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10727,"src":"4344:17:26","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":10740,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10729,"src":"4363:4:26","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10738,"name":"_upgradeToAndCallUUPS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10833,"src":"4322:21:26","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,bytes memory)"}},"id":10741,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4322:46:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10742,"nodeType":"ExpressionStatement","src":"4322:46:26"}]},"documentation":{"id":10725,"nodeType":"StructuredDocumentation","src":"3848:308:26","text":" @dev Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call\n encoded in `data`.\n Calls {_authorizeUpgrade}.\n Emits an {Upgraded} event.\n @custom:oz-upgrades-unsafe-allow-reachable delegatecall"},"functionSelector":"4f1ef286","implemented":true,"kind":"function","modifiers":[{"id":10732,"kind":"modifierInvocation","modifierName":{"id":10731,"name":"onlyProxy","nameLocations":["4256:9:26"],"nodeType":"IdentifierPath","referencedDeclaration":10692,"src":"4256:9:26"},"nodeType":"ModifierInvocation","src":"4256:9:26"}],"name":"upgradeToAndCall","nameLocation":"4170:16:26","parameters":{"id":10730,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10727,"mutability":"mutable","name":"newImplementation","nameLocation":"4195:17:26","nodeType":"VariableDeclaration","scope":10744,"src":"4187:25:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10726,"name":"address","nodeType":"ElementaryTypeName","src":"4187:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10729,"mutability":"mutable","name":"data","nameLocation":"4227:4:26","nodeType":"VariableDeclaration","scope":10744,"src":"4214:17:26","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10728,"name":"bytes","nodeType":"ElementaryTypeName","src":"4214:5:26","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4186:46:26"},"returnParameters":{"id":10733,"nodeType":"ParameterList","parameters":[],"src":"4266:0:26"},"scope":10834,"stateMutability":"payable","virtual":true,"visibility":"public"},{"id":10766,"nodeType":"FunctionDefinition","src":"4578:312:26","nodes":[],"body":{"id":10765,"nodeType":"Block","src":"4623:267:26","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":10759,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":10753,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":10750,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"4658:4:26","typeDescriptions":{"typeIdentifier":"t_contract$_UUPSUpgradeable_$10834","typeString":"contract UUPSUpgradeable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_UUPSUpgradeable_$10834","typeString":"contract UUPSUpgradeable"}],"id":10749,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4650:7:26","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":10748,"name":"address","nodeType":"ElementaryTypeName","src":"4650:7:26","typeDescriptions":{}}},"id":10751,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4650:13:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":10752,"name":"__self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10672,"src":"4667:6:26","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4650:23:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":10758,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":10754,"name":"ERC1967Utils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12524,"src":"4728:12:26","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC1967Utils_$12524_$","typeString":"type(library ERC1967Utils)"}},"id":10755,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4741:17:26","memberName":"getImplementation","nodeType":"MemberAccess","referencedDeclaration":12276,"src":"4728:30:26","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":10756,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4728:32:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":10757,"name":"__self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10672,"src":"4764:6:26","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4728:42:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4650:120:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10764,"nodeType":"IfStatement","src":"4633:251:26","trueBody":{"id":10763,"nodeType":"Block","src":"4823:61:26","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":10760,"name":"UUPSUnauthorizedCallContext","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10679,"src":"4844:27:26","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":10761,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4844:29:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":10762,"nodeType":"RevertStatement","src":"4837:36:26"}]}}]},"documentation":{"id":10745,"nodeType":"StructuredDocumentation","src":"4381:192:26","text":" @dev Reverts if the execution is not performed via delegatecall or the execution\n context is not of a proxy with an ERC-1967 compliant implementation pointing to self."},"implemented":true,"kind":"function","modifiers":[],"name":"_checkProxy","nameLocation":"4587:11:26","parameters":{"id":10746,"nodeType":"ParameterList","parameters":[],"src":"4598:2:26"},"returnParameters":{"id":10747,"nodeType":"ParameterList","parameters":[],"src":"4623:0:26"},"scope":10834,"stateMutability":"view","virtual":true,"visibility":"internal"},{"id":10782,"nodeType":"FunctionDefinition","src":"5007:213:26","nodes":[],"body":{"id":10781,"nodeType":"Block","src":"5059:161:26","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":10775,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":10772,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"5081:4:26","typeDescriptions":{"typeIdentifier":"t_contract$_UUPSUpgradeable_$10834","typeString":"contract UUPSUpgradeable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_UUPSUpgradeable_$10834","typeString":"contract UUPSUpgradeable"}],"id":10771,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5073:7:26","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":10770,"name":"address","nodeType":"ElementaryTypeName","src":"5073:7:26","typeDescriptions":{}}},"id":10773,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5073:13:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":10774,"name":"__self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10672,"src":"5090:6:26","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5073:23:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10780,"nodeType":"IfStatement","src":"5069:145:26","trueBody":{"id":10779,"nodeType":"Block","src":"5098:116:26","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":10776,"name":"UUPSUnauthorizedCallContext","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10679,"src":"5174:27:26","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":10777,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5174:29:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":10778,"nodeType":"RevertStatement","src":"5167:36:26"}]}}]},"documentation":{"id":10767,"nodeType":"StructuredDocumentation","src":"4896:106:26","text":" @dev Reverts if the execution is performed via delegatecall.\n See {notDelegated}."},"implemented":true,"kind":"function","modifiers":[],"name":"_checkNotDelegated","nameLocation":"5016:18:26","parameters":{"id":10768,"nodeType":"ParameterList","parameters":[],"src":"5034:2:26"},"returnParameters":{"id":10769,"nodeType":"ParameterList","parameters":[],"src":"5059:0:26"},"scope":10834,"stateMutability":"view","virtual":true,"visibility":"internal"},{"id":10788,"nodeType":"FunctionDefinition","src":"5603:71:26","nodes":[],"documentation":{"id":10783,"nodeType":"StructuredDocumentation","src":"5226:372:26","text":" @dev Function that should revert when `msg.sender` is not authorized to upgrade the contract. Called by\n {upgradeToAndCall}.\n Normally, this function will use an xref:access.adoc[access control] modifier such as {Ownable-onlyOwner}.\n ```solidity\n function _authorizeUpgrade(address) internal onlyOwner {}\n ```"},"implemented":false,"kind":"function","modifiers":[],"name":"_authorizeUpgrade","nameLocation":"5612:17:26","parameters":{"id":10786,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10785,"mutability":"mutable","name":"newImplementation","nameLocation":"5638:17:26","nodeType":"VariableDeclaration","scope":10788,"src":"5630:25:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10784,"name":"address","nodeType":"ElementaryTypeName","src":"5630:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5629:27:26"},"returnParameters":{"id":10787,"nodeType":"ParameterList","parameters":[],"src":"5673:0:26"},"scope":10834,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":10833,"nodeType":"FunctionDefinition","src":"6032:538:26","nodes":[],"body":{"id":10832,"nodeType":"Block","src":"6117:453:26","nodes":[],"statements":[{"clauses":[{"block":{"id":10821,"nodeType":"Block","src":"6207:212:26","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":10807,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10804,"name":"slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10802,"src":"6225:4:26","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":10805,"name":"ERC1967Utils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12524,"src":"6233:12:26","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC1967Utils_$12524_$","typeString":"type(library ERC1967Utils)"}},"id":10806,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6246:19:26","memberName":"IMPLEMENTATION_SLOT","nodeType":"MemberAccess","referencedDeclaration":12245,"src":"6233:32:26","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"6225:40:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10813,"nodeType":"IfStatement","src":"6221:120:26","trueBody":{"id":10812,"nodeType":"Block","src":"6267:74:26","statements":[{"errorCall":{"arguments":[{"id":10809,"name":"slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10802,"src":"6321:4:26","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":10808,"name":"UUPSUnsupportedProxiableUUID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10684,"src":"6292:28:26","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_bytes32_$returns$_t_error_$","typeString":"function (bytes32) pure returns (error)"}},"id":10810,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6292:34:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":10811,"nodeType":"RevertStatement","src":"6285:41:26"}]}},{"expression":{"arguments":[{"id":10817,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10791,"src":"6384:17:26","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":10818,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10793,"src":"6403:4:26","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":10814,"name":"ERC1967Utils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12524,"src":"6354:12:26","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC1967Utils_$12524_$","typeString":"type(library ERC1967Utils)"}},"id":10816,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6367:16:26","memberName":"upgradeToAndCall","nodeType":"MemberAccess","referencedDeclaration":12339,"src":"6354:29:26","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,bytes memory)"}},"id":10819,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6354:54:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10820,"nodeType":"ExpressionStatement","src":"6354:54:26"}]},"errorName":"","id":10822,"nodeType":"TryCatchClause","parameters":{"id":10803,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10802,"mutability":"mutable","name":"slot","nameLocation":"6201:4:26","nodeType":"VariableDeclaration","scope":10822,"src":"6193:12:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10801,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6193:7:26","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"6192:14:26"},"src":"6184:235:26"},{"block":{"id":10829,"nodeType":"Block","src":"6426:138:26","statements":[{"errorCall":{"arguments":[{"id":10826,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10791,"src":"6535:17:26","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":10823,"name":"ERC1967Utils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12524,"src":"6493:12:26","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC1967Utils_$12524_$","typeString":"type(library ERC1967Utils)"}},"id":10825,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6506:28:26","memberName":"ERC1967InvalidImplementation","nodeType":"MemberAccess","referencedDeclaration":12250,"src":"6493:41:26","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$_t_error_$","typeString":"function (address) pure returns (error)"}},"id":10827,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6493:60:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":10828,"nodeType":"RevertStatement","src":"6486:67:26"}]},"errorName":"","id":10830,"nodeType":"TryCatchClause","src":"6420:144:26"}],"externalCall":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":10797,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10791,"src":"6149:17:26","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":10796,"name":"IERC1822Proxiable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12055,"src":"6131:17:26","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC1822Proxiable_$12055_$","typeString":"type(contract IERC1822Proxiable)"}},"id":10798,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6131:36:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC1822Proxiable_$12055","typeString":"contract IERC1822Proxiable"}},"id":10799,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6168:13:26","memberName":"proxiableUUID","nodeType":"MemberAccess","referencedDeclaration":12054,"src":"6131:50:26","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_bytes32_$","typeString":"function () view external returns (bytes32)"}},"id":10800,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6131:52:26","tryCall":true,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":10831,"nodeType":"TryStatement","src":"6127:437:26"}]},"documentation":{"id":10789,"nodeType":"StructuredDocumentation","src":"5680:347:26","text":" @dev Performs an implementation upgrade with a security check for UUPS proxies, and additional setup call.\n As a security check, {proxiableUUID} is invoked in the new implementation, and the return value\n is expected to be the implementation slot in ERC-1967.\n Emits an {IERC1967-Upgraded} event."},"implemented":true,"kind":"function","modifiers":[],"name":"_upgradeToAndCallUUPS","nameLocation":"6041:21:26","parameters":{"id":10794,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10791,"mutability":"mutable","name":"newImplementation","nameLocation":"6071:17:26","nodeType":"VariableDeclaration","scope":10833,"src":"6063:25:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10790,"name":"address","nodeType":"ElementaryTypeName","src":"6063:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10793,"mutability":"mutable","name":"data","nameLocation":"6103:4:26","nodeType":"VariableDeclaration","scope":10833,"src":"6090:17:26","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10792,"name":"bytes","nodeType":"ElementaryTypeName","src":"6090:5:26","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6062:46:26"},"returnParameters":{"id":10795,"nodeType":"ParameterList","parameters":[],"src":"6117:0:26"},"scope":10834,"stateMutability":"nonpayable","virtual":false,"visibility":"private"}],"abstract":true,"baseContracts":[{"baseName":{"id":10662,"name":"Initializable","nameLocations":["1023:13:26"],"nodeType":"IdentifierPath","referencedDeclaration":10652,"src":"1023:13:26"},"id":10663,"nodeType":"InheritanceSpecifier","src":"1023:13:26"},{"baseName":{"id":10664,"name":"IERC1822Proxiable","nameLocations":["1038:17:26"],"nodeType":"IdentifierPath","referencedDeclaration":12055,"src":"1038:17:26"},"id":10665,"nodeType":"InheritanceSpecifier","src":"1038:17:26"}],"canonicalName":"UUPSUpgradeable","contractDependencies":[],"contractKind":"contract","documentation":{"id":10661,"nodeType":"StructuredDocumentation","src":"367:618:26","text":" @dev An upgradeability mechanism designed for UUPS proxies. The functions included here can perform an upgrade of an\n {ERC1967Proxy}, when this contract is set as the implementation behind such a proxy.\n A security mechanism ensures that an upgrade does not turn off upgradeability accidentally, although this risk is\n reinstated if the upgrade retains upgradeability but removes the security mechanism, e.g. by replacing\n `UUPSUpgradeable` with a custom implementation of upgrades.\n The {_authorizeUpgrade} function must be overridden to include access restriction to the upgrade mechanism."},"fullyImplemented":false,"linearizedBaseContracts":[10834,12055,10652],"name":"UUPSUpgradeable","nameLocation":"1004:15:26","scope":10835,"usedErrors":[10401,10404,10679,10684,12250,12263,13148,13441],"usedEvents":[10409,12028]}],"license":"MIT"},"id":26} |