@docknetwork/wallet-sdk-wasm 1.4.0 → 1.5.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 (190) hide show
  1. package/lib/{account-3c88155a.js → account-bf00e5c0.js} +5 -5
  2. package/lib/{account-8f5cbc4d.js → account-e48dc9b6.js} +5 -5
  3. package/lib/core/polkadot-utils.js +18 -4
  4. package/lib/core/polkadot-utils.mjs +15 -2
  5. package/lib/index.js +14 -17
  6. package/lib/index.mjs +14 -17
  7. package/lib/modules/account.js +9 -5
  8. package/lib/modules/account.mjs +9 -5
  9. package/lib/modules/accounts.js +9 -5
  10. package/lib/modules/accounts.mjs +9 -5
  11. package/lib/modules/network-manager.js +4 -2
  12. package/lib/modules/network-manager.mjs +4 -2
  13. package/lib/modules/wallet.js +12 -8
  14. package/lib/modules/wallet.mjs +12 -8
  15. package/lib/rpc-server.js +14 -17
  16. package/lib/rpc-server.mjs +14 -17
  17. package/lib/services/blockchain/configs.js +7 -0
  18. package/lib/services/blockchain/configs.mjs +3 -0
  19. package/lib/services/{dock → blockchain}/index.android.js +3 -4
  20. package/lib/services/{dock → blockchain}/index.android.mjs +3 -4
  21. package/lib/services/{dock → blockchain}/index.ios.js +3 -4
  22. package/lib/services/{dock → blockchain}/index.ios.mjs +3 -4
  23. package/lib/services/blockchain/index.js +30 -0
  24. package/lib/services/blockchain/index.mjs +22 -0
  25. package/lib/services/{dock → blockchain}/service-rpc.js +5 -7
  26. package/lib/services/{dock → blockchain}/service-rpc.mjs +5 -7
  27. package/lib/services/blockchain/service.js +212 -0
  28. package/lib/services/blockchain/service.mjs +206 -0
  29. package/lib/services/credential/bbs-revocation.js +33 -61
  30. package/lib/services/credential/bbs-revocation.mjs +34 -62
  31. package/lib/services/credential/bound-check.js +0 -8
  32. package/lib/services/credential/bound-check.mjs +1 -5
  33. package/lib/services/credential/index.js +20 -23
  34. package/lib/services/credential/index.mjs +20 -23
  35. package/lib/services/credential/pex-helpers.js +134 -34
  36. package/lib/services/credential/pex-helpers.mjs +133 -35
  37. package/lib/services/credential/service.js +54 -55
  38. package/lib/services/credential/service.mjs +43 -41
  39. package/lib/services/credential/utils.js +12 -18
  40. package/lib/services/credential/utils.mjs +11 -14
  41. package/lib/services/dids/config.js +8 -0
  42. package/lib/services/dids/config.mjs +8 -0
  43. package/lib/services/dids/index.js +8 -7
  44. package/lib/services/dids/index.mjs +8 -7
  45. package/lib/services/dids/service-rpc.js +2 -2
  46. package/lib/services/dids/service-rpc.mjs +2 -2
  47. package/lib/services/dids/service.js +22 -32
  48. package/lib/services/dids/service.mjs +22 -32
  49. package/lib/services/edv/hmac.js +5 -0
  50. package/lib/services/edv/hmac.mjs +5 -0
  51. package/lib/services/edv/index.js +10 -8
  52. package/lib/services/edv/index.mjs +10 -8
  53. package/lib/services/edv/service-rpc.js +4 -0
  54. package/lib/services/edv/service-rpc.mjs +4 -0
  55. package/lib/services/edv/service.js +26 -10
  56. package/lib/services/edv/service.mjs +25 -10
  57. package/lib/services/example/service.js +3 -1
  58. package/lib/services/example/service.mjs +3 -1
  59. package/lib/services/index.js +12 -15
  60. package/lib/services/index.mjs +12 -15
  61. package/lib/services/keyring/configs.js +12 -0
  62. package/lib/services/keyring/configs.mjs +12 -0
  63. package/lib/services/keyring/service.js +5 -0
  64. package/lib/services/keyring/service.mjs +5 -0
  65. package/lib/services/pex/service.js +17 -15
  66. package/lib/services/pex/service.mjs +17 -15
  67. package/lib/services/substrate/api-utils.js +18 -6
  68. package/lib/services/substrate/api-utils.mjs +18 -6
  69. package/lib/services/substrate/index.js +13 -6
  70. package/lib/services/substrate/index.mjs +13 -6
  71. package/lib/services/substrate/service.js +16 -9
  72. package/lib/services/substrate/service.mjs +16 -9
  73. package/lib/services/test-utils.js +27 -18
  74. package/lib/services/test-utils.mjs +27 -18
  75. package/lib/services/trust-registry/index.js +16 -5
  76. package/lib/services/trust-registry/index.mjs +16 -5
  77. package/lib/services/trust-registry/service.js +26 -10
  78. package/lib/services/trust-registry/service.mjs +26 -10
  79. package/lib/services/util-crypto/configs.js +3 -0
  80. package/lib/services/util-crypto/configs.mjs +3 -0
  81. package/lib/services/util-crypto/service-rpc.js +6 -0
  82. package/lib/services/util-crypto/service-rpc.mjs +6 -0
  83. package/lib/services/util-crypto/service.js +5 -0
  84. package/lib/services/util-crypto/service.mjs +6 -1
  85. package/lib/setup-nodejs.js +14 -17
  86. package/lib/setup-nodejs.mjs +14 -17
  87. package/lib/setup-tests.js +14 -17
  88. package/lib/setup-tests.mjs +14 -17
  89. package/lib/src/core/polkadot-utils.d.ts +1 -0
  90. package/lib/src/core/polkadot-utils.d.ts.map +1 -1
  91. package/lib/src/modules/network-manager.d.ts +1 -0
  92. package/lib/src/modules/network-manager.d.ts.map +1 -1
  93. package/lib/src/services/blockchain/configs.d.ts +8 -0
  94. package/lib/src/services/blockchain/configs.d.ts.map +1 -0
  95. package/lib/src/services/blockchain/index.d.ts +2 -0
  96. package/lib/src/services/blockchain/index.d.ts.map +1 -0
  97. package/lib/src/services/{dock → blockchain}/service.d.ts +12 -11
  98. package/lib/src/services/blockchain/service.d.ts.map +1 -0
  99. package/lib/src/services/credential/bbs-revocation.d.ts.map +1 -1
  100. package/lib/src/services/credential/bound-check.d.ts +0 -4
  101. package/lib/src/services/credential/bound-check.d.ts.map +1 -1
  102. package/lib/src/services/credential/index.d.ts +2 -7
  103. package/lib/src/services/credential/index.d.ts.map +1 -1
  104. package/lib/src/services/credential/pex-helpers.d.ts +5 -3
  105. package/lib/src/services/credential/pex-helpers.d.ts.map +1 -1
  106. package/lib/src/services/credential/service.d.ts +2 -7
  107. package/lib/src/services/credential/service.d.ts.map +1 -1
  108. package/lib/src/services/credential/utils.d.ts.map +1 -1
  109. package/lib/src/services/dids/config.d.ts +5 -0
  110. package/lib/src/services/dids/config.d.ts.map +1 -1
  111. package/lib/src/services/dids/service-rpc.d.ts +1 -1
  112. package/lib/src/services/dids/service-rpc.d.ts.map +1 -1
  113. package/lib/src/services/dids/service.d.ts +9 -7
  114. package/lib/src/services/dids/service.d.ts.map +1 -1
  115. package/lib/src/services/edv/hmac.d.ts +1 -0
  116. package/lib/src/services/edv/hmac.d.ts.map +1 -1
  117. package/lib/src/services/edv/service.d.ts +5 -0
  118. package/lib/src/services/edv/service.d.ts.map +1 -1
  119. package/lib/src/services/example/service.d.ts.map +1 -1
  120. package/lib/src/services/keyring/configs.d.ts +6 -0
  121. package/lib/src/services/keyring/configs.d.ts.map +1 -1
  122. package/lib/src/services/pex/service.d.ts.map +1 -1
  123. package/lib/src/services/trust-registry/service.d.ts.map +1 -1
  124. package/lib/src/services/util-crypto/configs.d.ts +1 -0
  125. package/lib/src/services/util-crypto/configs.d.ts.map +1 -1
  126. package/lib/src/services/util-crypto/service.d.ts +1 -0
  127. package/lib/src/services/util-crypto/service.d.ts.map +1 -1
  128. package/lib/test/setup-test-state.js +10 -6
  129. package/lib/test/setup-test-state.mjs +10 -6
  130. package/lib/tsconfig.tsbuildinfo +1 -1
  131. package/package.json +5 -7
  132. package/src/core/polkadot-utils.js +14 -3
  133. package/src/modules/network-manager.ts +5 -2
  134. package/src/modules/wallet.ts +5 -5
  135. package/src/services/blockchain/configs.ts +11 -0
  136. package/src/services/blockchain/index.android.js +3 -0
  137. package/src/services/blockchain/index.ios.js +3 -0
  138. package/src/services/blockchain/index.js +1 -0
  139. package/src/services/blockchain/index.test.js +34 -0
  140. package/src/services/{dock → blockchain}/service-rpc.js +5 -6
  141. package/src/services/blockchain/service.ts +261 -0
  142. package/src/services/credential/bbs-revocation.ts +42 -90
  143. package/src/services/credential/bound-check.test.ts +2 -5
  144. package/src/services/credential/bound-check.ts +0 -5
  145. package/src/services/credential/index.test.js +148 -7
  146. package/src/services/credential/pex-helpers.js +132 -34
  147. package/src/services/credential/pex-helpers.test.js +284 -27
  148. package/src/services/credential/service.ts +44 -27
  149. package/src/services/credential/utils.js +5 -14
  150. package/src/services/dids/config.ts +15 -0
  151. package/src/services/dids/index.test.js +5 -46
  152. package/src/services/dids/service-rpc.ts +2 -2
  153. package/src/services/dids/service.ts +17 -34
  154. package/src/services/edv/hmac.ts +13 -0
  155. package/src/services/edv/index.test.js +22 -0
  156. package/src/services/edv/service-rpc.js +4 -0
  157. package/src/services/edv/service.ts +22 -0
  158. package/src/services/example/service.ts +3 -1
  159. package/src/services/index.js +2 -2
  160. package/src/services/keyring/configs.ts +21 -0
  161. package/src/services/keyring/service.ts +13 -0
  162. package/src/services/pex/service.ts +29 -18
  163. package/src/services/pex/tests/pex-service.test.js +163 -6
  164. package/src/services/substrate/api-utils.test.js +7 -7
  165. package/src/services/substrate/api-utils.ts +3 -3
  166. package/src/services/substrate/service.ts +6 -6
  167. package/src/services/test-utils.js +13 -11
  168. package/src/services/trust-registry/index.test.js +6 -4
  169. package/src/services/trust-registry/service.ts +13 -7
  170. package/src/services/util-crypto/configs.ts +4 -0
  171. package/src/services/util-crypto/service-rpc.js +6 -0
  172. package/src/services/util-crypto/service.ts +8 -0
  173. package/src/test/setup-test-state.js +2 -2
  174. package/lib/services/dock/configs.js +0 -18
  175. package/lib/services/dock/configs.mjs +0 -10
  176. package/lib/services/dock/index.js +0 -18
  177. package/lib/services/dock/index.mjs +0 -10
  178. package/lib/services/dock/service.js +0 -136
  179. package/lib/services/dock/service.mjs +0 -128
  180. package/lib/src/services/dock/configs.d.ts +0 -7
  181. package/lib/src/services/dock/configs.d.ts.map +0 -1
  182. package/lib/src/services/dock/index.d.ts +0 -2
  183. package/lib/src/services/dock/index.d.ts.map +0 -1
  184. package/lib/src/services/dock/service.d.ts.map +0 -1
  185. package/src/services/dock/configs.ts +0 -12
  186. package/src/services/dock/index.android.js +0 -3
  187. package/src/services/dock/index.ios.js +0 -3
  188. package/src/services/dock/index.js +0 -1
  189. package/src/services/dock/index.test.js +0 -48
  190. package/src/services/dock/service.ts +0 -159
