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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (329) hide show
  1. package/Cargo.toml +34 -7
  2. package/README.md +12 -7
  3. package/dist/errors/patchConsensusErrors.js +94 -115
  4. package/dist/wasm/wasm_dpp.d.ts +2302 -4106
  5. package/dist/wasm/wasm_dpp.js +18149 -2639
  6. package/dist/wasm/wasm_dpp_bg.js +1 -1
  7. package/lib/bls/bls.js +48 -0
  8. package/lib/dpp.ts +1 -1
  9. package/lib/errors/patchConsensusErrors.ts +94 -93
  10. package/lib/test/bootstrap.js +5 -0
  11. package/lib/test/fixtures/getChainAssetLockProofFixture.js +20 -1
  12. package/lib/test/fixtures/getDataContractFixture.js +13 -9
  13. package/lib/test/fixtures/getDocumentTransitionsFixture.js +31 -1
  14. package/lib/test/fixtures/getDocumentsFixture.js +9 -5
  15. package/lib/test/fixtures/getIdentityCreateTransitionFixture.js +14 -20
  16. package/lib/test/fixtures/getIdentityCreditTransferTransitionFixture.js +14 -0
  17. package/lib/test/fixtures/getIdentityFixture.js +21 -32
  18. package/lib/test/fixtures/getIdentityTopUpTransitionFixture.js +7 -10
  19. package/lib/test/fixtures/getIdentityUpdateTransitionFixture.js +13 -28
  20. package/lib/test/fixtures/getInstantAssetLockProofFixture.js +32 -12
  21. package/lib/test/fixtures/getPrivateAndPublicKeyForSigningFixture.js +7 -9
  22. package/lib/test/mocks/createStateRepositoryMock.js +1 -0
  23. package/lib/test/mocks/getBlsAdapterMock.js +1 -1
  24. package/lib/utils/creditsConverter.js +14 -0
  25. package/lib/utils/hash.js +18 -0
  26. package/lib/wasm/wasm_dpp.d.ts +2302 -4106
  27. package/package.json +4 -6
  28. package/scripts/build-wasm.sh +30 -29
  29. package/src/bls_adapter.rs +1 -1
  30. package/src/dash_platform_protocol.rs +169 -192
  31. package/src/data_contract/data_contract.rs +309 -199
  32. package/src/data_contract/data_contract_facade.rs +28 -47
  33. package/src/data_contract/errors/mod.rs +1 -0
  34. package/src/data_contract/mod.rs +2 -2
  35. package/src/data_contract/state_transition/data_contract_create_transition/mod.rs +92 -79
  36. package/src/data_contract/state_transition/data_contract_update_transition/mod.rs +84 -77
  37. package/src/data_contract_factory/data_contract_factory.rs +43 -83
  38. package/src/document/document_facade.rs +81 -76
  39. package/src/document/errors/document_already_exists_error.rs +6 -6
  40. package/src/document/errors/document_no_revision_error.rs +1 -0
  41. package/src/document/errors/document_not_provided_error.rs +6 -6
  42. package/src/document/errors/invalid_document_action_error.rs +11 -7
  43. package/src/document/errors/invalid_document_error.rs +5 -0
  44. package/src/document/errors/invalid_initial_revision_error.rs +4 -4
  45. package/src/document/errors/mismatch_owners_ids_error.rs +5 -8
  46. package/src/document/errors/mod.rs +5 -0
  47. package/src/document/errors/revision_absent_error.rs +6 -6
  48. package/src/document/errors/trying_to_delete_immutable_document_error.rs +19 -0
  49. package/src/document/errors/trying_to_replace_immutable_document_error.rs +4 -4
  50. package/src/document/extended_document.rs +91 -76
  51. package/src/document/factory.rs +140 -119
  52. package/src/document/generate_document_id.rs +2 -2
  53. package/src/document/mod.rs +164 -150
  54. package/src/document/state_transition/document_batch_transition/document_transition/document_create_transition.rs +236 -229
  55. package/src/document/state_transition/document_batch_transition/document_transition/document_delete_transition.rs +14 -14
  56. package/src/document/state_transition/document_batch_transition/document_transition/document_replace_transition.rs +50 -38
  57. package/src/document/state_transition/document_batch_transition/document_transition/mod.rs +164 -152
  58. package/src/document/state_transition/document_batch_transition/mod.rs +232 -222
  59. package/src/errors/consensus/basic/data_contract/data_contract_have_new_unique_index_error.rs +2 -9
  60. package/src/errors/consensus/basic/data_contract/data_contract_immutable_properties_update_error.rs +1 -9
  61. package/src/errors/consensus/basic/data_contract/data_contract_invalid_index_definition_update_error.rs +2 -10
  62. package/src/errors/consensus/basic/data_contract/data_contract_max_depth_exceed_error.rs +1 -9
  63. package/src/errors/consensus/basic/data_contract/data_contract_unique_indices_changed_error.rs +1 -9
  64. package/src/errors/consensus/basic/data_contract/duplicate_index_name_error.rs +1 -9
  65. package/src/errors/consensus/basic/data_contract/incompatible_data_contract_schema_error.rs +1 -9
  66. package/src/errors/consensus/basic/data_contract/incompatible_re2_pattern_error.rs +1 -9
  67. package/src/errors/consensus/basic/data_contract/index_error/duplicate_index_error.rs +1 -9
  68. package/src/errors/consensus/basic/data_contract/index_error/invalid_compound_index_error.rs +1 -9
  69. package/src/errors/consensus/basic/data_contract/index_error/invalid_index_property_type_error.rs +1 -9
  70. package/src/errors/consensus/basic/data_contract/index_error/invalid_indexed_property_constraint_error.rs +1 -9
  71. package/src/errors/consensus/basic/data_contract/index_error/system_property_index_already_present_error.rs +1 -9
  72. package/src/errors/consensus/basic/data_contract/index_error/undefined_index_property_error.rs +1 -9
  73. package/src/errors/consensus/basic/data_contract/index_error/unique_indices_limit_reached_error.rs +1 -9
  74. package/src/errors/consensus/basic/data_contract/invalid_data_contract_id_error.rs +1 -9
  75. package/src/errors/consensus/basic/data_contract/invalid_data_contract_version_error.rs +1 -9
  76. package/src/errors/consensus/basic/data_contract/invalid_json_schema_ref_error.rs +1 -9
  77. package/src/errors/consensus/basic/decode/protocol_version_parsing_error.rs +10 -7
  78. package/src/errors/consensus/basic/decode/serialized_object_parsing_error.rs +1 -9
  79. package/src/errors/consensus/basic/document/data_contract_not_present_error.rs +1 -9
  80. package/src/errors/consensus/basic/document/duplicate_document_transitions_with_ids_error.rs +1 -9
  81. package/src/errors/consensus/basic/document/duplicate_document_transitions_with_indices_error.rs +1 -9
  82. package/src/errors/consensus/basic/document/inconsistent_compound_index_data_error.rs +1 -9
  83. package/src/errors/consensus/basic/document/invalid_document_transition_action_error.rs +1 -9
  84. package/src/errors/consensus/basic/document/invalid_document_transition_id_error.rs +1 -9
  85. package/src/errors/consensus/basic/document/invalid_document_type_error.rs +1 -9
  86. package/src/errors/consensus/basic/document/missing_data_contract_id_error.rs +1 -9
  87. package/src/errors/consensus/basic/document/missing_document_transition_action_error.rs +1 -9
  88. package/src/errors/consensus/basic/document/missing_document_transition_type_error.rs +1 -9
  89. package/src/errors/consensus/basic/document/missing_document_type_error.rs +1 -9
  90. package/src/errors/consensus/basic/identity/duplicated_identity_public_key_error.rs +1 -9
  91. package/src/errors/consensus/basic/identity/duplicated_identity_public_key_id_error.rs +1 -9
  92. package/src/errors/consensus/basic/identity/identity_asset_lock_proof_locked_transaction_mismatch_error.rs +3 -11
  93. package/src/errors/consensus/basic/identity/identity_asset_lock_transaction_is_not_found_error.rs +1 -9
  94. package/src/errors/consensus/basic/identity/identity_asset_lock_transaction_out_point_already_exists_error.rs +2 -10
  95. package/src/errors/consensus/basic/identity/identity_asset_lock_transaction_output_not_found_error.rs +1 -9
  96. package/src/errors/consensus/basic/identity/identity_insufficient_balance_error.rs +5 -11
  97. package/src/errors/consensus/basic/identity/invalid_asset_lock_proof_core_chain_height_error.rs +1 -9
  98. package/src/errors/consensus/basic/identity/invalid_asset_lock_proof_transaction_height_error.rs +1 -9
  99. package/src/errors/consensus/basic/identity/invalid_asset_lock_transaction_output_return_size_error.rs +1 -9
  100. package/src/errors/consensus/basic/identity/invalid_identity_asset_lock_proof_chain_lock_validation_error.rs +1 -1
  101. package/src/errors/consensus/basic/identity/invalid_identity_asset_lock_transaction_error.rs +1 -9
  102. package/src/errors/consensus/basic/identity/invalid_identity_asset_lock_transaction_output_error.rs +1 -9
  103. package/src/errors/consensus/basic/identity/invalid_identity_credit_withdrawal_transition_core_fee_error.rs +1 -9
  104. package/src/errors/consensus/basic/identity/invalid_identity_credit_withdrawal_transition_output_script_error.rs +1 -9
  105. package/src/errors/consensus/basic/identity/invalid_identity_credit_withdrawal_transition_pooling_error.rs +1 -9
  106. package/src/errors/consensus/basic/identity/invalid_identity_key_signature_error.rs +1 -9
  107. package/src/errors/consensus/basic/identity/invalid_identity_public_key_data_error.rs +1 -9
  108. package/src/errors/consensus/basic/identity/invalid_identity_public_key_security_level_error.rs +1 -9
  109. package/src/errors/consensus/basic/identity/invalid_identity_public_key_type_error.rs +1 -9
  110. package/src/errors/consensus/basic/identity/invalid_instant_asset_lock_proof_error.rs +1 -9
  111. package/src/errors/consensus/basic/identity/invalid_instant_asset_lock_proof_signature_error.rs +1 -9
  112. package/src/errors/consensus/basic/identity/missing_master_public_key_error.rs +1 -9
  113. package/src/errors/consensus/basic/identity/missing_public_key_error.rs +1 -9
  114. package/src/errors/consensus/basic/incompatible_protocol_version_error.rs +1 -9
  115. package/src/errors/consensus/basic/invalid_identifier_error.rs +1 -9
  116. package/src/errors/consensus/basic/invalid_signature_public_key_security_level_error.rs +7 -15
  117. package/src/errors/consensus/basic/invalid_state_transition_signature_error.rs +1 -9
  118. package/src/errors/consensus/basic/json_schema_compilation_error.rs +1 -9
  119. package/src/errors/consensus/basic/json_schema_error.rs +33 -11
  120. package/src/errors/consensus/basic/mod.rs +2 -0
  121. package/src/errors/consensus/basic/public_key_is_disabled_error.rs +1 -9
  122. package/src/errors/consensus/basic/public_key_security_level_not_met_error.rs +2 -11
  123. package/src/errors/consensus/basic/state_transition/invalid_state_transition_type_error.rs +1 -9
  124. package/src/errors/consensus/basic/state_transition/missing_state_transition_type_error.rs +1 -9
  125. package/src/errors/consensus/basic/state_transition/state_transition_max_size_exceeded_error.rs +1 -9
  126. package/src/errors/consensus/basic/unsupported_protocol_version_error.rs +1 -9
  127. package/src/errors/consensus/basic/unsupported_version_error.rs +44 -0
  128. package/src/errors/consensus/basic/wrong_public_key_purpose_error.rs +1 -9
  129. package/src/errors/consensus/consensus_error.rs +44 -21
  130. package/src/errors/consensus/deserialize.rs +2 -1
  131. package/src/errors/consensus/fee/balance_is_not_enough_error.rs +5 -2
  132. package/src/errors/consensus/signature/basic_bls_error.rs +1 -9
  133. package/src/errors/consensus/signature/basic_ecdsa_error.rs +1 -9
  134. package/src/errors/consensus/signature/identity_not_found_error.rs +4 -2
  135. package/src/errors/consensus/signature/signature_should_not_be_present_error.rs +1 -9
  136. package/src/errors/consensus/state/data_contract/data_contract_already_present_error.rs +3 -2
  137. package/src/errors/consensus/state/data_contract/data_contract_config_update_error.rs +42 -0
  138. package/src/errors/consensus/state/data_contract/data_contract_is_readonly_error.rs +44 -0
  139. package/src/errors/consensus/state/data_contract/data_trigger/data_trigger_condition_error.rs +2 -1
  140. package/src/errors/consensus/state/data_contract/data_trigger/data_trigger_execution_error.rs +2 -1
  141. package/src/errors/consensus/state/data_contract/data_trigger/data_trigger_invalid_result_error.rs +2 -1
  142. package/src/errors/consensus/state/data_contract/mod.rs +7 -1
  143. package/src/errors/consensus/state/document/document_already_present_error.rs +1 -9
  144. package/src/errors/consensus/state/document/document_not_found_error.rs +1 -9
  145. package/src/errors/consensus/state/document/document_owner_id_mismatch_error.rs +1 -9
  146. package/src/errors/consensus/state/document/document_timestamp_window_violation_error.rs +1 -9
  147. package/src/errors/consensus/state/document/document_timestamps_are_equal_error.rs +34 -0
  148. package/src/errors/consensus/state/document/document_timestamps_mismatch_error.rs +1 -9
  149. package/src/errors/consensus/state/document/duplicate_unique_index_error.rs +1 -9
  150. package/src/errors/consensus/state/document/invalid_document_revision_error.rs +9 -12
  151. package/src/errors/consensus/state/document/mod.rs +2 -0
  152. package/src/errors/consensus/state/identity/duplicated_identity_public_key_id_state_error.rs +1 -9
  153. package/src/errors/consensus/state/identity/duplicated_identity_public_key_state_error.rs +1 -9
  154. package/src/errors/consensus/state/identity/identity_already_exists_error.rs +1 -9
  155. package/src/errors/consensus/state/identity/identity_public_key_disabled_at_window_violation_error.rs +1 -9
  156. package/src/errors/consensus/state/identity/identity_public_key_is_disabled_error.rs +1 -9
  157. package/src/errors/consensus/state/identity/identity_public_key_is_read_only_error.rs +1 -9
  158. package/src/errors/consensus/state/identity/invalid_identity_public_key_id_error.rs +2 -9
  159. package/src/errors/consensus/state/identity/invalid_identity_revision_error.rs +1 -9
  160. package/src/errors/consensus/state/identity/max_identity_public_key_limit_reached_error.rs +1 -9
  161. package/src/errors/consensus/value_error.rs +1 -9
  162. package/src/errors/from.rs +12 -8
  163. package/src/errors/mod.rs +7 -7
  164. package/src/errors/value_error.rs +5 -0
  165. package/src/identity/errors/asset_lock_transaction_is_not_found_error.rs +1 -2
  166. package/src/identity/factory_utils.rs +13 -13
  167. package/src/identity/identity.rs +275 -0
  168. package/src/identity/identity_facade.rs +94 -75
  169. package/src/identity/identity_factory.rs +74 -54
  170. package/src/identity/identity_public_key/mod.rs +87 -64
  171. package/src/identity/mod.rs +25 -247
  172. package/src/identity/state_transition/asset_lock_proof/chain/chain_asset_lock_proof.rs +32 -17
  173. package/src/identity/state_transition/asset_lock_proof/chain/chain_asset_lock_proof_structure_validator.rs +0 -1
  174. package/src/identity/state_transition/asset_lock_proof/chain/mod.rs +3 -1
  175. package/src/identity/state_transition/asset_lock_proof/instant/instant_asset_lock_proof.rs +24 -15
  176. package/src/identity/state_transition/asset_lock_proof/instant/instant_asset_lock_proof_structure_validator.rs +0 -1
  177. package/src/identity/state_transition/asset_lock_proof/instant/mod.rs +3 -1
  178. package/src/identity/state_transition/asset_lock_proof/mod.rs +124 -127
  179. package/src/identity/state_transition/identity_create_transition/identity_create_transition.rs +72 -65
  180. package/src/identity/state_transition/identity_create_transition/identity_create_transition_basic_validator.rs +0 -1
  181. package/src/identity/state_transition/identity_create_transition/mod.rs +3 -3
  182. package/src/identity/state_transition/identity_create_transition/to_object.rs +11 -12
  183. package/src/identity/state_transition/identity_credit_transfer_transition/apply_identity_credit_transfer_transition.rs +31 -0
  184. package/src/identity/state_transition/identity_credit_transfer_transition/identity_credit_transfer_transition_basic_validator.rs +66 -0
  185. package/src/identity/state_transition/identity_credit_transfer_transition/identity_credit_transfer_transition_state_validator.rs +44 -0
  186. package/src/identity/state_transition/identity_credit_transfer_transition/mod.rs +8 -0
  187. package/src/identity/state_transition/identity_credit_transfer_transition/to_object.rs +49 -0
  188. package/src/identity/state_transition/identity_credit_transfer_transition/transition.rs +344 -0
  189. package/src/identity/state_transition/identity_public_key_transitions.rs +89 -75
  190. package/src/identity/state_transition/identity_topup_transition/identity_topup_transition.rs +68 -62
  191. package/src/identity/state_transition/identity_topup_transition/identity_topup_transition_basic_validator.rs +0 -2
  192. package/src/identity/state_transition/identity_topup_transition/mod.rs +3 -3
  193. package/src/identity/state_transition/identity_topup_transition/to_object.rs +9 -12
  194. package/src/identity/state_transition/identity_update_transition/identity_update_public_keys_validator.rs +2 -2
  195. package/src/identity/state_transition/identity_update_transition/identity_update_transition.rs +99 -104
  196. package/src/identity/state_transition/identity_update_transition/mod.rs +4 -4
  197. package/src/identity/state_transition/identity_update_transition/to_object.rs +15 -19
  198. package/src/identity/state_transition/mod.rs +5 -2
  199. package/src/identity/state_transition/transition_types.rs +34 -0
  200. package/src/identity/state_transition/validate_public_key_signatures.rs +2 -2
  201. package/src/lib.rs +9 -10
  202. package/src/metadata.rs +3 -3
  203. package/src/protocol_version.rs +7 -0
  204. package/src/state_transition/conversion.rs +11 -1
  205. package/src/state_transition/errors/invalid_state_transition_error.rs +12 -1
  206. package/src/state_transition/fee/operations/pre_calculated_operation.rs +2 -1
  207. package/src/state_transition/mod.rs +137 -139
  208. package/src/state_transition/state_transition_facade.rs +11 -11
  209. package/src/state_transition/state_transition_factory.rs +142 -153
  210. package/src/state_transition/validation/state_transition_fee_validator.rs +1 -1
  211. package/src/state_transition/validation/validate_state_transition_identity_signature.rs +28 -10
  212. package/src/state_transition/validation/validate_state_transition_key_signature.rs +1 -1
  213. package/src/utils.rs +7 -8
  214. package/src/validation/mod.rs +2 -2
  215. package/src/validation/validation_result.rs +17 -15
  216. package/test/integration/dataContract/DataContractFacade.spec.js +25 -32
  217. package/test/integration/dataContract/stateTransition/DataContractCreateTransition/validation/basic/validateDataContractCreateTransitionBasicFactory.spec.js +6 -6
  218. package/test/integration/dataContract/stateTransition/DataContractUpdateTransition/validation/basic/validateDataContractUpdateTransitionBasicFactory.spec.js +11 -10
  219. package/test/integration/dataContract/validation/validateDataContractFactory.spec.js +3 -3
  220. package/test/integration/document/Document.spec.js +3 -3
  221. package/test/integration/document/DocumentFacade.spec.js +33 -48
  222. package/test/integration/document/stateTransition/DocumentsBatchTransition/DocumentBatchTransition.spec.js +13 -24
  223. package/test/integration/document/stateTransition/DocumentsBatchTransition/validation/basic/validateDocumentsBatchTransitionBasicFactory.spec.js +15 -15
  224. package/test/integration/document/validation/validateDocumentFactory.spec.js +3 -3
  225. package/test/integration/identity/IdentityFacade.spec.js +33 -63
  226. package/test/integration/identity/stateTransition/IdentityCreateTransition/validation/basic/validateIdentityCreateTransitionBasicFactory.spec.js +6 -8
  227. package/test/integration/identity/stateTransition/IdentityTopUpTransition/validation/basic/validateIdentityTopUpTransitionBasicFactory.spec.js +4 -7
  228. package/test/integration/identity/stateTransition/IdentityUpdateTransition/validation/basic/validateIdentityUpdateTransitionBasicFactory.spec.js +1 -1
  229. package/test/integration/identity/stateTransition/IdentityUpdateTransition/validation/state/validateIdentityUpdateTransitionStateFactory.spec.js +21 -24
  230. package/test/integration/identity/stateTransition/IdentityUpdateTransition/validation/state/validatePublicKeysState.spec.js +2 -2
  231. package/test/integration/identity/stateTransition/assetLockProof/chain/validateChainAssetLockProofStructureFactory.spec.js +4 -4
  232. package/test/integration/identity/stateTransition/assetLockProof/fetchAssetLockTransactionOutputFactory.spec.js +7 -10
  233. package/test/integration/identity/stateTransition/assetLockProof/instant/validateInstantAssetLockProofStructureFactory.spec.js +5 -6
  234. package/test/integration/identity/stateTransition/assetLockProof/validateAssetLockTransactionFactory.spec.js +6 -6
  235. package/test/integration/identity/stateTransition/validatePublicKeySignaturesFactory.spec.js +5 -9
  236. package/test/integration/identity/validation/validateIdentityFactory.spec.js +7 -6
  237. package/test/integration/identity/validation/validatePublicKeysFactory.spec.js +5 -25
  238. package/test/integration/stateTransition/StateTransitionFacade.spec.js +45 -58
  239. package/test/integration/util/generateTemporaryEcdsaPrivateKey.spec.js +1 -1
  240. package/test/unit/DashPlatformProtocol.spec.js +10 -25
  241. package/test/unit/dataContract/DataContract.spec.js +119 -148
  242. package/test/unit/dataContract/DataContractFactory.spec.js +42 -31
  243. package/test/unit/dataContract/createDataContract.spec.js +6 -6
  244. package/test/unit/dataContract/generateDataContractId.spec.js +1 -1
  245. package/test/unit/dataContract/stateTransition/DataContractCreateTransition/DataContractCreateTransition.spec.js +34 -26
  246. package/test/unit/dataContract/stateTransition/DataContractCreateTransition/validation/state/validateDataContractCreateTransitionStateFactory.spec.js +10 -9
  247. package/test/unit/dataContract/stateTransition/DataContractUpdateTransition/DataContractUpdateTransition.spec.js +34 -27
  248. package/test/unit/dataContract/stateTransition/DataContractUpdateTransition/validation/basic/validateIndicesAreBackwardCompatible.spec.js +5 -5
  249. package/test/unit/dataContract/stateTransition/DataContractUpdateTransition/validation/state/validateDataContractUpdateTransitionStateFactory.spec.js +11 -10
  250. package/test/unit/dataContract/validation/validateDataContractPatterns.spec.js +7 -7
  251. package/test/unit/document/Document.spec.js +59 -70
  252. package/test/unit/document/DocumentFactory.spec.js +46 -111
  253. package/test/unit/document/errors/InvalidDocumentError.spec.js +9 -9
  254. package/test/unit/document/fetchAndValidateDataContractFactory.spec.js +1 -1
  255. package/test/unit/document/stateTransition/DocumetsBatchTransition/DocumentsBatchTransition.spec.js +160 -158
  256. package/test/unit/document/stateTransition/DocumetsBatchTransition/documentTransition/DocumentCreateTransition.spec.js +1 -1
  257. package/test/unit/document/stateTransition/DocumetsBatchTransition/validation/basic/findDuplicatesById.spec.js +1 -1
  258. package/test/unit/document/stateTransition/DocumetsBatchTransition/validation/basic/findDuplicatesByIndices.spec.js +134 -136
  259. package/test/unit/document/stateTransition/DocumetsBatchTransition/validation/basic/validatePartialCompoundIndices.spec.js +4 -4
  260. package/test/unit/document/stateTransition/DocumetsBatchTransition/validation/state/validateDocumentsBatchTransitionStateFactory.spec.js +572 -595
  261. package/test/unit/document/stateTransition/DocumetsBatchTransition/validation/state/validateDocumentsUniquenessByIndicesFactory.spec.js +6 -14
  262. package/test/unit/identity/Identity.spec.js +48 -83
  263. package/test/unit/identity/IdentityFactory.spec.js +61 -75
  264. package/test/unit/identity/IdentityPublicKey.spec.js +34 -48
  265. package/test/unit/identity/stateTransition/IdentityCreateTransition/IdentityCreateTransition.spec.js +30 -63
  266. package/test/unit/identity/stateTransition/IdentityCreateTransition/validation/state/validateIdentityCreateTransitionStateFactory.spec.js +5 -9
  267. package/test/unit/identity/stateTransition/IdentityTopUpTransition/IdentityTopUpTransition.spec.js +13 -35
  268. package/test/unit/identity/stateTransition/IdentityTopUpTransition/validation/state/validateIdentityTopUpTransitionStateFactory.spec.js +5 -9
  269. package/test/unit/identity/stateTransition/IdentityUpdateTransition/IdentityUpdateTransition.spec.js +24 -46
  270. package/test/unit/identity/stateTransition/assetLockProof/ChainAssetLockProof.spec.js +9 -28
  271. package/test/unit/identity/stateTransition/assetLockProof/InstantAssetLockProof.spec.js +19 -27
  272. package/test/unit/identity/stateTransition/identityCreditTransferTransition/identityCreditTransferTransition.spec.js +130 -0
  273. package/test/unit/stateTransition/StateTransitionExecutionContext.spec.js +1 -1
  274. package/test/unit/stateTransition/StateTransitionFactory.spec.js +16 -22
  275. package/test/unit/stateTransition/createStateTransitionFactory.spec.js +43 -21
  276. package/test/unit/stateTransition/validation/validateStateTransitionBasicFactory.spec.js +3 -3
  277. package/test/unit/stateTransition/validation/validateStateTransitionFeeFactory.spec.js +5 -17
  278. package/test/unit/stateTransition/validation/validateStateTransitionIdentitySignatureFactory.spec.js +9 -5
  279. package/test/unit/stateTransition/validation/validateStateTransitionKeySignatureFactory.spec.js +8 -14
  280. package/test/unit/stateTransition/validation/validateStateTransitionStateFactory.spec.js +1 -1
  281. package/test/unit/version/validateProtocolVersionFactory.spec.js +1 -1
  282. package/test-d/index.test-d.ts +2 -2
  283. package/lib/test/fixtures/getDashPayContractFixture.js +0 -1
  284. package/lib/test/fixtures/getDashPayDocumentFixture.js +0 -1
  285. package/lib/test/fixtures/getDpnsContractFixture.js +0 -1
  286. package/lib/test/fixtures/getDpnsDocumentFixture.js +0 -1
  287. package/lib/test/fixtures/getFeatureFlagsContractFixture.js +0 -1
  288. package/lib/test/fixtures/getFeatureFlagsDocumentsFixture.js +0 -1
  289. package/lib/test/fixtures/getIdentityTopUpTransitionFixtureJs.js +0 -1
  290. package/lib/test/fixtures/getMasternodeRewardShareDocumentsFixture.js +0 -1
  291. package/lib/test/fixtures/getMasternodeRewardSharesContractFixture.js +0 -1
  292. package/lib/test/fixtures/getPreorderDocumentFixture.js +0 -1
  293. package/lib/test/fixtures/getRawTransactionFixture.js +0 -1
  294. package/src/data_contract/state_transition/data_contract_create_transition/apply.rs +0 -45
  295. package/src/data_contract/state_transition/data_contract_update_transition/apply.rs +0 -49
  296. package/src/decode_protocol_entity.rs +0 -25
  297. package/src/document/state_transition/document_batch_transition/apply_document_batch_transition.rs +0 -25
  298. package/test/integration/DashPlatformProtocol.spec.js +0 -53
  299. package/test/integration/ajv/keywords/byteArray/addByteArrayKeyword.spec.js +0 -148
  300. package/test/integration/document/stateTransition/DocumentsBatchTransition/validation/state/executeDataTriggersFactory.spec.js +0 -195
  301. package/test/integration/stateTransition/AbstractStateTransitionIdentitySigned.spec.js +0 -500
  302. package/test/integration/stateTransition/calculateStateTransitionFeeFromOperationsFactory.spec.js +0 -53
  303. package/test/integration/util/generateEntropy.spec.js +0 -17
  304. package/test/integration/util/serializer.spec.js +0 -24
  305. package/test/unit/dataContract/getBinaryPropertiesFromSchema.spec.js +0 -103
  306. package/test/unit/dataContract/getPropertyDefinitionByPath.spec.js +0 -84
  307. package/test/unit/dataContract/stateTransition/DataContractCreateTransition/applyDataContractCreateTransitionFactory.spec.js +0 -47
  308. package/test/unit/dataContract/stateTransition/DataContractUpdateTransition/applyDataContractUpdateTransitionFactory.spec.js +0 -49
  309. package/test/unit/dataTrigger/DataTrigger.spec.js +0 -132
  310. package/test/unit/dataTrigger/DataTriggerExecutionContext.spec.js +0 -29
  311. package/test/unit/dataTrigger/dashpayDataTriggers/createContactRequestDataTrigger.spec.js +0 -107
  312. package/test/unit/dataTrigger/dpnsTriggers/createDomainDataTrigger.spec.js +0 -382
  313. package/test/unit/dataTrigger/featureFlagDataTriggers/createFeatureFlagDataTrigger.spec.js +0 -99
  314. package/test/unit/dataTrigger/getDataTriggersFactory.spec.js +0 -113
  315. package/test/unit/dataTrigger/rejectDataTrigger.spec.js +0 -51
  316. package/test/unit/dataTrigger/rewardShareDataTriggers/createMasternodeRewardSharesDataTrigger.spec.js +0 -202
  317. package/test/unit/decodeProtocolEntityFactory.spec.js +0 -69
  318. package/test/unit/document/stateTransition/DocumetsBatchTransition/applyDocumentsBatchTransitionFactory.spec.js +0 -257
  319. package/test/unit/document/stateTransition/DocumetsBatchTransition/validation/state/fetchDocumentsFactory.spec.js +0 -94
  320. package/test/unit/errors/consensus/codes.spec.js +0 -102
  321. package/test/unit/identity/creditsConverter.spec.js +0 -34
  322. package/test/unit/identity/errors/InvalidIdentityError.spec.js +0 -46
  323. package/test/unit/identity/stateTransition/IdentityCreateTransition/applyIdentityCreateTransitionFactory.spec.js +0 -89
  324. package/test/unit/identity/stateTransition/IdentityTopUpTransition/applyIdentityTopUpTransitionFactory.spec.js +0 -142
  325. package/test/unit/identity/stateTransition/IdentityUpdateTransition/applyIdentityUpdateTransitionFactory.spec.js +0 -100
  326. package/test/unit/identity/stateTransition/assetLockProof/createAssetLockProofInstance.spec.js +0 -36
  327. package/test/unit/identity/stateTransition/assetLockProof/fetchAssetLockPublicKeyHashFactory.spec.js +0 -63
  328. package/test/unit/identity/validation/validateRequiredPurposeAndSecurityLevelFactory.spec.js +0 -47
  329. package/test/unit/stateTransition/errors/InvalidStateTransitionError.spec.js +0 -51
