@cheqd/sdk 2.0.2-develop.1 → 2.1.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/.github/workflows/test.yml +2 -2
- package/CHANGELOG.md +14 -0
- package/README.md +1 -1
- package/build/index.d.ts +7 -3
- package/build/index.d.ts.map +1 -1
- package/build/index.js +19 -7
- package/build/index.js.map +1 -1
- package/build/modules/_.d.ts +7 -11
- package/build/modules/_.d.ts.map +1 -1
- package/build/modules/_.js +15 -17
- package/build/modules/_.js.map +1 -1
- package/build/modules/did.d.ts +39 -15
- package/build/modules/did.d.ts.map +1 -1
- package/build/modules/did.js +187 -54
- package/build/modules/did.js.map +1 -1
- package/build/modules/resource.d.ts +23 -7
- package/build/modules/resource.d.ts.map +1 -1
- package/build/modules/resource.js +61 -18
- package/build/modules/resource.js.map +1 -1
- package/build/querier.d.ts +11 -0
- package/build/querier.d.ts.map +1 -0
- package/build/querier.js +31 -0
- package/build/querier.js.map +1 -0
- package/build/signer.d.ts +3 -5
- package/build/signer.d.ts.map +1 -1
- package/build/signer.js +13 -13
- package/build/signer.js.map +1 -1
- package/build/types.d.ts +12 -0
- package/build/types.d.ts.map +1 -1
- package/build/types.js.map +1 -1
- package/build/utils.js +13 -15
- package/build/utils.js.map +1 -1
- package/package.json +2 -2
- package/src/index.ts +22 -10
- package/src/modules/_.ts +13 -21
- package/src/modules/did.ts +207 -51
- package/src/modules/resource.ts +74 -12
- package/src/querier.ts +33 -0
- package/src/signer.ts +3 -6
- package/src/types.ts +17 -1
- package/src/utils.ts +1 -1
- package/tests/index.test.ts +43 -3
- package/tests/modules/did.test.ts +483 -50
- package/tests/modules/resource.test.ts +576 -30
- package/tests/signer.test.ts +2 -2
- package/tests/testutils.test.ts +8 -2
- package/tsconfig.json +1 -1
|
@@ -6,7 +6,10 @@ import { createDefaultCheqdRegistry } from "../../src/registry"
|
|
|
6
6
|
import { CheqdSigningStargateClient } from "../../src/signer"
|
|
7
7
|
import { DIDDocument, ISignInputs, MethodSpecificIdAlgo, VerificationMethods } from "../../src/types"
|
|
8
8
|
import { createDidPayload, createDidVerificationMethod, createKeyPairBase64, createVerificationKeys } from "../../src/utils"
|
|
9
|
-
import { localnet, faucet } from "../testutils.test"
|
|
9
|
+
import { localnet, faucet, containsAll } from "../testutils.test"
|
|
10
|
+
import { CheqdQuerier } from '../../src/querier';
|
|
11
|
+
import { setupDidExtension, DidExtension } from '../../src/modules/did';
|
|
12
|
+
import { v4 } from "uuid"
|
|
10
13
|
|
|
11
14
|
const defaultAsyncTxTimeout = 30000
|
|
12
15
|
|
|
@@ -15,17 +18,19 @@ describe('DIDModule', () => {
|
|
|
15
18
|
it('should instantiate standalone module', async () => {
|
|
16
19
|
const wallet = await DirectSecp256k1HdWallet.fromMnemonic(faucet.mnemonic)
|
|
17
20
|
const signer = await CheqdSigningStargateClient.connectWithSigner(localnet.rpcUrl, wallet)
|
|
18
|
-
const
|
|
21
|
+
const querier = await CheqdQuerier.connectWithExtension(localnet.rpcUrl, setupDidExtension) as CheqdQuerier & DidExtension
|
|
22
|
+
const didModule = new DIDModule(signer, querier)
|
|
19
23
|
expect(didModule).toBeInstanceOf(DIDModule)
|
|
20
24
|
})
|
|
21
25
|
})
|
|
22
26
|
|
|
23
|
-
describe('
|
|
27
|
+
describe('createDidDocTx', () => {
|
|
24
28
|
it('should create a new multibase DID - case: Ed25519VerificationKey2020', async () => {
|
|
25
29
|
const wallet = await DirectSecp256k1HdWallet.fromMnemonic(faucet.mnemonic, {prefix: faucet.prefix})
|
|
26
30
|
const registry = createDefaultCheqdRegistry(DIDModule.registryTypes)
|
|
27
31
|
const signer = await CheqdSigningStargateClient.connectWithSigner(localnet.rpcUrl, wallet, { registry })
|
|
28
|
-
const
|
|
32
|
+
const querier = await CheqdQuerier.connectWithExtension(localnet.rpcUrl, setupDidExtension) as CheqdQuerier & DidExtension
|
|
33
|
+
const didModule = new DIDModule(signer, querier)
|
|
29
34
|
const keyPair = createKeyPairBase64()
|
|
30
35
|
const verificationKeys = createVerificationKeys(keyPair.publicKey, MethodSpecificIdAlgo.Base58, 'key-1')
|
|
31
36
|
const verificationMethods = createDidVerificationMethod([VerificationMethods.Ed255192020], [verificationKeys])
|
|
@@ -40,7 +45,7 @@ describe('DIDModule', () => {
|
|
|
40
45
|
|
|
41
46
|
const feePayer = (await wallet.getAccounts())[0].address
|
|
42
47
|
const fee = await DIDModule.generateCreateDidDocFees(feePayer)
|
|
43
|
-
const didTx: DeliverTxResponse = await didModule.
|
|
48
|
+
const didTx: DeliverTxResponse = await didModule.createDidDocTx(
|
|
44
49
|
signInputs,
|
|
45
50
|
didPayload,
|
|
46
51
|
feePayer,
|
|
@@ -57,7 +62,8 @@ describe('DIDModule', () => {
|
|
|
57
62
|
const wallet = await DirectSecp256k1HdWallet.fromMnemonic(faucet.mnemonic, {prefix: faucet.prefix})
|
|
58
63
|
const registry = createDefaultCheqdRegistry(DIDModule.registryTypes)
|
|
59
64
|
const signer = await CheqdSigningStargateClient.connectWithSigner(localnet.rpcUrl, wallet, { registry })
|
|
60
|
-
const
|
|
65
|
+
const querier = await CheqdQuerier.connectWithExtension(localnet.rpcUrl, setupDidExtension) as CheqdQuerier & DidExtension
|
|
66
|
+
const didModule = new DIDModule(signer, querier)
|
|
61
67
|
const keyPair = createKeyPairBase64()
|
|
62
68
|
const verificationKeys = createVerificationKeys(keyPair.publicKey, MethodSpecificIdAlgo.Base58, 'key-1')
|
|
63
69
|
const verificationMethods = createDidVerificationMethod([VerificationMethods.Ed255192018], [verificationKeys])
|
|
@@ -71,7 +77,7 @@ describe('DIDModule', () => {
|
|
|
71
77
|
]
|
|
72
78
|
const feePayer = (await wallet.getAccounts())[0].address
|
|
73
79
|
const fee = await DIDModule.generateCreateDidDocFees(feePayer)
|
|
74
|
-
const didTx: DeliverTxResponse = await didModule.
|
|
80
|
+
const didTx: DeliverTxResponse = await didModule.createDidDocTx(
|
|
75
81
|
signInputs,
|
|
76
82
|
didPayload,
|
|
77
83
|
feePayer,
|
|
@@ -88,7 +94,8 @@ describe('DIDModule', () => {
|
|
|
88
94
|
const wallet = await DirectSecp256k1HdWallet.fromMnemonic(faucet.mnemonic, {prefix: faucet.prefix})
|
|
89
95
|
const registry = createDefaultCheqdRegistry(DIDModule.registryTypes)
|
|
90
96
|
const signer = await CheqdSigningStargateClient.connectWithSigner(localnet.rpcUrl, wallet, { registry })
|
|
91
|
-
const
|
|
97
|
+
const querier = await CheqdQuerier.connectWithExtension(localnet.rpcUrl, setupDidExtension) as CheqdQuerier & DidExtension
|
|
98
|
+
const didModule = new DIDModule(signer, querier)
|
|
92
99
|
const keyPair = createKeyPairBase64()
|
|
93
100
|
const verificationKeys = createVerificationKeys(keyPair.publicKey, MethodSpecificIdAlgo.Base58, 'key-1')
|
|
94
101
|
const verificationMethods = createDidVerificationMethod([VerificationMethods.JWK], [verificationKeys])
|
|
@@ -102,7 +109,7 @@ describe('DIDModule', () => {
|
|
|
102
109
|
]
|
|
103
110
|
const feePayer = (await wallet.getAccounts())[0].address
|
|
104
111
|
const fee = await DIDModule.generateCreateDidDocFees(feePayer)
|
|
105
|
-
const didTx: DeliverTxResponse = await didModule.
|
|
112
|
+
const didTx: DeliverTxResponse = await didModule.createDidDocTx(
|
|
106
113
|
signInputs,
|
|
107
114
|
didPayload,
|
|
108
115
|
feePayer,
|
|
@@ -119,7 +126,8 @@ describe('DIDModule', () => {
|
|
|
119
126
|
const wallet = await DirectSecp256k1HdWallet.fromMnemonic(faucet.mnemonic, {prefix: faucet.prefix})
|
|
120
127
|
const registry = createDefaultCheqdRegistry(DIDModule.registryTypes)
|
|
121
128
|
const signer = await CheqdSigningStargateClient.connectWithSigner(localnet.rpcUrl, wallet, { registry })
|
|
122
|
-
const
|
|
129
|
+
const querier = await CheqdQuerier.connectWithExtension(localnet.rpcUrl, setupDidExtension) as CheqdQuerier & DidExtension
|
|
130
|
+
const didModule = new DIDModule(signer, querier)
|
|
123
131
|
const keyPair = createKeyPairBase64()
|
|
124
132
|
const verificationKeys = createVerificationKeys(keyPair.publicKey, MethodSpecificIdAlgo.Uuid, 'key-1')
|
|
125
133
|
const verificationMethods = createDidVerificationMethod([VerificationMethods.Ed255192020], [verificationKeys])
|
|
@@ -132,7 +140,7 @@ describe('DIDModule', () => {
|
|
|
132
140
|
]
|
|
133
141
|
const feePayer = (await wallet.getAccounts())[0].address
|
|
134
142
|
const fee = await DIDModule.generateCreateDidDocFees(feePayer)
|
|
135
|
-
const didTx: DeliverTxResponse = await didModule.
|
|
143
|
+
const didTx: DeliverTxResponse = await didModule.createDidDocTx(
|
|
136
144
|
signInputs,
|
|
137
145
|
didPayload,
|
|
138
146
|
feePayer,
|
|
@@ -149,7 +157,8 @@ describe('DIDModule', () => {
|
|
|
149
157
|
const wallet = await DirectSecp256k1HdWallet.fromMnemonic(faucet.mnemonic, {prefix: faucet.prefix})
|
|
150
158
|
const registry = createDefaultCheqdRegistry(DIDModule.registryTypes)
|
|
151
159
|
const signer = await CheqdSigningStargateClient.connectWithSigner(localnet.rpcUrl, wallet, { registry })
|
|
152
|
-
const
|
|
160
|
+
const querier = await CheqdQuerier.connectWithExtension(localnet.rpcUrl, setupDidExtension) as CheqdQuerier & DidExtension
|
|
161
|
+
const didModule = new DIDModule(signer, querier)
|
|
153
162
|
const keyPair = createKeyPairBase64()
|
|
154
163
|
const verificationKeys = createVerificationKeys(keyPair.publicKey, MethodSpecificIdAlgo.Uuid, 'key-1')
|
|
155
164
|
const verificationMethods = createDidVerificationMethod([VerificationMethods.Ed255192018], [verificationKeys])
|
|
@@ -162,7 +171,7 @@ describe('DIDModule', () => {
|
|
|
162
171
|
]
|
|
163
172
|
const feePayer = (await wallet.getAccounts())[0].address
|
|
164
173
|
const fee = await DIDModule.generateCreateDidDocFees(feePayer)
|
|
165
|
-
const didTx: DeliverTxResponse = await didModule.
|
|
174
|
+
const didTx: DeliverTxResponse = await didModule.createDidDocTx(
|
|
166
175
|
signInputs,
|
|
167
176
|
didPayload,
|
|
168
177
|
feePayer,
|
|
@@ -179,7 +188,8 @@ describe('DIDModule', () => {
|
|
|
179
188
|
const wallet = await DirectSecp256k1HdWallet.fromMnemonic(faucet.mnemonic, {prefix: faucet.prefix})
|
|
180
189
|
const registry = createDefaultCheqdRegistry(DIDModule.registryTypes)
|
|
181
190
|
const signer = await CheqdSigningStargateClient.connectWithSigner(localnet.rpcUrl, wallet, { registry })
|
|
182
|
-
const
|
|
191
|
+
const querier = await CheqdQuerier.connectWithExtension(localnet.rpcUrl, setupDidExtension) as CheqdQuerier & DidExtension
|
|
192
|
+
const didModule = new DIDModule(signer, querier)
|
|
183
193
|
const keyPair = createKeyPairBase64()
|
|
184
194
|
const verificationKeys = createVerificationKeys(keyPair.publicKey, MethodSpecificIdAlgo.Uuid, 'key-1')
|
|
185
195
|
const verificationMethods = createDidVerificationMethod([VerificationMethods.JWK], [verificationKeys])
|
|
@@ -192,7 +202,7 @@ describe('DIDModule', () => {
|
|
|
192
202
|
]
|
|
193
203
|
const feePayer = (await wallet.getAccounts())[0].address
|
|
194
204
|
const fee = await DIDModule.generateCreateDidDocFees(feePayer)
|
|
195
|
-
const didTx: DeliverTxResponse = await didModule.
|
|
205
|
+
const didTx: DeliverTxResponse = await didModule.createDidDocTx(
|
|
196
206
|
signInputs,
|
|
197
207
|
didPayload,
|
|
198
208
|
feePayer,
|
|
@@ -206,12 +216,13 @@ describe('DIDModule', () => {
|
|
|
206
216
|
}, defaultAsyncTxTimeout)
|
|
207
217
|
})
|
|
208
218
|
|
|
209
|
-
describe('
|
|
219
|
+
describe('updateDidDocTx', () => {
|
|
210
220
|
it('should update a DID - case: Ed25519VerificationKey2020', async () => {
|
|
211
221
|
const wallet = await DirectSecp256k1HdWallet.fromMnemonic(faucet.mnemonic, {prefix: faucet.prefix})
|
|
212
222
|
const registry = createDefaultCheqdRegistry(DIDModule.registryTypes)
|
|
213
223
|
const signer = await CheqdSigningStargateClient.connectWithSigner(localnet.rpcUrl, wallet, { registry })
|
|
214
|
-
const
|
|
224
|
+
const querier = await CheqdQuerier.connectWithExtension(localnet.rpcUrl, setupDidExtension) as CheqdQuerier & DidExtension
|
|
225
|
+
const didModule = new DIDModule(signer, querier)
|
|
215
226
|
|
|
216
227
|
const keyPair = createKeyPairBase64()
|
|
217
228
|
const verificationKeys = createVerificationKeys(keyPair.publicKey, MethodSpecificIdAlgo.Base58, 'key-1')
|
|
@@ -225,7 +236,7 @@ describe('DIDModule', () => {
|
|
|
225
236
|
]
|
|
226
237
|
const feePayer = (await wallet.getAccounts())[0].address
|
|
227
238
|
const fee = await DIDModule.generateCreateDidDocFees(feePayer)
|
|
228
|
-
const didTx: DeliverTxResponse = await didModule.
|
|
239
|
+
const didTx: DeliverTxResponse = await didModule.createDidDocTx(
|
|
229
240
|
signInputs,
|
|
230
241
|
didPayload,
|
|
231
242
|
feePayer,
|
|
@@ -245,11 +256,10 @@ describe('DIDModule', () => {
|
|
|
245
256
|
verificationMethod: didPayload.verificationMethod,
|
|
246
257
|
authentication: didPayload.authentication,
|
|
247
258
|
assertionMethod: [didPayload.verificationMethod![0].id], // <-- This is the only difference
|
|
248
|
-
versionId: didTx.transactionHash
|
|
249
259
|
} as DIDDocument
|
|
250
260
|
|
|
251
261
|
const feeUpdate = await DIDModule.generateUpdateDidDocFees(feePayer)
|
|
252
|
-
const
|
|
262
|
+
const updateDidDocTx: DeliverTxResponse = await didModule.updateDidDocTx(
|
|
253
263
|
signInputs,
|
|
254
264
|
updateDidPayload,
|
|
255
265
|
feePayer,
|
|
@@ -257,16 +267,17 @@ describe('DIDModule', () => {
|
|
|
257
267
|
)
|
|
258
268
|
|
|
259
269
|
console.warn(`Using payload: ${JSON.stringify(updateDidPayload)}`)
|
|
260
|
-
console.warn(`DID Tx: ${JSON.stringify(
|
|
270
|
+
console.warn(`DID Tx: ${JSON.stringify(updateDidDocTx)}`)
|
|
261
271
|
|
|
262
|
-
expect(
|
|
272
|
+
expect(updateDidDocTx.code).toBe(0)
|
|
263
273
|
}, defaultAsyncTxTimeout)
|
|
264
274
|
|
|
265
275
|
it('should update a DID - case: Ed25519VerificationKey2018', async () => {
|
|
266
276
|
const wallet = await DirectSecp256k1HdWallet.fromMnemonic(faucet.mnemonic, {prefix: faucet.prefix})
|
|
267
277
|
const registry = createDefaultCheqdRegistry(DIDModule.registryTypes)
|
|
268
278
|
const signer = await CheqdSigningStargateClient.connectWithSigner(localnet.rpcUrl, wallet, { registry })
|
|
269
|
-
const
|
|
279
|
+
const querier = await CheqdQuerier.connectWithExtension(localnet.rpcUrl, setupDidExtension) as CheqdQuerier & DidExtension
|
|
280
|
+
const didModule = new DIDModule(signer, querier)
|
|
270
281
|
|
|
271
282
|
const keyPair = createKeyPairBase64()
|
|
272
283
|
const verificationKeys = createVerificationKeys(keyPair.publicKey, MethodSpecificIdAlgo.Base58, 'key-1')
|
|
@@ -280,7 +291,7 @@ describe('DIDModule', () => {
|
|
|
280
291
|
]
|
|
281
292
|
const feePayer = (await wallet.getAccounts())[0].address
|
|
282
293
|
const fee = await DIDModule.generateCreateDidDocFees(feePayer)
|
|
283
|
-
const didTx: DeliverTxResponse = await didModule.
|
|
294
|
+
const didTx: DeliverTxResponse = await didModule.createDidDocTx(
|
|
284
295
|
signInputs,
|
|
285
296
|
didPayload,
|
|
286
297
|
feePayer,
|
|
@@ -300,12 +311,11 @@ describe('DIDModule', () => {
|
|
|
300
311
|
verificationMethod: didPayload.verificationMethod,
|
|
301
312
|
authentication: didPayload.authentication,
|
|
302
313
|
assertionMethod: [didPayload.verificationMethod![0].id], // <-- This is the only difference
|
|
303
|
-
versionId: didTx.transactionHash
|
|
304
314
|
} as DIDDocument
|
|
305
315
|
|
|
306
316
|
const feeUpdate = await DIDModule.generateUpdateDidDocFees(feePayer)
|
|
307
317
|
|
|
308
|
-
const
|
|
318
|
+
const updateDidDocTx: DeliverTxResponse = await didModule.updateDidDocTx(
|
|
309
319
|
signInputs,
|
|
310
320
|
updateDidPayload,
|
|
311
321
|
feePayer,
|
|
@@ -313,16 +323,17 @@ describe('DIDModule', () => {
|
|
|
313
323
|
)
|
|
314
324
|
|
|
315
325
|
console.warn(`Using payload: ${JSON.stringify(updateDidPayload)}`)
|
|
316
|
-
console.warn(`DID Tx: ${JSON.stringify(
|
|
326
|
+
console.warn(`DID Tx: ${JSON.stringify(updateDidDocTx)}`)
|
|
317
327
|
|
|
318
|
-
expect(
|
|
328
|
+
expect(updateDidDocTx.code).toBe(0)
|
|
319
329
|
}, defaultAsyncTxTimeout)
|
|
320
330
|
|
|
321
331
|
it('should update a DID - case: JsonWebKey2020', async () => {
|
|
322
332
|
const wallet = await DirectSecp256k1HdWallet.fromMnemonic(faucet.mnemonic, {prefix: faucet.prefix})
|
|
323
333
|
const registry = createDefaultCheqdRegistry(DIDModule.registryTypes)
|
|
324
334
|
const signer = await CheqdSigningStargateClient.connectWithSigner(localnet.rpcUrl, wallet, { registry })
|
|
325
|
-
const
|
|
335
|
+
const querier = await CheqdQuerier.connectWithExtension(localnet.rpcUrl, setupDidExtension) as CheqdQuerier & DidExtension
|
|
336
|
+
const didModule = new DIDModule(signer, querier)
|
|
326
337
|
|
|
327
338
|
const keyPair = createKeyPairBase64()
|
|
328
339
|
const verificationKeys = createVerificationKeys(keyPair.publicKey, MethodSpecificIdAlgo.Base58, 'key-1')
|
|
@@ -336,7 +347,7 @@ describe('DIDModule', () => {
|
|
|
336
347
|
]
|
|
337
348
|
const feePayer = (await wallet.getAccounts())[0].address
|
|
338
349
|
const fee = await DIDModule.generateCreateDidDocFees(feePayer)
|
|
339
|
-
const didTx: DeliverTxResponse = await didModule.
|
|
350
|
+
const didTx: DeliverTxResponse = await didModule.createDidDocTx(
|
|
340
351
|
signInputs,
|
|
341
352
|
didPayload,
|
|
342
353
|
feePayer,
|
|
@@ -356,12 +367,11 @@ describe('DIDModule', () => {
|
|
|
356
367
|
verificationMethod: didPayload.verificationMethod,
|
|
357
368
|
authentication: didPayload.authentication,
|
|
358
369
|
assertionMethod: [didPayload.verificationMethod![0].id], // <-- This is the only difference
|
|
359
|
-
versionId: didTx.transactionHash
|
|
360
370
|
} as DIDDocument
|
|
361
371
|
|
|
362
372
|
const feeUpdate = await DIDModule.generateUpdateDidDocFees(feePayer)
|
|
363
373
|
|
|
364
|
-
const
|
|
374
|
+
const updateDidDocTx: DeliverTxResponse = await didModule.updateDidDocTx(
|
|
365
375
|
signInputs,
|
|
366
376
|
updateDidPayload,
|
|
367
377
|
feePayer,
|
|
@@ -369,18 +379,19 @@ describe('DIDModule', () => {
|
|
|
369
379
|
)
|
|
370
380
|
|
|
371
381
|
console.warn(`Using payload: ${JSON.stringify(updateDidPayload)}`)
|
|
372
|
-
console.warn(`DID Tx: ${JSON.stringify(
|
|
382
|
+
console.warn(`DID Tx: ${JSON.stringify(updateDidDocTx)}`)
|
|
373
383
|
|
|
374
|
-
expect(
|
|
384
|
+
expect(updateDidDocTx.code).toBe(0)
|
|
375
385
|
}, defaultAsyncTxTimeout)
|
|
376
386
|
})
|
|
377
387
|
|
|
378
|
-
describe('
|
|
388
|
+
describe('deactivateDidDocTx', () => {
|
|
379
389
|
it('should deactivate a DID - case: Ed25519VerificationKey2020', async () => {
|
|
380
390
|
const wallet = await DirectSecp256k1HdWallet.fromMnemonic(faucet.mnemonic, {prefix: faucet.prefix})
|
|
381
391
|
const registry = createDefaultCheqdRegistry(DIDModule.registryTypes)
|
|
382
392
|
const signer = await CheqdSigningStargateClient.connectWithSigner(localnet.rpcUrl, wallet, { registry })
|
|
383
|
-
const
|
|
393
|
+
const querier = await CheqdQuerier.connectWithExtension(localnet.rpcUrl, setupDidExtension) as CheqdQuerier & DidExtension
|
|
394
|
+
const didModule = new DIDModule(signer, querier)
|
|
384
395
|
|
|
385
396
|
const keyPair = createKeyPairBase64()
|
|
386
397
|
const verificationKeys = createVerificationKeys(keyPair.publicKey, MethodSpecificIdAlgo.Base58, 'key-1')
|
|
@@ -394,7 +405,7 @@ describe('DIDModule', () => {
|
|
|
394
405
|
]
|
|
395
406
|
const feePayer = (await wallet.getAccounts())[0].address
|
|
396
407
|
const fee = await DIDModule.generateCreateDidDocFees(feePayer)
|
|
397
|
-
const didTx: DeliverTxResponse = await didModule.
|
|
408
|
+
const didTx: DeliverTxResponse = await didModule.createDidDocTx(
|
|
398
409
|
signInputs,
|
|
399
410
|
didPayload,
|
|
400
411
|
feePayer,
|
|
@@ -414,7 +425,7 @@ describe('DIDModule', () => {
|
|
|
414
425
|
|
|
415
426
|
const feeDeactivate = await DIDModule.generateDeactivateDidDocFees(feePayer)
|
|
416
427
|
|
|
417
|
-
const
|
|
428
|
+
const deactivateDidDocTx: DeliverTxResponse = await didModule.deactivateDidDocTx(
|
|
418
429
|
signInputs,
|
|
419
430
|
deactivateDidPayload,
|
|
420
431
|
feePayer,
|
|
@@ -422,16 +433,17 @@ describe('DIDModule', () => {
|
|
|
422
433
|
)
|
|
423
434
|
|
|
424
435
|
console.warn(`Using payload: ${JSON.stringify(deactivateDidPayload)}`)
|
|
425
|
-
console.warn(`DID Tx: ${JSON.stringify(
|
|
436
|
+
console.warn(`DID Tx: ${JSON.stringify(deactivateDidDocTx)}`)
|
|
426
437
|
|
|
427
|
-
expect(
|
|
438
|
+
expect(deactivateDidDocTx.code).toBe(0)
|
|
428
439
|
}, defaultAsyncTxTimeout)
|
|
429
440
|
|
|
430
441
|
it('should deactivate a DID - case: Ed25519VerificationKey2018', async () => {
|
|
431
442
|
const wallet = await DirectSecp256k1HdWallet.fromMnemonic(faucet.mnemonic, {prefix: faucet.prefix})
|
|
432
443
|
const registry = createDefaultCheqdRegistry(DIDModule.registryTypes)
|
|
433
444
|
const signer = await CheqdSigningStargateClient.connectWithSigner(localnet.rpcUrl, wallet, { registry })
|
|
434
|
-
const
|
|
445
|
+
const querier = await CheqdQuerier.connectWithExtension(localnet.rpcUrl, setupDidExtension) as CheqdQuerier & DidExtension
|
|
446
|
+
const didModule = new DIDModule(signer, querier)
|
|
435
447
|
|
|
436
448
|
const keyPair = createKeyPairBase64()
|
|
437
449
|
const verificationKeys = createVerificationKeys(keyPair.publicKey, MethodSpecificIdAlgo.Base58, 'key-1')
|
|
@@ -445,7 +457,7 @@ describe('DIDModule', () => {
|
|
|
445
457
|
]
|
|
446
458
|
const feePayer = (await wallet.getAccounts())[0].address
|
|
447
459
|
const fee = await DIDModule.generateCreateDidDocFees(feePayer)
|
|
448
|
-
const didTx: DeliverTxResponse = await didModule.
|
|
460
|
+
const didTx: DeliverTxResponse = await didModule.createDidDocTx(
|
|
449
461
|
signInputs,
|
|
450
462
|
didPayload,
|
|
451
463
|
feePayer,
|
|
@@ -465,7 +477,7 @@ describe('DIDModule', () => {
|
|
|
465
477
|
|
|
466
478
|
const feeDeactivate = await DIDModule.generateDeactivateDidDocFees(feePayer)
|
|
467
479
|
|
|
468
|
-
const
|
|
480
|
+
const deactivateDidDocTx: DeliverTxResponse = await didModule.deactivateDidDocTx(
|
|
469
481
|
signInputs,
|
|
470
482
|
deactivateDidPayload,
|
|
471
483
|
feePayer,
|
|
@@ -473,16 +485,17 @@ describe('DIDModule', () => {
|
|
|
473
485
|
)
|
|
474
486
|
|
|
475
487
|
console.warn(`Using payload: ${JSON.stringify(deactivateDidPayload)}`)
|
|
476
|
-
console.warn(`DID Tx: ${JSON.stringify(
|
|
488
|
+
console.warn(`DID Tx: ${JSON.stringify(deactivateDidDocTx)}`)
|
|
477
489
|
|
|
478
|
-
expect(
|
|
490
|
+
expect(deactivateDidDocTx.code).toBe(0)
|
|
479
491
|
}, defaultAsyncTxTimeout)
|
|
480
492
|
|
|
481
493
|
it('should deactivate a DID - case: JsonWebKey2020', async () => {
|
|
482
494
|
const wallet = await DirectSecp256k1HdWallet.fromMnemonic(faucet.mnemonic, {prefix: faucet.prefix})
|
|
483
495
|
const registry = createDefaultCheqdRegistry(DIDModule.registryTypes)
|
|
484
496
|
const signer = await CheqdSigningStargateClient.connectWithSigner(localnet.rpcUrl, wallet, { registry })
|
|
485
|
-
const
|
|
497
|
+
const querier = await CheqdQuerier.connectWithExtension(localnet.rpcUrl, setupDidExtension) as CheqdQuerier & DidExtension
|
|
498
|
+
const didModule = new DIDModule(signer, querier)
|
|
486
499
|
|
|
487
500
|
const keyPair = createKeyPairBase64()
|
|
488
501
|
const verificationKeys = createVerificationKeys(keyPair.publicKey, MethodSpecificIdAlgo.Base58, 'key-1')
|
|
@@ -496,7 +509,7 @@ describe('DIDModule', () => {
|
|
|
496
509
|
]
|
|
497
510
|
const feePayer = (await wallet.getAccounts())[0].address
|
|
498
511
|
const fee = await DIDModule.generateCreateDidDocFees(feePayer)
|
|
499
|
-
const didTx: DeliverTxResponse = await didModule.
|
|
512
|
+
const didTx: DeliverTxResponse = await didModule.createDidDocTx(
|
|
500
513
|
signInputs,
|
|
501
514
|
didPayload,
|
|
502
515
|
feePayer,
|
|
@@ -516,7 +529,7 @@ describe('DIDModule', () => {
|
|
|
516
529
|
|
|
517
530
|
const feeDeactivate = await DIDModule.generateDeactivateDidDocFees(feePayer)
|
|
518
531
|
|
|
519
|
-
const
|
|
532
|
+
const deactivateDidDocTx: DeliverTxResponse = await didModule.deactivateDidDocTx(
|
|
520
533
|
signInputs,
|
|
521
534
|
deactivateDidPayload,
|
|
522
535
|
feePayer,
|
|
@@ -524,9 +537,429 @@ describe('DIDModule', () => {
|
|
|
524
537
|
)
|
|
525
538
|
|
|
526
539
|
console.warn(`Using payload: ${JSON.stringify(deactivateDidPayload)}`)
|
|
527
|
-
console.warn(`DID Tx: ${JSON.stringify(
|
|
540
|
+
console.warn(`DID Tx: ${JSON.stringify(deactivateDidDocTx)}`)
|
|
528
541
|
|
|
529
|
-
expect(
|
|
542
|
+
expect(deactivateDidDocTx.code).toBe(0)
|
|
543
|
+
}, defaultAsyncTxTimeout)
|
|
544
|
+
})
|
|
545
|
+
|
|
546
|
+
describe('queryDidDoc', () => {
|
|
547
|
+
it('should query a DID document - case: Ed25519VerificationKey2020', async () => {
|
|
548
|
+
const wallet = await DirectSecp256k1HdWallet.fromMnemonic(faucet.mnemonic, {prefix: faucet.prefix})
|
|
549
|
+
const registry = createDefaultCheqdRegistry(DIDModule.registryTypes)
|
|
550
|
+
const signer = await CheqdSigningStargateClient.connectWithSigner(localnet.rpcUrl, wallet, { registry })
|
|
551
|
+
const querier = await CheqdQuerier.connectWithExtension(localnet.rpcUrl, setupDidExtension) as CheqdQuerier & DidExtension
|
|
552
|
+
const didModule = new DIDModule(signer, querier)
|
|
553
|
+
|
|
554
|
+
const keyPair = createKeyPairBase64()
|
|
555
|
+
const verificationKeys = createVerificationKeys(keyPair.publicKey, MethodSpecificIdAlgo.Base58, 'key-1')
|
|
556
|
+
const verificationMethods = createDidVerificationMethod([VerificationMethods.Ed255192020], [verificationKeys])
|
|
557
|
+
const didPayload = createDidPayload(verificationMethods, [verificationKeys])
|
|
558
|
+
const signInputs: ISignInputs[] = [
|
|
559
|
+
{
|
|
560
|
+
verificationMethodId: didPayload.verificationMethod![0].id,
|
|
561
|
+
privateKeyHex: toString(fromString(keyPair.privateKey, 'base64'), 'hex')
|
|
562
|
+
}
|
|
563
|
+
]
|
|
564
|
+
const feePayer = (await wallet.getAccounts())[0].address
|
|
565
|
+
const fee = await DIDModule.generateCreateDidDocFees(feePayer)
|
|
566
|
+
const didTx: DeliverTxResponse = await didModule.createDidDocTx(
|
|
567
|
+
signInputs,
|
|
568
|
+
didPayload,
|
|
569
|
+
feePayer,
|
|
570
|
+
fee
|
|
571
|
+
)
|
|
572
|
+
|
|
573
|
+
console.warn(`Using payload: ${JSON.stringify(didPayload)}`)
|
|
574
|
+
console.warn(`DID Tx: ${JSON.stringify(didTx)}`)
|
|
575
|
+
|
|
576
|
+
expect(didTx.code).toBe(0)
|
|
577
|
+
|
|
578
|
+
const didDoc = await didModule.queryDidDoc(didPayload.id)
|
|
579
|
+
|
|
580
|
+
expect(didDoc.didDocument!.id).toEqual(didPayload.id)
|
|
581
|
+
expect(didDoc.didDocument!.controller).toEqual(didPayload.controller)
|
|
582
|
+
expect(didDoc.didDocument!.verificationMethod).toEqual(didPayload.verificationMethod)
|
|
583
|
+
|
|
584
|
+
// we keep 1-1 relationship of omitempty fields in proto and spec compliant json
|
|
585
|
+
// while converting from proto to spec compliant json, we remove omitempty fields
|
|
586
|
+
// as in a resolved did document
|
|
587
|
+
expect(didDoc.didDocument?.authentication).toEqual(didPayload?.authentication)
|
|
588
|
+
expect(didDoc.didDocument?.assertionMethod).toEqual(didPayload?.assertionMethod)
|
|
589
|
+
expect(didDoc.didDocument?.capabilityInvocation).toEqual(didPayload?.capabilityInvocation)
|
|
590
|
+
expect(didDoc.didDocument?.capabilityDelegation).toEqual(didPayload?.capabilityDelegation)
|
|
591
|
+
expect(didDoc.didDocument?.keyAgreement).toEqual(didPayload?.keyAgreement)
|
|
592
|
+
expect(didDoc.didDocument?.service).toEqual(didPayload?.service)
|
|
593
|
+
expect(didDoc.didDocument?.alsoKnownAs).toEqual(didPayload?.alsoKnownAs)
|
|
594
|
+
}, defaultAsyncTxTimeout)
|
|
595
|
+
|
|
596
|
+
it('should query a DID document - case: Ed25519VerificationKey2018', async () => {
|
|
597
|
+
const wallet = await DirectSecp256k1HdWallet.fromMnemonic(faucet.mnemonic, {prefix: faucet.prefix})
|
|
598
|
+
const registry = createDefaultCheqdRegistry(DIDModule.registryTypes)
|
|
599
|
+
const signer = await CheqdSigningStargateClient.connectWithSigner(localnet.rpcUrl, wallet, { registry })
|
|
600
|
+
const querier = await CheqdQuerier.connectWithExtension(localnet.rpcUrl, setupDidExtension) as CheqdQuerier & DidExtension
|
|
601
|
+
const didModule = new DIDModule(signer, querier)
|
|
602
|
+
|
|
603
|
+
const keyPair = createKeyPairBase64()
|
|
604
|
+
const verificationKeys = createVerificationKeys(keyPair.publicKey, MethodSpecificIdAlgo.Base58, 'key-1')
|
|
605
|
+
const verificationMethods = createDidVerificationMethod([VerificationMethods.Ed255192018], [verificationKeys])
|
|
606
|
+
const didPayload = createDidPayload(verificationMethods, [verificationKeys])
|
|
607
|
+
const signInputs: ISignInputs[] = [
|
|
608
|
+
{
|
|
609
|
+
verificationMethodId: didPayload.verificationMethod![0].id,
|
|
610
|
+
privateKeyHex: toString(fromString(keyPair.privateKey, 'base64'), 'hex')
|
|
611
|
+
}
|
|
612
|
+
]
|
|
613
|
+
const feePayer = (await wallet.getAccounts())[0].address
|
|
614
|
+
const fee = await DIDModule.generateCreateDidDocFees(feePayer)
|
|
615
|
+
const didTx: DeliverTxResponse = await didModule.createDidDocTx(
|
|
616
|
+
signInputs,
|
|
617
|
+
didPayload,
|
|
618
|
+
feePayer,
|
|
619
|
+
fee
|
|
620
|
+
)
|
|
621
|
+
|
|
622
|
+
console.warn(`Using payload: ${JSON.stringify(didPayload)}`)
|
|
623
|
+
console.warn(`DID Tx: ${JSON.stringify(didTx)}`)
|
|
624
|
+
|
|
625
|
+
expect(didTx.code).toBe(0)
|
|
626
|
+
|
|
627
|
+
const didDoc = await didModule.queryDidDoc(didPayload.id)
|
|
628
|
+
|
|
629
|
+
expect(didDoc.didDocument!.id).toEqual(didPayload.id)
|
|
630
|
+
expect(didDoc.didDocument!.controller).toEqual(didPayload.controller)
|
|
631
|
+
expect(didDoc.didDocument!.verificationMethod).toEqual(didPayload.verificationMethod)
|
|
632
|
+
|
|
633
|
+
// we keep 1-1 relationship of omitempty fields in proto and spec compliant json
|
|
634
|
+
// while converting from proto to spec compliant json, we remove omitempty fields
|
|
635
|
+
// as in a resolved did document
|
|
636
|
+
expect(didDoc.didDocument?.authentication).toEqual(didPayload?.authentication)
|
|
637
|
+
expect(didDoc.didDocument?.assertionMethod).toEqual(didPayload?.assertionMethod)
|
|
638
|
+
expect(didDoc.didDocument?.capabilityInvocation).toEqual(didPayload?.capabilityInvocation)
|
|
639
|
+
expect(didDoc.didDocument?.capabilityDelegation).toEqual(didPayload?.capabilityDelegation)
|
|
640
|
+
expect(didDoc.didDocument?.keyAgreement).toEqual(didPayload?.keyAgreement)
|
|
641
|
+
expect(didDoc.didDocument?.service).toEqual(didPayload?.service)
|
|
642
|
+
expect(didDoc.didDocument?.alsoKnownAs).toEqual(didPayload?.alsoKnownAs)
|
|
643
|
+
}, defaultAsyncTxTimeout)
|
|
644
|
+
|
|
645
|
+
it('should query a DID document - case: JsonWebKey2020', async () => {
|
|
646
|
+
const wallet = await DirectSecp256k1HdWallet.fromMnemonic(faucet.mnemonic, {prefix: faucet.prefix})
|
|
647
|
+
const registry = createDefaultCheqdRegistry(DIDModule.registryTypes)
|
|
648
|
+
const signer = await CheqdSigningStargateClient.connectWithSigner(localnet.rpcUrl, wallet, { registry })
|
|
649
|
+
const querier = await CheqdQuerier.connectWithExtension(localnet.rpcUrl, setupDidExtension) as CheqdQuerier & DidExtension
|
|
650
|
+
const didModule = new DIDModule(signer, querier)
|
|
651
|
+
|
|
652
|
+
const keyPair = createKeyPairBase64()
|
|
653
|
+
const verificationKeys = createVerificationKeys(keyPair.publicKey, MethodSpecificIdAlgo.Base58, 'key-1')
|
|
654
|
+
const verificationMethods = createDidVerificationMethod([VerificationMethods.JWK], [verificationKeys])
|
|
655
|
+
const didPayload = createDidPayload(verificationMethods, [verificationKeys])
|
|
656
|
+
const signInputs: ISignInputs[] = [
|
|
657
|
+
{
|
|
658
|
+
verificationMethodId: didPayload.verificationMethod![0].id,
|
|
659
|
+
privateKeyHex: toString(fromString(keyPair.privateKey, 'base64'), 'hex')
|
|
660
|
+
}
|
|
661
|
+
]
|
|
662
|
+
const feePayer = (await wallet.getAccounts())[0].address
|
|
663
|
+
const fee = await DIDModule.generateCreateDidDocFees(feePayer)
|
|
664
|
+
const didTx: DeliverTxResponse = await didModule.createDidDocTx(
|
|
665
|
+
signInputs,
|
|
666
|
+
didPayload,
|
|
667
|
+
feePayer,
|
|
668
|
+
fee
|
|
669
|
+
)
|
|
670
|
+
|
|
671
|
+
console.warn(`Using payload: ${JSON.stringify(didPayload)}`)
|
|
672
|
+
console.warn(`DID Tx: ${JSON.stringify(didTx)}`)
|
|
673
|
+
|
|
674
|
+
expect(didTx.code).toBe(0)
|
|
675
|
+
|
|
676
|
+
const didDoc = await didModule.queryDidDoc(didPayload.id)
|
|
677
|
+
|
|
678
|
+
expect(didDoc.didDocument!.id).toEqual(didPayload.id)
|
|
679
|
+
expect(didDoc.didDocument!.controller).toEqual(didPayload.controller)
|
|
680
|
+
expect(didDoc.didDocument!.verificationMethod).toEqual(didPayload.verificationMethod)
|
|
681
|
+
|
|
682
|
+
// we keep 1-1 relationship of omitempty fields in proto and spec compliant json
|
|
683
|
+
// while converting from proto to spec compliant json, we remove omitempty fields
|
|
684
|
+
// as in a resolved did document
|
|
685
|
+
expect(didDoc.didDocument?.authentication).toEqual(didPayload?.authentication)
|
|
686
|
+
expect(didDoc.didDocument?.assertionMethod).toEqual(didPayload?.assertionMethod)
|
|
687
|
+
expect(didDoc.didDocument?.capabilityInvocation).toEqual(didPayload?.capabilityInvocation)
|
|
688
|
+
expect(didDoc.didDocument?.capabilityDelegation).toEqual(didPayload?.capabilityDelegation)
|
|
689
|
+
expect(didDoc.didDocument?.keyAgreement).toEqual(didPayload?.keyAgreement)
|
|
690
|
+
expect(didDoc.didDocument?.service).toEqual(didPayload?.service)
|
|
691
|
+
expect(didDoc.didDocument?.alsoKnownAs).toEqual(didPayload?.alsoKnownAs)
|
|
692
|
+
}, defaultAsyncTxTimeout)
|
|
693
|
+
})
|
|
694
|
+
|
|
695
|
+
describe('queryDidDocVersion', () => {
|
|
696
|
+
it('should query a DID document version - case: Ed25519VerificationKey2020', async () => {
|
|
697
|
+
const wallet = await DirectSecp256k1HdWallet.fromMnemonic(faucet.mnemonic, {prefix: faucet.prefix})
|
|
698
|
+
const registry = createDefaultCheqdRegistry(DIDModule.registryTypes)
|
|
699
|
+
const signer = await CheqdSigningStargateClient.connectWithSigner(localnet.rpcUrl, wallet, { registry })
|
|
700
|
+
const querier = await CheqdQuerier.connectWithExtension(localnet.rpcUrl, setupDidExtension) as CheqdQuerier & DidExtension
|
|
701
|
+
const didModule = new DIDModule(signer, querier)
|
|
702
|
+
|
|
703
|
+
const keyPair = createKeyPairBase64()
|
|
704
|
+
const verificationKeys = createVerificationKeys(keyPair.publicKey, MethodSpecificIdAlgo.Base58, 'key-1')
|
|
705
|
+
const verificationMethods = createDidVerificationMethod([VerificationMethods.Ed255192020], [verificationKeys])
|
|
706
|
+
const didPayload = createDidPayload(verificationMethods, [verificationKeys])
|
|
707
|
+
const signInputs: ISignInputs[] = [
|
|
708
|
+
{
|
|
709
|
+
verificationMethodId: didPayload.verificationMethod![0].id,
|
|
710
|
+
privateKeyHex: toString(fromString(keyPair.privateKey, 'base64'), 'hex')
|
|
711
|
+
}
|
|
712
|
+
]
|
|
713
|
+
const feePayer = (await wallet.getAccounts())[0].address
|
|
714
|
+
const fee = await DIDModule.generateCreateDidDocFees(feePayer)
|
|
715
|
+
const versionId = v4()
|
|
716
|
+
const didTx: DeliverTxResponse = await didModule.createDidDocTx(
|
|
717
|
+
signInputs,
|
|
718
|
+
didPayload,
|
|
719
|
+
feePayer,
|
|
720
|
+
fee,
|
|
721
|
+
undefined,
|
|
722
|
+
versionId
|
|
723
|
+
)
|
|
724
|
+
|
|
725
|
+
console.warn(`Using payload: ${JSON.stringify(didPayload)}`)
|
|
726
|
+
console.warn(`DID Tx: ${JSON.stringify(didTx)}`)
|
|
727
|
+
|
|
728
|
+
expect(didTx.code).toBe(0)
|
|
729
|
+
|
|
730
|
+
const didDocVersion = await didModule.queryDidDocVersion(didPayload.id, versionId)
|
|
731
|
+
|
|
732
|
+
expect(didDocVersion.didDocument!.id).toEqual(didPayload.id)
|
|
733
|
+
expect(didDocVersion.didDocument!.controller).toEqual(didPayload.controller)
|
|
734
|
+
expect(didDocVersion.didDocument!.verificationMethod).toEqual(didPayload.verificationMethod)
|
|
735
|
+
|
|
736
|
+
// we keep 1-1 relationship of omitempty fields in proto and spec compliant json
|
|
737
|
+
// while converting from proto to spec compliant json, we remove omitempty fields
|
|
738
|
+
// as in a resolved did document
|
|
739
|
+
expect(didDocVersion.didDocument?.authentication).toEqual(didPayload?.authentication)
|
|
740
|
+
expect(didDocVersion.didDocument?.assertionMethod).toEqual(didPayload?.assertionMethod)
|
|
741
|
+
expect(didDocVersion.didDocument?.capabilityInvocation).toEqual(didPayload?.capabilityInvocation)
|
|
742
|
+
expect(didDocVersion.didDocument?.capabilityDelegation).toEqual(didPayload?.capabilityDelegation)
|
|
743
|
+
expect(didDocVersion.didDocument?.keyAgreement).toEqual(didPayload?.keyAgreement)
|
|
744
|
+
expect(didDocVersion.didDocument?.service).toEqual(didPayload?.service)
|
|
745
|
+
expect(didDocVersion.didDocument?.alsoKnownAs).toEqual(didPayload?.alsoKnownAs)
|
|
746
|
+
|
|
747
|
+
expect(didDocVersion.didDocumentMetadata.versionId).toEqual(versionId)
|
|
748
|
+
}, defaultAsyncTxTimeout)
|
|
749
|
+
})
|
|
750
|
+
|
|
751
|
+
describe('queryAllDidDocVersionsMetadata', () => {
|
|
752
|
+
it('should query all DID document versions metadata - case: Ed25519VerificationKey2020', async () => {
|
|
753
|
+
const wallet = await DirectSecp256k1HdWallet.fromMnemonic(faucet.mnemonic, {prefix: faucet.prefix})
|
|
754
|
+
const registry = createDefaultCheqdRegistry(DIDModule.registryTypes)
|
|
755
|
+
const signer = await CheqdSigningStargateClient.connectWithSigner(localnet.rpcUrl, wallet, { registry })
|
|
756
|
+
const querier = await CheqdQuerier.connectWithExtension(localnet.rpcUrl, setupDidExtension) as CheqdQuerier & DidExtension
|
|
757
|
+
const didModule = new DIDModule(signer, querier)
|
|
758
|
+
|
|
759
|
+
const keyPair = createKeyPairBase64()
|
|
760
|
+
const verificationKeys = createVerificationKeys(keyPair.publicKey, MethodSpecificIdAlgo.Base58, 'key-1')
|
|
761
|
+
const verificationMethods = createDidVerificationMethod([VerificationMethods.Ed255192020], [verificationKeys])
|
|
762
|
+
const didPayload = createDidPayload(verificationMethods, [verificationKeys])
|
|
763
|
+
const signInputs: ISignInputs[] = [
|
|
764
|
+
{
|
|
765
|
+
verificationMethodId: didPayload.verificationMethod![0].id,
|
|
766
|
+
privateKeyHex: toString(fromString(keyPair.privateKey, 'base64'), 'hex')
|
|
767
|
+
}
|
|
768
|
+
]
|
|
769
|
+
const feePayer = (await wallet.getAccounts())[0].address
|
|
770
|
+
const fee = await DIDModule.generateCreateDidDocFees(feePayer)
|
|
771
|
+
const versionId = v4()
|
|
772
|
+
const didTx: DeliverTxResponse = await didModule.createDidDocTx(
|
|
773
|
+
signInputs,
|
|
774
|
+
didPayload,
|
|
775
|
+
feePayer,
|
|
776
|
+
fee,
|
|
777
|
+
undefined,
|
|
778
|
+
versionId
|
|
779
|
+
)
|
|
780
|
+
|
|
781
|
+
console.warn(`Using payload: ${JSON.stringify(didPayload)}`)
|
|
782
|
+
console.warn(`DID Tx: ${JSON.stringify(didTx)}`)
|
|
783
|
+
|
|
784
|
+
expect(didTx.code).toBe(0)
|
|
785
|
+
|
|
786
|
+
// update the did document
|
|
787
|
+
const updateVersionId = v4()
|
|
788
|
+
const updateDidPayload = {
|
|
789
|
+
'@context': didPayload?.['@context'],
|
|
790
|
+
id: didPayload.id,
|
|
791
|
+
controller: didPayload.controller,
|
|
792
|
+
verificationMethod: didPayload.verificationMethod,
|
|
793
|
+
authentication: didPayload.authentication,
|
|
794
|
+
assertionMethod: [didPayload.verificationMethod![0].id], // <-- This is the only difference
|
|
795
|
+
} as DIDDocument
|
|
796
|
+
|
|
797
|
+
const feeUpdate = await DIDModule.generateUpdateDidDocFees(feePayer)
|
|
798
|
+
const updateDidDocTx: DeliverTxResponse = await didModule.updateDidDocTx(
|
|
799
|
+
signInputs,
|
|
800
|
+
updateDidPayload,
|
|
801
|
+
feePayer,
|
|
802
|
+
feeUpdate,
|
|
803
|
+
undefined,
|
|
804
|
+
updateVersionId
|
|
805
|
+
)
|
|
806
|
+
|
|
807
|
+
console.warn(`Using payload: ${JSON.stringify(updateDidPayload)}`)
|
|
808
|
+
console.warn(`DID Tx: ${JSON.stringify(updateDidDocTx)}`)
|
|
809
|
+
|
|
810
|
+
expect(updateDidDocTx.code).toBe(0)
|
|
811
|
+
|
|
812
|
+
const didDocVersionsMetadata = await didModule.queryAllDidDocVersionsMetadata(didPayload.id)
|
|
813
|
+
|
|
814
|
+
expect(didDocVersionsMetadata.didDocumentVersionsMetadata).toHaveLength(2)
|
|
815
|
+
expect(containsAll([didDocVersionsMetadata.didDocumentVersionsMetadata[0].versionId, didDocVersionsMetadata.didDocumentVersionsMetadata[1].versionId], [versionId, updateVersionId])).toBe(true)
|
|
816
|
+
expect(didDocVersionsMetadata.didDocumentVersionsMetadata[1].created).toBeDefined()
|
|
817
|
+
expect(didDocVersionsMetadata.didDocumentVersionsMetadata[0].created).toBeDefined()
|
|
818
|
+
expect(containsAll([didDocVersionsMetadata.didDocumentVersionsMetadata[0]?.updated, didDocVersionsMetadata.didDocumentVersionsMetadata[1]?.updated], [undefined])).toBe(true)
|
|
819
|
+
expect(didDocVersionsMetadata.didDocumentVersionsMetadata[1].deactivated).toBe(false)
|
|
820
|
+
expect(didDocVersionsMetadata.didDocumentVersionsMetadata[0].deactivated).toBe(false)
|
|
821
|
+
}, defaultAsyncTxTimeout)
|
|
822
|
+
|
|
823
|
+
it('should query all DID document versions metadata - case: JsonWebKey2020', async () => {
|
|
824
|
+
const wallet = await DirectSecp256k1HdWallet.fromMnemonic(faucet.mnemonic, {prefix: faucet.prefix})
|
|
825
|
+
const registry = createDefaultCheqdRegistry(DIDModule.registryTypes)
|
|
826
|
+
const signer = await CheqdSigningStargateClient.connectWithSigner(localnet.rpcUrl, wallet, { registry })
|
|
827
|
+
const querier = await CheqdQuerier.connectWithExtension(localnet.rpcUrl, setupDidExtension) as CheqdQuerier & DidExtension
|
|
828
|
+
const didModule = new DIDModule(signer, querier)
|
|
829
|
+
|
|
830
|
+
const keyPair = createKeyPairBase64()
|
|
831
|
+
const verificationKeys = createVerificationKeys(keyPair.publicKey, MethodSpecificIdAlgo.Base58, 'key-1')
|
|
832
|
+
const verificationMethods = createDidVerificationMethod([VerificationMethods.JWK], [verificationKeys])
|
|
833
|
+
const didPayload = createDidPayload(verificationMethods, [verificationKeys])
|
|
834
|
+
const signInputs: ISignInputs[] = [
|
|
835
|
+
{
|
|
836
|
+
verificationMethodId: didPayload.verificationMethod![0].id,
|
|
837
|
+
privateKeyHex: toString(fromString(keyPair.privateKey, 'base64'), 'hex')
|
|
838
|
+
}
|
|
839
|
+
]
|
|
840
|
+
const feePayer = (await wallet.getAccounts())[0].address
|
|
841
|
+
const fee = await DIDModule.generateCreateDidDocFees(feePayer)
|
|
842
|
+
const versionId = v4()
|
|
843
|
+
const didTx: DeliverTxResponse = await didModule.createDidDocTx(
|
|
844
|
+
signInputs,
|
|
845
|
+
didPayload,
|
|
846
|
+
feePayer,
|
|
847
|
+
fee,
|
|
848
|
+
undefined,
|
|
849
|
+
versionId
|
|
850
|
+
)
|
|
851
|
+
|
|
852
|
+
console.warn(`Using payload: ${JSON.stringify(didPayload)}`)
|
|
853
|
+
console.warn(`DID Tx: ${JSON.stringify(didTx)}`)
|
|
854
|
+
|
|
855
|
+
expect(didTx.code).toBe(0)
|
|
856
|
+
|
|
857
|
+
// update the did document
|
|
858
|
+
const updateVersionId = v4()
|
|
859
|
+
const updateDidPayload = {
|
|
860
|
+
'@context': didPayload?.['@context'],
|
|
861
|
+
id: didPayload.id,
|
|
862
|
+
controller: didPayload.controller,
|
|
863
|
+
verificationMethod: didPayload.verificationMethod,
|
|
864
|
+
authentication: didPayload.authentication,
|
|
865
|
+
assertionMethod: [didPayload.verificationMethod![0].id], // <-- This is the only difference
|
|
866
|
+
} as DIDDocument
|
|
867
|
+
|
|
868
|
+
const feeUpdate = await DIDModule.generateUpdateDidDocFees(feePayer)
|
|
869
|
+
const updateDidDocTx: DeliverTxResponse = await didModule.updateDidDocTx(
|
|
870
|
+
signInputs,
|
|
871
|
+
updateDidPayload,
|
|
872
|
+
feePayer,
|
|
873
|
+
feeUpdate,
|
|
874
|
+
undefined,
|
|
875
|
+
updateVersionId
|
|
876
|
+
)
|
|
877
|
+
|
|
878
|
+
console.warn(`Using payload: ${JSON.stringify(updateDidPayload)}`)
|
|
879
|
+
console.warn(`DID Tx: ${JSON.stringify(updateDidDocTx)}`)
|
|
880
|
+
|
|
881
|
+
expect(updateDidDocTx.code).toBe(0)
|
|
882
|
+
|
|
883
|
+
const didDocVersionsMetadata = await didModule.queryAllDidDocVersionsMetadata(didPayload.id)
|
|
884
|
+
|
|
885
|
+
expect(didDocVersionsMetadata.didDocumentVersionsMetadata).toHaveLength(2)
|
|
886
|
+
expect(containsAll([didDocVersionsMetadata.didDocumentVersionsMetadata[0].versionId, didDocVersionsMetadata.didDocumentVersionsMetadata[1].versionId], [versionId, updateVersionId])).toBe(true)
|
|
887
|
+
expect(didDocVersionsMetadata.didDocumentVersionsMetadata[1].created).toBeDefined()
|
|
888
|
+
expect(didDocVersionsMetadata.didDocumentVersionsMetadata[0].created).toBeDefined()
|
|
889
|
+
expect(containsAll([didDocVersionsMetadata.didDocumentVersionsMetadata[0]?.updated, didDocVersionsMetadata.didDocumentVersionsMetadata[1]?.updated], [undefined])).toBe(true)
|
|
890
|
+
expect(didDocVersionsMetadata.didDocumentVersionsMetadata[1].deactivated).toBe(false)
|
|
891
|
+
expect(didDocVersionsMetadata.didDocumentVersionsMetadata[0].deactivated).toBe(false)
|
|
892
|
+
}, defaultAsyncTxTimeout)
|
|
893
|
+
|
|
894
|
+
it('should query all DID document versions metadata - case: Ed25519VerificationKey2018', async () => {
|
|
895
|
+
const wallet = await DirectSecp256k1HdWallet.fromMnemonic(faucet.mnemonic, {prefix: faucet.prefix})
|
|
896
|
+
const registry = createDefaultCheqdRegistry(DIDModule.registryTypes)
|
|
897
|
+
const signer = await CheqdSigningStargateClient.connectWithSigner(localnet.rpcUrl, wallet, { registry })
|
|
898
|
+
const querier = await CheqdQuerier.connectWithExtension(localnet.rpcUrl, setupDidExtension) as CheqdQuerier & DidExtension
|
|
899
|
+
const didModule = new DIDModule(signer, querier)
|
|
900
|
+
|
|
901
|
+
const keyPair = createKeyPairBase64()
|
|
902
|
+
const verificationKeys = createVerificationKeys(keyPair.publicKey, MethodSpecificIdAlgo.Base58, 'key-1')
|
|
903
|
+
const verificationMethods = createDidVerificationMethod([VerificationMethods.JWK], [verificationKeys])
|
|
904
|
+
const didPayload = createDidPayload(verificationMethods, [verificationKeys])
|
|
905
|
+
const signInputs: ISignInputs[] = [
|
|
906
|
+
{
|
|
907
|
+
verificationMethodId: didPayload.verificationMethod![0].id,
|
|
908
|
+
privateKeyHex: toString(fromString(keyPair.privateKey, 'base64'), 'hex')
|
|
909
|
+
}
|
|
910
|
+
]
|
|
911
|
+
const feePayer = (await wallet.getAccounts())[0].address
|
|
912
|
+
const fee = await DIDModule.generateCreateDidDocFees(feePayer)
|
|
913
|
+
const versionId = v4()
|
|
914
|
+
const didTx: DeliverTxResponse = await didModule.createDidDocTx(
|
|
915
|
+
signInputs,
|
|
916
|
+
didPayload,
|
|
917
|
+
feePayer,
|
|
918
|
+
fee,
|
|
919
|
+
undefined,
|
|
920
|
+
versionId
|
|
921
|
+
)
|
|
922
|
+
|
|
923
|
+
console.warn(`Using payload: ${JSON.stringify(didPayload)}`)
|
|
924
|
+
console.warn(`DID Tx: ${JSON.stringify(didTx)}`)
|
|
925
|
+
|
|
926
|
+
expect(didTx.code).toBe(0)
|
|
927
|
+
|
|
928
|
+
// update the did document
|
|
929
|
+
const updateVersionId = v4()
|
|
930
|
+
const updateDidPayload = {
|
|
931
|
+
'@context': didPayload?.['@context'],
|
|
932
|
+
id: didPayload.id,
|
|
933
|
+
controller: didPayload.controller,
|
|
934
|
+
verificationMethod: didPayload.verificationMethod,
|
|
935
|
+
authentication: didPayload.authentication,
|
|
936
|
+
assertionMethod: [didPayload.verificationMethod![0].id], // <-- This is the only difference
|
|
937
|
+
} as DIDDocument
|
|
938
|
+
|
|
939
|
+
const feeUpdate = await DIDModule.generateUpdateDidDocFees(feePayer)
|
|
940
|
+
const updateDidDocTx: DeliverTxResponse = await didModule.updateDidDocTx(
|
|
941
|
+
signInputs,
|
|
942
|
+
updateDidPayload,
|
|
943
|
+
feePayer,
|
|
944
|
+
feeUpdate,
|
|
945
|
+
undefined,
|
|
946
|
+
updateVersionId
|
|
947
|
+
)
|
|
948
|
+
|
|
949
|
+
console.warn(`Using payload: ${JSON.stringify(updateDidPayload)}`)
|
|
950
|
+
console.warn(`DID Tx: ${JSON.stringify(updateDidDocTx)}`)
|
|
951
|
+
|
|
952
|
+
expect(updateDidDocTx.code).toBe(0)
|
|
953
|
+
|
|
954
|
+
const didDocVersionsMetadata = await didModule.queryAllDidDocVersionsMetadata(didPayload.id)
|
|
955
|
+
|
|
956
|
+
expect(didDocVersionsMetadata.didDocumentVersionsMetadata).toHaveLength(2)
|
|
957
|
+
expect(containsAll([didDocVersionsMetadata.didDocumentVersionsMetadata[0].versionId, didDocVersionsMetadata.didDocumentVersionsMetadata[1].versionId], [versionId, updateVersionId])).toBe(true)
|
|
958
|
+
expect(didDocVersionsMetadata.didDocumentVersionsMetadata[1].created).toBeDefined()
|
|
959
|
+
expect(didDocVersionsMetadata.didDocumentVersionsMetadata[0].created).toBeDefined()
|
|
960
|
+
expect(containsAll([didDocVersionsMetadata.didDocumentVersionsMetadata[0]?.updated, didDocVersionsMetadata.didDocumentVersionsMetadata[1]?.updated], [undefined])).toBe(true)
|
|
961
|
+
expect(didDocVersionsMetadata.didDocumentVersionsMetadata[1].deactivated).toBe(false)
|
|
962
|
+
expect(didDocVersionsMetadata.didDocumentVersionsMetadata[0].deactivated).toBe(false)
|
|
530
963
|
}, defaultAsyncTxTimeout)
|
|
531
964
|
})
|
|
532
965
|
})
|