if not interface.start(wait=True):
print_msg("Not connected, aborting. Try option -o if you want to restore offline.")
sys.exit(1)
- wallet.interface = interface
- verifier = WalletVerifier(interface, config)
- verifier.start()
- wallet.set_verifier(verifier)
+ blockchain = BlockchainVerifier(interface, config)
+ blockchain.start()
+ wallet.start_threads(interface, blockchain)
print_msg("Recovering wallet...")
- WalletSynchronizer(wallet).start()
wallet.update()
if wallet.is_found():
print_msg("Recovery successful")
if cmd not in offline_commands and not options.offline:
interface = Interface(config)
interface.register_callback('connected', lambda: sys.stderr.write("Connected to " + interface.connection_msg + "\n"))
+
if not interface.start(wait=True):
print_msg("Not connected, aborting.")
sys.exit(1)
- wallet.interface = interface
- verifier = WalletVerifier(interface, config)
- verifier.start()
- wallet.set_verifier(verifier)
- synchronizer = WalletSynchronizer(wallet)
- synchronizer.start()
+ blockchain = BlockchainVerifier(interface, config)
+ blockchain.start()
+ wallet.start_threads(interface, blockchain)
wallet.update()
if cmd not in offline_commands and not options.offline:
- verifier.stop()
- synchronizer.stop()
+ wallet.stop_threads()
interface.stop()
+ blockchain.stop()
time.sleep(0.1)
sys.exit(0)
from electrum.wallet import format_satoshis
from electrum.bitcoin import Transaction, is_valid
from electrum import mnemonic
-from electrum import util, bitcoin, commands, Interface, Wallet, TxVerifier, WalletSynchronizer
-from electrum import SimpleConfig, Wallet, WalletSynchronizer, WalletStorage
+from electrum import util, bitcoin, commands, Interface, Wallet
+from electrum import SimpleConfig, Wallet, WalletStorage
import bmp, pyqrnative
interface = self.wallet.interface
blockchain = self.wallet.verifier.blockchain
-
- self.wallet.verifier.stop()
- self.wallet.synchronizer.stop()
+ self.wallet.stop_threads()
- # create wallet
+ # create new wallet
wallet = Wallet(storage)
- wallet.interface = interface
-
- verifier = TxVerifier(interface, blockchain, storage)
- verifier.start()
- wallet.set_verifier(verifier)
-
- synchronizer = WalletSynchronizer(wallet)
- synchronizer.start()
+ wallet.start_threads(interface, blockchain)
self.load_wallet(wallet)
else:
wallet = Wallet(storage)
- wallet.interface = self.interface
-
- verifier = TxVerifier(self.interface, self.blockchain, storage)
- verifier.start()
- wallet.set_verifier(verifier)
-
- synchronizer = WalletSynchronizer(wallet)
- synchronizer.start()
+ wallet.start_threads(self.interface, self.blockchain)
s = Timer()
s.start()
self.app.exec_()
- verifier.stop()
- synchronizer.stop()
+ wallet.stop_threads()
from electrum.util import format_satoshis, set_verbosity
from electrum.bitcoin import is_valid
-from electrum import Wallet, WalletVerifier, WalletSynchronizer, WalletStorage
+from electrum import Wallet, WalletStorage
import tty, sys
class ElectrumGui:
- def __init__(self, config, interface):
+ def __init__(self, config, interface, blockchain):
self.config = config
storage = WalletStorage(config)
print "Wallet not found. try 'electrum create'"
exit()
- wallet = Wallet(storage)
- wallet.interface = interface
- self.wallet = wallet
-
- verifier = WalletVerifier(interface, config)
- verifier.start()
- wallet.set_verifier(verifier)
- synchronizer = WalletSynchronizer(wallet)
- synchronizer.start()
+ self.wallet = Wallet(storage)
+ self.wallet.start_threads(interface, blockchain)
self.stdscr = curses.initscr()
curses.noecho()
return True
+ def start_threads(self, interface, blockchain):
+ from verifier import TxVerifier
+ self.interface = interface
+ self.verifier = TxVerifier(interface, blockchain, self.storage)
+ self.verifier.start()
+ self.synchronizer = WalletSynchronizer(self)
+ self.synchronizer.start()
+
+ def stop_threads(self):
+ self.verifier.stop()
+ self.synchronizer.stop()
+
+
class WalletSynchronizer(threading.Thread):