For my usecase I want to check if msg.value, sent to my smart contract, is actually 10 USDC and not any Shitcoin. Is this done with the approve function of ERC20 interface? Because right now I have this in my .sol File:
require(usdc.approve(msg.sender, msg.value));