@dashevo/wasm-dpp 0.25.0-dev.15 → 0.25.0-dev.17

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 (271) hide show
  1. package/Cargo.toml +27 -3
  2. package/dist/errors/patchConsensusErrors.js +94 -115
  3. package/dist/wasm/wasm_dpp.d.ts +2124 -4081
  4. package/dist/wasm/wasm_dpp.js +17746 -2656
  5. package/dist/wasm/wasm_dpp_bg.js +1 -1
  6. package/lib/dpp.ts +1 -1
  7. package/lib/errors/patchConsensusErrors.ts +94 -93
  8. package/lib/test/bootstrap.js +5 -0
  9. package/lib/test/fixtures/getDataContractFixture.js +11 -5
  10. package/lib/test/fixtures/getDocumentsFixture.js +4 -4
  11. package/lib/test/fixtures/getIdentityCreateTransitionFixture.js +13 -19
  12. package/lib/test/fixtures/getIdentityCreditTransferTransitionFixture.js +14 -0
  13. package/lib/test/fixtures/getIdentityFixture.js +21 -32
  14. package/lib/test/fixtures/getIdentityTopUpTransitionFixture.js +7 -10
  15. package/lib/test/fixtures/getIdentityUpdateTransitionFixture.js +13 -28
  16. package/lib/test/fixtures/getPrivateAndPublicKeyForSigningFixture.js +7 -9
  17. package/lib/wasm/wasm_dpp.d.ts +2124 -4081
  18. package/package.json +5 -5
  19. package/scripts/build-wasm.sh +6 -9
  20. package/src/dash_platform_protocol.rs +172 -195
  21. package/src/data_contract/data_contract.rs +264 -200
  22. package/src/data_contract/data_contract_facade.rs +24 -46
  23. package/src/data_contract/errors/mod.rs +1 -0
  24. package/src/data_contract/mod.rs +2 -2
  25. package/src/data_contract/state_transition/data_contract_create_transition/mod.rs +91 -79
  26. package/src/data_contract/state_transition/data_contract_update_transition/mod.rs +84 -73
  27. package/src/data_contract_factory/data_contract_factory.rs +39 -83
  28. package/src/document/document_facade.rs +74 -81
  29. package/src/document/errors/document_already_exists_error.rs +6 -6
  30. package/src/document/errors/document_no_revision_error.rs +1 -0
  31. package/src/document/errors/document_not_provided_error.rs +6 -6
  32. package/src/document/errors/invalid_document_action_error.rs +11 -7
  33. package/src/document/errors/invalid_initial_revision_error.rs +4 -4
  34. package/src/document/errors/mismatch_owners_ids_error.rs +5 -8
  35. package/src/document/errors/mod.rs +5 -0
  36. package/src/document/errors/revision_absent_error.rs +6 -6
  37. package/src/document/errors/trying_to_delete_immutable_document_error.rs +19 -0
  38. package/src/document/errors/trying_to_replace_immutable_document_error.rs +4 -4
  39. package/src/document/extended_document.rs +76 -76
  40. package/src/document/factory.rs +127 -123
  41. package/src/document/generate_document_id.rs +2 -2
  42. package/src/document/mod.rs +162 -148
  43. package/src/document/state_transition/document_batch_transition/document_transition/document_create_transition.rs +50 -48
  44. package/src/document/state_transition/document_batch_transition/document_transition/document_delete_transition.rs +14 -14
  45. package/src/document/state_transition/document_batch_transition/document_transition/document_replace_transition.rs +50 -38
  46. package/src/document/state_transition/document_batch_transition/document_transition/mod.rs +165 -153
  47. package/src/document/state_transition/document_batch_transition/mod.rs +230 -217
  48. package/src/errors/consensus/basic/data_contract/data_contract_have_new_unique_index_error.rs +2 -10
  49. package/src/errors/consensus/basic/data_contract/data_contract_immutable_properties_update_error.rs +1 -10
  50. package/src/errors/consensus/basic/data_contract/data_contract_invalid_index_definition_update_error.rs +2 -11
  51. package/src/errors/consensus/basic/data_contract/data_contract_max_depth_exceed_error.rs +1 -10
  52. package/src/errors/consensus/basic/data_contract/data_contract_unique_indices_changed_error.rs +1 -10
  53. package/src/errors/consensus/basic/data_contract/duplicate_index_name_error.rs +1 -10
  54. package/src/errors/consensus/basic/data_contract/incompatible_data_contract_schema_error.rs +1 -10
  55. package/src/errors/consensus/basic/data_contract/incompatible_re2_pattern_error.rs +1 -10
  56. package/src/errors/consensus/basic/data_contract/index_error/duplicate_index_error.rs +1 -10
  57. package/src/errors/consensus/basic/data_contract/index_error/invalid_compound_index_error.rs +1 -10
  58. package/src/errors/consensus/basic/data_contract/index_error/invalid_index_property_type_error.rs +1 -10
  59. package/src/errors/consensus/basic/data_contract/index_error/invalid_indexed_property_constraint_error.rs +1 -10
  60. package/src/errors/consensus/basic/data_contract/index_error/system_property_index_already_present_error.rs +1 -10
  61. package/src/errors/consensus/basic/data_contract/index_error/undefined_index_property_error.rs +1 -10
  62. package/src/errors/consensus/basic/data_contract/index_error/unique_indices_limit_reached_error.rs +1 -10
  63. package/src/errors/consensus/basic/data_contract/invalid_data_contract_id_error.rs +1 -10
  64. package/src/errors/consensus/basic/data_contract/invalid_data_contract_version_error.rs +1 -10
  65. package/src/errors/consensus/basic/data_contract/invalid_json_schema_ref_error.rs +1 -10
  66. package/src/errors/consensus/basic/decode/protocol_version_parsing_error.rs +10 -8
  67. package/src/errors/consensus/basic/decode/serialized_object_parsing_error.rs +1 -10
  68. package/src/errors/consensus/basic/document/data_contract_not_present_error.rs +1 -10
  69. package/src/errors/consensus/basic/document/duplicate_document_transitions_with_ids_error.rs +1 -10
  70. package/src/errors/consensus/basic/document/duplicate_document_transitions_with_indices_error.rs +1 -10
  71. package/src/errors/consensus/basic/document/inconsistent_compound_index_data_error.rs +1 -10
  72. package/src/errors/consensus/basic/document/invalid_document_transition_action_error.rs +1 -10
  73. package/src/errors/consensus/basic/document/invalid_document_transition_id_error.rs +1 -10
  74. package/src/errors/consensus/basic/document/invalid_document_type_error.rs +1 -10
  75. package/src/errors/consensus/basic/document/missing_data_contract_id_error.rs +1 -10
  76. package/src/errors/consensus/basic/document/missing_document_transition_action_error.rs +1 -10
  77. package/src/errors/consensus/basic/document/missing_document_transition_type_error.rs +1 -10
  78. package/src/errors/consensus/basic/document/missing_document_type_error.rs +1 -10
  79. package/src/errors/consensus/basic/identity/duplicated_identity_public_key_error.rs +1 -10
  80. package/src/errors/consensus/basic/identity/duplicated_identity_public_key_id_error.rs +1 -10
  81. package/src/errors/consensus/basic/identity/identity_asset_lock_proof_locked_transaction_mismatch_error.rs +1 -10
  82. package/src/errors/consensus/basic/identity/identity_asset_lock_transaction_is_not_found_error.rs +1 -10
  83. package/src/errors/consensus/basic/identity/identity_asset_lock_transaction_out_point_already_exists_error.rs +1 -10
  84. package/src/errors/consensus/basic/identity/identity_asset_lock_transaction_output_not_found_error.rs +1 -10
  85. package/src/errors/consensus/basic/identity/identity_insufficient_balance_error.rs +1 -10
  86. package/src/errors/consensus/basic/identity/invalid_asset_lock_proof_core_chain_height_error.rs +1 -10
  87. package/src/errors/consensus/basic/identity/invalid_asset_lock_proof_transaction_height_error.rs +1 -10
  88. package/src/errors/consensus/basic/identity/invalid_asset_lock_transaction_output_return_size_error.rs +1 -10
  89. package/src/errors/consensus/basic/identity/invalid_identity_asset_lock_transaction_error.rs +1 -10
  90. package/src/errors/consensus/basic/identity/invalid_identity_asset_lock_transaction_output_error.rs +1 -10
  91. package/src/errors/consensus/basic/identity/invalid_identity_credit_withdrawal_transition_core_fee_error.rs +1 -10
  92. package/src/errors/consensus/basic/identity/invalid_identity_credit_withdrawal_transition_output_script_error.rs +1 -10
  93. package/src/errors/consensus/basic/identity/invalid_identity_credit_withdrawal_transition_pooling_error.rs +1 -10
  94. package/src/errors/consensus/basic/identity/invalid_identity_key_signature_error.rs +1 -10
  95. package/src/errors/consensus/basic/identity/invalid_identity_public_key_data_error.rs +1 -10
  96. package/src/errors/consensus/basic/identity/invalid_identity_public_key_security_level_error.rs +1 -10
  97. package/src/errors/consensus/basic/identity/invalid_identity_public_key_type_error.rs +1 -10
  98. package/src/errors/consensus/basic/identity/invalid_instant_asset_lock_proof_error.rs +1 -10
  99. package/src/errors/consensus/basic/identity/invalid_instant_asset_lock_proof_signature_error.rs +1 -10
  100. package/src/errors/consensus/basic/identity/missing_master_public_key_error.rs +1 -10
  101. package/src/errors/consensus/basic/identity/missing_public_key_error.rs +1 -10
  102. package/src/errors/consensus/basic/incompatible_protocol_version_error.rs +1 -10
  103. package/src/errors/consensus/basic/invalid_identifier_error.rs +1 -10
  104. package/src/errors/consensus/basic/invalid_signature_public_key_security_level_error.rs +1 -10
  105. package/src/errors/consensus/basic/invalid_state_transition_signature_error.rs +1 -10
  106. package/src/errors/consensus/basic/json_schema_compilation_error.rs +1 -10
  107. package/src/errors/consensus/basic/json_schema_error.rs +1 -9
  108. package/src/errors/consensus/basic/mod.rs +2 -0
  109. package/src/errors/consensus/basic/public_key_is_disabled_error.rs +1 -10
  110. package/src/errors/consensus/basic/public_key_security_level_not_met_error.rs +2 -11
  111. package/src/errors/consensus/basic/state_transition/invalid_state_transition_type_error.rs +1 -10
  112. package/src/errors/consensus/basic/state_transition/missing_state_transition_type_error.rs +1 -10
  113. package/src/errors/consensus/basic/state_transition/state_transition_max_size_exceeded_error.rs +1 -10
  114. package/src/errors/consensus/basic/unsupported_protocol_version_error.rs +1 -10
  115. package/src/errors/consensus/basic/unsupported_version_error.rs +44 -0
  116. package/src/errors/consensus/basic/wrong_public_key_purpose_error.rs +1 -10
  117. package/src/errors/consensus/consensus_error.rs +39 -21
  118. package/src/errors/consensus/deserialize.rs +2 -2
  119. package/src/errors/consensus/fee/balance_is_not_enough_error.rs +5 -3
  120. package/src/errors/consensus/signature/basic_bls_error.rs +1 -10
  121. package/src/errors/consensus/signature/basic_ecdsa_error.rs +1 -10
  122. package/src/errors/consensus/signature/identity_not_found_error.rs +4 -3
  123. package/src/errors/consensus/signature/signature_should_not_be_present_error.rs +1 -10
  124. package/src/errors/consensus/state/data_contract/data_contract_already_present_error.rs +3 -3
  125. package/src/errors/consensus/state/data_contract/data_contract_config_update_error.rs +42 -0
  126. package/src/errors/consensus/state/data_contract/data_contract_is_readonly_error.rs +44 -0
  127. package/src/errors/consensus/state/data_contract/data_trigger/data_trigger_condition_error.rs +2 -2
  128. package/src/errors/consensus/state/data_contract/data_trigger/data_trigger_execution_error.rs +2 -2
  129. package/src/errors/consensus/state/data_contract/data_trigger/data_trigger_invalid_result_error.rs +2 -2
  130. package/src/errors/consensus/state/data_contract/mod.rs +7 -1
  131. package/src/errors/consensus/state/document/document_already_present_error.rs +1 -10
  132. package/src/errors/consensus/state/document/document_not_found_error.rs +1 -10
  133. package/src/errors/consensus/state/document/document_owner_id_mismatch_error.rs +1 -10
  134. package/src/errors/consensus/state/document/document_timestamp_window_violation_error.rs +1 -10
  135. package/src/errors/consensus/state/document/document_timestamps_are_equal_error.rs +1 -10
  136. package/src/errors/consensus/state/document/document_timestamps_mismatch_error.rs +1 -10
  137. package/src/errors/consensus/state/document/duplicate_unique_index_error.rs +1 -10
  138. package/src/errors/consensus/state/document/invalid_document_revision_error.rs +9 -13
  139. package/src/errors/consensus/state/identity/duplicated_identity_public_key_id_state_error.rs +1 -10
  140. package/src/errors/consensus/state/identity/duplicated_identity_public_key_state_error.rs +1 -10
  141. package/src/errors/consensus/state/identity/identity_already_exists_error.rs +1 -10
  142. package/src/errors/consensus/state/identity/identity_public_key_disabled_at_window_violation_error.rs +1 -10
  143. package/src/errors/consensus/state/identity/identity_public_key_is_disabled_error.rs +1 -10
  144. package/src/errors/consensus/state/identity/identity_public_key_is_read_only_error.rs +1 -10
  145. package/src/errors/consensus/state/identity/invalid_identity_public_key_id_error.rs +2 -10
  146. package/src/errors/consensus/state/identity/invalid_identity_revision_error.rs +1 -10
  147. package/src/errors/consensus/state/identity/max_identity_public_key_limit_reached_error.rs +1 -10
  148. package/src/errors/consensus/value_error.rs +1 -10
  149. package/src/errors/from.rs +12 -8
  150. package/src/errors/mod.rs +7 -7
  151. package/src/identity/factory_utils.rs +10 -10
  152. package/src/identity/identity.rs +275 -0
  153. package/src/identity/identity_facade.rs +87 -70
  154. package/src/identity/identity_factory.rs +74 -54
  155. package/src/identity/identity_public_key/mod.rs +86 -62
  156. package/src/identity/mod.rs +25 -256
  157. package/src/identity/state_transition/asset_lock_proof/chain/chain_asset_lock_proof_structure_validator.rs +0 -1
  158. package/src/identity/state_transition/asset_lock_proof/chain/mod.rs +3 -1
  159. package/src/identity/state_transition/asset_lock_proof/instant/instant_asset_lock_proof_structure_validator.rs +0 -1
  160. package/src/identity/state_transition/asset_lock_proof/instant/mod.rs +3 -1
  161. package/src/identity/state_transition/asset_lock_proof/mod.rs +112 -116
  162. package/src/identity/state_transition/identity_create_transition/identity_create_transition.rs +66 -52
  163. package/src/identity/state_transition/identity_create_transition/identity_create_transition_basic_validator.rs +0 -1
  164. package/src/identity/state_transition/identity_create_transition/mod.rs +3 -3
  165. package/src/identity/state_transition/identity_create_transition/to_object.rs +9 -11
  166. package/src/identity/state_transition/identity_credit_transfer_transition/apply_identity_credit_transfer_transition.rs +31 -0
  167. package/src/identity/state_transition/identity_credit_transfer_transition/identity_credit_transfer_transition_basic_validator.rs +66 -0
  168. package/src/identity/state_transition/identity_credit_transfer_transition/identity_credit_transfer_transition_state_validator.rs +44 -0
  169. package/src/identity/state_transition/identity_credit_transfer_transition/mod.rs +8 -0
  170. package/src/identity/state_transition/identity_credit_transfer_transition/to_object.rs +49 -0
  171. package/src/identity/state_transition/identity_credit_transfer_transition/transition.rs +344 -0
  172. package/src/identity/state_transition/identity_public_key_transitions.rs +81 -66
  173. package/src/identity/state_transition/identity_topup_transition/identity_topup_transition.rs +64 -51
  174. package/src/identity/state_transition/identity_topup_transition/identity_topup_transition_basic_validator.rs +0 -2
  175. package/src/identity/state_transition/identity_topup_transition/mod.rs +3 -3
  176. package/src/identity/state_transition/identity_topup_transition/to_object.rs +8 -12
  177. package/src/identity/state_transition/identity_update_transition/identity_update_transition.rs +95 -92
  178. package/src/identity/state_transition/identity_update_transition/mod.rs +4 -4
  179. package/src/identity/state_transition/identity_update_transition/to_object.rs +14 -18
  180. package/src/identity/state_transition/mod.rs +4 -2
  181. package/src/identity/state_transition/transition_types.rs +4 -0
  182. package/src/lib.rs +9 -9
  183. package/src/metadata.rs +3 -3
  184. package/src/protocol_version.rs +2 -2
  185. package/src/state_transition/conversion.rs +11 -1
  186. package/src/state_transition/errors/invalid_state_transition_error.rs +9 -9
  187. package/src/state_transition/fee/operations/pre_calculated_operation.rs +2 -1
  188. package/src/state_transition/mod.rs +137 -139
  189. package/src/state_transition/state_transition_facade.rs +2 -3
  190. package/src/state_transition/state_transition_factory.rs +142 -153
  191. package/src/state_transition/validation/state_transition_fee_validator.rs +1 -1
  192. package/src/state_transition/validation/validate_state_transition_identity_signature.rs +8 -4
  193. package/src/state_transition/validation/validate_state_transition_key_signature.rs +1 -1
  194. package/src/utils.rs +4 -2
  195. package/src/validation/validation_result.rs +1 -1
  196. package/test/integration/dataContract/DataContractFacade.spec.js +11 -15
  197. package/test/integration/dataContract/stateTransition/DataContractCreateTransition/validation/basic/validateDataContractCreateTransitionBasicFactory.spec.js +1 -1
  198. package/test/integration/dataContract/stateTransition/DataContractUpdateTransition/validation/basic/validateDataContractUpdateTransitionBasicFactory.spec.js +1 -1
  199. package/test/integration/dataContract/validation/validateDataContractFactory.spec.js +1 -1
  200. package/test/integration/document/Document.spec.js +3 -3
  201. package/test/integration/document/DocumentFacade.spec.js +34 -33
  202. package/test/integration/document/stateTransition/DocumentsBatchTransition/DocumentBatchTransition.spec.js +1 -1
  203. package/test/integration/document/stateTransition/DocumentsBatchTransition/validation/basic/validateDocumentsBatchTransitionBasicFactory.spec.js +1 -1
  204. package/test/integration/document/stateTransition/DocumentsBatchTransition/validation/state/executeDataTriggersFactory.spec.js +1 -1
  205. package/test/integration/document/validation/validateDocumentFactory.spec.js +1 -1
  206. package/test/integration/identity/IdentityFacade.spec.js +29 -58
  207. package/test/integration/identity/stateTransition/IdentityCreateTransition/validation/basic/validateIdentityCreateTransitionBasicFactory.spec.js +2 -2
  208. package/test/integration/identity/stateTransition/IdentityTopUpTransition/validation/basic/validateIdentityTopUpTransitionBasicFactory.spec.js +1 -1
  209. package/test/integration/identity/stateTransition/IdentityUpdateTransition/validation/basic/validateIdentityUpdateTransitionBasicFactory.spec.js +1 -1
  210. package/test/integration/identity/stateTransition/IdentityUpdateTransition/validation/state/validateIdentityUpdateTransitionStateFactory.spec.js +2 -2
  211. package/test/integration/identity/stateTransition/IdentityUpdateTransition/validation/state/validatePublicKeysState.spec.js +2 -2
  212. package/test/integration/identity/stateTransition/assetLockProof/chain/validateChainAssetLockProofStructureFactory.spec.js +1 -1
  213. package/test/integration/identity/stateTransition/assetLockProof/fetchAssetLockTransactionOutputFactory.spec.js +2 -2
  214. package/test/integration/identity/stateTransition/assetLockProof/instant/validateInstantAssetLockProofStructureFactory.spec.js +1 -1
  215. package/test/integration/identity/stateTransition/assetLockProof/validateAssetLockTransactionFactory.spec.js +4 -3
  216. package/test/integration/identity/stateTransition/validatePublicKeySignaturesFactory.spec.js +1 -1
  217. package/test/integration/identity/validation/validateIdentityFactory.spec.js +2 -2
  218. package/test/integration/identity/validation/validatePublicKeysFactory.spec.js +1 -1
  219. package/test/integration/stateTransition/StateTransitionFacade.spec.js +39 -48
  220. package/test/integration/util/generateTemporaryEcdsaPrivateKey.spec.js +1 -1
  221. package/test/unit/DashPlatformProtocol.spec.js +4 -18
  222. package/test/unit/dataContract/DataContract.spec.js +100 -121
  223. package/test/unit/dataContract/DataContractFactory.spec.js +21 -1
  224. package/test/unit/dataContract/createDataContract.spec.js +1 -1
  225. package/test/unit/dataContract/generateDataContractId.spec.js +1 -1
  226. package/test/unit/dataContract/stateTransition/DataContractCreateTransition/DataContractCreateTransition.spec.js +23 -13
  227. package/test/unit/dataContract/stateTransition/DataContractCreateTransition/applyDataContractCreateTransitionFactory.spec.js +1 -1
  228. package/test/unit/dataContract/stateTransition/DataContractCreateTransition/validation/state/validateDataContractCreateTransitionStateFactory.spec.js +1 -1
  229. package/test/unit/dataContract/stateTransition/DataContractUpdateTransition/DataContractUpdateTransition.spec.js +16 -7
  230. package/test/unit/dataContract/stateTransition/DataContractUpdateTransition/applyDataContractUpdateTransitionFactory.spec.js +1 -1
  231. package/test/unit/dataContract/stateTransition/DataContractUpdateTransition/validation/basic/validateIndicesAreBackwardCompatible.spec.js +1 -1
  232. package/test/unit/dataContract/stateTransition/DataContractUpdateTransition/validation/state/validateDataContractUpdateTransitionStateFactory.spec.js +1 -1
  233. package/test/unit/dataContract/validation/validateDataContractPatterns.spec.js +1 -1
  234. package/test/unit/document/Document.spec.js +18 -10
  235. package/test/unit/document/DocumentFactory.spec.js +10 -23
  236. package/test/unit/document/fetchAndValidateDataContractFactory.spec.js +1 -1
  237. package/test/unit/document/stateTransition/DocumetsBatchTransition/DocumentsBatchTransition.spec.js +4 -4
  238. package/test/unit/document/stateTransition/DocumetsBatchTransition/applyDocumentsBatchTransitionFactory.spec.js +1 -1
  239. package/test/unit/document/stateTransition/DocumetsBatchTransition/documentTransition/DocumentCreateTransition.spec.js +1 -1
  240. package/test/unit/document/stateTransition/DocumetsBatchTransition/validation/basic/findDuplicatesById.spec.js +1 -1
  241. package/test/unit/document/stateTransition/DocumetsBatchTransition/validation/basic/findDuplicatesByIndices.spec.js +1 -1
  242. package/test/unit/document/stateTransition/DocumetsBatchTransition/validation/basic/validatePartialCompoundIndices.spec.js +1 -1
  243. package/test/unit/document/stateTransition/DocumetsBatchTransition/validation/state/fetchDocumentsFactory.spec.js +1 -1
  244. package/test/unit/document/stateTransition/DocumetsBatchTransition/validation/state/validateDocumentsBatchTransitionStateFactory.spec.js +1 -1
  245. package/test/unit/document/stateTransition/DocumetsBatchTransition/validation/state/validateDocumentsUniquenessByIndicesFactory.spec.js +1 -1
  246. package/test/unit/identity/Identity.spec.js +34 -74
  247. package/test/unit/identity/IdentityFactory.spec.js +55 -68
  248. package/test/unit/identity/IdentityPublicKey.spec.js +30 -47
  249. package/test/unit/identity/stateTransition/IdentityCreateTransition/IdentityCreateTransition.spec.js +23 -55
  250. package/test/unit/identity/stateTransition/IdentityCreateTransition/applyIdentityCreateTransitionFactory.spec.js +2 -2
  251. package/test/unit/identity/stateTransition/IdentityCreateTransition/validation/state/validateIdentityCreateTransitionStateFactory.spec.js +2 -2
  252. package/test/unit/identity/stateTransition/IdentityTopUpTransition/IdentityTopUpTransition.spec.js +7 -28
  253. package/test/unit/identity/stateTransition/IdentityTopUpTransition/applyIdentityTopUpTransitionFactory.spec.js +4 -4
  254. package/test/unit/identity/stateTransition/IdentityTopUpTransition/validation/state/validateIdentityTopUpTransitionStateFactory.spec.js +2 -2
  255. package/test/unit/identity/stateTransition/IdentityUpdateTransition/IdentityUpdateTransition.spec.js +19 -36
  256. package/test/unit/identity/stateTransition/IdentityUpdateTransition/applyIdentityUpdateTransitionFactory.spec.js +3 -3
  257. package/test/unit/identity/stateTransition/assetLockProof/fetchAssetLockPublicKeyHashFactory.spec.js +1 -1
  258. package/test/unit/identity/stateTransition/identityCreditTransferTransition/identityCreditTransferTransition.spec.js +130 -0
  259. package/test/unit/stateTransition/StateTransitionExecutionContext.spec.js +1 -1
  260. package/test/unit/stateTransition/StateTransitionFactory.spec.js +13 -18
  261. package/test/unit/stateTransition/createStateTransitionFactory.spec.js +1 -1
  262. package/test/unit/stateTransition/validation/validateStateTransitionBasicFactory.spec.js +1 -1
  263. package/test/unit/stateTransition/validation/validateStateTransitionFeeFactory.spec.js +1 -1
  264. package/test/unit/stateTransition/validation/validateStateTransitionIdentitySignatureFactory.spec.js +1 -1
  265. package/test/unit/stateTransition/validation/validateStateTransitionKeySignatureFactory.spec.js +2 -2
  266. package/test/unit/stateTransition/validation/validateStateTransitionStateFactory.spec.js +1 -1
  267. package/test/unit/version/validateProtocolVersionFactory.spec.js +1 -1
  268. package/test-d/index.test-d.ts +2 -2
  269. package/src/data_contract/state_transition/data_contract_create_transition/apply.rs +0 -45
  270. package/src/data_contract/state_transition/data_contract_update_transition/apply.rs +0 -49
  271. package/src/document/state_transition/document_batch_transition/apply_document_batch_transition.rs +0 -25
