X-Git-Url: https://git.novaco.in/?a=blobdiff_plain;f=lib%2Fwallet.py;h=f476cddad617c2f9252a70887492e72fa45d87af;hb=042c65939dde0eae0736f778703ae734e513e142;hp=16a259c817a3ffde252fe7a91edd30e31bb0e008;hpb=5ce50f44210e3775e160ad7ec783220efc1918d8;p=electrum-nvc.git diff --git a/lib/wallet.py b/lib/wallet.py index 16a259c..f476cdd 100644 --- a/lib/wallet.py +++ b/lib/wallet.py @@ -207,8 +207,8 @@ class Abstract_Wallet: tx.add_pubkey_addresses(self.transactions) # outputs of tx: inputs of tx2 - for x, v in tx.outputs: - if x.startswith('pubkey:'): + for type, x, v in tx.outputs: + if type == 'pubkey': for tx2 in self.transactions.values(): tx2.add_pubkey_addresses({h:tx}) @@ -648,7 +648,7 @@ class Abstract_Wallet: # Insert the change output at a random position in the outputs posn = random.randint(0, len(outputs)) - outputs[posn:posn] = [( change_addr, change_amount)] + outputs[posn:posn] = [( 'address', change_addr, change_amount)] return outputs def get_history(self, address): @@ -772,11 +772,12 @@ class Abstract_Wallet: return default_label def make_unsigned_transaction(self, outputs, fee=None, change_addr=None, domain=None, coins=None ): - for address, x in outputs: - if address.startswith('OP_RETURN:'): + for type, address, x in outputs: + if type == 'op_return': continue - assert is_address(address), "Address " + address + " is invalid!" - amount = sum( map(lambda x:x[1], outputs) ) + if type == 'address': + assert is_address(address), "Address " + address + " is invalid!" + amount = sum( map(lambda x:x[2], outputs) ) inputs, total, fee = self.choose_tx_inputs( amount, fee, len(outputs), domain, coins ) if not inputs: raise ValueError("Not enough funds") @@ -1251,7 +1252,7 @@ class Deterministic_Wallet(Abstract_Wallet): return False prev_addresses = prev_addresses[max(0, i - limit):] for addr in prev_addresses: - if self.address_is_old(addr): + if self.history.get(addr): return False return True @@ -1278,7 +1279,7 @@ class NewWallet(Deterministic_Wallet): def get_master_public_key(self): """xpub of the main account""" - return self.master_public_keys["m/0'"] + return self.master_public_keys.get("m/0'") def get_master_public_keys(self): out = {} @@ -1559,8 +1560,8 @@ class Wallet(object): config = storage.config self.wallet_types = [ - ('standard', ("Standard wallet"), OldWallet), - ('imported', ("Imported wallet"), Imported_Wallet), + ('standard', ("Standard wallet"), NewWallet if config.get('bip32') else OldWallet), + ('imported', ("Imported wallet"), Imported_Wallet), ('2of2', ("Multisig wallet (2 of 2)"), Wallet_2of2), ('2of3', ("Multisig wallet (2 of 3)"), Wallet_2of3) ]