@@ -6,57 +6,51 @@ var services_credential_config = require('./config.js');
6
6
  var cryptoWasmTs = require('@docknetwork/crypto-wasm-ts');
7
7
  var oid4vciClient = require('@sphereon/oid4vci-client');
8
8
  var oid4vciCommon = require('@sphereon/oid4vci-common');
9
- var VerifiableCredential = require('@docknetwork/sdk/verifiable-credential');
10
9
  var keypairs = require('@docknetwork/universal-wallet/methods/keypairs');
11
- var helpers = require('@docknetwork/sdk/utils/vc/helpers');
12
- var VerifiablePresentation = require('@docknetwork/sdk/verifiable-presentation');
13
- var Presentation = require('@docknetwork/sdk/presentation');
14
- var credentials = require('@docknetwork/sdk/utils/vc/credentials');
10
+ var vc = require('@docknetwork/credential-sdk/vc');
15
11
  var pex$1 = require('@sphereon/pex');
16
12
  var services_credential_utils = require('./utils.js');
17
- var services_dock_service = require('../dock/service.js');
13
+ var services_blockchain_service = require('../blockchain/service.js');
18
14
  var services_credential_boundCheck = require('./bound-check.js');
19
15
  var assert = require('assert');
20
16
  var services_credential_bbsRevocation = require('./bbs-revocation.js');
