[ { "inputs": [ { "internalType": "address", "name": "_logic", "type": "address" }, { "internalType": "address", "name": "admin_", "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": "beacon", "type": "address" } ], "name": "BeaconUpgraded", "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": [ { "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" } ]
60806040523480156200001157600080fd5b5060405162001a7638038062001a76833981810160405281019062000037919062000810565b828282828160017f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbd60001c6200006e9190620008c4565b60001b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b14620000a657620000a5620008ff565b5b620000ba828260006200014360201b60201c565b505060017fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610460001c620000ee9190620008c4565b60001b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610360001b14620001265762000125620008ff565b5b62000137826200018660201b60201c565b50505050505062000c1b565b6200015483620001e460201b60201c565b600082511180620001625750805b1562000181576200017f83836200023b60201b6200034a1760201c565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f620001b76200027160201b60201c565b82604051620001c89291906200093f565b60405180910390a1620001e181620002d560201b60201c565b50565b620001f581620003c560201b60201c565b8073ffffffffffffffffffffffffffffffffffffffff167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b60405160405180910390a250565b606062000269838360405180606001604052806027815260200162001a4f602791396200049b60201b60201c565b905092915050565b6000620002ac7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610360001b6200057f60201b620003771760201c565b60000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160362000347576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200033e90620009f3565b60405180910390fd5b80620003817fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610360001b6200057f60201b620003771760201c565b60000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b620003db816200058960201b620003811760201c565b6200041d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620004149062000a8b565b60405180910390fd5b80620004577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b6200057f60201b620003771760201c565b60000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6060620004ae846200058960201b60201c565b620004f0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620004e79062000b23565b60405180910390fd5b6000808573ffffffffffffffffffffffffffffffffffffffff16856040516200051a919062000b92565b600060405180830381855af49150503d806000811462000557576040519150601f19603f3d011682016040523d82523d6000602084013e6200055c565b606091505b509150915062000574828286620005ac60201b60201c565b925050509392505050565b6000819050919050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b60608315620005be5782905062000611565b600083511115620005d25782518084602001fd5b816040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000608919062000bf7565b60405180910390fd5b9392505050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000659826200062c565b9050919050565b6200066b816200064c565b81146200067757600080fd5b50565b6000815190506200068b8162000660565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b620006e6826200069b565b810181811067ffffffffffffffff82111715620007085762000707620006ac565b5b80604052505050565b60006200071d62000618565b90506200072b8282620006db565b919050565b600067ffffffffffffffff8211156200074e576200074d620006ac565b5b62000759826200069b565b9050602081019050919050565b60005b838110156200078657808201518184015260208101905062000769565b60008484015250505050565b6000620007a9620007a38462000730565b62000711565b905082815260208101848484011115620007c857620007c762000696565b5b620007d584828562000766565b509392505050565b600082601f830112620007f557620007f462000691565b5b81516200080784826020860162000792565b91505092915050565b6000806000606084860312156200082c576200082b62000622565b5b60006200083c868287016200067a565b93505060206200084f868287016200067a565b925050604084015167ffffffffffffffff81111562000873576200087262000627565b5b6200088186828701620007dd565b9150509250925092565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620008d1826200088b565b9150620008de836200088b565b9250828203905081811115620008f957620008f862000895565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b62000939816200064c565b82525050565b60006040820190506200095660008301856200092e565b6200096560208301846200092e565b9392505050565b600082825260208201905092915050565b7f455243313936373a206e65772061646d696e20697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000620009db6026836200096c565b9150620009e8826200097d565b604082019050919050565b6000602082019050818103600083015262000a0e81620009cc565b9050919050565b7f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60008201527f6f74206120636f6e747261637400000000000000000000000000000000000000602082015250565b600062000a73602d836200096c565b915062000a808262000a15565b604082019050919050565b6000602082019050818103600083015262000aa68162000a64565b9050919050565b7f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60008201527f6e74726163740000000000000000000000000000000000000000000000000000602082015250565b600062000b0b6026836200096c565b915062000b188262000aad565b604082019050919050565b6000602082019050818103600083015262000b3e8162000afc565b9050919050565b600081519050919050565b600081905092915050565b600062000b688262000b45565b62000b74818562000b50565b935062000b8681856020860162000766565b80840191505092915050565b600062000ba0828462000b5b565b915081905092915050565b600081519050919050565b600062000bc38262000bab565b62000bcf81856200096c565b935062000be181856020860162000766565b62000bec816200069b565b840191505092915050565b6000602082019050818103600083015262000c13818462000bb6565b905092915050565b610e248062000c2b6000396000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100675780634f1ef286146100905780635c60da1b146100ac5780638f283970146100d7578063f851a440146101005761005d565b3661005d5761005b61012b565b005b61006561012b565b005b34801561007357600080fd5b5061008e60048036038101906100899190610904565b610145565b005b6100aa60048036038101906100a59190610996565b6101ab565b005b3480156100b857600080fd5b506100c1610248565b6040516100ce9190610a05565b60405180910390f35b3480156100e357600080fd5b506100fe60048036038101906100f99190610904565b61029f565b005b34801561010c57600080fd5b506101156102f3565b6040516101229190610a05565b60405180910390f35b6101336103a4565b61014361013e610423565b610432565b565b61014d610458565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff160361019f5761019a816040518060200160405280600081525060006104af565b6101a8565b6101a761012b565b5b50565b6101b3610458565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff160361023a576102358383838080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505060016104af565b610243565b61024261012b565b5b505050565b6000610252610458565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16036102935761028c610423565b905061029c565b61029b61012b565b5b90565b6102a7610458565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16036102e7576102e2816104db565b6102f0565b6102ef61012b565b5b50565b60006102fd610458565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff160361033e57610337610458565b9050610347565b61034661012b565b5b90565b606061036f8383604051806060016040528060278152602001610dc860279139610527565b905092915050565b6000819050919050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b6103ac610458565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1603610419576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161041090610ac9565b60405180910390fd5b6104216105f4565b565b600061042d6105f6565b905090565b3660008037600080366000845af43d6000803e8060008114610453573d6000f35b3d6000fd5b60006104867fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610360001b610377565b60000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6104b88361064d565b6000825111806104c55750805b156104d6576104d4838361034a565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f610504610458565b82604051610513929190610ae9565b60405180910390a16105248161069c565b50565b606061053284610381565b610571576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161056890610b84565b60405180910390fd5b6000808573ffffffffffffffffffffffffffffffffffffffff16856040516105999190610c15565b600060405180830381855af49150503d80600081146105d4576040519150601f19603f3d011682016040523d82523d6000602084013e6105d9565b606091505b50915091506105e982828661077c565b925050509392505050565b565b60006106247f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b610377565b60000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610656816107e3565b8073ffffffffffffffffffffffffffffffffffffffff167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b60405160405180910390a250565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361070b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161070290610c9e565b60405180910390fd5b806107387fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610360001b610377565b60000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6060831561078c578290506107dc565b60008351111561079f5782518084602001fd5b816040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107d39190610d13565b60405180910390fd5b9392505050565b6107ec81610381565b61082b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082290610da7565b60405180910390fd5b806108587f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b610377565b60000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006108d1826108a6565b9050919050565b6108e1816108c6565b81146108ec57600080fd5b50565b6000813590506108fe816108d8565b92915050565b60006020828403121561091a5761091961089c565b5b6000610928848285016108ef565b91505092915050565b600080fd5b600080fd5b600080fd5b60008083601f84011261095657610955610931565b5b8235905067ffffffffffffffff81111561097357610972610936565b5b60208301915083600182028301111561098f5761098e61093b565b5b9250929050565b6000806000604084860312156109af576109ae61089c565b5b60006109bd868287016108ef565b935050602084013567ffffffffffffffff8111156109de576109dd6108a1565b5b6109ea86828701610940565b92509250509250925092565b6109ff816108c6565b82525050565b6000602082019050610a1a60008301846109f6565b92915050565b600082825260208201905092915050565b7f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60008201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f7879207461726760208201527f6574000000000000000000000000000000000000000000000000000000000000604082015250565b6000610ab3604283610a20565b9150610abe82610a31565b606082019050919050565b60006020820190508181036000830152610ae281610aa6565b9050919050565b6000604082019050610afe60008301856109f6565b610b0b60208301846109f6565b9392505050565b7f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60008201527f6e74726163740000000000000000000000000000000000000000000000000000602082015250565b6000610b6e602683610a20565b9150610b7982610b12565b604082019050919050565b60006020820190508181036000830152610b9d81610b61565b9050919050565b600081519050919050565b600081905092915050565b60005b83811015610bd8578082015181840152602081019050610bbd565b60008484015250505050565b6000610bef82610ba4565b610bf98185610baf565b9350610c09818560208601610bba565b80840191505092915050565b6000610c218284610be4565b915081905092915050565b7f455243313936373a206e65772061646d696e20697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000610c88602683610a20565b9150610c9382610c2c565b604082019050919050565b60006020820190508181036000830152610cb781610c7b565b9050919050565b600081519050919050565b6000601f19601f8301169050919050565b6000610ce582610cbe565b610cef8185610a20565b9350610cff818560208601610bba565b610d0881610cc9565b840191505092915050565b60006020820190508181036000830152610d2d8184610cda565b905092915050565b7f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60008201527f6f74206120636f6e747261637400000000000000000000000000000000000000602082015250565b6000610d91602d83610a20565b9150610d9c82610d35565b604082019050919050565b60006020820190508181036000830152610dc081610d84565b905091905056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220ceddbc42739ab01f4b00a886c04ed3a60bdc92c5d0685e52e58492a520e4a18e64736f6c63430008110033416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65640000000000000000000000006f0801c397283fe07e7a47f2cc41615f2432f4a100000000000000000000000040e4ff9e018462ce71fa34abdfa27b8c5e2b1afb00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000