@dashevo/wasm-dpp 0.25.0-dev.8 → 0.25.0-pr.1545.2

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 (329) hide show
  1. package/Cargo.toml +34 -7
  2. package/README.md +12 -7
  3. package/dist/errors/patchConsensusErrors.js +94 -115
  4. package/dist/wasm/wasm_dpp.d.ts +2302 -4106
  5. package/dist/wasm/wasm_dpp.js +18149 -2639
  6. package/dist/wasm/wasm_dpp_bg.js +1 -1
  7. package/lib/bls/bls.js +48 -0
  8. package/lib/dpp.ts +1 -1
  9. package/lib/errors/patchConsensusErrors.ts +94 -93
  10. package/lib/test/bootstrap.js +5 -0
  11. package/lib/test/fixtures/getChainAssetLockProofFixture.js +20 -1
  12. package/lib/test/fixtures/getDataContractFixture.js +13 -9
  13. package/lib/test/fixtures/getDocumentTransitionsFixture.js +31 -1
  14. package/lib/test/fixtures/getDocumentsFixture.js +9 -5
  15. package/lib/test/fixtures/getIdentityCreateTransitionFixture.js +14 -20
  16. package/lib/test/fixtures/getIdentityCreditTransferTransitionFixture.js +14 -0
  17. package/lib/test/fixtures/getIdentityFixture.js +21 -32
  18. package/lib/test/fixtures/getIdentityTopUpTransitionFixture.js +7 -10
  19. package/lib/test/fixtures/getIdentityUpdateTransitionFixture.js +13 -28
  20. package/lib/test/fixtures/getInstantAssetLockProofFixture.js +32 -12
  21. package/lib/test/fixtures/getPrivateAndPublicKeyForSigningFixture.js +7 -9
  22. package/lib/test/mocks/createStateRepositoryMock.js +1 -0
  23. package/lib/test/mocks/getBlsAdapterMock.js +1 -1
  24. package/lib/utils/creditsConverter.js +14 -0
  25. package/lib/utils/hash.js +18 -0
  26. package/lib/wasm/wasm_dpp.d.ts +2302 -4106
  27. package/package.json +4 -6
  28. package/scripts/build-wasm.sh +30 -29
  29. package/src/bls_adapter.rs +1 -1
  30. package/src/dash_platform_protocol.rs +169 -192
  31. package/src/data_contract/data_contract.rs +309 -199
  32. package/src/data_contract/data_contract_facade.rs +28 -47
  33. package/src/data_contract/errors/mod.rs +1 -0
  34. package/src/data_contract/mod.rs +2 -2
  35. package/src/data_contract/state_transition/data_contract_create_transition/mod.rs +92 -79
  36. package/src/data_contract/state_transition/data_contract_update_transition/mod.rs +84 -77
  37. package/src/data_contract_factory/data_contract_factory.rs +43 -83
  38. package/src/document/document_facade.rs +81 -76
  39. package/src/document/errors/document_already_exists_error.rs +6 -6
  40. package/src/document/errors/document_no_revision_error.rs +1 -0
  41. package/src/document/errors/document_not_provided_error.rs +6 -6
  42. package/src/document/errors/invalid_document_action_error.rs +11 -7
  43. package/src/document/errors/invalid_document_error.rs +5 -0
  44. package/src/document/errors/invalid_initial_revision_error.rs +4 -4
  45. package/src/document/errors/mismatch_owners_ids_error.rs +5 -8
  46. package/src/document/errors/mod.rs +5 -0
  47. package/src/document/errors/revision_absent_error.rs +6 -6
  48. package/src/document/errors/trying_to_delete_immutable_document_error.rs +19 -0
  49. package/src/document/errors/trying_to_replace_immutable_document_error.rs +4 -4
  50. package/src/document/extended_document.rs +91 -76
  51. package/src/document/factory.rs +140 -119
  52. package/src/document/generate_document_id.rs +2 -2
  53. package/src/document/mod.rs +164 -150
  54. package/src/document/state_transition/document_batch_transition/document_transition/document_create_transition.rs +236 -229
  55. package/src/document/state_transition/document_batch_transition/document_transition/document_delete_transition.rs +14 -14
  56. package/src/document/state_transition/document_batch_transition/document_transition/document_replace_transition.rs +50 -38
  57. package/src/document/state_transition/document_batch_transition/document_transition/mod.rs +164 -152
  58. package/src/document/state_transition/document_batch_transition/mod.rs +232 -222
  59. package/src/errors/consensus/basic/data_contract/data_contract_have_new_unique_index_error.rs +2 -9
  60. package/src/errors/consensus/basic/data_contract/data_contract_immutable_properties_update_error.rs +1 -9
  61. package/src/errors/consensus/basic/data_contract/data_contract_invalid_index_definition_update_error.rs +2 -10
  62. package/src/errors/consensus/basic/data_contract/data_contract_max_depth_exceed_error.rs +1 -9
  63. package/src/errors/consensus/basic/data_contract/data_contract_unique_indices_changed_error.rs +1 -9
  64. package/src/errors/consensus/basic/data_contract/duplicate_index_name_error.rs +1 -9
  65. package/src/errors/consensus/basic/data_contract/incompatible_data_contract_schema_error.rs +1 -9
  66. package/src/errors/consensus/basic/data_contract/incompatible_re2_pattern_error.rs +1 -9
  67. package/src/errors/consensus/basic/data_contract/index_error/duplicate_index_error.rs +1 -9
  68. package/src/errors/consensus/basic/data_contract/index_error/invalid_compound_index_error.rs +1 -9
  69. package/src/errors/consensus/basic/data_contract/index_error/invalid_index_property_type_error.rs +1 -9
  70. package/src/errors/consensus/basic/data_contract/index_error/invalid_indexed_property_constraint_error.rs +1 -9
  71. package/src/errors/consensus/basic/data_contract/index_error/system_property_index_already_present_error.rs +1 -9
  72. package/src/errors/consensus/basic/data_contract/index_error/undefined_index_property_error.rs +1 -9
  73. package/src/errors/consensus/basic/data_contract/index_error/unique_indices_limit_reached_error.rs +1 -9
  74. package/src/errors/consensus/basic/data_contract/invalid_data_contract_id_error.rs +1 -9
  75. package/src/errors/consensus/basic/data_contract/invalid_data_contract_version_error.rs +1 -9
  76. package/src/errors/consensus/basic/data_contract/invalid_json_schema_ref_error.rs +1 -9
  77. package/src/errors/consensus/basic/decode/protocol_version_parsing_error.rs +10 -7
  78. package/src/errors/consensus/basic/decode/serialized_object_parsing_error.rs +1 -9
  79. package/src/errors/consensus/basic/document/data_contract_not_present_error.rs +1 -9
  80. package/src/errors/consensus/basic/document/duplicate_document_transitions_with_ids_error.rs +1 -9
  81. package/src/errors/consensus/basic/document/duplicate_document_transitions_with_indices_error.rs +1 -9
  82. package/src/errors/consensus/basic/document/inconsistent_compound_index_data_error.rs +1 -9
  83. package/src/errors/consensus/basic/document/invalid_document_transition_action_error.rs +1 -9
  84. package/src/errors/consensus/basic/document/invalid_document_transition_id_error.rs +1 -9
  85. package/src/errors/consensus/basic/document/invalid_document_type_error.rs +1 -9
  86. package/src/errors/consensus/basic/document/missing_data_contract_id_error.rs +1 -9
  87. package/src/errors/consensus/basic/document/missing_document_transition_action_error.rs +1 -9
  88. package/src/errors/consensus/basic/document/missing_document_transition_type_error.rs +1 -9
  89. package/src/errors/consensus/basic/document/missing_document_type_error.rs +1 -9
  90. package/src/errors/consensus/basic/identity/duplicated_identity_public_key_error.rs +1 -9
  91. package/src/errors/consensus/basic/identity/duplicated_identity_public_key_id_error.rs +1 -9
  92. package/src/errors/consensus/basic/identity/identity_asset_lock_proof_locked_transaction_mismatch_error.rs +3 -11
  93. package/src/errors/consensus/basic/identity/identity_asset_lock_transaction_is_not_found_error.rs +1 -9
  94. package/src/errors/consensus/basic/identity/identity_asset_lock_transaction_out_point_already_exists_error.rs +2 -10
  95. package/src/errors/consensus/basic/identity/identity_asset_lock_transaction_output_not_found_error.rs +1 -9
  96. package/src/errors/consensus/basic/identity/identity_insufficient_balance_error.rs +5 -11
  97. package/src/errors/consensus/basic/identity/invalid_asset_lock_proof_core_chain_height_error.rs +1 -9
  98. package/src/errors/consensus/basic/identity/invalid_asset_lock_proof_transaction_height_error.rs +1 -9
  99. package/src/errors/consensus/basic/identity/invalid_asset_lock_transaction_output_return_size_error.rs +1 -9
  100. package/src/errors/consensus/basic/identity/invalid_identity_asset_lock_proof_chain_lock_validation_error.rs +1 -1
  101. package/src/errors/consensus/basic/identity/invalid_identity_asset_lock_transaction_error.rs +1 -9
  102. package/src/errors/consensus/basic/identity/invalid_identity_asset_lock_transaction_output_error.rs +1 -9
  103. package/src/errors/consensus/basic/identity/invalid_identity_credit_withdrawal_transition_core_fee_error.rs +1 -9
  104. package/src/errors/consensus/basic/identity/invalid_identity_credit_withdrawal_transition_output_script_error.rs +1 -9
  105. package/src/errors/consensus/basic/identity/invalid_identity_credit_withdrawal_transition_pooling_error.rs +1 -9
  106. package/src/errors/consensus/basic/identity/invalid_identity_key_signature_error.rs +1 -9
  107. package/src/errors/consensus/basic/identity/invalid_identity_public_key_data_error.rs +1 -9
  108. package/src/errors/consensus/basic/identity/invalid_identity_public_key_security_level_error.rs +1 -9
  109. package/src/errors/consensus/basic/identity/invalid_identity_public_key_type_error.rs +1 -9
  110. package/src/errors/consensus/basic/identity/invalid_instant_asset_lock_proof_error.rs +1 -9
  111. package/src/errors/consensus/basic/identity/invalid_instant_asset_lock_proof_signature_error.rs +1 -9
  112. package/src/errors/consensus/basic/identity/missing_master_public_key_error.rs +1 -9
  113. package/src/errors/consensus/basic/identity/missing_public_key_error.rs +1 -9
  114. package/src/errors/consensus/basic/incompatible_protocol_version_error.rs +1 -9
  115. package/src/errors/consensus/basic/invalid_identifier_error.rs +1 -9
  116. package/src/errors/consensus/basic/invalid_signature_public_key_security_level_error.rs +7 -15
  117. package/src/errors/consensus/basic/invalid_state_transition_signature_error.rs +1 -9
  118. package/src/errors/consensus/basic/json_schema_compilation_error.rs +1 -9
  119. package/src/errors/consensus/basic/json_schema_error.rs +33 -11
  120. package/src/errors/consensus/basic/mod.rs +2 -0
  121. package/src/errors/consensus/basic/public_key_is_disabled_error.rs +1 -9
  122. package/src/errors/consensus/basic/public_key_security_level_not_met_error.rs +2 -11
  123. package/src/errors/consensus/basic/state_transition/invalid_state_transition_type_error.rs +1 -9
  124. package/src/errors/consensus/basic/state_transition/missing_state_transition_type_error.rs +1 -9
  125. package/src/errors/consensus/basic/state_transition/state_transition_max_size_exceeded_error.rs +1 -9
  126. package/src/errors/consensus/basic/unsupported_protocol_version_error.rs +1 -9
  127. package/src/errors/consensus/basic/unsupported_version_error.rs +44 -0
  128. package/src/errors/consensus/basic/wrong_public_key_purpose_error.rs +1 -9
  129. package/src/errors/consensus/consensus_error.rs +44 -21
  130. package/src/errors/consensus/deserialize.rs +2 -1
  131. package/src/errors/consensus/fee/balance_is_not_enough_error.rs +5 -2
  132. package/src/errors/consensus/signature/basic_bls_error.rs +1 -9
  133. package/src/errors/consensus/signature/basic_ecdsa_error.rs +1 -9
  134. package/src/errors/consensus/signature/identity_not_found_error.rs +4 -2
  135. package/src/errors/consensus/signature/signature_should_not_be_present_error.rs +1 -9
  136. package/src/errors/consensus/state/data_contract/data_contract_already_present_error.rs +3 -2
  137. package/src/errors/consensus/state/data_contract/data_contract_config_update_error.rs +42 -0
  138. package/src/errors/consensus/state/data_contract/data_contract_is_readonly_error.rs +44 -0
  139. package/src/errors/consensus/state/data_contract/data_trigger/data_trigger_condition_error.rs +2 -1
  140. package/src/errors/consensus/state/data_contract/data_trigger/data_trigger_execution_error.rs +2 -1
  141. package/src/errors/consensus/state/data_contract/data_trigger/data_trigger_invalid_result_error.rs +2 -1
  142. package/src/errors/consensus/state/data_contract/mod.rs +7 -1
  143. package/src/errors/consensus/state/document/document_already_present_error.rs +1 -9
  144. package/src/errors/consensus/state/document/document_not_found_error.rs +1 -9
  145. package/src/errors/consensus/state/document/document_owner_id_mismatch_error.rs +1 -9
  146. package/src/errors/consensus/state/document/document_timestamp_window_violation_error.rs +1 -9
  147. package/src/errors/consensus/state/document/document_timestamps_are_equal_error.rs +34 -0
  148. package/src/errors/consensus/state/document/document_timestamps_mismatch_error.rs +1 -9
  149. package/src/errors/consensus/state/document/duplicate_unique_index_error.rs +1 -9
  150. package/src/errors/consensus/state/document/invalid_document_revision_error.rs +9 -12
  151. package/src/errors/consensus/state/document/mod.rs +2 -0
  152. package/src/errors/consensus/state/identity/duplicated_identity_public_key_id_state_error.rs +1 -9
  153. package/src/errors/consensus/state/identity/duplicated_identity_public_key_state_error.rs +1 -9
  154. package/src/errors/consensus/state/identity/identity_already_exists_error.rs +1 -9
  155. package/src/errors/consensus/state/identity/identity_public_key_disabled_at_window_violation_error.rs +1 -9
  156. package/src/errors/consensus/state/identity/identity_public_key_is_disabled_error.rs +1 -9
  157. package/src/errors/consensus/state/identity/identity_public_key_is_read_only_error.rs +1 -9
  158. package/src/errors/consensus/state/identity/invalid_identity_public_key_id_error.rs +2 -9
  159. package/src/errors/consensus/state/identity/invalid_identity_revision_error.rs +1 -9
  160. package/src/errors/consensus/state/identity/max_identity_public_key_limit_reached_error.rs +1 -9
  161. package/src/errors/consensus/value_error.rs +1 -9
  162. package/src/errors/from.rs +12 -8
  163. package/src/errors/mod.rs +7 -7
  164. package/src/errors/value_error.rs +5 -0
  165. package/src/identity/errors/asset_lock_transaction_is_not_found_error.rs +1 -2
  166. package/src/identity/factory_utils.rs +13 -13
  167. package/src/identity/identity.rs +275 -0
  168. package/src/identity/identity_facade.rs +94 -75
  169. package/src/identity/identity_factory.rs +74 -54
  170. package/src/identity/identity_public_key/mod.rs +87 -64
  171. package/src/identity/mod.rs +25 -247
  172. package/src/identity/state_transition/asset_lock_proof/chain/chain_asset_lock_proof.rs +32 -17
  173. package/src/identity/state_transition/asset_lock_proof/chain/chain_asset_lock_proof_structure_validator.rs +0 -1
  174. package/src/identity/state_transition/asset_lock_proof/chain/mod.rs +3 -1
  175. package/src/identity/state_transition/asset_lock_proof/instant/instant_asset_lock_proof.rs +24 -15
  176. package/src/identity/state_transition/asset_lock_proof/instant/instant_asset_lock_proof_structure_validator.rs +0 -1
  177. package/src/identity/state_transition/asset_lock_proof/instant/mod.rs +3 -1
  178. package/src/identity/state_transition/asset_lock_proof/mod.rs +124 -127
  179. package/src/identity/state_transition/identity_create_transition/identity_create_transition.rs +72 -65
  180. package/src/identity/state_transition/identity_create_transition/identity_create_transition_basic_validator.rs +0 -1
  181. package/src/identity/state_transition/identity_create_transition/mod.rs +3 -3
  182. package/src/identity/state_transition/identity_create_transition/to_object.rs +11 -12
  183. package/src/identity/state_transition/identity_credit_transfer_transition/apply_identity_credit_transfer_transition.rs +31 -0
  184. package/src/identity/state_transition/identity_credit_transfer_transition/identity_credit_transfer_transition_basic_validator.rs +66 -0
  185. package/src/identity/state_transition/identity_credit_transfer_transition/identity_credit_transfer_transition_state_validator.rs +44 -0
  186. package/src/identity/state_transition/identity_credit_transfer_transition/mod.rs +8 -0
  187. package/src/identity/state_transition/identity_credit_transfer_transition/to_object.rs +49 -0
  188. package/src/identity/state_transition/identity_credit_transfer_transition/transition.rs +344 -0
  189. package/src/identity/state_transition/identity_public_key_transitions.rs +89 -75
  190. package/src/identity/state_transition/identity_topup_transition/identity_topup_transition.rs +68 -62
  191. package/src/identity/state_transition/identity_topup_transition/identity_topup_transition_basic_validator.rs +0 -2
  192. package/src/identity/state_transition/identity_topup_transition/mod.rs +3 -3
  193. package/src/identity/state_transition/identity_topup_transition/to_object.rs +9 -12
  194. package/src/identity/state_transition/identity_update_transition/identity_update_public_keys_validator.rs +2 -2
  195. package/src/identity/state_transition/identity_update_transition/identity_update_transition.rs +99 -104
  196. package/src/identity/state_transition/identity_update_transition/mod.rs +4 -4
  197. package/src/identity/state_transition/identity_update_transition/to_object.rs +15 -19
  198. package/src/identity/state_transition/mod.rs +5 -2
  199. package/src/identity/state_transition/transition_types.rs +34 -0
  200. package/src/identity/state_transition/validate_public_key_signatures.rs +2 -2
  201. package/src/lib.rs +9 -10
  202. package/src/metadata.rs +3 -3
  203. package/src/protocol_version.rs +7 -0
  204. package/src/state_transition/conversion.rs +11 -1
  205. package/src/state_transition/errors/invalid_state_transition_error.rs +12 -1
  206. package/src/state_transition/fee/operations/pre_calculated_operation.rs +2 -1
  207. package/src/state_transition/mod.rs +137 -139
  208. package/src/state_transition/state_transition_facade.rs +11 -11
  209. package/src/state_transition/state_transition_factory.rs +142 -153
  210. package/src/state_transition/validation/state_transition_fee_validator.rs +1 -1
  211. package/src/state_transition/validation/validate_state_transition_identity_signature.rs +28 -10
  212. package/src/state_transition/validation/validate_state_transition_key_signature.rs +1 -1
  213. package/src/utils.rs +7 -8
  214. package/src/validation/mod.rs +2 -2
  215. package/src/validation/validation_result.rs +17 -15
  216. package/test/integration/dataContract/DataContractFacade.spec.js +25 -32
  217. package/test/integration/dataContract/stateTransition/DataContractCreateTransition/validation/basic/validateDataContractCreateTransitionBasicFactory.spec.js +6 -6
  218. package/test/integration/dataContract/stateTransition/DataContractUpdateTransition/validation/basic/validateDataContractUpdateTransitionBasicFactory.spec.js +11 -10
  219. package/test/integration/dataContract/validation/validateDataContractFactory.spec.js +3 -3
  220. package/test/integration/document/Document.spec.js +3 -3
  221. package/test/integration/document/DocumentFacade.spec.js +33 -48
  222. package/test/integration/document/stateTransition/DocumentsBatchTransition/DocumentBatchTransition.spec.js +13 -24
  223. package/test/integration/document/stateTransition/DocumentsBatchTransition/validation/basic/validateDocumentsBatchTransitionBasicFactory.spec.js +15 -15
  224. package/test/integration/document/validation/validateDocumentFactory.spec.js +3 -3
  225. package/test/integration/identity/IdentityFacade.spec.js +33 -63
  226. package/test/integration/identity/stateTransition/IdentityCreateTransition/validation/basic/validateIdentityCreateTransitionBasicFactory.spec.js +6 -8
  227. package/test/integration/identity/stateTransition/IdentityTopUpTransition/validation/basic/validateIdentityTopUpTransitionBasicFactory.spec.js +4 -7
  228. package/test/integration/identity/stateTransition/IdentityUpdateTransition/validation/basic/validateIdentityUpdateTransitionBasicFactory.spec.js +1 -1
  229. package/test/integration/identity/stateTransition/IdentityUpdateTransition/validation/state/validateIdentityUpdateTransitionStateFactory.spec.js +21 -24
  230. package/test/integration/identity/stateTransition/IdentityUpdateTransition/validation/state/validatePublicKeysState.spec.js +2 -2
  231. package/test/integration/identity/stateTransition/assetLockProof/chain/validateChainAssetLockProofStructureFactory.spec.js +4 -4
  232. package/test/integration/identity/stateTransition/assetLockProof/fetchAssetLockTransactionOutputFactory.spec.js +7 -10
  233. package/test/integration/identity/stateTransition/assetLockProof/instant/validateInstantAssetLockProofStructureFactory.spec.js +5 -6
  234. package/test/integration/identity/stateTransition/assetLockProof/validateAssetLockTransactionFactory.spec.js +6 -6
  235. package/test/integration/identity/stateTransition/validatePublicKeySignaturesFactory.spec.js +5 -9
  236. package/test/integration/identity/validation/validateIdentityFactory.spec.js +7 -6
  237. package/test/integration/identity/validation/validatePublicKeysFactory.spec.js +5 -25
  238. package/test/integration/stateTransition/StateTransitionFacade.spec.js +45 -58
  239. package/test/integration/util/generateTemporaryEcdsaPrivateKey.spec.js +1 -1
  240. package/test/unit/DashPlatformProtocol.spec.js +10 -25
  241. package/test/unit/dataContract/DataContract.spec.js +119 -148
  242. package/test/unit/dataContract/DataContractFactory.spec.js +42 -31
  243. package/test/unit/dataContract/createDataContract.spec.js +6 -6
  244. package/test/unit/dataContract/generateDataContractId.spec.js +1 -1
  245. package/test/unit/dataContract/stateTransition/DataContractCreateTransition/DataContractCreateTransition.spec.js +34 -26
  246. package/test/unit/dataContract/stateTransition/DataContractCreateTransition/validation/state/validateDataContractCreateTransitionStateFactory.spec.js +10 -9
  247. package/test/unit/dataContract/stateTransition/DataContractUpdateTransition/DataContractUpdateTransition.spec.js +34 -27
  248. package/test/unit/dataContract/stateTransition/DataContractUpdateTransition/validation/basic/validateIndicesAreBackwardCompatible.spec.js +5 -5
  249. package/test/unit/dataContract/stateTransition/DataContractUpdateTransition/validation/state/validateDataContractUpdateTransitionStateFactory.spec.js +11 -10
  250. package/test/unit/dataContract/validation/validateDataContractPatterns.spec.js +7 -7
  251. package/test/unit/document/Document.spec.js +59 -70
  252. package/test/unit/document/DocumentFactory.spec.js +46 -111
  253. package/test/unit/document/errors/InvalidDocumentError.spec.js +9 -9
  254. package/test/unit/document/fetchAndValidateDataContractFactory.spec.js +1 -1
  255. package/test/unit/document/stateTransition/DocumetsBatchTransition/DocumentsBatchTransition.spec.js +160 -158
  256. package/test/unit/document/stateTransition/DocumetsBatchTransition/documentTransition/DocumentCreateTransition.spec.js +1 -1
  257. package/test/unit/document/stateTransition/DocumetsBatchTransition/validation/basic/findDuplicatesById.spec.js +1 -1
  258. package/test/unit/document/stateTransition/DocumetsBatchTransition/validation/basic/findDuplicatesByIndices.spec.js +134 -136
  259. package/test/unit/document/stateTransition/DocumetsBatchTransition/validation/basic/validatePartialCompoundIndices.spec.js +4 -4
  260. package/test/unit/document/stateTransition/DocumetsBatchTransition/validation/state/validateDocumentsBatchTransitionStateFactory.spec.js +572 -595
  261. package/test/unit/document/stateTransition/DocumetsBatchTransition/validation/state/validateDocumentsUniquenessByIndicesFactory.spec.js +6 -14
  262. package/test/unit/identity/Identity.spec.js +48 -83
  263. package/test/unit/identity/IdentityFactory.spec.js +61 -75
  264. package/test/unit/identity/IdentityPublicKey.spec.js +34 -48
  265. package/test/unit/identity/stateTransition/IdentityCreateTransition/IdentityCreateTransition.spec.js +30 -63
  266. package/test/unit/identity/stateTransition/IdentityCreateTransition/validation/state/validateIdentityCreateTransitionStateFactory.spec.js +5 -9
  267. package/test/unit/identity/stateTransition/IdentityTopUpTransition/IdentityTopUpTransition.spec.js +13 -35
  268. package/test/unit/identity/stateTransition/IdentityTopUpTransition/validation/state/validateIdentityTopUpTransitionStateFactory.spec.js +5 -9
  269. package/test/unit/identity/stateTransition/IdentityUpdateTransition/IdentityUpdateTransition.spec.js +24 -46
  270. package/test/unit/identity/stateTransition/assetLockProof/ChainAssetLockProof.spec.js +9 -28
  271. package/test/unit/identity/stateTransition/assetLockProof/InstantAssetLockProof.spec.js +19 -27
  272. package/test/unit/identity/stateTransition/identityCreditTransferTransition/identityCreditTransferTransition.spec.js +130 -0
  273. package/test/unit/stateTransition/StateTransitionExecutionContext.spec.js +1 -1
  274. package/test/unit/stateTransition/StateTransitionFactory.spec.js +16 -22
  275. package/test/unit/stateTransition/createStateTransitionFactory.spec.js +43 -21
  276. package/test/unit/stateTransition/validation/validateStateTransitionBasicFactory.spec.js +3 -3
  277. package/test/unit/stateTransition/validation/validateStateTransitionFeeFactory.spec.js +5 -17
  278. package/test/unit/stateTransition/validation/validateStateTransitionIdentitySignatureFactory.spec.js +9 -5
  279. package/test/unit/stateTransition/validation/validateStateTransitionKeySignatureFactory.spec.js +8 -14
  280. package/test/unit/stateTransition/validation/validateStateTransitionStateFactory.spec.js +1 -1
  281. package/test/unit/version/validateProtocolVersionFactory.spec.js +1 -1
  282. package/test-d/index.test-d.ts +2 -2
  283. package/lib/test/fixtures/getDashPayContractFixture.js +0 -1
  284. package/lib/test/fixtures/getDashPayDocumentFixture.js +0 -1
  285. package/lib/test/fixtures/getDpnsContractFixture.js +0 -1
  286. package/lib/test/fixtures/getDpnsDocumentFixture.js +0 -1
  287. package/lib/test/fixtures/getFeatureFlagsContractFixture.js +0 -1
  288. package/lib/test/fixtures/getFeatureFlagsDocumentsFixture.js +0 -1
  289. package/lib/test/fixtures/getIdentityTopUpTransitionFixtureJs.js +0 -1
  290. package/lib/test/fixtures/getMasternodeRewardShareDocumentsFixture.js +0 -1
  291. package/lib/test/fixtures/getMasternodeRewardSharesContractFixture.js +0 -1
  292. package/lib/test/fixtures/getPreorderDocumentFixture.js +0 -1
  293. package/lib/test/fixtures/getRawTransactionFixture.js +0 -1
  294. package/src/data_contract/state_transition/data_contract_create_transition/apply.rs +0 -45
  295. package/src/data_contract/state_transition/data_contract_update_transition/apply.rs +0 -49
  296. package/src/decode_protocol_entity.rs +0 -25
  297. package/src/document/state_transition/document_batch_transition/apply_document_batch_transition.rs +0 -25
  298. package/test/integration/DashPlatformProtocol.spec.js +0 -53
  299. package/test/integration/ajv/keywords/byteArray/addByteArrayKeyword.spec.js +0 -148
  300. package/test/integration/document/stateTransition/DocumentsBatchTransition/validation/state/executeDataTriggersFactory.spec.js +0 -195
  301. package/test/integration/stateTransition/AbstractStateTransitionIdentitySigned.spec.js +0 -500
  302. package/test/integration/stateTransition/calculateStateTransitionFeeFromOperationsFactory.spec.js +0 -53
  303. package/test/integration/util/generateEntropy.spec.js +0 -17
  304. package/test/integration/util/serializer.spec.js +0 -24
  305. package/test/unit/dataContract/getBinaryPropertiesFromSchema.spec.js +0 -103
  306. package/test/unit/dataContract/getPropertyDefinitionByPath.spec.js +0 -84
  307. package/test/unit/dataContract/stateTransition/DataContractCreateTransition/applyDataContractCreateTransitionFactory.spec.js +0 -47
  308. package/test/unit/dataContract/stateTransition/DataContractUpdateTransition/applyDataContractUpdateTransitionFactory.spec.js +0 -49
  309. package/test/unit/dataTrigger/DataTrigger.spec.js +0 -132
  310. package/test/unit/dataTrigger/DataTriggerExecutionContext.spec.js +0 -29
  311. package/test/unit/dataTrigger/dashpayDataTriggers/createContactRequestDataTrigger.spec.js +0 -107
  312. package/test/unit/dataTrigger/dpnsTriggers/createDomainDataTrigger.spec.js +0 -382
  313. package/test/unit/dataTrigger/featureFlagDataTriggers/createFeatureFlagDataTrigger.spec.js +0 -99
  314. package/test/unit/dataTrigger/getDataTriggersFactory.spec.js +0 -113
  315. package/test/unit/dataTrigger/rejectDataTrigger.spec.js +0 -51
  316. package/test/unit/dataTrigger/rewardShareDataTriggers/createMasternodeRewardSharesDataTrigger.spec.js +0 -202
  317. package/test/unit/decodeProtocolEntityFactory.spec.js +0 -69
  318. package/test/unit/document/stateTransition/DocumetsBatchTransition/applyDocumentsBatchTransitionFactory.spec.js +0 -257
  319. package/test/unit/document/stateTransition/DocumetsBatchTransition/validation/state/fetchDocumentsFactory.spec.js +0 -94
  320. package/test/unit/errors/consensus/codes.spec.js +0 -102
  321. package/test/unit/identity/creditsConverter.spec.js +0 -34
  322. package/test/unit/identity/errors/InvalidIdentityError.spec.js +0 -46
  323. package/test/unit/identity/stateTransition/IdentityCreateTransition/applyIdentityCreateTransitionFactory.spec.js +0 -89
  324. package/test/unit/identity/stateTransition/IdentityTopUpTransition/applyIdentityTopUpTransitionFactory.spec.js +0 -142
  325. package/test/unit/identity/stateTransition/IdentityUpdateTransition/applyIdentityUpdateTransitionFactory.spec.js +0 -100
  326. package/test/unit/identity/stateTransition/assetLockProof/createAssetLockProofInstance.spec.js +0 -36
  327. package/test/unit/identity/stateTransition/assetLockProof/fetchAssetLockPublicKeyHashFactory.spec.js +0 -63
  328. package/test/unit/identity/validation/validateRequiredPurposeAndSecurityLevelFactory.spec.js +0 -47
  329. package/test/unit/stateTransition/errors/InvalidStateTransitionError.spec.js +0 -51
