@docknetwork/wallet-sdk-wasm 1.7.6 → 1.9.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 (327) hide show
  1. package/package.json +6 -7
  2. package/rollup.config.mjs +1 -0
  3. package/src/globals.d.ts +4 -1
  4. package/src/services/blockchain/cached-did-resolver.ts +4 -3
  5. package/src/services/blockchain/normalize-did-document.ts +73 -0
  6. package/src/services/blockchain/service.ts +0 -2
  7. package/src/services/credential/bbs-revocation.test.js +147 -0
  8. package/src/services/credential/bbs-revocation.ts +65 -18
  9. package/src/services/credential/config.ts +7 -0
  10. package/src/services/credential/index.test.js +261 -17
  11. package/src/services/credential/oid4vci.js +44 -0
  12. package/src/services/credential/oid4vci.test.js +162 -0
  13. package/src/services/credential/pex-helpers.js +77 -31
  14. package/src/services/credential/pex-helpers.test.js +4 -4
  15. package/src/services/credential/sd-jwt.ts +41 -5
  16. package/src/services/credential/service-rpc.js +6 -0
  17. package/src/services/credential/service.ts +171 -16
  18. package/src/services/credential/utils.js +3 -5
  19. package/src/services/delegation/index.android.js +3 -0
  20. package/src/services/delegation/index.ios.js +3 -0
  21. package/src/services/delegation/index.ts +1 -0
  22. package/src/services/delegation/service-rpc.ts +21 -0
  23. package/src/services/delegation/service.ts +59 -0
  24. package/src/services/edv/service-rpc.js +18 -2
  25. package/src/services/edv/service.test.js +327 -0
  26. package/src/services/edv/service.ts +103 -13
  27. package/src/services/index.js +2 -0
  28. package/src/wallet/rpc-storage-interface.js +9 -4
  29. package/lib/core/crypto.js +0 -45
  30. package/lib/core/crypto.mjs +0 -33
  31. package/lib/core/format-utils.js +0 -51
  32. package/lib/core/format-utils.mjs +0 -42
  33. package/lib/core/keychain.js +0 -61
  34. package/lib/core/keychain.mjs +0 -37
  35. package/lib/core/logger.js +0 -13
  36. package/lib/core/logger.mjs +0 -9
  37. package/lib/core/storage.js +0 -14
  38. package/lib/core/storage.mjs +0 -9
  39. package/lib/core/validation.js +0 -29
  40. package/lib/core/validation.mjs +0 -16
  41. package/lib/core/webview-logger.js +0 -49
  42. package/lib/core/webview-logger.mjs +0 -41
  43. package/lib/errors.js +0 -17
  44. package/lib/errors.mjs +0 -12
  45. package/lib/events.js +0 -18
  46. package/lib/events.mjs +0 -13
  47. package/lib/index.js +0 -146
  48. package/lib/index.mjs +0 -144
  49. package/lib/logger.js +0 -22
  50. package/lib/logger.mjs +0 -17
  51. package/lib/modules/event-manager.js +0 -46
  52. package/lib/modules/event-manager.mjs +0 -37
  53. package/lib/modules/network-manager.js +0 -80
  54. package/lib/modules/network-manager.mjs +0 -71
  55. package/lib/mrklt.js +0 -2
  56. package/lib/mrklt.mjs +0 -1
  57. package/lib/rpc-client.js +0 -83
  58. package/lib/rpc-client.mjs +0 -73
  59. package/lib/rpc-server.js +0 -97
  60. package/lib/rpc-server.mjs +0 -95
  61. package/lib/rpc-util.js +0 -113
  62. package/lib/rpc-util.mjs +0 -103
  63. package/lib/sandbox-rpc-server.js +0 -28
  64. package/lib/sandbox-rpc-server.mjs +0 -26
  65. package/lib/sandbox.js +0 -102
  66. package/lib/sandbox.mjs +0 -100
  67. package/lib/services/blockchain/cached-did-resolver.js +0 -113
  68. package/lib/services/blockchain/cached-did-resolver.mjs +0 -109
  69. package/lib/services/blockchain/configs.js +0 -7
  70. package/lib/services/blockchain/configs.mjs +0 -3
  71. package/lib/services/blockchain/index.android.js +0 -18
  72. package/lib/services/blockchain/index.android.mjs +0 -14
  73. package/lib/services/blockchain/index.ios.js +0 -18
  74. package/lib/services/blockchain/index.ios.mjs +0 -14
  75. package/lib/services/blockchain/index.js +0 -36
  76. package/lib/services/blockchain/index.mjs +0 -28
  77. package/lib/services/blockchain/service-rpc.js +0 -72
  78. package/lib/services/blockchain/service-rpc.mjs +0 -68
  79. package/lib/services/blockchain/service.js +0 -312
  80. package/lib/services/blockchain/service.mjs +0 -306
  81. package/lib/services/credential/bbs-revocation.js +0 -92
  82. package/lib/services/credential/bbs-revocation.mjs +0 -87
  83. package/lib/services/credential/bound-check.js +0 -77
  84. package/lib/services/credential/bound-check.mjs +0 -64
  85. package/lib/services/credential/config.js +0 -56
  86. package/lib/services/credential/config.mjs +0 -47
  87. package/lib/services/credential/delegatable-credentials.js +0 -300
  88. package/lib/services/credential/delegatable-credentials.mjs +0 -263
  89. package/lib/services/credential/index.android.js +0 -19
  90. package/lib/services/credential/index.android.mjs +0 -15
  91. package/lib/services/credential/index.ios.js +0 -19
  92. package/lib/services/credential/index.ios.mjs +0 -15
  93. package/lib/services/credential/index.js +0 -106
  94. package/lib/services/credential/index.mjs +0 -67
  95. package/lib/services/credential/pex-helpers.js +0 -333
  96. package/lib/services/credential/pex-helpers.mjs +0 -319
  97. package/lib/services/credential/range-proofs-example.js +0 -107
  98. package/lib/services/credential/range-proofs-example.mjs +0 -103
  99. package/lib/services/credential/sd-jwt.js +0 -214
  100. package/lib/services/credential/sd-jwt.mjs +0 -200
  101. package/lib/services/credential/service-rpc.js +0 -61
  102. package/lib/services/credential/service-rpc.mjs +0 -57
  103. package/lib/services/credential/service.js +0 -683
  104. package/lib/services/credential/service.mjs +0 -672
  105. package/lib/services/credential/utils.js +0 -103
  106. package/lib/services/credential/utils.mjs +0 -78
  107. package/lib/services/dids/config.js +0 -40
  108. package/lib/services/dids/config.mjs +0 -31
  109. package/lib/services/dids/index.android.js +0 -19
  110. package/lib/services/dids/index.android.mjs +0 -15
  111. package/lib/services/dids/index.ios.js +0 -19
  112. package/lib/services/dids/index.ios.mjs +0 -15
  113. package/lib/services/dids/index.js +0 -23
  114. package/lib/services/dids/index.mjs +0 -19
  115. package/lib/services/dids/keypair-utils.js +0 -142
  116. package/lib/services/dids/keypair-utils.mjs +0 -113
  117. package/lib/services/dids/service-rpc.js +0 -37
  118. package/lib/services/dids/service-rpc.mjs +0 -33
  119. package/lib/services/dids/service.js +0 -100
  120. package/lib/services/dids/service.mjs +0 -92
  121. package/lib/services/edv/configs.js +0 -25
  122. package/lib/services/edv/configs.mjs +0 -16
  123. package/lib/services/edv/hmac.js +0 -88
  124. package/lib/services/edv/hmac.mjs +0 -63
  125. package/lib/services/edv/index.android.js +0 -19
  126. package/lib/services/edv/index.android.mjs +0 -15
  127. package/lib/services/edv/index.ios.js +0 -19
  128. package/lib/services/edv/index.ios.mjs +0 -15
  129. package/lib/services/edv/index.js +0 -32
  130. package/lib/services/edv/index.mjs +0 -24
  131. package/lib/services/edv/service-rpc.js +0 -78
  132. package/lib/services/edv/service-rpc.mjs +0 -74
  133. package/lib/services/edv/service.js +0 -370
  134. package/lib/services/edv/service.mjs +0 -357
  135. package/lib/services/index.js +0 -94
  136. package/lib/services/index.mjs +0 -92
  137. package/lib/services/pex/config.js +0 -29
  138. package/lib/services/pex/config.mjs +0 -20
  139. package/lib/services/pex/index.android.js +0 -19
  140. package/lib/services/pex/index.android.mjs +0 -15
  141. package/lib/services/pex/index.ios.js +0 -19
  142. package/lib/services/pex/index.ios.mjs +0 -15
  143. package/lib/services/pex/index.js +0 -12
  144. package/lib/services/pex/index.mjs +0 -4
  145. package/lib/services/pex/service-rpc.js +0 -39
  146. package/lib/services/pex/service-rpc.mjs +0 -35
  147. package/lib/services/pex/service.js +0 -91
  148. package/lib/services/pex/service.mjs +0 -86
  149. package/lib/services/pex/tests/jest.config.js +0 -25
  150. package/lib/services/pex/tests/jest.config.mjs +0 -23
  151. package/lib/services/relay-service/configs.js +0 -45
  152. package/lib/services/relay-service/configs.mjs +0 -36
  153. package/lib/services/relay-service/index.android.js +0 -21
  154. package/lib/services/relay-service/index.android.mjs +0 -17
  155. package/lib/services/relay-service/index.ios.js +0 -21
  156. package/lib/services/relay-service/index.ios.mjs +0 -17
  157. package/lib/services/relay-service/index.js +0 -14
  158. package/lib/services/relay-service/index.mjs +0 -6
  159. package/lib/services/relay-service/service-rpc.js +0 -47
  160. package/lib/services/relay-service/service-rpc.mjs +0 -43
  161. package/lib/services/relay-service/service.js +0 -181
  162. package/lib/services/relay-service/service.mjs +0 -173
  163. package/lib/services/rpc-service-client.js +0 -36
  164. package/lib/services/rpc-service-client.mjs +0 -28
  165. package/lib/services/sandbox.js +0 -10
  166. package/lib/services/sandbox.mjs +0 -8
  167. package/lib/services/storage/configs.js +0 -7
  168. package/lib/services/storage/configs.mjs +0 -3
  169. package/lib/services/storage/index.android.js +0 -18
  170. package/lib/services/storage/index.android.mjs +0 -14
  171. package/lib/services/storage/index.ios.js +0 -18
  172. package/lib/services/storage/index.ios.mjs +0 -14
  173. package/lib/services/storage/index.js +0 -26
  174. package/lib/services/storage/index.mjs +0 -24
  175. package/lib/services/storage/service-rpc.js +0 -37
  176. package/lib/services/storage/service-rpc.mjs +0 -33
  177. package/lib/services/storage/service.js +0 -32
  178. package/lib/services/storage/service.mjs +0 -27
  179. package/lib/services/test-utils.js +0 -98
  180. package/lib/services/test-utils.mjs +0 -84
  181. package/lib/services/util-crypto/configs.js +0 -23
  182. package/lib/services/util-crypto/configs.mjs +0 -15
  183. package/lib/services/util-crypto/index.android.js +0 -19
  184. package/lib/services/util-crypto/index.android.mjs +0 -15
  185. package/lib/services/util-crypto/index.ios.js +0 -19
  186. package/lib/services/util-crypto/index.ios.mjs +0 -15
  187. package/lib/services/util-crypto/index.js +0 -14
  188. package/lib/services/util-crypto/index.mjs +0 -6
  189. package/lib/services/util-crypto/service-rpc.js +0 -42
  190. package/lib/services/util-crypto/service-rpc.mjs +0 -38
  191. package/lib/services/util-crypto/service.js +0 -108
  192. package/lib/services/util-crypto/service.mjs +0 -83
  193. package/lib/services/wallet/configs.js +0 -32
  194. package/lib/services/wallet/configs.mjs +0 -23
  195. package/lib/services/wallet/index.android.js +0 -21
  196. package/lib/services/wallet/index.android.mjs +0 -17
  197. package/lib/services/wallet/index.ios.js +0 -21
  198. package/lib/services/wallet/index.ios.mjs +0 -17
  199. package/lib/services/wallet/index.js +0 -17
  200. package/lib/services/wallet/index.mjs +0 -9
  201. package/lib/services/wallet/service-rpc.js +0 -33
  202. package/lib/services/wallet/service-rpc.mjs +0 -29
  203. package/lib/services/wallet/service.js +0 -62
  204. package/lib/services/wallet/service.mjs +0 -57
  205. package/lib/setup-nodejs.js +0 -93
  206. package/lib/setup-nodejs.mjs +0 -91
  207. package/lib/setup-tests.js +0 -92
  208. package/lib/setup-tests.mjs +0 -90
  209. package/lib/src/core/crypto.d.ts +0 -8
  210. package/lib/src/core/crypto.d.ts.map +0 -1
  211. package/lib/src/core/format-utils.d.ts +0 -26
  212. package/lib/src/core/format-utils.d.ts.map +0 -1
  213. package/lib/src/core/logger.d.ts +0 -3
  214. package/lib/src/core/logger.d.ts.map +0 -1
  215. package/lib/src/core/storage.d.ts +0 -8
  216. package/lib/src/core/storage.d.ts.map +0 -1
  217. package/lib/src/core/validation.d.ts +0 -6
  218. package/lib/src/core/validation.d.ts.map +0 -1
  219. package/lib/src/errors.d.ts +0 -7
  220. package/lib/src/errors.d.ts.map +0 -1
  221. package/lib/src/logger.d.ts +0 -5
  222. package/lib/src/logger.d.ts.map +0 -1
  223. package/lib/src/modules/event-manager.d.ts +0 -12
  224. package/lib/src/modules/event-manager.d.ts.map +0 -1
  225. package/lib/src/modules/network-manager.d.ts +0 -32
  226. package/lib/src/modules/network-manager.d.ts.map +0 -1
  227. package/lib/src/rpc-client.d.ts +0 -4
  228. package/lib/src/rpc-client.d.ts.map +0 -1
  229. package/lib/src/rpc-util.d.ts +0 -11
  230. package/lib/src/rpc-util.d.ts.map +0 -1
  231. package/lib/src/services/blockchain/cached-did-resolver.d.ts +0 -28
  232. package/lib/src/services/blockchain/cached-did-resolver.d.ts.map +0 -1
  233. package/lib/src/services/blockchain/cached-did-resolver.test.d.ts +0 -2
  234. package/lib/src/services/blockchain/cached-did-resolver.test.d.ts.map +0 -1
  235. package/lib/src/services/blockchain/configs.d.ts +0 -7
  236. package/lib/src/services/blockchain/configs.d.ts.map +0 -1
  237. package/lib/src/services/blockchain/service.d.ts +0 -155
  238. package/lib/src/services/blockchain/service.d.ts.map +0 -1
  239. package/lib/src/services/credential/bbs-revocation.d.ts +0 -10
  240. package/lib/src/services/credential/bbs-revocation.d.ts.map +0 -1
  241. package/lib/src/services/credential/bound-check.d.ts +0 -61
  242. package/lib/src/services/credential/bound-check.d.ts.map +0 -1
  243. package/lib/src/services/credential/bound-check.test.d.ts +0 -2
  244. package/lib/src/services/credential/bound-check.test.d.ts.map +0 -1
  245. package/lib/src/services/credential/config.d.ts +0 -10
  246. package/lib/src/services/credential/config.d.ts.map +0 -1
  247. package/lib/src/services/credential/delegatable-credentials.d.ts +0 -272
  248. package/lib/src/services/credential/delegatable-credentials.d.ts.map +0 -1
  249. package/lib/src/services/credential/index.d.ts +0 -35
  250. package/lib/src/services/credential/index.d.ts.map +0 -1
  251. package/lib/src/services/credential/pex-helpers.d.ts +0 -23
  252. package/lib/src/services/credential/pex-helpers.d.ts.map +0 -1
  253. package/lib/src/services/credential/range-proofs-example.d.ts +0 -2
  254. package/lib/src/services/credential/range-proofs-example.d.ts.map +0 -1
  255. package/lib/src/services/credential/sd-jwt.test.d.ts +0 -2
  256. package/lib/src/services/credential/sd-jwt.test.d.ts.map +0 -1
  257. package/lib/src/services/credential/service.d.ts +0 -313
  258. package/lib/src/services/credential/service.d.ts.map +0 -1
  259. package/lib/src/services/credential/utils.d.ts +0 -3
  260. package/lib/src/services/credential/utils.d.ts.map +0 -1
  261. package/lib/src/services/dids/config.d.ts +0 -24
  262. package/lib/src/services/dids/config.d.ts.map +0 -1
  263. package/lib/src/services/dids/keypair-utils.d.ts +0 -15
  264. package/lib/src/services/dids/keypair-utils.d.ts.map +0 -1
  265. package/lib/src/services/dids/service-rpc.d.ts +0 -11
  266. package/lib/src/services/dids/service-rpc.d.ts.map +0 -1
  267. package/lib/src/services/dids/service.d.ts +0 -70
  268. package/lib/src/services/dids/service.d.ts.map +0 -1
  269. package/lib/src/services/edv/configs.d.ts +0 -12
  270. package/lib/src/services/edv/configs.d.ts.map +0 -1
  271. package/lib/src/services/edv/hmac.d.ts +0 -29
  272. package/lib/src/services/edv/hmac.d.ts.map +0 -1
  273. package/lib/src/services/edv/service.d.ts +0 -229
  274. package/lib/src/services/edv/service.d.ts.map +0 -1
  275. package/lib/src/services/pex/config.d.ts +0 -21
  276. package/lib/src/services/pex/config.d.ts.map +0 -1
  277. package/lib/src/services/pex/service.d.ts +0 -21
  278. package/lib/src/services/pex/service.d.ts.map +0 -1
  279. package/lib/src/services/relay-service/configs.d.ts +0 -35
  280. package/lib/src/services/relay-service/configs.d.ts.map +0 -1
  281. package/lib/src/services/relay-service/service-rpc.d.ts +0 -12
  282. package/lib/src/services/relay-service/service-rpc.d.ts.map +0 -1
  283. package/lib/src/services/relay-service/service.d.ts +0 -159
  284. package/lib/src/services/relay-service/service.d.ts.map +0 -1
  285. package/lib/src/services/rpc-service-client.d.ts +0 -7
  286. package/lib/src/services/rpc-service-client.d.ts.map +0 -1
  287. package/lib/src/services/storage/configs.d.ts +0 -2
  288. package/lib/src/services/storage/configs.d.ts.map +0 -1
  289. package/lib/src/services/storage/index.d.ts +0 -2
  290. package/lib/src/services/storage/index.d.ts.map +0 -1
  291. package/lib/src/services/storage/service-rpc.d.ts +0 -9
  292. package/lib/src/services/storage/service-rpc.d.ts.map +0 -1
  293. package/lib/src/services/storage/service.d.ts +0 -10
  294. package/lib/src/services/storage/service.d.ts.map +0 -1
  295. package/lib/src/services/util-crypto/configs.d.ts +0 -5
  296. package/lib/src/services/util-crypto/configs.d.ts.map +0 -1
  297. package/lib/src/services/util-crypto/index.d.ts +0 -2
  298. package/lib/src/services/util-crypto/index.d.ts.map +0 -1
  299. package/lib/src/services/util-crypto/service.d.ts +0 -10
  300. package/lib/src/services/util-crypto/service.d.ts.map +0 -1
  301. package/lib/src/services/wallet/configs.d.ts +0 -13
  302. package/lib/src/services/wallet/configs.d.ts.map +0 -1
  303. package/lib/src/services/wallet/service.d.ts +0 -13
  304. package/lib/src/services/wallet/service.d.ts.map +0 -1
  305. package/lib/src/types.d.ts +0 -12
  306. package/lib/src/types.d.ts.map +0 -1
  307. package/lib/src/wallet/memory-storage-interface.d.ts +0 -31
  308. package/lib/src/wallet/memory-storage-interface.d.ts.map +0 -1
  309. package/lib/src/wallet/memory-storage-wallet.d.ts +0 -6
  310. package/lib/src/wallet/memory-storage-wallet.d.ts.map +0 -1
  311. package/lib/src/wallet/rpc-storage-interface.d.ts +0 -32
  312. package/lib/src/wallet/rpc-storage-interface.d.ts.map +0 -1
  313. package/lib/src/wallet/rpc-storage-wallet.d.ts +0 -6
  314. package/lib/src/wallet/rpc-storage-wallet.d.ts.map +0 -1
  315. package/lib/test-utils.js +0 -46
  316. package/lib/test-utils.mjs +0 -38
  317. package/lib/tsconfig.tsbuildinfo +0 -1
  318. package/lib/types.js +0 -7
  319. package/lib/types.mjs +0 -3
  320. package/lib/wallet/memory-storage-interface.js +0 -101
  321. package/lib/wallet/memory-storage-interface.mjs +0 -95
  322. package/lib/wallet/memory-storage-wallet.js +0 -30
  323. package/lib/wallet/memory-storage-wallet.mjs +0 -24
  324. package/lib/wallet/rpc-storage-interface.js +0 -134
  325. package/lib/wallet/rpc-storage-interface.mjs +0 -128
  326. package/lib/wallet/rpc-storage-wallet.js +0 -46
  327. package/lib/wallet/rpc-storage-wallet.mjs +0 -40
