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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (295) hide show
  1. package/Cargo.toml +33 -7
  2. package/README.md +11 -6
  3. package/dist/errors/patchConsensusErrors.js +94 -115
  4. package/dist/wasm/wasm_dpp.d.ts +2213 -4113
  5. package/dist/wasm/wasm_dpp.js +17748 -2639
  6. package/dist/wasm/wasm_dpp_bg.js +1 -1
  7. package/lib/dpp.ts +1 -1
  8. package/lib/errors/patchConsensusErrors.ts +94 -93
  9. package/lib/test/bootstrap.js +5 -0
  10. package/lib/test/fixtures/getDataContractFixture.js +11 -5
  11. package/lib/test/fixtures/getDocumentsFixture.js +9 -5
  12. package/lib/test/fixtures/getIdentityCreateTransitionFixture.js +14 -20
  13. package/lib/test/fixtures/getIdentityCreditTransferTransitionFixture.js +14 -0
  14. package/lib/test/fixtures/getIdentityFixture.js +21 -32
  15. package/lib/test/fixtures/getIdentityTopUpTransitionFixture.js +7 -10
  16. package/lib/test/fixtures/getIdentityUpdateTransitionFixture.js +13 -28
  17. package/lib/test/fixtures/getPrivateAndPublicKeyForSigningFixture.js +7 -9
  18. package/lib/test/fixtures/js/generateRandomIdentifier.js +1 -0
  19. package/lib/test/fixtures/js/getChainAssetLockProofFixture.js +1 -0
  20. package/lib/test/fixtures/js/getDataContractFixture.js +1 -0
  21. package/lib/test/fixtures/js/getDocumentTransitionsFixture.js +1 -0
  22. package/lib/test/fixtures/js/getDocumentsFixture.js +1 -0
  23. package/lib/test/fixtures/js/getInstantAssetLockProofFixture.js +1 -0
  24. package/lib/test/mocks/createStateRepositoryMock.js +1 -0
  25. package/lib/wasm/wasm_dpp.d.ts +2213 -4113
  26. package/package.json +6 -6
  27. package/scripts/build-wasm.sh +30 -29
  28. package/src/bls_adapter.rs +1 -1
  29. package/src/dash_platform_protocol.rs +173 -196
  30. package/src/data_contract/data_contract.rs +309 -199
  31. package/src/data_contract/data_contract_facade.rs +28 -47
  32. package/src/data_contract/errors/mod.rs +1 -0
  33. package/src/data_contract/mod.rs +2 -2
  34. package/src/data_contract/state_transition/data_contract_create_transition/mod.rs +92 -79
  35. package/src/data_contract/state_transition/data_contract_update_transition/mod.rs +84 -77
  36. package/src/data_contract_factory/data_contract_factory.rs +43 -83
  37. package/src/document/document_facade.rs +81 -76
  38. package/src/document/errors/document_already_exists_error.rs +6 -6
  39. package/src/document/errors/document_no_revision_error.rs +1 -0
  40. package/src/document/errors/document_not_provided_error.rs +6 -6
  41. package/src/document/errors/invalid_document_action_error.rs +11 -7
  42. package/src/document/errors/invalid_initial_revision_error.rs +4 -4
  43. package/src/document/errors/mismatch_owners_ids_error.rs +5 -8
  44. package/src/document/errors/mod.rs +5 -0
  45. package/src/document/errors/revision_absent_error.rs +6 -6
  46. package/src/document/errors/trying_to_delete_immutable_document_error.rs +19 -0
  47. package/src/document/errors/trying_to_replace_immutable_document_error.rs +4 -4
  48. package/src/document/extended_document.rs +76 -76
  49. package/src/document/factory.rs +140 -119
  50. package/src/document/generate_document_id.rs +2 -2
  51. package/src/document/mod.rs +164 -150
  52. package/src/document/state_transition/document_batch_transition/document_transition/document_create_transition.rs +50 -48
  53. package/src/document/state_transition/document_batch_transition/document_transition/document_delete_transition.rs +14 -14
  54. package/src/document/state_transition/document_batch_transition/document_transition/document_replace_transition.rs +50 -38
  55. package/src/document/state_transition/document_batch_transition/document_transition/mod.rs +165 -153
  56. package/src/document/state_transition/document_batch_transition/mod.rs +232 -222
  57. package/src/errors/consensus/basic/data_contract/data_contract_have_new_unique_index_error.rs +2 -9
  58. package/src/errors/consensus/basic/data_contract/data_contract_immutable_properties_update_error.rs +1 -9
  59. package/src/errors/consensus/basic/data_contract/data_contract_invalid_index_definition_update_error.rs +2 -10
  60. package/src/errors/consensus/basic/data_contract/data_contract_max_depth_exceed_error.rs +1 -9
  61. package/src/errors/consensus/basic/data_contract/data_contract_unique_indices_changed_error.rs +1 -9
  62. package/src/errors/consensus/basic/data_contract/duplicate_index_name_error.rs +1 -9
  63. package/src/errors/consensus/basic/data_contract/incompatible_data_contract_schema_error.rs +1 -9
  64. package/src/errors/consensus/basic/data_contract/incompatible_re2_pattern_error.rs +1 -9
  65. package/src/errors/consensus/basic/data_contract/index_error/duplicate_index_error.rs +1 -9
  66. package/src/errors/consensus/basic/data_contract/index_error/invalid_compound_index_error.rs +1 -9
  67. package/src/errors/consensus/basic/data_contract/index_error/invalid_index_property_type_error.rs +1 -9
  68. package/src/errors/consensus/basic/data_contract/index_error/invalid_indexed_property_constraint_error.rs +1 -9
  69. package/src/errors/consensus/basic/data_contract/index_error/system_property_index_already_present_error.rs +1 -9
  70. package/src/errors/consensus/basic/data_contract/index_error/undefined_index_property_error.rs +1 -9
  71. package/src/errors/consensus/basic/data_contract/index_error/unique_indices_limit_reached_error.rs +1 -9
  72. package/src/errors/consensus/basic/data_contract/invalid_data_contract_id_error.rs +1 -9
  73. package/src/errors/consensus/basic/data_contract/invalid_data_contract_version_error.rs +1 -9
  74. package/src/errors/consensus/basic/data_contract/invalid_json_schema_ref_error.rs +1 -9
  75. package/src/errors/consensus/basic/decode/protocol_version_parsing_error.rs +10 -7
  76. package/src/errors/consensus/basic/decode/serialized_object_parsing_error.rs +1 -9
  77. package/src/errors/consensus/basic/document/data_contract_not_present_error.rs +1 -9
  78. package/src/errors/consensus/basic/document/duplicate_document_transitions_with_ids_error.rs +1 -9
  79. package/src/errors/consensus/basic/document/duplicate_document_transitions_with_indices_error.rs +1 -9
  80. package/src/errors/consensus/basic/document/inconsistent_compound_index_data_error.rs +1 -9
  81. package/src/errors/consensus/basic/document/invalid_document_transition_action_error.rs +1 -9
  82. package/src/errors/consensus/basic/document/invalid_document_transition_id_error.rs +1 -9
  83. package/src/errors/consensus/basic/document/invalid_document_type_error.rs +1 -9
  84. package/src/errors/consensus/basic/document/missing_data_contract_id_error.rs +1 -9
  85. package/src/errors/consensus/basic/document/missing_document_transition_action_error.rs +1 -9
  86. package/src/errors/consensus/basic/document/missing_document_transition_type_error.rs +1 -9
  87. package/src/errors/consensus/basic/document/missing_document_type_error.rs +1 -9
  88. package/src/errors/consensus/basic/identity/duplicated_identity_public_key_error.rs +1 -9
  89. package/src/errors/consensus/basic/identity/duplicated_identity_public_key_id_error.rs +1 -9
  90. package/src/errors/consensus/basic/identity/identity_asset_lock_proof_locked_transaction_mismatch_error.rs +3 -11
  91. package/src/errors/consensus/basic/identity/identity_asset_lock_transaction_is_not_found_error.rs +1 -9
  92. package/src/errors/consensus/basic/identity/identity_asset_lock_transaction_out_point_already_exists_error.rs +2 -10
  93. package/src/errors/consensus/basic/identity/identity_asset_lock_transaction_output_not_found_error.rs +1 -9
  94. package/src/errors/consensus/basic/identity/identity_insufficient_balance_error.rs +1 -9
  95. package/src/errors/consensus/basic/identity/invalid_asset_lock_proof_core_chain_height_error.rs +1 -9
  96. package/src/errors/consensus/basic/identity/invalid_asset_lock_proof_transaction_height_error.rs +1 -9
  97. package/src/errors/consensus/basic/identity/invalid_asset_lock_transaction_output_return_size_error.rs +1 -9
  98. package/src/errors/consensus/basic/identity/invalid_identity_asset_lock_proof_chain_lock_validation_error.rs +1 -1
  99. package/src/errors/consensus/basic/identity/invalid_identity_asset_lock_transaction_error.rs +1 -9
  100. package/src/errors/consensus/basic/identity/invalid_identity_asset_lock_transaction_output_error.rs +1 -9
  101. package/src/errors/consensus/basic/identity/invalid_identity_credit_withdrawal_transition_core_fee_error.rs +1 -9
  102. package/src/errors/consensus/basic/identity/invalid_identity_credit_withdrawal_transition_output_script_error.rs +1 -9
  103. package/src/errors/consensus/basic/identity/invalid_identity_credit_withdrawal_transition_pooling_error.rs +1 -9
  104. package/src/errors/consensus/basic/identity/invalid_identity_key_signature_error.rs +1 -9
  105. package/src/errors/consensus/basic/identity/invalid_identity_public_key_data_error.rs +1 -9
  106. package/src/errors/consensus/basic/identity/invalid_identity_public_key_security_level_error.rs +1 -9
  107. package/src/errors/consensus/basic/identity/invalid_identity_public_key_type_error.rs +1 -9
  108. package/src/errors/consensus/basic/identity/invalid_instant_asset_lock_proof_error.rs +1 -9
  109. package/src/errors/consensus/basic/identity/invalid_instant_asset_lock_proof_signature_error.rs +1 -9
  110. package/src/errors/consensus/basic/identity/missing_master_public_key_error.rs +1 -9
  111. package/src/errors/consensus/basic/identity/missing_public_key_error.rs +1 -9
  112. package/src/errors/consensus/basic/incompatible_protocol_version_error.rs +1 -9
  113. package/src/errors/consensus/basic/invalid_identifier_error.rs +1 -9
  114. package/src/errors/consensus/basic/invalid_signature_public_key_security_level_error.rs +7 -15
  115. package/src/errors/consensus/basic/invalid_state_transition_signature_error.rs +1 -9
  116. package/src/errors/consensus/basic/json_schema_compilation_error.rs +1 -9
  117. package/src/errors/consensus/basic/json_schema_error.rs +1 -9
  118. package/src/errors/consensus/basic/mod.rs +2 -0
  119. package/src/errors/consensus/basic/public_key_is_disabled_error.rs +1 -9
  120. package/src/errors/consensus/basic/public_key_security_level_not_met_error.rs +2 -11
  121. package/src/errors/consensus/basic/state_transition/invalid_state_transition_type_error.rs +1 -9
  122. package/src/errors/consensus/basic/state_transition/missing_state_transition_type_error.rs +1 -9
  123. package/src/errors/consensus/basic/state_transition/state_transition_max_size_exceeded_error.rs +1 -9
  124. package/src/errors/consensus/basic/unsupported_protocol_version_error.rs +1 -9
  125. package/src/errors/consensus/basic/unsupported_version_error.rs +44 -0
  126. package/src/errors/consensus/basic/wrong_public_key_purpose_error.rs +1 -9
  127. package/src/errors/consensus/consensus_error.rs +44 -21
  128. package/src/errors/consensus/deserialize.rs +2 -1
  129. package/src/errors/consensus/fee/balance_is_not_enough_error.rs +5 -2
  130. package/src/errors/consensus/signature/basic_bls_error.rs +1 -9
  131. package/src/errors/consensus/signature/basic_ecdsa_error.rs +1 -9
  132. package/src/errors/consensus/signature/identity_not_found_error.rs +4 -2
  133. package/src/errors/consensus/signature/signature_should_not_be_present_error.rs +1 -9
  134. package/src/errors/consensus/state/data_contract/data_contract_already_present_error.rs +3 -2
  135. package/src/errors/consensus/state/data_contract/data_contract_config_update_error.rs +42 -0
  136. package/src/errors/consensus/state/data_contract/data_contract_is_readonly_error.rs +44 -0
  137. package/src/errors/consensus/state/data_contract/data_trigger/data_trigger_condition_error.rs +2 -1
  138. package/src/errors/consensus/state/data_contract/data_trigger/data_trigger_execution_error.rs +2 -1
  139. package/src/errors/consensus/state/data_contract/data_trigger/data_trigger_invalid_result_error.rs +2 -1
  140. package/src/errors/consensus/state/data_contract/mod.rs +7 -1
  141. package/src/errors/consensus/state/document/document_already_present_error.rs +1 -9
  142. package/src/errors/consensus/state/document/document_not_found_error.rs +1 -9
  143. package/src/errors/consensus/state/document/document_owner_id_mismatch_error.rs +1 -9
  144. package/src/errors/consensus/state/document/document_timestamp_window_violation_error.rs +1 -9
  145. package/src/errors/consensus/state/document/document_timestamps_are_equal_error.rs +34 -0
  146. package/src/errors/consensus/state/document/document_timestamps_mismatch_error.rs +1 -9
  147. package/src/errors/consensus/state/document/duplicate_unique_index_error.rs +1 -9
  148. package/src/errors/consensus/state/document/invalid_document_revision_error.rs +9 -12
  149. package/src/errors/consensus/state/document/mod.rs +2 -0
  150. package/src/errors/consensus/state/identity/duplicated_identity_public_key_id_state_error.rs +1 -9
  151. package/src/errors/consensus/state/identity/duplicated_identity_public_key_state_error.rs +1 -9
  152. package/src/errors/consensus/state/identity/identity_already_exists_error.rs +1 -9
  153. package/src/errors/consensus/state/identity/identity_public_key_disabled_at_window_violation_error.rs +1 -9
  154. package/src/errors/consensus/state/identity/identity_public_key_is_disabled_error.rs +1 -9
  155. package/src/errors/consensus/state/identity/identity_public_key_is_read_only_error.rs +1 -9
  156. package/src/errors/consensus/state/identity/invalid_identity_public_key_id_error.rs +2 -9
  157. package/src/errors/consensus/state/identity/invalid_identity_revision_error.rs +1 -9
  158. package/src/errors/consensus/state/identity/max_identity_public_key_limit_reached_error.rs +1 -9
  159. package/src/errors/consensus/value_error.rs +1 -9
  160. package/src/errors/from.rs +12 -8
  161. package/src/errors/mod.rs +7 -7
  162. package/src/errors/value_error.rs +5 -0
  163. package/src/identity/errors/asset_lock_transaction_is_not_found_error.rs +1 -2
  164. package/src/identity/factory_utils.rs +13 -13
  165. package/src/identity/identity.rs +275 -0
  166. package/src/identity/identity_facade.rs +87 -70
  167. package/src/identity/identity_factory.rs +74 -54
  168. package/src/identity/identity_public_key/mod.rs +87 -64
  169. package/src/identity/mod.rs +25 -247
  170. package/src/identity/state_transition/asset_lock_proof/chain/chain_asset_lock_proof_structure_validator.rs +0 -1
  171. package/src/identity/state_transition/asset_lock_proof/chain/mod.rs +3 -1
  172. package/src/identity/state_transition/asset_lock_proof/instant/instant_asset_lock_proof.rs +2 -2
  173. package/src/identity/state_transition/asset_lock_proof/instant/instant_asset_lock_proof_structure_validator.rs +0 -1
  174. package/src/identity/state_transition/asset_lock_proof/instant/mod.rs +3 -1
  175. package/src/identity/state_transition/asset_lock_proof/mod.rs +112 -116
  176. package/src/identity/state_transition/identity_create_transition/identity_create_transition.rs +71 -65
  177. package/src/identity/state_transition/identity_create_transition/identity_create_transition_basic_validator.rs +0 -1
  178. package/src/identity/state_transition/identity_create_transition/mod.rs +3 -3
  179. package/src/identity/state_transition/identity_create_transition/to_object.rs +10 -12
  180. package/src/identity/state_transition/identity_credit_transfer_transition/apply_identity_credit_transfer_transition.rs +31 -0
  181. package/src/identity/state_transition/identity_credit_transfer_transition/identity_credit_transfer_transition_basic_validator.rs +66 -0
  182. package/src/identity/state_transition/identity_credit_transfer_transition/identity_credit_transfer_transition_state_validator.rs +44 -0
  183. package/src/identity/state_transition/identity_credit_transfer_transition/mod.rs +8 -0
  184. package/src/identity/state_transition/identity_credit_transfer_transition/to_object.rs +49 -0
  185. package/src/identity/state_transition/identity_credit_transfer_transition/transition.rs +344 -0
  186. package/src/identity/state_transition/identity_public_key_transitions.rs +89 -75
  187. package/src/identity/state_transition/identity_topup_transition/identity_topup_transition.rs +67 -62
  188. package/src/identity/state_transition/identity_topup_transition/identity_topup_transition_basic_validator.rs +0 -2
  189. package/src/identity/state_transition/identity_topup_transition/mod.rs +3 -3
  190. package/src/identity/state_transition/identity_topup_transition/to_object.rs +8 -12
  191. package/src/identity/state_transition/identity_update_transition/identity_update_public_keys_validator.rs +2 -2
  192. package/src/identity/state_transition/identity_update_transition/identity_update_transition.rs +99 -104
  193. package/src/identity/state_transition/identity_update_transition/mod.rs +4 -4
  194. package/src/identity/state_transition/identity_update_transition/to_object.rs +15 -19
  195. package/src/identity/state_transition/mod.rs +5 -2
  196. package/src/identity/state_transition/transition_types.rs +34 -0
  197. package/src/identity/state_transition/validate_public_key_signatures.rs +2 -2
  198. package/src/lib.rs +10 -11
  199. package/src/metadata.rs +3 -3
  200. package/src/protocol_version.rs +7 -0
  201. package/src/state_transition/conversion.rs +11 -1
  202. package/src/state_transition/errors/invalid_state_transition_error.rs +12 -1
  203. package/src/state_transition/fee/operations/pre_calculated_operation.rs +2 -1
  204. package/src/state_transition/mod.rs +137 -139
  205. package/src/state_transition/state_transition_facade.rs +11 -11
  206. package/src/state_transition/state_transition_factory.rs +142 -153
  207. package/src/state_transition/validation/state_transition_fee_validator.rs +1 -1
  208. package/src/state_transition/validation/validate_state_transition_identity_signature.rs +28 -10
  209. package/src/state_transition/validation/validate_state_transition_key_signature.rs +1 -1
  210. package/src/utils.rs +7 -8
  211. package/src/validation/validation_result.rs +1 -0
  212. package/test/integration/dataContract/DataContractFacade.spec.js +25 -32
  213. package/test/integration/dataContract/stateTransition/DataContractCreateTransition/validation/basic/validateDataContractCreateTransitionBasicFactory.spec.js +6 -6
  214. package/test/integration/dataContract/stateTransition/DataContractUpdateTransition/validation/basic/validateDataContractUpdateTransitionBasicFactory.spec.js +11 -10
  215. package/test/integration/dataContract/validation/validateDataContractFactory.spec.js +3 -3
  216. package/test/integration/document/Document.spec.js +3 -3
  217. package/test/integration/document/DocumentFacade.spec.js +39 -38
  218. package/test/integration/document/stateTransition/DocumentsBatchTransition/DocumentBatchTransition.spec.js +6 -7
  219. package/test/integration/document/stateTransition/DocumentsBatchTransition/validation/basic/validateDocumentsBatchTransitionBasicFactory.spec.js +15 -15
  220. package/test/integration/document/stateTransition/DocumentsBatchTransition/validation/state/executeDataTriggersFactory.spec.js +2 -2
  221. package/test/integration/document/validation/validateDocumentFactory.spec.js +3 -3
  222. package/test/integration/identity/IdentityFacade.spec.js +33 -62
  223. package/test/integration/identity/stateTransition/IdentityCreateTransition/validation/basic/validateIdentityCreateTransitionBasicFactory.spec.js +6 -8
  224. package/test/integration/identity/stateTransition/IdentityTopUpTransition/validation/basic/validateIdentityTopUpTransitionBasicFactory.spec.js +4 -7
  225. package/test/integration/identity/stateTransition/IdentityUpdateTransition/validation/basic/validateIdentityUpdateTransitionBasicFactory.spec.js +1 -1
  226. package/test/integration/identity/stateTransition/IdentityUpdateTransition/validation/state/validateIdentityUpdateTransitionStateFactory.spec.js +21 -24
  227. package/test/integration/identity/stateTransition/IdentityUpdateTransition/validation/state/validatePublicKeysState.spec.js +2 -2
  228. package/test/integration/identity/stateTransition/assetLockProof/chain/validateChainAssetLockProofStructureFactory.spec.js +4 -4
  229. package/test/integration/identity/stateTransition/assetLockProof/fetchAssetLockTransactionOutputFactory.spec.js +7 -10
  230. package/test/integration/identity/stateTransition/assetLockProof/instant/validateInstantAssetLockProofStructureFactory.spec.js +4 -5
  231. package/test/integration/identity/stateTransition/assetLockProof/validateAssetLockTransactionFactory.spec.js +6 -6
  232. package/test/integration/identity/stateTransition/validatePublicKeySignaturesFactory.spec.js +3 -7
  233. package/test/integration/identity/validation/validateIdentityFactory.spec.js +7 -6
  234. package/test/integration/identity/validation/validatePublicKeysFactory.spec.js +5 -25
  235. package/test/integration/stateTransition/StateTransitionFacade.spec.js +45 -58
  236. package/test/integration/util/generateTemporaryEcdsaPrivateKey.spec.js +1 -1
  237. package/test/unit/DashPlatformProtocol.spec.js +10 -25
  238. package/test/unit/dataContract/DataContract.spec.js +119 -148
  239. package/test/unit/dataContract/DataContractFactory.spec.js +42 -31
  240. package/test/unit/dataContract/createDataContract.spec.js +6 -6
  241. package/test/unit/dataContract/generateDataContractId.spec.js +1 -1
  242. package/test/unit/dataContract/stateTransition/DataContractCreateTransition/DataContractCreateTransition.spec.js +34 -26
  243. package/test/unit/dataContract/stateTransition/DataContractCreateTransition/applyDataContractCreateTransitionFactory.spec.js +7 -9
  244. package/test/unit/dataContract/stateTransition/DataContractCreateTransition/validation/state/validateDataContractCreateTransitionStateFactory.spec.js +10 -9
  245. package/test/unit/dataContract/stateTransition/DataContractUpdateTransition/DataContractUpdateTransition.spec.js +28 -19
  246. package/test/unit/dataContract/stateTransition/DataContractUpdateTransition/applyDataContractUpdateTransitionFactory.spec.js +7 -7
  247. package/test/unit/dataContract/stateTransition/DataContractUpdateTransition/validation/basic/validateIndicesAreBackwardCompatible.spec.js +5 -5
  248. package/test/unit/dataContract/stateTransition/DataContractUpdateTransition/validation/state/validateDataContractUpdateTransitionStateFactory.spec.js +11 -10
  249. package/test/unit/dataContract/validation/validateDataContractPatterns.spec.js +7 -7
  250. package/test/unit/dataTrigger/dpnsTriggers/createDomainDataTrigger.spec.js +1 -1
  251. package/test/unit/document/Document.spec.js +31 -20
  252. package/test/unit/document/DocumentFactory.spec.js +45 -110
  253. package/test/unit/document/fetchAndValidateDataContractFactory.spec.js +1 -1
  254. package/test/unit/document/stateTransition/DocumetsBatchTransition/DocumentsBatchTransition.spec.js +6 -7
  255. package/test/unit/document/stateTransition/DocumetsBatchTransition/applyDocumentsBatchTransitionFactory.spec.js +11 -12
  256. package/test/unit/document/stateTransition/DocumetsBatchTransition/documentTransition/DocumentCreateTransition.spec.js +1 -1
  257. package/test/unit/document/stateTransition/DocumetsBatchTransition/validation/basic/findDuplicatesById.spec.js +1 -1
  258. package/test/unit/document/stateTransition/DocumetsBatchTransition/validation/basic/findDuplicatesByIndices.spec.js +1 -1
  259. package/test/unit/document/stateTransition/DocumetsBatchTransition/validation/basic/validatePartialCompoundIndices.spec.js +1 -1
  260. package/test/unit/document/stateTransition/DocumetsBatchTransition/validation/state/fetchDocumentsFactory.spec.js +1 -1
  261. package/test/unit/document/stateTransition/DocumetsBatchTransition/validation/state/validateDocumentsBatchTransitionStateFactory.spec.js +9 -9
  262. package/test/unit/document/stateTransition/DocumetsBatchTransition/validation/state/validateDocumentsUniquenessByIndicesFactory.spec.js +1 -1
  263. package/test/unit/identity/Identity.spec.js +46 -81
  264. package/test/unit/identity/IdentityFactory.spec.js +61 -75
  265. package/test/unit/identity/IdentityPublicKey.spec.js +34 -48
  266. package/test/unit/identity/stateTransition/IdentityCreateTransition/IdentityCreateTransition.spec.js +30 -63
  267. package/test/unit/identity/stateTransition/IdentityCreateTransition/applyIdentityCreateTransitionFactory.spec.js +9 -15
  268. package/test/unit/identity/stateTransition/IdentityCreateTransition/validation/state/validateIdentityCreateTransitionStateFactory.spec.js +5 -9
  269. package/test/unit/identity/stateTransition/IdentityTopUpTransition/IdentityTopUpTransition.spec.js +13 -35
  270. package/test/unit/identity/stateTransition/IdentityTopUpTransition/applyIdentityTopUpTransitionFactory.spec.js +9 -13
  271. package/test/unit/identity/stateTransition/IdentityTopUpTransition/validation/state/validateIdentityTopUpTransitionStateFactory.spec.js +5 -9
  272. package/test/unit/identity/stateTransition/IdentityUpdateTransition/IdentityUpdateTransition.spec.js +24 -46
  273. package/test/unit/identity/stateTransition/IdentityUpdateTransition/applyIdentityUpdateTransitionFactory.spec.js +4 -4
  274. package/test/unit/identity/stateTransition/assetLockProof/fetchAssetLockPublicKeyHashFactory.spec.js +1 -1
  275. package/test/unit/identity/stateTransition/identityCreditTransferTransition/identityCreditTransferTransition.spec.js +130 -0
  276. package/test/unit/stateTransition/StateTransitionExecutionContext.spec.js +1 -1
  277. package/test/unit/stateTransition/StateTransitionFactory.spec.js +16 -22
  278. package/test/unit/stateTransition/createStateTransitionFactory.spec.js +43 -21
  279. package/test/unit/stateTransition/validation/validateStateTransitionBasicFactory.spec.js +3 -3
  280. package/test/unit/stateTransition/validation/validateStateTransitionFeeFactory.spec.js +5 -17
  281. package/test/unit/stateTransition/validation/validateStateTransitionIdentitySignatureFactory.spec.js +9 -5
  282. package/test/unit/stateTransition/validation/validateStateTransitionKeySignatureFactory.spec.js +8 -14
  283. package/test/unit/stateTransition/validation/validateStateTransitionStateFactory.spec.js +1 -1
  284. package/test/unit/version/validateProtocolVersionFactory.spec.js +1 -1
  285. package/test-d/index.test-d.ts +2 -2
  286. package/src/data_contract/state_transition/data_contract_create_transition/apply.rs +0 -45
  287. package/src/data_contract/state_transition/data_contract_update_transition/apply.rs +0 -49
  288. package/src/decode_protocol_entity.rs +0 -25
  289. package/src/document/state_transition/document_batch_transition/apply_document_batch_transition.rs +0 -25
  290. package/test/integration/ajv/keywords/byteArray/addByteArrayKeyword.spec.js +0 -148
  291. package/test/integration/util/generateEntropy.spec.js +0 -17
  292. package/test/integration/util/serializer.spec.js +0 -24
  293. package/test/unit/decodeProtocolEntityFactory.spec.js +0 -69
  294. package/test/unit/identity/errors/InvalidIdentityError.spec.js +0 -46
  295. package/test/unit/stateTransition/errors/InvalidStateTransitionError.spec.js +0 -51
