UNPKG

did-relayer-quick

Version:

Veramo plugin that can enable creation and control of did:quick identifiers.

51 lines 2.46 kB
import Debug from 'debug'; import { getDIDQuickUpdates } from './getDIDQuickUpdates.js'; const debug = Debug('veramo:did-provider-quick:saveDIDQuickUpdate'); export async function resolveDID(did, agent) { if (!did.startsWith('did:quick:')) { throw Error('DID not of type did:quick'); } const rootDid = did.replace('did:quick:', ''); const rootDoc = await agent.resolveDid({ didUrl: rootDid }); console.log("rootDoc: ", rootDoc); const creds = await getDIDQuickUpdates({ did: rootDid }, agent); let keyAgreementKeys = rootDoc.didDocument.keyAgreement ? [...(rootDoc.didDocument.keyAgreement)] : []; let authenticationKeys = rootDoc.didDocument.authentication ? [...(rootDoc.didDocument.authentication)] : []; let verificationMethods = [...(rootDoc.didDocument.verificationMethod)]; let serviceEndpoints = rootDoc.didDocument.service ? [...(rootDoc.didDocument.service)] : []; // let numKeys = 0 for (const cred of creds) { const { verifiableCredential } = cred; // const { addOp } = verifiableCredential.credentialSubject // if (addOp) { // if (addOp.keyAgreementKey) { // verificationMethods = [...verificationMethods, addOp.keyAgreementKey] // keyAgreementKeys = [...keyAgreementKeys, addOp.keyAgreementKey.id] // } else if (addOp.authenticationKey) { // verificationMethods = [...verificationMethods, addOp.authenticationKey] // authenticationKeys = [...authenticationKeys, addOp.authenticationKey.id] // } else if (addOp.serviceEndpoint) { // serviceEndpoints = [...serviceEndpoints, ...addOp.serviceEndpoint] // } // } if (verifiableCredential?.type?.includes('DIDQuickAddKey')) { verificationMethods = [...verificationMethods, verifiableCredential.credentialSubject]; keyAgreementKeys = [...keyAgreementKeys, verifiableCredential.credentialSubject.id]; } } const didDocument = { ...rootDoc.didDocument, id: 'did:quick:' + rootDid, verificationMethod: verificationMethods, authentication: authenticationKeys, assertionMethod: authenticationKeys, keyAgreement: keyAgreementKeys, service: serviceEndpoints }; return { didDocument, didDocumentMetadata: {}, didResolutionMetadata: {} }; } //# sourceMappingURL=resolveDID.js.map