async def create_revocation_state(blob_storage_reader_handle: int,
                                  rev_reg_def_json: str,
                                  rev_reg_delta_json: str,
                                  timestamp: int,
                                  cred_rev_id: str) -> str:
    """
    Create revocation state for a credential in the particular time moment.

    :param blob_storage_reader_handle: configuration of blob storage reader handle that will allow to read revocation tails
    :param rev_reg_def_json: revocation registry definition json
    :param rev_reg_delta_json: revocation registry definition delta json
    :param timestamp: time represented as a total number of seconds from Unix Epoch
    :param cred_rev_id: user credential revocation id in revocation registry
    :return: revocation state json {
         "rev_reg": <revocation registry>,
         "witness": <witness>,
         "timestamp" : integer
    }
    """

    logger = logging.getLogger(__name__)
    logger.debug("create_revocation_info: >>> blob_storage_reader_handle: %r, rev_reg_def_json: %r,"
                 " rev_reg_delta_json: %r, timestamp: %r, cred_rev_id: %r",
                 blob_storage_reader_handle,
                 rev_reg_def_json,
                 rev_reg_delta_json,
                 timestamp,
                 cred_rev_id)

    if not hasattr(create_revocation_state, "cb"):
        logger.debug("create_revocation_state: Creating callback")
        create_revocation_state.cb = create_cb(CFUNCTYPE(None, c_int32, c_int32, c_char_p))

    c_blob_storage_reader_handle = c_int32(blob_storage_reader_handle)
    c_rev_reg_def_json = c_char_p(rev_reg_def_json.encode('utf-8'))
    c_rev_reg_delta_json = c_char_p(rev_reg_delta_json.encode('utf-8'))
    c_timestamp = c_uint64(timestamp)
    c_cred_rev_id = c_char_p(cred_rev_id.encode('utf-8'))

    rev_state_json = await do_call('indy_create_revocation_state',
                                   c_blob_storage_reader_handle,
                                   c_rev_reg_def_json,
                                   c_rev_reg_delta_json,
                                   c_timestamp,
                                   c_cred_rev_id,
                                   create_revocation_state.cb)

    res = rev_state_json.decode()
    logger.debug("create_revocation_state: <<< res: %r", res)
    return res
Create revocation state for a credential in the particular time moment.

    :param blob_storage_reader_handle: configuration of blob storage reader handle that will allow to read revocation tails
    :param rev_reg_def_json: revocation registry definition json
    :param rev_reg_delta_json: revocation registry definition delta json
    :param timestamp: time represented as a total number of seconds from Unix Epoch
    :param cred_rev_id: user credential revocation id in revocation registry
    :return: revocation state json {
         "rev_reg": <revocation registry>,
         "witness": <witness>,
         "timestamp" : integer
    }