@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,159 +1,161 @@
1
- const getDataContractFixture = require('@dashevo/dpp/lib/test/fixtures/getDataContractFixture');
2
- const getDocumentsFixture = require('@dashevo/dpp/lib/test/fixtures/getDocumentsFixture');
3
- const stateTransitionTypes = require('@dashevo/dpp/lib/stateTransition/stateTransitionTypes');
4
- const createDPPMock = require('@dashevo/dpp/lib/test/mocks/createDPPMock');
5
- const protocolVersion = require('@dashevo/dpp/lib/version/protocolVersion');
6
- const DocumentFactoryJs = require('@dashevo/dpp/lib/document/DocumentFactory');
7
- const { default: loadWasmDpp } = require('../../../../../dist');
8
-
9
- let DocumentFactory;
10
- let DataContract;
11
- let ExtendedDocument;
12
- let DocumentValidator;
13
- let ProtocolVersionValidator;
14
-
15
- describe('DocumentsBatchTransition', () => {
16
- let stateTransitionJs;
17
- let stateTransition;
18
- let documentsJs;
19
- let documents;
20
- let dataContractJs;
21
- let dataContract;
22
- let factoryJs;
23
-
24
- beforeEach(async () => {
25
- ({
26
- ProtocolVersionValidator, DocumentValidator, DocumentFactory, DataContract,
27
- ExtendedDocument,
28
- } = await loadWasmDpp());
29
- });
30
-
31
- beforeEach(async () => {
32
- dataContractJs = getDataContractFixture();
33
- dataContract = DataContract.fromBuffer(dataContractJs.toBuffer());
34
-
35
- documentsJs = getDocumentsFixture(dataContractJs);
36
- documents = documentsJs.map((d) => {
37
- const doc = new ExtendedDocument(d.toObject(), dataContract);
38
- doc.setEntropy(d.entropy);
39
- return doc;
40
- });
41
-
42
- const protocolVersionValidatorRs = new ProtocolVersionValidator();
43
- const documentValidatorRs = new DocumentValidator(protocolVersionValidatorRs);
44
- const factory = new DocumentFactory(1, documentValidatorRs, {});
45
- factoryJs = new DocumentFactoryJs(createDPPMock(), undefined, undefined);
46
-
47
- stateTransitionJs = factoryJs.createStateTransition({
48
- create: documentsJs,
49
- });
50
-
51
- stateTransition = factory.createStateTransition({
52
- create: documents,
53
- });
54
- });
55
-
56
- describe('#getProtocolVersion', () => {
57
- it('should return the current protocol version', () => {
58
- const result = stateTransition.getProtocolVersion();
59
-
60
- expect(result).to.equal(protocolVersion.latestVersion);
61
- });
62
- });
63
-
64
- describe('#getType', () => {
65
- it('should return State Transition type', () => {
66
- const result = stateTransition.getType();
67
-
68
- expect(result).to.equal(stateTransitionTypes.DOCUMENTS_BATCH);
69
- });
70
- });
71
-
72
- describe('#getTransitions', () => {
73
- it('should return document transitions', () => {
74
- const result = stateTransition.getTransitions().map((t) => t.toObject());
75
-
76
- expect(result).to.deep.equal(stateTransitionJs.getTransitions().map((t) => t.toObject()));
77
- });
78
- });
79
-
80
- describe('#toJSON', () => {
81
- it('should return State Transition as JSON', () => {
82
- expect(stateTransition.toJSON()).to.deep.equal({
83
- protocolVersion: protocolVersion.latestVersion,
84
- type: stateTransitionTypes.DOCUMENTS_BATCH,
85
- ownerId: documentsJs[0].getOwnerId().toString(),
86
- transitions: stateTransitionJs.getTransitions().map((d) => d.toJSON()),
87
- signaturePublicKeyId: undefined,
88
- signature: undefined,
89
- });
90
- });
91
- });
92
-
93
- describe('#toObject', () => {
94
- it('should return State Transition as plain object', () => {
95
- expect(stateTransition.toObject()).to.deep.equal({
96
- protocolVersion: protocolVersion.latestVersion,
97
- type: stateTransitionTypes.DOCUMENTS_BATCH,
98
- ownerId: documentsJs[0].getOwnerId(),
99
- transitions: stateTransitionJs.getTransitions().map((d) => d.toObject()),
100
- signaturePublicKeyId: undefined,
101
- signature: undefined,
102
- });
103
- });
104
- });
105
-
106
- describe('#toBuffer', () => {
107
- it('should return the same bytes as JS version', () => {
108
- const bufferJs = stateTransitionJs.toBuffer();
109
- const buffer = stateTransition.toBuffer();
110
-
111
- expect(bufferJs).to.deep.equal(buffer);
112
- });
113
- });
114
-
115
- describe('#hash', () => {
116
- it('should return the same hash as the JS version', () => {
117
- const hashJs = stateTransitionJs.hash();
118
- const hash = stateTransitionJs.hash();
119
-
120
- expect(hash).to.deep.equal(hashJs);
121
- });
122
- });
123
-
124
- describe('#getOwnerId', () => {
125
- it('should return owner id', async () => {
126
- const result = stateTransition.getOwnerId();
127
-
128
- expect(result.toBuffer()).to.deep.equal(getDocumentsFixture.ownerId.toBuffer());
129
- });
130
- });
131
-
132
- describe('#getModifiedDataIds', () => {
133
- it('should return ids of affected documents', () => {
134
- const expectedIds = documentsJs.map((doc) => doc.getId().toBuffer());
135
- const result = stateTransition.getModifiedDataIds().map((id) => id.toBuffer());
136
-
137
- expect(result.length).to.be.equal(10);
138
- expect(result).to.be.deep.equal(expectedIds);
139
- });
140
- });
141
-
142
- describe('#isDataContractStateTransition', () => {
143
- it('should return false', () => {
144
- expect(stateTransition.isDataContractStateTransition()).to.be.false();
145
- });
146
- });
147
-
148
- describe('#isDocumentStateTransition', () => {
149
- it('should return true', () => {
150
- expect(stateTransition.isDocumentStateTransition()).to.be.true();
151
- });
152
- });
153
-
154
- describe('#isIdentityStateTransition', () => {
155
- it('should return false', () => {
156
- expect(stateTransition.isIdentityStateTransition()).to.be.false();
157
- });
158
- });
1
+ // TODO: tests can't be done using comparison with JS version anymore
2
+ // consider restoring them using the new wasm version
3
+
4
+ // const getDocumentsFixture = require('../../../../../lib/test/fixtures/getDocumentsFixture');
5
+ // const getDataContractFixture =
6
+ // require('../../../../../lib/test/fixtures/getDataContractFixture');
7
+ // const {
8
+ // default: loadWasmDpp,
9
+ // StateTransitionTypes,
10
+ // getLatestProtocolVersion,
11
+ // } = require('../../../../../dist');
12
+ //
13
+ // let DocumentFactory;
14
+ // let ExtendedDocument;
15
+ // let DocumentValidator;
16
+ // let ProtocolVersionValidator;
17
+
18
+ describe.skip('DocumentsBatchTransition', () => {
19
+ // let stateTransitionJs;
20
+ // let stateTransition;
21
+ // let documentsJs;
22
+ // let documents;
23
+ // let dataContractJs;
24
+ // let dataContract;
25
+ // let factoryJs;
26
+ //
27
+ // beforeEach(async () => {
28
+ // ({
29
+ // ProtocolVersionValidator, DocumentValidator, DocumentFactory,
30
+ // ExtendedDocument,
31
+ // } = await loadWasmDpp());
32
+ // });
33
+ //
34
+ // beforeEach(async () => {
35
+ // dataContractJs = getDataContractFixture();
36
+ // // dataContract = DataContract.fromBuffer(dataContractJs.toBuffer());
37
+ //
38
+ // documentsJs = getDocumentsFixture(dataContractJs);
39
+ // documents = documentsJs.map((d) => {
40
+ // const doc = new ExtendedDocument(d.toObject(), dataContract);
41
+ // doc.setEntropy(d.entropy);
42
+ // return doc;
43
+ // });
44
+ //
45
+ // const protocolVersionValidatorRs = new ProtocolVersionValidator();
46
+ // const documentValidatorRs = new DocumentValidator(protocolVersionValidatorRs);
47
+ // const factory = new DocumentFactory(1, documentValidatorRs, {});
48
+ // factoryJs = new DocumentFactoryJs(createDPPMock(), undefined, undefined);
49
+ //
50
+ // stateTransitionJs = factoryJs.createStateTransition({
51
+ // create: documentsJs,
52
+ // });
53
+ //
54
+ // stateTransition = factory.createStateTransition({
55
+ // create: documents,
56
+ // });
57
+ // });
58
+ //
59
+ // describe('#getProtocolVersion', () => {
60
+ // it('should return the current protocol version', () => {
61
+ // const result = stateTransition.getProtocolVersion();
62
+ //
63
+ // expect(result).to.equal(protocolVersion.latestVersion);
64
+ // });
65
+ // });
66
+ //
67
+ // describe('#getType', () => {
68
+ // it('should return State Transition type', () => {
69
+ // const result = stateTransition.getType();
70
+ //
71
+ // expect(result).to.equal(stateTransitionTypes.DOCUMENTS_BATCH);
72
+ // });
73
+ // });
74
+ //
75
+ // describe('#getTransitions', () => {
76
+ // it('should return document transitions', () => {
77
+ // const result = stateTransition.getTransitions().map((t) => t.toObject());
78
+ //
79
+ // expect(result).to.deep.equal(stateTransitionJs.getTransitions().map((t) => t.toObject()));
80
+ // });
81
+ // });
82
+ //
83
+ // describe('#toJSON', () => {
84
+ // it('should return State Transition as JSON', () => {
85
+ // expect(stateTransition.toJSON()).to.deep.equal({
86
+ // protocolVersion: protocolVersion.latestVersion,
87
+ // type: stateTransitionTypes.DOCUMENTS_BATCH,
88
+ // ownerId: documentsJs[0].getOwnerId().toString(),
89
+ // transitions: stateTransitionJs.getTransitions().map((d) => d.toJSON()),
90
+ // signaturePublicKeyId: undefined,
91
+ // signature: undefined,
92
+ // });
93
+ // });
94
+ // });
95
+ //
96
+ // describe('#toObject', () => {
97
+ // it('should return State Transition as plain object', () => {
98
+ // expect(stateTransition.toObject()).to.deep.equal({
99
+ // protocolVersion: protocolVersion.latestVersion,
100
+ // type: stateTransitionTypes.DOCUMENTS_BATCH,
101
+ // ownerId: documentsJs[0].getOwnerId(),
102
+ // transitions: stateTransitionJs.getTransitions().map((d) => d.toObject()),
103
+ // signaturePublicKeyId: undefined,
104
+ // signature: undefined,
105
+ // });
106
+ // });
107
+ // });
108
+ //
109
+ // describe('#toBuffer', () => {
110
+ // it('should return the same bytes as JS version', () => {
111
+ // const buffer = stateTransition.toBuffer();
112
+ // expect(buffer).to.be.instanceOf(Buffer);
113
+ // expect(buffer).to.have.length(23960);
114
+ // });
115
+ // });
116
+ //
117
+ // describe('#hash', () => {
118
+ // it('should return the same hash as the JS version', () => {
119
+ // const hashJs = stateTransitionJs.hash();
120
+ // const hash = stateTransitionJs.hash();
121
+ //
122
+ // expect(hash).to.deep.equal(hashJs);
123
+ // });
124
+ // });
125
+ //
126
+ // describe('#getOwnerId', () => {
127
+ // it('should return owner id', async () => {
128
+ // const result = stateTransition.getOwnerId();
129
+ //
130
+ // expect(result.toBuffer()).to.deep.equal(getDocumentsFixture.ownerId.toBuffer());
131
+ // });
132
+ // });
133
+ //
134
+ // describe('#getModifiedDataIds', () => {
135
+ // it('should return ids of affected documents', () => {
136
+ // const expectedIds = documentsJs.map((doc) => doc.getId().toBuffer());
137
+ // const result = stateTransition.getModifiedDataIds().map((id) => id.toBuffer());
138
+ //
139
+ // expect(result.length).to.be.equal(10);
140
+ // expect(result).to.be.deep.equal(expectedIds);
141
+ // });
142
+ // });
143
+ //
144
+ // describe('#isDataContractStateTransition', () => {
145
+ // it('should return false', () => {
146
+ // expect(stateTransition.isDataContractStateTransition()).to.be.false();
147
+ // });
148
+ // });
149
+ //
150
+ // describe('#isDocumentStateTransition', () => {
151
+ // it('should return true', () => {
152
+ // expect(stateTransition.isDocumentStateTransition()).to.be.true();
153
+ // });
154
+ // });
155
+ //
156
+ // describe('#isIdentityStateTransition', () => {
157
+ // it('should return false', () => {
158
+ // expect(stateTransition.isIdentityStateTransition()).to.be.false();
159
+ // });
160
+ // });
159
161
  });
@@ -4,7 +4,7 @@ const { default: loadWasmDpp } = require('../../../../../../dist');
4
4
  let DataContract;
5
5
  let DocumentCreateTransition;
6
6
 
7
- describe('DocumentCreateTransition', () => {
7
+ describe.skip('DocumentCreateTransition', () => {
8
8
  let documentTransitionJs;
9
9
  let documentTransition;
10
10
 
@@ -3,7 +3,7 @@ const { default: loadWasmDpp } = require('../../../../../../../dist');
3
3
 
4
4
  let findDuplicatesById;
5
5
 
6
- describe('findDuplicatesById', () => {
6
+ describe.skip('findDuplicatesById', () => {
7
7
  let rawDocumentTransitions;
8
8
 
9
9
  beforeEach(async () => {
@@ -1,137 +1,135 @@
1
- const DocumentJs = require('@dashevo/dpp/lib/document/Document');
2
-
3
- const { generate: generateEntropy } = require('@dashevo/dpp/lib/util/entropyGenerator');
4
- const getDataContractFixture = require('@dashevo/dpp/lib/test/fixtures/getDataContractFixture');
5
- const getDocumentsFixture = require('@dashevo/dpp/lib/test/fixtures/getDocumentsFixture');
6
- const getDocumentTransitionsFixture = require('../../../../../../../lib/test/fixtures/getDocumentTransitionsFixture');
7
-
8
- const { default: loadWasmDpp } = require('../../../../../../../dist');
9
-
10
- let DataContract;
11
- let Identifier;
12
- let findDuplicatesByIndices;
13
-
14
- describe('findDuplicatesByIndices', () => {
15
- let documents;
16
- let contractJs;
17
- let contract;
18
- let documentTransitions;
19
-
20
- beforeEach(async () => {
21
- ({
22
- DataContract,
23
- findDuplicatesByIndices,
24
- Identifier,
25
- } = await loadWasmDpp());
26
- contractJs = getDataContractFixture();
27
- contractJs.setDocumentSchema('nonUniqueIndexDocument', {
28
- indices: [
29
- {
30
- name: 'lastName',
31
- properties: [
32
- { lastName: 'asc' },
33
- ],
34
- unique: false,
35
- },
36
- ],
37
- properties: {
38
- firstName: {
39
- type: 'string',
40
- },
41
- lastName: {
42
- type: 'string',
43
- },
44
- },
45
- required: ['lastName'],
46
- additionalProperties: false,
47
- });
48
-
49
- contractJs.setDocumentSchema('singleDocument', {
50
- indices: [
51
- {
52
- name: 'ownerIdLastName',
53
- properties: [
54
- { $ownerId: 'asc' },
55
- { lastName: 'asc' },
56
- ],
57
- unique: true,
58
- },
59
- ],
60
- properties: {
61
- firstName: {
62
- type: 'string',
63
- },
64
- lastName: {
65
- type: 'string',
66
- },
67
- },
68
- required: ['lastName'],
69
- additionalProperties: false,
70
- });
71
-
72
- contract = DataContract.fromBuffer(contractJs.toBuffer());
73
-
74
- documents = getDocumentsFixture(contractJs);
75
- documents.forEach((doc) => {
76
- // eslint-disable-next-line no-param-reassign
77
- doc.dataContract = contractJs;
78
- // eslint-disable-next-line no-param-reassign
79
- doc.dataContractId = contractJs.getId();
80
- });
81
-
82
- const [, , , william] = documents;
83
-
84
- let document = new DocumentJs({
85
- ...william.toObject(),
86
- $type: 'nonUniqueIndexDocument',
87
- $entropy: generateEntropy(),
88
- }, contractJs);
89
-
90
- document.setEntropy(generateEntropy());
91
-
92
- documents.push(document);
93
-
94
- document = new DocumentJs({
95
- ...william.toObject(),
96
- $type: 'singleDocument',
97
- $entropy: generateEntropy(),
98
- }, contractJs);
99
-
100
- document.setEntropy(generateEntropy());
101
-
102
- documents.push(document);
103
-
104
- documentTransitions = getDocumentTransitionsFixture({
105
- create: documents,
106
- }).map((t) => t.toObject());
107
- });
108
-
109
- it('should return duplicate documents if they are present - Rust', () => {
110
- const [, , , , leon] = documents;
111
-
112
- leon.set('lastName', 'Birkin');
113
- const ownerId = Identifier.from(leon.ownerId);
114
-
115
- documentTransitions = getDocumentTransitionsFixture({
116
- create: documents,
117
- }).map((t) => t.toObject());
118
-
119
- const duplicates = findDuplicatesByIndices(documentTransitions, contract, ownerId);
120
-
121
- expect(duplicates.length).to.equal(2);
122
- expect(duplicates).to.have.deep.members(
123
- [
124
- documentTransitions[3],
125
- documentTransitions[4],
126
- ],
127
- );
128
- });
129
-
130
- it('should return an empty array of there are no duplicates - Rust', () => {
131
- const [, , , , leon] = documents;
132
- const ownerId = Identifier.from(leon.ownerId);
133
- const duplicates = findDuplicatesByIndices(documentTransitions, contract, ownerId);
134
-
135
- expect(duplicates.length).to.equal(0);
136
- });
1
+ /* eslint-disable */
2
+ // const getDataContractFixture = require('../../../../../../../lib/test/fixtures/getDataContractFixture');
3
+ // const getDocumentsFixture = require('../../../../../../../lib/test/fixtures/getDocumentsFixture');
4
+ // const getDocumentTransitionsFixture = require('../../../../../../../lib/test/fixtures/getDocumentTransitionsFixture');
5
+ //
6
+ // const { default: loadWasmDpp } = require('../../../../../../../dist');
7
+ //
8
+ // let DataContract;
9
+ // let Identifier;
10
+ // let findDuplicatesByIndices;
11
+
12
+ describe.skip('findDuplicatesByIndices', () => {
13
+ // let documents;
14
+ // let contractJs;
15
+ // let contract;
16
+ // let documentTransitions;
17
+ //
18
+ // beforeEach(async () => {
19
+ // ({
20
+ // DataContract,
21
+ // findDuplicatesByIndices,
22
+ // Identifier,
23
+ // } = await loadWasmDpp());
24
+ // contractJs = getDataContractFixture();
25
+ // contractJs.setDocumentSchema('nonUniqueIndexDocument', {
26
+ // indices: [
27
+ // {
28
+ // name: 'lastName',
29
+ // properties: [
30
+ // { lastName: 'asc' },
31
+ // ],
32
+ // unique: false,
33
+ // },
34
+ // ],
35
+ // properties: {
36
+ // firstName: {
37
+ // type: 'string',
38
+ // },
39
+ // lastName: {
40
+ // type: 'string',
41
+ // },
42
+ // },
43
+ // required: ['lastName'],
44
+ // additionalProperties: false,
45
+ // });
46
+ //
47
+ // contractJs.setDocumentSchema('singleDocument', {
48
+ // indices: [
49
+ // {
50
+ // name: 'ownerIdLastName',
51
+ // properties: [
52
+ // { $ownerId: 'asc' },
53
+ // { lastName: 'asc' },
54
+ // ],
55
+ // unique: true,
56
+ // },
57
+ // ],
58
+ // properties: {
59
+ // firstName: {
60
+ // type: 'string',
61
+ // },
62
+ // lastName: {
63
+ // type: 'string',
64
+ // },
65
+ // },
66
+ // required: ['lastName'],
67
+ // additionalProperties: false,
68
+ // });
69
+ //
70
+ // contract = DataContract.fromBuffer(contractJs.toBuffer());
71
+ //
72
+ // documents = getDocumentsFixture(contractJs);
73
+ // documents.forEach((doc) => {
74
+ // // eslint-disable-next-line no-param-reassign
75
+ // doc.dataContract = contractJs;
76
+ // // eslint-disable-next-line no-param-reassign
77
+ // doc.dataContractId = contractJs.getId();
78
+ // });
79
+ //
80
+ // const [, , , william] = documents;
81
+ //
82
+ // let document = new DocumentJs({
83
+ // ...william.toObject(),
84
+ // $type: 'nonUniqueIndexDocument',
85
+ // $entropy: generateEntropy(),
86
+ // }, contractJs);
87
+ //
88
+ // document.setEntropy(generateEntropy());
89
+ //
90
+ // documents.push(document);
91
+ //
92
+ // document = new DocumentJs({
93
+ // ...william.toObject(),
94
+ // $type: 'singleDocument',
95
+ // $entropy: generateEntropy(),
96
+ // }, contractJs);
97
+ //
98
+ // document.setEntropy(generateEntropy());
99
+ //
100
+ // documents.push(document);
101
+ //
102
+ // documentTransitions = getDocumentTransitionsFixture({
103
+ // create: documents,
104
+ // }).map((t) => t.toObject());
105
+ // });
106
+ //
107
+ // it('should return duplicate documents if they are present - Rust', () => {
108
+ // const [, , , , leon] = documents;
109
+ //
110
+ // leon.set('lastName', 'Birkin');
111
+ // const ownerId = Identifier.from(leon.ownerId);
112
+ //
113
+ // documentTransitions = getDocumentTransitionsFixture({
114
+ // create: documents,
115
+ // }).map((t) => t.toObject());
116
+ //
117
+ // const duplicates = findDuplicatesByIndices(documentTransitions, contract, ownerId);
118
+ //
119
+ // expect(duplicates.length).to.equal(2);
120
+ // expect(duplicates).to.have.deep.members(
121
+ // [
122
+ // documentTransitions[3],
123
+ // documentTransitions[4],
124
+ // ],
125
+ // );
126
+ // });
127
+ //
128
+ // it('should return an empty array of there are no duplicates - Rust', () => {
129
+ // const [, , , , leon] = documents;
130
+ // const ownerId = Identifier.from(leon.ownerId);
131
+ // const duplicates = findDuplicatesByIndices(documentTransitions, contract, ownerId);
132
+ //
133
+ // expect(duplicates.length).to.equal(0);
134
+ // });
137
135
  });
@@ -1,6 +1,6 @@
1
- const getDocumentsFixture = require('@dashevo/dpp/lib/test/fixtures/getDocumentsFixture');
2
- const getContractFixture = require('@dashevo/dpp/lib/test/fixtures/getDataContractFixture');
3
- const getDocumentTransitionsFixture = require('@dashevo/dpp/lib/test/fixtures/getDocumentTransitionsFixture');
1
+ const getContractFixture = require('../../../../../../../lib/test/fixtures/getDataContractFixture');
2
+ const getDocumentTransitionsFixture = require('../../../../../../../lib/test/fixtures/getDocumentTransitionsFixture');
3
+ const getDocumentsFixture = require('../../../../../../../lib/test/fixtures/getDocumentsFixture');
4
4
 
5
5
  const { default: loadWasmDpp } = require('../../../../../../../dist');
6
6
 
@@ -9,7 +9,7 @@ let validatePartialCompoundIndices;
9
9
  let InconsistentCompoundIndexDataError;
10
10
  let ValidationResult;
11
11
 
12
- describe('validatePartialCompoundIndices', () => {
12
+ describe.skip('validatePartialCompoundIndices', () => {
13
13
  let documentsJs;
14
14
  let rawDocumentTransitions;
15
15
  let dataContractJs;