@@ -2,6 +2,7 @@ use crate::buffer::Buffer;
2
2
  use dpp::consensus::codes::ErrorWithCode;
3
3
  use dpp::consensus::state::document::document_not_found_error::DocumentNotFoundError;
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=DocumentNotFoundError)]
@@ -31,13 +32,4 @@ impl DocumentNotFoundErrorWasm {
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
  }
@@ -2,6 +2,7 @@ use crate::buffer::Buffer;
2
2
  use dpp::consensus::codes::ErrorWithCode;
3
3
  use dpp::consensus::state::document::document_owner_id_mismatch_error::DocumentOwnerIdMismatchError;
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=DocumentOwnerIdMismatchError)]
@@ -41,13 +42,4 @@ impl DocumentOwnerIdMismatchErrorWasm {
41
42
  pub fn message(&self) -> String {
42
43
  self.inner.to_string()
43
44
  }
44
-
45
- #[wasm_bindgen(js_name=serialize)]
46
- pub fn serialize(&self) -> Result<Buffer, JsError> {
47
- let bytes = ConsensusError::from(self.inner.clone())
48
- .serialize()
49
- .map_err(JsError::from)?;
50
-
51
- Ok(Buffer::from_bytes(bytes.as_slice()))
52
- }
53
45
  }
