From d4fa78ff0d03d64db6806fde9fdd6c7201ce1969 Mon Sep 17 00:00:00 2001 From: Simonas Karuzas Date: Fri, 6 Mar 2020 15:33:37 +0200 Subject: [PATCH] fix: VC / VP hash --- examples/send-vc/test.ts | 37 +++++++------------ packages/daf-core/src/entities/action.ts | 23 ------------ packages/daf-core/src/entities/credential.ts | 4 +- packages/daf-core/src/entities/identity.ts | 7 ---- packages/daf-core/src/entities/message.ts | 2 +- .../daf-core/src/entities/presentation.ts | 5 ++- packages/daf-core/src/index.ts | 2 +- 7 files changed, 21 insertions(+), 59 deletions(-) delete mode 100644 packages/daf-core/src/entities/action.ts diff --git a/examples/send-vc/test.ts b/examples/send-vc/test.ts index 15d262976..f055a0de2 100644 --- a/examples/send-vc/test.ts +++ b/examples/send-vc/test.ts @@ -1,34 +1,24 @@ -import { - Identity, - Key, - OMessage, - MessageMetaData, - Credential, - Presentation, - Claim, - Action, - Message, -} from 'daf-core' +import { Identity, Key, OMessage, MessageMetaData, Credential, Presentation, Claim } from 'daf-core' import { core } from './setup' import { createConnection, Like } from 'typeorm' const main = async () => { await createConnection({ // Sqlite - // "type": "sqlite", - // "database": "database.sqlite", + type: 'sqlite', + database: 'database.sqlite', //Postgres - type: 'postgres', - host: 'localhost', - port: 5432, - username: 'simonas', - password: '', - database: 'simonas', + // type: 'postgres', + // host: 'localhost', + // port: 5432, + // username: 'simonas', + // password: '', + // database: 'simonas', synchronize: true, logging: true, - entities: [Key, Identity, OMessage, MessageMetaData, Credential, Presentation, Claim, Action], + entities: [Key, Identity, OMessage, MessageMetaData, Credential, Presentation, Claim], }) let identity1: Identity @@ -53,9 +43,9 @@ const main = async () => { vc.issuer = identity1 vc.subject = identity2 vc.issuedAt = new Date() - vc.raw = 'JWTvc2' vc.context = ['https://www.w3.org/2018/credentials/v1323', 'https://www.w3.org/2020/demo/4342323'] vc.type = ['VerifiableCredential', 'PublicProfile'] + vc.setRaw('JWTvc2') vc.setCredentialSubject({ name: 'Jonas', // profilePicture: 'https://simons.com/a.png', @@ -72,13 +62,14 @@ const main = async () => { vp.context = ['https://www.w3.org/2018/credentials/v1323'] vp.type = ['VerifiablePresentation', 'KYC'] vp.credentials = [vc] - vp.raw = 'JWTvp2' + vp.setRaw('JWTvp2') const m = new OMessage() + m.id = 'aaaaaaabbb' m.from = identity1 m.to = [identity2] m.type = 'w3c.vp' - m.raw = 'JWTvp2' + m.raw = 'JWTvp3333' m.presentations = [vp] m.credentials = [vc] diff --git a/packages/daf-core/src/entities/action.ts b/packages/daf-core/src/entities/action.ts deleted file mode 100644 index 4532a9004..000000000 --- a/packages/daf-core/src/entities/action.ts +++ /dev/null @@ -1,23 +0,0 @@ -import { Entity, Column, BaseEntity, ManyToOne, PrimaryGeneratedColumn } from 'typeorm' -import { Identity } from './identity' - -@Entity() -export class Action extends BaseEntity { - @PrimaryGeneratedColumn() - id: string - - @Column() - type: string - - @ManyToOne( - type => Identity, - identity => identity.actions, - ) - identity: Identity - - @Column() - timestamp: number - - @Column() - data: string -} diff --git a/packages/daf-core/src/entities/credential.ts b/packages/daf-core/src/entities/credential.ts index 0c3cbd810..23c7ceb14 100644 --- a/packages/daf-core/src/entities/credential.ts +++ b/packages/daf-core/src/entities/credential.ts @@ -20,8 +20,8 @@ export class Credential extends BaseEntity { @PrimaryColumn() hash: string - @BeforeInsert() - async updateHash() { + setRaw(raw: string) { + this.raw = raw this.hash = blake2bHex(this.raw) } diff --git a/packages/daf-core/src/entities/identity.ts b/packages/daf-core/src/entities/identity.ts index a2bc445e0..7d6fe04fd 100644 --- a/packages/daf-core/src/entities/identity.ts +++ b/packages/daf-core/src/entities/identity.ts @@ -1,6 +1,5 @@ import { Entity, Column, PrimaryColumn, BaseEntity, OneToMany, ManyToMany } from 'typeorm' import { Key } from './key' -import { Action } from './action' import { Message } from './message' import { Presentation } from './presentation' import { Credential } from './credential' @@ -20,12 +19,6 @@ export class Identity extends BaseEntity { ) keys: Key[] - @OneToMany( - type => Action, - action => action.identity, - ) - actions: Action[] - @OneToMany( type => Message, message => message.from, diff --git a/packages/daf-core/src/entities/message.ts b/packages/daf-core/src/entities/message.ts index b97d65787..668a5b257 100644 --- a/packages/daf-core/src/entities/message.ts +++ b/packages/daf-core/src/entities/message.ts @@ -17,7 +17,7 @@ import { Credential } from './credential' @Entity() export class Message extends BaseEntity { - @PrimaryGeneratedColumn() + @PrimaryGeneratedColumn('uuid') id: string @CreateDateColumn() diff --git a/packages/daf-core/src/entities/presentation.ts b/packages/daf-core/src/entities/presentation.ts index a237c6892..6b271ef9b 100644 --- a/packages/daf-core/src/entities/presentation.ts +++ b/packages/daf-core/src/entities/presentation.ts @@ -18,10 +18,11 @@ export class Presentation extends BaseEntity { @PrimaryColumn() hash: string - @BeforeInsert() - async updateHash() { + setRaw(raw: string) { + this.raw = raw this.hash = blake2bHex(this.raw) } + @ManyToOne( type => Identity, identity => identity.issuedPresentations, diff --git a/packages/daf-core/src/index.ts b/packages/daf-core/src/index.ts index 8a0cb00bd..a9f770cf1 100644 --- a/packages/daf-core/src/index.ts +++ b/packages/daf-core/src/index.ts @@ -21,7 +21,7 @@ export { Identity } from './entities/identity' import { Message as OMessage } from './entities/message' export { OMessage } export { MessageMetaData } from './entities/message-meta-data' -export { Action } from './entities/action' +export { Action } from './types' export { Claim } from './entities/claim' export { Credential } from './entities/credential' export { Presentation } from './entities/presentation'