@docknetwork/wallet-sdk-wasm 1.4.0 → 1.5.6

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 +9 -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
@@ -0,0 +1,206 @@
1
+ import { DirectSecp256k1HdWallet } from '@cosmjs/proto-signing';
2
+ import { CheqdAPI } from '@docknetwork/cheqd-blockchain-api';
3
+ import { CheqdCoreModules } from '@docknetwork/cheqd-blockchain-modules';
4
+ import { MultiApiCoreModules } from '@docknetwork/credential-sdk/modules';
5
+ import { DIDKeyResolver, CoreResolver, UniversalResolver, ResolverRouter, WILDCARD } from '@docknetwork/credential-sdk/resolver';
6
+ import { initializeWasm } from '@docknetwork/crypto-wasm-ts/lib/index';
7
+ import { DockAPI } from '@docknetwork/dock-blockchain-api';
8
+ import { DockDIDModule, DockCoreModules } from '@docknetwork/dock-blockchain-modules';
9
+ import { EventEmitter } from 'events';
10
+ import { Logger } from '../../core/logger.mjs';
11
+ import { once } from '../../modules/event-manager.mjs';
12
+ import { utilCryptoService } from '../util-crypto/service.mjs';
13
+ import { DockAccumulatorPublicKey, DockAccumulatorId, DockAccumulatorCommon, CheqdAccumulatorPublicKey, CheqdAccumulatorId, CheqdAccumulatorCommon } from '@docknetwork/credential-sdk/types';
14
+ import 'assert';
15
+ import '@polkadot/keyring';
16
+ import '@polkadot/util';
17
+ import '@polkadot/util-crypto';
18
+ import '../util-crypto/configs.mjs';
19
+ import '../../core/validation.mjs';
20
+ import 'bignumber.js';
21
+ import '../../types.mjs';
22
+
23
+ // @ts-nocheck
24
+ const universalResolverUrl = 'https://uniresolver.truvera.io';
25
+ class AnyDIDResolver extends ResolverRouter {
26
+ method = WILDCARD;
27
+ }
28
+ const { AccumulatorModule: AccumulatorModuleDock } = DockCoreModules;
29
+ const { AccumulatorModule: AccumulatorModuleCheqd } = CheqdCoreModules;
30
+ const TYPES_FOR_DID = {
31
+ dock: {
32
+ PublicKey: DockAccumulatorPublicKey,
33
+ AccumulatorId: DockAccumulatorId,
34
+ AccumulatorCommon: DockAccumulatorCommon,
35
+ AccumulatorModule: AccumulatorModuleDock,
36
+ },
37
+ cheqd: {
38
+ PublicKey: CheqdAccumulatorPublicKey,
39
+ AccumulatorId: CheqdAccumulatorId,
40
+ AccumulatorCommon: CheqdAccumulatorCommon,
41
+ AccumulatorModule: AccumulatorModuleCheqd,
42
+ },
43
+ };
44
+ /**
45
+ *
46
+ */
47
+ class BlockchainService {
48
+ dock;
49
+ modules;
50
+ didModule;
51
+ cheqdApi;
52
+ isBlockchainReady = false;
53
+ resolver;
54
+ dockEnabled;
55
+ static Events = {
56
+ BLOCKCHAIN_READY: 'blockchain-ready',
57
+ };
58
+ rpcMethods = [
59
+ BlockchainService.prototype.disconnect,
60
+ BlockchainService.prototype.ensureBlockchainReady,
61
+ BlockchainService.prototype.init,
62
+ BlockchainService.prototype.isApiConnected,
63
+ BlockchainService.prototype.getAddress,
64
+ ];
65
+ constructor() {
66
+ this.name = 'blockchain';
67
+ this.dock = new DockAPI();
68
+ this.cheqdApi = new CheqdAPI();
69
+ this.didModule = new DockDIDModule(this.dock);
70
+ this.dockModules = new DockCoreModules(this.dock);
71
+ this.cheqdModules = new CheqdCoreModules(this.cheqdApi);
72
+ this.modules = new MultiApiCoreModules(this.dockEnabled
73
+ ? [this.dockModules, this.cheqdModules]
74
+ : [this.cheqdModules]);
75
+ this.emitter = new EventEmitter();
76
+ this.resolver = this.createDIDResolver();
77
+ }
78
+ getTypesForDIDOrAccumulator(didOrRegistryId) {
79
+ const didType = didOrRegistryId
80
+ .replace('dock:accumulator:', 'accumulator:dock:')
81
+ .split(':')[1];
82
+ const chainDidType = !this.dock && didType === 'dock' ? 'cheqd' : didType;
83
+ const types = TYPES_FOR_DID[chainDidType];
84
+ if (!types) {
85
+ throw new APIError(`Unable to use DID type ${didType} for this operation`);
86
+ }
87
+ return types;
88
+ }
89
+ /**
90
+ *
91
+ * @returns
92
+ */
93
+ async ensureBlockchainReady() {
94
+ if (this.isBlockchainReady) {
95
+ return;
96
+ }
97
+ return once(this.emitter, BlockchainService.Events.BLOCKCHAIN_READY);
98
+ }
99
+ createDIDResolver() {
100
+ return new AnyDIDResolver([
101
+ new DIDKeyResolver(),
102
+ new CoreResolver(this.modules),
103
+ new UniversalResolver(universalResolverUrl),
104
+ ]);
105
+ }
106
+ /**
107
+ *
108
+ * @param {*} params
109
+ * @returns
110
+ */
111
+ async init(params) {
112
+ if (this.dock.isConnected) {
113
+ await this.dock.disconnect();
114
+ }
115
+ if (this.cheqdApi && this.cheqdApi.isInitialized()) {
116
+ await this.cheqdApi.disconnect();
117
+ }
118
+ Logger.info(`Attempt to initialized substrate at: ${params.address}`);
119
+ this.dockEnabled = !!params.substrateUrl;
120
+ if (this.dockEnabled) {
121
+ await this.dock.init({
122
+ address: params.substrateUrl,
123
+ });
124
+ Logger.info(`Substrate initialized at: ${params.address}`);
125
+ }
126
+ this.modules = new MultiApiCoreModules(this.dockEnabled
127
+ ? [this.dockModules, this.cheqdModules]
128
+ : [this.cheqdModules]);
129
+ if (params?.cheqdApiUrl) {
130
+ const checkdApiUrl = params?.cheqdApiUrl;
131
+ const cheqdNetworkId = params?.networkId;
132
+ const cheqdMnemonic = params?.cheqdMnemonic || (await utilCryptoService.mnemonicGenerate(12));
133
+ const wallet = await DirectSecp256k1HdWallet.fromMnemonic(cheqdMnemonic, {
134
+ prefix: 'cheqd',
135
+ });
136
+ const walletAccounts = await wallet.getAccounts();
137
+ const [{ address }] = walletAccounts;
138
+ console.log('Using cheqd account:', address);
139
+ Logger.info(`Attempt to initialized cheqd at: ${checkdApiUrl} with networkId: ${cheqdNetworkId}`);
140
+ Logger.info(`Using cheqd account: ${address}`);
141
+ try {
142
+ await this.cheqdApi.init({
143
+ wallet,
144
+ url: checkdApiUrl,
145
+ network: cheqdNetworkId,
146
+ });
147
+ Logger.info(`Cheqd initialized at: ${checkdApiUrl}`);
148
+ }
149
+ catch (err) {
150
+ Logger.error(`Failed to initialize cheqd at: ${checkdApiUrl}`);
151
+ }
152
+ }
153
+ this.address = params.address;
154
+ this.resolver = this.createDIDResolver();
155
+ if (process.env.NODE_ENV !== 'test' ||
156
+ process.env.API_MOCK_DISABLED === 'true') {
157
+ await initializeWasm();
158
+ }
159
+ this._setBlockchainReady(true);
160
+ return true;
161
+ }
162
+ /**
163
+ *
164
+ * @returns
165
+ */
166
+ async disconnect() {
167
+ let result;
168
+ if (this.dockEnabled) {
169
+ result = await this.dock.disconnect();
170
+ }
171
+ if (this.cheqdApi && this.cheqdApi.isInitialized()) {
172
+ result = await this.cheqdApi.disconnect();
173
+ }
174
+ this._setBlockchainReady(false);
175
+ return result;
176
+ }
177
+ async waitBlockchainReady() {
178
+ return new Promise(resolve => {
179
+ if (this.isBlockchainReady) {
180
+ resolve();
181
+ }
182
+ else {
183
+ this.emitter.once(BlockchainService.Events.BLOCKCHAIN_READY, resolve);
184
+ }
185
+ });
186
+ }
187
+ /**
188
+ *
189
+ * @returns
190
+ */
191
+ async isApiConnected() {
192
+ return this.cheqdApi.isInitialized();
193
+ }
194
+ async getAddress() {
195
+ return this.dock.address;
196
+ }
197
+ _setBlockchainReady(isBlockchainReady) {
198
+ this.isBlockchainReady = isBlockchainReady;
199
+ if (isBlockchainReady) {
200
+ this.emitter.emit(BlockchainService.Events.BLOCKCHAIN_READY);
201
+ }
202
+ }
203
+ }
204
+ const blockchainService = new BlockchainService();
205
+
206
+ export { BlockchainService, blockchainService, universalResolverUrl };
@@ -4,93 +4,65 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var cryptoWasmTs = require('@docknetwork/crypto-wasm-ts');
6
6
  var util = require('@polkadot/util');
