tadd txin_type in add_input_info, remove inefficient search - electrum - Electrum Bitcoin wallet HTML git clone https://git.parazyd.org/electrum DIR Log DIR Files DIR Refs DIR Submodules --- DIR commit 9aa3f2d9e29d9c0d4cec7336c6a2140bad8b77c2 DIR parent d28f6034835dfea922dc30ff4110be40651fb4c4 HTML Author: ThomasV <thomasv@electrum.org> Date: Sat, 7 Oct 2017 12:15:18 +0200 add txin_type in add_input_info, remove inefficient search Diffstat: M lib/transaction.py | 1 + M lib/wallet.py | 12 ++---------- 2 files changed, 3 insertions(+), 10 deletions(-) --- DIR diff --git a/lib/transaction.py b/lib/transaction.py t@@ -474,6 +474,7 @@ def deserialize(raw): for i in range(n_vin): txin = d['inputs'][i] parse_witness(vds, txin) + # segwit-native script if not txin.get('scriptSig'): if txin['num_sig'] == 1: txin['type'] = 'p2wpkh' DIR diff --git a/lib/wallet.py b/lib/wallet.py t@@ -1072,15 +1072,9 @@ class Abstract_Wallet(PrintError): return Transaction.from_io(inputs, outputs) def add_input_info(self, txin): - txin['type'] = self.txin_type - # Add address for utxo that are in wallet - if txin.get('scriptSig') == '': - coins = self.get_utxos() - for item in coins: - if txin.get('prevout_hash') == item.get('prevout_hash') and txin.get('prevout_n') == item.get('prevout_n'): - txin['address'] = item.get('address') address = txin['address'] if self.is_mine(address): + txin['type'] = self.get_txin_type(address) self.add_input_sig_info(txin, address) def can_sign(self, tx): t@@ -1464,15 +1458,13 @@ class Imported_Wallet(Abstract_Wallet): return self.addresses[address].get('type', 'address') def add_input_sig_info(self, txin, address): - txin['type'] = self.get_txin_type(address) if self.is_watching_only(): addrtype, hash160 = b58_address_to_hash160(address) x_pubkey = 'fd' + bh2u(bytes([addrtype]) + hash160) txin['x_pubkeys'] = [x_pubkey] txin['signatures'] = [None] return - - if txin_type in ['p2pkh', 'p2wkh', 'p2wkh-p2sh']: + if txin['type'] in ['p2pkh', 'p2wkh', 'p2wkh-p2sh']: pubkey = self.addresses[address]['pubkey'] txin['num_sig'] = 1 txin['x_pubkeys'] = [pubkey]