@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 +44 -22
- package/build/agent/ICheqd.d.ts +2 -3
- package/build/agent/ICheqd.d.ts.map +1 -1
- package/build/agent/ICheqd.js +13 -5
- package/build/agent/ICheqd.js.map +1 -1
- package/build/did-manager/cheqd-did-provider.d.ts +6 -2
- package/build/did-manager/cheqd-did-provider.d.ts.map +1 -1
- package/build/did-manager/cheqd-did-provider.js +28 -7
- package/build/did-manager/cheqd-did-provider.js.map +1 -1
- package/build/did-manager/cheqd-did-resolver.d.ts +6 -2
- package/build/did-manager/cheqd-did-resolver.d.ts.map +1 -1
- package/build/did-manager/cheqd-did-resolver.js +6 -6
- package/build/did-manager/cheqd-did-resolver.js.map +1 -1
- package/package.json +8 -8
- package/src/agent/ICheqd.ts +16 -7
- package/src/did-manager/cheqd-did-provider.ts +47 -14
- package/src/did-manager/cheqd-did-resolver.ts +9 -6
package/README.md
CHANGED
|
@@ -1,34 +1,56 @@
|
|
|
1
|
-
# Veramo plugin
|
|
1
|
+
# Veramo SDK plugin for cheqd DID method
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
your own implementations for key management and storage, or for DID storage.
|
|
3
|
+
[](https://github.com/cheqd/did-provider-cheqd/actions/workflows/dispatch.yml) [](https://www.npmjs.com/package/@cheqd/did-provider-cheqd)
|
|
5
4
|
|
|
6
|
-
|
|
5
|
+
[](https://github.com/cheqd/did-provider-cheqd/releases/latest) 
|
|
7
6
|
|
|
8
|
-
-
|
|
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
|
+
[](https://github.com/cheqd/did-provider-cheqd/releases/) 
|
|
14
8
|
|
|
15
|
-
|
|
9
|
+
[](https://github.com/cheqd/did-provider-cheqd/graphs/contributors) 
|
|
16
10
|
|
|
17
|
-
|
|
11
|
+
## ℹ️ Overview
|
|
18
12
|
|
|
19
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
###
|
|
19
|
+
### 🆔 `did:cheqd`-specific functionality
|
|
27
20
|
|
|
28
|
-
|
|
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
|
-
|
|
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
|
-
|
|
33
|
-
|
|
34
|
-
|
|
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
|
+
[](https://t.me/cheqd) [](http://cheqd.link/discord-github) [](https://twitter.com/intent/follow?screen\_name=cheqd\_io) [](http://cheqd.link/linkedin) [](http://cheqd.link/join-cheqd-slack) [](https://blog.cheqd.io) [](https://www.youtube.com/channel/UCBUGvvH6t3BAYo5u41hJPzw/)
|
package/build/agent/ICheqd.d.ts
CHANGED
|
@@ -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:
|
|
14
|
-
constructor(provider:
|
|
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;
|
|
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"}
|
package/build/agent/ICheqd.js
CHANGED
|
@@ -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 (
|
|
50
|
+
if (typeof args.keys !== 'object') {
|
|
51
51
|
throw new Error('[cheqd-plugin]: keys array is required');
|
|
52
52
|
}
|
|
53
|
-
return await
|
|
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
|
-
}
|
|
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
|
-
|
|
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
|
-
|
|
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,
|
|
1
|
+
{"version":3,"file":"ICheqd.js","sourceRoot":"","sources":["../../src/agent/ICheqd.ts"],"names":[],"mappings":"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"}
|
|
@@ -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
|
-
|
|
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":"
|
|
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,
|
|
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:
|
|
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
|
-
|
|
92
|
-
|
|
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":";;;;;;AAAA,oCAA4H;
|
|
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(
|
|
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(
|
|
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,
|
|
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(
|
|
9
|
-
if (
|
|
10
|
-
return new CheqdDidResolver(
|
|
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(
|
|
19
|
+
constructor(options) {
|
|
20
20
|
this.resolverUrl = 'https://resolver.cheqd.net/1.0/identifiers/';
|
|
21
|
-
if (
|
|
22
|
-
this.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":";;;
|
|
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
|
+
"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.
|
|
49
|
-
"@typescript-eslint/parser": "^5.
|
|
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.
|
|
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.
|
|
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.
|
|
75
|
-
"@veramo/did-manager": "^3.1.
|
|
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.
|
|
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"
|
package/src/agent/ICheqd.ts
CHANGED
|
@@ -47,9 +47,9 @@ export class Cheqd implements IAgentPlugin {
|
|
|
47
47
|
}
|
|
48
48
|
}
|
|
49
49
|
|
|
50
|
-
readonly didProvider:
|
|
50
|
+
readonly didProvider: string;
|
|
51
51
|
|
|
52
|
-
constructor(provider:
|
|
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 (
|
|
74
|
+
if (typeof args.keys !== 'object') {
|
|
75
75
|
throw new Error('[cheqd-plugin]: keys array is required')
|
|
76
76
|
}
|
|
77
77
|
|
|
78
|
-
return await
|
|
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
|
-
}
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
}
|
|
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,
|
|
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:
|
|
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<
|
|
142
|
-
|
|
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
|
-
|
|
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(
|
|
14
|
-
if (
|
|
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
|
|
25
|
-
'https://resolver.cheqd.net/1.0/identifiers/'
|
|
28
|
+
private resolverUrl = 'https://resolver.cheqd.net/1.0/identifiers/'
|
|
26
29
|
|
|
27
|
-
constructor(
|
|
28
|
-
if (
|
|
30
|
+
constructor(options?: Options) {
|
|
31
|
+
if (options?.url) this.resolverUrl = options.url
|
|
29
32
|
}
|
|
30
33
|
|
|
31
34
|
async resolve(
|