Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
exports.sendRequest = async function (theirDid, encryptedMessage) {
let myDid = await indy.pairwise.getMyDid(theirDid);
let credentialOffer = await indy.crypto.authDecrypt(myDid, encryptedMessage);
let [, credentialDefinition] = await indy.issuer.getCredDef(await indy.pool.get(), await indy.did.getEndpointDid(), credentialOffer.cred_def_id); // FIXME: Was passing in myDid. Why?
let masterSecretId = await indy.did.getEndpointDidAttribute('master_secret_id');
let [credRequestJson, credRequestMetadataJson] = await sdk.proverCreateCredentialReq(await indy.wallet.get(), myDid, credentialOffer, credentialDefinition, masterSecretId);
indy.store.pendingCredentialRequests.write(credRequestJson, credRequestMetadataJson);
let message = await indy.crypto.buildAuthcryptedMessage(myDid, theirDid, MESSAGE_TYPES.REQUEST, credRequestJson);
let theirEndpointDid = await indy.did.getTheirEndpointDid(theirDid);
return indy.crypto.sendAnonCryptedMessage(theirEndpointDid, message);
};
async function issueCredentialToSelf(credentialDefinitionId, credentialData) {
try {
let endpointDID = await indy.did.getEndpointDid();
let wallet = await indy.wallet.get();
let pool = await indy.pool.get();
let credentialOffer = await sdk.issuerCreateCredentialOffer(wallet, credentialDefinitionId);
try {
credentialOffer.data = JSON.parse(credentialData);
} catch (e) {
credentialOffer.data = {};
console.log(e);
}
let [, credentialDefinition] = await indy.issuer.getCredDef(pool, endpointDID, credentialOffer.cred_def_id);
let masterSecretId = await indy.did.getEndpointDidAttribute('master_secret_id');
let [credRequestJson, credRequestMetadataJson] = await sdk.proverCreateCredentialReq(wallet, endpointDID, credentialOffer, credentialDefinition, masterSecretId);
let schema = await indy.issuer.getSchema(credentialOffer.schema_id);
let credentialValues = {};
for (let attr of schema.attrNames) {
if (credentialOffer.data[attr]) {
credentialValues[attr] = {raw: credentialOffer.data[attr], encoded: indy.credentials.encode(credentialOffer.data[attr])};
}
}
let [credential] = await sdk.issuerCreateCredential(wallet, credentialOffer, credRequestJson, credentialValues);
await sdk.proverStoreCredential(wallet, null, credRequestMetadataJson, credential, credentialDefinition);
} catch (e) {
console.log(e);
}
}