diff --git a/src/utils.ts b/src/utils.ts index 983a42ee..3b227ad0 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -31,7 +31,10 @@ import { v4 } from 'uuid' import { VerificationMethod as ProtoVerificationMethod, Service as ProtoService, -} from "@cheqd/ts-proto/cheqd/did/v2/index.js" + MsgCreateDidDocPayload, + MsgDeactivateDidDocPayload, +} from "@cheqd/ts-proto/cheqd/did/v2" +import { DIDModule } from "./modules/did" export type TImportableEd25519Key = { publicKeyHex: string @@ -255,3 +258,32 @@ function toMultibaseRaw(key: Uint8Array) { return bases['base58btc'].encode(multibase); } + +export async function createMsgCreateDidDocPayloadToSign(didPayload: DIDDocument, versionId: string) { + const { protobufVerificationMethod, protobufService } = await DIDModule.validateSpecCompliantPayload(didPayload) + return MsgCreateDidDocPayload.encode( + MsgCreateDidDocPayload.fromPartial({ + context: didPayload?.['@context'], + id: didPayload.id, + controller: didPayload.controller, + verificationMethod: protobufVerificationMethod, + authentication: didPayload.authentication, + assertionMethod: didPayload.assertionMethod, + capabilityInvocation: didPayload.capabilityInvocation, + capabilityDelegation: didPayload.capabilityDelegation, + keyAgreement: didPayload.keyAgreement, + service: protobufService, + alsoKnownAs: didPayload.alsoKnownAs, + versionId, + }) + ).finish() +} + +export function createMsgDeactivateDidDocPayloadToSign(didPayload: DIDDocument, versionId?: string) { + return MsgDeactivateDidDocPayload.encode( + MsgDeactivateDidDocPayload.fromPartial({ + id: didPayload.id, + versionId, + }) + ).finish() +}