Class: VerifiableCredentialsServiceBase
modules/verifiable-credentials.VerifiableCredentialsServiceBase
Service responsible for managing verifiable credentials and presentations. You can read more about verifiable credentials data model here.
const { verifiableCredentialsService } = await initWithPrivateKeySigner(privateKey, rpcUrl);
verifiableCredentialsService.createRoleVC(...);
Table of contents
Constructors
Methods
- continueExchange
- createCredential
- createPresentation
- createRoleVC
- createVerifiablePresentation
- getCredentialsByDefinition
- initiateExchange
- isRevoked
- revocationDetails
- revokeCredential
- verify
- create
Constructors
constructor
• new VerifiableCredentialsServiceBase(_signerService, _cacheClient)
Parameters
| Name | Type |
|---|---|
_signerService |
SignerService |
_cacheClient |
CacheClient |
Methods
continueExchange
▸ continueExchange(«destructured»): Promise<undefined | VerifiablePresentation | VpRequest>
Parameters
| Name | Type |
|---|---|
«destructured» |
ContinueExchangeCredentials<RoleCredentialSubject> |
Returns
Promise<undefined | VerifiablePresentation | VpRequest>
issued credentials or request of additional credentials
Description
Sends credentials requested by issuer and returns either issued credentials or next credentials request
createCredential
▸ createCredential(params): Credential<RoleCredentialSubject>
Create a credential with given parameters.
await verifiableCredentialsService.createCredential({
id: 'did:ethr:ewc:0x...00',
namespace: 'root.energyweb.iam.ewc',
version: '1',
issuerFields: [],
expirationDate: new Date(),
});
Parameters
| Name | Type | Description |
|---|---|---|
params |
RoleCredentialSubjectParams |
verifiable credential parameters |
Returns
Credential<RoleCredentialSubject>
Energy Web credential
createPresentation
▸ createPresentation(verifiableCredential, options?): Presentation
Create a presentation with given verifiable credentials. Allow create presentation for a given presentation definition.
verifiableCredentialsService.createPresentation([...credentials]);
Parameters
| Name | Type | Description |
|---|---|---|
verifiableCredential |
VerifiableCredential<RoleCredentialSubject>[] |
role credential parameters |
options? |
CreatePresentationParams |
presentation options |
Returns
Presentation
presentation
createRoleVC
▸ createRoleVC(credentialParams, proofOptions?): Promise<VerifiableCredential<RoleCredentialSubject>>
Parameters
| Name | Type |
|---|---|
credentialParams |
RoleCredentialSubjectParams |
proofOptions? |
ProofOptions |
Returns
Promise<VerifiableCredential<RoleCredentialSubject>>
createVerifiablePresentation
▸ createVerifiablePresentation(verifiableCredential, options?): Promise<VerifiablePresentation>
Create a verifiable presentation with given verifiable credentials and EIP712 signature.
verifiableCredentialsService.createVerifiablePresentation([...credentials]);
Parameters
| Name | Type | Description |
|---|---|---|
verifiableCredential |
VerifiableCredential<RoleCredentialSubject>[] |
role credential parameters |
options? |
ProofOptions |
proof options |
Returns
Promise<VerifiablePresentation>
verifiable presentation
getCredentialsByDefinition
▸ getCredentialsByDefinition(presentationDefinition): Promise<SelectResults>
Returns issued role verifiable credentials which matches definition.
await verifiableCredentialsService.getCredentialsByDefinition(presentationDefinition);
Parameters
| Name | Type | Description |
|---|---|---|
presentationDefinition |
IPresentationDefinition |
credential requirements |
Returns
Promise<SelectResults>
results of matching each role verifiable credential to definition
initiateExchange
▸ initiateExchange(options): Promise<ContinueExchangeSelections>
Initialize credential exchange. Only vc-api exchanges currently supported.
verifiableCredentialsService.initiateExchange({
type: VC_API_EXCHANGE,
url: 'http://localhost:3000',
});
Parameters
| Name | Type | Description |
|---|---|---|
options |
ExchangeInvitation |
object with options |
Returns
Promise<ContinueExchangeSelections>
credentials query with matching verifiable presentations
isRevoked
▸ isRevoked(credential): Promise<boolean>
Check if given verifiable credential is revoked.
await verifiableCredentialsService.isRevoked(credential);
Parameters
| Name | Type | Description |
|---|---|---|
credential |
VerifiableCredential<RoleCredentialSubject> |
verifiable credential |
Returns
Promise<boolean>
true if credential is revoked
revocationDetails
▸ revocationDetails(credential): Promise<null | CredentialRevocationDetailsResult>
Get the credentials revocation details.
await verifiableCredentialsService.revocationDetails(credential);
Parameters
| Name | Type | Description |
|---|---|---|
credential |
VerifiableCredential<RoleCredentialSubject> |
verifiable credential |
Returns
Promise<null | CredentialRevocationDetailsResult>
revoker and revocationTimeStamp for the revocation
revokeCredential
▸ revokeCredential(credential): Promise<StatusList2021Credential>
Revoke given verifiable credential with StatusList2021.
await verifiableCredentialsService.revokeCredential(credential);
Parameters
| Name | Type | Description |
|---|---|---|
credential |
VerifiableCredential<RoleCredentialSubject> |
verifiable credential |
Returns
Promise<StatusList2021Credential>
StatusList2021Credential
verify
▸ verify<T>(vcOrVp, options?): Promise<boolean>
Verify a given credential or presentation. Throws an error if the credential or presentation proof is not valid.
await verifiableCredentialsService.verify(credential);
await verifiableCredentialsService.verify(presentation);
Type parameters
| Name | Type |
|---|---|
T |
extends ICredentialSubject |
Parameters
| Name | Type | Description |
|---|---|---|
vcOrVp |
VerifiablePresentation | VerifiableCredential<T> |
verifiable presentation or credential |
options? |
ProofOptions |
proof options |
Returns
Promise<boolean>
true if the proof is valid
create
▸ Static create(signerService, cacheClient): Promise<VerifiableCredentialsServiceBase>
Parameters
| Name | Type |
|---|---|
signerService |
SignerService |
cacheClient |
CacheClient |
Returns
Promise<VerifiableCredentialsServiceBase>