7
- var services_dock_service = require('../dock/service.js');
8
- require('@docknetwork/dock-blockchain-api');
7
+ var services_blockchain_service = require('../blockchain/service.js');
8
+ require('@cosmjs/proto-signing');
9
+ require('@docknetwork/cheqd-blockchain-api');
10
+ require('@docknetwork/cheqd-blockchain-modules');
11
+ require('@docknetwork/credential-sdk/modules');
9
12
  require('@docknetwork/credential-sdk/resolver');
10
- require('@docknetwork/dock-blockchain-modules');
11
13
  require('@docknetwork/crypto-wasm-ts/lib/index');
14
+ require('@docknetwork/dock-blockchain-api');
15
+ require('@docknetwork/dock-blockchain-modules');
12
16
  require('events');
13
17
  require('../../core/logger.js');
14
18
  require('../../modules/event-manager.js');
15
19
  require('assert');
16
- require('../dock/configs.js');
20
+ require('../util-crypto/service.js');
21
+ require('@polkadot/keyring');
22
+ require('@polkadot/util-crypto');
23
+ require('../util-crypto/configs.js');
24
+ require('../../core/validation.js');
25
+ require('bignumber.js');
26
+ require('../../types.js');
27
+ require('@docknetwork/credential-sdk/types');
17
28
 
