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