def add_tag_into_cred_def_id(val): new_val = copy.deepcopy(val) old_cred_def_id = new_val.get(CRED_DEF_ID, None) if old_cred_def_id: path_elems = old_cred_def_id.split(':') if len(path_elems) == 4: did, marker, sig_type, schema_seq_no = path_elems new_cred_def_id = domain.make_state_path_for_claim_def(authors_did=did, schema_seq_no=schema_seq_no, signature_type=sig_type, tag=CLAIM_DEF_TAG_DEFAULT) new_val[CRED_DEF_ID] = new_cred_def_id.decode() rev_type = new_val.get(REVOC_TYPE) rev_tag = new_val.get(TAG) if not all([rev_type, rev_tag]): return False new_revoc_reg_def_id = domain.make_state_path_for_revoc_def(authors_did=did, cred_def_id=new_cred_def_id.decode(), revoc_def_type=rev_type, revoc_def_tag=rev_tag) new_val[ID] = new_revoc_reg_def_id.decode() else: return False else: return False return new_val
def getRevocDef(self, author_did, cred_def_id, revoc_def_type, revoc_def_tag, isCommitted=True) -> (str, int, int, list): assert author_did is not None assert cred_def_id is not None assert revoc_def_type is not None assert revoc_def_tag is not None path = domain.make_state_path_for_revoc_def(author_did, cred_def_id, revoc_def_type, revoc_def_tag) try: keys, seqno, lastUpdateTime, proof = self.lookup(path, isCommitted) return keys, seqno, lastUpdateTime, proof except KeyError: return None, None, None, None
def add_cred_def_id_into_entry(val): new_val = copy.deepcopy(val) old_revoc_reg_def_id = new_val.get(REVOC_REG_DEF_ID, None) if old_revoc_reg_def_id: path_elems = old_revoc_reg_def_id.split(':') did = path_elems[0] cred_def_id = ":".join(path_elems[2:-2]) rev_tag = path_elems[-1] rev_type = path_elems[-2] new_revoc_reg_def_id = domain.make_state_path_for_revoc_def(authors_did=did, cred_def_id="{}:{}".format(cred_def_id, CLAIM_DEF_TAG_DEFAULT), revoc_def_type=rev_type, revoc_def_tag=rev_tag) new_val[REVOC_REG_DEF_ID] = new_revoc_reg_def_id.decode() else: return False return new_val
def getRevocDef(self, author_did, cred_def_id, revoc_def_type, revoc_def_tag, isCommitted=True) -> (str, int, int, list): assert author_did is not None assert cred_def_id is not None assert revoc_def_type is not None assert revoc_def_tag is not None path = domain.make_state_path_for_revoc_def(author_did, cred_def_id, revoc_def_type, revoc_def_tag) try: keys, seqno, lastUpdateTime, proof = self.lookup(path, isCommitted) return keys, seqno, lastUpdateTime, proof except KeyError: return None, None, None, None
def _validate_revoc_reg_def(self, req: Request): operation = req.operation cred_def_id = operation.get(CRED_DEF_ID) revoc_def_type = operation.get(REVOC_TYPE) revoc_def_tag = operation.get(TAG) assert cred_def_id assert revoc_def_tag assert revoc_def_type tags = cred_def_id.split(":") revoc_def_id = make_state_path_for_revoc_def(req.identifier, cred_def_id, revoc_def_type, revoc_def_tag) revoc_def, _, _, _ = self.lookup(revoc_def_id, isCommitted=False) if revoc_def is None: self.write_req_validator.validate( req, [AuthActionAdd(txn_type=REVOC_REG_DEF, field='*', value='*')]) else: self.write_req_validator.validate(req, [ AuthActionEdit(txn_type=REVOC_REG_DEF, field='*', old_value='*', new_value='*') ]) cred_def, _, _, _ = self.lookup(cred_def_id, isCommitted=False, with_proof=False) if len(tags) != 4 and len(tags) != 5: raise InvalidClientRequest( req.identifier, req.reqId, "Format of {} field is not acceptable. " "Expected: 'did:marker:signature_type:schema_ref' or " "'did:marker:signature_type:schema_ref:tag'".format( CRED_DEF_ID)) if cred_def is None: raise InvalidClientRequest( req.identifier, req.reqId, "There is no any CRED_DEF by path: {}".format(cred_def_id))
def test_send_reg_def_and_get_delta_then( looper, txnPoolNodeSet, sdk_pool_handle, send_revoc_reg_def_by_default, build_get_revoc_reg_delta): rev_def_req, _ = send_revoc_reg_def_by_default get_revoc_reg_delta = copy.deepcopy(build_get_revoc_reg_delta) get_revoc_reg_delta['operation'][REVOC_REG_DEF_ID] = domain.make_state_path_for_revoc_def(authors_did=rev_def_req[f.IDENTIFIER.nm], cred_def_id=rev_def_req[OPERATION][CRED_DEF_ID], revoc_def_type=rev_def_req[OPERATION][REVOC_TYPE], revoc_def_tag=rev_def_req[OPERATION][TAG]).decode() get_revoc_reg_delta['operation'][TO] = get_utc_epoch() sdk_reply = sdk_send_and_check([json.dumps(get_revoc_reg_delta)], looper, txnPoolNodeSet, sdk_pool_handle) reply = sdk_reply[0][1] assert DATA in reply['result'] assert reply['result'][DATA] is None assert STATE_PROOF in reply['result'] assert reply['result'][STATE_PROOF] is not None