Esempio n. 1
0
 def _unpack_proof(raw: bytes) -> TxProof:
     io = BytesIO(raw)
     pack_version = bitcoinx.read_varint(io.read)
     if pack_version == 1:
         position = bitcoinx.read_varint(io.read)
         branch_count = bitcoinx.read_varint(io.read)
         merkle_branch = [
             bitcoinx.read_varbytes(io.read) for i in range(branch_count)
         ]
         return TxProof(position, merkle_branch)
     raise DataPackingError(f"Unhandled packing format {pack_version}")
Esempio n. 2
0
 def read(cls, read):
     prev_hash = read(32)
     prev_idx = read_le_uint32(read)
     script_sig = Script(read_varbytes(read))
     sequence = read_le_uint32(read)
     kwargs = {'x_pubkeys': [], 'address': None, 'threshold': 0, 'signatures': []}
     if prev_hash != bytes(32):
         _parse_script_sig(script_sig.to_bytes(), kwargs)
     result = cls(prev_hash, prev_idx, script_sig, sequence, value=0, **kwargs)
     if not result.is_complete():
         result.value = read_le_int64(read)
     return result