@@ -1,62 +1,55 @@
1
- const getDataContractJSFixture = require('@dashevo/dpp/lib/test/fixtures/getDataContractFixture');
2
1
  const crypto = require('crypto');
2
+ const getDataContractFixture = require('../../../lib/test/fixtures/getDataContractFixture');
3
3
  const getBlsAdapterMock = require('../../../lib/test/mocks/getBlsAdapterMock');
4
4
  const createStateRepositoryMock = require('../../../lib/test/mocks/createStateRepositoryMock');
5
- const getPrivateAndPublicKey = require('../../../lib/test/fixtures/getPrivateAndPublicKeyForSigningFixture');
5
+ const getPrivateAndPublicKeyForSigningFixture = require('../../../lib/test/fixtures/getPrivateAndPublicKeyForSigningFixture');
6
6
 
7
7
  const { default: loadWasmDpp } = require('../../..');
8
8
  let {
9
- DashPlatformProtocol, DataContract, ValidationResult, DataContractValidator,
9
+ DashPlatformProtocol, DataContract, ValidationResult,
10
10
  DataContractFactory, DataContractCreateTransition, DataContractUpdateTransition,
11
11
  } = require('../../..');
12
12
 
13
13
  describe('DataContractFacade', () => {
14
14
  let dpp;
15
- let dataContractJs;
15
+ let dataContract;
16
16
  let dataContractFactory;
17
- let blsAdapter;
18
17
  let rawDataContract;
19
- let dataContractWasm;
20
18
  let stateTransitionMock;
21
19
 
22
20
  before(async () => {
23
21
  ({
24
- DashPlatformProtocol, DataContract, ValidationResult,
25
- DataContractValidator, DataContractFactory, DataContractCreateTransition,
26
- DataContractUpdateTransition,
22
+ DashPlatformProtocol, DataContract, ValidationResult, DataContractFactory,
23
+ DataContractCreateTransition, DataContractUpdateTransition,
27
24
  } = await loadWasmDpp());
28
25
  });
29
26
 
30
27
  beforeEach(async function beforeEach() {
31
- blsAdapter = await getBlsAdapterMock();
32
28
  stateTransitionMock = createStateRepositoryMock(this.sinonSandbox);
33
29
  dpp = new DashPlatformProtocol(
34
- blsAdapter, stateTransitionMock, { generate: () => crypto.randomBytes(32) }, 1,
30
+ { generate: () => crypto.randomBytes(32) }, 1,
35
31
  );
36
32
 
37
- dataContractJs = await getDataContractJSFixture();
38
- rawDataContract = dataContractJs.toObject();
33
+ dataContract = await getDataContractFixture();
34
+ rawDataContract = dataContract.toObject();
39
35
 
40
- const dataContractValidator = new DataContractValidator();
41
36
  dataContractFactory = new DataContractFactory(
42
37
  1,
43
- dataContractValidator,
38
+ { generate: () => crypto.randomBytes(32) },
44
39
  );
45
-
46
- dataContractWasm = await dataContractFactory.createFromObject(rawDataContract);
47
40
  });
48
41
 
49
42
  describe('create', () => {
50
43
  it('should create DataContract', () => {
51
44
  const result = dpp.dataContract.create(
52
- dataContractJs.getOwnerId(),
53
- dataContractJs.getDocuments(),
45
+ dataContract.getOwnerId(),
46
+ dataContract.getDocumentSchemas(),
54
47
  );
55
48
 
56
49
  expect(result).to.be.an.instanceOf(DataContract);
57
50
 
58
- expect(result.getOwnerId().toBuffer()).to.deep.equal(dataContractJs.getOwnerId().toBuffer());
59
- expect(result.getDocuments()).to.deep.equal(dataContractJs.getDocuments());
51
+ expect(result.getOwnerId().toBuffer()).to.deep.equal(dataContract.getOwnerId().toBuffer());
52
+ expect(result.getDocumentSchemas()).to.deep.equal(dataContract.getDocumentSchemas());
60
53
  });
61
54
  });
62
55
 
@@ -66,15 +59,15 @@ describe('DataContractFacade', () => {
66
59
 
67
60
  expect(result).to.be.an.instanceOf(DataContract);
68
61
 
69
- expect(result.toObject()).to.deep.equal(dataContractJs.toObject());
62
+ expect(result.toObject()).to.deep.equal(dataContract.toObject());
70
63
  });
71
64
  });
