@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,5 +1,5 @@
1
- const createStateRepositoryMock = require('@dashevo/dpp/lib/test/mocks/createStateRepositoryMock');
2
- const getIdentityTopUpTransitionFixture = require('../../../../../../../lib/test/fixtures/getIdentityTopUpTransitionFixtureJs');
1
+ const createStateRepositoryMock = require('../../../../../../../lib/test/mocks/createStateRepositoryMock');
2
+ const getIdentityTopUpTransitionFixture = require('../../../../../../../lib/test/fixtures/getIdentityTopUpTransitionFixture');
3
3
 
4
4
  const {
5
5
  expectJsonSchemaError,
@@ -7,7 +7,7 @@ const {
7
7
  } = require('../../../../../../../lib/test/expect/expectError');
8
8
  const { default: loadWasmDpp } = require('../../../../../../../dist');
9
9
 
10
- describe('validateIdentityTopUpTransitionBasicFactory', () => {
10
+ describe.skip('validateIdentityTopUpTransitionBasicFactory', () => {
11
11
  let rawStateTransition;
12
12
  let stateTransition;
13
13
 
@@ -17,7 +17,6 @@ describe('validateIdentityTopUpTransitionBasicFactory', () => {
17
17
  let validateIdentityTopUpTransitionBasic;
18
18
 
19
19
  let StateTransitionExecutionContext;
20
- let IdentityTopUpTransition;
21
20
  let IdentityPublicKey;
22
21
  let UnsupportedProtocolVersionError;
23
22
  let InvalidInstantAssetLockProofSignatureError;
@@ -26,7 +25,6 @@ describe('validateIdentityTopUpTransitionBasicFactory', () => {
26
25
  before(async () => {
27
26
  ({
28
27
  IdentityTopUpTransitionBasicValidator,
29
- IdentityTopUpTransition,
30
28
  StateTransitionExecutionContext,
31
29
  IdentityPublicKey,
32
30
  UnsupportedProtocolVersionError,
@@ -47,8 +45,7 @@ describe('validateIdentityTopUpTransitionBasicFactory', () => {
47
45
  context,
48
46
  );
49
47
 
50
- const stateTransitionJS = getIdentityTopUpTransitionFixture();
51
- stateTransition = new IdentityTopUpTransition(stateTransitionJS.toObject());
48
+ stateTransition = await getIdentityTopUpTransitionFixture();
52
49
 
53
50
  const privateKey = '9b67f852093bc61cea0eeca38599dbfba0de28574d2ed9b99d10d33dc1bde7b2';
54
51
 
@@ -5,7 +5,7 @@ const { expectJsonSchemaError, expectValidationError } = require('../../../../..
5
5
  const { default: loadWasmDpp } = require('../../../../../../../dist');
6
6
  const getBlsAdapterMock = require('../../../../../../../lib/test/mocks/getBlsAdapterMock');
7
7
 
8
- describe('validateIdentityUpdateTransitionBasicFactory', () => {
8
+ describe.skip('validateIdentityUpdateTransitionBasicFactory', () => {
9
9
  let validateIdentityUpdateTransitionBasic;
10
10
  let rawStateTransition;
11
11
  let stateTransition;
@@ -1,22 +1,19 @@
1
- const identitySchema = require('@dashevo/dpp/schema/identity/identity.json');
2
- const createStateRepositoryMock = require('@dashevo/dpp/lib/test/mocks/createStateRepositoryMock');
3
- const getIdentityFixture = require('@dashevo/dpp/lib/test/fixtures/getIdentityFixture');
4
- const ValidationResult = require('@dashevo/dpp/lib/validation/ValidationResult');
5
- const SomeConsensusError = require('@dashevo/dpp/lib/test/mocks/SomeConsensusError');
1
+ const identitySchema = require('../../../../../../../../rs-dpp/src/schema/identity/v0/identity.json');
2
+ const createStateRepositoryMock = require('../../../../../../../lib/test/mocks/createStateRepositoryMock');
3
+ const getIdentityFixture = require('../../../../../../../lib/test/fixtures/getIdentityFixture');
6
4
  const getIdentityUpdateTransitionFixture = require('../../../../../../../lib/test/fixtures/getIdentityUpdateTransitionFixture');
7
5
 
8
- const { default: loadWasmDpp } = require('../../../../../../../dist');
6
+ const { default: loadWasmDpp } = require('../../../../../../..');
9
7
  const { expectValidationError } = require('../../../../../../../lib/test/expect/expectError');
10
8
  const generateRandomIdentifierAsync = require('../../../../../../../lib/test/utils/generateRandomIdentifierAsync');
11
9
  const getBlsAdapterMock = require('../../../../../../../lib/test/mocks/getBlsAdapterMock');
12
10
 
13
- describe('validateIdentityUpdateTransitionStateFactory', () => {
11
+ describe.skip('validateIdentityUpdateTransitionStateFactory', () => {
14
12
  let validateIdentityUpdateTransitionState;
15
13
  let stateRepositoryMock;
16
14
  let stateTransition;
17
15
  let identity;
18
16
  let rawIdentity;
19
- let validatePublicKeysMock;
20
17
  let blockTime;
21
18
  let executionContext;
22
19
 
@@ -49,7 +46,7 @@ describe('validateIdentityUpdateTransitionStateFactory', () => {
49
46
  });
50
47
 
51
48
  beforeEach(async function beforeEach() {
52
- rawIdentity = getIdentityFixture().toObject();
49
+ rawIdentity = (await getIdentityFixture()).toObject();
53
50
  // Patch identity id to be acceptable by wasm-dpp
54
51
  rawIdentity.id = await generateRandomIdentifierAsync();
55
52
  identity = new Identity(rawIdentity);
@@ -248,21 +245,21 @@ describe('validateIdentityUpdateTransitionStateFactory', () => {
248
245
  // TODO: remove?
249
246
  // Skipped, because two tests above are seem to be enough
250
247
  it.skip('should validate resulting identity public keys', async () => {
251
- const publicKeysError = new SomeConsensusError('test');
252
-
253
- validatePublicKeysMock.returns(new ValidationResult([publicKeysError]));
254
-
255
- const result = await validateIdentityUpdateTransitionState(stateTransition);
256
-
257
- expectValidationError(result, SomeConsensusError);
258
-
259
- expect(validatePublicKeysMock).to.be.calledOnce();
260
-
261
- const publicKeys = [...identity.getPublicKeys(), ...stateTransition.getPublicKeysToAdd()];
262
-
263
- expect(validatePublicKeysMock).to.be.calledWithExactly(
264
- publicKeys.map((pk) => pk.toObject()),
265
- );
248
+ // const publicKeysError = new SomeConsensusError('test');
249
+ //
250
+ // validatePublicKeysMock.returns(new ValidationResult([publicKeysError]));
251
+ //
252
+ // const result = await validateIdentityUpdateTransitionState(stateTransition);
253
+ //
254
+ // expectValidationError(result, SomeConsensusError);
255
+ //
256
+ // expect(validatePublicKeysMock).to.be.calledOnce();
257
+ //
258
+ // const publicKeys = [...identity.getPublicKeys(), ...stateTransition.getPublicKeysToAdd()];
259
+ //
260
+ // expect(validatePublicKeysMock).to.be.calledWithExactly(
261
+ // publicKeys.map((pk) => pk.toObject()),
262
+ // );
266
263
  });
267
264
 
268
265
  it('should return valid result on dry run', async function () {
@@ -1,9 +1,9 @@
1
- const identitySchema = require('@dashevo/dpp/schema/identity/identity.json');
1
+ const identitySchema = require('../../../../../../../../rs-dpp/src/schema/identity/v0/identity.json');
2
2
  const { expectValidationError } = require('../../../../../../../lib/test/expect/expectError');
3
3
 
4
4
  const { default: loadWasmDpp } = require('../../../../../../../dist');
5
5
 
6
- describe('validatePublicKeysState', () => {
6
+ describe.skip('validatePublicKeysState', () => {
7
7
  let IdentityUpdatePublicKeysValidator;
8
8
  let DuplicatedIdentityPublicKeyIdStateError;
9
9
  let DuplicatedIdentityPublicKeyStateError;
@@ -1,14 +1,14 @@
1
1
  const { Transaction, Script, PrivateKey } = require('@dashevo/dashcore-lib');
2
2
 
3
- const getChainAssetLockFixture = require('@dashevo/dpp/lib/test/fixtures/getChainAssetLockProofFixture');
4
- const createStateRepositoryMock = require('@dashevo/dpp/lib/test/mocks/createStateRepositoryMock');
5
-
6
3
  const { expect } = require('chai');
4
+ const getChainAssetLockFixture = require('../../../../../../lib/test/fixtures/getChainAssetLockProofFixture');
5
+ const createStateRepositoryMock = require('../../../../../../lib/test/mocks/createStateRepositoryMock');
6
+
7
7
  const { expectJsonSchemaError, expectValidationError } = require('../../../../../../lib/test/expect/expectError');
8
8
 
9
9
  const { default: loadWasmDpp } = require('../../../../../../dist');
10
10
 
11
- describe('validateChainAssetLockProofStructureFactory', () => {
11
+ describe.skip('validateChainAssetLockProofStructureFactory', () => {
12
12
  let rawProof;
13
13
  let stateRepositoryMock;
14
14
  let publicKeyHash;
@@ -1,17 +1,16 @@
1
1
  const { Transaction } = require('@dashevo/dashcore-lib');
2
2
 
3
- const getChainAssetLockFixture = require('@dashevo/dpp/lib/test/fixtures/getChainAssetLockProofFixture');
4
- const getInstantAssetLockProofFixture = require('@dashevo/dpp/lib/test/fixtures/getInstantAssetLockProofFixture');
5
- const createStateRepositoryMock = require('@dashevo/dpp/lib/test/mocks/createStateRepositoryMock');
3
+ const getChainAssetLockFixture = require('../../../../../lib/test/fixtures/getChainAssetLockProofFixture');
4
+ const getInstantAssetLockProofFixture = require('../../../../../lib/test/fixtures/getInstantAssetLockProofFixture');
5
+ const createStateRepositoryMock = require('../../../../../lib/test/mocks/createStateRepositoryMock');
6
6
  const { default: loadWasmDpp } = require('../../../../../dist');
7
7
 
8
- describe('fetchAssetLockTransactionOutputFactory', () => {
8
+ describe.skip('fetchAssetLockTransactionOutputFactory', () => {
9
9
  let fetchAssetLockTransactionOutput;
10
10
  let stateRepositoryMock;
11
11
  let executionContext;
12
12
 
13
13
  let StateTransitionExecutionContext;
14
- let InstantAssetLockProof;
15
14
  let ChainAssetLockProof;
16
15
  let AssetLockTransactionIsNotFoundError;
17
16
  let UnknownAssetLockProofTypeError;
@@ -22,7 +21,6 @@ describe('fetchAssetLockTransactionOutputFactory', () => {
22
21
  ({
23
22
  StateTransitionExecutionContext,
24
23
  fetchAssetLockTransactionOutput: fetchAssetLockTransactionOutputDPP,
25
- InstantAssetLockProof,
26
24
  ChainAssetLockProof,
27
25
  AssetLockTransactionIsNotFoundError,
28
26
  UnknownAssetLockProofTypeError,
@@ -44,9 +42,8 @@ describe('fetchAssetLockTransactionOutputFactory', () => {
44
42
  describe('InstantAssetLockProof', () => {
45
43
  let assetLockProofFixture;
46
44
 
47
- beforeEach(() => {
48
- const assetLockProofFixtureJS = getInstantAssetLockProofFixture();
49
- assetLockProofFixture = new InstantAssetLockProof(assetLockProofFixtureJS.toObject());
45
+ beforeEach(async () => {
46
+ assetLockProofFixture = await getInstantAssetLockProofFixture();
50
47
  });
51
48
 
52
49
  it('should return asset lock output', async () => {
@@ -122,7 +119,7 @@ describe('fetchAssetLockTransactionOutputFactory', () => {
122
119
  }
123
120
  });
124
121
 
125
- it('should return mocked output on dry run', async function () {
122
+ it('should return mocked output on dry run', async function shouldReturn() {
126
123
  executionContext.enableDryRun();
127
124
 
128
125
  const result = await fetchAssetLockTransactionOutput(
@@ -1,14 +1,13 @@
1
1
  const DashCoreLib = require('@dashevo/dashcore-lib');
2
-
3
- const getInstantAssetLockFixture = require('@dashevo/dpp/lib/test/fixtures/getInstantAssetLockProofFixture');
4
- const createStateRepositoryMock = require('@dashevo/dpp/lib/test/mocks/createStateRepositoryMock');
5
-
6
2
  const { expect } = require('chai');
3
+
4
+ const getInstantAssetLockFixture = require('../../../../../../lib/test/fixtures/js/getInstantAssetLockProofFixture');
5
+ const createStateRepositoryMock = require('../../../../../../lib/test/mocks/createStateRepositoryMock');
7
6
  const { expectJsonSchemaError, expectValidationError } = require('../../../../../../lib/test/expect/expectError');
8
7
 
9
8
  const { default: loadWasmDpp } = require('../../../../../../dist');
10
9
 
11
- describe('validateInstantAssetLockProofStructureFactory', () => {
10
+ describe.skip('validateInstantAssetLockProofStructureFactory', () => {
12
11
  let rawProof;
13
12
  let transaction;
14
13
  let stateRepositoryMock;
@@ -1,12 +1,11 @@
1
1
  const { Transaction, PrivateKey, Script } = require('@dashevo/dashcore-lib');
2
-
3
- const createStateRepositoryMock = require('@dashevo/dpp/lib/test/mocks/createStateRepositoryMock');
4
-
5
2
  const { expect } = require('chai');
3
+
4
+ const createStateRepositoryMock = require('../../../../../lib/test/mocks/createStateRepositoryMock');
6
5
  const { default: loadWasmDpp } = require('../../../../../dist');
7
6
  const { expectValidationError } = require('../../../../../lib/test/expect/expectError');
8
7
 
9
- describe('validateAssetLockTransactionFactory', () => {
8
+ describe.skip('validateAssetLockTransactionFactory', () => {
10
9
  let stateRepositoryMock;
11
10
  let rawTransaction;
12
11
  let outputIndex;
@@ -133,7 +132,8 @@ describe('validateAssetLockTransactionFactory', () => {
133
132
  expect(error.getOutputIndex()).to.equal(outputIndex);
134
133
  });
135
134
 
136
- it('should return IdentityAssetLockTransactionOutPointAlreadyExistsError if outPoint was already used', async function () {
135
+ it('should return IdentityAssetLockTransactionOutPointAlreadyExistsError if outPoint was'
136
+ + ' already used', async function shouldReturn() {
137
137
  stateRepositoryMock.isAssetLockTransactionOutPointAlreadyUsed.resolves(true);
138
138
 
139
139
  const result = await validateAssetLockTransaction(
@@ -162,7 +162,7 @@ describe('validateAssetLockTransactionFactory', () => {
162
162
  );
163
163
  });
164
164
 
165
- it('should return valid result', async function () {
165
+ it('should return valid result', async function shouldReturn() {
166
166
  const result = await validateAssetLockTransaction(
167
167
  rawTransaction,
168
168
  outputIndex,
@@ -2,21 +2,20 @@ const { PrivateKey, crypto: { Hash } } = require('@dashevo/dashcore-lib');
2
2
 
3
3
  const crypto = require('crypto');
4
4
 
5
- const getIdentityCreateTransitionFixture = require('@dashevo/dpp/lib/test/fixtures/getIdentityCreateTransitionFixture');
6
5
  const BlsSignatures = require('@dashevo/dpp/lib/bls/bls');
7
6
 
8
7
  const { expect } = require('chai');
8
+ const getIdentityCreateTransitionFixture = require('../../../../lib/test/fixtures/getIdentityCreateTransitionFixture');
9
9
  const { expectValidationError } = require('../../../../lib/test/expect/expectError');
10
10
  const getBlsAdapterMock = require('../../../../lib/test/mocks/getBlsAdapterMock');
11
11
 
12
12
  const { default: loadWasmDpp } = require('../../../../dist');
13
13
 
14
- describe('validatePublicKeySignaturesFactory', () => {
14
+ describe.skip('validatePublicKeySignaturesFactory', () => {
15
15
  let identityCreateTransition;
16
16
  let rawIdentityCreateTransition;
17
17
  let validatePublicKeySignatures;
18
18
 
19
- let IdentityCreateTransition;
20
19
  let IdentityPublicKey;
21
20
  let IdentityPublicKeyWithWitness;
22
21
  let InvalidIdentityKeySignatureError;
@@ -26,7 +25,6 @@ describe('validatePublicKeySignaturesFactory', () => {
26
25
 
27
26
  before(async () => {
28
27
  ({
29
- IdentityCreateTransition,
30
28
  IdentityPublicKey,
31
29
  IdentityPublicKeyWithWitness,
32
30
  InvalidIdentityKeySignatureError,
@@ -36,9 +34,7 @@ describe('validatePublicKeySignaturesFactory', () => {
36
34
  });
37
35
 
38
36
  beforeEach(async () => {
39
- identityCreateTransition = new IdentityCreateTransition(
40
- getIdentityCreateTransitionFixture().toObject(),
41
- );
37
+ identityCreateTransition = await getIdentityCreateTransitionFixture();
42
38
 
43
39
  const privateKey1 = new PrivateKey('17e0b1703e226204c557bce68b0871683ea409ae90c7a733b72a33f7c129c959');
44
40
  const publicKey1 = privateKey1.toPublicKey();
@@ -1,11 +1,11 @@
1
- const getIdentityFixture = require('@dashevo/dpp/lib/test/fixtures/getIdentityFixture');
1
+ const getIdentityFixture = require('../../../../lib/test/fixtures/getIdentityFixture');
2
2
  const { expectValidationError, expectJsonSchemaError } = require('../../../../lib/test/expect/expectError');
3
3
 
4
4
  const { default: loadWasmDpp } = require('../../../../dist');
5
5
  const getBlsAdapterMock = require('../../../../lib/test/mocks/getBlsAdapterMock');
6
6
  const generateRandomIdentifierAsync = require('../../../../lib/test/utils/generateRandomIdentifierAsync');
7
7
 
8
- describe('validateIdentityFactory', () => {
8
+ describe.skip('validateIdentityFactory', () => {
9
9
  let rawIdentity;
10
10
  let validateIdentity;
11
11
  let identity;
@@ -18,16 +18,17 @@ describe('validateIdentityFactory', () => {
18
18
  ({ IdentityValidator, Identity, UnsupportedProtocolVersionError } = await loadWasmDpp());
19
19
  });
20
20
 
21
- beforeEach(async () => {
21
+ beforeEach(async function beforeEach() {
22
+ this.timeout(20000);
22
23
  const blsAdapter = await getBlsAdapterMock();
23
24
 
24
25
  const validator = new IdentityValidator(blsAdapter);
25
26
 
26
27
  validateIdentity = (value) => validator.validate(value);
27
28
 
28
- const identityObjectJS = getIdentityFixture().toObject();
29
- identityObjectJS.id = await generateRandomIdentifierAsync();
30
- identity = new Identity(identityObjectJS);
29
+ const identityObject = (await getIdentityFixture()).toObject();
30
+ identityObject.id = await generateRandomIdentifierAsync();
31
+ identity = new Identity(identityObject);
31
32
 
32
33
  rawIdentity = identity.toObject();
33
34
  });
@@ -1,8 +1,7 @@
1
1
  const crypto = require('crypto');
2
2
 
3
- const getIdentityFixture = require('@dashevo/dpp/lib/test/fixtures/getIdentityFixture');
4
-
5
- const BlsSignatures = require('@dashevo/dpp/lib/bls/bls');
3
+ const getIdentityFixture = require('../../../../lib/test/fixtures/getIdentityFixture');
4
+ const getBlsMock = require('../../../../lib/test/mocks/getBlsAdapterMock');
6
5
 
7
6
  const {
8
7
  expectValidationError,
@@ -11,12 +10,11 @@ const {
11
10
 
12
11
  const { default: loadWasmDpp } = require('../../../../dist');
13
12
 
14
- describe('validatePublicKeysFactory', function main() {
13
+ describe.skip('validatePublicKeysFactory', function main() {
15
14
  this.timeout(10000);
16
15
 
17
16
  let rawPublicKeys;
18
17
  let validatePublicKeys;
19
- let bls;
20
18
  let publicKeysValidator;
21
19
 
22
20
  let PublicKeysValidator;
@@ -28,7 +26,7 @@ describe('validatePublicKeysFactory', function main() {
28
26
  let InvalidIdentityPublicKeySecurityLevelError;
29
27
 
30
28
  beforeEach(async () => {
31
- ({ publicKeys: rawPublicKeys } = getIdentityFixture().toObject());
29
+ ({ publicKeys: rawPublicKeys } = (await getIdentityFixture()).toObject());
32
30
 
33
31
  ({
34
32
  PublicKeysValidator, IdentityPublicKey,
@@ -37,25 +35,7 @@ describe('validatePublicKeysFactory', function main() {
37
35
  InvalidIdentityPublicKeyDataError, InvalidIdentityPublicKeySecurityLevelError,
38
36
  } = await loadWasmDpp());
39
37
 
40
- bls = await BlsSignatures.getInstance();
41
-
42
- const blsAdapter = {
43
- validatePublicKey(publicKeyBuffer) {
44
- let pk;
45
-
46
- try {
47
- pk = bls.G1Element.fromBytes(publicKeyBuffer);
48
- } catch (e) {
49
- return false;
50
- } finally {
51
- if (pk) {
52
- pk.delete();
53
- }
54
- }
55
-
56
- return Boolean(pk);
57
- },
58
- };
38
+ const blsAdapter = await getBlsMock();
59
39
 
60
40
  publicKeysValidator = new PublicKeysValidator(blsAdapter);
61
41
 
@@ -1,16 +1,12 @@
1
1
  const { PrivateKey } = require('@dashevo/dashcore-lib');
2
2
  const crypto = require('crypto');
3
3
 
4
- const getIdentityCreateTransitionFixture = require('@dashevo/dpp/lib/test/fixtures/getIdentityCreateTransitionFixture');
5
-
6
- const createStateRepositoryMock = require('@dashevo/dpp/lib/test/mocks/createStateRepositoryMock');
7
-
8
- const getIdentityFixture = require('@dashevo/dpp/lib/test/fixtures/getIdentityFixture');
4
+ const getIdentityFixture = require('../../../lib/test/fixtures/getIdentityFixture');
5
+ const getIdentityCreateTransitionFixture = require('../../../lib/test/fixtures/getIdentityCreateTransitionFixture');
9
6
  const getDocumentsFixture = require('../../../lib/test/fixtures/getDocumentsFixture');
10
7
  const getDataContractFixture = require('../../../lib/test/fixtures/getDataContractFixture');
11
8
 
12
9
  const { default: loadWasmDpp } = require('../../../dist');
13
- const getBlsAdapterMock = require('../../../lib/test/mocks/getBlsAdapterMock');
14
10
  const generateRandomIdentifierAsync = require('../../../lib/test/utils/generateRandomIdentifierAsync');
15
11
 
16
12
  describe('StateTransitionFacade', () => {
@@ -25,63 +21,60 @@ describe('StateTransitionFacade', () => {
25
21
 
26
22
  let DashPlatformProtocol;
27
23
  let DataContractFactory;
28
- let DataContractValidator;
24
+ // let DataContractValidator;
29
25
  let DataContractCreateTransition;
30
- let Identity;
26
+ // let Identity;
31
27
  let ValidationResult;
32
28
  let IdentityPublicKey;
33
29
  let DocumentFactory;
34
- let DocumentValidator;
35
- let ProtocolVersionValidator;
36
- let IdentityCreateTransition;
30
+ // let DocumentValidator;
31
+ // let ProtocolVersionValidator;
37
32
  let UnsupportedProtocolVersionError;
38
33
  let InvalidStateTransitionSignatureError;
39
34
  let DataContractAlreadyPresentError;
40
35
  let BalanceIsNotEnoughError;
41
- let StateTransitionExecutionContext;
36
+ // let StateTransitionExecutionContext;
42
37
 
43
38
  before(async () => {
44
39
  ({
45
40
  DashPlatformProtocol,
46
41
  ValidationResult,
47
42
  DataContractCreateTransition,
48
- Identity,
49
- DataContractValidator,
43
+ // Identity,
50
44
  DataContractFactory,
51
45
  IdentityPublicKey,
52
46
  DocumentFactory,
53
- DocumentValidator,
54
- ProtocolVersionValidator,
55
- IdentityCreateTransition,
47
+ // DocumentValidator,
48
+ // ProtocolVersionValidator,
56
49
  UnsupportedProtocolVersionError,
57
50
  InvalidStateTransitionSignatureError,
58
51
  DataContractAlreadyPresentError,
59
52
  BalanceIsNotEnoughError,
60
- StateTransitionExecutionContext,
61
53
  } = await loadWasmDpp());
62
54
  });
63
55
 
64
56
  beforeEach(async function beforeEach() {
57
+ this.timeout(20000);
65
58
  const privateKeyModel = new PrivateKey();
66
59
  const privateKey = privateKeyModel.toBuffer();
67
60
  const publicKey = privateKeyModel.toPublicKey().toBuffer();
68
61
  const publicKeyId = 1;
69
62
 
70
- executionContext = new StateTransitionExecutionContext();
63
+ // executionContext = new StateTransitionExecutionContext();
71
64
 
72
- identityPublicKey = new IdentityPublicKey({
73
- id: publicKeyId,
74
- type: IdentityPublicKey.TYPES.ECDSA_SECP256K1,
75
- data: publicKey,
76
- purpose: IdentityPublicKey.PURPOSES.AUTHENTICATION,
77
- securityLevel: IdentityPublicKey.SECURITY_LEVELS.HIGH,
78
- readOnly: false,
79
- });
65
+ identityPublicKey = new IdentityPublicKey(1);
66
+
67
+ identityPublicKey.setId(publicKeyId);
68
+ identityPublicKey.setType(IdentityPublicKey.TYPES.ECDSA_SECP256K1);
69
+ identityPublicKey.setData(publicKey);
70
+ identityPublicKey.setSecurityLevel(IdentityPublicKey.SECURITY_LEVELS.CRITICAL);
71
+ identityPublicKey.setPurpose(IdentityPublicKey.PURPOSES.AUTHENTICATION);
72
+ identityPublicKey.setReadOnly(false);
80
73
 
81
74
  dataContract = await getDataContractFixture();
82
75
 
83
- const dataContractValidator = new DataContractValidator();
84
- const dataContractFactory = new DataContractFactory(1, dataContractValidator);
76
+ // const dataContractValidator = new DataContractValidator();
77
+ const dataContractFactory = new DataContractFactory(1);
85
78
 
86
79
  dataContractCreateTransition = await dataContractFactory.createDataContractCreateTransition(
87
80
  dataContract,
@@ -91,39 +84,36 @@ describe('StateTransitionFacade', () => {
91
84
  privateKey,
92
85
  );
93
86
 
94
- const documentValidator = new DocumentValidator(new ProtocolVersionValidator());
95
- const documentFactory = new DocumentFactory(1, documentValidator, stateRepositoryMock);
87
+ // const documentValidator = new DocumentValidator(new ProtocolVersionValidator());
88
+ // documentValidator, stateRepositoryMock
89
+ const documentFactory = new DocumentFactory(1);
90
+
91
+ identityPublicKey = new IdentityPublicKey(1);
92
+
93
+ identityPublicKey.setId(publicKeyId);
94
+ identityPublicKey.setType(IdentityPublicKey.TYPES.ECDSA_SECP256K1);
95
+ identityPublicKey.setData(publicKey);
96
+ identityPublicKey.setSecurityLevel(IdentityPublicKey.SECURITY_LEVELS.HIGH);
97
+ identityPublicKey.setPurpose(IdentityPublicKey.PURPOSES.AUTHENTICATION);
98
+ identityPublicKey.setReadOnly(false);
96
99
 
97
100
  documentsBatchTransition = documentFactory.createStateTransition({
98
101
  create: await getDocumentsFixture(dataContract),
99
102
  });
100
103
  await documentsBatchTransition.sign(identityPublicKey, privateKey);
101
104
 
102
- const identityObjectJS = getIdentityFixture().toObject();
103
- identityObjectJS.id = await generateRandomIdentifierAsync();
104
- identityObjectJS.balance = 10000000;
105
- identity = new Identity(identityObjectJS);
105
+ identity = await getIdentityFixture();
106
+ identity.setId(await generateRandomIdentifierAsync());
107
+ identity.setBalance(10000000);
106
108
  identity.setPublicKeys([identityPublicKey]);
107
109
 
108
- const blockTime = Date.now();
109
-
110
- stateRepositoryMock = createStateRepositoryMock(this.sinonSandbox);
111
- stateRepositoryMock.fetchIdentity.resolves(identity);
112
- stateRepositoryMock.fetchIdentityBalance.resolves(identity.getBalance());
113
- stateRepositoryMock.fetchLatestPlatformBlockTime.resolves(blockTime);
114
- stateRepositoryMock.fetchDataContract.resolves(null);
115
-
116
- const blsAdapter = await getBlsAdapterMock();
117
-
118
110
  dpp = new DashPlatformProtocol(
119
- blsAdapter,
120
- stateRepositoryMock,
121
111
  { generate: () => crypto.randomBytes(32) },
122
112
  1,
123
113
  );
124
114
  });
125
115
 
126
- describe('createFromObject', () => {
116
+ describe.skip('createFromObject', () => {
127
117
  it('should create State Transition from plain object', async () => {
128
118
  const object = dataContractCreateTransition.toObject();
129
119
  const result = await dpp.stateTransition.createFromObject(
@@ -137,7 +127,7 @@ describe('StateTransitionFacade', () => {
137
127
  });
138
128
 
139
129
  describe('createFromBuffer', () => {
140
- it('should create State Transition from string', async () => {
130
+ it('should create Data Contract State Transition from buffer', async () => {
141
131
  const result = await dpp.stateTransition.createFromBuffer(
142
132
  dataContractCreateTransition.toBuffer(),
143
133
  );
@@ -148,7 +138,7 @@ describe('StateTransitionFacade', () => {
148
138
  });
149
139
  });
150
140
 
151
- describe('validate', () => {
141
+ describe.skip('validate', () => {
152
142
  it('should return invalid result if State Transition structure is invalid', async () => {
153
143
  const rawStateTransition = dataContractCreateTransition.toObject();
154
144
  rawStateTransition.protocolVersion = 100;
@@ -228,7 +218,7 @@ describe('StateTransitionFacade', () => {
228
218
  });
229
219
  });
230
220
 
231
- describe('validateBasic', () => {
221
+ describe.skip('validateBasic', () => {
232
222
  it('should validate State Transition', async () => {
233
223
  const result = await dpp.stateTransition.validateBasic(
234
224
  dataContractCreateTransition.toObject(), executionContext,
@@ -239,7 +229,7 @@ describe('StateTransitionFacade', () => {
239
229
  });
240
230
  });
241
231
 
242
- describe('validateSignature', () => {
232
+ describe.skip('validateSignature', () => {
243
233
  it('should validate identity signed State Transition', async () => {
244
234
  const result = await dpp.stateTransition.validateSignature(
245
235
  dataContractCreateTransition, executionContext,
@@ -254,10 +244,7 @@ describe('StateTransitionFacade', () => {
254
244
  'af432c476f65211f45f48f1d42c9c0b497e56696aa1736b40544ef1a496af837',
255
245
  );
256
246
 
257
- const identityCreateTransitionJS = getIdentityCreateTransitionFixture(oneTimePrivateKey);
258
- const identityCreateTransition = new IdentityCreateTransition(
259
- identityCreateTransitionJS.toObject(),
260
- );
247
+ const identityCreateTransition = await getIdentityCreateTransitionFixture(oneTimePrivateKey);
261
248
 
262
249
  await identityCreateTransition.signByPrivateKey(
263
250
  oneTimePrivateKey.toBuffer(),
@@ -273,7 +260,7 @@ describe('StateTransitionFacade', () => {
273
260
  });
274
261
  });
275
262
 
276
- describe('validateFee', () => {
263
+ describe.skip('validateFee', () => {
277
264
  it('should validate State Transition', async () => {
278
265
  const result = await dpp.stateTransition.validateFee(
279
266
  dataContractCreateTransition,
@@ -285,7 +272,7 @@ describe('StateTransitionFacade', () => {
285
272
  });
286
273
  });
287
274
 
288
- describe('validateState', () => {
275
+ describe.skip('validateState', () => {
289
276
  it('should validate State Transition', async () => {
290
277
  const result = await dpp.stateTransition.validateState(
291
278
  dataContractCreateTransition,
@@ -3,7 +3,7 @@ const { default: loadWasmDpp } = require('../../..');
3
3
 
4
4
  let { generateTemporaryEcdsaPrivateKey } = require('../../..');
5
5
 
6
- describe('generateTemporaryEcdsaPrivateKey', () => {
6
+ describe.skip('generateTemporaryEcdsaPrivateKey', () => {
7
7
  beforeEach(async () => {
8
8
  ({ generateTemporaryEcdsaPrivateKey } = await loadWasmDpp());
9
9
  });