From 4591ccd25c143b847629d4e92c4951116b698a6e Mon Sep 17 00:00:00 2001 From: Krishna Waske Date: Mon, 13 Apr 2026 15:54:40 +0530 Subject: [PATCH 1/5] fix: events typings Signed-off-by: Krishna Waske --- src/cliAgent.ts | 5 ++++- src/events/CredentialEvents.ts | 29 ++++++++++++++++++++++++++--- src/events/ProofEvents.ts | 6 +++--- 3 files changed, 33 insertions(+), 7 deletions(-) diff --git a/src/cliAgent.ts b/src/cliAgent.ts index 18a8192d..3bde1f70 100644 --- a/src/cliAgent.ts +++ b/src/cliAgent.ts @@ -31,6 +31,7 @@ import { X509Module, JwkDidRegistrar, JwkDidResolver, + PeerDidNumAlgo, } from '@credo-ts/core' import { DidCommHttpOutboundTransport, @@ -209,6 +210,8 @@ const getModules = ( basicMessages: true, connections: { autoAcceptConnections: autoAcceptConnections || true, + peerNumAlgoForDidExchangeRequests: PeerDidNumAlgo.GenesisDoc, + peerNumAlgoForDidRotation: PeerDidNumAlgo.ShortFormAndLongForm }, proofs: { autoAcceptProofs: autoAcceptProofs || DidCommAutoAcceptProof.ContentApproved, @@ -552,6 +555,6 @@ export async function runRestAgent(restConfig: AriesRestConfig) { logger.info(`*** API Key: ${apiKey}`) app.listen(adminPort, () => { - logger.info(`Successfully started server on port ${adminPort}`) + logger.info(`Successfully started server on port ${adminPort}, hacked my way in`) }) } diff --git a/src/events/CredentialEvents.ts b/src/events/CredentialEvents.ts index 080ecf6d..9f881109 100644 --- a/src/events/CredentialEvents.ts +++ b/src/events/CredentialEvents.ts @@ -12,21 +12,44 @@ export const credentialEvents = async (agent: Agent, config: ServerConfig) => { DidCommCredentialEventTypes.DidCommCredentialStateChanged, async (event: DidCommCredentialStateChangedEvent) => { const record = event.payload.credentialExchangeRecord + const tenantId = (!event.metadata.contextCorrelationId || event.metadata.contextCorrelationId === 'default') ? event.metadata.contextCorrelationId : event.metadata.contextCorrelationId.split('tenant-')[1] const body: Record = { ...record.toJSON(), ...event.metadata, + contextCorrelationId: tenantId, outOfBandId: null, credentialData: null, } if (record?.connectionId) { - const connectionRecord = await agent.modules.connections.findById(record.connectionId!) + let connectionRecord + if (tenantId && tenantId !== 'default') { + await (agent as Agent).modules.tenants.withTenantAgent( + { tenantId: body.contextCorrelationId as string }, + async (tenantAgent) => { + connectionRecord = await tenantAgent.modules.didcomm.connections.findById(record.connectionId ? record.connectionId : '') + }, + ) + } else { + connectionRecord = await agent.modules.didcomm.connections.getById(record.connectionId) + } body.outOfBandId = connectionRecord?.outOfBandId } - const data = await agent.modules.credentials.getFormatData(record.id) - body.credentialData = data + let formatData = null + if (tenantId && tenantId !== 'default') { + await (agent as Agent).modules.tenants.withTenantAgent( + { tenantId: body.contextCorrelationId as string }, + async (tenantAgent) => { + formatData = await tenantAgent.modules.didcomm.credentials.getFormatData(record.id) + }, + ) + } else { + formatData = await agent.modules.didcomm.credentials.getFormatData(record.id) + } + + body.credentialData = formatData if (config.webhookUrl) { await sendWebhookEvent(config.webhookUrl + '/credentials', body, agent.config.logger) diff --git a/src/events/ProofEvents.ts b/src/events/ProofEvents.ts index 44166f62..42326a3e 100644 --- a/src/events/ProofEvents.ts +++ b/src/events/ProofEvents.ts @@ -11,15 +11,15 @@ export const proofEvents = async (agent: Agent, config: ServerConfig) => { const body = { ...record.toJSON(), ...event.metadata } as { proofData?: any } if (event.metadata.contextCorrelationId !== 'default') { const tenantAgent = await agent.modules.tenants.getTenantAgent({ - tenantId: event.metadata.contextCorrelationId, + tenantId: event.metadata.contextCorrelationId.split('tenant-')[1], }) - const data = await tenantAgent.proofs.getFormatData(record.id) + const data = await tenantAgent.modules.didcomm.proofs.getFormatData(record.id) body.proofData = data } //Emit webhook for dedicated agent if (event.metadata.contextCorrelationId === 'default') { - const data = await agent.modules.proofs.getFormatData(record.id) + const data = await agent.modules.didcomm.proofs.getFormatData(record.id) body.proofData = data } From acb45a19db99e3dc3abc9f49168cc9335c369235 Mon Sep 17 00:00:00 2001 From: Krishna Waske Date: Thu, 16 Apr 2026 15:26:50 +0530 Subject: [PATCH 2/5] fix: remove unnecessary comments Signed-off-by: Krishna Waske --- src/cliAgent.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/cliAgent.ts b/src/cliAgent.ts index 3bde1f70..d2b59b30 100644 --- a/src/cliAgent.ts +++ b/src/cliAgent.ts @@ -555,6 +555,6 @@ export async function runRestAgent(restConfig: AriesRestConfig) { logger.info(`*** API Key: ${apiKey}`) app.listen(adminPort, () => { - logger.info(`Successfully started server on port ${adminPort}, hacked my way in`) + logger.info(`Successfully started server on port ${adminPort}`) }) } From 9974290ecd61e1d527d72db4692433c1e96e13cb Mon Sep 17 00:00:00 2001 From: Krishna Waske Date: Thu, 16 Apr 2026 15:35:56 +0530 Subject: [PATCH 3/5] fix: add non-throwing method Signed-off-by: Krishna Waske --- src/events/CredentialEvents.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/events/CredentialEvents.ts b/src/events/CredentialEvents.ts index 9f881109..244b6980 100644 --- a/src/events/CredentialEvents.ts +++ b/src/events/CredentialEvents.ts @@ -32,7 +32,7 @@ export const credentialEvents = async (agent: Agent, config: ServerConfig) => { }, ) } else { - connectionRecord = await agent.modules.didcomm.connections.getById(record.connectionId) + connectionRecord = await agent.modules.didcomm.connections.findById(record.connectionId) } body.outOfBandId = connectionRecord?.outOfBandId } From f41bd2283878fcc2ff6e288a7918a17d1443e7e8 Mon Sep 17 00:00:00 2001 From: Krishna Waske Date: Thu, 16 Apr 2026 15:38:45 +0530 Subject: [PATCH 4/5] fix: edge case handling Signed-off-by: Krishna Waske --- src/events/ProofEvents.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/events/ProofEvents.ts b/src/events/ProofEvents.ts index 42326a3e..1dac15db 100644 --- a/src/events/ProofEvents.ts +++ b/src/events/ProofEvents.ts @@ -9,7 +9,7 @@ export const proofEvents = async (agent: Agent, config: ServerConfig) => { agent.events.on(DidCommProofEventTypes.ProofStateChanged, async (event: DidCommProofStateChangedEvent) => { const record = event.payload.proofRecord const body = { ...record.toJSON(), ...event.metadata } as { proofData?: any } - if (event.metadata.contextCorrelationId !== 'default') { + if (event.metadata.contextCorrelationId && event.metadata.contextCorrelationId !== 'default') { const tenantAgent = await agent.modules.tenants.getTenantAgent({ tenantId: event.metadata.contextCorrelationId.split('tenant-')[1], }) From ea64a0216ad0d6ea2139205fd8f72f397761f292 Mon Sep 17 00:00:00 2001 From: Krishna Waske Date: Thu, 16 Apr 2026 15:39:42 +0530 Subject: [PATCH 5/5] fix: formatting Signed-off-by: Krishna Waske --- src/cliAgent.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/cliAgent.ts b/src/cliAgent.ts index d2b59b30..606a3712 100644 --- a/src/cliAgent.ts +++ b/src/cliAgent.ts @@ -211,7 +211,7 @@ const getModules = ( connections: { autoAcceptConnections: autoAcceptConnections || true, peerNumAlgoForDidExchangeRequests: PeerDidNumAlgo.GenesisDoc, - peerNumAlgoForDidRotation: PeerDidNumAlgo.ShortFormAndLongForm + peerNumAlgoForDidRotation: PeerDidNumAlgo.ShortFormAndLongForm, }, proofs: { autoAcceptProofs: autoAcceptProofs || DidCommAutoAcceptProof.ContentApproved,