@cheqd/did-provider-cheqd 3.0.5-develop.1 → 3.1.0-develop.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/build/cjs/agent/ICheqd.d.ts.map +1 -1
- package/build/cjs/agent/ICheqd.js +0 -12
- package/build/cjs/agent/ICheqd.js.map +1 -1
- package/build/cjs/did-manager/cheqd-did-provider.d.ts +8 -5
- package/build/cjs/did-manager/cheqd-did-provider.d.ts.map +1 -1
- package/build/cjs/did-manager/cheqd-did-provider.js +153 -59
- package/build/cjs/did-manager/cheqd-did-provider.js.map +1 -1
- package/build/esm/agent/ICheqd.d.ts.map +1 -1
- package/build/esm/agent/ICheqd.js +0 -12
- package/build/esm/agent/ICheqd.js.map +1 -1
- package/build/esm/did-manager/cheqd-did-provider.d.ts +8 -5
- package/build/esm/did-manager/cheqd-did-provider.d.ts.map +1 -1
- package/build/esm/did-manager/cheqd-did-provider.js +153 -59
- package/build/esm/did-manager/cheqd-did-provider.js.map +1 -1
- package/build/tsconfig.cjs.tsbuildinfo +1 -1
- package/build/tsconfig.esm.tsbuildinfo +1 -1
- package/build/tsconfig.types.tsbuildinfo +1 -1
- package/build/types/agent/ICheqd.d.ts.map +1 -1
- package/build/types/did-manager/cheqd-did-provider.d.ts +8 -5
- package/build/types/did-manager/cheqd-did-provider.d.ts.map +1 -1
- package/package.json +6 -5
- package/src/agent/ICheqd.ts +0 -16
- package/src/did-manager/cheqd-did-provider.ts +181 -75
|
@@ -48,7 +48,7 @@ export declare class CheqdDIDProvider extends AbstractIdentifierProvider {
|
|
|
48
48
|
alias?: string;
|
|
49
49
|
options: {
|
|
50
50
|
document: DIDDocument;
|
|
51
|
-
keys
|
|
51
|
+
keys?: TImportableEd25519Key[];
|
|
52
52
|
versionId?: string;
|
|
53
53
|
fee?: DidStdFee;
|
|
54
54
|
};
|
|
@@ -58,7 +58,7 @@ export declare class CheqdDIDProvider extends AbstractIdentifierProvider {
|
|
|
58
58
|
document: DIDDocument;
|
|
59
59
|
options: {
|
|
60
60
|
kms: string;
|
|
61
|
-
keys
|
|
61
|
+
keys?: TImportableEd25519Key[];
|
|
62
62
|
versionId?: string;
|
|
63
63
|
fee?: DidStdFee;
|
|
64
64
|
};
|
|
@@ -67,15 +67,16 @@ export declare class CheqdDIDProvider extends AbstractIdentifierProvider {
|
|
|
67
67
|
did: string;
|
|
68
68
|
document: DIDDocument;
|
|
69
69
|
options: {
|
|
70
|
-
keys
|
|
70
|
+
keys?: TImportableEd25519Key[];
|
|
71
71
|
fee?: DidStdFee;
|
|
72
|
+
versionId?: string;
|
|
72
73
|
};
|
|
73
74
|
}, context: IContext): Promise<boolean>;
|
|
74
75
|
createResource({ options }: {
|
|
75
76
|
options: {
|
|
76
77
|
payload: ResourcePayload;
|
|
77
|
-
signInputs
|
|
78
|
-
kms
|
|
78
|
+
signInputs?: ISignInputs[];
|
|
79
|
+
kms?: string;
|
|
79
80
|
fee?: DidStdFee;
|
|
80
81
|
};
|
|
81
82
|
}, context: IContext): Promise<boolean>;
|
|
@@ -100,6 +101,8 @@ export declare class CheqdDIDProvider extends AbstractIdentifierProvider {
|
|
|
100
101
|
id: string;
|
|
101
102
|
options?: any;
|
|
102
103
|
}, context: IContext): Promise<any>;
|
|
104
|
+
private signPayload;
|
|
105
|
+
private getKeysFromVerificationMethod;
|
|
103
106
|
}
|
|
104
107
|
export {};
|
|
105
108
|
//# sourceMappingURL=cheqd-did-provider.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cheqd-did-provider.d.ts","sourceRoot":"","sources":["../../../src/did-manager/cheqd-did-provider.ts"],"names":[],"mappings":"AAIA,OAAO,EASN,SAAS,EACT,WAAW,EAEX,MAAM,YAAY,CAAA;AACnB,OAAO,EAAE,wBAAwB,EAAE,MAAM,mCAAmC,CAAA;AAM5E,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAC1C,OAAO,EACN,WAAW,EACX,IAAI,EACJ,QAAQ,EACR,aAAa,EACb,WAAW,EAIX,MAAM,cAAc,CAAA;AACrB,OAAO,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"cheqd-did-provider.d.ts","sourceRoot":"","sources":["../../../src/did-manager/cheqd-did-provider.ts"],"names":[],"mappings":"AAIA,OAAO,EASN,SAAS,EACT,WAAW,EAEX,MAAM,YAAY,CAAA;AACnB,OAAO,EAAE,wBAAwB,EAAE,MAAM,mCAAmC,CAAA;AAM5E,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAC1C,OAAO,EACN,WAAW,EACX,IAAI,EACJ,QAAQ,EACR,aAAa,EACb,WAAW,EAIX,MAAM,cAAc,CAAA;AACrB,OAAO,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAA;AAGhE,OAAO,EACN,eAAe,IAAI,CAAC,EAEpB,MAAM,gBAAgB,CAAA;AAUvB,KAAK,QAAQ,GAAG,aAAa,CAAC,WAAW,CAAC,CAAA;AAE1C,oBAAY,aAAa;IACxB,OAAO,0BAA0B;IACjC,OAAO,8BAA8B;CACrC;AAED,oBAAY,WAAW;IACtB,OAAO,YAAY;IACnB,OAAO,YAAY;CACnB;AAED,MAAM,MAAM,cAAc,GAAG,IAAI,CAAC,wBAAwB,EAAE,MAAM,CAAC,GAAG;IAAE,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAAA;AAEvF,MAAM,MAAM,eAAe,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAAA;AAE/D,MAAM,MAAM,qBAAqB,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,cAAc,GAAG,eAAe,CAAC,CAAC,GAAG;IAAE,GAAG,EAAE,qBAAqB,CAAC,cAAc,CAAC,CAAC;IAAC,IAAI,EAAE,SAAS,CAAA;CAAE,CAAA;AAM5J,MAAM,MAAM,iBAAiB,GAAG,SAAS,GAAG,WAAW,CAAA;AAEvD,qBAAa,eAAgB,SAAQ,CAAC;IACrC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,SAAwB;CACxD;AA+BD;;;EAGE;AACF,qBAAa,gBAAiB,SAAQ,0BAA0B;IAC/D,OAAO,CAAC,UAAU,CAAQ;IAC1B,SAAgB,OAAO,EAAE,WAAW,CAAA;IACpC,OAAO,CAAC,MAAM,CAAQ;IACtB,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAA0D;IAC5F,OAAO,CAAC,GAAG,CAAC,CAAU;IACtB,OAAO,CAAC,GAAG,CAAC,CAAW;gBAEX,OAAO,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,eAAe,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,WAAW,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE;YAqBlG,WAAW;IAsBnB,gBAAgB,CACrB,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE;YAAE,QAAQ,EAAE,WAAW,CAAC;YAAC,IAAI,CAAC,EAAE,qBAAqB,EAAE,CAAC;YAAC,SAAS,CAAC,EAAE,MAAM,CAAC;YAAC,GAAG,CAAC,EAAE,SAAS,CAAA;SAAE,CAAA;KAAE,EAC3J,OAAO,EAAE,QAAQ,GACf,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;IA4DnC,gBAAgB,CACrB,EAAE,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAC,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,WAAW,CAAC;QAAC,OAAO,EAAE;YAAE,GAAG,EAAE,MAAM,CAAC;YAAC,IAAI,CAAC,EAAE,qBAAqB,EAAE,CAAC;YAAC,SAAS,CAAC,EAAE,MAAM,CAAC;YAAC,GAAG,CAAC,EAAE,SAAS,CAAA;SAAE,CAAA;KAAE,EAChK,OAAO,EAAE,QAAQ,GACf,OAAO,CAAC,WAAW,CAAC;IA8DjB,oBAAoB,CACzB,EAAE,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAC,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,WAAW,CAAC;QAAC,OAAO,EAAE;YAAE,IAAI,CAAC,EAAE,qBAAqB,EAAE,CAAC;YAAC,GAAG,CAAC,EAAE,SAAS,CAAC;YAAC,SAAS,CAAC,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,EACnJ,OAAO,EAAE,QAAQ,GACf,OAAO,CAAC,OAAO,CAAC;IA4Bb,cAAc,CACnB,EAAE,OAAO,EAAE,EAAE;QAAE,OAAO,EAAE;YAAE,OAAO,EAAE,eAAe,CAAC;YAAC,UAAU,CAAC,EAAE,WAAW,EAAE,CAAC;YAAC,GAAG,CAAC,EAAE,MAAM,CAAC;YAAC,GAAG,CAAC,EAAE,SAAS,CAAA;SAAE,CAAA;KAAE,EACjH,OAAO,EAAE,QAAQ,GACf,OAAO,CAAC,OAAO,CAAC;IAqEb,gBAAgB,CACrB,QAAQ,EAAE,WAAW,EACrB,OAAO,EAAE,QAAQ,GACf,OAAO,CAAC,OAAO,CAAC;IAOb,MAAM,CACX,EACC,UAAU,EACV,GAAG,EACH,OAAO,GACP,EAAE;QAAE,UAAU,EAAE,WAAW,CAAC;QAAC,GAAG,EAAE,IAAI,CAAC;QAAC,OAAO,CAAC,EAAE,GAAG,CAAA;KAAE,EACxD,OAAO,EAAE,QAAQ,GACf,OAAO,CAAC,GAAG,CAAC;IAIT,UAAU,CACf,EACC,UAAU,EACV,OAAO,EACP,OAAO,GACP,EAAE;QAAE,UAAU,EAAE,WAAW,CAAC;QAAC,OAAO,EAAE,QAAQ,CAAC;QAAC,OAAO,CAAC,EAAE,GAAG,CAAA;KAAE,EAChE,OAAO,EAAE,QAAQ,GACf,OAAO,CAAC,GAAG,CAAC;IAIT,SAAS,CACd,IAAI,EAAE;QACL,UAAU,EAAE,WAAW,CAAC;QACxB,GAAG,EAAE,MAAM,CAAC;QACZ,OAAO,CAAC,EAAE,GAAG,CAAA;KACb,EACD,OAAO,EAAE,QAAQ,GACf,OAAO,CAAC,GAAG,CAAC;IAIT,aAAa,CAClB,IAAI,EAAE;QACL,UAAU,EAAE,WAAW,CAAC;QACxB,EAAE,EAAE,MAAM,CAAC;QACX,OAAO,CAAC,EAAE,GAAG,CAAA;KACb,EACD,OAAO,EAAE,QAAQ,GACf,OAAO,CAAC,GAAG,CAAC;YAIE,WAAW;YAgBX,6BAA6B;CAU9C"}
|
|
@@ -3,12 +3,16 @@
|
|
|
3
3
|
// unused vars are kept by convention
|
|
4
4
|
// non-null assertion is used when we know better than the compiler that the value is not null or undefined
|
|
5
5
|
import { createCheqdSDK, createSignInputsFromImportableEd25519Key, DIDModule, ResourceModule } from '@cheqd/sdk';
|
|
6
|
+
import { MsgCreateResourcePayload } from '@cheqd/ts-proto/cheqd/resource/v2';
|
|
6
7
|
import { DirectSecp256k1HdWallet, DirectSecp256k1Wallet } from '@cosmjs/proto-signing';
|
|
7
8
|
import { assert } from '@cosmjs/utils';
|
|
8
9
|
import { AbstractIdentifierProvider } from '@veramo/did-manager';
|
|
10
|
+
import { base64ToBytes, extractPublicKeyHex } from '@veramo/utils';
|
|
9
11
|
import Debug from 'debug';
|
|
10
12
|
import { EnglishMnemonic as _, Ed25519 } from '@cosmjs/crypto';
|
|
11
13
|
import { fromString, toString } from 'uint8arrays';
|
|
14
|
+
import { MsgCreateDidDocPayload, MsgDeactivateDidDocPayload } from '@cheqd/ts-proto/cheqd/did/v2';
|
|
15
|
+
import { v4 } from 'uuid';
|
|
12
16
|
const debug = Debug('veramo:did-provider-cheqd');
|
|
13
17
|
export var DefaultRPCUrl;
|
|
14
18
|
(function (DefaultRPCUrl) {
|
|
@@ -23,6 +27,29 @@ export var NetworkType;
|
|
|
23
27
|
export class EnglishMnemonic extends _ {
|
|
24
28
|
static _mnemonicMatcher = /^[a-z]+( [a-z]+)*$/;
|
|
25
29
|
}
|
|
30
|
+
async function createMsgCreateDidDocPayloadToSign(didPayload, versionId) {
|
|
31
|
+
const { protobufVerificationMethod, protobufService } = await DIDModule.validateSpecCompliantPayload(didPayload);
|
|
32
|
+
return MsgCreateDidDocPayload.encode(MsgCreateDidDocPayload.fromPartial({
|
|
33
|
+
context: didPayload?.['@context'],
|
|
34
|
+
id: didPayload.id,
|
|
35
|
+
controller: didPayload.controller,
|
|
36
|
+
verificationMethod: protobufVerificationMethod,
|
|
37
|
+
authentication: didPayload.authentication,
|
|
38
|
+
assertionMethod: didPayload.assertionMethod,
|
|
39
|
+
capabilityInvocation: didPayload.capabilityInvocation,
|
|
40
|
+
capabilityDelegation: didPayload.capabilityDelegation,
|
|
41
|
+
keyAgreement: didPayload.keyAgreement,
|
|
42
|
+
service: protobufService,
|
|
43
|
+
alsoKnownAs: didPayload.alsoKnownAs,
|
|
44
|
+
versionId,
|
|
45
|
+
})).finish();
|
|
46
|
+
}
|
|
47
|
+
function createMsgDeactivateDidDocPayloadToSign(didPayload, versionId) {
|
|
48
|
+
return MsgDeactivateDidDocPayload.encode(MsgDeactivateDidDocPayload.fromPartial({
|
|
49
|
+
id: didPayload.id,
|
|
50
|
+
versionId,
|
|
51
|
+
})).finish();
|
|
52
|
+
}
|
|
26
53
|
/**
|
|
27
54
|
* {@link @veramo/did-manager#DIDManager} identifier provider for `did:cheqd` identifiers.
|
|
28
55
|
* @public
|
|
@@ -68,33 +95,46 @@ export class CheqdDIDProvider extends AbstractIdentifierProvider {
|
|
|
68
95
|
}
|
|
69
96
|
async createIdentifier({ kms, options }, context) {
|
|
70
97
|
const sdk = await this.getCheqdSDK(options?.fee);
|
|
71
|
-
const
|
|
72
|
-
|
|
98
|
+
const versionId = options.versionId || v4();
|
|
99
|
+
let signInputs;
|
|
100
|
+
if (options.keys) {
|
|
101
|
+
signInputs = options.keys.map(key => createSignInputsFromImportableEd25519Key(key, options.document.verificationMethod ?? []));
|
|
102
|
+
}
|
|
103
|
+
else {
|
|
104
|
+
const data = await createMsgCreateDidDocPayloadToSign(options.document, versionId);
|
|
105
|
+
signInputs = await this.signPayload(context, data, options.document.verificationMethod);
|
|
106
|
+
}
|
|
107
|
+
const tx = await sdk.createDidDocTx(signInputs, options.document, '', this?.fee, undefined, versionId, { sdk: sdk });
|
|
73
108
|
assert(tx.code === 0, `cosmos_transaction: Failed to create DID. Reason: ${tx.rawLog}`);
|
|
74
109
|
//* Currently, only one controller key is supported.
|
|
75
110
|
//* We assume that the first key in the list is the controller key.
|
|
76
111
|
//* This is subject to change in the near future.
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
112
|
+
let keys = [];
|
|
113
|
+
if (options.keys) {
|
|
114
|
+
for (const key of options.keys) {
|
|
115
|
+
let managedKey;
|
|
116
|
+
try {
|
|
117
|
+
managedKey = await context.agent.keyManagerImport({
|
|
118
|
+
...key,
|
|
119
|
+
kms: kms || this.defaultKms,
|
|
120
|
+
});
|
|
121
|
+
}
|
|
122
|
+
catch (e) {
|
|
123
|
+
debug(`Failed to import key ${key.kid}. Reason: ${e}`);
|
|
124
|
+
}
|
|
125
|
+
if (managedKey) {
|
|
126
|
+
keys.push(managedKey);
|
|
127
|
+
}
|
|
91
128
|
}
|
|
92
129
|
}
|
|
93
|
-
|
|
130
|
+
else {
|
|
131
|
+
keys = await this.getKeysFromVerificationMethod(context, options.document.verificationMethod);
|
|
132
|
+
}
|
|
133
|
+
const controllerKey = keys[0];
|
|
94
134
|
const identifier = {
|
|
95
135
|
did: options.document.id,
|
|
96
136
|
controllerKeyId: controllerKey.kid,
|
|
97
|
-
keys
|
|
137
|
+
keys,
|
|
98
138
|
services: options.document.service || [],
|
|
99
139
|
provider: 'cheqd',
|
|
100
140
|
};
|
|
@@ -103,33 +143,47 @@ export class CheqdDIDProvider extends AbstractIdentifierProvider {
|
|
|
103
143
|
}
|
|
104
144
|
async updateIdentifier({ did, document, options }, context) {
|
|
105
145
|
const sdk = await this.getCheqdSDK(options?.fee);
|
|
106
|
-
const
|
|
107
|
-
|
|
146
|
+
const versionId = options.versionId || v4();
|
|
147
|
+
let signInputs;
|
|
148
|
+
if (options.keys) {
|
|
149
|
+
signInputs = options.keys.map(key => createSignInputsFromImportableEd25519Key(key, document.verificationMethod ?? []));
|
|
150
|
+
}
|
|
151
|
+
else {
|
|
152
|
+
const data = await createMsgCreateDidDocPayloadToSign(document, versionId);
|
|
153
|
+
signInputs = await this.signPayload(context, data, document.verificationMethod);
|
|
154
|
+
}
|
|
155
|
+
const tx = await sdk.updateDidDocTx(signInputs, document, '', this?.fee, undefined, versionId, { sdk: sdk });
|
|
108
156
|
assert(tx.code === 0, `cosmos_transaction: Failed to update DID. Reason: ${tx.rawLog}`);
|
|
109
157
|
//* Currently, only one controller key is supported.
|
|
110
158
|
//* We assume that the first key in the list is the controller key.
|
|
111
159
|
//* This is subject to change in the near future.
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
managedKey
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
160
|
+
let keys = [];
|
|
161
|
+
if (options.keys) {
|
|
162
|
+
const keys = [];
|
|
163
|
+
for (const key of options.keys) {
|
|
164
|
+
let managedKey;
|
|
165
|
+
try {
|
|
166
|
+
managedKey = await context.agent.keyManagerImport({
|
|
167
|
+
...key,
|
|
168
|
+
kms: options.kms || this.defaultKms,
|
|
169
|
+
});
|
|
170
|
+
}
|
|
171
|
+
catch (e) {
|
|
172
|
+
debug(`Failed to import key ${key.kid}. Reason: ${e}`);
|
|
173
|
+
}
|
|
174
|
+
if (managedKey) {
|
|
175
|
+
keys.push(managedKey);
|
|
176
|
+
}
|
|
126
177
|
}
|
|
127
178
|
}
|
|
128
|
-
|
|
179
|
+
else {
|
|
180
|
+
keys = await this.getKeysFromVerificationMethod(context, document.verificationMethod);
|
|
181
|
+
}
|
|
182
|
+
const controllerKey = keys[0];
|
|
129
183
|
const identifier = {
|
|
130
184
|
did: document.id,
|
|
131
185
|
controllerKeyId: controllerKey.kid,
|
|
132
|
-
keys
|
|
186
|
+
keys,
|
|
133
187
|
services: document.service || [],
|
|
134
188
|
provider: 'cheqd',
|
|
135
189
|
};
|
|
@@ -138,15 +192,32 @@ export class CheqdDIDProvider extends AbstractIdentifierProvider {
|
|
|
138
192
|
}
|
|
139
193
|
async deactivateIdentifier({ did, document, options }, context) {
|
|
140
194
|
const sdk = await this.getCheqdSDK(options?.fee);
|
|
141
|
-
const
|
|
142
|
-
|
|
195
|
+
const versionId = options.versionId || v4();
|
|
196
|
+
let signInputs;
|
|
197
|
+
if (options.keys) {
|
|
198
|
+
signInputs = options.keys.map(key => createSignInputsFromImportableEd25519Key(key, document.verificationMethod ?? []));
|
|
199
|
+
}
|
|
200
|
+
else {
|
|
201
|
+
const data = createMsgDeactivateDidDocPayloadToSign(document, versionId);
|
|
202
|
+
signInputs = await this.signPayload(context, data, document.verificationMethod);
|
|
203
|
+
}
|
|
204
|
+
const tx = await sdk.deactivateDidDocTx(signInputs, document, '', this?.fee, undefined, versionId, { sdk: sdk });
|
|
143
205
|
assert(tx.code === 0, `cosmos_transaction: Failed to update DID. Reason: ${tx.rawLog}`);
|
|
144
206
|
debug('Deactivated DID', did);
|
|
145
207
|
return true;
|
|
146
208
|
}
|
|
147
209
|
async createResource({ options }, context) {
|
|
148
210
|
const sdk = await this.getCheqdSDK(options?.fee);
|
|
149
|
-
|
|
211
|
+
let signInputs;
|
|
212
|
+
if (!options.signInputs) {
|
|
213
|
+
const did = `did:cheqd:${this.network}:${options.payload.collectionId}`;
|
|
214
|
+
const { didDocument } = await sdk.queryDidDoc(did, { sdk: sdk });
|
|
215
|
+
signInputs = await this.signPayload(context, MsgCreateResourcePayload.encode(MsgCreateResourcePayload.fromPartial(options.payload)).finish(), didDocument?.verificationMethod);
|
|
216
|
+
}
|
|
217
|
+
else {
|
|
218
|
+
signInputs = options.signInputs;
|
|
219
|
+
}
|
|
220
|
+
const tx = await sdk.createLinkedResourceTx(signInputs, options.payload, '', this?.fee, undefined, { sdk: sdk });
|
|
150
221
|
assert(tx.code === 0, `cosmos_transaction: Failed to create Resource. Reason: ${tx.rawLog}`);
|
|
151
222
|
const mapKeyType = (keyType) => {
|
|
152
223
|
switch (keyType) {
|
|
@@ -155,26 +226,28 @@ export class CheqdDIDProvider extends AbstractIdentifierProvider {
|
|
|
155
226
|
default: return undefined;
|
|
156
227
|
}
|
|
157
228
|
};
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
229
|
+
if (options.signInputs) {
|
|
230
|
+
const signInput = options.signInputs.filter(input => mapKeyType(input.keyType) !== undefined);
|
|
231
|
+
const keys = [];
|
|
232
|
+
for (const input of signInput) {
|
|
233
|
+
let managedKey;
|
|
234
|
+
try {
|
|
235
|
+
// get public key from private key in hex
|
|
236
|
+
const publicKey = toString((await Ed25519.makeKeypair(fromString(input.privateKeyHex, 'hex'))).pubkey, 'hex');
|
|
237
|
+
managedKey = await context.agent.keyManagerImport({
|
|
238
|
+
kid: publicKey,
|
|
239
|
+
publicKeyHex: publicKey,
|
|
240
|
+
privateKeyHex: input.privateKeyHex,
|
|
241
|
+
type: mapKeyType(input.keyType),
|
|
242
|
+
kms: options.kms || this.defaultKms,
|
|
243
|
+
});
|
|
244
|
+
}
|
|
245
|
+
catch (e) {
|
|
246
|
+
debug(`Failed to import key ${input.verificationMethodId}. Reason: ${e}`);
|
|
247
|
+
}
|
|
248
|
+
if (managedKey) {
|
|
249
|
+
keys.push(managedKey);
|
|
250
|
+
}
|
|
178
251
|
}
|
|
179
252
|
}
|
|
180
253
|
debug('Created Resource', options.payload);
|
|
@@ -198,5 +271,26 @@ export class CheqdDIDProvider extends AbstractIdentifierProvider {
|
|
|
198
271
|
async removeService(args, context) {
|
|
199
272
|
throw Error('CheqdDIDProvider removeService is not supported.');
|
|
200
273
|
}
|
|
274
|
+
async signPayload(context, data, verificationMethod = []) {
|
|
275
|
+
return Promise.all(verificationMethod.map(async (method) => {
|
|
276
|
+
const keyRef = extractPublicKeyHex(method);
|
|
277
|
+
return {
|
|
278
|
+
verificationMethodId: method.id,
|
|
279
|
+
signature: base64ToBytes(await context.agent.keyManagerSign({
|
|
280
|
+
keyRef,
|
|
281
|
+
data: toString(data, 'hex'),
|
|
282
|
+
encoding: 'hex'
|
|
283
|
+
}))
|
|
284
|
+
};
|
|
285
|
+
}));
|
|
286
|
+
}
|
|
287
|
+
async getKeysFromVerificationMethod(context, verificationMethod = []) {
|
|
288
|
+
return Promise.all(verificationMethod.map(async (method) => {
|
|
289
|
+
const kid = extractPublicKeyHex(method);
|
|
290
|
+
return await context.agent.keyManagerGet({ kid });
|
|
291
|
+
})).catch((error) => {
|
|
292
|
+
throw new Error(`Failed to sign payload: ${error}`);
|
|
293
|
+
});
|
|
294
|
+
}
|
|
201
295
|
}
|
|
202
296
|
//# sourceMappingURL=cheqd-did-provider.js.map
|
|
@@ -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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"}
|