@docknetwork/wallet-sdk-wasm 1.5.8 → 1.5.10

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 (322) 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 -32
  6. package/lib/index.mjs +13 -32
  7. package/lib/rpc-server.js +13 -32
  8. package/lib/rpc-server.mjs +13 -32
  9. package/lib/rpc-util.js +14 -0
  10. package/lib/rpc-util.mjs +14 -0
  11. package/lib/services/blockchain/index.js +3 -8
  12. package/lib/services/blockchain/index.mjs +3 -8
  13. package/lib/services/blockchain/service.js +37 -80
  14. package/lib/services/blockchain/service.mjs +38 -81
  15. package/lib/services/credential/bbs-revocation.js +4 -9
  16. package/lib/services/credential/bbs-revocation.mjs +3 -8
  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 -15
  20. package/lib/services/credential/index.mjs +11 -15
  21. package/lib/services/credential/service.js +18 -20
  22. package/lib/services/credential/service.mjs +15 -17
  23. package/lib/services/credential/utils.js +65 -28
  24. package/lib/services/credential/utils.mjs +62 -32
  25. package/lib/services/dids/index.js +11 -16
  26. package/lib/services/dids/index.mjs +11 -16
  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.js +16 -37
  30. package/lib/services/dids/service.mjs +16 -37
  31. package/lib/services/edv/index.js +8 -16
  32. package/lib/services/edv/index.mjs +8 -16
  33. package/lib/services/edv/service.js +10 -24
  34. package/lib/services/edv/service.mjs +10 -24
  35. package/lib/services/index.js +13 -37
  36. package/lib/services/index.mjs +13 -37
  37. package/lib/services/pex/service.js +2 -1
  38. package/lib/services/pex/service.mjs +2 -1
  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 -239
  52. package/lib/services/test-utils.mjs +1 -234
  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 +0 -23
  62. package/lib/services/util-crypto/service-rpc.mjs +0 -23
  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 -32
  78. package/lib/setup-nodejs.mjs +13 -32
  79. package/lib/setup-tests.js +13 -32
  80. package/lib/setup-tests.mjs +13 -32
  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 +7 -3
  87. package/lib/src/services/blockchain/service.d.ts.map +1 -1
  88. package/lib/src/services/credential/bbs-revocation.d.ts.map +1 -1
  89. package/lib/src/services/credential/bound-check.d.ts +1 -1
  90. package/lib/src/services/credential/bound-check.d.ts.map +1 -1
  91. package/lib/src/services/credential/service.d.ts.map +1 -1
  92. package/lib/src/services/credential/utils.d.ts +2 -1
  93. package/lib/src/services/credential/utils.d.ts.map +1 -1
  94. package/lib/src/services/dids/keypair-utils.d.ts +15 -0
  95. package/lib/src/services/dids/keypair-utils.d.ts.map +1 -0
  96. package/lib/src/services/dids/service.d.ts +6 -6
  97. package/lib/src/services/dids/service.d.ts.map +1 -1
  98. package/lib/src/services/edv/service.d.ts.map +1 -1
  99. package/lib/src/services/pex/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 +6 -27
  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/index.test.js +4 -15
  120. package/src/services/blockchain/service.ts +39 -98
  121. package/src/services/credential/bbs-revocation.ts +2 -1
  122. package/src/services/credential/bound-check.test.ts +6 -6
  123. package/src/services/credential/bound-check.ts +4 -4
  124. package/src/services/credential/index.test.js +0 -2
  125. package/src/services/credential/service.ts +5 -2
  126. package/src/services/credential/utils.js +65 -23
  127. package/src/services/dids/index.test.js +9 -20
  128. package/src/services/dids/keypair-utils.js +111 -0
  129. package/src/services/dids/service.ts +7 -26
  130. package/src/services/edv/service.ts +2 -9
  131. package/src/services/index.js +0 -8
  132. package/src/services/pex/service.ts +7 -1
  133. package/src/services/test-utils.js +0 -207
  134. package/src/services/util-crypto/configs.ts +0 -12
  135. package/src/services/util-crypto/index.test.js +6 -83
  136. package/src/services/util-crypto/service-rpc.js +0 -20
  137. package/src/services/util-crypto/service.ts +62 -75
  138. package/src/services/wallet/configs.ts +1 -113
  139. package/src/services/wallet/index.test.js +0 -159
  140. package/src/services/wallet/service-rpc.js +1 -88
  141. package/src/services/wallet/service.ts +0 -258
  142. package/src/test-utils.js +0 -13
  143. package/lib/account-8fa95046.js +0 -774
  144. package/lib/account-e7156c51.js +0 -764
  145. package/lib/core/polkadot-utils.js +0 -119
  146. package/lib/core/polkadot-utils.mjs +0 -94
  147. package/lib/core/realm-schemas.js +0 -50
  148. package/lib/core/realm-schemas.mjs +0 -44
  149. package/lib/core/subscan.js +0 -75
  150. package/lib/core/subscan.mjs +0 -64
  151. package/lib/fixtures.js +0 -56
  152. package/lib/fixtures.mjs +0 -52
  153. package/lib/modules/account.js +0 -55
  154. package/lib/modules/account.mjs +0 -47
  155. package/lib/modules/accounts.js +0 -56
  156. package/lib/modules/accounts.mjs +0 -47
  157. package/lib/modules/data-migration.js +0 -72
  158. package/lib/modules/data-migration.mjs +0 -68
  159. package/lib/modules/wallet-backup.js +0 -82
  160. package/lib/modules/wallet-backup.mjs +0 -71
  161. package/lib/modules/wallet.js +0 -56
  162. package/lib/modules/wallet.mjs +0 -47
  163. package/lib/services/example/configs.js +0 -21
  164. package/lib/services/example/configs.mjs +0 -13
  165. package/lib/services/example/index.js +0 -18
  166. package/lib/services/example/index.mjs +0 -14
  167. package/lib/services/example/service-rpc.js +0 -25
  168. package/lib/services/example/service-rpc.mjs +0 -21
  169. package/lib/services/example/service.js +0 -25
  170. package/lib/services/example/service.mjs +0 -20
  171. package/lib/services/keyring/configs.js +0 -70
  172. package/lib/services/keyring/configs.mjs +0 -61
  173. package/lib/services/keyring/index.android.js +0 -22
  174. package/lib/services/keyring/index.android.mjs +0 -18
  175. package/lib/services/keyring/index.ios.js +0 -22
  176. package/lib/services/keyring/index.ios.mjs +0 -18
  177. package/lib/services/keyring/index.js +0 -16
  178. package/lib/services/keyring/index.mjs +0 -8
  179. package/lib/services/keyring/service-rpc.js +0 -65
  180. package/lib/services/keyring/service-rpc.mjs +0 -61
  181. package/lib/services/keyring/service.js +0 -84
  182. package/lib/services/keyring/service.mjs +0 -74
  183. package/lib/services/polkadot/configs.js +0 -17
  184. package/lib/services/polkadot/configs.mjs +0 -13
  185. package/lib/services/polkadot/index.android.js +0 -22
  186. package/lib/services/polkadot/index.android.mjs +0 -18
  187. package/lib/services/polkadot/index.ios.js +0 -22
  188. package/lib/services/polkadot/index.ios.mjs +0 -18
  189. package/lib/services/polkadot/index.js +0 -15
  190. package/lib/services/polkadot/index.mjs +0 -7
  191. package/lib/services/polkadot/service-rpc.js +0 -30
  192. package/lib/services/polkadot/service-rpc.mjs +0 -26
  193. package/lib/services/polkadot/service.js +0 -28
  194. package/lib/services/polkadot/service.mjs +0 -23
  195. package/lib/services/substrate/api-utils.js +0 -85
  196. package/lib/services/substrate/api-utils.mjs +0 -74
  197. package/lib/services/substrate/configs.js +0 -30
  198. package/lib/services/substrate/configs.mjs +0 -21
  199. package/lib/services/substrate/index.android.js +0 -22
  200. package/lib/services/substrate/index.android.mjs +0 -18
  201. package/lib/services/substrate/index.ios.js +0 -22
  202. package/lib/services/substrate/index.ios.mjs +0 -18
  203. package/lib/services/substrate/index.js +0 -37
  204. package/lib/services/substrate/index.mjs +0 -29
  205. package/lib/services/substrate/service-rpc.js +0 -37
  206. package/lib/services/substrate/service-rpc.mjs +0 -33
  207. package/lib/services/substrate/service.js +0 -115
  208. package/lib/services/substrate/service.mjs +0 -102
  209. package/lib/services/trust-registry/configs.js +0 -25
  210. package/lib/services/trust-registry/configs.mjs +0 -16
  211. package/lib/services/trust-registry/index.android.js +0 -19
  212. package/lib/services/trust-registry/index.android.mjs +0 -15
  213. package/lib/services/trust-registry/index.ios.js +0 -19
  214. package/lib/services/trust-registry/index.ios.mjs +0 -15
  215. package/lib/services/trust-registry/index.js +0 -33
  216. package/lib/services/trust-registry/index.mjs +0 -25
  217. package/lib/services/trust-registry/service-rpc.js +0 -29
  218. package/lib/services/trust-registry/service-rpc.mjs +0 -25
  219. package/lib/services/trust-registry/service.js +0 -89
  220. package/lib/services/trust-registry/service.mjs +0 -85
  221. package/lib/src/core/polkadot-utils.d.ts +0 -11
  222. package/lib/src/core/polkadot-utils.d.ts.map +0 -1
  223. package/lib/src/modules/account.d.ts +0 -60
  224. package/lib/src/modules/account.d.ts.map +0 -1
  225. package/lib/src/modules/accounts.d.ts +0 -49
  226. package/lib/src/modules/accounts.d.ts.map +0 -1
  227. package/lib/src/modules/data-migration.d.ts +0 -7
  228. package/lib/src/modules/data-migration.d.ts.map +0 -1
  229. package/lib/src/modules/wallet-backup.d.ts +0 -12
  230. package/lib/src/modules/wallet-backup.d.ts.map +0 -1
  231. package/lib/src/modules/wallet.d.ts +0 -134
  232. package/lib/src/modules/wallet.d.ts.map +0 -1
  233. package/lib/src/services/blockchain/index.d.ts +0 -2
  234. package/lib/src/services/blockchain/index.d.ts.map +0 -1
  235. package/lib/src/services/example/configs.d.ts +0 -9
  236. package/lib/src/services/example/configs.d.ts.map +0 -1
  237. package/lib/src/services/example/service.d.ts +0 -8
  238. package/lib/src/services/example/service.d.ts.map +0 -1
  239. package/lib/src/services/keyring/configs.d.ts +0 -39
  240. package/lib/src/services/keyring/configs.d.ts.map +0 -1
  241. package/lib/src/services/keyring/index.d.ts +0 -2
  242. package/lib/src/services/keyring/index.d.ts.map +0 -1
  243. package/lib/src/services/polkadot/configs.d.ts +0 -8
  244. package/lib/src/services/polkadot/configs.d.ts.map +0 -1
  245. package/lib/src/services/polkadot/index.d.ts +0 -2
  246. package/lib/src/services/polkadot/index.d.ts.map +0 -1
  247. package/lib/src/services/polkadot/service.d.ts +0 -8
  248. package/lib/src/services/polkadot/service.d.ts.map +0 -1
  249. package/lib/src/services/substrate/api-utils.d.ts +0 -14
  250. package/lib/src/services/substrate/api-utils.d.ts.map +0 -1
  251. package/lib/src/services/substrate/configs.d.ts +0 -16
  252. package/lib/src/services/substrate/configs.d.ts.map +0 -1
  253. package/lib/src/services/substrate/index.d.ts +0 -2
  254. package/lib/src/services/substrate/index.d.ts.map +0 -1
  255. package/lib/src/services/substrate/service.d.ts +0 -13
  256. package/lib/src/services/substrate/service.d.ts.map +0 -1
  257. package/lib/src/services/trust-registry/configs.d.ts +0 -6
  258. package/lib/src/services/trust-registry/configs.d.ts.map +0 -1
  259. package/lib/src/services/trust-registry/service.d.ts +0 -25
  260. package/lib/src/services/trust-registry/service.d.ts.map +0 -1
  261. package/lib/src/services/wallet/index.d.ts +0 -2
  262. package/lib/src/services/wallet/index.d.ts.map +0 -1
  263. package/lib/test/axiosMocks.js +0 -431
  264. package/lib/test/axiosMocks.mjs +0 -420
  265. package/lib/test/setup-test-state.js +0 -93
  266. package/lib/test/setup-test-state.mjs +0 -85
  267. package/src/core/polkadot-utils.js +0 -99
  268. package/src/core/realm-schemas.js +0 -42
  269. package/src/core/subscan.js +0 -62
  270. package/src/core/subscan.test.js +0 -56
  271. package/src/fixtures.js +0 -43
  272. package/src/modules/account.test.js +0 -56
  273. package/src/modules/account.ts +0 -128
  274. package/src/modules/accounts.test.js +0 -88
  275. package/src/modules/accounts.ts +0 -264
  276. package/src/modules/data-migration.test.js +0 -72
  277. package/src/modules/data-migration.ts +0 -86
  278. package/src/modules/wallet-backup.test.js +0 -24
  279. package/src/modules/wallet-backup.ts +0 -68
  280. package/src/modules/wallet.test.js +0 -227
  281. package/src/modules/wallet.ts +0 -424
  282. package/src/services/example/configs.js +0 -14
  283. package/src/services/example/index.js +0 -3
  284. package/src/services/example/index.test.js +0 -28
  285. package/src/services/example/service-rpc.js +0 -11
  286. package/src/services/example/service.ts +0 -18
  287. package/src/services/keyring/configs.ts +0 -110
  288. package/src/services/keyring/index.android.js +0 -3
  289. package/src/services/keyring/index.ios.js +0 -3
  290. package/src/services/keyring/index.js +0 -1
  291. package/src/services/keyring/index.test.js +0 -48
  292. package/src/services/keyring/service-rpc.js +0 -56
  293. package/src/services/keyring/service.ts +0 -111
  294. package/src/services/polkadot/configs.ts +0 -13
  295. package/src/services/polkadot/index.android.js +0 -3
  296. package/src/services/polkadot/index.ios.js +0 -3
  297. package/src/services/polkadot/index.js +0 -1
  298. package/src/services/polkadot/index.test.js +0 -52
  299. package/src/services/polkadot/service-rpc.js +0 -13
  300. package/src/services/polkadot/service.ts +0 -21
  301. package/src/services/substrate/api-utils.test.js +0 -73
  302. package/src/services/substrate/api-utils.ts +0 -66
  303. package/src/services/substrate/configs.ts +0 -34
  304. package/src/services/substrate/index.android.js +0 -3
  305. package/src/services/substrate/index.ios.js +0 -3
  306. package/src/services/substrate/index.js +0 -1
  307. package/src/services/substrate/index.test.js +0 -116
  308. package/src/services/substrate/service-rpc.js +0 -24
  309. package/src/services/substrate/service.ts +0 -117
  310. package/src/services/trust-registry/configs.ts +0 -14
  311. package/src/services/trust-registry/index.android.js +0 -3
  312. package/src/services/trust-registry/index.ios.js +0 -3
  313. package/src/services/trust-registry/index.js +0 -1
  314. package/src/services/trust-registry/index.test.js +0 -67
  315. package/src/services/trust-registry/service-rpc.js +0 -15
  316. package/src/services/trust-registry/service.ts +0 -94
  317. package/src/test/axiosMocks.js +0 -20
  318. package/src/test/fixtures/subscan-failure.json +0 -5
  319. package/src/test/fixtures/subscan-success.json +0 -370
  320. package/src/test/fixtures/subscan-too-many-requests.json +0 -9
  321. package/src/test/setup-test-state.js +0 -37
  322. package/src/test/test-wallet.test.js +0 -15
@@ -1,227 +0,0 @@
1
- import {Wallet, WalletEvents} from './wallet';
2
- import walletJson from '../test/fixtures/wallet-backup.json';
3
- import {mockDockService} from '../services/test-utils';
4
- import {getTestWallet} from '../test/setup-test-state';
5
-
6
- describe('ApiModule', () => {
7
- let unmockDockService;
8
-
9
- beforeAll(async () => {
10
- unmockDockService = await mockDockService();
11
- });
12
-
13
- describe('new wallet', () => {
14
- let wallet: Wallet;
15
-
16
- beforeAll(async () => {
17
- wallet = await getTestWallet();
18
- await wallet.ensureNetwork();
19
- });
20
-
21
- it('is correct default params set', () => {
22
- expect(wallet.walletId).toBe('wallet');
23
- });
24
-
25
- it('query', async () => {
26
- const accounts = await wallet.query({
27
- type: 'account',
28
- });
29
-
30
- expect(accounts.length).toBe(0);
31
- });
32
-
33
- it('Expect document to be added', async () => {
34
- const accounts = await wallet.query({
35
- type: 'KeyringPair',
36
- });
37
-
38
- expect(accounts.length).toBe(3);
39
- });
40
-
41
- it('Expect to upsert document', async () => {
42
- jest.spyOn(wallet, 'getDocumentById');
43
- jest.spyOn(wallet, 'add');
44
- jest.spyOn(wallet, 'update');
45
-
46
- await wallet.upsert({
47
- id: 'test',
48
- type: 'KeyringPair',
49
- });
50
-
51
- expect(wallet.getDocumentById).toBeCalled();
52
- expect(wallet.add).toBeCalled();
53
-
54
- await wallet.upsert({
55
- id: 'test',
56
- type: 'KeyringPair',
57
- });
58
-
59
- expect(wallet.update).toBeCalled();
60
- expect(wallet.add).toBeCalledTimes(1);
61
-
62
- const updatedDocument = await wallet.getDocumentById('test');
63
-
64
- expect(updatedDocument['@context']).toBeDefined();
65
- });
66
-
67
- it('Expect document to be removed', async () => {
68
- const document = await wallet.add({
69
- type: 'Account',
70
- name: 'cocomelon',
71
- });
72
-
73
- await wallet.remove(document.id);
74
-
75
- const doc = await wallet.getDocumentById(document.id);
76
-
77
- expect(doc).toBeUndefined();
78
- });
79
-
80
- afterAll(async () => {
81
- await wallet.close();
82
- });
83
- });
84
-
85
- describe('existing wallet', () => {
86
- it('Expect to import wallet from backup file', async () => {
87
- const password = 'test';
88
-
89
- const wallet = await Wallet.create({
90
- walletId: 'test',
91
- });
92
-
93
- wallet.eventManager.emit = jest.fn();
94
-
95
- await wallet.importWallet({
96
- json: walletJson,
97
- password,
98
- });
99
-
100
- expect(wallet.eventManager.emit).toBeCalledWith(
101
- WalletEvents.walletImported,
102
- );
103
-
104
- const docs = await wallet.query();
105
- expect(docs.length).toBe(5);
106
-
107
- const addressDoc = docs.find(doc => doc.type === 'Address');
108
-
109
- expect(addressDoc.value).toBe(
110
- '3AABk8Q165Cj4NpeCZdHH7JGYmDKUg7sZvSiiDD8SpBrABbg',
111
- );
112
- expect(addressDoc.name).toBe('test');
113
-
114
- const keypairDoc = docs.find(doc => doc.type === 'KeyringPair');
115
- expect(keypairDoc.value.encoded).toBe(
116
- 'MFMCAQEwBQYDK2VwBCIEIBA7v8oTxWqoUyV4dcXmxxcunhPWnEaw/W3CKcs2phBX8nxkJ21hUAySYJqVCiy/wcHwFjs7jPbop/vybbW9tM6hIwMhAKBqjm44EQyuODy9HTc61R3oylegEPPGaRyNMlGFO/Fi',
117
- );
118
-
119
- const mnemonicDoc = docs.find(doc => doc.type === 'Mnemonic');
120
- expect(mnemonicDoc.value).toBe(
121
- 'tenant jaguar icon flock prosper leave island illegal topple pig axis cactus',
122
- );
123
- });
124
- it('expect to get documents from encrypted wallets', async () => {
125
- const wallet = await Wallet.create({
126
- walletId: 'test',
127
- });
128
- const encryptedJSONWallet = {
129
- '@context': [
130
- 'https://www.w3.org/2018/credentials/v1',
131
- 'https://w3id.org/wallet/v1',
132
- ],
133
- id: 'did:key:z6LSjTbRETJjUCDiQopbeCgZKRisy7mdchwiMBPTQktcibGh#encrypted-wallet',
134
- type: ['VerifiableCredential', 'EncryptedWallet'],
135
- issuer: 'did:key:z6LSjTbRETJjUCDiQopbeCgZKRisy7mdchwiMBPTQktcibGh',
136
- issuanceDate: '2022-07-19T20:59:44.798Z',
137
- credentialSubject: {
138
- id: 'did:key:z6LSjTbRETJjUCDiQopbeCgZKRisy7mdchwiMBPTQktcibGh',
139
- encryptedWalletContents: {
140
- protected: 'eyJlbmMiOiJYQzIwUCJ9',
141
- recipients: [
142
- {
143
- header: {
144
- kid: 'did:key:z6LSjTbRETJjUCDiQopbeCgZKRisy7mdchwiMBPTQktcibGh#z6LSjTbRETJjUCDiQopbeCgZKRisy7mdchwiMBPTQktcibGh',
145
- alg: 'ECDH-ES+A256KW',
146
- epk: {
147
- kty: 'OKP',
148
- crv: 'X25519',
149
- x: '-ABoa59NY2qVI66NZ8EbqxCwp02sft5onyKhfa2yfUU',
150
- },
151
- apu: '-ABoa59NY2qVI66NZ8EbqxCwp02sft5onyKhfa2yfUU',
152
- apv: 'ZGlkOmtleTp6NkxTalRiUkVUSmpVQ0RpUW9wYmVDZ1pLUmlzeTdtZGNod2lNQlBUUWt0Y2liR2gjejZMU2pUYlJFVEpqVUNEaVFvcGJlQ2daS1Jpc3k3bWRjaHdpTUJQVFFrdGNpYkdo',
153
- },
154
- encrypted_key:
155
- 'Mmf6YGug9bL-L4bi2UwS9R8nUk6bJmgVKJvP2_a0BwsjxtxBN0ly6w',
156
- },
157
- ],
158
- iv: '-u0i0V9ENM3rUwxj-Yv_7jd3veFLzVEO',
159
- ciphertext:
160
- 'jahwvff1Afy19A9C4kP51nno-14Ea7m-omq39JGlG5_qmmEgrBcd0KsStpfDFKj4gMRR8izsALXqKz78vzhCRTd3RNa5rNOKbzfT3HALRkn1y7n6RlSRRZ0MKuBP9JVg49opLSqAIJ9j64Ebj2KhXALX6Wbv1h9FhAIhIxGkZJZDgKFQmpI54IGKS-J4_19gE2IcJrt7nYb_jXa9VwmmPbH-GDUFGVVbk3uoGCIcpxPSTiwEn7RSC2iSb_kARyOb7ft5546TKiODN-98QMV7lQTn4kZ59RqgC2w7rwDui85He_X21z0GcK9Ipkg5tRm5U7GNqzZtT3Ev952VOUW960istZ6s5gMpcngv0YMGBqnboYqHC3Uq22-ZRM7ya1ijJOi-UD0ozdGNrLs6kdAQWlvrGh7NAnpEdpBfxq_2CuxLZxTI8TGXfpXH39Njc_L3241AISN7HyTrHsoA2F0QIoIE6njMcxaqQy8OWeWYJD7jAhiWMCE-M5UGUbgJUB5BpUV4Q_hndQqL_c5YVf2Fbc98_8vVwtsUeqbMB97qgN3Pq3du00N7rJ7zs9SNuO3D_2A9KD9Y7tN7QywXA565HQC2k-OJpkVqsRDsihWpn3qtTMaSu0OKJS6rKeugSNE6VlsGFC_PoD_6qx3FpcAPsl5_3MDuE-aZBden_iMfUkdXKxZFrkYbc2bLMekoQwa3gfrjBc4EoN9aPbIux3dqS8nBS6-31UCIMkfEv6OmKmm0_wIm-CeMUM8BW9EgGk_9k9kOySZbTQ5VxwomOLWHundKCFTp_I3adoobUORpbxl9LivFqX0T47w5ktblOMUiTMSzgmI4WbGYrvi4otb33vH88aRc_WneCeoSuWFnCUih2R8xBNqhqIESIB1zTqYnVlaENTNZXIRfw7qSatT6i7pnkaBygp059LeBJCkG79V0yB_ZnNTHX3oTViHHNfFmTpeuT7puhWFBkgQnLzr0zdc03hyjVNA99BhR3dz1gjL3TP8TgaYG6LLS2h-6HeLYRX8uDi-SmVU1hIvWR11l6dbzcQrj4b5cjMbbHvyxaegaXCNB5LPLRxg03z1Z74faueBRfWb3l2z_slbAhmJK2KJe9evl47_Fd5RgVAjbxRqwwFAAyUtzKtyHGZhUN7lJrOFATl89mzpGNg0Qt3lTC7rfzCD0xFWruC7PZnw7lCI8aNsPnNMG-2En-JE1eTyMUyG9um7ernec_AUqqntf7JjvNbjQO_PBu6qsOAsaKWbx1DxgEOFa-LPT7NGzBPr13pMFjIoiOXmLUexAl_LuZyEJuyjtfijSepZ6pYEKPQvAFMyNFBO-Og-jRoHaw78mVsoNV2jURkVwDfFuTeA_it5Xk00zgRGra3z1WELN8r-VWBewlj69H7ui4GF0PWZNEG5nxxZbmmrZgvj-Zqv9oCKHC60El2jX2KMniXiBXW-wcoh5pqT4P4dMOqkLdtpOtFvdWW0cQBJEdGcccfWdd0NUIhr0pSL3tfJ5yPxke8kTpHuwIb7Dbb55nqYDpyU-3hdx1QJtTFcCT2EottF0XDx1nrmLM9t_ZpZRx06tOOhK-CQLYNouqaMkpIEuW-utycHuS6qW-dNX95b15r3z1wuLxBA7CxgjYHmswedWnvMNshEIcTLAAYHttSsUVRBVLNVllqKs9swEN2Klq1L0d8iW3KGkpiGfrPpVeobcwB9E2sPIZyjNPwxlQboVAU8evbuk6e4slGTJwnz0VvDpRDtqM9Kz0ndIcuaOoB9he57zi037Aup8C2G8_qATcBhka7SHfP8XJdlDjz7cU5ACl2Mt0FH1C6HPBJj_FKbWLxjPgM17vfeDqgI_R6Du05kTFpQuwyqtnXYk10bd-M50jIWfrlrX-pdSObjolCVEtuUt2lZvZahe0r2bg87Zbk3eFU9bI8eVtdosvSGtP9ZrKfe5BjrfMAC0XsKfWwoKT0JXznXD0Brw11PBQwsslusQOPI6HqskmmaE3NCkKB9a2Wnzs1eO1_Ompqbx_J7uoBphNMzlnrOQL74UVRifDqTFc_o0-rhp3EaXnlDnuOCbYwbOO7Ah3jX5OdU49Vnm-VHIB5_MAtYeEonVaMdSyXa1LXboy-LespvK9P7x1Zfnk5FW9SQCEa1cp7_dXD4h5ho7shKTzPLxbFShKQ_twsoP7JeMdZd1MNCtt_7B9Be-uRfGPwV2XQijME0xtq_8OMhbxFAJh-6MLVZqqKlDSw',
161
- tag: 'kKoF2f10Da0kBqX2brBZug',
162
- },
163
- },
164
- };
165
- const docs = await wallet.getDocumentsFromEncryptedWallet({
166
- encryptedJSONWallet,
167
- password: 'test',
168
- });
169
- expect(docs.length).toBe(2);
170
- });
171
- it('expect to get documents from encrypted wallets with incorrect params', async () => {
172
- const wallet = await Wallet.create({
173
- walletId: 'test',
174
- });
175
- const encryptedJSONWallet = {
176
- '@context': [
177
- 'https://www.w3.org/2018/credentials/v1',
178
- 'https://w3id.org/wallet/v1',
179
- ],
180
- id: 'did:key:z6LSjTbRETJjUCDiQopbeCgZKRisy7mdchwiMBPTQktcibGh#encrypted-wallet',
181
- type: ['VerifiableCredential', 'EncryptedWallet'],
182
- issuer: 'did:key:z6LSjTbRETJjUCDiQopbeCgZKRisy7mdchwiMBPTQktcibGh',
183
- issuanceDate: '2022-07-19T20:59:44.798Z',
184
- credentialSubject: {
185
- id: 'did:key:z6LSjTbRETJjUCDiQopbeCgZKRisy7mdchwiMBPTQktcibGh',
186
- encryptedWalletContents: {
187
- protected: 'eyJlbmMiOiJYQzIwUCJ9',
188
- recipients: [
189
- {
190
- header: {
191
- kid: 'did:key:z6LSjTbRETJjUCDiQopbeCgZKRisy7mdchwiMBPTQktcibGh#z6LSjTbRETJjUCDiQopbeCgZKRisy7mdchwiMBPTQktcibGh',
192
- alg: 'ECDH-ES+A256KW',
193
- epk: {
194
- kty: 'OKP',
195
- crv: 'X25519',
196
- x: '-ABoa59NY2qVI66NZ8EbqxCwp02sft5onyKhfa2yfUU',
197
- },
198
- apu: '-ABoa59NY2qVI66NZ8EbqxCwp02sft5onyKhfa2yfUU',
199
- apv: 'ZGlkOmtleTp6NkxTalRiUkVUSmpVQ0RpUW9wYmVDZ1pLUmlzeTdtZGNod2lNQlBUUWt0Y2liR2gjejZMU2pUYlJFVEpqVUNEaVFvcGJlQ2daS1Jpc3k3bWRjaHdpTUJQVFFrdGNpYkdo',
200
- },
201
- encrypted_key:
202
- 'Mmf6YGug9bL-L4bi2UwS9R8nUk6bJmgVKJvP2_a0BwsjxtxBN0ly6w',
203
- },
204
- ],
205
- iv: '-u0i0V9ENM3rUwxj-Yv_7jd3veFLzVEO',
206
- ciphertext:
207
- 'jahwvff1Afy19A9C4kP51nno-14Ea7m-omq39JGlG5_qmmEgrBcd0KsStpfDFKj4gMRR8izsALXqKz78vzhCRTd3RNa5rNOKbzfT3HALRkn1y7n6RlSRRZ0MKuBP9JVg49opLSqAIJ9j64Ebj2KhXALX6Wbv1h9FhAIhIxGkZJZDgKFQmpI54IGKS-J4_19gE2IcJrt7nYb_jXa9VwmmPbH-GDUFGVVbk3uoGCIcpxPSTiwEn7RSC2iSb_kARyOb7ft5546TKiODN-98QMV7lQTn4kZ59RqgC2w7rwDui85He_X21z0GcK9Ipkg5tRm5U7GNqzZtT3Ev952VOUW960istZ6s5gMpcngv0YMGBqnboYqHC3Uq22-ZRM7ya1ijJOi-UD0ozdGNrLs6kdAQWlvrGh7NAnpEdpBfxq_2CuxLZxTI8TGXfpXH39Njc_L3241AISN7HyTrHsoA2F0QIoIE6njMcxaqQy8OWeWYJD7jAhiWMCE-M5UGUbgJUB5BpUV4Q_hndQqL_c5YVf2Fbc98_8vVwtsUeqbMB97qgN3Pq3du00N7rJ7zs9SNuO3D_2A9KD9Y7tN7QywXA565HQC2k-OJpkVqsRDsihWpn3qtTMaSu0OKJS6rKeugSNE6VlsGFC_PoD_6qx3FpcAPsl5_3MDuE-aZBden_iMfUkdXKxZFrkYbc2bLMekoQwa3gfrjBc4EoN9aPbIux3dqS8nBS6-31UCIMkfEv6OmKmm0_wIm-CeMUM8BW9EgGk_9k9kOySZbTQ5VxwomOLWHundKCFTp_I3adoobUORpbxl9LivFqX0T47w5ktblOMUiTMSzgmI4WbGYrvi4otb33vH88aRc_WneCeoSuWFnCUih2R8xBNqhqIESIB1zTqYnVlaENTNZXIRfw7qSatT6i7pnkaBygp059LeBJCkG79V0yB_ZnNTHX3oTViHHNfFmTpeuT7puhWFBkgQnLzr0zdc03hyjVNA99BhR3dz1gjL3TP8TgaYG6LLS2h-6HeLYRX8uDi-SmVU1hIvWR11l6dbzcQrj4b5cjMbbHvyxaegaXCNB5LPLRxg03z1Z74faueBRfWb3l2z_slbAhmJK2KJe9evl47_Fd5RgVAjbxRqwwFAAyUtzKtyHGZhUN7lJrOFATl89mzpGNg0Qt3lTC7rfzCD0xFWruC7PZnw7lCI8aNsPnNMG-2En-JE1eTyMUyG9um7ernec_AUqqntf7JjvNbjQO_PBu6qsOAsaKWbx1DxgEOFa-LPT7NGzBPr13pMFjIoiOXmLUexAl_LuZyEJuyjtfijSepZ6pYEKPQvAFMyNFBO-Og-jRoHaw78mVsoNV2jURkVwDfFuTeA_it5Xk00zgRGra3z1WELN8r-VWBewlj69H7ui4GF0PWZNEG5nxxZbmmrZgvj-Zqv9oCKHC60El2jX2KMniXiBXW-wcoh5pqT4P4dMOqkLdtpOtFvdWW0cQBJEdGcccfWdd0NUIhr0pSL3tfJ5yPxke8kTpHuwIb7Dbb55nqYDpyU-3hdx1QJtTFcCT2EottF0XDx1nrmLM9t_ZpZRx06tOOhK-CQLYNouqaMkpIEuW-utycHuS6qW-dNX95b15r3z1wuLxBA7CxgjYHmswedWnvMNshEIcTLAAYHttSsUVRBVLNVllqKs9swEN2Klq1L0d8iW3KGkpiGfrPpVeobcwB9E2sPIZyjNPwxlQboVAU8evbuk6e4slGTJwnz0VvDpRDtqM9Kz0ndIcuaOoB9he57zi037Aup8C2G8_qATcBhka7SHfP8XJdlDjz7cU5ACl2Mt0FH1C6HPBJj_FKbWLxjPgM17vfeDqgI_R6Du05kTFpQuwyqtnXYk10bd-M50jIWfrlrX-pdSObjolCVEtuUt2lZvZahe0r2bg87Zbk3eFU9bI8eVtdosvSGtP9ZrKfe5BjrfMAC0XsKfWwoKT0JXznXD0Brw11PBQwsslusQOPI6HqskmmaE3NCkKB9a2Wnzs1eO1_Ompqbx_J7uoBphNMzlnrOQL74UVRifDqTFc_o0-rhp3EaXnlDnuOCbYwbOO7Ah3jX5OdU49Vnm-VHIB5_MAtYeEonVaMdSyXa1LXboy-LespvK9P7x1Zfnk5FW9SQCEa1cp7_dXD4h5ho7shKTzPLxbFShKQ_twsoP7JeMdZd1MNCtt_7B9Be-uRfGPwV2XQijME0xtq_8OMhbxFAJh-6MLVZqqKlDSw',
208
- tag: 'kKoF2f10Da0kBqX2brBZug',
209
- },
210
- },
211
- };
212
-
213
- await expect(
214
- wallet.getDocumentsFromEncryptedWallet({
215
- encryptedJSONWallet,
216
- password: '1test',
217
- }),
218
- ).rejects.toThrowError(
219
- 'No matching recipient found for key agreement key.',
220
- );
221
- });
222
- });
223
-
224
- afterAll(async () => {
225
- await unmockDockService();
226
- });
227
- });
@@ -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
- address: networkInfo.substrateUrl,
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
- });