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()
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')
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')