@@ -1,77 +1,42 @@
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();
56
- instantAssetLockProof = new InstantAssetLockProof(instantAssetLockProofJS.toObject());
27
+ instantAssetLockProof = await getInstantAssetLockProofFixture();
57
28
  chainAssetLockProof = new ChainAssetLockProof(chainAssetLockProofJS.toObject());
58
29
 
59
- const identityObject = getIdentityFixture().toObject();
60
- identityObject.id = instantAssetLockProof.createIdentifier();
61
- identity = new Identity(identityObject);
62
- identity.setAssetLockProof(instantAssetLockProof);
30
+ identity = await getIdentityFixture(instantAssetLockProof.createIdentifier());
63
31
  identity.setBalance(0);
64
32
  });
65
33
 
66
34
  describe('#create', () => {
67
35
  it('should create Identity', () => {
68
- const publicKeys = identity.getPublicKeys()
69
- .map((identityPublicKey) => ({
70
- ...identityPublicKey.toObject(),
71
- }));
36
+ const publicKeys = identity.getPublicKeys();
72
37
 
73
38
  const result = dpp.identity.create(
74
- instantAssetLockProof,
39
+ instantAssetLockProof.createIdentifier(),
75
40
  publicKeys,
76
41
  );
77
42
 
@@ -80,7 +45,8 @@ describe('IdentityFacade', () => {
80
45
  });
81
46
  });
82
47
 
83
- describe('#createFromObject', () => {
48
+ // TODO(versioning): obsolete?
49
+ describe.skip('#createFromObject', () => {
84
50
  it('should create Identity from plain object', () => {
85
51
  const result = dpp.identity.createFromObject(identity.toObject());
86
52
 
@@ -105,7 +71,8 @@ describe('IdentityFacade', () => {
105
71
  });
106
72
  });
107
73
 
108
- describe('#validate', () => {
74
+ // TODO(versioning): restore
75
+ describe.skip('#validate', () => {
109
76
  it('should validate Identity', async () => {
110
77
  const result = await dpp.identity.validate(identity);
111
78
 
@@ -151,7 +118,10 @@ describe('IdentityFacade', () => {
151
118
 
152
119
  describe('#createIdentityCreateTransition', () => {
153
120
  it('should create IdentityCreateTransition from Identity model', () => {
154
- const stateTransition = dpp.identity.createIdentityCreateTransition(identity);
121
+ const stateTransition = dpp.identity.createIdentityCreateTransition(
122
+ identity,
123
+ instantAssetLockProof,
124
+ );
155
125
 
156
126
  expect(stateTransition).to.be.instanceOf(IdentityCreateTransition);
157
127
  const keysToExpect = stateTransition.getPublicKeys()
@@ -161,8 +131,13 @@ describe('IdentityFacade', () => {
161
131
  return keyObject;
162
132
  });
163
133
 
164
- expect(keysToExpect)
165
- .to.deep.equal(identity.getPublicKeys().map((key) => key.toObject()));
134
+ const actualKeys = identity.getPublicKeys().map((key) => {
135
+ const keyObject = key.toObject();
136
+ delete keyObject.disabledAt;
137
+ return keyObject;
138
+ });
139
+
140
+ expect(keysToExpect).to.deep.equal(actualKeys);
166
141
  expect(stateTransition.getAssetLockProof().toObject()).to.deep.equal(
167
142
  instantAssetLockProof.toObject(),
168
143
  );
@@ -188,16 +163,11 @@ describe('IdentityFacade', () => {
188
163
 
189
164
  describe('#createIdentityUpdateTransition', () => {
190
165
  it('should create IdentityUpdateTransition from identity id and public keys', () => {
166
+ const key = new IdentityPublicKeyWithWitness(1);
167
+ key.setData(Buffer.from('AuryIuMtRrl/VviQuyLD1l4nmxi9ogPzC9LT7tdpo0di', 'base64'));
168
+
191
169
  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
- })],
170
+ add: [key],
201
171
  };
202
172
 
203
173
  const stateTransition = dpp.identity
@@ -214,7 +184,7 @@ describe('IdentityFacade', () => {
214
184
  );
215
185
  expect(
216
186
  stateTransition.getPublicKeysToAdd().map((pk) => pk.toObject()),
217
- ).to.deep.equal(publicKeys.add.map((key) => key.toObject()));
187
+ ).to.deep.equal(publicKeys.add.map((k) => k.toObject()));
218
188
  expect(stateTransition.getPublicKeyIdsToDisable()).to.deep.equal([]);
219
189
  expect(stateTransition.getPublicKeysDisabledAt()).to.equal(undefined);
220
190
  });
@@ -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();
@@ -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/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;
@@ -37,7 +36,7 @@ describe('validateInstantAssetLockProofStructureFactory', () => {
37
36
  });
38
37
 
39
38
  beforeEach(async function beforeEach() {
40
- const assetLock = getInstantAssetLockFixture();
39
+ const assetLock = await getInstantAssetLockFixture();
41
40
  transaction = assetLock.getTransaction();
42
41
 
43
42
  rawProof = assetLock.toObject();
@@ -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
- const BlsSignatures = require('@dashevo/dpp/lib/bls/bls');
7
-
8
5
  const { expect } = require('chai');
6
+ const BlsSignatures = require('../../../../lib/bls/bls');
7
+
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