@docknetwork/wallet-sdk-wasm 0.4.22 → 1.5.0

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 (193) hide show
  1. package/lib/{account-614e6414.js → account-bf00e5c0.js} +5 -5
  2. package/lib/{account-ee524484.js → account-e48dc9b6.js} +5 -5
  3. package/lib/core/polkadot-utils.js +18 -4
  4. package/lib/core/polkadot-utils.mjs +15 -2
  5. package/lib/index.js +16 -19
  6. package/lib/index.mjs +20 -23
  7. package/lib/modules/account.js +10 -5
  8. package/lib/modules/account.mjs +10 -5
  9. package/lib/modules/accounts.js +10 -5
  10. package/lib/modules/accounts.mjs +10 -5
  11. package/lib/modules/network-manager.js +4 -2
  12. package/lib/modules/network-manager.mjs +4 -2
  13. package/lib/modules/wallet.js +13 -8
  14. package/lib/modules/wallet.mjs +13 -8
  15. package/lib/rpc-server.js +16 -19
  16. package/lib/rpc-server.mjs +20 -23
  17. package/lib/services/blockchain/configs.js +7 -0
  18. package/lib/services/blockchain/configs.mjs +3 -0
  19. package/lib/services/{dock → blockchain}/index.android.js +3 -4
  20. package/lib/services/{dock → blockchain}/index.android.mjs +3 -4
  21. package/lib/services/{dock → blockchain}/index.ios.js +3 -4
  22. package/lib/services/{dock → blockchain}/index.ios.mjs +3 -4
  23. package/lib/services/blockchain/index.js +30 -0
  24. package/lib/services/blockchain/index.mjs +22 -0
  25. package/lib/services/{dock → blockchain}/service-rpc.js +5 -7
  26. package/lib/services/{dock → blockchain}/service-rpc.mjs +5 -7
  27. package/lib/services/blockchain/service.js +212 -0
  28. package/lib/services/blockchain/service.mjs +206 -0
  29. package/lib/services/credential/bbs-revocation.js +41 -60
  30. package/lib/services/credential/bbs-revocation.mjs +42 -57
  31. package/lib/services/credential/bound-check.js +0 -8
  32. package/lib/services/credential/bound-check.mjs +1 -5
  33. package/lib/services/credential/index.js +21 -24
  34. package/lib/services/credential/index.mjs +22 -25
  35. package/lib/services/credential/pex-helpers.js +134 -34
  36. package/lib/services/credential/pex-helpers.mjs +133 -35
  37. package/lib/services/credential/service.js +55 -56
  38. package/lib/services/credential/service.mjs +45 -43
  39. package/lib/services/credential/utils.js +12 -18
  40. package/lib/services/credential/utils.mjs +11 -14
  41. package/lib/services/dids/config.js +8 -0
  42. package/lib/services/dids/config.mjs +8 -0
  43. package/lib/services/dids/index.js +11 -10
  44. package/lib/services/dids/index.mjs +12 -11
  45. package/lib/services/dids/service-rpc.js +2 -2
  46. package/lib/services/dids/service-rpc.mjs +2 -2
  47. package/lib/services/dids/service.js +28 -36
  48. package/lib/services/dids/service.mjs +27 -33
  49. package/lib/services/edv/hmac.js +5 -0
  50. package/lib/services/edv/hmac.mjs +5 -0
  51. package/lib/services/edv/index.js +13 -11
  52. package/lib/services/edv/index.mjs +16 -14
  53. package/lib/services/edv/service-rpc.js +4 -0
  54. package/lib/services/edv/service-rpc.mjs +4 -0
  55. package/lib/services/edv/service.js +29 -13
  56. package/lib/services/edv/service.mjs +31 -16
  57. package/lib/services/example/service.js +3 -1
  58. package/lib/services/example/service.mjs +3 -1
  59. package/lib/services/index.js +14 -17
  60. package/lib/services/index.mjs +18 -21
  61. package/lib/services/keyring/configs.js +12 -0
  62. package/lib/services/keyring/configs.mjs +12 -0
  63. package/lib/services/keyring/service.js +5 -0
  64. package/lib/services/keyring/service.mjs +5 -0
  65. package/lib/services/pex/service.js +17 -15
  66. package/lib/services/pex/service.mjs +17 -15
  67. package/lib/services/relay-service/index.mjs +1 -1
  68. package/lib/services/relay-service/service.mjs +2 -2
  69. package/lib/services/substrate/api-utils.js +19 -6
  70. package/lib/services/substrate/api-utils.mjs +19 -6
  71. package/lib/services/substrate/index.js +14 -6
  72. package/lib/services/substrate/index.mjs +14 -6
  73. package/lib/services/substrate/service.js +17 -9
  74. package/lib/services/substrate/service.mjs +17 -9
  75. package/lib/services/test-utils.js +27 -17
  76. package/lib/services/test-utils.mjs +27 -17
  77. package/lib/services/trust-registry/index.js +17 -5
  78. package/lib/services/trust-registry/index.mjs +17 -5
  79. package/lib/services/trust-registry/service.js +27 -10
  80. package/lib/services/trust-registry/service.mjs +27 -10
  81. package/lib/services/util-crypto/configs.js +3 -0
  82. package/lib/services/util-crypto/configs.mjs +3 -0
  83. package/lib/services/util-crypto/service-rpc.js +6 -0
  84. package/lib/services/util-crypto/service-rpc.mjs +6 -0
  85. package/lib/services/util-crypto/service.js +5 -0
  86. package/lib/services/util-crypto/service.mjs +6 -1
  87. package/lib/setup-nodejs.js +16 -19
  88. package/lib/setup-nodejs.mjs +20 -23
  89. package/lib/setup-tests.js +16 -19
  90. package/lib/setup-tests.mjs +20 -23
  91. package/lib/src/core/polkadot-utils.d.ts +1 -0
  92. package/lib/src/core/polkadot-utils.d.ts.map +1 -1
  93. package/lib/src/modules/network-manager.d.ts +1 -0
  94. package/lib/src/modules/network-manager.d.ts.map +1 -1
  95. package/lib/src/services/blockchain/configs.d.ts +8 -0
  96. package/lib/src/services/blockchain/configs.d.ts.map +1 -0
  97. package/lib/src/services/blockchain/index.d.ts +2 -0
  98. package/lib/src/services/blockchain/index.d.ts.map +1 -0
  99. package/lib/src/services/blockchain/service.d.ts +52 -0
  100. package/lib/src/services/blockchain/service.d.ts.map +1 -0
  101. package/lib/src/services/credential/bbs-revocation.d.ts.map +1 -1
  102. package/lib/src/services/credential/bound-check.d.ts +0 -4
  103. package/lib/src/services/credential/bound-check.d.ts.map +1 -1
  104. package/lib/src/services/credential/index.d.ts +2 -7
  105. package/lib/src/services/credential/index.d.ts.map +1 -1
  106. package/lib/src/services/credential/pex-helpers.d.ts +5 -3
  107. package/lib/src/services/credential/pex-helpers.d.ts.map +1 -1
  108. package/lib/src/services/credential/service.d.ts +2 -7
  109. package/lib/src/services/credential/service.d.ts.map +1 -1
  110. package/lib/src/services/credential/utils.d.ts.map +1 -1
  111. package/lib/src/services/dids/config.d.ts +5 -0
  112. package/lib/src/services/dids/config.d.ts.map +1 -1
  113. package/lib/src/services/dids/service-rpc.d.ts +1 -1
  114. package/lib/src/services/dids/service-rpc.d.ts.map +1 -1
  115. package/lib/src/services/dids/service.d.ts +9 -4
  116. package/lib/src/services/dids/service.d.ts.map +1 -1
  117. package/lib/src/services/edv/hmac.d.ts +1 -0
  118. package/lib/src/services/edv/hmac.d.ts.map +1 -1
  119. package/lib/src/services/edv/service.d.ts +5 -0
  120. package/lib/src/services/edv/service.d.ts.map +1 -1
  121. package/lib/src/services/example/service.d.ts.map +1 -1
  122. package/lib/src/services/keyring/configs.d.ts +6 -0
  123. package/lib/src/services/keyring/configs.d.ts.map +1 -1
  124. package/lib/src/services/pex/service.d.ts.map +1 -1
  125. package/lib/src/services/trust-registry/service.d.ts.map +1 -1
  126. package/lib/src/services/util-crypto/configs.d.ts +1 -0
  127. package/lib/src/services/util-crypto/configs.d.ts.map +1 -1
  128. package/lib/src/services/util-crypto/service.d.ts +1 -0
  129. package/lib/src/services/util-crypto/service.d.ts.map +1 -1
  130. package/lib/test/setup-test-state.js +11 -6
  131. package/lib/test/setup-test-state.mjs +11 -6
  132. package/lib/tsconfig.tsbuildinfo +1 -1
  133. package/package.json +7 -4
  134. package/src/core/polkadot-utils.js +14 -3
  135. package/src/modules/network-manager.ts +5 -2
  136. package/src/modules/wallet.ts +5 -5
  137. package/src/services/blockchain/configs.ts +11 -0
  138. package/src/services/blockchain/index.android.js +3 -0
  139. package/src/services/blockchain/index.ios.js +3 -0
  140. package/src/services/blockchain/index.js +1 -0
  141. package/src/services/blockchain/index.test.js +34 -0
  142. package/src/services/{dock → blockchain}/service-rpc.js +5 -6
  143. package/src/services/blockchain/service.ts +261 -0
  144. package/src/services/credential/bbs-revocation.ts +41 -85
  145. package/src/services/credential/bound-check.test.ts +2 -5
  146. package/src/services/credential/bound-check.ts +0 -5
  147. package/src/services/credential/index.test.js +148 -7
  148. package/src/services/credential/pex-helpers.js +132 -34
  149. package/src/services/credential/pex-helpers.test.js +284 -27
  150. package/src/services/credential/service.ts +44 -27
  151. package/src/services/credential/utils.js +5 -14
  152. package/src/services/dids/config.ts +15 -0
  153. package/src/services/dids/index.test.js +5 -23
  154. package/src/services/dids/service-rpc.ts +2 -2
  155. package/src/services/dids/service.ts +34 -44
  156. package/src/services/edv/hmac.ts +13 -0
  157. package/src/services/edv/index.test.js +22 -0
  158. package/src/services/edv/service-rpc.js +4 -0
  159. package/src/services/edv/service.ts +22 -0
  160. package/src/services/example/service.ts +3 -1
  161. package/src/services/index.js +2 -2
  162. package/src/services/keyring/configs.ts +21 -0
  163. package/src/services/keyring/service.ts +13 -0
  164. package/src/services/pex/service.ts +29 -18
  165. package/src/services/pex/tests/pex-service.test.js +163 -6
  166. package/src/services/substrate/api-utils.test.js +7 -7
  167. package/src/services/substrate/api-utils.ts +3 -3
  168. package/src/services/substrate/service.ts +6 -6
  169. package/src/services/test-utils.js +13 -11
  170. package/src/services/trust-registry/index.test.js +6 -4
  171. package/src/services/trust-registry/service.ts +13 -7
  172. package/src/services/util-crypto/configs.ts +4 -0
  173. package/src/services/util-crypto/service-rpc.js +6 -0
  174. package/src/services/util-crypto/service.ts +8 -0
  175. package/src/test/setup-test-state.js +2 -2
  176. package/lib/services/dock/configs.js +0 -18
  177. package/lib/services/dock/configs.mjs +0 -10
  178. package/lib/services/dock/index.js +0 -17
  179. package/lib/services/dock/index.mjs +0 -9
  180. package/lib/services/dock/service.js +0 -138
  181. package/lib/services/dock/service.mjs +0 -126
  182. package/lib/src/services/dock/configs.d.ts +0 -7
  183. package/lib/src/services/dock/configs.d.ts.map +0 -1
  184. package/lib/src/services/dock/index.d.ts +0 -2
  185. package/lib/src/services/dock/index.d.ts.map +0 -1
  186. package/lib/src/services/dock/service.d.ts +0 -44
  187. package/lib/src/services/dock/service.d.ts.map +0 -1
  188. package/src/services/dock/configs.ts +0 -12
  189. package/src/services/dock/index.android.js +0 -3
  190. package/src/services/dock/index.ios.js +0 -3
  191. package/src/services/dock/index.js +0 -1
  192. package/src/services/dock/index.test.js +0 -48
  193. package/src/services/dock/service.ts +0 -154
