@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,49 +1,25 @@
1
- const getIdentityCreateTransitionFixture = require('@dashevo/dpp/lib/test/fixtures/getIdentityCreateTransitionFixture');
2
- const getChainAssetLockProofFixture = require('@dashevo/dpp/lib/test/fixtures/getChainAssetLockProofFixture');
1
+ const getIdentityCreateTransitionFixture = require('../../../../../lib/test/fixtures/getIdentityCreateTransitionFixture');
3
2
 
4
- const stateTransitionTypes = require('@dashevo/dpp/lib/stateTransition/stateTransitionTypes');
5
- const protocolVersion = require('@dashevo/dpp/lib/version/protocolVersion');
6
- const { default: loadWasmDpp } = require('../../../../../dist');
3
+ const {
4
+ IdentityPublicKeyWithWitness,
5
+ InstantAssetLockProof, Identifier,
6
+ StateTransitionTypes,
7
+ } = require('../../../../..');
7
8
 
8
9
  describe('IdentityCreateTransition', () => {
9
10
  let rawStateTransition;
10
11
  let stateTransition;
11
12
 
12
- let IdentityCreateTransition;
13
- let InstantAssetLockProof;
14
- let KeyType;
15
- let KeyPurpose;
16
- let KeySecurityLevel;
17
- let Identifier;
18
- let IdentityPublicKeyWithWitness;
19
-
20
- const mockRawPublicKey = (params = {}) => ({
21
- id: 0,
22
- type: KeyType.ECDSA_SECP256K1,
23
- data: Buffer.from('AkVuTKyF3YgKLAQlLEtaUL2HTditwGILfWUVqjzYnIgH', 'base64'),
24
- purpose: KeyPurpose.AUTHENTICATION,
25
- securityLevel: KeySecurityLevel.MASTER,
26
- signature: Buffer.alloc(32).fill(1),
27
- readOnly: false,
28
- ...params,
29
- });
30
-
31
- before(async () => {
32
- ({
33
- IdentityCreateTransition,
34
- IdentityPublicKeyWithWitness,
35
- KeyType,
36
- KeyPurpose,
37
- KeySecurityLevel,
38
- InstantAssetLockProof, Identifier,
39
- } = await loadWasmDpp());
40
- });
41
-
42
- beforeEach(() => {
43
- rawStateTransition = getIdentityCreateTransitionFixture().toObject();
44
- stateTransition = new IdentityCreateTransition(
45
- rawStateTransition,
46
- );
13
+ const mockPublicKey = (id) => {
14
+ const key = new IdentityPublicKeyWithWitness(1);
15
+ key.setData(Buffer.from('AkVuTKyF3YgKLAQlLEtaUL2HTditwGILfWUVqjzYnIgH', 'base64'));
16
+ key.setId(id);
17
+ return key;
18
+ };
19
+
20
+ beforeEach(async () => {
21
+ stateTransition = await getIdentityCreateTransitionFixture();
22
+ rawStateTransition = stateTransition.toObject();
47
23
  });
48
24
 
49
25
  describe('#constructor', () => {
@@ -53,22 +29,14 @@ describe('IdentityCreateTransition', () => {
53
29
  );
54
30
 
55
31
  expect(stateTransition.publicKeys.map((key) => key.toObject())).to.deep.equal([
56
- new IdentityPublicKeyWithWitness(rawStateTransition.publicKeys[0]).toObject(),
32
+ rawStateTransition.publicKeys[0],
57
33
  ]);
58
34
  });
59
-
60
- it('should create instance with chain asset lock proof', () => {
61
- const stObject = stateTransition.toObject();
62
- stObject.assetLockProof = getChainAssetLockProofFixture().toObject();
63
- stateTransition = new IdentityCreateTransition(stObject);
64
- expect(stateTransition.getAssetLockProof().toObject())
65
- .to.deep.equal(stObject.assetLockProof);
66
- });
67
35
  });
68
36
 
69
37
  describe('#getType', () => {
70
38
  it('should return IDENTITY_CREATE type', () => {
71
- expect(stateTransition.getType()).to.equal(stateTransitionTypes.IDENTITY_CREATE);
39
+ expect(stateTransition.getType()).to.equal(StateTransitionTypes.IdentityCreate);
72
40
  });
73
41
  });
74
42
 
@@ -104,8 +72,8 @@ describe('IdentityCreateTransition', () => {
104
72
  describe('#setPublicKeys', () => {
105
73
  it('should set public keys', () => {
106
74
  const publicKeys = [
107
- new IdentityPublicKeyWithWitness(mockRawPublicKey({ id: 0 })),
108
- new IdentityPublicKeyWithWitness(mockRawPublicKey({ id: 1 })),
75
+ mockPublicKey({ id: 0 }),
76
+ mockPublicKey({ id: 1 }),
109
77
  ];
110
78
 
111
79
  stateTransition.setPublicKeys(publicKeys);
@@ -118,8 +86,7 @@ describe('IdentityCreateTransition', () => {
118
86
  describe('#getPublicKeys', () => {
119
87
  it('should return set public keys', () => {
120
88
  expect(stateTransition.getPublicKeys().map((key) => key.toObject())).to.deep.equal(
121
- rawStateTransition.publicKeys
122
- .map((rawPublicKey) => new IdentityPublicKeyWithWitness(rawPublicKey).toObject()),
89
+ rawStateTransition.publicKeys,
123
90
  );
124
91
  });
125
92
  });
@@ -127,8 +94,8 @@ describe('IdentityCreateTransition', () => {
127
94
  describe('#addPublicKeys', () => {
128
95
  it('should add more public keys', () => {
129
96
  const publicKeys = [
130
- new IdentityPublicKeyWithWitness(mockRawPublicKey({ id: 0 })),
131
- new IdentityPublicKeyWithWitness(mockRawPublicKey({ id: 1 })),
97
+ mockPublicKey({ id: 0 }),
98
+ mockPublicKey({ id: 1 }),
132
99
  ];
133
100
 
134
101
  stateTransition.setPublicKeys([]);
@@ -159,8 +126,8 @@ describe('IdentityCreateTransition', () => {
159
126
  rawStateTransition = stateTransition.toObject();
160
127
 
161
128
  expect(rawStateTransition).to.deep.equal({
162
- protocolVersion: protocolVersion.latestVersion,
163
- type: stateTransitionTypes.IDENTITY_CREATE,
129
+ $version: '0',
130
+ type: StateTransitionTypes.IdentityCreate,
164
131
  assetLockProof: rawStateTransition.assetLockProof,
165
132
  publicKeys: rawStateTransition.publicKeys,
166
133
  signature: undefined,
@@ -171,8 +138,8 @@ describe('IdentityCreateTransition', () => {
171
138
  rawStateTransition = stateTransition.toObject({ skipSignature: true });
172
139
 
173
140
  expect(rawStateTransition).to.deep.equal({
174
- protocolVersion: protocolVersion.latestVersion,
175
- type: stateTransitionTypes.IDENTITY_CREATE,
141
+ $version: '0',
142
+ type: StateTransitionTypes.IdentityCreate,
176
143
  assetLockProof: rawStateTransition.assetLockProof,
177
144
  publicKeys: rawStateTransition.publicKeys,
178
145
  });
@@ -184,8 +151,8 @@ describe('IdentityCreateTransition', () => {
184
151
  const jsonStateTransition = stateTransition.toJSON();
185
152
 
186
153
  expect(jsonStateTransition).to.deep.equal({
187
- protocolVersion: protocolVersion.latestVersion,
188
- type: stateTransitionTypes.IDENTITY_CREATE,
154
+ $version: '0',
155
+ type: StateTransitionTypes.IdentityCreate,
189
156
  assetLockProof: stateTransition.getAssetLockProof().toJSON(),
190
157
  publicKeys: stateTransition.getPublicKeys().map((k) => k.toJSON()),
191
158
  signature: undefined,
@@ -202,7 +169,7 @@ describe('IdentityCreateTransition', () => {
202
169
 
203
170
  expect(identityId).to.be.an.instanceOf(Identifier);
204
171
  expect(identityId.toBuffer()).to.be.deep.equal(
205
- new IdentityCreateTransition(rawStateTransition).getIdentityId().toBuffer(),
172
+ stateTransition.getAssetLockProof().createIdentifier(),
206
173
  );
207
174
  });
208
175
  });
@@ -1,17 +1,16 @@
1
- const getIdentityCreateTransitionFixture = require('@dashevo/dpp/lib/test/fixtures/getIdentityCreateTransitionFixture');
1
+ const getIdentityCreateTransitionFixture = require('../../../../../../../lib/test/fixtures/getIdentityCreateTransitionFixture');
2
2
 
3
- const createStateRepositoryMock = require('@dashevo/dpp/lib/test/mocks/createStateRepositoryMock');
3
+ const createStateRepositoryMock = require('../../../../../../../lib/test/mocks/createStateRepositoryMock');
4
4
 
5
5
  const { default: loadWasmDpp } = require('../../../../../../../dist');
6
6
  const { expectValidationError } = require('../../../../../../../lib/test/expect/expectError');
7
7
 
8
- describe('validateIdentityCreateTransitionStateFactory', () => {
8
+ describe.skip('validateIdentityCreateTransitionStateFactory', () => {
9
9
  let validateIdentityCreateTransitionState;
10
10
  let stateTransition;
11
11
  let stateRepositoryMock;
12
12
  let executionContext;
13
13
 
14
- let IdentityCreateTransition;
15
14
  let IdentityPublicKey;
16
15
  let IdentityAlreadyExistsError;
17
16
  let IdentityCreateTransitionStateValidator;
@@ -19,7 +18,6 @@ describe('validateIdentityCreateTransitionStateFactory', () => {
19
18
 
20
19
  before(async () => {
21
20
  ({
22
- IdentityCreateTransition,
23
21
  IdentityAlreadyExistsError,
24
22
  IdentityPublicKey,
25
23
  IdentityCreateTransitionStateValidator,
@@ -27,7 +25,7 @@ describe('validateIdentityCreateTransitionStateFactory', () => {
27
25
  } = await loadWasmDpp());
28
26
  });
29
27
 
30
- beforeEach(async function () {
28
+ beforeEach(async function beforeEach() {
31
29
  executionContext = new StateTransitionExecutionContext();
32
30
  const privateKey = Buffer.from('af432c476f65211f45f48f1d42c9c0b497e56696aa1736b40544ef1a496af837', 'hex');
33
31
  stateRepositoryMock = createStateRepositoryMock(this.sinonSandbox);
@@ -35,9 +33,7 @@ describe('validateIdentityCreateTransitionStateFactory', () => {
35
33
  const validator = new IdentityCreateTransitionStateValidator(stateRepositoryMock);
36
34
  validateIdentityCreateTransitionState = (st) => validator.validate(st, executionContext);
37
35
 
38
- stateTransition = new IdentityCreateTransition(
39
- getIdentityCreateTransitionFixture().toObject(),
40
- );
36
+ stateTransition = await getIdentityCreateTransitionFixture();
41
37
 
42
38
  await stateTransition.signByPrivateKey(privateKey, IdentityPublicKey.TYPES.ECDSA_SECP256K1);
43
39
 
@@ -1,30 +1,15 @@
1
- const getIdentityTopUpTransitionFixture = require('@dashevo/dpp/lib/test/fixtures/getIdentityTopUpTransitionFixture');
2
- const getChainAssetLockProofFixture = require('@dashevo/dpp/lib/test/fixtures/getChainAssetLockProofFixture');
1
+ const getIdentityTopUpTransitionFixture = require('../../../../../lib/test/fixtures/getIdentityTopUpTransitionFixture');
3
2
 
4
- const stateTransitionTypes = require('@dashevo/dpp/lib/stateTransition/stateTransitionTypes');
5
- const protocolVersion = require('@dashevo/dpp/lib/version/protocolVersion');
6
- const { default: loadWasmDpp } = require('../../../../../dist');
3
+ const { InstantAssetLockProof, Identifier } = require('../../../../..');
4
+ const { StateTransitionTypes } = require('../../../../..');
7
5
 
8
6
  describe('IdentityTopUpTransition', () => {
9
7
  let rawStateTransition;
10
8
  let stateTransition;
11
9
 
12
- let IdentityTopUpTransition;
13
- let InstantAssetLockProof;
14
- let Identifier;
15
-
16
- before(async () => {
17
- ({
18
- IdentityTopUpTransition, InstantAssetLockProof, Identifier,
19
- } = await loadWasmDpp());
20
- });
21
-
22
- beforeEach(() => {
23
- rawStateTransition = getIdentityTopUpTransitionFixture().toObject();
24
-
25
- stateTransition = new IdentityTopUpTransition(
26
- rawStateTransition,
27
- );
10
+ beforeEach(async () => {
11
+ stateTransition = await getIdentityTopUpTransitionFixture();
12
+ rawStateTransition = stateTransition.toObject();
28
13
  });
29
14
 
30
15
  describe('#constructor', () => {
@@ -36,18 +21,11 @@ describe('IdentityTopUpTransition', () => {
36
21
  rawStateTransition.identityId,
37
22
  );
38
23
  });
39
-
40
- it('should create instance with chain asset lock proof', () => {
41
- rawStateTransition.assetLockProof = getChainAssetLockProofFixture().toObject();
42
- stateTransition = new IdentityTopUpTransition(rawStateTransition);
43
- expect(stateTransition.getAssetLockProof().toObject())
44
- .to.deep.equal(rawStateTransition.assetLockProof);
45
- });
46
24
  });
47
25
 
48
26
  describe('#getType', () => {
49
27
  it('should return IDENTITY_TOP_UP type', () => {
50
- expect(stateTransition.getType()).to.equal(stateTransitionTypes.IDENTITY_TOP_UP);
28
+ expect(stateTransition.getType()).to.equal(StateTransitionTypes.IdentityTopUp);
51
29
  });
52
30
  });
53
31
 
@@ -91,8 +69,8 @@ describe('IdentityTopUpTransition', () => {
91
69
  rawStateTransition = stateTransition.toObject();
92
70
 
93
71
  expect(rawStateTransition).to.deep.equal({
94
- protocolVersion: protocolVersion.latestVersion,
95
- type: stateTransitionTypes.IDENTITY_TOP_UP,
72
+ $version: '0',
73
+ type: StateTransitionTypes.IdentityTopUp,
96
74
  assetLockProof: rawStateTransition.assetLockProof,
97
75
  identityId: rawStateTransition.identityId,
98
76
  signature: undefined,
@@ -103,8 +81,8 @@ describe('IdentityTopUpTransition', () => {
103
81
  rawStateTransition = stateTransition.toObject({ skipSignature: true });
104
82
 
105
83
  expect(rawStateTransition).to.deep.equal({
106
- protocolVersion: protocolVersion.latestVersion,
107
- type: stateTransitionTypes.IDENTITY_TOP_UP,
84
+ $version: '0',
85
+ type: StateTransitionTypes.IdentityTopUp,
108
86
  assetLockProof: rawStateTransition.assetLockProof,
109
87
  identityId: rawStateTransition.identityId,
110
88
  });
@@ -116,8 +94,8 @@ describe('IdentityTopUpTransition', () => {
116
94
  const jsonStateTransition = stateTransition.toJSON();
117
95
 
118
96
  expect(jsonStateTransition).to.deep.equal({
119
- protocolVersion: protocolVersion.latestVersion,
120
- type: stateTransitionTypes.IDENTITY_TOP_UP,
97
+ $version: '0',
98
+ type: StateTransitionTypes.IdentityTopUp,
121
99
  assetLockProof: stateTransition.getAssetLockProof().toJSON(),
122
100
  identityId: new Identifier(rawStateTransition.identityId).toString(),
123
101
  signature: undefined,
@@ -1,32 +1,28 @@
1
- const getIdentityTopUpTransitionFixture = require('@dashevo/dpp/lib/test/fixtures/getIdentityTopUpTransitionFixture');
1
+ const getIdentityTopUpTransitionFixture = require('../../../../../../../lib/test/fixtures/getIdentityTopUpTransitionFixture');
2
2
 
3
- const createStateRepositoryMock = require('@dashevo/dpp/lib/test/mocks/createStateRepositoryMock');
3
+ const createStateRepositoryMock = require('../../../../../../../lib/test/mocks/createStateRepositoryMock');
4
4
  const { default: loadWasmDpp } = require('../../../../../../../dist');
5
5
 
6
- describe('validateIdentityTopUpTransitionStateFactory', () => {
6
+ describe.skip('validateIdentityTopUpTransitionStateFactory', () => {
7
7
  let validateIdentityTopUpTransitionState;
8
8
  let stateTransition;
9
9
  let stateRepositoryMock;
10
10
  let executionContext;
11
11
 
12
- let IdentityTopUpTransition;
13
12
  let IdentityTopUpTransitionStateValidator;
14
13
  let StateTransitionExecutionContext;
15
14
 
16
15
  before(async () => {
17
16
  ({
18
- IdentityTopUpTransition,
19
17
  IdentityTopUpTransitionStateValidator,
20
18
  StateTransitionExecutionContext,
21
19
  } = await loadWasmDpp());
22
20
  });
23
21
 
24
- beforeEach(function () {
22
+ beforeEach(async function beforeEach() {
25
23
  stateRepositoryMock = createStateRepositoryMock(this.sinonSandbox);
26
24
 
27
- stateTransition = new IdentityTopUpTransition(
28
- getIdentityTopUpTransitionFixture().toObject(),
29
- );
25
+ stateTransition = await getIdentityTopUpTransitionFixture();
30
26
 
31
27
  const validator = new IdentityTopUpTransitionStateValidator(stateRepositoryMock);
32
28
 
@@ -1,30 +1,13 @@
1
- const stateTransitionTypes = require(
2
- '@dashevo/dpp/lib/stateTransition/stateTransitionTypes',
3
- );
4
-
5
- const protocolVersion = require('@dashevo/dpp/lib/version/protocolVersion');
6
-
7
1
  const getIdentityUpdateTransitionFixture = require('../../../../../lib/test/fixtures/getIdentityUpdateTransitionFixture');
8
2
 
9
- const { default: loadWasmDpp } = require('../../../../../dist');
3
+ const { IdentityPublicKey, Identifier, IdentityPublicKeyWithWitness } = require('../../../../..');
4
+ const { StateTransitionTypes } = require('../../../../..');
10
5
  const generateRandomIdentifierAsync = require('../../../../../lib/test/utils/generateRandomIdentifierAsync');
11
6
 
12
7
  describe('IdentityUpdateTransition', () => {
13
8
  let rawStateTransition;
14
9
  let stateTransition;
15
10
 
16
- let IdentityPublicKey;
17
- let Identifier;
18
- let IdentityPublicKeyWithWitness;
19
-
20
- before(async () => {
21
- ({
22
- IdentityPublicKey,
23
- Identifier,
24
- IdentityPublicKeyWithWitness,
25
- } = await loadWasmDpp());
26
- });
27
-
28
11
  beforeEach(async () => {
29
12
  stateTransition = await getIdentityUpdateTransitionFixture();
30
13
  rawStateTransition = stateTransition.toObject();
@@ -32,7 +15,7 @@ describe('IdentityUpdateTransition', () => {
32
15
 
33
16
  describe('#getType', () => {
34
17
  it('should return IDENTITY_UPDATE type', () => {
35
- expect(stateTransition.getType()).to.equal(stateTransitionTypes.IDENTITY_UPDATE);
18
+ expect(stateTransition.getType()).to.equal(StateTransitionTypes.IdentityUpdate);
36
19
  });
37
20
  });
38
21
 
@@ -80,28 +63,23 @@ describe('IdentityUpdateTransition', () => {
80
63
  it('should return public keys to add', () => {
81
64
  expect(stateTransition.getPublicKeysToAdd().map((key) => key.toObject()))
82
65
  .to.deep.equal(
83
- rawStateTransition.addPublicKeys
84
- .map((rawPublicKey) => new IdentityPublicKeyWithWitness(rawPublicKey).toObject()),
66
+ rawStateTransition.addPublicKeys,
85
67
  );
86
68
  });
87
69
  });
88
70
 
89
71
  describe('#setPublicKeysToAdd', () => {
90
72
  it('should set public keys to add', () => {
91
- const publicKeys = [new IdentityPublicKeyWithWitness({
92
- id: 0,
93
- type: IdentityPublicKey.TYPES.BLS12_381,
94
- purpose: 0,
95
- securityLevel: 0,
96
- readOnly: true,
97
- signature: Buffer.alloc(0),
98
- data: Buffer.from('01fac99ca2c8f39c286717c213e190aba4b7af76db320ec43f479b7d9a2012313a0ae59ca576edf801444bc694686694', 'hex'),
99
- })];
73
+ const key = new IdentityPublicKeyWithWitness(1);
74
+ key.setType(IdentityPublicKey.TYPES.BLS12_381);
75
+ key.setData(Buffer.from('01fac99ca2c8f39c286717c213e190aba4b7af76db320ec43f479b7d9a2012313a0ae59ca576edf801444bc694686694', 'hex'));
76
+
77
+ const publicKeys = [key];
100
78
 
101
79
  stateTransition.setPublicKeysToAdd(publicKeys);
102
80
 
103
- expect(stateTransition.addPublicKeys.map((key) => key.toObject()))
104
- .to.have.deep.members(publicKeys.map((key) => key.toObject()));
81
+ expect(stateTransition.addPublicKeys.map((k) => k.toObject()))
82
+ .to.have.deep.members(publicKeys.map((k) => k.toObject()));
105
83
  });
106
84
  });
107
85
 
@@ -124,7 +102,7 @@ describe('IdentityUpdateTransition', () => {
124
102
  describe('#getPublicKeysDisabledAt', () => {
125
103
  it('should return time to disable public keys', () => {
126
104
  expect(stateTransition.getPublicKeysDisabledAt())
127
- .to.deep.equal(new Date(rawStateTransition.publicKeysDisabledAt));
105
+ .to.deep.equal(rawStateTransition.publicKeysDisabledAt);
128
106
  });
129
107
  });
130
108
 
@@ -143,15 +121,15 @@ describe('IdentityUpdateTransition', () => {
143
121
  rawStateTransition = stateTransition.toObject();
144
122
 
145
123
  expect(rawStateTransition).to.deep.equal({
146
- protocolVersion: protocolVersion.latestVersion,
147
- type: stateTransitionTypes.IDENTITY_UPDATE,
124
+ $version: '0',
125
+ type: StateTransitionTypes.IdentityUpdate,
148
126
  signature: undefined,
149
127
  identityId: rawStateTransition.identityId,
150
128
  revision: rawStateTransition.revision,
151
129
  publicKeysDisabledAt: rawStateTransition.publicKeysDisabledAt,
152
130
  addPublicKeys: rawStateTransition.addPublicKeys,
153
131
  disablePublicKeys: rawStateTransition.disablePublicKeys,
154
- signaturePublicKeyId: undefined,
132
+ signaturePublicKeyId: 0,
155
133
  });
156
134
  });
157
135
 
@@ -159,8 +137,8 @@ describe('IdentityUpdateTransition', () => {
159
137
  rawStateTransition = stateTransition.toObject({ skipSignature: true });
160
138
 
161
139
  expect(rawStateTransition).to.deep.equal({
162
- protocolVersion: protocolVersion.latestVersion,
163
- type: stateTransitionTypes.IDENTITY_UPDATE,
140
+ $version: '0',
141
+ type: StateTransitionTypes.IdentityUpdate,
164
142
  identityId: rawStateTransition.identityId,
165
143
  revision: rawStateTransition.revision,
166
144
  publicKeysDisabledAt: rawStateTransition.publicKeysDisabledAt,
@@ -177,12 +155,12 @@ describe('IdentityUpdateTransition', () => {
177
155
  rawStateTransition = stateTransition.toObject();
178
156
 
179
157
  expect(rawStateTransition).to.deep.equal({
180
- protocolVersion: protocolVersion.latestVersion,
181
- type: stateTransitionTypes.IDENTITY_UPDATE,
158
+ $version: '0',
159
+ type: StateTransitionTypes.IdentityUpdate,
182
160
  signature: undefined,
183
161
  identityId: rawStateTransition.identityId,
184
162
  revision: rawStateTransition.revision,
185
- signaturePublicKeyId: undefined,
163
+ signaturePublicKeyId: 0,
186
164
  });
187
165
  });
188
166
  });
@@ -192,15 +170,15 @@ describe('IdentityUpdateTransition', () => {
192
170
  const jsonStateTransition = stateTransition.toJSON();
193
171
 
194
172
  expect(jsonStateTransition).to.deep.equal({
195
- protocolVersion: protocolVersion.latestVersion,
196
- type: stateTransitionTypes.IDENTITY_UPDATE,
173
+ $version: '0',
174
+ type: StateTransitionTypes.IdentityUpdate,
197
175
  signature: undefined,
198
176
  identityId: stateTransition.getIdentityId().toString(),
199
177
  revision: rawStateTransition.revision,
200
- publicKeysDisabledAt: rawStateTransition.publicKeysDisabledAt,
178
+ publicKeysDisabledAt: rawStateTransition.publicKeysDisabledAt.getTime(),
201
179
  addPublicKeys: stateTransition.getPublicKeysToAdd().map((k) => k.toJSON()),
202
180
  disablePublicKeys: rawStateTransition.disablePublicKeys,
203
- signaturePublicKeyId: undefined,
181
+ signaturePublicKeyId: 0,
204
182
  });
205
183
  });
206
184
  });
@@ -1,63 +1,44 @@
1
- const getChainAssetLockFixture = require('@dashevo/dpp/lib/test/fixtures/getChainAssetLockProofFixture');
2
-
3
- const { default: loadWasmDpp } = require('../../../../../dist');
1
+ const { ChainAssetLockProof } = require('../../../../../dist');
2
+ const getChainAssetLockProofFixture = require('../../../../../lib/test/fixtures/getChainAssetLockProofFixture');
4
3
 
5
4
  describe('ChainAssetLockProof', () => {
6
- let ChainAssetLockProof;
5
+ let rawChainAssetLockProof;
7
6
  let chainAssetLockProof;
8
- let chainAssetLockProofJS;
9
7
 
10
8
  before(async () => {
11
- ({ ChainAssetLockProof } = await loadWasmDpp());
12
-
13
- chainAssetLockProofJS = getChainAssetLockFixture();
9
+ rawChainAssetLockProof = getChainAssetLockProofFixture().toObject();
14
10
  chainAssetLockProof = new ChainAssetLockProof(
15
- chainAssetLockProofJS.toObject(),
11
+ rawChainAssetLockProof,
16
12
  );
17
13
  });
18
14
 
19
- describe('#getType', () => {
20
- it('should return correct type', () => {
21
- expect(chainAssetLockProof.getType())
22
- .to.equal(chainAssetLockProofJS.getType());
23
- });
24
- });
25
-
26
15
  describe('#getCoreChainLockedHeight', () => {
27
16
  it('should return correct coreChainLockedHeight', () => {
28
17
  expect(chainAssetLockProof.getCoreChainLockedHeight())
29
- .to.equal(chainAssetLockProofJS.getCoreChainLockedHeight());
18
+ .to.equal(rawChainAssetLockProof.coreChainLockedHeight);
30
19
  });
31
20
  });
32
21
 
33
22
  describe('#getOutPoint', () => {
34
23
  it('should return correct outPoint', () => {
35
24
  expect(chainAssetLockProof.getOutPoint())
36
- .to.deep.equal(chainAssetLockProofJS.getOutPoint());
37
- });
38
- });
39
-
40
- describe('#toJSON', () => {
41
- it('should return correct JSON', () => {
42
- expect(chainAssetLockProof.toJSON())
43
- .to.deep.equal(chainAssetLockProofJS.toJSON());
25
+ .to.deep.equal(rawChainAssetLockProof.outPoint);
44
26
  });
45
27
  });
46
28
 
47
29
  describe('#toObject', () => {
48
30
  it('should return correct object', () => {
49
31
  expect(chainAssetLockProof.toObject())
50
- .to.deep.equal(chainAssetLockProofJS.toObject());
32
+ .to.deep.equal(rawChainAssetLockProof);
51
33
  });
52
34
  });
53
35
 
54
36
  describe('#createIdentifier', () => {
55
37
  it('should return correct identifier', () => {
56
38
  const identifier = chainAssetLockProof.createIdentifier();
57
- const identifierJS = chainAssetLockProofJS.createIdentifier();
58
39
 
59
40
  expect(identifier.toBuffer())
60
- .to.deep.equal(identifierJS.toBuffer());
41
+ .to.have.length(32);
61
42
  });
62
43
  });
63
44
  });