@dashevo/wasm-dpp 0.25.0-dev.9 → 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
@@ -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
+ }
@@ -4,6 +4,7 @@ use dpp::consensus::codes::ErrorWithCode;
4
4
  use dpp::consensus::state::data_trigger::data_trigger_condition_error::DataTriggerConditionError;
5
5
  use dpp::consensus::ConsensusError;
6
6
  use dpp::identifier::Identifier;
7
+ use dpp::serialization::PlatformSerializable;
7
8
  use wasm_bindgen::prelude::*;
8
9
 
9
10
  #[wasm_bindgen(js_name=DataTriggerConditionError)]
@@ -47,7 +48,7 @@ impl DataTriggerConditionErrorWasm {
47
48
  #[wasm_bindgen(js_name=serialize)]
48
49
  pub fn serialize(&self) -> Result<Buffer, JsError> {
49
50
  let bytes = ConsensusError::from(self.inner.clone())
50
- .serialize()
51
+ .serialize_to_bytes()
51
52
  .map_err(JsError::from)?;
52
53
 
53
54
  Ok(Buffer::from_bytes(bytes.as_slice()))
@@ -3,6 +3,7 @@ use dpp::consensus::codes::ErrorWithCode;
3
3
  use dpp::consensus::state::data_trigger::data_trigger_execution_error::DataTriggerExecutionError;
4
4
  use dpp::consensus::ConsensusError;
5
5
  use dpp::identifier::Identifier;
6
+ use dpp::serialization::PlatformSerializable;
6
7
  use wasm_bindgen::prelude::*;
7
8
 
8
9
  #[wasm_bindgen(js_name=DataTriggerExecutionError)]
@@ -46,7 +47,7 @@ impl DataTriggerExecutionErrorWasm {
46
47
  #[wasm_bindgen(js_name=serialize)]
47
48
  pub fn serialize(&self) -> Result<Buffer, JsError> {
48
49
  let bytes = ConsensusError::from(self.inner.clone())
49
- .serialize()
50
+ .serialize_to_bytes()
50
51
  .map_err(JsError::from)?;
51
52
 
52
53
  Ok(Buffer::from_bytes(bytes.as_slice()))
@@ -4,6 +4,7 @@ use dpp::consensus::codes::ErrorWithCode;
4
4
  use dpp::consensus::state::data_trigger::data_trigger_invalid_result_error::DataTriggerInvalidResultError;
5
5
  use dpp::consensus::ConsensusError;
6
6
  use dpp::identifier::Identifier;
7
+ use dpp::serialization::PlatformSerializable;
7
8
  use wasm_bindgen::prelude::*;
8
9
 
9
10
  #[wasm_bindgen(js_name=DataTriggerInvalidResultError)]
@@ -42,7 +43,7 @@ impl DataTriggerInvalidResultErrorWasm {
42
43
  #[wasm_bindgen(js_name=serialize)]
43
44
  pub fn serialize(&self) -> Result<Buffer, JsError> {
44
45
  let bytes = ConsensusError::from(self.inner.clone())
45
- .serialize()
46
+ .serialize_to_bytes()
46
47
  .map_err(JsError::from)?;
47
48
 
48
49
  Ok(Buffer::from_bytes(bytes.as_slice()))
@@ -1,4 +1,10 @@
1
1
  mod data_contract_already_present_error;
2
- pub mod data_trigger;
2
+ mod data_contract_config_update_error;
3
+ mod data_contract_is_readonly_error;
4
+
5
+ // TODO(versioning): remove
6
+ // pub mod data_trigger;
3
7
 
4
8
  pub use data_contract_already_present_error::*;
9
+ pub use data_contract_config_update_error::*;
10
+ pub use data_contract_is_readonly_error::*;
@@ -2,6 +2,7 @@ use crate::buffer::Buffer;
2
2
  use dpp::consensus::codes::ErrorWithCode;
3
3
  use dpp::consensus::state::document::document_already_present_error::DocumentAlreadyPresentError;
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=DocumentAlreadyPresentError)]
@@ -31,13 +32,4 @@ impl DocumentAlreadyPresentErrorWasm {
31
32
  pub fn message(&self) -> String {
32
33
  self.inner.to_string()
33
34
  }
34
-
35
- #[wasm_bindgen(js_name=serialize)]
36
- pub fn serialize(&self) -> Result<Buffer, JsError> {
37
- let bytes = ConsensusError::from(self.inner.clone())
38
- .serialize()
39
- .map_err(JsError::from)?;
40
-
41
- Ok(Buffer::from_bytes(bytes.as_slice()))
42
- }
43
35
  }