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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (295) hide show
  1. package/Cargo.toml +33 -7
  2. package/README.md +11 -6
  3. package/dist/errors/patchConsensusErrors.js +94 -115
  4. package/dist/wasm/wasm_dpp.d.ts +2213 -4113
  5. package/dist/wasm/wasm_dpp.js +17748 -2639
  6. package/dist/wasm/wasm_dpp_bg.js +1 -1
  7. package/lib/dpp.ts +1 -1
  8. package/lib/errors/patchConsensusErrors.ts +94 -93
  9. package/lib/test/bootstrap.js +5 -0
  10. package/lib/test/fixtures/getDataContractFixture.js +11 -5
  11. package/lib/test/fixtures/getDocumentsFixture.js +9 -5
  12. package/lib/test/fixtures/getIdentityCreateTransitionFixture.js +14 -20
  13. package/lib/test/fixtures/getIdentityCreditTransferTransitionFixture.js +14 -0
  14. package/lib/test/fixtures/getIdentityFixture.js +21 -32
  15. package/lib/test/fixtures/getIdentityTopUpTransitionFixture.js +7 -10
  16. package/lib/test/fixtures/getIdentityUpdateTransitionFixture.js +13 -28
  17. package/lib/test/fixtures/getPrivateAndPublicKeyForSigningFixture.js +7 -9
  18. package/lib/test/fixtures/js/generateRandomIdentifier.js +1 -0
  19. package/lib/test/fixtures/js/getChainAssetLockProofFixture.js +1 -0
  20. package/lib/test/fixtures/js/getDataContractFixture.js +1 -0
  21. package/lib/test/fixtures/js/getDocumentTransitionsFixture.js +1 -0
  22. package/lib/test/fixtures/js/getDocumentsFixture.js +1 -0
  23. package/lib/test/fixtures/js/getInstantAssetLockProofFixture.js +1 -0
  24. package/lib/test/mocks/createStateRepositoryMock.js +1 -0
  25. package/lib/wasm/wasm_dpp.d.ts +2213 -4113
  26. package/package.json +6 -6
  27. package/scripts/build-wasm.sh +30 -29
  28. package/src/bls_adapter.rs +1 -1
  29. package/src/dash_platform_protocol.rs +173 -196
  30. package/src/data_contract/data_contract.rs +309 -199
  31. package/src/data_contract/data_contract_facade.rs +28 -47
  32. package/src/data_contract/errors/mod.rs +1 -0
  33. package/src/data_contract/mod.rs +2 -2
  34. package/src/data_contract/state_transition/data_contract_create_transition/mod.rs +92 -79
  35. package/src/data_contract/state_transition/data_contract_update_transition/mod.rs +84 -77
  36. package/src/data_contract_factory/data_contract_factory.rs +43 -83
  37. package/src/document/document_facade.rs +81 -76
  38. package/src/document/errors/document_already_exists_error.rs +6 -6
  39. package/src/document/errors/document_no_revision_error.rs +1 -0
  40. package/src/document/errors/document_not_provided_error.rs +6 -6
  41. package/src/document/errors/invalid_document_action_error.rs +11 -7
  42. package/src/document/errors/invalid_initial_revision_error.rs +4 -4
  43. package/src/document/errors/mismatch_owners_ids_error.rs +5 -8
  44. package/src/document/errors/mod.rs +5 -0
  45. package/src/document/errors/revision_absent_error.rs +6 -6
  46. package/src/document/errors/trying_to_delete_immutable_document_error.rs +19 -0
  47. package/src/document/errors/trying_to_replace_immutable_document_error.rs +4 -4
  48. package/src/document/extended_document.rs +76 -76
  49. package/src/document/factory.rs +140 -119
  50. package/src/document/generate_document_id.rs +2 -2
  51. package/src/document/mod.rs +164 -150
  52. package/src/document/state_transition/document_batch_transition/document_transition/document_create_transition.rs +50 -48
  53. package/src/document/state_transition/document_batch_transition/document_transition/document_delete_transition.rs +14 -14
  54. package/src/document/state_transition/document_batch_transition/document_transition/document_replace_transition.rs +50 -38
  55. package/src/document/state_transition/document_batch_transition/document_transition/mod.rs +165 -153
  56. package/src/document/state_transition/document_batch_transition/mod.rs +232 -222
  57. package/src/errors/consensus/basic/data_contract/data_contract_have_new_unique_index_error.rs +2 -9
  58. package/src/errors/consensus/basic/data_contract/data_contract_immutable_properties_update_error.rs +1 -9
  59. package/src/errors/consensus/basic/data_contract/data_contract_invalid_index_definition_update_error.rs +2 -10
  60. package/src/errors/consensus/basic/data_contract/data_contract_max_depth_exceed_error.rs +1 -9
  61. package/src/errors/consensus/basic/data_contract/data_contract_unique_indices_changed_error.rs +1 -9
  62. package/src/errors/consensus/basic/data_contract/duplicate_index_name_error.rs +1 -9
  63. package/src/errors/consensus/basic/data_contract/incompatible_data_contract_schema_error.rs +1 -9
  64. package/src/errors/consensus/basic/data_contract/incompatible_re2_pattern_error.rs +1 -9
  65. package/src/errors/consensus/basic/data_contract/index_error/duplicate_index_error.rs +1 -9
  66. package/src/errors/consensus/basic/data_contract/index_error/invalid_compound_index_error.rs +1 -9
  67. package/src/errors/consensus/basic/data_contract/index_error/invalid_index_property_type_error.rs +1 -9
  68. package/src/errors/consensus/basic/data_contract/index_error/invalid_indexed_property_constraint_error.rs +1 -9
  69. package/src/errors/consensus/basic/data_contract/index_error/system_property_index_already_present_error.rs +1 -9
  70. package/src/errors/consensus/basic/data_contract/index_error/undefined_index_property_error.rs +1 -9
  71. package/src/errors/consensus/basic/data_contract/index_error/unique_indices_limit_reached_error.rs +1 -9
  72. package/src/errors/consensus/basic/data_contract/invalid_data_contract_id_error.rs +1 -9
  73. package/src/errors/consensus/basic/data_contract/invalid_data_contract_version_error.rs +1 -9
  74. package/src/errors/consensus/basic/data_contract/invalid_json_schema_ref_error.rs +1 -9
  75. package/src/errors/consensus/basic/decode/protocol_version_parsing_error.rs +10 -7
  76. package/src/errors/consensus/basic/decode/serialized_object_parsing_error.rs +1 -9
  77. package/src/errors/consensus/basic/document/data_contract_not_present_error.rs +1 -9
  78. package/src/errors/consensus/basic/document/duplicate_document_transitions_with_ids_error.rs +1 -9
  79. package/src/errors/consensus/basic/document/duplicate_document_transitions_with_indices_error.rs +1 -9
  80. package/src/errors/consensus/basic/document/inconsistent_compound_index_data_error.rs +1 -9
  81. package/src/errors/consensus/basic/document/invalid_document_transition_action_error.rs +1 -9
  82. package/src/errors/consensus/basic/document/invalid_document_transition_id_error.rs +1 -9
  83. package/src/errors/consensus/basic/document/invalid_document_type_error.rs +1 -9
  84. package/src/errors/consensus/basic/document/missing_data_contract_id_error.rs +1 -9
  85. package/src/errors/consensus/basic/document/missing_document_transition_action_error.rs +1 -9
  86. package/src/errors/consensus/basic/document/missing_document_transition_type_error.rs +1 -9
  87. package/src/errors/consensus/basic/document/missing_document_type_error.rs +1 -9
  88. package/src/errors/consensus/basic/identity/duplicated_identity_public_key_error.rs +1 -9
  89. package/src/errors/consensus/basic/identity/duplicated_identity_public_key_id_error.rs +1 -9
  90. package/src/errors/consensus/basic/identity/identity_asset_lock_proof_locked_transaction_mismatch_error.rs +3 -11
  91. package/src/errors/consensus/basic/identity/identity_asset_lock_transaction_is_not_found_error.rs +1 -9
  92. package/src/errors/consensus/basic/identity/identity_asset_lock_transaction_out_point_already_exists_error.rs +2 -10
  93. package/src/errors/consensus/basic/identity/identity_asset_lock_transaction_output_not_found_error.rs +1 -9
  94. package/src/errors/consensus/basic/identity/identity_insufficient_balance_error.rs +1 -9
  95. package/src/errors/consensus/basic/identity/invalid_asset_lock_proof_core_chain_height_error.rs +1 -9
  96. package/src/errors/consensus/basic/identity/invalid_asset_lock_proof_transaction_height_error.rs +1 -9
  97. package/src/errors/consensus/basic/identity/invalid_asset_lock_transaction_output_return_size_error.rs +1 -9
  98. package/src/errors/consensus/basic/identity/invalid_identity_asset_lock_proof_chain_lock_validation_error.rs +1 -1
  99. package/src/errors/consensus/basic/identity/invalid_identity_asset_lock_transaction_error.rs +1 -9
  100. package/src/errors/consensus/basic/identity/invalid_identity_asset_lock_transaction_output_error.rs +1 -9
  101. package/src/errors/consensus/basic/identity/invalid_identity_credit_withdrawal_transition_core_fee_error.rs +1 -9
  102. package/src/errors/consensus/basic/identity/invalid_identity_credit_withdrawal_transition_output_script_error.rs +1 -9
  103. package/src/errors/consensus/basic/identity/invalid_identity_credit_withdrawal_transition_pooling_error.rs +1 -9
  104. package/src/errors/consensus/basic/identity/invalid_identity_key_signature_error.rs +1 -9
  105. package/src/errors/consensus/basic/identity/invalid_identity_public_key_data_error.rs +1 -9
  106. package/src/errors/consensus/basic/identity/invalid_identity_public_key_security_level_error.rs +1 -9
  107. package/src/errors/consensus/basic/identity/invalid_identity_public_key_type_error.rs +1 -9
  108. package/src/errors/consensus/basic/identity/invalid_instant_asset_lock_proof_error.rs +1 -9
  109. package/src/errors/consensus/basic/identity/invalid_instant_asset_lock_proof_signature_error.rs +1 -9
  110. package/src/errors/consensus/basic/identity/missing_master_public_key_error.rs +1 -9
  111. package/src/errors/consensus/basic/identity/missing_public_key_error.rs +1 -9
  112. package/src/errors/consensus/basic/incompatible_protocol_version_error.rs +1 -9
  113. package/src/errors/consensus/basic/invalid_identifier_error.rs +1 -9
  114. package/src/errors/consensus/basic/invalid_signature_public_key_security_level_error.rs +7 -15
  115. package/src/errors/consensus/basic/invalid_state_transition_signature_error.rs +1 -9
  116. package/src/errors/consensus/basic/json_schema_compilation_error.rs +1 -9
  117. package/src/errors/consensus/basic/json_schema_error.rs +1 -9
  118. package/src/errors/consensus/basic/mod.rs +2 -0
  119. package/src/errors/consensus/basic/public_key_is_disabled_error.rs +1 -9
  120. package/src/errors/consensus/basic/public_key_security_level_not_met_error.rs +2 -11
  121. package/src/errors/consensus/basic/state_transition/invalid_state_transition_type_error.rs +1 -9
  122. package/src/errors/consensus/basic/state_transition/missing_state_transition_type_error.rs +1 -9
  123. package/src/errors/consensus/basic/state_transition/state_transition_max_size_exceeded_error.rs +1 -9
  124. package/src/errors/consensus/basic/unsupported_protocol_version_error.rs +1 -9
  125. package/src/errors/consensus/basic/unsupported_version_error.rs +44 -0
  126. package/src/errors/consensus/basic/wrong_public_key_purpose_error.rs +1 -9
  127. package/src/errors/consensus/consensus_error.rs +44 -21
  128. package/src/errors/consensus/deserialize.rs +2 -1
  129. package/src/errors/consensus/fee/balance_is_not_enough_error.rs +5 -2
  130. package/src/errors/consensus/signature/basic_bls_error.rs +1 -9
  131. package/src/errors/consensus/signature/basic_ecdsa_error.rs +1 -9
  132. package/src/errors/consensus/signature/identity_not_found_error.rs +4 -2
  133. package/src/errors/consensus/signature/signature_should_not_be_present_error.rs +1 -9
  134. package/src/errors/consensus/state/data_contract/data_contract_already_present_error.rs +3 -2
  135. package/src/errors/consensus/state/data_contract/data_contract_config_update_error.rs +42 -0
  136. package/src/errors/consensus/state/data_contract/data_contract_is_readonly_error.rs +44 -0
  137. package/src/errors/consensus/state/data_contract/data_trigger/data_trigger_condition_error.rs +2 -1
  138. package/src/errors/consensus/state/data_contract/data_trigger/data_trigger_execution_error.rs +2 -1
  139. package/src/errors/consensus/state/data_contract/data_trigger/data_trigger_invalid_result_error.rs +2 -1
  140. package/src/errors/consensus/state/data_contract/mod.rs +7 -1
  141. package/src/errors/consensus/state/document/document_already_present_error.rs +1 -9
  142. package/src/errors/consensus/state/document/document_not_found_error.rs +1 -9
  143. package/src/errors/consensus/state/document/document_owner_id_mismatch_error.rs +1 -9
  144. package/src/errors/consensus/state/document/document_timestamp_window_violation_error.rs +1 -9
  145. package/src/errors/consensus/state/document/document_timestamps_are_equal_error.rs +34 -0
  146. package/src/errors/consensus/state/document/document_timestamps_mismatch_error.rs +1 -9
  147. package/src/errors/consensus/state/document/duplicate_unique_index_error.rs +1 -9
  148. package/src/errors/consensus/state/document/invalid_document_revision_error.rs +9 -12
  149. package/src/errors/consensus/state/document/mod.rs +2 -0
  150. package/src/errors/consensus/state/identity/duplicated_identity_public_key_id_state_error.rs +1 -9
  151. package/src/errors/consensus/state/identity/duplicated_identity_public_key_state_error.rs +1 -9
  152. package/src/errors/consensus/state/identity/identity_already_exists_error.rs +1 -9
  153. package/src/errors/consensus/state/identity/identity_public_key_disabled_at_window_violation_error.rs +1 -9
  154. package/src/errors/consensus/state/identity/identity_public_key_is_disabled_error.rs +1 -9
  155. package/src/errors/consensus/state/identity/identity_public_key_is_read_only_error.rs +1 -9
  156. package/src/errors/consensus/state/identity/invalid_identity_public_key_id_error.rs +2 -9
  157. package/src/errors/consensus/state/identity/invalid_identity_revision_error.rs +1 -9
  158. package/src/errors/consensus/state/identity/max_identity_public_key_limit_reached_error.rs +1 -9
  159. package/src/errors/consensus/value_error.rs +1 -9
  160. package/src/errors/from.rs +12 -8
  161. package/src/errors/mod.rs +7 -7
  162. package/src/errors/value_error.rs +5 -0
  163. package/src/identity/errors/asset_lock_transaction_is_not_found_error.rs +1 -2
  164. package/src/identity/factory_utils.rs +13 -13
  165. package/src/identity/identity.rs +275 -0
  166. package/src/identity/identity_facade.rs +87 -70
  167. package/src/identity/identity_factory.rs +74 -54
  168. package/src/identity/identity_public_key/mod.rs +87 -64
  169. package/src/identity/mod.rs +25 -247
  170. package/src/identity/state_transition/asset_lock_proof/chain/chain_asset_lock_proof_structure_validator.rs +0 -1
  171. package/src/identity/state_transition/asset_lock_proof/chain/mod.rs +3 -1
  172. package/src/identity/state_transition/asset_lock_proof/instant/instant_asset_lock_proof.rs +2 -2
  173. package/src/identity/state_transition/asset_lock_proof/instant/instant_asset_lock_proof_structure_validator.rs +0 -1
  174. package/src/identity/state_transition/asset_lock_proof/instant/mod.rs +3 -1
  175. package/src/identity/state_transition/asset_lock_proof/mod.rs +112 -116
  176. package/src/identity/state_transition/identity_create_transition/identity_create_transition.rs +71 -65
  177. package/src/identity/state_transition/identity_create_transition/identity_create_transition_basic_validator.rs +0 -1
  178. package/src/identity/state_transition/identity_create_transition/mod.rs +3 -3
  179. package/src/identity/state_transition/identity_create_transition/to_object.rs +10 -12
  180. package/src/identity/state_transition/identity_credit_transfer_transition/apply_identity_credit_transfer_transition.rs +31 -0
  181. package/src/identity/state_transition/identity_credit_transfer_transition/identity_credit_transfer_transition_basic_validator.rs +66 -0
  182. package/src/identity/state_transition/identity_credit_transfer_transition/identity_credit_transfer_transition_state_validator.rs +44 -0
  183. package/src/identity/state_transition/identity_credit_transfer_transition/mod.rs +8 -0
  184. package/src/identity/state_transition/identity_credit_transfer_transition/to_object.rs +49 -0
  185. package/src/identity/state_transition/identity_credit_transfer_transition/transition.rs +344 -0
  186. package/src/identity/state_transition/identity_public_key_transitions.rs +89 -75
  187. package/src/identity/state_transition/identity_topup_transition/identity_topup_transition.rs +67 -62
  188. package/src/identity/state_transition/identity_topup_transition/identity_topup_transition_basic_validator.rs +0 -2
  189. package/src/identity/state_transition/identity_topup_transition/mod.rs +3 -3
  190. package/src/identity/state_transition/identity_topup_transition/to_object.rs +8 -12
  191. package/src/identity/state_transition/identity_update_transition/identity_update_public_keys_validator.rs +2 -2
  192. package/src/identity/state_transition/identity_update_transition/identity_update_transition.rs +99 -104
  193. package/src/identity/state_transition/identity_update_transition/mod.rs +4 -4
  194. package/src/identity/state_transition/identity_update_transition/to_object.rs +15 -19
  195. package/src/identity/state_transition/mod.rs +5 -2
  196. package/src/identity/state_transition/transition_types.rs +34 -0
  197. package/src/identity/state_transition/validate_public_key_signatures.rs +2 -2
  198. package/src/lib.rs +10 -11
  199. package/src/metadata.rs +3 -3
  200. package/src/protocol_version.rs +7 -0
  201. package/src/state_transition/conversion.rs +11 -1
  202. package/src/state_transition/errors/invalid_state_transition_error.rs +12 -1
  203. package/src/state_transition/fee/operations/pre_calculated_operation.rs +2 -1
  204. package/src/state_transition/mod.rs +137 -139
  205. package/src/state_transition/state_transition_facade.rs +11 -11
  206. package/src/state_transition/state_transition_factory.rs +142 -153
  207. package/src/state_transition/validation/state_transition_fee_validator.rs +1 -1
  208. package/src/state_transition/validation/validate_state_transition_identity_signature.rs +28 -10
  209. package/src/state_transition/validation/validate_state_transition_key_signature.rs +1 -1
  210. package/src/utils.rs +7 -8
  211. package/src/validation/validation_result.rs +1 -0
  212. package/test/integration/dataContract/DataContractFacade.spec.js +25 -32
  213. package/test/integration/dataContract/stateTransition/DataContractCreateTransition/validation/basic/validateDataContractCreateTransitionBasicFactory.spec.js +6 -6
  214. package/test/integration/dataContract/stateTransition/DataContractUpdateTransition/validation/basic/validateDataContractUpdateTransitionBasicFactory.spec.js +11 -10
  215. package/test/integration/dataContract/validation/validateDataContractFactory.spec.js +3 -3
  216. package/test/integration/document/Document.spec.js +3 -3
  217. package/test/integration/document/DocumentFacade.spec.js +39 -38
  218. package/test/integration/document/stateTransition/DocumentsBatchTransition/DocumentBatchTransition.spec.js +6 -7
  219. package/test/integration/document/stateTransition/DocumentsBatchTransition/validation/basic/validateDocumentsBatchTransitionBasicFactory.spec.js +15 -15
  220. package/test/integration/document/stateTransition/DocumentsBatchTransition/validation/state/executeDataTriggersFactory.spec.js +2 -2
  221. package/test/integration/document/validation/validateDocumentFactory.spec.js +3 -3
  222. package/test/integration/identity/IdentityFacade.spec.js +33 -62
  223. package/test/integration/identity/stateTransition/IdentityCreateTransition/validation/basic/validateIdentityCreateTransitionBasicFactory.spec.js +6 -8
  224. package/test/integration/identity/stateTransition/IdentityTopUpTransition/validation/basic/validateIdentityTopUpTransitionBasicFactory.spec.js +4 -7
  225. package/test/integration/identity/stateTransition/IdentityUpdateTransition/validation/basic/validateIdentityUpdateTransitionBasicFactory.spec.js +1 -1
  226. package/test/integration/identity/stateTransition/IdentityUpdateTransition/validation/state/validateIdentityUpdateTransitionStateFactory.spec.js +21 -24
  227. package/test/integration/identity/stateTransition/IdentityUpdateTransition/validation/state/validatePublicKeysState.spec.js +2 -2
  228. package/test/integration/identity/stateTransition/assetLockProof/chain/validateChainAssetLockProofStructureFactory.spec.js +4 -4
  229. package/test/integration/identity/stateTransition/assetLockProof/fetchAssetLockTransactionOutputFactory.spec.js +7 -10
  230. package/test/integration/identity/stateTransition/assetLockProof/instant/validateInstantAssetLockProofStructureFactory.spec.js +4 -5
  231. package/test/integration/identity/stateTransition/assetLockProof/validateAssetLockTransactionFactory.spec.js +6 -6
  232. package/test/integration/identity/stateTransition/validatePublicKeySignaturesFactory.spec.js +3 -7
  233. package/test/integration/identity/validation/validateIdentityFactory.spec.js +7 -6
  234. package/test/integration/identity/validation/validatePublicKeysFactory.spec.js +5 -25
  235. package/test/integration/stateTransition/StateTransitionFacade.spec.js +45 -58
  236. package/test/integration/util/generateTemporaryEcdsaPrivateKey.spec.js +1 -1
  237. package/test/unit/DashPlatformProtocol.spec.js +10 -25
  238. package/test/unit/dataContract/DataContract.spec.js +119 -148
  239. package/test/unit/dataContract/DataContractFactory.spec.js +42 -31
  240. package/test/unit/dataContract/createDataContract.spec.js +6 -6
  241. package/test/unit/dataContract/generateDataContractId.spec.js +1 -1
  242. package/test/unit/dataContract/stateTransition/DataContractCreateTransition/DataContractCreateTransition.spec.js +34 -26
  243. package/test/unit/dataContract/stateTransition/DataContractCreateTransition/applyDataContractCreateTransitionFactory.spec.js +7 -9
  244. package/test/unit/dataContract/stateTransition/DataContractCreateTransition/validation/state/validateDataContractCreateTransitionStateFactory.spec.js +10 -9
  245. package/test/unit/dataContract/stateTransition/DataContractUpdateTransition/DataContractUpdateTransition.spec.js +28 -19
  246. package/test/unit/dataContract/stateTransition/DataContractUpdateTransition/applyDataContractUpdateTransitionFactory.spec.js +7 -7
  247. package/test/unit/dataContract/stateTransition/DataContractUpdateTransition/validation/basic/validateIndicesAreBackwardCompatible.spec.js +5 -5
  248. package/test/unit/dataContract/stateTransition/DataContractUpdateTransition/validation/state/validateDataContractUpdateTransitionStateFactory.spec.js +11 -10
  249. package/test/unit/dataContract/validation/validateDataContractPatterns.spec.js +7 -7
  250. package/test/unit/dataTrigger/dpnsTriggers/createDomainDataTrigger.spec.js +1 -1
  251. package/test/unit/document/Document.spec.js +31 -20
  252. package/test/unit/document/DocumentFactory.spec.js +45 -110
  253. package/test/unit/document/fetchAndValidateDataContractFactory.spec.js +1 -1
  254. package/test/unit/document/stateTransition/DocumetsBatchTransition/DocumentsBatchTransition.spec.js +6 -7
  255. package/test/unit/document/stateTransition/DocumetsBatchTransition/applyDocumentsBatchTransitionFactory.spec.js +11 -12
  256. package/test/unit/document/stateTransition/DocumetsBatchTransition/documentTransition/DocumentCreateTransition.spec.js +1 -1
  257. package/test/unit/document/stateTransition/DocumetsBatchTransition/validation/basic/findDuplicatesById.spec.js +1 -1
  258. package/test/unit/document/stateTransition/DocumetsBatchTransition/validation/basic/findDuplicatesByIndices.spec.js +1 -1
  259. package/test/unit/document/stateTransition/DocumetsBatchTransition/validation/basic/validatePartialCompoundIndices.spec.js +1 -1
  260. package/test/unit/document/stateTransition/DocumetsBatchTransition/validation/state/fetchDocumentsFactory.spec.js +1 -1
  261. package/test/unit/document/stateTransition/DocumetsBatchTransition/validation/state/validateDocumentsBatchTransitionStateFactory.spec.js +9 -9
  262. package/test/unit/document/stateTransition/DocumetsBatchTransition/validation/state/validateDocumentsUniquenessByIndicesFactory.spec.js +1 -1
  263. package/test/unit/identity/Identity.spec.js +46 -81
  264. package/test/unit/identity/IdentityFactory.spec.js +61 -75
  265. package/test/unit/identity/IdentityPublicKey.spec.js +34 -48
  266. package/test/unit/identity/stateTransition/IdentityCreateTransition/IdentityCreateTransition.spec.js +30 -63
  267. package/test/unit/identity/stateTransition/IdentityCreateTransition/applyIdentityCreateTransitionFactory.spec.js +9 -15
  268. package/test/unit/identity/stateTransition/IdentityCreateTransition/validation/state/validateIdentityCreateTransitionStateFactory.spec.js +5 -9
  269. package/test/unit/identity/stateTransition/IdentityTopUpTransition/IdentityTopUpTransition.spec.js +13 -35
  270. package/test/unit/identity/stateTransition/IdentityTopUpTransition/applyIdentityTopUpTransitionFactory.spec.js +9 -13
  271. package/test/unit/identity/stateTransition/IdentityTopUpTransition/validation/state/validateIdentityTopUpTransitionStateFactory.spec.js +5 -9
  272. package/test/unit/identity/stateTransition/IdentityUpdateTransition/IdentityUpdateTransition.spec.js +24 -46
  273. package/test/unit/identity/stateTransition/IdentityUpdateTransition/applyIdentityUpdateTransitionFactory.spec.js +4 -4
  274. package/test/unit/identity/stateTransition/assetLockProof/fetchAssetLockPublicKeyHashFactory.spec.js +1 -1
  275. package/test/unit/identity/stateTransition/identityCreditTransferTransition/identityCreditTransferTransition.spec.js +130 -0
  276. package/test/unit/stateTransition/StateTransitionExecutionContext.spec.js +1 -1
  277. package/test/unit/stateTransition/StateTransitionFactory.spec.js +16 -22
  278. package/test/unit/stateTransition/createStateTransitionFactory.spec.js +43 -21
  279. package/test/unit/stateTransition/validation/validateStateTransitionBasicFactory.spec.js +3 -3
  280. package/test/unit/stateTransition/validation/validateStateTransitionFeeFactory.spec.js +5 -17
  281. package/test/unit/stateTransition/validation/validateStateTransitionIdentitySignatureFactory.spec.js +9 -5
  282. package/test/unit/stateTransition/validation/validateStateTransitionKeySignatureFactory.spec.js +8 -14
  283. package/test/unit/stateTransition/validation/validateStateTransitionStateFactory.spec.js +1 -1
  284. package/test/unit/version/validateProtocolVersionFactory.spec.js +1 -1
  285. package/test-d/index.test-d.ts +2 -2
  286. package/src/data_contract/state_transition/data_contract_create_transition/apply.rs +0 -45
  287. package/src/data_contract/state_transition/data_contract_update_transition/apply.rs +0 -49
  288. package/src/decode_protocol_entity.rs +0 -25
  289. package/src/document/state_transition/document_batch_transition/apply_document_batch_transition.rs +0 -25
  290. package/test/integration/ajv/keywords/byteArray/addByteArrayKeyword.spec.js +0 -148
  291. package/test/integration/util/generateEntropy.spec.js +0 -17
  292. package/test/integration/util/serializer.spec.js +0 -24
  293. package/test/unit/decodeProtocolEntityFactory.spec.js +0 -69
  294. package/test/unit/identity/errors/InvalidIdentityError.spec.js +0 -46
  295. package/test/unit/stateTransition/errors/InvalidStateTransitionError.spec.js +0 -51
@@ -1,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,14 +1,12 @@
1
- const getIdentityCreateTransitionFixture = require('@dashevo/dpp/lib/test/fixtures/getIdentityCreateTransitionFixture');
2
-
3
1
  const { convertSatoshiToCredits } = require('@dashevo/dpp/lib/identity/creditsConverter');
4
2
 
5
- const createStateRepositoryMock = require('@dashevo/dpp/lib/test/mocks/createStateRepositoryMock');
6
-
7
- const protocolVersion = require('@dashevo/dpp/lib/version/protocolVersion');
3
+ const getIdentityCreateTransitionFixture = require('../../../../../lib/test/fixtures/getIdentityCreateTransitionFixture');
4
+ const createStateRepositoryMock = require('../../../../../lib/test/mocks/createStateRepositoryMock');
8
5
 
9
- const { default: loadWasmDpp } = require('../../../../../dist');
6
+ const { default: loadWasmDpp } = require('../../../../..');
7
+ const { getLatestProtocolVersion } = require('../../../../..');
10
8
 
11
- describe('applyIdentityCreateTransitionFactory', () => {
9
+ describe.skip('applyIdentityCreateTransitionFactory', () => {
12
10
  let stateTransition;
13
11
  let applyIdentityCreateTransition;
14
12
  let stateRepositoryMock;
@@ -16,7 +14,6 @@ describe('applyIdentityCreateTransitionFactory', () => {
16
14
  let executionContext;
17
15
 
18
16
  let StateTransitionExecutionContext;
19
- let IdentityCreateTransition;
20
17
  let Identity;
21
18
 
22
19
  let applyIdentityCreateTransitionDPP;
@@ -24,21 +21,18 @@ describe('applyIdentityCreateTransitionFactory', () => {
24
21
  before(async () => {
25
22
  ({
26
23
  StateTransitionExecutionContext,
27
- IdentityCreateTransition,
28
24
  applyIdentityCreateTransition: applyIdentityCreateTransitionDPP,
29
25
  Identity,
30
26
  } = await loadWasmDpp());
31
27
  });
32
28
 
33
- beforeEach(function beforeEach() {
29
+ beforeEach(async function beforeEach() {
34
30
  stateRepositoryMock = createStateRepositoryMock(this.sinonSandbox);
35
31
  stateRepositoryMock.createIdentity.resolves();
36
32
  stateRepositoryMock.addToSystemCredits.resolves();
37
33
  stateRepositoryMock.markAssetLockTransactionOutPointAsUsed.resolves();
38
34
 
39
- stateTransition = new IdentityCreateTransition(
40
- getIdentityCreateTransitionFixture().toObject(),
41
- );
35
+ stateTransition = await getIdentityCreateTransitionFixture();
42
36
 
43
37
  executionContext = new StateTransitionExecutionContext();
44
38
 
@@ -51,7 +45,7 @@ describe('applyIdentityCreateTransitionFactory', () => {
51
45
  );
52
46
  });
53
47
 
54
- it('should store identity created from state transition', async function () {
48
+ it('should store identity created from state transition', async function beforeEach() {
55
49
  await applyIdentityCreateTransition(stateTransition);
56
50
 
57
51
  const balance = convertSatoshiToCredits(
@@ -59,7 +53,7 @@ describe('applyIdentityCreateTransitionFactory', () => {
59
53
  );
60
54
 
61
55
  const identity = new Identity({
62
- protocolVersion: protocolVersion.latestVersion,
56
+ protocolVersion: getLatestProtocolVersion(),
63
57
  id: stateTransition.getIdentityId(),
64
58
  publicKeys: stateTransition.getPublicKeys()
65
59
  .map((key) => key.toObject({ skipSignature: true })),
@@ -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,26 +1,24 @@
1
- const getIdentityTopUpTransitionFixture = require('@dashevo/dpp/lib/test/fixtures/getIdentityTopUpTransitionFixture');
2
-
3
1
  const { convertSatoshiToCredits } = require('@dashevo/dpp/lib/identity/creditsConverter');
4
2
 
5
- const createStateRepositoryMock = require('@dashevo/dpp/lib/test/mocks/createStateRepositoryMock');
3
+ const getIdentityTopUpTransitionFixture = require('../../../../../lib/test/fixtures/getIdentityTopUpTransitionFixture');
4
+
5
+ const createStateRepositoryMock = require('../../../../../lib/test/mocks/createStateRepositoryMock');
6
6
 
7
- const { default: loadWasmDpp } = require('../../../../../dist');
7
+ const { default: loadWasmDpp } = require('../../../../..');
8
8
 
9
- describe('applyIdentityTopUpTransitionFactory', () => {
9
+ describe.skip('applyIdentityTopUpTransitionFactory', () => {
10
10
  let stateTransition;
11
11
  let applyIdentityTopUpTransition;
12
12
  let stateRepositoryMock;
13
13
  let executionContext;
14
14
 
15
15
  let StateTransitionExecutionContext;
16
- let IdentityTopUpTransition;
17
16
 
18
17
  let applyIdentityTopUpTransitionDPP;
19
18
 
20
19
  before(async () => {
21
20
  ({
22
21
  StateTransitionExecutionContext,
23
- IdentityTopUpTransition,
24
22
  applyIdentityTopUpTransition: applyIdentityTopUpTransitionDPP,
25
23
  } = await loadWasmDpp());
26
24
  });
@@ -39,9 +37,7 @@ describe('applyIdentityTopUpTransitionFactory', () => {
39
37
  height: 42,
40
38
  });
41
39
 
42
- stateTransition = new IdentityTopUpTransition(
43
- getIdentityTopUpTransitionFixture().toObject(),
44
- );
40
+ stateTransition = await getIdentityTopUpTransitionFixture();
45
41
 
46
42
  executionContext = new StateTransitionExecutionContext();
47
43
 
@@ -52,7 +48,7 @@ describe('applyIdentityTopUpTransitionFactory', () => {
52
48
  );
53
49
  });
54
50
 
55
- it('should add topup amount to identity balance', async function () {
51
+ it('should add topup amount to identity balance', async function shouldAdd() {
56
52
  const balanceToTopUp = convertSatoshiToCredits(
57
53
  stateTransition.getAssetLockProof().getOutput().satoshis,
58
54
  );
@@ -81,7 +77,7 @@ describe('applyIdentityTopUpTransitionFactory', () => {
81
77
  );
82
78
  });
83
79
 
84
- it('should ignore balance debt for system credits', async function () {
80
+ it('should ignore balance debt for system credits', async function shouldIgnore() {
85
81
  stateRepositoryMock.fetchIdentityBalanceWithDebt.resolves(-5);
86
82
 
87
83
  const balanceToTopUp = convertSatoshiToCredits(
@@ -112,7 +108,7 @@ describe('applyIdentityTopUpTransitionFactory', () => {
112
108
  );
113
109
  });
114
110
 
115
- it('should add topup amount to identity balance on dry run', async function () {
111
+ it('should add topup amount to identity balance on dry run', async function shouldAddTopup() {
116
112
  const { match } = this.sinonSandbox;
117
113
 
118
114
  const balanceToTopUp = convertSatoshiToCredits(
@@ -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,9 +1,9 @@
1
- const createStateRepositoryMock = require('@dashevo/dpp/lib/test/mocks/createStateRepositoryMock');
1
+ const createStateRepositoryMock = require('../../../../../lib/test/mocks/createStateRepositoryMock');
2
2
  const getIdentityUpdateTransitionFixture = require('../../../../../lib/test/fixtures/getIdentityUpdateTransitionFixture');
3
3
 
4
4
  const { default: loadWasmDpp } = require('../../../../../dist');
5
5
 
6
- describe('applyIdentityUpdateTransition', () => {
6
+ describe.skip('applyIdentityUpdateTransition', () => {
7
7
  let applyIdentityUpdateTransition;
8
8
  let stateRepositoryMock;
9
9
  let stateTransition;
@@ -38,7 +38,7 @@ describe('applyIdentityUpdateTransition', () => {
38
38
  );
39
39
  });
40
40
 
41
- it('should add and disable public keys', async function () {
41
+ it('should add and disable public keys', async function shouldAdd() {
42
42
  await applyIdentityUpdateTransition(stateTransition);
43
43
 
44
44
  const { match } = this.sinonSandbox;
@@ -66,7 +66,7 @@ describe('applyIdentityUpdateTransition', () => {
66
66
  );
67
67
  });
68
68
 
69
- it('should add and disable public keys on dry run', async function () {
69
+ it('should add and disable public keys on dry run', async function shouldDisable() {
70
70
  const { match } = this.sinonSandbox;
71
71
 
72
72
  executionContext.enableDryRun();