Browse Source

tx.new: new method: get_addrfiles_from_cmdline()

The MMGen Project 3 weeks ago
parent
commit
9223b0e97b
1 changed files with 18 additions and 13 deletions
  1. 18 13
      mmgen/tx/new.py

+ 18 - 13
mmgen/tx/new.py

@@ -256,26 +256,30 @@ class New(Base):
 			elif len(self.outputs) > 1:
 				await self.warn_addr_used(self.proto, self.chg_output, 'change address')
 
-	def get_addrdata_from_files(self, proto, cmd_args):
-		from ..addrdata import AddrData
-		from ..addrlist import AddrList
+	def get_addrfiles_from_cmdline(self, cmd_args):
 		from ..addrfile import AddrFile
 		addrfile_args = remove_dups(
 			tuple(a for a in cmd_args if get_extension(a) == AddrFile.ext),
 			desc = 'command line',
 			edesc = 'argument',
 		)
-		cmd_args  = remove_dups(
-			tuple(a for a in cmd_args if a not in addrfile_args),
-			desc = 'command line',
-			edesc = 'argument',
-		)
-		ad_f = AddrData(proto)
+		cmd_args = tuple(a for a in cmd_args if a not in addrfile_args)
+		if self.target == 'tx':
+			cmd_args = remove_dups(cmd_args, desc='command line', edesc='argument')
+		return cmd_args, addrfile_args
+
+	def get_addrdata_from_files(self, proto, addrfiles):
+		from ..addrdata import AddrData
+		from ..addrlist import AddrList
 		from ..fileutil import check_infile
-		for addrfile in addrfile_args:
+		ad_f = AddrData(proto)
+		for addrfile in addrfiles:
 			check_infile(addrfile)
-			ad_f.add(AddrList(self.cfg, proto, addrfile))
-		return ad_f, cmd_args
+			try:
+				ad_f.add(AddrList(self.cfg, proto, addrfile))
+			except Exception as e:
+				msg(f'{type(e).__name__}: {e}')
+		return ad_f
 
 	def confirm_autoselected_addr(self, mmid, desc):
 		from ..ui import keypress_confirm
@@ -413,7 +417,8 @@ class New(Base):
 		await self.twuo.get_data()
 
 		if not do_info:
-			ad_f, cmd_args = self.get_addrdata_from_files(self.proto, cmd_args) # pops from end of cmd_args
+			cmd_args, addrfile_args = self.get_addrfiles_from_cmdline(cmd_args)
+			ad_f = self.get_addrdata_from_files(self.proto, addrfile_args) # pops from end of cmd_args
 			from ..addrdata import TwAddrData
 			ad_w = await TwAddrData(self.cfg, self.proto, twctl=self.twctl)
 			if self.target == 'swaptx':