From ff5f6531af392a25a0424c4f84efb89aeaf4e73e Mon Sep 17 00:00:00 2001 From: LeonFLK <51441505+LeonFLK@users.noreply.github.com> Date: Wed, 23 Sep 2020 16:14:15 +0200 Subject: [PATCH] feat: sign did with sdk (#287) --- src/services/DidService.ts | 13 ++++++++----- src/types/Contact.d.ts | 5 +++-- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/src/services/DidService.ts b/src/services/DidService.ts index 7ca1e1ee..2355f1e3 100644 --- a/src/services/DidService.ts +++ b/src/services/DidService.ts @@ -1,4 +1,5 @@ import * as sdk from '@kiltprotocol/sdk-js' +import { IDidDocumentSigned } from '@kiltprotocol/sdk-js/build/did/Did' import * as Wallet from '../state/ducks/Wallet' import persistentStore from '../state/PersistentStore' import { IContact, IMyIdentity } from '../types/Contact' @@ -19,15 +20,17 @@ class DidService { const did = sdk.Did.fromIdentity(myIdentity.identity, documentStore) const didDocument = did.createDefaultDidDocument(`${MessageRepository.URL}`) - const hash = sdk.Crypto.hashStr(JSON.stringify(didDocument)) - const signature = myIdentity.identity.signStr(hash) + const signedDidDocument: IDidDocumentSigned = sdk.Did.signDidDocument( + didDocument, + myIdentity.identity + ) + await ContactRepository.add({ - did: didDocument, + did: signedDidDocument, metaData: { name: myIdentity.metaData.name, }, publicIdentity: myIdentity.identity.getPublicIdentity(), - signature, } as IContact) const status = await did.store(myIdentity.identity) @@ -39,7 +42,7 @@ class DidService { persistentStore.store.dispatch( Wallet.Store.updateIdentityAction(myIdentity.identity.address, { - did: { identifier: did.identifier, document: didDocument }, + did: { identifier: did.identifier, document: signedDidDocument }, }) ) return did diff --git a/src/types/Contact.d.ts b/src/types/Contact.d.ts index 7332f812..d3df87fb 100644 --- a/src/types/Contact.d.ts +++ b/src/types/Contact.d.ts @@ -1,4 +1,5 @@ import * as sdk from '@kiltprotocol/sdk-js' +import { IDidDocumentSigned } from '@kiltprotocol/sdk-js/build/did/Did' /** * as in prototype/services @@ -12,9 +13,9 @@ export interface IContact { } did?: { identifier?: string - document?: object + document?: IDidDocumentSigned } - signature?: string + publicIdentity: sdk.PublicIdentity }