From f8dd81efe9d8d2f65e402691120efebf35ef3c6a Mon Sep 17 00:00:00 2001 From: The MMGen Project Date: Sun, 31 Mar 2024 13:10:16 +0000 Subject: [PATCH] mmgen-txcreate autosign: check for signed transactions too --- mmgen/autosign.py | 2 ++ mmgen/data/version | 2 +- test/cmdtest_py_d/ct_automount.py | 4 ++++ 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/mmgen/autosign.py b/mmgen/autosign.py index fd3038f5..42375110 100755 --- a/mmgen/autosign.py +++ b/mmgen/autosign.py @@ -103,6 +103,8 @@ class Signable: def check_create_ok(self): if len(self.unsigned): self.die_wrong_num_txs('unsigned', msg='Cannot create transaction') + if len(self.unsent): + die('AutosignTXError', 'Cannot create transaction: you have an unsent transaction') def get_unsubmitted(self, tx_type='unsubmitted'): if len(self.unsubmitted) == 1: diff --git a/mmgen/data/version b/mmgen/data/version index 1ac202df..791a6653 100644 --- a/mmgen/data/version +++ b/mmgen/data/version @@ -1 +1 @@ -14.1.dev24 +14.1.dev25 diff --git a/test/cmdtest_py_d/ct_automount.py b/test/cmdtest_py_d/ct_automount.py index 1d2d3db0..c08e9ffa 100755 --- a/test/cmdtest_py_d/ct_automount.py +++ b/test/cmdtest_py_d/ct_automount.py @@ -46,6 +46,7 @@ class CmdTestAutosignAutomount(CmdTestAutosignThreaded, CmdTestRegtestBDBWallet) ('autosign_start_thread', 'starting autosign wait loop'), ('alice_txstatus1', 'getting transaction status (unsigned)'), ('alice_txstatus2', 'getting transaction status (unsent)'), + ('alice_txcreate_bad_have_unsent', 'creating the transaction again (error)'), ('alice_txsend1', 'sending a transaction, editing comment'), ('alice_txstatus3', 'getting transaction status (in mempool)'), ('alice_txsend_bad_no_unsent', 'sending the transaction again (error)'), @@ -155,6 +156,9 @@ class CmdTestAutosignAutomount(CmdTestAutosignThreaded, CmdTestRegtestBDBWallet) def alice_txcreate_bad_have_unsigned(self): return self._alice_txcreate(chg_addr='C:5', exit_val=2, expect='already present') + def alice_txcreate_bad_have_unsent(self): + return self._alice_txcreate(chg_addr='C:5', exit_val=2, expect='unsent transaction') + def copy_wallet(self): self.spawn('', msg_only=True) if cfg.coin == 'BTC':