@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,774 +0,0 @@
1
- 'use strict';
2
-
3
- var assert = require('assert');
4
- var core_validation = require('./core/validation.js');
5
- var services_wallet_service = require('./services/wallet/service.js');
6
- var services_utilCrypto_service = require('./services/util-crypto/service.js');
7
- var services_keyring_service = require('./services/keyring/service.js');
8
- var services_substrate_service = require('./services/substrate/service.js');
9
- var services_polkadot_service = require('./services/polkadot/service.js');
10
- var uuid = require('uuid');
11
- var core_storage = require('./core/storage.js');
12
- var services_blockchain_service = require('./services/blockchain/service.js');
13
- var modules_eventManager = require('./modules/event-manager.js');
14
- var modules_networkManager = require('./modules/network-manager.js');
15
- var modules_dataMigration = require('./modules/data-migration.js');
16
- var core_logger = require('./core/logger.js');
17
- var errors = require('./errors.js');
18
- var types = require('./types.js');
19
-
20
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
21
-
22
- var assert__default = /*#__PURE__*/_interopDefaultLegacy(assert);
23
-
24
- var doc2213 = {
25
- "@context": [
26
- "https://w3id.org/wallet/v1"
27
- ],
28
- id: "credential-1652390503413",
29
- value: {
30
- "@context": [
31
- "https://www.w3.org/2018/credentials/v1",
32
- {
33
- dk: "https://ld.dock.io/credentials#",
34
- BasicCredential: "dk:BasicCredential",
35
- subjectName: "dk:subjectName",
36
- title: "dk:title",
37
- name: "dk:name",
38
- description: "dk:description",
39
- logo: "dk:logo"
40
- }
41
- ],
42
- credentialStatus: {
43
- id: "rev-reg:dock:0x8e4ff3d6de36a3e4dbd014b5979e6fc0ab1e4c0a5f1ceddae2c7c67a4b94d0de",
44
- type: "CredentialStatusList2017"
45
- },
46
- id: "https://creds.dock.io/79277556ab5504ec064492780d3678d04f9f4ec370de28537e9d5be09f11df92",
47
- type: [
48
- "VerifiableCredential",
49
- "BasicCredential"
50
- ],
51
- credentialSubject: {
52
- id: "planespotter325",
53
- subjectName: "Oleh Yatskiv",
54
- title: "Beta Testing Credential"
55
- },
56
- issuanceDate: "2022-05-10T10:06:49.346Z",
57
- proof: {
58
- type: "Ed25519Signature2018",
59
- created: "2022-05-10T10:07:08Z",
60
- verificationMethod: "did:dock:5C53c6uirausdvARD891dyyEkQE388iXhDwypkmp1nHh1odv#keys-1",
61
- proofPurpose: "assertionMethod",
62
- proofValue: "z2RVKT1jYhooV3JidULqxTwPq2R41RqPNEMf14GWMTrh2NpzoFj4uiEzkzcu3HYZ8C8Vc7qBctVALMjXferqTiJkQ"
63
- },
64
- issuer: {
65
- name: "Dock Beta Testing",
66
- description: "",
67
- logo: "data:image/png;base64,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",
68
- id: "did:dock:5C53c6uirausdvARD891dyyEkQE388iXhDwypkmp1nHh1odv"
69
- }
70
- },
71
- type: "VerifiableCredential"
72
- };
73
- var legacyWalletSchema = {
74
- "doc:d4bd8145-4a56-456e-9b78-71509184f6ed": {
75
- "@context": [
76
- "https://w3id.org/wallet/v1"
77
- ],
78
- id: "6ee76a80-bdf2-4cf8-9647-4897ed6feadd",
79
- name: "Account 1",
80
- type: "Mnemonic",
81
- value: "toe crowd portion cook feel minute deny piece feel barrel member swarm"
82
- },
83
- "doc:74366f2f-a137-46f1-b661-be2956d9afb2": {
84
- "@context": [
85
- "https://w3id.org/wallet/v1"
86
- ],
87
- id: "0a7d45d3-8ca4-41a2-93c8-d4bec5652376",
88
- name: "mnemonic 1",
89
- type: "Mnemonic",
90
- value: "exact next frown coconut exit pledge blind program film elephant wife clutch"
91
- },
92
- "doc:670ef0a2-c748-45ab-9515-460d907ba529": {
93
- "@context": [
94
- "https://w3id.org/wallet/v1"
95
- ],
96
- id: "7e0b6479-59c8-4f76-95d5-d25f7413751f",
97
- name: "mnemonic1 ",
98
- type: "Mnemonic",
99
- value: "exact next frown coconut exit pledge blind program film elephant wife clutch"
100
- },
101
- "doc:497337c2-29fc-4a88-9b78-ee55abd0a500": {
102
- "@context": [
103
- "https://w3id.org/wallet/v1"
104
- ],
105
- id: "37g1HpqrRjWozRxT5MCpqUDxHQtu2ASPy6yJRD5cqKRVBefS",
106
- type: "Account",
107
- correlation: [
108
- "7e0b6479-59c8-4f76-95d5-d25f7413751f"
109
- ],
110
- meta: {
111
- name: "mnemonic1 ",
112
- keypairType: "sr25519",
113
- derivationPath: "",
114
- hasBackup: true,
115
- balance: 0
116
- }
117
- },
118
- "doc:069c5733-8516-4dff-aa91-cb3eefc3f16d": {
119
- "@context": [
120
- "https://w3id.org/wallet/v1"
121
- ],
122
- id: "80f68f17-14a8-4f2d-9865-b1477e605115",
123
- name: "test 33",
124
- type: "KeyPair",
125
- value: {
126
- encoded: "MFMCAQEwBQYDK2VwBCIEIGhWQpGhRsLAOg8FFbvjUOOZ0UZZX2OJzIKhrTJ2Od1mKEidt13wS9Kxefy98pm/8w9an45To/IuYiKX7PlDyS6hIwMhAP4WQCN9VTz2Hn18GOwXw9ZhVZyCYQnbE5DcZeMamHYt",
127
- encoding: {
128
- content: [
129
- "pkcs8",
130
- "sr25519"
131
- ],
132
- type: [
133
- "none"
134
- ],
135
- version: "3"
136
- },
137
- address: "3CH1Ce5k516MNoyJvRbq4CtuiSDisa8SF9JBqCcSYRAEzgUk",
138
- meta: {
139
- genesisHash: "0x17643cd935f8379c6683c74f739460be4ccc4e4c30b0183bdb2fb9973af242f1",
140
- isHardware: false,
141
- name: "test 33",
142
- tags: [
143
- ],
144
- whenCreated: 1654447770598
145
- }
146
- }
147
- },
148
- "doc:d56aa925-2da8-469a-ab4b-c4878e19b9fc": {
149
- "@context": [
150
- "https://w3id.org/wallet/v1"
151
- ],
152
- id: "3CH1Ce5k516MNoyJvRbq4CtuiSDisa8SF9JBqCcSYRAEzgUk",
153
- type: "Account",
154
- correlation: [
155
- "80f68f17-14a8-4f2d-9865-b1477e605115"
156
- ],
157
- meta: {
158
- name: "test 33",
159
- hasBackup: true,
160
- balance: 0
161
- }
162
- },
163
- "doc:69cfaf57-4b04-40b4-9d2a-143c4f05a2e3": {
164
- "@context": [
165
- "https://w3id.org/wallet/v1"
166
- ],
167
- id: "dd3868e5-dab7-4e43-95ac-530a65ef8917",
168
- name: "ACCOUNT NEW",
169
- type: "Mnemonic",
170
- value: "surround cotton ecology happy artist opera alert resemble jewel jaguar risk rude"
171
- },
172
- "doc:729e40eb-e36c-460e-a85b-0f9ad2fbf199": {
173
- "@context": [
174
- "https://w3id.org/wallet/v1"
175
- ],
176
- id: "3BcMTtyijuEQYBfSCR45jaZUCgEeCgLCNeJGZm336S638C7G",
177
- type: "Account",
178
- correlation: [
179
- "dd3868e5-dab7-4e43-95ac-530a65ef8917"
180
- ],
181
- meta: {
182
- name: "ACCOUNT NEW",
183
- keypairType: "sr25519",
184
- derivationPath: "",
185
- hasBackup: false,
186
- balance: 0
187
- }
188
- },
189
- doc2213: doc2213
190
- };
191
-
192
- // @ts-nocheck
193
- /** Wallet events */
194
- const WalletEvents = {
195
- ready: 'ready',
196
- error: 'error',
197
- migrated: 'migrated',
198
- statusUpdated: 'status-updated',
199
- documentAdded: 'document-added',
200
- documentUpdated: 'document-updated',
201
- documentRemoved: 'document-removed',
202
- walletDeleted: 'wallet-deleted',
203
- walletImported: 'wallet-imported',
204
- networkUpdated: 'network-updated',
205
- networkConnected: 'network-connected',
206
- networkError: 'network-error',
207
- };
208
- /**
209
- * Can be used to debug the data migration behavior in the wallet
210
- */
211
- const MOCK_STORAGE = process.env.MOCK_STORAGE;
212
- async function shouldMockStorage(walletId) {
213
- if (MOCK_STORAGE !== 'true') {
214
- return;
215
- }
216
- await core_storage.getStorage().setItem(walletId, JSON.stringify(legacyWalletSchema));
217
- }
218
- // const environment = getEnvironment();
219
- // if (environment !== 'reactnative') {
220
- // require('../setup-nodejs');
221
- // }
222
- /**
223
- * Wallet
224
- */
225
- class Wallet {
226
- networkManager;
227
- context;
228
- status;
229
- apiConnected;
230
- eventManager;
231
- walletId;
232
- accounts;
233
- /**
234
- * @constructor
235
- * @param {object} params
236
- */
237
- constructor({ walletId = 'wallet', context = ['https://w3id.org/wallet/v1'], } = {}) {
238
- this.walletId = walletId;
239
- this.context = context;
240
- this.networkManager = modules_networkManager.NetworkManager.getInstance();
241
- this.eventManager = new modules_eventManager.EventManager();
242
- this.accounts = Accounts.getInstance({ wallet: this });
243
- }
244
- async recoverFromBadState() {
245
- const storageItems = await core_storage.getStorage().getItem(this.walletId);
246
- const walletData = JSON.parse(storageItems);
247
- Object.keys(walletData).forEach(docKey => {
248
- const document = walletData[docKey];
249
- if (!document['@context']) {
250
- document['@context'] = this.context;
251
- }
252
- });
253
- await core_storage.getStorage().setItem(this.walletId, JSON.stringify(walletData));
254
- await this.createWallet();
255
- }
256
- async createWallet() {
257
- await services_wallet_service.walletService.create({
258
- walletId: this.walletId,
259
- type: 'rpc',
260
- });
261
- await services_wallet_service.walletService.sync();
262
- await services_wallet_service.walletService.load();
263
- }
264
- /**
265
- * Get the y value.
266
- * @return {Promise} The y value.
267
- */
268
- async load() {
269
- if (this.status === 'loading') {
270
- return this.eventManager.waitFor(WalletEvents.ready);
271
- }
272
- if (this.status === 'ready') {
273
- return;
274
- }
275
- this.setStatus('loading');
276
- // TODO: get network from dataStore
277
- const networkId = (await core_storage.getStorage().getItem('networkId')) || 'mainnet';
278
- this.networkManager.setNetworkId(networkId);
279
- await shouldMockStorage(this.walletId);
280
- try {
281
- await services_utilCrypto_service.utilCryptoService.cryptoWaitReady();
282
- await services_keyring_service.keyringService.initialize({
283
- ss58Format: this.networkManager.getNetworkInfo().addressPrefix,
284
- });
285
- try {
286
- await this.createWallet();
287
- }
288
- catch (err) {
289
- await this.recoverFromBadState();
290
- }
291
- this.setStatus('ready');
292
- this.eventManager.emit(WalletEvents.ready);
293
- this.initNetwork();
294
- this.migrated = await modules_dataMigration.migrate({ wallet: this });
295
- this.eventManager.emit(WalletEvents.migrated);
296
- }
297
- catch (err) {
298
- this.setStatus('error');
299
- this.eventManager.emit(WalletEvents.error, err);
300
- throw err;
301
- }
302
- }
303
- async getVersion() {
304
- const docs = await this.query({});
305
- const versionDoc = docs.find((item) => item.type === 'Metadata' && !!item.walletVersion);
306
- return (versionDoc && versionDoc.walletVersion) || '0.1';
307
- }
308
- /**
309
- *
310
- * Close wallet
311
- */
312
- async close() {
313
- await services_blockchain_service.blockchainService.disconnect();
314
- this.setStatus('closed');
315
- }
316
- async switchNetwork(networkId) {
317
- core_storage.getStorage().setItem('networkId', networkId);
318
- this.networkManager.setNetworkId(networkId);
319
- await this.initNetwork();
320
- }
321
- /**
322
- * delete wallet
323
- */
324
- async deleteWallet() {
325
- this.eventManager.emit(WalletEvents.walletDeleted);
326
- await core_storage.getStorage().removeItem('logs');
327
- await core_storage.getStorage().removeItem('transactions');
328
- await core_storage.getStorage().removeItem(this.walletId);
329
- await services_wallet_service.walletService.create({
330
- walletId: this.walletId,
331
- });
332
- await services_wallet_service.walletService.load();
333
- await services_wallet_service.walletService.sync();
334
- }
335
- /**
336
- *
337
- * @param {*} status
338
- */
339
- setStatus(status) {
340
- assert__default["default"](!!status, 'status is required');
341
- this.status = status;
342
- this.eventManager.emit(WalletEvents.statusUpdated, status);
343
- }
344
- /**
345
- * Ensure network
346
- *
347
- * @returns Promise
348
- */
349
- async ensureNetwork() {
350
- if (!this.connectionInProgress) {
351
- this.initNetwork();
352
- }
353
- else if (this.networkReady) {
354
- return;
355
- }
356
- await this.eventManager.waitFor(WalletEvents.networkConnected);
357
- }
358
- async initNetwork() {
359
- try {
360
- this.connectionInProgress = true;
361
- const networkInfo = this.networkManager.getNetworkInfo();
362
- await services_keyring_service.keyringService.initialize({
363
- ss58Format: networkInfo.addressPrefix,
364
- });
365
- core_logger.Logger.debug(`Initializing network ${JSON.stringify(networkInfo)}`);
366
- const isDockConnected = await services_blockchain_service.blockchainService.isApiConnected();
367
- if (isDockConnected) {
368
- await services_blockchain_service.blockchainService.disconnect();
369
- }
370
- await services_blockchain_service.blockchainService.init({
371
- address: networkInfo.substrateUrl,
372
- });
373
- this.eventManager.emit(WalletEvents.networkConnected);
374
- }
375
- catch (err) {
376
- this.eventManager.emit(WalletEvents.error, err);
377
- throw err;
378
- }
379
- finally {
380
- this.connectionInProgress = false;
381
- this.networkReady = true;
382
- }
383
- }
384
- async waitReady() {
385
- if (this.status === 'ready') {
386
- return;
387
- }
388
- let warningTimeout = setTimeout(() => {
389
- throw new Error('Wallet module timed out. Make sure the wallet is loaded, or you are not using multiple instances');
390
- }, 6000);
391
- await this.eventManager.waitFor(WalletEvents.ready);
392
- clearTimeout(warningTimeout);
393
- }
394
- getContext() {
395
- return this.getContext;
396
- }
397
- setContext(context) {
398
- this.context = context;
399
- }
400
- assertReady() {
401
- return this.waitReady();
402
- }
403
- /**
404
- * Remove document
405
- * @returns Promise<boolean>
406
- */
407
- async remove(documentId) {
408
- await services_wallet_service.walletService.remove(documentId);
409
- this.eventManager.emit(WalletEvents.documentRemoved, documentId);
410
- }
411
- async upsert(document) {
412
- const existing = await this.getDocumentById(document.id);
413
- if (existing) {
414
- return this.update({
415
- ...existing,
416
- ...document,
417
- });
418
- }
419
- return this.add(document);
420
- }
421
- /**
422
- * Add document to the wallet
423
- * @param {*} options
424
- * @throws InvalidAccountErrors
425
- * @returns document
426
- */
427
- async add(document) {
428
- await this.assertReady();
429
- const newDocument = {
430
- ...document,
431
- id: document.id || uuid.v4(),
432
- '@context': document.context || this.context,
433
- };
434
- await services_wallet_service.walletService.add(newDocument);
435
- this.eventManager.emit(WalletEvents.documentAdded, newDocument);
436
- return newDocument;
437
- }
438
- async update(document) {
439
- await this.assertReady();
440
- await services_wallet_service.walletService.update({
441
- '@context': document['@context'] || this.context,
442
- ...document,
443
- });
444
- this.eventManager.emit(WalletEvents.documentUpdated, document);
445
- return document;
446
- }
447
- async export(password) {
448
- return services_wallet_service.walletService.exportWallet(password);
449
- }
450
- /**
451
- * Add all documents in the wallet
452
- * @param {*} options
453
- * @returns document
454
- */
455
- async query(params = {}) {
456
- await this.assertReady();
457
- let equals;
458
- Object.keys(params).forEach(key => {
459
- const value = params[key];
460
- if (!value) {
461
- return;
462
- }
463
- if (!equals) {
464
- equals = {};
465
- }
466
- equals[`content.${key}`] = value;
467
- });
468
- return services_wallet_service.walletService.query({
469
- equals,
470
- });
471
- }
472
- async getDocumentById(documentId) {
473
- await this.assertReady();
474
- const result = await this.query({ id: documentId });
475
- return result[0];
476
- }
477
- static async create({ walletId, json, password } = {}) {
478
- const wallet = new Wallet({ walletId });
479
- await wallet.load();
480
- if (json) {
481
- await wallet.importWallet({ json, password });
482
- }
483
- return wallet;
484
- }
485
- async importWallet({ json, password }) {
486
- await this.deleteWallet();
487
- await services_wallet_service.walletService.importWallet({ json, password });
488
- this.migrated = await modules_dataMigration.migrate({ wallet: this });
489
- await this.eventManager.emit(WalletEvents.walletImported);
490
- }
491
- async getDocumentsFromEncryptedWallet({ encryptedJSONWallet, password }) {
492
- return services_wallet_service.walletService.getDocumentsFromEncryptedWallet({
493
- encryptedJSONWallet,
494
- password,
495
- });
496
- }
497
- async resolveCorrelations(documentId) {
498
- return services_wallet_service.walletService.resolveCorrelations(documentId);
499
- }
500
- async exportDocuments({ documents, password }) {
501
- return services_wallet_service.walletService.exportDocuments({
502
- documents,
503
- password,
504
- });
505
- }
506
- /**
507
- * Get wallet module instance
508
- * @returns Wallet
509
- */
510
- static getInstance() {
511
- if (!Wallet.instance) {
512
- Wallet.instance = new Wallet();
513
- }
514
- return Wallet.instance;
515
- }
516
- }
517
-
518
- // @ts-nocheck
519
- const AccountsEvents = {
520
- loaded: 'loaded',
521
- accountCreated: 'account-added',
522
- accountUpdated: 'account-updated',
523
- accountRemoved: 'account-removed',
524
- };
525
- class Accounts {
526
- accounts;
527
- wallet;
528
- eventManager;
529
- static DocumentFilters = {
530
- mnemonicType: (item) => item.type === 'Mnemonic',
531
- currencyType: (item) => item.type === 'Currency',
532
- };
533
- constructor({ wallet, walletService } = {}) {
534
- this.accounts = [];
535
- this.wallet = wallet || Wallet.getInstance();
536
- this.walletService = walletService || services_wallet_service.walletService;
537
- this.eventManager = new modules_eventManager.EventManager();
538
- }
539
- async load() {
540
- this.accounts = await this.wallet.query({
541
- type: 'Address',
542
- });
543
- this.eventManager.emit(AccountsEvents.loaded);
544
- return this.accounts;
545
- }
546
- async exportAccount(address, password) {
547
- return this.walletService.exportAccount({ address, password });
548
- }
549
- async importAccount(json, password) {
550
- return this.create({
551
- json,
552
- password,
553
- });
554
- }
555
- async fetchBalance(address) {
556
- assert__default["default"](core_validation.isAddressValid(address), 'invalid address');
557
- console.log('fetching balance from substrate');
558
- let balance;
559
- try {
560
- balance = await services_substrate_service.substrateService.getAccountBalance({ address });
561
- console.log('balance found', balance.toString());
562
- console.log('updating cache');
563
- const currency = await this.findCorrelationByType(address, 'Currency', true);
564
- console.log('currency', currency);
565
- if (currency.value !== balance) {
566
- currency.value = balance;
567
- await this.wallet.update(currency);
568
- }
569
- }
570
- catch (err) {
571
- console.log('Unable to update cache');
572
- console.error(err);
573
- }
574
- return balance;
575
- }
576
- async getBalance(address, skipFetch) {
577
- assert__default["default"](core_validation.isAddressValid(address), 'address is required');
578
- if (!skipFetch) {
579
- await this.fetchBalance(address);
580
- }
581
- const currency = await this.findCorrelationByType(address, 'Currency', true);
582
- return currency.value;
583
- }
584
- getAccounts() {
585
- return this.accounts;
586
- }
587
- getAccountIcon(address, isAlternative) {
588
- return services_polkadot_service.polkadotService.getPolkadotSvgIcon(address, isAlternative);
589
- }
590
- async getByAddress(address) {
591
- return Account.with(address);
592
- }
593
- async findCorrelationByType(address, type, assertResult) {
594
- assert__default["default"](core_validation.isAddressValid(address), 'invalid address');
595
- const correlations = await this.wallet.resolveCorrelations(address);
596
- const result = correlations.find(c => c.type.includes(type));
597
- if (assertResult) {
598
- assert__default["default"](!!result, `${type} document not found for the account ${address}`);
599
- }
600
- return result;
601
- }
602
- generateMnemonic() {
603
- return services_utilCrypto_service.utilCryptoService.mnemonicGenerate(12);
604
- }
605
- async update(account) {
606
- assert__default["default"](!!account, 'account is required');
607
- await this.walletService.update(account);
608
- this.eventManager.emit(AccountsEvents.accountUpdated);
609
- await this.load();
610
- }
611
- async getOrCreate(params) {
612
- return this.create({
613
- ...params,
614
- getIfExists: true,
615
- });
616
- }
617
- async create(params) {
618
- let { name, json, password, type = 'sr25519', getIfExists, hasBackup } = params;
619
- assert__default["default"](!!name, 'name is required');
620
- assert__default["default"](!!type, 'keypair type is required');
621
- assert__default["default"](types.KeypairTypes.find(t => t === type), `invalid keypair type ${type}`);
622
- if (json) {
623
- assert__default["default"](typeof password === 'string', 'password is required');
624
- }
625
- const mnemonic = params.mnemonic || (!json && (await this.generateMnemonic()));
626
- const derivePath = params.derivationPath || '';
627
- const address = json
628
- ? json.address
629
- : await services_keyring_service.keyringService.addressFromUri({
630
- mnemonic,
631
- type,
632
- derivePath,
633
- });
634
- const existingAccountDocs = await this.wallet.query({
635
- id: address,
636
- });
637
- const accountExists = existingAccountDocs.length > 0;
638
- if (getIfExists && accountExists) {
639
- return this.getByAddress(address);
640
- }
641
- assert__default["default"](!accountExists, errors.Errors.accountAlreadyExists);
642
- if (json) {
643
- const pair = await services_keyring_service.keyringService.decryptKeyPair({
644
- jsonData: json,
645
- password,
646
- });
647
- assert__default["default"](pair && pair.address, 'invalid keypair');
648
- type = pair.type;
649
- }
650
- const account = {
651
- id: address,
652
- name,
653
- type,
654
- address,
655
- };
656
- const documents = await this.walletService.createAccountDocuments({
657
- name,
658
- type,
659
- derivePath,
660
- mnemonic,
661
- json,
662
- password,
663
- hasBackup,
664
- });
665
- documents.forEach(doc => {
666
- this.wallet.eventManager.emit(WalletEvents.documentAdded, doc);
667
- });
668
- this.eventManager.emit(AccountsEvents.accountCreated, account);
669
- await this.load();
670
- return Account.withAsync(account.address, this);
671
- }
672
- async remove(accountId) {
673
- await this.wallet.remove(accountId);
674
- // remove other documents
675
- // mnemonic phrase and all the stuff
676
- this.eventManager.emit(AccountsEvents.accountRemoved, accountId);
677
- this.load();
678
- }
679
- static getInstance(options) {
680
- if (!Accounts.instance || options) {
681
- Accounts.instance = new Accounts(options);
682
- }
683
- return Accounts.instance;
684
- }
685
- }
686
-
687
- // @ts-nocheck
688
- /**
689
- * Account
690
- */
691
- class Account {
692
- details;
693
- address;
694
- name;
695
- accounts;
696
- constructor(address, accounts) {
697
- this.accounts = accounts;
698
- this.address = address;
699
- this.id = address;
700
- }
701
- /**
702
- * Get account for a given address
703
- * The account needs to exist in the wallet
704
- *
705
- * @example
706
- * const accounts = Account.with('some-address')
707
- * @param {string} address
708
- * @returns
709
- */
710
- static with(address, accounts) {
711
- assert__default["default"](core_validation.isAddressValid(address), 'invalid address');
712
- const account = new Account(address, accounts || Accounts.getInstance());
713
- account.loadPromise = account.loadDetails();
714
- return account;
715
- }
716
- /**
717
- *
718
- * @param {string} address
719
- * @returns
720
- */
721
- static async withAsync(address, accounts) {
722
- const account = Account.with(address, accounts);
723
- await account.loadPromise;
724
- return account;
725
- }
726
- /**
727
- * @returns {Promise<void>}
728
- */
729
- async loadDetails() {
730
- this.details = await this.accounts.wallet.getDocumentById(this.id);
731
- this.name = this.details && this.details.name;
732
- }
733
- getAddress() {
734
- return this.details.address;
735
- }
736
- getDetails() {
737
- return this.details;
738
- }
739
- async getBalance(skipFetch) {
740
- return this.accounts.getBalance(this.details.address, skipFetch);
741
- }
742
- export(password) {
743
- return this.accounts.exportAccount(this.address, password);
744
- }
745
- remove() {
746
- return this.accounts.remove(this.address);
747
- }
748
- update({ name }) {
749
- return this.accounts.update({
750
- ...this.details,
751
- name,
752
- });
753
- }
754
- async getMnemonic() {
755
- const doc = await this.accounts.findCorrelationByType(this.address, 'Mnemonic');
756
- return doc.value;
757
- }
758
- async getKeyPair() {
759
- const doc = await this.accounts.findCorrelationByType(this.address, 'KeyringPair');
760
- return doc.value;
761
- }
762
- getName() {
763
- return this.details.name;
764
- }
765
- getIcon(isAlternative) {
766
- return this.accounts.getAccountIcon(this.details.address, isAlternative);
767
- }
768
- }
769
-
770
- exports.Account = Account;
771
- exports.Accounts = Accounts;
772
- exports.AccountsEvents = AccountsEvents;
773
- exports.Wallet = Wallet;
774
- exports.WalletEvents = WalletEvents;