Exemple #1
0
 def on_hardware_seed(self):
     from keystore import load_keystore
     self.storage.put('key_type', 'hw_seed')
     keystore = load_keystore(self.storage, None)
     self.plugin = keystore  #fixme .plugin
     keystore.on_restore_wallet(self)
     self.wallet = Standard_Wallet(self.storage)
     self.run('create_addresses')
Exemple #2
0
 def create_wallet(self, k, password):
     if self.wallet_type == 'standard':
         k.save(self.storage, 'x/')
         self.wallet = Standard_Wallet(self.storage)
         self.run('create_addresses')
     elif self.wallet_type == 'multisig':
         self.storage.put('wallet_type', self.multisig_type)
         self.add_cosigner(k, 0)
         xpub = k.get_master_public_key()
         self.stack = []
         self.run('show_xpub_and_add_cosigners', password, xpub)
Exemple #3
0
 def on_password(self, password):
     self.storage.put('use_encryption', bool(password))
     for k in self.keystores:
         if k.may_have_password():
             k.update_password(None, password)
     if self.wallet_type == 'standard':
         self.storage.put('keystore', k.dump())
         self.wallet = Standard_Wallet(self.storage)
         self.run('create_addresses')
     elif self.wallet_type == 'multisig':
         for i, k in enumerate(self.keystores):
             self.storage.put('x%d/' % (i + 1), k.dump())
         self.storage.write()
         self.wallet = Multisig_Wallet(self.storage)
         self.run('create_addresses')
Exemple #4
0
    def on_keystore(self, k, password):
        if self.wallet_type == 'standard':
            self.storage.put('keystore', k.dump())
            self.wallet = Standard_Wallet(self.storage)
            self.run('create_addresses')
        elif self.wallet_type == 'multisig':

            if k.xpub in map(lambda x: x.xpub, self.keystores):
                raise BaseException('duplicate key')
            self.keystores.append(k)

            if len(self.keystores) == 1:
                xpub = k.get_master_public_key()
                self.stack = []
                self.run('show_xpub_and_add_cosigners', xpub)
            elif len(self.keystores) < self.n:
                self.run('choose_keystore')
            else:
                for i, k in enumerate(self.keystores):
                    self.storage.put('x%d/' % (i + 1), k.dump())
                self.storage.write()
                self.wallet = Multisig_Wallet(self.storage)
                self.run('create_addresses')