@@ -2,6 +2,7 @@ use crate::buffer::Buffer;
2
2
  use dpp::consensus::codes::ErrorWithCode;
3
3
  use dpp::consensus::state::document::document_timestamp_window_violation_error::DocumentTimestampWindowViolationError;
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=DocumentTimestampWindowViolationError)]
@@ -57,13 +58,4 @@ impl DocumentTimestampWindowViolationErrorWasm {
57
58
  pub fn message(&self) -> String {
58
59
  self.inner.to_string()
59
60
  }
60
-
61
- #[wasm_bindgen(js_name=serialize)]
62
- pub fn serialize(&self) -> Result<Buffer, JsError> {
63
- let bytes = ConsensusError::from(self.inner.clone())
64
- .serialize()
65
- .map_err(JsError::from)?;
66
-
67
- Ok(Buffer::from_bytes(bytes.as_slice()))
68
- }
69
61
  }
@@ -0,0 +1,34 @@
1
+ use crate::buffer::Buffer;
2
+ use dpp::consensus::codes::ErrorWithCode;
3
+ use dpp::consensus::state::document::document_timestamps_are_equal_error::DocumentTimestampsAreEqualError;
4
+ use dpp::consensus::ConsensusError;
5
+ use dpp::serialization::PlatformSerializable;
6
+ use wasm_bindgen::prelude::*;
7
+
8
+ #[wasm_bindgen(js_name=DocumentTimestampsAreEqualError)]
9
+ pub struct DocumentTimestampsAreEqualErrorWasm {
10
+ inner: DocumentTimestampsAreEqualError,
11
+ }
12
+
13
+ impl From<&DocumentTimestampsAreEqualError> for DocumentTimestampsAreEqualErrorWasm {
14
+ fn from(e: &DocumentTimestampsAreEqualError) -> Self {
15
+ Self { inner: e.clone() }
16
+ }
17
+ }
18
+ #[wasm_bindgen(js_class=DocumentTimestampsAreEqualError)]
19
+ impl DocumentTimestampsAreEqualErrorWasm {
20
+ #[wasm_bindgen(js_name=getDocumentId)]
21
+ pub fn document_id(&self) -> Buffer {
22
+ Buffer::from_bytes(self.inner.document_id().as_bytes())
23
+ }
24
+
25
+ #[wasm_bindgen(js_name=getCode)]
26
+ pub fn get_code(&self) -> u32 {
27
+ ConsensusError::from(self.inner.clone()).code()
28
+ }
29
+
30
+ #[wasm_bindgen(getter)]
31
+ pub fn message(&self) -> String {
32
+ self.inner.to_string()
33
+ }
34
+ }
@@ -2,6 +2,7 @@ use crate::buffer::Buffer;
2
2
  use dpp::consensus::codes::ErrorWithCode;
