[ { "inputs": [ { "internalType": "address", "name": "_beacon", "type": "address" }, { "internalType": "bytes", "name": "_data", "type": "bytes" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "name": "ImplementationLocked", "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": [ { "indexed": true, "internalType": "address", "name": "collectionProxy", "type": "address" }, { "indexed": true, "internalType": "address", "name": "finalImplementation", "type": "address" } ], "name": "FinalCollectionImplementation", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "implementation", "type": "address" } ], "name": "Upgraded", "type": "event" }, { "stateMutability": "payable", "type": "fallback" }, { "inputs": [], "name": "getBeacon", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getCurrentImplementation", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getFinalImplementation", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "implementation_", "type": "address" } ], "name": "setFinalImplementation", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "stateMutability": "payable", "type": "receive" } ]
60806040523480156200001157600080fd5b5060405162000b0e38038062000b0e8339810160408190526200003491620004ac565b818162000044828260006200004e565b50505050620005eb565b620000598362000123565b6040516001600160a01b038416907f1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e90600090a26000825111806200009b5750805b156200011e576200011c836001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015620000e4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200010a91906200057a565b83620002d560201b6200017e1760201c565b505b505050565b62000139816200030460201b620001aa1760201c565b620001995760405162461bcd60e51b815260206004820152602560248201527f455243313936373a206e657720626561636f6e206973206e6f74206120636f6e6044820152641d1c9858dd60da1b60648201526084015b60405180910390fd5b62000213816001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001dc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200020291906200057a565b6200030460201b620001aa1760201c565b6200027a5760405162461bcd60e51b815260206004820152603060248201527f455243313936373a20626561636f6e20696d706c656d656e746174696f6e206960448201526f1cc81b9bdd08184818dbdb9d1c9858dd60821b606482015260840162000190565b80620002b47fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d5060001b6200031360201b620001b91760201c565b80546001600160a01b0319166001600160a01b039290921691909117905550565b6060620002fd838360405180606001604052806027815260200162000ae76027913962000316565b9392505050565b6001600160a01b03163b151590565b90565b6060600080856001600160a01b03168560405162000335919062000598565b600060405180830381855af49150503d806000811462000372576040519150601f19603f3d011682016040523d82523d6000602084013e62000377565b606091505b5090925090506200038b8683838762000395565b9695505050505050565b606083156200040957825160000362000401576001600160a01b0385163b620004015760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640162000190565b508162000415565b6200041583836200041d565b949350505050565b8151156200042e5781518083602001fd5b8060405162461bcd60e51b8152600401620001909190620005b6565b80516001600160a01b03811681146200046257600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156200049a57818101518382015260200162000480565b838111156200011c5750506000910152565b60008060408385031215620004c057600080fd5b620004cb836200044a565b60208401519092506001600160401b0380821115620004e957600080fd5b818501915085601f830112620004fe57600080fd5b81518181111562000513576200051362000467565b604051601f8201601f19908116603f011681019083821181831017156200053e576200053e62000467565b816040528281528860208487010111156200055857600080fd5b6200056b8360208301602088016200047d565b80955050505050509250929050565b6000602082840312156200058d57600080fd5b620002fd826200044a565b60008251620005ac8184602087016200047d565b9190910192915050565b6020815260008251806020840152620005d78160408501602087016200047d565b601f01601f19169190910160400192915050565b6104ec80620005fb6000396000f3fe6080604052600436106100435760003560e01c806329cca5691461005a5780632d6b3a6b1461008b578063a094e836146100a0578063d884e61b146100be57610052565b36610052576100506100de565b005b6100506100de565b34801561006657600080fd5b5061006f6100f0565b6040516001600160a01b03909116815260200160405180910390f35b34801561009757600080fd5b5061006f6100ff565b3480156100ac57600080fd5b506000546001600160a01b031661006f565b3480156100ca57600080fd5b506100506100d93660046103d6565b610109565b6100ee6100e96101bc565b610246565b565b60006100fa6101bc565b905090565b60006100fa61026a565b6000546001600160a01b03161561013357604051630657bd5160e01b815260040160405180910390fd5b600080546001600160a01b0319166001600160a01b0383169081178255604051909130917fe8dd00595b8a46f6f7df8e09d74caff9528fdeefef562275599d4ba7e31de9df9190a350565b60606101a3838360405180606001604052806027815260200161049060279139610298565b9392505050565b6001600160a01b03163b151590565b90565b600080546001600160a01b0316610236576101d561026a565b6001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610212573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100fa91906103f3565b506000546001600160a01b031690565b3660008037600080366000845af43d6000803e808015610265573d6000f35b3d6000fd5b7fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d50546001600160a01b031690565b6060600080856001600160a01b0316856040516102b59190610440565b600060405180830381855af49150503d80600081146102f0576040519150601f19603f3d011682016040523d82523d6000602084013e6102f5565b606091505b509150915061030686838387610310565b9695505050505050565b6060831561038257825160000361037b5761032a856101aa565b61037b5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064015b60405180910390fd5b508161038c565b61038c8383610394565b949350505050565b8151156103a45781518083602001fd5b8060405162461bcd60e51b8152600401610372919061045c565b6001600160a01b03811681146103d357600080fd5b50565b6000602082840312156103e857600080fd5b81356101a3816103be565b60006020828403121561040557600080fd5b81516101a3816103be565b60005b8381101561042b578181015183820152602001610413565b8381111561043a576000848401525b50505050565b60008251610452818460208701610410565b9190910192915050565b602081526000825180602084015261047b816040850160208701610410565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a264697066735822122018500dfe5febb625cc97a4646339289cfe8ac830ae1a1641328aaa0ede56ab2364736f6c634300080f0033416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564000000000000000000000000fe3d07dac8138858dbb2cd10758752ee00721498000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000001048f15b414000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000495d4e2b3c7028aa592cd2f6781b008da60c1a07000000000000000000000000bab3b3bd6d6fc8af409089f91da13d71c4c800e8000000000000000000000000000000000000000000000000000000000000001c546573742045646974696f6e202d204175677573742037202d20303100000000000000000000000000000000000000000000000000000000000000000000001c546573742045646974696f6e202d204175677573742037202d2030310000000000000000000000000000000000000000000000000000000000000000