From 49a60657eddc1836b7873ee0f99fdce74ccf8516 Mon Sep 17 00:00:00 2001 From: The MMGen Project Date: Sun, 13 Sep 2026 15:50:13 +0000 Subject: [PATCH] proto.btc.tx.info: improve display of swap recv asset and data output --- mmgen/proto/btc/tx/info.py | 20 ++++++++++++-------- mmgen/tx/base.py | 3 +++ 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/mmgen/proto/btc/tx/info.py b/mmgen/proto/btc/tx/info.py index acec81e0..845e7c19 100755 --- a/mmgen/proto/btc/tx/info.py +++ b/mmgen/proto/btc/tx/info.py @@ -83,17 +83,21 @@ class TxInfo(TxInfo): 'raw': lambda: io }[sort] - def data_disp(data): - return f'OP_RETURN data ({len(data)} bytes)' - if terse: + def data_disp(data): + if len(str(data)) > info_w: + return blue(f'OP_RETURN data ({len(data)} bytes)'.ljust(info_w)) + else: + return pink(str(data).ljust(info_w)) iwidth = max(len(str(int(e.amt))) for e in io) - addr_w = max((len(e.addr.views[vp1]) if e.addr else len(data_disp(e.data))) for f in (tx.inputs, tx.outputs) for e in f) + addr_w = max(len(e.addr.views[vp1]) if e.addr else 0 + for f in (tx.inputs, tx.outputs) for e in f) + info_w = addr_w + max_mmwid + 1 for n, e in enumerate(io_sorted()): - yield '{:3} {} {} {} {}\n'.format( - n+1, - e.addr.fmt(vp1, addr_w, color=True) if e.addr else blue(data_disp(e.data).ljust(addr_w)), - get_mmid_fmt(e, is_input) if e.addr else ''.ljust(max_mmwid), + yield '{:3} {} {} {}\n'.format( + n + 1, + e.addr.fmt(vp1, addr_w, color=True) + ' ' + get_mmid_fmt(e, is_input) + if e.addr else data_disp(e.data), e.amt.fmt(iwidth, color=True), tx.dcoin) if have_bch and e.addr: diff --git a/mmgen/tx/base.py b/mmgen/tx/base.py index ead711b8..9196ec1e 100755 --- a/mmgen/tx/base.py +++ b/mmgen/tx/base.py @@ -237,6 +237,9 @@ class Base(MMGenObject): def recv_asset(self): if hasattr(self, 'swap_recv_asset_spec'): return self.swap_proto_mod.SwapAsset(self.swap_recv_asset_spec, 'recv') + elif self.is_swap and hasattr(self, 'data_output'): + from ..swap.proto.thorchain.memo import THORChainMemo + return THORChainMemo.parse(str(self.data_output.data)).asset else: # backwards-compatibility workaround from ..swap.asset import SwapAsset x = '[unknown]'