@dashevo/wasm-dpp 0.25.0-dev.9 → 0.25.1

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,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,20 +1,27 @@
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/fixtures/js/generateRandomIdentifier');
3
+ const getDataContractFixture = require('../../../lib/test/fixtures/js/getDataContractFixture');
4
+ const getDocumentsFixture = require('../../../lib/test/fixtures/js/getDocumentsFixture');
5
+ const createStateRepositoryMock = require('../../../lib/test/mocks/createStateRepositoryMock');
6
+
7
+ const {
8
+ ExtendedDocument,
9
+ DataContract,
10
+ Identifier,
11
+ ValidationResult,
12
+ DocumentsBatchTransition,
13
+ DashPlatformProtocol,
14
+ DataContractNotPresentError,
15
+ } = require('../../../dist');
16
+ // const getBlsAdapterMock = require('../../../lib/test/mocks/getBlsAdapterMock');
17
+
18
+ // let ExtendedDocument;
19
+ // let DataContract;
20
+ // let Identifier;
21
+ // let ValidationResult;
22
+ // let DocumentsBatchTransition;
23
+ // let DashPlatformProtocol;
24
+ // let DataContractNotPresentError;
18
25
 
19
26
  describe('DocumentFacade', () => {
20
27
  let dpp;
@@ -24,31 +31,24 @@ describe('DocumentFacade', () => {
24
31
  let dataContract;
25
32
  let ownerId;
26
33
  let stateRepositoryMock;
27
- let blsAdapter;
28
34
 
29
35
  beforeEach(async function beforeEach() {
30
- ({
31
- ExtendedDocument,
32
- DataContract,
33
- Identifier,
34
- ValidationResult,
35
- DocumentsBatchTransition,
36
- DashPlatformProtocol,
37
- DataContractNotPresentError,
38
- } = await loadWasmDpp());
39
-
40
36
  const ownerIdJs = generateRandomIdentifier();
41
37
  ownerId = new Identifier(ownerIdJs.toBuffer());
42
38
  const dataContractJs = getDataContractFixture(ownerIdJs);
43
- dataContract = new DataContract(dataContractJs.toObject());
39
+ const dataContractObject = dataContractJs.toObject();
40
+ dataContract = new DataContract({
41
+ $format_version: '0',
42
+ id: dataContractObject.$id,
43
+ version: 1,
44
+ ownerId: dataContractObject.ownerId,
45
+ documentSchemas: dataContractObject.documents,
46
+ });
44
47
 
45
48
  stateRepositoryMock = createStateRepositoryMock(this.sinonSandbox);
46
49
  stateRepositoryMock.fetchDataContract.resolves(dataContract);
47
50
 
48
- blsAdapter = await getBlsAdapterMock();
49
51
  dpp = new DashPlatformProtocol(
50
- blsAdapter,
51
- stateRepositoryMock,
52
52
  { generate: () => crypto.randomBytes(32) },
53
53
  1,
54
54
  );
@@ -66,6 +66,7 @@ describe('DocumentFacade', () => {
66
66
  it('should create Document - Rust', async () => {
67
67
  const documentType = document.getType();
68
68
  const documentData = document.getData();
69
+
69
70
  const result = dpp.document.create(
70
71
  dataContract,
71
72
  ownerId,
@@ -80,7 +81,7 @@ describe('DocumentFacade', () => {
80
81
  });
81
82
  });
82
83
 
83
- describe('createFromObject', () => {
84
+ describe.skip('createFromObject', () => {
84
85
  it('should throw MissingOption if stateRepository is not set - Rust', async () => {
85
86
  // not applicable
86
87
  });
@@ -95,7 +96,7 @@ describe('DocumentFacade', () => {
95
96
  });
96
97
  });
97
98
 
98
- describe('createFromBuffer', () => {
99
+ describe.skip('createFromBuffer', () => {
99
100
  it('should throw MissingOption if stateRepository is not set - Rust', async () => {
100
101
  // not applicable
101
102
  });
@@ -116,14 +117,14 @@ describe('DocumentFacade', () => {
116
117
  });
117
118
 
118
119
  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()));
120
+ // expect(result.getTransitions().map((t) => t.toObject()))
121
+ // .has.deep.members(getDocumentTransitionsFixture({
122
+ // create: documentsJs,
123
+ // }).map((t) => t.toObject()));
123
124
  });
124
125
  });
125
126
 
126
- describe('validate', () => {
127
+ describe.skip('validate', () => {
127
128
  it('should throw MissingOption if stateRepository is not set - Rust', async () => {
128
129
  // not applicable
129
130
  });
@@ -1,10 +1,9 @@
1
- const IdentityPublicKey = require('@dashevo/dpp/lib/identity/IdentityPublicKey');
1
+ const createStateRepositoryMock = require('../../../../../lib/test/mocks/createStateRepositoryMock');
2
+ const getDataContractFixture = require('../../../../../lib/test/fixtures/js/getDataContractFixture');
3
+ const getDocumentsFixture = require('../../../../../lib/test/fixtures/js/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');
6
-
7
- const { default: loadWasmDpp } = require('../../../../../dist');
5
+ const { default: loadWasmDpp } = require('../../../../..');
6
+ const { IdentityPublicKey } = require('../../../../..');
8
7
 
9
8
  let ExtendedDocument;
10
9
  let DataContract;
@@ -68,7 +67,7 @@ describe('DocumentBatchTransition', () => {
68
67
  });
69
68
  });
70
69
 
71
- describe('#getRequiredKeySecurityLevel', () => {
70
+ describe.skip('#getRequiredKeySecurityLevel', () => {
72
71
  it('should return the highest security level of all transitions - Rust', () => {
73
72
  stateTransitionFixture = documentFactory.createStateTransition({
74
73
  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/js/getDocumentsFixture');
3
+ const getDataContractFixture = require('../../../../../../../lib/test/fixtures/js/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,4 +1,3 @@
1
- const createStateRepositoryMock = require('@dashevo/dpp/lib/test/mocks/createStateRepositoryMock');
2
1
  const dpnsSystemIds = require('@dashevo/dpns-contract/lib/systemIds');
3
2
  const getDpnsContractFixture = require('@dashevo/dpp/lib/test/fixtures/getDpnsContractFixture');
4
3
  const dpnsDocumentFixture = require('@dashevo/dpp/lib/test/fixtures/getDpnsDocumentFixture');
@@ -7,6 +6,7 @@ const getDocumentTransitionsFixture = require('@dashevo/dpp/lib/test/fixtures/ge
7
6
  const getDataContractFixture = require('@dashevo/dpp/lib/test/fixtures/getDataContractFixture');
8
7
 
9
8
  const IdentifierJs = require('@dashevo/dpp/lib/identifier/Identifier');
9
+ const createStateRepositoryMock = require('../../../../../../../lib/test/mocks/createStateRepositoryMock');
10
10
 
11
11
  const { default: loadWasmDpp } = require('../../../../../../../dist');
12
12
 
@@ -19,7 +19,7 @@ let DataTriggerExecutionResult;
19
19
  let StateTransitionExecutionContext;
20
20
  let getAllDataTriggers;
21
21
 
22
- describe('executeDataTriggersFactory', () => {
22
+ describe.skip('executeDataTriggersFactory', () => {
23
23
  let childDocumentJs;
24
24
  let childDocument;
25
25
  let contractMock;
@@ -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/js/getDataContractFixture');
2
+ const getDocumentsFixture = require('../../../../lib/test/fixtures/js/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;
@@ -1,77 +1,43 @@
1
1
  const crypto = require('crypto');
2
- const getIdentityFixture = require('@dashevo/dpp/lib/test/fixtures/getIdentityFixture');
2
+ const getIdentityFixture = require('../../../lib/test/fixtures/getIdentityFixture');
3
3
 
4
- const createStateRepositoryMock = require('@dashevo/dpp/lib/test/mocks/createStateRepositoryMock');
5
- const getInstantAssetLockProofFixture = require('@dashevo/dpp/lib/test/fixtures/getInstantAssetLockProofFixture');
6
- const getChainAssetLockProofFixture = require('@dashevo/dpp/lib/test/fixtures/getChainAssetLockProofFixture');
7
- const IdentityPublicKey = require('@dashevo/dpp/lib/identity/IdentityPublicKey');
8
- const getBlsAdapterMock = require('../../../lib/test/mocks/getBlsAdapterMock');
4
+ const getInstantAssetLockProofFixture = require('../../../lib/test/fixtures/getInstantAssetLockProofFixture');
5
+ const getChainAssetLockProofFixture = require('../../../lib/test/fixtures/getChainAssetLockProofFixture');
9
6
 
10
- const { default: loadWasmDpp } = require('../../../dist');
7
+ const {
8
+ Identity, InstantAssetLockProof, ChainAssetLockProof, IdentityUpdateTransition,
9
+ IdentityCreateTransition, IdentityTopUpTransition, IdentityPublicKeyWithWitness,
10
+ DashPlatformProtocol, ValidationResult,
11
+ } = require('../../..');
11
12
 
12
13
  describe('IdentityFacade', () => {
13
14
  let dpp;
14
- let stateRepositoryMock;
15
15
 
16
16
  let identity;
17
17
  let instantAssetLockProof;
18
18
  let chainAssetLockProof;
19
19
 
20
- let Identity;
21
- let InstantAssetLockProof;
22
- let IdentityCreateTransition;
23
- let IdentityTopUpTransition;
24
- let IdentityUpdateTransition;
25
- let IdentityPublicKeyWithWitness;
26
- let ChainAssetLockProof;
27
- let DashPlatformProtocol;
28
- let ValidationResult;
29
-
30
- before(async () => {
31
- ({
32
- Identity, InstantAssetLockProof, ChainAssetLockProof, IdentityUpdateTransition,
33
- IdentityCreateTransition, IdentityTopUpTransition, IdentityPublicKeyWithWitness,
34
- DashPlatformProtocol, ValidationResult,
35
- } = await loadWasmDpp());
36
- });
37
-
38
- beforeEach(async function beforeEach() {
39
- const rawTransaction = '030000000137feb5676d0851337ea3c9a992496aab7a0b3eee60aeeb9774000b7f4bababa5000000006b483045022100d91557de37645c641b948c6cd03b4ae3791a63a650db3e2fee1dcf5185d1b10402200e8bd410bf516ca61715867666d31e44495428ce5c1090bf2294a829ebcfa4ef0121025c3cc7fbfc52f710c941497fd01876c189171ea227458f501afcb38a297d65b4ffffffff021027000000000000166a14152073ca2300a86b510fa2f123d3ea7da3af68dcf77cb0090a0000001976a914152073ca2300a86b510fa2f123d3ea7da3af68dc88ac00000000';
40
-
41
- stateRepositoryMock = createStateRepositoryMock(this.sinonSandbox);
42
- stateRepositoryMock.fetchTransaction.resolves({
43
- data: Buffer.from(rawTransaction, 'hex'),
44
- height: 42,
45
- });
46
-
20
+ beforeEach(async () => {
47
21
  dpp = new DashPlatformProtocol(
48
- getBlsAdapterMock(),
49
- stateRepositoryMock,
50
22
  { generate: () => crypto.randomBytes(32) },
51
23
  1,
52
24
  );
53
25
 
54
26
  const chainAssetLockProofJS = getChainAssetLockProofFixture();
55
- const instantAssetLockProofJS = getInstantAssetLockProofFixture();
27
+ const instantAssetLockProofJS = await getInstantAssetLockProofFixture();
56
28
  instantAssetLockProof = new InstantAssetLockProof(instantAssetLockProofJS.toObject());
57
29
  chainAssetLockProof = new ChainAssetLockProof(chainAssetLockProofJS.toObject());
58
30
 
59
- const identityObject = getIdentityFixture().toObject();
60
- identityObject.id = instantAssetLockProof.createIdentifier();
61
- identity = new Identity(identityObject);
62
- identity.setAssetLockProof(instantAssetLockProof);
31
+ identity = await getIdentityFixture(instantAssetLockProof.createIdentifier());
63
32
  identity.setBalance(0);
64
33
  });
65
34
 
66
35
  describe('#create', () => {
67
36
  it('should create Identity', () => {
68
- const publicKeys = identity.getPublicKeys()
69
- .map((identityPublicKey) => ({
70
- ...identityPublicKey.toObject(),
71
- }));
37
+ const publicKeys = identity.getPublicKeys();
72
38
 
73
39
  const result = dpp.identity.create(
74
- instantAssetLockProof,
40
+ instantAssetLockProof.createIdentifier(),
75
41
  publicKeys,
76
42
  );
77
43
 
@@ -80,7 +46,8 @@ describe('IdentityFacade', () => {
80
46
  });
81
47
  });
82
48
 
83
- describe('#createFromObject', () => {
49
+ // TODO(versioning): obsolete?
50
+ describe.skip('#createFromObject', () => {
84
51
  it('should create Identity from plain object', () => {
85
52
  const result = dpp.identity.createFromObject(identity.toObject());
86
53
 
@@ -105,7 +72,8 @@ describe('IdentityFacade', () => {
105
72
  });
106
73
  });
107
74
 
108
- describe('#validate', () => {
75
+ // TODO(versioning): restore
76
+ describe.skip('#validate', () => {
109
77
  it('should validate Identity', async () => {
110
78
  const result = await dpp.identity.validate(identity);
111
79
 
@@ -151,7 +119,10 @@ describe('IdentityFacade', () => {
151
119
 
152
120
  describe('#createIdentityCreateTransition', () => {
153
121
  it('should create IdentityCreateTransition from Identity model', () => {
154
- const stateTransition = dpp.identity.createIdentityCreateTransition(identity);
122
+ const stateTransition = dpp.identity.createIdentityCreateTransition(
123
+ identity,
124
+ instantAssetLockProof,
125
+ );
155
126
 
156
127
  expect(stateTransition).to.be.instanceOf(IdentityCreateTransition);
157
128
  const keysToExpect = stateTransition.getPublicKeys()
@@ -161,8 +132,13 @@ describe('IdentityFacade', () => {
161
132
  return keyObject;
162
133
  });
163
134
 
164
- expect(keysToExpect)
165
- .to.deep.equal(identity.getPublicKeys().map((key) => key.toObject()));
135
+ const actualKeys = identity.getPublicKeys().map((key) => {
136
+ const keyObject = key.toObject();
137
+ delete keyObject.disabledAt;
138
+ return keyObject;
139
+ });
140
+
141
+ expect(keysToExpect).to.deep.equal(actualKeys);
166
142
  expect(stateTransition.getAssetLockProof().toObject()).to.deep.equal(
167
143
  instantAssetLockProof.toObject(),
168
144
  );
@@ -188,16 +164,11 @@ describe('IdentityFacade', () => {
188
164
 
189
165
  describe('#createIdentityUpdateTransition', () => {
190
166
  it('should create IdentityUpdateTransition from identity id and public keys', () => {
167
+ const key = new IdentityPublicKeyWithWitness(1);
168
+ key.setData(Buffer.from('AuryIuMtRrl/VviQuyLD1l4nmxi9ogPzC9LT7tdpo0di', 'base64'));
169
+
191
170
  const publicKeys = {
192
- add: [new IdentityPublicKeyWithWitness({
193
- id: 3,
194
- type: IdentityPublicKey.TYPES.ECDSA_SECP256K1,
195
- data: Buffer.from('AuryIuMtRrl/VviQuyLD1l4nmxi9ogPzC9LT7tdpo0di', 'base64'),
196
- purpose: IdentityPublicKey.PURPOSES.AUTHENTICATION,
197
- securityLevel: IdentityPublicKey.SECURITY_LEVELS.CRITICAL,
198
- readOnly: false,
199
- signature: Buffer.alloc(0),
200
- })],
171
+ add: [key],
201
172
  };
202
173
 
203
174
  const stateTransition = dpp.identity
@@ -214,7 +185,7 @@ describe('IdentityFacade', () => {
214
185
  );
215
186
  expect(
216
187
  stateTransition.getPublicKeysToAdd().map((pk) => pk.toObject()),
217
- ).to.deep.equal(publicKeys.add.map((key) => key.toObject()));
188
+ ).to.deep.equal(publicKeys.add.map((k) => k.toObject()));
218
189
  expect(stateTransition.getPublicKeyIdsToDisable()).to.deep.equal([]);
219
190
  expect(stateTransition.getPublicKeysDisabledAt()).to.equal(undefined);
220
191
  });
@@ -1,13 +1,13 @@
1
1
  const { PrivateKey } = require('@dashevo/dashcore-lib');
2
2
 
3
- const createStateRepositoryMock = require('@dashevo/dpp/lib/test/mocks/createStateRepositoryMock');
4
- const getIdentityCreateTransitionFixture = require('@dashevo/dpp/lib/test/fixtures/getIdentityCreateTransitionFixture');
3
+ const createStateRepositoryMock = require('../../../../../../../lib/test/mocks/createStateRepositoryMock');
4
+ const getIdentityCreateTransitionFixture = require('../../../../../../../lib/test/fixtures/getIdentityCreateTransitionFixture');
5
5
 
6
6
  const { expectValidationError, expectJsonSchemaError } = require('../../../../../../../lib/test/expect/expectError');
7
7
  const { default: loadWasmDpp } = require('../../../../../../../dist');
8
8
  const getBlsAdapterMock = require('../../../../../../../lib/test/mocks/getBlsAdapterMock');
9
9
 
10
- describe('validateIdentityCreateTransitionBasicFactory', () => {
10
+ describe.skip('validateIdentityCreateTransitionBasicFactory', () => {
11
11
  let rawStateTransition;
12
12
  let stateTransition;
13
13
 
@@ -18,7 +18,6 @@ describe('validateIdentityCreateTransitionBasicFactory', () => {
18
18
  let validateIdentityCreateTransitionBasic;
19
19
 
20
20
  let StateTransitionExecutionContext;
21
- let IdentityCreateTransition;
22
21
  let IdentityPublicKey;
23
22
  let UnsupportedProtocolVersionError;
24
23
  let InvalidInstantAssetLockProofSignatureError;
@@ -30,7 +29,6 @@ describe('validateIdentityCreateTransitionBasicFactory', () => {
30
29
 
31
30
  before(async () => {
32
31
  ({
33
- IdentityCreateTransition,
34
32
  StateTransitionExecutionContext,
35
33
  UnsupportedProtocolVersionError,
36
34
  InvalidInstantAssetLockProofSignatureError,
@@ -56,7 +54,8 @@ describe('validateIdentityCreateTransitionBasicFactory', () => {
56
54
  );
57
55
  });
58
56
 
59
- beforeEach(async function () {
57
+ beforeEach(async function beforeEach() {
58
+ this.timeout(20000);
60
59
  stateRepositoryMock = createStateRepositoryMock(this.sinonSandbox);
61
60
  stateRepositoryMock.verifyInstantLock.resolves(true);
62
61
  stateRepositoryMock.isAssetLockTransactionOutPointAlreadyUsed.resolves(false);
@@ -68,8 +67,7 @@ describe('validateIdentityCreateTransitionBasicFactory', () => {
68
67
  const validator = new IdentityCreateTransitionBasicValidator(stateRepositoryMock, blsAdapter);
69
68
  validateIdentityCreateTransitionBasic = (st, context) => validator.validate(st, context);
70
69
 
71
- const stateTransitionJS = getIdentityCreateTransitionFixture();
72
- stateTransition = new IdentityCreateTransition(stateTransitionJS.toObject());
70
+ stateTransition = await getIdentityCreateTransitionFixture();
73
71
 
74
72
  const privateKey = new PrivateKey('9b67f852093bc61cea0eeca38599dbfba0de28574d2ed9b99d10d33dc1bde7b2');
75
73
  const publicKey = privateKey.toPublicKey();