示例#1
0
    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)
示例#2
0
    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)
示例#3
0
 def test_serialize_as_hex(self):
     header = BlockHeader.deserialize(bitcoin_raw_header)
     self.assertEqual(bitcoin_raw_header.encode('hex'), header.as_hex())
示例#4
0
 def test_bitcoin_fields(self):
     self.assertEqual(BlockHeader.header_length(), 80)
     header = BlockHeader.deserialize(bitcoin_raw_header)
     self.assertEqual(bitcoin_header_fields, header.fields)
示例#5
0
 def coerce_hex_string(v):
     return BlockHeader.deserialize(x(v))
示例#6
0
 def test_serialize_as_hex(self):
     header = BlockHeader.deserialize(bitcoin_raw_header)
     self.assertEqual(bitcoin_raw_header.encode('hex'), header.as_hex())
示例#7
0
 def test_bitcoin_fields(self):
     self.assertEqual(BlockHeader.header_length(), 80)
     header = BlockHeader.deserialize(bitcoin_raw_header)
     self.assertEqual(bitcoin_header_fields, header.fields)
示例#8
0
 def coerce_hex_string(v):
     return BlockHeader.deserialize(x(v))