Staking Operations

Here is a short description

Depositors can deposit ETH (deposit()) in a staking vault to stake it. Validators are programmatically created based on Northstake's Node Orchestration feature whenever the balance in the contract is 32 ETH.

If ETH was deposited in the contract accidentally or a residual balance remains in the vault, depositors can withdraw it using withdrawDeposit().

Both consensus and execution rewards (including MEV if isMevEnabled=True) accrue in the contract and can be collected upon demand (collectRewards()).

Rewards can only be transferred to the reward recipient, which is set by depositors and can be changed upon demand (setRewardRecipient()).