docstr: In order to avoid spending money that the user doesn't own,
  we are comparing to the balance on the account.
  For positions, we want to avoid double updates, since, exchanges
  update positions when the order is opened as used, catalyst wants
  to take them into consideration, therefore running comparison on total.
  :param currency: str
  :param balances: dict
  :param amount: float
  :return: total: float,
                  bool
docstr_tok: ["In","order","to","avoid","spending","money","that","the","user","does","n't","own",",","we","are","comparing","to","the","balance","on","the","account",".","For","positions",",","we","want","to","avoid","double","updates",",","since",",","exchanges","update","positions","when","the","order","is","opened","as","used",",","catalyst","wants","to","take","them","into","consideration",",","therefore","running","comparison","on","total",".",":","param","currency",":","str",":","param","balances",":","dict",":","param","amount",":","float",":","return",":","total",":","float",",","bool"]
code: def _check_low_balance(self, currency, balances, amount):
      """
      In order to avoid spending money that the user doesn't own,
      we are comparing to the balance on the account.
      For positions, we want to avoid double updates, since, exchanges
      update positions when the order is opened as used, catalyst wants
      to take them into consideration, therefore running comparison on total.
      :param currency: str
      :param balances: dict
      :param amount: float
      :return: total: float,
                      bool
      """
      total = (
          balances[currency]["total"] if currency in balances else 0.0
      )
  
      if total < amount:
          return total, True
  
      else:
          return total, False
  
imports: import abc
  from abc import ABCMeta, abstractmethod, abstractproperty
  from datetime import timedelta
  from time import sleep
  import numpy
  import pandas
  from catalyst.constants import LOG_LEVEL
  from catalyst.data.data_portal import BASE_FIELDS
  from catalyst.exchange.exchange_bundle import ExchangeBundle
  from catalyst.exchange.exchange_errors import MismatchingQuoteCurrencies, SymbolNotFoundOnExchange, PricingDataNotLoadedError, NoDataAvailableOnExchange, NoValueForField, NoCandlesReceivedFromExchange, TickerNotFoundError, NotEnoughCashError
  from catalyst.exchange.utils.datetime_utils import get_delta, get_periods_range, get_periods, get_start_dt, get_frequency, get_candles_number_from_minutes
  from catalyst.exchange.utils.exchange_utils import get_exchange_symbols, resample_history_df, has_bundle, get_candles_df
  from logbook import Logger
label_desc: Use image node_id 19 for calling the Exchange obj's underlying member method code with example usage: obj._check_low_balance(currency, balances, amount) and returns: total,  True, total,  False