I tested my code on the Arbitrum Goerli network, and it worked because the test USDC contract is the default one with approve and transfer functions.
Now I want to go live, and I see that USDC (0xFF970A61A04b1cA14834A43f5dE4533eBDDB5CC8) ABI is different since it uses a proxy contract (0x1eFB3f88Bc88f03FD1804A5C53b7141bbEf5dED8).
How do I approve and transfer USDC? I tried approving the proxy contract but the transfer fails for some reason:
USDC = IERC20(0xFF970A61A04b1cA14834A43f5dE4533eBDDB5CC8); USDC.transferFrom( msg.sender, address(this), _amount.mul(1e6) ); .
I'm calling the transfer on the main contracts. What's the proper way to approve spending and do the transfer when there is a proxy contract?