From caade42c1643d61bd20ddc7720913d7ab37ff178 Mon Sep 17 00:00:00 2001 From: The MMGen Project Date: Wed, 21 Jan 2026 09:06:50 +0000 Subject: [PATCH] TwView.item_action: add `acct_methods` attribute --- mmgen/proto/xmr/tw/view.py | 4 +++- mmgen/tw/view.py | 5 +++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/mmgen/proto/xmr/tw/view.py b/mmgen/proto/xmr/tw/view.py index 4250c166..314c1bce 100755 --- a/mmgen/proto/xmr/tw/view.py +++ b/mmgen/proto/xmr/tw/view.py @@ -210,8 +210,10 @@ class MoneroTwView: color_override = None if d.amt == d.unlocked_amt else 'orange', prec = self.disp_prec)) - async def get_idx_from_user(self): + async def get_idx_from_user(self, method_name): if res := await self.get_idx(f'{self.item_desc} number', self.accts_data): + if method_name in self.item_action.acct_methods: + return res return await self.get_idx( 'address index', self.accts_data[res.idx - 1].data, diff --git a/mmgen/tw/view.py b/mmgen/tw/view.py index 8378f0b5..1cd518c5 100755 --- a/mmgen/tw/view.py +++ b/mmgen/tw/view.py @@ -657,7 +657,7 @@ class TwView(MMGenObject, metaclass=AsyncInit): msg_r('\r'+''.ljust(self.term_width)+'\r'+yellow('Canceling! ')) return False - async def get_idx_from_user(self): + async def get_idx_from_user(self, method_name): return await self.get_idx(f'{self.item_desc} number', self.disp_data) async def get_idx(self, desc, data, *, is_addr_idx=False): @@ -748,6 +748,7 @@ class TwView(MMGenObject, metaclass=AsyncInit): do_pager(await parent.format('detail', color=True)) class item_action: + acct_methods = () @enable_echo async def run(self, parent, action_method): @@ -762,7 +763,7 @@ class TwView(MMGenObject, metaclass=AsyncInit): # None: action aborted by user or no action performed # 'redo': user will be re-prompted for item number # 'redraw': action successfully performed, screen will be redrawn - if usr_ret := await parent.get_idx_from_user(): + if usr_ret := await parent.get_idx_from_user(action_method.__name__): ret = await action_method(parent, usr_ret.idx, usr_ret.acct_addr_idx) else: ret = None