Questions about approve and transferFrom of ERC20 contract

I created an ERC20 contract using openzeppelin lib and deploy it on my private Etherum clique chain. The transferFrom function code in the openzeppelin ERC20 contract is: function transferFrom(address sender, address recipient, uint256 amount) public returns (bool) { _transfer(sender, recipient, amount); _approve(sender, msg.sender, _allowances[sender][msg.sender].sub(amount)); return true; } Contract issue address is 0xd1cd4dd8c67e13e4dbe74469a8d6e327181fd796. I use approved…