Basically, there are 3 ways that make user costs the gas fee
- Approve a smart contract to send a custom token
- Transfer ERC20 token
- Call a function of smart contract
How to resolve it:
- The transaction has to be executed by the contract owner, not the end user.
-
Approve() function:
-
Transfer() function:
-
Smart contract: