tw.addresses: support refreshing balances

This commit is contained in:
The MMGen Project 2025-05-28 11:40:40 +00:00
commit ea41cba054
Signed by: mmgen
GPG key ID: 3F8B1861E32B7DA2
2 changed files with 13 additions and 5 deletions

View file

@ -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):

View file

@ -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(