def show_main(): gui.create_menu( buttons=[("Wallets", wallets_menu), ( "Master keys", xpubs_menu), ("Sign transaction", scan_transaction), ("Verify address", scan_address), ("Use another password", ask_for_password ), ("Switch network (%s)" % network["name"], network_menu), ("Settings", settings_menu)])
def xpubs_menu(): def selector(name, derivation): def cb(): show_xpub("Master "+name, derivation) return cb buttons = [] for name, derivation in DEFAULT_XPUBS: buttons.append((name, selector(name, derivation))) gui.create_menu(buttons=buttons, cb_back=show_main, title="Select the master key")
def settings_menu(): gui.create_menu(buttons=[ ("Show recovery phrase", show_mnemonic), ("Save key to memory", save_entropy), ("Delete key from memory", delete_entropy), ("Security settings", cb_with_args(popups.show_settings, {"usb": USB_ENABLED, "developer": DEV_ENABLED}, save_settings)), ], cb_back=show_main,title="Careful. Think twice.")
def more_xpubs_menu(): def selector(name, derivation): def cb(): show_xpub("Master "+name, derivation) return cb buttons = [] for name, derivation in ALL_XPUBS: buttons.append((name, selector(name, derivation))) buttons.append(("Enter custom derivation", get_custom_xpub_path)) gui.create_menu(buttons=buttons, cb_back=xpubs_menu, title="Select the master key")
def wallets_menu(): buttons = [] def wrapper(w): def cb(): select_wallet(w) return cb for wallet in keystore.wallets: buttons.append((wallet.name, wrapper(wallet))) buttons.append((lv.SYMBOL.PLUS+" Add new wallet (scan)", add_new_wallet)) gui.create_menu(buttons=buttons, cb_back=show_main, title="Select the wallet")
def network_menu(): def selector(name): def cb(): try: select_network(name) show_main() except Exception as e: gui.error("%r" % e) return cb # could be done with iterator # but order is unknown then gui.create_menu(buttons=[ ("Mainnet", selector("main")), ("Testnet", selector("test")), ("Regtest", selector("regtest")), ("Signet", selector("signet")) ], title="Select the network")