3
3
  use dpp::consensus::state::document::document_timestamps_mismatch_error::DocumentTimestampsMismatchError;
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=DocumentTimestampsMismatchError)]
@@ -30,13 +31,4 @@ impl DocumentTimestampsMismatchErrorWasm {
30
31
  pub fn message(&self) -> String {
31
32
  self.inner.to_string()
32
33
  }
33
-
34
- #[wasm_bindgen(js_name=serialize)]
35
- pub fn serialize(&self) -> Result<Buffer, JsError> {
36
- let bytes = ConsensusError::from(self.inner.clone())
37
- .serialize()
38
- .map_err(JsError::from)?;
39
-
40
- Ok(Buffer::from_bytes(bytes.as_slice()))
41
- }
42
34
  }
@@ -2,6 +2,7 @@ use crate::buffer::Buffer;
2
2
  use dpp::consensus::codes::ErrorWithCode;
3
3
  use dpp::consensus::state::document::duplicate_unique_index_error::DuplicateUniqueIndexError;
4
4
  use dpp::consensus::ConsensusError;
5
+ use dpp::serialization::PlatformSerializable;
5
6
  use js_sys::JsString;
6
7
  use wasm_bindgen::prelude::*;
7
8
 
@@ -41,13 +42,4 @@ impl DuplicateUniqueIndexErrorWasm {
41
42
  pub fn message(&self) -> String {
42
43
  self.inner.to_string()
43
44
  }
44
-
45
- #[wasm_bindgen(js_name=serialize)]
46
- pub fn serialize(&self) -> Result<Buffer, JsError> {
47
- let bytes = ConsensusError::from(self.inner.clone())
48
- .serialize()
49
- .map_err(JsError::from)?;
50
-
51
- Ok(Buffer::from_bytes(bytes.as_slice()))
52
- }
53
45
  }
