diff --git a/contracts/bindings/EigenPodManager/binding.go b/contracts/bindings/EigenPodManager/binding.go new file mode 100644 index 00000000..56dd6be8 --- /dev/null +++ b/contracts/bindings/EigenPodManager/binding.go @@ -0,0 +1,3195 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package contractEigenPodManager + +import ( + "errors" + "math/big" + "strings" + + ethereum "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/event" +) + +// Reference imports to suppress errors if they are not otherwise used. +var ( + _ = errors.New + _ = big.NewInt + _ = strings.NewReader + _ = ethereum.NotFound + _ = bind.Bind + _ = common.Big1 + _ = types.BloomLookup + _ = event.NewSubscription +) + +// IEigenPodManagerBeaconChainQueuedWithdrawal is an auto generated low-level Go binding around an user-defined struct. +type IEigenPodManagerBeaconChainQueuedWithdrawal struct { + Shares *big.Int + PodOwner common.Address + Nonce *big.Int + WithdrawalStartBlock uint32 + DelegatedAddress common.Address + Withdrawer common.Address +} + +// IEigenPodManagerUndelegationLimboStatus is an auto generated low-level Go binding around an user-defined struct. +type IEigenPodManagerUndelegationLimboStatus struct { + Active bool + StartBlock uint32 + DelegatedAddress common.Address +} + +// ContractEigenPodManagerMetaData contains all meta data concerning the ContractEigenPodManager contract. +var ContractEigenPodManagerMetaData = &bind.MetaData{ + ABI: "[{\"inputs\":[{\"internalType\":\"contractIETHPOSDeposit\",\"name\":\"_ethPOS\",\"type\":\"address\"},{\"internalType\":\"contractIBeacon\",\"name\":\"_eigenPodBeacon\",\"type\":\"address\"},{\"internalType\":\"contractIStrategyManager\",\"name\":\"_strategyManager\",\"type\":\"address\"},{\"internalType\":\"contractISlasher\",\"name\":\"_slasher\",\"type\":\"address\"},{\"internalType\":\"contractIDelegationManager\",\"name\":\"_delegationManager\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"podOwner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"BeaconChainETHDeposited\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"podOwner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint96\",\"name\":\"nonce\",\"type\":\"uint96\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"delegatedAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"withdrawer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"withdrawalRoot\",\"type\":\"bytes32\"}],\"name\":\"BeaconChainETHWithdrawalCompleted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"podOwner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint96\",\"name\":\"nonce\",\"type\":\"uint96\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"delegatedAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"withdrawer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"withdrawalRoot\",\"type\":\"bytes32\"}],\"name\":\"BeaconChainETHWithdrawalQueued\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOracleAddress\",\"type\":\"address\"}],\"name\":\"BeaconOracleUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"previousValue\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newValue\",\"type\":\"uint256\"}],\"name\":\"MaxPodsUpdated\",\"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\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newPausedStatus\",\"type\":\"uint256\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"contractIPauserRegistry\",\"name\":\"pauserRegistry\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"contractIPauserRegistry\",\"name\":\"newPauserRegistry\",\"type\":\"address\"}],\"name\":\"PauserRegistrySet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"eigenPod\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"podOwner\",\"type\":\"address\"}],\"name\":\"PodDeployed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"podOwner\",\"type\":\"address\"}],\"name\":\"UndelegationLimboEntered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"podOwner\",\"type\":\"address\"}],\"name\":\"UndelegationLimboExited\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newPausedStatus\",\"type\":\"uint256\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"beaconChainETHStrategy\",\"outputs\":[{\"internalType\":\"contractIStrategy\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"beaconChainOracle\",\"outputs\":[{\"internalType\":\"contractIBeaconChainOracle\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"podOwner\",\"type\":\"address\"},{\"internalType\":\"uint96\",\"name\":\"nonce\",\"type\":\"uint96\"},{\"internalType\":\"uint32\",\"name\":\"withdrawalStartBlock\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"delegatedAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"withdrawer\",\"type\":\"address\"}],\"internalType\":\"structIEigenPodManager.BeaconChainQueuedWithdrawal\",\"name\":\"queuedWithdrawal\",\"type\":\"tuple\"}],\"name\":\"calculateWithdrawalRoot\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"podOwner\",\"type\":\"address\"},{\"internalType\":\"uint96\",\"name\":\"nonce\",\"type\":\"uint96\"},{\"internalType\":\"uint32\",\"name\":\"withdrawalStartBlock\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"delegatedAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"withdrawer\",\"type\":\"address\"}],\"internalType\":\"structIEigenPodManager.BeaconChainQueuedWithdrawal\",\"name\":\"queuedWithdrawal\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"middlewareTimesIndex\",\"type\":\"uint256\"}],\"name\":\"completeQueuedWithdrawal\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"createPod\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"delegationManager\",\"outputs\":[{\"internalType\":\"contractIDelegationManager\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"eigenPodBeacon\",\"outputs\":[{\"internalType\":\"contractIBeacon\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ethPOS\",\"outputs\":[{\"internalType\":\"contractIETHPOSDeposit\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"middlewareTimesIndex\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"withdrawFundsFromEigenLayer\",\"type\":\"bool\"}],\"name\":\"exitUndelegationLimbo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"podOwner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"delegatedTo\",\"type\":\"address\"}],\"name\":\"forceIntoUndelegationLimbo\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"sharesRemovedFromDelegation\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"timestamp\",\"type\":\"uint64\"}],\"name\":\"getBlockRootAtTimestamp\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"podOwner\",\"type\":\"address\"}],\"name\":\"getPod\",\"outputs\":[{\"internalType\":\"contractIEigenPod\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"podOwner\",\"type\":\"address\"}],\"name\":\"hasPod\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_maxPods\",\"type\":\"uint256\"},{\"internalType\":\"contractIBeaconChainOracle\",\"name\":\"_beaconChainOracle\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"initialOwner\",\"type\":\"address\"},{\"internalType\":\"contractIPauserRegistry\",\"name\":\"_pauserRegistry\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_initPausedStatus\",\"type\":\"uint256\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"podOwner\",\"type\":\"address\"}],\"name\":\"isInUndelegationLimbo\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maxPods\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"numPods\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"numWithdrawalsQueued\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"ownerToPod\",\"outputs\":[{\"internalType\":\"contractIEigenPod\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newPausedStatus\",\"type\":\"uint256\"}],\"name\":\"pause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pauseAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"index\",\"type\":\"uint8\"}],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pauserRegistry\",\"outputs\":[{\"internalType\":\"contractIPauserRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"staker\",\"type\":\"address\"}],\"name\":\"podOwnerHasActiveShares\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"podOwnerShares\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"podOwner\",\"type\":\"address\"}],\"name\":\"podOwnerUndelegationLimboStatus\",\"outputs\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"active\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"startBlock\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"delegatedAddress\",\"type\":\"address\"}],\"internalType\":\"structIEigenPodManager.UndelegationLimboStatus\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountWei\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"withdrawer\",\"type\":\"address\"}],\"name\":\"queueWithdrawal\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"podOwner\",\"type\":\"address\"},{\"internalType\":\"int256\",\"name\":\"sharesDelta\",\"type\":\"int256\"}],\"name\":\"recordBeaconChainETHBalanceUpdate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"podOwner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amountWei\",\"type\":\"uint256\"}],\"name\":\"restakeBeaconChainETH\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newMaxPods\",\"type\":\"uint256\"}],\"name\":\"setMaxPods\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contractIPauserRegistry\",\"name\":\"newPauserRegistry\",\"type\":\"address\"}],\"name\":\"setPauserRegistry\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"slasher\",\"outputs\":[{\"internalType\":\"contractISlasher\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"pubkey\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"depositDataRoot\",\"type\":\"bytes32\"}],\"name\":\"stake\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"strategyManager\",\"outputs\":[{\"internalType\":\"contractIStrategyManager\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newPausedStatus\",\"type\":\"uint256\"}],\"name\":\"unpause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contractIBeaconChainOracle\",\"name\":\"newBeaconChainOracle\",\"type\":\"address\"}],\"name\":\"updateBeaconChainOracle\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"withdrawalRootPending\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}]", + Bin: "0x6101206040523480156200001257600080fd5b50604051620045e8380380620045e883398101604081905262000035916200014b565b6001600160a01b0380861660805280851660a05280841660c05280831660e0528116610100526200006562000070565b5050505050620001cb565b600054610100900460ff1615620000dd5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116101562000130576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b03811681146200014857600080fd5b50565b600080600080600060a086880312156200016457600080fd5b8551620001718162000132565b6020870151909550620001848162000132565b6040870151909450620001978162000132565b6060870151909350620001aa8162000132565b6080870151909250620001bd8162000132565b809150509295509295909350565b60805160a05160c05160e0516101005161436862000280600039600081816108090152818161112c0152818161199501528181611fcb0152818161278501526131c701526000818161066f015281816109de0152818161120b0152818161142401528181611528015281816116bd01528181611bd30152612b3f015260008181610330015281816117b20152612c370152600081816102df01528181610fbe01526122b10152600061052101526143686000f3fe6080604052600436106102465760003560e01c80639ba0627511610139578063c3c6b3a9116100b6578063daf12cd41161007a578063daf12cd4146107d7578063ea4d3c9b146107f7578063f2fde38b1461082b578063f38027eb1461084b578063f6848d241461086b578063fabc1cbc146108a657600080fd5b8063c3c6b3a914610727578063ca453a6814610757578063d1c64cc914610777578063d58457b214610797578063da2d0d0b146107b757600080fd5b8063bdffb35f116100fd578063bdffb35f14610691578063c052bd61146106b1578063c0ccbf10146106d1578063c1de3aef146106e7578063c2c51c401461070757600080fd5b80639ba06275146105d1578063a38406a314610607578063a6a509be14610627578063abd490221461063d578063b13442711461065d57600080fd5b806360f4062b116101c757806384d810621161018b57806384d8106214610543578063886f1195146105585780638da5cb5b146105785780639104c319146105965780639b4e4634146105be57600080fd5b806360f4062b146103f7578063715018a61461042457806374182c0a146104395780637493694f146104ef57806374cdd7981461050f57600080fd5b806339b70e381161020e57806339b70e381461031e5780635663102814610352578063595c6a671461038d5780635ac86ab7146103a25780635c975abb146103e257600080fd5b80630cf2686d1461024b578063103ebac71461026d57806310d67a2f1461028d578063136439dd146102ad578063292b7b2b146102cd575b600080fd5b34801561025757600080fd5b5061026b61026636600461323c565b6108c6565b005b34801561027957600080fd5b5061026b610288366004613275565b610982565b34801561029957600080fd5b5061026b6102a83660046132a1565b610ae8565b3480156102b957600080fd5b5061026b6102c836600461323c565b610b98565b3480156102d957600080fd5b506103017f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561032a57600080fd5b506103017f000000000000000000000000000000000000000000000000000000000000000081565b34801561035e57600080fd5b5061037f61036d3660046132a1565b609c6020526000908152604090205481565b604051908152602001610315565b34801561039957600080fd5b5061026b610cd7565b3480156103ae57600080fd5b506103d26103bd3660046132c5565b606654600160ff9092169190911b9081161490565b6040519015158152602001610315565b3480156103ee57600080fd5b5060665461037f565b34801561040357600080fd5b5061037f6104123660046132a1565b609b6020526000908152604090205481565b34801561043057600080fd5b5061026b610d9e565b34801561044557600080fd5b506104bc6104543660046132a1565b6040805160608082018352600080835260208084018290529284018190526001600160a01b039485168152609e8352839020835191820184525460ff811615158252610100810463ffffffff1692820192909252650100000000009091049092169082015290565b6040805182511515815260208084015163ffffffff1690820152918101516001600160a01b031690820152606001610315565b3480156104fb57600080fd5b5061037f61050a3660046133bc565b610db2565b34801561051b57600080fd5b506103017f000000000000000000000000000000000000000000000000000000000000000081565b34801561054f57600080fd5b5061026b610e3f565b34801561056457600080fd5b50606554610301906001600160a01b031681565b34801561058457600080fd5b506033546001600160a01b0316610301565b3480156105a257600080fd5b5061030173beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac081565b61026b6105cc366004613421565b610ec9565b3480156105dd57600080fd5b506103016105ec3660046132a1565b6098602052600090815260409020546001600160a01b031681565b34801561061357600080fd5b506103016106223660046132a1565b610f62565b34801561063357600080fd5b5061037f60995481565b34801561064957600080fd5b506103d26106583660046132a1565b611036565b34801561066957600080fd5b506103017f000000000000000000000000000000000000000000000000000000000000000081565b34801561069d57600080fd5b506103d26106ac3660046132a1565b611054565b3480156106bd57600080fd5b50609754610301906001600160a01b031681565b3480156106dd57600080fd5b5061037f609a5481565b3480156106f357600080fd5b5061026b6107023660046132a1565b611097565b34801561071357600080fd5b5061026b610722366004613275565b6110a8565b34801561073357600080fd5b506103d261074236600461323c565b609d6020526000908152604090205460ff1681565b34801561076357600080fd5b5061037f610772366004613495565b61111f565b34801561078357600080fd5b5061037f6107923660046134ce565b6112d5565b3480156107a357600080fd5b5061037f6107b23660046134f8565b6113e0565b3480156107c357600080fd5b5061026b6107d236600461352b565b6114e7565b3480156107e357600080fd5b5061026b6107f2366004613550565b611a06565b34801561080357600080fd5b506103017f000000000000000000000000000000000000000000000000000000000000000081565b34801561083757600080fd5b5061026b6108463660046132a1565b611b39565b34801561085757600080fd5b5061026b6108663660046135ab565b611baf565b34801561087757600080fd5b506103d26108863660046132a1565b6001600160a01b0390811660009081526098602052604090205416151590565b3480156108b257600080fd5b5061026b6108c136600461323c565b611cc1565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610919573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061093d91906135d6565b6001600160a01b0316336001600160a01b0316146109765760405162461bcd60e51b815260040161096d906135f3565b60405180910390fd5b61097f81611e1d565b50565b6001600160a01b0380831660009081526098602052604090205483911633146109bd5760405162461bcd60e51b815260040161096d9061363d565b6040516372c1cc1b60e11b81526001600160a01b03808516600483015284917f00000000000000000000000000000000000000000000000000000000000000009091169063e583983690602401602060405180830381865afa158015610a27573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a4b9190613684565b15610a685760405162461bcd60e51b815260040161096d906136a1565b600260c9541415610a8b5760405162461bcd60e51b815260040161096d9061371b565b600260c955610a9a8484611e5e565b836001600160a01b03167f35a85cabc603f48abb2b71d9fbd8adea7c449d7f0be900ae7a2986ea369c3d0d84604051610ad591815260200190565b60405180910390a25050600160c9555050565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b3b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b5f91906135d6565b6001600160a01b0316336001600160a01b031614610b8f5760405162461bcd60e51b815260040161096d906135f3565b61097f81612028565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610be0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c049190613684565b610c205760405162461bcd60e51b815260040161096d90613752565b60665481811614610c995760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c6974790000000000000000606482015260840161096d565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610d1f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d439190613684565b610d5f5760405162461bcd60e51b815260040161096d90613752565b600019606681905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b610da661211f565b610db06000612179565b565b80516020808301516040808501516060860151608087015160a08801519351600097610e229790969591019586526001600160a01b0394851660208701526001600160601b0393909316604086015263ffffffff919091166060850152821660808401521660a082015260c00190565b604051602081830303815290604052805190602001209050919050565b336000908152609860205260409020546001600160a01b031615610ec15760405162461bcd60e51b815260206004820152603360248201527f456967656e506f644d616e616765722e637265617465506f643a2053656e64656044820152721c88185b1c9958591e481a185cc818481c1bd9606a1b606482015260840161096d565b61097f6121cb565b336000908152609860205260409020546001600160a01b031680610ef257610eef6121cb565b90505b6040516326d3918d60e21b81526001600160a01b03821690639b4e4634903490610f28908a908a908a908a908a906004016137c3565b6000604051808303818588803b158015610f4157600080fd5b505af1158015610f55573d6000803e3d6000fd5b5050505050505050505050565b6001600160a01b03808216600090815260986020526040812054909116806110305761102d836001600160a01b031660001b60405180610940016040528061090e8152602001613a2561090e9139604080516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166020820152808201919091526000606082015260800160408051601f19818403018152908290526110129291602001613838565b604051602081830303815290604052805190602001206123cf565b90505b92915050565b6001600160a01b03166000908152609e602052604090205460ff1690565b6001600160a01b0381166000908152609b6020526040812054158061107d575061107d82611036565b1561108a57506000919050565b506001919050565b919050565b61109f61211f565b61097f8161242b565b6001600160a01b0380831660009081526098602052604090205483911633146110e35760405162461bcd60e51b815260040161096d9061363d565b600260c95414156111065760405162461bcd60e51b815260040161096d9061371b565b600260c9556111158383612475565b5050600160c95550565b6000336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146111c1576040805162461bcd60e51b81526020600482015260248101919091527f456967656e506f644d616e616765722e6f6e6c7944656c65676174696f6e4d6160448201527f6e616765723a206e6f74207468652044656c65676174696f6e4d616e61676572606482015260840161096d565b606654600190600290811614156111ea5760405162461bcd60e51b815260040161096d9061384d565b6040516372c1cc1b60e11b81526001600160a01b03808616600483015285917f00000000000000000000000000000000000000000000000000000000000000009091169063e583983690602401602060405180830381865afa158015611254573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112789190613684565b156112955760405162461bcd60e51b815260040161096d906136a1565b600260c95414156112b85760405162461bcd60e51b815260040161096d9061371b565b600260c9556112c7858561249a565b600160c95595945050505050565b60975460405163321accf960e11b815267ffffffffffffffff8316600482015260009182916001600160a01b039091169063643599f290602401602060405180830381865afa15801561132c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113509190613884565b9050806110305760405162461bcd60e51b815260206004820152605260248201527f456967656e506f644d616e616765722e676574426c6f636b526f6f744174546960448201527f6d657374616d703a20737461746520726f6f742061742074696d657374616d70606482015271081b9bdd081e595d08199a5b985b1a5e995960721b608482015260a40161096d565b6066546000906001906002908116141561140c5760405162461bcd60e51b815260040161096d9061384d565b6040516372c1cc1b60e11b81523360048201819052907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063e583983690602401602060405180830381865afa158015611473573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114979190613684565b156114b45760405162461bcd60e51b815260040161096d906136a1565b600260c95414156114d75760405162461bcd60e51b815260040161096d9061371b565b600260c9556112c7338686612573565b606654600190600290811614156115105760405162461bcd60e51b815260040161096d9061384d565b6040516372c1cc1b60e11b81523360048201819052907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063e583983690602401602060405180830381865afa158015611577573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061159b9190613684565b156115b85760405162461bcd60e51b815260040161096d906136a1565b600260c95414156115db5760405162461bcd60e51b815260040161096d9061371b565b600260c9556115e933611036565b6116695760405162461bcd60e51b8152602060048201526044602482018190527f456967656e506f644d616e616765722e65786974556e64656c65676174696f6e908201527f4c696d626f3a206d75737420626520696e20756e64656c65676174696f6e206c606482015263696d626f60e01b608482015260a40161096d565b336000908152609e602052604090819020549051638105e04360e01b81526501000000000082046001600160a01b03908116600483015261010090920463ffffffff166024820181905260448201879052917f00000000000000000000000000000000000000000000000000000000000000001690638105e043906064016020604051808303816000875af1158015611706573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061172a9190613684565b6117af5760405162461bcd60e51b815260206004820152604a60248201527f456967656e506f644d616e616765722e65786974556e64656c65676174696f6e60448201527f4c696d626f3a2073686172657320696e206c696d626f20617265207374696c6c60648201526920736c61736861626c6560b01b608482015260a40161096d565b437f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166350f73e7c6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561180e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118329190613884565b6118429063ffffffff84166138b3565b11156118d55760405162461bcd60e51b815260206004820152605660248201527f456967656e506f644d616e616765722e65786974556e64656c65676174696f6e60448201527f4c696d626f3a207769746864726177616c44656c6179426c6f636b73207065726064820152751a5bd9081a185cc81b9bdd081e595d081c185cdcd95960521b608482015260a40161096d565b336000818152609e602052604080822080546001600160c81b0319169055517fd1799ae06f30992c4ce18ea1e093777a99a9fd45947f270d7daec69951f7583d9190a2831561194e57336000818152609b6020526040812080549190559061193d90826128d4565b611948333383612914565b506119fa565b336000818152609b602052604090819020549051631452b9d760e11b8152600481019290925273beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac0602483015260448201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906328a573ae90606401600060405180830381600087803b1580156119e157600080fd5b505af11580156119f5573d6000803e3d6000fd5b505050505b5050600160c955505050565b600054610100900460ff1615808015611a265750600054600160ff909116105b80611a405750303b158015611a40575060005460ff166001145b611aa35760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161096d565b6000805460ff191660011790558015611ac6576000805461ff0019166101001790555b611acf86611e1d565b611ad88561242b565b611ae184612179565b611aeb838361298e565b8015611b31576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050565b611b4161211f565b6001600160a01b038116611ba65760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161096d565b61097f81612179565b60808201516040516372c1cc1b60e11b81526001600160a01b0380831660048301527f0000000000000000000000000000000000000000000000000000000000000000169063e583983690602401602060405180830381865afa158015611c1a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c3e9190613684565b15611c5b5760405162461bcd60e51b815260040161096d906136a1565b600260c9541415611c7e5760405162461bcd60e51b815260040161096d9061371b565b600260c98190556066546001919081161415611cac5760405162461bcd60e51b815260040161096d9061384d565b611cb68484612a74565b5050600160c9555050565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d14573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d3891906135d6565b6001600160a01b0316336001600160a01b031614611d685760405162461bcd60e51b815260040161096d906135f3565b606654198119606654191614611de65760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c6974790000000000000000606482015260840161096d565b606681905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c90602001610ccc565b609a5460408051918252602082018390527f4e65c41a3597bda732ca64980235cf51494171d5853998763fb05db45afaacb3910160405180910390a1609a55565b6001600160a01b038216611eda5760405162461bcd60e51b815260206004820152603b60248201527f456967656e506f644d616e616765722e5f6164645368617265733a20706f644f60448201527f776e65722063616e6e6f74206265207a65726f20616464726573730000000000606482015260840161096d565b60008111611f505760405162461bcd60e51b815260206004820152603c60248201527f456967656e506f644d616e616765722e5f6164645368617265733a20616d6f7560448201527f6e74206d7573742062652067726561746572207468616e207a65726f00000000606482015260840161096d565b6001600160a01b0382166000908152609b602052604081208054839290611f789084906138b3565b90915550611f87905082611036565b61202457604051631452b9d760e11b81526001600160a01b03838116600483015273beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac06024830152604482018390527f000000000000000000000000000000000000000000000000000000000000000016906328a573ae906064015b600060405180830381600087803b15801561201057600080fd5b505af1158015611b31573d6000803e3d6000fd5b5050565b6001600160a01b0381166120b65760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a40161096d565b606554604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6033546001600160a01b03163314610db05760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161096d565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6066546000908190600190811614156121f65760405162461bcd60e51b815260040161096d9061384d565b609a546099546122079060016138b3565b111561226b5760405162461bcd60e51b815260206004820152602d60248201527f456967656e506f644d616e616765722e5f6465706c6f79506f643a20706f642060448201526c1b1a5b5a5d081c995858da1959609a1b606482015260840161096d565b60996000815461227a906138cb565b9091555060408051610940810190915261090e8082526000916123199183913391613a256020830139604080516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166020820152808201919091526000606082015260800160408051601f19818403018152908290526123059291602001613838565b604051602081830303815290604052612e6a565b60405163189acdbd60e31b81523360048201529091506001600160a01b0382169063c4d66de890602401600060405180830381600087803b15801561235d57600080fd5b505af1158015612371573d6000803e3d6000fd5b50503360008181526098602052604080822080546001600160a01b0319166001600160a01b038816908117909155905192945092507f21c99d0db02213c32fff5b05cf0a718ab5f858802b91498f80d82270289d856a91a391505090565b604080516001600160f81b03196020808301919091526bffffffffffffffffffffffff193060601b166021830152603582018590526055808301859052835180840390910181526075909201909252805191012060009061102d565b609780546001600160a01b0319166001600160a01b0383169081179091556040517f08f0470754946ccfbb446ff7fd2d6ae6af1bbdae19f85794c0cc5ed5e8ceb4f690600090a250565b6000811215612490576120248261248b836138e6565b612f74565b6120248282611e5e565b6001600160a01b0382166000908152609b6020526040812054158015906124c757506124c583611036565b155b1561256b576001600160a01b038381166000818152609e60205260408082208054600164ffffffffff199091166101004363ffffffff1602171765010000000000600160c81b031916650100000000009588169590950294909417909355915190917f3f95fafd6a65cee1e3d6ae3fecf11d8b4c5cfb602238324b17a42ac1e573ece191a2506001600160a01b0382166000908152609b6020526040902054611030565b506000611030565b60008083116125f55760405162461bcd60e51b815260206004820152604260248201527f456967656e506f644d616e616765722e5f71756575655769746864726177616c60448201527f3a20616d6f756e74206d7573742062652067726561746572207468616e207a65606482015261726f60f01b608482015260a40161096d565b612603633b9aca0084613903565b156126b45760405162461bcd60e51b815260206004820152606f60248201527f456967656e506f644d616e616765722e5f71756575655769746864726177616c60448201527f3a2063616e6e6f742071756575652061207769746864726177616c206f66204260648201527f6561636f6e20436861696e2045544820666f7220616e206e6f6e2d77686f6c6560848201526e20616d6f756e74206f66206777656960881b60a482015260c40161096d565b6126bd84611036565b1561274f5760405162461bcd60e51b815260206004820152605660248201527f456967656e506f644d616e616765722e5f71756575655769746864726177616c60448201527f3a2063616e6e6f742071756575652061207769746864726177616c207768656e60648201527520696e20756e64656c65676174696f6e206c696d626f60501b608482015260a40161096d565b6127598484612f74565b61276384846128d4565b604051631976849960e21b81526001600160a01b0385811660048301526000917f0000000000000000000000000000000000000000000000000000000000000000909116906365da126490602401602060405180830381865afa1580156127ce573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127f291906135d6565b6001600160a01b038087166000818152609c6020908152604080832080546001600160601b03600182018116909255825160c0810184528c81529384019590955284169082015263ffffffff43166060820152838516608082015292871660a08401529293509161286282610db2565b6000818152609d602052604090819020805460ff19166001179055519091506001600160a01b038916907fb9feff07af9d7fca5ed49271450a7bb3c0e48198985896811a55345b351404dd906128c1908a90879089908c908890613925565b60405180910390a2979650505050505050565b6001600160a01b038281166000908152609860205260409081902054905163b96736ad60e01b81526004810184905291169063b96736ad90602401611ff6565b6001600160a01b03838116600090815260986020526040908190205490516362483a2160e11b815284831660048201526024810184905291169063c490744290604401600060405180830381600087803b15801561297157600080fd5b505af1158015612985573d6000803e3d6000fd5b50505050505050565b6065546001600160a01b03161580156129af57506001600160a01b03821615155b612a315760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a40161096d565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a261202482612028565b6000612a7f83610db2565b6000818152609d602052604090205490915060ff16612b025760405162461bcd60e51b815260206004820152604460248201819052600080516020613a05833981519152908201527f69746864726177616c3a207769746864726177616c206973206e6f742070656e60648201526364696e6760e01b608482015260a40161096d565b60808301516060840151604051638105e04360e01b81526001600160a01b03928316600482015263ffffffff9091166024820152604481018490527f000000000000000000000000000000000000000000000000000000000000000090911690638105e043906064016020604051808303816000875af1158015612b8a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612bae9190613684565b612c345760405162461bcd60e51b81526020600482015260586024820152600080516020613a0583398151915260448201527f69746864726177616c3a207368617265732070656e64696e672077697468647260648201527f6177616c20617265207374696c6c20736c61736861626c650000000000000000608482015260a40161096d565b437f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166350f73e7c6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612c93573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612cb79190613884565b846060015163ffffffff16612ccc91906138b3565b1115612d545760405162461bcd60e51b815260206004820152605a6024820152600080516020613a0583398151915260448201527f69746864726177616c3a207769746864726177616c44656c6179426c6f636b7360648201527f20706572696f6420686173206e6f742079657420706173736564000000000000608482015260a40161096d565b8260a001516001600160a01b0316336001600160a01b031614612dde5760405162461bcd60e51b81526020600482015260486024820152600080516020613a0583398151915260448201527f69746864726177616c3a2063616c6c6572206d757374206265207468652077696064820152673a34323930bbb2b960c11b608482015260a40161096d565b6000818152609d60209081526040909120805460ff191690558301518351612e0891903390612914565b82602001516001600160a01b03167fa6bab1d55a361fcea2eee2bc9491e4f01e6cf333df03c9c4f2c144466429f7d68460000151856040015186608001518760a0015186604051612e5d959493929190613925565b60405180910390a2505050565b60008084471015612ebd5760405162461bcd60e51b815260206004820152601d60248201527f437265617465323a20696e73756666696369656e742062616c616e6365000000604482015260640161096d565b8251612f0b5760405162461bcd60e51b815260206004820181905260248201527f437265617465323a2062797465636f6465206c656e677468206973207a65726f604482015260640161096d565b8383516020850187f590506001600160a01b038116612f6c5760405162461bcd60e51b815260206004820152601960248201527f437265617465323a204661696c6564206f6e206465706c6f7900000000000000604482015260640161096d565b949350505050565b6001600160a01b038216612ff05760405162461bcd60e51b815260206004820152603f60248201527f456967656e506f644d616e616765722e5f72656d6f76655368617265733a206460448201527f65706f7369746f722063616e6e6f74206265207a65726f206164647265737300606482015260840161096d565b806130635760405162461bcd60e51b815260206004820152603e60248201527f456967656e506f644d616e616765722e5f72656d6f76655368617265733a207360448201527f68617265416d6f756e742073686f756c64206e6f74206265207a65726f210000606482015260840161096d565b6001600160a01b0382166000908152609b6020526040902054808211156130e85760405162461bcd60e51b815260206004820152603360248201527f456967656e506f644d616e616765722e5f72656d6f76655368617265733a20736044820152720d0c2e4ca82dadeeadce840e8dede40d0d2ced606b1b606482015260840161096d565b6001600160a01b0383166000908152609b60205260409020908290039081905561311183611036565b6132375760408051600180825281830190925260009160208083019080368337019050509050828160008151811061314b5761314b61395a565b602090810291909101015260408051600180825281830190925260009181602001602082028036833701905050905073beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac0816000815181106131a2576131a261395a565b6001600160a01b039283166020918202929092010152604051631608124760e21b81527f000000000000000000000000000000000000000000000000000000000000000090911690635820491c9061320290889085908790600401613970565b600060405180830381600087803b15801561321c57600080fd5b505af1158015613230573d6000803e3d6000fd5b5050505050505b505050565b60006020828403121561324e57600080fd5b5035919050565b6001600160a01b038116811461097f57600080fd5b803561109281613255565b6000806040838503121561328857600080fd5b823561329381613255565b946020939093013593505050565b6000602082840312156132b357600080fd5b81356132be81613255565b9392505050565b6000602082840312156132d757600080fd5b813560ff811681146132be57600080fd5b80356001600160601b038116811461109257600080fd5b803563ffffffff8116811461109257600080fd5b600060c0828403121561332557600080fd5b60405160c0810181811067ffffffffffffffff8211171561335657634e487b7160e01b600052604160045260246000fd5b6040528235815290508061336c6020840161326a565b602082015261337d604084016132e8565b604082015261338e606084016132ff565b606082015261339f6080840161326a565b60808201526133b060a0840161326a565b60a08201525092915050565b600060c082840312156133ce57600080fd5b61102d8383613313565b60008083601f8401126133ea57600080fd5b50813567ffffffffffffffff81111561340257600080fd5b60208301915083602082850101111561341a57600080fd5b9250929050565b60008060008060006060868803121561343957600080fd5b853567ffffffffffffffff8082111561345157600080fd5b61345d89838a016133d8565b9097509550602088013591508082111561347657600080fd5b50613483888289016133d8565b96999598509660400135949350505050565b600080604083850312156134a857600080fd5b82356134b381613255565b915060208301356134c381613255565b809150509250929050565b6000602082840312156134e057600080fd5b813567ffffffffffffffff811681146132be57600080fd5b6000806040838503121561350b57600080fd5b8235915060208301356134c381613255565b801515811461097f57600080fd5b6000806040838503121561353e57600080fd5b8235915060208301356134c38161351d565b600080600080600060a0868803121561356857600080fd5b85359450602086013561357a81613255565b9350604086013561358a81613255565b9250606086013561359a81613255565b949793965091946080013592915050565b60008060e083850312156135be57600080fd5b6135c88484613313565b9460c0939093013593505050565b6000602082840312156135e857600080fd5b81516132be81613255565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b60208082526027908201527f456967656e506f644d616e616765722e6f6e6c79456967656e506f643a206e6f6040820152661d0818481c1bd960ca1b606082015260800190565b60006020828403121561369657600080fd5b81516132be8161351d565b60208082526054908201527f456967656e506f644d616e616765722e6f6e6c794e6f7446726f7a656e3a207360408201527f74616b657220686173206265656e2066726f7a656e20616e64206d6179206265606082015273207375626a65637420746f20736c617368696e6760601b608082015260a00190565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6060815260006137d760608301878961379a565b82810360208401526137ea81868861379a565b9150508260408301529695505050505050565b6000815160005b8181101561381e5760208185018101518683015201613804565b8181111561382d576000828601525b509290920192915050565b6000612f6c61384783866137fd565b846137fd565b60208082526019908201527f5061757361626c653a20696e6465782069732070617573656400000000000000604082015260600190565b60006020828403121561389657600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b600082198211156138c6576138c661389d565b500190565b60006000198214156138df576138df61389d565b5060010190565b6000600160ff1b8214156138fc576138fc61389d565b5060000390565b60008261392057634e487b7160e01b600052601260045260246000fd5b500690565b9485526001600160601b039390931660208501526001600160a01b039182166040850152166060830152608082015260a00190565b634e487b7160e01b600052603260045260246000fd5b6001600160a01b038481168252606060208084018290528551918401829052600092868201929091906080860190855b818110156139be5785518516835294830194918301916001016139a0565b5050858103604087015286518082529082019350915080860160005b838110156139f6578151855293820193908201906001016139da565b50929897505050505050505056fe456967656e506f644d616e616765722e5f636f6d706c65746551756575656457608060405260405161090e38038061090e83398101604081905261002291610460565b61002e82826000610035565b505061058a565b61003e83610100565b6040516001600160a01b038416907f1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e90600090a260008251118061007f5750805b156100fb576100f9836001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100e99190610520565b836102a360201b6100291760201c565b505b505050565b610113816102cf60201b6100551760201c565b6101725760405162461bcd60e51b815260206004820152602560248201527f455243313936373a206e657720626561636f6e206973206e6f74206120636f6e6044820152641d1c9858dd60da1b60648201526084015b60405180910390fd5b6101e6816001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101d79190610520565b6102cf60201b6100551760201c565b61024b5760405162461bcd60e51b815260206004820152603060248201527f455243313936373a20626561636f6e20696d706c656d656e746174696f6e206960448201526f1cc81b9bdd08184818dbdb9d1c9858dd60821b6064820152608401610169565b806102827fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d5060001b6102de60201b6100641760201c565b80546001600160a01b0319166001600160a01b039290921691909117905550565b60606102c883836040518060600160405280602781526020016108e7602791396102e1565b9392505050565b6001600160a01b03163b151590565b90565b6060600080856001600160a01b0316856040516102fe919061053b565b600060405180830381855af49150503d8060008114610339576040519150601f19603f3d011682016040523d82523d6000602084013e61033e565b606091505b5090925090506103508683838761035a565b9695505050505050565b606083156103c65782516103bf576001600160a01b0385163b6103bf5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610169565b50816103d0565b6103d083836103d8565b949350505050565b8151156103e85781518083602001fd5b8060405162461bcd60e51b81526004016101699190610557565b80516001600160a01b038116811461041957600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b8381101561044f578181015183820152602001610437565b838111156100f95750506000910152565b6000806040838503121561047357600080fd5b61047c83610402565b60208401519092506001600160401b038082111561049957600080fd5b818501915085601f8301126104ad57600080fd5b8151818111156104bf576104bf61041e565b604051601f8201601f19908116603f011681019083821181831017156104e7576104e761041e565b8160405282815288602084870101111561050057600080fd5b610511836020830160208801610434565b80955050505050509250929050565b60006020828403121561053257600080fd5b6102c882610402565b6000825161054d818460208701610434565b9190910192915050565b6020815260008251806020840152610576816040850160208701610434565b601f01601f19169190910160400192915050565b61034e806105996000396000f3fe60806040523661001357610011610017565b005b6100115b610027610022610067565b610100565b565b606061004e83836040518060600160405280602781526020016102f260279139610124565b9392505050565b6001600160a01b03163b151590565b90565b600061009a7fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d50546001600160a01b031690565b6001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100fb9190610249565b905090565b3660008037600080366000845af43d6000803e80801561011f573d6000f35b3d6000fd5b6060600080856001600160a01b03168560405161014191906102a2565b600060405180830381855af49150503d806000811461017c576040519150601f19603f3d011682016040523d82523d6000602084013e610181565b606091505b50915091506101928683838761019c565b9695505050505050565b6060831561020d578251610206576001600160a01b0385163b6102065760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064015b60405180910390fd5b5081610217565b610217838361021f565b949350505050565b81511561022f5781518083602001fd5b8060405162461bcd60e51b81526004016101fd91906102be565b60006020828403121561025b57600080fd5b81516001600160a01b038116811461004e57600080fd5b60005b8381101561028d578181015183820152602001610275565b8381111561029c576000848401525b50505050565b600082516102b4818460208701610272565b9190910192915050565b60208152600082518060208401526102dd816040850160208701610272565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220d51e81d3bc5ed20a26aeb05dce7e825c503b2061aa78628027300c8d65b9d89a64736f6c634300080c0033416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a264697066735822122099cb2599f43201bb49e7153502a609bd94b39bf0155dadb20747481db4b4377a64736f6c634300080c0033", +} + +// ContractEigenPodManagerABI is the input ABI used to generate the binding from. +// Deprecated: Use ContractEigenPodManagerMetaData.ABI instead. +var ContractEigenPodManagerABI = ContractEigenPodManagerMetaData.ABI + +// ContractEigenPodManagerBin is the compiled bytecode used for deploying new contracts. +// Deprecated: Use ContractEigenPodManagerMetaData.Bin instead. +var ContractEigenPodManagerBin = ContractEigenPodManagerMetaData.Bin + +// DeployContractEigenPodManager deploys a new Ethereum contract, binding an instance of ContractEigenPodManager to it. +func DeployContractEigenPodManager(auth *bind.TransactOpts, backend bind.ContractBackend, _ethPOS common.Address, _eigenPodBeacon common.Address, _strategyManager common.Address, _slasher common.Address, _delegationManager common.Address) (common.Address, *types.Transaction, *ContractEigenPodManager, error) { + parsed, err := ContractEigenPodManagerMetaData.GetAbi() + if err != nil { + return common.Address{}, nil, nil, err + } + if parsed == nil { + return common.Address{}, nil, nil, errors.New("GetABI returned nil") + } + + address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(ContractEigenPodManagerBin), backend, _ethPOS, _eigenPodBeacon, _strategyManager, _slasher, _delegationManager) + if err != nil { + return common.Address{}, nil, nil, err + } + return address, tx, &ContractEigenPodManager{ContractEigenPodManagerCaller: ContractEigenPodManagerCaller{contract: contract}, ContractEigenPodManagerTransactor: ContractEigenPodManagerTransactor{contract: contract}, ContractEigenPodManagerFilterer: ContractEigenPodManagerFilterer{contract: contract}}, nil +} + +// ContractEigenPodManager is an auto generated Go binding around an Ethereum contract. +type ContractEigenPodManager struct { + ContractEigenPodManagerCaller // Read-only binding to the contract + ContractEigenPodManagerTransactor // Write-only binding to the contract + ContractEigenPodManagerFilterer // Log filterer for contract events +} + +// ContractEigenPodManagerCaller is an auto generated read-only Go binding around an Ethereum contract. +type ContractEigenPodManagerCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// ContractEigenPodManagerTransactor is an auto generated write-only Go binding around an Ethereum contract. +type ContractEigenPodManagerTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// ContractEigenPodManagerFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type ContractEigenPodManagerFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// ContractEigenPodManagerSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type ContractEigenPodManagerSession struct { + Contract *ContractEigenPodManager // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// ContractEigenPodManagerCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type ContractEigenPodManagerCallerSession struct { + Contract *ContractEigenPodManagerCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// ContractEigenPodManagerTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type ContractEigenPodManagerTransactorSession struct { + Contract *ContractEigenPodManagerTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// ContractEigenPodManagerRaw is an auto generated low-level Go binding around an Ethereum contract. +type ContractEigenPodManagerRaw struct { + Contract *ContractEigenPodManager // Generic contract binding to access the raw methods on +} + +// ContractEigenPodManagerCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type ContractEigenPodManagerCallerRaw struct { + Contract *ContractEigenPodManagerCaller // Generic read-only contract binding to access the raw methods on +} + +// ContractEigenPodManagerTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type ContractEigenPodManagerTransactorRaw struct { + Contract *ContractEigenPodManagerTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewContractEigenPodManager creates a new instance of ContractEigenPodManager, bound to a specific deployed contract. +func NewContractEigenPodManager(address common.Address, backend bind.ContractBackend) (*ContractEigenPodManager, error) { + contract, err := bindContractEigenPodManager(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &ContractEigenPodManager{ContractEigenPodManagerCaller: ContractEigenPodManagerCaller{contract: contract}, ContractEigenPodManagerTransactor: ContractEigenPodManagerTransactor{contract: contract}, ContractEigenPodManagerFilterer: ContractEigenPodManagerFilterer{contract: contract}}, nil +} + +// NewContractEigenPodManagerCaller creates a new read-only instance of ContractEigenPodManager, bound to a specific deployed contract. +func NewContractEigenPodManagerCaller(address common.Address, caller bind.ContractCaller) (*ContractEigenPodManagerCaller, error) { + contract, err := bindContractEigenPodManager(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &ContractEigenPodManagerCaller{contract: contract}, nil +} + +// NewContractEigenPodManagerTransactor creates a new write-only instance of ContractEigenPodManager, bound to a specific deployed contract. +func NewContractEigenPodManagerTransactor(address common.Address, transactor bind.ContractTransactor) (*ContractEigenPodManagerTransactor, error) { + contract, err := bindContractEigenPodManager(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &ContractEigenPodManagerTransactor{contract: contract}, nil +} + +// NewContractEigenPodManagerFilterer creates a new log filterer instance of ContractEigenPodManager, bound to a specific deployed contract. +func NewContractEigenPodManagerFilterer(address common.Address, filterer bind.ContractFilterer) (*ContractEigenPodManagerFilterer, error) { + contract, err := bindContractEigenPodManager(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &ContractEigenPodManagerFilterer{contract: contract}, nil +} + +// bindContractEigenPodManager binds a generic wrapper to an already deployed contract. +func bindContractEigenPodManager(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := abi.JSON(strings.NewReader(ContractEigenPodManagerABI)) + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_ContractEigenPodManager *ContractEigenPodManagerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _ContractEigenPodManager.Contract.ContractEigenPodManagerCaller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_ContractEigenPodManager *ContractEigenPodManagerRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _ContractEigenPodManager.Contract.ContractEigenPodManagerTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_ContractEigenPodManager *ContractEigenPodManagerRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _ContractEigenPodManager.Contract.ContractEigenPodManagerTransactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_ContractEigenPodManager *ContractEigenPodManagerCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _ContractEigenPodManager.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_ContractEigenPodManager *ContractEigenPodManagerTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _ContractEigenPodManager.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_ContractEigenPodManager *ContractEigenPodManagerTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _ContractEigenPodManager.Contract.contract.Transact(opts, method, params...) +} + +// BeaconChainETHStrategy is a free data retrieval call binding the contract method 0x9104c319. +// +// Solidity: function beaconChainETHStrategy() view returns(address) +func (_ContractEigenPodManager *ContractEigenPodManagerCaller) BeaconChainETHStrategy(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _ContractEigenPodManager.contract.Call(opts, &out, "beaconChainETHStrategy") + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// BeaconChainETHStrategy is a free data retrieval call binding the contract method 0x9104c319. +// +// Solidity: function beaconChainETHStrategy() view returns(address) +func (_ContractEigenPodManager *ContractEigenPodManagerSession) BeaconChainETHStrategy() (common.Address, error) { + return _ContractEigenPodManager.Contract.BeaconChainETHStrategy(&_ContractEigenPodManager.CallOpts) +} + +// BeaconChainETHStrategy is a free data retrieval call binding the contract method 0x9104c319. +// +// Solidity: function beaconChainETHStrategy() view returns(address) +func (_ContractEigenPodManager *ContractEigenPodManagerCallerSession) BeaconChainETHStrategy() (common.Address, error) { + return _ContractEigenPodManager.Contract.BeaconChainETHStrategy(&_ContractEigenPodManager.CallOpts) +} + +// BeaconChainOracle is a free data retrieval call binding the contract method 0xc052bd61. +// +// Solidity: function beaconChainOracle() view returns(address) +func (_ContractEigenPodManager *ContractEigenPodManagerCaller) BeaconChainOracle(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _ContractEigenPodManager.contract.Call(opts, &out, "beaconChainOracle") + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// BeaconChainOracle is a free data retrieval call binding the contract method 0xc052bd61. +// +// Solidity: function beaconChainOracle() view returns(address) +func (_ContractEigenPodManager *ContractEigenPodManagerSession) BeaconChainOracle() (common.Address, error) { + return _ContractEigenPodManager.Contract.BeaconChainOracle(&_ContractEigenPodManager.CallOpts) +} + +// BeaconChainOracle is a free data retrieval call binding the contract method 0xc052bd61. +// +// Solidity: function beaconChainOracle() view returns(address) +func (_ContractEigenPodManager *ContractEigenPodManagerCallerSession) BeaconChainOracle() (common.Address, error) { + return _ContractEigenPodManager.Contract.BeaconChainOracle(&_ContractEigenPodManager.CallOpts) +} + +// CalculateWithdrawalRoot is a free data retrieval call binding the contract method 0x7493694f. +// +// Solidity: function calculateWithdrawalRoot((uint256,address,uint96,uint32,address,address) queuedWithdrawal) pure returns(bytes32) +func (_ContractEigenPodManager *ContractEigenPodManagerCaller) CalculateWithdrawalRoot(opts *bind.CallOpts, queuedWithdrawal IEigenPodManagerBeaconChainQueuedWithdrawal) ([32]byte, error) { + var out []interface{} + err := _ContractEigenPodManager.contract.Call(opts, &out, "calculateWithdrawalRoot", queuedWithdrawal) + + if err != nil { + return *new([32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) + + return out0, err + +} + +// CalculateWithdrawalRoot is a free data retrieval call binding the contract method 0x7493694f. +// +// Solidity: function calculateWithdrawalRoot((uint256,address,uint96,uint32,address,address) queuedWithdrawal) pure returns(bytes32) +func (_ContractEigenPodManager *ContractEigenPodManagerSession) CalculateWithdrawalRoot(queuedWithdrawal IEigenPodManagerBeaconChainQueuedWithdrawal) ([32]byte, error) { + return _ContractEigenPodManager.Contract.CalculateWithdrawalRoot(&_ContractEigenPodManager.CallOpts, queuedWithdrawal) +} + +// CalculateWithdrawalRoot is a free data retrieval call binding the contract method 0x7493694f. +// +// Solidity: function calculateWithdrawalRoot((uint256,address,uint96,uint32,address,address) queuedWithdrawal) pure returns(bytes32) +func (_ContractEigenPodManager *ContractEigenPodManagerCallerSession) CalculateWithdrawalRoot(queuedWithdrawal IEigenPodManagerBeaconChainQueuedWithdrawal) ([32]byte, error) { + return _ContractEigenPodManager.Contract.CalculateWithdrawalRoot(&_ContractEigenPodManager.CallOpts, queuedWithdrawal) +} + +// DelegationManager is a free data retrieval call binding the contract method 0xea4d3c9b. +// +// Solidity: function delegationManager() view returns(address) +func (_ContractEigenPodManager *ContractEigenPodManagerCaller) DelegationManager(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _ContractEigenPodManager.contract.Call(opts, &out, "delegationManager") + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// DelegationManager is a free data retrieval call binding the contract method 0xea4d3c9b. +// +// Solidity: function delegationManager() view returns(address) +func (_ContractEigenPodManager *ContractEigenPodManagerSession) DelegationManager() (common.Address, error) { + return _ContractEigenPodManager.Contract.DelegationManager(&_ContractEigenPodManager.CallOpts) +} + +// DelegationManager is a free data retrieval call binding the contract method 0xea4d3c9b. +// +// Solidity: function delegationManager() view returns(address) +func (_ContractEigenPodManager *ContractEigenPodManagerCallerSession) DelegationManager() (common.Address, error) { + return _ContractEigenPodManager.Contract.DelegationManager(&_ContractEigenPodManager.CallOpts) +} + +// EigenPodBeacon is a free data retrieval call binding the contract method 0x292b7b2b. +// +// Solidity: function eigenPodBeacon() view returns(address) +func (_ContractEigenPodManager *ContractEigenPodManagerCaller) EigenPodBeacon(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _ContractEigenPodManager.contract.Call(opts, &out, "eigenPodBeacon") + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// EigenPodBeacon is a free data retrieval call binding the contract method 0x292b7b2b. +// +// Solidity: function eigenPodBeacon() view returns(address) +func (_ContractEigenPodManager *ContractEigenPodManagerSession) EigenPodBeacon() (common.Address, error) { + return _ContractEigenPodManager.Contract.EigenPodBeacon(&_ContractEigenPodManager.CallOpts) +} + +// EigenPodBeacon is a free data retrieval call binding the contract method 0x292b7b2b. +// +// Solidity: function eigenPodBeacon() view returns(address) +func (_ContractEigenPodManager *ContractEigenPodManagerCallerSession) EigenPodBeacon() (common.Address, error) { + return _ContractEigenPodManager.Contract.EigenPodBeacon(&_ContractEigenPodManager.CallOpts) +} + +// EthPOS is a free data retrieval call binding the contract method 0x74cdd798. +// +// Solidity: function ethPOS() view returns(address) +func (_ContractEigenPodManager *ContractEigenPodManagerCaller) EthPOS(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _ContractEigenPodManager.contract.Call(opts, &out, "ethPOS") + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// EthPOS is a free data retrieval call binding the contract method 0x74cdd798. +// +// Solidity: function ethPOS() view returns(address) +func (_ContractEigenPodManager *ContractEigenPodManagerSession) EthPOS() (common.Address, error) { + return _ContractEigenPodManager.Contract.EthPOS(&_ContractEigenPodManager.CallOpts) +} + +// EthPOS is a free data retrieval call binding the contract method 0x74cdd798. +// +// Solidity: function ethPOS() view returns(address) +func (_ContractEigenPodManager *ContractEigenPodManagerCallerSession) EthPOS() (common.Address, error) { + return _ContractEigenPodManager.Contract.EthPOS(&_ContractEigenPodManager.CallOpts) +} + +// GetBlockRootAtTimestamp is a free data retrieval call binding the contract method 0xd1c64cc9. +// +// Solidity: function getBlockRootAtTimestamp(uint64 timestamp) view returns(bytes32) +func (_ContractEigenPodManager *ContractEigenPodManagerCaller) GetBlockRootAtTimestamp(opts *bind.CallOpts, timestamp uint64) ([32]byte, error) { + var out []interface{} + err := _ContractEigenPodManager.contract.Call(opts, &out, "getBlockRootAtTimestamp", timestamp) + + if err != nil { + return *new([32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) + + return out0, err + +} + +// GetBlockRootAtTimestamp is a free data retrieval call binding the contract method 0xd1c64cc9. +// +// Solidity: function getBlockRootAtTimestamp(uint64 timestamp) view returns(bytes32) +func (_ContractEigenPodManager *ContractEigenPodManagerSession) GetBlockRootAtTimestamp(timestamp uint64) ([32]byte, error) { + return _ContractEigenPodManager.Contract.GetBlockRootAtTimestamp(&_ContractEigenPodManager.CallOpts, timestamp) +} + +// GetBlockRootAtTimestamp is a free data retrieval call binding the contract method 0xd1c64cc9. +// +// Solidity: function getBlockRootAtTimestamp(uint64 timestamp) view returns(bytes32) +func (_ContractEigenPodManager *ContractEigenPodManagerCallerSession) GetBlockRootAtTimestamp(timestamp uint64) ([32]byte, error) { + return _ContractEigenPodManager.Contract.GetBlockRootAtTimestamp(&_ContractEigenPodManager.CallOpts, timestamp) +} + +// GetPod is a free data retrieval call binding the contract method 0xa38406a3. +// +// Solidity: function getPod(address podOwner) view returns(address) +func (_ContractEigenPodManager *ContractEigenPodManagerCaller) GetPod(opts *bind.CallOpts, podOwner common.Address) (common.Address, error) { + var out []interface{} + err := _ContractEigenPodManager.contract.Call(opts, &out, "getPod", podOwner) + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// GetPod is a free data retrieval call binding the contract method 0xa38406a3. +// +// Solidity: function getPod(address podOwner) view returns(address) +func (_ContractEigenPodManager *ContractEigenPodManagerSession) GetPod(podOwner common.Address) (common.Address, error) { + return _ContractEigenPodManager.Contract.GetPod(&_ContractEigenPodManager.CallOpts, podOwner) +} + +// GetPod is a free data retrieval call binding the contract method 0xa38406a3. +// +// Solidity: function getPod(address podOwner) view returns(address) +func (_ContractEigenPodManager *ContractEigenPodManagerCallerSession) GetPod(podOwner common.Address) (common.Address, error) { + return _ContractEigenPodManager.Contract.GetPod(&_ContractEigenPodManager.CallOpts, podOwner) +} + +// HasPod is a free data retrieval call binding the contract method 0xf6848d24. +// +// Solidity: function hasPod(address podOwner) view returns(bool) +func (_ContractEigenPodManager *ContractEigenPodManagerCaller) HasPod(opts *bind.CallOpts, podOwner common.Address) (bool, error) { + var out []interface{} + err := _ContractEigenPodManager.contract.Call(opts, &out, "hasPod", podOwner) + + if err != nil { + return *new(bool), err + } + + out0 := *abi.ConvertType(out[0], new(bool)).(*bool) + + return out0, err + +} + +// HasPod is a free data retrieval call binding the contract method 0xf6848d24. +// +// Solidity: function hasPod(address podOwner) view returns(bool) +func (_ContractEigenPodManager *ContractEigenPodManagerSession) HasPod(podOwner common.Address) (bool, error) { + return _ContractEigenPodManager.Contract.HasPod(&_ContractEigenPodManager.CallOpts, podOwner) +} + +// HasPod is a free data retrieval call binding the contract method 0xf6848d24. +// +// Solidity: function hasPod(address podOwner) view returns(bool) +func (_ContractEigenPodManager *ContractEigenPodManagerCallerSession) HasPod(podOwner common.Address) (bool, error) { + return _ContractEigenPodManager.Contract.HasPod(&_ContractEigenPodManager.CallOpts, podOwner) +} + +// IsInUndelegationLimbo is a free data retrieval call binding the contract method 0xabd49022. +// +// Solidity: function isInUndelegationLimbo(address podOwner) view returns(bool) +func (_ContractEigenPodManager *ContractEigenPodManagerCaller) IsInUndelegationLimbo(opts *bind.CallOpts, podOwner common.Address) (bool, error) { + var out []interface{} + err := _ContractEigenPodManager.contract.Call(opts, &out, "isInUndelegationLimbo", podOwner) + + if err != nil { + return *new(bool), err + } + + out0 := *abi.ConvertType(out[0], new(bool)).(*bool) + + return out0, err + +} + +// IsInUndelegationLimbo is a free data retrieval call binding the contract method 0xabd49022. +// +// Solidity: function isInUndelegationLimbo(address podOwner) view returns(bool) +func (_ContractEigenPodManager *ContractEigenPodManagerSession) IsInUndelegationLimbo(podOwner common.Address) (bool, error) { + return _ContractEigenPodManager.Contract.IsInUndelegationLimbo(&_ContractEigenPodManager.CallOpts, podOwner) +} + +// IsInUndelegationLimbo is a free data retrieval call binding the contract method 0xabd49022. +// +// Solidity: function isInUndelegationLimbo(address podOwner) view returns(bool) +func (_ContractEigenPodManager *ContractEigenPodManagerCallerSession) IsInUndelegationLimbo(podOwner common.Address) (bool, error) { + return _ContractEigenPodManager.Contract.IsInUndelegationLimbo(&_ContractEigenPodManager.CallOpts, podOwner) +} + +// MaxPods is a free data retrieval call binding the contract method 0xc0ccbf10. +// +// Solidity: function maxPods() view returns(uint256) +func (_ContractEigenPodManager *ContractEigenPodManagerCaller) MaxPods(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _ContractEigenPodManager.contract.Call(opts, &out, "maxPods") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// MaxPods is a free data retrieval call binding the contract method 0xc0ccbf10. +// +// Solidity: function maxPods() view returns(uint256) +func (_ContractEigenPodManager *ContractEigenPodManagerSession) MaxPods() (*big.Int, error) { + return _ContractEigenPodManager.Contract.MaxPods(&_ContractEigenPodManager.CallOpts) +} + +// MaxPods is a free data retrieval call binding the contract method 0xc0ccbf10. +// +// Solidity: function maxPods() view returns(uint256) +func (_ContractEigenPodManager *ContractEigenPodManagerCallerSession) MaxPods() (*big.Int, error) { + return _ContractEigenPodManager.Contract.MaxPods(&_ContractEigenPodManager.CallOpts) +} + +// NumPods is a free data retrieval call binding the contract method 0xa6a509be. +// +// Solidity: function numPods() view returns(uint256) +func (_ContractEigenPodManager *ContractEigenPodManagerCaller) NumPods(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _ContractEigenPodManager.contract.Call(opts, &out, "numPods") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// NumPods is a free data retrieval call binding the contract method 0xa6a509be. +// +// Solidity: function numPods() view returns(uint256) +func (_ContractEigenPodManager *ContractEigenPodManagerSession) NumPods() (*big.Int, error) { + return _ContractEigenPodManager.Contract.NumPods(&_ContractEigenPodManager.CallOpts) +} + +// NumPods is a free data retrieval call binding the contract method 0xa6a509be. +// +// Solidity: function numPods() view returns(uint256) +func (_ContractEigenPodManager *ContractEigenPodManagerCallerSession) NumPods() (*big.Int, error) { + return _ContractEigenPodManager.Contract.NumPods(&_ContractEigenPodManager.CallOpts) +} + +// NumWithdrawalsQueued is a free data retrieval call binding the contract method 0x56631028. +// +// Solidity: function numWithdrawalsQueued(address ) view returns(uint256) +func (_ContractEigenPodManager *ContractEigenPodManagerCaller) NumWithdrawalsQueued(opts *bind.CallOpts, arg0 common.Address) (*big.Int, error) { + var out []interface{} + err := _ContractEigenPodManager.contract.Call(opts, &out, "numWithdrawalsQueued", arg0) + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// NumWithdrawalsQueued is a free data retrieval call binding the contract method 0x56631028. +// +// Solidity: function numWithdrawalsQueued(address ) view returns(uint256) +func (_ContractEigenPodManager *ContractEigenPodManagerSession) NumWithdrawalsQueued(arg0 common.Address) (*big.Int, error) { + return _ContractEigenPodManager.Contract.NumWithdrawalsQueued(&_ContractEigenPodManager.CallOpts, arg0) +} + +// NumWithdrawalsQueued is a free data retrieval call binding the contract method 0x56631028. +// +// Solidity: function numWithdrawalsQueued(address ) view returns(uint256) +func (_ContractEigenPodManager *ContractEigenPodManagerCallerSession) NumWithdrawalsQueued(arg0 common.Address) (*big.Int, error) { + return _ContractEigenPodManager.Contract.NumWithdrawalsQueued(&_ContractEigenPodManager.CallOpts, arg0) +} + +// Owner is a free data retrieval call binding the contract method 0x8da5cb5b. +// +// Solidity: function owner() view returns(address) +func (_ContractEigenPodManager *ContractEigenPodManagerCaller) Owner(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _ContractEigenPodManager.contract.Call(opts, &out, "owner") + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// Owner is a free data retrieval call binding the contract method 0x8da5cb5b. +// +// Solidity: function owner() view returns(address) +func (_ContractEigenPodManager *ContractEigenPodManagerSession) Owner() (common.Address, error) { + return _ContractEigenPodManager.Contract.Owner(&_ContractEigenPodManager.CallOpts) +} + +// Owner is a free data retrieval call binding the contract method 0x8da5cb5b. +// +// Solidity: function owner() view returns(address) +func (_ContractEigenPodManager *ContractEigenPodManagerCallerSession) Owner() (common.Address, error) { + return _ContractEigenPodManager.Contract.Owner(&_ContractEigenPodManager.CallOpts) +} + +// OwnerToPod is a free data retrieval call binding the contract method 0x9ba06275. +// +// Solidity: function ownerToPod(address ) view returns(address) +func (_ContractEigenPodManager *ContractEigenPodManagerCaller) OwnerToPod(opts *bind.CallOpts, arg0 common.Address) (common.Address, error) { + var out []interface{} + err := _ContractEigenPodManager.contract.Call(opts, &out, "ownerToPod", arg0) + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// OwnerToPod is a free data retrieval call binding the contract method 0x9ba06275. +// +// Solidity: function ownerToPod(address ) view returns(address) +func (_ContractEigenPodManager *ContractEigenPodManagerSession) OwnerToPod(arg0 common.Address) (common.Address, error) { + return _ContractEigenPodManager.Contract.OwnerToPod(&_ContractEigenPodManager.CallOpts, arg0) +} + +// OwnerToPod is a free data retrieval call binding the contract method 0x9ba06275. +// +// Solidity: function ownerToPod(address ) view returns(address) +func (_ContractEigenPodManager *ContractEigenPodManagerCallerSession) OwnerToPod(arg0 common.Address) (common.Address, error) { + return _ContractEigenPodManager.Contract.OwnerToPod(&_ContractEigenPodManager.CallOpts, arg0) +} + +// Paused is a free data retrieval call binding the contract method 0x5ac86ab7. +// +// Solidity: function paused(uint8 index) view returns(bool) +func (_ContractEigenPodManager *ContractEigenPodManagerCaller) Paused(opts *bind.CallOpts, index uint8) (bool, error) { + var out []interface{} + err := _ContractEigenPodManager.contract.Call(opts, &out, "paused", index) + + if err != nil { + return *new(bool), err + } + + out0 := *abi.ConvertType(out[0], new(bool)).(*bool) + + return out0, err + +} + +// Paused is a free data retrieval call binding the contract method 0x5ac86ab7. +// +// Solidity: function paused(uint8 index) view returns(bool) +func (_ContractEigenPodManager *ContractEigenPodManagerSession) Paused(index uint8) (bool, error) { + return _ContractEigenPodManager.Contract.Paused(&_ContractEigenPodManager.CallOpts, index) +} + +// Paused is a free data retrieval call binding the contract method 0x5ac86ab7. +// +// Solidity: function paused(uint8 index) view returns(bool) +func (_ContractEigenPodManager *ContractEigenPodManagerCallerSession) Paused(index uint8) (bool, error) { + return _ContractEigenPodManager.Contract.Paused(&_ContractEigenPodManager.CallOpts, index) +} + +// Paused0 is a free data retrieval call binding the contract method 0x5c975abb. +// +// Solidity: function paused() view returns(uint256) +func (_ContractEigenPodManager *ContractEigenPodManagerCaller) Paused0(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _ContractEigenPodManager.contract.Call(opts, &out, "paused0") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// Paused0 is a free data retrieval call binding the contract method 0x5c975abb. +// +// Solidity: function paused() view returns(uint256) +func (_ContractEigenPodManager *ContractEigenPodManagerSession) Paused0() (*big.Int, error) { + return _ContractEigenPodManager.Contract.Paused0(&_ContractEigenPodManager.CallOpts) +} + +// Paused0 is a free data retrieval call binding the contract method 0x5c975abb. +// +// Solidity: function paused() view returns(uint256) +func (_ContractEigenPodManager *ContractEigenPodManagerCallerSession) Paused0() (*big.Int, error) { + return _ContractEigenPodManager.Contract.Paused0(&_ContractEigenPodManager.CallOpts) +} + +// PauserRegistry is a free data retrieval call binding the contract method 0x886f1195. +// +// Solidity: function pauserRegistry() view returns(address) +func (_ContractEigenPodManager *ContractEigenPodManagerCaller) PauserRegistry(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _ContractEigenPodManager.contract.Call(opts, &out, "pauserRegistry") + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// PauserRegistry is a free data retrieval call binding the contract method 0x886f1195. +// +// Solidity: function pauserRegistry() view returns(address) +func (_ContractEigenPodManager *ContractEigenPodManagerSession) PauserRegistry() (common.Address, error) { + return _ContractEigenPodManager.Contract.PauserRegistry(&_ContractEigenPodManager.CallOpts) +} + +// PauserRegistry is a free data retrieval call binding the contract method 0x886f1195. +// +// Solidity: function pauserRegistry() view returns(address) +func (_ContractEigenPodManager *ContractEigenPodManagerCallerSession) PauserRegistry() (common.Address, error) { + return _ContractEigenPodManager.Contract.PauserRegistry(&_ContractEigenPodManager.CallOpts) +} + +// PodOwnerHasActiveShares is a free data retrieval call binding the contract method 0xbdffb35f. +// +// Solidity: function podOwnerHasActiveShares(address staker) view returns(bool) +func (_ContractEigenPodManager *ContractEigenPodManagerCaller) PodOwnerHasActiveShares(opts *bind.CallOpts, staker common.Address) (bool, error) { + var out []interface{} + err := _ContractEigenPodManager.contract.Call(opts, &out, "podOwnerHasActiveShares", staker) + + if err != nil { + return *new(bool), err + } + + out0 := *abi.ConvertType(out[0], new(bool)).(*bool) + + return out0, err + +} + +// PodOwnerHasActiveShares is a free data retrieval call binding the contract method 0xbdffb35f. +// +// Solidity: function podOwnerHasActiveShares(address staker) view returns(bool) +func (_ContractEigenPodManager *ContractEigenPodManagerSession) PodOwnerHasActiveShares(staker common.Address) (bool, error) { + return _ContractEigenPodManager.Contract.PodOwnerHasActiveShares(&_ContractEigenPodManager.CallOpts, staker) +} + +// PodOwnerHasActiveShares is a free data retrieval call binding the contract method 0xbdffb35f. +// +// Solidity: function podOwnerHasActiveShares(address staker) view returns(bool) +func (_ContractEigenPodManager *ContractEigenPodManagerCallerSession) PodOwnerHasActiveShares(staker common.Address) (bool, error) { + return _ContractEigenPodManager.Contract.PodOwnerHasActiveShares(&_ContractEigenPodManager.CallOpts, staker) +} + +// PodOwnerShares is a free data retrieval call binding the contract method 0x60f4062b. +// +// Solidity: function podOwnerShares(address ) view returns(uint256) +func (_ContractEigenPodManager *ContractEigenPodManagerCaller) PodOwnerShares(opts *bind.CallOpts, arg0 common.Address) (*big.Int, error) { + var out []interface{} + err := _ContractEigenPodManager.contract.Call(opts, &out, "podOwnerShares", arg0) + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// PodOwnerShares is a free data retrieval call binding the contract method 0x60f4062b. +// +// Solidity: function podOwnerShares(address ) view returns(uint256) +func (_ContractEigenPodManager *ContractEigenPodManagerSession) PodOwnerShares(arg0 common.Address) (*big.Int, error) { + return _ContractEigenPodManager.Contract.PodOwnerShares(&_ContractEigenPodManager.CallOpts, arg0) +} + +// PodOwnerShares is a free data retrieval call binding the contract method 0x60f4062b. +// +// Solidity: function podOwnerShares(address ) view returns(uint256) +func (_ContractEigenPodManager *ContractEigenPodManagerCallerSession) PodOwnerShares(arg0 common.Address) (*big.Int, error) { + return _ContractEigenPodManager.Contract.PodOwnerShares(&_ContractEigenPodManager.CallOpts, arg0) +} + +// PodOwnerUndelegationLimboStatus is a free data retrieval call binding the contract method 0x74182c0a. +// +// Solidity: function podOwnerUndelegationLimboStatus(address podOwner) view returns((bool,uint32,address)) +func (_ContractEigenPodManager *ContractEigenPodManagerCaller) PodOwnerUndelegationLimboStatus(opts *bind.CallOpts, podOwner common.Address) (IEigenPodManagerUndelegationLimboStatus, error) { + var out []interface{} + err := _ContractEigenPodManager.contract.Call(opts, &out, "podOwnerUndelegationLimboStatus", podOwner) + + if err != nil { + return *new(IEigenPodManagerUndelegationLimboStatus), err + } + + out0 := *abi.ConvertType(out[0], new(IEigenPodManagerUndelegationLimboStatus)).(*IEigenPodManagerUndelegationLimboStatus) + + return out0, err + +} + +// PodOwnerUndelegationLimboStatus is a free data retrieval call binding the contract method 0x74182c0a. +// +// Solidity: function podOwnerUndelegationLimboStatus(address podOwner) view returns((bool,uint32,address)) +func (_ContractEigenPodManager *ContractEigenPodManagerSession) PodOwnerUndelegationLimboStatus(podOwner common.Address) (IEigenPodManagerUndelegationLimboStatus, error) { + return _ContractEigenPodManager.Contract.PodOwnerUndelegationLimboStatus(&_ContractEigenPodManager.CallOpts, podOwner) +} + +// PodOwnerUndelegationLimboStatus is a free data retrieval call binding the contract method 0x74182c0a. +// +// Solidity: function podOwnerUndelegationLimboStatus(address podOwner) view returns((bool,uint32,address)) +func (_ContractEigenPodManager *ContractEigenPodManagerCallerSession) PodOwnerUndelegationLimboStatus(podOwner common.Address) (IEigenPodManagerUndelegationLimboStatus, error) { + return _ContractEigenPodManager.Contract.PodOwnerUndelegationLimboStatus(&_ContractEigenPodManager.CallOpts, podOwner) +} + +// Slasher is a free data retrieval call binding the contract method 0xb1344271. +// +// Solidity: function slasher() view returns(address) +func (_ContractEigenPodManager *ContractEigenPodManagerCaller) Slasher(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _ContractEigenPodManager.contract.Call(opts, &out, "slasher") + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// Slasher is a free data retrieval call binding the contract method 0xb1344271. +// +// Solidity: function slasher() view returns(address) +func (_ContractEigenPodManager *ContractEigenPodManagerSession) Slasher() (common.Address, error) { + return _ContractEigenPodManager.Contract.Slasher(&_ContractEigenPodManager.CallOpts) +} + +// Slasher is a free data retrieval call binding the contract method 0xb1344271. +// +// Solidity: function slasher() view returns(address) +func (_ContractEigenPodManager *ContractEigenPodManagerCallerSession) Slasher() (common.Address, error) { + return _ContractEigenPodManager.Contract.Slasher(&_ContractEigenPodManager.CallOpts) +} + +// StrategyManager is a free data retrieval call binding the contract method 0x39b70e38. +// +// Solidity: function strategyManager() view returns(address) +func (_ContractEigenPodManager *ContractEigenPodManagerCaller) StrategyManager(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _ContractEigenPodManager.contract.Call(opts, &out, "strategyManager") + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// StrategyManager is a free data retrieval call binding the contract method 0x39b70e38. +// +// Solidity: function strategyManager() view returns(address) +func (_ContractEigenPodManager *ContractEigenPodManagerSession) StrategyManager() (common.Address, error) { + return _ContractEigenPodManager.Contract.StrategyManager(&_ContractEigenPodManager.CallOpts) +} + +// StrategyManager is a free data retrieval call binding the contract method 0x39b70e38. +// +// Solidity: function strategyManager() view returns(address) +func (_ContractEigenPodManager *ContractEigenPodManagerCallerSession) StrategyManager() (common.Address, error) { + return _ContractEigenPodManager.Contract.StrategyManager(&_ContractEigenPodManager.CallOpts) +} + +// WithdrawalRootPending is a free data retrieval call binding the contract method 0xc3c6b3a9. +// +// Solidity: function withdrawalRootPending(bytes32 ) view returns(bool) +func (_ContractEigenPodManager *ContractEigenPodManagerCaller) WithdrawalRootPending(opts *bind.CallOpts, arg0 [32]byte) (bool, error) { + var out []interface{} + err := _ContractEigenPodManager.contract.Call(opts, &out, "withdrawalRootPending", arg0) + + if err != nil { + return *new(bool), err + } + + out0 := *abi.ConvertType(out[0], new(bool)).(*bool) + + return out0, err + +} + +// WithdrawalRootPending is a free data retrieval call binding the contract method 0xc3c6b3a9. +// +// Solidity: function withdrawalRootPending(bytes32 ) view returns(bool) +func (_ContractEigenPodManager *ContractEigenPodManagerSession) WithdrawalRootPending(arg0 [32]byte) (bool, error) { + return _ContractEigenPodManager.Contract.WithdrawalRootPending(&_ContractEigenPodManager.CallOpts, arg0) +} + +// WithdrawalRootPending is a free data retrieval call binding the contract method 0xc3c6b3a9. +// +// Solidity: function withdrawalRootPending(bytes32 ) view returns(bool) +func (_ContractEigenPodManager *ContractEigenPodManagerCallerSession) WithdrawalRootPending(arg0 [32]byte) (bool, error) { + return _ContractEigenPodManager.Contract.WithdrawalRootPending(&_ContractEigenPodManager.CallOpts, arg0) +} + +// CompleteQueuedWithdrawal is a paid mutator transaction binding the contract method 0xf38027eb. +// +// Solidity: function completeQueuedWithdrawal((uint256,address,uint96,uint32,address,address) queuedWithdrawal, uint256 middlewareTimesIndex) returns() +func (_ContractEigenPodManager *ContractEigenPodManagerTransactor) CompleteQueuedWithdrawal(opts *bind.TransactOpts, queuedWithdrawal IEigenPodManagerBeaconChainQueuedWithdrawal, middlewareTimesIndex *big.Int) (*types.Transaction, error) { + return _ContractEigenPodManager.contract.Transact(opts, "completeQueuedWithdrawal", queuedWithdrawal, middlewareTimesIndex) +} + +// CompleteQueuedWithdrawal is a paid mutator transaction binding the contract method 0xf38027eb. +// +// Solidity: function completeQueuedWithdrawal((uint256,address,uint96,uint32,address,address) queuedWithdrawal, uint256 middlewareTimesIndex) returns() +func (_ContractEigenPodManager *ContractEigenPodManagerSession) CompleteQueuedWithdrawal(queuedWithdrawal IEigenPodManagerBeaconChainQueuedWithdrawal, middlewareTimesIndex *big.Int) (*types.Transaction, error) { + return _ContractEigenPodManager.Contract.CompleteQueuedWithdrawal(&_ContractEigenPodManager.TransactOpts, queuedWithdrawal, middlewareTimesIndex) +} + +// CompleteQueuedWithdrawal is a paid mutator transaction binding the contract method 0xf38027eb. +// +// Solidity: function completeQueuedWithdrawal((uint256,address,uint96,uint32,address,address) queuedWithdrawal, uint256 middlewareTimesIndex) returns() +func (_ContractEigenPodManager *ContractEigenPodManagerTransactorSession) CompleteQueuedWithdrawal(queuedWithdrawal IEigenPodManagerBeaconChainQueuedWithdrawal, middlewareTimesIndex *big.Int) (*types.Transaction, error) { + return _ContractEigenPodManager.Contract.CompleteQueuedWithdrawal(&_ContractEigenPodManager.TransactOpts, queuedWithdrawal, middlewareTimesIndex) +} + +// CreatePod is a paid mutator transaction binding the contract method 0x84d81062. +// +// Solidity: function createPod() returns() +func (_ContractEigenPodManager *ContractEigenPodManagerTransactor) CreatePod(opts *bind.TransactOpts) (*types.Transaction, error) { + return _ContractEigenPodManager.contract.Transact(opts, "createPod") +} + +// CreatePod is a paid mutator transaction binding the contract method 0x84d81062. +// +// Solidity: function createPod() returns() +func (_ContractEigenPodManager *ContractEigenPodManagerSession) CreatePod() (*types.Transaction, error) { + return _ContractEigenPodManager.Contract.CreatePod(&_ContractEigenPodManager.TransactOpts) +} + +// CreatePod is a paid mutator transaction binding the contract method 0x84d81062. +// +// Solidity: function createPod() returns() +func (_ContractEigenPodManager *ContractEigenPodManagerTransactorSession) CreatePod() (*types.Transaction, error) { + return _ContractEigenPodManager.Contract.CreatePod(&_ContractEigenPodManager.TransactOpts) +} + +// ExitUndelegationLimbo is a paid mutator transaction binding the contract method 0xda2d0d0b. +// +// Solidity: function exitUndelegationLimbo(uint256 middlewareTimesIndex, bool withdrawFundsFromEigenLayer) returns() +func (_ContractEigenPodManager *ContractEigenPodManagerTransactor) ExitUndelegationLimbo(opts *bind.TransactOpts, middlewareTimesIndex *big.Int, withdrawFundsFromEigenLayer bool) (*types.Transaction, error) { + return _ContractEigenPodManager.contract.Transact(opts, "exitUndelegationLimbo", middlewareTimesIndex, withdrawFundsFromEigenLayer) +} + +// ExitUndelegationLimbo is a paid mutator transaction binding the contract method 0xda2d0d0b. +// +// Solidity: function exitUndelegationLimbo(uint256 middlewareTimesIndex, bool withdrawFundsFromEigenLayer) returns() +func (_ContractEigenPodManager *ContractEigenPodManagerSession) ExitUndelegationLimbo(middlewareTimesIndex *big.Int, withdrawFundsFromEigenLayer bool) (*types.Transaction, error) { + return _ContractEigenPodManager.Contract.ExitUndelegationLimbo(&_ContractEigenPodManager.TransactOpts, middlewareTimesIndex, withdrawFundsFromEigenLayer) +} + +// ExitUndelegationLimbo is a paid mutator transaction binding the contract method 0xda2d0d0b. +// +// Solidity: function exitUndelegationLimbo(uint256 middlewareTimesIndex, bool withdrawFundsFromEigenLayer) returns() +func (_ContractEigenPodManager *ContractEigenPodManagerTransactorSession) ExitUndelegationLimbo(middlewareTimesIndex *big.Int, withdrawFundsFromEigenLayer bool) (*types.Transaction, error) { + return _ContractEigenPodManager.Contract.ExitUndelegationLimbo(&_ContractEigenPodManager.TransactOpts, middlewareTimesIndex, withdrawFundsFromEigenLayer) +} + +// ForceIntoUndelegationLimbo is a paid mutator transaction binding the contract method 0xca453a68. +// +// Solidity: function forceIntoUndelegationLimbo(address podOwner, address delegatedTo) returns(uint256 sharesRemovedFromDelegation) +func (_ContractEigenPodManager *ContractEigenPodManagerTransactor) ForceIntoUndelegationLimbo(opts *bind.TransactOpts, podOwner common.Address, delegatedTo common.Address) (*types.Transaction, error) { + return _ContractEigenPodManager.contract.Transact(opts, "forceIntoUndelegationLimbo", podOwner, delegatedTo) +} + +// ForceIntoUndelegationLimbo is a paid mutator transaction binding the contract method 0xca453a68. +// +// Solidity: function forceIntoUndelegationLimbo(address podOwner, address delegatedTo) returns(uint256 sharesRemovedFromDelegation) +func (_ContractEigenPodManager *ContractEigenPodManagerSession) ForceIntoUndelegationLimbo(podOwner common.Address, delegatedTo common.Address) (*types.Transaction, error) { + return _ContractEigenPodManager.Contract.ForceIntoUndelegationLimbo(&_ContractEigenPodManager.TransactOpts, podOwner, delegatedTo) +} + +// ForceIntoUndelegationLimbo is a paid mutator transaction binding the contract method 0xca453a68. +// +// Solidity: function forceIntoUndelegationLimbo(address podOwner, address delegatedTo) returns(uint256 sharesRemovedFromDelegation) +func (_ContractEigenPodManager *ContractEigenPodManagerTransactorSession) ForceIntoUndelegationLimbo(podOwner common.Address, delegatedTo common.Address) (*types.Transaction, error) { + return _ContractEigenPodManager.Contract.ForceIntoUndelegationLimbo(&_ContractEigenPodManager.TransactOpts, podOwner, delegatedTo) +} + +// Initialize is a paid mutator transaction binding the contract method 0xdaf12cd4. +// +// Solidity: function initialize(uint256 _maxPods, address _beaconChainOracle, address initialOwner, address _pauserRegistry, uint256 _initPausedStatus) returns() +func (_ContractEigenPodManager *ContractEigenPodManagerTransactor) Initialize(opts *bind.TransactOpts, _maxPods *big.Int, _beaconChainOracle common.Address, initialOwner common.Address, _pauserRegistry common.Address, _initPausedStatus *big.Int) (*types.Transaction, error) { + return _ContractEigenPodManager.contract.Transact(opts, "initialize", _maxPods, _beaconChainOracle, initialOwner, _pauserRegistry, _initPausedStatus) +} + +// Initialize is a paid mutator transaction binding the contract method 0xdaf12cd4. +// +// Solidity: function initialize(uint256 _maxPods, address _beaconChainOracle, address initialOwner, address _pauserRegistry, uint256 _initPausedStatus) returns() +func (_ContractEigenPodManager *ContractEigenPodManagerSession) Initialize(_maxPods *big.Int, _beaconChainOracle common.Address, initialOwner common.Address, _pauserRegistry common.Address, _initPausedStatus *big.Int) (*types.Transaction, error) { + return _ContractEigenPodManager.Contract.Initialize(&_ContractEigenPodManager.TransactOpts, _maxPods, _beaconChainOracle, initialOwner, _pauserRegistry, _initPausedStatus) +} + +// Initialize is a paid mutator transaction binding the contract method 0xdaf12cd4. +// +// Solidity: function initialize(uint256 _maxPods, address _beaconChainOracle, address initialOwner, address _pauserRegistry, uint256 _initPausedStatus) returns() +func (_ContractEigenPodManager *ContractEigenPodManagerTransactorSession) Initialize(_maxPods *big.Int, _beaconChainOracle common.Address, initialOwner common.Address, _pauserRegistry common.Address, _initPausedStatus *big.Int) (*types.Transaction, error) { + return _ContractEigenPodManager.Contract.Initialize(&_ContractEigenPodManager.TransactOpts, _maxPods, _beaconChainOracle, initialOwner, _pauserRegistry, _initPausedStatus) +} + +// Pause is a paid mutator transaction binding the contract method 0x136439dd. +// +// Solidity: function pause(uint256 newPausedStatus) returns() +func (_ContractEigenPodManager *ContractEigenPodManagerTransactor) Pause(opts *bind.TransactOpts, newPausedStatus *big.Int) (*types.Transaction, error) { + return _ContractEigenPodManager.contract.Transact(opts, "pause", newPausedStatus) +} + +// Pause is a paid mutator transaction binding the contract method 0x136439dd. +// +// Solidity: function pause(uint256 newPausedStatus) returns() +func (_ContractEigenPodManager *ContractEigenPodManagerSession) Pause(newPausedStatus *big.Int) (*types.Transaction, error) { + return _ContractEigenPodManager.Contract.Pause(&_ContractEigenPodManager.TransactOpts, newPausedStatus) +} + +// Pause is a paid mutator transaction binding the contract method 0x136439dd. +// +// Solidity: function pause(uint256 newPausedStatus) returns() +func (_ContractEigenPodManager *ContractEigenPodManagerTransactorSession) Pause(newPausedStatus *big.Int) (*types.Transaction, error) { + return _ContractEigenPodManager.Contract.Pause(&_ContractEigenPodManager.TransactOpts, newPausedStatus) +} + +// PauseAll is a paid mutator transaction binding the contract method 0x595c6a67. +// +// Solidity: function pauseAll() returns() +func (_ContractEigenPodManager *ContractEigenPodManagerTransactor) PauseAll(opts *bind.TransactOpts) (*types.Transaction, error) { + return _ContractEigenPodManager.contract.Transact(opts, "pauseAll") +} + +// PauseAll is a paid mutator transaction binding the contract method 0x595c6a67. +// +// Solidity: function pauseAll() returns() +func (_ContractEigenPodManager *ContractEigenPodManagerSession) PauseAll() (*types.Transaction, error) { + return _ContractEigenPodManager.Contract.PauseAll(&_ContractEigenPodManager.TransactOpts) +} + +// PauseAll is a paid mutator transaction binding the contract method 0x595c6a67. +// +// Solidity: function pauseAll() returns() +func (_ContractEigenPodManager *ContractEigenPodManagerTransactorSession) PauseAll() (*types.Transaction, error) { + return _ContractEigenPodManager.Contract.PauseAll(&_ContractEigenPodManager.TransactOpts) +} + +// QueueWithdrawal is a paid mutator transaction binding the contract method 0xd58457b2. +// +// Solidity: function queueWithdrawal(uint256 amountWei, address withdrawer) returns(bytes32) +func (_ContractEigenPodManager *ContractEigenPodManagerTransactor) QueueWithdrawal(opts *bind.TransactOpts, amountWei *big.Int, withdrawer common.Address) (*types.Transaction, error) { + return _ContractEigenPodManager.contract.Transact(opts, "queueWithdrawal", amountWei, withdrawer) +} + +// QueueWithdrawal is a paid mutator transaction binding the contract method 0xd58457b2. +// +// Solidity: function queueWithdrawal(uint256 amountWei, address withdrawer) returns(bytes32) +func (_ContractEigenPodManager *ContractEigenPodManagerSession) QueueWithdrawal(amountWei *big.Int, withdrawer common.Address) (*types.Transaction, error) { + return _ContractEigenPodManager.Contract.QueueWithdrawal(&_ContractEigenPodManager.TransactOpts, amountWei, withdrawer) +} + +// QueueWithdrawal is a paid mutator transaction binding the contract method 0xd58457b2. +// +// Solidity: function queueWithdrawal(uint256 amountWei, address withdrawer) returns(bytes32) +func (_ContractEigenPodManager *ContractEigenPodManagerTransactorSession) QueueWithdrawal(amountWei *big.Int, withdrawer common.Address) (*types.Transaction, error) { + return _ContractEigenPodManager.Contract.QueueWithdrawal(&_ContractEigenPodManager.TransactOpts, amountWei, withdrawer) +} + +// RecordBeaconChainETHBalanceUpdate is a paid mutator transaction binding the contract method 0xc2c51c40. +// +// Solidity: function recordBeaconChainETHBalanceUpdate(address podOwner, int256 sharesDelta) returns() +func (_ContractEigenPodManager *ContractEigenPodManagerTransactor) RecordBeaconChainETHBalanceUpdate(opts *bind.TransactOpts, podOwner common.Address, sharesDelta *big.Int) (*types.Transaction, error) { + return _ContractEigenPodManager.contract.Transact(opts, "recordBeaconChainETHBalanceUpdate", podOwner, sharesDelta) +} + +// RecordBeaconChainETHBalanceUpdate is a paid mutator transaction binding the contract method 0xc2c51c40. +// +// Solidity: function recordBeaconChainETHBalanceUpdate(address podOwner, int256 sharesDelta) returns() +func (_ContractEigenPodManager *ContractEigenPodManagerSession) RecordBeaconChainETHBalanceUpdate(podOwner common.Address, sharesDelta *big.Int) (*types.Transaction, error) { + return _ContractEigenPodManager.Contract.RecordBeaconChainETHBalanceUpdate(&_ContractEigenPodManager.TransactOpts, podOwner, sharesDelta) +} + +// RecordBeaconChainETHBalanceUpdate is a paid mutator transaction binding the contract method 0xc2c51c40. +// +// Solidity: function recordBeaconChainETHBalanceUpdate(address podOwner, int256 sharesDelta) returns() +func (_ContractEigenPodManager *ContractEigenPodManagerTransactorSession) RecordBeaconChainETHBalanceUpdate(podOwner common.Address, sharesDelta *big.Int) (*types.Transaction, error) { + return _ContractEigenPodManager.Contract.RecordBeaconChainETHBalanceUpdate(&_ContractEigenPodManager.TransactOpts, podOwner, sharesDelta) +} + +// RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6. +// +// Solidity: function renounceOwnership() returns() +func (_ContractEigenPodManager *ContractEigenPodManagerTransactor) RenounceOwnership(opts *bind.TransactOpts) (*types.Transaction, error) { + return _ContractEigenPodManager.contract.Transact(opts, "renounceOwnership") +} + +// RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6. +// +// Solidity: function renounceOwnership() returns() +func (_ContractEigenPodManager *ContractEigenPodManagerSession) RenounceOwnership() (*types.Transaction, error) { + return _ContractEigenPodManager.Contract.RenounceOwnership(&_ContractEigenPodManager.TransactOpts) +} + +// RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6. +// +// Solidity: function renounceOwnership() returns() +func (_ContractEigenPodManager *ContractEigenPodManagerTransactorSession) RenounceOwnership() (*types.Transaction, error) { + return _ContractEigenPodManager.Contract.RenounceOwnership(&_ContractEigenPodManager.TransactOpts) +} + +// RestakeBeaconChainETH is a paid mutator transaction binding the contract method 0x103ebac7. +// +// Solidity: function restakeBeaconChainETH(address podOwner, uint256 amountWei) returns() +func (_ContractEigenPodManager *ContractEigenPodManagerTransactor) RestakeBeaconChainETH(opts *bind.TransactOpts, podOwner common.Address, amountWei *big.Int) (*types.Transaction, error) { + return _ContractEigenPodManager.contract.Transact(opts, "restakeBeaconChainETH", podOwner, amountWei) +} + +// RestakeBeaconChainETH is a paid mutator transaction binding the contract method 0x103ebac7. +// +// Solidity: function restakeBeaconChainETH(address podOwner, uint256 amountWei) returns() +func (_ContractEigenPodManager *ContractEigenPodManagerSession) RestakeBeaconChainETH(podOwner common.Address, amountWei *big.Int) (*types.Transaction, error) { + return _ContractEigenPodManager.Contract.RestakeBeaconChainETH(&_ContractEigenPodManager.TransactOpts, podOwner, amountWei) +} + +// RestakeBeaconChainETH is a paid mutator transaction binding the contract method 0x103ebac7. +// +// Solidity: function restakeBeaconChainETH(address podOwner, uint256 amountWei) returns() +func (_ContractEigenPodManager *ContractEigenPodManagerTransactorSession) RestakeBeaconChainETH(podOwner common.Address, amountWei *big.Int) (*types.Transaction, error) { + return _ContractEigenPodManager.Contract.RestakeBeaconChainETH(&_ContractEigenPodManager.TransactOpts, podOwner, amountWei) +} + +// SetMaxPods is a paid mutator transaction binding the contract method 0x0cf2686d. +// +// Solidity: function setMaxPods(uint256 newMaxPods) returns() +func (_ContractEigenPodManager *ContractEigenPodManagerTransactor) SetMaxPods(opts *bind.TransactOpts, newMaxPods *big.Int) (*types.Transaction, error) { + return _ContractEigenPodManager.contract.Transact(opts, "setMaxPods", newMaxPods) +} + +// SetMaxPods is a paid mutator transaction binding the contract method 0x0cf2686d. +// +// Solidity: function setMaxPods(uint256 newMaxPods) returns() +func (_ContractEigenPodManager *ContractEigenPodManagerSession) SetMaxPods(newMaxPods *big.Int) (*types.Transaction, error) { + return _ContractEigenPodManager.Contract.SetMaxPods(&_ContractEigenPodManager.TransactOpts, newMaxPods) +} + +// SetMaxPods is a paid mutator transaction binding the contract method 0x0cf2686d. +// +// Solidity: function setMaxPods(uint256 newMaxPods) returns() +func (_ContractEigenPodManager *ContractEigenPodManagerTransactorSession) SetMaxPods(newMaxPods *big.Int) (*types.Transaction, error) { + return _ContractEigenPodManager.Contract.SetMaxPods(&_ContractEigenPodManager.TransactOpts, newMaxPods) +} + +// SetPauserRegistry is a paid mutator transaction binding the contract method 0x10d67a2f. +// +// Solidity: function setPauserRegistry(address newPauserRegistry) returns() +func (_ContractEigenPodManager *ContractEigenPodManagerTransactor) SetPauserRegistry(opts *bind.TransactOpts, newPauserRegistry common.Address) (*types.Transaction, error) { + return _ContractEigenPodManager.contract.Transact(opts, "setPauserRegistry", newPauserRegistry) +} + +// SetPauserRegistry is a paid mutator transaction binding the contract method 0x10d67a2f. +// +// Solidity: function setPauserRegistry(address newPauserRegistry) returns() +func (_ContractEigenPodManager *ContractEigenPodManagerSession) SetPauserRegistry(newPauserRegistry common.Address) (*types.Transaction, error) { + return _ContractEigenPodManager.Contract.SetPauserRegistry(&_ContractEigenPodManager.TransactOpts, newPauserRegistry) +} + +// SetPauserRegistry is a paid mutator transaction binding the contract method 0x10d67a2f. +// +// Solidity: function setPauserRegistry(address newPauserRegistry) returns() +func (_ContractEigenPodManager *ContractEigenPodManagerTransactorSession) SetPauserRegistry(newPauserRegistry common.Address) (*types.Transaction, error) { + return _ContractEigenPodManager.Contract.SetPauserRegistry(&_ContractEigenPodManager.TransactOpts, newPauserRegistry) +} + +// Stake is a paid mutator transaction binding the contract method 0x9b4e4634. +// +// Solidity: function stake(bytes pubkey, bytes signature, bytes32 depositDataRoot) payable returns() +func (_ContractEigenPodManager *ContractEigenPodManagerTransactor) Stake(opts *bind.TransactOpts, pubkey []byte, signature []byte, depositDataRoot [32]byte) (*types.Transaction, error) { + return _ContractEigenPodManager.contract.Transact(opts, "stake", pubkey, signature, depositDataRoot) +} + +// Stake is a paid mutator transaction binding the contract method 0x9b4e4634. +// +// Solidity: function stake(bytes pubkey, bytes signature, bytes32 depositDataRoot) payable returns() +func (_ContractEigenPodManager *ContractEigenPodManagerSession) Stake(pubkey []byte, signature []byte, depositDataRoot [32]byte) (*types.Transaction, error) { + return _ContractEigenPodManager.Contract.Stake(&_ContractEigenPodManager.TransactOpts, pubkey, signature, depositDataRoot) +} + +// Stake is a paid mutator transaction binding the contract method 0x9b4e4634. +// +// Solidity: function stake(bytes pubkey, bytes signature, bytes32 depositDataRoot) payable returns() +func (_ContractEigenPodManager *ContractEigenPodManagerTransactorSession) Stake(pubkey []byte, signature []byte, depositDataRoot [32]byte) (*types.Transaction, error) { + return _ContractEigenPodManager.Contract.Stake(&_ContractEigenPodManager.TransactOpts, pubkey, signature, depositDataRoot) +} + +// TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b. +// +// Solidity: function transferOwnership(address newOwner) returns() +func (_ContractEigenPodManager *ContractEigenPodManagerTransactor) TransferOwnership(opts *bind.TransactOpts, newOwner common.Address) (*types.Transaction, error) { + return _ContractEigenPodManager.contract.Transact(opts, "transferOwnership", newOwner) +} + +// TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b. +// +// Solidity: function transferOwnership(address newOwner) returns() +func (_ContractEigenPodManager *ContractEigenPodManagerSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) { + return _ContractEigenPodManager.Contract.TransferOwnership(&_ContractEigenPodManager.TransactOpts, newOwner) +} + +// TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b. +// +// Solidity: function transferOwnership(address newOwner) returns() +func (_ContractEigenPodManager *ContractEigenPodManagerTransactorSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) { + return _ContractEigenPodManager.Contract.TransferOwnership(&_ContractEigenPodManager.TransactOpts, newOwner) +} + +// Unpause is a paid mutator transaction binding the contract method 0xfabc1cbc. +// +// Solidity: function unpause(uint256 newPausedStatus) returns() +func (_ContractEigenPodManager *ContractEigenPodManagerTransactor) Unpause(opts *bind.TransactOpts, newPausedStatus *big.Int) (*types.Transaction, error) { + return _ContractEigenPodManager.contract.Transact(opts, "unpause", newPausedStatus) +} + +// Unpause is a paid mutator transaction binding the contract method 0xfabc1cbc. +// +// Solidity: function unpause(uint256 newPausedStatus) returns() +func (_ContractEigenPodManager *ContractEigenPodManagerSession) Unpause(newPausedStatus *big.Int) (*types.Transaction, error) { + return _ContractEigenPodManager.Contract.Unpause(&_ContractEigenPodManager.TransactOpts, newPausedStatus) +} + +// Unpause is a paid mutator transaction binding the contract method 0xfabc1cbc. +// +// Solidity: function unpause(uint256 newPausedStatus) returns() +func (_ContractEigenPodManager *ContractEigenPodManagerTransactorSession) Unpause(newPausedStatus *big.Int) (*types.Transaction, error) { + return _ContractEigenPodManager.Contract.Unpause(&_ContractEigenPodManager.TransactOpts, newPausedStatus) +} + +// UpdateBeaconChainOracle is a paid mutator transaction binding the contract method 0xc1de3aef. +// +// Solidity: function updateBeaconChainOracle(address newBeaconChainOracle) returns() +func (_ContractEigenPodManager *ContractEigenPodManagerTransactor) UpdateBeaconChainOracle(opts *bind.TransactOpts, newBeaconChainOracle common.Address) (*types.Transaction, error) { + return _ContractEigenPodManager.contract.Transact(opts, "updateBeaconChainOracle", newBeaconChainOracle) +} + +// UpdateBeaconChainOracle is a paid mutator transaction binding the contract method 0xc1de3aef. +// +// Solidity: function updateBeaconChainOracle(address newBeaconChainOracle) returns() +func (_ContractEigenPodManager *ContractEigenPodManagerSession) UpdateBeaconChainOracle(newBeaconChainOracle common.Address) (*types.Transaction, error) { + return _ContractEigenPodManager.Contract.UpdateBeaconChainOracle(&_ContractEigenPodManager.TransactOpts, newBeaconChainOracle) +} + +// UpdateBeaconChainOracle is a paid mutator transaction binding the contract method 0xc1de3aef. +// +// Solidity: function updateBeaconChainOracle(address newBeaconChainOracle) returns() +func (_ContractEigenPodManager *ContractEigenPodManagerTransactorSession) UpdateBeaconChainOracle(newBeaconChainOracle common.Address) (*types.Transaction, error) { + return _ContractEigenPodManager.Contract.UpdateBeaconChainOracle(&_ContractEigenPodManager.TransactOpts, newBeaconChainOracle) +} + +// ContractEigenPodManagerBeaconChainETHDepositedIterator is returned from FilterBeaconChainETHDeposited and is used to iterate over the raw logs and unpacked data for BeaconChainETHDeposited events raised by the ContractEigenPodManager contract. +type ContractEigenPodManagerBeaconChainETHDepositedIterator struct { + Event *ContractEigenPodManagerBeaconChainETHDeposited // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ContractEigenPodManagerBeaconChainETHDepositedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ContractEigenPodManagerBeaconChainETHDeposited) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ContractEigenPodManagerBeaconChainETHDeposited) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ContractEigenPodManagerBeaconChainETHDepositedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ContractEigenPodManagerBeaconChainETHDepositedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ContractEigenPodManagerBeaconChainETHDeposited represents a BeaconChainETHDeposited event raised by the ContractEigenPodManager contract. +type ContractEigenPodManagerBeaconChainETHDeposited struct { + PodOwner common.Address + Amount *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterBeaconChainETHDeposited is a free log retrieval operation binding the contract event 0x35a85cabc603f48abb2b71d9fbd8adea7c449d7f0be900ae7a2986ea369c3d0d. +// +// Solidity: event BeaconChainETHDeposited(address indexed podOwner, uint256 amount) +func (_ContractEigenPodManager *ContractEigenPodManagerFilterer) FilterBeaconChainETHDeposited(opts *bind.FilterOpts, podOwner []common.Address) (*ContractEigenPodManagerBeaconChainETHDepositedIterator, error) { + + var podOwnerRule []interface{} + for _, podOwnerItem := range podOwner { + podOwnerRule = append(podOwnerRule, podOwnerItem) + } + + logs, sub, err := _ContractEigenPodManager.contract.FilterLogs(opts, "BeaconChainETHDeposited", podOwnerRule) + if err != nil { + return nil, err + } + return &ContractEigenPodManagerBeaconChainETHDepositedIterator{contract: _ContractEigenPodManager.contract, event: "BeaconChainETHDeposited", logs: logs, sub: sub}, nil +} + +// WatchBeaconChainETHDeposited is a free log subscription operation binding the contract event 0x35a85cabc603f48abb2b71d9fbd8adea7c449d7f0be900ae7a2986ea369c3d0d. +// +// Solidity: event BeaconChainETHDeposited(address indexed podOwner, uint256 amount) +func (_ContractEigenPodManager *ContractEigenPodManagerFilterer) WatchBeaconChainETHDeposited(opts *bind.WatchOpts, sink chan<- *ContractEigenPodManagerBeaconChainETHDeposited, podOwner []common.Address) (event.Subscription, error) { + + var podOwnerRule []interface{} + for _, podOwnerItem := range podOwner { + podOwnerRule = append(podOwnerRule, podOwnerItem) + } + + logs, sub, err := _ContractEigenPodManager.contract.WatchLogs(opts, "BeaconChainETHDeposited", podOwnerRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ContractEigenPodManagerBeaconChainETHDeposited) + if err := _ContractEigenPodManager.contract.UnpackLog(event, "BeaconChainETHDeposited", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseBeaconChainETHDeposited is a log parse operation binding the contract event 0x35a85cabc603f48abb2b71d9fbd8adea7c449d7f0be900ae7a2986ea369c3d0d. +// +// Solidity: event BeaconChainETHDeposited(address indexed podOwner, uint256 amount) +func (_ContractEigenPodManager *ContractEigenPodManagerFilterer) ParseBeaconChainETHDeposited(log types.Log) (*ContractEigenPodManagerBeaconChainETHDeposited, error) { + event := new(ContractEigenPodManagerBeaconChainETHDeposited) + if err := _ContractEigenPodManager.contract.UnpackLog(event, "BeaconChainETHDeposited", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ContractEigenPodManagerBeaconChainETHWithdrawalCompletedIterator is returned from FilterBeaconChainETHWithdrawalCompleted and is used to iterate over the raw logs and unpacked data for BeaconChainETHWithdrawalCompleted events raised by the ContractEigenPodManager contract. +type ContractEigenPodManagerBeaconChainETHWithdrawalCompletedIterator struct { + Event *ContractEigenPodManagerBeaconChainETHWithdrawalCompleted // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ContractEigenPodManagerBeaconChainETHWithdrawalCompletedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ContractEigenPodManagerBeaconChainETHWithdrawalCompleted) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ContractEigenPodManagerBeaconChainETHWithdrawalCompleted) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ContractEigenPodManagerBeaconChainETHWithdrawalCompletedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ContractEigenPodManagerBeaconChainETHWithdrawalCompletedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ContractEigenPodManagerBeaconChainETHWithdrawalCompleted represents a BeaconChainETHWithdrawalCompleted event raised by the ContractEigenPodManager contract. +type ContractEigenPodManagerBeaconChainETHWithdrawalCompleted struct { + PodOwner common.Address + Shares *big.Int + Nonce *big.Int + DelegatedAddress common.Address + Withdrawer common.Address + WithdrawalRoot [32]byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterBeaconChainETHWithdrawalCompleted is a free log retrieval operation binding the contract event 0xa6bab1d55a361fcea2eee2bc9491e4f01e6cf333df03c9c4f2c144466429f7d6. +// +// Solidity: event BeaconChainETHWithdrawalCompleted(address indexed podOwner, uint256 shares, uint96 nonce, address delegatedAddress, address withdrawer, bytes32 withdrawalRoot) +func (_ContractEigenPodManager *ContractEigenPodManagerFilterer) FilterBeaconChainETHWithdrawalCompleted(opts *bind.FilterOpts, podOwner []common.Address) (*ContractEigenPodManagerBeaconChainETHWithdrawalCompletedIterator, error) { + + var podOwnerRule []interface{} + for _, podOwnerItem := range podOwner { + podOwnerRule = append(podOwnerRule, podOwnerItem) + } + + logs, sub, err := _ContractEigenPodManager.contract.FilterLogs(opts, "BeaconChainETHWithdrawalCompleted", podOwnerRule) + if err != nil { + return nil, err + } + return &ContractEigenPodManagerBeaconChainETHWithdrawalCompletedIterator{contract: _ContractEigenPodManager.contract, event: "BeaconChainETHWithdrawalCompleted", logs: logs, sub: sub}, nil +} + +// WatchBeaconChainETHWithdrawalCompleted is a free log subscription operation binding the contract event 0xa6bab1d55a361fcea2eee2bc9491e4f01e6cf333df03c9c4f2c144466429f7d6. +// +// Solidity: event BeaconChainETHWithdrawalCompleted(address indexed podOwner, uint256 shares, uint96 nonce, address delegatedAddress, address withdrawer, bytes32 withdrawalRoot) +func (_ContractEigenPodManager *ContractEigenPodManagerFilterer) WatchBeaconChainETHWithdrawalCompleted(opts *bind.WatchOpts, sink chan<- *ContractEigenPodManagerBeaconChainETHWithdrawalCompleted, podOwner []common.Address) (event.Subscription, error) { + + var podOwnerRule []interface{} + for _, podOwnerItem := range podOwner { + podOwnerRule = append(podOwnerRule, podOwnerItem) + } + + logs, sub, err := _ContractEigenPodManager.contract.WatchLogs(opts, "BeaconChainETHWithdrawalCompleted", podOwnerRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ContractEigenPodManagerBeaconChainETHWithdrawalCompleted) + if err := _ContractEigenPodManager.contract.UnpackLog(event, "BeaconChainETHWithdrawalCompleted", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseBeaconChainETHWithdrawalCompleted is a log parse operation binding the contract event 0xa6bab1d55a361fcea2eee2bc9491e4f01e6cf333df03c9c4f2c144466429f7d6. +// +// Solidity: event BeaconChainETHWithdrawalCompleted(address indexed podOwner, uint256 shares, uint96 nonce, address delegatedAddress, address withdrawer, bytes32 withdrawalRoot) +func (_ContractEigenPodManager *ContractEigenPodManagerFilterer) ParseBeaconChainETHWithdrawalCompleted(log types.Log) (*ContractEigenPodManagerBeaconChainETHWithdrawalCompleted, error) { + event := new(ContractEigenPodManagerBeaconChainETHWithdrawalCompleted) + if err := _ContractEigenPodManager.contract.UnpackLog(event, "BeaconChainETHWithdrawalCompleted", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ContractEigenPodManagerBeaconChainETHWithdrawalQueuedIterator is returned from FilterBeaconChainETHWithdrawalQueued and is used to iterate over the raw logs and unpacked data for BeaconChainETHWithdrawalQueued events raised by the ContractEigenPodManager contract. +type ContractEigenPodManagerBeaconChainETHWithdrawalQueuedIterator struct { + Event *ContractEigenPodManagerBeaconChainETHWithdrawalQueued // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ContractEigenPodManagerBeaconChainETHWithdrawalQueuedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ContractEigenPodManagerBeaconChainETHWithdrawalQueued) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ContractEigenPodManagerBeaconChainETHWithdrawalQueued) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ContractEigenPodManagerBeaconChainETHWithdrawalQueuedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ContractEigenPodManagerBeaconChainETHWithdrawalQueuedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ContractEigenPodManagerBeaconChainETHWithdrawalQueued represents a BeaconChainETHWithdrawalQueued event raised by the ContractEigenPodManager contract. +type ContractEigenPodManagerBeaconChainETHWithdrawalQueued struct { + PodOwner common.Address + Shares *big.Int + Nonce *big.Int + DelegatedAddress common.Address + Withdrawer common.Address + WithdrawalRoot [32]byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterBeaconChainETHWithdrawalQueued is a free log retrieval operation binding the contract event 0xb9feff07af9d7fca5ed49271450a7bb3c0e48198985896811a55345b351404dd. +// +// Solidity: event BeaconChainETHWithdrawalQueued(address indexed podOwner, uint256 shares, uint96 nonce, address delegatedAddress, address withdrawer, bytes32 withdrawalRoot) +func (_ContractEigenPodManager *ContractEigenPodManagerFilterer) FilterBeaconChainETHWithdrawalQueued(opts *bind.FilterOpts, podOwner []common.Address) (*ContractEigenPodManagerBeaconChainETHWithdrawalQueuedIterator, error) { + + var podOwnerRule []interface{} + for _, podOwnerItem := range podOwner { + podOwnerRule = append(podOwnerRule, podOwnerItem) + } + + logs, sub, err := _ContractEigenPodManager.contract.FilterLogs(opts, "BeaconChainETHWithdrawalQueued", podOwnerRule) + if err != nil { + return nil, err + } + return &ContractEigenPodManagerBeaconChainETHWithdrawalQueuedIterator{contract: _ContractEigenPodManager.contract, event: "BeaconChainETHWithdrawalQueued", logs: logs, sub: sub}, nil +} + +// WatchBeaconChainETHWithdrawalQueued is a free log subscription operation binding the contract event 0xb9feff07af9d7fca5ed49271450a7bb3c0e48198985896811a55345b351404dd. +// +// Solidity: event BeaconChainETHWithdrawalQueued(address indexed podOwner, uint256 shares, uint96 nonce, address delegatedAddress, address withdrawer, bytes32 withdrawalRoot) +func (_ContractEigenPodManager *ContractEigenPodManagerFilterer) WatchBeaconChainETHWithdrawalQueued(opts *bind.WatchOpts, sink chan<- *ContractEigenPodManagerBeaconChainETHWithdrawalQueued, podOwner []common.Address) (event.Subscription, error) { + + var podOwnerRule []interface{} + for _, podOwnerItem := range podOwner { + podOwnerRule = append(podOwnerRule, podOwnerItem) + } + + logs, sub, err := _ContractEigenPodManager.contract.WatchLogs(opts, "BeaconChainETHWithdrawalQueued", podOwnerRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ContractEigenPodManagerBeaconChainETHWithdrawalQueued) + if err := _ContractEigenPodManager.contract.UnpackLog(event, "BeaconChainETHWithdrawalQueued", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseBeaconChainETHWithdrawalQueued is a log parse operation binding the contract event 0xb9feff07af9d7fca5ed49271450a7bb3c0e48198985896811a55345b351404dd. +// +// Solidity: event BeaconChainETHWithdrawalQueued(address indexed podOwner, uint256 shares, uint96 nonce, address delegatedAddress, address withdrawer, bytes32 withdrawalRoot) +func (_ContractEigenPodManager *ContractEigenPodManagerFilterer) ParseBeaconChainETHWithdrawalQueued(log types.Log) (*ContractEigenPodManagerBeaconChainETHWithdrawalQueued, error) { + event := new(ContractEigenPodManagerBeaconChainETHWithdrawalQueued) + if err := _ContractEigenPodManager.contract.UnpackLog(event, "BeaconChainETHWithdrawalQueued", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ContractEigenPodManagerBeaconOracleUpdatedIterator is returned from FilterBeaconOracleUpdated and is used to iterate over the raw logs and unpacked data for BeaconOracleUpdated events raised by the ContractEigenPodManager contract. +type ContractEigenPodManagerBeaconOracleUpdatedIterator struct { + Event *ContractEigenPodManagerBeaconOracleUpdated // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ContractEigenPodManagerBeaconOracleUpdatedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ContractEigenPodManagerBeaconOracleUpdated) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ContractEigenPodManagerBeaconOracleUpdated) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ContractEigenPodManagerBeaconOracleUpdatedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ContractEigenPodManagerBeaconOracleUpdatedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ContractEigenPodManagerBeaconOracleUpdated represents a BeaconOracleUpdated event raised by the ContractEigenPodManager contract. +type ContractEigenPodManagerBeaconOracleUpdated struct { + NewOracleAddress common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterBeaconOracleUpdated is a free log retrieval operation binding the contract event 0x08f0470754946ccfbb446ff7fd2d6ae6af1bbdae19f85794c0cc5ed5e8ceb4f6. +// +// Solidity: event BeaconOracleUpdated(address indexed newOracleAddress) +func (_ContractEigenPodManager *ContractEigenPodManagerFilterer) FilterBeaconOracleUpdated(opts *bind.FilterOpts, newOracleAddress []common.Address) (*ContractEigenPodManagerBeaconOracleUpdatedIterator, error) { + + var newOracleAddressRule []interface{} + for _, newOracleAddressItem := range newOracleAddress { + newOracleAddressRule = append(newOracleAddressRule, newOracleAddressItem) + } + + logs, sub, err := _ContractEigenPodManager.contract.FilterLogs(opts, "BeaconOracleUpdated", newOracleAddressRule) + if err != nil { + return nil, err + } + return &ContractEigenPodManagerBeaconOracleUpdatedIterator{contract: _ContractEigenPodManager.contract, event: "BeaconOracleUpdated", logs: logs, sub: sub}, nil +} + +// WatchBeaconOracleUpdated is a free log subscription operation binding the contract event 0x08f0470754946ccfbb446ff7fd2d6ae6af1bbdae19f85794c0cc5ed5e8ceb4f6. +// +// Solidity: event BeaconOracleUpdated(address indexed newOracleAddress) +func (_ContractEigenPodManager *ContractEigenPodManagerFilterer) WatchBeaconOracleUpdated(opts *bind.WatchOpts, sink chan<- *ContractEigenPodManagerBeaconOracleUpdated, newOracleAddress []common.Address) (event.Subscription, error) { + + var newOracleAddressRule []interface{} + for _, newOracleAddressItem := range newOracleAddress { + newOracleAddressRule = append(newOracleAddressRule, newOracleAddressItem) + } + + logs, sub, err := _ContractEigenPodManager.contract.WatchLogs(opts, "BeaconOracleUpdated", newOracleAddressRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ContractEigenPodManagerBeaconOracleUpdated) + if err := _ContractEigenPodManager.contract.UnpackLog(event, "BeaconOracleUpdated", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseBeaconOracleUpdated is a log parse operation binding the contract event 0x08f0470754946ccfbb446ff7fd2d6ae6af1bbdae19f85794c0cc5ed5e8ceb4f6. +// +// Solidity: event BeaconOracleUpdated(address indexed newOracleAddress) +func (_ContractEigenPodManager *ContractEigenPodManagerFilterer) ParseBeaconOracleUpdated(log types.Log) (*ContractEigenPodManagerBeaconOracleUpdated, error) { + event := new(ContractEigenPodManagerBeaconOracleUpdated) + if err := _ContractEigenPodManager.contract.UnpackLog(event, "BeaconOracleUpdated", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ContractEigenPodManagerInitializedIterator is returned from FilterInitialized and is used to iterate over the raw logs and unpacked data for Initialized events raised by the ContractEigenPodManager contract. +type ContractEigenPodManagerInitializedIterator struct { + Event *ContractEigenPodManagerInitialized // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ContractEigenPodManagerInitializedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ContractEigenPodManagerInitialized) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ContractEigenPodManagerInitialized) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ContractEigenPodManagerInitializedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ContractEigenPodManagerInitializedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ContractEigenPodManagerInitialized represents a Initialized event raised by the ContractEigenPodManager contract. +type ContractEigenPodManagerInitialized struct { + Version uint8 + Raw types.Log // Blockchain specific contextual infos +} + +// FilterInitialized is a free log retrieval operation binding the contract event 0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498. +// +// Solidity: event Initialized(uint8 version) +func (_ContractEigenPodManager *ContractEigenPodManagerFilterer) FilterInitialized(opts *bind.FilterOpts) (*ContractEigenPodManagerInitializedIterator, error) { + + logs, sub, err := _ContractEigenPodManager.contract.FilterLogs(opts, "Initialized") + if err != nil { + return nil, err + } + return &ContractEigenPodManagerInitializedIterator{contract: _ContractEigenPodManager.contract, event: "Initialized", logs: logs, sub: sub}, nil +} + +// WatchInitialized is a free log subscription operation binding the contract event 0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498. +// +// Solidity: event Initialized(uint8 version) +func (_ContractEigenPodManager *ContractEigenPodManagerFilterer) WatchInitialized(opts *bind.WatchOpts, sink chan<- *ContractEigenPodManagerInitialized) (event.Subscription, error) { + + logs, sub, err := _ContractEigenPodManager.contract.WatchLogs(opts, "Initialized") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ContractEigenPodManagerInitialized) + if err := _ContractEigenPodManager.contract.UnpackLog(event, "Initialized", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseInitialized is a log parse operation binding the contract event 0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498. +// +// Solidity: event Initialized(uint8 version) +func (_ContractEigenPodManager *ContractEigenPodManagerFilterer) ParseInitialized(log types.Log) (*ContractEigenPodManagerInitialized, error) { + event := new(ContractEigenPodManagerInitialized) + if err := _ContractEigenPodManager.contract.UnpackLog(event, "Initialized", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ContractEigenPodManagerMaxPodsUpdatedIterator is returned from FilterMaxPodsUpdated and is used to iterate over the raw logs and unpacked data for MaxPodsUpdated events raised by the ContractEigenPodManager contract. +type ContractEigenPodManagerMaxPodsUpdatedIterator struct { + Event *ContractEigenPodManagerMaxPodsUpdated // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ContractEigenPodManagerMaxPodsUpdatedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ContractEigenPodManagerMaxPodsUpdated) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ContractEigenPodManagerMaxPodsUpdated) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ContractEigenPodManagerMaxPodsUpdatedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ContractEigenPodManagerMaxPodsUpdatedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ContractEigenPodManagerMaxPodsUpdated represents a MaxPodsUpdated event raised by the ContractEigenPodManager contract. +type ContractEigenPodManagerMaxPodsUpdated struct { + PreviousValue *big.Int + NewValue *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterMaxPodsUpdated is a free log retrieval operation binding the contract event 0x4e65c41a3597bda732ca64980235cf51494171d5853998763fb05db45afaacb3. +// +// Solidity: event MaxPodsUpdated(uint256 previousValue, uint256 newValue) +func (_ContractEigenPodManager *ContractEigenPodManagerFilterer) FilterMaxPodsUpdated(opts *bind.FilterOpts) (*ContractEigenPodManagerMaxPodsUpdatedIterator, error) { + + logs, sub, err := _ContractEigenPodManager.contract.FilterLogs(opts, "MaxPodsUpdated") + if err != nil { + return nil, err + } + return &ContractEigenPodManagerMaxPodsUpdatedIterator{contract: _ContractEigenPodManager.contract, event: "MaxPodsUpdated", logs: logs, sub: sub}, nil +} + +// WatchMaxPodsUpdated is a free log subscription operation binding the contract event 0x4e65c41a3597bda732ca64980235cf51494171d5853998763fb05db45afaacb3. +// +// Solidity: event MaxPodsUpdated(uint256 previousValue, uint256 newValue) +func (_ContractEigenPodManager *ContractEigenPodManagerFilterer) WatchMaxPodsUpdated(opts *bind.WatchOpts, sink chan<- *ContractEigenPodManagerMaxPodsUpdated) (event.Subscription, error) { + + logs, sub, err := _ContractEigenPodManager.contract.WatchLogs(opts, "MaxPodsUpdated") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ContractEigenPodManagerMaxPodsUpdated) + if err := _ContractEigenPodManager.contract.UnpackLog(event, "MaxPodsUpdated", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseMaxPodsUpdated is a log parse operation binding the contract event 0x4e65c41a3597bda732ca64980235cf51494171d5853998763fb05db45afaacb3. +// +// Solidity: event MaxPodsUpdated(uint256 previousValue, uint256 newValue) +func (_ContractEigenPodManager *ContractEigenPodManagerFilterer) ParseMaxPodsUpdated(log types.Log) (*ContractEigenPodManagerMaxPodsUpdated, error) { + event := new(ContractEigenPodManagerMaxPodsUpdated) + if err := _ContractEigenPodManager.contract.UnpackLog(event, "MaxPodsUpdated", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ContractEigenPodManagerOwnershipTransferredIterator is returned from FilterOwnershipTransferred and is used to iterate over the raw logs and unpacked data for OwnershipTransferred events raised by the ContractEigenPodManager contract. +type ContractEigenPodManagerOwnershipTransferredIterator struct { + Event *ContractEigenPodManagerOwnershipTransferred // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ContractEigenPodManagerOwnershipTransferredIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ContractEigenPodManagerOwnershipTransferred) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ContractEigenPodManagerOwnershipTransferred) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ContractEigenPodManagerOwnershipTransferredIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ContractEigenPodManagerOwnershipTransferredIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ContractEigenPodManagerOwnershipTransferred represents a OwnershipTransferred event raised by the ContractEigenPodManager contract. +type ContractEigenPodManagerOwnershipTransferred struct { + PreviousOwner common.Address + NewOwner common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterOwnershipTransferred is a free log retrieval operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0. +// +// Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner) +func (_ContractEigenPodManager *ContractEigenPodManagerFilterer) FilterOwnershipTransferred(opts *bind.FilterOpts, previousOwner []common.Address, newOwner []common.Address) (*ContractEigenPodManagerOwnershipTransferredIterator, error) { + + var previousOwnerRule []interface{} + for _, previousOwnerItem := range previousOwner { + previousOwnerRule = append(previousOwnerRule, previousOwnerItem) + } + var newOwnerRule []interface{} + for _, newOwnerItem := range newOwner { + newOwnerRule = append(newOwnerRule, newOwnerItem) + } + + logs, sub, err := _ContractEigenPodManager.contract.FilterLogs(opts, "OwnershipTransferred", previousOwnerRule, newOwnerRule) + if err != nil { + return nil, err + } + return &ContractEigenPodManagerOwnershipTransferredIterator{contract: _ContractEigenPodManager.contract, event: "OwnershipTransferred", logs: logs, sub: sub}, nil +} + +// WatchOwnershipTransferred is a free log subscription operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0. +// +// Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner) +func (_ContractEigenPodManager *ContractEigenPodManagerFilterer) WatchOwnershipTransferred(opts *bind.WatchOpts, sink chan<- *ContractEigenPodManagerOwnershipTransferred, previousOwner []common.Address, newOwner []common.Address) (event.Subscription, error) { + + var previousOwnerRule []interface{} + for _, previousOwnerItem := range previousOwner { + previousOwnerRule = append(previousOwnerRule, previousOwnerItem) + } + var newOwnerRule []interface{} + for _, newOwnerItem := range newOwner { + newOwnerRule = append(newOwnerRule, newOwnerItem) + } + + logs, sub, err := _ContractEigenPodManager.contract.WatchLogs(opts, "OwnershipTransferred", previousOwnerRule, newOwnerRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ContractEigenPodManagerOwnershipTransferred) + if err := _ContractEigenPodManager.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseOwnershipTransferred is a log parse operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0. +// +// Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner) +func (_ContractEigenPodManager *ContractEigenPodManagerFilterer) ParseOwnershipTransferred(log types.Log) (*ContractEigenPodManagerOwnershipTransferred, error) { + event := new(ContractEigenPodManagerOwnershipTransferred) + if err := _ContractEigenPodManager.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ContractEigenPodManagerPausedIterator is returned from FilterPaused and is used to iterate over the raw logs and unpacked data for Paused events raised by the ContractEigenPodManager contract. +type ContractEigenPodManagerPausedIterator struct { + Event *ContractEigenPodManagerPaused // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ContractEigenPodManagerPausedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ContractEigenPodManagerPaused) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ContractEigenPodManagerPaused) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ContractEigenPodManagerPausedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ContractEigenPodManagerPausedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ContractEigenPodManagerPaused represents a Paused event raised by the ContractEigenPodManager contract. +type ContractEigenPodManagerPaused struct { + Account common.Address + NewPausedStatus *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterPaused is a free log retrieval operation binding the contract event 0xab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d. +// +// Solidity: event Paused(address indexed account, uint256 newPausedStatus) +func (_ContractEigenPodManager *ContractEigenPodManagerFilterer) FilterPaused(opts *bind.FilterOpts, account []common.Address) (*ContractEigenPodManagerPausedIterator, error) { + + var accountRule []interface{} + for _, accountItem := range account { + accountRule = append(accountRule, accountItem) + } + + logs, sub, err := _ContractEigenPodManager.contract.FilterLogs(opts, "Paused", accountRule) + if err != nil { + return nil, err + } + return &ContractEigenPodManagerPausedIterator{contract: _ContractEigenPodManager.contract, event: "Paused", logs: logs, sub: sub}, nil +} + +// WatchPaused is a free log subscription operation binding the contract event 0xab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d. +// +// Solidity: event Paused(address indexed account, uint256 newPausedStatus) +func (_ContractEigenPodManager *ContractEigenPodManagerFilterer) WatchPaused(opts *bind.WatchOpts, sink chan<- *ContractEigenPodManagerPaused, account []common.Address) (event.Subscription, error) { + + var accountRule []interface{} + for _, accountItem := range account { + accountRule = append(accountRule, accountItem) + } + + logs, sub, err := _ContractEigenPodManager.contract.WatchLogs(opts, "Paused", accountRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ContractEigenPodManagerPaused) + if err := _ContractEigenPodManager.contract.UnpackLog(event, "Paused", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParsePaused is a log parse operation binding the contract event 0xab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d. +// +// Solidity: event Paused(address indexed account, uint256 newPausedStatus) +func (_ContractEigenPodManager *ContractEigenPodManagerFilterer) ParsePaused(log types.Log) (*ContractEigenPodManagerPaused, error) { + event := new(ContractEigenPodManagerPaused) + if err := _ContractEigenPodManager.contract.UnpackLog(event, "Paused", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ContractEigenPodManagerPauserRegistrySetIterator is returned from FilterPauserRegistrySet and is used to iterate over the raw logs and unpacked data for PauserRegistrySet events raised by the ContractEigenPodManager contract. +type ContractEigenPodManagerPauserRegistrySetIterator struct { + Event *ContractEigenPodManagerPauserRegistrySet // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ContractEigenPodManagerPauserRegistrySetIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ContractEigenPodManagerPauserRegistrySet) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ContractEigenPodManagerPauserRegistrySet) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ContractEigenPodManagerPauserRegistrySetIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ContractEigenPodManagerPauserRegistrySetIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ContractEigenPodManagerPauserRegistrySet represents a PauserRegistrySet event raised by the ContractEigenPodManager contract. +type ContractEigenPodManagerPauserRegistrySet struct { + PauserRegistry common.Address + NewPauserRegistry common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterPauserRegistrySet is a free log retrieval operation binding the contract event 0x6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6. +// +// Solidity: event PauserRegistrySet(address pauserRegistry, address newPauserRegistry) +func (_ContractEigenPodManager *ContractEigenPodManagerFilterer) FilterPauserRegistrySet(opts *bind.FilterOpts) (*ContractEigenPodManagerPauserRegistrySetIterator, error) { + + logs, sub, err := _ContractEigenPodManager.contract.FilterLogs(opts, "PauserRegistrySet") + if err != nil { + return nil, err + } + return &ContractEigenPodManagerPauserRegistrySetIterator{contract: _ContractEigenPodManager.contract, event: "PauserRegistrySet", logs: logs, sub: sub}, nil +} + +// WatchPauserRegistrySet is a free log subscription operation binding the contract event 0x6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6. +// +// Solidity: event PauserRegistrySet(address pauserRegistry, address newPauserRegistry) +func (_ContractEigenPodManager *ContractEigenPodManagerFilterer) WatchPauserRegistrySet(opts *bind.WatchOpts, sink chan<- *ContractEigenPodManagerPauserRegistrySet) (event.Subscription, error) { + + logs, sub, err := _ContractEigenPodManager.contract.WatchLogs(opts, "PauserRegistrySet") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ContractEigenPodManagerPauserRegistrySet) + if err := _ContractEigenPodManager.contract.UnpackLog(event, "PauserRegistrySet", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParsePauserRegistrySet is a log parse operation binding the contract event 0x6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6. +// +// Solidity: event PauserRegistrySet(address pauserRegistry, address newPauserRegistry) +func (_ContractEigenPodManager *ContractEigenPodManagerFilterer) ParsePauserRegistrySet(log types.Log) (*ContractEigenPodManagerPauserRegistrySet, error) { + event := new(ContractEigenPodManagerPauserRegistrySet) + if err := _ContractEigenPodManager.contract.UnpackLog(event, "PauserRegistrySet", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ContractEigenPodManagerPodDeployedIterator is returned from FilterPodDeployed and is used to iterate over the raw logs and unpacked data for PodDeployed events raised by the ContractEigenPodManager contract. +type ContractEigenPodManagerPodDeployedIterator struct { + Event *ContractEigenPodManagerPodDeployed // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ContractEigenPodManagerPodDeployedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ContractEigenPodManagerPodDeployed) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ContractEigenPodManagerPodDeployed) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ContractEigenPodManagerPodDeployedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ContractEigenPodManagerPodDeployedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ContractEigenPodManagerPodDeployed represents a PodDeployed event raised by the ContractEigenPodManager contract. +type ContractEigenPodManagerPodDeployed struct { + EigenPod common.Address + PodOwner common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterPodDeployed is a free log retrieval operation binding the contract event 0x21c99d0db02213c32fff5b05cf0a718ab5f858802b91498f80d82270289d856a. +// +// Solidity: event PodDeployed(address indexed eigenPod, address indexed podOwner) +func (_ContractEigenPodManager *ContractEigenPodManagerFilterer) FilterPodDeployed(opts *bind.FilterOpts, eigenPod []common.Address, podOwner []common.Address) (*ContractEigenPodManagerPodDeployedIterator, error) { + + var eigenPodRule []interface{} + for _, eigenPodItem := range eigenPod { + eigenPodRule = append(eigenPodRule, eigenPodItem) + } + var podOwnerRule []interface{} + for _, podOwnerItem := range podOwner { + podOwnerRule = append(podOwnerRule, podOwnerItem) + } + + logs, sub, err := _ContractEigenPodManager.contract.FilterLogs(opts, "PodDeployed", eigenPodRule, podOwnerRule) + if err != nil { + return nil, err + } + return &ContractEigenPodManagerPodDeployedIterator{contract: _ContractEigenPodManager.contract, event: "PodDeployed", logs: logs, sub: sub}, nil +} + +// WatchPodDeployed is a free log subscription operation binding the contract event 0x21c99d0db02213c32fff5b05cf0a718ab5f858802b91498f80d82270289d856a. +// +// Solidity: event PodDeployed(address indexed eigenPod, address indexed podOwner) +func (_ContractEigenPodManager *ContractEigenPodManagerFilterer) WatchPodDeployed(opts *bind.WatchOpts, sink chan<- *ContractEigenPodManagerPodDeployed, eigenPod []common.Address, podOwner []common.Address) (event.Subscription, error) { + + var eigenPodRule []interface{} + for _, eigenPodItem := range eigenPod { + eigenPodRule = append(eigenPodRule, eigenPodItem) + } + var podOwnerRule []interface{} + for _, podOwnerItem := range podOwner { + podOwnerRule = append(podOwnerRule, podOwnerItem) + } + + logs, sub, err := _ContractEigenPodManager.contract.WatchLogs(opts, "PodDeployed", eigenPodRule, podOwnerRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ContractEigenPodManagerPodDeployed) + if err := _ContractEigenPodManager.contract.UnpackLog(event, "PodDeployed", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParsePodDeployed is a log parse operation binding the contract event 0x21c99d0db02213c32fff5b05cf0a718ab5f858802b91498f80d82270289d856a. +// +// Solidity: event PodDeployed(address indexed eigenPod, address indexed podOwner) +func (_ContractEigenPodManager *ContractEigenPodManagerFilterer) ParsePodDeployed(log types.Log) (*ContractEigenPodManagerPodDeployed, error) { + event := new(ContractEigenPodManagerPodDeployed) + if err := _ContractEigenPodManager.contract.UnpackLog(event, "PodDeployed", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ContractEigenPodManagerUndelegationLimboEnteredIterator is returned from FilterUndelegationLimboEntered and is used to iterate over the raw logs and unpacked data for UndelegationLimboEntered events raised by the ContractEigenPodManager contract. +type ContractEigenPodManagerUndelegationLimboEnteredIterator struct { + Event *ContractEigenPodManagerUndelegationLimboEntered // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ContractEigenPodManagerUndelegationLimboEnteredIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ContractEigenPodManagerUndelegationLimboEntered) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ContractEigenPodManagerUndelegationLimboEntered) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ContractEigenPodManagerUndelegationLimboEnteredIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ContractEigenPodManagerUndelegationLimboEnteredIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ContractEigenPodManagerUndelegationLimboEntered represents a UndelegationLimboEntered event raised by the ContractEigenPodManager contract. +type ContractEigenPodManagerUndelegationLimboEntered struct { + PodOwner common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterUndelegationLimboEntered is a free log retrieval operation binding the contract event 0x3f95fafd6a65cee1e3d6ae3fecf11d8b4c5cfb602238324b17a42ac1e573ece1. +// +// Solidity: event UndelegationLimboEntered(address indexed podOwner) +func (_ContractEigenPodManager *ContractEigenPodManagerFilterer) FilterUndelegationLimboEntered(opts *bind.FilterOpts, podOwner []common.Address) (*ContractEigenPodManagerUndelegationLimboEnteredIterator, error) { + + var podOwnerRule []interface{} + for _, podOwnerItem := range podOwner { + podOwnerRule = append(podOwnerRule, podOwnerItem) + } + + logs, sub, err := _ContractEigenPodManager.contract.FilterLogs(opts, "UndelegationLimboEntered", podOwnerRule) + if err != nil { + return nil, err + } + return &ContractEigenPodManagerUndelegationLimboEnteredIterator{contract: _ContractEigenPodManager.contract, event: "UndelegationLimboEntered", logs: logs, sub: sub}, nil +} + +// WatchUndelegationLimboEntered is a free log subscription operation binding the contract event 0x3f95fafd6a65cee1e3d6ae3fecf11d8b4c5cfb602238324b17a42ac1e573ece1. +// +// Solidity: event UndelegationLimboEntered(address indexed podOwner) +func (_ContractEigenPodManager *ContractEigenPodManagerFilterer) WatchUndelegationLimboEntered(opts *bind.WatchOpts, sink chan<- *ContractEigenPodManagerUndelegationLimboEntered, podOwner []common.Address) (event.Subscription, error) { + + var podOwnerRule []interface{} + for _, podOwnerItem := range podOwner { + podOwnerRule = append(podOwnerRule, podOwnerItem) + } + + logs, sub, err := _ContractEigenPodManager.contract.WatchLogs(opts, "UndelegationLimboEntered", podOwnerRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ContractEigenPodManagerUndelegationLimboEntered) + if err := _ContractEigenPodManager.contract.UnpackLog(event, "UndelegationLimboEntered", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseUndelegationLimboEntered is a log parse operation binding the contract event 0x3f95fafd6a65cee1e3d6ae3fecf11d8b4c5cfb602238324b17a42ac1e573ece1. +// +// Solidity: event UndelegationLimboEntered(address indexed podOwner) +func (_ContractEigenPodManager *ContractEigenPodManagerFilterer) ParseUndelegationLimboEntered(log types.Log) (*ContractEigenPodManagerUndelegationLimboEntered, error) { + event := new(ContractEigenPodManagerUndelegationLimboEntered) + if err := _ContractEigenPodManager.contract.UnpackLog(event, "UndelegationLimboEntered", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ContractEigenPodManagerUndelegationLimboExitedIterator is returned from FilterUndelegationLimboExited and is used to iterate over the raw logs and unpacked data for UndelegationLimboExited events raised by the ContractEigenPodManager contract. +type ContractEigenPodManagerUndelegationLimboExitedIterator struct { + Event *ContractEigenPodManagerUndelegationLimboExited // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ContractEigenPodManagerUndelegationLimboExitedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ContractEigenPodManagerUndelegationLimboExited) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ContractEigenPodManagerUndelegationLimboExited) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ContractEigenPodManagerUndelegationLimboExitedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ContractEigenPodManagerUndelegationLimboExitedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ContractEigenPodManagerUndelegationLimboExited represents a UndelegationLimboExited event raised by the ContractEigenPodManager contract. +type ContractEigenPodManagerUndelegationLimboExited struct { + PodOwner common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterUndelegationLimboExited is a free log retrieval operation binding the contract event 0xd1799ae06f30992c4ce18ea1e093777a99a9fd45947f270d7daec69951f7583d. +// +// Solidity: event UndelegationLimboExited(address indexed podOwner) +func (_ContractEigenPodManager *ContractEigenPodManagerFilterer) FilterUndelegationLimboExited(opts *bind.FilterOpts, podOwner []common.Address) (*ContractEigenPodManagerUndelegationLimboExitedIterator, error) { + + var podOwnerRule []interface{} + for _, podOwnerItem := range podOwner { + podOwnerRule = append(podOwnerRule, podOwnerItem) + } + + logs, sub, err := _ContractEigenPodManager.contract.FilterLogs(opts, "UndelegationLimboExited", podOwnerRule) + if err != nil { + return nil, err + } + return &ContractEigenPodManagerUndelegationLimboExitedIterator{contract: _ContractEigenPodManager.contract, event: "UndelegationLimboExited", logs: logs, sub: sub}, nil +} + +// WatchUndelegationLimboExited is a free log subscription operation binding the contract event 0xd1799ae06f30992c4ce18ea1e093777a99a9fd45947f270d7daec69951f7583d. +// +// Solidity: event UndelegationLimboExited(address indexed podOwner) +func (_ContractEigenPodManager *ContractEigenPodManagerFilterer) WatchUndelegationLimboExited(opts *bind.WatchOpts, sink chan<- *ContractEigenPodManagerUndelegationLimboExited, podOwner []common.Address) (event.Subscription, error) { + + var podOwnerRule []interface{} + for _, podOwnerItem := range podOwner { + podOwnerRule = append(podOwnerRule, podOwnerItem) + } + + logs, sub, err := _ContractEigenPodManager.contract.WatchLogs(opts, "UndelegationLimboExited", podOwnerRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ContractEigenPodManagerUndelegationLimboExited) + if err := _ContractEigenPodManager.contract.UnpackLog(event, "UndelegationLimboExited", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseUndelegationLimboExited is a log parse operation binding the contract event 0xd1799ae06f30992c4ce18ea1e093777a99a9fd45947f270d7daec69951f7583d. +// +// Solidity: event UndelegationLimboExited(address indexed podOwner) +func (_ContractEigenPodManager *ContractEigenPodManagerFilterer) ParseUndelegationLimboExited(log types.Log) (*ContractEigenPodManagerUndelegationLimboExited, error) { + event := new(ContractEigenPodManagerUndelegationLimboExited) + if err := _ContractEigenPodManager.contract.UnpackLog(event, "UndelegationLimboExited", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ContractEigenPodManagerUnpausedIterator is returned from FilterUnpaused and is used to iterate over the raw logs and unpacked data for Unpaused events raised by the ContractEigenPodManager contract. +type ContractEigenPodManagerUnpausedIterator struct { + Event *ContractEigenPodManagerUnpaused // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ContractEigenPodManagerUnpausedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ContractEigenPodManagerUnpaused) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ContractEigenPodManagerUnpaused) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ContractEigenPodManagerUnpausedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ContractEigenPodManagerUnpausedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ContractEigenPodManagerUnpaused represents a Unpaused event raised by the ContractEigenPodManager contract. +type ContractEigenPodManagerUnpaused struct { + Account common.Address + NewPausedStatus *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterUnpaused is a free log retrieval operation binding the contract event 0x3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c. +// +// Solidity: event Unpaused(address indexed account, uint256 newPausedStatus) +func (_ContractEigenPodManager *ContractEigenPodManagerFilterer) FilterUnpaused(opts *bind.FilterOpts, account []common.Address) (*ContractEigenPodManagerUnpausedIterator, error) { + + var accountRule []interface{} + for _, accountItem := range account { + accountRule = append(accountRule, accountItem) + } + + logs, sub, err := _ContractEigenPodManager.contract.FilterLogs(opts, "Unpaused", accountRule) + if err != nil { + return nil, err + } + return &ContractEigenPodManagerUnpausedIterator{contract: _ContractEigenPodManager.contract, event: "Unpaused", logs: logs, sub: sub}, nil +} + +// WatchUnpaused is a free log subscription operation binding the contract event 0x3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c. +// +// Solidity: event Unpaused(address indexed account, uint256 newPausedStatus) +func (_ContractEigenPodManager *ContractEigenPodManagerFilterer) WatchUnpaused(opts *bind.WatchOpts, sink chan<- *ContractEigenPodManagerUnpaused, account []common.Address) (event.Subscription, error) { + + var accountRule []interface{} + for _, accountItem := range account { + accountRule = append(accountRule, accountItem) + } + + logs, sub, err := _ContractEigenPodManager.contract.WatchLogs(opts, "Unpaused", accountRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ContractEigenPodManagerUnpaused) + if err := _ContractEigenPodManager.contract.UnpackLog(event, "Unpaused", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseUnpaused is a log parse operation binding the contract event 0x3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c. +// +// Solidity: event Unpaused(address indexed account, uint256 newPausedStatus) +func (_ContractEigenPodManager *ContractEigenPodManagerFilterer) ParseUnpaused(log types.Log) (*ContractEigenPodManagerUnpaused, error) { + event := new(ContractEigenPodManagerUnpaused) + if err := _ContractEigenPodManager.contract.UnpackLog(event, "Unpaused", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} diff --git a/contracts/generate-bindings.sh b/contracts/generate-bindings.sh index 32b2cdf6..e8205c57 100755 --- a/contracts/generate-bindings.sh +++ b/contracts/generate-bindings.sh @@ -25,7 +25,7 @@ cd $EIGENLAYER_CONTRACT_PATH forge clean forge build -el_contracts="DelegationManager Slasher StrategyManager IStrategy BLSPublicKeyCompendium" +el_contracts="DelegationManager Slasher StrategyManager IStrategy BLSPublicKeyCompendium EigenPodManager" for contract in $el_contracts; do create_binding . $contract ./../../bindings done