[ { "inputs": [ { "internalType": "address", "name": "implementation_", "type": "address" }, { "internalType": "address", "name": "admin_", "type": "address" }, { "internalType": "bytes", "name": "data_", "type": "bytes" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "name": "NotAdmin", "type": "error" }, { "inputs": [], "name": "ProxyIsOssified", "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": [], "name": "ProxyOssified", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "implementation", "type": "address" } ], "name": "Upgraded", "type": "event" }, { "stateMutability": "payable", "type": "fallback" }, { "inputs": [ { "internalType": "address", "name": "newAdmin_", "type": "address" } ], "name": "proxy__changeAdmin", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "proxy__getAdmin", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "proxy__getImplementation", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "proxy__getIsOssified", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "proxy__ossify", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newImplementation_", "type": "address" } ], "name": "proxy__upgradeTo", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newImplementation_", "type": "address" }, { "internalType": "bytes", "name": "setupCalldata_", "type": "bytes" }, { "internalType": "bool", "name": "forceCall_", "type": "bool" } ], "name": "proxy__upgradeToAndCall", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "stateMutability": "payable", "type": "receive" } ]
60806040523480156200001157600080fd5b506040516200106f3803806200106f8339810160408190526200003491620004c8565b82816200006360017f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbd620005a8565b6000805160206200102883398151915214620000835762000083620005ce565b6200009182826000620000a8565b506200009f905082620000e5565b50505062000637565b620000b38362000140565b600082511180620000c15750805b15620000e057620000de83836200018260201b620003f51760201c565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f62000110620001b1565b604080516001600160a01b03928316815291841660208301520160405180910390a16200013d81620001ea565b50565b6200014b816200029f565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6060620001aa8383604051806060016040528060278152602001620010486027913962000342565b9392505050565b6000620001db6000805160206200100883398151915260001b6200041f60201b620004211760201c565b546001600160a01b0316919050565b6001600160a01b038116620002555760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b806200027e6000805160206200100883398151915260001b6200041f60201b620004211760201c565b80546001600160a01b0319166001600160a01b039290921691909117905550565b620002b5816200042260201b620004241760201c565b620003195760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016200024c565b806200027e6000805160206200102883398151915260001b6200041f60201b620004211760201c565b6060833b620003a35760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016200024c565b600080856001600160a01b031685604051620003c09190620005e4565b600060405180830381855af49150503d8060008114620003fd576040519150601f19603f3d011682016040523d82523d6000602084013e62000402565b606091505b5090925090506200041582828662000428565b9695505050505050565b90565b3b151590565b6060831562000439575081620001aa565b8251156200044a5782518084602001fd5b8160405162461bcd60e51b81526004016200024c919062000602565b80516001600160a01b03811681146200047e57600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b83811015620004b65781810151838201526020016200049c565b83811115620000de5750506000910152565b600080600060608486031215620004de57600080fd5b620004e98462000466565b9250620004f96020850162000466565b60408501519092506001600160401b03808211156200051757600080fd5b818601915086601f8301126200052c57600080fd5b81518181111562000541576200054162000483565b604051601f8201601f19908116603f011681019083821181831017156200056c576200056c62000483565b816040528281528960208487010111156200058657600080fd5b6200059983602083016020880162000499565b80955050505050509250925092565b600082821015620005c957634e487b7160e01b600052601160045260246000fd5b500390565b634e487b7160e01b600052600160045260246000fd5b60008251620005f881846020870162000499565b9190910192915050565b60208152600082518060208401526200062381604085016020870162000499565b601f01601f19169190910160400192915050565b6109c180620006476000396000f3fe6080604052600436106100745760003560e01c8063916f1fd71161004e578063916f1fd7146100f5578063ad729a7114610122578063adcbc23714610137578063d2f6ed4d1461014c57610083565b8063133512581461008b5780633ebdd0eb146100b5578063773f5be8146100d557610083565b366100835761008161016c565b005b61008161016c565b34801561009757600080fd5b506100a061017e565b60405190151581526020015b60405180910390f35b3480156100c157600080fd5b506100816100d03660046107d6565b610198565b3480156100e157600080fd5b506100816100f03660046107d6565b610201565b34801561010157600080fd5b5061010a610266565b6040516001600160a01b0390911681526020016100ac565b34801561012e57600080fd5b5061010a610275565b34801561014357600080fd5b5061008161027f565b34801561015857600080fd5b50610081610167366004610817565b610388565b61017c61017761042a565b610434565b565b60008061018961045d565b6001600160a01b031614905090565b60006101a261045d565b90506001600160a01b0381166101cb5760405163b83646a960e01b815260040160405180910390fd5b6001600160a01b03811633146101f457604051637bfa4b9f60e01b815260040160405180910390fd5b6101fd82610490565b5050565b600061020b61045d565b90506001600160a01b0381166102345760405163b83646a960e01b815260040160405180910390fd5b6001600160a01b038116331461025d57604051637bfa4b9f60e01b815260040160405180910390fd5b6101fd826104d0565b600061027061045d565b905090565b600061027061042a565b600061028961045d565b90506001600160a01b0381166102b25760405163b83646a960e01b815260040160405180910390fd5b6001600160a01b03811633146102db57604051637bfa4b9f60e01b815260040160405180910390fd5b60006102e561045d565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610380546001600160a01b0319169055604080516001600160a01b03831681526000602082015281519293507f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f929081900390910190a16040517f158b204828f9326d9bb3c2be9336986c14911b4a72b93d1801f207aac3c68b9f90600090a15050565b600061039261045d565b90506001600160a01b0381166103bb5760405163b83646a960e01b815260040160405180910390fd5b6001600160a01b03811633146103e457604051637bfa4b9f60e01b815260040160405180910390fd5b6103ef848484610527565b50505050565b606061041a83836040518060600160405280602781526020016109656027913961054c565b9392505050565b90565b3b151590565b6000610270610625565b3660008037600080366000845af43d6000803e808015610453573d6000f35b3d6000fd5b505050565b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b6104998161064d565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6104f961045d565b604080516001600160a01b03928316815291841660208301520160405180910390a1610524816106f5565b50565b61053083610490565b60008251118061053d5750805b15610458576103ef83836103f5565b6060833b6105b05760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084015b60405180910390fd5b600080856001600160a01b0316856040516105cb9190610915565b600060405180830381855af49150503d8060008114610606576040519150601f19603f3d011682016040523d82523d6000602084013e61060b565b606091505b509150915061061b828286610781565b9695505050505050565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610481565b803b6106b15760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016105a7565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b03811661075a5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016105a7565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61036106d4565b6060831561079057508161041a565b8251156107a05782518084602001fd5b8160405162461bcd60e51b81526004016105a79190610931565b80356001600160a01b03811681146107d157600080fd5b919050565b6000602082840312156107e857600080fd5b61041a826107ba565b634e487b7160e01b600052604160045260246000fd5b803580151581146107d157600080fd5b60008060006060848603121561082c57600080fd5b610835846107ba565b9250602084013567ffffffffffffffff8082111561085257600080fd5b818601915086601f83011261086657600080fd5b813581811115610878576108786107f1565b604051601f8201601f19908116603f011681019083821181831017156108a0576108a06107f1565b816040528281528960208487010111156108b957600080fd5b8260208601602083013760006020848301015280965050505050506108e060408501610807565b90509250925092565b60005b838110156109045781810151838201526020016108ec565b838111156103ef5750506000910152565b600082516109278184602087016108e9565b9190910192915050565b60208152600082518060208401526109508160408501602087016108e9565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220ade03cff1c9d244e08e70c5b2d5e8730ac8f46a200881491c3de7035ba41b8df64736f6c63430008090033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65640000000000000000000000006f6541c2203196feedd14cd2c09550da1cbeda310000000000000000000000008ea83ad72396f1e0cd2f8e72b1461db8eb6af7b500000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000