@@ -298,20 +298,22 @@ async def close_wallet(self, wallet_path=None):
298298 return await self .daemon ._stop_wallet (wallet_path )
299299
300300 @command ('' )
301- async def create (self , passphrase = None , password = None , encrypt_file = True , seed_type = None , wallet_path = None ):
301+ async def create (self , passphrase = None , password = None , encrypt_file = True , seed_type = None , wallet_path = None , use_levelDB = False ):
302302 """Create a new wallet.
303303 If you want to be prompted for an argument, type '?' or ':' (concealed)
304304
305305 arg:str:passphrase:Seed extension
306306 arg:str:seed_type:The type of wallet to create, e.g. 'standard' or 'segwit'
307307 arg:bool:encrypt_file:Whether the file on disk should be encrypted with the provided password
308+ arg:bool:use_levelDB:Create levelDB storage. Note that LevelDB storage does not support file encryption. The password will only encrypt the keystore.
308309 """
309310 d = create_new_wallet (
310311 path = wallet_path ,
311312 passphrase = passphrase ,
312313 password = password ,
313314 encrypt_file = encrypt_file ,
314315 seed_type = seed_type ,
316+ use_levelDB = use_levelDB ,
315317 config = self .config )
316318 wallet = d ['wallet' ]
317319 return {
@@ -321,7 +323,7 @@ async def create(self, passphrase=None, password=None, encrypt_file=True, seed_t
321323 }
322324
323325 @command ('' )
324- async def restore (self , text , passphrase = None , password = None , encrypt_file = True , wallet_path = None ):
326+ async def restore (self , text , passphrase = None , password = None , encrypt_file = True , wallet_path = None , use_levelDB = False ):
325327 """Restore a wallet from text. Text can be a seed phrase, a master
326328 public key, a master private key, a list of bitcoin addresses
327329 or bitcoin private keys.
@@ -330,6 +332,7 @@ async def restore(self, text, passphrase=None, password=None, encrypt_file=True,
330332 arg:str:text:seed phrase
331333 arg:str:passphrase:Seed extension
332334 arg:bool:encrypt_file:Whether the file on disk should be encrypted with the provided password
335+ arg:bool:use_levelDB:Create levelDB storage. Note that LevelDB storage does not support file encryption. The password will only encrypt the keystore.
333336 """
334337 # TODO create a separate command that blocks until wallet is synced
335338 d = restore_wallet_from_text (
@@ -338,6 +341,7 @@ async def restore(self, text, passphrase=None, password=None, encrypt_file=True,
338341 passphrase = passphrase ,
339342 password = password ,
340343 encrypt_file = encrypt_file ,
344+ use_levelDB = use_levelDB ,
341345 config = self .config )
342346 wallet = d ['wallet' ]
343347 return {
@@ -358,7 +362,7 @@ async def password(self, password=None, new_password=None, encrypt_file=None, wa
358362 if encrypt_file is None :
359363 if not password and new_password :
360364 # currently no password, setting one now: we encrypt by default
361- encrypt_file = True
365+ encrypt_file = wallet . storage . supports_file_encryption ()
362366 else :
363367 encrypt_file = wallet .storage .is_encrypted ()
364368 wallet .update_password (password , new_password , encrypt_storage = encrypt_file )
0 commit comments