@dashevo/wasm-dpp 0.25.0-dev.16 → 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 (265) hide show
  1. package/Cargo.toml +22 -2
  2. package/dist/errors/patchConsensusErrors.js +94 -115
  3. package/dist/wasm/wasm_dpp.d.ts +2136 -4354
  4. package/dist/wasm/wasm_dpp.js +17748 -2769
  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 +2 -4
  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 +7 -12
  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 +2136 -4354
  18. package/package.json +4 -4
  19. package/src/dash_platform_protocol.rs +172 -195
  20. package/src/data_contract/data_contract.rs +255 -203
  21. package/src/data_contract/data_contract_facade.rs +24 -46
  22. package/src/data_contract/errors/mod.rs +1 -0
  23. package/src/data_contract/mod.rs +2 -2
  24. package/src/data_contract/state_transition/data_contract_create_transition/mod.rs +82 -87
  25. package/src/data_contract/state_transition/data_contract_update_transition/mod.rs +74 -80
  26. package/src/data_contract_factory/data_contract_factory.rs +28 -81
  27. package/src/document/document_facade.rs +74 -81
  28. package/src/document/errors/document_already_exists_error.rs +6 -6
  29. package/src/document/errors/document_no_revision_error.rs +1 -0
  30. package/src/document/errors/document_not_provided_error.rs +6 -6
  31. package/src/document/errors/invalid_document_action_error.rs +11 -7
  32. package/src/document/errors/invalid_initial_revision_error.rs +4 -4
  33. package/src/document/errors/mismatch_owners_ids_error.rs +5 -8
  34. package/src/document/errors/mod.rs +5 -0
  35. package/src/document/errors/revision_absent_error.rs +6 -6
  36. package/src/document/errors/trying_to_delete_immutable_document_error.rs +19 -0
  37. package/src/document/errors/trying_to_replace_immutable_document_error.rs +4 -4
  38. package/src/document/extended_document.rs +76 -76
  39. package/src/document/factory.rs +127 -123
  40. package/src/document/generate_document_id.rs +2 -2
  41. package/src/document/mod.rs +162 -148
  42. package/src/document/state_transition/document_batch_transition/document_transition/document_create_transition.rs +50 -48
  43. package/src/document/state_transition/document_batch_transition/document_transition/document_delete_transition.rs +14 -14
  44. package/src/document/state_transition/document_batch_transition/document_transition/document_replace_transition.rs +50 -38
  45. package/src/document/state_transition/document_batch_transition/document_transition/mod.rs +165 -153
  46. package/src/document/state_transition/document_batch_transition/mod.rs +230 -217
  47. package/src/errors/consensus/basic/data_contract/data_contract_have_new_unique_index_error.rs +2 -10
  48. package/src/errors/consensus/basic/data_contract/data_contract_immutable_properties_update_error.rs +1 -10
  49. package/src/errors/consensus/basic/data_contract/data_contract_invalid_index_definition_update_error.rs +2 -11
  50. package/src/errors/consensus/basic/data_contract/data_contract_max_depth_exceed_error.rs +1 -10
  51. package/src/errors/consensus/basic/data_contract/data_contract_unique_indices_changed_error.rs +1 -10
  52. package/src/errors/consensus/basic/data_contract/duplicate_index_name_error.rs +1 -10
  53. package/src/errors/consensus/basic/data_contract/incompatible_data_contract_schema_error.rs +1 -10
  54. package/src/errors/consensus/basic/data_contract/incompatible_re2_pattern_error.rs +1 -10
  55. package/src/errors/consensus/basic/data_contract/index_error/duplicate_index_error.rs +1 -10
  56. package/src/errors/consensus/basic/data_contract/index_error/invalid_compound_index_error.rs +1 -10
  57. package/src/errors/consensus/basic/data_contract/index_error/invalid_index_property_type_error.rs +1 -10
  58. package/src/errors/consensus/basic/data_contract/index_error/invalid_indexed_property_constraint_error.rs +1 -10
  59. package/src/errors/consensus/basic/data_contract/index_error/system_property_index_already_present_error.rs +1 -10
  60. package/src/errors/consensus/basic/data_contract/index_error/undefined_index_property_error.rs +1 -10
  61. package/src/errors/consensus/basic/data_contract/index_error/unique_indices_limit_reached_error.rs +1 -10
  62. package/src/errors/consensus/basic/data_contract/invalid_data_contract_id_error.rs +1 -10
  63. package/src/errors/consensus/basic/data_contract/invalid_data_contract_version_error.rs +1 -10
  64. package/src/errors/consensus/basic/data_contract/invalid_json_schema_ref_error.rs +1 -10
  65. package/src/errors/consensus/basic/decode/protocol_version_parsing_error.rs +10 -8
  66. package/src/errors/consensus/basic/decode/serialized_object_parsing_error.rs +1 -10
  67. package/src/errors/consensus/basic/document/data_contract_not_present_error.rs +1 -10
  68. package/src/errors/consensus/basic/document/duplicate_document_transitions_with_ids_error.rs +1 -10
  69. package/src/errors/consensus/basic/document/duplicate_document_transitions_with_indices_error.rs +1 -10
  70. package/src/errors/consensus/basic/document/inconsistent_compound_index_data_error.rs +1 -10
  71. package/src/errors/consensus/basic/document/invalid_document_transition_action_error.rs +1 -10
  72. package/src/errors/consensus/basic/document/invalid_document_transition_id_error.rs +1 -10
  73. package/src/errors/consensus/basic/document/invalid_document_type_error.rs +1 -10
  74. package/src/errors/consensus/basic/document/missing_data_contract_id_error.rs +1 -10
  75. package/src/errors/consensus/basic/document/missing_document_transition_action_error.rs +1 -10
  76. package/src/errors/consensus/basic/document/missing_document_transition_type_error.rs +1 -10
  77. package/src/errors/consensus/basic/document/missing_document_type_error.rs +1 -10
  78. package/src/errors/consensus/basic/identity/duplicated_identity_public_key_error.rs +1 -10
  79. package/src/errors/consensus/basic/identity/duplicated_identity_public_key_id_error.rs +1 -10
  80. package/src/errors/consensus/basic/identity/identity_asset_lock_proof_locked_transaction_mismatch_error.rs +1 -10
  81. package/src/errors/consensus/basic/identity/identity_asset_lock_transaction_is_not_found_error.rs +1 -10
  82. package/src/errors/consensus/basic/identity/identity_asset_lock_transaction_out_point_already_exists_error.rs +1 -10
  83. package/src/errors/consensus/basic/identity/identity_asset_lock_transaction_output_not_found_error.rs +1 -10
  84. package/src/errors/consensus/basic/identity/identity_insufficient_balance_error.rs +1 -10
  85. package/src/errors/consensus/basic/identity/invalid_asset_lock_proof_core_chain_height_error.rs +1 -10
  86. package/src/errors/consensus/basic/identity/invalid_asset_lock_proof_transaction_height_error.rs +1 -10
  87. package/src/errors/consensus/basic/identity/invalid_asset_lock_transaction_output_return_size_error.rs +1 -10
  88. package/src/errors/consensus/basic/identity/invalid_identity_asset_lock_transaction_error.rs +1 -10
  89. package/src/errors/consensus/basic/identity/invalid_identity_asset_lock_transaction_output_error.rs +1 -10
  90. package/src/errors/consensus/basic/identity/invalid_identity_credit_withdrawal_transition_core_fee_error.rs +1 -10
  91. package/src/errors/consensus/basic/identity/invalid_identity_credit_withdrawal_transition_output_script_error.rs +1 -10
  92. package/src/errors/consensus/basic/identity/invalid_identity_credit_withdrawal_transition_pooling_error.rs +1 -10
  93. package/src/errors/consensus/basic/identity/invalid_identity_key_signature_error.rs +1 -10
  94. package/src/errors/consensus/basic/identity/invalid_identity_public_key_data_error.rs +1 -10
  95. package/src/errors/consensus/basic/identity/invalid_identity_public_key_security_level_error.rs +1 -10
  96. package/src/errors/consensus/basic/identity/invalid_identity_public_key_type_error.rs +1 -10
  97. package/src/errors/consensus/basic/identity/invalid_instant_asset_lock_proof_error.rs +1 -10
  98. package/src/errors/consensus/basic/identity/invalid_instant_asset_lock_proof_signature_error.rs +1 -10
  99. package/src/errors/consensus/basic/identity/missing_master_public_key_error.rs +1 -10
  100. package/src/errors/consensus/basic/identity/missing_public_key_error.rs +1 -10
  101. package/src/errors/consensus/basic/incompatible_protocol_version_error.rs +1 -10
  102. package/src/errors/consensus/basic/invalid_identifier_error.rs +1 -10
  103. package/src/errors/consensus/basic/invalid_signature_public_key_security_level_error.rs +1 -10
  104. package/src/errors/consensus/basic/invalid_state_transition_signature_error.rs +1 -10
  105. package/src/errors/consensus/basic/json_schema_compilation_error.rs +1 -10
  106. package/src/errors/consensus/basic/json_schema_error.rs +1 -9
  107. package/src/errors/consensus/basic/mod.rs +2 -0
  108. package/src/errors/consensus/basic/public_key_is_disabled_error.rs +1 -10
  109. package/src/errors/consensus/basic/public_key_security_level_not_met_error.rs +2 -11
  110. package/src/errors/consensus/basic/state_transition/invalid_state_transition_type_error.rs +1 -10
  111. package/src/errors/consensus/basic/state_transition/missing_state_transition_type_error.rs +1 -10
  112. package/src/errors/consensus/basic/state_transition/state_transition_max_size_exceeded_error.rs +1 -10
  113. package/src/errors/consensus/basic/unsupported_protocol_version_error.rs +1 -10
  114. package/src/errors/consensus/basic/unsupported_version_error.rs +44 -0
  115. package/src/errors/consensus/basic/wrong_public_key_purpose_error.rs +1 -10
  116. package/src/errors/consensus/consensus_error.rs +30 -21
  117. package/src/errors/consensus/deserialize.rs +2 -2
  118. package/src/errors/consensus/fee/balance_is_not_enough_error.rs +5 -3
  119. package/src/errors/consensus/signature/basic_bls_error.rs +1 -10
  120. package/src/errors/consensus/signature/basic_ecdsa_error.rs +1 -10
  121. package/src/errors/consensus/signature/identity_not_found_error.rs +4 -3
  122. package/src/errors/consensus/signature/signature_should_not_be_present_error.rs +1 -10
  123. package/src/errors/consensus/state/data_contract/data_contract_already_present_error.rs +3 -3
  124. package/src/errors/consensus/state/data_contract/data_contract_config_update_error.rs +1 -12
  125. package/src/errors/consensus/state/data_contract/data_contract_is_readonly_error.rs +1 -10
  126. package/src/errors/consensus/state/data_contract/data_trigger/data_trigger_condition_error.rs +2 -2
  127. package/src/errors/consensus/state/data_contract/data_trigger/data_trigger_execution_error.rs +2 -2
  128. package/src/errors/consensus/state/data_contract/data_trigger/data_trigger_invalid_result_error.rs +2 -2
  129. package/src/errors/consensus/state/data_contract/mod.rs +3 -1
  130. package/src/errors/consensus/state/document/document_already_present_error.rs +1 -10
  131. package/src/errors/consensus/state/document/document_not_found_error.rs +1 -10
  132. package/src/errors/consensus/state/document/document_owner_id_mismatch_error.rs +1 -10
  133. package/src/errors/consensus/state/document/document_timestamp_window_violation_error.rs +1 -10
  134. package/src/errors/consensus/state/document/document_timestamps_are_equal_error.rs +1 -10
  135. package/src/errors/consensus/state/document/document_timestamps_mismatch_error.rs +1 -10
  136. package/src/errors/consensus/state/document/duplicate_unique_index_error.rs +1 -10
  137. package/src/errors/consensus/state/document/invalid_document_revision_error.rs +9 -13
  138. package/src/errors/consensus/state/identity/duplicated_identity_public_key_id_state_error.rs +1 -10
  139. package/src/errors/consensus/state/identity/duplicated_identity_public_key_state_error.rs +1 -10
  140. package/src/errors/consensus/state/identity/identity_already_exists_error.rs +1 -10
  141. package/src/errors/consensus/state/identity/identity_public_key_disabled_at_window_violation_error.rs +1 -10
  142. package/src/errors/consensus/state/identity/identity_public_key_is_disabled_error.rs +1 -10
  143. package/src/errors/consensus/state/identity/identity_public_key_is_read_only_error.rs +1 -10
  144. package/src/errors/consensus/state/identity/invalid_identity_public_key_id_error.rs +2 -10
  145. package/src/errors/consensus/state/identity/invalid_identity_revision_error.rs +1 -10
  146. package/src/errors/consensus/state/identity/max_identity_public_key_limit_reached_error.rs +1 -10
  147. package/src/errors/consensus/value_error.rs +1 -10
  148. package/src/errors/from.rs +12 -8
  149. package/src/errors/mod.rs +7 -7
  150. package/src/identity/factory_utils.rs +10 -10
  151. package/src/identity/identity.rs +275 -0
  152. package/src/identity/identity_facade.rs +69 -70
  153. package/src/identity/identity_factory.rs +57 -55
  154. package/src/identity/identity_public_key/mod.rs +86 -62
  155. package/src/identity/mod.rs +25 -256
  156. package/src/identity/state_transition/asset_lock_proof/chain/chain_asset_lock_proof_structure_validator.rs +0 -1
  157. package/src/identity/state_transition/asset_lock_proof/chain/mod.rs +3 -1
  158. package/src/identity/state_transition/asset_lock_proof/instant/instant_asset_lock_proof_structure_validator.rs +0 -1
  159. package/src/identity/state_transition/asset_lock_proof/instant/mod.rs +3 -1
  160. package/src/identity/state_transition/asset_lock_proof/mod.rs +112 -116
  161. package/src/identity/state_transition/identity_create_transition/identity_create_transition.rs +66 -52
  162. package/src/identity/state_transition/identity_create_transition/identity_create_transition_basic_validator.rs +0 -1
  163. package/src/identity/state_transition/identity_create_transition/mod.rs +3 -3
  164. package/src/identity/state_transition/identity_create_transition/to_object.rs +9 -11
  165. package/src/identity/state_transition/identity_credit_transfer_transition/mod.rs +3 -3
  166. package/src/identity/state_transition/identity_credit_transfer_transition/to_object.rs +10 -13
  167. package/src/identity/state_transition/identity_credit_transfer_transition/transition.rs +72 -39
  168. package/src/identity/state_transition/identity_public_key_transitions.rs +81 -66
  169. package/src/identity/state_transition/identity_topup_transition/identity_topup_transition.rs +64 -51
  170. package/src/identity/state_transition/identity_topup_transition/identity_topup_transition_basic_validator.rs +0 -2
  171. package/src/identity/state_transition/identity_topup_transition/mod.rs +3 -3
  172. package/src/identity/state_transition/identity_topup_transition/to_object.rs +8 -12
  173. package/src/identity/state_transition/identity_update_transition/identity_update_transition.rs +95 -92
  174. package/src/identity/state_transition/identity_update_transition/mod.rs +4 -4
  175. package/src/identity/state_transition/identity_update_transition/to_object.rs +14 -18
  176. package/src/identity/state_transition/mod.rs +2 -2
  177. package/src/lib.rs +9 -9
  178. package/src/metadata.rs +3 -3
  179. package/src/protocol_version.rs +2 -2
  180. package/src/state_transition/errors/invalid_state_transition_error.rs +9 -9
  181. package/src/state_transition/fee/operations/pre_calculated_operation.rs +2 -1
  182. package/src/state_transition/mod.rs +137 -139
  183. package/src/state_transition/state_transition_facade.rs +1 -2
  184. package/src/state_transition/state_transition_factory.rs +139 -159
  185. package/src/state_transition/validation/state_transition_fee_validator.rs +1 -1
  186. package/src/state_transition/validation/validate_state_transition_identity_signature.rs +3 -4
  187. package/src/state_transition/validation/validate_state_transition_key_signature.rs +1 -1
  188. package/src/utils.rs +4 -2
  189. package/src/validation/validation_result.rs +1 -1
  190. package/test/integration/dataContract/DataContractFacade.spec.js +11 -15
  191. package/test/integration/dataContract/stateTransition/DataContractCreateTransition/validation/basic/validateDataContractCreateTransitionBasicFactory.spec.js +1 -1
  192. package/test/integration/dataContract/stateTransition/DataContractUpdateTransition/validation/basic/validateDataContractUpdateTransitionBasicFactory.spec.js +1 -1
  193. package/test/integration/dataContract/validation/validateDataContractFactory.spec.js +1 -1
  194. package/test/integration/document/Document.spec.js +3 -3
  195. package/test/integration/document/DocumentFacade.spec.js +34 -33
  196. package/test/integration/document/stateTransition/DocumentsBatchTransition/DocumentBatchTransition.spec.js +1 -1
  197. package/test/integration/document/stateTransition/DocumentsBatchTransition/validation/basic/validateDocumentsBatchTransitionBasicFactory.spec.js +1 -1
  198. package/test/integration/document/stateTransition/DocumentsBatchTransition/validation/state/executeDataTriggersFactory.spec.js +1 -1
  199. package/test/integration/document/validation/validateDocumentFactory.spec.js +1 -1
  200. package/test/integration/identity/IdentityFacade.spec.js +29 -58
  201. package/test/integration/identity/stateTransition/IdentityCreateTransition/validation/basic/validateIdentityCreateTransitionBasicFactory.spec.js +2 -2
  202. package/test/integration/identity/stateTransition/IdentityTopUpTransition/validation/basic/validateIdentityTopUpTransitionBasicFactory.spec.js +1 -1
  203. package/test/integration/identity/stateTransition/IdentityUpdateTransition/validation/basic/validateIdentityUpdateTransitionBasicFactory.spec.js +1 -1
  204. package/test/integration/identity/stateTransition/IdentityUpdateTransition/validation/state/validateIdentityUpdateTransitionStateFactory.spec.js +2 -2
  205. package/test/integration/identity/stateTransition/IdentityUpdateTransition/validation/state/validatePublicKeysState.spec.js +2 -2
  206. package/test/integration/identity/stateTransition/assetLockProof/chain/validateChainAssetLockProofStructureFactory.spec.js +1 -1
  207. package/test/integration/identity/stateTransition/assetLockProof/fetchAssetLockTransactionOutputFactory.spec.js +2 -2
  208. package/test/integration/identity/stateTransition/assetLockProof/instant/validateInstantAssetLockProofStructureFactory.spec.js +1 -1
  209. package/test/integration/identity/stateTransition/assetLockProof/validateAssetLockTransactionFactory.spec.js +4 -3
  210. package/test/integration/identity/stateTransition/validatePublicKeySignaturesFactory.spec.js +1 -1
  211. package/test/integration/identity/validation/validateIdentityFactory.spec.js +2 -2
  212. package/test/integration/identity/validation/validatePublicKeysFactory.spec.js +1 -1
  213. package/test/integration/stateTransition/StateTransitionFacade.spec.js +39 -48
  214. package/test/integration/util/generateTemporaryEcdsaPrivateKey.spec.js +1 -1
  215. package/test/unit/DashPlatformProtocol.spec.js +4 -18
  216. package/test/unit/dataContract/DataContract.spec.js +84 -123
  217. package/test/unit/dataContract/DataContractFactory.spec.js +1 -1
  218. package/test/unit/dataContract/createDataContract.spec.js +1 -1
  219. package/test/unit/dataContract/generateDataContractId.spec.js +1 -1
  220. package/test/unit/dataContract/stateTransition/DataContractCreateTransition/DataContractCreateTransition.spec.js +14 -14
  221. package/test/unit/dataContract/stateTransition/DataContractCreateTransition/applyDataContractCreateTransitionFactory.spec.js +1 -1
  222. package/test/unit/dataContract/stateTransition/DataContractCreateTransition/validation/state/validateDataContractCreateTransitionStateFactory.spec.js +1 -1
  223. package/test/unit/dataContract/stateTransition/DataContractUpdateTransition/DataContractUpdateTransition.spec.js +7 -8
  224. package/test/unit/dataContract/stateTransition/DataContractUpdateTransition/applyDataContractUpdateTransitionFactory.spec.js +1 -1
  225. package/test/unit/dataContract/stateTransition/DataContractUpdateTransition/validation/basic/validateIndicesAreBackwardCompatible.spec.js +1 -1
  226. package/test/unit/dataContract/stateTransition/DataContractUpdateTransition/validation/state/validateDataContractUpdateTransitionStateFactory.spec.js +1 -1
  227. package/test/unit/dataContract/validation/validateDataContractPatterns.spec.js +1 -1
  228. package/test/unit/document/Document.spec.js +18 -10
  229. package/test/unit/document/DocumentFactory.spec.js +10 -23
  230. package/test/unit/document/fetchAndValidateDataContractFactory.spec.js +1 -1
  231. package/test/unit/document/stateTransition/DocumetsBatchTransition/DocumentsBatchTransition.spec.js +4 -4
  232. package/test/unit/document/stateTransition/DocumetsBatchTransition/applyDocumentsBatchTransitionFactory.spec.js +1 -1
  233. package/test/unit/document/stateTransition/DocumetsBatchTransition/documentTransition/DocumentCreateTransition.spec.js +1 -1
  234. package/test/unit/document/stateTransition/DocumetsBatchTransition/validation/basic/findDuplicatesById.spec.js +1 -1
  235. package/test/unit/document/stateTransition/DocumetsBatchTransition/validation/basic/findDuplicatesByIndices.spec.js +1 -1
  236. package/test/unit/document/stateTransition/DocumetsBatchTransition/validation/basic/validatePartialCompoundIndices.spec.js +1 -1
  237. package/test/unit/document/stateTransition/DocumetsBatchTransition/validation/state/fetchDocumentsFactory.spec.js +1 -1
  238. package/test/unit/document/stateTransition/DocumetsBatchTransition/validation/state/validateDocumentsBatchTransitionStateFactory.spec.js +1 -1
  239. package/test/unit/document/stateTransition/DocumetsBatchTransition/validation/state/validateDocumentsUniquenessByIndicesFactory.spec.js +1 -1
  240. package/test/unit/identity/Identity.spec.js +34 -74
  241. package/test/unit/identity/IdentityFactory.spec.js +55 -68
  242. package/test/unit/identity/IdentityPublicKey.spec.js +30 -47
  243. package/test/unit/identity/stateTransition/IdentityCreateTransition/IdentityCreateTransition.spec.js +23 -55
  244. package/test/unit/identity/stateTransition/IdentityCreateTransition/applyIdentityCreateTransitionFactory.spec.js +2 -2
  245. package/test/unit/identity/stateTransition/IdentityCreateTransition/validation/state/validateIdentityCreateTransitionStateFactory.spec.js +2 -2
  246. package/test/unit/identity/stateTransition/IdentityTopUpTransition/IdentityTopUpTransition.spec.js +7 -28
  247. package/test/unit/identity/stateTransition/IdentityTopUpTransition/applyIdentityTopUpTransitionFactory.spec.js +4 -4
  248. package/test/unit/identity/stateTransition/IdentityTopUpTransition/validation/state/validateIdentityTopUpTransitionStateFactory.spec.js +2 -2
  249. package/test/unit/identity/stateTransition/IdentityUpdateTransition/IdentityUpdateTransition.spec.js +19 -36
  250. package/test/unit/identity/stateTransition/IdentityUpdateTransition/applyIdentityUpdateTransitionFactory.spec.js +3 -3
  251. package/test/unit/identity/stateTransition/assetLockProof/fetchAssetLockPublicKeyHashFactory.spec.js +1 -1
  252. package/test/unit/identity/stateTransition/identityCreditTransferTransition/identityCreditTransferTransition.spec.js +14 -23
  253. package/test/unit/stateTransition/StateTransitionExecutionContext.spec.js +1 -1
  254. package/test/unit/stateTransition/StateTransitionFactory.spec.js +13 -18
  255. package/test/unit/stateTransition/createStateTransitionFactory.spec.js +1 -1
  256. package/test/unit/stateTransition/validation/validateStateTransitionBasicFactory.spec.js +1 -1
  257. package/test/unit/stateTransition/validation/validateStateTransitionFeeFactory.spec.js +1 -1
  258. package/test/unit/stateTransition/validation/validateStateTransitionIdentitySignatureFactory.spec.js +1 -1
  259. package/test/unit/stateTransition/validation/validateStateTransitionKeySignatureFactory.spec.js +2 -2
  260. package/test/unit/stateTransition/validation/validateStateTransitionStateFactory.spec.js +1 -1
  261. package/test/unit/version/validateProtocolVersionFactory.spec.js +1 -1
  262. package/test-d/index.test-d.ts +2 -2
  263. package/src/data_contract/state_transition/data_contract_create_transition/apply.rs +0 -45
  264. package/src/data_contract/state_transition/data_contract_update_transition/apply.rs +0 -49
  265. 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
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
 
