@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,116 +0,0 @@
1
- import BigNumber from 'bignumber.js';
2
- import {TestFixtures} from '../../fixtures';
3
- import {
4
- assertRpcService,
5
- getPromiseError,
6
- mockDockService,
7
- setMockTransactionError,
8
- setupTestWallet,
9
- TEST_FEE_AMOUNT,
10
- } from '../test-utils';
11
- import {validation} from './configs';
12
- import {
13
- substrateService as service,
14
- getFeeWithBuffer,
15
- FEE_ESTIMATION_BUFFER,
16
- } from './service';
17
- import {SubstrateServiceRpc} from './service-rpc';
18
-
19
- describe('ExampleService', () => {
20
- it('ServiceRpc', () => {
21
- assertRpcService(SubstrateServiceRpc, service, validation);
22
- });
23
-
24
- describe('service', () => {
25
- let unmockDockService;
26
- let testKeypairJSON;
27
-
28
- beforeAll(async () => {
29
- unmockDockService = await mockDockService();
30
- testKeypairJSON = TestFixtures.account1.getKeyring().toJson('');
31
- await setupTestWallet();
32
- });
33
-
34
- describe('getAccountBalance', () => {
35
- it('expect to get account balance', async () => {
36
- const balance = await service.getAccountBalance({
37
- address: TestFixtures.account1.address,
38
- });
39
- expect(typeof balance).toBe('number');
40
- });
41
-
42
- it('expect to validate params', async () => {
43
- const error = await getPromiseError(() =>
44
- service.getAccountBalance({address: null}),
45
- );
46
- expect(error.message).toBe('invalid address null');
47
- });
48
- });
49
-
50
- describe('getFeeAmount', () => {
51
- it('expect to add buffer to the fee', () => {
52
- expect(getFeeWithBuffer(new BigNumber(1)).toNumber()).toBe(
53
- 1 * FEE_ESTIMATION_BUFFER,
54
- );
55
- expect(() => getFeeWithBuffer(null)).toThrowError();
56
- });
57
-
58
- it('expect to get fee amount', async () => {
59
- const fee = await service.getFeeAmount({
60
- toAddress: TestFixtures.account2.address,
61
- fromAddress: TestFixtures.account1.address,
62
- amount: 1,
63
- keyPair: testKeypairJSON,
64
- });
65
- expect(fee).toBe(TEST_FEE_AMOUNT * 1.1);
66
- });
67
-
68
- it('expect to validate params', async () => {
69
- const error = await getPromiseError(() =>
70
- service.getFeeAmount({
71
- amount: null,
72
- fromAddress: 'address',
73
- toAddress: 'adress',
74
- }),
75
- );
76
- expect(error.message).toBe('invalid amount');
77
- });
78
- });
79
-
80
- describe('sendTokens', () => {
81
- it('expect to send tokens', async () => {
82
- setMockTransactionError(null);
83
- const hash = await service.sendTokens({
84
- amount: 1,
85
- fromAddress: TestFixtures.account1.address,
86
- toAddress: TestFixtures.account2.address,
87
- keyPair: testKeypairJSON,
88
- });
89
-
90
- console.log('tx hash', hash);
91
-
92
- expect(typeof hash).toBe('string');
93
- });
94
-
95
- it('expect to handle transaction error', async () => {
96
- const errorMessage = 'some error from substrate';
97
-
98
- setMockTransactionError(errorMessage);
99
-
100
- const error = await getPromiseError(() =>
101
- service.sendTokens({
102
- amount: 1,
103
- fromAddress: TestFixtures.account1.address,
104
- toAddress: TestFixtures.account2.address,
105
- }),
106
- );
107
-
108
- expect(error.message).toBeDefined();
109
- });
110
- });
111
-
112
- afterAll(async () => {
113
- await unmockDockService();
114
- });
115
- });
116
- });
@@ -1,24 +0,0 @@
1
- import {RpcService} from '../rpc-service-client';
2
- import {
3
- GetAccountBalanceParams,
4
- serviceName,
5
- TransactionParams,
6
- } from './configs';
7
-
8
- export class SubstrateServiceRpc extends RpcService {
9
- constructor() {
10
- super(serviceName);
11
- }
12
-
13
- getAccountBalance(params: GetAccountBalanceParams): Promise<any> {
14
- return this.call('getAccountBalance', params);
15
- }
16
-
17
- getFeeAmount(params: TransactionParams): Promise<any> {
18
- return this.call('getFeeAmount', params);
19
- }
20
-
21
- sendTokens(params: TransactionParams): Promise<any> {
22
- return this.call('sendTokens', params);
23
- }
24
- }
@@ -1,117 +0,0 @@
1
- // @ts-nocheck
2
- import assert from 'assert';
3
- import BigNumber from 'bignumber.js';
4
- import BN from 'bn.js';
5
- import {DOCK_TOKEN_UNIT, getPlainDockAmount} from '../../core/format-utils';
6
- import {blockchainService} from '../blockchain/service';
7
- import {signAndSend} from './api-utils';
8
- import {
9
- GetAccountBalanceParams,
10
- serviceName,
11
- TransactionParams,
12
- validation,
13
- } from './configs';
14
- import {keyringService} from '../keyring/service';
15
-
16
- export const FEE_ESTIMATION_BUFFER = 1.1;
17
-
18
- export function getFeeWithBuffer(paymentFee: BigNumber) {
19
- assert(!!paymentFee, 'paymentFee is required');
20
-
21
- return new BigNumber(paymentFee).multipliedBy(FEE_ESTIMATION_BUFFER);
22
- }
23
-
24
- export class SubstrateService {
25
- rpcMethods = [
26
- SubstrateService.prototype.getAccountBalance,
27
- SubstrateService.prototype.getFeeAmount,
28
- SubstrateService.prototype.sendTokens,
29
- ];
30
-
31
- constructor() {
32
- this.name = serviceName;
33
- }
34
-
35
- async getAccountBalance(params: GetAccountBalanceParams) {
36
- validation.getAccountBalance(params);
37
-
38
- console.log('ensure dock ready');
39
- await blockchainService.ensureBlockchainReady();
40
-
41
- console.log('ensure dock ready done');
42
-
43
- const {
44
- data: {free},
45
- } = await blockchainService.dock.api.query.system.account(params.address);
46
-
47
- return free.toNumber() / DOCK_TOKEN_UNIT;
48
- }
49
-
50
- async getFeeAmount(params: TransactionParams) {
51
- validation.getFeeAmount(params);
52
-
53
- const {toAddress, keyPair} = params;
54
- const amount = getPlainDockAmount(params.amount).toNumber();
55
-
56
- const account = keyringService.decryptKeyPair({
57
- jsonData: keyPair,
58
- password: '',
59
- });
60
-
61
- blockchainService.dock.setAccount(account);
62
-
63
- const extrinsic = blockchainService.dock.api.tx.balances.transfer(
64
- toAddress,
65
- amount,
66
- );
67
- const paymentInfo = await extrinsic.paymentInfo(account);
68
- const fee = getFeeWithBuffer(paymentInfo.partialFee)
69
- .dividedBy(DOCK_TOKEN_UNIT)
70
- .toNumber();
71
-
72
- return fee;
73
- }
74
-
75
- async sendTokens(params: TransactionParams) {
76
- validation.sendTokens(params);
77
-
78
- let {toAddress, fromAddress, keyPair} = params;
79
- let amount = getPlainDockAmount(params.amount).toNumber();
80
- const account = keyringService.decryptKeyPair({
81
- jsonData: keyPair,
82
- password: '',
83
- });
84
- const {dock} = blockchainService;
85
-
86
- dock.setAccount(account);
87
-
88
- if (params.transferAll) {
89
- const api = dock.api;
90
- const balances = await api.derive.balances.all(account.address);
91
-
92
- await api.tx.balances
93
- .transfer(fromAddress, balances.availableBalance)
94
- .paymentInfo(account)
95
- .then(async ({partialFee}): void => {
96
- const adjFee = getFeeWithBuffer(partialFee);
97
- let maxTransfer = balances.availableBalance.sub(
98
- new BN(adjFee.toNumber()),
99
- );
100
-
101
- if (!maxTransfer.gt(api.consts.balances.existentialDeposit)) {
102
- throw new Error('balance too low');
103
- }
104
-
105
- amount = maxTransfer;
106
- });
107
- }
108
-
109
- return new Promise((resolve, reject) => {
110
- const extrinsic = dock.api.tx.balances.transfer(toAddress, amount);
111
-
112
- signAndSend(account, extrinsic).on('done', resolve).on('error', reject);
113
- });
114
- }
115
- }
116
-
117
- export const substrateService: SubstrateService = new SubstrateService();
@@ -1,14 +0,0 @@
1
- // @ts-nocheck
2
- import assert from 'assert';
3
-
4
- export const serviceName = 'trust-registry';
5
- export const validation = {
6
- getTrustRegistries: params => {
7
- const {schemaId, issuerDID, verifierDID} = params;
8
- assert(!!schemaId || !!issuerDID || !!verifierDID, 'no query option provider');
9
- },
10
- getTrustRegistryVerifiers: params => {
11
- const {trustRegistryId} = params;
12
- assert(!!trustRegistryId, 'trustRegistryId is required');
13
- },
14
- };
@@ -1,3 +0,0 @@
1
- import {TrustRegistryServiceRpc} from './service-rpc';
2
-
3
- export const trustRegistryService = new TrustRegistryServiceRpc();
@@ -1,3 +0,0 @@
1
- import {TrustRegistryServiceRpc} from './service-rpc';
2
-
3
- export const trustRegistryService = new TrustRegistryServiceRpc();
@@ -1 +0,0 @@
1
- export {trustRegistryService} from './service';
@@ -1,67 +0,0 @@
1
- import {blockchainService} from '../blockchain/service';
2
-
3
- import {trustRegistryService as service} from './service';
4
- import {
5
- TEST_SCHEMA_METADATA,
6
- TEST_TRUST_REGISTRIES,
7
- mockDockService,
8
- } from '../test-utils';
9
-
10
- describe('TrustRegistryService', () => {
11
- let unmockDockService;
12
-
13
- beforeAll(async () => {
14
- unmockDockService = await mockDockService();
15
- });
16
-
17
- it('should successfully fetch trust registries', async () => {
18
- const params = {
19
- schemaId: 'some-schema-id',
20
- issuerDID: 'did:key:z6MkhN7PBjWgSMQ24Bebdpvvw8fVRv7m6MHDqiwTKozzBgrJ',
21
- verifierDID: 'did:key:z6MkhN7PBjWgSMQ24Bebdpvvw8fVRv7m6MHDqiwTKozzBgrJ',
22
- };
23
- const result = await service.getTrustRegistries(params);
24
-
25
- const queryObject =
26
- blockchainService.dock.trustRegistry.registriesInfo.mock.calls[0][0];
27
- expect(queryObject.issuers.AnyOf).toHaveLength(1);
28
- expect(queryObject.verifiers.AnyOf).toHaveLength(1);
29
- expect(queryObject.schemaIds.AnyOf[0]).toEqual(
30
- '0x719455878946440f05937aba69d20a84ef32a2e254a03be324d72bf81d37d19b',
31
- );
32
- expect(result).toEqual(TEST_TRUST_REGISTRIES);
33
- });
34
-
35
- it('should successfully fetch trust registry verifiers', async () => {
36
- const trustRegistryId =
37
- '0xc255301bad77eab2a86760a80dfac734d85f1378b95671b169e3a519aa7eadd2';
38
- const params = {
39
- schemaId: 'some-schema-id',
40
- issuerDID: 'did:key:z6MkhN7PBjWgSMQ24Bebdpvvw8fVRv7m6MHDqiwTKozzBgrJ',
41
- trustRegistryId,
42
- };
43
- const result = await service.getTrustRegistryVerifiers(params);
44
- const queryObject =
45
- blockchainService.dock.trustRegistry.registrySchemasMetadata.mock
46
- .calls[0][0];
47
-
48
- expect(
49
- blockchainService.dock.trustRegistry.registrySchemasMetadata.mock
50
- .calls[0][1],
51
- ).toEqual(trustRegistryId);
52
- expect(queryObject.issuers.AnyOf).toHaveLength(1);
53
- expect(queryObject.schemaIds[0]).toEqual(
54
- '0x719455878946440f05937aba69d20a84ef32a2e254a03be324d72bf81d37d19b',
55
- );
56
-
57
- expect(result).toEqual(
58
- TEST_SCHEMA_METADATA[
59
- '0x719455878946440f05937aba69d20a84ef32a2e254a03be324d72bf81d37d19b'
60
- ].verifiers,
61
- );
62
- });
63
-
64
- afterAll(async () => {
65
- await unmockDockService();
66
- });
67
- });
@@ -1,15 +0,0 @@
1
- import {RpcService} from '../rpc-service-client';
2
- import {serviceName} from './configs';
3
-
4
- export class TrustRegistryServiceRpc extends RpcService {
5
- constructor() {
6
- super(serviceName);
7
- }
8
-
9
- async getTrustRegistries(params) {
10
- return this.call('getTrustRegistries', params);
11
- }
12
- async getTrustRegistryVerifiers(params) {
13
- return this.call('getTrustRegistryVerifiers', params);
14
- }
15
- }
@@ -1,94 +0,0 @@
1
- // @ts-nocheck
2
- import {serviceName} from './configs';
3
- import {createHash} from 'crypto';
4
- import {blockchainService} from '../blockchain/service';
5
- import {validation} from './configs';
6
-
7
-
8
- // TODO: Implement this function when the Trust Registry support is added to the SDK
9
- function typedHexDID(resolver, issuerDID) {
10
- return issuerDID;
11
- }
12
-
13
- // Trust Registry Service is not supported in the current version of the SDK
14
- class TrustRegistryService {
15
- constructor() {
16
- this.name = serviceName;
17
- }
18
- rpcMethods = [
19
- TrustRegistryService.prototype.getTrustRegistries,
20
- TrustRegistryService.prototype.getTrustRegistryVerifiers,
21
- ];
22
-
23
- async getTrustRegistries({
24
- schemaId,
25
- issuerDID,
26
- verifierDID,
27
- }: {
28
- schemaId?: string;
29
- issuerDID?: string;
30
- verifierDID?: string;
31
- }) {
32
- validation.getTrustRegistries({schemaId, issuerDID, verifierDID});
33
- const queryOptions = {};
34
-
35
- if (schemaId) {
36
- const hashedId = createHash('sha256').update(schemaId).digest('hex');
37
- const schemaIdHex = '0x' + hashedId;
38
- queryOptions.schemaIds = {
39
- AnyOf: [schemaIdHex],
40
- };
41
- }
42
-
43
- if (issuerDID) {
44
- const issuerDIDMethodKey = typedHexDID(blockchainService.dock.api, issuerDID);
45
- queryOptions.issuers = {
46
- AnyOf: [issuerDIDMethodKey],
47
- };
48
- }
49
-
50
- if (verifierDID) {
51
- const verifierDIDMethodKey = typedHexDID(
52
- blockchainService.dock.api,
53
- verifierDID,
54
- );
55
- queryOptions.verifiers = {
56
- AnyOf: [verifierDIDMethodKey],
57
- };
58
- }
59
-
60
- const registryInfo = await blockchainService.dock.trustRegistry?.registriesInfo(
61
- queryOptions,
62
- );
63
-
64
- return registryInfo;
65
- }
66
-
67
- async getTrustRegistryVerifiers({schemaId, trustRegistryId, issuerDID}) {
68
- validation.getTrustRegistryVerifiers({schemaId, trustRegistryId});
69
-
70
- const hashedId = createHash('sha256').update(schemaId).digest('hex');
71
- const schemaIdHex = '0x' + hashedId;
72
-
73
- const issuerDIDMethodKey = issuerDID
74
- ? typedHexDID(blockchainService.dock.api, issuerDID)
75
- : null;
76
-
77
- const metadata =
78
- await blockchainService.dock.trustRegistry.registrySchemasMetadata(
79
- {
80
- schemaIds: [schemaIdHex],
81
- ...(issuerDIDMethodKey && {
82
- issuers: {
83
- AnyOf: [issuerDIDMethodKey],
84
- },
85
- }),
86
- },
87
- trustRegistryId,
88
- );
89
-
90
- return metadata[schemaIdHex]?.verifiers;
91
- }
92
- }
93
-
94
- export const trustRegistryService = new TrustRegistryService();
@@ -1,20 +0,0 @@
1
- import axios from 'axios';
2
- import MockAdapter from 'axios-mock-adapter';
3
- import successData from './fixtures/subscan-success.json';
4
- import paramsFailure from './fixtures/subscan-failure.json';
5
- import requestFailure from './fixtures/subscan-too-many-requests.json';
6
- import {SUBSCAN_TRANSFER_URL} from '../core/subscan';
7
-
8
- const mockAdapter = new MockAdapter(axios);
9
-
10
- export function mockSubscanSuccess() {
11
- mockAdapter.onPost(SUBSCAN_TRANSFER_URL).replyOnce(200, successData);
12
- }
13
-
14
- export function mockSubscanParamsFailure() {
15
- mockAdapter.onPost(SUBSCAN_TRANSFER_URL).replyOnce(200, paramsFailure);
16
- }
17
-
18
- export function mockSubscanRequestFailure() {
19
- mockAdapter.onPost(SUBSCAN_TRANSFER_URL).replyOnce(429, requestFailure);
20
- }
@@ -1,5 +0,0 @@
1
- {
2
- "code": 10001,
3
- "message": "Params Error",
4
- "generated_at": 1643066008
5
- }