コード例 #1
0
ファイル: base_wizard.py プロジェクト: opendime/electrum
 def on_cosigner(self, text, password, i):
     k = keystore.from_text(text, password)
     try:
         self.add_cosigner(k, i)
     except BaseException as e:
         self.show_message("error:" + str(e))
         return
     if i < self.n - 1:
         self.run('add_cosigners', password, i + 1)
     else:
         self.wallet = Multisig_Wallet(self.storage)
         self.create_addresses()
コード例 #2
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')
コード例 #3
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')