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)