URI: 
       tadd input_info when transaction is created - electrum - Electrum Bitcoin wallet
  HTML git clone https://git.parazyd.org/electrum
   DIR Log
   DIR Files
   DIR Refs
   DIR Submodules
       ---
   DIR commit 401c24e4ad3dfa99c2e985ba7270807664be7838
   DIR parent 4eb1eb3677759dc2215a062a8f1568589525a28e
  HTML Author: ThomasV <thomasv@gitorious>
       Date:   Sun, 29 Sep 2013 02:43:30 +0200
       
       add input_info when transaction is created
       
       Diffstat:
         M lib/transaction.py                  |       9 ++++++++-
         M lib/wallet.py                       |      12 +++++++++---
       
       2 files changed, 17 insertions(+), 4 deletions(-)
       ---
   DIR diff --git a/lib/transaction.py b/lib/transaction.py
       t@@ -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']
   DIR diff --git a/lib/wallet.py b/lib/wallet.py
       t@@ -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)
        
       t@@ -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)
       t@@ -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)