def test_vcx_deserialize_connection_fulfill_credential(): try: Vcxdemo.init(VCXCONFIG_PATH) except VcxError as e: assert False frank = Vcxdemo(SOURCE_ID, details=DETAILS) frank.deserialize_connection('connection.dat') assert type(frank.connection) == Connection # Credential frank.create_credential(SCHEMA_SEQ_NUMBER, DETAILS[1], 'Planet Express Info') assert type(frank.credential) == IssuerCredential frank.update_credential_state() assert frank.state['credential'] == State.Initialized frank.issue_credential_offer() assert frank.state['credential'] == State.OfferSent frank.wait_for_credential_state(State.RequestReceived) assert frank.state['credential'] == State.RequestReceived # write credential out to credential2.dat try: with open('credential.dat', 'w') as out_file: json.dump(frank.serialize_credential(), out_file) except IOError as e: print('error writing to credential.dat: %s' % e)
def test_demo(): random_enterprise_name = get_random_name() genesis_path = settings['genesis_path'] enterprise_config = { 'institution_name': random_enterprise_name, 'institution_logo_url': 'https://robohash.org/' + random_enterprise_name, 'genesis_path': genesis_path, 'wallet_name': settings['wallet_name'], 'wallet_key': settings['wallet_key'] } vcx_config_json = update_json_values(enterprise_config, config_dev) assert vcx_config_json['institution_name'] == random_enterprise_name write_json_to_file(vcx_config_json, 'utils/vcxconfig.json', sort_keys=True) schema_name = 'Club Membership' init_vcxdemo(VCXCONFIG_PATH) credential_name = 'Club Membership' schema_source_id = random_enterprise_name credential_def_source_id = random_enterprise_name connection_source_id = random_enterprise_name assert len(Vcxdemo.schemas) == 0 util_create_schema(schema_source_id, schema_name) write_json_to_file(Vcxdemo.serialize_schema(0), 'schema.dat') # Write Connection to file assert len(Vcxdemo.schemas) == 1 s0 = Vcxdemo.get_schema_attr_list(0) # Create Credential Def on Ledger (and wallet) schema_sequence_number = Vcxdemo.get_schema_sequence_number(0) Vcxdemo.create_credential_def(credential_def_source_id, credential_name, schema_sequence_number) assert len(Vcxdemo.credential_defs) > 0 assert Vcxdemo.credential_defs[credential_name] customer1 = Vcxdemo(connection_source_id) # Connection assert customer1.state['connection'] == State.Undefined customer1.connect() assert type(customer1.connection) == Connection assert customer1.state['connection'] == State.Accepted # Write Connection to file write_json_to_file(customer1.serialize_connection(), 'connection.dat') # Credential customer1.create_credential(Vcxdemo.get_schema_sequence_number(0), DETAILS[0], credential_name) assert type(customer1.credential) == IssuerCredential customer1.update_credential_state() assert customer1.state['credential'] == State.Initialized # Write Credential to file write_json_to_file(customer1.serialize_credential(), 'credential.dat') customer1.update_credential_state() assert customer1.state['credential'] == State.Initialized customer1.issue_credential_offer() customer1.update_credential_state() assert customer1.state['credential'] == State.OfferSent customer1.wait_for_credential_state(State.RequestReceived) print("About to send credential offer...") # time.sleep(5) customer1.send_issuer_credential() print("Waiting for credential state to become accepted") customer1.wait_for_credential_state(State.Accepted) print("Credential State became accepted") time.sleep(5) # Proof proof_id = '222' proof_attr = Vcxdemo.format_proof_attrs( Vcxdemo.did, Vcxdemo.get_schema_sequence_number(0), Vcxdemo.get_schema_attr_list(0)['attr_names']) source_id = 'Club Membership' request_proof(customer1, source_id, proof_attr, proof_id)