@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
@@ -6,6 +6,7 @@ use dpp::errors::consensus::codes::ErrorWithCode;
6
6
  use dpp::errors::consensus::ConsensusError;
7
7
 
8
8
  use crate::buffer::Buffer;
9
+ use dpp::serialization::PlatformSerializable;
9
10
  use wasm_bindgen::prelude::*;
10
11
 
11
12
  #[wasm_bindgen(js_name=JsonSchemaError, inspectable)]
@@ -23,27 +24,27 @@ impl From<&JsonSchemaError> for JsonSchemaErrorWasm {
23
24
  #[wasm_bindgen(js_class=JsonSchemaError)]
24
25
  impl JsonSchemaErrorWasm {
25
26
  #[wasm_bindgen(js_name=getKeyword)]
26
- pub fn keyword(&self) -> String {
27
+ pub fn get_keyword(&self) -> String {
27
28
  self.inner.keyword().to_string()
28
29
  }
29
30
 
30
31
  #[wasm_bindgen(js_name=getInstancePath)]
31
- pub fn instance_path(&self) -> String {
32
+ pub fn get_instance_path(&self) -> String {
32
33
  self.inner.instance_path().to_string()
33
34
  }
34
35
 
35
36
  #[wasm_bindgen(js_name=getSchemaPath)]
36
- pub fn schema_path(&self) -> String {
37
+ pub fn get_schema_path(&self) -> String {
37
38
  self.inner.schema_path().to_string()
38
39
  }
39
40
 
40
41
  #[wasm_bindgen(js_name=getPropertyName)]
41
- pub fn property_name(&self) -> String {
42
+ pub fn get_property_name(&self) -> String {
42
43
  self.inner.property_name().to_string()
43
44
  }
44
45
 
45
46
  #[wasm_bindgen(js_name=getParams)]
46
- pub fn params(&self) -> Result<JsValue, JsError> {
47
+ pub fn get_params(&self) -> Result<JsValue, JsError> {
47
48
  let ser = serde_wasm_bindgen::Serializer::json_compatible();
48
49
 
49
50
  self.inner.params().serialize(&ser).map_err(|e| e.into())
@@ -64,12 +65,33 @@ impl JsonSchemaErrorWasm {
64
65
  self.inner.to_string()
65
66
  }
66
67
 
67
- #[wasm_bindgen(js_name=serialize)]
68
- pub fn serialize(&self) -> Result<Buffer, JsError> {
69
- let bytes = ConsensusError::from(self.inner.clone())
70
- .serialize()
71
- .map_err(JsError::from)?;
68
+ #[wasm_bindgen(getter)]
69
+ pub fn keyword(&self) -> String {
70
+ self.get_keyword()
71
+ }
72
+
73
+ #[wasm_bindgen(getter, js_name=instancePath)]
74
+ pub fn instance_path(&self) -> String {
75
+ self.get_instance_path()
76
+ }
77
+
78
+ #[wasm_bindgen(getter, js_name=schemaPath)]
79
+ pub fn schema_path(&self) -> String {
80
+ self.get_schema_path()
81
+ }
82
+
83
+ #[wasm_bindgen(getter, js_name=propertyName)]
84
+ pub fn property_name(&self) -> String {
85
+ self.get_property_name()
86
+ }
72
87
 
73
- Ok(Buffer::from_bytes(bytes.as_slice()))
88
+ #[wasm_bindgen(getter)]
89
+ pub fn params(&self) -> Result<JsValue, JsError> {
90
+ self.get_params()
91
+ }
92
+
93
+ #[wasm_bindgen(getter)]
94
+ pub fn code(&self) -> u32 {
95
+ self.get_code()
74
96
  }
75
97
  }
@@ -14,6 +14,7 @@ pub mod state_transition;
14
14
  #[cfg(test)]
15
15
  mod test_consensus_error;
16
16
  mod unsupported_protocol_version_error;
17
+ mod unsupported_version_error;
17
18
  mod wrong_public_key_purpose_error;
18
19
 
19
20
  pub use incompatible_protocol_version_error::*;
@@ -27,4 +28,5 @@ pub use public_key_security_level_not_met_error::*;
27
28
  #[cfg(test)]
28
29
  pub use test_consensus_error::*;
29
30
  pub use unsupported_protocol_version_error::*;
31
+ pub use unsupported_version_error::*;
30
32
  pub use wrong_public_key_purpose_error::*;
@@ -3,6 +3,7 @@ use dpp::consensus::codes::ErrorWithCode;
3
3
  use dpp::consensus::signature::PublicKeyIsDisabledError;
4
4
  use dpp::consensus::ConsensusError;
5
5
  use dpp::identity::KeyID;
6
+ use dpp::serialization::PlatformSerializable;
6
7
  use wasm_bindgen::prelude::*;
7
8
 
8
9
  #[wasm_bindgen(js_name=PublicKeyIsDisabledError)]
@@ -32,13 +33,4 @@ impl PublicKeyIsDisabledErrorWasm {
32
33
  pub fn message(&self) -> String {
33
34
  self.inner.to_string()
34
35
  }
35
-
36
- #[wasm_bindgen(js_name=serialize)]
37
- pub fn serialize(&self) -> Result<Buffer, JsError> {
38
- let bytes = ConsensusError::from(self.inner.clone())
39
- .serialize()
40
- .map_err(JsError::from)?;
41
-
42
- Ok(Buffer::from_bytes(bytes.as_slice()))
43
- }
44
36
  }
@@ -1,12 +1,12 @@
1
1
  use crate::buffer::Buffer;
2
- use crate::Serialize;
3
2
  use dpp::consensus::codes::ErrorWithCode;
4
3
  use dpp::consensus::signature::PublicKeySecurityLevelNotMetError;
5
4
  use dpp::consensus::ConsensusError;
5
+ use serde::Serialize;
6
6
 
7
+ use dpp::serialization::PlatformSerializable;
7
8
  use wasm_bindgen::prelude::*;
8
9
 
9
- #[derive(Serialize)]
10
10
  #[wasm_bindgen(js_name=PublicKeySecurityLevelNotMetError)]
11
11
  pub struct PublicKeySecurityLevelNotMetErrorWasm {
12
12
  inner: PublicKeySecurityLevelNotMetError,
@@ -39,13 +39,4 @@ impl PublicKeySecurityLevelNotMetErrorWasm {
39
39
  pub fn message(&self) -> String {
40
40
  self.inner.to_string()
41
41
  }
42
-
43
- #[wasm_bindgen(js_name=serialize)]
44
- pub fn serialize(&self) -> Result<Buffer, JsError> {
45
- let bytes = ConsensusError::from(self.inner.clone())
46
- .serialize()
47
- .map_err(JsError::from)?;
48
-
49
- Ok(Buffer::from_bytes(bytes.as_slice()))
50
- }
51
42
  }
@@ -2,6 +2,7 @@ use crate::buffer::Buffer;
2
2
  use dpp::consensus::basic::state_transition::InvalidStateTransitionTypeError;
3
3
  use dpp::consensus::codes::ErrorWithCode;
4
4
  use dpp::consensus::ConsensusError;
5
+ use dpp::serialization::PlatformSerializable;
5
6
  use wasm_bindgen::prelude::*;
6
7
 
7
8
  #[wasm_bindgen(js_name=InvalidStateTransitionTypeError)]
@@ -38,13 +39,4 @@ impl InvalidStateTransitionTypeErrorWasm {
38
39
  pub fn message(&self) -> String {
39
40
  self.inner.to_string()
40
41
  }
41
-
42
- #[wasm_bindgen(js_name=serialize)]
43
- pub fn serialize(&self) -> Result<Buffer, JsError> {
44
- let bytes = ConsensusError::from(self.inner.clone())
45
- .serialize()
46
- .map_err(JsError::from)?;
47
-
48
- Ok(Buffer::from_bytes(bytes.as_slice()))
49
- }
50
42
  }
@@ -2,6 +2,7 @@ use crate::buffer::Buffer;
2
2
  use dpp::consensus::basic::state_transition::MissingStateTransitionTypeError;
3
3
  use dpp::consensus::codes::ErrorWithCode;
4
4
  use dpp::consensus::ConsensusError;
5
+ use dpp::serialization::PlatformSerializable;
5
6
  use wasm_bindgen::prelude::*;
6
7
 
7
8
  #[wasm_bindgen(js_name=MissingStateTransitionTypeError)]
@@ -33,13 +34,4 @@ impl MissingStateTransitionTypeErrorWasm {
33
34
  pub fn message(&self) -> String {
34
35
  self.inner.to_string()
35
36
  }
36
-
37
- #[wasm_bindgen(js_name=serialize)]
38
- pub fn serialize(&self) -> Result<Buffer, JsError> {
39
- let bytes = ConsensusError::from(self.inner.clone())
40
- .serialize()
41
- .map_err(JsError::from)?;
42
-
43
- Ok(Buffer::from_bytes(bytes.as_slice()))
44
- }
45
37
  }
@@ -2,6 +2,7 @@ use crate::buffer::Buffer;
2
2
  use dpp::consensus::basic::state_transition::StateTransitionMaxSizeExceededError;
3
3
  use dpp::consensus::codes::ErrorWithCode;
4
4
  use dpp::consensus::ConsensusError;
5
+ use dpp::serialization::PlatformSerializable;
5
6
  use wasm_bindgen::prelude::*;
6
7
 
7
8
  #[wasm_bindgen(js_name=StateTransitionMaxSizeExceededError)]
@@ -36,13 +37,4 @@ impl StateTransitionMaxSizeExceededErrorWasm {
36
37
  pub fn message(&self) -> String {
37
38
  self.inner.to_string()
38
39
  }
39
-
40
- #[wasm_bindgen(js_name=serialize)]
41
- pub fn serialize(&self) -> Result<Buffer, JsError> {
42
- let bytes = ConsensusError::from(self.inner.clone())
43
- .serialize()
44
- .map_err(JsError::from)?;
45
-
46
- Ok(Buffer::from_bytes(bytes.as_slice()))
47
- }
48
40
  }
@@ -2,6 +2,7 @@ use crate::buffer::Buffer;
2
2
  use dpp::consensus::basic::UnsupportedProtocolVersionError;
3
3
  use dpp::consensus::codes::ErrorWithCode;
4
4
  use dpp::consensus::ConsensusError;
5
+ use dpp::serialization::PlatformSerializable;
5
6
  use wasm_bindgen::prelude::*;
6
7
 
7
8
  #[wasm_bindgen(js_name=UnsupportedProtocolVersionError)]
@@ -36,13 +37,4 @@ impl UnsupportedProtocolVersionErrorWasm {
36
37
  pub fn message(&self) -> String {
37
38
  self.inner.to_string()
38
39
  }
39
-
40
- #[wasm_bindgen(js_name=serialize)]
41
- pub fn serialize(&self) -> Result<Buffer, JsError> {
42
- let bytes = ConsensusError::from(self.inner.clone())
43
- .serialize()
44
- .map_err(JsError::from)?;
45
-
46
- Ok(Buffer::from_bytes(bytes.as_slice()))
47
- }
48
40
  }
@@ -0,0 +1,44 @@
1
+ use crate::buffer::Buffer;
2
+ use dpp::consensus::basic::UnsupportedVersionError;
3
+ use dpp::consensus::codes::ErrorWithCode;
4
+ use dpp::consensus::ConsensusError;
5
+ use wasm_bindgen::prelude::*;
6
+
7
+ #[wasm_bindgen(js_name = UnsupportedVersionError)]
8
+ pub struct UnsupportedVersionErrorWasm {
9
+ inner: UnsupportedVersionError,
10
+ }
11
+
12
+ impl From<&UnsupportedVersionError> for UnsupportedVersionErrorWasm {
13
+ fn from(e: &UnsupportedVersionError) -> Self {
14
+ Self { inner: e.clone() }
15
+ }
16
+ }
17
+
18
+ #[wasm_bindgen(js_class = UnsupportedVersionError)]
19
+ impl UnsupportedVersionErrorWasm {
20
+ #[wasm_bindgen(js_name = getReceivedVersion)]
21
+ pub fn received_version(&self) -> u16 {
22
+ self.inner.received_version()
23
+ }
24
+
25
+ #[wasm_bindgen(js_name = getMinVersion)]
26
+ pub fn min_version(&self) -> u16 {
27
+ self.inner.min_version()
28
+ }
29
+
30
+ #[wasm_bindgen(js_name = getMaxVersion)]
31
+ pub fn max_version(&self) -> u16 {
32
+ self.inner.max_version()
33
+ }
34
+
35
+ #[wasm_bindgen(js_name = getCode)]
36
+ pub fn get_code(&self) -> u32 {
37
+ ConsensusError::from(self.inner.clone()).code()
38
+ }
39
+
40
+ #[wasm_bindgen(getter)]
41
+ pub fn message(&self) -> String {
42
+ self.inner.to_string()
43
+ }
44
+ }
@@ -2,6 +2,7 @@ use crate::buffer::Buffer;
2
2
  use dpp::consensus::codes::ErrorWithCode;
3
3
  use dpp::consensus::signature::WrongPublicKeyPurposeError;
4
4
  use dpp::consensus::ConsensusError;
5
+ use dpp::serialization::PlatformSerializable;
5
6
  use wasm_bindgen::prelude::*;
6
7
 
7
8
  #[wasm_bindgen(js_name=WrongPublicKeyPurposeError)]
@@ -36,13 +37,4 @@ impl WrongPublicKeyPurposeErrorWasm {
36
37
  pub fn message(&self) -> String {
37
38
  self.inner.to_string()
38
39
  }
39
-
40
- #[wasm_bindgen(js_name=serialize)]
41
- pub fn serialize(&self) -> Result<Buffer, JsError> {
42
- let bytes = ConsensusError::from(self.inner.clone())
43
- .serialize()
44
- .map_err(JsError::from)?;
45
-
46
- Ok(Buffer::from_bytes(bytes.as_slice()))
47
- }
48
40
  }
@@ -1,8 +1,8 @@
1
1
  use crate::errors::consensus::basic::{
2
2
  IncompatibleProtocolVersionErrorWasm, InvalidIdentifierErrorWasm, JsonSchemaErrorWasm,
3
- UnsupportedProtocolVersionErrorWasm,
3
+ UnsupportedProtocolVersionErrorWasm, UnsupportedVersionErrorWasm,
4
4
  };
5
- use dpp::consensus::ConsensusError as DPPConsensusError;
5
+ use dpp::consensus::{ConsensusError as DPPConsensusError, ConsensusError};
6
6
  use std::ops::Deref;
7
7
 
8
8
  use crate::errors::consensus::basic::identity::{
@@ -23,6 +23,7 @@ use crate::errors::consensus::basic::identity::{
23
23
  InvalidInstantAssetLockProofSignatureErrorWasm, MissingMasterPublicKeyErrorWasm,
24
24
  NotImplementedIdentityCreditWithdrawalTransitionPoolingErrorWasm,
25
25
  };
26
+
26
27
  use crate::errors::consensus::state::identity::{
27
28
  DuplicatedIdentityPublicKeyIdStateErrorWasm, DuplicatedIdentityPublicKeyStateErrorWasm,
28
29
  MissingIdentityPublicKeyIdsErrorWasm,
@@ -43,12 +44,13 @@ use dpp::consensus::basic::BasicError::{
43
44
  InvalidIdentityPublicKeySecurityLevelError, InvalidInstantAssetLockProofError,
44
45
  InvalidInstantAssetLockProofSignatureError, JsonSchemaError, MissingMasterPublicKeyError,
45
46
  NotImplementedIdentityCreditWithdrawalTransitionPoolingError, ProtocolVersionParsingError,
46
- SerializedObjectParsingError, UnsupportedProtocolVersionError,
47
+ SerializedObjectParsingError, UnsupportedProtocolVersionError, UnsupportedVersionError,
47
48
  };
48
49
  use dpp::consensus::fee::fee_error::FeeError;
49
50
  use dpp::consensus::signature::SignatureError;
50
51
 
51
- use dpp::consensus::state::data_trigger::data_trigger_error::DataTriggerError;
52
+ // TODO(versioning): remove
53
+ // use dpp::consensus::state::data_trigger::data_trigger_error::DataTriggerError;
52
54
  use dpp::consensus::state::state_error::StateError;
53
55
 
54
56
  use wasm_bindgen::{JsError, JsValue};
@@ -71,10 +73,13 @@ use crate::errors::consensus::signature::{
71
73
  BasicBLSErrorWasm, BasicECDSAErrorWasm, IdentityNotFoundErrorWasm,
72
74
  SignatureShouldNotBePresentErrorWasm,
73
75
  };
74
- use crate::errors::consensus::state::data_contract::data_trigger::{
75
- DataTriggerConditionErrorWasm, DataTriggerExecutionErrorWasm,
76
+ // use crate::errors::consensus::state::data_contract::data_trigger::{
77
+ // DataTriggerConditionErrorWasm, DataTriggerExecutionErrorWasm,
78
+ // };
79
+ use crate::errors::consensus::state::data_contract::{
80
+ DataContractAlreadyPresentErrorWasm, DataContractConfigUpdateErrorWasm,
81
+ DataContractIsReadonlyErrorWasm,
76
82
  };
77
- use crate::errors::consensus::state::data_contract::DataContractAlreadyPresentErrorWasm;
78
83
  use crate::errors::consensus::state::document::{
79
84
  DocumentAlreadyPresentErrorWasm, DocumentNotFoundErrorWasm, DocumentOwnerIdMismatchErrorWasm,
80
85
  DocumentTimestampWindowViolationErrorWasm, DocumentTimestampsMismatchErrorWasm,
@@ -112,9 +117,12 @@ use crate::errors::consensus::basic::{
112
117
  PublicKeySecurityLevelNotMetErrorWasm, WrongPublicKeyPurposeErrorWasm,
113
118
  };
114
119
  use crate::errors::consensus::fee::BalanceIsNotEnoughErrorWasm;
115
- use crate::errors::consensus::state::data_contract::data_trigger::DataTriggerInvalidResultErrorWasm;
120
+
121
+ // use crate::errors::consensus::state::data_contract::data_trigger::DataTriggerInvalidResultErrorWasm;
116
122
  use crate::errors::consensus::value_error::ValueErrorWasm;
117
123
 
124
+ use super::state::document::DocumentTimestampsAreEqualErrorWasm;
125
+
118
126
  pub fn from_consensus_error_ref(e: &DPPConsensusError) -> JsValue {
119
127
  match e {
120
128
  DPPConsensusError::FeeError(e) => match e {
@@ -176,19 +184,20 @@ pub fn from_state_error(state_error: &StateError) -> JsValue {
176
184
  StateError::MissingIdentityPublicKeyIdsError(e) => {
177
185
  MissingIdentityPublicKeyIdsErrorWasm::from(e).into()
178
186
  }
179
- StateError::DataTriggerError(data_trigger_error) => match data_trigger_error.deref() {
180
- DataTriggerError::DataTriggerConditionError(e) => {
181
- DataTriggerConditionErrorWasm::from(e).into()
182
- }
183
- DataTriggerError::DataTriggerExecutionError(e) => {
184
- DataTriggerExecutionErrorWasm::from(e).into()
185
- }
186
- DataTriggerError::DataTriggerInvalidResultError(e) => {
187
- DataTriggerInvalidResultErrorWasm::from(e).into()
188
- }
189
- },
190
- // TODO(v0.24-backport): this error seems to be used only in drive executor. Do we need binding for it?
191
- StateError::DataTriggerActionError(_) => JsError::new("Data Trigger action error").into(),
187
+ // TODO(versioning): restore
188
+ // StateError::DataTriggerError(data_trigger_error) => match data_trigger_error.deref() {
189
+ // DataTriggerError::DataTriggerConditionError(e) => {
190
+ // DataTriggerConditionErrorWasm::from(e).into()
191
+ // }
192
+ // DataTriggerError::DataTriggerExecutionError(e) => {
193
+ // DataTriggerExecutionErrorWasm::from(e).into()
194
+ // }
195
+ // DataTriggerError::DataTriggerInvalidResultError(e) => {
196
+ // DataTriggerInvalidResultErrorWasm::from(e).into()
197
+ // }
198
+ // },
199
+ // TODO(versioning): restore
200
+ // StateError::DataTriggerActionError(_) => JsError::new("Data Trigger action error").into(),
192
201
  StateError::IdentityAlreadyExistsError(e) => {
193
202
  let wasm_error: IdentityAlreadyExistsErrorWasm = e.into();
194
203
  wasm_error.into()
@@ -197,6 +206,17 @@ pub fn from_state_error(state_error: &StateError) -> JsValue {
197
206
  let wasm_error: IdentityInsufficientBalanceErrorWasm = e.into();
198
207
  wasm_error.into()
199
208
  }
209
+ StateError::DocumentTimestampsAreEqualError(e) => {
210
+ DocumentTimestampsAreEqualErrorWasm::from(e).into()
211
+ }
212
+ StateError::DataContractIsReadonlyError(e) => {
213
+ DataContractIsReadonlyErrorWasm::from(e).into()
214
+ }
215
+ StateError::DataContractConfigUpdateError(e) => {
216
+ DataContractConfigUpdateErrorWasm::from(e).into()
217
+ }
218
+ // TODO(versioning): restore
219
+ _ => todo!(),
200
220
  }
201
221
  }
202
222
 
@@ -300,6 +320,7 @@ fn from_basic_error(basic_error: &BasicError) -> JsValue {
300
320
  SerializedObjectParsingError(e) => SerializedObjectParsingErrorWasm::from(e).into(),
301
321
  JsonSchemaError(e) => JsonSchemaErrorWasm::from(e).into(),
302
322
  UnsupportedProtocolVersionError(e) => UnsupportedProtocolVersionErrorWasm::from(e).into(),
323
+ UnsupportedVersionError(e) => UnsupportedVersionErrorWasm::from(e).into(),
303
324
  IncompatibleProtocolVersionError(e) => IncompatibleProtocolVersionErrorWasm::from(e).into(),
304
325
  DuplicatedIdentityPublicKeyIdBasicError(e) => {
305
326
  DuplicatedIdentityPublicKeyIdErrorWasm::from(e).into()
@@ -360,6 +381,8 @@ fn from_basic_error(basic_error: &BasicError) -> JsValue {
360
381
  NotImplementedIdentityCreditWithdrawalTransitionPoolingErrorWasm::from(e).into()
361
382
  }
362
383
  IncompatibleRe2PatternError(err) => IncompatibleRe2PatternErrorWasm::from(err).into(),
384
+ // TODO(versioning): cover other errors
385
+ _ => todo!(),
363
386
  }
364
387
  }
365
388
 
@@ -1,11 +1,12 @@
1
1
  use crate::errors::consensus::consensus_error::from_consensus_error;
2
2
  use dpp::consensus::ConsensusError;
3
+ use dpp::serialization::PlatformDeserializable;
3
4
  use wasm_bindgen::prelude::wasm_bindgen;
4
5
  use wasm_bindgen::{JsError, JsValue};
5
6
 
6
7
  #[wasm_bindgen(js_name=deserializeConsensusError)]
7
8
  pub fn deserialize_consensus_error(bytes: Vec<u8>) -> Result<JsValue, JsError> {
8
- ConsensusError::deserialize(bytes.as_slice())
9
+ ConsensusError::deserialize_from_bytes(bytes.as_slice())
9
10
  .map(from_consensus_error)
10
11
  .map_err(|e| e.into())
11
12
  }
@@ -2,7 +2,10 @@ use crate::buffer::Buffer;
2
2
  use dpp::consensus::codes::ErrorWithCode;
3
3
  use dpp::consensus::fee::balance_is_not_enough_error::BalanceIsNotEnoughError;
4
4
  use dpp::consensus::ConsensusError;
5
- use dpp::state_transition::fee::Credits;
5
+ use dpp::fee::Credits;
6
+ use dpp::serialization::PlatformSerializable;
7
+ use dpp::serialization::PlatformSerializableWithPlatformVersion;
8
+ use dpp::version::PlatformVersion;
6
9
  use wasm_bindgen::prelude::*;
7
10
 
8
11
  #[wasm_bindgen(js_name=BalanceIsNotEnoughError)]
@@ -48,7 +51,7 @@ impl BalanceIsNotEnoughErrorWasm {
48
51
  #[wasm_bindgen(js_name=serialize)]
49
52
  pub fn serialize(&self) -> Result<Buffer, JsError> {
50
53
  let bytes = ConsensusError::from(self.inner.clone())
51
- .serialize()
54
+ .serialize_to_bytes_with_platform_version(PlatformVersion::first())
52
55
  .map_err(JsError::from)?;
53
56
 
54
57
  Ok(Buffer::from_bytes(bytes.as_slice()))
@@ -2,6 +2,7 @@ use crate::buffer::Buffer;
2
2
  use dpp::consensus::codes::ErrorWithCode;
3
3
  use dpp::consensus::signature::BasicBLSError;
4
4
  use dpp::consensus::ConsensusError;
5
+ use dpp::serialization::PlatformSerializable;
5
6
  use wasm_bindgen::prelude::*;
6
7
 
7
8
  #[wasm_bindgen(js_name=BasicBLSError)]
@@ -26,13 +27,4 @@ impl BasicBLSErrorWasm {
26
27
  pub fn message(&self) -> String {
27
28
  self.inner.to_string()
28
29
  }
29
-
30
- #[wasm_bindgen(js_name=serialize)]
31
- pub fn serialize(&self) -> Result<Buffer, JsError> {
32
- let bytes = ConsensusError::from(self.inner.clone())
33
- .serialize()
34
- .map_err(JsError::from)?;
35
-
36
- Ok(Buffer::from_bytes(bytes.as_slice()))
37
- }
38
30
  }
@@ -2,6 +2,7 @@ use crate::buffer::Buffer;
2
2
  use dpp::consensus::codes::ErrorWithCode;
3
3
  use dpp::consensus::signature::BasicECDSAError;
4
4
  use dpp::consensus::ConsensusError;
5
+ use dpp::serialization::PlatformSerializable;
5
6
  use wasm_bindgen::prelude::*;
6
7
 
7
8
  #[wasm_bindgen(js_name=BasicECDSAError)]
@@ -26,13 +27,4 @@ impl BasicECDSAErrorWasm {
26
27
  pub fn message(&self) -> String {
27
28
  self.inner.to_string()
28
29
  }
29
-
30
- #[wasm_bindgen(js_name=serialize)]
31
- pub fn serialize(&self) -> Result<Buffer, JsError> {
32
- let bytes = ConsensusError::from(self.inner.clone())
33
- .serialize()
34
- .map_err(JsError::from)?;
35
-
36
- Ok(Buffer::from_bytes(bytes.as_slice()))
37
- }
38
30
  }
@@ -1,11 +1,13 @@
1
1
  use dpp::consensus::codes::ErrorWithCode;
2
2
  use dpp::consensus::signature::IdentityNotFoundError;
3
3
  use dpp::consensus::ConsensusError;
4
+ use dpp::serialization::PlatformSerializable;
4
5
  use wasm_bindgen::prelude::*;
5
6
 
6
7
  use crate::buffer::Buffer;
7
8
  use crate::identifier::IdentifierWrapper;
8
-
9
+ use dpp::serialization::PlatformSerializableWithPlatformVersion;
10
+ use dpp::version::PlatformVersion;
9
11
  #[wasm_bindgen(js_name=IdentityNotFoundError)]
10
12
  pub struct IdentityNotFoundErrorWasm {
11
13
  inner: IdentityNotFoundError,
@@ -44,7 +46,7 @@ impl IdentityNotFoundErrorWasm {
44
46
  #[wasm_bindgen(js_name=serialize)]
45
47
  pub fn serialize(&self) -> Result<Buffer, JsError> {
46
48
  let bytes = ConsensusError::from(self.inner.clone())
47
- .serialize()
49
+ .serialize_to_bytes_with_platform_version(PlatformVersion::first())
48
50
  .map_err(JsError::from)?;
49
51
 
50
52
  Ok(Buffer::from_bytes(bytes.as_slice()))
@@ -2,6 +2,7 @@ use crate::buffer::Buffer;
2
2
  use dpp::consensus::codes::ErrorWithCode;
3
3
  use dpp::consensus::signature::SignatureShouldNotBePresentError;
4
4
  use dpp::consensus::ConsensusError;
5
+ use dpp::serialization::PlatformSerializable;
5
6
  use wasm_bindgen::prelude::*;
6
7
 
7
8
  #[wasm_bindgen(js_name=SignatureShouldNotBePresentError)]
@@ -26,13 +27,4 @@ impl SignatureShouldNotBePresentErrorWasm {
26
27
  pub fn message(&self) -> String {
27
28
  self.inner.to_string()
28
29
  }
29
-
30
- #[wasm_bindgen(js_name=serialize)]
31
- pub fn serialize(&self) -> Result<Buffer, JsError> {
32
- let bytes = ConsensusError::from(self.inner.clone())
33
- .serialize()
34
- .map_err(JsError::from)?;
35
-
36
- Ok(Buffer::from_bytes(bytes.as_slice()))
37
- }
38
30
  }
@@ -4,8 +4,9 @@ use dpp::consensus::codes::ErrorWithCode;
4
4
  use dpp::consensus::state::data_contract::data_contract_already_present_error::DataContractAlreadyPresentError;
5
5
  use dpp::consensus::ConsensusError;
6
6
 
7
+ use dpp::serialization::{PlatformSerializable, PlatformSerializableWithPlatformVersion};
8
+ use dpp::version::PlatformVersion;
7
9
  use wasm_bindgen::prelude::*;
8
-
9
10
  #[wasm_bindgen(js_name=DataContractAlreadyPresentError)]
10
11
  pub struct DataContractAlreadyPresentErrorWasm {
11
12
  inner: DataContractAlreadyPresentError,
@@ -44,7 +45,7 @@ impl DataContractAlreadyPresentErrorWasm {
44
45
  #[wasm_bindgen(js_name=serialize)]
45
46
  pub fn serialize(&self) -> Result<Buffer, JsError> {
46
47
  let bytes = ConsensusError::from(self.inner.clone())
47
- .serialize()
48
+ .serialize_to_bytes_with_platform_version(PlatformVersion::first())
48
49
  .map_err(JsError::from)?;
49
50
 
50
51
  Ok(Buffer::from_bytes(bytes.as_slice()))
@@ -0,0 +1,42 @@
1
+ use crate::identifier::IdentifierWrapper;
2
+ use dpp::consensus::codes::ErrorWithCode;
3
+ use dpp::consensus::state::data_contract::data_contract_config_update_error::DataContractConfigUpdateError;
4
+
5
+ use dpp::consensus::ConsensusError;
6
+ use wasm_bindgen::prelude::*;
7
+
8
+ #[wasm_bindgen(js_name=DataContractConfigUpdateError)]
9
+ pub struct DataContractConfigUpdateErrorWasm {
10
+ inner: DataContractConfigUpdateError,
11
+ }
12
+
13
+ impl From<&DataContractConfigUpdateError> for DataContractConfigUpdateErrorWasm {
14
+ fn from(e: &DataContractConfigUpdateError) -> Self {
15
+ Self { inner: e.clone() }
16
+ }
17
+ }
18
+
19
+ #[wasm_bindgen(js_class=DataContractConfigUpdateError)]
20
+ impl DataContractConfigUpdateErrorWasm {
21
+ #[wasm_bindgen(constructor)]
22
+ pub fn new(data_contract_id: IdentifierWrapper, message: String) -> Self {
23
+ Self {
24
+ inner: DataContractConfigUpdateError::new(data_contract_id.into(), message),
25
+ }
26
+ }
27
+
28
+ #[wasm_bindgen(js_name=getDataContractId)]
29
+ pub fn data_contract_id(&self) -> IdentifierWrapper {
30
+ self.inner.data_contract_id().to_owned().into()
31
+ }
32
+
33
+ #[wasm_bindgen(js_name=getCode)]
34
+ pub fn get_code(&self) -> u32 {
35
+ ConsensusError::from(self.inner.clone()).code()
36
+ }
37
+
38
+ #[wasm_bindgen(getter)]
39
+ pub fn message(&self) -> String {
40
+ self.inner.to_string()
41
+ }
42
+ }
@@ -0,0 +1,44 @@
1
+ use crate::buffer::Buffer;
2
+ use crate::identifier::IdentifierWrapper;
3
+ use dpp::consensus::codes::ErrorWithCode;
4
+ use dpp::consensus::state::data_contract::data_contract_is_readonly_error::DataContractIsReadonlyError;
5
+ use dpp::consensus::ConsensusError;
6
+
7
+ use dpp::serialization::PlatformSerializable;
8
+ use wasm_bindgen::prelude::*;
9
+
10
+ #[wasm_bindgen(js_name=DataContractIsReadonlyError)]
11
+ pub struct DataContractIsReadonlyErrorWasm {
12
+ inner: DataContractIsReadonlyError,
13
+ }
14
+
15
+ impl From<&DataContractIsReadonlyError> for DataContractIsReadonlyErrorWasm {
16
+ fn from(e: &DataContractIsReadonlyError) -> Self {
17
+ Self { inner: e.clone() }
18
+ }
19
+ }
20
+
21
+ #[wasm_bindgen(js_class=DataContractIsReadonlyError)]
22
+ impl DataContractIsReadonlyErrorWasm {
23
+ #[wasm_bindgen(constructor)]
24
+ pub fn new(data_contract_id: IdentifierWrapper) -> Self {
25
+ Self {
26
+ inner: DataContractIsReadonlyError::new(data_contract_id.into()),
27
+ }
28
+ }
29
+
30
+ #[wasm_bindgen(js_name=getDataContractId)]
31
+ pub fn data_contract_id(&self) -> IdentifierWrapper {
32
+ self.inner.data_contract_id().to_owned().into()
33
+ }
34
+
35
+ #[wasm_bindgen(js_name=getCode)]
36
+ pub fn get_code(&self) -> u32 {
37
+ ConsensusError::from(self.inner.clone()).code()
38
+ }
39
+
40
+ #[wasm_bindgen(getter)]
41
+ pub fn message(&self) -> String {
42
+ self.inner.to_string()
43
+ }
44
+ }