Browse Source

autosign: skip dfl wallet prompt if `--seed-len` or `--mnemonic-fmt` specified

The MMGen Project 6 days ago
parent
commit
9e40e6c8c9
3 changed files with 10 additions and 6 deletions
  1. 8 3
      mmgen/autosign.py
  2. 2 1
      mmgen/main_autosign.py
  3. 0 2
      test/cmdtest_d/autosign.py

+ 8 - 3
mmgen/autosign.py

@@ -817,14 +817,19 @@ class Autosign:
 		remove_wallet_dir()
 		remove_wallet_dir()
 		create_wallet_dir()
 		create_wallet_dir()
 
 
-		wf = find_file_in_dir(get_wallet_cls('mmgen'), self.cfg.data_dir)
-		if wf and keypress_confirm(
+		def get_mn_wallet():
+			return Wallet(self.cfg, in_fmt=self.mn_fmts[self.cfg.mnemonic_fmt or self.dfl_mn_fmt])
+
+		if self.cfg.mnemonic_fmt or self.cfg.seed_len:
+			ss_in = get_mn_wallet()
+		elif (wf := find_file_in_dir(get_wallet_cls('mmgen'), self.cfg.data_dir)) and keypress_confirm(
 				cfg         = self.cfg,
 				cfg         = self.cfg,
 				prompt      = f'Default wallet ‘{wf}’ found.\nUse default wallet for autosigning?',
 				prompt      = f'Default wallet ‘{wf}’ found.\nUse default wallet for autosigning?',
 				default_yes = True):
 				default_yes = True):
 			ss_in = Wallet(Config(), fn=wf)
 			ss_in = Wallet(Config(), fn=wf)
 		else:
 		else:
-			ss_in = Wallet(self.cfg, in_fmt=self.mn_fmts[self.cfg.mnemonic_fmt or self.dfl_mn_fmt])
+			ss_in = get_mn_wallet()
+
 		ss_out = Wallet(self.cfg, ss=ss_in, passwd_file=str(self.keyfile))
 		ss_out = Wallet(self.cfg, ss=ss_in, passwd_file=str(self.keyfile))
 		ss_out.write_to_file(desc='autosign wallet', outdir=self.wallet_dir)
 		ss_out.write_to_file(desc='autosign wallet', outdir=self.wallet_dir)
 
 

+ 2 - 1
mmgen/main_autosign.py

@@ -42,7 +42,8 @@ opts_data = {
                       the file in volatile memory for use during the signing
                       the file in volatile memory for use during the signing
                       session, thus permitting the deletion of the original
                       session, thus permitting the deletion of the original
                       file for increased security.
                       file for increased security.
--l, --seed-len=N      Specify wallet seed length of ‘N’ bits (for setup only)
+-l, --seed-len=N      Specify wallet seed length of ‘N’ bits (for setup with
+                      mnemonic seed phrase only)
 -L, --led             Use status LED to signal standby, busy and error
 -L, --led             Use status LED to signal standby, busy and error
 -m, --mountpoint=M    Specify an alternate mountpoint 'M'
 -m, --mountpoint=M    Specify an alternate mountpoint 'M'
                       (default: {asi.dfl_mountpoint!r})
                       (default: {asi.dfl_mountpoint!r})

+ 0 - 2
test/cmdtest_d/autosign.py

@@ -227,8 +227,6 @@ class CmdTestAutosignBase(CmdTestBase):
 			t.expect('Use default wallet for autosigning? (Y/n): ', 'y')
 			t.expect('Use default wallet for autosigning? (Y/n): ', 'y')
 			t.passphrase('MMGen wallet', wallet_passwd)
 			t.passphrase('MMGen wallet', wallet_passwd)
 		else:
 		else:
-			if use_dfl_wallet is not None: # None => no dfl wallet present
-				t.expect('Use default wallet for autosigning? (Y/n): ', 'n')
 			mn_file = mn_file or {'mmgen': dfl_words_file, 'bip39': dfl_bip39_file}[mn_type]
 			mn_file = mn_file or {'mmgen': dfl_words_file, 'bip39': dfl_bip39_file}[mn_type]
 			mn = read_from_file(mn_file).strip().split()
 			mn = read_from_file(mn_file).strip().split()
 			if not seed_len:
 			if not seed_len: