Browse Source

wallet_utils:fix async callbacks call

add_frost_channel_encryption
zebra-lucky 2 months ago
parent
commit
f2f65fa085
  1. 36
      src/jmclient/wallet_utils.py

36
src/jmclient/wallet_utils.py

@ -772,13 +772,22 @@ async def wallet_generate_recover_bip39(
entropy = None
mnemonic_extension = None
if method == "generate":
if enter_if_use_seed_extension():
cb_res = enter_if_use_seed_extension()
if asyncio.iscoroutine(cb_res):
cb_res = await cb_res
if cb_res:
mnemonic_extension = enter_seed_extension_callback()
if asyncio.iscoroutine(mnemonic_extension):
mnemonic_extension = await mnemonic_extension
if not mnemonic_extension:
return False
elif method == 'recover':
words, mnemonic_extension = enter_seed_callback()
words = words and words.strip()
if enter_seed_callback:
cb_res = enter_seed_callback()
if asyncio.iscoroutine(cb_res):
cb_res = await cb_res
words, mnemonic_extension = cb_res
words = words and words.strip()
if not words:
return False
mnemonic_extension = mnemonic_extension and mnemonic_extension.strip()
@ -791,11 +800,15 @@ async def wallet_generate_recover_bip39(
.format(method))
password = enter_wallet_password_callback()
if asyncio.iscoroutine(password):
password = await password
if not password:
password = None
# return False
wallet_name = enter_wallet_file_name_callback()
if asyncio.iscoroutine(wallet_name):
wallet_name = await wallet_name
if wallet_name == "cancelled":
# currently used only by Qt, because user has option
# to click cancel in dialog.
@ -807,12 +820,17 @@ async def wallet_generate_recover_bip39(
support_fidelity_bonds = False
else:
support_fidelity_bonds = enter_do_support_fidelity_bonds()
if asyncio.iscoroutine(support_fidelity_bonds):
support_fidelity_bonds = await support_fidelity_bonds
wallet_cls = get_wallet_cls(get_configured_wallet_type(support_fidelity_bonds))
wallet = await create_wallet(
wallet_path, password, mixdepth, wallet_cls, entropy=entropy,
entropy_extension=mnemonic_extension)
mnemonic, mnext = wallet.get_mnemonic_words()
display_seed_callback and display_seed_callback(mnemonic, mnext or '')
if display_seed_callback:
cb_res = display_seed_callback(mnemonic, mnext or '')
if asyncio.iscoroutine(cb_res):
cb_res = await cb_res
wallet.close()
return True
@ -872,9 +890,13 @@ async def wallet_generate_recover(method, walletspath,
return True
def wallet_change_passphrase(walletservice,
enter_wallet_passphrase_callback=cli_get_wallet_passphrase_check):
async def wallet_change_passphrase(
walletservice,
enter_wallet_passphrase_callback=cli_get_wallet_passphrase_check
):
passphrase = enter_wallet_passphrase_callback()
if asyncio.iscoroutine(passphrase):
passphrase = await passphrase
if passphrase:
walletservice.change_wallet_passphrase(passphrase)
return True
@ -1852,7 +1874,7 @@ async def wallet_tool_main(wallet_root_path):
"recover", wallet_root_path, mixdepth=options.mixdepth)
return "Recovered wallet OK" if retval else "Failed"
elif method == "changepass":
retval = wallet_change_passphrase(wallet_service)
retval = await wallet_change_passphrase(wallet_service)
return "Changed encryption passphrase OK" if retval else "Failed"
elif method == "showutxos":
return await wallet_showutxos(wallet_service,

Loading…
Cancel
Save