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