@@ -1,70 +1,21 @@
1
1
  use std::convert::TryFrom;
2
2
  use std::sync::Arc;
3
3
 
4
- use dpp::data_contract::CreatedDataContract;
5
- use dpp::{
6
- data_contract::{
7
- validation::data_contract_validator::DataContractValidator, DataContractFactory,
8
- },
9
- platform_value,
10
- prelude::Identifier,
11
- version::ProtocolVersionValidator,
12
- ProtocolError,
13
- };
4
+ use dpp::data_contract::created_data_contract::CreatedDataContract;
5
+ use dpp::{data_contract::DataContractFactory, platform_value, prelude::Identifier, ProtocolError};
14
6
  use wasm_bindgen::prelude::*;
15
7
 
16
8
  use crate::entropy_generator::ExternalEntropyGenerator;
17
- use crate::utils::WithJsError;
9
+ use crate::utils::{ToSerdeJSONExt, WithJsError};
18
10
 
11
+ use crate::data_contract::{DataContractCreateTransitionWasm, DataContractWasm};
19
12
  use crate::{
20
13
  data_contract::errors::InvalidDataContractError,
21
14
  errors::{from_dpp_err, protocol_error::from_protocol_error},
22
- js_value_to_data_contract_value,
23
- validation::ValidationResultWasm,
24
- with_js_error, DataContractCreateTransitionWasm, DataContractParameters, DataContractWasm,
15
+ with_js_error,
25
16
  };
