def sweep(cls, privkeys, network, to_address, fee): inputs = [] keypairs = {} for privkey in privkeys: pubkey = public_key_from_private_key(privkey) address = address_from_private_key(privkey) u = network.synchronous_get( ('blockchain.address.listunspent', [address])) pay_script = cls.pay_script(TYPE_ADDRESS, address) for item in u: item['scriptPubKey'] = pay_script item['redeemPubkey'] = pubkey item['address'] = address item['prevout_hash'] = item['tx_hash'] item['prevout_n'] = item['tx_pos'] item['pubkeys'] = [pubkey] item['x_pubkeys'] = [pubkey] item['signatures'] = [None] item['num_sig'] = 1 inputs += u keypairs[pubkey] = privkey if not inputs: return total = sum(i.get('value') for i in inputs) - fee outputs = [(TYPE_ADDRESS, to_address, total)] self = cls.from_io(inputs, outputs) self.sign(keypairs) return self
def get_private_key(self, sequence, wallet, password): for_change, i = sequence assert for_change == 0 address = self.get_addresses(0)[i] pk = pw_decode(self.keypairs[address][1], password) # this checks the password if address != address_from_private_key(pk): raise InvalidPassword() return [pk]
def get_private_key(self, sequence, wallet, password): for_change, i = sequence assert for_change == 0 address = self.get_addresses(0)[i] pk = pw_decode(self.keypairs[address][1], password) # this checks the password if address != address_from_private_key(pk): raise InvalidPassword() return [pk]
def test_address_from_private_key(self): result = address_from_private_key(self.private_key) self.assertEqual(self.main_address, result)