In the ERC20 token standard, there is a function called approve(), following is the implementation code for it. You can also refer Chapter 7, ERC20 Token Standard, The approve function, for more details on the working of the code:
function approve(address spender, uint tokens)public returns (bool success) { allowed[msg.sender][spender] = tokens; Approval(msg.sender, spender, tokens); return true;}
This function is always prone to a front-running attack if not handled correctly. Let's see how a front-running attack happens on the approve() function, with the help of the following diagram, showing a transaction flow step by step:
In the preceding diagram we have the ...