@dashevo/wasm-dpp 0.25.0-dev.8 → 0.25.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 (295) hide show
  1. package/Cargo.toml +33 -7
  2. package/README.md +11 -6
  3. package/dist/errors/patchConsensusErrors.js +94 -115
  4. package/dist/wasm/wasm_dpp.d.ts +2213 -4113
  5. package/dist/wasm/wasm_dpp.js +17748 -2639
  6. package/dist/wasm/wasm_dpp_bg.js +1 -1
  7. package/lib/dpp.ts +1 -1
  8. package/lib/errors/patchConsensusErrors.ts +94 -93
  9. package/lib/test/bootstrap.js +5 -0
  10. package/lib/test/fixtures/getDataContractFixture.js +11 -5
  11. package/lib/test/fixtures/getDocumentsFixture.js +9 -5
  12. package/lib/test/fixtures/getIdentityCreateTransitionFixture.js +14 -20
  13. package/lib/test/fixtures/getIdentityCreditTransferTransitionFixture.js +14 -0
  14. package/lib/test/fixtures/getIdentityFixture.js +21 -32
  15. package/lib/test/fixtures/getIdentityTopUpTransitionFixture.js +7 -10
  16. package/lib/test/fixtures/getIdentityUpdateTransitionFixture.js +13 -28
  17. package/lib/test/fixtures/getPrivateAndPublicKeyForSigningFixture.js +7 -9
  18. package/lib/test/fixtures/js/generateRandomIdentifier.js +1 -0
  19. package/lib/test/fixtures/js/getChainAssetLockProofFixture.js +1 -0
  20. package/lib/test/fixtures/js/getDataContractFixture.js +1 -0
  21. package/lib/test/fixtures/js/getDocumentTransitionsFixture.js +1 -0
  22. package/lib/test/fixtures/js/getDocumentsFixture.js +1 -0
  23. package/lib/test/fixtures/js/getInstantAssetLockProofFixture.js +1 -0
  24. package/lib/test/mocks/createStateRepositoryMock.js +1 -0
  25. package/lib/wasm/wasm_dpp.d.ts +2213 -4113
  26. package/package.json +6 -6
  27. package/scripts/build-wasm.sh +30 -29
  28. package/src/bls_adapter.rs +1 -1
  29. package/src/dash_platform_protocol.rs +173 -196
  30. package/src/data_contract/data_contract.rs +309 -199
  31. package/src/data_contract/data_contract_facade.rs +28 -47
  32. package/src/data_contract/errors/mod.rs +1 -0
  33. package/src/data_contract/mod.rs +2 -2
  34. package/src/data_contract/state_transition/data_contract_create_transition/mod.rs +92 -79
  35. package/src/data_contract/state_transition/data_contract_update_transition/mod.rs +84 -77
  36. package/src/data_contract_factory/data_contract_factory.rs +43 -83
  37. package/src/document/document_facade.rs +81 -76
  38. package/src/document/errors/document_already_exists_error.rs +6 -6
  39. package/src/document/errors/document_no_revision_error.rs +1 -0
  40. package/src/document/errors/document_not_provided_error.rs +6 -6
  41. package/src/document/errors/invalid_document_action_error.rs +11 -7
  42. package/src/document/errors/invalid_initial_revision_error.rs +4 -4
  43. package/src/document/errors/mismatch_owners_ids_error.rs +5 -8
  44. package/src/document/errors/mod.rs +5 -0
  45. package/src/document/errors/revision_absent_error.rs +6 -6
  46. package/src/document/errors/trying_to_delete_immutable_document_error.rs +19 -0
  47. package/src/document/errors/trying_to_replace_immutable_document_error.rs +4 -4
  48. package/src/document/extended_document.rs +76 -76
  49. package/src/document/factory.rs +140 -119
  50. package/src/document/generate_document_id.rs +2 -2
  51. package/src/document/mod.rs +164 -150
  52. package/src/document/state_transition/document_batch_transition/document_transition/document_create_transition.rs +50 -48
  53. package/src/document/state_transition/document_batch_transition/document_transition/document_delete_transition.rs +14 -14
  54. package/src/document/state_transition/document_batch_transition/document_transition/document_replace_transition.rs +50 -38
  55. package/src/document/state_transition/document_batch_transition/document_transition/mod.rs +165 -153
  56. package/src/document/state_transition/document_batch_transition/mod.rs +232 -222
  57. package/src/errors/consensus/basic/data_contract/data_contract_have_new_unique_index_error.rs +2 -9
  58. package/src/errors/consensus/basic/data_contract/data_contract_immutable_properties_update_error.rs +1 -9
  59. package/src/errors/consensus/basic/data_contract/data_contract_invalid_index_definition_update_error.rs +2 -10
  60. package/src/errors/consensus/basic/data_contract/data_contract_max_depth_exceed_error.rs +1 -9
  61. package/src/errors/consensus/basic/data_contract/data_contract_unique_indices_changed_error.rs +1 -9
  62. package/src/errors/consensus/basic/data_contract/duplicate_index_name_error.rs +1 -9
  63. package/src/errors/consensus/basic/data_contract/incompatible_data_contract_schema_error.rs +1 -9
  64. package/src/errors/consensus/basic/data_contract/incompatible_re2_pattern_error.rs +1 -9
  65. package/src/errors/consensus/basic/data_contract/index_error/duplicate_index_error.rs +1 -9
  66. package/src/errors/consensus/basic/data_contract/index_error/invalid_compound_index_error.rs +1 -9
  67. package/src/errors/consensus/basic/data_contract/index_error/invalid_index_property_type_error.rs +1 -9
  68. package/src/errors/consensus/basic/data_contract/index_error/invalid_indexed_property_constraint_error.rs +1 -9
  69. package/src/errors/consensus/basic/data_contract/index_error/system_property_index_already_present_error.rs +1 -9
  70. package/src/errors/consensus/basic/data_contract/index_error/undefined_index_property_error.rs +1 -9
  71. package/src/errors/consensus/basic/data_contract/index_error/unique_indices_limit_reached_error.rs +1 -9
  72. package/src/errors/consensus/basic/data_contract/invalid_data_contract_id_error.rs +1 -9
  73. package/src/errors/consensus/basic/data_contract/invalid_data_contract_version_error.rs +1 -9
  74. package/src/errors/consensus/basic/data_contract/invalid_json_schema_ref_error.rs +1 -9
  75. package/src/errors/consensus/basic/decode/protocol_version_parsing_error.rs +10 -7
  76. package/src/errors/consensus/basic/decode/serialized_object_parsing_error.rs +1 -9
  77. package/src/errors/consensus/basic/document/data_contract_not_present_error.rs +1 -9
  78. package/src/errors/consensus/basic/document/duplicate_document_transitions_with_ids_error.rs +1 -9
  79. package/src/errors/consensus/basic/document/duplicate_document_transitions_with_indices_error.rs +1 -9
  80. package/src/errors/consensus/basic/document/inconsistent_compound_index_data_error.rs +1 -9
  81. package/src/errors/consensus/basic/document/invalid_document_transition_action_error.rs +1 -9
  82. package/src/errors/consensus/basic/document/invalid_document_transition_id_error.rs +1 -9
  83. package/src/errors/consensus/basic/document/invalid_document_type_error.rs +1 -9
  84. package/src/errors/consensus/basic/document/missing_data_contract_id_error.rs +1 -9
  85. package/src/errors/consensus/basic/document/missing_document_transition_action_error.rs +1 -9
  86. package/src/errors/consensus/basic/document/missing_document_transition_type_error.rs +1 -9
  87. package/src/errors/consensus/basic/document/missing_document_type_error.rs +1 -9
  88. package/src/errors/consensus/basic/identity/duplicated_identity_public_key_error.rs +1 -9
  89. package/src/errors/consensus/basic/identity/duplicated_identity_public_key_id_error.rs +1 -9
  90. package/src/errors/consensus/basic/identity/identity_asset_lock_proof_locked_transaction_mismatch_error.rs +3 -11
  91. package/src/errors/consensus/basic/identity/identity_asset_lock_transaction_is_not_found_error.rs +1 -9
  92. package/src/errors/consensus/basic/identity/identity_asset_lock_transaction_out_point_already_exists_error.rs +2 -10
  93. package/src/errors/consensus/basic/identity/identity_asset_lock_transaction_output_not_found_error.rs +1 -9
  94. package/src/errors/consensus/basic/identity/identity_insufficient_balance_error.rs +1 -9
  95. package/src/errors/consensus/basic/identity/invalid_asset_lock_proof_core_chain_height_error.rs +1 -9
  96. package/src/errors/consensus/basic/identity/invalid_asset_lock_proof_transaction_height_error.rs +1 -9
  97. package/src/errors/consensus/basic/identity/invalid_asset_lock_transaction_output_return_size_error.rs +1 -9
  98. package/src/errors/consensus/basic/identity/invalid_identity_asset_lock_proof_chain_lock_validation_error.rs +1 -1
  99. package/src/errors/consensus/basic/identity/invalid_identity_asset_lock_transaction_error.rs +1 -9
  100. package/src/errors/consensus/basic/identity/invalid_identity_asset_lock_transaction_output_error.rs +1 -9
  101. package/src/errors/consensus/basic/identity/invalid_identity_credit_withdrawal_transition_core_fee_error.rs +1 -9
  102. package/src/errors/consensus/basic/identity/invalid_identity_credit_withdrawal_transition_output_script_error.rs +1 -9
  103. package/src/errors/consensus/basic/identity/invalid_identity_credit_withdrawal_transition_pooling_error.rs +1 -9
  104. package/src/errors/consensus/basic/identity/invalid_identity_key_signature_error.rs +1 -9
  105. package/src/errors/consensus/basic/identity/invalid_identity_public_key_data_error.rs +1 -9
  106. package/src/errors/consensus/basic/identity/invalid_identity_public_key_security_level_error.rs +1 -9
  107. package/src/errors/consensus/basic/identity/invalid_identity_public_key_type_error.rs +1 -9
  108. package/src/errors/consensus/basic/identity/invalid_instant_asset_lock_proof_error.rs +1 -9
  109. package/src/errors/consensus/basic/identity/invalid_instant_asset_lock_proof_signature_error.rs +1 -9
  110. package/src/errors/consensus/basic/identity/missing_master_public_key_error.rs +1 -9
  111. package/src/errors/consensus/basic/identity/missing_public_key_error.rs +1 -9
  112. package/src/errors/consensus/basic/incompatible_protocol_version_error.rs +1 -9
  113. package/src/errors/consensus/basic/invalid_identifier_error.rs +1 -9
  114. package/src/errors/consensus/basic/invalid_signature_public_key_security_level_error.rs +7 -15
  115. package/src/errors/consensus/basic/invalid_state_transition_signature_error.rs +1 -9
  116. package/src/errors/consensus/basic/json_schema_compilation_error.rs +1 -9
  117. package/src/errors/consensus/basic/json_schema_error.rs +1 -9
  118. package/src/errors/consensus/basic/mod.rs +2 -0
  119. package/src/errors/consensus/basic/public_key_is_disabled_error.rs +1 -9
  120. package/src/errors/consensus/basic/public_key_security_level_not_met_error.rs +2 -11
  121. package/src/errors/consensus/basic/state_transition/invalid_state_transition_type_error.rs +1 -9
  122. package/src/errors/consensus/basic/state_transition/missing_state_transition_type_error.rs +1 -9
  123. package/src/errors/consensus/basic/state_transition/state_transition_max_size_exceeded_error.rs +1 -9
  124. package/src/errors/consensus/basic/unsupported_protocol_version_error.rs +1 -9
  125. package/src/errors/consensus/basic/unsupported_version_error.rs +44 -0
  126. package/src/errors/consensus/basic/wrong_public_key_purpose_error.rs +1 -9
  127. package/src/errors/consensus/consensus_error.rs +44 -21
  128. package/src/errors/consensus/deserialize.rs +2 -1
  129. package/src/errors/consensus/fee/balance_is_not_enough_error.rs +5 -2
  130. package/src/errors/consensus/signature/basic_bls_error.rs +1 -9
  131. package/src/errors/consensus/signature/basic_ecdsa_error.rs +1 -9
  132. package/src/errors/consensus/signature/identity_not_found_error.rs +4 -2
  133. package/src/errors/consensus/signature/signature_should_not_be_present_error.rs +1 -9
  134. package/src/errors/consensus/state/data_contract/data_contract_already_present_error.rs +3 -2
  135. package/src/errors/consensus/state/data_contract/data_contract_config_update_error.rs +42 -0
  136. package/src/errors/consensus/state/data_contract/data_contract_is_readonly_error.rs +44 -0
  137. package/src/errors/consensus/state/data_contract/data_trigger/data_trigger_condition_error.rs +2 -1
  138. package/src/errors/consensus/state/data_contract/data_trigger/data_trigger_execution_error.rs +2 -1
  139. package/src/errors/consensus/state/data_contract/data_trigger/data_trigger_invalid_result_error.rs +2 -1
  140. package/src/errors/consensus/state/data_contract/mod.rs +7 -1
  141. package/src/errors/consensus/state/document/document_already_present_error.rs +1 -9
  142. package/src/errors/consensus/state/document/document_not_found_error.rs +1 -9
  143. package/src/errors/consensus/state/document/document_owner_id_mismatch_error.rs +1 -9
  144. package/src/errors/consensus/state/document/document_timestamp_window_violation_error.rs +1 -9
  145. package/src/errors/consensus/state/document/document_timestamps_are_equal_error.rs +34 -0
  146. package/src/errors/consensus/state/document/document_timestamps_mismatch_error.rs +1 -9
  147. package/src/errors/consensus/state/document/duplicate_unique_index_error.rs +1 -9
  148. package/src/errors/consensus/state/document/invalid_document_revision_error.rs +9 -12
  149. package/src/errors/consensus/state/document/mod.rs +2 -0
  150. package/src/errors/consensus/state/identity/duplicated_identity_public_key_id_state_error.rs +1 -9
  151. package/src/errors/consensus/state/identity/duplicated_identity_public_key_state_error.rs +1 -9
  152. package/src/errors/consensus/state/identity/identity_already_exists_error.rs +1 -9
  153. package/src/errors/consensus/state/identity/identity_public_key_disabled_at_window_violation_error.rs +1 -9
  154. package/src/errors/consensus/state/identity/identity_public_key_is_disabled_error.rs +1 -9
  155. package/src/errors/consensus/state/identity/identity_public_key_is_read_only_error.rs +1 -9
  156. package/src/errors/consensus/state/identity/invalid_identity_public_key_id_error.rs +2 -9
  157. package/src/errors/consensus/state/identity/invalid_identity_revision_error.rs +1 -9
  158. package/src/errors/consensus/state/identity/max_identity_public_key_limit_reached_error.rs +1 -9
  159. package/src/errors/consensus/value_error.rs +1 -9
  160. package/src/errors/from.rs +12 -8
  161. package/src/errors/mod.rs +7 -7
  162. package/src/errors/value_error.rs +5 -0
  163. package/src/identity/errors/asset_lock_transaction_is_not_found_error.rs +1 -2
  164. package/src/identity/factory_utils.rs +13 -13
  165. package/src/identity/identity.rs +275 -0
  166. package/src/identity/identity_facade.rs +87 -70
  167. package/src/identity/identity_factory.rs +74 -54
  168. package/src/identity/identity_public_key/mod.rs +87 -64
  169. package/src/identity/mod.rs +25 -247
  170. package/src/identity/state_transition/asset_lock_proof/chain/chain_asset_lock_proof_structure_validator.rs +0 -1
  171. package/src/identity/state_transition/asset_lock_proof/chain/mod.rs +3 -1
  172. package/src/identity/state_transition/asset_lock_proof/instant/instant_asset_lock_proof.rs +2 -2
  173. package/src/identity/state_transition/asset_lock_proof/instant/instant_asset_lock_proof_structure_validator.rs +0 -1
  174. package/src/identity/state_transition/asset_lock_proof/instant/mod.rs +3 -1
  175. package/src/identity/state_transition/asset_lock_proof/mod.rs +112 -116
  176. package/src/identity/state_transition/identity_create_transition/identity_create_transition.rs +71 -65
  177. package/src/identity/state_transition/identity_create_transition/identity_create_transition_basic_validator.rs +0 -1
  178. package/src/identity/state_transition/identity_create_transition/mod.rs +3 -3
  179. package/src/identity/state_transition/identity_create_transition/to_object.rs +10 -12
  180. package/src/identity/state_transition/identity_credit_transfer_transition/apply_identity_credit_transfer_transition.rs +31 -0
  181. package/src/identity/state_transition/identity_credit_transfer_transition/identity_credit_transfer_transition_basic_validator.rs +66 -0
  182. package/src/identity/state_transition/identity_credit_transfer_transition/identity_credit_transfer_transition_state_validator.rs +44 -0
  183. package/src/identity/state_transition/identity_credit_transfer_transition/mod.rs +8 -0
  184. package/src/identity/state_transition/identity_credit_transfer_transition/to_object.rs +49 -0
  185. package/src/identity/state_transition/identity_credit_transfer_transition/transition.rs +344 -0
  186. package/src/identity/state_transition/identity_public_key_transitions.rs +89 -75
  187. package/src/identity/state_transition/identity_topup_transition/identity_topup_transition.rs +67 -62
  188. package/src/identity/state_transition/identity_topup_transition/identity_topup_transition_basic_validator.rs +0 -2
  189. package/src/identity/state_transition/identity_topup_transition/mod.rs +3 -3
  190. package/src/identity/state_transition/identity_topup_transition/to_object.rs +8 -12
  191. package/src/identity/state_transition/identity_update_transition/identity_update_public_keys_validator.rs +2 -2
  192. package/src/identity/state_transition/identity_update_transition/identity_update_transition.rs +99 -104
  193. package/src/identity/state_transition/identity_update_transition/mod.rs +4 -4
  194. package/src/identity/state_transition/identity_update_transition/to_object.rs +15 -19
  195. package/src/identity/state_transition/mod.rs +5 -2
  196. package/src/identity/state_transition/transition_types.rs +34 -0
  197. package/src/identity/state_transition/validate_public_key_signatures.rs +2 -2
  198. package/src/lib.rs +10 -11
  199. package/src/metadata.rs +3 -3
  200. package/src/protocol_version.rs +7 -0
  201. package/src/state_transition/conversion.rs +11 -1
  202. package/src/state_transition/errors/invalid_state_transition_error.rs +12 -1
  203. package/src/state_transition/fee/operations/pre_calculated_operation.rs +2 -1
  204. package/src/state_transition/mod.rs +137 -139
  205. package/src/state_transition/state_transition_facade.rs +11 -11
  206. package/src/state_transition/state_transition_factory.rs +142 -153
  207. package/src/state_transition/validation/state_transition_fee_validator.rs +1 -1
  208. package/src/state_transition/validation/validate_state_transition_identity_signature.rs +28 -10
  209. package/src/state_transition/validation/validate_state_transition_key_signature.rs +1 -1
  210. package/src/utils.rs +7 -8
  211. package/src/validation/validation_result.rs +1 -0
  212. package/test/integration/dataContract/DataContractFacade.spec.js +25 -32
  213. package/test/integration/dataContract/stateTransition/DataContractCreateTransition/validation/basic/validateDataContractCreateTransitionBasicFactory.spec.js +6 -6
  214. package/test/integration/dataContract/stateTransition/DataContractUpdateTransition/validation/basic/validateDataContractUpdateTransitionBasicFactory.spec.js +11 -10
  215. package/test/integration/dataContract/validation/validateDataContractFactory.spec.js +3 -3
  216. package/test/integration/document/Document.spec.js +3 -3
  217. package/test/integration/document/DocumentFacade.spec.js +39 -38
  218. package/test/integration/document/stateTransition/DocumentsBatchTransition/DocumentBatchTransition.spec.js +6 -7
  219. package/test/integration/document/stateTransition/DocumentsBatchTransition/validation/basic/validateDocumentsBatchTransitionBasicFactory.spec.js +15 -15
  220. package/test/integration/document/stateTransition/DocumentsBatchTransition/validation/state/executeDataTriggersFactory.spec.js +2 -2
  221. package/test/integration/document/validation/validateDocumentFactory.spec.js +3 -3
  222. package/test/integration/identity/IdentityFacade.spec.js +33 -62
  223. package/test/integration/identity/stateTransition/IdentityCreateTransition/validation/basic/validateIdentityCreateTransitionBasicFactory.spec.js +6 -8
  224. package/test/integration/identity/stateTransition/IdentityTopUpTransition/validation/basic/validateIdentityTopUpTransitionBasicFactory.spec.js +4 -7
  225. package/test/integration/identity/stateTransition/IdentityUpdateTransition/validation/basic/validateIdentityUpdateTransitionBasicFactory.spec.js +1 -1
  226. package/test/integration/identity/stateTransition/IdentityUpdateTransition/validation/state/validateIdentityUpdateTransitionStateFactory.spec.js +21 -24
  227. package/test/integration/identity/stateTransition/IdentityUpdateTransition/validation/state/validatePublicKeysState.spec.js +2 -2
  228. package/test/integration/identity/stateTransition/assetLockProof/chain/validateChainAssetLockProofStructureFactory.spec.js +4 -4
  229. package/test/integration/identity/stateTransition/assetLockProof/fetchAssetLockTransactionOutputFactory.spec.js +7 -10
  230. package/test/integration/identity/stateTransition/assetLockProof/instant/validateInstantAssetLockProofStructureFactory.spec.js +4 -5
  231. package/test/integration/identity/stateTransition/assetLockProof/validateAssetLockTransactionFactory.spec.js +6 -6
  232. package/test/integration/identity/stateTransition/validatePublicKeySignaturesFactory.spec.js +3 -7
  233. package/test/integration/identity/validation/validateIdentityFactory.spec.js +7 -6
  234. package/test/integration/identity/validation/validatePublicKeysFactory.spec.js +5 -25
  235. package/test/integration/stateTransition/StateTransitionFacade.spec.js +45 -58
  236. package/test/integration/util/generateTemporaryEcdsaPrivateKey.spec.js +1 -1
  237. package/test/unit/DashPlatformProtocol.spec.js +10 -25
  238. package/test/unit/dataContract/DataContract.spec.js +119 -148
  239. package/test/unit/dataContract/DataContractFactory.spec.js +42 -31
  240. package/test/unit/dataContract/createDataContract.spec.js +6 -6
  241. package/test/unit/dataContract/generateDataContractId.spec.js +1 -1
  242. package/test/unit/dataContract/stateTransition/DataContractCreateTransition/DataContractCreateTransition.spec.js +34 -26
  243. package/test/unit/dataContract/stateTransition/DataContractCreateTransition/applyDataContractCreateTransitionFactory.spec.js +7 -9
  244. package/test/unit/dataContract/stateTransition/DataContractCreateTransition/validation/state/validateDataContractCreateTransitionStateFactory.spec.js +10 -9
  245. package/test/unit/dataContract/stateTransition/DataContractUpdateTransition/DataContractUpdateTransition.spec.js +28 -19
  246. package/test/unit/dataContract/stateTransition/DataContractUpdateTransition/applyDataContractUpdateTransitionFactory.spec.js +7 -7
  247. package/test/unit/dataContract/stateTransition/DataContractUpdateTransition/validation/basic/validateIndicesAreBackwardCompatible.spec.js +5 -5
  248. package/test/unit/dataContract/stateTransition/DataContractUpdateTransition/validation/state/validateDataContractUpdateTransitionStateFactory.spec.js +11 -10
  249. package/test/unit/dataContract/validation/validateDataContractPatterns.spec.js +7 -7
  250. package/test/unit/dataTrigger/dpnsTriggers/createDomainDataTrigger.spec.js +1 -1
  251. package/test/unit/document/Document.spec.js +31 -20
  252. package/test/unit/document/DocumentFactory.spec.js +45 -110
  253. package/test/unit/document/fetchAndValidateDataContractFactory.spec.js +1 -1
  254. package/test/unit/document/stateTransition/DocumetsBatchTransition/DocumentsBatchTransition.spec.js +6 -7
  255. package/test/unit/document/stateTransition/DocumetsBatchTransition/applyDocumentsBatchTransitionFactory.spec.js +11 -12
  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 +1 -1
  259. package/test/unit/document/stateTransition/DocumetsBatchTransition/validation/basic/validatePartialCompoundIndices.spec.js +1 -1
  260. package/test/unit/document/stateTransition/DocumetsBatchTransition/validation/state/fetchDocumentsFactory.spec.js +1 -1
  261. package/test/unit/document/stateTransition/DocumetsBatchTransition/validation/state/validateDocumentsBatchTransitionStateFactory.spec.js +9 -9
  262. package/test/unit/document/stateTransition/DocumetsBatchTransition/validation/state/validateDocumentsUniquenessByIndicesFactory.spec.js +1 -1
  263. package/test/unit/identity/Identity.spec.js +46 -81
  264. package/test/unit/identity/IdentityFactory.spec.js +61 -75
  265. package/test/unit/identity/IdentityPublicKey.spec.js +34 -48
  266. package/test/unit/identity/stateTransition/IdentityCreateTransition/IdentityCreateTransition.spec.js +30 -63
  267. package/test/unit/identity/stateTransition/IdentityCreateTransition/applyIdentityCreateTransitionFactory.spec.js +9 -15
  268. package/test/unit/identity/stateTransition/IdentityCreateTransition/validation/state/validateIdentityCreateTransitionStateFactory.spec.js +5 -9
  269. package/test/unit/identity/stateTransition/IdentityTopUpTransition/IdentityTopUpTransition.spec.js +13 -35
  270. package/test/unit/identity/stateTransition/IdentityTopUpTransition/applyIdentityTopUpTransitionFactory.spec.js +9 -13
  271. package/test/unit/identity/stateTransition/IdentityTopUpTransition/validation/state/validateIdentityTopUpTransitionStateFactory.spec.js +5 -9
  272. package/test/unit/identity/stateTransition/IdentityUpdateTransition/IdentityUpdateTransition.spec.js +24 -46
  273. package/test/unit/identity/stateTransition/IdentityUpdateTransition/applyIdentityUpdateTransitionFactory.spec.js +4 -4
  274. package/test/unit/identity/stateTransition/assetLockProof/fetchAssetLockPublicKeyHashFactory.spec.js +1 -1
  275. package/test/unit/identity/stateTransition/identityCreditTransferTransition/identityCreditTransferTransition.spec.js +130 -0
  276. package/test/unit/stateTransition/StateTransitionExecutionContext.spec.js +1 -1
  277. package/test/unit/stateTransition/StateTransitionFactory.spec.js +16 -22
  278. package/test/unit/stateTransition/createStateTransitionFactory.spec.js +43 -21
  279. package/test/unit/stateTransition/validation/validateStateTransitionBasicFactory.spec.js +3 -3
  280. package/test/unit/stateTransition/validation/validateStateTransitionFeeFactory.spec.js +5 -17
  281. package/test/unit/stateTransition/validation/validateStateTransitionIdentitySignatureFactory.spec.js +9 -5
  282. package/test/unit/stateTransition/validation/validateStateTransitionKeySignatureFactory.spec.js +8 -14
  283. package/test/unit/stateTransition/validation/validateStateTransitionStateFactory.spec.js +1 -1
  284. package/test/unit/version/validateProtocolVersionFactory.spec.js +1 -1
  285. package/test-d/index.test-d.ts +2 -2
  286. package/src/data_contract/state_transition/data_contract_create_transition/apply.rs +0 -45
  287. package/src/data_contract/state_transition/data_contract_update_transition/apply.rs +0 -49
  288. package/src/decode_protocol_entity.rs +0 -25
  289. package/src/document/state_transition/document_batch_transition/apply_document_batch_transition.rs +0 -25
  290. package/test/integration/ajv/keywords/byteArray/addByteArrayKeyword.spec.js +0 -148
  291. package/test/integration/util/generateEntropy.spec.js +0 -17
  292. package/test/integration/util/serializer.spec.js +0 -24
  293. package/test/unit/decodeProtocolEntityFactory.spec.js +0 -69
  294. package/test/unit/identity/errors/InvalidIdentityError.spec.js +0 -46
  295. package/test/unit/stateTransition/errors/InvalidStateTransitionError.spec.js +0 -51