@@ -3,6 +3,7 @@ use dpp::consensus::codes::ErrorWithCode;
3
3
  use dpp::consensus::state::document::invalid_document_revision_error::InvalidDocumentRevisionError;
4
4
  use dpp::consensus::ConsensusError;
5
5
  use dpp::prelude::Revision;
6
+ use dpp::serialization::PlatformSerializable;
6
7
  use wasm_bindgen::prelude::*;
7
8
 
8
9
  #[wasm_bindgen(js_name=InvalidDocumentRevisionError)]
@@ -23,9 +24,14 @@ impl InvalidDocumentRevisionErrorWasm {
23
24
  Buffer::from_bytes(self.inner.document_id().as_bytes())
24
25
  }
25
26
 
26
- #[wasm_bindgen(js_name=getCurrentRevision)]
27
- pub fn current_revision(&self) -> Option<Revision> {
28
- *self.inner.current_revision()
27
+ #[wasm_bindgen(js_name=getPreviousRevision)]
28
+ pub fn previous_revision(&self) -> Option<Revision> {
29
+ *self.inner.previous_revision()
30
+ }
31
+
32
+ #[wasm_bindgen(js_name=getDesiredRevision)]
33
+ pub fn desired_revision(&self) -> Revision {
34
+ *self.inner.desired_revision()
29
35
  }
30
36
 
31
37
  #[wasm_bindgen(js_name=getCode)]
@@ -37,13 +43,4 @@ impl InvalidDocumentRevisionErrorWasm {
37
43
  pub fn message(&self) -> String {
38
44
  self.inner.to_string()
39
45
  }
40
-
41
- #[wasm_bindgen(js_name=serialize)]
42
- pub fn serialize(&self) -> Result<Buffer, JsError> {
43
- let bytes = ConsensusError::from(self.inner.clone())
44
- .serialize()
45
- .map_err(JsError::from)?;
46
-
47
- Ok(Buffer::from_bytes(bytes.as_slice()))
48
- }
49
46
  }
@@ -2,6 +2,7 @@ mod document_already_present_error;
2
2
  mod document_not_found_error;
3
3
  mod document_owner_id_mismatch_error;
4
4
  mod document_timestamp_window_violation_error;
5
+ mod document_timestamps_are_equal_error;
5
6
  mod document_timestamps_mismatch_error;
6
7
  mod duplicate_unique_index_error;
7
8
  mod invalid_document_revision_error;
@@ -10,6 +11,7 @@ pub use document_already_present_error::*;
10
11
  pub use document_not_found_error::*;
11
12
  pub use document_owner_id_mismatch_error::*;
12
13
  pub use document_timestamp_window_violation_error::*;
14
+ pub use document_timestamps_are_equal_error::*;
13
15
  pub use document_timestamps_mismatch_error::*;
14
16
  pub use duplicate_unique_index_error::*;
15
17
  pub use invalid_document_revision_error::*;
@@ -2,6 +2,7 @@ use crate::buffer::Buffer;
2
2
  use dpp::consensus::codes::ErrorWithCode;
3
3
  use dpp::consensus::state::identity::duplicated_identity_public_key_id_state_error::DuplicatedIdentityPublicKeyIdStateError;
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=DuplicatedIdentityPublicKeyIdStateError)]
@@ -38,13 +39,4 @@ impl DuplicatedIdentityPublicKeyIdStateErrorWasm {
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::codes::ErrorWithCode;
3
3
  use dpp::consensus::state::identity::duplicated_identity_public_key_state_error::DuplicatedIdentityPublicKeyStateError;
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=DuplicatedIdentityPublicKeyStateError)]
@@ -35,13 +36,4 @@ impl DuplicatedIdentityPublicKeyStateErrorWasm {
35
36
  pub fn message(&self) -> String {
36
37
  self.inner.to_string()
37
38
  }
38
-
39
- #[wasm_bindgen(js_name=serialize)]
40
- pub fn serialize(&self) -> Result<Buffer, JsError> {
41
- let bytes = ConsensusError::from(self.inner.clone())
42
- .serialize()
43
- .map_err(JsError::from)?;
44
-
45
- Ok(Buffer::from_bytes(bytes.as_slice()))
46
- }
47
39
  }
