@dashevo/wasm-dpp 0.24.0-dev.12 → 0.24.0-dev.13

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 (118) hide show
  1. package/Cargo.toml +3 -0
  2. package/README.md +5 -1
  3. package/dist/index.js +1 -1
  4. package/dist/index.js.LICENSE.txt +9 -0
  5. package/dist/wasm/wasm_dpp.d.ts +1495 -565
  6. package/karma.conf.js +5 -0
  7. package/lib/identifier/patchIdentifier.ts +5 -4
  8. package/lib/index.ts +1 -1
  9. package/lib/test/bootstrap.js +5 -0
  10. package/lib/test/mocks/getBlsAdapterMock.js +36 -0
  11. package/lib/test/utils/newDocumentsContainer.js +36 -0
  12. package/package.json +7 -4
  13. package/src/bls_adapter.rs +16 -1
  14. package/src/data_contract/data_contract.rs +35 -7
  15. package/src/data_contract/errors/invalid_document_type.rs +1 -1
  16. package/src/data_contract/index.rs +56 -1
  17. package/src/data_contract/mod.rs +1 -0
  18. package/src/data_contract/state_transition/data_contract_create_transition/mod.rs +2 -4
  19. package/src/data_contract/state_transition/data_contract_create_transition/validation.rs +3 -3
  20. package/src/data_contract/state_transition/data_contract_update_transition/mod.rs +2 -4
  21. package/src/data_contract/state_transition/data_contract_update_transition/validation.rs +9 -6
  22. package/src/data_contract_factory/data_contract_factory.rs +4 -6
  23. package/src/document/errors/invalid_document_error.rs +10 -9
  24. package/src/document/errors/invalid_initial_revision_error.rs +1 -1
  25. package/src/document/errors/mismatch_owners_ids_error.rs +14 -4
  26. package/src/document/errors/mod.rs +17 -13
  27. package/src/document/errors/no_documents_supplied_error.rs +4 -4
  28. package/src/document/factory.rs +192 -0
  29. package/src/document/mod.rs +222 -30
  30. package/src/document/state_transition/document_batch_transition/document_transition/document_create_transition.rs +47 -1
  31. package/src/document/state_transition/document_batch_transition/document_transition/document_delete_transition.rs +25 -1
  32. package/src/document/state_transition/document_batch_transition/document_transition/document_replace_transition.rs +65 -0
  33. package/src/document/state_transition/document_batch_transition/document_transition/mod.rs +123 -3
  34. package/src/document/state_transition/document_batch_transition/mod.rs +378 -0
  35. package/src/document/validator.rs +30 -0
  36. package/src/errors/consensus/basic/identity/identity_asset_lock_proof_locked_transaction_mismatch_error.rs +6 -2
  37. package/src/errors/consensus/basic/identity/identity_asset_lock_transaction_out_point_already_exists_error.rs +5 -2
  38. package/src/errors/consensus/basic/identity/invalid_asset_lock_proof_transaction_height_error.rs +3 -3
  39. package/src/errors/dpp_error.rs +17 -0
  40. package/src/errors/from.rs +5 -0
  41. package/src/errors/js_conversion.rs +19 -4
  42. package/src/errors/mod.rs +2 -0
  43. package/src/errors/protocol_error.rs +7 -4
  44. package/src/identifier/mod.rs +48 -3
  45. package/src/identity/errors/asset_lock_output_not_found_error.rs +11 -0
  46. package/src/identity/errors/asset_lock_transaction_is_not_found_error.rs +20 -0
  47. package/src/identity/errors/mod.rs +7 -0
  48. package/src/identity/errors/unknown_asset_lock_proof_type_error.rs +26 -0
  49. package/src/identity/identity_facade.rs +2 -4
  50. package/src/identity/identity_public_key/mod.rs +41 -7
  51. package/src/identity/mod.rs +14 -5
  52. package/src/identity/state_transition/asset_lock_proof/chain/chain_asset_lock_proof.rs +132 -0
  53. package/src/identity/state_transition/asset_lock_proof/chain/chain_asset_lock_proof_structure_validator.rs +72 -0
  54. package/src/identity/state_transition/asset_lock_proof/chain/mod.rs +4 -0
  55. package/src/identity/state_transition/asset_lock_proof/instant/instant_asset_lock_proof.rs +177 -0
  56. package/src/identity/state_transition/asset_lock_proof/instant/instant_asset_lock_proof_structure_validator.rs +72 -0
  57. package/src/identity/state_transition/asset_lock_proof/instant/mod.rs +4 -0
  58. package/src/identity/state_transition/asset_lock_proof/mod.rs +269 -0
  59. package/src/identity/state_transition/identity_create_transition/apply_identity_create_transition.rs +26 -0
  60. package/src/identity/state_transition/identity_create_transition/identity_create_transition.rs +335 -0
  61. package/src/identity/state_transition/identity_create_transition/identity_create_transition_basic_validator.rs +153 -0
  62. package/src/identity/state_transition/identity_create_transition/identity_create_transition_state_validator.rs +37 -0
  63. package/src/identity/state_transition/identity_create_transition/mod.rs +8 -0
  64. package/src/identity/state_transition/identity_create_transition/to_object.rs +46 -0
  65. package/src/identity/state_transition/identity_topup_transition/apply_identity_topup_transition.rs +31 -0
  66. package/src/identity/state_transition/identity_topup_transition/identity_topup_transition.rs +280 -0
  67. package/src/identity/state_transition/identity_topup_transition/identity_topup_transition_basic_validator.rs +113 -0
  68. package/src/identity/state_transition/identity_topup_transition/identity_topup_transition_state_validator.rs +37 -0
  69. package/src/identity/state_transition/identity_topup_transition/mod.rs +8 -0
  70. package/src/identity/state_transition/identity_topup_transition/to_object.rs +42 -0
  71. package/src/identity/state_transition/mod.rs +9 -0
  72. package/src/identity/state_transition/validate_public_key_signatures.rs +59 -0
  73. package/src/identity/validation/public_keys_validator.rs +16 -10
  74. package/src/identity_public_key/public_keys_validator.rs +44 -0
  75. package/src/lib.rs +2 -0
  76. package/src/lodash.rs +7 -0
  77. package/src/state_repository.rs +188 -36
  78. package/src/state_transition/mod.rs +12 -0
  79. package/src/utils.rs +102 -7
  80. package/src/validation/json_schema_validator.rs +41 -0
  81. package/src/validation/mod.rs +2 -0
  82. package/src/validation/validation_result.rs +23 -5
  83. package/src/version/mod.rs +2 -0
  84. package/src/version/protocol_version.rs +26 -0
  85. package/test/integration/dataContract/validation/validateDataContractFactory.spec.js +579 -502
  86. package/test/integration/identity/stateTransition/IdentityCreateTransition/validation/basic/validateIdentityCreateTransitionBasicFactory.spec.js +175 -165
  87. package/test/integration/identity/stateTransition/IdentityTopUpTransition/validation/basic/validateIdentityTopUpTransitionBasicFactory.spec.js +83 -114
  88. package/test/integration/identity/stateTransition/assetLockProof/chain/validateChainAssetLockProofStructureFactory.spec.js +82 -91
  89. package/test/integration/identity/stateTransition/assetLockProof/fetchAssetLockTransactionOutputFactory.spec.js +75 -31
  90. package/test/integration/identity/stateTransition/assetLockProof/instant/validateInstantAssetLockProofStructureFactory.spec.js +93 -148
  91. package/test/integration/identity/stateTransition/assetLockProof/validateAssetLockTransactionFactory.spec.js +63 -75
  92. package/test/integration/identity/stateTransition/validatePublicKeySignaturesFactory.spec.js +48 -19
  93. package/test/unit/dataContract/DataContract.spec.js +3 -3
  94. package/test/unit/dataContract/createDataContract.spec.js +0 -1
  95. package/test/unit/dataContract/stateTransition/DataContractCreateTransition/DataContractCreateTransition.spec.js +3 -3
  96. package/test/unit/dataContract/stateTransition/DataContractUpdateTransition/DataContractUpdateTransition.spec.js +3 -3
  97. package/test/unit/decodeProtocolEntityFactory.spec.js +2 -2
  98. package/test/unit/document/Document.spec.js +147 -155
  99. package/test/unit/document/DocumentFactory.spec.js +325 -91
  100. package/test/unit/document/stateTransition/DocumetsBatchTransition/DocumentsBatchTransition.spec.js +142 -64
  101. package/test/unit/identity/Identity.spec.js +2 -2
  102. package/test/unit/identity/stateTransition/IdentityCreateTransition/IdentityCreateTransition.spec.js +69 -30
  103. package/test/unit/identity/stateTransition/IdentityCreateTransition/applyIdentityCreateTransitionFactory.spec.js +32 -32
  104. package/test/unit/identity/stateTransition/IdentityCreateTransition/validation/state/validateIdentityCreateTransitionStateFactory.spec.js +56 -25
  105. package/test/unit/identity/stateTransition/IdentityTopUpTransition/IdentityTopUpTransition.spec.js +36 -16
  106. package/test/unit/identity/stateTransition/IdentityTopUpTransition/applyIdentityTopUpTransitionFactory.spec.js +48 -46
  107. package/test/unit/identity/stateTransition/IdentityTopUpTransition/validation/state/validateIdentityTopUpTransitionStateFactory.spec.js +24 -6
  108. package/test/unit/identity/stateTransition/assetLockProof/ChainAssetLockProof.spec.js +63 -0
  109. package/test/unit/identity/stateTransition/assetLockProof/InstantAssetLockProof.spec.js +90 -0
  110. package/test/unit/identity/stateTransition/assetLockProof/createAssetLockProofInstance.spec.js +18 -3
  111. package/test/unit/identity/stateTransition/assetLockProof/fetchAssetLockPublicKeyHashFactory.spec.js +38 -11
  112. package/wasm/package.json +5 -0
  113. package/wasm/wasm_dpp.d.ts +1495 -565
  114. package/wasm/wasm_dpp.js +3654 -1206
  115. package/wasm/wasm_dpp_bg.js +1 -1
  116. package/wasm/wasm_dpp_bg.wasm +0 -0
  117. package/wasm/wasm_dpp_bg.wasm.d.ts +557 -386
  118. package/webpack.config.js +9 -0
