diff --git a/docs/api/interfaces/modules_claims.IssueClaimRequestOptions.md b/docs/api/interfaces/modules_claims.IssueClaimRequestOptions.md index 4266874c..e6b574f0 100644 --- a/docs/api/interfaces/modules_claims.IssueClaimRequestOptions.md +++ b/docs/api/interfaces/modules_claims.IssueClaimRequestOptions.md @@ -58,7 +58,7 @@ ___ ### subjectAgreement -• **subjectAgreement**: `string` +• `Optional` **subjectAgreement**: `string` Subject agreement signature diff --git a/src/errors/error-messages.ts b/src/errors/error-messages.ts index 8d51ed9f..40d3ff55 100644 --- a/src/errors/error-messages.ts +++ b/src/errors/error-messages.ts @@ -27,4 +27,5 @@ export enum ERROR_MESSAGES { IS_ETH_SIGNER_NOT_SET = 'Can not determine if signer is conformant with eth_sign specification', SIGN_TYPED_DATA_NOT_SUPPORTED = 'Sign typed data not supported', CLAIM_TYPE_MISSING = 'Claim type is required for On-chain registration', + ONCHAIN_ROLE_SUBJECT_AGREEMENT_NOT_SPECIFIED = 'On-chain role subject agreement not specified', } diff --git a/src/modules/claims/claims.service.ts b/src/modules/claims/claims.service.ts index 624cb1c9..d062761a 100644 --- a/src/modules/claims/claims.service.ts +++ b/src/modules/claims/claims.service.ts @@ -364,6 +364,11 @@ export class ClaimsService { expiry, sub ); + if (!subjectAgreement) { + throw new Error( + ERROR_MESSAGES.ONCHAIN_ROLE_SUBJECT_AGREEMENT_NOT_SPECIFIED + ); + } message.onChainProof = onChainProof; if (publishOnChain) { await this.registerOnchain({ diff --git a/src/modules/claims/claims.types.ts b/src/modules/claims/claims.types.ts index d3cd65c7..8d8bd51c 100644 --- a/src/modules/claims/claims.types.ts +++ b/src/modules/claims/claims.types.ts @@ -164,7 +164,7 @@ export interface IssueClaimRequestOptions { id: string; /** Subject agreement signature */ - subjectAgreement: string; + subjectAgreement?: string; /** Registration types */ registrationTypes: RegistrationTypes[];