@cheqd/sdk 1.5.0-develop.3 → 2.0.0-develop.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +11 -0
- package/build/index.d.ts +4 -2
- package/build/index.d.ts.map +1 -1
- package/build/index.js +2 -0
- package/build/index.js.map +1 -1
- package/build/modules/did.d.ts +31 -4
- package/build/modules/did.d.ts.map +1 -1
- package/build/modules/did.js +163 -14
- package/build/modules/did.js.map +1 -1
- package/build/modules/resource.d.ts +22 -0
- package/build/modules/resource.d.ts.map +1 -1
- package/build/modules/resource.js +43 -3
- package/build/modules/resource.js.map +1 -1
- package/build/signer.d.ts.map +1 -1
- package/build/signer.js +0 -13
- package/build/signer.js.map +1 -1
- package/build/types.d.ts +10 -236
- package/build/types.d.ts.map +1 -1
- package/build/types.js +1 -120
- package/build/types.js.map +1 -1
- package/build/utils.d.ts +5 -5
- package/build/utils.d.ts.map +1 -1
- package/build/utils.js +70 -20
- package/build/utils.js.map +1 -1
- package/package.json +3 -2
- package/src/index.ts +5 -2
- package/src/modules/did.ts +189 -16
- package/src/modules/resource.ts +48 -2
- package/src/signer.ts +2 -17
- package/src/types.ts +14 -156
- package/src/utils.ts +85 -38
- package/tests/index.test.ts +5 -6
- package/tests/modules/did.test.ts +390 -80
- package/tests/modules/resource.test.ts +160 -27
- package/tests/signer.test.ts +55 -31
- package/tests/testutils.test.ts +3 -148
- package/tests/utils.test.ts +4 -4
|
@@ -2,12 +2,12 @@ import { MsgUpdateDidDocPayload } from "@cheqd/ts-proto/cheqd/did/v2"
|
|
|
2
2
|
import { DirectSecp256k1HdWallet } from "@cosmjs/proto-signing"
|
|
3
3
|
import { DeliverTxResponse } from "@cosmjs/stargate"
|
|
4
4
|
import { fromString, toString } from 'uint8arrays'
|
|
5
|
-
import { v4 } from "uuid"
|
|
6
5
|
import { DIDModule } from "../../src"
|
|
7
6
|
import { createDefaultCheqdRegistry } from "../../src/registry"
|
|
8
7
|
import { CheqdSigningStargateClient } from "../../src/signer"
|
|
9
|
-
import {
|
|
10
|
-
import { createDidPayload, createDidVerificationMethod, createKeyPairBase64, createVerificationKeys
|
|
8
|
+
import { DIDDocument, ISignInputs, MethodSpecificIdAlgo, VerificationMethods } from "../../src/types"
|
|
9
|
+
import { createDidPayload, createDidVerificationMethod, createKeyPairBase64, createVerificationKeys } from "../../src/utils"
|
|
10
|
+
import { localnet, faucet } from "../testutils.test"
|
|
11
11
|
|
|
12
12
|
const defaultAsyncTxTimeout = 30000
|
|
13
13
|
|
|
@@ -15,43 +15,98 @@ describe('DIDModule', () => {
|
|
|
15
15
|
describe('constructor', () => {
|
|
16
16
|
it('should instantiate standalone module', async () => {
|
|
17
17
|
const wallet = await DirectSecp256k1HdWallet.fromMnemonic(faucet.mnemonic)
|
|
18
|
-
const signer = await CheqdSigningStargateClient.connectWithSigner(
|
|
18
|
+
const signer = await CheqdSigningStargateClient.connectWithSigner(localnet.rpcUrl, wallet)
|
|
19
19
|
const didModule = new DIDModule(signer)
|
|
20
20
|
expect(didModule).toBeInstanceOf(DIDModule)
|
|
21
21
|
})
|
|
22
22
|
})
|
|
23
23
|
|
|
24
24
|
describe('createDidTx', () => {
|
|
25
|
-
it('should create a new multibase DID', async () => {
|
|
25
|
+
it('should create a new multibase DID - case: Ed25519VerificationKey2020', async () => {
|
|
26
26
|
const wallet = await DirectSecp256k1HdWallet.fromMnemonic(faucet.mnemonic, {prefix: faucet.prefix})
|
|
27
27
|
const registry = createDefaultCheqdRegistry(DIDModule.registryTypes)
|
|
28
|
-
const signer = await CheqdSigningStargateClient.connectWithSigner(
|
|
28
|
+
const signer = await CheqdSigningStargateClient.connectWithSigner(localnet.rpcUrl, wallet, { registry })
|
|
29
29
|
const didModule = new DIDModule(signer)
|
|
30
30
|
const keyPair = createKeyPairBase64()
|
|
31
|
-
const verificationKeys = createVerificationKeys(keyPair, MethodSpecificIdAlgo.Base58, 'key-1'
|
|
31
|
+
const verificationKeys = createVerificationKeys(keyPair.publicKey, MethodSpecificIdAlgo.Base58, 'key-1')
|
|
32
|
+
const verificationMethods = createDidVerificationMethod([VerificationMethods.Ed255192020], [verificationKeys])
|
|
33
|
+
const didPayload = createDidPayload(verificationMethods, [verificationKeys])
|
|
34
|
+
|
|
35
|
+
const signInputs: ISignInputs[] = [
|
|
36
|
+
{
|
|
37
|
+
verificationMethodId: didPayload.verificationMethod![0].id,
|
|
38
|
+
privateKeyHex: toString(fromString(keyPair.privateKey, 'base64'), 'hex')
|
|
39
|
+
}
|
|
40
|
+
]
|
|
41
|
+
|
|
42
|
+
const feePayer = (await wallet.getAccounts())[0].address
|
|
43
|
+
const fee = await DIDModule.generateCreateDidDocFees(feePayer)
|
|
44
|
+
const didTx: DeliverTxResponse = await didModule.createDidTx(
|
|
45
|
+
signInputs,
|
|
46
|
+
didPayload,
|
|
47
|
+
feePayer,
|
|
48
|
+
fee
|
|
49
|
+
)
|
|
50
|
+
|
|
51
|
+
console.warn(`Using payload: ${JSON.stringify(didPayload)}`)
|
|
52
|
+
console.warn(`DID Tx: ${JSON.stringify(didTx)}`)
|
|
53
|
+
|
|
54
|
+
expect(didTx.code).toBe(0)
|
|
55
|
+
}, defaultAsyncTxTimeout)
|
|
56
|
+
|
|
57
|
+
it('should create a new multibase DID - case: Ed25519VerificationKey2018', async () => {
|
|
58
|
+
const wallet = await DirectSecp256k1HdWallet.fromMnemonic(faucet.mnemonic, {prefix: faucet.prefix})
|
|
59
|
+
const registry = createDefaultCheqdRegistry(DIDModule.registryTypes)
|
|
60
|
+
const signer = await CheqdSigningStargateClient.connectWithSigner(localnet.rpcUrl, wallet, { registry })
|
|
61
|
+
const didModule = new DIDModule(signer)
|
|
62
|
+
const keyPair = createKeyPairBase64()
|
|
63
|
+
const verificationKeys = createVerificationKeys(keyPair.publicKey, MethodSpecificIdAlgo.Base58, 'key-1')
|
|
64
|
+
const verificationMethods = createDidVerificationMethod([VerificationMethods.Ed255192018], [verificationKeys])
|
|
65
|
+
const didPayload = createDidPayload(verificationMethods, [verificationKeys])
|
|
66
|
+
|
|
67
|
+
const signInputs: ISignInputs[] = [
|
|
68
|
+
{
|
|
69
|
+
verificationMethodId: didPayload.verificationMethod![0].id,
|
|
70
|
+
privateKeyHex: toString(fromString(keyPair.privateKey, 'base64'), 'hex')
|
|
71
|
+
}
|
|
72
|
+
]
|
|
73
|
+
const feePayer = (await wallet.getAccounts())[0].address
|
|
74
|
+
const fee = await DIDModule.generateCreateDidDocFees(feePayer)
|
|
75
|
+
const didTx: DeliverTxResponse = await didModule.createDidTx(
|
|
76
|
+
signInputs,
|
|
77
|
+
didPayload,
|
|
78
|
+
feePayer,
|
|
79
|
+
fee
|
|
80
|
+
)
|
|
81
|
+
|
|
82
|
+
console.warn(`Using payload: ${JSON.stringify(didPayload)}`)
|
|
83
|
+
console.warn(`DID Tx: ${JSON.stringify(didTx)}`)
|
|
84
|
+
|
|
85
|
+
expect(didTx.code).toBe(0)
|
|
86
|
+
}, defaultAsyncTxTimeout)
|
|
87
|
+
|
|
88
|
+
it('should create a new multibase DID - case: JsonWebKey2020', async () => {
|
|
89
|
+
const wallet = await DirectSecp256k1HdWallet.fromMnemonic(faucet.mnemonic, {prefix: faucet.prefix})
|
|
90
|
+
const registry = createDefaultCheqdRegistry(DIDModule.registryTypes)
|
|
91
|
+
const signer = await CheqdSigningStargateClient.connectWithSigner(localnet.rpcUrl, wallet, { registry })
|
|
92
|
+
const didModule = new DIDModule(signer)
|
|
93
|
+
const keyPair = createKeyPairBase64()
|
|
94
|
+
const verificationKeys = createVerificationKeys(keyPair.publicKey, MethodSpecificIdAlgo.Base58, 'key-1')
|
|
32
95
|
const verificationMethods = createDidVerificationMethod([VerificationMethods.JWK], [verificationKeys])
|
|
33
96
|
const didPayload = createDidPayload(verificationMethods, [verificationKeys])
|
|
34
97
|
|
|
35
98
|
const signInputs: ISignInputs[] = [
|
|
36
99
|
{
|
|
37
|
-
verificationMethodId: didPayload.verificationMethod[0].id,
|
|
100
|
+
verificationMethodId: didPayload.verificationMethod![0].id,
|
|
38
101
|
privateKeyHex: toString(fromString(keyPair.privateKey, 'base64'), 'hex')
|
|
39
102
|
}
|
|
40
103
|
]
|
|
41
|
-
const
|
|
42
|
-
|
|
43
|
-
{
|
|
44
|
-
denom: 'ncheq',
|
|
45
|
-
amount: '5000000'
|
|
46
|
-
}
|
|
47
|
-
],
|
|
48
|
-
gas: '200000',
|
|
49
|
-
payer: (await wallet.getAccounts())[0].address
|
|
50
|
-
}
|
|
104
|
+
const feePayer = (await wallet.getAccounts())[0].address
|
|
105
|
+
const fee = await DIDModule.generateCreateDidDocFees(feePayer)
|
|
51
106
|
const didTx: DeliverTxResponse = await didModule.createDidTx(
|
|
52
107
|
signInputs,
|
|
53
108
|
didPayload,
|
|
54
|
-
|
|
109
|
+
feePayer,
|
|
55
110
|
fee
|
|
56
111
|
)
|
|
57
112
|
|
|
@@ -61,36 +116,87 @@ describe('DIDModule', () => {
|
|
|
61
116
|
expect(didTx.code).toBe(0)
|
|
62
117
|
}, defaultAsyncTxTimeout)
|
|
63
118
|
|
|
64
|
-
it('should create a new uuid DID', async () => {
|
|
119
|
+
it('should create a new uuid DID - case: Ed25519VerificationKey2020', async () => {
|
|
65
120
|
const wallet = await DirectSecp256k1HdWallet.fromMnemonic(faucet.mnemonic, {prefix: faucet.prefix})
|
|
66
121
|
const registry = createDefaultCheqdRegistry(DIDModule.registryTypes)
|
|
67
|
-
const signer = await CheqdSigningStargateClient.connectWithSigner(
|
|
122
|
+
const signer = await CheqdSigningStargateClient.connectWithSigner(localnet.rpcUrl, wallet, { registry })
|
|
68
123
|
const didModule = new DIDModule(signer)
|
|
69
124
|
const keyPair = createKeyPairBase64()
|
|
70
|
-
const verificationKeys = createVerificationKeys(keyPair, MethodSpecificIdAlgo.Uuid, 'key-1'
|
|
125
|
+
const verificationKeys = createVerificationKeys(keyPair.publicKey, MethodSpecificIdAlgo.Uuid, 'key-1')
|
|
71
126
|
const verificationMethods = createDidVerificationMethod([VerificationMethods.Ed255192020], [verificationKeys])
|
|
72
127
|
const didPayload = createDidPayload(verificationMethods, [verificationKeys])
|
|
73
|
-
didPayload.versionId = v4()
|
|
74
128
|
const signInputs: ISignInputs[] = [
|
|
75
129
|
{
|
|
76
|
-
verificationMethodId: didPayload.verificationMethod[0].id,
|
|
130
|
+
verificationMethodId: didPayload.verificationMethod![0].id,
|
|
131
|
+
privateKeyHex: toString(fromString(keyPair.privateKey, 'base64'), 'hex')
|
|
132
|
+
}
|
|
133
|
+
]
|
|
134
|
+
const feePayer = (await wallet.getAccounts())[0].address
|
|
135
|
+
const fee = await DIDModule.generateCreateDidDocFees(feePayer)
|
|
136
|
+
const didTx: DeliverTxResponse = await didModule.createDidTx(
|
|
137
|
+
signInputs,
|
|
138
|
+
didPayload,
|
|
139
|
+
feePayer,
|
|
140
|
+
fee
|
|
141
|
+
)
|
|
142
|
+
|
|
143
|
+
console.warn(`Using payload: ${JSON.stringify(didPayload)}`)
|
|
144
|
+
console.warn(`DID Tx: ${JSON.stringify(didTx)}`)
|
|
145
|
+
|
|
146
|
+
expect(didTx.code).toBe(0)
|
|
147
|
+
}, defaultAsyncTxTimeout)
|
|
148
|
+
|
|
149
|
+
it('should create a new uuid DID - case: Ed25519VerificationKey2018', async () => {
|
|
150
|
+
const wallet = await DirectSecp256k1HdWallet.fromMnemonic(faucet.mnemonic, {prefix: faucet.prefix})
|
|
151
|
+
const registry = createDefaultCheqdRegistry(DIDModule.registryTypes)
|
|
152
|
+
const signer = await CheqdSigningStargateClient.connectWithSigner(localnet.rpcUrl, wallet, { registry })
|
|
153
|
+
const didModule = new DIDModule(signer)
|
|
154
|
+
const keyPair = createKeyPairBase64()
|
|
155
|
+
const verificationKeys = createVerificationKeys(keyPair.publicKey, MethodSpecificIdAlgo.Uuid, 'key-1')
|
|
156
|
+
const verificationMethods = createDidVerificationMethod([VerificationMethods.Ed255192018], [verificationKeys])
|
|
157
|
+
const didPayload = createDidPayload(verificationMethods, [verificationKeys])
|
|
158
|
+
const signInputs: ISignInputs[] = [
|
|
159
|
+
{
|
|
160
|
+
verificationMethodId: didPayload.verificationMethod![0].id,
|
|
77
161
|
privateKeyHex: toString(fromString(keyPair.privateKey, 'base64'), 'hex')
|
|
78
162
|
}
|
|
79
163
|
]
|
|
80
|
-
const
|
|
81
|
-
|
|
82
|
-
{
|
|
83
|
-
denom: 'ncheq',
|
|
84
|
-
amount: '5000000'
|
|
85
|
-
}
|
|
86
|
-
],
|
|
87
|
-
gas: '200000',
|
|
88
|
-
payer: (await wallet.getAccounts())[0].address
|
|
89
|
-
}
|
|
164
|
+
const feePayer = (await wallet.getAccounts())[0].address
|
|
165
|
+
const fee = await DIDModule.generateCreateDidDocFees(feePayer)
|
|
90
166
|
const didTx: DeliverTxResponse = await didModule.createDidTx(
|
|
91
167
|
signInputs,
|
|
92
168
|
didPayload,
|
|
93
|
-
|
|
169
|
+
feePayer,
|
|
170
|
+
fee
|
|
171
|
+
)
|
|
172
|
+
|
|
173
|
+
console.warn(`Using payload: ${JSON.stringify(didPayload)}`)
|
|
174
|
+
console.warn(`DID Tx: ${JSON.stringify(didTx)}`)
|
|
175
|
+
|
|
176
|
+
expect(didTx.code).toBe(0)
|
|
177
|
+
}, defaultAsyncTxTimeout)
|
|
178
|
+
|
|
179
|
+
it('should create a new uuid DID - case: JsonWebKey2020', async () => {
|
|
180
|
+
const wallet = await DirectSecp256k1HdWallet.fromMnemonic(faucet.mnemonic, {prefix: faucet.prefix})
|
|
181
|
+
const registry = createDefaultCheqdRegistry(DIDModule.registryTypes)
|
|
182
|
+
const signer = await CheqdSigningStargateClient.connectWithSigner(localnet.rpcUrl, wallet, { registry })
|
|
183
|
+
const didModule = new DIDModule(signer)
|
|
184
|
+
const keyPair = createKeyPairBase64()
|
|
185
|
+
const verificationKeys = createVerificationKeys(keyPair.publicKey, MethodSpecificIdAlgo.Uuid, 'key-1')
|
|
186
|
+
const verificationMethods = createDidVerificationMethod([VerificationMethods.JWK], [verificationKeys])
|
|
187
|
+
const didPayload = createDidPayload(verificationMethods, [verificationKeys])
|
|
188
|
+
const signInputs: ISignInputs[] = [
|
|
189
|
+
{
|
|
190
|
+
verificationMethodId: didPayload.verificationMethod![0].id,
|
|
191
|
+
privateKeyHex: toString(fromString(keyPair.privateKey, 'base64'), 'hex')
|
|
192
|
+
}
|
|
193
|
+
]
|
|
194
|
+
const feePayer = (await wallet.getAccounts())[0].address
|
|
195
|
+
const fee = await DIDModule.generateCreateDidDocFees(feePayer)
|
|
196
|
+
const didTx: DeliverTxResponse = await didModule.createDidTx(
|
|
197
|
+
signInputs,
|
|
198
|
+
didPayload,
|
|
199
|
+
feePayer,
|
|
94
200
|
fee
|
|
95
201
|
)
|
|
96
202
|
|
|
@@ -102,36 +208,83 @@ describe('DIDModule', () => {
|
|
|
102
208
|
})
|
|
103
209
|
|
|
104
210
|
describe('updateDidTx', () => {
|
|
105
|
-
it('should update a DID', async () => {
|
|
211
|
+
it('should update a DID - case: Ed25519VerificationKey2020', async () => {
|
|
106
212
|
const wallet = await DirectSecp256k1HdWallet.fromMnemonic(faucet.mnemonic, {prefix: faucet.prefix})
|
|
107
213
|
const registry = createDefaultCheqdRegistry(DIDModule.registryTypes)
|
|
108
|
-
const signer = await CheqdSigningStargateClient.connectWithSigner(
|
|
214
|
+
const signer = await CheqdSigningStargateClient.connectWithSigner(localnet.rpcUrl, wallet, { registry })
|
|
109
215
|
const didModule = new DIDModule(signer)
|
|
110
|
-
|
|
216
|
+
|
|
111
217
|
const keyPair = createKeyPairBase64()
|
|
112
|
-
const verificationKeys = createVerificationKeys(keyPair, MethodSpecificIdAlgo.Base58, 'key-1'
|
|
218
|
+
const verificationKeys = createVerificationKeys(keyPair.publicKey, MethodSpecificIdAlgo.Base58, 'key-1')
|
|
113
219
|
const verificationMethods = createDidVerificationMethod([VerificationMethods.Ed255192020], [verificationKeys])
|
|
114
220
|
const didPayload = createDidPayload(verificationMethods, [verificationKeys])
|
|
115
221
|
const signInputs: ISignInputs[] = [
|
|
116
222
|
{
|
|
117
|
-
verificationMethodId: didPayload.verificationMethod[0].id,
|
|
223
|
+
verificationMethodId: didPayload.verificationMethod![0].id,
|
|
224
|
+
privateKeyHex: toString(fromString(keyPair.privateKey, 'base64'), 'hex')
|
|
225
|
+
}
|
|
226
|
+
]
|
|
227
|
+
const feePayer = (await wallet.getAccounts())[0].address
|
|
228
|
+
const fee = await DIDModule.generateCreateDidDocFees(feePayer)
|
|
229
|
+
const didTx: DeliverTxResponse = await didModule.createDidTx(
|
|
230
|
+
signInputs,
|
|
231
|
+
didPayload,
|
|
232
|
+
feePayer,
|
|
233
|
+
fee
|
|
234
|
+
)
|
|
235
|
+
|
|
236
|
+
console.warn(`Using payload: ${JSON.stringify(didPayload)}`)
|
|
237
|
+
console.warn(`DID Tx: ${JSON.stringify(didTx)}`)
|
|
238
|
+
|
|
239
|
+
expect(didTx.code).toBe(0)
|
|
240
|
+
|
|
241
|
+
// update the did document
|
|
242
|
+
const updateDidPayload = {
|
|
243
|
+
'@context': didPayload?.['@context'],
|
|
244
|
+
id: didPayload.id,
|
|
245
|
+
controller: didPayload.controller,
|
|
246
|
+
verificationMethod: didPayload.verificationMethod,
|
|
247
|
+
authentication: didPayload.authentication,
|
|
248
|
+
assertionMethod: [didPayload.verificationMethod![0].id], // <-- This is the only difference
|
|
249
|
+
versionId: didTx.transactionHash
|
|
250
|
+
} as DIDDocument
|
|
251
|
+
|
|
252
|
+
const feeUpdate = await DIDModule.generateUpdateDidDocFees(feePayer)
|
|
253
|
+
const updateDidTx: DeliverTxResponse = await didModule.updateDidTx(
|
|
254
|
+
signInputs,
|
|
255
|
+
updateDidPayload,
|
|
256
|
+
feePayer,
|
|
257
|
+
feeUpdate
|
|
258
|
+
)
|
|
259
|
+
|
|
260
|
+
console.warn(`Using payload: ${JSON.stringify(updateDidPayload)}`)
|
|
261
|
+
console.warn(`DID Tx: ${JSON.stringify(updateDidTx)}`)
|
|
262
|
+
|
|
263
|
+
expect(updateDidTx.code).toBe(0)
|
|
264
|
+
}, defaultAsyncTxTimeout)
|
|
265
|
+
|
|
266
|
+
it('should update a DID - case: Ed25519VerificationKey2018', async () => {
|
|
267
|
+
const wallet = await DirectSecp256k1HdWallet.fromMnemonic(faucet.mnemonic, {prefix: faucet.prefix})
|
|
268
|
+
const registry = createDefaultCheqdRegistry(DIDModule.registryTypes)
|
|
269
|
+
const signer = await CheqdSigningStargateClient.connectWithSigner(localnet.rpcUrl, wallet, { registry })
|
|
270
|
+
const didModule = new DIDModule(signer)
|
|
271
|
+
|
|
272
|
+
const keyPair = createKeyPairBase64()
|
|
273
|
+
const verificationKeys = createVerificationKeys(keyPair.publicKey, MethodSpecificIdAlgo.Base58, 'key-1')
|
|
274
|
+
const verificationMethods = createDidVerificationMethod([VerificationMethods.Ed255192018], [verificationKeys])
|
|
275
|
+
const didPayload = createDidPayload(verificationMethods, [verificationKeys])
|
|
276
|
+
const signInputs: ISignInputs[] = [
|
|
277
|
+
{
|
|
278
|
+
verificationMethodId: didPayload.verificationMethod![0].id,
|
|
118
279
|
privateKeyHex: toString(fromString(keyPair.privateKey, 'base64'), 'hex')
|
|
119
280
|
}
|
|
120
281
|
]
|
|
121
|
-
const
|
|
122
|
-
|
|
123
|
-
{
|
|
124
|
-
denom: 'ncheq',
|
|
125
|
-
amount: '5000000'
|
|
126
|
-
}
|
|
127
|
-
],
|
|
128
|
-
gas: '200000',
|
|
129
|
-
payer: (await wallet.getAccounts())[0].address
|
|
130
|
-
}
|
|
282
|
+
const feePayer = (await wallet.getAccounts())[0].address
|
|
283
|
+
const fee = await DIDModule.generateCreateDidDocFees(feePayer)
|
|
131
284
|
const didTx: DeliverTxResponse = await didModule.createDidTx(
|
|
132
285
|
signInputs,
|
|
133
286
|
didPayload,
|
|
134
|
-
|
|
287
|
+
feePayer,
|
|
135
288
|
fee
|
|
136
289
|
)
|
|
137
290
|
|
|
@@ -140,60 +293,163 @@ describe('DIDModule', () => {
|
|
|
140
293
|
|
|
141
294
|
expect(didTx.code).toBe(0)
|
|
142
295
|
|
|
143
|
-
//
|
|
144
|
-
const updateDidPayload =
|
|
145
|
-
context: didPayload
|
|
296
|
+
// update the did document
|
|
297
|
+
const updateDidPayload = {
|
|
298
|
+
'@context': didPayload?.['@context'],
|
|
146
299
|
id: didPayload.id,
|
|
147
300
|
controller: didPayload.controller,
|
|
148
301
|
verificationMethod: didPayload.verificationMethod,
|
|
149
302
|
authentication: didPayload.authentication,
|
|
150
|
-
assertionMethod: [didPayload.verificationMethod[0].id], //
|
|
303
|
+
assertionMethod: [didPayload.verificationMethod![0].id], // <-- This is the only difference
|
|
151
304
|
versionId: didTx.transactionHash
|
|
152
|
-
}
|
|
305
|
+
} as DIDDocument
|
|
306
|
+
|
|
307
|
+
const feeUpdate = await DIDModule.generateUpdateDidDocFees(feePayer)
|
|
153
308
|
|
|
154
309
|
const updateDidTx: DeliverTxResponse = await didModule.updateDidTx(
|
|
155
310
|
signInputs,
|
|
156
311
|
updateDidPayload,
|
|
157
|
-
|
|
312
|
+
feePayer,
|
|
313
|
+
feeUpdate
|
|
314
|
+
)
|
|
315
|
+
|
|
316
|
+
console.warn(`Using payload: ${JSON.stringify(updateDidPayload)}`)
|
|
317
|
+
console.warn(`DID Tx: ${JSON.stringify(updateDidTx)}`)
|
|
318
|
+
|
|
319
|
+
expect(updateDidTx.code).toBe(0)
|
|
320
|
+
}, defaultAsyncTxTimeout)
|
|
321
|
+
|
|
322
|
+
it('should update a DID - case: JsonWebKey2020', async () => {
|
|
323
|
+
const wallet = await DirectSecp256k1HdWallet.fromMnemonic(faucet.mnemonic, {prefix: faucet.prefix})
|
|
324
|
+
const registry = createDefaultCheqdRegistry(DIDModule.registryTypes)
|
|
325
|
+
const signer = await CheqdSigningStargateClient.connectWithSigner(localnet.rpcUrl, wallet, { registry })
|
|
326
|
+
const didModule = new DIDModule(signer)
|
|
327
|
+
|
|
328
|
+
const keyPair = createKeyPairBase64()
|
|
329
|
+
const verificationKeys = createVerificationKeys(keyPair.publicKey, MethodSpecificIdAlgo.Base58, 'key-1')
|
|
330
|
+
const verificationMethods = createDidVerificationMethod([VerificationMethods.JWK], [verificationKeys])
|
|
331
|
+
const didPayload = createDidPayload(verificationMethods, [verificationKeys])
|
|
332
|
+
const signInputs: ISignInputs[] = [
|
|
333
|
+
{
|
|
334
|
+
verificationMethodId: didPayload.verificationMethod![0].id,
|
|
335
|
+
privateKeyHex: toString(fromString(keyPair.privateKey, 'base64'), 'hex')
|
|
336
|
+
}
|
|
337
|
+
]
|
|
338
|
+
const feePayer = (await wallet.getAccounts())[0].address
|
|
339
|
+
const fee = await DIDModule.generateCreateDidDocFees(feePayer)
|
|
340
|
+
const didTx: DeliverTxResponse = await didModule.createDidTx(
|
|
341
|
+
signInputs,
|
|
342
|
+
didPayload,
|
|
343
|
+
feePayer,
|
|
158
344
|
fee
|
|
159
345
|
)
|
|
160
346
|
|
|
161
|
-
console.warn(
|
|
347
|
+
console.warn(`Using payload: ${JSON.stringify(didPayload)}`)
|
|
348
|
+
console.warn(`DID Tx: ${JSON.stringify(didTx)}`)
|
|
349
|
+
|
|
350
|
+
expect(didTx.code).toBe(0)
|
|
351
|
+
|
|
352
|
+
// update the did document
|
|
353
|
+
const updateDidPayload = {
|
|
354
|
+
'@context': didPayload?.['@context'],
|
|
355
|
+
id: didPayload.id,
|
|
356
|
+
controller: didPayload.controller,
|
|
357
|
+
verificationMethod: didPayload.verificationMethod,
|
|
358
|
+
authentication: didPayload.authentication,
|
|
359
|
+
assertionMethod: [didPayload.verificationMethod![0].id], // <-- This is the only difference
|
|
360
|
+
versionId: didTx.transactionHash
|
|
361
|
+
} as DIDDocument
|
|
362
|
+
|
|
363
|
+
const feeUpdate = await DIDModule.generateUpdateDidDocFees(feePayer)
|
|
364
|
+
|
|
365
|
+
const updateDidTx: DeliverTxResponse = await didModule.updateDidTx(
|
|
366
|
+
signInputs,
|
|
367
|
+
updateDidPayload,
|
|
368
|
+
feePayer,
|
|
369
|
+
feeUpdate
|
|
370
|
+
)
|
|
371
|
+
|
|
372
|
+
console.warn(`Using payload: ${JSON.stringify(updateDidPayload)}`)
|
|
373
|
+
console.warn(`DID Tx: ${JSON.stringify(updateDidTx)}`)
|
|
374
|
+
|
|
162
375
|
expect(updateDidTx.code).toBe(0)
|
|
163
376
|
}, defaultAsyncTxTimeout)
|
|
164
377
|
})
|
|
165
378
|
|
|
166
379
|
describe('deactivateDidTx', () => {
|
|
167
|
-
it('should deactivate a DID', async () => {
|
|
380
|
+
it('should deactivate a DID - case: Ed25519VerificationKey2020', async () => {
|
|
168
381
|
const wallet = await DirectSecp256k1HdWallet.fromMnemonic(faucet.mnemonic, {prefix: faucet.prefix})
|
|
169
382
|
const registry = createDefaultCheqdRegistry(DIDModule.registryTypes)
|
|
170
|
-
const signer = await CheqdSigningStargateClient.connectWithSigner(
|
|
383
|
+
const signer = await CheqdSigningStargateClient.connectWithSigner(localnet.rpcUrl, wallet, { registry })
|
|
171
384
|
const didModule = new DIDModule(signer)
|
|
172
|
-
|
|
385
|
+
|
|
173
386
|
const keyPair = createKeyPairBase64()
|
|
174
|
-
const verificationKeys = createVerificationKeys(keyPair, MethodSpecificIdAlgo.Base58, 'key-1'
|
|
387
|
+
const verificationKeys = createVerificationKeys(keyPair.publicKey, MethodSpecificIdAlgo.Base58, 'key-1')
|
|
175
388
|
const verificationMethods = createDidVerificationMethod([VerificationMethods.Ed255192020], [verificationKeys])
|
|
176
389
|
const didPayload = createDidPayload(verificationMethods, [verificationKeys])
|
|
177
390
|
const signInputs: ISignInputs[] = [
|
|
178
391
|
{
|
|
179
|
-
verificationMethodId: didPayload.verificationMethod[0].id,
|
|
392
|
+
verificationMethodId: didPayload.verificationMethod![0].id,
|
|
393
|
+
privateKeyHex: toString(fromString(keyPair.privateKey, 'base64'), 'hex')
|
|
394
|
+
}
|
|
395
|
+
]
|
|
396
|
+
const feePayer = (await wallet.getAccounts())[0].address
|
|
397
|
+
const fee = await DIDModule.generateCreateDidDocFees(feePayer)
|
|
398
|
+
const didTx: DeliverTxResponse = await didModule.createDidTx(
|
|
399
|
+
signInputs,
|
|
400
|
+
didPayload,
|
|
401
|
+
feePayer,
|
|
402
|
+
fee
|
|
403
|
+
)
|
|
404
|
+
|
|
405
|
+
console.warn(`Using payload: ${JSON.stringify(didPayload)}`)
|
|
406
|
+
console.warn(`DID Tx: ${JSON.stringify(didTx)}`)
|
|
407
|
+
|
|
408
|
+
expect(didTx.code).toBe(0)
|
|
409
|
+
|
|
410
|
+
// deactivate the did document
|
|
411
|
+
const deactivateDidPayload = {
|
|
412
|
+
id: didPayload.id,
|
|
413
|
+
verificationMethod: didPayload.verificationMethod,
|
|
414
|
+
} as DIDDocument
|
|
415
|
+
|
|
416
|
+
const feeDeactivate = await DIDModule.generateDeactivateDidDocFees(feePayer)
|
|
417
|
+
|
|
418
|
+
const deactivateDidTx: DeliverTxResponse = await didModule.deactivateDidTx(
|
|
419
|
+
signInputs,
|
|
420
|
+
deactivateDidPayload,
|
|
421
|
+
feePayer,
|
|
422
|
+
feeDeactivate
|
|
423
|
+
)
|
|
424
|
+
|
|
425
|
+
console.warn(`Using payload: ${JSON.stringify(deactivateDidPayload)}`)
|
|
426
|
+
console.warn(`DID Tx: ${JSON.stringify(deactivateDidTx)}`)
|
|
427
|
+
|
|
428
|
+
expect(deactivateDidTx.code).toBe(0)
|
|
429
|
+
}, defaultAsyncTxTimeout)
|
|
430
|
+
|
|
431
|
+
it('should deactivate a DID - case: Ed25519VerificationKey2018', async () => {
|
|
432
|
+
const wallet = await DirectSecp256k1HdWallet.fromMnemonic(faucet.mnemonic, {prefix: faucet.prefix})
|
|
433
|
+
const registry = createDefaultCheqdRegistry(DIDModule.registryTypes)
|
|
434
|
+
const signer = await CheqdSigningStargateClient.connectWithSigner(localnet.rpcUrl, wallet, { registry })
|
|
435
|
+
const didModule = new DIDModule(signer)
|
|
436
|
+
|
|
437
|
+
const keyPair = createKeyPairBase64()
|
|
438
|
+
const verificationKeys = createVerificationKeys(keyPair.publicKey, MethodSpecificIdAlgo.Base58, 'key-1')
|
|
439
|
+
const verificationMethods = createDidVerificationMethod([VerificationMethods.Ed255192018], [verificationKeys])
|
|
440
|
+
const didPayload = createDidPayload(verificationMethods, [verificationKeys])
|
|
441
|
+
const signInputs: ISignInputs[] = [
|
|
442
|
+
{
|
|
443
|
+
verificationMethodId: didPayload.verificationMethod![0].id,
|
|
180
444
|
privateKeyHex: toString(fromString(keyPair.privateKey, 'base64'), 'hex')
|
|
181
445
|
}
|
|
182
446
|
]
|
|
183
|
-
const
|
|
184
|
-
|
|
185
|
-
{
|
|
186
|
-
denom: 'ncheq',
|
|
187
|
-
amount: '5000000'
|
|
188
|
-
}
|
|
189
|
-
],
|
|
190
|
-
gas: '200000',
|
|
191
|
-
payer: (await wallet.getAccounts())[0].address
|
|
192
|
-
}
|
|
447
|
+
const feePayer = (await wallet.getAccounts())[0].address
|
|
448
|
+
const fee = await DIDModule.generateCreateDidDocFees(feePayer)
|
|
193
449
|
const didTx: DeliverTxResponse = await didModule.createDidTx(
|
|
194
450
|
signInputs,
|
|
195
451
|
didPayload,
|
|
196
|
-
|
|
452
|
+
feePayer,
|
|
197
453
|
fee
|
|
198
454
|
)
|
|
199
455
|
|
|
@@ -202,21 +458,75 @@ describe('DIDModule', () => {
|
|
|
202
458
|
|
|
203
459
|
expect(didTx.code).toBe(0)
|
|
204
460
|
|
|
205
|
-
//
|
|
206
|
-
const deactivateDidPayload
|
|
461
|
+
// deactivate the did document
|
|
462
|
+
const deactivateDidPayload = {
|
|
207
463
|
id: didPayload.id,
|
|
208
464
|
verificationMethod: didPayload.verificationMethod,
|
|
209
|
-
|
|
210
|
-
|
|
465
|
+
} as DIDDocument
|
|
466
|
+
|
|
467
|
+
const feeDeactivate = await DIDModule.generateDeactivateDidDocFees(feePayer)
|
|
211
468
|
|
|
212
469
|
const deactivateDidTx: DeliverTxResponse = await didModule.deactivateDidTx(
|
|
213
470
|
signInputs,
|
|
214
471
|
deactivateDidPayload,
|
|
215
|
-
|
|
472
|
+
feePayer,
|
|
473
|
+
feeDeactivate
|
|
474
|
+
)
|
|
475
|
+
|
|
476
|
+
console.warn(`Using payload: ${JSON.stringify(deactivateDidPayload)}`)
|
|
477
|
+
console.warn(`DID Tx: ${JSON.stringify(deactivateDidTx)}`)
|
|
478
|
+
|
|
479
|
+
expect(deactivateDidTx.code).toBe(0)
|
|
480
|
+
}, defaultAsyncTxTimeout)
|
|
481
|
+
|
|
482
|
+
it('should deactivate a DID - case: JsonWebKey2020', async () => {
|
|
483
|
+
const wallet = await DirectSecp256k1HdWallet.fromMnemonic(faucet.mnemonic, {prefix: faucet.prefix})
|
|
484
|
+
const registry = createDefaultCheqdRegistry(DIDModule.registryTypes)
|
|
485
|
+
const signer = await CheqdSigningStargateClient.connectWithSigner(localnet.rpcUrl, wallet, { registry })
|
|
486
|
+
const didModule = new DIDModule(signer)
|
|
487
|
+
|
|
488
|
+
const keyPair = createKeyPairBase64()
|
|
489
|
+
const verificationKeys = createVerificationKeys(keyPair.publicKey, MethodSpecificIdAlgo.Base58, 'key-1')
|
|
490
|
+
const verificationMethods = createDidVerificationMethod([VerificationMethods.JWK], [verificationKeys])
|
|
491
|
+
const didPayload = createDidPayload(verificationMethods, [verificationKeys])
|
|
492
|
+
const signInputs: ISignInputs[] = [
|
|
493
|
+
{
|
|
494
|
+
verificationMethodId: didPayload.verificationMethod![0].id,
|
|
495
|
+
privateKeyHex: toString(fromString(keyPair.privateKey, 'base64'), 'hex')
|
|
496
|
+
}
|
|
497
|
+
]
|
|
498
|
+
const feePayer = (await wallet.getAccounts())[0].address
|
|
499
|
+
const fee = await DIDModule.generateCreateDidDocFees(feePayer)
|
|
500
|
+
const didTx: DeliverTxResponse = await didModule.createDidTx(
|
|
501
|
+
signInputs,
|
|
502
|
+
didPayload,
|
|
503
|
+
feePayer,
|
|
216
504
|
fee
|
|
217
505
|
)
|
|
218
506
|
|
|
219
|
-
console.warn(
|
|
507
|
+
console.warn(`Using payload: ${JSON.stringify(didPayload)}`)
|
|
508
|
+
console.warn(`DID Tx: ${JSON.stringify(didTx)}`)
|
|
509
|
+
|
|
510
|
+
expect(didTx.code).toBe(0)
|
|
511
|
+
|
|
512
|
+
// deactivate the did document
|
|
513
|
+
const deactivateDidPayload = {
|
|
514
|
+
id: didPayload.id,
|
|
515
|
+
verificationMethod: didPayload.verificationMethod,
|
|
516
|
+
} as DIDDocument
|
|
517
|
+
|
|
518
|
+
const feeDeactivate = await DIDModule.generateDeactivateDidDocFees(feePayer)
|
|
519
|
+
|
|
520
|
+
const deactivateDidTx: DeliverTxResponse = await didModule.deactivateDidTx(
|
|
521
|
+
signInputs,
|
|
522
|
+
deactivateDidPayload,
|
|
523
|
+
feePayer,
|
|
524
|
+
feeDeactivate
|
|
525
|
+
)
|
|
526
|
+
|
|
527
|
+
console.warn(`Using payload: ${JSON.stringify(deactivateDidPayload)}`)
|
|
528
|
+
console.warn(`DID Tx: ${JSON.stringify(deactivateDidTx)}`)
|
|
529
|
+
|
|
220
530
|
expect(deactivateDidTx.code).toBe(0)
|
|
221
531
|
}, defaultAsyncTxTimeout)
|
|
222
532
|
})
|