electrum

Electrum Bitcoin wallet
git clone https://git.parazyd.org/electrum
Log | Files | Refs | Submodules

commit 1aeeab9ec6e90f33194d657a9034796aba9872bb
parent 9cb576a88c962b7bf6e0b81279906d7e597be580
Author: ThomasV <thomasv@electrum.org>
Date:   Sat,  4 Mar 2017 11:14:44 +0100

fix #2231: same serialize/deserialize format

Diffstat:
Mlib/commands.py | 17+++++++----------
1 file changed, 7 insertions(+), 10 deletions(-)

diff --git a/lib/commands.py b/lib/commands.py @@ -195,7 +195,9 @@ class Commands: @command('') def serialize(self, jsontx): - """Create a transaction from json inputs. Inputs must have a redeemPubkey. Outputs must be a list of (address, value). + """Create a transaction from json inputs. + Inputs must have a redeemPubkey. + Outputs must be a list of {'address':address, 'value':satoshi_amount}. """ keypairs = {} inputs = jsontx.get('inputs') @@ -206,23 +208,18 @@ class Commands: prevout_hash, prevout_n = txin['output'].split(':') txin['prevout_n'] = int(prevout_n) txin['prevout_hash'] = prevout_hash - else: - raise BaseException('Output point missing', txin) if txin.get('redeemPubkey'): pubkey = txin['redeemPubkey'] - txin['pubkeys'] = [pubkey] + txin['type'] = 'p2pkh' txin['x_pubkeys'] = [pubkey] txin['signatures'] = [None] txin['num_sig'] = 1 - privkey = txin.get('privkey') - if privkey: - keypairs[pubkey] = privkey + if txin.get('privkey'): + keypairs[pubkey] = txin['privkey'] elif txin.get('redeemScript'): raise BaseException('Not implemented') - else: - raise BaseException('No redeem script') - outputs = map(lambda x: (TYPE_ADDRESS, x[0], satoshis(x[1])), outputs) + outputs = map(lambda x: (TYPE_ADDRESS, x['address'], int(x['value'])), outputs) tx = Transaction.from_io(inputs, outputs, locktime=locktime) tx.sign(keypairs) return tx.as_dict()