Exemplo n.º 1
0
 def serialize(self, for_sig=None):
     inputs = self.inputs()
     outputs = self.outputs()
     s = int_to_hex(1, 4)  # version
     s += var_int(len(inputs))  # number of inputs
     for i, txin in enumerate(inputs):
         s += self.serialize_input(txin, i, for_sig)
     s += var_int(len(outputs))  # number of outputs
     for output in outputs:
         output_type, addr, amount = output
         s += int_to_hex(amount, 8)  # amount
         script = self.pay_script(output_type, addr)
         s += var_int(len(script) / 2)  # script length
         s += script  # script
     s += int_to_hex(0, 4)  # lock time
     if for_sig is not None and for_sig != -1:
         s += int_to_hex(1, 4)  # hash type
     return s
Exemplo n.º 2
0
 def serialize_input(cls, txin, i, for_sig):
     # Prev hash and index
     s = txin['prevout_hash'].decode('hex')[::-1].encode('hex')
     s += int_to_hex(txin['prevout_n'], 4)
     # Script length, script, sequence
     script = cls.input_script(txin, i, for_sig)
     s += var_int(len(script) / 2)
     s += script
     s += "ffffffff"
     return s
Exemplo n.º 3
0
def msg_magic(message):
    varint = var_int(len(message))
    encoded_varint = "".join(
        [chr(int(varint[i:i + 2], 16)) for i in xrange(0, len(varint), 2)])
    return "\x18Bitcoin Signed Message:\n" + encoded_varint + message