@@ -2,6 +2,7 @@ use crate::buffer::Buffer;
2
2
  use dpp::consensus::codes::ErrorWithCode;
3
3
  use dpp::consensus::state::identity::IdentityAlreadyExistsError;
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=IdentityAlreadyExistsError)]
@@ -31,13 +32,4 @@ impl IdentityAlreadyExistsErrorWasm {
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
  }
@@ -2,6 +2,7 @@ use crate::buffer::Buffer;
2
2
  use dpp::consensus::codes::ErrorWithCode;
3
3
  use dpp::consensus::state::identity::identity_public_key_disabled_at_window_violation_error::IdentityPublicKeyDisabledAtWindowViolationError;
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=IdentityPublicKeyDisabledAtWindowViolationError)]
@@ -46,13 +47,4 @@ impl IdentityPublicKeyDisabledAtWindowViolationErrorWasm {
46
47
  pub fn message(&self) -> String {
47
48
  self.inner.to_string()
48
49
  }
49
-
50
- #[wasm_bindgen(js_name=serialize)]
51
- pub fn serialize(&self) -> Result<Buffer, JsError> {
52
- let bytes = ConsensusError::from(self.inner.clone())
53
- .serialize()
54
- .map_err(JsError::from)?;
55
-
56
- Ok(Buffer::from_bytes(bytes.as_slice()))
57
- }
58
50
  }
