Skip to content

Commit

Permalink
fix(core): query credential and proof records by correct DIDComm role (
Browse files Browse the repository at this point in the history
  • Loading branch information
berendsliedrecht committed Mar 1, 2024
1 parent b161fef commit add7e09
Show file tree
Hide file tree
Showing 8 changed files with 78 additions and 7 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -220,10 +220,12 @@ export class V1CredentialProtocol
const lastReceivedMessage = await didCommMessageRepository.findAgentMessage(messageContext.agentContext, {
associatedRecordId: credentialRecord.id,
messageClass: V1ProposeCredentialMessage,
role: DidCommMessageRole.Receiver,
})
const lastSentMessage = await didCommMessageRepository.getAgentMessage(messageContext.agentContext, {
associatedRecordId: credentialRecord.id,
messageClass: V1OfferCredentialMessage,
role: DidCommMessageRole.Sender,
})

await connectionService.assertConnectionOrOutOfBandExchange(messageContext, {
Expand Down Expand Up @@ -299,6 +301,7 @@ export class V1CredentialProtocol
const proposalMessage = await didCommMessageRepository.getAgentMessage(agentContext, {
associatedRecordId: credentialRecord.id,
messageClass: V1ProposeCredentialMessage,
role: DidCommMessageRole.Receiver,
})

// NOTE: We set the credential attributes from the proposal on the record as we've 'accepted' them
Expand Down Expand Up @@ -511,10 +514,12 @@ export class V1CredentialProtocol
const lastSentMessage = await didCommMessageRepository.getAgentMessage(messageContext.agentContext, {
associatedRecordId: credentialRecord.id,
messageClass: V1ProposeCredentialMessage,
role: DidCommMessageRole.Sender,
})
const lastReceivedMessage = await didCommMessageRepository.findAgentMessage(messageContext.agentContext, {
associatedRecordId: credentialRecord.id,
messageClass: V1OfferCredentialMessage,
role: DidCommMessageRole.Receiver,
})

// Assert
Expand Down Expand Up @@ -595,6 +600,7 @@ export class V1CredentialProtocol
const offerMessage = await didCommMessageRepository.getAgentMessage(agentContext, {
associatedRecordId: credentialRecord.id,
messageClass: V1OfferCredentialMessage,
role: DidCommMessageRole.Receiver,
})

const offerAttachment = offerMessage.getOfferAttachmentById(INDY_CREDENTIAL_OFFER_ATTACHMENT_ID)
Expand Down Expand Up @@ -739,10 +745,12 @@ export class V1CredentialProtocol
const proposalMessage = await didCommMessageRepository.findAgentMessage(messageContext.agentContext, {
associatedRecordId: credentialRecord.id,
messageClass: V1ProposeCredentialMessage,
role: DidCommMessageRole.Receiver,
})
const offerMessage = await didCommMessageRepository.findAgentMessage(messageContext.agentContext, {
associatedRecordId: credentialRecord.id,
messageClass: V1OfferCredentialMessage,
role: DidCommMessageRole.Sender,
})

// Assert
Expand Down Expand Up @@ -811,10 +819,12 @@ export class V1CredentialProtocol
const offerMessage = await didCommMessageRepository.getAgentMessage(agentContext, {
associatedRecordId: credentialRecord.id,
messageClass: V1OfferCredentialMessage,
role: DidCommMessageRole.Sender,
})
const requestMessage = await didCommMessageRepository.getAgentMessage(agentContext, {
associatedRecordId: credentialRecord.id,
messageClass: V1RequestCredentialMessage,
role: DidCommMessageRole.Receiver,
})

const offerAttachment = offerMessage.getOfferAttachmentById(INDY_CREDENTIAL_OFFER_ATTACHMENT_ID)
Expand Down Expand Up @@ -884,10 +894,12 @@ export class V1CredentialProtocol
const requestCredentialMessage = await didCommMessageRepository.findAgentMessage(messageContext.agentContext, {
associatedRecordId: credentialRecord.id,
messageClass: V1RequestCredentialMessage,
role: DidCommMessageRole.Sender,
})
const offerCredentialMessage = await didCommMessageRepository.findAgentMessage(messageContext.agentContext, {
associatedRecordId: credentialRecord.id,
messageClass: V1OfferCredentialMessage,
role: DidCommMessageRole.Receiver,
})

// Assert
Expand Down Expand Up @@ -987,10 +999,12 @@ export class V1CredentialProtocol
const requestCredentialMessage = await didCommMessageRepository.getAgentMessage(messageContext.agentContext, {
associatedRecordId: credentialRecord.id,
messageClass: V1RequestCredentialMessage,
role: DidCommMessageRole.Receiver,
})
const issueCredentialMessage = await didCommMessageRepository.getAgentMessage(messageContext.agentContext, {
associatedRecordId: credentialRecord.id,
messageClass: V1IssueCredentialMessage,
role: DidCommMessageRole.Sender,
})

// Assert
Expand Down
19 changes: 17 additions & 2 deletions packages/anoncreds/src/protocols/proofs/v1/V1ProofProtocol.ts
Original file line number Diff line number Diff line change
Expand Up @@ -184,10 +184,12 @@ export class V1ProofProtocol extends BaseProofProtocol implements ProofProtocol<
const lastReceivedMessage = await didCommMessageRepository.findAgentMessage(agentContext, {
associatedRecordId: proofRecord.id,
messageClass: V1ProposePresentationMessage,
role: DidCommMessageRole.Receiver,
})
const lastSentMessage = await didCommMessageRepository.getAgentMessage(agentContext, {
associatedRecordId: proofRecord.id,
messageClass: V1RequestPresentationMessage,
role: DidCommMessageRole.Sender,
})
await connectionService.assertConnectionOrOutOfBandExchange(messageContext, {
lastReceivedMessage,
Expand All @@ -202,7 +204,7 @@ export class V1ProofProtocol extends BaseProofProtocol implements ProofProtocol<
})
await this.updateState(agentContext, proofRecord, ProofState.ProposalReceived)
} else {
agentContext.config.logger.debug('Proof record does not exists yet for incoming proposal')
agentContext.config.logger.debug('Proof record does not exist yet for incoming proposal')

// No proof record exists with thread id
proofRecord = new ProofExchangeRecord({
Expand All @@ -220,7 +222,7 @@ export class V1ProofProtocol extends BaseProofProtocol implements ProofProtocol<
await didCommMessageRepository.saveOrUpdateAgentMessage(agentContext, {
agentMessage: proposalMessage,
associatedRecordId: proofRecord.id,
role: DidCommMessageRole.Sender,
role: DidCommMessageRole.Receiver,
})

// Save record
Expand Down Expand Up @@ -250,6 +252,7 @@ export class V1ProofProtocol extends BaseProofProtocol implements ProofProtocol<
const proposalMessage = await didCommMessageRepository.getAgentMessage(agentContext, {
associatedRecordId: proofRecord.id,
messageClass: V1ProposePresentationMessage,
role: DidCommMessageRole.Receiver,
})

const indyFormat = proofFormats?.indy
Expand Down Expand Up @@ -431,10 +434,12 @@ export class V1ProofProtocol extends BaseProofProtocol implements ProofProtocol<
const lastReceivedMessage = await didCommMessageRepository.findAgentMessage(agentContext, {
associatedRecordId: proofRecord.id,
messageClass: V1RequestPresentationMessage,
role: DidCommMessageRole.Receiver,
})
const lastSentMessage = await didCommMessageRepository.getAgentMessage(agentContext, {
associatedRecordId: proofRecord.id,
messageClass: V1ProposePresentationMessage,
role: DidCommMessageRole.Sender,
})

// Assert
Expand Down Expand Up @@ -560,10 +565,12 @@ export class V1ProofProtocol extends BaseProofProtocol implements ProofProtocol<
const requestMessage = await didCommMessageRepository.getAgentMessage(agentContext, {
associatedRecordId: proofRecord.id,
messageClass: V1RequestPresentationMessage,
role: DidCommMessageRole.Receiver,
})
const proposalMessage = await didCommMessageRepository.findAgentMessage(agentContext, {
associatedRecordId: proofRecord.id,
messageClass: V1ProposePresentationMessage,
role: DidCommMessageRole.Sender,
})

const requestAttachment = requestMessage.getRequestAttachmentById(INDY_PROOF_REQUEST_ATTACHMENT_ID)
Expand Down Expand Up @@ -630,11 +637,13 @@ export class V1ProofProtocol extends BaseProofProtocol implements ProofProtocol<
const requestMessage = await didCommMessageRepository.getAgentMessage(agentContext, {
associatedRecordId: proofRecord.id,
messageClass: V1RequestPresentationMessage,
role: DidCommMessageRole.Receiver,
})

const proposalMessage = await didCommMessageRepository.findAgentMessage(agentContext, {
associatedRecordId: proofRecord.id,
messageClass: V1ProposePresentationMessage,
role: DidCommMessageRole.Sender,
})

const requestAttachment = requestMessage.getRequestAttachmentById(INDY_PROOF_REQUEST_ATTACHMENT_ID)
Expand Down Expand Up @@ -690,11 +699,13 @@ export class V1ProofProtocol extends BaseProofProtocol implements ProofProtocol<
const requestMessage = await didCommMessageRepository.getAgentMessage(agentContext, {
associatedRecordId: proofRecord.id,
messageClass: V1RequestPresentationMessage,
role: DidCommMessageRole.Receiver,
})

const proposalMessage = await didCommMessageRepository.findAgentMessage(agentContext, {
associatedRecordId: proofRecord.id,
messageClass: V1ProposePresentationMessage,
role: DidCommMessageRole.Sender,
})

const requestAttachment = requestMessage.getRequestAttachmentById(INDY_PROOF_REQUEST_ATTACHMENT_ID)
Expand Down Expand Up @@ -754,11 +765,13 @@ export class V1ProofProtocol extends BaseProofProtocol implements ProofProtocol<
const proposalMessage = await didCommMessageRepository.findAgentMessage(agentContext, {
associatedRecordId: proofRecord.id,
messageClass: V1ProposePresentationMessage,
role: DidCommMessageRole.Receiver,
})

const requestMessage = await didCommMessageRepository.getAgentMessage(agentContext, {
associatedRecordId: proofRecord.id,
messageClass: V1RequestPresentationMessage,
role: DidCommMessageRole.Sender,
})

// Assert
Expand Down Expand Up @@ -883,11 +896,13 @@ export class V1ProofProtocol extends BaseProofProtocol implements ProofProtocol<
const lastReceivedMessage = await didCommMessageRepository.getAgentMessage(agentContext, {
associatedRecordId: proofRecord.id,
messageClass: V1RequestPresentationMessage,
role: DidCommMessageRole.Receiver,
})

const lastSentMessage = await didCommMessageRepository.getAgentMessage(agentContext, {
associatedRecordId: proofRecord.id,
messageClass: V1PresentationMessage,
role: DidCommMessageRole.Sender,
})

// Assert
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -145,6 +145,7 @@ export class CredentialFormatCoordinator<CFs extends CredentialFormatService[]>
const proposalMessage = await didCommMessageRepository.getAgentMessage(agentContext, {
associatedRecordId: credentialRecord.id,
messageClass: V2ProposeCredentialMessage,
role: DidCommMessageRole.Receiver,
})

// NOTE: We set the credential attributes from the proposal on the record as we've 'accepted' them
Expand Down Expand Up @@ -336,6 +337,7 @@ export class CredentialFormatCoordinator<CFs extends CredentialFormatService[]>
const offerMessage = await didCommMessageRepository.getAgentMessage(agentContext, {
associatedRecordId: credentialRecord.id,
messageClass: V2OfferCredentialMessage,
role: DidCommMessageRole.Receiver,
})

// create message. there are two arrays in each message, one for formats the other for attachments
Expand Down Expand Up @@ -496,11 +498,13 @@ export class CredentialFormatCoordinator<CFs extends CredentialFormatService[]>
const requestMessage = await didCommMessageRepository.getAgentMessage(agentContext, {
associatedRecordId: credentialRecord.id,
messageClass: V2RequestCredentialMessage,
role: DidCommMessageRole.Receiver,
})

const offerMessage = await didCommMessageRepository.findAgentMessage(agentContext, {
associatedRecordId: credentialRecord.id,
messageClass: V2OfferCredentialMessage,
role: DidCommMessageRole.Sender,
})

// create message. there are two arrays in each message, one for formats the other for attachments
Expand Down Expand Up @@ -569,6 +573,7 @@ export class CredentialFormatCoordinator<CFs extends CredentialFormatService[]>
const offerMessage = await didCommMessageRepository.getAgentMessage(agentContext, {
associatedRecordId: credentialRecord.id,
messageClass: V2OfferCredentialMessage,
role: DidCommMessageRole.Receiver,
})

for (const formatService of formatServices) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ import type {

import { Protocol } from '../../../../agent/models/features/Protocol'
import { CredoError } from '../../../../error'
import { DidCommMessageRepository } from '../../../../storage/didcomm'
import { DidCommMessageRepository, DidCommMessageRole } from '../../../../storage/didcomm'
import { uuid } from '../../../../utils/uuid'
import { AckStatus } from '../../../common'
import { ConnectionService } from '../../../connections'
Expand Down Expand Up @@ -190,10 +190,12 @@ export class V2CredentialProtocol<CFs extends CredentialFormatService[] = Creden
const proposalCredentialMessage = await didCommMessageRepository.findAgentMessage(messageContext.agentContext, {
associatedRecordId: credentialRecord.id,
messageClass: V2ProposeCredentialMessage,
role: DidCommMessageRole.Receiver,
})
const offerCredentialMessage = await didCommMessageRepository.findAgentMessage(messageContext.agentContext, {
associatedRecordId: credentialRecord.id,
messageClass: V2OfferCredentialMessage,
role: DidCommMessageRole.Sender,
})

// Assert
Expand Down Expand Up @@ -267,6 +269,7 @@ export class V2CredentialProtocol<CFs extends CredentialFormatService[] = Creden
const proposalMessage = await didCommMessageRepository.getAgentMessage(agentContext, {
associatedRecordId: credentialRecord.id,
messageClass: V2ProposeCredentialMessage,
role: DidCommMessageRole.Receiver,
})

formatServices = this.getFormatServicesFromMessage(proposalMessage.formats)
Expand Down Expand Up @@ -429,10 +432,12 @@ export class V2CredentialProtocol<CFs extends CredentialFormatService[] = Creden
const proposeCredentialMessage = await didCommMessageRepository.findAgentMessage(messageContext.agentContext, {
associatedRecordId: credentialRecord.id,
messageClass: V2ProposeCredentialMessage,
role: DidCommMessageRole.Sender,
})
const offerCredentialMessage = await didCommMessageRepository.findAgentMessage(messageContext.agentContext, {
associatedRecordId: credentialRecord.id,
messageClass: V2OfferCredentialMessage,
role: DidCommMessageRole.Receiver,
})

credentialRecord.assertProtocolVersion('v2')
Expand Down Expand Up @@ -506,6 +511,7 @@ export class V2CredentialProtocol<CFs extends CredentialFormatService[] = Creden
const offerMessage = await didCommMessageRepository.getAgentMessage(agentContext, {
associatedRecordId: credentialRecord.id,
messageClass: V2OfferCredentialMessage,
role: DidCommMessageRole.Receiver,
})

formatServices = this.getFormatServicesFromMessage(offerMessage.formats)
Expand Down Expand Up @@ -664,11 +670,13 @@ export class V2CredentialProtocol<CFs extends CredentialFormatService[] = Creden
const proposalMessage = await didCommMessageRepository.findAgentMessage(messageContext.agentContext, {
associatedRecordId: credentialRecord.id,
messageClass: V2ProposeCredentialMessage,
role: DidCommMessageRole.Receiver,
})

const offerMessage = await didCommMessageRepository.findAgentMessage(messageContext.agentContext, {
associatedRecordId: credentialRecord.id,
messageClass: V2OfferCredentialMessage,
role: DidCommMessageRole.Sender,
})

// Assert
Expand Down Expand Up @@ -752,6 +760,7 @@ export class V2CredentialProtocol<CFs extends CredentialFormatService[] = Creden
const requestMessage = await didCommMessageRepository.getAgentMessage(agentContext, {
associatedRecordId: credentialRecord.id,
messageClass: V2RequestCredentialMessage,
role: DidCommMessageRole.Receiver,
})

formatServices = this.getFormatServicesFromMessage(requestMessage.formats)
Expand Down Expand Up @@ -807,10 +816,12 @@ export class V2CredentialProtocol<CFs extends CredentialFormatService[] = Creden
const requestMessage = await didCommMessageRepository.getAgentMessage(messageContext.agentContext, {
associatedRecordId: credentialRecord.id,
messageClass: V2RequestCredentialMessage,
role: DidCommMessageRole.Sender,
})
const offerMessage = await didCommMessageRepository.findAgentMessage(messageContext.agentContext, {
associatedRecordId: credentialRecord.id,
messageClass: V2OfferCredentialMessage,
role: DidCommMessageRole.Receiver,
})

// Assert
Expand Down Expand Up @@ -892,11 +903,13 @@ export class V2CredentialProtocol<CFs extends CredentialFormatService[] = Creden
const requestMessage = await didCommMessageRepository.getAgentMessage(messageContext.agentContext, {
associatedRecordId: credentialRecord.id,
messageClass: V2RequestCredentialMessage,
role: DidCommMessageRole.Receiver,
})

const credentialMessage = await didCommMessageRepository.getAgentMessage(messageContext.agentContext, {
associatedRecordId: credentialRecord.id,
messageClass: V2IssueCredentialMessage,
role: DidCommMessageRole.Sender,
})

// Assert
Expand Down
Loading

0 comments on commit add7e09

Please sign in to comment.