diff --git a/mmgen/tw/addresses.py b/mmgen/tw/addresses.py index e8a96ab3..d8552fe4 100755 --- a/mmgen/tw/addresses.py +++ b/mmgen/tw/addresses.py @@ -41,8 +41,8 @@ class TwAddresses(TwView): prompt_fs_in = [ 'Sort options: [a]mt, [M]mgen addr, [r]everse', 'Filters: show [E]mpty addrs, show all [L]abels', - 'View/Print: pager [v]iew, [w]ide pager view, [p]rint{s}', - 'Actions: [q]uit menu, r[e]draw, [D]elete addr, add [l]abel:'] + 'View/Print: pager [v]iew, [w]ide pager view, [p]rint, r[e]draw{s}', + 'Actions: [q]uit menu, [D]elete addr, add [l]abel, [R]efresh balance:'] key_mappings = { 'a':'s_amt', @@ -56,6 +56,8 @@ class TwAddresses(TwView): 'v':'a_view', 'w':'a_view_detail', 'p':'a_print_detail'} + extra_key_mappings = { + 'R':'i_balance_refresh'} class display_type(TwView.display_type): diff --git a/mmgen/tw/view.py b/mmgen/tw/view.py index 4b73ecc4..7c759f31 100755 --- a/mmgen/tw/view.py +++ b/mmgen/tw/view.py @@ -727,9 +727,15 @@ class TwView(MMGenObject, metaclass=AsyncInit): if not parent.keypress_confirm( f'Refreshing tracking wallet {parent.item_desc} #{idx}. OK?'): return 'redo' - await parent.twctl.get_balance(parent.disp_data[idx-1].addr, force_rpc=True) - await parent.get_data() - parent.oneshot_msg = yellow(f'{parent.proto.dcoin} balance for account #{idx} refreshed') + res = await parent.twctl.get_balance(parent.disp_data[idx-1].addr, force_rpc=True) + if res is None: + parent.oneshot_msg = red( + f'Unable to refresh {parent.proto.dcoin} balance for {parent.item_desc} #{idx}') + return False + else: + await parent.get_data() + parent.oneshot_msg = yellow( + f'{parent.proto.dcoin} balance for {parent.item_desc} #{idx} refreshed') async def i_addr_delete(self, parent, idx): if not parent.keypress_confirm(