Send signed Transaction ethers.js error

Hey there,
I want to send a privatekey signed transaction to withdraw my erc20 tokens.

    const signer = new ethers.Wallet(privateKey, provider);
    let contractInstance = new ethers.Contract(contractAddress, ERC20_ABI, signer);

    let abicoder = new ethers.utils.AbiCoder()
    let encodedAbi = abicoder.encode(contractInstance.transferFrom(address, rec, balance))

error: if (types.length !== values.length) {TypeError: Cannot read properties of undefined (reading ‘length’)

Is this approach correct ?

there may be a simpler code to do that, you will find some examples on this forum or on the internet

how do I estimate gas ? I found a simpler way but it says that it cant estimate the gas

maybe this post helps