@@ -128,25 +76,25 @@ impl DataContractFactoryWasm {
128
76
  .with_js_error()
129
77
  }
130
78
 
131
- #[wasm_bindgen(js_name=createFromObject)]
132
- pub async fn create_from_object(
133
- &self,
134
- object: JsValue,
135
- skip_validation: Option<bool>,
136
- ) -> Result<DataContractWasm, JsValue> {
137
- let parameters_value = js_value_to_data_contract_value(object.clone())?;
138
- let result = self
139
- .0
140
- .create_from_object(parameters_value, skip_validation.unwrap_or(false))
141
- .await;
142
- match result {
143
- Ok(data_contract) => Ok(data_contract.into()),
144
- Err(dpp::ProtocolError::InvalidDataContractError(err)) => {
145
- Err(InvalidDataContractError::new(err.errors, object).into())
146
- }
147
- Err(other) => Err(from_dpp_err(other)),
148
- }
149
- }
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
+ // }
150
98
 
151
99
  #[wasm_bindgen(js_name=createFromBuffer)]
152
100
  pub async fn create_from_buffer(
@@ -156,7 +104,6 @@ impl DataContractFactoryWasm {
156
104
  ) -> Result<DataContractWasm, JsValue> {
157
105
  self.0
158
106
  .create_from_buffer(buffer, skip_validation.unwrap_or(false))
159
- .await
160
107
  .map(Into::into)
161
108
  .map_err(from_protocol_error)
162
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
  }