Browse Source

tw.addresses: support refreshing balances

The MMGen Project 6 months ago
parent
commit
ea41cba054
2 changed files with 13 additions and 5 deletions
  1. 4 2
      mmgen/tw/addresses.py
  2. 9 3
      mmgen/tw/view.py

+ 4 - 2
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):
 

+ 9 - 3
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(