72
65
 
73
66
  describe('createFromBuffer', () => {
74
67
  it('should create DataContract from string', async () => {
75
68
  const contract = dpp.dataContract.create(
76
- dataContractJs.getOwnerId(),
77
- dataContractJs.getDocuments(),
69
+ dataContract.getOwnerId(),
70
+ dataContract.getDocumentSchemas(),
78
71
  );
79
72
 
80
73
  const result = await dpp.dataContract.createFromBuffer(contract.toBuffer());
@@ -87,9 +80,9 @@ describe('DataContractFacade', () => {
87
80
  describe('createDataContractCreateTransition', () => {
88
81
  it('should create DataContractCreateTransition from DataContract', async () => {
89
82
  const stateTransition = await dataContractFactory
90
- .createDataContractCreateTransition(dataContractWasm);
83
+ .createDataContractCreateTransition(dataContract);
91
84
 
92
- const result = dpp.dataContract.createDataContractCreateTransition(dataContractWasm);
85
+ const result = dpp.dataContract.createDataContractCreateTransition(dataContract);
93
86
 
94
87
  expect(result).to.be.an.instanceOf(DataContractCreateTransition);
95
88
 
@@ -99,12 +92,12 @@ describe('DataContractFacade', () => {
99
92
 
100
93
  describe('createDataContractUpdateTransition', () => {
101
94
  it('should create DataContractUpdateTransition from buffer', async () => {
102
- const dataContractBuffer = Buffer.from('01a56324696458205a3c9565f215156cfb330ef3a4a4400a1dad7415f4f1480e072d3419bb29c12c6724736368656d61783468747470733a2f2f736368656d612e646173682e6f72672f6470702d302d342d302f6d6574612f646174612d636f6e7472616374676f776e657249645820d5199a5b19334554d5dd483af53877251584ab9a66ca777bd1b2e8d2ec4808346776657273696f6e0169646f63756d656e7473a36c6e696365446f63756d656e74a46474797065666f626a656374687265717569726564816a246372656174656441746a70726f70657274696573a1646e616d65a1647479706566737472696e67746164646974696f6e616c50726f70657274696573f46e7769746842797465417272617973a56474797065666f626a65637467696e646963657381a2646e616d6566696e646578316a70726f7065727469657381a16e6279746541727261794669656c6463617363687265717569726564816e6279746541727261794669656c646a70726f70657274696573a26e6279746541727261794669656c64a36474797065656172726179686d61784974656d731069627974654172726179f56f6964656e7469666965724669656c64a56474797065656172726179686d61784974656d731820686d696e4974656d73182069627974654172726179f570636f6e74656e744d656469615479706578216170706c69636174696f6e2f782e646173682e6470702e6964656e746966696572746164646974696f6e616c50726f70657274696573f46f696e6465786564446f63756d656e74a56474797065666f626a65637467696e646963657386a3646e616d6566696e646578316a70726f7065727469657382a168246f776e6572496463617363a16966697273744e616d656361736366756e69717565f5a3646e616d6566696e646578326a70726f7065727469657382a168246f776e6572496463617363a1686c6173744e616d656361736366756e69717565f5a2646e616d6566696e646578336a70726f7065727469657381a1686c6173744e616d6563617363a2646e616d6566696e646578346a70726f7065727469657382a16a2463726561746564417463617363a16a2475706461746564417463617363a2646e616d6566696e646578356a70726f7065727469657381a16a2475706461746564417463617363a2646e616d6566696e646578366a70726f7065727469657381a16a2463726561746564417463617363687265717569726564846966697273744e616d656a246372656174656441746a24757064617465644174686c6173744e616d656a70726f70657274696573a2686c6173744e616d65a2647479706566737472696e67696d61784c656e677468183f6966697273744e616d65a2647479706566737472696e67696d61784c656e677468183f746164646974696f6e616c50726f70657274696573f4', 'hex');
95
+ const dataContractBuffer = dataContract.toBuffer();
103
96
 
104
- const dataContract = await dpp.dataContract.createFromBuffer(dataContractBuffer);
97
+ const dataContractNew = await dpp.dataContract.createFromBuffer(dataContractBuffer);
105
98
 
106
99
  const updatedDataContract = await dpp.dataContract.createFromObject(
107
- dataContract.toObject(),
100
+ dataContractNew.toObject(),
108
101
  );
109
102
 
110
103
  updatedDataContract.incrementVersion();
@@ -112,7 +105,7 @@ describe('DataContractFacade', () => {
112
105
  const dataContractUpdateTransition = dpp.dataContract
113
106
  .createDataContractUpdateTransition(updatedDataContract);
114
107
 
115
- const { identityPublicKey, privateKey } = await getPrivateAndPublicKey();
108
+ const { identityPublicKey, privateKey } = await getPrivateAndPublicKeyForSigningFixture();
116
109
 
117
110
  dataContractUpdateTransition.sign(
118
111
  identityPublicKey,
@@ -129,7 +122,7 @@ describe('DataContractFacade', () => {
129
122
  });
130
123
  });
131
124
 
132
- describe('validate', () => {
125
+ describe.skip('validate', () => {
133
126
  it('should validate raw data contract', async () => {
134
127
  const result = await dpp.dataContract.validate(rawDataContract);
135
128
 
@@ -138,7 +131,7 @@ describe('DataContractFacade', () => {
138
131
  });
139
132
 
140
133
  it('should validate DataContract instance', async () => {
141
- const result = await dpp.dataContract.validate(dataContractWasm);
134
+ const result = await dpp.dataContract.validate(dataContract);
142
135
 
143
136
  expect(result).to.be.an.instanceOf(ValidationResult);
144
137
  expect(result.getErrors().length).to.be.equal(0);
@@ -1,12 +1,12 @@
1
1
  const crypto = require('crypto');
2
- const protocolVersion = require('@dashevo/dpp/lib/version/protocolVersion');
3
2
 
4
- const getDataContractFixture = require('@dashevo/dpp/lib/test/fixtures/getDataContractFixture');
3
+ const getDataContractFixture = require('../../../../../../../lib/test/fixtures/getDataContractFixture');
5
4
  const { expectJsonSchemaError, expectValidationError, expectValueError } = require('../../../../../../../lib/test/expect/expectError');
6
5
 
7
- const { default: loadWasmDpp } = require('../../../../../../../dist');
6
+ const { default: loadWasmDpp } = require('../../../../../../..');
7
+ const { getLatestProtocolVersion } = require('../../../../../../..');
8
8
 
9
- describe('validateDataContractCreateTransitionBasicFactory', () => {
9
+ describe.skip('validateDataContractCreateTransitionBasicFactory', () => {
10
10
  let stateTransition;
11
11
  let rawStateTransition;
12
12
  let dataContract;
@@ -29,11 +29,11 @@ describe('validateDataContractCreateTransitionBasicFactory', () => {
29
29
  });
30
30
 
31
31
  beforeEach(async () => {
32
- dataContract = getDataContractFixture();
32
+ dataContract = await getDataContractFixture();
33
33
  rawDataContract = dataContract.toObject();
34
34
 
35
35
  stateTransition = new DataContractCreateTransition({
36
- protocolVersion: protocolVersion.latestVersion,
36
+ protocolVersion: getLatestProtocolVersion(),
37
37
  dataContract: rawDataContract,
38
38
  entropy: dataContract.getEntropy(),
39
39
  signature: Buffer.alloc(65),
@@ -1,11 +1,11 @@
1
- const protocolVersion = require('@dashevo/dpp/lib/version/protocolVersion');
2
- const createStateRepositoryMock = require('@dashevo/dpp/lib/test/mocks/createStateRepositoryMock');
3
- const getDataContractFixture = require('@dashevo/dpp/lib/test/fixtures/getDataContractFixture');
1
+ const createStateRepositoryMock = require('../../../../../../../lib/test/mocks/createStateRepositoryMock');
2
+ const getDataContractFixture = require('../../../../../../../lib/test/fixtures/getDataContractFixture');
4
3
  const { expectJsonSchemaError, expectValidationError, expectValueError } = require('../../../../../../../lib/test/expect/expectError');
5
4
 
6
- const { default: loadWasmDpp } = require('../../../../../../../dist');
5
+ const { default: loadWasmDpp } = require('../../../../../../..');
6
+ const { getLatestProtocolVersion } = require('../../../../../../..');
7
7
 
8
- describe('validateDataContractUpdateTransitionBasicFactory', () => {
8
+ describe.skip('validateDataContractUpdateTransitionBasicFactory', () => {
9
9
  let DataContractUpdateTransition;
10
10
  let validateDataContractUpdateTransitionBasic;
11
11
  let ValidationResult;
@@ -39,13 +39,13 @@ describe('validateDataContractUpdateTransitionBasicFactory', () => {
39
39
  });
40
40
 
41
41
  beforeEach(async function beforeEach() {
42
- dataContract = getDataContractFixture();
42
+ dataContract = await getDataContractFixture();
43
43
 
44
44
  rawDataContract = dataContract.toObject();
45
45
  rawDataContract.version += 1;
46
46
 
47
47
  stateTransition = new DataContractUpdateTransition({
48
- protocolVersion: protocolVersion.latestVersion,
48
+ protocolVersion: getLatestProtocolVersion(),
49
49
  dataContract: rawDataContract,
50
50
  signature: Buffer.alloc(65),
51
51
  signaturePublicKeyId: 0,
@@ -54,10 +54,11 @@ describe('validateDataContractUpdateTransitionBasicFactory', () => {
54
54
  rawStateTransition = stateTransition.toObject();
55
55
 
56
56
  const validator = new DataContractValidator();
57
- const dataContractFactory = new DataContractFactory(protocolVersion.latestVersion, validator);
58
- const wasmDataContract = await dataContractFactory.createFromBuffer(dataContract.toBuffer());
57
+ const dataContractFactory = new DataContractFactory(getLatestProtocolVersion(), validator);
58
+ const reCreatedDataContract = await dataContractFactory
59
+ .createFromBuffer(dataContract.toBuffer());
59
60
  stateRepositoryMock = createStateRepositoryMock(this.sinonSandbox);
60
- stateRepositoryMock.fetchDataContract.resolves(wasmDataContract);
61
+ stateRepositoryMock.fetchDataContract.resolves(reCreatedDataContract);
61
62
 
62
63
  executionContext = new StateTransitionExecutionContext();
63
64
 
@@ -1,10 +1,10 @@
1
1
  const lodashCloneDeep = require('lodash/cloneDeep');
2
- const getDataContractFixture = require('@dashevo/dpp/lib/test/fixtures/getDataContractFixture');
2
+ const getDataContractFixture = require('../../../../lib/test/fixtures/getDataContractFixture');
3
3
  const { expectJsonSchemaError, expectValidationError } = require('../../../../lib/test/expect/expectError');
4
4
 
5
5
  const { default: loadWasmDpp } = require('../../../../dist');
6
6
 
7
- describe('validateDataContractFactory', () => {
7
+ describe.skip('validateDataContractFactory', () => {
8
8
  let dataContract;
9
9
  let validateDataContract;
10
10
 
@@ -37,7 +37,7 @@ describe('validateDataContractFactory', () => {
37
37
  });
38
38
 
39
39
  beforeEach(async () => {
40
- dataContract = getDataContractFixture();
40
+ dataContract = await getDataContractFixture();
41
41
 
42
42
  const dataContractValidator = new DataContractValidator();
43
43
 
@@ -32,7 +32,7 @@ describe('ExtendedDocument', () => {
32
32
  document.setMetadata(metadataFixture);
33
33
  });
34
34
 
35
- describe('#toJSON', () => {
35
+ describe.skip('#toJSON', () => {
36
36
  it('should return json document - Rust', () => {
37
37
  const result = document.toJSON();
38
38
 
@@ -54,7 +54,8 @@ describe('ExtendedDocument', () => {
54
54
  const result = document.toObject();
55
55
 
56
56
  expect(result).to.deep.equal({
57
- $protocolVersion: document.getProtocolVersion(),
57
+ $createdAt: null, // TODO: it should be omitted
58
+ $updatedAt: null,
58
59
  $dataContractId: dataContract.getId().toBuffer(),
59
60
  $id: document.getId().toBuffer(),
60
61
  $ownerId: document.getOwnerId().toBuffer(),
@@ -77,7 +78,6 @@ describe('ExtendedDocument', () => {
77
78
  expect(result.$id.toBuffer()).to.deep.equal(document.getId().toBuffer());
78
79
  expect(result.$ownerId.toBuffer()).to.deep.equal(document.getOwnerId().toBuffer());
79
80
  expect(result.identifierField.toBuffer()).to.deep.equal(document.get('identifierField').toBuffer());
80
- expect(result.$protocolVersion).to.deep.equal(document.getProtocolVersion());
81
81
  expect(result.$revision).to.deep.equal(document.getRevision());
82
82
  expect(result.$type).to.deep.equal(document.getType());
83
83
  expect(result.byteArrayField).to.deep.equal(document.get('byteArrayField'));
@@ -1,64 +1,48 @@
1
1
  const crypto = require('crypto');
2
- const generateRandomIdentifier = require('@dashevo/dpp/lib/test/utils/generateRandomIdentifier');
3
- const createStateRepositoryMock = require('@dashevo/dpp/lib/test/mocks/createStateRepositoryMock');
4
- const getDataContractFixture = require('@dashevo/dpp/lib/test/fixtures/getDataContractFixture');
5
- const getDocumentsFixture = require('@dashevo/dpp/lib/test/fixtures/getDocumentsFixture');
6
- const getDocumentTransitionsFixture = require('../../../lib/test/fixtures/getDocumentTransitionsFixture');
7
-
8
- const { default: loadWasmDpp } = require('../../../dist');
9
- const getBlsAdapterMock = require('../../../lib/test/mocks/getBlsAdapterMock');
10
-
11
- let ExtendedDocument;
12
- let DataContract;
13
- let Identifier;
14
- let ValidationResult;
15
- let DocumentsBatchTransition;
16
- let DashPlatformProtocol;
17
- let DataContractNotPresentError;
2
+ const generateRandomIdentifier = require('../../../lib/test/utils/generateRandomIdentifierAsync');
3
+ const getDataContractFixture = require('../../../lib/test/fixtures/getDataContractFixture');
4
+ const getDocumentsFixture = require('../../../lib/test/fixtures/getDocumentsFixture');
5
+ const createStateRepositoryMock = require('../../../lib/test/mocks/createStateRepositoryMock');
6
+
7
+ const {
8
+ ExtendedDocument,
9
+ DataContract,
10
+ ValidationResult,
11
+ DocumentsBatchTransition,
12
+ DashPlatformProtocol,
13
+ DataContractNotPresentError,
14
+ } = require('../../..');
18
15
 
19
16
  describe('DocumentFacade', () => {
20
17
  let dpp;
21
18
  let document;
22
19
  let documents;
23
- let documentsJs;
24
20
  let dataContract;
25
21
  let ownerId;
26
22
  let stateRepositoryMock;
27
- let blsAdapter;
28
23
 
29
24
  beforeEach(async function beforeEach() {
30
- ({
31
- ExtendedDocument,
32
- DataContract,
33
- Identifier,
34
- ValidationResult,
35
- DocumentsBatchTransition,
36
- DashPlatformProtocol,
37
- DataContractNotPresentError,
38
- } = await loadWasmDpp());
39
-
40
- const ownerIdJs = generateRandomIdentifier();
41
- ownerId = new Identifier(ownerIdJs.toBuffer());
42
- const dataContractJs = getDataContractFixture(ownerIdJs);
43
- dataContract = new DataContract(dataContractJs.toObject());
25
+ ownerId = await generateRandomIdentifier();
26
+ const dataContractFixture = await getDataContractFixture(ownerId.toBuffer());
27
+ const dataContractObject = dataContractFixture.toObject();
28
+
29
+ dataContract = new DataContract({
30
+ $format_version: '0',
31
+ id: dataContractObject.id,
32
+ version: 1,
33
+ ownerId: dataContractObject.ownerId,
34
+ documentSchemas: dataContractObject.documentSchemas,
35
+ });
44
36
 
45
37
  stateRepositoryMock = createStateRepositoryMock(this.sinonSandbox);
46
38
  stateRepositoryMock.fetchDataContract.resolves(dataContract);
47
39
 
48
- blsAdapter = await getBlsAdapterMock();
49
40
  dpp = new DashPlatformProtocol(
50
- blsAdapter,
51
- stateRepositoryMock,
52
41
  { generate: () => crypto.randomBytes(32) },
53
42
  1,
54
43
  );
55
44
 
56
- documentsJs = getDocumentsFixture(dataContractJs);
57
- documents = documentsJs.map((d) => {
58
- const currentDocument = new ExtendedDocument(d.toObject(), dataContract.clone());
59
- currentDocument.setEntropy(d.entropy);
60
- return currentDocument;
61
- });
45
+ documents = await getDocumentsFixture(dataContract);
62
46
  ([document] = documents);
63
47
  });
64
48
 
@@ -66,6 +50,7 @@ describe('DocumentFacade', () => {
66
50
  it('should create Document - Rust', async () => {
67
51
  const documentType = document.getType();
68
52
  const documentData = document.getData();
53
+
69
54
  const result = dpp.document.create(
70
55
  dataContract,
71
56
  ownerId,
@@ -80,7 +65,7 @@ describe('DocumentFacade', () => {
80
65
  });
81
66
  });
82
67
 
83
- describe('createFromObject', () => {
68
+ describe.skip('createFromObject', () => {
84
69
  it('should throw MissingOption if stateRepository is not set - Rust', async () => {
85
70
  // not applicable
86
71
  });
@@ -95,7 +80,7 @@ describe('DocumentFacade', () => {
95
80
  });
96
81
  });
97
82
 
98
- describe('createFromBuffer', () => {
83
+ describe.skip('createFromBuffer', () => {
99
84
  it('should throw MissingOption if stateRepository is not set - Rust', async () => {
100
85
  // not applicable
101
86
  });
@@ -116,14 +101,14 @@ describe('DocumentFacade', () => {
116
101
  });
117
102
 
118
103
  expect(result).to.be.instanceOf(DocumentsBatchTransition);
119
- expect(result.getTransitions().map((t) => t.toObject()))
120
- .has.deep.members(getDocumentTransitionsFixture({
121
- create: documentsJs,
122
- }).map((t) => t.toObject()));
104
+ // expect(result.getTransitions().map((t) => t.toObject()))
105
+ // .has.deep.members(getDocumentTransitionsFixture({
106
+ // create: documentsJs,
107
+ // }).map((t) => t.toObject()));
123
108
  });
124
109
  });
125
110
 
126
- describe('validate', () => {
111
+ describe.skip('validate', () => {
127
112
  it('should throw MissingOption if stateRepository is not set - Rust', async () => {
128
113
  // not applicable
129
114
  });
@@ -1,13 +1,10 @@
1
- const IdentityPublicKey = require('@dashevo/dpp/lib/identity/IdentityPublicKey');
1
+ const createStateRepositoryMock = require('../../../../../lib/test/mocks/createStateRepositoryMock');
2
+ const getDataContractFixture = require('../../../../../lib/test/fixtures/getDataContractFixture');
3
+ const getDocumentsFixture = require('../../../../../lib/test/fixtures/getDocumentsFixture');
2
4
 
3
- const createStateRepositoryMock = require('@dashevo/dpp/lib/test/mocks/createStateRepositoryMock');
4
- const getDataContractFixture = require('@dashevo/dpp/lib/test/fixtures/getDataContractFixture');
5
- const getDocumentsFixture = require('@dashevo/dpp/lib/test/fixtures/getDocumentsFixture');
5
+ const { default: loadWasmDpp } = require('../../../../..');
6
+ const { IdentityPublicKey } = require('../../../../..');
6
7
 
7
- const { default: loadWasmDpp } = require('../../../../../dist');
8
-
9
- let ExtendedDocument;
10
- let DataContract;
11
8
  let ProtocolVersionValidator;
12
9
  let DocumentValidator;
13
10
  let DocumentFactory;
@@ -24,30 +21,22 @@ describe('DocumentBatchTransition', () => {
24
21
 
25
22
  beforeEach(async function beforeEach() {
26
23
  ({
27
- ExtendedDocument,
28
- DataContract,
29
24
  ProtocolVersionValidator,
30
25
  DocumentFactory,
31
26
  DocumentValidator,
32
27
  } = await loadWasmDpp());
33
28
 
34
- const dataContractFixtureJs = getDataContractFixture();
35
-
36
- dataContractFixtureJs.documents.niceDocument
37
- .signatureSecurityLevelRequirement = IdentityPublicKey.SECURITY_LEVELS.MEDIUM;
38
- dataContractFixtureJs.documents.prettyDocument
39
- .signatureSecurityLevelRequirement = IdentityPublicKey.SECURITY_LEVELS.MASTER;
40
-
41
- dataContractFixture = new DataContract(dataContractFixtureJs.toObject());
29
+ dataContractFixture = await getDataContractFixture();
30
+ //
31
+ // dataContractFixtureJs.documents.niceDocument
32
+ // .signatureSecurityLevelRequirement = IdentityPublicKey.SECURITY_LEVELS.MEDIUM;
33
+ // dataContractFixtureJs.documents.prettyDocument
34
+ // .signatureSecurityLevelRequirement = IdentityPublicKey.SECURITY_LEVELS.MASTER;
42
35
 
43
36
  // 0 is niceDocument,
44
37
  // 1 and 2 are pretty documents,
45
38
  // 3 and 4 are indexed documents that do not have security level specified
46
- documentsFixture = getDocumentsFixture(dataContractFixtureJs).map((doc) => {
47
- const document = new ExtendedDocument(doc.toObject(), dataContractFixture.clone());
48
- document.setEntropy(doc.entropy);
49
- return document;
50
- });
39
+ documentsFixture = await getDocumentsFixture(dataContractFixture);
51
40
 
52
41
  [
53
42
  mediumSecurityDocumentFixture, ,
@@ -68,7 +57,7 @@ describe('DocumentBatchTransition', () => {
68
57
  });
69
58
  });
70
59
 
71
- describe('#getRequiredKeySecurityLevel', () => {
60
+ describe.skip('#getRequiredKeySecurityLevel', () => {
72
61
  it('should return the highest security level of all transitions - Rust', () => {
73
62
  stateTransitionFixture = documentFactory.createStateTransition({
74
63
  create: [mediumSecurityDocumentFixture],
@@ -1,12 +1,12 @@
1
- const protocolVersion = require('@dashevo/dpp/lib/version/protocolVersion');
2
- const generateRandomIdentifier = require('@dashevo/dpp/lib/test/utils/generateRandomIdentifier');
3
- const getDocumentTransitionsFixture = require('@dashevo/dpp/lib/test/fixtures/getDocumentTransitionsFixture');
4
- const getDocumentsFixture = require('@dashevo/dpp/lib/test/fixtures/getDocumentsFixture');
5
- const getDataContractFixture = require('@dashevo/dpp/lib/test/fixtures/getDataContractFixture');
6
- const createStateRepositoryMock = require('@dashevo/dpp/lib/test/mocks/createStateRepositoryMock');
7
-
8
- const { default: loadWasmDpp } = require('../../../../../../../dist');
1
+ const getDocumentTransitionsFixture = require('../../../../../../../lib/test/fixtures/getDocumentTransitionsFixture');
2
+ const getDocumentsFixture = require('../../../../../../../lib/test/fixtures/getDocumentsFixture');
3
+ const getDataContractFixture = require('../../../../../../../lib/test/fixtures/getDataContractFixture');
4
+ const createStateRepositoryMock = require('../../../../../../../lib/test/mocks/createStateRepositoryMock');
5
+
6
+ const { default: loadWasmDpp } = require('../../../../../../..');
7
+ const { getLatestProtocolVersion } = require('../../../../../../..');
9
8
  const { expectJsonSchemaError, expectValidationError, expectValueError } = require('../../../../../../../lib/test/expect/expectError');
9
+ const generateRandomIdentifierAsync = require('../../../../../../../lib/test/utils/generateRandomIdentifierAsync');
10
10
 
11
11
  let DataContract;
12
12
  let DocumentsBatchTransition;
@@ -26,7 +26,7 @@ let ValidationResult;
26
26
  let ProtocolVersionValidator;
27
27
  let ValueError;
28
28
 
29
- describe('validateDocumentsBatchTransitionBasicFactory', () => {
29
+ describe.skip('validateDocumentsBatchTransitionBasicFactory', () => {
30
30
  let dataContract;
31
31
  let documents;
32
32
  let rawStateTransition;
@@ -71,7 +71,7 @@ describe('validateDocumentsBatchTransitionBasicFactory', () => {
71
71
  executionContext = new StateTransitionExecutionContext();
72
72
 
73
73
  stateTransition = new DocumentsBatchTransition({
74
- protocolVersion: protocolVersion.latestVersion,
74
+ protocolVersion: getLatestProtocolVersion(),
75
75
  ownerId,
76
76
  contractId: dataContract.getId(),
77
77
  transitions: documentTransitions.map((t) => t.toObject()),
@@ -425,7 +425,7 @@ describe('validateDocumentsBatchTransitionBasicFactory', () => {
425
425
  const [documentTransition] = documentTransitions.map((t) => t.toObject());
426
426
 
427
427
  stateTransition = new DocumentsBatchTransition({
428
- protocolVersion: protocolVersion.latestVersion,
428
+ protocolVersion: getLatestProtocolVersion(),
429
429
  ownerId,
430
430
  contractId: dataContract.getId(),
431
431
  transitions: [documentTransition, documentTransition],
@@ -627,7 +627,7 @@ describe('validateDocumentsBatchTransitionBasicFactory', () => {
627
627
  const [firstTransition] = rawStateTransition.transitions;
628
628
 
629
629
  const expectedId = firstTransition.$id;
630
- firstTransition.$id = generateRandomIdentifier().toBuffer();
630
+ firstTransition.$id = (await generateRandomIdentifierAsync()).toBuffer();
631
631
 
632
632
  const result = await validateDocumentsBatchTransitionBasic(
633
633
  protocolVersionValidator,
@@ -745,7 +745,7 @@ describe('validateDocumentsBatchTransitionBasicFactory', () => {
745
745
  });
746
746
 
747
747
  stateTransition = new DocumentsBatchTransition({
748
- protocolVersion: protocolVersion.latestVersion,
748
+ protocolVersion: getLatestProtocolVersion(),
749
749
  ownerId,
750
750
  contractId: dataContract.getId(),
751
751
  transitions: documentTransitions.map((t) => t.toObject()),
@@ -848,7 +848,7 @@ describe('validateDocumentsBatchTransitionBasicFactory', () => {
848
848
  });
849
849
 
850
850
  stateTransition = new DocumentsBatchTransition({
851
- protocolVersion: protocolVersion.latestVersion,
851
+ protocolVersion: getLatestProtocolVersion(),
852
852
  ownerId,
853
853
  contractId: dataContract.getId(),
854
854
  transitions: documentTransitions.map((t) => t.toObject()),
@@ -895,7 +895,7 @@ describe('validateDocumentsBatchTransitionBasicFactory', () => {
895
895
  const duplicates = [duplicatedTransition, indexedTransition];
896
896
 
897
897
  stateTransition = new DocumentsBatchTransition({
898
- protocolVersion: protocolVersion.latestVersion,
898
+ protocolVersion: getLatestProtocolVersion(),
899
899
  ownerId,
900
900
  contractId: dataContract.getId(),
901
901
  transitions: duplicates,
@@ -1,5 +1,5 @@
1
- const getDataContractFixture = require('@dashevo/dpp/lib/test/fixtures/getDataContractFixture');
2
- const getDocumentsFixture = require('@dashevo/dpp/lib/test/fixtures/getDocumentsFixture');
1
+ const getDataContractFixture = require('../../../../lib/test/fixtures/getDataContractFixture');
2
+ const getDocumentsFixture = require('../../../../lib/test/fixtures/getDocumentsFixture');
3
3
 
4
4
  const { expectJsonSchemaError, expectValidationError } = require('../../../../lib/test/expect/expectError');
5
5
  const { default: loadWasmDpp } = require('../../../../dist');
@@ -9,7 +9,7 @@ let ProtocolVersionValidator;
9
9
  let DataContract;
10
10
  let InvalidDocumentTypeError;
11
11
 
12
- describe('validateDocumentFactory', () => {
12
+ describe.skip('validateDocumentFactory', () => {
13
13
  let dataContract;
14
14
  let dataContractJs;
15
15
  let rawDocuments;