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

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