[ { "inputs": [ { "internalType": "address", "name": "_proxyTo", "type": "address" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "_new", "type": "address" }, { "indexed": false, "internalType": "address", "name": "_old", "type": "address" } ], "name": "ProxyOwnerUpdate", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "_new", "type": "address" }, { "indexed": true, "internalType": "address", "name": "_old", "type": "address" } ], "name": "ProxyUpdated", "type": "event" }, { "stateMutability": "payable", "type": "fallback" }, { "inputs": [], "name": "IMPLEMENTATION_SLOT", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "OWNER_SLOT", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "implementation", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "proxyOwner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "proxyType", "outputs": [ { "internalType": "uint256", "name": "proxyTypeId", "type": "uint256" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferProxyOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_newProxyTo", "type": "address" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "updateAndCall", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_newProxyTo", "type": "address" } ], "name": "updateImplementation", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "stateMutability": "payable", "type": "receive" } ]
608060405234801561001057600080fd5b5060405161085d38038061085d8339818101604052602081101561003357600080fd5b50518061003f3361004f565b61004881610073565b5050610097565b7f244ba661e7ae8d20ecbcd7fd9561bc37e524f3d8b3bafc77df184c019d32820255565b7f77b8b4392d570052e2df4849a5717ca20f27cea202a7a292a836e081122c7f9355565b6107b7806100a66000396000f3fe60806040526004361061006f5760003560e01c8063025313a2146100c9578063025b22bc146100fa578063086fc0c71461012d5780634555d5c9146101545780635c60da1b14610169578063963949a31461017e578063d88ca2c814610193578063f1739cae14610247576100be565b366100be576100bc61007f61027a565b6000368080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061028d92505050565b005b6100bc61007f61027a565b3480156100d557600080fd5b506100de6102b5565b604080516001600160a01b039092168252519081900360200190f35b34801561010657600080fd5b506100bc6004803603602081101561011d57600080fd5b50356001600160a01b03166102c4565b34801561013957600080fd5b506101426103fe565b60408051918252519081900360200190f35b34801561016057600080fd5b50610142610410565b34801561017557600080fd5b506100de610415565b34801561018a57600080fd5b5061014261041f565b6100bc600480360360408110156101a957600080fd5b6001600160a01b038235169190810190604081016020820135600160201b8111156101d357600080fd5b8201836020820111156101e557600080fd5b803590602001918460018302840111600160201b8311171561020657600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610431945050505050565b34801561025357600080fd5b506100bc6004803603602081101561026a57600080fd5b50356001600160a01b03166105c7565b60008051602061071d8339815191525490565b600080825160208401856127105a03f43d604051816000823e8280156102b1578282f35b8282fd5b60006102bf6106c2565b905090565b336102cd6106c2565b6001600160a01b031614610314576040805162461bcd60e51b81526020600482015260096024820152682727aa2fa7aba722a960b91b604482015290519081900360640190fd5b6001600160a01b038116610367576040805162461bcd60e51b8152602060048201526015602482015274494e56414c49445f50524f58595f4144445245535360581b604482015290519081900360640190fd5b610370816106d5565b6103ab5760405162461bcd60e51b815260040180806020018281038252602581526020018061073d6025913960400191505060405180910390fd5b6103b361027a565b6001600160a01b0316816001600160a01b03167fd32d24edea94f55e932d9a008afc425a8561462d1b1f57bc6e508e9a6b9509e160405160405180910390a36103fb816106f8565b50565b60008051602061071d83398151915281565b600290565b60006102bf61027a565b60008051602061076283398151915281565b3361043a6106c2565b6001600160a01b031614610481576040805162461bcd60e51b81526020600482015260096024820152682727aa2fa7aba722a960b91b604482015290519081900360640190fd5b61048a826102c4565b60006060306001600160a01b031634846040518082805190602001908083835b602083106104c95780518252601f1990920191602091820191016104aa565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d806000811461052b576040519150601f19603f3d011682016040523d82523d6000602084013e610530565b606091505b50915091508181906105c05760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561058557818101518382015260200161056d565b50505050905090810190601f1680156105b25780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5050505050565b336105d06106c2565b6001600160a01b031614610617576040805162461bcd60e51b81526020600482015260096024820152682727aa2fa7aba722a960b91b604482015290519081900360640190fd5b6001600160a01b038116610661576040805162461bcd60e51b815260206004820152600c60248201526b5a45524f5f4144445245535360a01b604482015290519081900360640190fd5b7fdbe5fd65bcdbae152f24ab660ea68e72b4d4705b57b16e0caae994e214680ee28161068b6106c2565b60405180836001600160a01b03168152602001826001600160a01b031681526020019250505060405180910390a16103fb8161070a565b6000805160206107628339815191525490565b60006001600160a01b0382166106ed575060006106f3565b50803b15155b919050565b60008051602061071d83398151915255565b6000805160206107628339815191525556fe77b8b4392d570052e2df4849a5717ca20f27cea202a7a292a836e081122c7f9344455354494e4154494f4e5f414444524553535f49535f4e4f545f415f434f4e5452414354244ba661e7ae8d20ecbcd7fd9561bc37e524f3d8b3bafc77df184c019d328202a264697066735822122023c33a18d91267de9555da61ccacb8b8dead52fecf82bf21af60a913d46a3d9764736f6c634300060c0033000000000000000000000000f2daabd3f69489f43527e1e89571694a7542277b