def step_impl(context, holder): agent = context.active_agents[holder] # get the required revocation info from the last credential exchange cred_exchange = context.cred_exchange cred_exchange = agent_container_GET( agent["agent"], "/issue-credential-2.0/records/" + cred_exchange["cred_ex_id"]) context.cred_exchange = cred_exchange print("rev_reg_id:", cred_exchange["indy"]["rev_reg_id"]) print("cred_rev_id:", cred_exchange["indy"]["cred_rev_id"]) print("connection_id:", cred_exchange["cred_ex_record"]["connection_id"]) # revoke the credential revoke_status = agent_container_POST( agent["agent"], "/revocation/revoke", data={ "rev_reg_id": cred_exchange["indy"]["rev_reg_id"], "cred_rev_id": cred_exchange["indy"]["cred_rev_id"], "publish": "Y", "connection_id": cred_exchange["cred_ex_record"]["connection_id"], }, ) # pause for a few seconds async_sleep(3.0)
def step_impl(context, agent_name): agent = context.active_agents[agent_name] # get the required revocation info from the last credential exchange cred_exchange = context.cred_exchange cred_exchange = agent_container_GET( agent["agent"], "/issue-credential-2.0/records/" + cred_exchange["cred_ex_id"] ) context.cred_exchange = cred_exchange # revoke the credential agent_container_POST( agent["agent"], "/revocation/revoke", data={ "rev_reg_id": cred_exchange["indy"]["rev_reg_id"], "cred_rev_id": cred_exchange["indy"]["cred_rev_id"], "publish": False, "connection_id": cred_exchange["cred_ex_record"]["connection_id"], }, ) # pause for a few seconds async_sleep(3.0)
def step_impl(context, agent_name): agent = context.active_agents[agent_name] txn_id = context.txn_ids["AUTHOR"] async_sleep(1.0) txn = agent_container_GET(agent["agent"], "/transactions/" + txn_id) requested_txn = txn assert requested_txn["state"] == "transaction_endorsed" written_txn = agent_container_POST(agent["agent"], "/transactions/" + txn_id + "/write") assert written_txn["state"] == "transaction_acked"
def step_impl(context, verifier): agent = context.active_agents[verifier] proof_request = context.proof_request # check the received credential status (up to 10 seconds) for i in range(10): async_sleep(1.0) verified = aries_container_verify_proof(agent["agent"], proof_request) if verified is not None and verified.lower() == "false": return assert False
def step_impl(context, agent_name): agent = context.active_agents[agent_name] async_sleep(1.0) txns = agent_container_GET(agent["agent"], "/transactions") requested_txn = txns["results"][0] assert requested_txn["state"] == "transaction_endorsed" txn_id = requested_txn["_id"] written_txn = agent_container_POST(agent["agent"], "/transactions/" + txn_id + "/write") assert written_txn["state"] == "transaction_completed"
def step_impl(context, holder): # verify the holder has a w3c credential agent = context.active_agents[holder] for i in range(10): async_sleep(1.0) w3c_creds = agent_container_POST( agent["agent"], "/credentials/w3c", {}, ) if 0 < len(w3c_creds["results"]): return assert False
def step_impl(context, agent_name): agent = context.active_agents[agent_name] # current connection_id for the selected agent connection_id = agent["agent"].agent.connection_id endorser_did = context.public_dids["ENDORSER"] updated_connection = agent_container_POST( agent["agent"], "/transactions/" + connection_id + "/set-endorser-info", params={"endorser_did": endorser_did}, ) # assert goodness assert updated_connection["endorser_did"] == endorser_did async_sleep(1.0)
def step_impl(context, agent_name, connection_job_role): agent = context.active_agents[agent_name] # current connection_id for the selected agent connection_id = agent["agent"].agent.connection_id # set role for agent's connection print("Updating role for connection:", connection_id, connection_job_role) updated_connection = agent_container_POST( agent["agent"], "/transactions/" + connection_id + "/set-endorser-role", params={"transaction_my_job": connection_job_role}, ) # assert goodness assert updated_connection["transaction_my_job"] == connection_job_role async_sleep(1.0)
def step_impl(context, agent_name): agent = context.active_agents[agent_name] txns = {"results": []} i = 5 while 0 == len(txns["results"]) and i > 0: async_sleep(1.0) txns = agent_container_GET(agent["agent"], "/transactions") i = i - 1 requested_txn = txns["results"][0] assert requested_txn["state"] == "request_received" txn_id = requested_txn["_id"] endorsed_txn = agent_container_POST(agent["agent"], "/transactions/" + txn_id + "/endorse") assert endorsed_txn["state"] == "transaction_endorsed"
def step_impl(context, agent_name, schema_name): agent = context.active_agents[agent_name] schema_info = read_schema_data(schema_name) schemas = {"schema_ids": []} i = 5 while 0 == len(schemas["schema_ids"]) and i > 0: async_sleep(1.0) schemas = agent_container_GET(agent["agent"], "/schemas/created") i = i - 1 assert len(schemas["schema_ids"]) == 1 schema_id = schemas["schema_ids"][0] schema = agent_container_GET(agent["agent"], "/schemas/" + schema_id) context.schema_name = schema_name
def step_impl(context, agent_name): agent = context.active_agents[agent_name] async_sleep(1.0) txn_id = context.txn_ids["AUTHOR"] data = read_json_data("expires_time.json") requested_txn = agent_container_POST( agent["agent"], "/transactions/create-request", data=data, params={"tran_id": txn_id}, ) # assert goodness assert requested_txn["state"] == "request_sent"
def step_impl(context, agent_name): agent = context.active_agents[agent_name] async_sleep(1.0) txn_id = context.txn_ids["AUTHOR"] connection_id = agent["agent"].agent.connection_id print("Requesting endorsement for connection:", connection_id) requested_txn = agent_container_POST( agent["agent"], "/transactions/create-request", params={ "conn_id": connection_id, "tran_id": txn_id }, ) # assert goodness assert requested_txn["state"] == "request_sent"
def step_impl(context, issuer, schema_name): agent = context.active_agents[issuer] schema_info = read_schema_data(schema_name) cred_def_id = aries_container_create_schema_cred_def( agent["agent"], schema_info["schema"]["schema_name"], schema_info["schema"]["attributes"], version=schema_info["schema"]["schema_version"], ) # confirm the cred def was actually created async_sleep(2.0) cred_def_saved = agent_container_GET( agent["agent"], "/credential-definitions/" + cred_def_id) assert cred_def_saved context.schema_name = schema_name context.cred_def_id = cred_def_id
def step_impl(context, agent_name, schema_name): agent = context.active_agents[agent_name] schema_info = read_schema_data(schema_name) cred_defs = {"credential_definition_ids": []} i = 5 while 0 == len(cred_defs["credential_definition_ids"]) and i > 0: async_sleep(1.0) cred_defs = agent_container_GET(agent["agent"], "/credential-definitions/created") i = i - 1 assert len(cred_defs["credential_definition_ids"]) == 1 cred_def_id = cred_defs["credential_definition_ids"][0] cred_def = agent_container_GET(agent["agent"], "/credential-definitions/" + cred_def_id) context.cred_def_id = cred_def_id
def step_impl(context, agent_name): agent = context.active_agents[agent_name] rev_regs = {"rev_reg_ids": []} i = 5 while 0 == len(rev_regs["rev_reg_ids"]) and i > 0: async_sleep(1.0) rev_regs = agent_container_GET( agent["agent"], "/revocation/registries/created", params={ "cred_def_id": context.cred_def_id, }, ) i = i - 1 assert len(rev_regs["rev_reg_ids"]) == 1 rev_reg_id = rev_regs["rev_reg_ids"][0] context.rev_reg_id = rev_reg_id
def step_impl(context, agent_name): agent = context.active_agents[agent_name] # find the transaction with state "request_received" txns = {"results": []} i = 5 while 0 == len(txns["results"]) and i > 0: async_sleep(1.0) txns_queued = agent_container_GET(agent["agent"], "/transactions") for j in range(len(txns_queued["results"])): if txns_queued["results"][j]["state"] == "request_received": txns["results"].append(txns_queued["results"][j]) i = i - 1 requested_txn = txns["results"][0] assert requested_txn["state"] == "request_received" txn_id = requested_txn["transaction_id"] endorsed_txn = agent_container_POST(agent["agent"], "/transactions/" + txn_id + "/endorse") assert endorsed_txn["state"] == "transaction_endorsed"
def step_impl(context, holder_name, issuer_name): agent = context.active_agents[holder_name] # sleep here to allow the auto-endorser process to complete async_sleep(2.0) # fetch the credential - there only is one in the wallet cred_list = agent_container_GET( agent["agent"], "/credentials", params={}, ) assert len(cred_list["results"]) == 1 cred_id = cred_list["results"][0]["referent"] # check revocation status for the credential revocation_status = agent_container_GET( agent["agent"], f"/credential/revoked/{cred_id}", params={"to": int(time.time())}, ) assert revocation_status["revoked"] == True
def step_impl(context, agent_name): agent = context.active_agents[agent_name] # TODO not sure what to check here, let's just do a short pause async_sleep(2.0)