From 6a50f91e75d5f2690288cf0a8f74babbe947a16c Mon Sep 17 00:00:00 2001 From: quaq <56312047+0x0aa0@users.noreply.github.com> Date: Tue, 16 Apr 2024 16:53:29 -0500 Subject: [PATCH] ejector update (#484) --- contracts/bindings/EjectionManager/binding.go | 10 +++++----- contracts/lib/eigenlayer-middleware | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/contracts/bindings/EjectionManager/binding.go b/contracts/bindings/EjectionManager/binding.go index 1bdeb97934..f2cb040a48 100644 --- a/contracts/bindings/EjectionManager/binding.go +++ b/contracts/bindings/EjectionManager/binding.go @@ -37,8 +37,8 @@ type IEjectionManagerQuorumEjectionParams struct { // ContractEjectionManagerMetaData contains all meta data concerning the ContractEjectionManager contract. var ContractEjectionManagerMetaData = &bind.MetaData{ - ABI: "[{\"type\":\"constructor\",\"inputs\":[{\"name\":\"_registryCoordinator\",\"type\":\"address\",\"internalType\":\"contractIRegistryCoordinator\"},{\"name\":\"_stakeRegistry\",\"type\":\"address\",\"internalType\":\"contractIStakeRegistry\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"amountEjectableForQuorum\",\"inputs\":[{\"name\":\"_quorumNumber\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"ejectOperators\",\"inputs\":[{\"name\":\"_operatorIds\",\"type\":\"bytes32[][]\",\"internalType\":\"bytes32[][]\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"initialize\",\"inputs\":[{\"name\":\"_owner\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"_ejectors\",\"type\":\"address[]\",\"internalType\":\"address[]\"},{\"name\":\"_quorumEjectionParams\",\"type\":\"tuple[]\",\"internalType\":\"structIEjectionManager.QuorumEjectionParams[]\",\"components\":[{\"name\":\"rateLimitWindow\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"ejectableStakePercent\",\"type\":\"uint16\",\"internalType\":\"uint16\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"isEjector\",\"inputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"owner\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"quorumEjectionParams\",\"inputs\":[{\"name\":\"\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"outputs\":[{\"name\":\"rateLimitWindow\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"ejectableStakePercent\",\"type\":\"uint16\",\"internalType\":\"uint16\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"registryCoordinator\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIRegistryCoordinator\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"renounceOwnership\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setEjector\",\"inputs\":[{\"name\":\"_ejector\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"_status\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setQuorumEjectionParams\",\"inputs\":[{\"name\":\"_quorumNumber\",\"type\":\"uint8\",\"internalType\":\"uint8\"},{\"name\":\"_quorumEjectionParams\",\"type\":\"tuple\",\"internalType\":\"structIEjectionManager.QuorumEjectionParams\",\"components\":[{\"name\":\"rateLimitWindow\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"ejectableStakePercent\",\"type\":\"uint16\",\"internalType\":\"uint16\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"stakeEjectedForQuorum\",\"inputs\":[{\"name\":\"\",\"type\":\"uint8\",\"internalType\":\"uint8\"},{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"timestamp\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"stakeEjected\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"stakeRegistry\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIStakeRegistry\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"transferOwnership\",\"inputs\":[{\"name\":\"newOwner\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"event\",\"name\":\"EjectorUpdated\",\"inputs\":[{\"name\":\"ejector\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"status\",\"type\":\"bool\",\"indexed\":false,\"internalType\":\"bool\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"FailedOperatorEjection\",\"inputs\":[{\"name\":\"operatorId\",\"type\":\"bytes32\",\"indexed\":false,\"internalType\":\"bytes32\"},{\"name\":\"quorumNumber\",\"type\":\"uint8\",\"indexed\":false,\"internalType\":\"uint8\"},{\"name\":\"err\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Initialized\",\"inputs\":[{\"name\":\"version\",\"type\":\"uint8\",\"indexed\":false,\"internalType\":\"uint8\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OperatorEjected\",\"inputs\":[{\"name\":\"operatorId\",\"type\":\"bytes32\",\"indexed\":false,\"internalType\":\"bytes32\"},{\"name\":\"quorumNumber\",\"type\":\"uint8\",\"indexed\":false,\"internalType\":\"uint8\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OwnershipTransferred\",\"inputs\":[{\"name\":\"previousOwner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"newOwner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"QuorumEjectionParamsSet\",\"inputs\":[{\"name\":\"quorumNumber\",\"type\":\"uint8\",\"indexed\":false,\"internalType\":\"uint8\"},{\"name\":\"rateLimitWindow\",\"type\":\"uint32\",\"indexed\":false,\"internalType\":\"uint32\"},{\"name\":\"ejectableStakePercent\",\"type\":\"uint16\",\"indexed\":false,\"internalType\":\"uint16\"}],\"anonymous\":false}]", - Bin: "0x60c06040523480156200001157600080fd5b506040516200163f3803806200163f833981016040819052620000349162000134565b6001600160a01b03808316608052811660a0526200005162000059565b505062000173565b600054610100900460ff1615620000c65760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116101562000119576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b03811681146200013157600080fd5b50565b600080604083850312156200014857600080fd5b825162000155816200011b565b602084015190925062000168816200011b565b809150509250929050565b60805160a05161148a620001b5600039600081816101800152818161035a0152610a620152600081816101f2015281816104d80152610507015261148a6000f3fe608060405234801561001057600080fd5b50600436106100ce5760003560e01c80636d14a9871161008c5780638b88a024116100665780638b88a0241461022f5780638da5cb5b14610242578063b13f450414610253578063f2fde38b1461027457600080fd5b80636d14a987146101ed578063715018a61461021457806377d175861461021c57600080fd5b8062482569146100d35780630a0593d11461012b57806310ea4f8a146101405780633a0b0ddd14610153578063683048351461017b5780636c08a879146101ba575b600080fd5b6101076100e1366004610e3b565b60676020526000908152604090205463ffffffff811690640100000000900461ffff1682565b6040805163ffffffff909316835261ffff9091166020830152015b60405180910390f35b61013e610139366004610ec8565b610287565b005b61013e61014e366004610fe9565b610801565b610166610161366004611027565b610813565b60408051928352602083019190915201610122565b6101a27f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610122565b6101dd6101c8366004611051565b60656020526000908152604090205460ff1681565b6040519015158152602001610122565b6101a27f000000000000000000000000000000000000000000000000000000000000000081565b61013e61084f565b61013e61022a3660046110e1565b610863565b61013e61023d366004611184565b610875565b6033546001600160a01b03166101a2565b610266610261366004610e3b565b610a1b565b604051908152602001610122565b61013e610282366004611051565b610c1f565b3360009081526065602052604090205460ff16806102af57506033546001600160a01b031633145b6103115760405162461bcd60e51b815260206004820152602860248201527f456a6563746f723a204f6e6c79206f776e6572206f7220656a6563746f722063604482015267185b88195a9958dd60c21b60648201526084015b60405180910390fd5b60005b81518110156107fd5780600061032982610a1b565b905060008060005b8686815181106103435761034361125a565b6020026020010151518160ff16101561077c5760007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316635401ed278989815181106103995761039961125a565b60200260200101518460ff16815181106103b5576103b561125a565b6020026020010151886040518363ffffffff1660e01b81526004016103e792919091825260ff16602082015260400190565b602060405180830381865afa158015610404573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104289190611270565b336000908152606560205260409020546001600160601b0391909116915060ff16801561046c575060ff861660009081526067602052604090205463ffffffff1615155b801561048057508461047e82866112af565b115b156104d6575060ff8516600090815260666020908152604080832081518083019092524282528183018781528154600181810184559286529390942091516002909302909101918255915190820155915061077c565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316636e3b17db7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663296bb0648b8b815181106105465761054661125a565b60200260200101518660ff16815181106105625761056261125a565b60200260200101516040518263ffffffff1660e01b815260040161058891815260200190565b602060405180830381865afa1580156105a5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105c991906112c7565b6040516001600160f81b031960f88b901b1660208201526021016040516020818303038152906040526040518363ffffffff1660e01b815260040161060f929190611331565b600060405180830381600087803b15801561062957600080fd5b505af192505050801561063a575060015b6106e4573d808015610668576040519150601f19603f3d011682016040523d82523d6000602084013e61066d565b606091505b507fae1dcabe5fd19643522b5e06189c4f844e5ba5d3bf0c17e47a22c68dd585b6ef8989815181106106a1576106a161125a565b60200260200101518460ff16815181106106bd576106bd61125a565b602002602001015188836040516106d69392919061135d565b60405180910390a15061076b565b6106ee81856112af565b93507f97ddb711c61a9d2d7effcba3e042a33862297f898d555655cca39ec4451f53b48888815181106107235761072361125a565b60200260200101518360ff168151811061073f5761073f61125a565b60200260200101518760405161076292919091825260ff16602082015260400190565b60405180910390a15b5061077581611388565b9050610331565b508015801561079a57503360009081526065602052604090205460ff165b156107e85760ff841660009081526066602090815260408083208151808301909252428252818301868152815460018181018455928652939094209151600290930290910191825591519101555b50505050806107f6906113a8565b9050610314565b5050565b610809610c98565b6107fd8282610cf2565b6066602052816000526040600020818154811061082f57600080fd5b600091825260209091206002909102018054600190910154909250905082565b610857610c98565b6108616000610d56565b565b61086b610c98565b6107fd8282610da8565b600054610100900460ff16158080156108955750600054600160ff909116105b806108af5750303b1580156108af575060005460ff166001145b6109125760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610308565b6000805460ff191660011790558015610935576000805461ff0019166101001790555b61093e84610d56565b60005b83518160ff16101561098657610974848260ff16815181106109655761096561125a565b60200260200101516001610cf2565b8061097e81611388565b915050610941565b5060005b82518160ff1610156109ce576109bc81848360ff16815181106109af576109af61125a565b6020026020010151610da8565b806109c681611388565b91505061098a565b508015610a15576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b60ff81166000908152606760205260408120548190610a409063ffffffff16426113c3565b60405163d5eccc0560e01b815260ff85166004820152909150600090612710907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063d5eccc0590602401602060405180830381865afa158015610ab1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ad59190611270565b60ff8616600090815260676020526040902054610afe9190640100000000900461ffff166113da565b610b089190611409565b60ff85166000908152606660205260408120546001600160601b03929092169250908190610b3a575090949350505050565b60ff8616600090815260666020526040902054610b59906001906113c3565b90505b60ff86166000908152606660205260409020805485919083908110610b8357610b8361125a565b9060005260206000209060020201600001541115610bf85760ff86166000908152606660205260409020805482908110610bbf57610bbf61125a565b90600052602060002090600202016001015482610bdc91906112af565b915080610be857610bf8565b610bf18161143d565b9050610b5c565b828210610c0b5750600095945050505050565b610c1582846113c3565b9695505050505050565b610c27610c98565b6001600160a01b038116610c8c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610308565b610c9581610d56565b50565b6033546001600160a01b031633146108615760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610308565b6001600160a01b038216600081815260656020908152604091829020805460ff19168515159081179091558251938452908301527f7676686b6d22e112412bd874d70177e011ab06602c26063f19f0386c9a3cee4291015b60405180910390a15050565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60ff8216600081815260676020908152604091829020845181548684015163ffffffff90921665ffffffffffff19909116811764010000000061ffff90931692830217909255835194855291840152908201527fe69c2827a1e2fdd32265ebb4eeea5ee564f0551cf5dfed4150f8e116a67209eb90606001610d4a565b803560ff81168114610e3657600080fd5b919050565b600060208284031215610e4d57600080fd5b610e5682610e25565b9392505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715610e9c57610e9c610e5d565b604052919050565b600067ffffffffffffffff821115610ebe57610ebe610e5d565b5060051b60200190565b60006020808385031215610edb57600080fd5b823567ffffffffffffffff80821115610ef357600080fd5b818501915085601f830112610f0757600080fd5b8135610f1a610f1582610ea4565b610e73565b818152600591821b8401850191858201919089841115610f3957600080fd5b8686015b84811015610fc557803586811115610f555760008081fd5b8701603f81018c13610f675760008081fd5b888101356040610f79610f1583610ea4565b82815291851b83018101918b8101908f841115610f965760008081fd5b938201935b83851015610fb45784358252938c0193908c0190610f9b565b885250505093880193508701610f3d565b50909998505050505050505050565b6001600160a01b0381168114610c9557600080fd5b60008060408385031215610ffc57600080fd5b823561100781610fd4565b91506020830135801515811461101c57600080fd5b809150509250929050565b6000806040838503121561103a57600080fd5b61104383610e25565b946020939093013593505050565b60006020828403121561106357600080fd5b8135610e5681610fd4565b60006040828403121561108057600080fd5b6040516040810181811067ffffffffffffffff821117156110a3576110a3610e5d565b604052905080823563ffffffff811681146110bd57600080fd5b8152602083013561ffff811681146110d457600080fd5b6020919091015292915050565b600080606083850312156110f457600080fd5b6110fd83610e25565b915061110c846020850161106e565b90509250929050565b600082601f83011261112657600080fd5b81356020611136610f1583610ea4565b82815260069290921b8401810191818101908684111561115557600080fd5b8286015b848110156111795761116b888261106e565b835291830191604001611159565b509695505050505050565b60008060006060848603121561119957600080fd5b83356111a481610fd4565b925060208481013567ffffffffffffffff808211156111c257600080fd5b818701915087601f8301126111d657600080fd5b81356111e4610f1582610ea4565b81815260059190911b8301840190848101908a83111561120357600080fd5b938501935b8285101561122a57843561121b81610fd4565b82529385019390850190611208565b96505050604087013592508083111561124257600080fd5b505061125086828701611115565b9150509250925092565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561128257600080fd5b81516001600160601b0381168114610e5657600080fd5b634e487b7160e01b600052601160045260246000fd5b600082198211156112c2576112c2611299565b500190565b6000602082840312156112d957600080fd5b8151610e5681610fd4565b6000815180845260005b8181101561130a576020818501810151868301820152016112ee565b8181111561131c576000602083870101525b50601f01601f19169290920160200192915050565b6001600160a01b0383168152604060208201819052600090611355908301846112e4565b949350505050565b83815260ff8316602082015260606040820152600061137f60608301846112e4565b95945050505050565b600060ff821660ff81141561139f5761139f611299565b60010192915050565b60006000198214156113bc576113bc611299565b5060010190565b6000828210156113d5576113d5611299565b500390565b60006001600160601b038083168185168183048111821515161561140057611400611299565b02949350505050565b60006001600160601b038084168061143157634e487b7160e01b600052601260045260246000fd5b92169190910492915050565b60008161144c5761144c611299565b50600019019056fea2646970667358221220b18e2357ebc3584944b5b87b607421c3b63bb3edb067e5a8a44d23752814acf764736f6c634300080c0033", + ABI: "[{\"type\":\"constructor\",\"inputs\":[{\"name\":\"_registryCoordinator\",\"type\":\"address\",\"internalType\":\"contractIRegistryCoordinator\"},{\"name\":\"_stakeRegistry\",\"type\":\"address\",\"internalType\":\"contractIStakeRegistry\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"amountEjectableForQuorum\",\"inputs\":[{\"name\":\"_quorumNumber\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"ejectOperators\",\"inputs\":[{\"name\":\"_operatorIds\",\"type\":\"bytes32[][]\",\"internalType\":\"bytes32[][]\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"initialize\",\"inputs\":[{\"name\":\"_owner\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"_ejectors\",\"type\":\"address[]\",\"internalType\":\"address[]\"},{\"name\":\"_quorumEjectionParams\",\"type\":\"tuple[]\",\"internalType\":\"structIEjectionManager.QuorumEjectionParams[]\",\"components\":[{\"name\":\"rateLimitWindow\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"ejectableStakePercent\",\"type\":\"uint16\",\"internalType\":\"uint16\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"isEjector\",\"inputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"owner\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"quorumEjectionParams\",\"inputs\":[{\"name\":\"\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"outputs\":[{\"name\":\"rateLimitWindow\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"ejectableStakePercent\",\"type\":\"uint16\",\"internalType\":\"uint16\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"registryCoordinator\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIRegistryCoordinator\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"renounceOwnership\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setEjector\",\"inputs\":[{\"name\":\"_ejector\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"_status\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setQuorumEjectionParams\",\"inputs\":[{\"name\":\"_quorumNumber\",\"type\":\"uint8\",\"internalType\":\"uint8\"},{\"name\":\"_quorumEjectionParams\",\"type\":\"tuple\",\"internalType\":\"structIEjectionManager.QuorumEjectionParams\",\"components\":[{\"name\":\"rateLimitWindow\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"ejectableStakePercent\",\"type\":\"uint16\",\"internalType\":\"uint16\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"stakeEjectedForQuorum\",\"inputs\":[{\"name\":\"\",\"type\":\"uint8\",\"internalType\":\"uint8\"},{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"timestamp\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"stakeEjected\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"stakeRegistry\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIStakeRegistry\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"transferOwnership\",\"inputs\":[{\"name\":\"newOwner\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"event\",\"name\":\"EjectorUpdated\",\"inputs\":[{\"name\":\"ejector\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"status\",\"type\":\"bool\",\"indexed\":false,\"internalType\":\"bool\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"FailedOperatorEjection\",\"inputs\":[{\"name\":\"operatorId\",\"type\":\"bytes32\",\"indexed\":false,\"internalType\":\"bytes32\"},{\"name\":\"quorumNumber\",\"type\":\"uint8\",\"indexed\":false,\"internalType\":\"uint8\"},{\"name\":\"err\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Initialized\",\"inputs\":[{\"name\":\"version\",\"type\":\"uint8\",\"indexed\":false,\"internalType\":\"uint8\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OperatorEjected\",\"inputs\":[{\"name\":\"operatorId\",\"type\":\"bytes32\",\"indexed\":false,\"internalType\":\"bytes32\"},{\"name\":\"quorumNumber\",\"type\":\"uint8\",\"indexed\":false,\"internalType\":\"uint8\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OwnershipTransferred\",\"inputs\":[{\"name\":\"previousOwner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"newOwner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"QuorumEjectionParamsSet\",\"inputs\":[{\"name\":\"quorumNumber\",\"type\":\"uint8\",\"indexed\":false,\"internalType\":\"uint8\"},{\"name\":\"rateLimitWindow\",\"type\":\"uint32\",\"indexed\":false,\"internalType\":\"uint32\"},{\"name\":\"ejectableStakePercent\",\"type\":\"uint16\",\"indexed\":false,\"internalType\":\"uint16\"}],\"anonymous\":false}]", + Bin: "0x60c06040523480156200001157600080fd5b506040516200170d3803806200170d833981016040819052620000349162000134565b6001600160a01b03808316608052811660a0526200005162000059565b505062000173565b600054610100900460ff1615620000c65760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116101562000119576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b03811681146200013157600080fd5b50565b600080604083850312156200014857600080fd5b825162000155816200011b565b602084015190925062000168816200011b565b809150509250929050565b60805160a051611558620001b56000396000818161018d015281816103b20152610aec0152600081816101ff01528181610530015261055f01526115586000f3fe608060405234801561001057600080fd5b50600436106100ce5760003560e01c80636d14a9871161008c5780638b88a024116100665780638b88a0241461023c5780638da5cb5b1461024f578063b13f450414610260578063f2fde38b1461028157600080fd5b80636d14a987146101fa578063715018a61461022157806377d175861461022957600080fd5b8062482569146100d35780630a0593d11461012b57806310ea4f8a1461014b5780633a0b0ddd1461016057806368304835146101885780636c08a879146101c7575b600080fd5b6101076100e1366004610ec5565b60676020526000908152604090205463ffffffff811690640100000000900461ffff1682565b6040805163ffffffff909316835261ffff9091166020830152015b60405180910390f35b61013e610139366004610f52565b610294565b604051610122919061105e565b61015e6101593660046110b7565b610887565b005b61017361016e3660046110f5565b61089d565b60408051928352602083019190915201610122565b6101af7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610122565b6101ea6101d536600461111f565b60656020526000908152604090205460ff1681565b6040519015158152602001610122565b6101af7f000000000000000000000000000000000000000000000000000000000000000081565b61015e6108d9565b61015e6102373660046111af565b6108ed565b61015e61024a366004611252565b6108ff565b6033546001600160a01b03166101af565b61027361026e366004610ec5565b610aa5565b604051908152602001610122565b61015e61028f36600461111f565b610ca9565b3360009081526065602052604090205460609060ff16806102bf57506033546001600160a01b031633145b6103215760405162461bcd60e51b815260206004820152602860248201527f456a6563746f723a204f6e6c79206f776e6572206f7220656a6563746f722063604482015267185b88195a9958dd60c21b60648201526084015b60405180910390fd5b6000825167ffffffffffffffff81111561033d5761033d610ee7565b604051908082528060200260200182016040528015610366578160200160208202803683370190505b50905060005b83518110156108805780600061038182610aa5565b905060008080805b89878151811061039b5761039b611328565b6020026020010151518160ff1610156107df5760007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316635401ed278c8a815181106103f1576103f1611328565b60200260200101518460ff168151811061040d5761040d611328565b6020026020010151896040518363ffffffff1660e01b815260040161043f92919091825260ff16602082015260400190565b602060405180830381865afa15801561045c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610480919061133e565b336000908152606560205260409020546001600160601b0391909116915060ff1680156104c4575060ff871660009081526067602052604090205463ffffffff1615155b80156104d85750856104d6828761137d565b115b1561052e575060ff861660009081526066602090815260408083208151808301909252428252818301888152815460018181018455928652939094209151600290930290910191825591519082015591506107df565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316636e3b17db7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663296bb0648e8c8151811061059e5761059e611328565b60200260200101518660ff16815181106105ba576105ba611328565b60200260200101516040518263ffffffff1660e01b81526004016105e091815260200190565b602060405180830381865afa1580156105fd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106219190611395565b6040516001600160f81b031960f88c901b1660208201526021016040516020818303038152906040526040518363ffffffff1660e01b81526004016106679291906113ff565b600060405180830381600087803b15801561068157600080fd5b505af1925050508015610692575060015b61073c573d8080156106c0576040519150601f19603f3d011682016040523d82523d6000602084013e6106c5565b606091505b507fae1dcabe5fd19643522b5e06189c4f844e5ba5d3bf0c17e47a22c68dd585b6ef8c8a815181106106f9576106f9611328565b60200260200101518460ff168151811061071557610715611328565b6020026020010151898360405161072e9392919061142b565b60405180910390a1506107ce565b610746818661137d565b945061075184611456565b93507f97ddb711c61a9d2d7effcba3e042a33862297f898d555655cca39ec4451f53b48b898151811061078657610786611328565b60200260200101518360ff16815181106107a2576107a2611328565b6020026020010151886040516107c592919091825260ff16602082015260400190565b60405180910390a15b506107d881611471565b9050610389565b50801580156107fd57503360009081526065602052604090205460ff165b1561084b5760ff851660009081526066602090815260408083208151808301909252428252818301878152815460018181018455928652939094209151600290930290910191825591519101555b8187878151811061085e5761085e611328565b60200260200101818152505050505050508061087990611456565b905061036c565b5092915050565b61088f610d22565b6108998282610d7c565b5050565b606660205281600052604060002081815481106108b957600080fd5b600091825260209091206002909102018054600190910154909250905082565b6108e1610d22565b6108eb6000610de0565b565b6108f5610d22565b6108998282610e32565b600054610100900460ff161580801561091f5750600054600160ff909116105b806109395750303b158015610939575060005460ff166001145b61099c5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610318565b6000805460ff1916600117905580156109bf576000805461ff0019166101001790555b6109c884610de0565b60005b83518160ff161015610a10576109fe848260ff16815181106109ef576109ef611328565b60200260200101516001610d7c565b80610a0881611471565b9150506109cb565b5060005b82518160ff161015610a5857610a4681848360ff1681518110610a3957610a39611328565b6020026020010151610e32565b80610a5081611471565b915050610a14565b508015610a9f576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b60ff81166000908152606760205260408120548190610aca9063ffffffff1642611491565b60405163d5eccc0560e01b815260ff85166004820152909150600090612710907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063d5eccc0590602401602060405180830381865afa158015610b3b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b5f919061133e565b60ff8616600090815260676020526040902054610b889190640100000000900461ffff166114a8565b610b9291906114d7565b60ff85166000908152606660205260408120546001600160601b03929092169250908190610bc4575090949350505050565b60ff8616600090815260666020526040902054610be390600190611491565b90505b60ff86166000908152606660205260409020805485919083908110610c0d57610c0d611328565b9060005260206000209060020201600001541115610c825760ff86166000908152606660205260409020805482908110610c4957610c49611328565b90600052602060002090600202016001015482610c66919061137d565b915080610c7257610c82565b610c7b8161150b565b9050610be6565b828210610c955750600095945050505050565b610c9f8284611491565b9695505050505050565b610cb1610d22565b6001600160a01b038116610d165760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610318565b610d1f81610de0565b50565b6033546001600160a01b031633146108eb5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610318565b6001600160a01b038216600081815260656020908152604091829020805460ff19168515159081179091558251938452908301527f7676686b6d22e112412bd874d70177e011ab06602c26063f19f0386c9a3cee4291015b60405180910390a15050565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60ff8216600081815260676020908152604091829020845181548684015163ffffffff90921665ffffffffffff19909116811764010000000061ffff90931692830217909255835194855291840152908201527fe69c2827a1e2fdd32265ebb4eeea5ee564f0551cf5dfed4150f8e116a67209eb90606001610dd4565b803560ff81168114610ec057600080fd5b919050565b600060208284031215610ed757600080fd5b610ee082610eaf565b9392505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715610f2657610f26610ee7565b604052919050565b600067ffffffffffffffff821115610f4857610f48610ee7565b5060051b60200190565b60006020808385031215610f6557600080fd5b823567ffffffffffffffff80821115610f7d57600080fd5b818501915085601f830112610f9157600080fd5b8135610fa4610f9f82610f2e565b610efd565b818152600591821b8401850191858201919089841115610fc357600080fd5b8686015b8481101561104f57803586811115610fdf5760008081fd5b8701603f81018c13610ff15760008081fd5b888101356040611003610f9f83610f2e565b82815291851b83018101918b8101908f8411156110205760008081fd5b938201935b8385101561103e5784358252938c0193908c0190611025565b885250505093880193508701610fc7565b50909998505050505050505050565b6020808252825182820181905260009190848201906040850190845b818110156110965783518352928401929184019160010161107a565b50909695505050505050565b6001600160a01b0381168114610d1f57600080fd5b600080604083850312156110ca57600080fd5b82356110d5816110a2565b9150602083013580151581146110ea57600080fd5b809150509250929050565b6000806040838503121561110857600080fd5b61111183610eaf565b946020939093013593505050565b60006020828403121561113157600080fd5b8135610ee0816110a2565b60006040828403121561114e57600080fd5b6040516040810181811067ffffffffffffffff8211171561117157611171610ee7565b604052905080823563ffffffff8116811461118b57600080fd5b8152602083013561ffff811681146111a257600080fd5b6020919091015292915050565b600080606083850312156111c257600080fd5b6111cb83610eaf565b91506111da846020850161113c565b90509250929050565b600082601f8301126111f457600080fd5b81356020611204610f9f83610f2e565b82815260069290921b8401810191818101908684111561122357600080fd5b8286015b8481101561124757611239888261113c565b835291830191604001611227565b509695505050505050565b60008060006060848603121561126757600080fd5b8335611272816110a2565b925060208481013567ffffffffffffffff8082111561129057600080fd5b818701915087601f8301126112a457600080fd5b81356112b2610f9f82610f2e565b81815260059190911b8301840190848101908a8311156112d157600080fd5b938501935b828510156112f85784356112e9816110a2565b825293850193908501906112d6565b96505050604087013592508083111561131057600080fd5b505061131e868287016111e3565b9150509250925092565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561135057600080fd5b81516001600160601b0381168114610ee057600080fd5b634e487b7160e01b600052601160045260246000fd5b6000821982111561139057611390611367565b500190565b6000602082840312156113a757600080fd5b8151610ee0816110a2565b6000815180845260005b818110156113d8576020818501810151868301820152016113bc565b818111156113ea576000602083870101525b50601f01601f19169290920160200192915050565b6001600160a01b0383168152604060208201819052600090611423908301846113b2565b949350505050565b83815260ff8316602082015260606040820152600061144d60608301846113b2565b95945050505050565b600060001982141561146a5761146a611367565b5060010190565b600060ff821660ff81141561148857611488611367565b60010192915050565b6000828210156114a3576114a3611367565b500390565b60006001600160601b03808316818516818304811182151516156114ce576114ce611367565b02949350505050565b60006001600160601b03808416806114ff57634e487b7160e01b600052601260045260246000fd5b92169190910492915050565b60008161151a5761151a611367565b50600019019056fea2646970667358221220d2218b52919b9eff548c66b46bc8a6f316ce5d92054ef4db89d0399b0a9d283364736f6c634300080c0033", } // ContractEjectionManagerABI is the input ABI used to generate the binding from. @@ -455,21 +455,21 @@ func (_ContractEjectionManager *ContractEjectionManagerCallerSession) StakeRegis // EjectOperators is a paid mutator transaction binding the contract method 0x0a0593d1. // -// Solidity: function ejectOperators(bytes32[][] _operatorIds) returns() +// Solidity: function ejectOperators(bytes32[][] _operatorIds) returns(uint256[]) func (_ContractEjectionManager *ContractEjectionManagerTransactor) EjectOperators(opts *bind.TransactOpts, _operatorIds [][][32]byte) (*types.Transaction, error) { return _ContractEjectionManager.contract.Transact(opts, "ejectOperators", _operatorIds) } // EjectOperators is a paid mutator transaction binding the contract method 0x0a0593d1. // -// Solidity: function ejectOperators(bytes32[][] _operatorIds) returns() +// Solidity: function ejectOperators(bytes32[][] _operatorIds) returns(uint256[]) func (_ContractEjectionManager *ContractEjectionManagerSession) EjectOperators(_operatorIds [][][32]byte) (*types.Transaction, error) { return _ContractEjectionManager.Contract.EjectOperators(&_ContractEjectionManager.TransactOpts, _operatorIds) } // EjectOperators is a paid mutator transaction binding the contract method 0x0a0593d1. // -// Solidity: function ejectOperators(bytes32[][] _operatorIds) returns() +// Solidity: function ejectOperators(bytes32[][] _operatorIds) returns(uint256[]) func (_ContractEjectionManager *ContractEjectionManagerTransactorSession) EjectOperators(_operatorIds [][][32]byte) (*types.Transaction, error) { return _ContractEjectionManager.Contract.EjectOperators(&_ContractEjectionManager.TransactOpts, _operatorIds) } diff --git a/contracts/lib/eigenlayer-middleware b/contracts/lib/eigenlayer-middleware index 6454c05bee..03286399a2 160000 --- a/contracts/lib/eigenlayer-middleware +++ b/contracts/lib/eigenlayer-middleware @@ -1 +1 @@ -Subproject commit 6454c05beec77a165211f081b50905c516fc7777 +Subproject commit 03286399a24b7f3e67900e9406323f8db10aa493