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