@@ -1,8 +1,8 @@
1
- const generateRandomIdentifier = require('@dashevo/dpp/lib/test/utils/generateRandomIdentifier');
1
+ const generateRandomIdentifier = require('../../../lib/test/utils/generateRandomIdentifierAsync');
2
2
 
3
- const { default: loadWasmDpp } = require('../../../dist');
3
+ const { default: loadWasmDpp } = require('../../..');
4
4
 
5
- describe('createDataContract', () => {
5
+ describe.skip('createDataContract', () => {
6
6
  let rawDataContract;
7
7
  let DataContract;
8
8
 
@@ -12,10 +12,10 @@ describe('createDataContract', () => {
12
12
  } = await loadWasmDpp());
13
13
  });
14
14
 
15
- beforeEach(() => {
15
+ beforeEach(async () => {
16
16
  rawDataContract = {
17
- $id: generateRandomIdentifier().toBuffer(),
18
- ownerId: generateRandomIdentifier().toBuffer(),
17
+ $id: (await generateRandomIdentifier()).toBuffer(),
18
+ ownerId: (await generateRandomIdentifier()).toBuffer(),
19
19
  protocolVersion: 4,
20
20
  version: 20,
21
21
  $schema: 'http://test.com/schema',
@@ -2,7 +2,7 @@ const bs58 = require('bs58');
2
2
 
3
3
  const { default: loadWasmDpp } = require('../../../dist');
4
4
 
5
- describe('generateDataContractId', () => {
5
+ describe.skip('generateDataContractId', () => {
6
6
  let ownerId;
7
7
  let entropy;
8
8
  let DataContractFactory;
@@ -1,10 +1,6 @@
1
- const varint = require('varint');
2
- const getDataContractFixture = require('@dashevo/dpp/lib/test/fixtures/getDataContractFixture');
3
- const stateTransitionTypes = require('@dashevo/dpp/lib/stateTransition/stateTransitionTypes');
4
-
5
- const protocolVersion = require('@dashevo/dpp/lib/version/protocolVersion');
6
-
7
- const { default: loadWasmDpp } = require('../../../../../dist');
1
+ const getDataContractFixture = require('../../../../../lib/test/fixtures/getDataContractFixture');
2
+ const { default: loadWasmDpp } = require('../../../../..');
3
+ const { StateTransitionTypes } = require('../../../../..');
8
4
 
9
5
  describe('DataContractCreateTransition', () => {
10
6
  let stateTransition;
@@ -18,29 +14,29 @@ describe('DataContractCreateTransition', () => {
18
14
  } = await loadWasmDpp());
19
15
  });
20
16
 
21
- beforeEach(() => {
22
- dataContract = getDataContractFixture();
17
+ beforeEach(async () => {
18
+ dataContract = await getDataContractFixture();
23
19
 
24
20
  stateTransition = new DataContractCreateTransition({
25
- protocolVersion: protocolVersion.latestVersion,
21
+ protocolVersion: 1,
26
22
  dataContract: dataContract.toObject(),
27
23
  entropy: dataContract.getEntropy(),
28
24
  });
29
25
  });
30
-
31
- describe('#getProtocolVersion', () => {
32
- it('should return the current protocol version', () => {
33
- const result = stateTransition.getProtocolVersion();
34
-
35
- expect(result).to.equal(protocolVersion.latestVersion);
36
- });
37
- });
26
+ //
27
+ // describe('#getProtocolVersion', () => {
28
+ // it('should return the current protocol version', () => {
29
+ // const result = stateTransition.getProtocolVersion();
30
+ //
31
+ // expect(result).to.equal(getLatestProtocolVersion());
32
+ // });
33
+ // });
38
34
 
39
35
  describe('#getType', () => {
40
36
  it('should return State Transition type', () => {
41
37
  const result = stateTransition.getType();
42
38
 
43
- expect(result).to.equal(stateTransitionTypes.DATA_CONTRACT_CREATE);
39
+ expect(result).to.equal(StateTransitionTypes.DataContractCreate);
44
40
  });
45
41
  });
46
42
 
@@ -52,12 +48,15 @@ describe('DataContractCreateTransition', () => {
52
48
  });
53
49
  });
54
50
 
55
- describe('#toJSON', () => {
51
+ describe.skip('#toJSON', () => {
56
52
  it('should return State Transition as plain JS object', () => {
53
+ const dc = dataContract.toJSON();
54
+ delete dc.$defs;
55
+
57
56
  expect(stateTransition.toJSON(true)).to.deep.equal({
58
- protocolVersion: protocolVersion.latestVersion,
59
- type: stateTransitionTypes.DATA_CONTRACT_CREATE,
60
- dataContract: dataContract.toJSON(),
57
+ protocolVersion: 1,
58
+ type: StateTransitionTypes.DataContractCreate,
59
+ dataContract: dc,
61
60
  entropy: dataContract.getEntropy().toString('base64'),
62
61
  });
63
62
  });
@@ -65,10 +64,19 @@ describe('DataContractCreateTransition', () => {
65
64
 
66
65
  describe('#toBuffer', () => {
67
66
  it('should return serialized State Transition', () => {
68
- const protocolVersionBytes = Buffer.from(varint.encode(stateTransition.getProtocolVersion()));
69
-
70
67
  const result = stateTransition.toBuffer();
71
- expect(result.compare(protocolVersionBytes, 0, 1, 0, 1)).equals(0);
68
+ expect(result).to.be.instanceOf(Buffer);
69
+ expect(result).to.have.lengthOf(2220);
70
+ });
71
+
72
+ it('should be able to restore contract config from bytes', () => {
73
+ const config = stateTransition.getDataContract().getConfig();
74
+ config.keepsHistory = true;
75
+ // stateTransition.setDataContractConfig(config);
76
+ expect(stateTransition.getDataContract().getConfig().keepsHistory).to.be.true();
77
+ const buffer = stateTransition.toBuffer();
78
+ const restoredSt = DataContractCreateTransition.fromBuffer(buffer);
79
+ expect(restoredSt.getDataContract().getConfig().keepsHistory).to.be.true();
72
80
  });
73
81
  });
74
82
 
@@ -1,10 +1,8 @@
1
- const getDataContractFixture = require('@dashevo/dpp/lib/test/fixtures/getDataContractFixture');
1
+ const getDataContractFixture = require('../../../../../lib/test/fixtures/getDataContractFixture');
2
+ const { default: loadWasmDpp } = require('../../../../..');
3
+ const { getLatestProtocolVersion } = require('../../../../..');
2
4
 
3
- const protocolVersion = require('@dashevo/dpp/lib/version/protocolVersion');
4
-
5
- const { default: loadWasmDpp } = require('../../../../../dist');
6
-
7
- describe('applyDataContractCreateTransitionFactory', () => {
5
+ describe.skip('applyDataContractCreateTransitionFactory', () => {
8
6
  let stateTransition;
9
7
  let dataContract;
10
8
  let factory;
@@ -20,11 +18,11 @@ describe('applyDataContractCreateTransitionFactory', () => {
20
18
  } = await loadWasmDpp());
21
19
  });
22
20
 
23
- beforeEach(() => {
24
- dataContract = getDataContractFixture();
21
+ beforeEach(async () => {
22
+ dataContract = await getDataContractFixture();
25
23
 
26
24
  stateTransition = new DataContractCreateTransition({
27
- protocolVersion: protocolVersion.latestVersion,
25
+ protocolVersion: getLatestProtocolVersion(),
28
26
  dataContract: dataContract.toObject(),
29
27
  entropy: Buffer.alloc(32),
30
28
  });
@@ -1,9 +1,9 @@
1
- const getDataContractFixture = require('@dashevo/dpp/lib/test/fixtures/getDataContractFixture');
2
- const protocolVersion = require('@dashevo/dpp/lib/version/protocolVersion');
1
+ const getDataContractFixture = require('../../../../../../../lib/test/fixtures/getDataContractFixture');
3
2
 
4
- const { default: loadWasmDpp } = require('../../../../../../../dist');
3
+ const { default: loadWasmDpp } = require('../../../../../../..');
4
+ const { getLatestProtocolVersion } = require('../../../../../../..');
5
5
 
6
- describe('validateDataContractCreateTransitionStateFactory', () => {
6
+ describe.skip('validateDataContractCreateTransitionStateFactory', () => {
7
7
  let validateDataContractCreateTransitionState;
8
8
  let dataContract;
9
9
  let stateTransition;
@@ -27,10 +27,10 @@ describe('validateDataContractCreateTransitionStateFactory', () => {
27
27
  } = await loadWasmDpp());
28
28
  });
29
29
 
30
- beforeEach(() => {
31
- dataContract = getDataContractFixture();
30
+ beforeEach(async () => {
31
+ dataContract = await getDataContractFixture();
32
32
  stateTransition = new DataContractCreateTransition({
33
- protocolVersion: protocolVersion.latestVersion,
33
+ protocolVersion: getLatestProtocolVersion(),
34
34
  dataContract: dataContract.toObject(),
35
35
  entropy: dataContract.getEntropy(),
36
36
  });
@@ -54,10 +54,11 @@ describe('validateDataContractCreateTransitionStateFactory', () => {
54
54
  // This time our state repository should return a data contract on fetch
55
55
  const validator = new DataContractValidator();
56
56
  const dataContractFactory = new DataContractFactory(1, validator);
57
- const wasmDataContract = await dataContractFactory.createFromBuffer(dataContract.toBuffer());
57
+ const reCreatedDataContract = await dataContractFactory
58
+ .createFromBuffer(dataContract.toBuffer());
58
59
 
59
60
  const stateRepositoryLikeWithContract = {
60
- fetchDataContract: async () => wasmDataContract,
61
+ fetchDataContract: async () => reCreatedDataContract,
61
62
  };
62
63
 
63
64
  const result = await validateDataContractCreateTransitionState(
@@ -1,10 +1,8 @@
1
- const varint = require('varint');
2
- const getDataContractFixture = require('@dashevo/dpp/lib/test/fixtures/getDataContractFixture');
3
- const stateTransitionTypes = require('@dashevo/dpp/lib/stateTransition/stateTransitionTypes');
4
- const protocolVersion = require('@dashevo/dpp/lib/version/protocolVersion');
5
1
  const JsDataContractUpdateTransition = require('@dashevo/dpp/lib/dataContract/stateTransition/DataContractUpdateTransition/DataContractUpdateTransition');
6
2
 
7
- const { default: loadWasmDpp } = require('../../../../../dist');
3
+ const getDataContractFixture = require('../../../../../lib/test/fixtures/getDataContractFixture');
4
+ const { default: loadWasmDpp } = require('../../../../..');
5
+ const { StateTransitionTypes } = require('../../../../..');
8
6
 
9
7
  describe('DataContractUpdateTransition', () => {
10
8
  let stateTransition;
@@ -18,20 +16,20 @@ describe('DataContractUpdateTransition', () => {
18
16
  } = await loadWasmDpp());
19
17
  });
20
18
 
21
- beforeEach(() => {
22
- dataContract = getDataContractFixture();
19
+ beforeEach(async () => {
20
+ dataContract = await getDataContractFixture();
23
21
 
24
22
  stateTransition = new DataContractUpdateTransition({
25
- protocolVersion: protocolVersion.latestVersion,
23
+ protocolVersion: 1,
26
24
  dataContract: dataContract.toObject(),
27
25
  });
28
26
  });
29
27
 
30
- describe('#getProtocolVersion', () => {
28
+ describe.skip('#getProtocolVersion', () => {
31
29
  it('should return the current protocol version', () => {
32
30
  const result = stateTransition.getProtocolVersion();
33
31
 
34
- expect(result).to.equal(protocolVersion.latestVersion);
32
+ expect(result).to.equal(1);
35
33
  });
36
34
  });
37
35
 
@@ -39,7 +37,7 @@ describe('DataContractUpdateTransition', () => {
39
37
  it('should return State Transition type', () => {
40
38
  const result = stateTransition.getType();
41
39
 
42
- expect(result).to.equal(stateTransitionTypes.DATA_CONTRACT_UPDATE);
40
+ expect(result).to.equal(StateTransitionTypes.DataContractUpdate);
43
41
  });
44
42
  });
45
43
 
@@ -51,22 +49,33 @@ describe('DataContractUpdateTransition', () => {
51
49
  });
52
50
  });
53
51
 
54
- describe('#toJSON', () => {
52
+ describe.skip('#toJSON', () => {
55
53
  it('should return State Transition as plain JS object', () => {
54
+ const dc = dataContract.toJSON();
55
+ delete dc.$defs;
56
+
56
57
  expect(stateTransition.toJSON(true)).to.deep.equal({
57
- protocolVersion: protocolVersion.latestVersion,
58
- type: stateTransitionTypes.DATA_CONTRACT_UPDATE,
59
- dataContract: dataContract.toJSON(),
58
+ protocolVersion: 1,
59
+ type: StateTransitionTypes.DataContractUpdate,
60
+ dataContract: dc,
60
61
  });
61
62
  });
62
63
  });
63
64
 
64
65
  describe('#toBuffer', () => {
65
- it('should return serialized State Transition that starts with protocol version', () => {
66
- const protocolVersionBytes = Buffer.from(varint.encode(stateTransition.getProtocolVersion()));
67
-
66
+ it('should return serialized State Transition', () => {
68
67
  const result = stateTransition.toBuffer();
69
- expect(result.compare(protocolVersionBytes, 0, 1, 0, 1)).equals(0);
68
+ expect(result).to.be.instanceOf(Buffer);
69
+ expect(result).to.have.lengthOf(2188);
70
+ });
71
+
72
+ it('should be able to restore contract config from bytes', () => {
73
+ const config = stateTransition.getDataContract().getConfig();
74
+ config.keepsHistory = true;
75
+ expect(stateTransition.getDataContract().getConfig().keepsHistory).to.be.true();
76
+ const buffer = stateTransition.toBuffer();
77
+ const restoredSt = DataContractUpdateTransition.fromBuffer(buffer);
78
+ expect(restoredSt.getDataContract().getConfig().keepsHistory).to.be.true();
70
79
  });
71
80
  });
72
81
 
@@ -1,9 +1,9 @@
1
- const getDataContractFixture = require('@dashevo/dpp/lib/test/fixtures/getDataContractFixture');
2
- const protocolVersion = require('@dashevo/dpp/lib/version/protocolVersion');
1
+ const getDataContractFixture = require('../../../../../lib/test/fixtures/getDataContractFixture');
3
2
 
4
- const { default: loadWasmDpp } = require('../../../../../dist');
3
+ const { default: loadWasmDpp } = require('../../../../..');
4
+ const { getLatestProtocolVersion } = require('../../../../..');
5
5
 
6
- describe('applyDataContractUpdateTransitionFactory', () => {
6
+ describe.skip('applyDataContractUpdateTransitionFactory', () => {
7
7
  let stateTransition;
8
8
  let dataContract;
9
9
  let executionContext;
@@ -21,12 +21,12 @@ describe('applyDataContractUpdateTransitionFactory', () => {
21
21
  } = await loadWasmDpp());
22
22
  });
23
23
 
24
- beforeEach(() => {
25
- dataContract = getDataContractFixture();
24
+ beforeEach(async () => {
25
+ dataContract = await getDataContractFixture();
26
26
 
27
27
  stateTransition = new DataContractUpdateTransition({
28
28
  dataContract: dataContract.toObject(),
29
- protocolVersion: protocolVersion.latestVersion,
29
+ protocolVersion: getLatestProtocolVersion(),
30
30
  });
31
31
 
32
32
  executionContext = new StateTransitionExecutionContext();
@@ -1,8 +1,8 @@
1
- const getDataContractFixture = require('@dashevo/dpp/lib/test/fixtures/getDataContractFixture');
1
+ const getDataContractFixture = require('../../../../../../../lib/test/fixtures/getDataContractFixture');
2
2
 
3
3
  const { default: loadWasmDpp } = require('../../../../../../../dist');
4
4
 
5
- describe('validateIndicesAreBackwardCompatible', () => {
5
+ describe.skip('validateIndicesAreBackwardCompatible', () => {
6
6
  let oldDocumentsSchema;
7
7
  let newDocumentsSchema;
8
8
  let validateIndicesAreBackwardCompatible;
@@ -19,9 +19,9 @@ describe('validateIndicesAreBackwardCompatible', () => {
19
19
  } = await loadWasmDpp());
20
20
  });
21
21
 
22
- beforeEach(() => {
23
- const oldDataContract = getDataContractFixture();
24
- const newDataContract = getDataContractFixture();
22
+ beforeEach(async () => {
23
+ const oldDataContract = await getDataContractFixture();
24
+ const newDataContract = await getDataContractFixture();
25
25
 
26
26
  oldDocumentsSchema = oldDataContract.getDocuments();
27
27
  newDocumentsSchema = newDataContract.getDocuments();
@@ -1,9 +1,9 @@
1
- const getDataContractFixture = require('@dashevo/dpp/lib/test/fixtures/getDataContractFixture');
2
- const protocolVersion = require('@dashevo/dpp/lib/version/protocolVersion');
1
+ const getDataContractFixture = require('../../../../../../../lib/test/fixtures/getDataContractFixture');
3
2
 
4
- const { default: loadWasmDpp } = require('../../../../../../../dist');
3
+ const { default: loadWasmDpp } = require('../../../../../../..');
4
+ const { getLatestProtocolVersion } = require('../../../../../../..');
5
5
 
6
- describe('validateDataContractUpdateTransitionStateFactory', () => {
6
+ describe.skip('validateDataContractUpdateTransitionStateFactory', () => {
7
7
  let validateDataContractUpdateTransitionState;
8
8
  let dataContract;
9
9
  let stateTransition;
@@ -31,7 +31,7 @@ describe('validateDataContractUpdateTransitionStateFactory', () => {
31
31
  });
32
32
 
33
33
  beforeEach(async () => {
34
- dataContract = getDataContractFixture();
34
+ dataContract = await getDataContractFixture();
35
35
 
36
36
  const updatedRawDataContract = dataContract.toObject();
37
37
 
@@ -39,17 +39,18 @@ describe('validateDataContractUpdateTransitionStateFactory', () => {
39
39
 
40
40
  stateTransition = new DataContractUpdateTransition({
41
41
  dataContract: updatedRawDataContract,
42
- protocolVersion: protocolVersion.latestVersion,
42
+ protocolVersion: getLatestProtocolVersion(),
43
43
  });
44
44
 
45
45
  executionContext = new StateTransitionExecutionContext();
46
46
 
47
47
  const validator = new DataContractValidator();
48
- const dataContractFactory = new DataContractFactory(protocolVersion.latestVersion, validator);
49
- const wasmDataContract = await dataContractFactory.createFromBuffer(dataContract.toBuffer());
48
+ const dataContractFactory = new DataContractFactory(getLatestProtocolVersion(), validator);
49
+ const reCreatedDataContract = await dataContractFactory
50
+ .createFromBuffer(dataContract.toBuffer());
50
51
 
51
52
  const stateRepositoryLike = {
52
- fetchDataContract: async () => wasmDataContract,
53
+ fetchDataContract: async () => reCreatedDataContract,
53
54
  };
54
55
 
55
56
  validateTransitionWithExistingContract = (t) => validateDataContractUpdateTransitionState(
@@ -87,7 +88,7 @@ describe('validateDataContractUpdateTransitionStateFactory', () => {
87
88
 
88
89
  const badStateTransition = new DataContractUpdateTransition({
89
90
  dataContract: badlyUpdatedRawDataContract,
90
- protocolVersion: protocolVersion.latestVersion,
91
+ protocolVersion: getLatestProtocolVersion(),
91
92
  });
92
93
 
93
94
  const result = await validateTransitionWithExistingContract(badStateTransition);
@@ -1,8 +1,8 @@
1
- const getDataContractFixture = require('@dashevo/dpp/lib/test/fixtures/getDataContractFixture');
1
+ const getDataContractFixture = require('../../../../lib/test/fixtures/getDataContractFixture');
2
2
 
3
- const { default: loadWasmDpp } = require('../../../../dist');
3
+ const { default: loadWasmDpp } = require('../../../..');
4
4
 
5
- describe('validateDataContractPatterns', () => {
5
+ describe.skip('validateDataContractPatterns', () => {
6
6
  let DataContractValidator;
7
7
  let IncompatibleRe2PatternError;
8
8
 
@@ -13,8 +13,8 @@ describe('validateDataContractPatterns', () => {
13
13
  } = await loadWasmDpp());
14
14
  });
15
15
 
16
- it('should return valid result', () => {
17
- const rawDataContract = getDataContractFixture().toObject();
16
+ it('should return valid result', async () => {
17
+ const rawDataContract = (await getDataContractFixture()).toObject();
18
18
  delete rawDataContract.$defs;
19
19
 
20
20
  const schema = {
@@ -39,8 +39,8 @@ describe('validateDataContractPatterns', () => {
39
39
  expect(result.isValid()).to.be.true();
40
40
  });
41
41
 
42
- it('should return invalid result on incompatible pattern', () => {
43
- const rawDataContract = getDataContractFixture().toObject();
42
+ it('should return invalid result on incompatible pattern', async () => {
43
+ const rawDataContract = (await getDataContractFixture()).toObject();
44
44
  delete rawDataContract.$defs;
45
45
 
46
46
  const schema = {
@@ -15,7 +15,7 @@ const DataTriggerConditionError = require('@dashevo/dpp/lib/errors/consensus/sta
15
15
  const Identifier = require('@dashevo/dpp/lib/identifier/Identifier');
16
16
  const StateTransitionExecutionContext = require('@dashevo/dpp/lib/stateTransition/StateTransitionExecutionContext');
17
17
 
18
- describe('createDomainDataTrigger', () => {
18
+ describe.skip('createDomainDataTrigger', () => {
19
19
  let parentDocumentTransition;
20
20
  let childDocumentTransition;
21
21
  let childDocument;
@@ -1,18 +1,19 @@
1
+ const crypto = require('crypto');
1
2
  const JsDataContractFactory = require('@dashevo/dpp/lib/dataContract/DataContractFactory');
2
3
  const JsIdentifier = require('@dashevo/dpp/lib/identifier/Identifier');
3
4
  const JsDocument = require('@dashevo/dpp/lib/document/Document');
4
5
  const DocumentCreateTransition = require(
5
6
  '@dashevo/dpp/lib/document/stateTransition/DocumentsBatchTransition/documentTransition/DocumentCreateTransition',
6
7
  );
7
- const protocolVersion = require('@dashevo/dpp/lib/version/protocolVersion');
8
+
8
9
  const createDPPMock = require('@dashevo/dpp/lib/test/mocks/createDPPMock');
9
10
  const generateRandomIdentifier = require('@dashevo/dpp/lib/test/utils/generateRandomIdentifier');
10
11
 
11
12
  const generateRandomIdentifierAsync = require('../../../lib/test/utils/generateRandomIdentifierAsync');
12
- const { default: loadWasmDpp } = require('../../../dist');
13
+ const { default: loadWasmDpp } = require('../../..');
14
+ const { getLatestProtocolVersion } = require('../../..');
13
15
 
14
16
  let DataContractFactory;
15
- let DataContractValidator;
16
17
  let PlatformValueError;
17
18
  let Identifier;
18
19
  let ExtendedDocument;
@@ -30,7 +31,7 @@ describe('Document', () => {
30
31
  // eslint-disable-next-line prefer-arrow-callback
31
32
  beforeEach(async function beforeEach() {
32
33
  ({
33
- Identifier, DataContractFactory, DataContractValidator, ExtendedDocument, PlatformValueError,
34
+ Identifier, DataContractFactory, ExtendedDocument, PlatformValueError,
34
35
  } = await loadWasmDpp());
35
36
 
36
37
  const now = new Date().getTime();
@@ -40,11 +41,14 @@ describe('Document', () => {
40
41
  const ownerId = await generateRandomIdentifierAsync();
41
42
  const jsOwnerId = new JsIdentifier(Buffer.from(ownerId.toBuffer()));
42
43
  const jsDataContractFactory = new JsDataContractFactory(createDPPMock(), () => { });
43
- const dataContractValidator = new DataContractValidator();
44
- const dataContractFactory = new DataContractFactory(1, dataContractValidator);
44
+ const dataContractFactory = new DataContractFactory(
45
+ 1,
46
+ { generate: () => crypto.randomBytes(32) },
47
+ );
45
48
 
46
49
  const rawDataContract = {
47
50
  test: {
51
+ type: 'object',
48
52
  properties: {
49
53
  name: {
50
54
  type: 'string',
@@ -69,10 +73,13 @@ describe('Document', () => {
69
73
  maxItems: 32,
70
74
  },
71
75
  },
76
+ additionalProperties: false,
72
77
  },
73
78
  },
79
+ additionalProperties: false,
74
80
  },
75
81
  },
82
+ additionalProperties: false,
76
83
  },
77
84
  };
78
85
 
@@ -80,7 +87,7 @@ describe('Document', () => {
80
87
  dataContractJs = jsDataContractFactory.create(jsOwnerId, rawDataContract);
81
88
 
82
89
  rawDocument = {
83
- $protocolVersion: protocolVersion.latestVersion,
90
+ $protocolVersion: getLatestProtocolVersion(),
84
91
  $id: id,
85
92
  $type: 'test',
86
93
  $dataContractId: dataContract.getId(),
@@ -91,7 +98,7 @@ describe('Document', () => {
91
98
  };
92
99
 
93
100
  rawDocumentWithBuffers = {
94
- $protocolVersion: protocolVersion.latestVersion,
101
+ $protocolVersion: getLatestProtocolVersion(),
95
102
  $id: id.toBuffer(),
96
103
  $type: 'test',
97
104
  $dataContractId: dataContract.getId().toBuffer(),
@@ -128,7 +135,7 @@ describe('Document', () => {
128
135
  expect(document.getId().toBuffer()).to.deep.equal(rawDocument.$id.toBuffer());
129
136
  });
130
137
 
131
- it('should create DocumentCreateTransition with $type and data if present', () => {
138
+ it.skip('should create DocumentCreateTransition with $type and data if present', () => {
132
139
  const data = {
133
140
  test: 1,
134
141
  };
@@ -159,7 +166,7 @@ describe('Document', () => {
159
166
  document = new ExtendedDocument(rawDocument, dataContract);
160
167
  } catch (e) {
161
168
  expect(e).to.be.instanceOf(PlatformValueError);
162
- expect(e.getMessage()).to.equal('structure error: unable to remove hash256 property $ownerId');
169
+ expect(e.getMessage()).to.equal('serde deserialization error: missing field `$ownerId`');
163
170
  }
164
171
  });
165
172
 
@@ -179,7 +186,7 @@ describe('Document', () => {
179
186
  document = new ExtendedDocument(rawDocument, dataContract);
180
187
  } catch (e) {
181
188
  expect(e).to.be.instanceOf(PlatformValueError);
182
- expect(e.getMessage()).to.equal('structure error: unable to remove hash256 property $id');
189
+ expect(e.getMessage()).to.equal('serde deserialization error: missing field `$id`');
183
190
  }
184
191
  });
185
192
 
@@ -375,7 +382,8 @@ describe('Document', () => {
375
382
  expect(document.get(path).toBuffer()).to.deep.equal(buffer);
376
383
  });
377
384
 
378
- it('should set identifier as part of object', () => {
385
+ // It should return Identifier instead of string
386
+ it.skip('should set identifier as part of object', () => {
379
387
  const buffer = Buffer.alloc(32, 'a');
380
388
  const path = 'dataObject.binaryObject';
381
389
  const identifierPath = 'dataObject.binaryObject.identifier';
@@ -394,6 +402,7 @@ describe('Document', () => {
394
402
  const jsonDocument = {
395
403
  ...rawDocument,
396
404
  $dataContractId: document.getDataContractId().toString(),
405
+ $dataContract: document.getDataContract().toJSON(),
397
406
  $id: document.getId().toString(),
398
407
  $ownerId: document.getOwnerId().toString(),
399
408
  };
@@ -411,15 +420,15 @@ describe('Document', () => {
411
420
  });
412
421
 
413
422
  describe('#toBuffer', () => {
414
- it('returned bytes should be the same as JS version', () => {
415
- const jsBuffer = documentJs.toBuffer();
423
+ it('should return serialized Document', () => {
416
424
  const buffer = document.toBuffer();
417
-
418
- expect(jsBuffer.length).to.equal(buffer.length);
419
- expect(jsBuffer).to.deep.equal(buffer);
425
+ expect(buffer).to.be.instanceOf(Buffer);
426
+ expect(buffer.length).to.equal(564);
420
427
  });
421
428
 
422
- it('should return the same bytes as JS version when dynamic identifier is in Document', () => {
429
+ // TODO: remove or replace?
430
+ // can not be compared to JS buffers anymore because uses bin code
431
+ it.skip('should return the same bytes as JS version when dynamic identifier is in Document', () => {
423
432
  const jsId = generateRandomIdentifier();
424
433
  const id = new Identifier(jsId.toBuffer());
425
434
  const path = 'dataObject.binaryObject.identifier';
@@ -438,7 +447,9 @@ describe('Document', () => {
438
447
  expect(jsBuffer).to.deep.equal(buffer);
439
448
  });
440
449
 
441
- it('should return the same bytes as JS version when dynamic binaryData is in Document', () => {
450
+ // TODO: remove or replace?
451
+ // can not be compared to JS buffers anymore because uses bin code
452
+ it.skip('should return the same bytes as JS version when dynamic binaryData is in Document', () => {
442
453
  const data = Buffer.alloc(32);
443
454
  const path = 'dataObject.binaryObject.binaryData';
444
455
 
@@ -453,7 +464,7 @@ describe('Document', () => {
453
464
  });
454
465
  });
455
466
 
456
- describe('#hash', () => {
467
+ describe.skip('#hash', () => {
457
468
  it('returned hash should be the same as JS version', () => {
458
469
  expect(documentJs.hash()).to.deep.equal(document.hash());
459
470
  });