electrum

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

commit 401c24e4ad3dfa99c2e985ba7270807664be7838
parent 4eb1eb3677759dc2215a062a8f1568589525a28e
Author: ThomasV <thomasv@gitorious>
Date:   Sun, 29 Sep 2013 02:43:30 +0200

add input_info when transaction is created

Diffstat:
Mlib/transaction.py | 9++++++++-
Mlib/wallet.py | 12+++++++++---
2 files changed, 17 insertions(+), 4 deletions(-)

diff --git a/lib/transaction.py b/lib/transaction.py @@ -391,7 +391,14 @@ class Transaction: self.outputs = outputs extras = [] for i in self.inputs: - e = { 'txid':i['tx_hash'], 'vout':i['index'], 'scriptPubKey':i.get('raw_output_script') } + + e = { 'txid':i['tx_hash'], + 'vout':i['index'], + 'scriptPubKey':i.get('raw_output_script'), + 'KeyID':i['KeyID'], + 'redeemScript':i.get('redeemScript'), + 'redeemPubkey':i.get('redeemPubkey') + } extras.append(e) # fixme: simplify this i['prevout_hash'] = i['tx_hash'] diff --git a/lib/wallet.py b/lib/wallet.py @@ -1181,6 +1181,7 @@ class Wallet: inputs, total, fee = self.choose_tx_inputs( amount, fee, domain ) if not inputs: raise ValueError("Not enough funds") + self.add_input_info(inputs) outputs = self.add_tx_change(inputs, outputs, amount, fee, total, change_addr) return Transaction.from_io(inputs, outputs) @@ -1196,9 +1197,8 @@ class Wallet: return tx - def sign_transaction(self, tx, password): - keypairs = {} - for i, txin in enumerate(tx.inputs): + def add_input_info(self, inputs): + for txin in inputs: address = txin['address'] account, sequence = self.get_address_index(address) txin['KeyID'] = self.get_keyID(account, sequence) @@ -1207,6 +1207,12 @@ class Wallet: txin['redeemScript'] = redeemScript else: txin['redeemPubkey'] = self.accounts[account].get_pubkey(*sequence) + + + def sign_transaction(self, tx, password): + keypairs = {} + for i, txin in enumerate(tx.inputs): + address = txin['address'] private_keys = self.get_private_key(address, password) for sec in private_keys: pubkey = public_key_from_private_key(sec)