18
- // "-32000: Client error: UnknownBlock: State already discarded for BlockId::Hash(<hash>)"
19
- // This means that the node has discarded old blocks to preserve space. This should not happen with a full node
20
- const UnknownBlockErrorCode = -32000;
21
- async function updateMembershipWitness({ credential, membershipWitness, registryId, blockNo, }) {
22
- const revocationId = credential.credentialStatus.revocationId;
23
- const member = cryptoWasmTs.Accumulator.encodePositiveNumberAsAccumulatorMember(Number(revocationId));
24
- let updates = [];
25
- try {
26
- // TODO: Ensure it will for cheqd
27
- // Will be handled on https://dock-team.atlassian.net/browse/DCKW-572
28
- updates = await services_dock_service.dockService.modules.accumulator.dockOnly.getUpdatesFromBlock(registryId, blockNo);
29
- }
30
- catch (err) {
31
- if (err.code === UnknownBlockErrorCode) {
32
- console.error(err);
33
- updates = [];
34
- }
35
- else {
36
- throw err;
37
- }
38
- }
39
- const additions = [];
40
- const removals = [];
41
- if (updates.length && updates[0].additions !== null) {
42
- for (const a of updates[0].additions) {
43
- additions.push(util.hexToU8a(a));
44
- }
45
- }
46
- if (updates.length && updates[0].removals !== null) {
47
- for (const a of updates[0].removals) {
48
- removals.push(util.hexToU8a(a));
49
- }
50
- }
51
- const witness = new cryptoWasmTs.VBMembershipWitness(util.hexToU8a(membershipWitness));
52
- if (updates.length) {
53
- const queriedWitnessInfo = new cryptoWasmTs.VBWitnessUpdateInfo(util.hexToU8a(updates[0].witnessUpdateInfo));
54
- witness.updateUsingPublicInfoPostBatchUpdate(member, additions, removals, queriedWitnessInfo);
55
- }
56
- return witness;
57
- }
58
29
  const getWitnessDetails = async (credential, _membershipWitness) => {
59
30
  let witness = _membershipWitness;
60
31
  let blockNo;
61
32
  try {
62
- ({ blockNo, witness } = JSON.parse(_membershipWitness));
33
+ ({ witness, blockNo } = JSON.parse(_membershipWitness));
63
34
  }
64
35
  catch (err) {
65
36
  console.error(err);
66
37
  }
67
38
  const { credentialStatus } = credential;
68
- const registryId = credentialStatus?.id.replace('dock:accumulator:', '');
39
+ const registryId = credentialStatus?.id;
69
40
  const revocationIndex = credentialStatus.revocationId;
70
- const queriedAccumulator = await services_dock_service.dockService.modules.accumulator.getAccumulator(registryId, false);
41
+ const queriedAccumulator = await services_blockchain_service.blockchainService.modules.accumulator.getAccumulator(registryId, false);
71
42
  if (!queriedAccumulator) {
72
43
  throw new Error('Accumulator not found');
73
44
  }
74
45
  const accumulator = cryptoWasmTs.PositiveAccumulator.fromAccumulated(queriedAccumulator.accumulated.bytes);
75
46
  const encodedRevId = cryptoWasmTs.Encoder.defaultEncodeFunc()(revocationIndex.toString());
76
- const publicKey = await services_dock_service.dockService.modules.accumulator.getPublicKey(queriedAccumulator.keyRef[0], queriedAccumulator.keyRef[1]);
47
+ const publicKey = await services_blockchain_service.blockchainService.modules.accumulator.getPublicKey(queriedAccumulator.keyRef[0], queriedAccumulator.keyRef[1]);
77
48
  const params = cryptoWasmTs.dockAccumulatorParams();
78
49
  const pk = new cryptoWasmTs.AccumulatorPublicKey(publicKey.bytes);
79
- let membershipWitness = new cryptoWasmTs.VBMembershipWitness(util.hexToU8a(witness));
80
- if (blockNo) {
81
- try {
82
- const updatedWitness = await updateMembershipWitness({
83
- credential,
84
- membershipWitness: witness,
85
- registryId,
86
- blockNo,
87
- });
88
- membershipWitness = updatedWitness;
89
- }
90
- catch (err) {
91
- console.error(err);
50
+ const membershipWitness = new cryptoWasmTs.VBMembershipWitness(util.hexToU8a(witness));
51
+ try {
52
+ const credentialStatusId = credential.credentialStatus.id;
53
+ const accumulatorId = services_blockchain_service.blockchainService
54
+ .getTypesForDIDOrAccumulator(credentialStatusId)
55
+ .AccumulatorId.from(credentialStatusId);
56
+ const history = await services_blockchain_service.blockchainService.modules.accumulator.accumulatorHistory(accumulatorId);
57
+ const blockNoIndex = history.updates.findIndex(update => update.id.toString() === blockNo);
58
+ const nextBlockNo = history.updates[blockNoIndex + 1]?.id?.toString();
59
+ if (nextBlockNo) {
60
+ await services_blockchain_service.blockchainService.modules.accumulator.updateWitness(registryId, encodedRevId, membershipWitness, nextBlockNo, queriedAccumulator.lastModified);
92
61
  }
93
62
  }
63
+ catch (err) {
64
+ console.error(err);
65
+ }
94
66
  return {
95
67
  encodedRevId,
96
68
  membershipWitness,
@@ -1,92 +1,64 @@
1
- import { PositiveAccumulator, Encoder, dockAccumulatorParams, AccumulatorPublicKey, VBMembershipWitness, Accumulator, VBWitnessUpdateInfo } from '@docknetwork/crypto-wasm-ts';
1
+ import { PositiveAccumulator, Encoder, dockAccumulatorParams, AccumulatorPublicKey, VBMembershipWitness } from '@docknetwork/crypto-wasm-ts';
2
2
  import { hexToU8a } from '@polkadot/util';
3
- import { dockService } from '../dock/service.mjs';
4
- import '@docknetwork/dock-blockchain-api';
3
+ import { blockchainService } from '../blockchain/service.mjs';
4
+ import '@cosmjs/proto-signing';
5
+ import '@docknetwork/cheqd-blockchain-api';
6
+ import '@docknetwork/cheqd-blockchain-modules';
7
+ import '@docknetwork/credential-sdk/modules';
5
8
  import '@docknetwork/credential-sdk/resolver';
6
- import '@docknetwork/dock-blockchain-modules';
7
9
  import '@docknetwork/crypto-wasm-ts/lib/index';
10
+ import '@docknetwork/dock-blockchain-api';
11
+ import '@docknetwork/dock-blockchain-modules';
8
12
  import 'events';
9
13
  import '../../core/logger.mjs';
10
14
  import '../../modules/event-manager.mjs';
11
15
  import 'assert';
12
- import '../dock/configs.mjs';
16
+ import '../util-crypto/service.mjs';
17
+ import '@polkadot/keyring';
18
+ import '@polkadot/util-crypto';
19
+ import '../util-crypto/configs.mjs';
20
+ import '../../core/validation.mjs';
21
+ import 'bignumber.js';
22
+ import '../../types.mjs';
23
+ import '@docknetwork/credential-sdk/types';
13
24
 
14
- // "-32000: Client error: UnknownBlock: State already discarded for BlockId::Hash(<hash>)"
15
- // This means that the node has discarded old blocks to preserve space. This should not happen with a full node
16
- const UnknownBlockErrorCode = -32000;
17
- async function updateMembershipWitness({ credential, membershipWitness, registryId, blockNo, }) {
18
- const revocationId = credential.credentialStatus.revocationId;
19
- const member = Accumulator.encodePositiveNumberAsAccumulatorMember(Number(revocationId));
20
- let updates = [];
21
- try {
22
- // TODO: Ensure it will for cheqd
23
- // Will be handled on https://dock-team.atlassian.net/browse/DCKW-572
24
- updates = await dockService.modules.accumulator.dockOnly.getUpdatesFromBlock(registryId, blockNo);
25
- }
26
- catch (err) {
27
- if (err.code === UnknownBlockErrorCode) {
28
- console.error(err);
29
- updates = [];
30
- }
31
- else {
32
- throw err;
33
- }
34
- }
35
- const additions = [];
36
- const removals = [];
37
- if (updates.length && updates[0].additions !== null) {
38
- for (const a of updates[0].additions) {
39
- additions.push(hexToU8a(a));
40
- }
41
- }
42
- if (updates.length && updates[0].removals !== null) {
43
- for (const a of updates[0].removals) {
44
- removals.push(hexToU8a(a));
45
- }
46
- }
47
- const witness = new VBMembershipWitness(hexToU8a(membershipWitness));
48
- if (updates.length) {
49
- const queriedWitnessInfo = new VBWitnessUpdateInfo(hexToU8a(updates[0].witnessUpdateInfo));
50
- witness.updateUsingPublicInfoPostBatchUpdate(member, additions, removals, queriedWitnessInfo);
51
- }
52
- return witness;
53
- }
54
25
  const getWitnessDetails = async (credential, _membershipWitness) => {
55
26
  let witness = _membershipWitness;
56
27
  let blockNo;
57
28
  try {
58
- ({ blockNo, witness } = JSON.parse(_membershipWitness));
29
+ ({ witness, blockNo } = JSON.parse(_membershipWitness));
59
30
  }
60
31
  catch (err) {
61
32
  console.error(err);
62
33
  }
63
34
  const { credentialStatus } = credential;
64
- const registryId = credentialStatus?.id.replace('dock:accumulator:', '');
35
+ const registryId = credentialStatus?.id;
65
36
  const revocationIndex = credentialStatus.revocationId;
66
- const queriedAccumulator = await dockService.modules.accumulator.getAccumulator(registryId, false);
37
+ const queriedAccumulator = await blockchainService.modules.accumulator.getAccumulator(registryId, false);
67
38
  if (!queriedAccumulator) {
68
39
  throw new Error('Accumulator not found');
69
40
  }
70
41
  const accumulator = PositiveAccumulator.fromAccumulated(queriedAccumulator.accumulated.bytes);
71
42
  const encodedRevId = Encoder.defaultEncodeFunc()(revocationIndex.toString());
72
- const publicKey = await dockService.modules.accumulator.getPublicKey(queriedAccumulator.keyRef[0], queriedAccumulator.keyRef[1]);
43
+ const publicKey = await blockchainService.modules.accumulator.getPublicKey(queriedAccumulator.keyRef[0], queriedAccumulator.keyRef[1]);
73
44
  const params = dockAccumulatorParams();
74
45
  const pk = new AccumulatorPublicKey(publicKey.bytes);
75
- let membershipWitness = new VBMembershipWitness(hexToU8a(witness));
76
- if (blockNo) {
77
- try {
78
- const updatedWitness = await updateMembershipWitness({
79
- credential,
80
- membershipWitness: witness,
81
- registryId,
82
- blockNo,
83
- });
84
- membershipWitness = updatedWitness;
85
- }
86
- catch (err) {
87
- console.error(err);
46
+ const membershipWitness = new VBMembershipWitness(hexToU8a(witness));
47
+ try {
48
+ const credentialStatusId = credential.credentialStatus.id;
49
+ const accumulatorId = blockchainService
50
+ .getTypesForDIDOrAccumulator(credentialStatusId)
51
+ .AccumulatorId.from(credentialStatusId);
52
+ const history = await blockchainService.modules.accumulator.accumulatorHistory(accumulatorId);
53
+ const blockNoIndex = history.updates.findIndex(update => update.id.toString() === blockNo);
54
+ const nextBlockNo = history.updates[blockNoIndex + 1]?.id?.toString();
55
+ if (nextBlockNo) {
56
+ await blockchainService.modules.accumulator.updateWitness(registryId, encodedRevId, membershipWitness, nextBlockNo, queriedAccumulator.lastModified);
88
57
  }
89
58
  }
59
+ catch (err) {
60
+ console.error(err);
61
+ }
90
62
  return {
91
63
  encodedRevId,
92
64
  membershipWitness,
@@ -62,16 +62,8 @@ async function fetchProvingKey(proofRequest) {
62
62
  const provingKey = new legosnark.LegoProvingKey(blob);
63
63
  return { provingKey, provingKeyId: 'key0' };
64
64
  }
65
- const MAX_DATE_PLACEHOLDER = 884541351600000;
66
- const MIN_DATE_PLACEHOLDER = -17592186044415;
67
- const MAX_NUMBER = Math.pow(100, 9);
68
- const MIN_INTEGER = -4294967295;
69
65
  const hasProvingKey = (proofRequest) => !!proofRequest.boundCheckSnarkKey;
70
66
 
71
- exports.MAX_DATE_PLACEHOLDER = MAX_DATE_PLACEHOLDER;
72
- exports.MAX_NUMBER = MAX_NUMBER;
73
- exports.MIN_DATE_PLACEHOLDER = MIN_DATE_PLACEHOLDER;
74
- exports.MIN_INTEGER = MIN_INTEGER;
75
67
  exports.applyEnforceBounds = applyEnforceBounds;
76
68
  exports.blobFromBase64 = blobFromBase64;
77
69
  exports.fetchBlobFromUrl = fetchBlobFromUrl;
@@ -54,10 +54,6 @@ async function fetchProvingKey(proofRequest) {
54
54
  const provingKey = new LegoProvingKey(blob);
55
55
  return { provingKey, provingKeyId: 'key0' };
56
56
  }
57
- const MAX_DATE_PLACEHOLDER = 884541351600000;
58
- const MIN_DATE_PLACEHOLDER = -17592186044415;
59
- const MAX_NUMBER = Math.pow(100, 9);
60
- const MIN_INTEGER = -4294967295;
61
57
  const hasProvingKey = (proofRequest) => !!proofRequest.boundCheckSnarkKey;
62
58
 
63
- export { MAX_DATE_PLACEHOLDER, MAX_NUMBER, MIN_DATE_PLACEHOLDER, MIN_INTEGER, applyEnforceBounds, blobFromBase64, fetchBlobFromUrl, fetchProvingKey, hasProvingKey, isBase64OrDataUrl };
59
+ export { applyEnforceBounds, blobFromBase64, fetchBlobFromUrl, fetchProvingKey, hasProvingKey, isBase64OrDataUrl };
@@ -8,28 +8,35 @@ require('assert');
8
8
  require('@docknetwork/crypto-wasm-ts');
9
9
  require('@sphereon/oid4vci-client');
10
10
  require('@sphereon/oid4vci-common');
11
- require('@docknetwork/sdk/verifiable-credential');
12
11
  require('@docknetwork/universal-wallet/methods/keypairs');
13
- require('@docknetwork/sdk/utils/vc/helpers');
14
- require('@docknetwork/sdk/verifiable-presentation');
15
- require('@docknetwork/sdk/presentation');
16
- require('@docknetwork/sdk/utils/vc/credentials');
12
+ require('@docknetwork/credential-sdk/vc');
17
13
  require('@sphereon/pex');
18
14
  require('./utils.js');
19
15
  require('base58-universal');
20
- require('@docknetwork/sdk/utils/misc');
16
+ require('@docknetwork/credential-sdk/vc/crypto');
17
+ require('../keyring/service.js');
18
+ require('@polkadot/keyring');
21
19
  require('@polkadot/util-crypto');
22
- require('@polkadot/util');
23
- require('@docknetwork/sdk/utils/vc/crypto/Bls12381G2KeyPairDock2022');
24
- require('../dock/service.js');
25
- require('@docknetwork/dock-blockchain-api');
20
+ require('../keyring/configs.js');
21
+ require('../../core/validation.js');
22
+ require('bignumber.js');
23
+ require('../../types.js');
24
+ require('../blockchain/service.js');
25
+ require('@cosmjs/proto-signing');
26
+ require('@docknetwork/cheqd-blockchain-api');
27
+ require('@docknetwork/cheqd-blockchain-modules');
28
+ require('@docknetwork/credential-sdk/modules');
26
29
  require('@docknetwork/credential-sdk/resolver');
27
- require('@docknetwork/dock-blockchain-modules');
28
30
  require('@docknetwork/crypto-wasm-ts/lib/index');
31
+ require('@docknetwork/dock-blockchain-api');
32
+ require('@docknetwork/dock-blockchain-modules');
29
33
  require('events');
30
34
  require('../../core/logger.js');
31
35
  require('../../modules/event-manager.js');
32
- require('../dock/configs.js');
36
+ require('../util-crypto/service.js');
37
+ require('@polkadot/util');
38
+ require('../util-crypto/configs.js');
39
+ require('@docknetwork/credential-sdk/types');
33
40
  require('./bound-check.js');
34
41
  require('@docknetwork/crypto-wasm-ts/lib/legosnark');
35
42
  require('base64url');
@@ -39,19 +46,9 @@ require('./bbs-revocation.js');
39
46
  require('../dids/service.js');
40
47
  require('@docknetwork/wallet-sdk-dids/lib');
41
48
  require('../dids/config.js');
42
- require('../keyring/service.js');
43
- require('@polkadot/keyring');
44
- require('../keyring/configs.js');
45
- require('../../core/validation.js');
46
- require('bignumber.js');
47
- require('../../types.js');
48
- require('../util-crypto/service.js');
49
- require('../util-crypto/configs.js');
50
- require('@docknetwork/credential-sdk/types');
51
- require('@docknetwork/credential-sdk/keypairs');
52
49
  require('../../core/polkadot-utils.js');
50
+ require('@docknetwork/credential-sdk/keypairs');
53
51
  require('@polkadot/keyring/pair/decode');
54
- require('@docknetwork/credential-sdk/vc/crypto');
55
52
 
56
53
  // @ts-nocheck
57
54
  // TODO: rename it to credentialService, will need to update dock-app
@@ -4,28 +4,35 @@ import 'assert';
4
4
  import '@docknetwork/crypto-wasm-ts';
5
5
  import '@sphereon/oid4vci-client';
6
6
  import '@sphereon/oid4vci-common';
7
- import '@docknetwork/sdk/verifiable-credential';
8
7
  import '@docknetwork/universal-wallet/methods/keypairs';
9
- import '@docknetwork/sdk/utils/vc/helpers';
10
- import '@docknetwork/sdk/verifiable-presentation';
11
- import '@docknetwork/sdk/presentation';
12
- import '@docknetwork/sdk/utils/vc/credentials';
8
+ import '@docknetwork/credential-sdk/vc';
13
9
  import '@sphereon/pex';
14
10
  import './utils.mjs';
15
11
  import 'base58-universal';
16
- import '@docknetwork/sdk/utils/misc';
12
+ import '@docknetwork/credential-sdk/vc/crypto';
13
+ import '../keyring/service.mjs';
14
+ import '@polkadot/keyring';
17
15
  import '@polkadot/util-crypto';
18
- import '@polkadot/util';
19
- import '@docknetwork/sdk/utils/vc/crypto/Bls12381G2KeyPairDock2022';
20
- import '../dock/service.mjs';
21
- import '@docknetwork/dock-blockchain-api';
16
+ import '../keyring/configs.mjs';
17
+ import '../../core/validation.mjs';
18
+ import 'bignumber.js';
19
+ import '../../types.mjs';
20
+ import '../blockchain/service.mjs';
21
+ import '@cosmjs/proto-signing';
22
+ import '@docknetwork/cheqd-blockchain-api';
23
+ import '@docknetwork/cheqd-blockchain-modules';
24
+ import '@docknetwork/credential-sdk/modules';
22
25
  import '@docknetwork/credential-sdk/resolver';
23
- import '@docknetwork/dock-blockchain-modules';
24
26
  import '@docknetwork/crypto-wasm-ts/lib/index';
27
+ import '@docknetwork/dock-blockchain-api';
28
+ import '@docknetwork/dock-blockchain-modules';
25
29
  import 'events';
26
30
  import '../../core/logger.mjs';
27
31
  import '../../modules/event-manager.mjs';
28
- import '../dock/configs.mjs';
32
+ import '../util-crypto/service.mjs';
33
+ import '@polkadot/util';
34
+ import '../util-crypto/configs.mjs';
35
+ import '@docknetwork/credential-sdk/types';
29
36
  import './bound-check.mjs';
30
37
  import '@docknetwork/crypto-wasm-ts/lib/legosnark';
31
38
  import 'base64url';
@@ -35,19 +42,9 @@ import './bbs-revocation.mjs';
35
42
  import '../dids/service.mjs';
36
43
  import '@docknetwork/wallet-sdk-dids/lib';
37
44
  import '../dids/config.mjs';
38
- import '../keyring/service.mjs';
39
- import '@polkadot/keyring';
40
- import '../keyring/configs.mjs';
41
- import '../../core/validation.mjs';
42
- import 'bignumber.js';
43
- import '../../types.mjs';
44
- import '../util-crypto/service.mjs';
45
- import '../util-crypto/configs.mjs';
46
- import '@docknetwork/credential-sdk/types';
47
- import '@docknetwork/credential-sdk/keypairs';
48
45
  import '../../core/polkadot-utils.mjs';
46
+ import '@docknetwork/credential-sdk/keypairs';
49
47
  import '@polkadot/keyring/pair/decode';
50
- import '@docknetwork/credential-sdk/vc/crypto';
51
48
 
52
49
  // @ts-nocheck
53
50
  // TODO: rename it to credentialService, will need to update dock-app