From b1096f5a1402d73873f5a06288a96a866dc300b3 Mon Sep 17 00:00:00 2001 From: The MMGen Project Date: Mon, 31 Oct 2022 15:42:10 +0000 Subject: [PATCH] mmgen-tool txhist: sort transaction inputs deterministically --- mmgen/data/version | 2 +- mmgen/proto/btc/tw/txhistory.py | 8 +++++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/mmgen/data/version b/mmgen/data/version index ad266b1c..1f67effd 100644 --- a/mmgen/data/version +++ b/mmgen/data/version @@ -1 +1 @@ -13.3.dev14 +13.3.dev15 diff --git a/mmgen/proto/btc/tw/txhistory.py b/mmgen/proto/btc/tw/txhistory.py index a974549a..c057f392 100755 --- a/mmgen/proto/btc/tw/txhistory.py +++ b/mmgen/proto/btc/tw/txhistory.py @@ -66,7 +66,13 @@ class BitcoinTwTransaction(BitcoinTwCommon): data = d.data ) return sorted( gen(), - key = lambda d: d.twlabel.twmmid.sort_key if d.twlabel else 'zz_' + d.coin_addr ) + # if address is not MMGen, ignore address and sort by TxID + vout only + key = lambda d: ( + (d.twlabel.twmmid.sort_key if d.twlabel and d.twlabel.twmmid.type == 'mmgen' else '') + + '_' + + d.txid + + '{:08d}'.format(d.data['n']) + )) def gen_all_addrs(src): for e in self.vouts_info[src]: