@docknetwork/wallet-sdk-wasm 1.5.9 → 1.5.11

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 (267) hide show
  1. package/lib/core/format-utils.js +0 -28
  2. package/lib/core/format-utils.mjs +1 -24
  3. package/lib/core/validation.js +1 -24
  4. package/lib/core/validation.mjs +2 -21
  5. package/lib/index.js +13 -23
  6. package/lib/index.mjs +13 -23
  7. package/lib/rpc-server.js +13 -23
  8. package/lib/rpc-server.mjs +13 -23
  9. package/lib/rpc-util.js +14 -0
  10. package/lib/rpc-util.mjs +14 -0
  11. package/lib/services/blockchain/index.js +3 -6
  12. package/lib/services/blockchain/index.mjs +3 -6
  13. package/lib/services/blockchain/service.js +5 -9
  14. package/lib/services/blockchain/service.mjs +5 -9
  15. package/lib/services/credential/bbs-revocation.js +4 -7
  16. package/lib/services/credential/bbs-revocation.mjs +3 -6
  17. package/lib/services/credential/bound-check.js +9 -4
  18. package/lib/services/credential/bound-check.mjs +9 -4
  19. package/lib/services/credential/index.js +11 -13
  20. package/lib/services/credential/index.mjs +11 -13
  21. package/lib/services/credential/service.js +18 -18
  22. package/lib/services/credential/service.mjs +15 -15
  23. package/lib/services/credential/utils.js +59 -28
  24. package/lib/services/credential/utils.mjs +62 -32
  25. package/lib/services/dids/index.js +7 -25
  26. package/lib/services/dids/index.mjs +7 -25
  27. package/lib/services/dids/keypair-utils.js +142 -0
  28. package/lib/services/dids/keypair-utils.mjs +113 -0
  29. package/lib/services/dids/service-rpc.js +0 -3
  30. package/lib/services/dids/service-rpc.mjs +0 -3
  31. package/lib/services/dids/service.js +13 -55
  32. package/lib/services/dids/service.mjs +13 -54
  33. package/lib/services/edv/index.js +4 -25
  34. package/lib/services/edv/index.mjs +4 -25
  35. package/lib/services/edv/service.js +6 -33
  36. package/lib/services/edv/service.mjs +6 -33
  37. package/lib/services/index.js +13 -25
  38. package/lib/services/index.mjs +13 -25
  39. package/lib/services/relay-service/configs.js +0 -1
  40. package/lib/services/relay-service/configs.mjs +0 -1
  41. package/lib/services/relay-service/index.android.js +0 -1
  42. package/lib/services/relay-service/index.android.mjs +0 -1
  43. package/lib/services/relay-service/index.ios.js +0 -1
  44. package/lib/services/relay-service/index.ios.mjs +0 -1
  45. package/lib/services/relay-service/index.js +0 -1
  46. package/lib/services/relay-service/index.mjs +0 -1
  47. package/lib/services/relay-service/service-rpc.js +0 -1
  48. package/lib/services/relay-service/service-rpc.mjs +0 -1
  49. package/lib/services/relay-service/service.js +0 -1
  50. package/lib/services/relay-service/service.mjs +0 -1
  51. package/lib/services/test-utils.js +0 -44
  52. package/lib/services/test-utils.mjs +1 -44
  53. package/lib/services/util-crypto/configs.js +0 -12
  54. package/lib/services/util-crypto/configs.mjs +0 -12
  55. package/lib/services/util-crypto/index.android.js +0 -3
  56. package/lib/services/util-crypto/index.android.mjs +0 -3
  57. package/lib/services/util-crypto/index.ios.js +0 -3
  58. package/lib/services/util-crypto/index.ios.mjs +0 -3
  59. package/lib/services/util-crypto/index.js +4 -7
  60. package/lib/services/util-crypto/index.mjs +4 -7
  61. package/lib/services/util-crypto/service-rpc.js +2 -30
  62. package/lib/services/util-crypto/service-rpc.mjs +2 -30
  63. package/lib/services/util-crypto/service.js +68 -61
  64. package/lib/services/util-crypto/service.mjs +50 -59
  65. package/lib/services/wallet/configs.js +0 -63
  66. package/lib/services/wallet/configs.mjs +1 -64
  67. package/lib/services/wallet/index.android.js +0 -1
  68. package/lib/services/wallet/index.android.mjs +0 -1
  69. package/lib/services/wallet/index.ios.js +0 -1
  70. package/lib/services/wallet/index.ios.mjs +0 -1
  71. package/lib/services/wallet/index.js +2 -12
  72. package/lib/services/wallet/index.mjs +2 -12
  73. package/lib/services/wallet/service-rpc.js +0 -77
  74. package/lib/services/wallet/service-rpc.mjs +0 -77
  75. package/lib/services/wallet/service.js +1 -215
  76. package/lib/services/wallet/service.mjs +1 -211
  77. package/lib/setup-nodejs.js +13 -23
  78. package/lib/setup-nodejs.mjs +13 -23
  79. package/lib/setup-tests.js +13 -23
  80. package/lib/setup-tests.mjs +13 -23
  81. package/lib/src/core/format-utils.d.ts +0 -5
  82. package/lib/src/core/format-utils.d.ts.map +1 -1
  83. package/lib/src/core/validation.d.ts +0 -3
  84. package/lib/src/core/validation.d.ts.map +1 -1
  85. package/lib/src/rpc-util.d.ts.map +1 -1
  86. package/lib/src/services/blockchain/service.d.ts.map +1 -1
  87. package/lib/src/services/credential/bbs-revocation.d.ts.map +1 -1
  88. package/lib/src/services/credential/bound-check.d.ts +1 -1
  89. package/lib/src/services/credential/bound-check.d.ts.map +1 -1
  90. package/lib/src/services/credential/service.d.ts.map +1 -1
  91. package/lib/src/services/credential/utils.d.ts +2 -1
  92. package/lib/src/services/credential/utils.d.ts.map +1 -1
  93. package/lib/src/services/dids/keypair-utils.d.ts +15 -0
  94. package/lib/src/services/dids/keypair-utils.d.ts.map +1 -0
  95. package/lib/src/services/dids/service-rpc.d.ts +0 -1
  96. package/lib/src/services/dids/service-rpc.d.ts.map +1 -1
  97. package/lib/src/services/dids/service.d.ts +11 -8
  98. package/lib/src/services/dids/service.d.ts.map +1 -1
  99. package/lib/src/services/edv/service.d.ts.map +1 -1
  100. package/lib/src/services/util-crypto/configs.d.ts +0 -3
  101. package/lib/src/services/util-crypto/configs.d.ts.map +1 -1
  102. package/lib/src/services/util-crypto/service.d.ts +3 -8
  103. package/lib/src/services/util-crypto/service.d.ts.map +1 -1
  104. package/lib/src/services/wallet/configs.d.ts +13 -0
  105. package/lib/src/services/wallet/configs.d.ts.map +1 -0
  106. package/lib/src/services/wallet/service.d.ts +1 -44
  107. package/lib/src/services/wallet/service.d.ts.map +1 -1
  108. package/lib/test-utils.js +0 -4
  109. package/lib/test-utils.mjs +1 -4
  110. package/lib/tsconfig.tsbuildinfo +1 -1
  111. package/package.json +5 -25
  112. package/readme.md +0 -61
  113. package/src/core/format-utils.test.js +1 -28
  114. package/src/core/format-utils.ts +0 -33
  115. package/src/core/validation.test.js +1 -33
  116. package/src/core/validation.ts +1 -25
  117. package/src/rpc-server.test.js +2 -9
  118. package/src/rpc-util.js +14 -0
  119. package/src/services/blockchain/service.ts +2 -3
  120. package/src/services/credential/bbs-revocation.ts +2 -1
  121. package/src/services/credential/bound-check.test.ts +6 -6
  122. package/src/services/credential/bound-check.ts +4 -4
  123. package/src/services/credential/index.test.js +0 -2
  124. package/src/services/credential/service.ts +5 -2
  125. package/src/services/credential/utils.js +65 -23
  126. package/src/services/dids/index.test.js +45 -33
  127. package/src/services/dids/keypair-utils.js +111 -0
  128. package/src/services/dids/service-rpc.ts +0 -3
  129. package/src/services/dids/service.ts +7 -34
  130. package/src/services/edv/service.ts +2 -9
  131. package/src/services/index.js +0 -4
  132. package/src/services/test-utils.js +0 -29
  133. package/src/services/util-crypto/configs.ts +0 -12
  134. package/src/services/util-crypto/index.test.js +6 -83
  135. package/src/services/util-crypto/service-rpc.js +2 -27
  136. package/src/services/util-crypto/service.ts +62 -75
  137. package/src/services/wallet/configs.ts +1 -113
  138. package/src/services/wallet/index.test.js +0 -159
  139. package/src/services/wallet/service-rpc.js +1 -88
  140. package/src/services/wallet/service.ts +0 -258
  141. package/src/test-utils.js +0 -13
  142. package/lib/account-357ab05d.js +0 -742
  143. package/lib/account-399e6053.js +0 -752
  144. package/lib/core/polkadot-utils.js +0 -119
  145. package/lib/core/polkadot-utils.mjs +0 -94
  146. package/lib/core/realm-schemas.js +0 -50
  147. package/lib/core/realm-schemas.mjs +0 -44
  148. package/lib/core/subscan.js +0 -75
  149. package/lib/core/subscan.mjs +0 -64
  150. package/lib/fixtures.js +0 -56
  151. package/lib/fixtures.mjs +0 -52
  152. package/lib/modules/account.js +0 -48
  153. package/lib/modules/account.mjs +0 -40
  154. package/lib/modules/accounts.js +0 -49
  155. package/lib/modules/accounts.mjs +0 -40
  156. package/lib/modules/data-migration.js +0 -72
  157. package/lib/modules/data-migration.mjs +0 -68
  158. package/lib/modules/wallet-backup.js +0 -82
  159. package/lib/modules/wallet-backup.mjs +0 -71
  160. package/lib/modules/wallet.js +0 -49
  161. package/lib/modules/wallet.mjs +0 -40
  162. package/lib/services/example/configs.js +0 -21
  163. package/lib/services/example/configs.mjs +0 -13
  164. package/lib/services/example/index.js +0 -18
  165. package/lib/services/example/index.mjs +0 -14
  166. package/lib/services/example/service-rpc.js +0 -25
  167. package/lib/services/example/service-rpc.mjs +0 -21
  168. package/lib/services/example/service.js +0 -25
  169. package/lib/services/example/service.mjs +0 -20
  170. package/lib/services/keyring/configs.js +0 -70
  171. package/lib/services/keyring/configs.mjs +0 -61
  172. package/lib/services/keyring/index.android.js +0 -22
  173. package/lib/services/keyring/index.android.mjs +0 -18
  174. package/lib/services/keyring/index.ios.js +0 -22
  175. package/lib/services/keyring/index.ios.mjs +0 -18
  176. package/lib/services/keyring/index.js +0 -16
  177. package/lib/services/keyring/index.mjs +0 -8
  178. package/lib/services/keyring/service-rpc.js +0 -65
  179. package/lib/services/keyring/service-rpc.mjs +0 -61
  180. package/lib/services/keyring/service.js +0 -84
  181. package/lib/services/keyring/service.mjs +0 -74
  182. package/lib/services/polkadot/configs.js +0 -17
  183. package/lib/services/polkadot/configs.mjs +0 -13
  184. package/lib/services/polkadot/index.android.js +0 -22
  185. package/lib/services/polkadot/index.android.mjs +0 -18
  186. package/lib/services/polkadot/index.ios.js +0 -22
  187. package/lib/services/polkadot/index.ios.mjs +0 -18
  188. package/lib/services/polkadot/index.js +0 -15
  189. package/lib/services/polkadot/index.mjs +0 -7
  190. package/lib/services/polkadot/service-rpc.js +0 -30
  191. package/lib/services/polkadot/service-rpc.mjs +0 -26
  192. package/lib/services/polkadot/service.js +0 -28
  193. package/lib/services/polkadot/service.mjs +0 -23
  194. package/lib/src/core/polkadot-utils.d.ts +0 -11
  195. package/lib/src/core/polkadot-utils.d.ts.map +0 -1
  196. package/lib/src/modules/account.d.ts +0 -60
  197. package/lib/src/modules/account.d.ts.map +0 -1
  198. package/lib/src/modules/accounts.d.ts +0 -48
  199. package/lib/src/modules/accounts.d.ts.map +0 -1
  200. package/lib/src/modules/data-migration.d.ts +0 -7
  201. package/lib/src/modules/data-migration.d.ts.map +0 -1
  202. package/lib/src/modules/wallet-backup.d.ts +0 -12
  203. package/lib/src/modules/wallet-backup.d.ts.map +0 -1
  204. package/lib/src/modules/wallet.d.ts +0 -134
  205. package/lib/src/modules/wallet.d.ts.map +0 -1
  206. package/lib/src/services/blockchain/index.d.ts +0 -2
  207. package/lib/src/services/blockchain/index.d.ts.map +0 -1
  208. package/lib/src/services/example/configs.d.ts +0 -9
  209. package/lib/src/services/example/configs.d.ts.map +0 -1
  210. package/lib/src/services/example/service.d.ts +0 -8
  211. package/lib/src/services/example/service.d.ts.map +0 -1
  212. package/lib/src/services/keyring/configs.d.ts +0 -39
  213. package/lib/src/services/keyring/configs.d.ts.map +0 -1
  214. package/lib/src/services/keyring/index.d.ts +0 -2
  215. package/lib/src/services/keyring/index.d.ts.map +0 -1
  216. package/lib/src/services/polkadot/configs.d.ts +0 -8
  217. package/lib/src/services/polkadot/configs.d.ts.map +0 -1
  218. package/lib/src/services/polkadot/index.d.ts +0 -2
  219. package/lib/src/services/polkadot/index.d.ts.map +0 -1
  220. package/lib/src/services/polkadot/service.d.ts +0 -8
  221. package/lib/src/services/polkadot/service.d.ts.map +0 -1
  222. package/lib/src/services/wallet/index.d.ts +0 -2
  223. package/lib/src/services/wallet/index.d.ts.map +0 -1
  224. package/lib/test/axiosMocks.js +0 -431
  225. package/lib/test/axiosMocks.mjs +0 -420
  226. package/lib/test/setup-test-state.js +0 -81
  227. package/lib/test/setup-test-state.mjs +0 -73
  228. package/src/core/polkadot-utils.js +0 -99
  229. package/src/core/realm-schemas.js +0 -42
  230. package/src/core/subscan.js +0 -62
  231. package/src/core/subscan.test.js +0 -56
  232. package/src/fixtures.js +0 -43
  233. package/src/modules/account.test.js +0 -56
  234. package/src/modules/account.ts +0 -128
  235. package/src/modules/accounts.test.js +0 -63
  236. package/src/modules/accounts.ts +0 -231
  237. package/src/modules/data-migration.test.js +0 -61
  238. package/src/modules/data-migration.ts +0 -86
  239. package/src/modules/wallet-backup.test.js +0 -24
  240. package/src/modules/wallet-backup.ts +0 -68
  241. package/src/modules/wallet.test.js +0 -216
  242. package/src/modules/wallet.ts +0 -424
  243. package/src/services/example/configs.js +0 -14
  244. package/src/services/example/index.js +0 -3
  245. package/src/services/example/index.test.js +0 -28
  246. package/src/services/example/service-rpc.js +0 -11
  247. package/src/services/example/service.ts +0 -18
  248. package/src/services/keyring/configs.ts +0 -110
  249. package/src/services/keyring/index.android.js +0 -3
  250. package/src/services/keyring/index.ios.js +0 -3
  251. package/src/services/keyring/index.js +0 -1
  252. package/src/services/keyring/index.test.js +0 -48
  253. package/src/services/keyring/service-rpc.js +0 -56
  254. package/src/services/keyring/service.ts +0 -111
  255. package/src/services/polkadot/configs.ts +0 -13
  256. package/src/services/polkadot/index.android.js +0 -3
  257. package/src/services/polkadot/index.ios.js +0 -3
  258. package/src/services/polkadot/index.js +0 -1
  259. package/src/services/polkadot/index.test.js +0 -52
  260. package/src/services/polkadot/service-rpc.js +0 -13
  261. package/src/services/polkadot/service.ts +0 -21
  262. package/src/test/axiosMocks.js +0 -20
  263. package/src/test/fixtures/subscan-failure.json +0 -5
  264. package/src/test/fixtures/subscan-success.json +0 -370
  265. package/src/test/fixtures/subscan-too-many-requests.json +0 -9
  266. package/src/test/setup-test-state.js +0 -35
  267. package/src/test/test-wallet.test.js +0 -15
@@ -1,424 +0,0 @@
1
- // @ts-nocheck
2
- import assert from 'assert';
3
- import {v4 as uuid} from 'uuid';
4
- import {getStorage} from '../core/storage';
5
- import {blockchainService} from '../services/blockchain';
6
- import {keyringService} from '../services/keyring';
7
- import {utilCryptoService} from '../services/util-crypto';
8
- import {walletService} from '../services/wallet';
9
- import {DocumentType, WalletDocument} from '../types';
10
- import {Accounts} from './accounts';
11
- import {EventManager} from './event-manager';
12
- import {NetworkManager} from './network-manager';
13
- import {migrate} from './data-migration';
14
- import {Logger} from '../core/logger';
15
- import legacyWalletSchema from '../test/fixtures/legacy-wallet-schema.json';
16
-
17
- /** Wallet events */
18
- export const WalletEvents = {
19
- ready: 'ready',
20
- error: 'error',
21
- migrated: 'migrated',
22
- statusUpdated: 'status-updated',
23
- documentAdded: 'document-added',
24
- documentUpdated: 'document-updated',
25
- documentRemoved: 'document-removed',
26
- walletDeleted: 'wallet-deleted',
27
- walletImported: 'wallet-imported',
28
- networkUpdated: 'network-updated',
29
- networkConnected: 'network-connected',
30
- networkError: 'network-error',
31
- };
32
-
33
- /**
34
- * Can be used to debug the data migration behavior in the wallet
35
- */
36
- const MOCK_STORAGE = process.env.MOCK_STORAGE;
37
-
38
- async function shouldMockStorage(walletId) {
39
- if (MOCK_STORAGE !== 'true') {
40
- return;
41
- }
42
-
43
- await getStorage().setItem(walletId, JSON.stringify(legacyWalletSchema));
44
- }
45
-
46
- /** Wallet status */
47
- export type WalletStatus = 'closed' | 'loading' | 'ready' | 'error';
48
-
49
- // const environment = getEnvironment();
50
-
51
- // if (environment !== 'reactnative') {
52
- // require('../setup-nodejs');
53
- // }
54
-
55
- /**
56
- * Wallet
57
- */
58
- class Wallet {
59
- networkManager: NetworkManager;
60
- context: string[];
61
- status: WalletStatus;
62
- apiConnected: boolean;
63
- eventManager: EventManager;
64
- walletId: string;
65
- accounts: Accounts;
66
-
67
- /**
68
- * @constructor
69
- * @param {object} params
70
- */
71
- constructor({
72
- walletId = 'wallet',
73
- context = ['https://w3id.org/wallet/v1'],
74
- } = {}) {
75
- this.walletId = walletId;
76
- this.context = context;
77
- this.networkManager = NetworkManager.getInstance();
78
- this.eventManager = new EventManager();
79
- this.accounts = Accounts.getInstance({wallet: this});
80
- }
81
-
82
- async recoverFromBadState() {
83
- const storageItems = await getStorage().getItem(this.walletId);
84
- const walletData = JSON.parse(storageItems);
85
-
86
- Object.keys(walletData).forEach(docKey => {
87
- const document = walletData[docKey];
88
- if (!document['@context']) {
89
- document['@context'] = this.context;
90
- }
91
- });
92
-
93
- await getStorage().setItem(this.walletId, JSON.stringify(walletData));
94
-
95
- await this.createWallet();
96
- }
97
-
98
- async createWallet() {
99
- await walletService.create({
100
- walletId: this.walletId,
101
- type: 'rpc',
102
- });
103
-
104
- await walletService.sync();
105
- await walletService.load();
106
- }
107
- /**
108
- * Get the y value.
109
- * @return {Promise} The y value.
110
- */
111
- async load() {
112
- if (this.status === 'loading') {
113
- return this.eventManager.waitFor(WalletEvents.ready);
114
- }
115
-
116
- if (this.status === 'ready') {
117
- return;
118
- }
119
-
120
- this.setStatus('loading');
121
-
122
- // TODO: get network from dataStore
123
- const networkId = (await getStorage().getItem('networkId')) || 'mainnet';
124
- this.networkManager.setNetworkId(networkId);
125
-
126
- await shouldMockStorage(this.walletId);
127
-
128
- try {
129
- await utilCryptoService.cryptoWaitReady();
130
- await keyringService.initialize({
131
- ss58Format: this.networkManager.getNetworkInfo().addressPrefix,
132
- });
133
-
134
- try {
135
- await this.createWallet();
136
- } catch (err) {
137
- await this.recoverFromBadState();
138
- }
139
-
140
- this.setStatus('ready');
141
-
142
- this.eventManager.emit(WalletEvents.ready);
143
-
144
- this.initNetwork();
145
-
146
- this.migrated = await migrate({wallet: this});
147
- this.eventManager.emit(WalletEvents.migrated);
148
- } catch (err) {
149
- this.setStatus('error');
150
- this.eventManager.emit(WalletEvents.error, err);
151
- throw err;
152
- }
153
- }
154
-
155
- async getVersion() {
156
- const docs = await this.query({});
157
- const versionDoc = docs.find(
158
- (item: WalletDocument) =>
159
- item.type === 'Metadata' && !!item.walletVersion,
160
- );
161
- return (versionDoc && versionDoc.walletVersion) || '0.1';
162
- }
163
- /**
164
- *
165
- * Close wallet
166
- */
167
- async close() {
168
- await blockchainService.disconnect();
169
- this.setStatus('closed');
170
- }
171
-
172
- async switchNetwork(networkId) {
173
- getStorage().setItem('networkId', networkId);
174
-
175
- this.networkManager.setNetworkId(networkId);
176
-
177
- await this.initNetwork();
178
- }
179
- /**
180
- * delete wallet
181
- */
182
- async deleteWallet() {
183
- this.eventManager.emit(WalletEvents.walletDeleted);
184
- await getStorage().removeItem('logs');
185
- await getStorage().removeItem('transactions');
186
- await getStorage().removeItem(this.walletId);
187
- await walletService.create({
188
- walletId: this.walletId,
189
- });
190
- await walletService.load();
191
- await walletService.sync();
192
- }
193
-
194
- /**
195
- *
196
- * @param {*} status
197
- */
198
- setStatus(status: WalletStatus) {
199
- assert(!!status, 'status is required');
200
-
201
- this.status = status;
202
- this.eventManager.emit(WalletEvents.statusUpdated, status);
203
- }
204
-
205
- /**
206
- * Ensure network
207
- *
208
- * @returns Promise
209
- */
210
- async ensureNetwork() {
211
- if (!this.connectionInProgress) {
212
- this.initNetwork();
213
- } else if (this.networkReady) {
214
- return;
215
- }
216
-
217
- await this.eventManager.waitFor(WalletEvents.networkConnected);
218
- }
219
-
220
- async initNetwork() {
221
- try {
222
- this.connectionInProgress = true;
223
-
224
- const networkInfo = this.networkManager.getNetworkInfo();
225
- await keyringService.initialize({
226
- ss58Format: networkInfo.addressPrefix,
227
- });
228
-
229
- Logger.debug(`Initializing network ${JSON.stringify(networkInfo)}`);
230
- const isDockConnected = await blockchainService.isApiConnected();
231
-
232
- if (isDockConnected) {
233
- await blockchainService.disconnect();
234
- }
235
-
236
- await blockchainService.init({
237
- cheqdApiUrl: networkInfo.cheqdApiUrl,
238
- });
239
-
240
- this.eventManager.emit(WalletEvents.networkConnected);
241
- } catch (err) {
242
- this.eventManager.emit(WalletEvents.error, err);
243
- throw err;
244
- } finally {
245
- this.connectionInProgress = false;
246
- this.networkReady = true;
247
- }
248
- }
249
-
250
- async waitReady() {
251
- if (this.status === 'ready') {
252
- return;
253
- }
254
-
255
- let warningTimeout = setTimeout(() => {
256
- throw new Error(
257
- 'Wallet module timed out. Make sure the wallet is loaded, or you are not using multiple instances',
258
- );
259
- }, 6000);
260
-
261
- await this.eventManager.waitFor(WalletEvents.ready);
262
-
263
- clearTimeout(warningTimeout);
264
- }
265
-
266
- getContext() {
267
- return this.getContext;
268
- }
269
-
270
- setContext(context) {
271
- this.context = context;
272
- }
273
-
274
- assertReady() {
275
- return this.waitReady();
276
- }
277
- /**
278
- * Remove document
279
- * @returns Promise<boolean>
280
- */
281
- async remove(documentId) {
282
- await walletService.remove(documentId);
283
- this.eventManager.emit(WalletEvents.documentRemoved, documentId);
284
- }
285
-
286
- async upsert(document: WalletDocument) {
287
- const existing = await this.getDocumentById(document.id);
288
-
289
- if (existing) {
290
- return this.update({
291
- ...existing,
292
- ...document,
293
- });
294
- }
295
-
296
- return this.add(document);
297
- }
298
-
299
- /**
300
- * Add document to the wallet
301
- * @param {*} options
302
- * @throws InvalidAccountErrors
303
- * @returns document
304
- */
305
- async add(document: WalletDocument) {
306
- await this.assertReady();
307
-
308
- const newDocument = {
309
- ...document,
310
- id: document.id || uuid(),
311
- '@context': document.context || this.context,
312
- };
313
-
314
- await walletService.add(newDocument);
315
-
316
- this.eventManager.emit(WalletEvents.documentAdded, newDocument);
317
-
318
- return newDocument;
319
- }
320
-
321
- async update(document: WalletDocument) {
322
- await this.assertReady();
323
-
324
- await walletService.update({
325
- '@context': document['@context'] || this.context,
326
- ...document,
327
- });
328
- this.eventManager.emit(WalletEvents.documentUpdated, document);
329
- return document;
330
- }
331
-
332
- async export(password) {
333
- return walletService.exportWallet(password);
334
- }
335
- /**
336
- * Add all documents in the wallet
337
- * @param {*} options
338
- * @returns document
339
- */
340
- async query(
341
- params: {
342
- type: DocumentType,
343
- id: string,
344
- name: string,
345
- } = {},
346
- ): Promise<WalletDocument[]> {
347
- await this.assertReady();
348
-
349
- let equals;
350
-
351
- Object.keys(params).forEach(key => {
352
- const value = params[key];
353
-
354
- if (!value) {
355
- return;
356
- }
357
-
358
- if (!equals) {
359
- equals = {};
360
- }
361
-
362
- equals[`content.${key}`] = value;
363
- });
364
-
365
- return walletService.query({
366
- equals,
367
- });
368
- }
369
-
370
- async getDocumentById(documentId) {
371
- await this.assertReady();
372
-
373
- const result = await this.query({id: documentId});
374
- return result[0];
375
- }
376
-
377
- static async create({walletId, json, password} = {}): Wallet {
378
- const wallet = new Wallet({walletId});
379
-
380
- await wallet.load();
381
-
382
- if (json) {
383
- await wallet.importWallet({json, password});
384
- }
385
-
386
- return wallet;
387
- }
388
-
389
- async importWallet({json, password}) {
390
- await this.deleteWallet();
391
- await walletService.importWallet({json, password});
392
- this.migrated = await migrate({wallet: this});
393
- await this.eventManager.emit(WalletEvents.walletImported);
394
- }
395
- async getDocumentsFromEncryptedWallet({encryptedJSONWallet, password}) {
396
- return walletService.getDocumentsFromEncryptedWallet({
397
- encryptedJSONWallet,
398
- password,
399
- });
400
- }
401
- async resolveCorrelations(documentId) {
402
- return walletService.resolveCorrelations(documentId);
403
- }
404
- async exportDocuments({documents, password}) {
405
- return walletService.exportDocuments({
406
- documents,
407
- password,
408
- });
409
- }
410
-
411
- /**
412
- * Get wallet module instance
413
- * @returns Wallet
414
- */
415
- static getInstance(): Wallet {
416
- if (!Wallet.instance) {
417
- Wallet.instance = new Wallet();
418
- }
419
-
420
- return Wallet.instance;
421
- }
422
- }
423
-
424
- export {Wallet};
@@ -1,14 +0,0 @@
1
- import assert from 'assert';
2
- import {isNumberValid} from '../../core/validation';
3
-
4
- export const validation = {
5
- sum(params: SumParams) {
6
- assert(isNumberValid(params.number1), 'invalid number1');
7
- assert(isNumberValid(params.number2), 'invalid number2');
8
- },
9
- };
10
-
11
- export type SumParams = {
12
- number1: number,
13
- number2: number,
14
- };
@@ -1,3 +0,0 @@
1
- import {ExampleServiceRpc} from './service-rpc';
2
-
3
- export const exampleService = new ExampleServiceRpc();
@@ -1,28 +0,0 @@
1
- import {assertRpcService, getPromiseError} from '../test-utils';
2
- import {validation} from './configs';
3
- import {exampleService as service} from './service';
4
- import {ExampleServiceRpc} from './service-rpc';
5
-
6
- describe('ExampleService', () => {
7
- it('ServiceRpc', () => {
8
- assertRpcService(ExampleServiceRpc, service, validation);
9
- });
10
-
11
- describe('service', () => {
12
- beforeAll(async () => {});
13
-
14
- describe('sum', () => {
15
- it('expect to sum numbers', async () => {
16
- const result = await service.sum({number1: 1, number2: 1});
17
- expect(result).toBe(2);
18
- });
19
-
20
- it('expect to validate params', async () => {
21
- const error = await getPromiseError(() =>
22
- service.sum({number1: null, number2: 1}),
23
- );
24
- expect(error.message).toBe('invalid number1');
25
- });
26
- });
27
- });
28
- });
@@ -1,11 +0,0 @@
1
- import {RpcService} from '../rpc-service-client';
2
-
3
- export class ExampleServiceRpc extends RpcService {
4
- constructor() {
5
- super('example');
6
- }
7
-
8
- sum(): Promise<any> {
9
- return this.call('sum');
10
- }
11
- }
@@ -1,18 +0,0 @@
1
- // @ts-nocheck
2
- import {SumParams, validation} from './configs';
3
-
4
- export class ExampleService {
5
- rpcMethods = [ExampleService.prototype.sum];
6
-
7
- constructor() {
8
- this.name = 'example';
9
- }
10
-
11
- sum(params: SumParams) {
12
- validation.sum(params);
13
-
14
- return params.number1 + params.number2;
15
- }
16
- }
17
-
18
- export const exampleService: ExampleService = new ExampleService();
@@ -1,110 +0,0 @@
1
- // @ts-nocheck
2
- import assert from 'assert';
3
- import {assertKeyType} from '../../core/validation';
4
-
5
- export const validation = {
6
- addFromJson({jsonData, password}: AddFromJsonParams) {
7
- assert(typeof jsonData === 'object', 'invalid jsonData');
8
- assert(typeof password === 'string', 'invalid password');
9
- },
10
- initialize({ss58Format, type}: InitializeParams) {
11
- assert(typeof ss58Format === 'number', 'invalid ss58Format');
12
-
13
- if (type) {
14
- assertKeyType(type);
15
- }
16
- },
17
- addFromMnemonic({mnemonic, meta, type}: AddFromMnemonicParams) {
18
- assert(typeof mnemonic === 'string', 'invalid mnemonic');
19
-
20
- if (type) {
21
- assertKeyType(type);
22
- }
23
-
24
- if (meta) {
25
- assert(typeof meta === 'object', 'invalid meta');
26
- }
27
- },
28
- getKeyringPair(params: GetKeyringParams) {
29
- const {mnemonic, derivePath, meta, type} = params;
30
-
31
- assert(
32
- !params.keyPairType,
33
- 'invalid parameter keyPairType, you should use type instead',
34
- );
35
-
36
- assert(typeof mnemonic === 'string', 'invalid mnemonic');
37
-
38
- if (derivePath) {
39
- assert(typeof derivePath === 'string', 'invalid derivePath');
40
- }
41
-
42
- if (type) {
43
- assertKeyType(type);
44
- }
45
-
46
- if (meta) {
47
- assert(typeof meta === 'object', 'invalid meta');
48
- }
49
- },
50
- createFromPair(params: CreateFromPairParams) {
51
- const {pair, meta, type} = params;
52
-
53
- assert(typeof pair === 'object', 'invalid pair');
54
- assert(pair.publicKey instanceof Uint8Array, 'invalid publicKey');
55
- assert(pair.secretKey instanceof Uint8Array, 'invalid secretKey');
56
-
57
- if (type) {
58
- assertKeyType(type);
59
- }
60
-
61
- if (meta) {
62
- assert(typeof meta === 'object', 'invalid meta');
63
- }
64
- },
65
-
66
- signData(params: SignDataParams) {
67
- assert(!!params.keyPair, 'invalid keypair');
68
- assert(!!params.data, 'invalid data');
69
- },
70
- };
71
-
72
- validation.addressFromUri = validation.getKeyringPair;
73
-
74
- export const serviceName = 'keyring';
75
-
76
- export type GetKeyringParams = {
77
- mnemonic: string,
78
- meta?: any,
79
- type?: string,
80
- derivePath?: string,
81
- };
82
-
83
- export type CreateFromPairParams = {
84
- pair: any,
85
- meta?: any,
86
- type?: string,
87
- }
88
-
89
- export type AddressFromUriParams = GetKeyringParams;
90
-
91
- export type AddFromJsonParams = {
92
- jsonData: string,
93
- password: string,
94
- };
95
-
96
- export type InitializeParams = {
97
- ss58Format: number,
98
- type?: string,
99
- };
100
-
101
- export type AddFromMnemonicParams = {
102
- mnemonic: string,
103
- meta?: any,
104
- type: string,
105
- };
106
-
107
- export type SignDataParams = {
108
- keyPair: any,
109
- data: any,
110
- };
@@ -1,3 +0,0 @@
1
- import {KeyringServiceRpc} from './service-rpc';
2
-
3
- export const keyringService = new KeyringServiceRpc();
@@ -1,3 +0,0 @@
1
- import {KeyringServiceRpc} from './service-rpc';
2
-
3
- export const keyringService = new KeyringServiceRpc();
@@ -1 +0,0 @@
1
- export {keyringService} from './service';
@@ -1,48 +0,0 @@
1
- import {mnemonicGenerate} from '@polkadot/util-crypto';
2
- import {NetworkManager} from '../../modules/network-manager';
3
- import {assertRpcService, getPromiseError} from '../test-utils';
4
- import {validation} from './configs';
5
- import {keyringService as service} from './service';
6
- import {KeyringServiceRpc} from './service-rpc';
7
-
8
- describe('KeyringService', () => {
9
- it('ServiceRpc', () => {
10
- assertRpcService(KeyringServiceRpc, service, validation);
11
- });
12
-
13
- describe('service', () => {
14
- beforeAll(async () => {});
15
-
16
- describe('initialize', () => {
17
- it('expect to initialize keyring', async () => {
18
- await service.initialize({
19
- ss58Format:
20
- NetworkManager.getInstance().getNetworkInfo().addressPrefix,
21
- });
22
-
23
- expect(service.keyring).toBeDefined();
24
- });
25
-
26
- it('expect to validate params', async () => {
27
- const error = await getPromiseError(() => service.initialize({}));
28
- expect(error.message).toBe('invalid ss58Format');
29
- });
30
- });
31
-
32
- describe('addFromMnemonic', () => {
33
- it('expect to add keypair from mnemonic', async () => {
34
- await service.addFromMnemonic({
35
- mnemonic: mnemonicGenerate(12),
36
- });
37
-
38
- expect(service.keyring).toBeDefined();
39
- });
40
-
41
- it('expect to validate params', async () => {
42
- const error = await getPromiseError(() => service.addFromMnemonic({}));
43
-
44
- expect(error.message).toBe('invalid mnemonic');
45
- });
46
- });
47
- });
48
- });