@@ -371,6 +371,114 @@ describe('Pex Examples', () => {
371
371
  expect(results.verifiableCredential).toBeTruthy();
372
372
  });
373
373
 
374
+ it('should handle DID format filter', () => {
375
+ const presentationDefinition = {
376
+ id: 'df3d2615-7955-4f9d-b2df-ef5c6202bdaf',
377
+ input_descriptors: [
378
+ {
379
+ id: 'Credential 1',
380
+ name: 'Validate Test Credential',
381
+ purpose: 'verify Test credential',
382
+ constraints: {
383
+ fields: [
384
+ {
385
+ path: [
386
+ '$.issuer.id',
387
+ '$.issuer',
388
+ '$.vc.issuer.id',
389
+ '$.vc.issuer',
390
+ '$.iss',
391
+ ],
392
+ filter: {
393
+ const:
394
+ 'did:dock:5HPb8aoNXNQv5XxbupZRorHyc7CdBUYWFFxeczHxqVgeGPjT',
395
+ format: 'did',
396
+ },
397
+ optional: false,
398
+ predicate: 'required',
399
+ },
400
+ ],
401
+ },
402
+ },
403
+ ],
404
+ };
405
+
406
+ const credentials = [
407
+ {
408
+ '@context': [
409
+ 'https://www.w3.org/2018/credentials/v1',
410
+ 'https://ld.dock.io/credentials/extensions-v1',
411
+ 'https://ld.dock.io/security/bbs23/v1',
412
+ {
413
+ age: 'dk:age',
414
+ dk: 'https://ld.dock.io/credentials#',
415
+ grade: 'dk:grade',
416
+ graduated: 'dk:graduated',
417
+ },
418
+ ],
419
+ credentialStatus: {
420
+ id: 'dock:accumulator:0xfa7403ff3a3f3546a1fe443bf08a094492e08fa8c358c8abdda334598f68b52c',
421
+ type: 'DockVBAccumulator2022',
422
+ revocationCheck: 'membership',
423
+ revocationId: '17',
424
+ },
425
+ id: 'https://creds-testnet.dock.io/74c3a74fbad2fea4f7bb991092165a29de9fc7fb556ee71074755f7804bfaf0e',
426
+ type: ['VerifiableCredential', 'UniversityDegree'],
427
+ credentialSubject: {
428
+ graduated: true,
429
+ grade: 12,
430
+ age: 31,
431
+ },
432
+ issuanceDate: '2024-11-29T11:39:01.959Z',
433
+ issuer: {
434
+ name: 'Test',
435
+ description: ' ',
436
+ logo: 'https://img.dock.io/b1026229cdb6a2fbd59605ba7228db0a',
437
+ id: 'did:dock:5HPb8aoNXNQv5XxbupZRorHyc7CdBUYWFFxeczHxqVgeGPjT',
438
+ },
439
+ credentialSchema: {
440
+ id: 'https://schema.dock.io/Test-V2-1731009346611.json',
441
+ type: 'JsonSchemaValidator2018',
442
+ details:
443
+ '{"jsonSchema":{"$id":"https://schema.dock.io/Test-V2-1731009346611.json","$schema":"http://json-schema.org/draft-07/schema#","additionalProperties":true,"description":"","name":"test University Degree","properties":{"@context":{"type":"string"},"credentialSchema":{"properties":{"details":{"type":"string"},"id":{"type":"string"},"type":{"type":"string"},"version":{"type":"string"}},"type":"object"},"credentialStatus":{"properties":{"id":{"type":"string"},"revocationCheck":{"type":"string"},"revocationId":{"type":"string"},"type":{"type":"string"}},"type":"object"},"credentialSubject":{"properties":{"age":{"description":"","title":"Age","type":"number"},"grade":{"title":"Grade","type":"number"},"graduated":{"default":false,"title":"Graduated","type":"boolean"}},"required":["graduated","age"],"type":"object"},"cryptoVersion":{"type":"string"},"id":{"type":"string"},"issuanceDate":{"format":"date-time","type":"string"},"issuer":{"properties":{"description":{"type":"string"},"id":{"type":"string"},"logo":{"type":"string"},"name":{"type":"string"}},"type":"object"},"name":{"type":"string"},"proof":{"properties":{"@context":{"items":[{"properties":{"proof":{"properties":{"@container":{"type":"string"},"@id":{"type":"string"},"@type":{"type":"string"}},"type":"object"},"sec":{"type":"string"}},"type":"object"},{"type":"string"}],"type":"array"},"created":{"format":"date-time","type":"string"},"proofPurpose":{"type":"string"},"type":{"type":"string"},"verificationMethod":{"type":"string"}},"type":"object"},"type":{"type":"string"}},"type":"object"},"parsingOptions":{"defaultDecimalPlaces":4,"defaultMinimumDate":-17592186044415,"defaultMinimumInteger":-4294967295,"useDefaults":true}}',
444
+ version: '0.4.0',
445
+ },
446
+ name: 'Test University Degree',
447
+ cryptoVersion: '0.6.0',
448
+ proof: {
449
+ '@context': [
450
+ {
451
+ sec: 'https://w3id.org/security#',
452
+ proof: {
453
+ '@id': 'sec:proof',
454
+ '@type': '@id',
455
+ '@container': '@graph',
456
+ },
457
+ },
458
+ 'https://ld.dock.io/security/bbs23/v1',
459
+ ],
460
+ type: 'Bls12381BBSSignatureDock2023',
461
+ created: '2024-11-29T11:39:15Z',
462
+ verificationMethod:
463
+ 'did:dock:5HPb8aoNXNQv5XxbupZRorHyc7CdBUYWFFxeczHxqVgeGPjT#keys-2',
464
+ proofPurpose: 'assertionMethod',
465
+ proofValue:
466
+ 'z2e9knFyNq7RPasmUbAASyQ5uALQHHdQsVTXQuLvQTRao6RNbkcyjTcAVBVpMTAZvdm2rW8qZFTCr8ATA1HMuAbZGJD2EM9gtyPFzXHfRUssKuo',
467
+ },
468
+ $$accum__witness$$:
469
+ '{"blockNo":9950875,"witness":"0x975eb3fa6bb302f0679103f187aa6cdb6732739eda6b0254b9a37573a684a5a1c27230f9b1a7a9b472db547b5a180ac7"}',
470
+ },
471
+ ];
472
+
473
+ const results = pexService.filterCredentials({
474
+ credentials,
475
+ presentationDefinition,
476
+ });
477
+
478
+ expect(results.verifiableCredential).toBeTruthy();
479
+ expect(results.verifiableCredential.length).toBe(1);
480
+ });
481
+
374
482
  describe('removeOptionalAttribute', () => {
375
483
  const getFieldsWithOptionalAttributes = template => {
376
484
  return template.input_descriptors[0].constraints.fields.filter(
@@ -410,8 +518,12 @@ describe('Pex Examples', () => {
410
518
  let result = removeOptionalAttribute(template);
411
519
  expect(getFieldsWithOptionalAttributes(result)).toBe(0);
412
520
  expect(result.input_descriptors[0].constraints.fields.length).toBe(1);
521
+ expect(result).not.toBe(template); // Ensure immutability
522
+ expect(template.input_descriptors[0].constraints.fields.length).toBe(2); // Original remains unchanged
523
+ });
413
524
 
414
- template = {
525
+ it('should handle fields with unsupported formats', () => {
526
+ let template = {
415
527
  id: 'income_test',
416
528
  input_descriptors: [
417
529
  {
@@ -422,6 +534,9 @@ describe('Pex Examples', () => {
422
534
  fields: [
423
535
  {
424
536
  path: ['$.credentialSubject.id'],
537
+ filter: {
538
+ format: 'did',
539
+ },
425
540
  },
426
541
  {
427
542
  path: ['$.type[*]'],
@@ -438,11 +553,17 @@ describe('Pex Examples', () => {
438
553
 
439
554
  expect(getFieldsWithOptionalAttributes(template)).toBe(1);
440
555
 
441
- result = removeOptionalAttribute(template);
556
+ let result = removeOptionalAttribute(template);
442
557
  expect(getFieldsWithOptionalAttributes(result)).toBe(0);
443
558
  expect(result.input_descriptors[0].constraints.fields.length).toBe(1);
559
+ expect(
560
+ result.input_descriptors[0].constraints.fields[0].filter?.format,
561
+ ).toBeUndefined();
562
+ expect(result).not.toBe(template); // Ensure immutability
563
+ });
444
564
 
445
- template = {
565
+ it('should handle templates with no optional attributes', () => {
566
+ let template = {
446
567
  id: 'income_test',
447
568
  input_descriptors: [
448
569
  {
@@ -461,11 +582,16 @@ describe('Pex Examples', () => {
461
582
  };
462
583
 
463
584
  expect(getFieldsWithOptionalAttributes(template)).toBe(0);
464
- result = removeOptionalAttribute(template);
585
+
586
+ let result = removeOptionalAttribute(template);
465
587
  expect(getFieldsWithOptionalAttributes(result)).toBe(0);
466
588
  expect(result.input_descriptors[0].constraints.fields.length).toBe(1);
589
+ // Ensure immutability
590
+ expect(result).not.toBe(template);
591
+ });
467
592
 
468
- template = {
593
+ it('should handle templates where all fields are optional', () => {
594
+ let template = {
469
595
  id: 'income_test',
470
596
  input_descriptors: [
471
597
  {
@@ -485,9 +611,40 @@ describe('Pex Examples', () => {
485
611
  };
486
612
 
487
613
  expect(getFieldsWithOptionalAttributes(template)).toBe(1);
488
- result = removeOptionalAttribute(template);
614
+
615
+ let result = removeOptionalAttribute(template);
489
616
  expect(getFieldsWithOptionalAttributes(result)).toBe(0);
490
617
  expect(result.input_descriptors[0].constraints.fields.length).toBe(1);
618
+ expect(result.input_descriptors[0].constraints.fields[0].path).toEqual([
619
+ '$.id',
620
+ ]);
621
+ expect(result).not.toBe(template); // Ensure immutability
622
+ });
623
+
624
+ it('should add a placeholder field if all fields are removed', () => {
625
+ let template = {
626
+ id: 'income_test',
627
+ input_descriptors: [
628
+ {
629
+ id: 'Credential 1',
630
+ constraints: {
631
+ fields: [
632
+ {
633
+ path: ['$.type[*]'],
634
+ optional: true,
635
+ },
636
+ ],
637
+ },
638
+ },
639
+ ],
640
+ };
641
+
642
+ let result = removeOptionalAttribute(template);
643
+ expect(result.input_descriptors[0].constraints.fields.length).toBe(1);
644
+ expect(result.input_descriptors[0].constraints.fields[0].path).toEqual([
645
+ '$.id',
646
+ ]);
647
+ expect(result).not.toBe(template); // Ensure immutability
491
648
  });
492
649
  });
493
650
  });
@@ -1,7 +1,7 @@
1
1
  import {DOCK_TOKEN_UNIT} from '../../core/format-utils';
2
2
  import {TestFixtures} from '../../fixtures';
3
3
  import {once} from '../../modules/event-manager';
4
- import {dockService} from '../dock/service';
4
+ import {blockchainService} from '../blockchain/service';
5
5
  import {mockDockService, setMockTransactionError} from '../test-utils';
6
6
  import {signAndSend} from './api-utils';
7
7
  import {substrateService} from './service';
@@ -16,8 +16,8 @@ describe('ApiUtils', () => {
16
16
  describe('signAndSend', () => {
17
17
  it('expect to send tokens', async () => {
18
18
  const account = TestFixtures.account1.getKeyring();
19
- dockService.dock.setAccount(account);
20
- const extrinsic = dockService.dock.api.tx.balances.transfer(
19
+ blockchainService.dock.setAccount(account);
20
+ const extrinsic = blockchainService.dock.api.tx.balances.transfer(
21
21
  TestFixtures.account2.address,
22
22
  1,
23
23
  );
@@ -32,8 +32,8 @@ describe('ApiUtils', () => {
32
32
 
33
33
  it('expect to get error: Inability to pay fees', async () => {
34
34
  const account = TestFixtures.noBalanceAccount.getKeyring();
35
- dockService.dock.setAccount(account);
36
- const extrinsic = dockService.dock.api.tx.balances.transfer(
35
+ blockchainService.dock.setAccount(account);
36
+ const extrinsic = blockchainService.dock.api.tx.balances.transfer(
37
37
  TestFixtures.account2.address,
38
38
  1,
39
39
  );
@@ -49,11 +49,11 @@ describe('ApiUtils', () => {
49
49
 
50
50
  it('expect to get error: Not enough balance', async () => {
51
51
  const account = TestFixtures.account1.getKeyring();
52
- dockService.dock.setAccount(account);
52
+ blockchainService.dock.setAccount(account);
53
53
  const balance = await substrateService.getAccountBalance({
54
54
  address: TestFixtures.account1.address,
55
55
  });
56
- const extrinsic = dockService.dock.api.tx.balances.transfer(
56
+ const extrinsic = blockchainService.dock.api.tx.balances.transfer(
57
57
  TestFixtures.account2.address,
58
58
  balance * 2 * DOCK_TOKEN_UNIT,
59
59
  );
@@ -2,10 +2,10 @@
2
2
  import assert from 'assert';
3
3
  import {EventEmitter} from 'events';
4
4
  import {Logger} from '../../core/logger';
5
- import {dockService} from '../dock/service';
5
+ import {blockchainService} from '../blockchain/service';
6
6
 
7
7
  export const extrisicErrorsFilter = ({event}) => {
8
- return dockService.dock.api.events.system.ExtrinsicFailed.is(event);
8
+ return blockchainService.dock.api.events.system.ExtrinsicFailed.is(event);
9
9
  };
10
10
 
11
11
  export const mapEventToErrorMessage = ({event}) => {
@@ -16,7 +16,7 @@ export const mapEventToErrorMessage = ({event}) => {
16
16
 
17
17
  if (error.isModule) {
18
18
  // for module errors, we have the section indexed, lookup
19
- const decoded = dockService.dock.api.registry.findMetaError(error.asModule);
19
+ const decoded = blockchainService.dock.api.registry.findMetaError(error.asModule);
20
20
  const {docs, method, section} = decoded;
21
21
 
22
22
  return `${section}.${method}: ${docs.join(' ')}`;
@@ -3,7 +3,7 @@ import assert from 'assert';
3
3
  import BigNumber from 'bignumber.js';
4
4
  import BN from 'bn.js';
5
5
  import {DOCK_TOKEN_UNIT, getPlainDockAmount} from '../../core/format-utils';
6
- import {dockService} from '../dock/service';
6
+ import {blockchainService} from '../blockchain/service';
7
7
  import {signAndSend} from './api-utils';
8
8
  import {
9
9
  GetAccountBalanceParams,
@@ -36,13 +36,13 @@ export class SubstrateService {
36
36
  validation.getAccountBalance(params);
37
37
 
38
38
  console.log('ensure dock ready');
39
- await dockService.ensureDockReady();
39
+ await blockchainService.ensureBlockchainReady();
40
40
 
41
41
  console.log('ensure dock ready done');
42
42
 
43
43
  const {
44
44
  data: {free},
45
- } = await dockService.dock.api.query.system.account(params.address);
45
+ } = await blockchainService.dock.api.query.system.account(params.address);
46
46
 
47
47
  return free.toNumber() / DOCK_TOKEN_UNIT;
48
48
  }
@@ -58,9 +58,9 @@ export class SubstrateService {
58
58
  password: '',
59
59
  });
60
60
 
61
- dockService.dock.setAccount(account);
61
+ blockchainService.dock.setAccount(account);
62
62
 
63
- const extrinsic = dockService.dock.api.tx.balances.transfer(
63
+ const extrinsic = blockchainService.dock.api.tx.balances.transfer(
64
64
  toAddress,
65
65
  amount,
66
66
  );
@@ -81,7 +81,7 @@ export class SubstrateService {
81
81
  jsonData: keyPair,
82
82
  password: '',
83
83
  });
84
- const {dock} = dockService;
84
+ const {dock} = blockchainService;
85
85
 
86
86
  dock.setAccount(account);
87
87
 
@@ -4,11 +4,11 @@ import BigNumber from 'bignumber.js';
4
4
  import {DOCK_TOKEN_UNIT} from '../core/format-utils';
5
5
  import {TestFixtures} from '../fixtures';
6
6
  import {NetworkManager} from '../modules/network-manager';
7
- import {dockService, getDock, setDock} from './dock/service';
8
7
  import {keyringService} from './keyring';
9
8
  import {RpcService} from './rpc-service-client';
10
9
  import {walletService} from './wallet';
11
10
  import Keyring from '@polkadot/keyring';
11
+ import {blockchainService} from './blockchain/service';
12
12
 
13
13
  export async function initializeWalletService() {
14
14
  await cryptoWaitReady();
@@ -50,21 +50,21 @@ export async function mockDockService() {
50
50
  let sdkMock;
51
51
 
52
52
  if (API_MOCK_DISABLED) {
53
- return dockService.init({
53
+ return blockchainService.init({
54
54
  address: NetworkManager.getInstance().getNetworkInfo().substrateUrl,
55
55
  });
56
56
  } else {
57
57
  sdkMock = mockDockSdkConnection();
58
- await dockService.init({
58
+ await blockchainService.init({
59
59
  address: NetworkManager.getInstance().getNetworkInfo().substrateUrl,
60
60
  });
61
61
  }
62
62
 
63
- const _dockSdk = dockService.dock;
63
+ const _dockSdk = blockchainService.dock;
64
64
 
65
- dockService.isDockReady = true;
65
+ blockchainService.isDockReady = true;
66
66
 
67
- dockService.dock = {
67
+ blockchainService.dock = {
68
68
  api: {
69
69
  events: {
70
70
  system: {
@@ -125,11 +125,11 @@ export async function mockDockService() {
125
125
  };
126
126
 
127
127
  return () => {
128
- dockService.dock = _dockSdk;
128
+ blockchainService.dock = _dockSdk;
129
129
  if (sdkMock) {
130
130
  sdkMock.clear();
131
131
  }
132
- dockService.disconnect();
132
+ blockchainService.disconnect();
133
133
  };
134
134
  }
135
135
 
@@ -164,7 +164,7 @@ export async function setupTestWallet() {
164
164
 
165
165
  export function mockDockSdkConnection(connectionError) {
166
166
  const result = 'result';
167
- const dock = getDock();
167
+ const dock = blockchainService.dock;
168
168
  const mocks = [
169
169
  jest.spyOn(dock, 'init').mockImplementation(() => {
170
170
  if (connectionError) {
@@ -178,7 +178,7 @@ export function mockDockSdkConnection(connectionError) {
178
178
 
179
179
  let currentAccount;
180
180
 
181
- setDock({
181
+ blockchainService.dock = {
182
182
  ...dock,
183
183
  setAccount(account) {
184
184
  currentAccount = account;
@@ -229,7 +229,7 @@ export function mockDockSdkConnection(connectionError) {
229
229
  return kr.createFromUri('//Alice');
230
230
  }),
231
231
  },
232
- });
232
+ };
233
233
 
234
234
  return {
235
235
  result,
@@ -255,6 +255,8 @@ export function assertRpcService(
255
255
  const rpcService = new ServiceClass();
256
256
  const validationTmp = {};
257
257
 
258
+ assert(rpcService.serviceName === service.name, 'service name mismatch');
259
+
258
260
  Object.keys(validation).forEach(key => {
259
261
  validationTmp[key] = validation[key];
260
262
  validation[key] = () => true;
@@ -1,4 +1,4 @@
1
- import {dockService} from '../dock/service';
1
+ import {blockchainService} from '../blockchain/service';
2
2
 
3
3
  import {trustRegistryService as service} from './service';
4
4
  import {
@@ -23,7 +23,7 @@ describe('TrustRegistryService', () => {
23
23
  const result = await service.getTrustRegistries(params);
24
24
 
25
25
  const queryObject =
26
- dockService.dock.trustRegistry.registriesInfo.mock.calls[0][0];
26
+ blockchainService.dock.trustRegistry.registriesInfo.mock.calls[0][0];
27
27
  expect(queryObject.issuers.AnyOf).toHaveLength(1);
28
28
  expect(queryObject.verifiers.AnyOf).toHaveLength(1);
29
29
  expect(queryObject.schemaIds.AnyOf[0]).toEqual(
@@ -42,10 +42,12 @@ describe('TrustRegistryService', () => {
42
42
  };
43
43
  const result = await service.getTrustRegistryVerifiers(params);
44
44
  const queryObject =
45
- dockService.dock.trustRegistry.registrySchemasMetadata.mock.calls[0][0];
45
+ blockchainService.dock.trustRegistry.registrySchemasMetadata.mock
46
+ .calls[0][0];
46
47
 
47
48
  expect(
48
- dockService.dock.trustRegistry.registrySchemasMetadata.mock.calls[0][1],
49
+ blockchainService.dock.trustRegistry.registrySchemasMetadata.mock
50
+ .calls[0][1],
49
51
  ).toEqual(trustRegistryId);
50
52
  expect(queryObject.issuers.AnyOf).toHaveLength(1);
51
53
  expect(queryObject.schemaIds[0]).toEqual(
@@ -1,10 +1,16 @@
1
1
  // @ts-nocheck
2
2
  import {serviceName} from './configs';
3
- import {typedHexDID} from '@docknetwork/sdk/utils/did/typed-did/helpers';
4
3
  import {createHash} from 'crypto';
5
- import {dockService} from '../dock/service';
4
+ import {blockchainService} from '../blockchain/service';
6
5
  import {validation} from './configs';
7
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
8
14
  class TrustRegistryService {
9
15
  constructor() {
10
16
  this.name = serviceName;
@@ -35,7 +41,7 @@ class TrustRegistryService {
35
41
  }
36
42
 
37
43
  if (issuerDID) {
38
- const issuerDIDMethodKey = typedHexDID(dockService.dock.api, issuerDID);
44
+ const issuerDIDMethodKey = typedHexDID(blockchainService.dock.api, issuerDID);
39
45
  queryOptions.issuers = {
40
46
  AnyOf: [issuerDIDMethodKey],
41
47
  };
@@ -43,7 +49,7 @@ class TrustRegistryService {
43
49
 
44
50
  if (verifierDID) {
45
51
  const verifierDIDMethodKey = typedHexDID(
46
- dockService.dock.api,
52
+ blockchainService.dock.api,
47
53
  verifierDID,
48
54
  );
49
55
  queryOptions.verifiers = {
@@ -51,7 +57,7 @@ class TrustRegistryService {
51
57
  };
52
58
  }
53
59
 
54
- const registryInfo = await dockService.dock.trustRegistry?.registriesInfo(
60
+ const registryInfo = await blockchainService.dock.trustRegistry?.registriesInfo(
55
61
  queryOptions,
56
62
  );
57
63
 
@@ -65,11 +71,11 @@ class TrustRegistryService {
65
71
  const schemaIdHex = '0x' + hashedId;
66
72
 
67
73
  const issuerDIDMethodKey = issuerDID
68
- ? typedHexDID(dockService.dock.api, issuerDID)
74
+ ? typedHexDID(blockchainService.dock.api, issuerDID)
69
75
  : null;
70
76
 
71
77
  const metadata =
72
- await dockService.dock.trustRegistry.registrySchemasMetadata(
78
+ await blockchainService.dock.trustRegistry.registrySchemasMetadata(
73
79
  {
74
80
  schemaIds: [schemaIdHex],
75
81
  ...(issuerDIDMethodKey && {
@@ -17,6 +17,10 @@ export const validation = {
17
17
  }
18
18
  },
19
19
 
20
+ mnemonicToMiniSecret(phrase: string) {
21
+ assert(typeof phrase === 'string', 'invalid mnemonic phrase');
22
+ },
23
+
20
24
  mnemonicValidate(phrase: string) {
21
25
  assert(typeof phrase === 'string', 'invalid mnemonic phrase');
22
26
  },
@@ -12,6 +12,12 @@ export class UtilCryptoServiceRpc extends RpcService {
12
12
  return this.call('mnemonicGenerate', numWords);
13
13
  }
14
14
 
15
+ mnemonicToMiniSecret(phrase: string): Promise<any> {
16
+ validation.mnemonicToMiniSecret(phrase);
17
+
18
+ return this.call('mnemonicToMiniSecret', phrase);
19
+ }
20
+
15
21
  mnemonicValidate(phrase: string): Promise<any> {
16
22
  validation.mnemonicValidate(phrase);
17
23
 
@@ -6,6 +6,7 @@ import {
6
6
  cryptoWaitReady,
7
7
  keyExtractSuri,
8
8
  mnemonicGenerate,
9
+ mnemonicToMiniSecret,
9
10
  mnemonicValidate,
10
11
  } from '@polkadot/util-crypto';
11
12
  import assert from 'assert';
@@ -14,6 +15,7 @@ import {validation} from './configs';
14
15
  export class UtilCryptoService {
15
16
  rpcMethods = [
16
17
  UtilCryptoService.prototype.mnemonicGenerate,
18
+ UtilCryptoService.prototype.mnemonicToMiniSecret,
17
19
  UtilCryptoService.prototype.mnemonicValidate,
18
20
  UtilCryptoService.prototype.cryptoWaitReady,
19
21
  UtilCryptoService.prototype.cryptoIsReady,
@@ -33,6 +35,12 @@ export class UtilCryptoService {
33
35
  return mnemonicGenerate(numWords);
34
36
  }
35
37
 
38
+ mnemonicToMiniSecret(phrase) {
39
+ validation.mnemonicToMiniSecret(phrase);
40
+
41
+ return mnemonicToMiniSecret(phrase);
42
+ }
43
+
36
44
  isBase64(value) {
37
45
  if (typeof value !== 'string') {
38
46
  return false;
@@ -1,7 +1,7 @@
1
1
  import {TestFixtures} from '../fixtures';
2
2
  import {NetworkManager} from '../modules/network-manager';
3
3
  import {Wallet} from '../modules/wallet';
4
- import {dockService} from '../services/dock';
4
+ import {blockchainService} from '../services/blockchain';
5
5
  import {mockDockService} from '../services/test-utils';
6
6
  import promiseMemoize from 'promise-memoize';
7
7
  import {setStorage} from '../core/storage';
@@ -29,7 +29,7 @@ export const getTestWallet: Wallet = promiseMemoize(async () => {
29
29
  mnemonic: TestFixtures.noBalanceAccount.mnemonic,
30
30
  });
31
31
 
32
- await dockService.init({
32
+ await blockchainService.init({
33
33
  address: NetworkManager.getInstance().getNetworkInfo().substrateUrl,
34
34
  });
35
35
 
@@ -1,18 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- var assert = require('assert');
6
-
7
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
8
-
9
- var assert__default = /*#__PURE__*/_interopDefaultLegacy(assert);
10
-
11
- // @ts-nocheck
12
- const validation = {
13
- init(params) {
14
- assert__default["default"](!!params.address, `invalid substrate address ${params.address}`);
15
- },
16
- };
17
-
18
- exports.validation = validation;
@@ -1,10 +0,0 @@
1
- import assert from 'assert';
2
-
3
- // @ts-nocheck
4
- const validation = {
5
- init(params) {
6
- assert(!!params.address, `invalid substrate address ${params.address}`);
7
- },
8
- };
9
-
10
- export { validation };
@@ -1,17 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- var services_dock_service = require('./service.js');
6
- require('@docknetwork/sdk');
7
- require('@docknetwork/sdk/resolver');
8
- require('@docknetwork/crypto-wasm-ts/lib/index');
9
- require('events');
10
- require('../../core/logger.js');
11
- require('../../modules/event-manager.js');
12
- require('assert');
13
- require('./configs.js');
14
-
15
-
16
-
17
- exports.dockService = services_dock_service.dockService;
@@ -1,9 +0,0 @@
1
- export { dockService } from './service.mjs';
2
- import '@docknetwork/sdk';
3
- import '@docknetwork/sdk/resolver';
4
- import '@docknetwork/crypto-wasm-ts/lib/index';
5
- import 'events';
6
- import '../../core/logger.mjs';
7
- import '../../modules/event-manager.mjs';
8
- import 'assert';
9
- import './configs.mjs';