Testing the contract token

Hello
I'm having trouble testing the contract through sopelia
I don't know if uniswaprouter V2 supports sepolia
Because the deployment of the contract still fails
I wanted to test through goerli but the faucets don't work

I will be glad if someone helps me
When someone has time to look at my contract

Please provide the code of the token contract you're trying to deploy and test.

Hi, i can help you. let me know your codebase.

```// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

import "@openzeppelin/contracts/token/ERC20/ERC20.sol";
import "@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol";
import "@openzeppelin/contracts/security/ReentrancyGuard.sol";
import "@openzeppelin/contracts/access/Ownable.sol";
import "@uniswap/v2-periphery/contracts/interfaces/IUniswapV2Router02.sol";
import "@uniswap/v2-core/contracts/interfaces/IUniswapV2Factory.sol";

// CustomToken inherits from ERC20, ERC20Burnable, ReentrancyGuard, and Ownable
contract CustomToken is ERC20, ERC20Burnable, ReentrancyGuard, Ownable {
    // Wallet addresses for marketing and development
    address public marketingWallet;
    address public developerWallet;

    // Uniswap router and pair addresses
    address public uniswapV2RouterAddress;
    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;

    // Tax rate for transactions and total supply
    uint256 public taxRate = 5;
    uint256 public constant TOTAL_SUPPLY = 450000000000000 * 10**18;
    uint256 public minEthBeforeLiquidity = 0.05 ether;

    // Constructor to initialize the token
    constructor(
        string memory name,
        string memory symbol,
        address _marketingWallet,
        address _developerWallet,
        address _uniswapV2RouterAddress
    ) ERC20(name, symbol) {
        marketingWallet = _marketingWallet;
        developerWallet = _developerWallet;
        uniswapV2RouterAddress = _uniswapV2RouterAddress;

        // Initialize Uniswap router and create a pair
        uniswapV2Router = IUniswapV2Router02(uniswapV2RouterAddress);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());

        // Mint the total supply to the sender
        _mint(msg.sender, TOTAL_SUPPLY);
    }

    // Override the transfer function to include tax and distribution
    function _transfer(address sender, address recipient, uint256 amount) internal override nonReentrant {
        uint256 taxAmount = (amount * taxRate) / 100;
       uint256 marketingAmount = (taxAmount * 49) / 100;  // 49% of the tax
       uint256 liquidityAmount = (taxAmount * 50) / 100;  // 50% of the tax
       uint256 developerAmount = (taxAmount * 1) / 100;   // 1% of the tax


        // Transfer tax to marketing and developer wallets
        super._transfer(sender, marketingWallet, marketingAmount);
        super._transfer(sender, developerWallet, developerAmount);

        // Add liquidity if the contract balance is above the minimum
        if (address(this).balance >= minEthBeforeLiquidity) {
            addLiquidity(liquidityAmount);
        }

        // Transfer the remaining amount to the recipient
        uint256 sendAmount = amount - taxAmount;
        super._transfer(sender, recipient, sendAmount);
    }

    // Function to add liquidity to Uniswap
    function addLiquidity(uint256 tokenAmount) internal onlyOwner {
        uint256 half = tokenAmount / 2;
        uint256 otherHalf = tokenAmount - half;

        uint256 balanceBeforeSwap = address(this).balance;
        swapTokensForEth(half);
        uint256 ethReceived = address(this).balance - balanceBeforeSwap;

        // Add liquidity to Uniswap
        uniswapV2Router.addLiquidityETH{value: ethReceived}(address(this), otherHalf, 0, 0, address(this), block.timestamp);
    }

    // Function to swap tokens for ETH
    function swapTokensForEth(uint256 tokenAmount) internal {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();

        // Approve the router to spend tokens
        _approve(address(this), uniswapV2RouterAddress, tokenAmount);

        // Perform the swap
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount, 0, path, address(this), block.timestamp);
    }
}

please, if someone can check it, I will be grateful

Plz share your contract codebase so that i can check.

I guess there was a net problem when you tried to deploy contract.
I deployed your contract to the goerli successfully.

yes, I see, thank you, I want to ask if the tax test will be done?
the point is that the 2% tax for liquidity is set in such a way that the 2% tax is 1% automatically converted to eth and then sent to liquidity but only when it reaches 0.05 eth due to the gas load.