Skip to content

Commit

Permalink
refactor(claims): merge ClaimData with vc-verification
Browse files Browse the repository at this point in the history
  • Loading branch information
JGiter committed Sep 12, 2022
1 parent 561a583 commit 0e1fafa
Show file tree
Hide file tree
Showing 13 changed files with 98 additions and 94 deletions.
6 changes: 3 additions & 3 deletions docs/api/classes/modules_claims.ClaimsService.md
Expand Up @@ -299,7 +299,7 @@ Generates claim id or returns id of existing claim with same data
| Name | Type |
| :------ | :------ |
| `__namedParameters` | `Object` |
| `__namedParameters.claimData` | [`ClaimData`](../interfaces/modules_did_registry.ClaimData.md) |
| `__namedParameters.claimData` | `ClaimData` |

#### Returns

Expand Down Expand Up @@ -472,7 +472,7 @@ ___

### getUserClaims

**getUserClaims**(`options`): `Promise`<`IServiceEndpoint` & [`ClaimData`](../interfaces/modules_did_registry.ClaimData.md)[]\>
**getUserClaims**(`options`): `Promise`<`IServiceEndpoint` & `Pick`<`ClaimData`, ``"claimType"`` \| ``"claimTypeVersion"``\>[]\>

Get published off-chain claims of the given subject.

