{"compiler":{"version":"0.6.8+commit.0bbfe453"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_logic","type":"address"},{"internalType":"address","name":"_admin","type":"address"},{"internalType":"bytes","name":"_data","type":"bytes"}],"stateMutability":"payable","type":"constructor"},{"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":"implementation","type":"address"}],"name":"Upgraded","type":"event"},{"stateMutability":"payable","type":"fallback"},{"inputs":[],"name":"admin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAdmin","type":"address"}],"name":"changeAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"implementation","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"}],"name":"upgradeTo","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"upgradeToAndCall","outputs":[],"stateMutability":"payable","type":"function"},{"stateMutability":"payable","type":"receive"}],"devdoc":{"details":"This contract combines an upgradeability proxy with an authorization mechanism for administrative tasks. All external functions in this contract must be guarded by the `ifAdmin` modifier. See ethereum/solidity#3864 for a Solidity feature proposal that would enable this to be done automatically.","methods":{"admin()":{"returns":{"_0":"The address of the proxy admin."}},"changeAdmin(address)":{"details":"Changes the admin of the proxy. Only the current admin can call this function.","params":{"newAdmin":"Address to transfer proxy administration to."}},"constructor":{"params":{"_admin":"Address of the proxy administrator.","_data":"Data to send as msg.data to the implementation to initialize the proxied contract. It should include the signature and the parameters of the function to be called, as described in https://solidity.readthedocs.io/en/v0.4.24/abi-spec.html#function-selector-and-argument-encoding. This parameter is optional, if no data is given the initialization call to proxied contract will be skipped.","_logic":"address of the initial implementation."}},"implementation()":{"returns":{"_0":"The address of the implementation."}},"upgradeTo(address)":{"details":"Upgrade the backing implementation of the proxy. Only the admin can call this function.","params":{"newImplementation":"Address of the new implementation."}},"upgradeToAndCall(address,bytes)":{"details":"Upgrade the backing implementation of the proxy and call a function on the new implementation. This is useful to initialize the proxied contract.","params":{"data":"Data to send as msg.data in the low level call. It should include the signature and the parameters of the function to be called, as described in https://solidity.readthedocs.io/en/v0.4.24/abi-spec.html#function-selector-and-argument-encoding.","newImplementation":"Address of the new implementation."}}},"title":"AdminUpgradeabilityProxy"},"userdoc":{"methods":{"constructor":"Contract constructor."}}},"settings":{"compilationTarget":{"contracts/proxy/AdminUpgradeabilityProxy.sol":"AdminUpgradeabilityProxy"},"evmVersion":"istanbul","libraries":{},"metadata":{"bytecodeHash":"ipfs"},"optimizer":{"enabled":false,"runs":200},"remappings":[]},"sources":{"@openzeppelin/contracts/utils/Address.sol":{"keccak256":"0xa6a15ddddcbf29d2922a1e0d4151b5d2d33da24b93cc9ebc12390e0d855532f8","license":"MIT","urls":["bzz-raw://7c119bcaecfa853d564ac88d312777f75fa1126a3bca88a3371adb0ad9f35cb0","dweb:/ipfs/QmY9UPuXeSKq86Zh38fE43VGQPhKMN34mkuFSFqPcr6nvZ"]},"contracts/proxy/AdminUpgradeabilityProxy.sol":{"keccak256":"0x949fbf5b0f1bc1439a62788bcc0713b96ed0aa880cb1db020b246576413282d5","license":"MIT","urls":["bzz-raw://71034a78e93c68e692a065f6f1a68d505f28a0dcc4f21ae1aac552fc9cb8d5f1","dweb:/ipfs/QmNaEeRbgkspA7f5qkt6M24MmA9jifpUZWL9CxFfJNnL87"]},"contracts/proxy/Proxy.sol":{"keccak256":"0x5553a3957ecb3d3ca3e6cdc67246dd873d296c955e8ac5039800e3e67245146f","license":"MIT","urls":["bzz-raw://991fff76c58961af19114bf8158d90d8efede06544f858031d7adc09be2e04cf","dweb:/ipfs/QmUGcSaZ3mgWiDpmGpLtPMjJLqrNMwMkEHXwSq9Yb4ztnZ"]},"contracts/proxy/UpgradeabilityProxy.sol":{"keccak256":"0x24719ea507bac225343dc1bde739e598a5eaa25e9afad702b34d52877f5708f7","license":"MIT","urls":["bzz-raw://0720dc2a885a36103729f4c8ae30bbdb754b3589572867347be0839a105cbd43","dweb:/ipfs/QmYJYFDTjwygDaKyUyTdhGBpLxFDgcaEjGWB12Mn2K6KzC"]}},"version":1}