Skip to content

Commit 7850a27

Browse files
authored
refactor(proofs)!: make nonce optional and add missing exports (openwallet-foundation#1073)
Signed-off-by: Ariel Gentile <[email protected]>
1 parent a635565 commit 7850a27

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

42 files changed

+323
-321
lines changed

Diff for: packages/core/src/modules/credentials/CredentialsApi.ts

+31-31
Original file line numberDiff line numberDiff line change
@@ -3,21 +3,21 @@ import type { Query } from '../../storage/StorageService'
33
import type { DeleteCredentialOptions } from './CredentialServiceOptions'
44
import type {
55
AcceptCredentialOptions,
6-
AcceptOfferOptions,
7-
AcceptProposalOptions,
8-
AcceptRequestOptions,
6+
AcceptCredentialOfferOptions,
7+
AcceptCredentialProposalOptions,
8+
AcceptCredentialRequestOptions,
99
CreateOfferOptions,
1010
FindCredentialMessageReturn,
11-
FindOfferMessageReturn,
12-
FindProposalMessageReturn,
13-
FindRequestMessageReturn,
11+
FindCredentialOfferMessageReturn,
12+
FindCredentialProposalMessageReturn,
13+
FindCredentialRequestMessageReturn,
1414
GetFormatDataReturn,
15-
NegotiateOfferOptions,
16-
NegotiateProposalOptions,
15+
NegotiateCredentialOfferOptions,
16+
NegotiateCredentialProposalOptions,
1717
OfferCredentialOptions,
1818
ProposeCredentialOptions,
19-
SendProblemReportOptions,
20-
ServiceMap,
19+
SendCredentialProblemReportOptions,
20+
CredentialServiceMap,
2121
} from './CredentialsApiOptions'
2222
import type { CredentialFormat } from './formats'
2323
import type { IndyCredentialFormat } from './formats/indy/IndyCredentialFormat'
@@ -47,21 +47,21 @@ import { CredentialRepository } from './repository/CredentialRepository'
4747
export interface CredentialsApi<CFs extends CredentialFormat[], CSs extends CredentialService<CFs>[]> {
4848
// Propose Credential methods
4949
proposeCredential(options: ProposeCredentialOptions<CFs, CSs>): Promise<CredentialExchangeRecord>
50-
acceptProposal(options: AcceptProposalOptions<CFs>): Promise<CredentialExchangeRecord>
51-
negotiateProposal(options: NegotiateProposalOptions<CFs>): Promise<CredentialExchangeRecord>
50+
acceptProposal(options: AcceptCredentialProposalOptions<CFs>): Promise<CredentialExchangeRecord>
51+
negotiateProposal(options: NegotiateCredentialProposalOptions<CFs>): Promise<CredentialExchangeRecord>
5252

5353
// Offer Credential Methods
5454
offerCredential(options: OfferCredentialOptions<CFs, CSs>): Promise<CredentialExchangeRecord>
55-
acceptOffer(options: AcceptOfferOptions<CFs>): Promise<CredentialExchangeRecord>
55+
acceptOffer(options: AcceptCredentialOfferOptions<CFs>): Promise<CredentialExchangeRecord>
5656
declineOffer(credentialRecordId: string): Promise<CredentialExchangeRecord>
57-
negotiateOffer(options: NegotiateOfferOptions<CFs>): Promise<CredentialExchangeRecord>
57+
negotiateOffer(options: NegotiateCredentialOfferOptions<CFs>): Promise<CredentialExchangeRecord>
5858

5959
// Request Credential Methods
6060
// This is for beginning the exchange with a request (no proposal or offer). Only possible
6161
// (currently) with W3C. We will not implement this in phase I
6262

6363
// when the issuer accepts the request he issues the credential to the holder
64-
acceptRequest(options: AcceptRequestOptions<CFs>): Promise<CredentialExchangeRecord>
64+
acceptRequest(options: AcceptCredentialRequestOptions<CFs>): Promise<CredentialExchangeRecord>
6565

6666
// Issue Credential Methods
6767
acceptCredential(options: AcceptCredentialOptions): Promise<CredentialExchangeRecord>
@@ -72,7 +72,7 @@ export interface CredentialsApi<CFs extends CredentialFormat[], CSs extends Cred
7272
credentialRecord: CredentialExchangeRecord
7373
}>
7474

75-
sendProblemReport(options: SendProblemReportOptions): Promise<CredentialExchangeRecord>
75+
sendProblemReport(options: SendCredentialProblemReportOptions): Promise<CredentialExchangeRecord>
7676

7777
// Record Methods
7878
getAll(): Promise<CredentialExchangeRecord[]>
@@ -84,9 +84,9 @@ export interface CredentialsApi<CFs extends CredentialFormat[], CSs extends Cred
8484
getFormatData(credentialRecordId: string): Promise<GetFormatDataReturn<CFs>>
8585

8686
// DidComm Message Records
87-
findProposalMessage(credentialExchangeId: string): Promise<FindProposalMessageReturn<CSs>>
88-
findOfferMessage(credentialExchangeId: string): Promise<FindOfferMessageReturn<CSs>>
89-
findRequestMessage(credentialExchangeId: string): Promise<FindRequestMessageReturn<CSs>>
87+
findProposalMessage(credentialExchangeId: string): Promise<FindCredentialProposalMessageReturn<CSs>>
88+
findOfferMessage(credentialExchangeId: string): Promise<FindCredentialOfferMessageReturn<CSs>>
89+
findRequestMessage(credentialExchangeId: string): Promise<FindCredentialRequestMessageReturn<CSs>>
9090
findCredentialMessage(credentialExchangeId: string): Promise<FindCredentialMessageReturn<CSs>>
9191
}
9292