@@ -3,6 +3,7 @@ use dpp::consensus::codes::ErrorWithCode;
3
3
  use dpp::consensus::state::identity::identity_public_key_is_disabled_error::IdentityPublicKeyIsDisabledError;
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=IdentityPublicKeyIsDisabledError)]
@@ -32,13 +33,4 @@ impl IdentityPublicKeyIsDisabledErrorWasm {
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
  }
@@ -3,6 +3,7 @@ use dpp::consensus::codes::ErrorWithCode;
3
3
  use dpp::consensus::state::identity::identity_public_key_is_read_only_error::IdentityPublicKeyIsReadOnlyError;
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=IdentityPublicKeyIsReadOnlyError)]
@@ -37,13 +38,4 @@ impl IdentityPublicKeyIsReadOnlyErrorWasm {
37
38
  pub fn message(&self) -> String {
38
39
  self.inner.to_string()
39
40
  }
40
-
41
- #[wasm_bindgen(js_name=serialize)]
42
- pub fn serialize(&self) -> Result<Buffer, JsError> {
43
- let bytes = ConsensusError::from(self.inner.clone())
44
- .serialize()
45
- .map_err(JsError::from)?;
46
-
47
- Ok(Buffer::from_bytes(bytes.as_slice()))
48
- }
49
41
  }
@@ -3,6 +3,8 @@ use dpp::consensus::codes::ErrorWithCode;
3
3
  use dpp::consensus::state::identity::invalid_identity_public_key_id_error::InvalidIdentityPublicKeyIdError;
4
4
  use dpp::consensus::ConsensusError;
5
5
  use dpp::identity::KeyID;
6
+ use dpp::serialization::{PlatformSerializable, PlatformSerializableWithPlatformVersion};
7
+ use dpp::version::PlatformVersion;
6
8
  use wasm_bindgen::prelude::*;
7
9
 
8
10
  #[wasm_bindgen(js_name=InvalidIdentityPublicKeyIdError)]
@@ -32,13 +34,4 @@ impl InvalidIdentityPublicKeyIdErrorWasm {
32
34
  pub fn message(&self) -> String {
33
35
  self.inner.to_string()
34
36
  }
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
37
  }
@@ -2,6 +2,7 @@ use crate::buffer::Buffer;
2
2
  use dpp::consensus::codes::ErrorWithCode;
3
3
  use dpp::consensus::state::identity::invalid_identity_revision_error::InvalidIdentityRevisionError;
4
4
  use dpp::consensus::ConsensusError;
5
+ use dpp::serialization::PlatformSerializable;
5
6
  use js_sys::Number;
6
7
  use wasm_bindgen::prelude::*;
7
8
 
@@ -38,13 +39,4 @@ impl InvalidIdentityRevisionErrorWasm {
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::codes::ErrorWithCode;
3
3
  use dpp::consensus::state::identity::max_identity_public_key_limit_reached_error::MaxIdentityPublicKeyLimitReachedError;
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=MaxIdentityPublicKeyLimitReachedError)]
@@ -32,13 +33,4 @@ impl MaxIdentityPublicKeyLimitReachedErrorWasm {
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
  }
@@ -2,6 +2,7 @@ use crate::buffer::Buffer;
2
2
  use dpp::consensus::basic::value_error::ValueError;
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=ValueError, inspectable)]
@@ -32,13 +33,4 @@ impl ValueErrorWasm {
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
  }
@@ -5,6 +5,7 @@ use dpp::errors::ProtocolError;
5
5
 
6
6
  use crate::data_contract::errors::from_data_contract_to_js_error;
7
7
  use crate::document::errors::from_document_to_js_error;
8
+ // use crate::document::errors::from_document_to_js_error;
8
9
  use crate::errors::value_error::PlatformValueErrorWasm;
9
10
 
10
11
  use super::data_contract_not_present_error::DataContractNotPresentNotConsensusErrorWasm;
@@ -12,19 +13,20 @@ use crate::errors::consensus::consensus_error::from_consensus_error;
12
13
 
