Loading
[ { "inputs": [ { "components": [ { "internalType": "address", "name": "facetAddress", "type": "address" }, { "internalType": "enum IDiamond.FacetCutAction", "name": "action", "type": "uint8" }, { "internalType": "bytes4[]", "name": "functionSelectors", "type": "bytes4[]" } ], "internalType": "struct IDiamond.FacetCut[]", "name": "_diamondCut", "type": "tuple[]" }, { "components": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "init", "type": "address" }, { "internalType": "bytes", "name": "initCalldata", "type": "bytes" } ], "internalType": "struct DiamondArgs", "name": "_args", "type": "tuple" } ], "stateMutability": "payable", "type": "constructor" }, { "inputs": [ { "internalType": "bytes4", "name": "_selector", "type": "bytes4" } ], "name": "CannotAddFunctionToDiamondThatAlreadyExists", "type": "error" }, { "inputs": [ { "internalType": "bytes4[]", "name": "_selectors", "type": "bytes4[]" } ], "name": "CannotAddSelectorsToZeroAddress", "type": "error" }, { "inputs": [ { "internalType": "bytes4", "name": "_selector", "type": "bytes4" } ], "name": "CannotRemoveFunctionThatDoesNotExist", "type": "error" }, { "inputs": [ { "internalType": "bytes4", "name": "_selector", "type": "bytes4" } ], "name": "CannotRemoveImmutableFunction", "type": "error" }, { "inputs": [ { "internalType": "bytes4", "name": "_selector", "type": "bytes4" } ], "name": "CannotReplaceFunctionThatDoesNotExists", "type": "error" }, { "inputs": [ { "internalType": "bytes4", "name": "_selector", "type": "bytes4" } ], "name": "CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet", "type": "error" }, { "inputs": [ { "internalType": "bytes4[]", "name": "_selectors", "type": "bytes4[]" } ], "name": "CannotReplaceFunctionsFromFacetWithZeroAddress", "type": "error" }, { "inputs": [ { "internalType": "bytes4", "name": "_selector", "type": "bytes4" } ], "name": "CannotReplaceImmutableFunction", "type": "error" }, { "inputs": [ { "internalType": "bytes4", "name": "_functionSelector", "type": "bytes4" } ], "name": "FunctionNotFound", "type": "error" }, { "inputs": [ { "internalType": "uint8", "name": "_action", "type": "uint8" } ], "name": "IncorrectFacetCutAction", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "_initializationContractAddress", "type": "address" }, { "internalType": "bytes", "name": "_calldata", "type": "bytes" } ], "name": "InitializationFunctionReverted", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "_contractAddress", "type": "address" }, { "internalType": "string", "name": "_message", "type": "string" } ], "name": "NoBytecodeAtAddress", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "_facetAddress", "type": "address" } ], "name": "NoSelectorsProvidedForFacetForCut", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "_facetAddress", "type": "address" } ], "name": "RemoveFacetAddressMustBeZeroAddress", "type": "error" }, { "anonymous": false, "inputs": [ { "components": [ { "internalType": "address", "name": "facetAddress", "type": "address" }, { "internalType": "enum IDiamond.FacetCutAction", "name": "action", "type": "uint8" }, { "internalType": "bytes4[]", "name": "functionSelectors", "type": "bytes4[]" } ], "indexed": false, "internalType": "struct IDiamond.FacetCut[]", "name": "_diamondCut", "type": "tuple[]" }, { "indexed": false, "internalType": "address", "name": "_init", "type": "address" }, { "indexed": false, "internalType": "bytes", "name": "_calldata", "type": "bytes" } ], "name": "DiamondCut", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "previousOwner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "OwnershipTransferred", "type": "event" }, { "stateMutability": "payable", "type": "fallback" }, { "stateMutability": "payable", "type": "receive" } ]
608060405260405161104338038061104383398101604081905261002291610ab7565b805161002d9061004d565b61004682826020015183604001516100d860201b60201c565b5050610ea8565b7fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131f80546001600160a01b03838116610100818102610100600160a81b0319851617909455604051600080516020610f8f833981519152949093049091169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b60005b83518110156102375760008482815181106100f8576100f8610c72565b6020026020010151604001519050600085838151811061011a5761011a610c72565b6020026020010151600001519050815160000361015a5760405163e767f91f60e01b81526001600160a01b03821660048201526024015b60405180910390fd5b600086848151811061016e5761016e610c72565b60200260200101516020015190506000600281111561018f5761018f610c88565b8160028111156101a1576101a1610c88565b036101b5576101b08284610282565b61022c565b60018160028111156101c9576101c9610c88565b036101d8576101b0828461042e565b60028160028111156101ec576101ec610c88565b036101fb576101b082846105b7565b80600281111561020d5761020d610c88565b604051633ff4d20f60e11b815260ff9091166004820152602401610151565b5050506001016100db565b507f8faa70878671ccd212d20771b795c50af8fd3ff6cf27f4bde57e5d4de0aeb67383838360405161026b93929190610d10565b60405180910390a161027d8282610836565b505050565b6001600160a01b0382166102ab57806040516302b8da0760e21b81526004016101519190610de2565b600080516020610ffb8339815191525460408051606081019091526024808252600080516020610f8f83398151915292916102f091869190610faf60208301396108fc565b60005b835181101561042757600084828151811061031057610310610c72565b6020908102919091018101516001600160e01b031981166000908152918690526040909120549091506001600160a01b0316801561036d5760405163ebbf5d0760e01b81526001600160e01b031983166004820152602401610151565b6040805180820182526001600160a01b03808a16825261ffff80881660208085019182526001600160e01b0319881660009081528b8252958620945185549251909316600160a01b026001600160b01b0319909216929093169190911717909155600180880180549182018155835291206008820401805460e085901c60046007909416939093026101000a92830263ffffffff90930219169190911790558361041681610e12565b945050600190920191506102f39050565b5050505050565b600080516020610f8f8339815191526001600160a01b038316610466578160405163cd98a96f60e01b81526004016101519190610de2565b6104888360405180606001604052806028815260200161101b602891396108fc565b60005b82518110156105b15760008382815181106104a8576104a8610c72565b6020908102919091018101516001600160e01b031981166000908152918590526040909120549091506001600160a01b031630810361050657604051632901806d60e11b81526001600160e01b031983166004820152602401610151565b856001600160a01b0316816001600160a01b03160361054457604051631ac6ce8d60e11b81526001600160e01b031983166004820152602401610151565b6001600160a01b03811661057757604051637479f93960e01b81526001600160e01b031983166004820152602401610151565b506001600160e01b031916600090815260208390526040902080546001600160a01b0319166001600160a01b03861617905560010161048b565b50505050565b600080516020610ffb83398151915254600080516020610f8f833981519152906001600160a01b0384161561060a5760405163d091bc8160e01b81526001600160a01b0385166004820152602401610151565b60005b835181101561042757600084828151811061062a5761062a610c72565b6020908102919091018101516001600160e01b0319811660009081528683526040908190208151808301909252546001600160a01b038116808352600160a01b90910461ffff1693820193909352909250906106a557604051637a08a22d60e01b81526001600160e01b031983166004820152602401610151565b8051306001600160a01b03909116036106dd57604051630df5fd6160e31b81526001600160e01b031983166004820152602401610151565b836106e781610e33565b94505083816020015161ffff16146107c557600085600101858154811061071057610710610c72565b90600052602060002090600891828204019190066004029054906101000a900460e01b90508086600101836020015161ffff168154811061075357610753610c72565b600091825260208083206008830401805463ffffffff60079094166004026101000a938402191660e09590951c92909202939093179055838201516001600160e01b03199390931681529087905260409020805461ffff60a01b1916600160a01b61ffff909316929092029190911790555b846001018054806107d8576107d8610e4a565b60008281526020808220600860001990940193840401805463ffffffff600460078716026101000a0219169055919092556001600160e01b0319909316815291859052506040902080546001600160b01b031916905560010161060d565b6001600160a01b038216610848575050565b61086a82604051806060016040528060288152602001610fd3602891396108fc565b600080836001600160a01b0316836040516108859190610e60565b600060405180830381855af49150503d80600081146108c0576040519150601f19603f3d011682016040523d82523d6000602084013e6108c5565b606091505b5091509150816105b1578051156108df5780518082602001fd5b838360405163192105d760e01b8152600401610151929190610e7c565b813b600081900361027d57828260405163919834b960e01b8152600401610151929190610e7c565b634e487b7160e01b600052604160045260246000fd5b604051606081016001600160401b038111828210171561095c5761095c610924565b60405290565b604051601f8201601f191681016001600160401b038111828210171561098a5761098a610924565b604052919050565b60006001600160401b038211156109ab576109ab610924565b5060051b60200190565b80516001600160a01b03811681146109cc57600080fd5b919050565b60005b838110156109ec5781810151838201526020016109d4565b50506000910152565b600060608284031215610a0757600080fd5b610a0f61093a565b9050610a1a826109b5565b8152610a28602083016109b5565b602082015260408201516001600160401b03811115610a4657600080fd5b8201601f81018413610a5757600080fd5b80516001600160401b03811115610a7057610a70610924565b610a83601f8201601f1916602001610962565b818152856020838501011115610a9857600080fd5b610aa98260208301602086016109d1565b604084015250909392505050565b60008060408385031215610aca57600080fd5b82516001600160401b03811115610ae057600080fd5b8301601f81018513610af157600080fd5b8051610b04610aff82610992565b610962565b8082825260208201915060208360051b850101925087831115610b2657600080fd5b602084015b83811015610c3b5780516001600160401b03811115610b4957600080fd5b85016060818b03601f19011215610b5f57600080fd5b610b6761093a565b610b73602083016109b5565b8152604082015160038110610b8757600080fd5b602082015260608201516001600160401b03811115610ba557600080fd5b6020818401019250508a601f830112610bbd57600080fd5b8151610bcb610aff82610992565b8082825260208201915060208360051b86010192508d831115610bed57600080fd5b6020850194505b82851015610c255784516001600160e01b031981168114610c1457600080fd5b825260209485019490910190610bf4565b6040840152505084525060209283019201610b2b565b506020870151909550925050506001600160401b03811115610c5c57600080fd5b610c68858286016109f5565b9150509250929050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052602160045260246000fd5b600081518084526020840193506020830160005b82811015610cda5781516001600160e01b031916865260209586019590910190600101610cb2565b5093949350505050565b60008151808452610cfc8160208601602086016109d1565b601f01601f19169290920160200192915050565b6000606082016060835280865180835260808501915060808160051b86010192506020880160005b82811015610db357868503607f19018452815180516001600160a01b03168652602081015160038110610d7b57634e487b7160e01b600052602160045260246000fd5b806020880152506040810151905060606040870152610d9d6060870182610c9e565b9550506020938401939190910190600101610d38565b5050506001600160a01b0386166020850152508281036040840152610dd88185610ce4565b9695505050505050565b602081526000610df56020830184610c9e565b9392505050565b634e487b7160e01b600052601160045260246000fd5b600061ffff821661ffff8103610e2a57610e2a610dfc565b60010192915050565b600081610e4257610e42610dfc565b506000190190565b634e487b7160e01b600052603160045260246000fd5b60008251610e728184602087016109d1565b9190910192915050565b6001600160a01b0383168152604060208201819052600090610ea090830184610ce4565b949350505050565b60d980610eb66000396000f3fe608060405236600a57005b600080356001600160e01b03191681527fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131c602081905260409091205481906001600160a01b031680608057604051630a82dd7360e31b81526001600160e01b031960003516600482015260240160405180910390fd5b3660008037600080366000845af43d6000803e808015609e573d6000f35b3d6000fdfea2646970667358221220d7bec6efd8de404a1dbab8f6eb4d7df60871717e171a6537ed29c3449dad443b64736f6c634300081b0033c8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131c4c69624469616d6f6e644375743a2041646420666163657420686173206e6f20636f64654c69624469616d6f6e644375743a205f696e6974206164647265737320686173206e6f20636f6465c8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131d4c69624469616d6f6e644375743a205265706c61636520666163657420686173206e6f20636f6465000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000002400000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000ad4a9fb069116e3cdb727a26f21cf84d599e3d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000011f931c1c000000000000000000000000000000000000000000000000000000000000000000000000000000004d62517d19d5013ca7687bbaf31c685dd83346a50000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000047a0ed6270000000000000000000000000000000000000000000000000000000052ef6b2c00000000000000000000000000000000000000000000000000000000cdffacc600000000000000000000000000000000000000000000000000000000adfca15e000000000000000000000000000000000000000000000000000000000000000000000000000000006cfa62f8e0a3a426f85fb63db1c6540b5cd4660300000000000000000000000079ac29a0fa82bfcbcf89929f7711ea8776b23eee00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000020e1c7392a00000000000000000000000000000000000000000000000000000000