21
17
  var services_credential_pexHelpers = require('./pex-helpers.js');
22
18
  var services_dids_service = require('../dids/service.js');
23
19
  require('base58-universal');
24
- require('@docknetwork/sdk/utils/misc');
20
+ require('@docknetwork/credential-sdk/vc/crypto');
21
+ require('../keyring/service.js');
22
+ require('@polkadot/keyring');
25
23
  require('@polkadot/util-crypto');
26
- require('@polkadot/util');
27
- require('@docknetwork/sdk/utils/vc/crypto/Bls12381G2KeyPairDock2022');
28
- require('@docknetwork/dock-blockchain-api');
24
+ require('../keyring/configs.js');
25
+ require('../../core/validation.js');
26
+ require('bignumber.js');
27
+ require('../../types.js');
28
+ require('@cosmjs/proto-signing');
29
+ require('@docknetwork/cheqd-blockchain-api');
30
+ require('@docknetwork/cheqd-blockchain-modules');
31
+ require('@docknetwork/credential-sdk/modules');
29
32
  require('@docknetwork/credential-sdk/resolver');
30
- require('@docknetwork/dock-blockchain-modules');
31
33
  require('@docknetwork/crypto-wasm-ts/lib/index');
34
+ require('@docknetwork/dock-blockchain-api');
35
+ require('@docknetwork/dock-blockchain-modules');
32
36
  require('events');
33
37
  require('../../core/logger.js');
34
38
  require('../../modules/event-manager.js');
35
- require('../dock/configs.js');
39
+ require('../util-crypto/service.js');
40
+ require('@polkadot/util');
41
+ require('../util-crypto/configs.js');
42
+ require('@docknetwork/credential-sdk/types');
36
43
  require('@docknetwork/crypto-wasm-ts/lib/legosnark');
37
44
  require('base64url');
38
45
  require('@astronautlabs/jsonpath');
39
46
  require('@docknetwork/wallet-sdk-dids/lib');
40
47
  require('../dids/config.js');
41
- require('../keyring/service.js');
42
- require('@polkadot/keyring');
43
- require('../keyring/configs.js');
44
- require('../../core/validation.js');
45
- require('bignumber.js');
46
- require('../../types.js');
47
- require('../util-crypto/service.js');
48
- require('../util-crypto/configs.js');
49
- require('@docknetwork/credential-sdk/types');
50
- require('@docknetwork/credential-sdk/keypairs');
51
48
  require('../../core/polkadot-utils.js');
49
+ require('@docknetwork/credential-sdk/keypairs');
52
50
  require('@polkadot/keyring/pair/decode');
53
- require('@docknetwork/credential-sdk/vc/crypto');
54
51
 
55
52
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
56
53
 
57
- var VerifiableCredential__default = /*#__PURE__*/_interopDefaultLegacy(VerifiableCredential);
58
- var VerifiablePresentation__default = /*#__PURE__*/_interopDefaultLegacy(VerifiablePresentation);
59
- var Presentation__default = /*#__PURE__*/_interopDefaultLegacy(Presentation);
60
54
  var assert__default = /*#__PURE__*/_interopDefaultLegacy(assert);
61
55
 
62
56
  // @ts-nocheck
