UNPKG

@tokamak-network/thanos-contracts

Version:
1 lines 79.7 kB
{"abi":[{"type":"event","name":"AdminChanged","inputs":[{"name":"previousAdmin","type":"address","indexed":false,"internalType":"address"},{"name":"newAdmin","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"BeaconUpgraded","inputs":[{"name":"beacon","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Upgraded","inputs":[{"name":"implementation","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"ERC1967InvalidAdmin","inputs":[{"name":"admin","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1967InvalidBeacon","inputs":[{"name":"beacon","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1967InvalidImplementation","inputs":[{"name":"implementation","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1967NonPayable","inputs":[]}],"bytecode":{"object":"0x602c6032600b8282823980515f1a607314602657634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f80fdfea164736f6c6343000814000a","sourceMap":"449:6273:32:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;449:6273:32;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x730000000000000000000000000000000000000000301460806040525f80fdfea164736f6c6343000814000a","sourceMap":"449:6273:32:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"}],\"name\":\"ERC1967InvalidAdmin\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"beacon\",\"type\":\"address\"}],\"name\":\"ERC1967InvalidBeacon\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"ERC1967InvalidImplementation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ERC1967NonPayable\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"previousAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"AdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"beacon\",\"type\":\"address\"}],\"name\":\"BeaconUpgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"}],\"devdoc\":{\"details\":\"This abstract contract provides getters and event emitting update functions for https://eips.ethereum.org/EIPS/eip-1967[EIP1967] slots.\",\"errors\":{\"ERC1967InvalidAdmin(address)\":[{\"details\":\"The `admin` of the proxy is invalid.\"}],\"ERC1967InvalidBeacon(address)\":[{\"details\":\"The `beacon` of the proxy is invalid.\"}],\"ERC1967InvalidImplementation(address)\":[{\"details\":\"The `implementation` of the proxy is invalid.\"}],\"ERC1967NonPayable()\":[{\"details\":\"An upgrade function sees `msg.value > 0` that may be lost.\"}]},\"events\":{\"AdminChanged(address,address)\":{\"details\":\"Emitted when the admin account has changed.\"},\"BeaconUpgraded(address)\":{\"details\":\"Emitted when the beacon is changed.\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{},\"stateVariables\":{\"ADMIN_SLOT\":{\"details\":\"Storage slot with the admin of the contract. This is the keccak-256 hash of \\\"eip1967.proxy.admin\\\" subtracted by 1.\"},\"BEACON_SLOT\":{\"details\":\"The storage slot of the UpgradeableBeacon contract which defines the implementation for this proxy. This is the keccak-256 hash of \\\"eip1967.proxy.beacon\\\" subtracted by 1.\"},\"IMPLEMENTATION_SLOT\":{\"details\":\"Storage slot with the address of the current implementation. This is the keccak-256 hash of \\\"eip1967.proxy.implementation\\\" subtracted by 1.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts_v5.0.1/contracts/proxy/ERC1967/ERC1967Utils.sol\":\"ERC1967Utils\"},\"evmVersion\":\"shanghai\",\"libraries\":{\"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/FiatTokenV2_2.sol:SignatureChecker\":\"0x4200000000000000000000000000000000000776\"},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@openzeppelin/contracts_v3.1.0/=lib/openzeppelin-contracts_v3.1.0/contracts/\",\":@openzeppelin/contracts_v5.0.1/=lib/openzeppelin-contracts_v5.0.1/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":automate/=lib/automate/contracts/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts_v5.0.1/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":gelato/=lib/automate/contracts/\",\":hardhat/=lib/automate/node_modules/hardhat/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin-contracts_v3.1.0/=lib/openzeppelin-contracts_v3.1.0/contracts/\",\":openzeppelin-contracts_v5.0.1/=lib/openzeppelin-contracts_v5.0.1/\",\":prb-test/=lib/automate/lib/prb-test/src/\",\":prb/-est/=lib/automate/lib/prb-test/src/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts_v5.0.1/contracts/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0x06a78f9b3ee3e6d0eb4e4cd635ba49960bea34cac1db8c0a27c75f2319f1fd65\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://547d21aa17f4f3f1a1a7edf7167beff8dd9496a0348d5588f15cc8a4b29d052a\",\"dweb:/ipfs/QmT16JtRQSWNpLo9W23jr6CzaMuTAcQcjJJcdRd8HLJ6cE\"]},\"lib/openzeppelin-contracts_v5.0.1/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa\",\"dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM\"]},\"lib/openzeppelin-contracts_v5.0.1/contracts/utils/Address.sol\":{\"keccak256\":\"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245\",\"dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y\"]},\"lib/openzeppelin-contracts_v5.0.1/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0x32ba59b4b7299237c8ba56319110989d7978a039faf754793064e967e5894418\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1ae50c8b562427df610cc4540c9bf104acca7ef8e2dcae567ae7e52272281e9c\",\"dweb:/ipfs/QmTHiadFCSJUPpRjNegc5SahmeU8bAoY8i9Aq6tVscbcKR\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"admin","type":"address"}],"type":"error","name":"ERC1967InvalidAdmin"},{"inputs":[{"internalType":"address","name":"beacon","type":"address"}],"type":"error","name":"ERC1967InvalidBeacon"},{"inputs":[{"internalType":"address","name":"implementation","type":"address"}],"type":"error","name":"ERC1967InvalidImplementation"},{"inputs":[],"type":"error","name":"ERC1967NonPayable"},{"inputs":[{"internalType":"address","name":"previousAdmin","type":"address","indexed":false},{"internalType":"address","name":"newAdmin","type":"address","indexed":false}],"type":"event","name":"AdminChanged","anonymous":false},{"inputs":[{"internalType":"address","name":"beacon","type":"address","indexed":true}],"type":"event","name":"BeaconUpgraded","anonymous":false},{"inputs":[{"internalType":"address","name":"implementation","type":"address","indexed":true}],"type":"event","name":"Upgraded","anonymous":false}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@openzeppelin/contracts_v3.1.0/=lib/openzeppelin-contracts_v3.1.0/contracts/","@openzeppelin/contracts_v5.0.1/=lib/openzeppelin-contracts_v5.0.1/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","automate/=lib/automate/contracts/","ds-test/=lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts_v5.0.1/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","gelato/=lib/automate/contracts/","hardhat/=lib/automate/node_modules/hardhat/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin-contracts_v3.1.0/=lib/openzeppelin-contracts_v3.1.0/contracts/","openzeppelin-contracts_v5.0.1/=lib/openzeppelin-contracts_v5.0.1/","prb-test/=lib/automate/lib/prb-test/src/","prb/-est/=lib/automate/lib/prb-test/src/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/openzeppelin-contracts_v5.0.1/contracts/proxy/ERC1967/ERC1967Utils.sol":"ERC1967Utils"},"evmVersion":"shanghai","libraries":{"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/FiatTokenV2_2.sol:SignatureChecker":"0x4200000000000000000000000000000000000776"}},"sources":{"lib/openzeppelin-contracts_v5.0.1/contracts/proxy/ERC1967/ERC1967Utils.sol":{"keccak256":"0x06a78f9b3ee3e6d0eb4e4cd635ba49960bea34cac1db8c0a27c75f2319f1fd65","urls":["bzz-raw://547d21aa17f4f3f1a1a7edf7167beff8dd9496a0348d5588f15cc8a4b29d052a","dweb:/ipfs/QmT16JtRQSWNpLo9W23jr6CzaMuTAcQcjJJcdRd8HLJ6cE"],"license":"MIT"},"lib/openzeppelin-contracts_v5.0.1/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c","urls":["bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa","dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM"],"license":"MIT"},"lib/openzeppelin-contracts_v5.0.1/contracts/utils/Address.sol":{"keccak256":"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721","urls":["bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245","dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y"],"license":"MIT"},"lib/openzeppelin-contracts_v5.0.1/contracts/utils/StorageSlot.sol":{"keccak256":"0x32ba59b4b7299237c8ba56319110989d7978a039faf754793064e967e5894418","urls":["bzz-raw://1ae50c8b562427df610cc4540c9bf104acca7ef8e2dcae567ae7e52272281e9c","dweb:/ipfs/QmTHiadFCSJUPpRjNegc5SahmeU8bAoY8i9Aq6tVscbcKR"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","details":"This abstract contract provides getters and event emitting update functions for https://eips.ethereum.org/EIPS/eip-1967[EIP1967] slots.","events":{"AdminChanged(address,address)":{"details":"Emitted when the admin account has changed."},"BeaconUpgraded(address)":{"details":"Emitted when the beacon is changed."},"Upgraded(address)":{"details":"Emitted when the implementation is upgraded."}},"errors":{"ERC1967InvalidAdmin(address)":[{"details":"The `admin` of the proxy is invalid."}],"ERC1967InvalidBeacon(address)":[{"details":"The `beacon` of the proxy is invalid."}],"ERC1967InvalidImplementation(address)":[{"details":"The `implementation` of the proxy is invalid."}],"ERC1967NonPayable()":[{"details":"An upgrade function sees `msg.value > 0` that may be lost."}]}},"ast":{"absolutePath":"lib/openzeppelin-contracts_v5.0.1/contracts/proxy/ERC1967/ERC1967Utils.sol","id":47996,"exportedSymbols":{"Address":[48698],"ERC1967Utils":[47995],"IBeacon":[48041],"StorageSlot":[48808]},"nodeType":"SourceUnit","src":"114:6609:32","nodes":[{"id":47694,"nodeType":"PragmaDirective","src":"114:24:32","nodes":[],"literals":["solidity","^","0.8",".20"]},{"id":47696,"nodeType":"ImportDirective","src":"140:46:32","nodes":[],"absolutePath":"lib/openzeppelin-contracts_v5.0.1/contracts/proxy/beacon/IBeacon.sol","file":"../beacon/IBeacon.sol","nameLocation":"-1:-1:-1","scope":47996,"sourceUnit":48042,"symbolAliases":[{"foreign":{"id":47695,"name":"IBeacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48041,"src":"148:7:32","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":47698,"nodeType":"ImportDirective","src":"187:48:32","nodes":[],"absolutePath":"lib/openzeppelin-contracts_v5.0.1/contracts/utils/Address.sol","file":"../../utils/Address.sol","nameLocation":"-1:-1:-1","scope":47996,"sourceUnit":48699,"symbolAliases":[{"foreign":{"id":47697,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48698,"src":"195:7:32","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":47700,"nodeType":"ImportDirective","src":"236:56:32","nodes":[],"absolutePath":"lib/openzeppelin-contracts_v5.0.1/contracts/utils/StorageSlot.sol","file":"../../utils/StorageSlot.sol","nameLocation":"-1:-1:-1","scope":47996,"sourceUnit":48809,"symbolAliases":[{"foreign":{"id":47699,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48808,"src":"244:11:32","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":47995,"nodeType":"ContractDefinition","src":"449:6273:32","nodes":[{"id":47706,"nodeType":"EventDefinition","src":"733:47:32","nodes":[],"anonymous":false,"documentation":{"id":47702,"nodeType":"StructuredDocumentation","src":"660:68:32","text":" @dev Emitted when the implementation is upgraded."},"eventSelector":"bc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","name":"Upgraded","nameLocation":"739:8:32","parameters":{"id":47705,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47704,"indexed":true,"mutability":"mutable","name":"implementation","nameLocation":"764:14:32","nodeType":"VariableDeclaration","scope":47706,"src":"748:30:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47703,"name":"address","nodeType":"ElementaryTypeName","src":"748:7:32","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"747:32:32"}},{"id":47713,"nodeType":"EventDefinition","src":"858:60:32","nodes":[],"anonymous":false,"documentation":{"id":47707,"nodeType":"StructuredDocumentation","src":"786:67:32","text":" @dev Emitted when the admin account has changed."},"eventSelector":"7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f","name":"AdminChanged","nameLocation":"864:12:32","parameters":{"id":47712,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47709,"indexed":false,"mutability":"mutable","name":"previousAdmin","nameLocation":"885:13:32","nodeType":"VariableDeclaration","scope":47713,"src":"877:21:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47708,"name":"address","nodeType":"ElementaryTypeName","src":"877:7:32","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":47711,"indexed":false,"mutability":"mutable","name":"newAdmin","nameLocation":"908:8:32","nodeType":"VariableDeclaration","scope":47713,"src":"900:16:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47710,"name":"address","nodeType":"ElementaryTypeName","src":"900:7:32","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"876:41:32"}},{"id":47718,"nodeType":"EventDefinition","src":"988:45:32","nodes":[],"anonymous":false,"documentation":{"id":47714,"nodeType":"StructuredDocumentation","src":"924:59:32","text":" @dev Emitted when the beacon is changed."},"eventSelector":"1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e","name":"BeaconUpgraded","nameLocation":"994:14:32","parameters":{"id":47717,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47716,"indexed":true,"mutability":"mutable","name":"beacon","nameLocation":"1025:6:32","nodeType":"VariableDeclaration","scope":47718,"src":"1009:22:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47715,"name":"address","nodeType":"ElementaryTypeName","src":"1009:7:32","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1008:24:32"}},{"id":47722,"nodeType":"VariableDeclaration","src":"1279:114:32","nodes":[],"constant":true,"documentation":{"id":47719,"nodeType":"StructuredDocumentation","src":"1039:170:32","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":"1305:19:32","scope":47995,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":47720,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1279:7:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307833363038393461313362613161333231303636376338323834393264623938646361336532303736636333373335613932306133636135303564333832626263","id":47721,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1327:66:32","typeDescriptions":{"typeIdentifier":"t_rational_24440054405305269366569402256811496959409073762505157381672968839269610695612_by_1","typeString":"int_const 2444...(69 digits omitted)...5612"},"value":"0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc"},"visibility":"internal"},{"id":47727,"nodeType":"ErrorDefinition","src":"1474:59:32","nodes":[],"documentation":{"id":47723,"nodeType":"StructuredDocumentation","src":"1400:69:32","text":" @dev The `implementation` of the proxy is invalid."},"errorSelector":"4c9c8ce3","name":"ERC1967InvalidImplementation","nameLocation":"1480:28:32","parameters":{"id":47726,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47725,"mutability":"mutable","name":"implementation","nameLocation":"1517:14:32","nodeType":"VariableDeclaration","scope":47727,"src":"1509:22:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47724,"name":"address","nodeType":"ElementaryTypeName","src":"1509:7:32","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1508:24:32"}},{"id":47732,"nodeType":"ErrorDefinition","src":"1604:41:32","nodes":[],"documentation":{"id":47728,"nodeType":"StructuredDocumentation","src":"1539:60:32","text":" @dev The `admin` of the proxy is invalid."},"errorSelector":"62e77ba2","name":"ERC1967InvalidAdmin","nameLocation":"1610:19:32","parameters":{"id":47731,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47730,"mutability":"mutable","name":"admin","nameLocation":"1638:5:32","nodeType":"VariableDeclaration","scope":47732,"src":"1630:13:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47729,"name":"address","nodeType":"ElementaryTypeName","src":"1630:7:32","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1629:15:32"}},{"id":47737,"nodeType":"ErrorDefinition","src":"1717:43:32","nodes":[],"documentation":{"id":47733,"nodeType":"StructuredDocumentation","src":"1651:61:32","text":" @dev The `beacon` of the proxy is invalid."},"errorSelector":"64ced0ec","name":"ERC1967InvalidBeacon","nameLocation":"1723:20:32","parameters":{"id":47736,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47735,"mutability":"mutable","name":"beacon","nameLocation":"1752:6:32","nodeType":"VariableDeclaration","scope":47737,"src":"1744:14:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47734,"name":"address","nodeType":"ElementaryTypeName","src":"1744:7:32","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1743:16:32"}},{"id":47740,"nodeType":"ErrorDefinition","src":"1853:26:32","nodes":[],"documentation":{"id":47738,"nodeType":"StructuredDocumentation","src":"1766:82:32","text":" @dev An upgrade function sees `msg.value > 0` that may be lost."},"errorSelector":"b398979f","name":"ERC1967NonPayable","nameLocation":"1859:17:32","parameters":{"id":47739,"nodeType":"ParameterList","parameters":[],"src":"1876:2:32"}},{"id":47753,"nodeType":"FunctionDefinition","src":"1957:138:32","nodes":[],"body":{"id":47752,"nodeType":"Block","src":"2018:77:32","nodes":[],"statements":[{"expression":{"expression":{"arguments":[{"id":47748,"name":"IMPLEMENTATION_SLOT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47722,"src":"2062:19:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":47746,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48808,"src":"2035:11:32","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$48808_$","typeString":"type(library StorageSlot)"}},"id":47747,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2047:14:32","memberName":"getAddressSlot","nodeType":"MemberAccess","referencedDeclaration":48730,"src":"2035:26:32","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_AddressSlot_$48704_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.AddressSlot storage pointer)"}},"id":47749,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2035:47:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$48704_storage_ptr","typeString":"struct StorageSlot.AddressSlot storage pointer"}},"id":47750,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2083:5:32","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":48703,"src":"2035:53:32","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":47745,"id":47751,"nodeType":"Return","src":"2028:60:32"}]},"documentation":{"id":47741,"nodeType":"StructuredDocumentation","src":"1885:67:32","text":" @dev Returns the current implementation address."},"implemented":true,"kind":"function","modifiers":[],"name":"getImplementation","nameLocation":"1966:17:32","parameters":{"id":47742,"nodeType":"ParameterList","parameters":[],"src":"1983:2:32"},"returnParameters":{"id":47745,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47744,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":47753,"src":"2009:7:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47743,"name":"address","nodeType":"ElementaryTypeName","src":"2009:7:32","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2008:9:32"},"scope":47995,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":47780,"nodeType":"FunctionDefinition","src":"2186:281:32","nodes":[],"body":{"id":47779,"nodeType":"Block","src":"2249:218:32","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":47763,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":47759,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47756,"src":"2263:17:32","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":47760,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2281:4:32","memberName":"code","nodeType":"MemberAccess","src":"2263:22:32","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":47761,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2286:6:32","memberName":"length","nodeType":"MemberAccess","src":"2263:29:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":47762,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2296:1:32","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2263:34:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":47769,"nodeType":"IfStatement","src":"2259:119:32","trueBody":{"id":47768,"nodeType":"Block","src":"2299:79:32","statements":[{"errorCall":{"arguments":[{"id":47765,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47756,"src":"2349:17:32","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":47764,"name":"ERC1967InvalidImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47727,"src":"2320:28:32","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":47766,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2320:47:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47767,"nodeType":"RevertStatement","src":"2313:54:32"}]}},{"expression":{"id":47777,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"arguments":[{"id":47773,"name":"IMPLEMENTATION_SLOT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47722,"src":"2414:19:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":47770,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48808,"src":"2387:11:32","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$48808_$","typeString":"type(library StorageSlot)"}},"id":47772,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2399:14:32","memberName":"getAddressSlot","nodeType":"MemberAccess","referencedDeclaration":48730,"src":"2387:26:32","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_AddressSlot_$48704_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.AddressSlot storage pointer)"}},"id":47774,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2387:47:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$48704_storage_ptr","typeString":"struct StorageSlot.AddressSlot storage pointer"}},"id":47775,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2435:5:32","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":48703,"src":"2387:53:32","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":47776,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47756,"src":"2443:17:32","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2387:73:32","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":47778,"nodeType":"ExpressionStatement","src":"2387:73:32"}]},"documentation":{"id":47754,"nodeType":"StructuredDocumentation","src":"2101:80:32","text":" @dev Stores a new address in the EIP1967 implementation slot."},"implemented":true,"kind":"function","modifiers":[],"name":"_setImplementation","nameLocation":"2195:18:32","parameters":{"id":47757,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47756,"mutability":"mutable","name":"newImplementation","nameLocation":"2222:17:32","nodeType":"VariableDeclaration","scope":47780,"src":"2214:25:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47755,"name":"address","nodeType":"ElementaryTypeName","src":"2214:7:32","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2213:27:32"},"returnParameters":{"id":47758,"nodeType":"ParameterList","parameters":[],"src":"2249:0:32"},"scope":47995,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":47814,"nodeType":"FunctionDefinition","src":"2779:335:32","nodes":[],"body":{"id":47813,"nodeType":"Block","src":"2860:254:32","nodes":[],"statements":[{"expression":{"arguments":[{"id":47789,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47783,"src":"2889:17:32","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":47788,"name":"_setImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47780,"src":"2870:18:32","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":47790,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2870:37:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47791,"nodeType":"ExpressionStatement","src":"2870:37:32"},{"eventCall":{"arguments":[{"id":47793,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47783,"src":"2931:17:32","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":47792,"name":"Upgraded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47706,"src":"2922:8:32","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":47794,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2922:27:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47795,"nodeType":"EmitStatement","src":"2917:32:32"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":47799,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":47796,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47785,"src":"2964:4:32","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":47797,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2969:6:32","memberName":"length","nodeType":"MemberAccess","src":"2964:11:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":47798,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2978:1:32","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2964:15:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":47811,"nodeType":"Block","src":"3065:43:32","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":47808,"name":"_checkNonPayable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47994,"src":"3079:16:32","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":47809,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3079:18:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47810,"nodeType":"ExpressionStatement","src":"3079:18:32"}]},"id":47812,"nodeType":"IfStatement","src":"2960:148:32","trueBody":{"id":47807,"nodeType":"Block","src":"2981:78:32","statements":[{"expression":{"arguments":[{"id":47803,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47783,"src":"3024:17:32","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":47804,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47785,"src":"3043:4:32","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":47800,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48698,"src":"2995:7:32","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Address_$48698_$","typeString":"type(library Address)"}},"id":47802,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3003:20:32","memberName":"functionDelegateCall","nodeType":"MemberAccess","referencedDeclaration":48617,"src":"2995:28:32","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":47805,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2995:53:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":47806,"nodeType":"ExpressionStatement","src":"2995:53:32"}]}}]},"documentation":{"id":47781,"nodeType":"StructuredDocumentation","src":"2473:301:32","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":"2788:16:32","parameters":{"id":47786,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47783,"mutability":"mutable","name":"newImplementation","nameLocation":"2813:17:32","nodeType":"VariableDeclaration","scope":47814,"src":"2805:25:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47782,"name":"address","nodeType":"ElementaryTypeName","src":"2805:7:32","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":47785,"mutability":"mutable","name":"data","nameLocation":"2845:4:32","nodeType":"VariableDeclaration","scope":47814,"src":"2832:17:32","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":47784,"name":"bytes","nodeType":"ElementaryTypeName","src":"2832:5:32","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2804:46:32"},"returnParameters":{"id":47787,"nodeType":"ParameterList","parameters":[],"src":"2860:0:32"},"scope":47995,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":47818,"nodeType":"VariableDeclaration","src":"3335:105:32","nodes":[],"constant":true,"documentation":{"id":47815,"nodeType":"StructuredDocumentation","src":"3120:145:32","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":"3361:10:32","scope":47995,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":47816,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3335:7:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307862353331323736383461353638623331373361653133623966386136303136653234336536336236653865653131373864366137313738353062356436313033","id":47817,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3374:66:32","typeDescriptions":{"typeIdentifier":"t_rational_81955473079516046949633743016697847541294818689821282749996681496272635257091_by_1","typeString":"int_const 8195...(69 digits omitted)...7091"},"value":"0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103"},"visibility":"internal"},{"id":47831,"nodeType":"FunctionDefinition","src":"3792:120:32","nodes":[],"body":{"id":47830,"nodeType":"Block","src":"3844:68:32","nodes":[],"statements":[{"expression":{"expression":{"arguments":[{"id":47826,"name":"ADMIN_SLOT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47818,"src":"3888:10:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":47824,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48808,"src":"3861:11:32","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$48808_$","typeString":"type(library StorageSlot)"}},"id":47825,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3873:14:32","memberName":"getAddressSlot","nodeType":"MemberAccess","referencedDeclaration":48730,"src":"3861:26:32","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_AddressSlot_$48704_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.AddressSlot storage pointer)"}},"id":47827,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3861:38:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$48704_storage_ptr","typeString":"struct StorageSlot.AddressSlot storage pointer"}},"id":47828,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3900:5:32","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":48703,"src":"3861:44:32","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":47823,"id":47829,"nodeType":"Return","src":"3854:51:32"}]},"documentation":{"id":47819,"nodeType":"StructuredDocumentation","src":"3447:340:32","text":" @dev Returns the current admin.\n TIP: To get this value clients can read directly from the storage slot shown below (specified by EIP1967) using\n the https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call.\n `0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103`"},"implemented":true,"kind":"function","modifiers":[],"name":"getAdmin","nameLocation":"3801:8:32","parameters":{"id":47820,"nodeType":"ParameterList","parameters":[],"src":"3809:2:32"},"returnParameters":{"id":47823,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47822,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":47831,"src":"3835:7:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47821,"name":"address","nodeType":"ElementaryTypeName","src":"3835:7:32","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3834:9:32"},"scope":47995,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":47862,"nodeType":"FunctionDefinition","src":"3994:217:32","nodes":[],"body":{"id":47861,"nodeType":"Block","src":"4039:172:32","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":47842,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":47837,"name":"newAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47834,"src":"4053:8:32","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":47840,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4073:1:32","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":47839,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4065:7:32","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":47838,"name":"address","nodeType":"ElementaryTypeName","src":"4065:7:32","typeDescriptions":{}}},"id":47841,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4065:10:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4053:22:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":47851,"nodeType":"IfStatement","src":"4049:91:32","trueBody":{"id":47850,"nodeType":"Block","src":"4077:63:32","statements":[{"errorCall":{"arguments":[{"arguments":[{"hexValue":"30","id":47846,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4126:1:32","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":47845,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4118:7:32","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":47844,"name":"address","nodeType":"ElementaryTypeName","src":"4118:7:32","typeDescriptions":{}}},"id":47847,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4118:10:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":47843,"name":"ERC1967InvalidAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47732,"src":"4098:19:32","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":47848,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4098:31:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47849,"nodeType":"RevertStatement","src":"4091:38:32"}]}},{"expression":{"id":47859,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"arguments":[{"id":47855,"name":"ADMIN_SLOT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47818,"src":"4176:10:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":47852,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48808,"src":"4149:11:32","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$48808_$","typeString":"type(library StorageSlot)"}},"id":47854,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4161:14:32","memberName":"getAddressSlot","nodeType":"MemberAccess","referencedDeclaration":48730,"src":"4149:26:32","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_AddressSlot_$48704_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.AddressSlot storage pointer)"}},"id":47856,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4149:38:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$48704_storage_ptr","typeString":"struct StorageSlot.AddressSlot storage pointer"}},"id":47857,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4188:5:32","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":48703,"src":"4149:44:32","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":47858,"name":"newAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47834,"src":"4196:8:32","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4149:55:32","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":47860,"nodeType":"ExpressionStatement","src":"4149:55:32"}]},"documentation":{"id":47832,"nodeType":"StructuredDocumentation","src":"3918:71:32","text":" @dev Stores a new address in the EIP1967 admin slot."},"implemented":true,"kind":"function","modifiers":[],"name":"_setAdmin","nameLocation":"4003:9:32","parameters":{"id":47835,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47834,"mutability":"mutable","name":"newAdmin","nameLocation":"4021:8:32","nodeType":"VariableDeclaration","scope":47862,"src":"4013:16:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47833,"name":"address","nodeType":"ElementaryTypeName","src":"4013:7:32","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4012:18:32"},"returnParameters":{"id":47836,"nodeType":"ParameterList","parameters":[],"src":"4039:0:32"},"scope":47995,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":47879,"nodeType":"FunctionDefinition","src":"4331:133:32","nodes":[],"body":{"id":47878,"nodeType":"Block","src":"4379:85:32","nodes":[],"statements":[{"eventCall":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":47869,"name":"getAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47831,"src":"4407:8:32","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":47870,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType"