I am trying to transfer tokens from EOA to contractA.My TokenContract is ERC20. I have to call approve and transferFrom. But is it possible to combine them into 1 call deposit(). I tried using delegatecall for approve but getting errors? Can someone suggest the best approach to transfer in a single call?
function deposit(uint _tokens) public {
require (_tokens > 0);
//Approve before calling this
msg.sender.delegatecall(bytes4(keccak256(strConcat(addressToAsciiString(tokenContract),".approve(address _spender, uint256 _value)"))), _tokens);
require (tokenContract.allowance(msg.sender, this) >= _tokens);
require (tokenContract.transferFrom(msg.sender, tokenStore, _tokens));
}