@@ -92,28 +86,28 @@ class CredentialService {
92
86
  generateCredential(params = {}) {
93
87
  services_credential_config.validation.generateCredential(params);
94
88
  const { subject } = params;
95
- const vc = new VerifiableCredential__default["default"]();
96
- vc.addType('DockAuthCredential');
97
- vc.addContext({
89
+ const vc$1 = new vc.VerifiableCredential();
90
+ vc$1.addType('DockAuthCredential');
91
+ vc$1.addContext({
98
92
  dk: 'https://ld.dock.io/credentials#',
99
93
  DockAuthCredential: 'dk:DockAuthCredential',
100
94
  });
101
95
  if (subject) {
102
- vc.setSubject(subject);
103
- vc.addContext({
96
+ vc$1.setSubject(subject);
97
+ vc$1.addContext({
104
98
  state: 'dk:state',
105
99
  });
106
100
  }
107
- return vc;
101
+ return vc$1;
108
102
  }
109
103
  async signCredential(params) {
110
104
  services_credential_config.validation.signCredential(params);
111
105
  const { vcJson, keyDoc } = params;
112
- const verifiableCredential = new VerifiableCredential__default["default"]();
106
+ const verifiableCredential = new vc.VerifiableCredential();
113
107
  verifiableCredential.setFromJSON(vcJson);
114
108
  const kp = keypairs.getKeypairFromDoc(keyDoc);
115
109
  kp.signer = kp.signer();
116
- const suite = await helpers.getSuiteFromKeyDoc(kp);
110
+ const suite = await vc.getSuiteFromKeyDoc(kp);
117
111
  verifiableCredential.setIssuer(keyDoc.controller);
118
112
  await verifiableCredential.sign(suite);
119
113
  return verifiableCredential;
@@ -121,7 +115,7 @@ class CredentialService {
121
115
  async createPresentation(params) {
122
116
  services_credential_config.validation.createPresentation(params);
123
117
  const { credentials, keyDoc, challenge, id, domain } = params;
124
- const vp = new VerifiablePresentation__default["default"](id);
118
+ const vp = new vc.VerifiablePresentation(id);
125
119
  let shouldSkipSigning = false;
126
120
  for (const signedVC of credentials) {
127
121
  vp.addCredential(signedVC);
@@ -130,18 +124,21 @@ class CredentialService {
130
124
  if (!shouldSkipSigning) {
131
125
  vp.setHolder(keyDoc.controller);
132
126
  }
133
- keyDoc.keypair = services_credential_utils.keyDocToKeypair(keyDoc, services_dock_service.getDock());
127
+ keyDoc.keypair = services_credential_utils.keyDocToKeypair(keyDoc, services_blockchain_service.blockchainService.dock);
134
128
  if (shouldSkipSigning) {
135
129
  return vp.toJSON();
136
130
  }
137
- return vp.sign(keyDoc, challenge, domain, services_dock_service.dockService.resolver);
131
+ return vp.sign(keyDoc, challenge, domain, services_blockchain_service.blockchainService.resolver);
132
+ }
133
+ async verifyPresentation({ presentation, options }) {
134
+ return vc.verifyPresentation(presentation, options);
138
135
  }
139
136
  async verifyCredential(params) {
140
137
  services_credential_config.validation.verifyCredential(params);
141
138
  const { credential, membershipWitness } = params;
142
- const result = await credentials.verifyCredential(credential, {
143
- resolver: services_dock_service.dockService.resolver,
144
- revocationApi: { dock: services_dock_service.getDock() },
139
+ const result = await vc.verifyCredential(credential, {
140
+ resolver: services_blockchain_service.blockchainService.resolver,
141
+ revocationApi: { dock: services_blockchain_service.blockchainService.dock },
145
142
  });
146
143
  const { credentialStatus } = credential;
147
144
  if (result.verified && credentialStatus?.id) {
@@ -179,22 +176,19 @@ class CredentialService {
179
176
  }
180
177
  async acquireOIDCredential({ uri, authorizationCode, holderKeyDocument, }) {
181
178
  const searchParams = new URL(uri).searchParams;
182
- const params = new URLSearchParams(searchParams);
183
- const credentialOfferEncoded = params.get('credential_offer');
184
- const credentialOfferDecoded = decodeURIComponent(credentialOfferEncoded);
185
- const credentialOffer = JSON.parse(credentialOfferDecoded);
186
- const scope = credentialOffer.credentials[0];
187
- const format = 'ldp_vc';
188
- const credentialTypes = scope.replace('ldp_vc:', '');
179
+ new URLSearchParams(searchParams);
189
180
  const client = await oid4vciClient.OpenID4VCIClientV1_0_13.fromURI({
190
181
  uri: uri,
191
182
  clientId: 'dock.wallet',
192
183
  authorizationRequest: {
193
184
  redirectUri: 'dock-wallet://credentials/callback',
194
185
  clientId: 'dock.wallet',
195
- scope: credentialOffer.credentials[0],
196
186
  },
197
187
  });
188
+ const format = 'ldp_vc';
189
+ const { scope } = client.getCredentialsSupported()[0];
190
+ const scopeSplit = scope.split(':');
191
+ const credentialTypes = scopeSplit[scopeSplit.length - 1];
198
192
  let code;
199
193
  if (client.credentialOffer?.preAuthorizedCode) {
200
194
  code = client.credentialOffer?.preAuthorizedCode;
@@ -226,6 +220,7 @@ class CredentialService {
226
220
  return jwt;
227
221
  },
228
222
  },
223
+ context: 'truverawallet',
229
224
  format: format,
230
225
  alg: oid4vciCommon.Alg.EdDSA,
231
226
  kid: holderKeyDocument.id,
@@ -241,10 +236,10 @@ class CredentialService {
241
236
  async createBBSPresentation(params) {
242
237
  services_credential_config.validation.createBBSPresentation(params);
243
238
  const { credentials } = params;
244
- const bbsPlusPresentation = new Presentation__default["default"]();
239
+ const bbsPlusPresentation = new vc.Presentation();
245
240
  for (const { credential, attributesToReveal } of credentials) {
246
241
  const idx = await bbsPlusPresentation.addCredentialToPresent(credential, {
247
- resolver: services_dock_service.dockService.resolver,
242
+ resolver: services_blockchain_service.blockchainService.resolver,
248
243
  });
249
244
  if (Array.isArray(attributesToReveal) && attributesToReveal.length > 0) {
250
245
  await bbsPlusPresentation.addAttributeToReveal(idx, attributesToReveal);
@@ -257,7 +252,7 @@ class CredentialService {
257
252
  if (!credential?.credentialStatus) {
258
253
  return null;
259
254
  }
260
- return credential?.credentialStatus.id.replace('dock:accumulator:', '');
255
+ return credential?.credentialStatus.id;
261
256
  }
262
257
  async getAccumulatorData({ credential }) {
263
258
  assert__default["default"](!!credential, `credential is required`);
@@ -265,7 +260,7 @@ class CredentialService {
265
260
  if (!accumulatorId) {
266
261
  return null;
267
262
  }
268
- return services_dock_service.getDock().accumulatorModule.getAccumulator(accumulatorId, false);
263
+ return services_blockchain_service.blockchainService.dock.accumulatorModule.getAccumulator(accumulatorId, false);
269
264
  }
270
265
  /**
271
266
  * Fetch the latest accumulator witness updates for a given credential and membership witness
@@ -311,12 +306,12 @@ class CredentialService {
311
306
  async deriveVCFromPresentation(params) {
312
307
  services_credential_config.validation.deriveVCFromPresentation(params);
313
308
  const { credentials, options = {}, proofRequest } = params;
314
- const presentation = new Presentation__default["default"]();
309
+ const presentation = new vc.Presentation();
315
310
  const selectedCredentials = credentials.map(({ credential }) => credential);
316
311
  let descriptorBounds = [];
317
312
  for (const { credential } of credentials) {
318
313
  await presentation.addCredentialToPresent(credential, {
319
- resolver: services_dock_service.dockService.resolver,
314
+ resolver: services_blockchain_service.blockchainService.resolver,
320
315
  });
321
316
  }
322
317
  if (proofRequest && services_credential_boundCheck.hasProvingKey(proofRequest)) {
@@ -350,7 +345,11 @@ class CredentialService {
350
345
  }
351
346
  if (witness) {
352
347
  const details = await services_credential_bbsRevocation.getWitnessDetails(credential, witness);
353
- presentation.presBuilder.addAccumInfoForCredStatus(idx, details.membershipWitness, details.accumulator.accumulated, details.pk, details.params);
348
+ const chainModule = credential.credentialStatus.id.indexOf('dock:accumulator') === 0
349
+ ? services_blockchain_service.blockchainService.modules.accumulator.modules[0]
350
+ : services_blockchain_service.blockchainService.modules.accumulator.modules[services_blockchain_service.blockchainService.modules.accumulator.modules.length - 1];
351
+ const accumulatorModuleClass = chainModule.constructor;
352
+ presentation.presBuilder.addAccumInfoForCredStatus(idx, details.membershipWitness, accumulatorModuleClass.accumulatedFromHex(details.accumulator.accumulated, cryptoWasmTs.VB_ACCUMULATOR_22.VBPos), details.pk, details.params);
354
353
  }
355
354
  idx++;
356
355
  }
@@ -1,52 +1,49 @@
1
1
  import { serviceName, validation } from './config.mjs';
2
- import { Accumulator, WitnessUpdatePublicInfo, MembershipWitness } from '@docknetwork/crypto-wasm-ts';
2
+ import { Accumulator, WitnessUpdatePublicInfo, MembershipWitness, VB_ACCUMULATOR_22 } from '@docknetwork/crypto-wasm-ts';
3
3
  import { OpenID4VCIClientV1_0_13 } from '@sphereon/oid4vci-client';
4
4
  import { Alg } from '@sphereon/oid4vci-common';
5
- import VerifiableCredential from '@docknetwork/sdk/verifiable-credential';
6
5
  import { getKeypairFromDoc } from '@docknetwork/universal-wallet/methods/keypairs';
7
- import { getSuiteFromKeyDoc } from '@docknetwork/sdk/utils/vc/helpers';
8
- import VerifiablePresentation from '@docknetwork/sdk/verifiable-presentation';
9
- import Presentation from '@docknetwork/sdk/presentation';
10
- import { verifyCredential } from '@docknetwork/sdk/utils/vc/credentials';
6
+ import { VerifiableCredential, getSuiteFromKeyDoc, VerifiablePresentation, verifyPresentation, verifyCredential, Presentation } from '@docknetwork/credential-sdk/vc';
11
7
  import { PEX } from '@sphereon/pex';
12
8
  import { keyDocToKeypair } from './utils.mjs';
13
- import { getDock, dockService } from '../dock/service.mjs';
9
+ import { blockchainService } from '../blockchain/service.mjs';
14
10
  import { hasProvingKey, fetchProvingKey, applyEnforceBounds } from './bound-check.mjs';
15
11
  import assert from 'assert';
16
12
  import { getIsRevoked, getWitnessDetails } from './bbs-revocation.mjs';
17
13
  import { getPexRequiredAttributes } from './pex-helpers.mjs';
18
14
  import { didService } from '../dids/service.mjs';
19
15
  import 'base58-universal';
20
- import '@docknetwork/sdk/utils/misc';
16
+ import '@docknetwork/credential-sdk/vc/crypto';
17
+ import '../keyring/service.mjs';
18
+ import '@polkadot/keyring';
21
19
  import '@polkadot/util-crypto';
22
- import '@polkadot/util';
23
- import '@docknetwork/sdk/utils/vc/crypto/Bls12381G2KeyPairDock2022';
24
- import '@docknetwork/dock-blockchain-api';
20
+ import '../keyring/configs.mjs';
21
+ import '../../core/validation.mjs';
22
+ import 'bignumber.js';
23
+ import '../../types.mjs';
24
+ import '@cosmjs/proto-signing';
25
+ import '@docknetwork/cheqd-blockchain-api';
26
+ import '@docknetwork/cheqd-blockchain-modules';
27
+ import '@docknetwork/credential-sdk/modules';
25
28
  import '@docknetwork/credential-sdk/resolver';
26
- import '@docknetwork/dock-blockchain-modules';
27
29
  import '@docknetwork/crypto-wasm-ts/lib/index';
30
+ import '@docknetwork/dock-blockchain-api';
31
+ import '@docknetwork/dock-blockchain-modules';
28
32
  import 'events';
29
33
  import '../../core/logger.mjs';
30
34
  import '../../modules/event-manager.mjs';
31
- import '../dock/configs.mjs';
35
+ import '../util-crypto/service.mjs';
36
+ import '@polkadot/util';
37
+ import '../util-crypto/configs.mjs';
38
+ import '@docknetwork/credential-sdk/types';
32
39
  import '@docknetwork/crypto-wasm-ts/lib/legosnark';
33
40
  import 'base64url';
34
41
  import '@astronautlabs/jsonpath';
35
42
  import '@docknetwork/wallet-sdk-dids/lib';
36
43
  import '../dids/config.mjs';
37
- import '../keyring/service.mjs';
38
- import '@polkadot/keyring';
39
- import '../keyring/configs.mjs';
40
- import '../../core/validation.mjs';
41
- import 'bignumber.js';
42
- import '../../types.mjs';
43
- import '../util-crypto/service.mjs';
44
- import '../util-crypto/configs.mjs';
45
- import '@docknetwork/credential-sdk/types';
46
- import '@docknetwork/credential-sdk/keypairs';
47
44
  import '../../core/polkadot-utils.mjs';
45
+ import '@docknetwork/credential-sdk/keypairs';
48
46
  import '@polkadot/keyring/pair/decode';
49
- import '@docknetwork/credential-sdk/vc/crypto';
50
47
 
51
48
  // @ts-nocheck
52
49
  const pex = new PEX();
@@ -119,18 +116,21 @@ class CredentialService {
119
116
  if (!shouldSkipSigning) {
120
117
  vp.setHolder(keyDoc.controller);
121
118
  }
122
- keyDoc.keypair = keyDocToKeypair(keyDoc, getDock());
119
+ keyDoc.keypair = keyDocToKeypair(keyDoc, blockchainService.dock);
123
120
  if (shouldSkipSigning) {
124
121
  return vp.toJSON();
125
122
  }
126
- return vp.sign(keyDoc, challenge, domain, dockService.resolver);
123
+ return vp.sign(keyDoc, challenge, domain, blockchainService.resolver);
124
+ }
125
+ async verifyPresentation({ presentation, options }) {
126
+ return verifyPresentation(presentation, options);
127
127
  }
128
128
  async verifyCredential(params) {
129
129
  validation.verifyCredential(params);
130
130
  const { credential, membershipWitness } = params;
131
131
  const result = await verifyCredential(credential, {
132
- resolver: dockService.resolver,
133
- revocationApi: { dock: getDock() },
132
+ resolver: blockchainService.resolver,
133
+ revocationApi: { dock: blockchainService.dock },
134
134
  });
135
135
  const { credentialStatus } = credential;
136
136
  if (result.verified && credentialStatus?.id) {
@@ -168,22 +168,19 @@ class CredentialService {
168
168
  }
169
169
  async acquireOIDCredential({ uri, authorizationCode, holderKeyDocument, }) {
170
170
  const searchParams = new URL(uri).searchParams;
171
- const params = new URLSearchParams(searchParams);
172
- const credentialOfferEncoded = params.get('credential_offer');
173
- const credentialOfferDecoded = decodeURIComponent(credentialOfferEncoded);
174
- const credentialOffer = JSON.parse(credentialOfferDecoded);
175
- const scope = credentialOffer.credentials[0];
176
- const format = 'ldp_vc';
177
- const credentialTypes = scope.replace('ldp_vc:', '');
171
+ new URLSearchParams(searchParams);
178
172
  const client = await OpenID4VCIClientV1_0_13.fromURI({
179
173
  uri: uri,
180
174
  clientId: 'dock.wallet',
181
175
  authorizationRequest: {
182
176
  redirectUri: 'dock-wallet://credentials/callback',
183
177
  clientId: 'dock.wallet',
184
- scope: credentialOffer.credentials[0],
185
178
  },
186
179
  });
180
+ const format = 'ldp_vc';
181
+ const { scope } = client.getCredentialsSupported()[0];
182
+ const scopeSplit = scope.split(':');
183
+ const credentialTypes = scopeSplit[scopeSplit.length - 1];
187
184
  let code;
188
185
  if (client.credentialOffer?.preAuthorizedCode) {
189
186
  code = client.credentialOffer?.preAuthorizedCode;
@@ -215,6 +212,7 @@ class CredentialService {
215
212
  return jwt;
216
213
  },
217
214
  },
215
+ context: 'truverawallet',
218
216
  format: format,
219
217
  alg: Alg.EdDSA,
220
218
  kid: holderKeyDocument.id,
@@ -233,7 +231,7 @@ class CredentialService {
233
231
  const bbsPlusPresentation = new Presentation();
234
232
  for (const { credential, attributesToReveal } of credentials) {
235
233
  const idx = await bbsPlusPresentation.addCredentialToPresent(credential, {
236
- resolver: dockService.resolver,
234
+ resolver: blockchainService.resolver,
237
235
  });
238
236
  if (Array.isArray(attributesToReveal) && attributesToReveal.length > 0) {
239
237
  await bbsPlusPresentation.addAttributeToReveal(idx, attributesToReveal);
@@ -246,7 +244,7 @@ class CredentialService {
246
244
  if (!credential?.credentialStatus) {
247
245
  return null;
248
246
  }
249
- return credential?.credentialStatus.id.replace('dock:accumulator:', '');
247
+ return credential?.credentialStatus.id;
250
248
  }
251
249
  async getAccumulatorData({ credential }) {
252
250
  assert(!!credential, `credential is required`);
@@ -254,7 +252,7 @@ class CredentialService {
254
252
  if (!accumulatorId) {
255
253
  return null;
256
254
  }
257
- return getDock().accumulatorModule.getAccumulator(accumulatorId, false);
255
+ return blockchainService.dock.accumulatorModule.getAccumulator(accumulatorId, false);
258
256
  }
259
257
  /**
260
258
  * Fetch the latest accumulator witness updates for a given credential and membership witness
@@ -305,7 +303,7 @@ class CredentialService {
305
303
  let descriptorBounds = [];
306
304
  for (const { credential } of credentials) {
307
305
  await presentation.addCredentialToPresent(credential, {
308
- resolver: dockService.resolver,
306
+ resolver: blockchainService.resolver,
309
307
  });
310
308
  }
311
309
  if (proofRequest && hasProvingKey(proofRequest)) {
@@ -339,7 +337,11 @@ class CredentialService {
339
337
  }
340
338
  if (witness) {
341
339
  const details = await getWitnessDetails(credential, witness);
342
- presentation.presBuilder.addAccumInfoForCredStatus(idx, details.membershipWitness, details.accumulator.accumulated, details.pk, details.params);
340
+ const chainModule = credential.credentialStatus.id.indexOf('dock:accumulator') === 0
341
+ ? blockchainService.modules.accumulator.modules[0]
342
+ : blockchainService.modules.accumulator.modules[blockchainService.modules.accumulator.modules.length - 1];
343
+ const accumulatorModuleClass = chainModule.constructor;
344
+ presentation.presBuilder.addAccumInfoForCredStatus(idx, details.membershipWitness, accumulatorModuleClass.accumulatedFromHex(details.accumulator.accumulated, VB_ACCUMULATOR_22.VBPos), details.pk, details.params);
343
345
  }
344
346
  idx++;
345
347
  }
@@ -3,12 +3,15 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var bs58 = require('base58-universal');
6
- var misc = require('@docknetwork/sdk/utils/misc');
7
- var utilCrypto = require('@polkadot/util-crypto');
8
- var util = require('@polkadot/util');
9
- var Bls12381G2KeyPairDock2022 = require('@docknetwork/sdk/utils/vc/crypto/Bls12381G2KeyPairDock2022');
10
-
11
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
6
+ var crypto = require('@docknetwork/credential-sdk/vc/crypto');
7
+ var services_keyring_service = require('../keyring/service.js');
8
+ require('@polkadot/keyring');
9
+ require('@polkadot/util-crypto');
10
+ require('../keyring/configs.js');
11
+ require('assert');
12
+ require('../../core/validation.js');
13
+ require('bignumber.js');
14
+ require('../../types.js');
12
15
 
13
16
  function _interopNamespace(e) {
14
17
  if (e && e.__esModule) return e;
@@ -29,14 +32,7 @@ function _interopNamespace(e) {
29
32
  }
30
33
 
31
34
  var bs58__namespace = /*#__PURE__*/_interopNamespace(bs58);
32
- var Bls12381G2KeyPairDock2022__default = /*#__PURE__*/_interopDefaultLegacy(Bls12381G2KeyPairDock2022);
33
35
 
34
- function createSecp256k1Keypair(privateKeyHex) {
35
- const pk = privateKeyHex || utilCrypto.randomAsHex(32);
36
- const kp = misc.generateEcdsaSecp256k1Keypair(pk);
37
- kp.pk = pk;
38
- return kp;
39
- }
40
36
  const docToKeyMap = {
41
37
  Sr25519VerificationKey2020: 'sr25519',
42
38
  Ed25519VerificationKey2018: 'ed25519',
@@ -53,10 +49,8 @@ function keyDocToKeypair(keyDoc, dock) {
53
49
  const privateKeyEncoded = privateKeyBase58 || privateKeyMultibase.substr(1);
54
50
  const privateKeyBytes = bs58__namespace.decode(privateKeyEncoded);
55
51
 
56
- if (type === 'EcdsaSecp256k1VerificationKey2019') {
57
- return createSecp256k1Keypair(util.u8aToHex(privateKeyBytes));
58
- } else if (type === 'Bls12381G2VerificationKeyDock2022') {
59
- return new Bls12381G2KeyPairDock2022__default["default"](keyDoc);
52
+ if (type === 'Bls12381G2VerificationKeyDock2022') {
53
+ return new crypto.Bls12381G2KeyPairDock2022(keyDoc);
60
54
  } else {
61
55
  const publicKeyEncoded = publicKeyBase58 || publicKeyMultibase.substr(1);
62
56
  const keyType = docToKeyMap[type];
@@ -64,7 +58,7 @@ function keyDocToKeypair(keyDoc, dock) {
64
58
  throw new Error(`Unsupported key type: ${type}`);
65
59
  }
66
60
 
67
- return dock.keyring.createFromPair(
61
+ return services_keyring_service.getKeyring().createFromPair(
68
62
  {
69
63
  publicKey: bs58__namespace.decode(publicKeyEncoded),
70
64
  secretKey: privateKeyBytes,
@@ -1,15 +1,14 @@
1
1
  import * as bs58 from 'base58-universal';
2
- import { generateEcdsaSecp256k1Keypair } from '@docknetwork/sdk/utils/misc';
3
- import { randomAsHex } from '@polkadot/util-crypto';
4
- import { u8aToHex } from '@polkadot/util';
5
- import Bls12381G2KeyPairDock2022 from '@docknetwork/sdk/utils/vc/crypto/Bls12381G2KeyPairDock2022';
2
+ import { Bls12381G2KeyPairDock2022 } from '@docknetwork/credential-sdk/vc/crypto';
3
+ import { getKeyring } from '../keyring/service.mjs';
4
+ import '@polkadot/keyring';
5
+ import '@polkadot/util-crypto';
6
+ import '../keyring/configs.mjs';
7
+ import 'assert';
8
+ import '../../core/validation.mjs';
9
+ import 'bignumber.js';
10
+ import '../../types.mjs';
6
11
 
7
- function createSecp256k1Keypair(privateKeyHex) {
8
- const pk = privateKeyHex || randomAsHex(32);
9
- const kp = generateEcdsaSecp256k1Keypair(pk);
10
- kp.pk = pk;
11
- return kp;
12
- }
13
12
  const docToKeyMap = {
14
13
  Sr25519VerificationKey2020: 'sr25519',
15
14
  Ed25519VerificationKey2018: 'ed25519',
@@ -26,9 +25,7 @@ function keyDocToKeypair(keyDoc, dock) {
26
25
  const privateKeyEncoded = privateKeyBase58 || privateKeyMultibase.substr(1);
27
26
  const privateKeyBytes = bs58.decode(privateKeyEncoded);
28
27
 
29
- if (type === 'EcdsaSecp256k1VerificationKey2019') {
30
- return createSecp256k1Keypair(u8aToHex(privateKeyBytes));
31
- } else if (type === 'Bls12381G2VerificationKeyDock2022') {
28
+ if (type === 'Bls12381G2VerificationKeyDock2022') {
32
29
  return new Bls12381G2KeyPairDock2022(keyDoc);
33
30
  } else {
34
31
  const publicKeyEncoded = publicKeyBase58 || publicKeyMultibase.substr(1);
@@ -37,7 +34,7 @@ function keyDocToKeypair(keyDoc, dock) {
37
34
  throw new Error(`Unsupported key type: ${type}`);
38
35
  }
39
36
 
40
- return dock.keyring.createFromPair(
37
+ return getKeyring().createFromPair(
41
38
  {
42
39
  publicKey: bs58.decode(publicKeyEncoded),
43
40
  secretKey: privateKeyBytes,
@@ -26,6 +26,14 @@ const validation = {
26
26
  assert__default["default"](typeof type === 'string', 'invalid type');
27
27
  }
28
28
  },
29
+ deriveKeyDoc: ({ pair, type }) => {
30
+ assert__default["default"](typeof pair === 'object', 'invalid pair');
31
+ assert__default["default"](pair.publicKey instanceof Uint8Array, 'invalid publicKey');
32
+ assert__default["default"](pair.secretKey instanceof Uint8Array, 'invalid secretKey');
33
+ if (type) {
34
+ assert__default["default"](typeof type === 'string', 'invalid type');
35
+ }
36
+ },
29
37
  };
30
38
 
31
39
  exports.serviceName = serviceName;
@@ -18,6 +18,14 @@ const validation = {
18
18
  assert(typeof type === 'string', 'invalid type');
19
19
  }
20
20
  },
21
+ deriveKeyDoc: ({ pair, type }) => {
22
+ assert(typeof pair === 'object', 'invalid pair');
23
+ assert(pair.publicKey instanceof Uint8Array, 'invalid publicKey');
24
+ assert(pair.secretKey instanceof Uint8Array, 'invalid secretKey');
25
+ if (type) {
26
+ assert(typeof type === 'string', 'invalid type');
27
+ }
28
+ },
21
29
  };
22
30
 
23
31
  export { serviceName, validation };
@@ -16,25 +16,26 @@ require('../../types.js');
16
16
  require('../util-crypto/service.js');
17
17
  require('@polkadot/util');
18
18
  require('../util-crypto/configs.js');
19
- require('../dock/service.js');
20
- require('@docknetwork/dock-blockchain-api');
19
+ require('../blockchain/service.js');
20
+ require('@cosmjs/proto-signing');
21
+ require('@docknetwork/cheqd-blockchain-api');
22
+ require('@docknetwork/cheqd-blockchain-modules');
23
+ require('@docknetwork/credential-sdk/modules');
21
24
  require('@docknetwork/credential-sdk/resolver');
22
- require('@docknetwork/dock-blockchain-modules');
23
25
  require('@docknetwork/crypto-wasm-ts/lib/index');
26
+ require('@docknetwork/dock-blockchain-api');
27
+ require('@docknetwork/dock-blockchain-modules');
24
28
  require('events');
25
29
  require('../../core/logger.js');
26
30
  require('../../modules/event-manager.js');
27
- require('../dock/configs.js');
28
31
  require('@docknetwork/credential-sdk/types');
29
- require('@docknetwork/credential-sdk/keypairs');
30
32
  require('../../core/polkadot-utils.js');
33
+ require('@docknetwork/credential-sdk/keypairs');
31
34
  require('@polkadot/keyring/pair/decode');
32
- require('@docknetwork/sdk/utils/misc');
33
35
  require('base58-universal');
34
36
  require('@docknetwork/universal-wallet/methods/keypairs');
35
37
  require('base64url');
36
38
  require('../credential/utils.js');
37
- require('@docknetwork/sdk/utils/vc/crypto/Bls12381G2KeyPairDock2022');
38
39
  require('@docknetwork/credential-sdk/vc/crypto');
39
40
 
40
41
  const didServiceRPC = services_dids_service.didService;
@@ -12,25 +12,26 @@ import '../../types.mjs';
12
12
  import '../util-crypto/service.mjs';
13
13
  import '@polkadot/util';
14
14
  import '../util-crypto/configs.mjs';
15
- import '../dock/service.mjs';
16
- import '@docknetwork/dock-blockchain-api';
15
+ import '../blockchain/service.mjs';
16
+ import '@cosmjs/proto-signing';
17
+ import '@docknetwork/cheqd-blockchain-api';
18
+ import '@docknetwork/cheqd-blockchain-modules';
19
+ import '@docknetwork/credential-sdk/modules';
17
20
  import '@docknetwork/credential-sdk/resolver';
18
- import '@docknetwork/dock-blockchain-modules';
19
21
  import '@docknetwork/crypto-wasm-ts/lib/index';
22
+ import '@docknetwork/dock-blockchain-api';
23
+ import '@docknetwork/dock-blockchain-modules';
20
24
  import 'events';
21
25
  import '../../core/logger.mjs';
22
26
  import '../../modules/event-manager.mjs';
23
- import '../dock/configs.mjs';
24
27
  import '@docknetwork/credential-sdk/types';
25
- import '@docknetwork/credential-sdk/keypairs';
26
28
  import '../../core/polkadot-utils.mjs';
29
+ import '@docknetwork/credential-sdk/keypairs';
27
30
  import '@polkadot/keyring/pair/decode';
28
- import '@docknetwork/sdk/utils/misc';
29
31
  import 'base58-universal';
30
32
  import '@docknetwork/universal-wallet/methods/keypairs';
31
33
  import 'base64url';
32
34
  import '../credential/utils.mjs';
33
- import '@docknetwork/sdk/utils/vc/crypto/Bls12381G2KeyPairDock2022';
34
35
  import '@docknetwork/credential-sdk/vc/crypto';
35
36
 
36
37
  const didServiceRPC = didService;
@@ -26,8 +26,8 @@ class DIDServiceRPC extends services_rpcServiceClient.RpcService {
26
26
  generateKeyDoc(params) {
27
27
  return this.call('generateKeyDoc', params);
28
28
  }
29
- registerDidDock(keyPair) {
30
- return this.call('registerDidDock', keyPair);
29
+ deriveKeyDoc(params) {
30
+ return this.call('deriveKeyDoc', params);
31
31
  }
32
32
  getDidDockDocument(did) {
33
33
  return this.call('getDidDockDocument', did);