@classmethod
def private2compressed_public(cls, private_key: str) ->bytes:
    """
        generate compressed public key from private key

        :param private_key: private key
        :return: compressed public key in bytes format

        .. code-block: python

            >>> from asimov import AccountFactory
            >>> AccountFactory.private2compressed_public("0xbba692e559fda550d0157669b101bafddb23e7f57aeeb5cef5494e7a41a1f056")
            >>> b'023a68576342553357f042c6ede12bd3ed01cb61ad39848908883cab93f66c7601'
        """
    key_hex = cls.__private2public(private_key)
    key_string = str(key_hex, 'utf8')
    key_half = key_hex[:len(key_hex) // 2]
    last_byte = int(key_string[-1], 16)
    btc_byte = b'02' if last_byte % 2 == 0 else b'03'
    public_key = btc_byte + key_half
    return public_key
