From 7fe20bd6c6c8f521cb7348cc43b65e4191c658bc Mon Sep 17 00:00:00 2001 From: DaevMithran Date: Thu, 1 Dec 2022 10:52:26 +0530 Subject: [PATCH] feat: Integrate V2 protos --- src/modules/did.ts | 78 ++++++++++++++++++++--------------------- src/modules/resource.ts | 2 +- src/signer.ts | 16 ++++----- 3 files changed, 48 insertions(+), 48 deletions(-) diff --git a/src/modules/did.ts b/src/modules/did.ts index 15a6b7f1..c1d16b71 100644 --- a/src/modules/did.ts +++ b/src/modules/did.ts @@ -3,56 +3,56 @@ import { createProtobufRpcClient, DeliverTxResponse, QueryClient } from "@cosmjs import { CheqdExtension, AbstractCheqdSDKModule, MinimalImportableCheqdSDKModule } from "./_" import { CheqdSigningStargateClient } from "../signer" import { DidStdFee, IContext, ISignInputs } from "../types" -import { MsgCreateDid, MsgCreateDidPayload, MsgCreateDidResponse, MsgUpdateDid, MsgUpdateDidPayload, MsgUpdateDidResponse, protobufPackage } from "@cheqd/ts-proto/cheqd/did/v1/tx" +import { MsgCreateDidDoc, MsgCreateDidDocPayload, MsgCreateDidDocResponse, MsgUpdateDidDoc, MsgUpdateDidDocPayload, MsgUpdateDidDocResponse, protobufPackage } from "@cheqd/ts-proto/cheqd/did/v2/tx" import { EncodeObject, GeneratedType } from "@cosmjs/proto-signing" -export const typeUrlMsgCreateDid = `/${protobufPackage}.MsgCreateDid` -export const typeUrlMsgCreateDidResponse = `/${protobufPackage}.MsgCreateDidResponse` -export const typeUrlMsgUpdateDid = `/${protobufPackage}.MsgUpdateDid` -export const typeUrlMsgUpdateDidResponse = `/${protobufPackage}.MsgUpdateDidResponse` +export const typeUrlMsgCreateDidDoc = `/${protobufPackage}.MsgCreateDidDoc` +export const typeUrlMsgCreateDidDocResponse = `/${protobufPackage}.MsgCreateDidDocResponse` +export const typeUrlMsgUpdateDidDoc = `/${protobufPackage}.MsgUpdateDidDoc` +export const typeUrlMsgUpdateDidDocResponse = `/${protobufPackage}.MsgUpdateDidDocResponse` -export interface MsgCreateDidEncodeObject extends EncodeObject { - readonly typeUrl: typeof typeUrlMsgCreateDid, - readonly value: Partial +export interface MsgCreateDidDocEncodeObject extends EncodeObject { + readonly typeUrl: typeof typeUrlMsgCreateDidDoc, + readonly value: Partial } -export function isMsgCreateDidEncodeObject(obj: EncodeObject): obj is MsgCreateDidEncodeObject { - return obj.typeUrl === typeUrlMsgCreateDid +export function isMsgCreateDidDocEncodeObject(obj: EncodeObject): obj is MsgCreateDidDocEncodeObject { + return obj.typeUrl === typeUrlMsgCreateDidDoc } -export interface MsgCreateDidResponseEncodeObject extends EncodeObject { - readonly typeUrl: typeof typeUrlMsgCreateDidResponse, - readonly value: Partial +export interface MsgCreateDidDocResponseEncodeObject extends EncodeObject { + readonly typeUrl: typeof typeUrlMsgCreateDidDocResponse, + readonly value: Partial } -export function MsgCreateDidResponseEncodeObject(obj: EncodeObject): obj is MsgCreateDidResponseEncodeObject { - return obj.typeUrl === typeUrlMsgCreateDidResponse +export function MsgCreateDidDocResponseEncodeObject(obj: EncodeObject): obj is MsgCreateDidDocResponseEncodeObject { + return obj.typeUrl === typeUrlMsgCreateDidDocResponse } -export interface MsgUpdateDidEncodeObject extends EncodeObject { - readonly typeUrl: typeof typeUrlMsgUpdateDid, - readonly value: Partial +export interface MsgUpdateDidDocEncodeObject extends EncodeObject { + readonly typeUrl: typeof typeUrlMsgUpdateDidDoc, + readonly value: Partial } -export function MsgUpdateDidEncodeObject(obj: EncodeObject): obj is MsgUpdateDidEncodeObject { - return obj.typeUrl === typeUrlMsgUpdateDid +export function MsgUpdateDidDocEncodeObject(obj: EncodeObject): obj is MsgUpdateDidDocEncodeObject { + return obj.typeUrl === typeUrlMsgUpdateDidDoc } -export interface MsgUpdateDidResponseEncodeObject extends EncodeObject { - readonly typeUrl: typeof typeUrlMsgUpdateDidResponse, - readonly value: Partial +export interface MsgUpdateDidDocResponseEncodeObject extends EncodeObject { + readonly typeUrl: typeof typeUrlMsgUpdateDidDocResponse, + readonly value: Partial } -export function MsgUpdateDidResponseEncodeObject(obj: EncodeObject): obj is MsgUpdateDidResponseEncodeObject { - return obj.typeUrl === typeUrlMsgUpdateDidResponse +export function MsgUpdateDidDocResponseEncodeObject(obj: EncodeObject): obj is MsgUpdateDidDocResponseEncodeObject { + return obj.typeUrl === typeUrlMsgUpdateDidDocResponse } export class DIDModule extends AbstractCheqdSDKModule { static readonly registryTypes: Iterable<[string, GeneratedType]> = [ - [typeUrlMsgCreateDid, MsgCreateDid], - [typeUrlMsgCreateDidResponse, MsgCreateDidResponse], - [typeUrlMsgUpdateDid, MsgUpdateDid], - [typeUrlMsgUpdateDidResponse, MsgUpdateDidResponse], + [typeUrlMsgCreateDidDoc, MsgCreateDidDoc], + [typeUrlMsgCreateDidDocResponse, MsgCreateDidDocResponse], + [typeUrlMsgUpdateDidDoc, MsgUpdateDidDoc], + [typeUrlMsgUpdateDidDocResponse, MsgUpdateDidDocResponse], ] constructor(signer: CheqdSigningStargateClient) { @@ -67,21 +67,21 @@ export class DIDModule extends AbstractCheqdSDKModule { return DIDModule.registryTypes } - async createDidTx(signInputs: ISignInputs[], didPayload: Partial, address: string, fee: DidStdFee | 'auto' | number, memo?: string, context?: IContext): Promise { + async createDidTx(signInputs: ISignInputs[], didPayload: Partial, address: string, fee: DidStdFee | 'auto' | number, memo?: string, context?: IContext): Promise { if (!this._signer) { this._signer = context!.sdk!.signer } - const payload = MsgCreateDidPayload.fromPartial(didPayload) + const payload = MsgCreateDidDocPayload.fromPartial(didPayload) const signatures = await this._signer.signCreateDidTx(signInputs, payload) - const value: MsgCreateDid = { + const value: MsgCreateDidDoc = { payload, signatures } - const createDidMsg: MsgCreateDidEncodeObject = { - typeUrl: typeUrlMsgCreateDid, + const createDidMsg: MsgCreateDidDocEncodeObject = { + typeUrl: typeUrlMsgCreateDidDoc, value } @@ -93,21 +93,21 @@ export class DIDModule extends AbstractCheqdSDKModule { ) } - async updateDidTx(signInputs: ISignInputs[], didPayload: Partial, address: string, fee: DidStdFee | 'auto' | number, memo?: string, context?: IContext): Promise { + async updateDidTx(signInputs: ISignInputs[], didPayload: Partial, address: string, fee: DidStdFee | 'auto' | number, memo?: string, context?: IContext): Promise { if (!this._signer) { this._signer = context!.sdk!.signer } - const payload = MsgUpdateDidPayload.fromPartial(didPayload) + const payload = MsgUpdateDidDocPayload.fromPartial(didPayload) const signatures = await this._signer.signUpdateDidTx(signInputs, payload) - const value: MsgUpdateDid = { + const value: MsgUpdateDidDoc = { payload, signatures } - const updateDidMsg: MsgUpdateDidEncodeObject = { - typeUrl: typeUrlMsgUpdateDid, + const updateDidMsg: MsgUpdateDidDocEncodeObject = { + typeUrl: typeUrlMsgUpdateDidDoc, value } diff --git a/src/modules/resource.ts b/src/modules/resource.ts index 707aa81f..0d8c169f 100644 --- a/src/modules/resource.ts +++ b/src/modules/resource.ts @@ -2,7 +2,7 @@ import { AbstractCheqdSDKModule, MinimalImportableCheqdSDKModule } from "./_" import { CheqdSigningStargateClient } from "../signer" import { EncodeObject, GeneratedType } from "@cosmjs/proto-signing" import { DidStdFee, IContext, ISignInputs } from '../types'; -import { MsgCreateResource, MsgCreateResourcePayload, MsgCreateResourceResponse, protobufPackage } from "@cheqd/ts-proto/cheqd/resource/v1/tx" +import { MsgCreateResource, MsgCreateResourcePayload, MsgCreateResourceResponse, protobufPackage } from "@cheqd/ts-proto/cheqd/resource/v2/tx" import { DeliverTxResponse } from "@cosmjs/stargate" import { Writer } from "protobufjs" diff --git a/src/signer.ts b/src/signer.ts index 42095b28..f614a017 100644 --- a/src/signer.ts +++ b/src/signer.ts @@ -3,7 +3,7 @@ import { EncodeObject, isOfflineDirectSigner, OfflineSigner, encodePubkey, TxBod import { DeliverTxResponse, GasPrice, HttpEndpoint, QueryClient, SigningStargateClient, SigningStargateClientOptions, calculateFee, SignerData } from "@cosmjs/stargate" import { Tendermint34Client } from "@cosmjs/tendermint-rpc" import { createDefaultCheqdRegistry } from "./registry" -import { MsgCreateDidPayload, SignInfo, MsgUpdateDidPayload } from '@cheqd/ts-proto/cheqd/did/v1/tx'; +import { MsgCreateDidDocPayload, SignInfo, MsgUpdateDidDocPayload } from '@cheqd/ts-proto/cheqd/did/v2/tx'; import { DidStdFee, ISignInputs, TSignerAlgo, VerificationMethods } from './types'; import { VerificationMethod } from '@cheqd/ts-proto/cheqd/did/v1/did' import { base64ToBytes, EdDSASigner, hexToBytes, Signer, ES256Signer, ES256KSigner } from 'did-jwt'; @@ -198,30 +198,30 @@ export class CheqdSigningStargateClient extends SigningStargateClient { return this.didSigners[verificationMethod]! } - async signCreateDidTx(signInputs: ISignInputs[], payload: MsgCreateDidPayload): Promise { + async signCreateDidTx(signInputs: ISignInputs[], payload: MsgCreateDidDocPayload): Promise { await this.checkDidSigners(payload?.verificationMethod) - const signBytes = MsgCreateDidPayload.encode(payload).finish() + const signBytes = MsgCreateDidDocPayload.encode(payload).finish() const signInfos: SignInfo[] = await Promise.all(signInputs.map(async (signInput) => { return { verificationMethodId: signInput.verificationMethodId, // TODO: We can't rely on `payload.verificationMethod` here because `CreateResourceTx` doesn't have it - signature: toString(base64ToBytes((await (await this.getDidSigner(signInput.verificationMethodId, payload.verificationMethod))(hexToBytes(signInput.privateKeyHex))(signBytes)) as string), 'base64pad') + signature: base64ToBytes((await (await this.getDidSigner(signInput.verificationMethodId, payload.verificationMethod))(hexToBytes(signInput.privateKeyHex))(signBytes)) as string) } })) return signInfos } - async signUpdateDidTx(signInputs: ISignInputs[], payload: MsgUpdateDidPayload): Promise { + async signUpdateDidTx(signInputs: ISignInputs[], payload: MsgUpdateDidDocPayload): Promise { await this.checkDidSigners(payload?.verificationMethod) - const signBytes = MsgUpdateDidPayload.encode(payload).finish() + const signBytes = MsgUpdateDidDocPayload.encode(payload).finish() const signInfos: SignInfo[] = await Promise.all(signInputs.map(async (signInput) => { return { verificationMethodId: signInput.verificationMethodId, // TODO: We can't rely on `payload.verificationMethod` here because `CreateResourceTx` doesn't have it - signature: toString(base64ToBytes((await (await this.getDidSigner(signInput.verificationMethodId, payload.verificationMethod))(hexToBytes(signInput.privateKeyHex))(signBytes)) as string), 'base64pad') + signature: base64ToBytes((await (await this.getDidSigner(signInput.verificationMethodId, payload.verificationMethod))(hexToBytes(signInput.privateKeyHex))(signBytes)) as string) } })) @@ -254,7 +254,7 @@ export class CheqdSigningStargateClient extends SigningStargateClient { signInfos.push({ verificationMethodId: signInput.verificationMethodId, - signature: toString(base64ToBytes(signature), 'base64pad') + signature: base64ToBytes(signature) }); }