Browse Source

mmgen-txcreate autosign: check for signed transactions too

The MMGen Project 1 year ago
parent
commit
f8dd81efe9
3 changed files with 7 additions and 1 deletions
  1. 2 0
      mmgen/autosign.py
  2. 1 1
      mmgen/data/version
  3. 4 0
      test/cmdtest_py_d/ct_automount.py

+ 2 - 0
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:

+ 1 - 1
mmgen/data/version

@@ -1 +1 @@
-14.1.dev24
+14.1.dev25

+ 4 - 0
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':