@cheqd/sdk 2.1.0 → 3.0.0-develop.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.github/linters/{.commitlint.rules.js → .commitlint.rules.cjs} +0 -0
- package/.github/workflows/cleanup-cache-manual.yml +1 -1
- package/.github/workflows/pull-request.yml +2 -2
- package/CHANGELOG.md +9 -3
- package/build/cjs/index.d.ts +45 -0
- package/build/cjs/index.d.ts.map +1 -0
- package/build/cjs/index.js +144 -0
- package/build/cjs/index.js.map +1 -0
- package/build/{modules → cjs/modules}/_.d.ts +3 -3
- package/build/cjs/modules/_.d.ts.map +1 -0
- package/build/{modules → cjs/modules}/_.js +0 -0
- package/build/cjs/modules/_.js.map +1 -0
- package/build/{modules → cjs/modules}/did.d.ts +7 -5
- package/build/cjs/modules/did.d.ts.map +1 -0
- package/build/{modules → cjs/modules}/did.js +45 -37
- package/build/cjs/modules/did.js.map +1 -0
- package/build/{modules → cjs/modules}/resource.d.ts +6 -6
- package/build/cjs/modules/resource.d.ts.map +1 -0
- package/build/{modules → cjs/modules}/resource.js +14 -14
- package/build/cjs/modules/resource.js.map +1 -0
- package/build/{querier.d.ts → cjs/querier.d.ts} +1 -1
- package/build/cjs/querier.d.ts.map +1 -0
- package/build/{querier.js → cjs/querier.js} +0 -0
- package/build/cjs/querier.js.map +1 -0
- package/build/{registry.d.ts → cjs/registry.d.ts} +0 -0
- package/build/cjs/registry.d.ts.map +1 -0
- package/build/{registry.js → cjs/registry.js} +0 -0
- package/build/cjs/registry.js.map +1 -0
- package/build/{signer.d.ts → cjs/signer.d.ts} +5 -5
- package/build/cjs/signer.d.ts.map +1 -0
- package/build/{signer.js → cjs/signer.js} +10 -10
- package/build/cjs/signer.js.map +1 -0
- package/build/{types.d.ts → cjs/types.d.ts} +3 -3
- package/build/cjs/types.d.ts.map +1 -0
- package/build/{types.js → cjs/types.js} +0 -0
- package/build/cjs/types.js.map +1 -0
- package/build/{utils.d.ts → cjs/utils.d.ts} +1 -1
- package/build/cjs/utils.d.ts.map +1 -0
- package/build/{utils.js → cjs/utils.js} +18 -21
- package/build/cjs/utils.js.map +1 -0
- package/build/esm/index.d.ts +45 -0
- package/build/esm/index.d.ts.map +1 -0
- package/build/esm/index.js +89 -0
- package/build/esm/index.js.map +1 -0
- package/build/esm/modules/_.d.ts +20 -0
- package/build/esm/modules/_.d.ts.map +1 -0
- package/build/esm/modules/_.js +37 -0
- package/build/esm/modules/_.js.map +1 -0
- package/build/esm/modules/did.d.ts +109 -0
- package/build/esm/modules/did.d.ts.map +1 -0
- package/build/esm/modules/did.js +432 -0
- package/build/esm/modules/did.js.map +1 -0
- package/build/esm/modules/resource.d.ts +62 -0
- package/build/esm/modules/resource.d.ts.map +1 -0
- package/build/esm/modules/resource.js +156 -0
- package/build/esm/modules/resource.js.map +1 -0
- package/build/esm/querier.d.ts +11 -0
- package/build/esm/querier.d.ts.map +1 -0
- package/build/esm/querier.js +27 -0
- package/build/esm/querier.js.map +1 -0
- package/build/esm/registry.d.ts +4 -0
- package/build/esm/registry.d.ts.map +1 -0
- package/build/esm/registry.js +9 -0
- package/build/esm/registry.js.map +1 -0
- package/build/esm/signer.d.ts +36 -0
- package/build/esm/signer.d.ts.map +1 -0
- package/build/esm/signer.js +197 -0
- package/build/esm/signer.js.map +1 -0
- package/build/esm/types.d.ts +80 -0
- package/build/esm/types.d.ts.map +1 -0
- package/build/esm/types.js +22 -0
- package/build/esm/types.js.map +1 -0
- package/build/esm/utils.d.ts +18 -0
- package/build/esm/utils.d.ts.map +1 -0
- package/build/esm/utils.js +196 -0
- package/build/esm/utils.js.map +1 -0
- package/build/types/index.d.ts +45 -0
- package/build/types/index.d.ts.map +1 -0
- package/build/types/modules/_.d.ts +20 -0
- package/build/types/modules/_.d.ts.map +1 -0
- package/build/types/modules/did.d.ts +109 -0
- package/build/types/modules/did.d.ts.map +1 -0
- package/build/types/modules/resource.d.ts +62 -0
- package/build/types/modules/resource.d.ts.map +1 -0
- package/build/types/querier.d.ts +11 -0
- package/build/types/querier.d.ts.map +1 -0
- package/build/types/registry.d.ts +4 -0
- package/build/types/registry.d.ts.map +1 -0
- package/build/types/signer.d.ts +36 -0
- package/build/types/signer.d.ts.map +1 -0
- package/build/types/types.d.ts +80 -0
- package/build/types/types.d.ts.map +1 -0
- package/build/types/utils.d.ts +18 -0
- package/build/types/utils.d.ts.map +1 -0
- package/jest.config.cjs +19 -0
- package/package.json +44 -21
- package/src/index.ts +77 -13
- package/src/modules/_.ts +6 -3
- package/src/modules/did.ts +36 -8
- package/src/modules/resource.ts +34 -9
- package/src/querier.ts +4 -1
- package/src/registry.ts +1 -3
- package/src/signer.ts +50 -11
- package/src/types.ts +14 -5
- package/src/utils.ts +12 -9
- package/tests/index.test.ts +24 -5
- package/tests/modules/did.test.ts +25 -5
- package/tests/modules/resource.test.ts +214 -8
- package/tests/signer.test.ts +29 -6
- package/tests/testutils.test.ts +6 -1
- package/tests/utils.test.ts +14 -3
- package/tsconfig.cjs.json +8 -0
- package/tsconfig.esm.json +8 -0
- package/tsconfig.json +9 -5
- package/tsconfig.types.json +10 -0
- package/build/index.d.ts +0 -40
- package/build/index.d.ts.map +0 -1
- package/build/index.js +0 -97
- package/build/index.js.map +0 -1
- package/build/modules/_.d.ts.map +0 -1
- package/build/modules/_.js.map +0 -1
- package/build/modules/did.d.ts.map +0 -1
- package/build/modules/did.js.map +0 -1
- package/build/modules/resource.d.ts.map +0 -1
- package/build/modules/resource.js.map +0 -1
- package/build/querier.d.ts.map +0 -1
- package/build/querier.js.map +0 -1
- package/build/registry.d.ts.map +0 -1
- package/build/registry.js.map +0 -1
- package/build/signer.d.ts.map +0 -1
- package/build/signer.js.map +0 -1
- package/build/types.d.ts.map +0 -1
- package/build/types.js.map +0 -1
- package/build/utils.d.ts.map +0 -1
- package/build/utils.js.map +0 -1
- package/jest.config.js +0 -6
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { GeneratedType } from "@cosmjs/proto-signing";
|
|
2
|
+
import { CheqdSigningStargateClient } from '../signer.js';
|
|
3
|
+
import { IModuleMethodMap, QueryExtensionSetup } from '../types.js';
|
|
4
|
+
import { CheqdQuerier } from "../querier.js";
|
|
5
|
+
export declare abstract class AbstractCheqdSDKModule {
|
|
6
|
+
_signer: CheqdSigningStargateClient;
|
|
7
|
+
methods: IModuleMethodMap;
|
|
8
|
+
readonly querier: CheqdQuerier;
|
|
9
|
+
readonly _protectedMethods: string[];
|
|
10
|
+
static readonly registryTypes: Iterable<[string, GeneratedType]>;
|
|
11
|
+
static readonly querierExtensionSetup: QueryExtensionSetup<any>;
|
|
12
|
+
constructor(signer: CheqdSigningStargateClient, querier: CheqdQuerier);
|
|
13
|
+
abstract getRegistryTypes(): Iterable<[string, GeneratedType]>;
|
|
14
|
+
}
|
|
15
|
+
export type MinimalImportableCheqdSDKModule<T extends AbstractCheqdSDKModule> = Omit<T, '_signer' | '_protectedMethods' | 'registryTypes' | 'querierExtensionSetup' | 'getRegistryTypes' | 'getQuerierExtensionSetup'>;
|
|
16
|
+
export declare function instantiateCheqdSDKModule<T extends new (...args: any[]) => T>(module: T, ...args: ConstructorParameters<T>): T;
|
|
17
|
+
export declare function instantiateCheqdSDKModuleRegistryTypes(module: any): Iterable<[string, GeneratedType]>;
|
|
18
|
+
export declare function instantiateCheqdSDKModuleQuerierExtensionSetup(module: any): QueryExtensionSetup<any>;
|
|
19
|
+
export declare function applyMixins(derivedCtor: any, constructors: any[]): IModuleMethodMap;
|
|
20
|
+
//# sourceMappingURL=_.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_.d.ts","sourceRoot":"","sources":["../../../src/modules/_.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AAErD,OAAO,EAAE,0BAA0B,EAAE,MAAM,cAAc,CAAA;AACzD,OAAO,EACN,gBAAgB,EAChB,mBAAmB,EACnB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C,8BAAsB,sBAAsB;IAC3C,OAAO,EAAE,0BAA0B,CAAA;IACnC,OAAO,EAAE,gBAAgB,CAAK;IAC9B,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAA;IAC9B,QAAQ,CAAC,iBAAiB,EAAE,MAAM,EAAE,CAAkE;IACtG,MAAM,CAAC,QAAQ,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,CAAK;IACrE,MAAM,CAAC,QAAQ,CAAC,qBAAqB,EAAE,mBAAmB,CAAC,GAAG,CAAC,CAA8B;gBAEjF,MAAM,EAAE,0BAA0B,EAAE,OAAO,EAAE,YAAY;IAQlE,QAAQ,CAAC,gBAAgB,IAAI,QAAQ,CAAC,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;CACjE;AAID,MAAM,MAAM,+BAA+B,CAAC,CAAC,SAAS,sBAAsB,IAAI,IAAI,CAAC,CAAC,EAAE,SAAS,GAAG,mBAAmB,GAAG,eAAe,GAAG,uBAAuB,GAAG,kBAAkB,GAAG,0BAA0B,CAAC,CAAA;AAEtN,wBAAgB,yBAAyB,CAAC,CAAC,SAAS,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,qBAAqB,CAAC,CAAC,CAAC,GAAG,CAAC,CAE9H;AAED,wBAAgB,sCAAsC,CAAC,MAAM,EAAE,GAAG,GAAG,QAAQ,CAAC,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,CAErG;AAED,wBAAgB,8CAA8C,CAAC,MAAM,EAAE,GAAG,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAEpG;AAED,wBAAgB,WAAW,CAAC,WAAW,EAAE,GAAG,EAAE,YAAY,EAAE,GAAG,EAAE,GAAG,gBAAgB,CAanF"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
export class AbstractCheqdSDKModule {
|
|
2
|
+
_signer;
|
|
3
|
+
methods = {};
|
|
4
|
+
querier;
|
|
5
|
+
_protectedMethods = ['constructor', 'getRegistryTypes', 'getQuerierExtensionSetup'];
|
|
6
|
+
static registryTypes = [];
|
|
7
|
+
static querierExtensionSetup = (base) => ({});
|
|
8
|
+
constructor(signer, querier) {
|
|
9
|
+
if (!signer) {
|
|
10
|
+
throw new Error("signer is required");
|
|
11
|
+
}
|
|
12
|
+
this._signer = signer;
|
|
13
|
+
this.querier = querier;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
export function instantiateCheqdSDKModule(module, ...args) {
|
|
17
|
+
return new module(...args);
|
|
18
|
+
}
|
|
19
|
+
export function instantiateCheqdSDKModuleRegistryTypes(module) {
|
|
20
|
+
return module.registryTypes ?? [];
|
|
21
|
+
}
|
|
22
|
+
export function instantiateCheqdSDKModuleQuerierExtensionSetup(module) {
|
|
23
|
+
return module.querierExtensionSetup ?? {};
|
|
24
|
+
}
|
|
25
|
+
export function applyMixins(derivedCtor, constructors) {
|
|
26
|
+
let methods = {};
|
|
27
|
+
constructors.forEach((baseCtor) => {
|
|
28
|
+
Object.getOwnPropertyNames(baseCtor.prototype).forEach((name) => {
|
|
29
|
+
const property = baseCtor.prototype[name];
|
|
30
|
+
if (typeof property !== 'function' || derivedCtor.hasOwnProperty(name) || derivedCtor?.protectedMethods.includes(name) || baseCtor.prototype?._protectedMethods?.includes(name))
|
|
31
|
+
return;
|
|
32
|
+
methods = { ...methods, [name]: property };
|
|
33
|
+
});
|
|
34
|
+
});
|
|
35
|
+
return methods;
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=_.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_.js","sourceRoot":"","sources":["../../../src/modules/_.ts"],"names":[],"mappings":"AASA,MAAM,OAAgB,sBAAsB;IAC3C,OAAO,CAA4B;IACnC,OAAO,GAAqB,EAAE,CAAA;IACrB,OAAO,CAAc;IACrB,iBAAiB,GAAa,CAAC,aAAa,EAAE,kBAAkB,EAAE,0BAA0B,CAAC,CAAA;IACtG,MAAM,CAAU,aAAa,GAAsC,EAAE,CAAA;IACrE,MAAM,CAAU,qBAAqB,GAA6B,CAAC,IAAiB,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAA;IAE7F,YAAY,MAAkC,EAAE,OAAqB;QACpE,IAAI,CAAC,MAAM,EAAE;YACZ,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAA;SACrC;QACD,IAAI,CAAC,OAAO,GAAG,MAAM,CAAA;QACrB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;IACvB,CAAC;;AASF,MAAM,UAAU,yBAAyB,CAAsC,MAAS,EAAE,GAAG,IAA8B;IAC1H,OAAO,IAAI,MAAM,CAAC,GAAG,IAAI,CAAC,CAAA;AAC3B,CAAC;AAED,MAAM,UAAU,sCAAsC,CAAC,MAAW;IAC9D,OAAO,MAAM,CAAC,aAAa,IAAI,EAAE,CAAA;AACrC,CAAC;AAED,MAAM,UAAU,8CAA8C,CAAC,MAAW;IACzE,OAAO,MAAM,CAAC,qBAAqB,IAAI,EAAE,CAAA;AAC1C,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,WAAgB,EAAE,YAAmB;IAChE,IAAI,OAAO,GAAqB,EAAE,CAAA;IAElC,YAAY,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;QACjC,MAAM,CAAC,mBAAmB,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YAC/D,MAAM,QAAQ,GAAG,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;YACzC,IAAI,OAAO,QAAQ,KAAK,UAAU,IAAI,WAAW,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,WAAW,EAAE,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,SAAS,EAAE,iBAAiB,EAAE,QAAQ,CAAC,IAAI,CAAC;gBAAE,OAAM;YAEvL,OAAO,GAAG,EAAE,GAAG,OAAO,EAAE,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,CAAA;QAC3C,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,OAAO,OAAO,CAAA;AACf,CAAC"}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
import { DeliverTxResponse, QueryClient } from "@cosmjs/stargate";
|
|
2
|
+
import { AbstractCheqdSDKModule, MinimalImportableCheqdSDKModule } from './_.js';
|
|
3
|
+
import { CheqdSigningStargateClient } from "../signer.js";
|
|
4
|
+
import { DIDDocument, DidStdFee, IContext, ISignInputs, QueryExtensionSetup, SpecValidationResult, DIDDocumentWithMetadata } from '../types.js';
|
|
5
|
+
import { MsgCreateDidDoc, MsgCreateDidDocResponse, MsgDeactivateDidDoc, MsgDeactivateDidDocResponse, MsgUpdateDidDoc, MsgUpdateDidDocResponse, SignInfo, QueryAllDidDocVersionsMetadataResponse, DidDocWithMetadata, DidDoc, Metadata } from "@cheqd/ts-proto/cheqd/did/v2/index.js";
|
|
6
|
+
import { EncodeObject, GeneratedType } from "@cosmjs/proto-signing";
|
|
7
|
+
import { CheqdQuerier } from "../querier.js";
|
|
8
|
+
import { DIDDocumentMetadata } from "did-resolver";
|
|
9
|
+
export declare const defaultDidExtensionKey: "did";
|
|
10
|
+
export declare const contexts: {
|
|
11
|
+
readonly W3CDIDv1: "https://www.w3.org/ns/did/v1";
|
|
12
|
+
readonly W3CSuiteEd255192020: "https://w3id.org/security/suites/ed25519-2020/v1";
|
|
13
|
+
readonly W3CSuiteEd255192018: "https://w3id.org/security/suites/ed25519-2018/v1";
|
|
14
|
+
readonly W3CSuiteJws2020: "https://w3id.org/security/suites/jws-2020/v1";
|
|
15
|
+
};
|
|
16
|
+
export declare const protobufLiterals: {
|
|
17
|
+
readonly MsgCreateDidDoc: "MsgCreateDidDoc";
|
|
18
|
+
readonly MsgCreateDidDocResponse: "MsgCreateDidDocResponse";
|
|
19
|
+
readonly MsgUpdateDidDoc: "MsgUpdateDidDoc";
|
|
20
|
+
readonly MsgUpdateDidDocResponse: "MsgUpdateDidDocResponse";
|
|
21
|
+
readonly MsgDeactivateDidDoc: "MsgDeactivateDidDoc";
|
|
22
|
+
readonly MsgDeactivateDidDocResponse: "MsgDeactivateDidDocResponse";
|
|
23
|
+
};
|
|
24
|
+
export declare const typeUrlMsgCreateDidDoc: string;
|
|
25
|
+
export declare const typeUrlMsgCreateDidDocResponse: string;
|
|
26
|
+
export declare const typeUrlMsgUpdateDidDoc: string;
|
|
27
|
+
export declare const typeUrlMsgUpdateDidDocResponse: string;
|
|
28
|
+
export declare const typeUrlMsgDeactivateDidDoc: string;
|
|
29
|
+
export declare const typeUrlMsgDeactivateDidDocResponse: string;
|
|
30
|
+
export interface MsgCreateDidDocEncodeObject extends EncodeObject {
|
|
31
|
+
readonly typeUrl: typeof typeUrlMsgCreateDidDoc;
|
|
32
|
+
readonly value: Partial<MsgCreateDidDoc>;
|
|
33
|
+
}
|
|
34
|
+
export declare function isMsgCreateDidDocEncodeObject(obj: EncodeObject): obj is MsgCreateDidDocEncodeObject;
|
|
35
|
+
export declare function isMsgUpdateDidDocEncodeObject(obj: EncodeObject): obj is MsgUpdateDidDocEncodeObject;
|
|
36
|
+
export declare function isMsgDeactivateDidDocEncodeObject(obj: EncodeObject): obj is MsgDeactivateDidDocEncodeObject;
|
|
37
|
+
export interface MsgCreateDidDocResponseEncodeObject extends EncodeObject {
|
|
38
|
+
readonly typeUrl: typeof typeUrlMsgCreateDidDocResponse;
|
|
39
|
+
readonly value: Partial<MsgCreateDidDocResponse>;
|
|
40
|
+
}
|
|
41
|
+
export declare function MsgCreateDidDocResponseEncodeObject(obj: EncodeObject): obj is MsgCreateDidDocResponseEncodeObject;
|
|
42
|
+
export interface MsgUpdateDidDocEncodeObject extends EncodeObject {
|
|
43
|
+
readonly typeUrl: typeof typeUrlMsgUpdateDidDoc;
|
|
44
|
+
readonly value: Partial<MsgUpdateDidDoc>;
|
|
45
|
+
}
|
|
46
|
+
export declare function MsgUpdateDidDocEncodeObject(obj: EncodeObject): obj is MsgUpdateDidDocEncodeObject;
|
|
47
|
+
export interface MsgUpdateDidDocResponseEncodeObject extends EncodeObject {
|
|
48
|
+
readonly typeUrl: typeof typeUrlMsgUpdateDidDocResponse;
|
|
49
|
+
readonly value: Partial<MsgUpdateDidDocResponse>;
|
|
50
|
+
}
|
|
51
|
+
export declare function MsgUpdateDidDocResponseEncodeObject(obj: EncodeObject): obj is MsgUpdateDidDocResponseEncodeObject;
|
|
52
|
+
export interface MsgDeactivateDidDocEncodeObject extends EncodeObject {
|
|
53
|
+
readonly typeUrl: typeof typeUrlMsgDeactivateDidDoc;
|
|
54
|
+
readonly value: Partial<MsgDeactivateDidDoc>;
|
|
55
|
+
}
|
|
56
|
+
export declare function MsgDeactivateDidDocEncodeObject(obj: EncodeObject): obj is MsgUpdateDidDocEncodeObject;
|
|
57
|
+
export interface MsgDeactivateDidDocResponseEncodeObject extends EncodeObject {
|
|
58
|
+
readonly typeUrl: typeof typeUrlMsgDeactivateDidDocResponse;
|
|
59
|
+
readonly value: Partial<MsgDeactivateDidDocResponse>;
|
|
60
|
+
}
|
|
61
|
+
export declare function MsgDeactiveDidDocResponseEncodeObject(obj: EncodeObject): obj is MsgDeactivateDidDocResponseEncodeObject;
|
|
62
|
+
export type MinimalImportableDIDModule = MinimalImportableCheqdSDKModule<DIDModule>;
|
|
63
|
+
export type DidExtension = {
|
|
64
|
+
readonly [defaultDidExtensionKey]: {
|
|
65
|
+
readonly didDoc: (id: string) => Promise<DidDocWithMetadata>;
|
|
66
|
+
readonly didDocVersion: (id: string, versionId: string) => Promise<DidDocWithMetadata>;
|
|
67
|
+
readonly allDidDocVersionsMetadata: (id: string, paginationKey?: Uint8Array) => Promise<QueryAllDidDocVersionsMetadataResponse>;
|
|
68
|
+
};
|
|
69
|
+
};
|
|
70
|
+
export declare const setupDidExtension: (base: QueryClient) => DidExtension;
|
|
71
|
+
export declare class DIDModule extends AbstractCheqdSDKModule {
|
|
72
|
+
static readonly registryTypes: Iterable<[string, GeneratedType]>;
|
|
73
|
+
static readonly baseMinimalDenom: "ncheq";
|
|
74
|
+
static readonly fees: {
|
|
75
|
+
readonly DefaultCreateDidDocFee: {
|
|
76
|
+
readonly amount: "50000000000";
|
|
77
|
+
readonly denom: "ncheq";
|
|
78
|
+
};
|
|
79
|
+
readonly DefaultUpdateDidDocFee: {
|
|
80
|
+
readonly amount: "25000000000";
|
|
81
|
+
readonly denom: "ncheq";
|
|
82
|
+
};
|
|
83
|
+
readonly DefaultDeactivateDidDocFee: {
|
|
84
|
+
readonly amount: "10000000000";
|
|
85
|
+
readonly denom: "ncheq";
|
|
86
|
+
};
|
|
87
|
+
};
|
|
88
|
+
static readonly querierExtensionSetup: QueryExtensionSetup<DidExtension>;
|
|
89
|
+
readonly querier: CheqdQuerier & DidExtension;
|
|
90
|
+
constructor(signer: CheqdSigningStargateClient, querier: CheqdQuerier & DidExtension);
|
|
91
|
+
getRegistryTypes(): Iterable<[string, GeneratedType]>;
|
|
92
|
+
getQuerierExtensionSetup(): QueryExtensionSetup<DidExtension>;
|
|
93
|
+
createDidDocTx(signInputs: ISignInputs[] | SignInfo[], didPayload: DIDDocument, address: string, fee?: DidStdFee | 'auto' | number, memo?: string, versionId?: string, context?: IContext): Promise<DeliverTxResponse>;
|
|
94
|
+
updateDidDocTx(signInputs: ISignInputs[] | SignInfo[], didPayload: DIDDocument, address: string, fee?: DidStdFee | 'auto' | number, memo?: string, versionId?: string, context?: IContext): Promise<DeliverTxResponse>;
|
|
95
|
+
deactivateDidDocTx(signInputs: ISignInputs[] | SignInfo[], didPayload: DIDDocument, address: string, fee?: DidStdFee | 'auto' | number, memo?: string, versionId?: string, context?: IContext): Promise<DeliverTxResponse>;
|
|
96
|
+
queryDidDoc(id: string, context?: IContext): Promise<DIDDocumentWithMetadata>;
|
|
97
|
+
queryDidDocVersion(id: string, versionId: string, context?: IContext): Promise<DIDDocumentWithMetadata>;
|
|
98
|
+
queryAllDidDocVersionsMetadata(id: string, context?: IContext): Promise<{
|
|
99
|
+
didDocumentVersionsMetadata: DIDDocumentMetadata[];
|
|
100
|
+
pagination: QueryAllDidDocVersionsMetadataResponse['pagination'];
|
|
101
|
+
}>;
|
|
102
|
+
static validateSpecCompliantPayload(didDocument: DIDDocument): Promise<SpecValidationResult>;
|
|
103
|
+
static toSpecCompliantPayload(protobufDidDocument: DidDoc): Promise<DIDDocument>;
|
|
104
|
+
static toSpecCompliantMetadata(protobufDidDocument: Metadata): Promise<DIDDocumentMetadata>;
|
|
105
|
+
static generateCreateDidDocFees(feePayer: string, granter?: string): Promise<DidStdFee>;
|
|
106
|
+
static generateUpdateDidDocFees(feePayer: string, granter?: string): Promise<DidStdFee>;
|
|
107
|
+
static generateDeactivateDidDocFees(feePayer: string, granter?: string): Promise<DidStdFee>;
|
|
108
|
+
}
|
|
109
|
+
//# sourceMappingURL=did.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"did.d.ts","sourceRoot":"","sources":["../../../src/modules/did.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,432 @@
|
|
|
1
|
+
import { createPagination, createProtobufRpcClient } from "@cosmjs/stargate";
|
|
2
|
+
import { AbstractCheqdSDKModule } from './_.js';
|
|
3
|
+
import { ISignInputs, VerificationMethods } from '../types.js';
|
|
4
|
+
import { MsgCreateDidDoc, MsgCreateDidDocPayload, MsgCreateDidDocResponse, MsgDeactivateDidDoc, MsgDeactivateDidDocPayload, MsgDeactivateDidDocResponse, MsgUpdateDidDoc, MsgUpdateDidDocPayload, MsgUpdateDidDocResponse, protobufPackage, QueryClientImpl, Service, VerificationMethod } from "@cheqd/ts-proto/cheqd/did/v2/index.js";
|
|
5
|
+
import { v4 } from "uuid";
|
|
6
|
+
import { assert } from "@cosmjs/utils";
|
|
7
|
+
export const defaultDidExtensionKey = "did";
|
|
8
|
+
export const contexts = {
|
|
9
|
+
W3CDIDv1: "https://www.w3.org/ns/did/v1",
|
|
10
|
+
W3CSuiteEd255192020: "https://w3id.org/security/suites/ed25519-2020/v1",
|
|
11
|
+
W3CSuiteEd255192018: "https://w3id.org/security/suites/ed25519-2018/v1",
|
|
12
|
+
W3CSuiteJws2020: "https://w3id.org/security/suites/jws-2020/v1",
|
|
13
|
+
};
|
|
14
|
+
export const protobufLiterals = {
|
|
15
|
+
MsgCreateDidDoc: "MsgCreateDidDoc",
|
|
16
|
+
MsgCreateDidDocResponse: "MsgCreateDidDocResponse",
|
|
17
|
+
MsgUpdateDidDoc: "MsgUpdateDidDoc",
|
|
18
|
+
MsgUpdateDidDocResponse: "MsgUpdateDidDocResponse",
|
|
19
|
+
MsgDeactivateDidDoc: "MsgDeactivateDidDoc",
|
|
20
|
+
MsgDeactivateDidDocResponse: "MsgDeactivateDidDocResponse",
|
|
21
|
+
};
|
|
22
|
+
export const typeUrlMsgCreateDidDoc = `/${protobufPackage}.${protobufLiterals.MsgCreateDidDoc}`;
|
|
23
|
+
export const typeUrlMsgCreateDidDocResponse = `/${protobufPackage}.${protobufLiterals.MsgCreateDidDocResponse}`;
|
|
24
|
+
export const typeUrlMsgUpdateDidDoc = `/${protobufPackage}.${protobufLiterals.MsgUpdateDidDoc}`;
|
|
25
|
+
export const typeUrlMsgUpdateDidDocResponse = `/${protobufPackage}.${protobufLiterals.MsgUpdateDidDocResponse}`;
|
|
26
|
+
export const typeUrlMsgDeactivateDidDoc = `/${protobufPackage}.${protobufLiterals.MsgDeactivateDidDoc}`;
|
|
27
|
+
export const typeUrlMsgDeactivateDidDocResponse = `/${protobufPackage}.${protobufLiterals.MsgDeactivateDidDocResponse}`;
|
|
28
|
+
export function isMsgCreateDidDocEncodeObject(obj) {
|
|
29
|
+
return obj.typeUrl === typeUrlMsgCreateDidDoc;
|
|
30
|
+
}
|
|
31
|
+
export function isMsgUpdateDidDocEncodeObject(obj) {
|
|
32
|
+
return obj.typeUrl === typeUrlMsgUpdateDidDoc;
|
|
33
|
+
}
|
|
34
|
+
export function isMsgDeactivateDidDocEncodeObject(obj) {
|
|
35
|
+
return obj.typeUrl === typeUrlMsgDeactivateDidDoc;
|
|
36
|
+
}
|
|
37
|
+
export function MsgCreateDidDocResponseEncodeObject(obj) {
|
|
38
|
+
return obj.typeUrl === typeUrlMsgCreateDidDocResponse;
|
|
39
|
+
}
|
|
40
|
+
export function MsgUpdateDidDocEncodeObject(obj) {
|
|
41
|
+
return obj.typeUrl === typeUrlMsgUpdateDidDoc;
|
|
42
|
+
}
|
|
43
|
+
export function MsgUpdateDidDocResponseEncodeObject(obj) {
|
|
44
|
+
return obj.typeUrl === typeUrlMsgUpdateDidDocResponse;
|
|
45
|
+
}
|
|
46
|
+
export function MsgDeactivateDidDocEncodeObject(obj) {
|
|
47
|
+
return obj.typeUrl === typeUrlMsgDeactivateDidDoc;
|
|
48
|
+
}
|
|
49
|
+
export function MsgDeactiveDidDocResponseEncodeObject(obj) {
|
|
50
|
+
return obj.typeUrl === typeUrlMsgUpdateDidDocResponse;
|
|
51
|
+
}
|
|
52
|
+
export const setupDidExtension = (base) => {
|
|
53
|
+
const rpc = createProtobufRpcClient(base);
|
|
54
|
+
const queryService = new QueryClientImpl(rpc);
|
|
55
|
+
return {
|
|
56
|
+
[defaultDidExtensionKey]: {
|
|
57
|
+
didDoc: async (id) => {
|
|
58
|
+
const { value } = await queryService.DidDoc({ id });
|
|
59
|
+
assert(value);
|
|
60
|
+
return value;
|
|
61
|
+
},
|
|
62
|
+
didDocVersion: async (id, versionId) => {
|
|
63
|
+
const { value } = await queryService.DidDocVersion({ id, version: versionId });
|
|
64
|
+
assert(value);
|
|
65
|
+
return value;
|
|
66
|
+
},
|
|
67
|
+
allDidDocVersionsMetadata: async (id, paginationKey) => {
|
|
68
|
+
const response = await queryService.AllDidDocVersionsMetadata({ id, pagination: createPagination(paginationKey) });
|
|
69
|
+
return response;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
};
|
|
73
|
+
};
|
|
74
|
+
export class DIDModule extends AbstractCheqdSDKModule {
|
|
75
|
+
static registryTypes = [
|
|
76
|
+
[typeUrlMsgCreateDidDoc, MsgCreateDidDoc],
|
|
77
|
+
[typeUrlMsgCreateDidDocResponse, MsgCreateDidDocResponse],
|
|
78
|
+
[typeUrlMsgUpdateDidDoc, MsgUpdateDidDoc],
|
|
79
|
+
[typeUrlMsgUpdateDidDocResponse, MsgUpdateDidDocResponse],
|
|
80
|
+
[typeUrlMsgDeactivateDidDoc, MsgDeactivateDidDoc],
|
|
81
|
+
[typeUrlMsgDeactivateDidDocResponse, MsgDeactivateDidDocResponse],
|
|
82
|
+
];
|
|
83
|
+
static baseMinimalDenom = 'ncheq';
|
|
84
|
+
static fees = {
|
|
85
|
+
DefaultCreateDidDocFee: { amount: '50000000000', denom: DIDModule.baseMinimalDenom },
|
|
86
|
+
DefaultUpdateDidDocFee: { amount: '25000000000', denom: DIDModule.baseMinimalDenom },
|
|
87
|
+
DefaultDeactivateDidDocFee: { amount: '10000000000', denom: DIDModule.baseMinimalDenom },
|
|
88
|
+
};
|
|
89
|
+
static querierExtensionSetup = setupDidExtension;
|
|
90
|
+
querier;
|
|
91
|
+
constructor(signer, querier) {
|
|
92
|
+
super(signer, querier);
|
|
93
|
+
this.querier = querier;
|
|
94
|
+
this.methods = {
|
|
95
|
+
createDidDocTx: this.createDidDocTx.bind(this),
|
|
96
|
+
updateDidDocTx: this.updateDidDocTx.bind(this),
|
|
97
|
+
deactivateDidDocTx: this.deactivateDidDocTx.bind(this),
|
|
98
|
+
queryDidDoc: this.querier.did.didDoc.bind(this),
|
|
99
|
+
queryDidDocVersion: this.querier.did.didDocVersion.bind(this),
|
|
100
|
+
queryAllDidDocVersionsMetadata: this.querier.did.allDidDocVersionsMetadata.bind(this),
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
getRegistryTypes() {
|
|
104
|
+
return DIDModule.registryTypes;
|
|
105
|
+
}
|
|
106
|
+
getQuerierExtensionSetup() {
|
|
107
|
+
return DIDModule.querierExtensionSetup;
|
|
108
|
+
}
|
|
109
|
+
async createDidDocTx(signInputs, didPayload, address, fee, memo, versionId, context) {
|
|
110
|
+
if (!this._signer) {
|
|
111
|
+
this._signer = context.sdk.signer;
|
|
112
|
+
}
|
|
113
|
+
if (!versionId || versionId === '') {
|
|
114
|
+
versionId = v4();
|
|
115
|
+
}
|
|
116
|
+
const { valid, error, protobufVerificationMethod, protobufService } = await DIDModule.validateSpecCompliantPayload(didPayload);
|
|
117
|
+
if (!valid) {
|
|
118
|
+
throw new Error(`DID payload is not spec compliant: ${error}`);
|
|
119
|
+
}
|
|
120
|
+
const payload = MsgCreateDidDocPayload.fromPartial({
|
|
121
|
+
context: didPayload?.['@context'],
|
|
122
|
+
id: didPayload.id,
|
|
123
|
+
controller: didPayload.controller,
|
|
124
|
+
verificationMethod: protobufVerificationMethod,
|
|
125
|
+
authentication: didPayload.authentication,
|
|
126
|
+
assertionMethod: didPayload.assertionMethod,
|
|
127
|
+
capabilityInvocation: didPayload.capabilityInvocation,
|
|
128
|
+
capabilityDelegation: didPayload.capabilityDelegation,
|
|
129
|
+
keyAgreement: didPayload.keyAgreement,
|
|
130
|
+
service: protobufService,
|
|
131
|
+
alsoKnownAs: didPayload.alsoKnownAs,
|
|
132
|
+
versionId: versionId
|
|
133
|
+
});
|
|
134
|
+
let signatures;
|
|
135
|
+
if (ISignInputs.isSignInput(signInputs)) {
|
|
136
|
+
signatures = await this._signer.signcreateDidDocTx(signInputs, payload);
|
|
137
|
+
}
|
|
138
|
+
else {
|
|
139
|
+
signatures = signInputs;
|
|
140
|
+
}
|
|
141
|
+
const value = {
|
|
142
|
+
payload,
|
|
143
|
+
signatures
|
|
144
|
+
};
|
|
145
|
+
const createDidMsg = {
|
|
146
|
+
typeUrl: typeUrlMsgCreateDidDoc,
|
|
147
|
+
value
|
|
148
|
+
};
|
|
149
|
+
if (address === '') {
|
|
150
|
+
address = (await context.sdk.options.wallet.getAccounts())[0].address;
|
|
151
|
+
}
|
|
152
|
+
if (!fee) {
|
|
153
|
+
fee = await DIDModule.generateCreateDidDocFees(address);
|
|
154
|
+
}
|
|
155
|
+
return this._signer.signAndBroadcast(address, [createDidMsg], fee, memo);
|
|
156
|
+
}
|
|
157
|
+
async updateDidDocTx(signInputs, didPayload, address, fee, memo, versionId, context) {
|
|
158
|
+
if (!this._signer) {
|
|
159
|
+
this._signer = context.sdk.signer;
|
|
160
|
+
}
|
|
161
|
+
if (!versionId || versionId === '') {
|
|
162
|
+
versionId = v4();
|
|
163
|
+
}
|
|
164
|
+
const { valid, error, protobufVerificationMethod, protobufService } = await DIDModule.validateSpecCompliantPayload(didPayload);
|
|
165
|
+
if (!valid) {
|
|
166
|
+
throw new Error(`DID payload is not spec compliant: ${error}`);
|
|
167
|
+
}
|
|
168
|
+
const payload = MsgUpdateDidDocPayload.fromPartial({
|
|
169
|
+
context: didPayload?.['@context'],
|
|
170
|
+
id: didPayload.id,
|
|
171
|
+
controller: didPayload.controller,
|
|
172
|
+
verificationMethod: protobufVerificationMethod,
|
|
173
|
+
authentication: didPayload.authentication,
|
|
174
|
+
assertionMethod: didPayload.assertionMethod,
|
|
175
|
+
capabilityInvocation: didPayload.capabilityInvocation,
|
|
176
|
+
capabilityDelegation: didPayload.capabilityDelegation,
|
|
177
|
+
keyAgreement: didPayload.keyAgreement,
|
|
178
|
+
service: protobufService,
|
|
179
|
+
alsoKnownAs: didPayload.alsoKnownAs,
|
|
180
|
+
versionId: versionId
|
|
181
|
+
});
|
|
182
|
+
let signatures;
|
|
183
|
+
if (ISignInputs.isSignInput(signInputs)) {
|
|
184
|
+
signatures = await this._signer.signupdateDidDocTx(signInputs, payload);
|
|
185
|
+
}
|
|
186
|
+
else {
|
|
187
|
+
signatures = signInputs;
|
|
188
|
+
}
|
|
189
|
+
const value = {
|
|
190
|
+
payload,
|
|
191
|
+
signatures
|
|
192
|
+
};
|
|
193
|
+
const updateDidMsg = {
|
|
194
|
+
typeUrl: typeUrlMsgUpdateDidDoc,
|
|
195
|
+
value
|
|
196
|
+
};
|
|
197
|
+
if (address === '') {
|
|
198
|
+
address = (await context.sdk.options.wallet.getAccounts())[0].address;
|
|
199
|
+
}
|
|
200
|
+
if (!fee) {
|
|
201
|
+
fee = await DIDModule.generateUpdateDidDocFees(address);
|
|
202
|
+
}
|
|
203
|
+
return this._signer.signAndBroadcast(address, [updateDidMsg], fee, memo);
|
|
204
|
+
}
|
|
205
|
+
async deactivateDidDocTx(signInputs, didPayload, address, fee, memo, versionId, context) {
|
|
206
|
+
if (!this._signer) {
|
|
207
|
+
this._signer = context.sdk.signer;
|
|
208
|
+
}
|
|
209
|
+
if (!versionId || versionId === '') {
|
|
210
|
+
versionId = v4();
|
|
211
|
+
}
|
|
212
|
+
const { valid, error, protobufVerificationMethod } = await DIDModule.validateSpecCompliantPayload(didPayload);
|
|
213
|
+
if (!valid) {
|
|
214
|
+
throw new Error(`DID payload is not spec compliant: ${error}`);
|
|
215
|
+
}
|
|
216
|
+
const payload = MsgDeactivateDidDocPayload.fromPartial({
|
|
217
|
+
id: didPayload.id,
|
|
218
|
+
versionId: versionId
|
|
219
|
+
});
|
|
220
|
+
let signatures;
|
|
221
|
+
if (ISignInputs.isSignInput(signInputs)) {
|
|
222
|
+
signatures = await this._signer.signdeactivateDidDocTx(signInputs, payload, protobufVerificationMethod);
|
|
223
|
+
}
|
|
224
|
+
else {
|
|
225
|
+
signatures = signInputs;
|
|
226
|
+
}
|
|
227
|
+
const value = {
|
|
228
|
+
payload,
|
|
229
|
+
signatures
|
|
230
|
+
};
|
|
231
|
+
const deactivateDidMsg = {
|
|
232
|
+
typeUrl: typeUrlMsgDeactivateDidDoc,
|
|
233
|
+
value
|
|
234
|
+
};
|
|
235
|
+
if (address === '') {
|
|
236
|
+
address = (await context.sdk.options.wallet.getAccounts())[0].address;
|
|
237
|
+
}
|
|
238
|
+
if (!fee) {
|
|
239
|
+
fee = await DIDModule.generateDeactivateDidDocFees(address);
|
|
240
|
+
}
|
|
241
|
+
return this._signer.signAndBroadcast(address, [deactivateDidMsg], fee, memo);
|
|
242
|
+
}
|
|
243
|
+
async queryDidDoc(id, context) {
|
|
244
|
+
const { didDoc, metadata } = await this.querier[defaultDidExtensionKey].didDoc(id);
|
|
245
|
+
return {
|
|
246
|
+
didDocument: await DIDModule.toSpecCompliantPayload(didDoc),
|
|
247
|
+
didDocumentMetadata: await DIDModule.toSpecCompliantMetadata(metadata)
|
|
248
|
+
};
|
|
249
|
+
}
|
|
250
|
+
async queryDidDocVersion(id, versionId, context) {
|
|
251
|
+
const { didDoc, metadata } = await this.querier[defaultDidExtensionKey].didDocVersion(id, versionId);
|
|
252
|
+
return {
|
|
253
|
+
didDocument: await DIDModule.toSpecCompliantPayload(didDoc),
|
|
254
|
+
didDocumentMetadata: await DIDModule.toSpecCompliantMetadata(metadata)
|
|
255
|
+
};
|
|
256
|
+
}
|
|
257
|
+
async queryAllDidDocVersionsMetadata(id, context) {
|
|
258
|
+
const { versions, pagination } = await this.querier[defaultDidExtensionKey].allDidDocVersionsMetadata(id);
|
|
259
|
+
return {
|
|
260
|
+
didDocumentVersionsMetadata: await Promise.all(versions.map(async (m) => await DIDModule.toSpecCompliantMetadata(m))),
|
|
261
|
+
pagination
|
|
262
|
+
};
|
|
263
|
+
}
|
|
264
|
+
static async validateSpecCompliantPayload(didDocument) {
|
|
265
|
+
// id is required, validated on both compile and runtime
|
|
266
|
+
if (!didDocument?.id)
|
|
267
|
+
return { valid: false, error: 'id is required' };
|
|
268
|
+
// verificationMethod is required
|
|
269
|
+
if (!didDocument?.verificationMethod)
|
|
270
|
+
return { valid: false, error: 'verificationMethod is required' };
|
|
271
|
+
// verificationMethod must be an array
|
|
272
|
+
if (!Array.isArray(didDocument?.verificationMethod))
|
|
273
|
+
return { valid: false, error: 'verificationMethod must be an array' };
|
|
274
|
+
// verificationMethod types must be supported
|
|
275
|
+
const protoVerificationMethod = didDocument.verificationMethod.map((vm) => {
|
|
276
|
+
switch (vm?.type) {
|
|
277
|
+
case VerificationMethods.Ed255192020:
|
|
278
|
+
if (!vm?.publicKeyMultibase)
|
|
279
|
+
throw new Error('publicKeyMultibase is required');
|
|
280
|
+
return VerificationMethod.fromPartial({
|
|
281
|
+
id: vm.id,
|
|
282
|
+
controller: vm.controller,
|
|
283
|
+
verificationMethodType: VerificationMethods.Ed255192020,
|
|
284
|
+
verificationMaterial: vm.publicKeyMultibase,
|
|
285
|
+
});
|
|
286
|
+
case VerificationMethods.JWK:
|
|
287
|
+
if (!vm?.publicKeyJwk)
|
|
288
|
+
throw new Error('publicKeyJwk is required');
|
|
289
|
+
return VerificationMethod.fromPartial({
|
|
290
|
+
id: vm.id,
|
|
291
|
+
controller: vm.controller,
|
|
292
|
+
verificationMethodType: VerificationMethods.JWK,
|
|
293
|
+
verificationMaterial: JSON.stringify(vm.publicKeyJwk),
|
|
294
|
+
});
|
|
295
|
+
case VerificationMethods.Ed255192018:
|
|
296
|
+
if (!vm?.publicKeyBase58)
|
|
297
|
+
throw new Error('publicKeyBase58 is required');
|
|
298
|
+
return VerificationMethod.fromPartial({
|
|
299
|
+
id: vm.id,
|
|
300
|
+
controller: vm.controller,
|
|
301
|
+
verificationMethodType: VerificationMethods.Ed255192018,
|
|
302
|
+
verificationMaterial: vm.publicKeyBase58,
|
|
303
|
+
});
|
|
304
|
+
default:
|
|
305
|
+
throw new Error('Unsupported verificationMethod type');
|
|
306
|
+
}
|
|
307
|
+
});
|
|
308
|
+
const protoService = didDocument?.service?.map((s) => {
|
|
309
|
+
return Service.fromPartial({
|
|
310
|
+
id: s?.id,
|
|
311
|
+
serviceType: s?.type,
|
|
312
|
+
serviceEndpoint: s?.serviceEndpoint,
|
|
313
|
+
});
|
|
314
|
+
});
|
|
315
|
+
return { valid: true, protobufVerificationMethod: protoVerificationMethod, protobufService: protoService };
|
|
316
|
+
}
|
|
317
|
+
static async toSpecCompliantPayload(protobufDidDocument) {
|
|
318
|
+
const verificationMethod = protobufDidDocument.verificationMethod.map((vm) => {
|
|
319
|
+
switch (vm.verificationMethodType) {
|
|
320
|
+
case VerificationMethods.Ed255192020:
|
|
321
|
+
if (!protobufDidDocument.context.includes(contexts.W3CSuiteEd255192020))
|
|
322
|
+
protobufDidDocument.context = [...protobufDidDocument.context, contexts.W3CSuiteEd255192020];
|
|
323
|
+
return {
|
|
324
|
+
id: vm.id,
|
|
325
|
+
type: vm.verificationMethodType,
|
|
326
|
+
controller: vm.controller,
|
|
327
|
+
publicKeyMultibase: vm.verificationMaterial,
|
|
328
|
+
};
|
|
329
|
+
case VerificationMethods.JWK:
|
|
330
|
+
if (!protobufDidDocument.context.includes(contexts.W3CSuiteJws2020))
|
|
331
|
+
protobufDidDocument.context = [...protobufDidDocument.context, contexts.W3CSuiteJws2020];
|
|
332
|
+
return {
|
|
333
|
+
id: vm.id,
|
|
334
|
+
type: vm.verificationMethodType,
|
|
335
|
+
controller: vm.controller,
|
|
336
|
+
publicKeyJwk: JSON.parse(vm.verificationMaterial),
|
|
337
|
+
};
|
|
338
|
+
case VerificationMethods.Ed255192018:
|
|
339
|
+
if (!protobufDidDocument.context.includes(contexts.W3CSuiteEd255192018))
|
|
340
|
+
protobufDidDocument.context = [...protobufDidDocument.context, contexts.W3CSuiteEd255192018];
|
|
341
|
+
return {
|
|
342
|
+
id: vm.id,
|
|
343
|
+
type: vm.verificationMethodType,
|
|
344
|
+
controller: vm.controller,
|
|
345
|
+
publicKeyBase58: vm.verificationMaterial,
|
|
346
|
+
};
|
|
347
|
+
default:
|
|
348
|
+
throw new Error('Unsupported verificationMethod type'); // should never happen
|
|
349
|
+
}
|
|
350
|
+
});
|
|
351
|
+
const service = protobufDidDocument.service.map((s) => {
|
|
352
|
+
return {
|
|
353
|
+
id: s.id,
|
|
354
|
+
type: s.serviceType,
|
|
355
|
+
serviceEndpoint: s.serviceEndpoint,
|
|
356
|
+
};
|
|
357
|
+
});
|
|
358
|
+
const context = function () {
|
|
359
|
+
if (protobufDidDocument.context.includes(contexts.W3CDIDv1))
|
|
360
|
+
return protobufDidDocument.context;
|
|
361
|
+
return [contexts.W3CDIDv1, ...protobufDidDocument.context];
|
|
362
|
+
}();
|
|
363
|
+
const specCompliant = {
|
|
364
|
+
'@context': context,
|
|
365
|
+
id: protobufDidDocument.id,
|
|
366
|
+
controller: protobufDidDocument.controller,
|
|
367
|
+
verificationMethod: verificationMethod,
|
|
368
|
+
authentication: protobufDidDocument.authentication,
|
|
369
|
+
assertionMethod: protobufDidDocument.assertionMethod,
|
|
370
|
+
capabilityInvocation: protobufDidDocument.capabilityInvocation,
|
|
371
|
+
capabilityDelegation: protobufDidDocument.capabilityDelegation,
|
|
372
|
+
keyAgreement: protobufDidDocument.keyAgreement,
|
|
373
|
+
service: service,
|
|
374
|
+
alsoKnownAs: protobufDidDocument.alsoKnownAs,
|
|
375
|
+
};
|
|
376
|
+
if (!protobufDidDocument.authentication?.length)
|
|
377
|
+
delete specCompliant.authentication;
|
|
378
|
+
if (!protobufDidDocument.assertionMethod?.length)
|
|
379
|
+
delete specCompliant.assertionMethod;
|
|
380
|
+
if (!protobufDidDocument.capabilityInvocation?.length)
|
|
381
|
+
delete specCompliant.capabilityInvocation;
|
|
382
|
+
if (!protobufDidDocument.capabilityDelegation?.length)
|
|
383
|
+
delete specCompliant.capabilityDelegation;
|
|
384
|
+
if (!protobufDidDocument.keyAgreement?.length)
|
|
385
|
+
delete specCompliant.keyAgreement;
|
|
386
|
+
if (!protobufDidDocument.service?.length)
|
|
387
|
+
delete specCompliant.service;
|
|
388
|
+
if (!protobufDidDocument.alsoKnownAs?.length)
|
|
389
|
+
delete specCompliant.alsoKnownAs;
|
|
390
|
+
return specCompliant;
|
|
391
|
+
}
|
|
392
|
+
static async toSpecCompliantMetadata(protobufDidDocument) {
|
|
393
|
+
return {
|
|
394
|
+
created: protobufDidDocument.created?.toISOString(),
|
|
395
|
+
updated: protobufDidDocument.updated?.toISOString(),
|
|
396
|
+
deactivated: protobufDidDocument.deactivated,
|
|
397
|
+
versionId: protobufDidDocument.versionId,
|
|
398
|
+
nextVersionId: protobufDidDocument?.nextVersionId,
|
|
399
|
+
};
|
|
400
|
+
}
|
|
401
|
+
static async generateCreateDidDocFees(feePayer, granter) {
|
|
402
|
+
return {
|
|
403
|
+
amount: [
|
|
404
|
+
DIDModule.fees.DefaultCreateDidDocFee
|
|
405
|
+
],
|
|
406
|
+
gas: '360000',
|
|
407
|
+
payer: feePayer,
|
|
408
|
+
granter: granter
|
|
409
|
+
};
|
|
410
|
+
}
|
|
411
|
+
static async generateUpdateDidDocFees(feePayer, granter) {
|
|
412
|
+
return {
|
|
413
|
+
amount: [
|
|
414
|
+
DIDModule.fees.DefaultUpdateDidDocFee
|
|
415
|
+
],
|
|
416
|
+
gas: '360000',
|
|
417
|
+
payer: feePayer,
|
|
418
|
+
granter: granter
|
|
419
|
+
};
|
|
420
|
+
}
|
|
421
|
+
static async generateDeactivateDidDocFees(feePayer, granter) {
|
|
422
|
+
return {
|
|
423
|
+
amount: [
|
|
424
|
+
DIDModule.fees.DefaultDeactivateDidDocFee
|
|
425
|
+
],
|
|
426
|
+
gas: '360000',
|
|
427
|
+
payer: feePayer,
|
|
428
|
+
granter: granter
|
|
429
|
+
};
|
|
430
|
+
}
|
|
431
|
+
}
|
|
432
|
+
//# sourceMappingURL=did.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"did.js","sourceRoot":"","sources":["../../../src/modules/did.ts"],"names":[],"mappings":"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"}
|