SmartChefInitializable

Contract Roles

Role
Description

Owner (onlyOwner)

The contract owner

Owner

Address can be different depending on the pool, however, is usually 0xad9d97fc7bf0ac6dc68d478dcb3709454519b358

This address controlled is by gnosis multisignature contract with a threshold of 3/6

Functions

emergencyRewardWithdraw - Owner

    function emergencyRewardWithdraw(uint256 _amount) external onlyOwner {
        rewardToken.safeTransfer(address(msg.sender), _amount);
    }

In case of an emergency, the Owner can withdraw the rewards from a pool contract.

recoverWrongTokens - Owner

 function recoverWrongTokens(address _tokenAddress, uint256 _tokenAmount) external onlyOwner {
        require(_tokenAddress != address(stakedToken), "Cannot be staked token");
        require(_tokenAddress != address(rewardToken), "Cannot be reward token");

        IBEP20(_tokenAddress).safeTransfer(address(msg.sender), _tokenAmount);

        emit AdminTokenRecovery(_tokenAddress, _tokenAmount)

Used by the Owner to recover tokens other than the stakedToken and rewardToken in case they are mistakenly sent to the contract.

stopRewards - Owner

If a pool need stop distributing rewards prior to the intended end of the reward distribution, the Owner can call this function.

updatePoolLimitPerUser - Owner

Owner can call this function to update the staking limit for each pool. The staking limit can only be increased, never decreased. This ensures that no user ever has more staked than the staking limit.

UpdateRewardPerBlock - Owner

Can be called by the Owner, but only prior to the start of the pool. This cannot be modified once the pool has begun.

updateStartAndEndBlocks - Owner

Can be called by the Owner, but only prior to the start of the pool. This cannot be modified once the pool has begun.

transferOwnership - Owner

If the Owner needs to change the ownership of the contract, they can call this function.

Last updated