@cheqd/sdk 2.1.0-develop.1 → 2.2.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.
Files changed (127) hide show
  1. package/README.md +33 -6
  2. package/build/{index.d.ts → cjs/index.d.ts} +8 -3
  3. package/build/cjs/index.d.ts.map +1 -0
  4. package/build/cjs/index.js +144 -0
  5. package/build/cjs/index.js.map +1 -0
  6. package/build/{modules → cjs/modules}/_.d.ts +1 -1
  7. package/build/cjs/modules/_.d.ts.map +1 -0
  8. package/build/{modules → cjs/modules}/_.js +3 -0
  9. package/build/cjs/modules/_.js.map +1 -0
  10. package/build/{modules → cjs/modules}/did.d.ts +4 -2
  11. package/build/cjs/modules/did.d.ts.map +1 -0
  12. package/build/{modules → cjs/modules}/did.js +42 -25
  13. package/build/cjs/modules/did.js.map +1 -0
  14. package/build/{modules → cjs/modules}/resource.d.ts +2 -2
  15. package/build/cjs/modules/resource.d.ts.map +1 -0
  16. package/build/{modules → cjs/modules}/resource.js +13 -5
  17. package/build/cjs/modules/resource.js.map +1 -0
  18. package/build/cjs/querier.d.ts.map +1 -0
  19. package/build/cjs/querier.js.map +1 -0
  20. package/build/cjs/registry.d.ts.map +1 -0
  21. package/build/cjs/registry.js.map +1 -0
  22. package/build/cjs/signer.d.ts.map +1 -0
  23. package/build/cjs/signer.js.map +1 -0
  24. package/build/{types.d.ts → cjs/types.d.ts} +1 -1
  25. package/build/cjs/types.d.ts.map +1 -0
  26. package/build/cjs/types.js.map +1 -0
  27. package/build/cjs/utils.d.ts.map +1 -0
  28. package/build/{utils.js → cjs/utils.js} +2 -5
  29. package/build/cjs/utils.js.map +1 -0
  30. package/build/types/index.d.ts +45 -0
  31. package/build/types/index.d.ts.map +1 -0
  32. package/build/types/modules/_.d.ts +20 -0
  33. package/build/types/modules/_.d.ts.map +1 -0
  34. package/build/types/modules/did.d.ts +109 -0
  35. package/build/types/modules/did.d.ts.map +1 -0
  36. package/build/types/modules/resource.d.ts +62 -0
  37. package/build/types/modules/resource.d.ts.map +1 -0
  38. package/build/types/querier.d.ts +11 -0
  39. package/build/types/querier.d.ts.map +1 -0
  40. package/build/types/registry.d.ts +4 -0
  41. package/build/types/registry.d.ts.map +1 -0
  42. package/build/types/signer.d.ts +36 -0
  43. package/build/types/signer.d.ts.map +1 -0
  44. package/build/types/types.d.ts +80 -0
  45. package/build/types/types.d.ts.map +1 -0
  46. package/build/types/utils.d.ts +18 -0
  47. package/build/types/utils.d.ts.map +1 -0
  48. package/package.json +48 -25
  49. package/.github/ISSUE_TEMPLATE/bug-report.yml +0 -74
  50. package/.github/ISSUE_TEMPLATE/config.yml +0 -14
  51. package/.github/ISSUE_TEMPLATE/feature-request.yaml +0 -27
  52. package/.github/dependabot.yml +0 -42
  53. package/.github/linters/.commitlint.rules.js +0 -37
  54. package/.github/linters/.eslintrc.json +0 -18
  55. package/.github/linters/.markdown-lint.yml +0 -139
  56. package/.github/linters/mlc_config.json +0 -13
  57. package/.github/workflows/build.yml +0 -30
  58. package/.github/workflows/cleanup-actions.yml +0 -45
  59. package/.github/workflows/cleanup-cache-automatic.yml +0 -24
  60. package/.github/workflows/cleanup-cache-manual.yml +0 -21
  61. package/.github/workflows/codeql.yml +0 -40
  62. package/.github/workflows/dispatch.yml +0 -30
  63. package/.github/workflows/lint.yml +0 -51
  64. package/.github/workflows/pull-request.yml +0 -33
  65. package/.github/workflows/release.yml +0 -42
  66. package/.github/workflows/test.yml +0 -66
  67. package/.releaserc.json +0 -56
  68. package/CHANGELOG.md +0 -256
  69. package/CODE_OF_CONDUCT.md +0 -81
  70. package/NOTICE.md +0 -10
  71. package/SECURITY.md +0 -12
  72. package/build/index.d.ts.map +0 -1
  73. package/build/index.js +0 -97
  74. package/build/index.js.map +0 -1
  75. package/build/modules/_.d.ts.map +0 -1
  76. package/build/modules/_.js.map +0 -1
  77. package/build/modules/did.d.ts.map +0 -1
  78. package/build/modules/did.js.map +0 -1
  79. package/build/modules/resource.d.ts.map +0 -1
  80. package/build/modules/resource.js.map +0 -1
  81. package/build/querier.d.ts.map +0 -1
  82. package/build/querier.js.map +0 -1
  83. package/build/registry.d.ts.map +0 -1
  84. package/build/registry.js.map +0 -1
  85. package/build/signer.d.ts.map +0 -1
  86. package/build/signer.js.map +0 -1
  87. package/build/types.d.ts.map +0 -1
  88. package/build/types.js.map +0 -1
  89. package/build/utils.d.ts.map +0 -1
  90. package/build/utils.js.map +0 -1
  91. package/docker/Dockerfile +0 -55
  92. package/docker/entrypoint.sh +0 -58
  93. package/docker/localnet/build-latest.env +0 -7
  94. package/docker/localnet/container-env/observer-0.env +0 -13
  95. package/docker/localnet/container-env/seed-0.env +0 -17
  96. package/docker/localnet/container-env/validator-0.env +0 -13
  97. package/docker/localnet/container-env/validator-1.env +0 -13
  98. package/docker/localnet/container-env/validator-2.env +0 -13
  99. package/docker/localnet/container-env/validator-3.env +0 -13
  100. package/docker/localnet/docker-compose.yml +0 -281
  101. package/docker/localnet/gen-network-config.sh +0 -259
  102. package/docker/localnet/import-keys.sh +0 -31
  103. package/jest.config.js +0 -6
  104. package/src/index.ts +0 -128
  105. package/src/modules/_.ts +0 -55
  106. package/src/modules/did.ts +0 -564
  107. package/src/modules/resource.ts +0 -213
  108. package/src/querier.ts +0 -33
  109. package/src/registry.ts +0 -15
  110. package/src/signer.ts +0 -258
  111. package/src/types.ts +0 -101
  112. package/src/utils.ts +0 -243
  113. package/tests/index.test.ts +0 -135
  114. package/tests/modules/did.test.ts +0 -965
  115. package/tests/modules/resource.test.ts +0 -785
  116. package/tests/signer.test.ts +0 -179
  117. package/tests/testutils.test.ts +0 -24
  118. package/tests/utils.test.ts +0 -66
  119. package/tsconfig.json +0 -80
  120. /package/build/{querier.d.ts → cjs/querier.d.ts} +0 -0
  121. /package/build/{querier.js → cjs/querier.js} +0 -0
  122. /package/build/{registry.d.ts → cjs/registry.d.ts} +0 -0
  123. /package/build/{registry.js → cjs/registry.js} +0 -0
  124. /package/build/{signer.d.ts → cjs/signer.d.ts} +0 -0
  125. /package/build/{signer.js → cjs/signer.js} +0 -0
  126. /package/build/{types.js → cjs/types.js} +0 -0
  127. /package/build/{utils.d.ts → cjs/utils.d.ts} +0 -0
