URI: 
       tcreate a PendingAccount if coins have been sent to next_account - electrum - Electrum Bitcoin wallet
  HTML git clone https://git.parazyd.org/electrum
   DIR Log
   DIR Files
   DIR Refs
   DIR Submodules
       ---
   DIR commit 374daa25afd06237b07a6b1abed2c8fcc648e22b
   DIR parent 501bbdbd6799b0c86c02f7605c8c04e42b7382ac
  HTML Author: ThomasV <thomasv@gitorious>
       Date:   Wed, 10 Sep 2014 10:09:13 +0200
       
       create a PendingAccount if coins have been sent to next_account
       
       Diffstat:
         M gui/qt/main_window.py               |       2 +-
         M lib/wallet.py                       |      17 +++++++++++++++++
         M plugins/trezor.py                   |       2 +-
       
       3 files changed, 19 insertions(+), 2 deletions(-)
       ---
   DIR diff --git a/gui/qt/main_window.py b/gui/qt/main_window.py
       t@@ -2281,7 +2281,7 @@ class ElectrumWindow(QMainWindow):
                vbox.addLayout(h)
        
                private_keys = {}
       -        addresses = self.wallet.addresses(True, False)
       +        addresses = self.wallet.addresses(True)
                done = False
                def privkeys_thread():
                    for addr in addresses:
   DIR diff --git a/lib/wallet.py b/lib/wallet.py
       t@@ -1343,6 +1343,13 @@ class BIP32_HD_Wallet(BIP32_Wallet):
                        l.append(next_address)
                return l
        
       +    def get_address_index(self, address):
       +        if self.next_account:
       +            next_id, next_xpub, next_address = self.next_account
       +            if address == next_address:
       +                return next_id, (0,0)
       +        return BIP32_Wallet.get_address_index(self, address)
       +
            def num_accounts(self):
                keys = []
                for k, v in self.accounts.items():
       t@@ -1390,6 +1397,9 @@ class BIP32_HD_Wallet(BIP32_Wallet):
                assert type(self.accounts.get(k)) == PendingAccount
                self.accounts.pop(k)
                self.save_accounts()
       +        # prepare the next account
       +        self.next_account = self.get_next_account(password)
       +        self.storage.put('next_account', self.next_account)
        
            def create_pending_account(self, name, password):
                next_id, next_xpub, next_address = self.next_account if self.next_account else self.get_next_account_address(password)
       t@@ -1407,6 +1417,7 @@ class BIP32_HD_Wallet(BIP32_Wallet):
                if self.next_account is None:
                    try:
                        self.next_account = self.get_next_account(None)
       +                self.storage.put('next_account', self.next_account)
                    except:
                        pass
        
       t@@ -1418,6 +1429,12 @@ class BIP32_HD_Wallet(BIP32_Wallet):
                        self.add_account(next_id, BIP32_Account({'xpub':next_xpub}))
                        # here the user should get a notification
                        self.next_account = None
       +                self.storage.put('next_account', self.next_account)
       +            elif self.history.get(next_address, []):
       +                if next_id not in self.accounts:
       +                    print_error("create pending account", next_id)
       +                    self.accounts[next_id] = PendingAccount({'pending':next_address})
       +                    self.save_accounts()
        
        
        
   DIR diff --git a/plugins/trezor.py b/plugins/trezor.py
       t@@ -351,7 +351,7 @@ class TrezorWallet(NewWallet):
            def check_proper_device(self):
                self.get_client().ping('t')
                if not self.device_checked:
       -            address = self.addresses(False, False)[0]
       +            address = self.addresses(False)[0]
                    address_id = self.address_id(address)
                    n = self.get_client().expand_path(address_id)
                    device_address = self.get_client().get_address('Bitcoin', n)