stake
function in the Pool contract, the user will add ether to the Permissioned Pool. The contract will mint psETH
(permissioned staked ETH) tokens 1 to 1 with the deposited amount of ETH. For example, if the user deposited 10 ether, they would get 10 psETH
that represents the amount of ETH they staked in the StakeWise Permissioned Pool.whitelistedAccounts
list contained in the WhiteListManager contract in order to call the stake
function and receive psETH
tokens. The call will fail if the caller's address or the token recipient's address have not been added to the whitelistedAccounts
list. stake
functionstake
function available in the contract, such as:​
stakeWithPartner
- allows to continuously reward a partner
address with a portion of the revenue generated from the user.​
stakeWithPartnerOnBehalf
- allows to continuously reward a partner
address with a portion of the revenue generated from the user, while setting a recipient
address that is different from the caller address.​
stakeWithReferrerOnBehalf
- allows to reward a referrer
address with a pre-agreed lump-sum payment, while setting a recipient
address that is different from the caller address.psETH
minActivatingDeposit
& pendingValidatorsLimit
variables have been set to their upper limit. psETH
tokens are expected to be minted immediately upon staking at all times.psETH
for the user depends on several parameters: minActivatingDeposit
variable, set by the Admin role using setMinActivatingDeposit
function in the Pool contract; pendingValidatorsLimit
variable, calculated based on the proportion of pending validators relative to the total number of validators, set by the Admin role using setPendingValidatorsLimit
function in the Pool contract.minActivatingDeposit
, the psETH
tokens will be minted for the user immediately. minActivatingDeposit
, but the total number of pending validators as a result of the user's deposit is lower than pendingValidatorsLimit
, the psETH
tokens will be minted for the user immediately. psETH
tokens. To receive the tokens, the user will need to call the activate
or activateMultiple
functions. Oracle
role can register a new validator. Oracles
are automated entities that run off-chain and listen to the Pool's events. As soon as there is enough ETH collected, the following sequence of events occurs:Oracles
will submit a vote containing the next deposit data (previously registered by the Operators
) to the Oracles contract for aggregation & consensus. registerValidator
function in the Pool contract to register the validator by sending ether and the verified deposit data to the ETH2 Validator Registration Contract.