[ { "inputs": [ { "internalType": "address", "name": "_implementation", "type": "address" }, { "internalType": "bytes", "name": "_data", "type": "bytes" } ], "stateMutability": "nonpayable", "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": "admin_", "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": "implementation_", "type": "address" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "proxyAdmin", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "proxyImplementation", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "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" } ]
60806040523480156200001157600080fd5b5060405162000cf438038062000cf4833981810160405260408110156200003757600080fd5b8151602083018051604051929492938301929190846401000000008211156200005f57600080fd5b9083019060208201858111156200007557600080fd5b82516401000000008111828201881017156200009057600080fd5b82525081516020918201929091019080838360005b83811015620000bf578181015183820152602001620000a5565b50505050905090810190601f168015620000ed5780820380516001836020036101000a031916815260200191505b5060405250839150339050828281620001068262000146565b8051156200012757620001258282620001bd60201b620003eb1760201c565b505b50620001309050565b6200013b82620001ec565b5050505050620003ce565b6200015c816200021060201b620004171760201c565b620001995760405162461bcd60e51b815260040180806020018281038252603681526020018062000c986036913960400191505060405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b6060620001e5838360405180606001604052806027815260200162000c716027913962000216565b9392505050565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610355565b3b151590565b6060620002238462000210565b620002605760405162461bcd60e51b815260040180806020018281038252602681526020018062000cce6026913960400191505060405180910390fd5b60006060856001600160a01b0316856040518082805190602001908083835b60208310620002a05780518252601f1990920191602091820191016200027f565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d806000811462000302576040519150601f19603f3d011682016040523d82523d6000602084013e62000307565b606091505b5090925090506200031a82828662000324565b9695505050505050565b6060831562000335575081620001e5565b825115620003465782518084602001fd5b8160405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156200039257818101518382015260200162000378565b50505050905090810190601f168015620003c05780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b61089380620003de6000396000f3fe6080604052600436106100745760003560e01c80634f1ef2861161004e5780634f1ef286146101045780635c60da1b146101845780638f28397014610199578063f851a440146101cc57610083565b80630c870f911461008b5780633659cfe6146100bc5780633e47158c146100ef57610083565b36610083576100816101e1565b005b6100816101e1565b34801561009757600080fd5b506100a06101fb565b604080516001600160a01b039092168252519081900360200190f35b3480156100c857600080fd5b50610081600480360360208110156100df57600080fd5b50356001600160a01b031661020b565b3480156100fb57600080fd5b506100a0610245565b6100816004803603604081101561011a57600080fd5b6001600160a01b03823516919081019060408101602082013564010000000081111561014557600080fd5b82018360208201111561015757600080fd5b8035906020019184600183028401116401000000008311171561017957600080fd5b50909250905061024f565b34801561019057600080fd5b506100a06102cc565b3480156101a557600080fd5b50610081600480360360208110156101bc57600080fd5b50356001600160a01b0316610306565b3480156101d857600080fd5b506100a06103c0565b6101e961041d565b6101f96101f461047d565b6104a2565b565b600061020561047d565b90505b90565b6102136104c6565b6001600160a01b0316336001600160a01b0316141561023a57610235816104eb565b610242565b6102426101e1565b50565b60006102056104c6565b6102576104c6565b6001600160a01b0316336001600160a01b031614156102bf57610279836104eb565b6102b98383838080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506103eb92505050565b506102c7565b6102c76101e1565b505050565b60006102d66104c6565b6001600160a01b0316336001600160a01b031614156102fe576102f761047d565b9050610208565b6102086101e1565b61030e6104c6565b6001600160a01b0316336001600160a01b0316141561023a576001600160a01b03811661036c5760405162461bcd60e51b815260040180806020018281038252603a81526020018061075f603a913960400191505060405180910390fd5b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103956104c6565b604080516001600160a01b03928316815291841660208301528051918290030190a16102358161052b565b60006103ca6104c6565b6001600160a01b0316336001600160a01b031614156102fe576102f76104c6565b606061041083836040518060600160405280602781526020016107996027913961054f565b9392505050565b3b151590565b6104256104c6565b6001600160a01b0316336001600160a01b031614156104755760405162461bcd60e51b815260040180806020018281038252604281526020018061081c6042913960600191505060405180910390fd5b6101f96101f9565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b3660008037600080366000845af43d6000803e8080156104c1573d6000f35b3d6000fd5b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b6104f481610652565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610355565b606061055a84610417565b6105955760405162461bcd60e51b81526004018080602001828103825260268152602001806107f66026913960400191505060405180910390fd5b60006060856001600160a01b0316856040518082805190602001908083835b602083106105d35780518252601f1990920191602091820191016105b4565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d8060008114610633576040519150601f19603f3d011682016040523d82523d6000602084013e610638565b606091505b50915091506106488282866106ba565b9695505050505050565b61065b81610417565b6106965760405162461bcd60e51b81526004018080602001828103825260368152602001806107c06036913960400191505060405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b606083156106c9575081610410565b8251156106d95782518084602001fd5b8160405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561072357818101518382015260200161070b565b50505050905090810190601f1680156107505780820380516001836020036101000a031916815260200191505b509250505060405180910390fdfe5472616e73706172656e745570677261646561626c6550726f78793a206e65772061646d696e20697320746865207a65726f2061646472657373416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65645570677261646561626c6550726f78793a206e657720696d706c656d656e746174696f6e206973206e6f74206120636f6e7472616374416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6e74726163745472616e73706172656e745570677261646561626c6550726f78793a2061646d696e2063616e6e6f742066616c6c6261636b20746f2070726f787920746172676574a264697066735822122094b77d45156829b2910f9b51dd4d370978fc50bbe4d47521ef57d4ee616b331264736f6c634300060c0033416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65645570677261646561626c6550726f78793a206e657720696d706c656d656e746174696f6e206973206e6f74206120636f6e7472616374416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6e74726163740000000000000000000000005dc55aab34fc23c92e17757aaf4d5d44eb377e4a00000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000024c4d66de80000000000000000000000000f517e718edc89038450fef52ef60709c0053df400000000000000000000000000000000000000000000000000000000