13
14
  pub fn from_dpp_err(pe: ProtocolError) -> JsValue {
14
15
  match pe {
16
+ // TODO(versioning): restore this
15
17
  ProtocolError::ConsensusError(consensus_error) => from_consensus_error(*consensus_error),
16
18
  ProtocolError::DataContractError(e) => from_data_contract_to_js_error(e),
17
19
 
18
20
  ProtocolError::Document(e) => from_document_to_js_error(*e),
19
21
 
20
- ProtocolError::ParsingJsonError(err) => format!(
21
- "Parsing error at line {}, column {}: {}",
22
- err.line(),
23
- err.column(),
24
- err
25
- )
26
- .into(),
27
-
22
+ // ProtocolError::ParsingJsonError(err) => format!(
23
+ // "Parsing error at line {}, column {}: {}",
24
+ // err.line(),
25
+ // err.column(),
26
+ // err
27
+ // )
28
+ // .into(),
29
+ //
28
30
  ProtocolError::DataContractNotPresentError(err) => {
29
31
  DataContractNotPresentNotConsensusErrorWasm::new(err.data_contract_id()).into()
30
32
  }
@@ -38,5 +40,7 @@ pub fn from_dpp_init_error(e: DashPlatformProtocolInitError) -> JsValue {
38
40
  DashPlatformProtocolInitError::SchemaDeserializationError(e) => e.to_string().into(),
39
41
  DashPlatformProtocolInitError::ValidationError(e) => e.to_string().into(),
40
42
  DashPlatformProtocolInitError::InvalidSchemaError(e) => e.to_string().into(),
43
+ // TODO(versioning): add rest erros
44
+ _ => JsValue::from_str(&format!("Error conversion not implemented: {e:#}",)),
41
45
  }
42
46
  }
package/src/errors/mod.rs CHANGED
@@ -6,12 +6,12 @@ pub mod consensus;
6
6
  mod from;
7
7
  mod js_conversion;
8
8
  pub mod protocol_error;
9
- mod public_key_validation_error;
10
-
11
- pub use public_key_validation_error::*;
12
-
13
- mod compatible_protocol_version_is_not_defined_error;
9
+ // mod public_key_validation_error;
10
+ //
11
+ // pub use public_key_validation_error::*;
12
+ //
13
+ // mod compatible_protocol_version_is_not_defined_error;
14
14
  pub mod data_contract_not_present_error;
15
- pub mod dpp_error;
15
+ // pub mod dpp_error;
16
16
  pub mod value_error;
17
- pub use compatible_protocol_version_is_not_defined_error::*;
17
+ // pub use compatible_protocol_version_is_not_defined_error::*;
@@ -29,4 +29,9 @@ impl PlatformValueErrorWasm {
29
29
  pub fn to_string(&self) -> String {
30
30
  format!("PlatformValueError: {}", self.message)
31
31
  }
32
+
33
+ #[wasm_bindgen(js_name=valueOf)]
34
+ pub fn value_of(&self) -> String {
35
+ self.to_string()
36
+ }
32
37
  }
@@ -1,4 +1,3 @@
1
- use dpp::dashcore::hashes::hex::ToHex;
2
1
  use dpp::identity::errors::AssetLockTransactionIsNotFoundError;
3
2
  use wasm_bindgen::prelude::*;
4
3
 
@@ -15,6 +14,6 @@ impl From<&AssetLockTransactionIsNotFoundError> for AssetLockTransactionIsNotFou
15
14
  impl AssetLockTransactionIsNotFoundErrorWasm {
16
15
  #[wasm_bindgen(js_name=getTransactionId)]
17
16
  pub fn transaction_id(&self) -> JsValue {
18
- self.0.transaction_id().to_hex().into()
17
+ hex::encode(self.0.transaction_id()).into()
19
18
  }
20
19
  }
@@ -1,32 +1,32 @@
1
1
  use crate::errors::RustConversionError;
2
- use crate::identity::identity_public_key_transitions::IdentityPublicKeyWithWitnessWasm;
2
+ use crate::identity::state_transition::create_asset_lock_proof_from_wasm_instance;
3
+ use crate::identity::state_transition::identity_public_key_transitions::IdentityPublicKeyWithWitnessWasm;
4
+ use crate::identity::IdentityPublicKeyWasm;
3
5
  use crate::utils::{generic_of_js_val, to_vec_of_platform_values};
4
- use crate::{create_asset_lock_proof_from_wasm_instance, IdentityPublicKeyWasm};
6
+ use dpp::identity::identity_public_key::accessors::v0::IdentityPublicKeyGettersV0;
5
7
  use dpp::identity::state_transition::asset_lock_proof::AssetLockProof;
6
- use dpp::identity::state_transition::identity_public_key_transitions::IdentityPublicKeyInCreationWithWitness;
7
8
  use dpp::identity::{IdentityPublicKey, KeyID};
9
+ use dpp::serialization::ValueConvertible;
10
+ use dpp::state_transition::public_key_in_creation::IdentityPublicKeyInCreation;
8
11
  use std::collections::BTreeMap;
9
12
  use wasm_bindgen::__rt::Ref;
10
13
  use wasm_bindgen::{JsCast, JsValue};
11
14
 
12
- pub fn parse_create_args(
13
- asset_lock_proof: JsValue,
15
+ pub fn parse_public_keys(
14
16
  public_keys: js_sys::Array,
15
- ) -> Result<(AssetLockProof, BTreeMap<KeyID, IdentityPublicKey>), JsValue> {
16
- let asset_lock_proof = create_asset_lock_proof_from_wasm_instance(&asset_lock_proof)?;
17
-
17
+ ) -> Result<BTreeMap<KeyID, IdentityPublicKey>, JsValue> {
18
18
  let raw_public_keys = to_vec_of_platform_values(public_keys.iter())?;
19
19
 
20
20
  let public_keys = raw_public_keys
21
21
  .into_iter()
22
- .map(|v| IdentityPublicKey::from_value(v).map(|key| (key.id, key)))
22
+ .map(|v| IdentityPublicKey::from_object(v).map(|key| (key.id(), key)))
23
23
  .collect::<Result<_, _>>()
24
24
  .map_err(|e| format!("converting to collection of IdentityPublicKeys failed: {e:#}"))?;
25
25
 
26
- Ok((asset_lock_proof, public_keys))
26
+ Ok(public_keys)
27
27
  }
28
28
 
29
- type AddPublicKeys = Option<Vec<IdentityPublicKeyInCreationWithWitness>>;
29
+ type AddPublicKeys = Option<Vec<IdentityPublicKeyInCreation>>;
30
30
  type DisablePublicKeys = Option<Vec<KeyID>>;
31
31
 
32
32
  pub fn parse_create_identity_update_transition_keys(
@@ -44,7 +44,7 @@ pub fn parse_create_identity_update_transition_keys(
44
44
  .to_js_value()
45
45
  })?;
46
46
 
47
- let keys: Vec<IdentityPublicKeyInCreationWithWitness> = add_public_keys_array
47
+ let keys: Vec<IdentityPublicKeyInCreation> = add_public_keys_array
48
48
  .iter()
49
49
  .map(|key| {
50
50
  let public_key: Ref<IdentityPublicKeyWithWitnessWasm> =
@@ -55,7 +55,7 @@ pub fn parse_create_identity_update_transition_keys(
55
55
 
56
56
  Ok(public_key.clone().into())
57
57
  })
58
- .collect::<Result<Vec<IdentityPublicKeyInCreationWithWitness>, JsValue>>()?;
58
+ .collect::<Result<Vec<IdentityPublicKeyInCreation>, JsValue>>()?;
59
59
 
60
60
  add_public_keys = Some(keys)
61
61
  }