fix #563
[electrum-nvc.git] / lib / transaction.py
index 0d63b87..150c5d8 100644 (file)
@@ -314,6 +314,8 @@ def get_address_from_input_script(bytes):
     match = [ opcodes.OP_PUSHDATA4, opcodes.OP_PUSHDATA4 ]
     if match_decoded(decoded, match):
         sig = decoded[0][1].encode('hex')
+        assert sig[-2:] == '01'
+        sig = sig[:-2]
         pubkey = decoded[1][1].encode('hex')
         return [pubkey], {pubkey:sig}, public_key_to_bc_address(pubkey.decode('hex'))
 
@@ -386,7 +388,7 @@ class Transaction:
 
     @classmethod
     def from_io(klass, inputs, outputs):
-        raw = klass.serialize(inputs, outputs, for_sig = -1) # for_sig=-1 means do not sign
+        raw = klass.serialize(inputs, outputs, for_sig = None) # for_sig=-1 means do not sign
         self = klass(raw)
         self.inputs = inputs
         self.outputs = outputs
@@ -591,6 +593,7 @@ class Transaction:
             address = None
 
         d['address'] = address
+        d['pubkeys'] = pubkeys
         d['signatures'] = signatures
         return d