26
17
 
27
- #[wasm_bindgen(js_name=DataContractValidator)]
28
- pub struct DataContractValidatorWasm(DataContractValidator);
29
-
30
- impl From<DataContractValidator> for DataContractValidatorWasm {
31
- fn from(v: DataContractValidator) -> Self {
32
- DataContractValidatorWasm(v)
33
- }
34
- }
35
-
36
- impl From<DataContractValidatorWasm> for DataContractValidator {
37
- fn from(val: DataContractValidatorWasm) -> Self {
38
- val.0
39
- }
40
- }
41
-
42
- impl Default for DataContractValidatorWasm {
43
- fn default() -> Self {
44
- Self::new()
45
- }
46
- }
47
-
48
- #[wasm_bindgen(js_class=DataContractValidator)]
49
- impl DataContractValidatorWasm {
50
- #[wasm_bindgen(constructor)]
51
- pub fn new() -> Self {
52
- DataContractValidator::new(std::sync::Arc::new(ProtocolVersionValidator::default())).into()
53
- }
54
-
55
- #[wasm_bindgen]
56
- pub fn validate(&self, raw_data_contract: JsValue) -> Result<ValidationResultWasm, JsValue> {
57
- let parameters: DataContractParameters =
58
- with_js_error!(serde_wasm_bindgen::from_value(raw_data_contract))?;
59
- let platform_object = platform_value::to_value(parameters).expect("Implements Serialize");
60
-
61
- let validation_result = self
62
- .0
63
- .validate(&platform_object)
64
- .map_err(from_protocol_error)?;
65
- Ok(validation_result.map(|_| JsValue::undefined()).into())
66
- }
67
- }
18
+ use dpp::util::entropy_generator::EntropyGenerator;
68
19
 
