@cheqd/did-provider-cheqd 1.3.2 → 1.4.0

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/README.md CHANGED
@@ -1,34 +1,56 @@
1
- # Veramo plugin template
1
+ # Veramo SDK plugin for cheqd DID method
2
2
 
3
- This template repository provides a bare-bones structure for writing an agent plugin for Veramo and/or for providing
4
- your own implementations for key management and storage, or for DID storage.
3
+ [![GitHub Workflow Status (branch)](https://img.shields.io/github/workflow/status/cheqd/did-provider-cheqd/Workflow%20Dispatch/main?label=Lint%2C%20Build%2C%20Test&style=flat-square)](https://github.com/cheqd/did-provider-cheqd/actions/workflows/dispatch.yml) [![npm (scoped)](https://img.shields.io/npm/v/@cheqd/did-provider-cheqd?style=flat-square)](https://www.npmjs.com/package/@cheqd/did-provider-cheqd)
5
4
 
6
- ## Quick start
5
+ [![GitHub release (latest SemVer)](https://img.shields.io/github/v/release/cheqd/did-provider-cheqd?color=green&label=stable&sort=semver&style=flat-square)](https://github.com/cheqd/did-provider-cheqd/releases/latest) ![GitHub Release Date](https://img.shields.io/github/release-date/cheqd/did-provider-cheqd?style=flat-square)
7
6
 
8
- - Copy this repo
9
- - Rename package in `package.json`
10
- - `yarn`
11
- - `yarn build` or `yarn watch`
12
- - `yarn generate-plugin-schema`
13
- - `yarn start` or VSCode Debugger (CMD + Shift + D) > Run `OpenAPI server`
7
+ [![GitHub release (latest SemVer including pre-releases)](https://img.shields.io/github/v/release/cheqd/did-provider-cheqd?include_prereleases&label=latest%20%28incl.%20pre-release%29&sort=semver&style=flat-square)](https://github.com/cheqd/did-provider-cheqd/releases/) ![GitHub commits since latest release (by date)](https://img.shields.io/github/commits-since/cheqd/did-provider-cheqd/latest?style=flat-square)
14
8
 
15
- ## Structure of this template
9
+ [![GitHub contributors](https://img.shields.io/github/contributors/cheqd/did-provider-cheqd?style=flat-square)](https://github.com/cheqd/did-provider-cheqd/graphs/contributors) ![GitHub repo size](https://img.shields.io/github/repo-size/cheqd/did-provider-cheqd?style=flat-square)
16
10
 
17
- ### Using plugin with @veramo/cli
11
+ ## ℹ️ Overview
18
12
 
19
- See [./agent.yml](./agent.yml) for an example Veramo CLI configuration that uses the plugin and customizations from this
20
- template alongside other Veramo plugins to create a fully functioning agent.
13
+ The purpose of this [`@cheqd/did-provider-cheqd` NPM package](https://www.npmjs.com/package/@cheqd/did-provider-cheqd) is to enable developers to interact with the cheqd ledger using [Veramo SDK](https://veramo.io/), a modular and pluggable client app SDK for decentralised identity and SSI applications.
21
14
 
22
- ## Testing your plugin
15
+ This package includes [Veramo SDK Agent methods](https://veramo.io/docs/veramo_agent/plugins) for use with the [Veramo CLI NPM package](https://www.npmjs.com/package/@veramo/cli). It can also be consumed as an NPM package outside Veramo CLI for building your own applications with NPM.
23
16
 
24
- There are a number of ways to test your plugin.
17
+ The package's core functionality is borrowed from [Veramo Core NPM package](https://www.npmjs.com/package/@veramo/core). and extends this to include cheqd ledger functionality, such as creating and managing DIDs.
25
18
 
26
- ### Integration tests
19
+ ### 🆔 `did:cheqd`-specific functionality
27
20
 
28
- Will be added in the nearest future.
21
+ `did-provider-cheqd` is the first Veramo SDK plug-in that utilises the *DID Manager Update* method to offer a full-body DIDDoc update for a DID on cheqd ledger, rather than individual field update transactions used more commonly in other DID methods such as [`did:ethr`](https://developer.uport.me/ethr-did/docs/index).
29
22
 
30
- ### Call your agent using the Veramo OpenAPI server
23
+ New DID creation can also be done by passing a full-body DIDoc payload in JSON, rather than having to assemble the document field-by-field.
31
24
 
32
- You can also run `yarn veramo server` in your terminal and then go to <http://localhost:3335/api-docs> to see all the
33
- available plugin methods. You can call them after you click Authorize and provide the API key defined
34
- in [agent.yml](./agent.yml#L119). By default, it is `test123`.
25
+ ## 📚 Tutorials
26
+
27
+ Extensive [tutorials on how to use Veramo SDK for cheqd](https://docs.cheqd.io/identity/tutorials/dids/veramo-cli-sdk) are available on the [cheqd Identity Documentation site](https://docs.cheqd.io/identity/).
28
+
29
+ ## 🧑‍💻🛠 Developer Guide
30
+
31
+ ### Setup
32
+
33
+ Dependencies can be installed [using NPM](https://docs.npmjs.com/cli/v8/commands) or similar package package managers using the `package.json` in this repository.
34
+
35
+ ```bash
36
+ npm install
37
+ ```
38
+
39
+ ### Configuration
40
+
41
+ A default Veramo Agent configuration is provided in the [`agent.yml`](https://github.com/cheqd/did-provider-cheqd/blob/main/agent.yml) file in this repository.
42
+
43
+ ⚠️ Here are the values that you are recommended to edit before usage:
44
+
45
+ 1. `dbEncryptionKey`: Encryption key for Veramo KMS local storage [SQLite database](https://www.sqlite.org/index.html). If you don't change this, the default database encryption key present in the file is used.
46
+ 2. `cosmosPayerMnemonic`: Mnemonic for the cheqd Cosmos account from which the fees for any transactions are paid.
47
+
48
+ ## 💬 Community
49
+
50
+ The [**cheqd Community Slack**](http://cheqd.link/join-cheqd-slack) is our primary chat channel for the open-source community, software developers, and node operators.
51
+
52
+ Please reach out to us there for discussions, help, and feedback on the project.
53
+
54
+ ## 🙋 Find us elsewhere
55
+
56
+ [![Telegram](https://img.shields.io/badge/Telegram-2CA5E0?style=for-the-badge\&logo=telegram\&logoColor=white)](https://t.me/cheqd) [![Discord](https://img.shields.io/badge/Discord-7289DA?style=for-the-badge\&logo=discord\&logoColor=white)](http://cheqd.link/discord-github) [![Twitter](https://img.shields.io/badge/Twitter-1DA1F2?style=for-the-badge\&logo=twitter\&logoColor=white)](https://twitter.com/intent/follow?screen\_name=cheqd\_io) [![LinkedIn](https://img.shields.io/badge/LinkedIn-0077B5?style=for-the-badge\&logo=linkedin\&logoColor=white)](http://cheqd.link/linkedin) [![Slack](https://img.shields.io/badge/Slack-4A154B?style=for-the-badge\&logo=slack\&logoColor=white)](http://cheqd.link/join-cheqd-slack) [![Medium](https://img.shields.io/badge/Medium-12100E?style=for-the-badge\&logo=medium\&logoColor=white)](https://blog.cheqd.io) [![YouTube](https://img.shields.io/badge/YouTube-FF0000?style=for-the-badge\&logo=youtube\&logoColor=white)](https://www.youtube.com/channel/UCBUGvvH6t3BAYo5u41hJPzw/)
@@ -1,5 +1,4 @@
1
1
  import { IAgentContext, IKeyManager, IAgentPlugin, IPluginMethodMap, IAgentPluginSchema, IIdentifier } from '@veramo/core';
2
- import { CheqdDIDProvider } from '../did-manager/cheqd-did-provider';
3
2
  declare type IContext = IAgentContext<IKeyManager>;
4
3
  declare const CreateIdentifierMethodName = "cheqdCreateIdentifier";
5
4
  declare const UpdateIdentifierMethodName = "cheqdUpdateIdentifier";
@@ -10,8 +9,8 @@ export interface ICheqd extends IPluginMethodMap {
10
9
  export declare class Cheqd implements IAgentPlugin {
11
10
  readonly methods?: ICheqd;
12
11
  readonly schema?: IAgentPluginSchema;
13
- readonly didProvider: CheqdDIDProvider;
14
- constructor(provider: CheqdDIDProvider);
12
+ readonly didProvider: string;
13
+ constructor(provider: string);
15
14
  private CreateIdentifier;
16
15
  private UpdateIdentifier;
17
16
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ICheqd.d.ts","sourceRoot":"","sources":["../../src/agent/ICheqd.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,aAAa,EACb,WAAW,EACX,YAAY,EACZ,gBAAgB,EAChB,kBAAkB,EAClB,WAAW,EACd,MAAM,cAAc,CAAA;AACrB,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAA;AAEpE,aAAK,QAAQ,GAAG,aAAa,CAAC,WAAW,CAAC,CAAA;AAE1C,QAAA,MAAM,0BAA0B,0BAA0B,CAAA;AAC1D,QAAA,MAAM,0BAA0B,0BAA0B,CAAA;AAE1D,MAAM,WAAW,MAAO,SAAQ,gBAAgB;IAC5C,CAAC,0BAA0B,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ,KAAK,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC,CAAA;IACtG,CAAC,0BAA0B,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CAChF;AAED,qBAAa,KAAM,YAAW,YAAY;IACtC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,MAAM,CAAC,EAAE,kBAAkB,CAyBnC;IAED,QAAQ,CAAC,WAAW,EAAE,gBAAgB,CAAC;gBAE3B,QAAQ,EAAE,gBAAgB;YASxB,gBAAgB;YA2BhB,gBAAgB;CAkBjC"}
1
+ {"version":3,"file":"ICheqd.d.ts","sourceRoot":"","sources":["../../src/agent/ICheqd.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,aAAa,EACb,WAAW,EACX,YAAY,EACZ,gBAAgB,EAChB,kBAAkB,EAClB,WAAW,EACd,MAAM,cAAc,CAAA;AAGrB,aAAK,QAAQ,GAAG,aAAa,CAAC,WAAW,CAAC,CAAA;AAE1C,QAAA,MAAM,0BAA0B,0BAA0B,CAAA;AAC1D,QAAA,MAAM,0BAA0B,0BAA0B,CAAA;AAE1D,MAAM,WAAW,MAAO,SAAQ,gBAAgB;IAC5C,CAAC,0BAA0B,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ,KAAK,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC,CAAA;IACtG,CAAC,0BAA0B,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CAChF;AAED,qBAAa,KAAM,YAAW,YAAY;IACtC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,MAAM,CAAC,EAAE,kBAAkB,CAyBnC;IAED,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;gBAEjB,QAAQ,EAAE,MAAM;YASd,gBAAgB;YA4BhB,gBAAgB;CA0BjC"}
@@ -47,17 +47,18 @@ class Cheqd {
47
47
  if (typeof args.document !== 'object') {
48
48
  throw new Error('[cheqd-plugin]: document object is required');
49
49
  }
50
- if (Array.isArray(args === null || args === void 0 ? void 0 : args.keys)) {
50
+ if (typeof args.keys !== 'object') {
51
51
  throw new Error('[cheqd-plugin]: keys array is required');
52
52
  }
53
- return await this.didProvider.createIdentifier({
53
+ return await context.agent.didManagerCreate({
54
54
  kms: args.kms,
55
55
  alias: args.alias,
56
+ provider: this.didProvider,
56
57
  options: {
57
58
  document: args.document,
58
59
  keys: args.keys
59
60
  }
60
- }, context);
61
+ });
61
62
  }
62
63
  async UpdateIdentifier(args, context) {
63
64
  if (typeof args.kms !== 'string') {
@@ -69,10 +70,17 @@ class Cheqd {
69
70
  if (typeof args.document !== 'object') {
70
71
  throw new Error('[cheqd-plugin]: document object is required');
71
72
  }
72
- return await this.didProvider.updateIdentifier({
73
+ if (typeof args.keys !== 'object') {
74
+ throw new Error('[cheqd-plugin]: keys array is required');
75
+ }
76
+ return await context.agent.didManagerUpdate({
73
77
  did: args.did,
74
78
  document: args.document,
75
- }, context);
79
+ options: {
80
+ kms: args.kms,
81
+ keys: args.keys
82
+ }
83
+ });
76
84
  }
77
85
  }
78
86
  exports.Cheqd = Cheqd;
@@ -1 +1 @@
1
- {"version":3,"file":"ICheqd.js","sourceRoot":"","sources":["../../src/agent/ICheqd.ts"],"names":[],"mappings":";;;AAYA,MAAM,0BAA0B,GAAG,uBAAuB,CAAA;AAC1D,MAAM,0BAA0B,GAAG,uBAAuB,CAAA;AAO1D,MAAa,KAAK;IA+Bd,YAAY,QAA0B;QA7B7B,WAAM,GAAwB;YACnC,YAAY,EAAE;gBACV,SAAS,EAAE,EAAE;gBACb,SAAS,EAAE;oBACP,uBAAuB,EAAE;wBACrB,aAAa,EAAE,yBAAyB;wBACxC,WAAW,EAAE;4BACT,MAAM,EAAE,QAAQ;4BAChB,YAAY,EAAE;gCACV,MAAM,EAAE;oCACJ,MAAM,EAAE,QAAQ;oCAChB,aAAa,EAAE,6DAA6D;iCAC/E;6BACJ;4BACD,UAAU,EAAE;gCACR,MAAM;6BACT;yBACJ;wBACD,YAAY,EAAE;4BACV,MAAM,EAAE,QAAQ;yBACnB;qBACJ;oBACD,uBAAuB,EAAE,EAAE;iBAC9B;aACJ;SACJ,CAAA;QAKG,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAA;QAE3B,IAAI,CAAC,OAAO,GAAG;YACX,CAAC,0BAA0B,CAAC,EAAE,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC;YAC9D,CAAC,0BAA0B,CAAC,EAAE,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC;SACjE,CAAA;IACL,CAAC;IAEO,KAAK,CAAC,gBAAgB,CAAC,IAAS,EAAE,OAAiB;QACvD,IAAI,OAAO,IAAI,CAAC,GAAG,KAAK,QAAQ,EAAE;YAC9B,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAA;SACrD;QAED,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,EAAE;YAChC,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAA;SACvD;QAED,IAAI,OAAO,IAAI,CAAC,QAAQ,KAAK,QAAQ,EAAE;YACnC,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAA;SACjE;QAED,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,IAAI,CAAC,EAAE;YAC3B,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAA;SAC5D;QAED,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC;YAC3C,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,OAAO,EAAE;gBACL,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,IAAI,EAAE,IAAI,CAAC,IAAI;aAClB;SACJ,EAAE,OAAO,CAAC,CAAA;IACf,CAAC;IAEO,KAAK,CAAC,gBAAgB,CAAC,IAAS,EAAE,OAAiB;QACvD,IAAI,OAAO,IAAI,CAAC,GAAG,KAAK,QAAQ,EAAE;YAC9B,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAA;SACrD;QAED,IAAI,OAAO,IAAI,CAAC,GAAG,KAAK,QAAQ,EAAE;YAC9B,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAA;SACrD;QAED,IAAI,OAAO,IAAI,CAAC,QAAQ,KAAK,QAAQ,EAAE;YACnC,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAA;SACjE;QAED,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC;YAC3C,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,QAAQ,EAAE,IAAI,CAAC,QAAQ;SAC1B,EAAE,OAAO,CAAC,CAAA;IACf,CAAC;CACJ;AArFD,sBAqFC"}
1
+ {"version":3,"file":"ICheqd.js","sourceRoot":"","sources":["../../src/agent/ICheqd.ts"],"names":[],"mappings":";;;AAYA,MAAM,0BAA0B,GAAG,uBAAuB,CAAA;AAC1D,MAAM,0BAA0B,GAAG,uBAAuB,CAAA;AAO1D,MAAa,KAAK;IA+Bd,YAAY,QAAgB;QA7BnB,WAAM,GAAwB;YACnC,YAAY,EAAE;gBACV,SAAS,EAAE,EAAE;gBACb,SAAS,EAAE;oBACP,uBAAuB,EAAE;wBACrB,aAAa,EAAE,yBAAyB;wBACxC,WAAW,EAAE;4BACT,MAAM,EAAE,QAAQ;4BAChB,YAAY,EAAE;gCACV,MAAM,EAAE;oCACJ,MAAM,EAAE,QAAQ;oCAChB,aAAa,EAAE,6DAA6D;iCAC/E;6BACJ;4BACD,UAAU,EAAE;gCACR,MAAM;6BACT;yBACJ;wBACD,YAAY,EAAE;4BACV,MAAM,EAAE,QAAQ;yBACnB;qBACJ;oBACD,uBAAuB,EAAE,EAAE;iBAC9B;aACJ;SACJ,CAAA;QAKG,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAA;QAE3B,IAAI,CAAC,OAAO,GAAG;YACX,CAAC,0BAA0B,CAAC,EAAE,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC;YAC9D,CAAC,0BAA0B,CAAC,EAAE,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC;SACjE,CAAA;IACL,CAAC;IAEO,KAAK,CAAC,gBAAgB,CAAC,IAAS,EAAE,OAAiB;QACvD,IAAI,OAAO,IAAI,CAAC,GAAG,KAAK,QAAQ,EAAE;YAC9B,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAA;SACrD;QAED,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,EAAE;YAChC,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAA;SACvD;QAED,IAAI,OAAO,IAAI,CAAC,QAAQ,KAAK,QAAQ,EAAE;YACnC,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAA;SACjE;QAED,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE;YAC/B,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAA;SAC5D;QAED,OAAO,MAAM,OAAO,CAAC,KAAK,CAAC,gBAAgB,CAAC;YACxC,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,QAAQ,EAAE,IAAI,CAAC,WAAW;YAC1B,OAAO,EAAE;gBACL,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,IAAI,EAAE,IAAI,CAAC,IAAI;aAClB;SACJ,CAAC,CAAA;IACN,CAAC;IAEO,KAAK,CAAC,gBAAgB,CAAC,IAAS,EAAE,OAAiB;QACvD,IAAI,OAAO,IAAI,CAAC,GAAG,KAAK,QAAQ,EAAE;YAC9B,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAA;SACrD;QAED,IAAI,OAAO,IAAI,CAAC,GAAG,KAAK,QAAQ,EAAE;YAC9B,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAA;SACrD;QAED,IAAI,OAAO,IAAI,CAAC,QAAQ,KAAK,QAAQ,EAAE;YACnC,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAA;SACjE;QAED,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE;YAC/B,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAA;SAC5D;QAED,OAAO,MAAM,OAAO,CAAC,KAAK,CAAC,gBAAgB,CAAC;YACxC,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,OAAO,EAAE;gBACL,GAAG,EAAE,IAAI,CAAC,GAAG;gBACb,IAAI,EAAE,IAAI,CAAC,IAAI;aAClB;SACJ,CAAC,CAAA;IACN,CAAC;CACJ;AA9FD,sBA8FC"}
@@ -50,10 +50,14 @@ export declare class CheqdDIDProvider extends AbstractIdentifierProvider {
50
50
  keys: TImportableEd25519Key[];
51
51
  };
52
52
  }, context: IContext): Promise<Omit<IIdentifier, 'provider'>>;
53
- updateIdentifier({ did, document }: {
53
+ updateIdentifier({ did, document, options }: {
54
54
  did: string;
55
55
  document: Partial<DIDDocument>;
56
- }, context: IContext): Promise<void>;
56
+ options: {
57
+ kms: string;
58
+ keys: TImportableEd25519Key[];
59
+ };
60
+ }, context: IContext): Promise<IIdentifier>;
57
61
  deleteIdentifier(identity: IIdentifier, context: IContext): Promise<boolean>;
58
62
  addKey({ identifier, key, options, }: {
59
63
  identifier: IIdentifier;
@@ -1 +1 @@
1
- {"version":3,"file":"cheqd-did-provider.d.ts","sourceRoot":"","sources":["../../src/did-manager/cheqd-did-provider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cheqd-did-provider.d.ts","sourceRoot":"","sources":["../../src/did-manager/cheqd-did-provider.ts"],"names":[],"mappings":"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"}
@@ -28,7 +28,7 @@ class CheqdDIDProvider extends did_manager_1.AbstractIdentifierProvider {
28
28
  constructor(options) {
29
29
  super();
30
30
  this.defaultKms = options.defaultKms;
31
- this.cosmosPayerWallet = proto_signing_1.DirectSecp256k1HdWallet.fromMnemonic(options.cosmosPayerMnemonic);
31
+ this.cosmosPayerWallet = proto_signing_1.DirectSecp256k1HdWallet.fromMnemonic(options.cosmosPayerMnemonic, { prefix: 'cheqd' });
32
32
  this.network = options.networkType ? options.networkType : NetworkType.Testnet;
33
33
  this.rpcUrl = options.rpcUrl ? options.rpcUrl : (this.network === NetworkType.Testnet ? DefaultRPCUrl.Testnet : DefaultRPCUrl.Mainnet);
34
34
  }
@@ -44,6 +44,8 @@ class CheqdDIDProvider extends did_manager_1.AbstractIdentifierProvider {
44
44
  async getCheqdSDK(fee) {
45
45
  if (!this.sdk) {
46
46
  const sdkOptions = {
47
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
48
+ // @ts-ignore - No actual type insufficiency here. Learn more about this in the docs.
47
49
  modules: [sdk_1.DIDModule],
48
50
  rpcUrl: this.rpcUrl,
49
51
  wallet: await this.cosmosPayerWallet,
@@ -67,7 +69,7 @@ class CheqdDIDProvider extends did_manager_1.AbstractIdentifierProvider {
67
69
  const sdk = await this.getCheqdSDK();
68
70
  const signInputs = options.keys.map(key => { var _a; return (0, sdk_1.createSignInputsFromImportableEd25519Key)(key, (_a = options.document.verificationMethod) !== null && _a !== void 0 ? _a : []); });
69
71
  const tx = await sdk.createDidTx(signInputs, options.document, '', this.fee || 'auto', undefined, { sdk: sdk });
70
- (0, utils_1.assert)(tx.code === 0, 'cosmos_transaction: Failed to create DID');
72
+ (0, utils_1.assert)(tx.code === 0, `cosmos_transaction: Failed to create DID. Reason: ${tx.rawLog}`);
71
73
  //* Currently, only one controller key is supported. This is subject to change in the near future.
72
74
  const controllerKey = await context.agent.keyManagerImport({
73
75
  ...options.keys[0],
@@ -79,18 +81,37 @@ class CheqdDIDProvider extends did_manager_1.AbstractIdentifierProvider {
79
81
  did: options.document.id,
80
82
  controllerKeyId: controllerKey.kid,
81
83
  keys: [controllerKey, ..._keys],
82
- services: [],
83
- provider: 'cheqd',
84
+ services: options.document.service || [],
85
+ provider: `did:cheqd:${this.network}`,
84
86
  };
85
87
  debug('Created DID', identifier.did);
86
88
  return identifier;
87
89
  }
90
+ // TODO: Add client side diff calculation using the resolver & SDK helper functions.
91
+ //* This will allow for better accuracy and predictability of `updateIdentifier` race conditions.
88
92
  async updateIdentifier(
89
93
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
90
- { did, document }, context) {
91
- console.log("document received: " + JSON.stringify(document, null, 2));
92
- // TODO: Handle did update
94
+ { did, document, options }, context) {
95
+ const sdk = await this.getCheqdSDK();
96
+ const signInputs = options.keys.map(key => { var _a; return (0, sdk_1.createSignInputsFromImportableEd25519Key)(key, (_a = document.verificationMethod) !== null && _a !== void 0 ? _a : []); });
97
+ const tx = await sdk.updateDidTx(signInputs, document, '', this.fee || 'auto', undefined, { sdk: sdk });
98
+ (0, utils_1.assert)(tx.code === 0, `cosmos_transaction: Failed to create DID. Reason: ${tx.rawLog}`);
99
+ //* Currently, only one controller key is supported. This is subject to change in the near future.
100
+ const controllerKey = await context.agent.keyManagerImport({
101
+ ...options.keys[0],
102
+ kms: options.kms || this.defaultKms,
103
+ });
104
+ const _keys = await Promise.all(options.keys.slice(1).map(async (key) => await context.agent.keyManagerImport({ ...key, kms: options.kms || this.defaultKms })));
105
+ const identifier = {
106
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
107
+ did: document.id,
108
+ controllerKeyId: controllerKey.kid,
109
+ keys: [controllerKey, ..._keys],
110
+ services: document.service || [],
111
+ provider: `did:cheqd:${this.network}`,
112
+ };
93
113
  debug('Updated DID', did);
114
+ return identifier;
94
115
  }
95
116
  async deleteIdentifier(identity, context) {
96
117
  for (const { kid } of identity.keys) {
@@ -1 +1 @@
1
- {"version":3,"file":"cheqd-did-provider.js","sourceRoot":"","sources":["../../src/did-manager/cheqd-did-provider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cheqd-did-provider.js","sourceRoot":"","sources":["../../src/did-manager/cheqd-did-provider.ts"],"names":[],"mappings":"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"}
@@ -1,17 +1,21 @@
1
1
  import { DIDResolutionOptions, DIDResolutionResult, DIDResolver, ParsedDID, Resolvable } from 'did-resolver';
2
+ interface Options {
3
+ url: string;
4
+ }
2
5
  /**
3
6
  * Creates a CheqdDIDResolver instance that can be used with `did-resolver`.
4
7
  * @public
5
8
  */
6
- export declare function getResolver(resolverUrl?: string): Record<string, DIDResolver>;
9
+ export declare function getResolver(options?: Options): Record<string, DIDResolver>;
7
10
  /**
8
11
  * CheqdDIDResolver instance that can be used with `did-resolver`.
9
12
  * @public
10
13
  */
11
14
  export declare class CheqdDidResolver {
12
15
  private resolverUrl;
13
- constructor(resolverUrl?: string);
16
+ constructor(options?: Options);
14
17
  resolve(did: string, parsed: ParsedDID, _unused: Resolvable, options: DIDResolutionOptions): Promise<DIDResolutionResult>;
15
18
  build(): Record<string, DIDResolver>;
16
19
  }
20
+ export {};
17
21
  //# sourceMappingURL=cheqd-did-resolver.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"cheqd-did-resolver.d.ts","sourceRoot":"","sources":["../../src/did-manager/cheqd-did-resolver.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EACnB,WAAW,EACX,SAAS,EACT,UAAU,EACX,MAAM,cAAc,CAAA;AAErB;;;GAGG;AACH,wBAAgB,WAAW,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAI7E;AAED;;;GAGG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,WAAW,CAC4B;gBAEnC,WAAW,CAAC,EAAE,MAAM;IAI1B,OAAO,CACX,GAAG,EAAE,MAAM,EAEX,MAAM,EAAE,SAAS,EAEjB,OAAO,EAAE,UAAU,EAEnB,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,mBAAmB,CAAC;IAY/B,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC;CAGrC"}
1
+ {"version":3,"file":"cheqd-did-resolver.d.ts","sourceRoot":"","sources":["../../src/did-manager/cheqd-did-resolver.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EACnB,WAAW,EACX,SAAS,EACT,UAAU,EACX,MAAM,cAAc,CAAA;AAErB,UAAU,OAAO;IACf,GAAG,EAAE,MAAM,CAAA;CACZ;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAI1E;AAED;;;GAGG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,WAAW,CAAgD;gBAEvD,OAAO,CAAC,EAAE,OAAO;IAIvB,OAAO,CACX,GAAG,EAAE,MAAM,EAEX,MAAM,EAAE,SAAS,EAEjB,OAAO,EAAE,UAAU,EAEnB,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,mBAAmB,CAAC;IAY/B,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC;CAGrC"}
@@ -5,9 +5,9 @@ exports.CheqdDidResolver = exports.getResolver = void 0;
5
5
  * Creates a CheqdDIDResolver instance that can be used with `did-resolver`.
6
6
  * @public
7
7
  */
8
- function getResolver(resolverUrl) {
9
- if (resolverUrl)
10
- return new CheqdDidResolver(resolverUrl).build();
8
+ function getResolver(options) {
9
+ if (options === null || options === void 0 ? void 0 : options.url)
10
+ return new CheqdDidResolver(options).build();
11
11
  return new CheqdDidResolver().build();
12
12
  }
13
13
  exports.getResolver = getResolver;
@@ -16,10 +16,10 @@ exports.getResolver = getResolver;
16
16
  * @public
17
17
  */
18
18
  class CheqdDidResolver {
19
- constructor(resolverUrl) {
19
+ constructor(options) {
20
20
  this.resolverUrl = 'https://resolver.cheqd.net/1.0/identifiers/';
21
- if (resolverUrl)
22
- this.resolverUrl = resolverUrl;
21
+ if (options === null || options === void 0 ? void 0 : options.url)
22
+ this.resolverUrl = options.url;
23
23
  }
24
24
  async resolve(did,
25
25
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
@@ -1 +1 @@
1
- {"version":3,"file":"cheqd-did-resolver.js","sourceRoot":"","sources":["../../src/did-manager/cheqd-did-resolver.ts"],"names":[],"mappings":";;;AAQA;;;GAGG;AACH,SAAgB,WAAW,CAAC,WAAoB;IAC9C,IAAI,WAAW;QAAE,OAAO,IAAI,gBAAgB,CAAC,WAAW,CAAC,CAAC,KAAK,EAAE,CAAA;IAEjE,OAAO,IAAI,gBAAgB,EAAE,CAAC,KAAK,EAAE,CAAA;AACvC,CAAC;AAJD,kCAIC;AAED;;;GAGG;AACH,MAAa,gBAAgB;IAI3B,YAAY,WAAoB;QAHxB,gBAAW,GACjB,6CAA6C,CAAA;QAG7C,IAAI,WAAW;YAAE,IAAI,CAAC,WAAW,GAAG,WAAW,CAAA;IACjD,CAAC;IAED,KAAK,CAAC,OAAO,CACX,GAAW;IACX,6DAA6D;IAC7D,MAAiB;IACjB,6DAA6D;IAC7D,OAAmB;IACnB,6DAA6D;IAC7D,OAA6B;QAE7B,IAAI;YACF,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,WAAW,GAAG,GAAG,EAAE;gBACjD,OAAO,EAAE,EAAE,cAAc,EAAE,sBAAsB,EAAE;aACpD,CAAC,CAAA;YACF,MAAM,GAAG,GAAG,CAAC,MAAM,MAAM,CAAC,IAAI,EAAE,CAAwB,CAAA;YACxD,OAAO,GAAG,CAAA;SACX;QAAC,OAAO,CAAC,EAAE;YACV,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;SACzB;IACH,CAAC;IAED,KAAK;QACH,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAA;IAC3C,CAAC;CACF;AA/BD,4CA+BC"}
1
+ {"version":3,"file":"cheqd-did-resolver.js","sourceRoot":"","sources":["../../src/did-manager/cheqd-did-resolver.ts"],"names":[],"mappings":";;;AAYA;;;GAGG;AACH,SAAgB,WAAW,CAAC,OAAiB;IAC3C,IAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,GAAG;QAAE,OAAO,IAAI,gBAAgB,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,CAAA;IAE9D,OAAO,IAAI,gBAAgB,EAAE,CAAC,KAAK,EAAE,CAAA;AACvC,CAAC;AAJD,kCAIC;AAED;;;GAGG;AACH,MAAa,gBAAgB;IAG3B,YAAY,OAAiB;QAFrB,gBAAW,GAAG,6CAA6C,CAAA;QAGjE,IAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,GAAG;YAAE,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,GAAG,CAAA;IAClD,CAAC;IAED,KAAK,CAAC,OAAO,CACX,GAAW;IACX,6DAA6D;IAC7D,MAAiB;IACjB,6DAA6D;IAC7D,OAAmB;IACnB,6DAA6D;IAC7D,OAA6B;QAE7B,IAAI;YACF,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,WAAW,GAAG,GAAG,EAAE;gBACjD,OAAO,EAAE,EAAE,cAAc,EAAE,sBAAsB,EAAE;aACpD,CAAC,CAAA;YACF,MAAM,GAAG,GAAG,CAAC,MAAM,MAAM,CAAC,IAAI,EAAE,CAAwB,CAAA;YACxD,OAAO,GAAG,CAAA;SACX;QAAC,OAAO,CAAC,EAAE;YACV,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;SACzB;IACH,CAAC;IAED,KAAK;QACH,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAA;IAC3C,CAAC;CACF;AA9BD,4CA8BC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cheqd/did-provider-cheqd",
3
- "version": "1.3.2",
3
+ "version": "1.4.0",
4
4
  "description": "Veramo SDK plugin for the did:cheqd DID method",
5
5
  "license": "Apache-2.0",
6
6
  "source": "src/index.ts",
@@ -45,11 +45,11 @@
45
45
  "@semantic-release/release-notes-generator": "^10.0.3",
46
46
  "@types/debug": "^4.1.7",
47
47
  "@types/jest": "27.5.1",
48
- "@typescript-eslint/eslint-plugin": "^5.31.0",
49
- "@typescript-eslint/parser": "^5.31.0",
48
+ "@typescript-eslint/eslint-plugin": "^5.32.0",
49
+ "@typescript-eslint/parser": "^5.32.0",
50
50
  "@veramo/cli": "^3.1.5",
51
51
  "conventional-changelog-conventionalcommits": "^5.0.0",
52
- "eslint": "^8.20.0",
52
+ "eslint": "^8.21.0",
53
53
  "eslint-config-prettier": "^8.5.0",
54
54
  "eslint-config-typescript": "^3.0.0",
55
55
  "jest": "27.5.1",
@@ -67,14 +67,14 @@
67
67
  "tsconfig.json"
68
68
  ],
69
69
  "dependencies": {
70
- "@cheqd/sdk": "^1.2.2",
70
+ "@cheqd/sdk": "^1.2.4",
71
71
  "@cheqd/ts-proto": "^1.0.11",
72
72
  "@cosmjs/proto-signing": "^0.28.11",
73
73
  "@cosmjs/utils": "^0.28.11",
74
- "@veramo/core": "^3.1.3",
75
- "@veramo/did-manager": "^3.1.3",
74
+ "@veramo/core": "^3.1.6-next.156",
75
+ "@veramo/did-manager": "^3.1.6-next.156",
76
76
  "@veramo/did-provider-key": "^3.1.3",
77
- "@veramo/key-manager": "^3.1.3",
77
+ "@veramo/key-manager": "^3.1.6-next.156",
78
78
  "debug": "^4.3.4",
79
79
  "multibase": "^4.0.6",
80
80
  "multicodec": "^3.2.1"
@@ -47,9 +47,9 @@ export class Cheqd implements IAgentPlugin {
47
47
  }
48
48
  }
49
49
 
50
- readonly didProvider: CheqdDIDProvider;
50
+ readonly didProvider: string;
51
51
 
52
- constructor(provider: CheqdDIDProvider) {
52
+ constructor(provider: string) {
53
53
  this.didProvider = provider
54
54
 
55
55
  this.methods = {
@@ -71,18 +71,19 @@ export class Cheqd implements IAgentPlugin {
71
71
  throw new Error('[cheqd-plugin]: document object is required')
72
72
  }
73
73
 
74
- if (Array.isArray(args?.keys)) {
74
+ if (typeof args.keys !== 'object') {
75
75
  throw new Error('[cheqd-plugin]: keys array is required')
76
76
  }
77
77
 
78
- return await this.didProvider.createIdentifier({
78
+ return await context.agent.didManagerCreate({
79
79
  kms: args.kms,
80
80
  alias: args.alias,
81
+ provider: this.didProvider,
81
82
  options: {
82
83
  document: args.document,
83
84
  keys: args.keys
84
85
  }
85
- }, context)
86
+ })
86
87
  }
87
88
 
88
89
  private async UpdateIdentifier(args: any, context: IContext) {
@@ -98,9 +99,17 @@ export class Cheqd implements IAgentPlugin {
98
99
  throw new Error('[cheqd-plugin]: document object is required')
99
100
  }
100
101
 
101
- return await this.didProvider.updateIdentifier({
102
+ if (typeof args.keys !== 'object') {
103
+ throw new Error('[cheqd-plugin]: keys array is required')
104
+ }
105
+
106
+ return await context.agent.didManagerUpdate({
102
107
  did: args.did,
103
108
  document: args.document,
104
- }, context)
109
+ options: {
110
+ kms: args.kms,
111
+ keys: args.keys
112
+ }
113
+ })
105
114
  }
106
115
  }
@@ -1,6 +1,7 @@
1
1
  import { CheqdSDK, createCheqdSDK, createSignInputsFromImportableEd25519Key, DIDModule, ICheqdSDKOptions } from '@cheqd/sdk'
2
2
  import { AbstractCheqdSDKModule } from '@cheqd/sdk/src/modules/_'
3
3
  import { DidStdFee } from '@cheqd/sdk/src/types'
4
+ import { Service, VerificationMethod } from '@cheqd/ts-proto/cheqd/v1/did'
4
5
  import { MsgCreateDidPayload, MsgUpdateDidPayload } from '@cheqd/ts-proto/cheqd/v1/tx'
5
6
  import { DirectSecp256k1HdWallet } from '@cosmjs/proto-signing'
6
7
  import { assert } from '@cosmjs/utils'
@@ -50,7 +51,7 @@ export class CheqdDIDProvider extends AbstractIdentifierProvider {
50
51
  constructor(options: { defaultKms: string, cosmosPayerMnemonic: string, networkType?: NetworkType, rpcUrl?: string }) {
51
52
  super()
52
53
  this.defaultKms = options.defaultKms
53
- this.cosmosPayerWallet = DirectSecp256k1HdWallet.fromMnemonic(options.cosmosPayerMnemonic)
54
+ this.cosmosPayerWallet = DirectSecp256k1HdWallet.fromMnemonic(options.cosmosPayerMnemonic, { prefix: 'cheqd' })
54
55
  this.network = options.networkType ? options.networkType : NetworkType.Testnet
55
56
  this.rpcUrl = options.rpcUrl ? options.rpcUrl : (this.network === NetworkType.Testnet ? DefaultRPCUrl.Testnet : DefaultRPCUrl.Mainnet)
56
57
  }
@@ -67,11 +68,13 @@ export class CheqdDIDProvider extends AbstractIdentifierProvider {
67
68
 
68
69
  private async getCheqdSDK(fee?: DidStdFee): Promise<CheqdSDK> {
69
70
  if (!this.sdk) {
70
- const sdkOptions = {
71
- modules: [DIDModule] as unknown[] as AbstractCheqdSDKModule[],
71
+ const sdkOptions: ICheqdSDKOptions = {
72
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
73
+ // @ts-ignore - No actual type insufficiency here. Learn more about this in the docs.
74
+ modules: [DIDModule as unknown as AbstractCheqdSDKModule],
72
75
  rpcUrl: this.rpcUrl,
73
76
  wallet: await this.cosmosPayerWallet,
74
- } as ICheqdSDKOptions
77
+ }
75
78
 
76
79
  this.sdk = await createCheqdSDK(sdkOptions)
77
80
  this.fee = fee || {
@@ -106,7 +109,7 @@ export class CheqdDIDProvider extends AbstractIdentifierProvider {
106
109
  { sdk: sdk }
107
110
  )
108
111
 
109
- assert(tx.code === 0, 'cosmos_transaction: Failed to create DID')
112
+ assert(tx.code === 0, `cosmos_transaction: Failed to create DID. Reason: ${tx.rawLog}`)
110
113
 
111
114
  //* Currently, only one controller key is supported. This is subject to change in the near future.
112
115
 
@@ -122,8 +125,8 @@ export class CheqdDIDProvider extends AbstractIdentifierProvider {
122
125
  did: options.document.id!,
123
126
  controllerKeyId: controllerKey.kid,
124
127
  keys: [controllerKey, ..._keys],
125
- services: [],
126
- provider: 'cheqd',
128
+ services: options.document.service || [],
129
+ provider: `did:cheqd:${this.network}`,
127
130
  }
128
131
 
129
132
  debug('Created DID', identifier.did)
@@ -131,19 +134,49 @@ export class CheqdDIDProvider extends AbstractIdentifierProvider {
131
134
  return identifier
132
135
  }
133
136
 
137
+ // TODO: Add client side diff calculation using the resolver & SDK helper functions.
138
+ //* This will allow for better accuracy and predictability of `updateIdentifier` race conditions.
134
139
  async updateIdentifier(
135
140
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
136
- { did, document}: {
137
- did: string,
138
- document: Partial<DIDDocument>
139
- },
141
+ { did, document, options}: { did: string, document: Partial<DIDDocument>, options: { kms: string, keys: TImportableEd25519Key[] } },
140
142
  context: IContext,
141
- ): Promise<void> {
142
- console.log("document received: " + JSON.stringify(document, null, 2))
143
+ ): Promise<IIdentifier> {
144
+ const sdk = await this.getCheqdSDK()
145
+
146
+ const signInputs = options.keys.map(key => createSignInputsFromImportableEd25519Key(key, document.verificationMethod as unknown as VerificationMethod[] ?? []))
147
+
148
+ const tx = await sdk.updateDidTx(
149
+ signInputs,
150
+ document as Partial<IdentifierPayload>,
151
+ '',
152
+ this.fee || 'auto',
153
+ undefined,
154
+ { sdk: sdk }
155
+ )
156
+
157
+ assert(tx.code === 0, `cosmos_transaction: Failed to create DID. Reason: ${tx.rawLog}`)
158
+
159
+ //* Currently, only one controller key is supported. This is subject to change in the near future.
143
160
 
144
- // TODO: Handle did update
161
+ const controllerKey: ManagedKeyInfo = await context.agent.keyManagerImport({
162
+ ...options.keys[0],
163
+ kms: options.kms || this.defaultKms,
164
+ } as MinimalImportableKey)
165
+
166
+ const _keys = await Promise.all(options.keys.slice(1).map(async key => await context.agent.keyManagerImport({ ...key, kms: options.kms || this.defaultKms })))
167
+
168
+ const identifier: IIdentifier = {
169
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
170
+ did: document.id!,
171
+ controllerKeyId: controllerKey.kid,
172
+ keys: [controllerKey, ..._keys],
173
+ services: document.service as unknown as Service[] || [],
174
+ provider: `did:cheqd:${this.network}`,
175
+ }
145
176
 
146
177
  debug('Updated DID', did)
178
+
179
+ return identifier
147
180
  }
148
181
 
149
182
  async deleteIdentifier(
@@ -6,12 +6,16 @@ import {
6
6
  Resolvable,
7
7
  } from 'did-resolver'
8
8
 
9
+ interface Options {
10
+ url: string
11
+ }
12
+
9
13
  /**
10
14
  * Creates a CheqdDIDResolver instance that can be used with `did-resolver`.
11
15
  * @public
12
16
  */
13
- export function getResolver(resolverUrl?: string): Record<string, DIDResolver> {
14
- if (resolverUrl) return new CheqdDidResolver(resolverUrl).build()
17
+ export function getResolver(options?: Options): Record<string, DIDResolver> {
18
+ if (options?.url) return new CheqdDidResolver(options).build()
15
19
 
16
20
  return new CheqdDidResolver().build()
17
21
  }
@@ -21,11 +25,10 @@ export function getResolver(resolverUrl?: string): Record<string, DIDResolver> {
21
25
  * @public
22
26
  */
23
27
  export class CheqdDidResolver {
24
- private resolverUrl: undefined | string =
25
- 'https://resolver.cheqd.net/1.0/identifiers/'
28
+ private resolverUrl = 'https://resolver.cheqd.net/1.0/identifiers/'
26
29
 
27
- constructor(resolverUrl?: string) {
28
- if (resolverUrl) this.resolverUrl = resolverUrl
30
+ constructor(options?: Options) {
31
+ if (options?.url) this.resolverUrl = options.url
29
32
  }
30
33
 
31
34
  async resolve(