proto.btc.tx.info: improve display of swap recv asset and data output

This commit is contained in:
The MMGen Project 2026-09-13 15:50:13 +00:00
commit 49a60657ed
Signed by: mmgen
GPG key ID: 3F8B1861E32B7DA2
2 changed files with 15 additions and 8 deletions

View file

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

View file

@ -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]'