electrum

Electrum Bitcoin wallet
git clone https://git.parazyd.org/electrum
Log | Files | Refs | Submodules

commit 52b43c57b8855f76f16408af81d957a067164e51
parent ed59498cccf33b096a37f6c5b2c44d3b30d9e6eb
Author: ThomasV <thomasv@gitorious>
Date:   Wed, 25 Feb 2015 22:48:47 +0100

android create and restore

Diffstat:
Mgui/android.py | 74++++++++++++++++++++++++++------------------------------------------------
Mlib/wallet.py | 4+++-
2 files changed, 29 insertions(+), 49 deletions(-)

diff --git a/gui/android.py b/gui/android.py @@ -907,31 +907,43 @@ class ElectrumGui: storage = WalletStorage(config) if not storage.file_exists: action = self.restore_or_create() - if not action: exit() + if not action: + exit() + + password = droid.dialogGetPassword('Choose a password').result + if password: + password2 = droid.dialogGetPassword('Confirm password').result + if password != password2: + modal_dialog('Error','passwords do not match') + exit() - wallet = Wallet(storage) if action == 'create': - wallet.init_seed(None) - self.show_seed() - wallet.save_seed(None) - wallet.synchronize() # generate first addresses offline - + wallet = Wallet(storage) + seed = wallet.make_seed() + modal_dialog('Your seed is:', seed) elif action == 'restore': seed = self.seed_dialog() if not seed: exit() - wallet.init_seed(str(seed)) - wallet.save_seed(None) + if not Wallet.is_seed(seed): + exit() + wallet = Wallet.from_seed(seed, storage) else: exit() + msg = "Creating wallet" if action == 'create' else "Restoring wallet" + droid.dialogCreateSpinnerProgress("Electrum", msg) + droid.dialogShow() + wallet.add_seed(seed, password) + wallet.create_master_keys(password) + wallet.create_main_account(password) wallet.start_threads(network) - if action == 'restore': - if not self.restore_wallet(): - exit() - - self.password_dialog() + wallet.restore(lambda x: None) + else: + wallet.synchronize() + droid.dialogDismiss() + droid.vibrate() else: wallet = Wallet(storage) @@ -978,7 +990,6 @@ class ElectrumGui: if not response: return if response.get('which') == 'negative': return - return 'restore' if response.get('which') == 'neutral' else 'create' @@ -992,39 +1003,6 @@ class ElectrumGui: return else: m = modal_input('Mnemonic','please enter your code') - return str(seed) - def network_dialog(self): - return True - - - def show_seed(self): - modal_dialog('Your seed is:', wallet.get_mnemonic(None)) - - - def password_dialog(self): - change_password_dialog() - - - def restore_wallet(self): - - msg = "recovering wallet..." - droid.dialogCreateSpinnerProgress("Electrum", msg) - droid.dialogShow() - - wallet.restore(lambda x: None) - - droid.dialogDismiss() - droid.vibrate() - - if wallet.is_found(): - wallet.fill_addressbook() - modal_dialog("recovery successful") - else: - if not modal_question("no transactions found for this seed","do you want to keep this wallet?"): - return False - - return True - diff --git a/lib/wallet.py b/lib/wallet.py @@ -1230,7 +1230,9 @@ class Deterministic_Wallet(Abstract_Wallet): wait_for_wallet() else: self.synchronize() - self.fill_addressbook() + + # disable this because it crashes android + #self.fill_addressbook() def is_beyond_limit(self, address, account, is_change):