compact low balance currencies

This commit is contained in:
kevinjulian 2021-07-04 02:44:48 +07:00
parent 9d6860337f
commit b722e12350
3 changed files with 21 additions and 7 deletions

View File

@ -598,6 +598,9 @@ class Telegram(RPCHandler):
"Starting capital: "
f"`{self._config['dry_run_wallet']}` {self._config['stake_currency']}.\n"
)
total_dust_balance = 0
total_dust_currencies = 0
curr_output = ''
for curr in result['currencies']:
if curr['est_stake'] > balance_dust_level:
curr_output = (
@ -607,9 +610,9 @@ class Telegram(RPCHandler):
f"\t`Pending: {curr['used']:.8f}`\n"
f"\t`Est. {curr['stake']}: "
f"{round_coin_value(curr['est_stake'], curr['stake'], False)}`\n")
else:
curr_output = (f"*{curr['currency']}:* not showing <{balance_dust_level} "
f"{curr['stake']} amount \n")
elif curr['est_stake'] <= balance_dust_level:
total_dust_balance += curr['est_stake']
total_dust_currencies += 1
# Handle overflowing message length
if len(output + curr_output) >= MAX_TELEGRAM_MESSAGE_LENGTH:
@ -618,6 +621,12 @@ class Telegram(RPCHandler):
else:
output += curr_output
if total_dust_balance > 0:
output += (
f"*{total_dust_currencies} Other Currencies:*\n"
f"\t`Est. {result['stake']}: "
f"{round_coin_value(total_dust_balance, result['stake'], False)}`\n")
output += ("\n*Estimated Value*:\n"
f"\t`{result['stake']}: {result['total']: .8f}`\n"
f"\t`{result['symbol']}: "

View File

@ -1761,7 +1761,7 @@ def rpc_balance():
'total': 0.1,
'free': 0.01,
'used': 0.0
},
},
'EUR': {
'total': 10.0,
'free': 10.0,

View File

@ -515,16 +515,21 @@ def test_telegram_balance_handle(default_conf, update, mocker, rpc_balance, tick
patch_get_signal(freqtradebot, (True, False))
telegram._balance(update=update, context=MagicMock())
print('msg_mock.call_args_list')
print(msg_mock.call_args_list)
result = msg_mock.call_args_list[0][0][0]
assert msg_mock.call_count == 1
assert '*BTC:*' in result
assert '*ETH:*' not in result
assert '*USDT:*' in result
assert '*EUR:*' in result
assert '*USDT:*' not in result
assert '*EUR:*' not in result
assert '*LTC:*' in result
assert '*XRP:*' not in result
assert 'Balance:' in result
assert 'Est. BTC:' in result
assert 'BTC: 12.00000000' in result
assert '*XRP:* not showing <0.0001 BTC amount' in result
assert "*3 Other Currencies:*" in result
assert 'BTC: 0.00000309' in result
def test_balance_handle_empty_response(default_conf, update, mocker) -> None: