def compare_broadcast_old_to_current(
     self,
     converted_current_message: BroadcastMessage,
     original_current_message: BroadcastMessage,
 ):
     self.assertEqual(
         original_current_message.rawbytes(),
         converted_current_message.rawbytes(),
     )
 def test_get_connection_protocol_version__wrong_message(self):
     wrong_message = BroadcastMessage(message_hash=Sha256Hash(
         crypto.double_sha256(b"hello")),
                                      network_num=1,
                                      source_id="",
                                      blob=bytearray(1))
     input_buffer = InputBuffer()
     input_buffer.add_bytes(wrong_message.rawbytes())
     self.assertEqual(
         3,
         self.version_manager.get_connection_protocol_version(input_buffer))
    def test_message_hash_preview_incomplete(self):
        blob = bytearray(1 for _ in range(4))
        broadcast_message = BroadcastMessage(self.HASH, 123, self.NODE_ID, True, blob)

        is_full_message, msg_hash, network_num, node_id, payload_length = \
            bloxroute_message_factory.get_broadcast_message_preview(
                create_input_buffer_with_bytes(broadcast_message.rawbytes()
                                               [:BX_HDR_COMMON_OFF + SHA256_HASH_LEN + NETWORK_NUM_LEN - 1]))
        self.assertFalse(is_full_message)
        self.assertIsNone(msg_hash)
        self.assertIsNone(network_num)
        self.assertIsNone(node_id)
        self.assertIsNone(payload_length)
 def test_broadcast_message_cut_through_to_old(self):
     block_hash = Sha256Hash(helpers.generate_bytes(crypto.SHA256_HASH_LEN))
     blob = helpers.generate_bytes(250)
     network_num = 1234
     new_message = BroadcastMessage(network_num=network_num,
                                    message_hash=block_hash,
                                    source_id=NEW_VERSION_SOURCE_ID,
                                    blob=blob)
     new_message_bytes = new_message.rawbytes()
     old_message_bytes = bloxroute_version_manager.convert_message_first_bytes_to_older_version(
         5, BroadcastMessage.MESSAGE_TYPE, new_message_bytes)
     msg_type, payload_length = BroadcastMessageV5.unpack(old_message_bytes)
     old_msg = BroadcastMessageV5.initialize_class(
         BroadcastMessageV5, old_message_bytes, (msg_type, payload_length))
     self._validate_messages_match(old_msg, new_message)
    def test_peek_network_num(self):
        network_num = 12345
        hash_bytes = helpers.generate_bytearray(SHA256_HASH_LEN)
        msg_hash = Sha256Hash(hash_bytes)
        block_bytes = helpers.generate_bytearray(1234)

        broadcast_msg = BroadcastMessage(message_hash=msg_hash, network_num=network_num, source_id="", blob=block_bytes)

        msg_bytes = broadcast_msg.rawbytes()
        input_buffer = InputBuffer()
        input_buffer.add_bytes(msg_bytes)

        peeked_network_num = BroadcastMessage.peek_network_num(input_buffer)

        self.assertEqual(network_num, peeked_network_num)