async def build_get_revoc_reg_request(submitter_did: Optional[str],
                                      revoc_reg_def_id: str,
                                      timestamp: int) -> str:
    """
    Builds a GET_REVOC_REG request. Request to get the accumulated state of the Revocation Registry
    by ID. The state is defined by the given timestamp.

    :param submitter_did: (Optional) DID of the read request sender (if not provided then default Libindy DID will be used).
    :param revoc_reg_def_id:  ID of the corresponding Revocation Registry Definition in ledger.
    :param timestamp: Requested time represented as a total number of seconds from Unix Epoch
    :return: Request result as json.
    """

    logger = logging.getLogger(__name__)
    logger.debug("build_get_revoc_reg_request: >>> submitter_did: %r, revoc_reg_def_id: %r, timestamp: %r",
                 submitter_did, revoc_reg_def_id, timestamp)

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

    c_submitter_did = c_char_p(submitter_did.encode('utf-8')) if submitter_did is not None else None
    c_revoc_reg_def_id = c_char_p(revoc_reg_def_id.encode('utf-8'))
    c_timestamp = c_int64(timestamp)

    request_json = await do_call('indy_build_get_revoc_reg_request',
                                 c_submitter_did,
                                 c_revoc_reg_def_id,
                                 c_timestamp,
                                 build_get_revoc_reg_request.cb)

    res = request_json.decode()
    logger.debug("build_get_revoc_reg_request: <<< res: %r", res)
    return res
async def build_get_revoc_reg_request ( submitter_did : Optional [ str ] , revoc_reg_def_id : str , timestamp : int ) -> str : logger = logging . getLogger ( __name__ ) logger . debug ( "build_get_revoc_reg_request: >>> submitter_did: %r, revoc_reg_def_id: %r, timestamp: %r" , submitter_did , revoc_reg_def_id , timestamp ) if not hasattr ( build_get_revoc_reg_request , "cb" ) : logger . debug ( "build_get_revoc_reg_request: Creating callback" ) build_get_revoc_reg_request . cb = create_cb ( CFUNCTYPE ( None , c_int32 , c_int32 , c_char_p ) ) c_submitter_did = c_char_p ( submitter_did . encode ( 'utf-8' ) ) if submitter_did is not None else None c_revoc_reg_def_id = c_char_p ( revoc_reg_def_id . encode ( 'utf-8' ) ) c_timestamp = c_int64 ( timestamp ) request_json = await do_call ( 'indy_build_get_revoc_reg_request' , c_submitter_did , c_revoc_reg_def_id , c_timestamp , build_get_revoc_reg_request . cb ) res = request_json . decode ( ) logger . debug ( "build_get_revoc_reg_request: <<< res: %r" , res ) return res
Builds a GET_REVOC_REG request. Request to get the accumulated state of the Revocation Registry
    by ID. The state is defined by the given timestamp.

    :param submitter_did: (Optional) DID of the read request sender (if not provided then default Libindy DID will be used).
    :param revoc_reg_def_id:  ID of the corresponding Revocation Registry Definition in ledger.
    :param timestamp: Requested time represented as a total number of seconds from Unix Epoch
    :return: Request result as json.