1 tx
2 calls
constructor
constructor(address _verifier)
functions
getProxyAddress
viewfunction getProxyAddress(address implementation) view returns (address)
getProxyAddressWithNonce
viewfunction getProxyAddressWithNonce(address implementation, uint256 localNonce) view returns (address)
mapInstanceParams
viewfunction mapInstanceParams(address) view returns (address implementation, address deployer, bool isEnabled)
nonce
viewfunction nonce() view returns (uint256)
owner
viewfunction owner() view returns (address)
SELECTOR_DATA_LENGTH
viewfunction SELECTOR_DATA_LENGTH() view returns (uint256)
verifier
viewfunction verifier() view returns (address)
verifyInstance
viewfunction verifyInstance(address instance) view returns (bool)
verifyInstanceAndGetEmissionsAmount
viewfunction verifyInstanceAndGetEmissionsAmount(address instance) view returns (uint256 amount)
changeOwner
nonpayablefunction changeOwner(address newOwner)
changeVerifier
nonpayablefunction changeVerifier(address newVerifier)
createStakingInstance
nonpayablefunction createStakingInstance(address implementation, bytes initPayload) returns (address instance)
removeInstance
nonpayablefunction removeInstance(address instance)
setInstanceStatus
nonpayablefunction setInstanceStatus(address instance, bool isEnabled)
events
InstanceCreated
event InstanceCreated(address indexed sender, address indexed instance, address indexed implementation)
InstanceRemoved
event InstanceRemoved(address indexed instance)
InstanceStatusChanged
event InstanceStatusChanged(address indexed instance, bool isEnabled)
OwnerUpdated
event OwnerUpdated(address indexed owner)
VerifierUpdated
event VerifierUpdated(address indexed verifier)
errors
ContractOnly
error ContractOnly(address implementation)
IncorrectDataLength
error IncorrectDataLength(uint256 expected, uint256 provided)
InitializationFailed
error InitializationFailed(address instance)
OwnerOnly
error OwnerOnly(address sender, address owner)
ProxyCreationFailed
error ProxyCreationFailed(address implementation)
ReentrancyGuard
error ReentrancyGuard()
UnverifiedImplementation
error UnverifiedImplementation(address implementation)
UnverifiedProxy
error UnverifiedProxy(address instance)
ZeroAddress
error ZeroAddress()
creation bytecode
0x608060405260016003553480156013575f80fd5b5060405161118b38038061118b8339810160408190526030916062565b60018054336001600160a01b031991821617909155600280549091166001600160a01b0392909216919091179055608d565b5f602082840312156071575f80fd5b81516001600160a01b03811681146086575f80fd5b9392505050565b6110f18061009a5f395ff3fe608060405234801561000f575f80fd5b50600436106100e5575f3560e01c80638da5cb5b11610088578063cf04fb9411610063578063cf04fb94146101ce578063e8dc705a146101e1578063ec2ee1f614610248578063fa2a5b011461025b575f80fd5b80638da5cb5b146101a0578063a6f9dae1146101b3578063affed0e0146101c6575f80fd5b80633ce3778c116100c35780633ce3778c1461014f578063479e372e14610157578063555b8adb1461017a578063830a322a1461018d575f80fd5b8063118e24bd146100e95780631eda94d7146100fe5780632b7ac3f314610124575b5f80fd5b6100fc6100f7366004610ce1565b61026e565b005b61011161010c366004610d16565b610347565b6040519081526020015b60405180910390f35b600254610137906001600160a01b031681565b6040516001600160a01b03909116815260200161011b565b610111600481565b61016a610165366004610d16565b61045e565b604051901515815260200161011b565b610137610188366004610d36565b61052b565b6100fc61019b366004610d16565b6105ff565b600154610137906001600160a01b031681565b6100fc6101c1366004610d16565b6106e8565b6101115f5481565b6100fc6101dc366004610d16565b610798565b6102206101ef366004610d16565b60046020525f9081526040902080546001909101546001600160a01b0391821691811690600160a01b900460ff1683565b604080516001600160a01b03948516815293909216602084015215159082015260600161011b565b610137610256366004610d72565b610821565b610137610269366004610d16565b610c42565b6001600160a01b038083165f90815260046020526040902060018101549091163381146102c45760405163521eb56d60e11b81523360048201526001600160a01b03821660248201526044015b60405180910390fd5b600182018054841515600160a01b027fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff9091161790556040516001600160a01b038516907f11126b4c1d3b69d7dd553c2f8b2be5f8fabfe22552ceffc3240126fdc087eca09061033990861515815260200190565b60405180910390a250505050565b6001600160a01b0381165f90815260046020526040812060010154600160a01b900460ff168015610458576002546001600160a01b031680156103f357604051630e1e19e160e21b81526001600160a01b038581166004830152821690633878678490602401602060405180830381865afa1580156103c8573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103ec9190610e2e565b9250610456565b836001600160a01b031663957323616040518163ffffffff1660e01b8152600401602060405180830381865afa15801561042f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104539190610e2e565b92505b505b50919050565b6001600160a01b0381165f9081526004602052604081206001810154600160a01b900460ff168061049257505f9392505050565b6002546001600160a01b031680156105205782546040516369be670b60e01b81526001600160a01b0387811660048301529182166024820152908216906369be670b90604401602060405180830381865afa1580156104f3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105179190610e45565b95945050505050565b506001949350505050565b5f8061053683610c4e565b90505f6040518060200161054990610ca9565b601f1982820381018352601f90910116604081905261057691906001600160a01b03881690602001610e77565b60408051808303601f1901815282825280516020918201207fff00000000000000000000000000000000000000000000000000000000000000828501523060601b6bffffffffffffffffffffffff191660218501526035840195909552605580840195909552815180840390950185526075909201905282519201919091209150505b92915050565b6001546001600160a01b0316331461063f5760015460405163521eb56d60e11b81523360048201526001600160a01b0390911660248201526044016102bb565b6001600160a01b038082165f90815260046020526040902060010154168061067a5760405163d92e233d60e01b815260040160405180910390fd5b6001600160a01b0382165f8181526004602052604080822080546001600160a01b0319168155600101805474ffffffffffffffffffffffffffffffffffffffffff19169055517f5e8652b9d1a24d82bfe7a9bfae71e26899d688827382d41f69b1c79342c586aa9190a25050565b6001546001600160a01b031633146107285760015460405163521eb56d60e11b81523360048201526001600160a01b0390911660248201526044016102bb565b6001600160a01b03811661074f5760405163d92e233d60e01b815260040160405180910390fd5b600180546001600160a01b0319166001600160a01b0383169081179091556040517f4ffd725fc4a22075e9ec71c59edf9c38cdeb588a91b24fc5b61388c5be41282b905f90a250565b6001546001600160a01b031633146107d85760015460405163521eb56d60e11b81523360048201526001600160a01b0390911660248201526044016102bb565b600280546001600160a01b0319166001600160a01b0383169081179091556040517fd24015cc99cc1700cafca3042840a1d8ac1e3964fd2e0e37ea29c654056ee327905f90a250565b5f60016003541115610846576040516345f5ce8b60e11b815260040160405180910390fd5b60026003556001600160a01b0383166108725760405163d92e233d60e01b815260040160405180910390fd5b826001600160a01b03163b5f036108a75760405163601c0c2160e01b81526001600160a01b03841660048201526024016102bb565b6004825110156108d95781516004604051631a64813d60e11b81526004016102bb929190918252602082015260400190565b6002546001600160a01b031680158015906109595750604051634b19276b60e11b81526001600160a01b0385811660048301528216906396324ed690602401602060405180830381865afa158015610933573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109579190610e45565b155b1561098257604051633df7a39d60e21b81526001600160a01b03851660048201526024016102bb565b5f80549061098f82610c4e565b90505f604051806020016109a290610ca9565b601f1982820381018352601f9091011660408190526109cf91906001600160a01b038a1690602001610e77565b6040516020818303038152906040529050818151826020015ff594506001600160a01b038516610a1d576040516329c25ebd60e11b81526001600160a01b03881660048201526024016102bb565b5f80866001600160a01b031688604051610a379190610e8f565b5f604051808303815f865af19150503d805f8114610a70576040519150601f19603f3d011682016040523d82523d5f602084013e610a75565b606091505b509150915081610ab357805115610a8f5780518082602001fd5b604051633c4c93c960e21b81526001600160a01b03881660048201526024016102bb565b6001600160a01b03861615801590610b3857506040516369be670b60e01b81526001600160a01b0388811660048301528a811660248301528716906369be670b90604401602060405180830381865afa158015610b12573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b369190610e45565b155b15610b6157604051630a7f26af60e21b81526001600160a01b03881660048201526024016102bb565b604080516060810182526001600160a01b038b8116825233602080840191825260018486018181528d85165f908152600490935295909120845181546001600160a01b0319169085161781559151918101805495519290931674ffffffffffffffffffffffffffffffffffffffffff1990951694909417600160a01b9115159190910217905590610bf3908790610eae565b5f9081556040516001600160a01b03808d1692908b169133917fc88bd7cfbe8bae024ebb6f3cf291adfd7db2588a07e1c78768ea3c81b992496b91a45050600160035550939695505050505050565b5f6105f9825f5461052b565b5f468233610c5d600143610ec1565b6040805160208101959095528401929092526001600160a01b031660608301524060808201524260a082015260c001604051602081830303815290604052805190602001209050919050565b6101e780610ed583390190565b80356001600160a01b0381168114610ccc575f80fd5b919050565b8015158114610cde575f80fd5b50565b5f8060408385031215610cf2575f80fd5b610cfb83610cb6565b91506020830135610d0b81610cd1565b809150509250929050565b5f60208284031215610d26575f80fd5b610d2f82610cb6565b9392505050565b5f8060408385031215610d47575f80fd5b610d5083610cb6565b946020939093013593505050565b634e487b7160e01b5f52604160045260245ffd5b5f8060408385031215610d83575f80fd5b610d8c83610cb6565b9150602083013567ffffffffffffffff80821115610da8575f80fd5b818501915085601f830112610dbb575f80fd5b813581811115610dcd57610dcd610d5e565b604051601f8201601f19908116603f01168101908382118183101715610df557610df5610d5e565b81604052828152886020848701011115610e0d575f80fd5b826020860160208301375f6020848301015280955050505050509250929050565b5f60208284031215610e3e575f80fd5b5051919050565b5f60208284031215610e55575f80fd5b8151610d2f81610cd1565b5f81518060208401855e5f93019283525090919050565b5f610e828285610e60565b9283525050602001919050565b5f610d2f8284610e60565b634e487b7160e01b5f52601160045260245ffd5b808201808211156105f9576105f9610e9a565b818103818111156105f9576105f9610e9a56fe6080604052348015600e575f80fd5b506040516101e73803806101e7833981016040819052602b916077565b6001600160a01b03811660515760405163d02c623d60e01b815260040160405180910390fd5b7f9e5e169c1098011e4e5940a3ec1797686b2a8294a9b77a4c676b121bdc0ebb5e5560a2565b5f602082840312156086575f80fd5b81516001600160a01b0381168114609b575f80fd5b9392505050565b610138806100af5f395ff3fe608060405260043610610028575f3560e01c806346032dbc14610069578063aaf10f42146100af575b7f9e5e169c1098011e4e5940a3ec1797686b2a8294a9b77a4c676b121bdc0ebb5e54365f80375f80365f845af490503d5f803e80610064573d5ffd5b503d5ff35b348015610074575f80fd5b5061009c7f9e5e169c1098011e4e5940a3ec1797686b2a8294a9b77a4c676b121bdc0ebb5e81565b6040519081526020015b60405180910390f35b3480156100ba575f80fd5b507f9e5e169c1098011e4e5940a3ec1797686b2a8294a9b77a4c676b121bdc0ebb5e5460405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100a656fea2646970667358221220cd2f3d25e9410d8ca6f1f5af516d26b4d6351d087dd182806de06350446497fb64736f6c63430008190033a26469706673582212209a2b8899eff7db77f389f3bc8db3f5d03ac4169347fce9e27d153c5738c0afcd64736f6c634300081900330000000000000000000000008bc0a5c5b1612a16983b01ecd7ae130e728390cb