69
20
  #[wasm_bindgen(js_name=DataContractFactory)]
70
21
  pub struct DataContractFactoryWasm(DataContractFactory);
@@ -86,18 +37,15 @@ impl DataContractFactoryWasm {
86
37
  #[wasm_bindgen(constructor)]
87
38
  pub fn new(
88
39
  protocol_version: u32,
89
- validate_data_contract: DataContractValidatorWasm,
90
40
  external_entropy_generator_arg: Option<ExternalEntropyGenerator>,
91
41
  ) -> DataContractFactoryWasm {
92
42
  if let Some(external_entropy_generator) = external_entropy_generator_arg {
93
- DataContractFactory::new_with_entropy_generator(
94
- protocol_version,
95
- Arc::new(validate_data_contract.into()),
96
- Box::new(external_entropy_generator),
97
- )
43
+ DataContractFactory::new(protocol_version, Some(Box::new(external_entropy_generator)))
98
44
  } else {
99
- DataContractFactory::new(protocol_version, Arc::new(validate_data_contract.into()))
45
+ DataContractFactory::new(protocol_version, None)
100
46
  }
47
+ .with_js_error()
48
+ .expect("should create a factory")
101
49
  .into()
102
50
  }
103
51
 
@@ -106,38 +54,47 @@ impl DataContractFactoryWasm {
106
54
  &self,
107
55
  owner_id: Vec<u8>,
108
56
  documents: JsValue,
57
+ config: JsValue,
109
58
  ) -> Result<DataContractWasm, JsValue> {
110
59
  let documents_object: platform_value::Value =
111
60
  with_js_error!(serde_wasm_bindgen::from_value(documents))?;
61
+
62
+ let contract_config = if config.is_object() && !config.is_falsy() {
63
+ let raw_config = config.with_serde_to_json_value()?;
64
+ Some(serde_json::from_value(raw_config).with_js_error()?)
65
+ } else {
66
+ None
67
+ };
68
+
112
69
  let identifier = Identifier::from_bytes(&owner_id)
113
70
  .map_err(ProtocolError::ValueError)
114
71
  .with_js_error()?;
115
72
  //todo: contract config
116
73
  self.0
117
- .create(identifier, documents_object, None, None)
74
+ .create(identifier, documents_object, contract_config, None)
118
75
  .map(Into::into)
119
76
  .with_js_error()
120
77
  }
121
78
 
122
- #[wasm_bindgen(js_name=createFromObject)]
123
- pub async fn create_from_object(
124
- &self,
125
- object: JsValue,
126
- skip_validation: Option<bool>,
127
- ) -> Result<DataContractWasm, JsValue> {
128
- let parameters_value = js_value_to_data_contract_value(object.clone())?;
129
- let result = self
130
- .0
131
- .create_from_object(parameters_value, skip_validation.unwrap_or(false))
132
- .await;
133
- match result {
134
- Ok(data_contract) => Ok(data_contract.into()),
135
- Err(dpp::ProtocolError::InvalidDataContractError(err)) => {
136
- Err(InvalidDataContractError::new(err.errors, object).into())
137
- }
138
- Err(other) => Err(from_dpp_err(other)),
139
- }
140
- }
79
+ // #[wasm_bindgen(js_name=createFromObject)]
80
+ // pub async fn create_from_object(
81
+ // &self,
82
+ // object: JsValue,
83
+ // skip_validation: Option<bool>,
84
+ // ) -> Result<DataContractWasm, JsValue> {
85
+ // let parameters_value = js_value_to_data_contract_value(object.clone())?;
86
+ // let result = self
87
+ // .0
88
+ // .create_from_object(parameters_value, skip_validation.unwrap_or(false))
89
+ // .await;
90
+ // match result {
91
+ // Ok(data_contract) => Ok(data_contract.into()),
92
+ // Err(dpp::ProtocolError::InvalidDataContractError(err)) => {
93
+ // Err(InvalidDataContractError::new(err.errors, object).into())
94
+ // }
95
+ // Err(other) => Err(from_dpp_err(other)),
96
+ // }
97
+ // }
141
98
 
142
99
  #[wasm_bindgen(js_name=createFromBuffer)]
143
100
  pub async fn create_from_buffer(
@@ -147,7 +104,6 @@ impl DataContractFactoryWasm {
147
104
  ) -> Result<DataContractWasm, JsValue> {
148
105
  self.0
149
106
  .create_from_buffer(buffer, skip_validation.unwrap_or(false))
150
- .await
151
107
  .map(Into::into)
152
108
  .map_err(from_protocol_error)
153
109
  }
@@ -2,32 +2,31 @@ use std::sync::Arc;
2
2
 
3
3
  use wasm_bindgen::{prelude::*, JsValue};
4
4
 
5
+ use crate::document::factory::DocumentFactoryWASM;
5
6
  use crate::{
6
- fetch_and_validate_data_contract::DataContractFetcherAndValidatorWasm,
7
7
  utils::{get_class_name, IntoWasm},
8
- validation::ValidationResultWasm,
9
- DataContractWasm, DocumentFactoryWASM, DocumentValidatorWasm, DocumentsBatchTransitionWasm,
10
- ExtendedDocumentWasm,
8
+ DataContractWasm, ExtendedDocumentWasm,
11
9
  };
12
10
 
11
+ use crate::document::state_transition::document_batch_transition::DocumentsBatchTransitionWasm;
12
+
13
13
  #[derive(Clone)]
14
14
  #[wasm_bindgen(js_name=DocumentFacade)]
15
15
  pub struct DocumentFacadeWasm {
16
- validator: Arc<DocumentValidatorWasm>,
16
+ // validator: Arc<DocumentValidatorWasm>,
17
17
  factory: Arc<DocumentFactoryWASM>,
18
- data_contract_fetcher_and_validator: Arc<DataContractFetcherAndValidatorWasm>,
18
+ // data_contract_fetcher_and_validator: Arc<DataContractFetcherAndValidatorWasm>,
19
19
  }
20
20
 
21
21
  impl DocumentFacadeWasm {
22
22
  pub fn new_with_arc(
23
- document_validator: Arc<DocumentValidatorWasm>,
23
+ // document_validator: Arc<DocumentValidatorWasm>,
24
24
  document_factory: Arc<DocumentFactoryWASM>,
25
- data_contract_fetcher_and_validator: Arc<DataContractFetcherAndValidatorWasm>,
25
+ // data_contract_fetcher_and_validator: Arc<DataContractFetcherAndValidatorWasm>,
26
26
  ) -> Self {
27
27
  Self {
28
- validator: document_validator,
29
28
  factory: document_factory,
30
- data_contract_fetcher_and_validator,
29
+ // data_contract_fetcher_and_validator,
31
30
  }
32
31
  }
33
32
  }
@@ -35,15 +34,9 @@ impl DocumentFacadeWasm {
35
34
  #[wasm_bindgen(js_class=DocumentFacade)]
36
35
  impl DocumentFacadeWasm {
37
36
  #[wasm_bindgen(constructor)]
38
- pub fn new(
39
- document_validator: DocumentValidatorWasm,
40
- document_factory: DocumentFactoryWASM,
41
- data_contract_fetcher_and_validator: DataContractFetcherAndValidatorWasm,
42
- ) -> Self {
37
+ pub fn new(document_factory: DocumentFactoryWASM) -> Self {
43
38
  Self {
44
- validator: Arc::new(document_validator),
45
39
  factory: Arc::new(document_factory),
46
- data_contract_fetcher_and_validator: Arc::new(data_contract_fetcher_and_validator),
47
40
  }
48
41
  }
49
42
 
@@ -58,36 +51,36 @@ impl DocumentFacadeWasm {
58
51
  self.factory
59
52
  .create(data_contract, js_owner_id, document_type, data)
60
53
  }
61
-
62
- /// Creates Document from object
63
- #[wasm_bindgen(js_name=createFromObject)]
64
- pub async fn create_from_object(
65
- &self,
66
- raw_document: JsValue,
67
- options: Option<js_sys::Object>,
68
- ) -> Result<ExtendedDocumentWasm, JsValue> {
69
- self.factory
70
- .create_from_object(
71
- raw_document,
72
- options.map(Into::into).unwrap_or(JsValue::undefined()),
73
- )
74
- .await
75
- }
76
-
77
- /// Creates Document form bytes
78
- #[wasm_bindgen(js_name=createFromBuffer)]
79
- pub async fn create_from_buffer(
80
- &self,
81
- bytes: Vec<u8>,
82
- options: Option<js_sys::Object>,
83
- ) -> Result<ExtendedDocumentWasm, JsValue> {
84
- self.factory
85
- .create_from_buffer(
86
- bytes,
87
- &options.map(Into::into).unwrap_or(JsValue::undefined()),
88
- )
89
- .await
90
- }
54
+ //
55
+ // /// Creates Document from object
56
+ // #[wasm_bindgen(js_name=createFromObject)]
57
+ // pub async fn create_from_object(
58
+ // &self,
59
+ // raw_document: JsValue,
60
+ // options: Option<js_sys::Object>,
61
+ // ) -> Result<ExtendedDocumentWasm, JsValue> {
62
+ // self.factory
63
+ // .create_from_object(
64
+ // raw_document,
65
+ // options.map(Into::into).unwrap_or(JsValue::undefined()),
66
+ // )
67
+ // .await
68
+ // }
69
+ //
70
+ // /// Creates Document form bytes
71
+ // #[wasm_bindgen(js_name=createFromBuffer)]
72
+ // pub async fn create_from_buffer(
73
+ // &self,
74
+ // bytes: Vec<u8>,
75
+ // options: Option<js_sys::Object>,
76
+ // ) -> Result<ExtendedDocumentWasm, JsValue> {
77
+ // self.factory
78
+ // .create_from_buffer(
79
+ // bytes,
80
+ // &options.map(Into::into).unwrap_or(JsValue::undefined()),
81
+ // )
82
+ // .await
83
+ // }
91
84
 
92
85
  // TODO(rs-drive-abci): add tests
93
86
  #[wasm_bindgen(js_name=createExtendedDocumentFromDocumentBuffer)]
@@ -110,38 +103,38 @@ impl DocumentFacadeWasm {
110
103
  self.factory.create_state_transition(documents)
111
104
  }
112
105
 
113
- /// Creates Documents State Transition
114
- #[wasm_bindgen(js_name=validate)]
115
- pub async fn validate_document(
116
- &self,
117
- document: &JsValue,
118
- ) -> Result<ValidationResultWasm, JsValue> {
119
- let raw_document = if get_class_name(document) == "ExtendedDocument" {
120
- let document = document.to_wasm::<ExtendedDocumentWasm>("ExtendedDocument")?;
121
- document.to_object(&JsValue::NULL)?
122
- } else {
123
- document.to_owned()
124
- };
125
-
126
- self.validate_raw_document(raw_document).await
127
- }
128
-
129
- /// Creates Documents State Transition
130
- pub async fn validate_raw_document(
131
- &self,
132
- js_raw_document: JsValue,
133
- ) -> Result<ValidationResultWasm, JsValue> {
134
- let result = self
135
- .data_contract_fetcher_and_validator
136
- .validate(&js_raw_document)
137
- .await?;
138
- if !result.is_valid() {
139
- return Ok(result);
140
- }
141
- let data_contract = result
142
- .get_data()
143
- .to_wasm::<DataContractWasm>("DataContract")?;
144
-
145
- self.validator.validate(&js_raw_document, &data_contract)
146
- }
106
+ // /// Creates Documents State Transition
107
+ // #[wasm_bindgen(js_name=validate)]
108
+ // pub async fn validate_document(
109
+ // &self,
110
+ // document: &JsValue,
111
+ // ) -> Result<ValidationResultWasm, JsValue> {
112
+ // let raw_document = if get_class_name(document) == "ExtendedDocument" {
113
+ // let document = document.to_wasm::<ExtendedDocumentWasm>("ExtendedDocument")?;
114
+ // document.to_object(&JsValue::NULL)?
115
+ // } else {
116
+ // document.to_owned()
117
+ // };
118
+ //
119
+ // self.validate_raw_document(raw_document).await
120
+ // }
121
+ //
122
+ // /// Creates Documents State Transition
123
+ // pub async fn validate_raw_document(
124
+ // &self,
125
+ // js_raw_document: JsValue,
126
+ // ) -> Result<ValidationResultWasm, JsValue> {
127
+ // let result = self
128
+ // .data_contract_fetcher_and_validator
129
+ // .validate(&js_raw_document)
130
+ // .await?;
131
+ // if !result.is_valid() {
132
+ // return Ok(result);
133
+ // }
134
+ // let data_contract = result
135
+ // .get_data()
136
+ // .to_wasm::<DataContractWasm>("DataContract")?;
137
+ //
138
+ // self.validator.validate(&js_raw_document, &data_contract)
139
+ // }
147
140
  }
@@ -1,5 +1,5 @@
1
- use crate::document::state_transition::document_batch_transition::document_transition::from_document_transition_to_js_value;
2
- use dpp::prelude::DocumentTransition;
1
+ // use crate::document::state_transition::document_batch_transition::document_transition::from_document_transition_to_js_value;
2
+ use dpp::state_transition::documents_batch_transition::document_transition::DocumentTransition;
3
3
  use thiserror::Error;
4
4
 
5
5
  use super::*;
@@ -13,10 +13,10 @@ pub struct DocumentAlreadyExistsError {
13
13
 
14
14
  #[wasm_bindgen]
15
15
  impl DocumentAlreadyExistsError {
16
- #[wasm_bindgen(js_name=getDocumentTransition)]
17
- pub fn get_document_transition(&self) -> JsValue {
18
- from_document_transition_to_js_value(self.document_transition.clone())
19
- }
16
+ // #[wasm_bindgen(js_name=getDocumentTransition)]
17
+ // pub fn get_document_transition(&self) -> JsValue {
18
+ // from_document_transition_to_js_value(self.document_transition.clone())
19
+ // }
20
20
  }
21
21
 
22
22
  impl DocumentAlreadyExistsError {
@@ -1,5 +1,6 @@
1
1
  use thiserror::Error;
2
2
 
3
+ use crate::data_contract::DataContractWasm;
3
4
  use crate::DocumentWasm;
4
5
 
5
6
  use super::*;
@@ -1,5 +1,5 @@
1
- use crate::document::state_transition::document_batch_transition::document_transition::from_document_transition_to_js_value;
2
- use dpp::prelude::DocumentTransition;
1
+ // use crate::document::state_transition::document_batch_transition::document_transition::from_document_transition_to_js_value;
2
+ use dpp::state_transition::documents_batch_transition::document_transition::DocumentTransition;
3
3
  use thiserror::Error;
4
4
 
5
5
  use super::*;
@@ -13,10 +13,10 @@ pub struct DocumentNotProvidedError {
13
13
 
14
14
  #[wasm_bindgen]
15
15
  impl DocumentNotProvidedError {
16
- #[wasm_bindgen(js_name=getDocumentTransition)]
17
- pub fn get_document_transition(&self) -> JsValue {
18
- from_document_transition_to_js_value(self.document_transition.clone())
19
- }
16
+ // #[wasm_bindgen(js_name=getDocumentTransition)]
17
+ // pub fn get_document_transition(&self) -> JsValue {
18
+ // from_document_transition_to_js_value(self.document_transition.clone())
19
+ // }
20
20
  }
21
21
 
22
22
  impl DocumentNotProvidedError {
@@ -1,22 +1,23 @@
1
- use crate::document::state_transition::document_batch_transition::document_transition::from_document_transition_to_js_value;
2
- use dpp::prelude::DocumentTransition;
1
+ // use crate::document::state_transition::document_batch_transition::document_transition::from_document_transition_to_js_value;
2
+ use dpp::state_transition::documents_batch_transition::document_transition::DocumentTransition;
3
3
  use thiserror::Error;
4
4
 
5
5
  use super::*;
6
+ use dpp::state_transition::documents_batch_transition::document_transition::action_type::TransitionActionTypeGetter;
6
7
 
7
8
  #[wasm_bindgen]
8
9
  #[derive(Error, Debug)]
9
- #[error("Invalid Document action: '{}'", document_transition.action())]
10
+ #[error("Invalid Document action: '{:?}'", document_transition.action_type())]
10
11
  pub struct InvalidDocumentActionError {
11
12
  document_transition: DocumentTransition,
12
13
  }
13
14
 
14
15
  #[wasm_bindgen]
15
16
  impl InvalidDocumentActionError {
16
- #[wasm_bindgen(js_name=getDocumentTransition)]
17
- pub fn get_document_transition(&self) -> JsValue {
18
- from_document_transition_to_js_value(self.document_transition.clone())
19
- }
17
+ // #[wasm_bindgen(js_name=getDocumentTransition)]
18
+ // pub fn get_document_transition(&self) -> JsValue {
19
+ // from_document_transition_to_js_value(self.document_transition.clone())
20
+ // }
20
21
  }
21
22
 
22
23
  impl InvalidDocumentActionError {
@@ -26,3 +27,6 @@ impl InvalidDocumentActionError {
26
27
  }
27
28
  }
28
29
  }
30
+
31
+ #[test]
32
+ fn data_contract_create_check_tx() {}
@@ -1,4 +1,4 @@
1
- use crate::ExtendedDocumentWasm;
1
+ use crate::document::DocumentWasm;
2
2
  use thiserror::Error;
3
3
 
4
4
  use super::*;
@@ -7,18 +7,18 @@ use super::*;
7
7
  #[derive(Error, Debug)]
8
8
  #[error("Invalid Document Initial revision '{}'", document.get_revision().unwrap_or_default())]
9
9
  pub struct InvalidInitialRevisionError {
10
- document: ExtendedDocumentWasm,
10
+ document: DocumentWasm,
11
11
  }
12
12
 
13
13
  #[wasm_bindgen]
14
14
  impl InvalidInitialRevisionError {
15
15
  #[wasm_bindgen(constructor)]
16
- pub fn new(document: ExtendedDocumentWasm) -> InvalidInitialRevisionError {
16
+ pub fn new(document: DocumentWasm) -> InvalidInitialRevisionError {
17
17
  Self { document }
18
18
  }
19
19
 
20
20
  #[wasm_bindgen(js_name=getDocument)]
21
- pub fn get_document_transition(&self) -> ExtendedDocumentWasm {
21
+ pub fn get_document_transition(&self) -> DocumentWasm {
22
22
  self.document.clone()
23
23
  }
24
24
  }
@@ -1,5 +1,5 @@
1
- use crate::ExtendedDocumentWasm;
2
- use dpp::document::ExtendedDocument;
1
+ use crate::document::DocumentWasm;
2
+ use dpp::document::Document;
3
3
  use itertools::Itertools;
4
4
  use thiserror::Error;
5
5
 
@@ -9,7 +9,7 @@ use super::*;
9
9
  #[derive(Error, Debug)]
10
10
  #[error("Documents have mixed owner ids")]
11
11
  pub struct MismatchOwnerIdsError {
12
- documents: Vec<ExtendedDocumentWasm>,
12
+ documents: Vec<DocumentWasm>,
13
13
  }
14
14
 
15
15
  #[wasm_bindgen]
@@ -28,12 +28,9 @@ impl MismatchOwnerIdsError {
28
28
  }
29
29
 
30
30
  impl MismatchOwnerIdsError {
31
- pub fn from_documents(documents: Vec<ExtendedDocument>) -> MismatchOwnerIdsError {
31
+ pub fn from_documents(documents: Vec<Document>) -> MismatchOwnerIdsError {
32
32
  Self {
33
- documents: documents
34
- .into_iter()
35
- .map(ExtendedDocumentWasm::from)
36
- .collect_vec(),
33
+ documents: documents.into_iter().map(DocumentWasm::from).collect_vec(),
37
34
  }
38
35
  }
39
36
  }
@@ -4,6 +4,7 @@ use wasm_bindgen::prelude::*;
4
4
  use crate::document::errors::document_no_revision_error::DocumentNoRevisionError;
5
5
  use crate::document::errors::invalid_action_error::InvalidActionError;
6
6
  use crate::document::errors::revision_absent_error::RevisionAbsentError;
7
+ use crate::document::errors::trying_to_delete_immutable_document_error::TryingToDeleteImmutableDocumentError;
7
8
  use crate::document::errors::trying_to_replace_immutable_document_error::TryingToReplaceImmutableDocumentError;
8
9
  pub use document_already_exists_error::*;
9
10
  pub use document_not_provided_error::*;
@@ -29,6 +30,7 @@ mod invalid_initial_revision_error;
29
30
  mod mismatch_owners_ids_error;
30
31
  mod no_documents_supplied_error;
31
32
  mod revision_absent_error;
33
+ mod trying_to_delete_immutable_document_error;
32
34
  mod trying_to_replace_immutable_document_error;
33
35
 
34
36
  pub fn from_document_to_js_error(e: DocumentError) -> JsValue {
@@ -73,5 +75,8 @@ pub fn from_document_to_js_error(e: DocumentError) -> JsValue {
73
75
  TryingToReplaceImmutableDocumentError::new((*document).into()).into()
74
76
  }
75
77
  DocumentError::InvalidActionError(action) => InvalidActionError::new(action.into()).into(),
78
+ DocumentError::TryingToDeleteImmutableDocument { document } => {
79
+ TryingToDeleteImmutableDocumentError::new((*document).into()).into()
80
+ }
76
81
  }
77
82
  }
@@ -1,4 +1,4 @@
1
- use crate::ExtendedDocumentWasm;
1
+ use crate::document::DocumentWasm;
2
2
  use thiserror::Error;
3
3
 
4
4
  use super::*;
@@ -7,18 +7,18 @@ use super::*;
7
7
  #[derive(Error, Debug)]
8
8
  #[error("The revision was absent, but was needed")]
9
9
  pub struct RevisionAbsentError {
10
- extended_document: ExtendedDocumentWasm,
10
+ document: DocumentWasm,
11
11
  }
12
12
 
13
13
  #[wasm_bindgen]
14
14
  impl RevisionAbsentError {
15
15
  #[wasm_bindgen(constructor)]
16
- pub fn new(extended_document: ExtendedDocumentWasm) -> RevisionAbsentError {
17
- Self { extended_document }
16
+ pub fn new(document: DocumentWasm) -> RevisionAbsentError {
17
+ Self { document }
18
18
  }
19
19
 
20
20
  #[wasm_bindgen(js_name=getDocument)]
21
- pub fn get_document_transition(&self) -> ExtendedDocumentWasm {
22
- self.extended_document.clone()
21
+ pub fn get_document_transition(&self) -> DocumentWasm {
22
+ self.document.clone()
23
23
  }
24
24
  }
@@ -0,0 +1,19 @@
1
+ use crate::document::DocumentWasm;
2
+ use thiserror::Error;
3
+
4
+ use super::*;
5
+
6
+ #[wasm_bindgen]
7
+ #[derive(Error, Debug)]
8
+ #[error("Trying to delete an immutable document")]
9
+ pub struct TryingToDeleteImmutableDocumentError {
10
+ document: DocumentWasm,
11
+ }
12
+
13
+ #[wasm_bindgen]
14
+ impl TryingToDeleteImmutableDocumentError {
15
+ #[wasm_bindgen(constructor)]
16
+ pub fn new(document: DocumentWasm) -> Self {
17
+ TryingToDeleteImmutableDocumentError { document }
18
+ }
19
+ }
@@ -1,4 +1,4 @@
1
- use crate::ExtendedDocumentWasm;
1
+ use crate::document::DocumentWasm;
2
2
  use thiserror::Error;
3
3
 
4
4
  use super::*;
@@ -7,13 +7,13 @@ use super::*;
7
7
  #[derive(Error, Debug)]
8
8
  #[error("Trying to update an immutable document")]
9
9
  pub struct TryingToReplaceImmutableDocumentError {
10
- extended_document: ExtendedDocumentWasm,
10
+ document: DocumentWasm,
11
11
  }
12
12
 
13
13
  #[wasm_bindgen]
14
14
  impl TryingToReplaceImmutableDocumentError {
15
15
  #[wasm_bindgen(constructor)]
16
- pub fn new(extended_document: ExtendedDocumentWasm) -> Self {
17
- TryingToReplaceImmutableDocumentError { extended_document }
16
+ pub fn new(document: DocumentWasm) -> Self {
17
+ TryingToReplaceImmutableDocumentError { document }
18
18
  }
19
19
  }