Browse Source

Merge #527: [Refactor] Make explicit args in wallet_generate_recover_bip39

5f85734 Make explicit args in wallet_generate_recover_bip39 (chris-belcher)

Tree-SHA512: 12d92065a491440875afd6614719e027390728a4828fbc2ed6b1b4d7cbb9e9741d47d155c13fa9d06731b60fec81692f303f932a0f719a59a8931cce8c7440b7
master
chris-belcher 6 years ago
parent
commit
512202b911
No known key found for this signature in database
GPG Key ID: EF734EA677F31129
  1. 37
      jmclient/jmclient/wallet_utils.py
  2. 31
      scripts/joinmarket-qt.py

37
jmclient/jmclient/wallet_utils.py

@ -500,30 +500,18 @@ def cli_get_mnemonic_extension():
def wallet_generate_recover_bip39(method, walletspath, default_wallet_name, def wallet_generate_recover_bip39(method, walletspath, default_wallet_name,
mixdepth=DEFAULT_MIXDEPTH, display_seed_callback, enter_seed_callback, enter_wallet_password_callback,
callbacks=(cli_display_user_words, enter_wallet_file_name_callback, enter_if_use_seed_extension,
cli_user_mnemonic_entry, enter_seed_extension_callback, mixdepth=DEFAULT_MIXDEPTH):
cli_get_wallet_passphrase_check,
cli_get_wallet_file_name,
cli_do_use_mnemonic_extension,
cli_get_mnemonic_extension)):
"""Optionally provide callbacks:
0 - display seed
1 - enter seed (for recovery)
2 - enter wallet password
3 - enter wallet file name
4 - enter mnemonic extension
The defaults are for terminal entry.
"""
entropy = None entropy = None
mnemonic_extension = None mnemonic_extension = None
if method == "generate": if method == "generate":
if callbacks[4](): if enter_if_use_seed_extension():
mnemonic_extension = callbacks[5]() mnemonic_extension = enter_seed_extension_callback()
if not mnemonic_extension: if not mnemonic_extension:
return False return False
elif method == 'recover': elif method == 'recover':
words, mnemonic_extension = callbacks[1]() words, mnemonic_extension = enter_seed_callback()
mnemonic_extension = mnemonic_extension and mnemonic_extension.strip() mnemonic_extension = mnemonic_extension and mnemonic_extension.strip()
if not words: if not words:
return False return False
@ -535,11 +523,11 @@ def wallet_generate_recover_bip39(method, walletspath, default_wallet_name,
raise Exception("unknown method for wallet creation: '{}'" raise Exception("unknown method for wallet creation: '{}'"
.format(method)) .format(method))
password = callbacks[2]() password = enter_wallet_password_callback()
if not password: if not password:
return False return False
wallet_name = callbacks[3]() wallet_name = enter_wallet_file_name_callback()
if wallet_name == "cancelled": if wallet_name == "cancelled":
# currently used only by Qt, because user has option # currently used only by Qt, because user has option
# to click cancel in dialog. # to click cancel in dialog.
@ -552,7 +540,7 @@ def wallet_generate_recover_bip39(method, walletspath, default_wallet_name,
entropy=entropy, entropy=entropy,
entropy_extension=mnemonic_extension) entropy_extension=mnemonic_extension)
mnemonic, mnext = wallet.get_mnemonic_words() mnemonic, mnext = wallet.get_mnemonic_words()
callbacks[0] and callbacks[0](mnemonic, mnext or '') display_seed_callback and display_seed_callback(mnemonic, mnext or '')
wallet.close() wallet.close()
return True return True
@ -562,8 +550,11 @@ def wallet_generate_recover(method, walletspath,
mixdepth=DEFAULT_MIXDEPTH): mixdepth=DEFAULT_MIXDEPTH):
if is_segwit_mode(): if is_segwit_mode():
#Here using default callbacks for scripts (not used in Qt) #Here using default callbacks for scripts (not used in Qt)
return wallet_generate_recover_bip39( return wallet_generate_recover_bip39(method, walletspath,
method, walletspath, default_wallet_name, mixdepth=mixdepth) default_wallet_name, cli_display_user_words, cli_user_mnemonic_entry,
cli_get_wallet_passphrase_check, cli_get_wallet_file_name,
cli_do_use_mnemonic_extension, cli_get_mnemonic_extension,
mixdepth=mixdepth)
entropy = None entropy = None
if method == 'recover': if method == 'recover':

31
scripts/joinmarket-qt.py

@ -1548,11 +1548,14 @@ class JMMainWindow(QMainWindow):
def recoverWallet(self): def recoverWallet(self):
try: try:
success = wallet_generate_recover_bip39("recover", "wallets", success = wallet_generate_recover_bip39(
"wallet.jmdat", "recover", "wallets", "wallet.jmdat",
callbacks=(None, self.seedEntry, display_seed_callback=None,
self.getPassword, enter_seed_callback=self.seedEntry,
self.getWalletFileName)) enter_wallet_password_callback=self.getPassword,
enter_wallet_file_name_callback=self.getWalletFileName,
enter_if_use_seed_extension=None,
enter_seed_extension_callback=None)
if not success: if not success:
JMQtMessageBox(self, JMQtMessageBox(self,
"Failed to recover wallet.", "Failed to recover wallet.",
@ -1767,15 +1770,15 @@ class JMMainWindow(QMainWindow):
try: try:
# guaranteed to exist as load_program_config was called on startup: # guaranteed to exist as load_program_config was called on startup:
wallets_path = os.path.join(jm_single().datadir, 'wallets') wallets_path = os.path.join(jm_single().datadir, 'wallets')
success = wallet_generate_recover_bip39("generate", success = wallet_generate_recover_bip39(
wallets_path, "generate", wallets_path, "wallet.jmdat",
"wallet.jmdat", display_seed_callback=self.displayWords,
callbacks=(self.displayWords, enter_seed_callback=None,
None, enter_wallet_password_callback=self.getPassword,
self.getPassword, enter_wallet_file_name_callback=self.getWalletFileName,
self.getWalletFileName, enter_if_use_seed_extension=self.promptUseMnemonicExtension,
self.promptUseMnemonicExtension, enter_seed_extension_callback=self.promptInputMnemonicExtension)
self.promptInputMnemonicExtension))
if not success: if not success:
JMQtMessageBox(self, "Failed to create new wallet file.", JMQtMessageBox(self, "Failed to create new wallet file.",
title="Error", mbtype="warn") title="Error", mbtype="warn")

Loading…
Cancel
Save