@@ -108,7 +108,7 @@ export class CredentialsApi<
108108
private didCommMessageRepository: DidCommMessageRepository
109109
private routingService: RoutingService
110110
private logger: Logger
111-
private serviceMap: ServiceMap<CFs, CSs>
111+
private serviceMap: CredentialServiceMap<CFs, CSs>
112112

113113
public constructor(
114114
messageSender: MessageSender,
@@ -141,7 +141,7 @@ export class CredentialsApi<
141141
[service.version]: service,
142142
}),
143143
{}
144-
) as ServiceMap<CFs, CSs>
144+
) as CredentialServiceMap<CFs, CSs>
145145

146146
this.logger.debug(`Initializing Credentials Module for agent ${this.agentContext.config.label}`)
147147
}
@@ -195,7 +195,7 @@ export class CredentialsApi<
195195
* @returns Credential exchange record associated with the credential offer
196196
*
197197
*/
198-
public async acceptProposal(options: AcceptProposalOptions<CFs>): Promise<CredentialExchangeRecord> {
198+
public async acceptProposal(options: AcceptCredentialProposalOptions<CFs>): Promise<CredentialExchangeRecord> {
199199
const credentialRecord = await this.getById(options.credentialRecordId)
200200

201201
if (!credentialRecord.connectionId) {
@@ -227,11 +227,11 @@ export class CredentialsApi<
227227
* Negotiate a credential proposal as issuer (by sending a credential offer message) to the connection
228228
* associated with the credential record.
229229
*
230-
* @param options configuration for the offer see {@link NegotiateProposalOptions}
230+
* @param options configuration for the offer see {@link NegotiateCredentialProposalOptions}
231231
* @returns Credential exchange record associated with the credential offer
232232
*
233233
*/
234-
public async negotiateProposal(options: NegotiateProposalOptions<CFs>): Promise<CredentialExchangeRecord> {
234+
public async negotiateProposal(options: NegotiateCredentialProposalOptions<CFs>): Promise<CredentialExchangeRecord> {
235235
const credentialRecord = await this.getById(options.credentialRecordId)
236236

237237
if (!credentialRecord.connectionId) {
@@ -291,7 +291,7 @@ export class CredentialsApi<
291291
* @param options The object containing config options of the offer to be accepted
292292
* @returns Object containing offer associated credential record
293293
*/
294-
public async acceptOffer(options: AcceptOfferOptions<CFs>): Promise<CredentialExchangeRecord> {
294+
public async acceptOffer(options: AcceptCredentialOfferOptions<CFs>): Promise<CredentialExchangeRecord> {
295295
const credentialRecord = await this.getById(options.credentialRecordId)
296296

297297
const service = this.getService(credentialRecord.protocolVersion)
@@ -369,7 +369,7 @@ export class CredentialsApi<
369369
return credentialRecord
370370
}
371371

372-
public async negotiateOffer(options: NegotiateOfferOptions<CFs>): Promise<CredentialExchangeRecord> {
372+
public async negotiateOffer(options: NegotiateCredentialOfferOptions<CFs>): Promise<CredentialExchangeRecord> {
373373
const credentialRecord = await this.getById(options.credentialRecordId)
374374

375375
const service = this.getService(credentialRecord.protocolVersion)
@@ -424,7 +424,7 @@ export class CredentialsApi<
424424
* @param options The object containing config options of the request
425425
* @returns CredentialExchangeRecord updated with information pertaining to this request
426426
*/
427-
public async acceptRequest(options: AcceptRequestOptions<CFs>): Promise<CredentialExchangeRecord> {
427+
public async acceptRequest(options: AcceptCredentialRequestOptions<CFs>): Promise<CredentialExchangeRecord> {
428428
const credentialRecord = await this.getById(options.credentialRecordId)
429429

430430
// with version we can get the Service
@@ -539,7 +539,7 @@ export class CredentialsApi<
539539
* @param message message to send
540540
* @returns credential record associated with the credential problem report message
541541
*/
542-
public async sendProblemReport(options: SendProblemReportOptions) {
542+
public async sendProblemReport(options: SendCredentialProblemReportOptions) {
543543
const credentialRecord = await this.getById(options.credentialRecordId)
544544
if (!credentialRecord.connectionId) {
545545
throw new AriesFrameworkError(`No connectionId found for credential record '${credentialRecord.id}'.`)
@@ -625,19 +625,19 @@ export class CredentialsApi<
625625
await this.credentialRepository.update(this.agentContext, credentialRecord)
626626
}
627627

628-
public async findProposalMessage(credentialExchangeId: string): Promise<FindProposalMessageReturn<CSs>> {
628+
public async findProposalMessage(credentialExchangeId: string): Promise<FindCredentialProposalMessageReturn<CSs>> {
629629
const service = await this.getServiceForCredentialExchangeId(credentialExchangeId)
630630

631631
return service.findProposalMessage(this.agentContext, credentialExchangeId)
632632
}
633633

634-
public async findOfferMessage(credentialExchangeId: string): Promise<FindOfferMessageReturn<CSs>> {
634+
public async findOfferMessage(credentialExchangeId: string): Promise<FindCredentialOfferMessageReturn<CSs>> {
635635
const service = await this.getServiceForCredentialExchangeId(credentialExchangeId)
636636

637637
return service.findOfferMessage(this.agentContext, credentialExchangeId)
638638
}
639639

640-
public async findRequestMessage(credentialExchangeId: string): Promise<FindRequestMessageReturn<CSs>> {
640+
public async findRequestMessage(credentialExchangeId: string): Promise<FindCredentialRequestMessageReturn<CSs>> {
641641
const service = await this.getServiceForCredentialExchangeId(credentialExchangeId)
642642

643643
return service.findRequestMessage(this.agentContext, credentialExchangeId)

Diff for: packages/core/src/modules/credentials/CredentialsApiOptions.ts

+25-15
Original file line numberDiff line numberDiff line change
@@ -6,32 +6,38 @@ import type { CredentialService } from './services'
66
// re-export GetFormatDataReturn type from service, as it is also used in the module
77
export type { GetFormatDataReturn }
88

9-
export type FindProposalMessageReturn<CSs extends CredentialService[]> = ReturnType<CSs[number]['findProposalMessage']>
10-
export type FindOfferMessageReturn<CSs extends CredentialService[]> = ReturnType<CSs[number]['findOfferMessage']>
11-
export type FindRequestMessageReturn<CSs extends CredentialService[]> = ReturnType<CSs[number]['findRequestMessage']>
9+
export type FindCredentialProposalMessageReturn<CSs extends CredentialService[]> = ReturnType<
10+
CSs[number]['findProposalMessage']
11+
>
12+
export type FindCredentialOfferMessageReturn<CSs extends CredentialService[]> = ReturnType<
13+
CSs[number]['findOfferMessage']
14+
>
15+
export type FindCredentialRequestMessageReturn<CSs extends CredentialService[]> = ReturnType<
16+
CSs[number]['findRequestMessage']
17+
>
1218
export type FindCredentialMessageReturn<CSs extends CredentialService[]> = ReturnType<
1319
CSs[number]['findCredentialMessage']
1420
>
1521

1622
/**
1723
* Get the supported protocol versions based on the provided credential services.
1824
*/
19-
export type ProtocolVersionType<CSs extends CredentialService[]> = CSs[number]['version']
25+
export type CredentialProtocolVersionType<CSs extends CredentialService[]> = CSs[number]['version']
2026

2127
/**
2228
* Get the service map for usage in the credentials module. Will return a type mapping of protocol version to service.
2329
*
2430
* @example
2531
* ```
26-
* type CredentialServiceMap = ServiceMap<[IndyCredentialFormat], [V1CredentialService]>
32+
* type ServiceMap = CredentialServiceMap<[IndyCredentialFormat], [V1CredentialService]>
2733
*
2834
* // equal to
29-
* type CredentialServiceMap = {
35+
* type ServiceMap = {
3036
* v1: V1CredentialService
3137
* }
3238
* ```
3339
*/
34-
export type ServiceMap<CFs extends CredentialFormat[], CSs extends CredentialService<CFs>[]> = {
40+
export type CredentialServiceMap<CFs extends CredentialFormat[], CSs extends CredentialService<CFs>[]> = {
3541
[CS in CSs[number] as CS['version']]: CredentialService<CFs>
3642
}
3743

@@ -48,7 +54,7 @@ export interface ProposeCredentialOptions<
4854
CSs extends CredentialService[] = CredentialService[]
4955
> extends BaseOptions {
5056
connectionId: string
51-
protocolVersion: ProtocolVersionType<CSs>
57+
protocolVersion: CredentialProtocolVersionType<CSs>
5258
credentialFormats: CredentialFormatPayload<CFs, 'createProposal'>
5359
}
5460

@@ -57,15 +63,17 @@ export interface ProposeCredentialOptions<
5763
*
5864
* credentialFormats is optional because this is an accept method
5965
*/
60-
export interface AcceptProposalOptions<CFs extends CredentialFormat[] = CredentialFormat[]> extends BaseOptions {
66+
export interface AcceptCredentialProposalOptions<CFs extends CredentialFormat[] = CredentialFormat[]>
67+
extends BaseOptions {
6168
credentialRecordId: string
6269
credentialFormats?: CredentialFormatPayload<CFs, 'acceptProposal'>
6370
}
6471

6572
/**
6673
* Interface for CredentialsApi.negotiateProposal. Will send an offer
6774
*/
68-
export interface NegotiateProposalOptions<CFs extends CredentialFormat[] = CredentialFormat[]> extends BaseOptions {
75+
export interface NegotiateCredentialProposalOptions<CFs extends CredentialFormat[] = CredentialFormat[]>
76+
extends BaseOptions {
6977
credentialRecordId: string
7078
credentialFormats: CredentialFormatPayload<CFs, 'createOffer'>
7179
}
@@ -77,7 +85,7 @@ export interface CreateOfferOptions<
7785
CFs extends CredentialFormat[] = CredentialFormat[],
7886
CSs extends CredentialService[] = CredentialService[]
7987
> extends BaseOptions {
80-
protocolVersion: ProtocolVersionType<CSs>
88+
protocolVersion: CredentialProtocolVersionType<CSs>
8189
credentialFormats: CredentialFormatPayload<CFs, 'createOffer'>
8290
}
8391

@@ -97,15 +105,16 @@ export interface OfferCredentialOptions<
97105
*
98106
* credentialFormats is optional because this is an accept method
99107
*/
100-
export interface AcceptOfferOptions<CFs extends CredentialFormat[] = CredentialFormat[]> extends BaseOptions {
108+
export interface AcceptCredentialOfferOptions<CFs extends CredentialFormat[] = CredentialFormat[]> extends BaseOptions {
101109
credentialRecordId: string
102110
credentialFormats?: CredentialFormatPayload<CFs, 'acceptOffer'>
103111
}
104112

105113
/**
106114
* Interface for CredentialsApi.negotiateOffer. Will send a proposal.
107115
*/
108-
export interface NegotiateOfferOptions<CFs extends CredentialFormat[] = CredentialFormat[]> extends BaseOptions {
116+
export interface NegotiateCredentialOfferOptions<CFs extends CredentialFormat[] = CredentialFormat[]>
117+
extends BaseOptions {
109118
credentialRecordId: string
110119
credentialFormats: CredentialFormatPayload<CFs, 'createProposal'>
111120
}
@@ -115,7 +124,8 @@ export interface NegotiateOfferOptions<CFs extends CredentialFormat[] = Credenti
115124
*
116125
* credentialFormats is optional because this is an accept method
117126
*/
118-
export interface AcceptRequestOptions<CFs extends CredentialFormat[] = CredentialFormat[]> extends BaseOptions {
127+
export interface AcceptCredentialRequestOptions<CFs extends CredentialFormat[] = CredentialFormat[]>
128+
extends BaseOptions {
119129
credentialRecordId: string
120130
credentialFormats?: CredentialFormatPayload<CFs, 'acceptRequest'>
121131
autoAcceptCredential?: AutoAcceptCredential
@@ -132,7 +142,7 @@ export interface AcceptCredentialOptions {
132142
/**
133143
* Interface for CredentialsApi.sendProblemReport. Will send a problem-report message
134144
*/
135-
export interface SendProblemReportOptions {
145+
export interface SendCredentialProblemReportOptions {
136146
credentialRecordId: string
137147
message: string
138148
}

Diff for: packages/core/src/modules/credentials/formats/CredentialFormatService.ts

+7-4
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import type {
77
FormatCreateOfferOptions,
88
FormatCreateOfferReturn,
99
FormatCreateRequestOptions,
10-
FormatCreateReturn,
10+
CredentialFormatCreateReturn,
1111
FormatAcceptRequestOptions,
1212
FormatAcceptOfferOptions,
1313
FormatAcceptProposalOptions,
@@ -41,18 +41,21 @@ export abstract class CredentialFormatService<CF extends CredentialFormat = Cred
4141
options: FormatCreateOfferOptions<CF>
4242
): Promise<FormatCreateOfferReturn>
4343
abstract processOffer(agentContext: AgentContext, options: FormatProcessOptions): Promise<void>
44-
abstract acceptOffer(agentContext: AgentContext, options: FormatAcceptOfferOptions<CF>): Promise<FormatCreateReturn>
44+
abstract acceptOffer(
45+
agentContext: AgentContext,
46+
options: FormatAcceptOfferOptions<CF>
47+
): Promise<CredentialFormatCreateReturn>
4548

4649
// request methods
4750
abstract createRequest(
4851
agentContext: AgentContext,
4952
options: FormatCreateRequestOptions<CF>
50-
): Promise<FormatCreateReturn>
53+
): Promise<CredentialFormatCreateReturn>
5154
abstract processRequest(agentContext: AgentContext, options: FormatProcessOptions): Promise<void>
5255
abstract acceptRequest(
5356
agentContext: AgentContext,
5457
options: FormatAcceptRequestOptions<CF>
55-
): Promise<FormatCreateReturn>
58+
): Promise<CredentialFormatCreateReturn>
5659

5760
// credential methods
5861
abstract processCredential(agentContext: AgentContext, options: FormatProcessOptions): Promise<void>

Diff for: packages/core/src/modules/credentials/formats/CredentialFormatServiceOptions.ts

+6-6
Original file line numberDiff line numberDiff line change
@@ -10,15 +10,15 @@ import type { CredentialFormatService } from './CredentialFormatService'
1010
*
1111
* @example
1212
* ```
13-
* type CredentialFormatServiceMap = FormatServiceMap<[IndyCredentialFormat]>
13+
* type FormatServiceMap = CredentialFormatServiceMap<[IndyCredentialFormat]>
1414
*
1515
* // equal to
16-
* type CredentialFormatServiceMap = {
16+
* type FormatServiceMap = {
1717
* indy: CredentialFormatService<IndyCredentialFormat>
1818
* }
1919
* ```
2020
*/
21-
export type FormatServiceMap<CFs extends CredentialFormat[]> = {
21+
export type CredentialFormatServiceMap<CFs extends CredentialFormat[]> = {
2222
[CF in CFs[number] as CF['formatKey']]: CredentialFormatService<CF>
2323
}
2424

@@ -27,7 +27,7 @@ export type FormatServiceMap<CFs extends CredentialFormat[]> = {
2727
*
2828
* It requires an attachment and a format to be returned.
2929
*/
30-
export interface FormatCreateReturn {
30+
export interface CredentialFormatCreateReturn {
3131
format: CredentialFormatSpec
3232
attachment: Attachment
3333
}
@@ -53,7 +53,7 @@ export interface FormatAcceptProposalOptions<CF extends CredentialFormat> {
5353
proposalAttachment: Attachment
5454
}
5555

56-
export interface FormatCreateProposalReturn extends FormatCreateReturn {
56+
export interface FormatCreateProposalReturn extends CredentialFormatCreateReturn {
5757
previewAttributes?: CredentialPreviewAttribute[]
5858
}
5959

@@ -71,7 +71,7 @@ export interface FormatAcceptOfferOptions<CF extends CredentialFormat> {
7171
offerAttachment: Attachment
7272
}
7373

74-
export interface FormatCreateOfferReturn extends FormatCreateReturn {
74+
export interface FormatCreateOfferReturn extends CredentialFormatCreateReturn {
7575
previewAttributes?: CredentialPreviewAttribute[]
7676
}
7777

0 commit comments

Comments
 (0)