Browse Source

xmrwallet.ops.wallet, mmgen-addrimport: cleanups

The MMGen Project 3 weeks ago
parent
commit
cf5f7204c7
3 changed files with 18 additions and 17 deletions
  1. 3 3
      mmgen/main_addrimport.py
  2. 0 1
      mmgen/xmrwallet/ops/create.py
  3. 15 13
      mmgen/xmrwallet/ops/wallet.py

+ 3 - 3
mmgen/main_addrimport.py

@@ -33,7 +33,7 @@ opts_data = {
 		'options': """
 -h, --help         Print this help message
 --, --longhelp     Print help message for long (global) options
--a, --address=a    Import the single coin address 'a'
+-A, --address=ADDR Import the single coin address ADDR
 -b, --batch        Import all addresses in one RPC call
 -l, --addrlist     Address source is a flat list of non-MMGen coin addresses
 -k, --keyaddr-file Address source is a key-address file
@@ -42,7 +42,7 @@ opts_data = {
                    blockchain for unspent outputs that include the imported
                    address(es).  Required if any of the imported addresses
                    are already in the blockchain and have a balance.
--t, --token-addr=A Import addresses for ERC20 token with address 'A'
+-t, --token-addr=ADDR Import addresses for ERC20 token with address ADDR
 """,
 	'notes': """
 
@@ -131,8 +131,8 @@ def check_opts(twctl):
 	return batch, rescan
 
 async def main():
-	from .tw.ctl import TwCtl
 
+	from .tw.ctl import TwCtl
 	twctl = await TwCtl(
 		cfg        = cfg,
 		proto      = proto,

+ 0 - 1
mmgen/xmrwallet/ops/create.py

@@ -21,7 +21,6 @@ from .wallet import OpWallet
 
 class OpCreate(OpWallet):
 	stem    = 'creat'
-	wallet_exists = False
 	opts    = ('restore_height',)
 
 	def check_uopts(self):

+ 15 - 13
mmgen/xmrwallet/ops/wallet.py

@@ -34,32 +34,25 @@ class OpWallet(OpBase):
 		'autosign',
 		'watch_only')
 	wallet_offline = False
-	wallet_exists = True
 	start_daemon = True
 	skip_wallet_check = False # for debugging
 
 	def __init__(self, cfg, uarg_tuple):
 
-		def wallet_exists(fn):
-			try:
-				fn.stat()
-			except:
-				return False
-			else:
-				return True
-
 		def check_wallets():
 			for d in self.addr_data:
 				fn = self.get_wallet_fn(d)
-				match wallet_exists(fn):
-					case True if not self.wallet_exists:
+				match self.stat_wallet(fn):
+					case True if self.is_create:
 						die(1, f'Wallet ‘{fn}’ already exists!')
-					case False if self.wallet_exists:
+					case False:
 						die(1, f'Wallet ‘{fn}’ not found!')
 
 		super().__init__(cfg, uarg_tuple)
 
-		if self.cfg.offline or (self.name == 'create' and self.cfg.restore_height is None):
+		self.is_create = self.name in ('create', 'create_offline', 'restore')
+
+		if self.cfg.offline or (self.is_create and self.cfg.restore_height is None):
 			self.wallet_offline = True
 
 		self.wd = MoneroWalletDaemon(
@@ -122,6 +115,15 @@ class OpWallet(OpBase):
 		if self.start_daemon and not self.cfg.no_start_wallet_daemon:
 			asyncio.run(self.restart_wallet_daemon())
 
+	@staticmethod
+	def stat_wallet(fn):
+		try:
+			fn.stat()
+		except:
+			return False
+		else:
+			return True
+
 	@classmethod
 	def get_idx_from_fn(cls, fn):
 		return int(re.match(r'[0-9a-fA-F]{8}-(\d+)-Monero(WatchOnly)?Wallet.*', fn.name)[1])