Expand All @@ -490,7 +490,7 @@ claimsService.getUserClaims({

#### Returns

`Promise`<`IServiceEndpoint` & [`ClaimData`](../interfaces/modules_did_registry.ClaimData.md)[]\>
`Promise`<`IServiceEndpoint` & `Pick`<`ClaimData`, ``"claimType"`` \| ``"claimTypeVersion"``\>[]\>

Claims containing DID document service endpoints

Expand Down
14 changes: 3 additions & 11 deletions docs/api/interfaces/modules_claims.CreateClaimRequestOptions.md
Expand Up @@ -6,26 +6,18 @@

### Properties

- [claim](modules_claims.CreateClaimRequestOptions.md#claim)
- [claimData](modules_claims.CreateClaimRequestOptions.md#claimdata)
- [registrationTypes](modules_claims.CreateClaimRequestOptions.md#registrationtypes)
- [subject](modules_claims.CreateClaimRequestOptions.md#subject)

## Properties

### claim
### claimData

**claim**: `Object`
**claimData**: `ClaimData`

Claim request params

#### Type declaration

| Name | Type | Description |
| :------ | :------ | :------ |
| `claimType` | `string` | Role namespace |
| `claimTypeVersion` | `number` | Version of the role |
| `requestorFields?` | { `key`: `string` ; `value`: `string` \| `number` }[] | Requestor fields that role is requiring |

___

### registrationTypes
Expand Down
Expand Up @@ -13,7 +13,7 @@

### data

**data**: [`ClaimData`](modules_did_registry.ClaimData.md)
**data**: `ClaimData`

Claim data

Expand Down
14 changes: 0 additions & 14 deletions docs/api/interfaces/modules_did_registry.ClaimData.md
Expand Up @@ -12,25 +12,11 @@

### Properties

- [claimType](modules_did_registry.ClaimData.md#claimtype)
- [claimTypeVersion](modules_did_registry.ClaimData.md#claimtypeversion)
- [issuerFields](modules_did_registry.ClaimData.md#issuerfields)
- [profile](modules_did_registry.ClaimData.md#profile)

## Properties

### claimType

`Optional` **claimType**: `string`

___

### claimTypeVersion

`Optional` **claimTypeVersion**: `number`

___

### issuerFields

`Optional` **issuerFields**: { `key`: `string` ; `value`: `string` \| `number` }[]
Expand Down
Expand Up @@ -13,7 +13,7 @@

### data

**data**: [`ClaimData`](modules_did_registry.ClaimData.md)
**data**: `Record`<`string`, `unknown`\>

___

Expand Down
20 changes: 20 additions & 0 deletions docs/api/modules/modules_did_registry.md
Expand Up @@ -25,3 +25,23 @@
- [UpdateSignedDidDelegateOptions](../interfaces/modules_did_registry.UpdateSignedDidDelegateOptions.md)
- [UpdateSignedDidPublicKeyOptions](../interfaces/modules_did_registry.UpdateSignedDidPublicKeyOptions.md)
- [ValidDateUpdateDocumentRequestOptions](../interfaces/modules_did_registry.ValidDateUpdateDocumentRequestOptions.md)

### Functions

- [isClaimService](modules_did_registry.md#isclaimservice)

## Functions

### isClaimService

**isClaimService**(`service`): service is IServiceEndpoint & Pick<ClaimData, "claimType" \| "claimTypeVersion"\>

#### Parameters

| Name | Type |
| :------ | :------ |
| `service` | `IServiceEndpoint` |

#### Returns

service is IServiceEndpoint & Pick<ClaimData, "claimType" \| "claimTypeVersion"\>
7 changes: 5 additions & 2 deletions e2e/cache-client.e2e.ts
@@ -1,4 +1,4 @@
import { initWithPrivateKeySigner, setCacheConfig } from '../src';
import { ClaimData, initWithPrivateKeySigner, setCacheConfig } from '../src';
import { shutDownIpfsDaemon, spawnIpfsDaemon } from './utils/setup-ipfs';

const rpcUrl = 'https://volta-rpc.energyweb.org';
Expand All @@ -11,7 +11,10 @@ describe.skip('Cache client', () => {
cacheServerSupportsAuth: true,
});

const metadata = { meterId: 'SolarM' };
const metadata: ClaimData = {
claimType: 'SolarM',
claimTypeVersion: 1,
};

const { connectToCacheServer } = await initWithPrivateKeySigner(
privateKey,
Expand Down
11 changes: 7 additions & 4 deletions e2e/claims.service.e2e.ts
Expand Up @@ -495,7 +495,8 @@ describe('Сlaim tests', () => {
requestorFields,
});

expirationTimestamp && expect(exp).toEqual(Math.floor(expirationTimestamp / 1000));
expirationTimestamp &&
expect(exp).toEqual(Math.floor(expirationTimestamp / 1000));

expect(claimData).not.toContain({
fields: [{ key: 'temperature', value: 36 }],
Expand Down Expand Up @@ -1048,7 +1049,6 @@ describe('Сlaim tests', () => {
claim: {
claimType: `${roleName1}.${root}`,
claimTypeVersion: version,
requestorFields: [],
},
registrationTypes,
});
Expand Down Expand Up @@ -1281,7 +1281,10 @@ describe('Сlaim tests', () => {
describe('Selfsigned claim tests', () => {
test('Selfsigned claim should be verified', async () => {
const claimUrl = await claimsService.createSelfSignedClaim({
data: { claimType: roleName1 },
data: {
claimType: roleName1,
claimTypeVersion: 1,
},
subject: rootOwnerDID,
});
const claim = await didRegistry.ipfsStore.get(claimUrl);
Expand All @@ -1304,7 +1307,7 @@ describe('Сlaim tests', () => {
]);
const claimType = 'test claim';
const claimUrl = await claimsService.createSelfSignedClaim({
data: { claimType },
data: { claimType, claimTypeVersion: 1 },
subject: assetDID,
});
const claim = await didRegistry.ipfsStore.get(claimUrl);
Expand Down
58 changes: 29 additions & 29 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 3 additions & 3 deletions package.json
Expand Up @@ -64,11 +64,11 @@
"npm": ">= 6.0.0"
},
"dependencies": {
"@energyweb/credential-governance": "^2.2.1-alpha.293.0",
"@energyweb/credential-governance": "^2.2.1-alpha.295.0",
"@energyweb/ekc": "^0.6.7",
"@energyweb/onchain-claims": "^2.2.1-alpha.293.0",
"@energyweb/onchain-claims": "^2.2.1-alpha.295.0",
"@energyweb/staking-pool": "^1.0.0-rc.14",
"@energyweb/vc-verification": "^2.2.1-alpha.293.0",
"@energyweb/vc-verification": "^2.2.1-alpha.295.0",
"@ensdomains/ens": "^0.6.2",
"@ew-did-registry/claims": "0.7.1-alpha.816.0",
"@ew-did-registry/credentials-interface": "0.7.1-alpha.816.0",
Expand Down
19 changes: 9 additions & 10 deletions src/modules/claims/claims.service.ts
Expand Up @@ -77,7 +77,7 @@ import {
isEIP191Jwt,
} from '@energyweb/vc-verification';
import { DidRegistry } from '../did-registry/did-registry.service';
import { ClaimData } from '../did-registry/did.types';
import { ClaimData, isClaimService } from '../did-registry/did.types';
import { compareDID, isValidDID } from '../../utils/did';
import { readyToBeRegisteredOnchain } from './claims.types';
import { VerifiableCredentialsServiceBase } from '../verifiable-credentials';
Expand Down Expand Up @@ -417,7 +417,7 @@ export class ClaimsService {
expirationTimestamp,
}: IssueClaimRequestOptions): Promise<void> {
const { claimData, sub } = this._didRegistry.jwt.decode(token) as {
claimData: { claimType: string; claimTypeVersion: number };
claimData: ClaimData;
sub: string;
};

Expand Down Expand Up @@ -886,7 +886,9 @@ export class ClaimsService {
*/
async getUserClaims({
did = this._signerService.did,
}: GetUserClaimsOptions): Promise<(IServiceEndpoint & ClaimData)[]> {
}: GetUserClaimsOptions): Promise<
(IServiceEndpoint & Pick<ClaimData, 'claimType' | 'claimTypeVersion'>)[]
> {
const [services, issuedClaims] = await Promise.all([
this._didRegistry.getServices({ did }),
this.getClaimsBySubject({
Expand All @@ -901,12 +903,9 @@ export class ClaimsService {
.filter((c) => c.registrationTypes.includes(RegistrationTypes.OffChain))
.map(({ claimType }) => claimType);

return services.filter(
({ claimType }) =>
claimType &&
typeof claimType === 'string' &&
issuedClaimsTypes.includes(claimType)
);
return services
.filter(isClaimService)
.filter(({ claimType }) => issuedClaimsTypes.includes(claimType));
}

/**
Expand Down Expand Up @@ -1201,7 +1200,7 @@ export class ClaimsService {
* @param {ClaimData} data Claim data to remove fields from
* @return Claim data without fields
*/
private stripClaimData(data: ClaimData): ClaimData {
private stripClaimData(data: ClaimData): Omit<ClaimData, 'requestorFields'> {
// eslint-disable-next-line @typescript-eslint/no-unused-vars
const { fields, ...claimData } = data;

Expand Down
11 changes: 1 addition & 10 deletions src/modules/claims/claims.types.ts
Expand Up @@ -153,16 +153,7 @@ export interface GetClaimsByRevokerOptions {

export interface CreateClaimRequestOptions {
/** Claim request params */
claim: {
/** Role namespace */
claimType: string;

/** Version of the role */
claimTypeVersion: number;

/** Requestor fields that role is requiring */
requestorFields?: { key: string; value: string | number }[];
};
claim: ClaimData;

/** DID of the subject */
subject?: string;
Expand Down

0 comments on commit 0e1fafa

Please sign in to comment.