@@ -1,683 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- var services_credential_config = require('./config.js');
6
- var cryptoWasmTs = require('@docknetwork/crypto-wasm-ts');
7
- var oid4vciClient = require('@sphereon/oid4vci-client');
8
- var oid4vciCommon = require('@sphereon/oid4vci-common');
9
- var keypairs = require('@docknetwork/universal-wallet/methods/keypairs');
10
- var utils = require('@docknetwork/credential-sdk/utils');
11
- var vc = require('@docknetwork/credential-sdk/vc');
12
- var pex$1 = require('@sphereon/pex');
13
- var services_blockchain_service = require('../blockchain/service.js');
14
- var services_credential_boundCheck = require('./bound-check.js');
15
- var assert = require('assert');
16
- var services_credential_bbsRevocation = require('./bbs-revocation.js');
17
- var services_credential_pexHelpers = require('./pex-helpers.js');
18
- var services_dids_service = require('../dids/service.js');
19
- var services_credential_sdJwt = require('./sd-jwt.js');
20
- require('@cosmjs/proto-signing');
21
- require('@docknetwork/cheqd-blockchain-api');
22
- require('@docknetwork/cheqd-blockchain-modules');
23
- require('@docknetwork/credential-sdk/modules');
24
- require('@docknetwork/credential-sdk/resolver');
25
- require('@docknetwork/crypto-wasm-ts/lib/index');
26
- require('events');
27
- require('../../core/logger.js');
28
- require('../../modules/event-manager.js');
29
- require('../util-crypto/service.js');
30
- require('@scure/bip39');
31
- require('@scure/bip39/wordlists/english');
32
- require('../util-crypto/configs.js');
33
- require('@docknetwork/credential-sdk/types');
34
- require('../blockchain/cached-did-resolver.js');
35
- require('../storage/index.js');
36
- require('../storage/service.js');
37
- require('../storage/service-rpc.js');
38
- require('../rpc-service-client.js');
39
- require('../../rpc-client.js');
40
- require('json-rpc-2.0');
41
- require('../../core/crypto.js');
42
- require('crypto');
43
- require('../../logger.js');
44
- require('../../rpc-util.js');
45
- require('@docknetwork/crypto-wasm-ts/lib/legosnark');
46
- require('base64url');
47
- require('@astronautlabs/jsonpath');
48
- require('@docknetwork/wallet-sdk-dids/lib');
49
- require('../dids/config.js');
50
- require('@docknetwork/credential-sdk/keypairs');
51
- require('./utils.js');
52
- require('base58-universal');
53
- require('@docknetwork/credential-sdk/vc/crypto');
54
- require('@digitalbazaar/x25519-key-agreement-key-2020');
55
- require('@digitalbazaar/x25519-key-agreement-key-2019');
56
- require('@digitalbazaar/ed25519-verification-key-2018');
57
- require('@digitalbazaar/ed25519-verification-key-2020');
58
- require('../dids/keypair-utils.js');
59
- require('@sd-jwt/sd-jwt-vc');
60
- require('@sd-jwt/crypto-nodejs');
61
-
62
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
63
-
64
- var assert__default = /*#__PURE__*/_interopDefaultLegacy(assert);
65
-
66
- // @ts-nocheck
67
- /**
68
- * PEX (Presentation Exchange) instance for credential filtering
69
- * @private
70
- */
71
- const pex = new pex$1.PEX();
72
- /**
73
- * Checks if a credential uses BBS+ signature
74
- * @param {Object} credential - The credential to check
75
- * @returns {boolean} True if the credential uses BBS+ signature
76
- * @example
77
- * const isBBS = isBBSPlusCredential(credential);
78
- * if (isBBS) {
79
- * console.log('This credential uses BBS+ signatures');
80
- * }
81
- */
82
- function isBBSPlusCredential(credential) {
83
- return ((typeof credential?.proof?.type === 'string' &&
84
- credential.proof.type.includes('BBS+SignatureDock')) ||
85
- (Array.isArray(credential['@context']) &&
86
- credential['@context'].find(context => typeof context === 'string' && context.indexOf('bbs') > -1)));
87
- }
88
- /**
89
- * Checks if a credential uses KVAC (BBDT16) signature
90
- * @param {Object} credential - The credential to check
91
- * @returns {boolean} True if the credential uses KVAC signature
92
- * @example
93
- * const isKVAC = isKvacCredential(credential);
94
- */
95
- function isKvacCredential(credential) {
96
- return (typeof credential?.proof?.type === 'string' &&
97
- credential.proof.type.toLowerCase().includes('bbdt16'));
98
- }
99
- /**
100
- * Checks if a credential is anonymous (BBS+ or KVAC)
101
- * @param {Object} credential - The credential to check
102
- * @returns {boolean} True if the credential is anonymous
103
- * @example
104
- * if (isAnnonymousCredential(credential)) {
105
- * console.log('This credential supports selective disclosure');
106
- * }
107
- */
108
- function isAnnonymousCredential(credential) {
109
- return isBBSPlusCredential(credential) || isKvacCredential(credential);
110
- }
111
- /**
112
- * Service class for managing verifiable credentials
113
- * @class
114
- * @description Provides methods for creating, signing, verifying, and presenting
115
- * verifiable credentials with support for various signature types
116
- */
117
- class CredentialService {
118
- /**
119
- * Creates a new CredentialService instance
120
- * @constructor
121
- */
122
- constructor() {
123
- this.name = services_credential_config.serviceName;
124
- }
125
- rpcMethods = [
126
- CredentialService.prototype.generateCredential,
127
- CredentialService.prototype.signCredential,
128
- CredentialService.prototype.createPresentation,
129
- CredentialService.prototype.verifyCredential,
130
- CredentialService.prototype.createBBSPresentation,
131
- CredentialService.prototype.deriveVCFromPresentation,
132
- CredentialService.prototype.isBBSPlusCredential,
133
- CredentialService.prototype.isKvacCredential,
134
- CredentialService.prototype.isSDJWTCredential,
135
- CredentialService.prototype.credentialToW3C,
136
- CredentialService.prototype.createSDJWTPresentation,
137
- CredentialService.prototype.acquireOIDCredential,
138
- ];
139
- createSDJWTPresentation(params) {
140
- const { attributesToReveal, credential } = params;
141
- return services_credential_sdJwt.createSDJWTPresentation({ attributesToReveal, credential });
142
- }
143
- /**
144
- * Generates a new verifiable credential template
145
- * @param {Object} [params={}] - Generation parameters
146
- * @param {Object} [params.subject] - The credential subject
147
- * @returns {VerifiableCredential} A new verifiable credential instance
148
- * @example
149
- * const credential = credentialService.generateCredential({
150
- * subject: { id: 'did:example:123', name: 'Alice' }
151
- * });
152
- */
153
- generateCredential(params = {}) {
154
- services_credential_config.validation.generateCredential(params);
155
- const { subject } = params;
156
- const vc$1 = new vc.VerifiableCredential();
157
- vc$1.addType('DockAuthCredential');
158
- vc$1.addContext({
159
- dk: 'https://ld.dock.io/credentials#',
160
- DockAuthCredential: 'dk:DockAuthCredential',
161
- });
162
- if (subject) {
163
- vc$1.setSubject(subject);
164
- vc$1.addContext({
165
- state: 'dk:state',
166
- });
167
- }
168
- return vc$1;
169
- }
170
- /**
171
- * Signs a verifiable credential
172
- * @param {Object} params - Signing parameters
173
- * @param {Object} params.vcJson - The credential JSON to sign
174
- * @param {Object} params.keyDoc - The key document for signing
175
- * @returns {Promise<VerifiableCredential>} The signed verifiable credential
176
- * @throws {Error} If validation fails or signing fails
177
- * @example
178
- * const signedCredential = await credentialService.signCredential({
179
- * vcJson: credentialData,
180
- * keyDoc: issuerKeyDocument
181
- * });
182
- */
183
- async signCredential(params) {
184
- services_credential_config.validation.signCredential(params);
185
- const { vcJson, keyDoc } = params;
186
- const verifiableCredential = new vc.VerifiableCredential();
187
- verifiableCredential.setFromJSON(vcJson);
188
- const kp = keypairs.getKeypairFromDoc(keyDoc);
189
- kp.signer = kp.signer();
190
- const suite = await vc.getSuiteFromKeyDoc(kp);
191
- verifiableCredential.setIssuer(keyDoc.controller);
192
- await verifiableCredential.sign(suite);
193
- return verifiableCredential;
194
- }
195
- /**
196
- * Creates a verifiable presentation from credentials
197
- * @param {Object} params - Presentation parameters
198
- * @param {Array<Object>} params.credentials - Array of verifiable credentials to include
199
- * @param {Object} params.keyDoc - The key document for signing the presentation
200
- * @param {string} [params.challenge] - Challenge string for the presentation proof
201
- * @param {string} [params.id] - Presentation identifier
202
- * @param {string} [params.domain] - Domain for the presentation proof
203
- * @returns {Promise<Object>} The signed verifiable presentation
204
- * @throws {Error} If validation fails
205
- * @example
206
- * const presentation = await credentialService.createPresentation({
207
- * credentials: [credential1, credential2],
208
- * keyDoc: holderKeyDocument,
209
- * challenge: 'abc123',
210
- * domain: 'example.com'
211
- * });
212
- */
213
- async createPresentation(params) {
214
- services_credential_config.validation.createPresentation(params);
215
- const { credentials, keyDoc, challenge, id, domain } = params;
216
- const vp = new vc.VerifiablePresentation(id);
217
- let shouldSkipSigning = false;
218
- let jwtCredentials = [];
219
- for (const signedVC of credentials) {
220
- if (typeof signedVC === 'string') {
221
- jwtCredentials.push(signedVC);
222
- shouldSkipSigning = true;
223
- }
224
- else {
225
- vp.addCredential(signedVC);
226
- }
227
- shouldSkipSigning = shouldSkipSigning || isAnnonymousCredential(signedVC);
228
- }
229
- if (!shouldSkipSigning) {
230
- vp.setHolder(keyDoc.controller);
231
- }
232
- const keyPair = keypairs.getKeypairFromDoc(keyDoc);
233
- keyPair.signer = keyPair.signer();
234
- const suite = await vc.getSuiteFromKeyDoc(keyPair);
235
- if (shouldSkipSigning) {
236
- const result = vp.toJSON();
237
- result.verifiableCredential.push(...jwtCredentials);
238
- return result;
239
- }
240
- return vp.sign(suite, challenge, domain, services_blockchain_service.blockchainService.resolver);
241
- }
242
- /**
243
- * Verifies a verifiable presentation
244
- * @param {Object} params - Verification parameters
245
- * @param {Object} params.presentation - The presentation to verify
246
- * @param {Object} [params.options] - Verification options
247
- * @returns {Promise<Object>} Verification result with verified status and any errors
248
- * @example
249
- * const result = await credentialService.verifyPresentation({
250
- * presentation: presentationData
251
- * });
252
- * console.log('Verified:', result.verified);
253
- */
254
- async verifyPresentation({ presentation, options }) {
255
- return vc.verifyPresentation(presentation, options);
256
- }
257
- /**
258
- * Verifies a verifiable credential including revocation check
259
- * @param {Object} params - Verification parameters
260
- * @param {Object} params.credential - The credential to verify
261
- * @param {Object} [params.membershipWitness] - Membership witness for revocation check
262
- * @returns {Promise<Object>} Verification result
263
- * @returns {boolean} returns.verified - Whether the credential is valid
264
- * @returns {string} [returns.error] - Error message if verification failed
265
- * @throws {Error} If validation fails
266
- * @example
267
- * const result = await credentialService.verifyCredential({
268
- * credential: credentialData,
269
- * membershipWitness: witnessData
270
- * });
271
- * if (!result.verified) {
272
- * console.error('Verification failed:', result.error);
273
- * }
274
- */
275
- async verifyCredential(params) {
276
- services_credential_config.validation.verifyCredential(params);
277
- let { credential, membershipWitness } = params;
278
- if (credential._sd_jwt) {
279
- credential = credential?._sd_jwt?.encoded;
280
- }
281
- if (typeof credential === 'string' && services_credential_sdJwt.isSDJWTCredential(credential)) {
282
- return services_credential_sdJwt.verifySDJWT(credential);
283
- }
284
- const result = await vc.verifyCredential(credential, {
285
- resolver: services_blockchain_service.blockchainService.resolver,
286
- revocationApi: { dock: services_blockchain_service.blockchainService.dock },
287
- });
288
- const { credentialStatus } = credential;
289
- if (result.verified && credentialStatus?.id) {
290
- try {
291
- const isRevoked = await services_credential_bbsRevocation.getIsRevoked(credential, membershipWitness);
292
- if (isRevoked) {
293
- result.verified = false;
294
- result.error = 'revocation check: the credential is revoked';
295
- }
296
- }
297
- catch (err) {
298
- console.log('Unable to get revocation status');
299
- console.error(err);
300
- }
301
- }
302
- return result;
303
- }
304
- /**
305
- * Filters credentials based on a presentation definition
306
- * @param {Object} params - Filter parameters
307
- * @param {Array<Object>} params.credentials - Array of credentials to filter
308
- * @param {Object} params.presentationDefinition - PEX presentation definition
309
- * @param {string} [params.holderDid] - DID of the credential holder
310
- * @returns {Object} Filtered credentials matching the presentation definition
311
- * @example
312
- * const filtered = credentialService.filterCredentials({
313
- * credentials: allCredentials,
314
- * presentationDefinition: definition,
315
- * holderDid: 'did:example:holder'
316
- * });
317
- */
318
- filterCredentials(params) {
319
- const { credentials, presentationDefinition, holderDid } = params;
320
- const result = pex.selectFrom(presentationDefinition, credentials, holderDid);
321
- return result;
322
- }
323
- /**
324
- * Evaluates a presentation against a presentation definition
325
- * @param {Object} params - Evaluation parameters
326
- * @param {Object} params.presentation - The presentation to evaluate
327
- * @param {Object} params.presentationDefinition - PEX presentation definition
328
- * @returns {Object} Evaluation result with validation details
329
- * @example
330
- * const evaluation = credentialService.evaluatePresentation({
331
- * presentation: presentationData,
332
- * presentationDefinition: definition
333
- * });
334
- */
335
- evaluatePresentation(params) {
336
- const { presentation, presentationDefinition } = params;
337
- const result = pex.evaluatePresentation(presentationDefinition, presentation);
338
- return result;
339
- }
340
- /**
341
- * Checks if a credential uses BBS+ signature
342
- * @param {Object} params - Check parameters
343
- * @param {Object} params.credential - The credential to check
344
- * @returns {boolean} True if the credential uses BBS+ signature
345
- */
346
- isBBSPlusCredential(params) {
347
- const { credential } = params;
348
- return isBBSPlusCredential(credential);
349
- }
350
- /**
351
- * Checks if a credential uses KVAC signature
352
- * @param {Object} params - Check parameters
353
- * @param {Object} params.credential - The credential to check
354
- * @returns {boolean} True if the credential uses KVAC signature
355
- */
356
- isKvacCredential(params) {
357
- const { credential } = params;
358
- return isKvacCredential(credential);
359
- }
360
- /**
361
- * Checks if a credential is an SD-JWT (Selective Disclosure JWT) credential
362
- * @param {Object} params - Check parameters
363
- * @param {string} params.credential - The JWT string to check
364
- * @returns {boolean} True if the credential is an SD-JWT credential
365
- * @example
366
- * const isSDJWT = credentialService.isSDJWTCredential({
367
- * credential: 'eyJ0eXAiOiJ2YytzZC1qd3Q...'
368
- * });
369
- */
370
- isSDJWTCredential(params) {
371
- const { credential } = params;
372
- return services_credential_sdJwt.isSDJWTCredential(credential);
373
- }
374
- /**
375
- * Converts a credential to W3C Verifiable Credential format
376
- * @description Handles both SD-JWT credentials (needs decoding) and regular W3C credentials (returns as-is)
377
- * @param {Object} params - Conversion parameters
378
- * @param {string|Object} params.credential - Either an SD-JWT string or a credential object
379
- * @returns {Promise<Object>} W3C Verifiable Credential format
380
- * @throws {Error} If credential cannot be converted to W3C format
381
- * @example
382
- * // Convert SD-JWT to W3C format
383
- * const w3cCredential = await credentialService.credentialToW3C({
384
- * credential: 'eyJ0eXAiOiJ2YytzZC1qd3Q...'
385
- * });
386
- *
387
- * // Returns W3C credential as-is
388
- * const w3cCredential = await credentialService.credentialToW3C({
389
- * credential: { '@context': [...], type: [...], ... }
390
- * });
391
- */
392
- async credentialToW3C(params) {
393
- const { credential } = params;
394
- return services_credential_sdJwt.credentialToW3C(credential);
395
- }
396
- /**
397
- * Acquires a credential through OpenID for Verifiable Credentials (OID4VC)
398
- * @param {Object} params - Acquisition parameters
399
- * @param {string} params.uri - The credential offer URI
400
- * @param {string} [params.authorizationCode] - Authorization code if required
401
- * @param {Object} params.holderKeyDocument - Key document for the credential holder
402
- * @returns {Promise<Object>} Result containing the credential or authorization URL
403
- * @returns {Object} [returns.credential] - The acquired credential
404
- * @returns {string} [returns.authorizationURL] - Authorization URL if auth is required
405
- * @example
406
- * const result = await credentialService.acquireOIDCredential({
407
- * uri: 'openid-credential-offer://...',
408
- * holderKeyDocument: keyDoc
409
- * });
410
- */
411
- async acquireOIDCredential({ uri, authorizationCode, holderKeyDocument, }) {
412
- const searchParams = new URL(uri).searchParams;
413
- new URLSearchParams(searchParams);
414
- const client = await oid4vciClient.OpenID4VCIClientV1_0_13.fromURI({
415
- uri: uri,
416
- clientId: 'dock.wallet',
417
- authorizationRequest: {
418
- redirectUri: 'dock-wallet://credentials/callback',
419
- clientId: 'dock.wallet',
420
- // Hack: we need the scope property to avoid 'CredentialOffer format is wrong.' error
421
- scope: []
422
- },
423
- });
424
- const format = 'ldp_vc';
425
- const { scope } = client.getCredentialsSupported()[0];
426
- const scopeSplit = scope.split(':');
427
- const credentialTypes = scopeSplit[scopeSplit.length - 1];
428
- let code;
429
- if (client.credentialOffer?.preAuthorizedCode) {
430
- code = client.credentialOffer?.preAuthorizedCode;
431
- }
432
- else {
433
- if (authorizationCode) {
434
- code = authorizationCode;
435
- }
436
- else {
437
- return {
438
- authorizationURL: client.authorizationURL,
439
- };
440
- }
441
- }
442
- await client.acquireAccessToken({
443
- code,
444
- });
445
- try {
446
- const response = await client.acquireCredentials({
447
- credentialTypes,
448
- proofCallbacks: {
449
- signCallback: async (args) => {
450
- // use service method here
451
- const jwt = await services_dids_service.didService.createSignedJWT({
452
- payload: args.payload,
453
- privateKeyDoc: holderKeyDocument,
454
- headerInput: args.header,
455
- });
456
- return jwt;
457
- },
458
- },
459
- context: 'truverawallet',
460
- format: format,
461
- alg: oid4vciCommon.Alg.EdDSA,
462
- kid: holderKeyDocument.id,
463
- });
464
- return {
465
- credential: response.credential,
466
- };
467
- }
468
- catch (err) {
469
- console.error(err);
470
- }
471
- }
472
- /**
473
- * Creates a BBS+ presentation with selective disclosure
474
- * @param {Object} params - Presentation parameters
475
- * @param {Array<Object>} params.credentials - Array of credentials with attributes to reveal
476
- * @param {Object} params.credentials[].credential - The BBS+ credential
477
- * @param {Array<string>} [params.credentials[].attributesToReveal] - Attributes to reveal
478
- * @returns {Promise<Object>} The BBS+ presentation
479
- * @throws {Error} If validation fails
480
- * @example
481
- * const presentation = await credentialService.createBBSPresentation({
482
- * credentials: [{
483
- * credential: bbsCredential,
484
- * attributesToReveal: ['name', 'age']
485
- * }]
486
- * });
487
- */
488
- async createBBSPresentation(params) {
489
- services_credential_config.validation.createBBSPresentation(params);
490
- const { credentials } = params;
491
- const bbsPlusPresentation = new vc.Presentation();
492
- for (const { credential, attributesToReveal } of credentials) {
493
- const idx = await bbsPlusPresentation.addCredentialToPresent(credential, {
494
- resolver: services_blockchain_service.blockchainService.resolver,
495
- });
496
- if (Array.isArray(attributesToReveal) && attributesToReveal.length > 0) {
497
- await bbsPlusPresentation.addAttributeToReveal(idx, attributesToReveal);
498
- }
499
- }
500
- return bbsPlusPresentation.createPresentation();
501
- }
502
- /**
503
- * Gets the accumulator ID from a credential's status
504
- * @param {Object} params - Parameters
505
- * @param {Object} params.credential - The credential to get accumulator ID from
506
- * @returns {string|null} The accumulator ID or null if not present
507
- * @throws {Error} If credential is not provided
508
- */
509
- getAccumulatorId({ credential }) {
510
- assert__default["default"](!!credential, `credential is required`);
511
- if (!credential?.credentialStatus) {
512
- return null;
513
- }
514
- return credential?.credentialStatus.id;
515
- }
516
- /**
517
- * Gets accumulator data from the blockchain for a credential
518
- * @param {Object} params - Parameters
519
- * @param {Object} params.credential - The credential to get accumulator data for
520
- * @returns {Promise<Object|null>} The accumulator data or null if not found
521
- * @throws {Error} If credential is not provided
522
- */
523
- async getAccumulatorData({ credential }) {
524
- assert__default["default"](!!credential, `credential is required`);
525
- const accumulatorId = await this.getAccumulatorId({ credential });
526
- if (!accumulatorId) {
527
- return null;
528
- }
529
- return services_blockchain_service.blockchainService.dock.accumulatorModule.getAccumulator(accumulatorId, false);
530
- }
531
- /**
532
- * Updates the membership witness with the latest accumulator state
533
- * @description The witness is generated by the issuer when the credential is created
534
- * and is stored in the wallet when the credential is imported. This method updates
535
- * it with the latest accumulator changes from the blockchain.
536
- * @param {Object} params - Update parameters
537
- * @param {Object} params.credential - The credential with revocation status
538
- * @param {Object} params.membershipWitnessJSON - Current membership witness in JSON format
539
- * @returns {Promise<Object>} Updated membership witness in JSON format
540
- * @throws {Error} If updates cannot be fetched or applied
541
- */
542
- async updateMembershipWitness({ credential, membershipWitnessJSON }) {
543
- const revocationId = credential.credentialStatus.revocationId;
544
- const member = cryptoWasmTs.Accumulator.encodePositiveNumberAsAccumulatorMember(revocationId);
545
- let updates = [];
546
- try {
547
- updates = await dock.accumulatorModule.getUpdatesFromBlock(accumulatorId, accumulator.lastModified);
548
- }
549
- catch (err) {
550
- if (err.code === -32000) {
551
- console.error(err);
552
- // "-32000: Client error: UnknownBlock: State already discarded for BlockId::Hash(<hash>)"
553
- // This means that the node has discarded old blocks to preserve space. This should not happen with a full node
554
- updates = [];
555
- }
556
- else {
557
- throw err;
558
- }
559
- }
560
- const additions = [];
561
- const removals = [];
562
- if (updates.length && updates[0].additions !== null) {
563
- for (const a of updates[0].additions) {
564
- additions.push(utils.hexToU8a(a));
565
- }
566
- }
567
- if (updates.length && updates[0].removals !== null) {
568
- for (const a of updates[0].removals) {
569
- removals.push(utils.hexToU8a(a));
570
- }
571
- }
572
- const queriedWitnessInfo = new cryptoWasmTs.WitnessUpdatePublicInfo(utils.hexToU8a(updates[0].witnessUpdateInfo));
573
- const witness = cryptoWasmTs.MembershipWitness.fromJSON(membershipWitnessJSON);
574
- witness.updateUsingPublicInfoPostBatchUpdate(member, additions, removals, queriedWitnessInfo);
575
- return witness.toJSON();
576
- }
577
- /**
578
- * Derives verifiable credentials from a presentation with selective disclosure
579
- * @param {Object} params - Derivation parameters
580
- * @param {Array<Object>} params.credentials - Array of credential objects
581
- * @param {Object} params.credentials[].credential - The credential
582
- * @param {Array<string>} params.credentials[].attributesToReveal - Attributes to reveal
583
- * @param {Object} [params.credentials[].witness] - Membership witness for revocation
584
- * @param {Object} [params.options={}] - Additional options for derivation
585
- * @param {Object} [params.proofRequest] - Proof request with constraints
586
- * @returns {Promise<Array>} Array of derived credentials
587
- * @throws {Error} If validation fails
588
- * @example
589
- * const derivedCredentials = await credentialService.deriveVCFromPresentation({
590
- * credentials: [{
591
- * credential: bbsCredential,
592
- * attributesToReveal: ['name', 'dateOfBirth']
593
- * }]
594
- * });
595
- */
596
- async deriveVCFromPresentation(params) {
597
- services_credential_config.validation.deriveVCFromPresentation(params);
598
- const { credentials, options = {}, proofRequest } = params;
599
- const presentation = new vc.Presentation();
600
- const selectedCredentials = credentials.map(({ credential }) => credential);
601
- let descriptorBounds = [];
602
- for (const { credential } of credentials) {
603
- await presentation.addCredentialToPresent(credential, {
604
- resolver: services_blockchain_service.blockchainService.resolver,
605
- });
606
- }
607
- if (proofRequest && services_credential_boundCheck.hasProvingKey(proofRequest)) {
608
- const { provingKey, provingKeyId } = await services_credential_boundCheck.fetchProvingKey(proofRequest);
609
- descriptorBounds = services_credential_boundCheck.applyEnforceBounds({
610
- builder: presentation.presBuilder,
611
- proofRequest,
612
- provingKey,
613
- provingKeyId,
614
- selectedCredentials,
615
- });
616
- }
617
- let pexRequiredAttributes = [];
618
- if (proofRequest?.request) {
619
- pexRequiredAttributes = services_credential_pexHelpers.getPexRequiredAttributes(proofRequest.request, selectedCredentials);
620
- }
621
- let idx = 0;
622
- for (const { attributesToReveal, witness, credential } of credentials) {
623
- const attributesToSkip = descriptorBounds[idx]
624
- ? descriptorBounds[idx].map(bound => bound.attributeName)
625
- : [];
626
- const filteredAttributes = attributesToReveal.filter(attribute => !attributesToSkip.includes(attribute) && !services_credential_pexHelpers.shouldSkipAttribute(attribute));
627
- const _pexRequiredAttributes = pexRequiredAttributes[idx] || [];
628
- _pexRequiredAttributes.forEach(attr => {
629
- if (!filteredAttributes.includes(attr)) {
630
- filteredAttributes.push(attr);
631
- }
632
- });
633
- if (Array.isArray(filteredAttributes) && filteredAttributes.length > 0) {
634
- presentation.addAttributeToReveal(idx, filteredAttributes);
635
- }
636
- if (witness) {
637
- const details = await services_credential_bbsRevocation.getWitnessDetails(credential, witness);
638
- const chainModule = credential.credentialStatus.id.indexOf('dock:accumulator') === 0
639
- ? services_blockchain_service.blockchainService.modules.accumulator.modules[0]
640
- : services_blockchain_service.blockchainService.modules.accumulator.modules[services_blockchain_service.blockchainService.modules.accumulator.modules.length - 1];
641
- const accumulatorModuleClass = chainModule.constructor;
642
- presentation.presBuilder.addAccumInfoForCredStatus(idx, details.membershipWitness, accumulatorModuleClass.accumulatedFromHex(details.accumulator.accumulated, cryptoWasmTs.VB_ACCUMULATOR_22.VBPos), details.pk, details.params);
643
- }
644
- idx++;
645
- }
646
- const credentialsFromPresentation = await presentation.deriveCredentials(options);
647
- return credentialsFromPresentation;
648
- }
649
- /**
650
- * Test method for range proofs
651
- * @private
652
- * @returns {Promise<void>}
653
- */
654
- async testRangeProof() {
655
- console.log('test');
656
- }
657
- }
658
- /**
659
- * Singleton instance of the credential service
660
- * @type {CredentialService}
661
- * @example
662
- * import { credentialService } from '@docknetwork/wallet-sdk-wasm/services/credential';
663
- *
664
- * // Create and sign a credential
665
- * const credential = credentialService.generateCredential({
666
- * subject: { id: 'did:example:123' }
667
- * });
668
- * const signed = await credentialService.signCredential({
669
- * vcJson: credential,
670
- * keyDoc: issuerKey
671
- * });
672
- *
673
- * // Verify a credential
674
- * const result = await credentialService.verifyCredential({
675
- * credential: signedCredential
676
- * });
677
- */
678
- const credentialService = new CredentialService();
679
-
680
- exports.credentialService = credentialService;
681
- exports.isAnnonymousCredential = isAnnonymousCredential;
682
- exports.isBBSPlusCredential = isBBSPlusCredential;
683
- exports.isKvacCredential = isKvacCredential;