if my farm contract has a staking function, do I need to call approve before calling transferFrom?
Sample function:
StakeToken stakingToken;
...
function depositTokens(uint256 amount) public {
require(amount > 0, "Must be more than 0");
//Do I need to call stakingToken.approve(...) here?
stakingToken.transferFrom(msg.sender, address(this), amount);
Is this needed because the farm contract must be approved to make the transfer on the msg.sender's behalf?