Function: stake(address _depositToken, uint256 _amount)
Allows staking of tokens.
Inputs
_depositTokenControl: Controlled by the caller.
Constraints: Checked that the token is whitelisted (
isDepositToken).Impact: The token to be staked.
_amountControl: Controlled by the caller.
Constraints: Checked that the amount is greater than zero. Also, in the
safeTransferFromcall, it is checked that the_fundingAccount(in this case,msg.sender) has enough balance.Impact: The amount of tokens to be staked.
Branches and code coverage (including function calls)
Intended branches
Checks that the token is whitelisted (
isDepositToken).Checks that the amount is greater than zero.
Checks that the
_fundingAccount(in this case,msg.sender) has enough balance (safeTransferFrom).Updates the rewards for the
_account.Updates the
stakedAmountsfor the_account.Updates the
depositBalancesfor the_account.Updates the
totalDepositSupplyfor the_depositToken.Mints the
_amountof tokens to the_account.
Negative behavior
Should not be callable if
isPrivateStakingModeistrue.