def deserialize(self, raw): """Deserialize hex-encoded block/block header. Returns: Two-tuple of (block, block_header) """ raw = x(raw) try: if len(raw) == BlockHeader.header_length(): block_header = BlockHeader.deserialize(raw) return (None, block_header) else: # We don't use block.get_header() in case the header is # correct but the rest of the block isn't. block_header = BlockHeader.deserialize(raw[0:BlockHeader.header_length()]) block = Block.deserialize(raw) return (block, block_header) except Exception as e: return (None, None)
def deserialize(self, raw): """Deserialize hex-encoded block/block header. Returns: Two-tuple of (block, block_header) """ raw = x(raw) try: if len(raw) == BlockHeader.header_length(): block_header = BlockHeader.deserialize(raw) return (None, block_header) else: # We don't use block.get_header() in case the header is # correct but the rest of the block isn't. block_header = BlockHeader.deserialize( raw[0:BlockHeader.header_length()]) block = Block.deserialize(raw) return (block, block_header) except Exception as e: return (None, None)
def test_serialize_as_hex(self): header = BlockHeader.deserialize(bitcoin_raw_header) self.assertEqual(bitcoin_raw_header.encode('hex'), header.as_hex())
def test_bitcoin_fields(self): self.assertEqual(BlockHeader.header_length(), 80) header = BlockHeader.deserialize(bitcoin_raw_header) self.assertEqual(bitcoin_header_fields, header.fields)
def coerce_hex_string(v): return BlockHeader.deserialize(x(v))
def test_serialize_as_hex(self): header = BlockHeader.deserialize(bitcoin_raw_header) self.assertEqual(bitcoin_raw_header.encode('hex'), header.as_hex())
def test_bitcoin_fields(self): self.assertEqual(BlockHeader.header_length(), 80) header = BlockHeader.deserialize(bitcoin_raw_header) self.assertEqual(bitcoin_header_fields, header.fields)
def coerce_hex_string(v): return BlockHeader.deserialize(x(v))