tx.new: new method: get_addrfiles_from_cmdline()

This commit is contained in:
The MMGen Project 2025-02-15 09:54:19 +00:00
commit 9223b0e97b
Signed by: mmgen
GPG key ID: 3F8B1861E32B7DA2

View file

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