package/src/utils.ts DELETED
@@ -1,243 +0,0 @@
1
- import {
2
- IKeyPair,
3
- IKeyValuePair,
4
- ISignInputs,
5
- VerificationMethods,
6
- TMethodSpecificId,
7
- MethodSpecificIdAlgo,
8
- TVerificationKey,
9
- TVerificationKeyPrefix,
10
- CheqdNetwork,
11
- IVerificationKeys,
12
- VerificationMethod,
13
- DIDDocument,
14
- SpecValidationResult,
15
- JsonWebKey,
16
- } from "./types"
17
- import { fromString, toString } from 'uint8arrays'
18
- import { bases } from "multiformats/basics"
19
- import { base64ToBytes } from "did-jwt"
20
- import { generateKeyPair, generateKeyPairFromSeed, KeyPair } from '@stablelib/ed25519'
21
- import { v4 } from 'uuid'
22
- import { createHash } from 'crypto'
23
- import {
24
- VerificationMethod as ProtoVerificationMethod,
25
- Service as ProtoService,
26
- } from "@cheqd/ts-proto/cheqd/did/v2"
27
-
28
- export type TImportableEd25519Key = {
29
- publicKeyHex: string
30
- privateKeyHex: string
31
- kid: string
32
- type: "Ed25519"
33
- }
34
-
35
- const MULTICODEC_ED25519_HEADER = new Uint8Array([0xed, 0x01]);
36
-
37
- export function isEqualKeyValuePair(kv1: IKeyValuePair[], kv2: IKeyValuePair[]): boolean {
38
- return kv1.every((item, index) => item.key === kv2[index].key && item.value === kv2[index].value)
39
- }
40
-
41
- export function createSignInputsFromImportableEd25519Key(key: TImportableEd25519Key, verificationMethod: VerificationMethod[]): ISignInputs {
42
- if (verificationMethod?.length === 0) throw new Error('No verification methods provided')
43
-
44
- const publicKey = fromString(key.publicKeyHex, 'hex')
45
-
46
- for(const method of verificationMethod) {
47
- switch (method?.type) {
48
- case VerificationMethods.Ed255192020:
49
- const publicKeyMultibase = toMultibaseRaw(publicKey)
50
- if (method.publicKeyMultibase === publicKeyMultibase) {
51
- return {
52
- verificationMethodId: method.id,
53
- privateKeyHex: key.privateKeyHex
54
- }
55
- }
56
- case VerificationMethods.Ed255192018:
57
- const publicKeyBase58 = bases['base58btc'].encode(publicKey).slice(1)
58
- if (method.publicKeyBase58 === publicKeyBase58) {
59
- return {
60
- verificationMethodId: method.id,
61
- privateKeyHex: key.privateKeyHex
62
- }
63
- }
64
- case VerificationMethods.JWK:
65
- const publicKeyJwk: JsonWebKey = {
66
- crv: 'Ed25519',
67
- kty: 'OKP',
68
- x: toString( publicKey, 'base64url' )
69
- }
70
- if (JSON.stringify(method.publicKeyJwk) === JSON.stringify(publicKeyJwk)) {
71
- return {
72
- verificationMethodId: method.id,
73
- privateKeyHex: key.privateKeyHex
74
- }
75
- }
76
- }
77
- }
78
-
79
- throw new Error('No verification method type provided')
80
- }
81
-
82
- export function createKeyPairRaw(seed?: string): KeyPair {
83
- return seed ? generateKeyPairFromSeed(fromString(seed)) : generateKeyPair()
84
- }
85
-
86
- export function createKeyPairBase64(seed?: string): IKeyPair {
87
- const keyPair = seed ? generateKeyPairFromSeed(fromString(seed)) : generateKeyPair()
88
- return {
89
- publicKey: toString(keyPair.publicKey, 'base64'),
90
- privateKey: toString(keyPair.secretKey, 'base64'),
91
- }
92
- }
93
-
94
- export function createKeyPairHex(seed?: string): IKeyPair {
95
- const keyPair = createKeyPairRaw(seed)
96
- return {
97
- publicKey: toString(keyPair.publicKey, 'hex'),
98
- privateKey: toString(keyPair.secretKey, 'hex'),
99
- }
100
- }
101
-
102
- export function createVerificationKeys(publicKey: string, algo: MethodSpecificIdAlgo, key: TVerificationKey<TVerificationKeyPrefix, number>, network: CheqdNetwork = CheqdNetwork.Testnet): IVerificationKeys {
103
- let methodSpecificId: TMethodSpecificId
104
- let didUrl: IVerificationKeys['didUrl']
105
-
106
- publicKey = publicKey.length == 43 ? publicKey : toString(fromString(publicKey, 'hex'), 'base64')
107
- switch (algo) {
108
- case MethodSpecificIdAlgo.Base58:
109
- methodSpecificId = bases['base58btc'].encode(base64ToBytes(publicKey))
110
- didUrl = `did:cheqd:${network}:${(bases['base58btc'].encode((fromString(sha256(publicKey))).slice(0,16))).slice(1)}`
111
- return {
112
- methodSpecificId,
113
- didUrl,
114
- keyId: `${didUrl}#${key}`,
115
- publicKey,
116
- }
117
- case MethodSpecificIdAlgo.Uuid:
118
- methodSpecificId = bases['base58btc'].encode(base64ToBytes(publicKey))
119
- didUrl = `did:cheqd:${network}:${v4()}`
120
- return {
121
- methodSpecificId,
122
- didUrl,
123
- keyId: `${didUrl}#${key}`,
124
- publicKey,
125
- }
126
- }
127
- }
128
-
129
- export function createDidVerificationMethod(verificationMethodTypes: VerificationMethods[], verificationKeys: IVerificationKeys[]): VerificationMethod[] {
130
- return verificationMethodTypes.map((type, _) => {
131
- switch (type) {
132
- case VerificationMethods.Ed255192020:
133
- return {
134
- id: verificationKeys[_].keyId,
135
- type,
136
- controller: verificationKeys[_].didUrl,
137
- publicKeyMultibase: toMultibaseRaw(base64ToBytes(verificationKeys[_].publicKey))
138
- } as VerificationMethod
139
- case VerificationMethods.Ed255192018:
140
- return {
141
- id: verificationKeys[_].keyId,
142
- type,
143
- controller: verificationKeys[_].didUrl,
144
- publicKeyBase58: verificationKeys[_].methodSpecificId.slice(1)
145
- } as VerificationMethod
146
- case VerificationMethods.JWK:
147
- return {
148
- id: verificationKeys[_].keyId,
149
- type,
150
- controller: verificationKeys[_].didUrl,
151
- publicKeyJwk: {
152
- crv: 'Ed25519',
153
- kty: 'OKP',
154
- x: toString( fromString( verificationKeys[_].publicKey, 'base64pad' ), 'base64url' )
155
- }
156
- } as VerificationMethod
157
- }
158
- }) ?? []
159
- }
160
-
161
- export function createDidPayload(verificationMethods: VerificationMethod[], verificationKeys: IVerificationKeys[]): DIDDocument {
162
- if (!verificationMethods || verificationMethods.length === 0)
163
- throw new Error('No verification methods provided')
164
- if (!verificationKeys || verificationKeys.length === 0)
165
- throw new Error('No verification keys provided')
166
-
167
- const did = verificationKeys[0].didUrl
168
- return {
169
- id: did,
170
- controller: verificationKeys.map(key => key.didUrl),
171
- verificationMethod: verificationMethods,
172
- authentication: verificationKeys.map(key => key.keyId),
173
- } as DIDDocument
174
- }
175
-
176
- export function validateSpecCompliantPayload(didDocument: DIDDocument): SpecValidationResult {
177
- // id is required, validated on both compile and runtime
178
- if (!didDocument?.id) return { valid: false, error: 'id is required' }
179
-
180
- // verificationMethod is required
181
- if (!didDocument?.verificationMethod) return { valid: false, error: 'verificationMethod is required' }
182
-
183
- // verificationMethod must be an array
184
- if (!Array.isArray(didDocument?.verificationMethod)) return { valid: false, error: 'verificationMethod must be an array' }
185
-
186
- // verificationMethod types must be supported
187
- const protoVerificationMethod = didDocument.verificationMethod.map((vm) => {
188
- switch (vm?.type) {
189
- case VerificationMethods.Ed255192020:
190
- if (!vm.publicKeyMultibase) throw new Error('publicKeyMultibase is required')
191
-
192
- return ProtoVerificationMethod.fromPartial({
193
- id: vm.id,
194
- controller: vm.controller,
195
- verificationMethodType: VerificationMethods.Ed255192020,
196
- verificationMaterial: vm.publicKeyMultibase,
197
- })
198
- case VerificationMethods.JWK:
199
- if (!vm.publicKeyJwk) throw new Error('publicKeyJwk is required')
200
-
201
- return ProtoVerificationMethod.fromPartial({
202
- id: vm.id,
203
- controller: vm.controller,
204
- verificationMethodType: VerificationMethods.JWK,
205
- verificationMaterial: JSON.stringify(vm.publicKeyJwk),
206
- })
207
- case VerificationMethods.Ed255192018:
208
- if (!vm.publicKeyBase58) throw new Error('publicKeyBase58 is required')
209
-
210
- return ProtoVerificationMethod.fromPartial({
211
- id: vm.id,
212
- controller: vm.controller,
213
- verificationMethodType: VerificationMethods.Ed255192018,
214
- verificationMaterial: vm.publicKeyBase58,
215
- })
216
- default:
217
- throw new Error(`Unsupported verificationMethod type: ${vm?.type}`)
218
- }
219
- })
220
-
221
- const protoService = didDocument?.service?.map((s) => {
222
- return ProtoService.fromPartial({
223
- id: s?.id,
224
- serviceType: s?.type,
225
- serviceEndpoint: <string[]>s?.serviceEndpoint,
226
- })
227
- })
228
-
229
- return { valid: true, protobufVerificationMethod: protoVerificationMethod, protobufService: protoService }
230
- }
231
-
232
- function sha256(message: string) {
233
- return createHash('sha256').update(message).digest('hex')
234
- }
235
-
236
- function toMultibaseRaw(key: Uint8Array) {
237
- const multibase = new Uint8Array(MULTICODEC_ED25519_HEADER.length + key.length);
238
-
239
- multibase.set(MULTICODEC_ED25519_HEADER);
240
- multibase.set(key, MULTICODEC_ED25519_HEADER.length);
241
-
242
- return bases['base58btc'].encode(multibase);
243
- }
@@ -1,135 +0,0 @@
1
- import { DirectSecp256k1HdWallet, GeneratedType } from '@cosmjs/proto-signing'
2
- import { createCheqdSDK, DIDModule, ICheqdSDKOptions, ResourceModule } from '../src/index'
3
- import { localnet, faucet } from './testutils.test'
4
- import { AbstractCheqdSDKModule } from '../src/modules/_'
5
- import { CheqdSigningStargateClient } from '../src/signer'
6
- import { createDefaultCheqdRegistry } from '../src/registry'
7
- import { CheqdQuerier } from '../src/querier'
8
- import { setupDidExtension, DidExtension, defaultDidExtensionKey } from '../src/modules/did';
9
- import { QueryExtensionSetup } from '../src/types'
10
- import { setupResourceExtension, ResourceExtension, defaultResourceExtensionKey } from '../src/modules/resource';
11
-
12
- describe(
13
- 'CheqdSDK', () => {
14
- describe('constructor', () => {
15
- it('can be instantiated with modules', async () => {
16
- const options = {
17
- modules: [DIDModule as unknown as AbstractCheqdSDKModule],
18
- rpcUrl: localnet.rpcUrl,
19
- wallet: await DirectSecp256k1HdWallet.fromMnemonic(faucet.mnemonic)
20
- } as ICheqdSDKOptions
21
- const cheqdSDK = await createCheqdSDK(options)
22
-
23
- const sdkMethods = Object.keys(cheqdSDK.methods)
24
- const testSigner = await CheqdSigningStargateClient.connectWithSigner(options.rpcUrl, options.wallet)
25
- const testQuerier = await CheqdQuerier.connectWithExtension(options.rpcUrl, setupDidExtension) as CheqdQuerier & DidExtension
26
- const moduleMethods = Object.keys(new DIDModule(testSigner, testQuerier).methods)
27
-
28
- moduleMethods.forEach((method) => {
29
- expect(sdkMethods).toContain(method)
30
- })
31
- })
32
-
33
- it('should use module methods', async () => {
34
- const rpcUrl = localnet.rpcUrl
35
- const wallet = await DirectSecp256k1HdWallet.fromMnemonic(faucet.mnemonic)
36
-
37
- class TestModule extends AbstractCheqdSDKModule {
38
- registryTypes: Iterable<[string, GeneratedType]> = []
39
- methods = {
40
- doSomething: this.doSomething.bind(this)
41
- }
42
- constructor(signer: CheqdSigningStargateClient, querier: CheqdQuerier) {
43
- super(signer, querier)
44
- }
45
- public getRegistryTypes(): Iterable<[string, GeneratedType]> {
46
- return TestModule.registryTypes
47
- }
48
- public getQuerierExtensionSetup(): QueryExtensionSetup<{}> {
49
- return () => ({})
50
- }
51
- async doSomething(): Promise<string> {
52
- return 'did something'
53
- }
54
- }
55
- const options = {
56
- modules: [TestModule as unknown as AbstractCheqdSDKModule],
57
- rpcUrl,
58
- wallet
59
- } as ICheqdSDKOptions
60
-
61
- const cheqdSDK = await createCheqdSDK(options)
62
-
63
- //@ts-ignore
64
- const doSomething = await cheqdSDK.doSomething()
65
- expect(doSomething).toBe('did something')
66
-
67
- const spy = jest.spyOn(cheqdSDK.methods, 'doSomething')
68
- //@ts-ignore
69
- await cheqdSDK.doSomething()
70
- expect(spy).toHaveBeenCalled()
71
- })
72
-
73
- it('should instantiate registry from passed modules', async () => {
74
- const options = {
75
- modules: [DIDModule as unknown as AbstractCheqdSDKModule],
76
- rpcUrl: localnet.rpcUrl,
77
- wallet: await DirectSecp256k1HdWallet.fromMnemonic(faucet.mnemonic)
78
- } as ICheqdSDKOptions
79
- const cheqdSDK = await createCheqdSDK(options)
80
-
81
- const didRegistryTypes = DIDModule.registryTypes
82
- const cheqdRegistry = createDefaultCheqdRegistry(didRegistryTypes)
83
-
84
- expect(cheqdSDK.signer.registry).toStrictEqual(cheqdRegistry)
85
- })
86
-
87
- it('should instantiate registry from multiple passed modules', async () => {
88
- const options = {
89
- modules: [DIDModule as unknown as AbstractCheqdSDKModule, ResourceModule as unknown as AbstractCheqdSDKModule],
90
- rpcUrl: localnet.rpcUrl,
91
- wallet: await DirectSecp256k1HdWallet.fromMnemonic(faucet.mnemonic)
92
- } as ICheqdSDKOptions
93
- const cheqdSDK = await createCheqdSDK(options)
94
-
95
- const didRegistryTypes = DIDModule.registryTypes
96
- const resourceRegistryTypes = ResourceModule.registryTypes
97
- const cheqdRegistry = createDefaultCheqdRegistry([...didRegistryTypes, ...resourceRegistryTypes])
98
-
99
- expect(cheqdSDK.signer.registry).toStrictEqual(cheqdRegistry)
100
- })
101
-
102
- it('should instantiate querier extension from passed modules', async () => {
103
- const options = {
104
- modules: [DIDModule as unknown as AbstractCheqdSDKModule],
105
- rpcUrl: localnet.rpcUrl,
106
- wallet: await DirectSecp256k1HdWallet.fromMnemonic(faucet.mnemonic)
107
- } as ICheqdSDKOptions
108
- const cheqdSDK = await createCheqdSDK(options)
109
-
110
- const querier = await CheqdQuerier.connectWithExtension(options.rpcUrl, setupDidExtension) as CheqdQuerier & DidExtension
111
-
112
- // we need to stringify the querier extension because it's a proxy object
113
- // and the equality check will fail
114
- expect(JSON.stringify(cheqdSDK.querier[defaultDidExtensionKey])).toStrictEqual(JSON.stringify(querier[defaultDidExtensionKey]))
115
- })
116
-
117
- it('should instantiate querier extension from multiple passed modules', async () => {
118
- const options = {
119
- modules: [DIDModule as unknown as AbstractCheqdSDKModule, ResourceModule as unknown as AbstractCheqdSDKModule],
120
- rpcUrl: localnet.rpcUrl,
121
- wallet: await DirectSecp256k1HdWallet.fromMnemonic(faucet.mnemonic)
122
- } as ICheqdSDKOptions
123
- const cheqdSDK = await createCheqdSDK(options)
124
-
125
- const didQuerier = await CheqdQuerier.connectWithExtension(options.rpcUrl, setupDidExtension) as CheqdQuerier & DidExtension
126
- const resourceQuerier = await CheqdQuerier.connectWithExtension(options.rpcUrl, setupResourceExtension) as CheqdQuerier & ResourceExtension
127
-
128
- // we need to stringify the querier extension because it's a proxy object
129
- // and the equality check will fail
130
- expect(JSON.stringify(cheqdSDK.querier[defaultDidExtensionKey])).toStrictEqual(JSON.stringify(didQuerier[defaultDidExtensionKey]))
131
- expect(JSON.stringify(cheqdSDK.querier[defaultResourceExtensionKey])).toStrictEqual(JSON.stringify(resourceQuerier[defaultResourceExtensionKey]))
132
- })
133
- })
134
- }
135
- )