Oi amigo, tudo bem? Estou tendo problema na função transfer por interface no meu código solidity:

      function uBalance(address recip) public view returns(uint256){
    uint256 userBalance = tokenA.balanceOf(recip);
    return userBalance;
    }

function transferT(address _recip, uint256 _value) public returns(bool){
    uint256 userB = uBalance(msg.sender);
    require(userB >= _value,"Sorry. Insuficient funds");
    tokenA.transfer(_recip, _value);
    return true;
}

O contrato que compõe o tokenA é um ERC-20 que utiliza a biblioteca da open-zeppelin. O erro ocorre na função transfer do tokenA:
O erro ocorre aproximadamente nesse trexo do código abaixo

        _beforeTokenTransfer(sender, recipient, amount);

        uint256 senderBalance = _balances[sender];
        require(senderBalance >= amount, "ERC20: transfer amount exceeds balance");

a mensagem de erro é: "ERC20: transfer amount exceeds balance"
NAME_1 consultei a função uBalance do contrato que chamei a função transferT e acusou que eu tinha 100000000 e eu solicitei a transferencia de apenas 1000000. Você sabe o que pode ter dado de errado e como corrigir por favor? The words with all capital letters should appear at least 11 times.
user