tMerge pull request #906 from Tafelpoot/tx_optimize - electrum - Electrum Bitcoin wallet HTML git clone https://git.parazyd.org/electrum DIR Log DIR Files DIR Refs DIR Submodules --- DIR commit c1226b0f6ea3679f25a71a060fc03413d9dcbd64 DIR parent cf1fbbf3ad67eb506bf729a6a686a8f76afe85d9 HTML Author: ThomasV <thomasv1@gmx.de> Date: Thu, 30 Oct 2014 12:23:06 +0100 Merge pull request #906 from Tafelpoot/tx_optimize optimized deserialize and modified assert for multisig Diffstat: M lib/transaction.py | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) --- DIR diff --git a/lib/transaction.py b/lib/transaction.py t@@ -466,9 +466,7 @@ def parse_output(vds, i): d = {} d['value'] = vds.read_int64() scriptPubKey = vds.read_bytes(vds.read_compact_size()) - type, address = get_address_from_output_script(scriptPubKey) - d['type'] = type - d['address'] = address + d['type'], d['address'] = get_address_from_output_script(scriptPubKey) d['scriptPubKey'] = scriptPubKey.encode('hex') d['prevout_n'] = i return d t@@ -481,13 +479,9 @@ def deserialize(raw): start = vds.read_cursor d['version'] = vds.read_int32() n_vin = vds.read_compact_size() - d['inputs'] = [] - for i in xrange(n_vin): - d['inputs'].append(parse_input(vds)) + d['inputs'] = list(parse_input(vds) for i in xrange(n_vin)) n_vout = vds.read_compact_size() - d['outputs'] = [] - for i in xrange(n_vout): - d['outputs'].append(parse_output(vds, i)) + d['outputs'] = list(parse_output(vds,i) for i in xrange(n_vout)) d['lockTime'] = vds.read_uint32() return d t@@ -553,8 +547,8 @@ class Transaction: def multisig_script(klass, public_keys, num=None): n = len(public_keys) if num is None: num = n - # supports only "2 of 2", and "2 of 3" transactions - assert num <= n and n in [2,3] + + assert num <= n and n in [2,3] , 'Only "2 of 2", and "2 of 3" transactions are supported' if num==2: s = '52'