@cheqd/did-provider-cheqd 1.3.3 → 1.4.1
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 +32 -6
- 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 +26 -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 +35 -10
- package/src/did-manager/cheqd-did-provider.ts +42 -11
- 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;AAErB,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,CA0CnC;IACD,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;gBAEjB,QAAQ,EAAE,MAAM;YASd,gBAAgB;YA4BhB,gBAAgB;CA2BjC"}
|
package/build/agent/ICheqd.js
CHANGED
|
@@ -27,7 +27,24 @@ class Cheqd {
|
|
|
27
27
|
"type": "object"
|
|
28
28
|
}
|
|
29
29
|
},
|
|
30
|
-
"cheqdUpdateIdentifier": {
|
|
30
|
+
"cheqdUpdateIdentifier": {
|
|
31
|
+
"description": "Update an identifier",
|
|
32
|
+
"arguments": {
|
|
33
|
+
"type": "object",
|
|
34
|
+
"properties": {
|
|
35
|
+
"args": {
|
|
36
|
+
"type": "object",
|
|
37
|
+
"description": "A cheqdUpdateIdentifierArgs object as any for extensibility"
|
|
38
|
+
}
|
|
39
|
+
},
|
|
40
|
+
"required": [
|
|
41
|
+
"args"
|
|
42
|
+
]
|
|
43
|
+
},
|
|
44
|
+
"returnType": {
|
|
45
|
+
"type": "object"
|
|
46
|
+
}
|
|
47
|
+
}
|
|
31
48
|
}
|
|
32
49
|
}
|
|
33
50
|
};
|
|
@@ -47,17 +64,18 @@ class Cheqd {
|
|
|
47
64
|
if (typeof args.document !== 'object') {
|
|
48
65
|
throw new Error('[cheqd-plugin]: document object is required');
|
|
49
66
|
}
|
|
50
|
-
if (
|
|
67
|
+
if (typeof args.keys !== 'object') {
|
|
51
68
|
throw new Error('[cheqd-plugin]: keys array is required');
|
|
52
69
|
}
|
|
53
|
-
return await
|
|
70
|
+
return await context.agent.didManagerCreate({
|
|
54
71
|
kms: args.kms,
|
|
55
72
|
alias: args.alias,
|
|
73
|
+
provider: this.didProvider,
|
|
56
74
|
options: {
|
|
57
75
|
document: args.document,
|
|
58
76
|
keys: args.keys
|
|
59
77
|
}
|
|
60
|
-
}
|
|
78
|
+
});
|
|
61
79
|
}
|
|
62
80
|
async UpdateIdentifier(args, context) {
|
|
63
81
|
if (typeof args.kms !== 'string') {
|
|
@@ -69,10 +87,18 @@ class Cheqd {
|
|
|
69
87
|
if (typeof args.document !== 'object') {
|
|
70
88
|
throw new Error('[cheqd-plugin]: document object is required');
|
|
71
89
|
}
|
|
72
|
-
|
|
90
|
+
if (typeof args.keys !== 'object') {
|
|
91
|
+
throw new Error('[cheqd-plugin]: keys array is required');
|
|
92
|
+
}
|
|
93
|
+
return await context.agent.didManagerUpdate({
|
|
73
94
|
did: args.did,
|
|
74
95
|
document: args.document,
|
|
75
|
-
|
|
96
|
+
provider: this.didProvider,
|
|
97
|
+
options: {
|
|
98
|
+
kms: args.kms,
|
|
99
|
+
keys: args.keys
|
|
100
|
+
}
|
|
101
|
+
});
|
|
76
102
|
}
|
|
77
103
|
}
|
|
78
104
|
exports.Cheqd = Cheqd;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ICheqd.js","sourceRoot":"","sources":["../../src/agent/ICheqd.ts"],"names":[],"mappings":";;;
|
|
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
|
}
|
|
@@ -69,7 +69,7 @@ class CheqdDIDProvider extends did_manager_1.AbstractIdentifierProvider {
|
|
|
69
69
|
const sdk = await this.getCheqdSDK();
|
|
70
70
|
const signInputs = options.keys.map(key => { var _a; return (0, sdk_1.createSignInputsFromImportableEd25519Key)(key, (_a = options.document.verificationMethod) !== null && _a !== void 0 ? _a : []); });
|
|
71
71
|
const tx = await sdk.createDidTx(signInputs, options.document, '', this.fee || 'auto', undefined, { sdk: sdk });
|
|
72
|
-
(0, utils_1.assert)(tx.code === 0,
|
|
72
|
+
(0, utils_1.assert)(tx.code === 0, `cosmos_transaction: Failed to create DID. Reason: ${tx.rawLog}`);
|
|
73
73
|
//* Currently, only one controller key is supported. This is subject to change in the near future.
|
|
74
74
|
const controllerKey = await context.agent.keyManagerImport({
|
|
75
75
|
...options.keys[0],
|
|
@@ -81,18 +81,37 @@ class CheqdDIDProvider extends did_manager_1.AbstractIdentifierProvider {
|
|
|
81
81
|
did: options.document.id,
|
|
82
82
|
controllerKeyId: controllerKey.kid,
|
|
83
83
|
keys: [controllerKey, ..._keys],
|
|
84
|
-
services: [],
|
|
85
|
-
provider:
|
|
84
|
+
services: options.document.service || [],
|
|
85
|
+
provider: `did:cheqd:${this.network}`,
|
|
86
86
|
};
|
|
87
87
|
debug('Created DID', identifier.did);
|
|
88
88
|
return identifier;
|
|
89
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.
|
|
90
92
|
async updateIdentifier(
|
|
91
93
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
92
|
-
{ did, document }, context) {
|
|
93
|
-
|
|
94
|
-
|
|
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
|
+
};
|
|
95
113
|
debug('Updated DID', did);
|
|
114
|
+
return identifier;
|
|
96
115
|
}
|
|
97
116
|
async deleteIdentifier(identity, context) {
|
|
98
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.1",
|
|
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
|
@@ -6,7 +6,6 @@ import {
|
|
|
6
6
|
IAgentPluginSchema,
|
|
7
7
|
IIdentifier
|
|
8
8
|
} from '@veramo/core'
|
|
9
|
-
import { CheqdDIDProvider } from '../did-manager/cheqd-did-provider'
|
|
10
9
|
|
|
11
10
|
type IContext = IAgentContext<IKeyManager>
|
|
12
11
|
|
|
@@ -42,14 +41,30 @@ export class Cheqd implements IAgentPlugin {
|
|
|
42
41
|
"type": "object"
|
|
43
42
|
}
|
|
44
43
|
},
|
|
45
|
-
"cheqdUpdateIdentifier": {
|
|
44
|
+
"cheqdUpdateIdentifier": {
|
|
45
|
+
"description": "Update an identifier",
|
|
46
|
+
"arguments": {
|
|
47
|
+
"type": "object",
|
|
48
|
+
"properties": {
|
|
49
|
+
"args": {
|
|
50
|
+
"type": "object",
|
|
51
|
+
"description": "A cheqdUpdateIdentifierArgs object as any for extensibility"
|
|
52
|
+
}
|
|
53
|
+
},
|
|
54
|
+
"required": [
|
|
55
|
+
"args"
|
|
56
|
+
]
|
|
57
|
+
},
|
|
58
|
+
"returnType": {
|
|
59
|
+
"type": "object"
|
|
60
|
+
}
|
|
61
|
+
}
|
|
46
62
|
}
|
|
47
63
|
}
|
|
48
64
|
}
|
|
65
|
+
readonly didProvider: string;
|
|
49
66
|
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
constructor(provider: CheqdDIDProvider) {
|
|
67
|
+
constructor(provider: string) {
|
|
53
68
|
this.didProvider = provider
|
|
54
69
|
|
|
55
70
|
this.methods = {
|
|
@@ -71,18 +86,19 @@ export class Cheqd implements IAgentPlugin {
|
|
|
71
86
|
throw new Error('[cheqd-plugin]: document object is required')
|
|
72
87
|
}
|
|
73
88
|
|
|
74
|
-
if (
|
|
89
|
+
if (typeof args.keys !== 'object') {
|
|
75
90
|
throw new Error('[cheqd-plugin]: keys array is required')
|
|
76
91
|
}
|
|
77
92
|
|
|
78
|
-
return await
|
|
93
|
+
return await context.agent.didManagerCreate({
|
|
79
94
|
kms: args.kms,
|
|
80
95
|
alias: args.alias,
|
|
96
|
+
provider: this.didProvider,
|
|
81
97
|
options: {
|
|
82
98
|
document: args.document,
|
|
83
99
|
keys: args.keys
|
|
84
100
|
}
|
|
85
|
-
}
|
|
101
|
+
})
|
|
86
102
|
}
|
|
87
103
|
|
|
88
104
|
private async UpdateIdentifier(args: any, context: IContext) {
|
|
@@ -98,9 +114,18 @@ export class Cheqd implements IAgentPlugin {
|
|
|
98
114
|
throw new Error('[cheqd-plugin]: document object is required')
|
|
99
115
|
}
|
|
100
116
|
|
|
101
|
-
|
|
117
|
+
if (typeof args.keys !== 'object') {
|
|
118
|
+
throw new Error('[cheqd-plugin]: keys array is required')
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
return await context.agent.didManagerUpdate({
|
|
102
122
|
did: args.did,
|
|
103
123
|
document: args.document,
|
|
104
|
-
|
|
124
|
+
provider: this.didProvider,
|
|
125
|
+
options: {
|
|
126
|
+
kms: args.kms,
|
|
127
|
+
keys: args.keys
|
|
128
|
+
}
|
|
129
|
+
})
|
|
105
130
|
}
|
|
106
131
|
}
|
|
@@ -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
|
}
|
|
@@ -108,7 +109,7 @@ export class CheqdDIDProvider extends AbstractIdentifierProvider {
|
|
|
108
109
|
{ sdk: sdk }
|
|
109
110
|
)
|
|
110
111
|
|
|
111
|
-
assert(tx.code === 0,
|
|
112
|
+
assert(tx.code === 0, `cosmos_transaction: Failed to create DID. Reason: ${tx.rawLog}`)
|
|
112
113
|
|
|
113
114
|
//* Currently, only one controller key is supported. This is subject to change in the near future.
|
|
114
115
|
|
|
@@ -124,8 +125,8 @@ export class CheqdDIDProvider extends AbstractIdentifierProvider {
|
|
|
124
125
|
did: options.document.id!,
|
|
125
126
|
controllerKeyId: controllerKey.kid,
|
|
126
127
|
keys: [controllerKey, ..._keys],
|
|
127
|
-
services: [],
|
|
128
|
-
provider:
|
|
128
|
+
services: options.document.service || [],
|
|
129
|
+
provider: `did:cheqd:${this.network}`,
|
|
129
130
|
}
|
|
130
131
|
|
|
131
132
|
debug('Created DID', identifier.did)
|
|
@@ -133,19 +134,49 @@ export class CheqdDIDProvider extends AbstractIdentifierProvider {
|
|
|
133
134
|
return identifier
|
|
134
135
|
}
|
|
135
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.
|
|
136
139
|
async updateIdentifier(
|
|
137
140
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
138
|
-
{ did, document}: {
|
|
139
|
-
did: string,
|
|
140
|
-
document: Partial<DIDDocument>
|
|
141
|
-
},
|
|
141
|
+
{ did, document, options}: { did: string, document: Partial<DIDDocument>, options: { kms: string, keys: TImportableEd25519Key[] } },
|
|
142
142
|
context: IContext,
|
|
143
|
-
): Promise<
|
|
144
|
-
|
|
143
|
+
): Promise<IIdentifier> {
|
|
144
|
+
const sdk = await this.getCheqdSDK()
|
|
145
145
|
|
|
146
|
-
|
|
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.
|
|
160
|
+
|
|
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
|
+
}
|
|
147
176
|
|
|
148
177
|
debug('Updated DID', did)
|
|
178
|
+
|
|
179
|
+
return identifier
|
|
149
180
|
}
|
|
150
181
|
|
|
151
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(
|