@@ -1,32 +1,59 @@
1
- const fetchAssetLockPublicKeyHashFactory = require('@dashevo/dpp/lib/identity/stateTransition/assetLockProof/fetchAssetLockPublicKeyHashFactory');
1
+ const { Script } = require('@dashevo/dashcore-lib');
2
+
2
3
  const getInstantAssetLockProofFixture = require('@dashevo/dpp/lib/test/fixtures/getInstantAssetLockProofFixture');
3
- const AssetLockOutputNotFoundError = require('@dashevo/dpp/lib/identity/errors/AssetLockOutputNotFoundError');
4
+
5
+ const createStateRepositoryMock = require('@dashevo/dpp/lib/test/mocks/createStateRepositoryMock');
6
+ const { default: loadWasmpDpp } = require('../../../../../dist');
4
7
 
5
8
  describe('fetchAssetLockPublicKeyHashFactory', () => {
6
9
  let fetchAssetLockPublicKeyHash;
7
- let fetchAssetLockTransactionOutputMock;
8
- let assetLockProof;
10
+ let stateRepositoryMock;
11
+ let executionContext;
12
+
13
+ let StateTransitionExecutionContext;
14
+ let InstantAssetLockProof;
15
+ let AssetLockOutputNotFoundError;
16
+ let fetchAssetLockPublicKeyHashDPP;
17
+
18
+ before(async () => {
19
+ ({
20
+ StateTransitionExecutionContext,
21
+ InstantAssetLockProof,
22
+ AssetLockOutputNotFoundError,
23
+ fetchAssetLockPublicKeyHash: fetchAssetLockPublicKeyHashDPP,
24
+ } = await loadWasmpDpp());
25
+ });
9
26
 
10
27
  beforeEach(function beforeEach() {
11
- fetchAssetLockTransactionOutputMock = this.sinonSandbox.stub();
28
+ stateRepositoryMock = createStateRepositoryMock(this.sinonSandbox);
12
29
 
13
- fetchAssetLockPublicKeyHash = fetchAssetLockPublicKeyHashFactory(
14
- fetchAssetLockTransactionOutputMock,
15
- );
30
+ executionContext = new StateTransitionExecutionContext();
16
31
 
17
- assetLockProof = getInstantAssetLockProofFixture();
32
+ fetchAssetLockPublicKeyHash = (proof) => fetchAssetLockPublicKeyHashDPP(
33
+ stateRepositoryMock,
34
+ proof,
35
+ executionContext,
36
+ );
18
37
  });
19
38
 
20
39
  it('should return public key hash for specified asset lock proof', async () => {
21
- fetchAssetLockTransactionOutputMock.resolves(assetLockProof.getOutput());
40
+ const assetLockProof = new InstantAssetLockProof(
41
+ getInstantAssetLockProofFixture().toObject(),
42
+ );
22
43
 
23
44
  const result = await fetchAssetLockPublicKeyHash(assetLockProof);
24
45
 
25
- expect(result).to.deep.equal(assetLockProof.getOutput().script.getData());
46
+ expect(result).to
47
+ .deep.equal(new Script(assetLockProof.getOutput().script).getData());
26
48
  });
27
49
 
28
50
  it('should throw AssetLockOutputNotFoundError if output is not found', async () => {
29
51
  try {
52
+ const assetLockProofJS = getInstantAssetLockProofFixture();
53
+ // Mess up TX outputs
54
+ assetLockProofJS.transaction.outputs = [];
55
+
56
+ const assetLockProof = new InstantAssetLockProof(assetLockProofJS.toObject());
30
57
  await fetchAssetLockPublicKeyHash(assetLockProof);
31
58
  expect.fail('should throw AssetLockOutputNotFoundError');
32
59
  } catch (e) {
@@ -0,0 +1,5 @@
1
+ {
2
+ "@dashevo/bls": "~1.0.0-beta.2",
3
+ "lodash": "^4.17.21",
4
+ "varint": "^6.0.0"
5
+ }