From ac01d06c2b5bb0d756751f1b40f185ce8e998bd5 Mon Sep 17 00:00:00 2001 From: Raphael Flechtner Date: Tue, 16 Jul 2024 17:33:03 +0200 Subject: [PATCH 1/2] fix: make sure existing keyAgreement VMs are replaced --- .../src/DidHelpers/setVerificationMethod.ts | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/packages/sdk-js/src/DidHelpers/setVerificationMethod.ts b/packages/sdk-js/src/DidHelpers/setVerificationMethod.ts index 2b657e3cf..ebe26994d 100644 --- a/packages/sdk-js/src/DidHelpers/setVerificationMethod.ts +++ b/packages/sdk-js/src/DidHelpers/setVerificationMethod.ts @@ -9,8 +9,12 @@ import { type NewDidEncryptionKey, type NewDidVerificationKey, publicKeyToChain, + urlFragmentToChain, } from '@kiltprotocol/did' -import type { VerificationRelationship } from '@kiltprotocol/types' +import type { + SubmittableExtrinsic, + VerificationRelationship, +} from '@kiltprotocol/types' import { convertPublicKey } from './common.js' import type { @@ -42,9 +46,14 @@ export function setVerificationMethod( publicKey: pk.publicKey, type: pk.keyType as any, } - didKeyUpdateTx = options.api.tx.did.addKeyAgreementKey( - publicKeyToChain(didEncryptionKey) + const txs: SubmittableExtrinsic[] = [] + options.didDocument.keyAgreement?.forEach((id) => + txs.push(options.api.tx.did.removeKeyAgreementKey(urlFragmentToChain(id))) + ) + txs.push( + options.api.tx.did.addKeyAgreementKey(publicKeyToChain(didEncryptionKey)) ) + didKeyUpdateTx = options.api.tx.utility.batchAll(txs) } else { const didVerificationKey: NewDidVerificationKey = { publicKey: pk.publicKey, From 1f83301b0ff4b4de93cb56864b40b3469e469acf Mon Sep 17 00:00:00 2001 From: Raphael Flechtner Date: Tue, 16 Jul 2024 17:34:59 +0200 Subject: [PATCH 2/2] fix: use correct extrinsic for assertionMethod --- packages/sdk-js/src/DidHelpers/setVerificationMethod.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/sdk-js/src/DidHelpers/setVerificationMethod.ts b/packages/sdk-js/src/DidHelpers/setVerificationMethod.ts index ebe26994d..bd5d05706 100644 --- a/packages/sdk-js/src/DidHelpers/setVerificationMethod.ts +++ b/packages/sdk-js/src/DidHelpers/setVerificationMethod.ts @@ -74,7 +74,7 @@ export function setVerificationMethod( break } case 'assertionMethod': { - didKeyUpdateTx = options.api.tx.did.assertionMethod( + didKeyUpdateTx = options.api.tx.did.setAttestationKey( publicKeyToChain(didVerificationKey) ) break