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

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 (329) hide show
  1. package/Cargo.toml +34 -7
  2. package/README.md +12 -7
  3. package/dist/errors/patchConsensusErrors.js +94 -115
  4. package/dist/wasm/wasm_dpp.d.ts +2302 -4106
  5. package/dist/wasm/wasm_dpp.js +18149 -2639
  6. package/dist/wasm/wasm_dpp_bg.js +1 -1
  7. package/lib/bls/bls.js +48 -0
  8. package/lib/dpp.ts +1 -1
  9. package/lib/errors/patchConsensusErrors.ts +94 -93
  10. package/lib/test/bootstrap.js +5 -0
  11. package/lib/test/fixtures/getChainAssetLockProofFixture.js +20 -1
  12. package/lib/test/fixtures/getDataContractFixture.js +13 -9
  13. package/lib/test/fixtures/getDocumentTransitionsFixture.js +31 -1
  14. package/lib/test/fixtures/getDocumentsFixture.js +9 -5
  15. package/lib/test/fixtures/getIdentityCreateTransitionFixture.js +14 -20
  16. package/lib/test/fixtures/getIdentityCreditTransferTransitionFixture.js +14 -0
  17. package/lib/test/fixtures/getIdentityFixture.js +21 -32
  18. package/lib/test/fixtures/getIdentityTopUpTransitionFixture.js +7 -10
  19. package/lib/test/fixtures/getIdentityUpdateTransitionFixture.js +13 -28
  20. package/lib/test/fixtures/getInstantAssetLockProofFixture.js +32 -12
  21. package/lib/test/fixtures/getPrivateAndPublicKeyForSigningFixture.js +7 -9
  22. package/lib/test/mocks/createStateRepositoryMock.js +1 -0
  23. package/lib/test/mocks/getBlsAdapterMock.js +1 -1
  24. package/lib/utils/creditsConverter.js +14 -0
  25. package/lib/utils/hash.js +18 -0
  26. package/lib/wasm/wasm_dpp.d.ts +2302 -4106
  27. package/package.json +4 -6
  28. package/scripts/build-wasm.sh +30 -29
  29. package/src/bls_adapter.rs +1 -1
  30. package/src/dash_platform_protocol.rs +169 -192
  31. package/src/data_contract/data_contract.rs +309 -199
  32. package/src/data_contract/data_contract_facade.rs +28 -47
  33. package/src/data_contract/errors/mod.rs +1 -0
  34. package/src/data_contract/mod.rs +2 -2
  35. package/src/data_contract/state_transition/data_contract_create_transition/mod.rs +92 -79
  36. package/src/data_contract/state_transition/data_contract_update_transition/mod.rs +84 -77
  37. package/src/data_contract_factory/data_contract_factory.rs +43 -83
  38. package/src/document/document_facade.rs +81 -76
  39. package/src/document/errors/document_already_exists_error.rs +6 -6
  40. package/src/document/errors/document_no_revision_error.rs +1 -0
  41. package/src/document/errors/document_not_provided_error.rs +6 -6
  42. package/src/document/errors/invalid_document_action_error.rs +11 -7
  43. package/src/document/errors/invalid_document_error.rs +5 -0
  44. package/src/document/errors/invalid_initial_revision_error.rs +4 -4
  45. package/src/document/errors/mismatch_owners_ids_error.rs +5 -8
  46. package/src/document/errors/mod.rs +5 -0
  47. package/src/document/errors/revision_absent_error.rs +6 -6
  48. package/src/document/errors/trying_to_delete_immutable_document_error.rs +19 -0
  49. package/src/document/errors/trying_to_replace_immutable_document_error.rs +4 -4
  50. package/src/document/extended_document.rs +91 -76
  51. package/src/document/factory.rs +140 -119
  52. package/src/document/generate_document_id.rs +2 -2
  53. package/src/document/mod.rs +164 -150
  54. package/src/document/state_transition/document_batch_transition/document_transition/document_create_transition.rs +236 -229
  55. package/src/document/state_transition/document_batch_transition/document_transition/document_delete_transition.rs +14 -14
  56. package/src/document/state_transition/document_batch_transition/document_transition/document_replace_transition.rs +50 -38
  57. package/src/document/state_transition/document_batch_transition/document_transition/mod.rs +164 -152
  58. package/src/document/state_transition/document_batch_transition/mod.rs +232 -222
  59. package/src/errors/consensus/basic/data_contract/data_contract_have_new_unique_index_error.rs +2 -9
  60. package/src/errors/consensus/basic/data_contract/data_contract_immutable_properties_update_error.rs +1 -9
  61. package/src/errors/consensus/basic/data_contract/data_contract_invalid_index_definition_update_error.rs +2 -10
  62. package/src/errors/consensus/basic/data_contract/data_contract_max_depth_exceed_error.rs +1 -9
  63. package/src/errors/consensus/basic/data_contract/data_contract_unique_indices_changed_error.rs +1 -9
  64. package/src/errors/consensus/basic/data_contract/duplicate_index_name_error.rs +1 -9
  65. package/src/errors/consensus/basic/data_contract/incompatible_data_contract_schema_error.rs +1 -9
  66. package/src/errors/consensus/basic/data_contract/incompatible_re2_pattern_error.rs +1 -9
  67. package/src/errors/consensus/basic/data_contract/index_error/duplicate_index_error.rs +1 -9
  68. package/src/errors/consensus/basic/data_contract/index_error/invalid_compound_index_error.rs +1 -9
  69. package/src/errors/consensus/basic/data_contract/index_error/invalid_index_property_type_error.rs +1 -9
  70. package/src/errors/consensus/basic/data_contract/index_error/invalid_indexed_property_constraint_error.rs +1 -9
  71. package/src/errors/consensus/basic/data_contract/index_error/system_property_index_already_present_error.rs +1 -9
  72. package/src/errors/consensus/basic/data_contract/index_error/undefined_index_property_error.rs +1 -9
  73. package/src/errors/consensus/basic/data_contract/index_error/unique_indices_limit_reached_error.rs +1 -9
  74. package/src/errors/consensus/basic/data_contract/invalid_data_contract_id_error.rs +1 -9
  75. package/src/errors/consensus/basic/data_contract/invalid_data_contract_version_error.rs +1 -9
  76. package/src/errors/consensus/basic/data_contract/invalid_json_schema_ref_error.rs +1 -9
  77. package/src/errors/consensus/basic/decode/protocol_version_parsing_error.rs +10 -7
  78. package/src/errors/consensus/basic/decode/serialized_object_parsing_error.rs +1 -9
  79. package/src/errors/consensus/basic/document/data_contract_not_present_error.rs +1 -9
  80. package/src/errors/consensus/basic/document/duplicate_document_transitions_with_ids_error.rs +1 -9
  81. package/src/errors/consensus/basic/document/duplicate_document_transitions_with_indices_error.rs +1 -9
  82. package/src/errors/consensus/basic/document/inconsistent_compound_index_data_error.rs +1 -9
  83. package/src/errors/consensus/basic/document/invalid_document_transition_action_error.rs +1 -9
  84. package/src/errors/consensus/basic/document/invalid_document_transition_id_error.rs +1 -9
  85. package/src/errors/consensus/basic/document/invalid_document_type_error.rs +1 -9
  86. package/src/errors/consensus/basic/document/missing_data_contract_id_error.rs +1 -9
  87. package/src/errors/consensus/basic/document/missing_document_transition_action_error.rs +1 -9
  88. package/src/errors/consensus/basic/document/missing_document_transition_type_error.rs +1 -9
  89. package/src/errors/consensus/basic/document/missing_document_type_error.rs +1 -9
  90. package/src/errors/consensus/basic/identity/duplicated_identity_public_key_error.rs +1 -9
  91. package/src/errors/consensus/basic/identity/duplicated_identity_public_key_id_error.rs +1 -9
  92. package/src/errors/consensus/basic/identity/identity_asset_lock_proof_locked_transaction_mismatch_error.rs +3 -11
  93. package/src/errors/consensus/basic/identity/identity_asset_lock_transaction_is_not_found_error.rs +1 -9
  94. package/src/errors/consensus/basic/identity/identity_asset_lock_transaction_out_point_already_exists_error.rs +2 -10
  95. package/src/errors/consensus/basic/identity/identity_asset_lock_transaction_output_not_found_error.rs +1 -9
  96. package/src/errors/consensus/basic/identity/identity_insufficient_balance_error.rs +5 -11
  97. package/src/errors/consensus/basic/identity/invalid_asset_lock_proof_core_chain_height_error.rs +1 -9
  98. package/src/errors/consensus/basic/identity/invalid_asset_lock_proof_transaction_height_error.rs +1 -9
  99. package/src/errors/consensus/basic/identity/invalid_asset_lock_transaction_output_return_size_error.rs +1 -9
  100. package/src/errors/consensus/basic/identity/invalid_identity_asset_lock_proof_chain_lock_validation_error.rs +1 -1
  101. package/src/errors/consensus/basic/identity/invalid_identity_asset_lock_transaction_error.rs +1 -9
  102. package/src/errors/consensus/basic/identity/invalid_identity_asset_lock_transaction_output_error.rs +1 -9
  103. package/src/errors/consensus/basic/identity/invalid_identity_credit_withdrawal_transition_core_fee_error.rs +1 -9
  104. package/src/errors/consensus/basic/identity/invalid_identity_credit_withdrawal_transition_output_script_error.rs +1 -9
  105. package/src/errors/consensus/basic/identity/invalid_identity_credit_withdrawal_transition_pooling_error.rs +1 -9
  106. package/src/errors/consensus/basic/identity/invalid_identity_key_signature_error.rs +1 -9
  107. package/src/errors/consensus/basic/identity/invalid_identity_public_key_data_error.rs +1 -9
  108. package/src/errors/consensus/basic/identity/invalid_identity_public_key_security_level_error.rs +1 -9
  109. package/src/errors/consensus/basic/identity/invalid_identity_public_key_type_error.rs +1 -9
  110. package/src/errors/consensus/basic/identity/invalid_instant_asset_lock_proof_error.rs +1 -9
  111. package/src/errors/consensus/basic/identity/invalid_instant_asset_lock_proof_signature_error.rs +1 -9
  112. package/src/errors/consensus/basic/identity/missing_master_public_key_error.rs +1 -9
  113. package/src/errors/consensus/basic/identity/missing_public_key_error.rs +1 -9
  114. package/src/errors/consensus/basic/incompatible_protocol_version_error.rs +1 -9
  115. package/src/errors/consensus/basic/invalid_identifier_error.rs +1 -9
  116. package/src/errors/consensus/basic/invalid_signature_public_key_security_level_error.rs +7 -15
  117. package/src/errors/consensus/basic/invalid_state_transition_signature_error.rs +1 -9
  118. package/src/errors/consensus/basic/json_schema_compilation_error.rs +1 -9
  119. package/src/errors/consensus/basic/json_schema_error.rs +33 -11
  120. package/src/errors/consensus/basic/mod.rs +2 -0
  121. package/src/errors/consensus/basic/public_key_is_disabled_error.rs +1 -9
  122. package/src/errors/consensus/basic/public_key_security_level_not_met_error.rs +2 -11
  123. package/src/errors/consensus/basic/state_transition/invalid_state_transition_type_error.rs +1 -9
  124. package/src/errors/consensus/basic/state_transition/missing_state_transition_type_error.rs +1 -9
  125. package/src/errors/consensus/basic/state_transition/state_transition_max_size_exceeded_error.rs +1 -9
  126. package/src/errors/consensus/basic/unsupported_protocol_version_error.rs +1 -9
  127. package/src/errors/consensus/basic/unsupported_version_error.rs +44 -0
  128. package/src/errors/consensus/basic/wrong_public_key_purpose_error.rs +1 -9
  129. package/src/errors/consensus/consensus_error.rs +44 -21
  130. package/src/errors/consensus/deserialize.rs +2 -1
  131. package/src/errors/consensus/fee/balance_is_not_enough_error.rs +5 -2
  132. package/src/errors/consensus/signature/basic_bls_error.rs +1 -9
  133. package/src/errors/consensus/signature/basic_ecdsa_error.rs +1 -9
  134. package/src/errors/consensus/signature/identity_not_found_error.rs +4 -2
  135. package/src/errors/consensus/signature/signature_should_not_be_present_error.rs +1 -9
  136. package/src/errors/consensus/state/data_contract/data_contract_already_present_error.rs +3 -2
  137. package/src/errors/consensus/state/data_contract/data_contract_config_update_error.rs +42 -0
  138. package/src/errors/consensus/state/data_contract/data_contract_is_readonly_error.rs +44 -0
  139. package/src/errors/consensus/state/data_contract/data_trigger/data_trigger_condition_error.rs +2 -1
  140. package/src/errors/consensus/state/data_contract/data_trigger/data_trigger_execution_error.rs +2 -1
  141. package/src/errors/consensus/state/data_contract/data_trigger/data_trigger_invalid_result_error.rs +2 -1
  142. package/src/errors/consensus/state/data_contract/mod.rs +7 -1
  143. package/src/errors/consensus/state/document/document_already_present_error.rs +1 -9
  144. package/src/errors/consensus/state/document/document_not_found_error.rs +1 -9
  145. package/src/errors/consensus/state/document/document_owner_id_mismatch_error.rs +1 -9
  146. package/src/errors/consensus/state/document/document_timestamp_window_violation_error.rs +1 -9
  147. package/src/errors/consensus/state/document/document_timestamps_are_equal_error.rs +34 -0
  148. package/src/errors/consensus/state/document/document_timestamps_mismatch_error.rs +1 -9
  149. package/src/errors/consensus/state/document/duplicate_unique_index_error.rs +1 -9
  150. package/src/errors/consensus/state/document/invalid_document_revision_error.rs +9 -12
  151. package/src/errors/consensus/state/document/mod.rs +2 -0
  152. package/src/errors/consensus/state/identity/duplicated_identity_public_key_id_state_error.rs +1 -9
  153. package/src/errors/consensus/state/identity/duplicated_identity_public_key_state_error.rs +1 -9
  154. package/src/errors/consensus/state/identity/identity_already_exists_error.rs +1 -9
  155. package/src/errors/consensus/state/identity/identity_public_key_disabled_at_window_violation_error.rs +1 -9
  156. package/src/errors/consensus/state/identity/identity_public_key_is_disabled_error.rs +1 -9
  157. package/src/errors/consensus/state/identity/identity_public_key_is_read_only_error.rs +1 -9
  158. package/src/errors/consensus/state/identity/invalid_identity_public_key_id_error.rs +2 -9
  159. package/src/errors/consensus/state/identity/invalid_identity_revision_error.rs +1 -9
  160. package/src/errors/consensus/state/identity/max_identity_public_key_limit_reached_error.rs +1 -9
  161. package/src/errors/consensus/value_error.rs +1 -9
  162. package/src/errors/from.rs +12 -8
  163. package/src/errors/mod.rs +7 -7
  164. package/src/errors/value_error.rs +5 -0
  165. package/src/identity/errors/asset_lock_transaction_is_not_found_error.rs +1 -2
  166. package/src/identity/factory_utils.rs +13 -13
  167. package/src/identity/identity.rs +275 -0
  168. package/src/identity/identity_facade.rs +94 -75
  169. package/src/identity/identity_factory.rs +74 -54
  170. package/src/identity/identity_public_key/mod.rs +87 -64
  171. package/src/identity/mod.rs +25 -247
  172. package/src/identity/state_transition/asset_lock_proof/chain/chain_asset_lock_proof.rs +32 -17
  173. package/src/identity/state_transition/asset_lock_proof/chain/chain_asset_lock_proof_structure_validator.rs +0 -1
  174. package/src/identity/state_transition/asset_lock_proof/chain/mod.rs +3 -1
  175. package/src/identity/state_transition/asset_lock_proof/instant/instant_asset_lock_proof.rs +24 -15
  176. package/src/identity/state_transition/asset_lock_proof/instant/instant_asset_lock_proof_structure_validator.rs +0 -1
  177. package/src/identity/state_transition/asset_lock_proof/instant/mod.rs +3 -1
  178. package/src/identity/state_transition/asset_lock_proof/mod.rs +124 -127
  179. package/src/identity/state_transition/identity_create_transition/identity_create_transition.rs +72 -65
  180. package/src/identity/state_transition/identity_create_transition/identity_create_transition_basic_validator.rs +0 -1
  181. package/src/identity/state_transition/identity_create_transition/mod.rs +3 -3
  182. package/src/identity/state_transition/identity_create_transition/to_object.rs +11 -12
  183. package/src/identity/state_transition/identity_credit_transfer_transition/apply_identity_credit_transfer_transition.rs +31 -0
  184. package/src/identity/state_transition/identity_credit_transfer_transition/identity_credit_transfer_transition_basic_validator.rs +66 -0
  185. package/src/identity/state_transition/identity_credit_transfer_transition/identity_credit_transfer_transition_state_validator.rs +44 -0
  186. package/src/identity/state_transition/identity_credit_transfer_transition/mod.rs +8 -0
  187. package/src/identity/state_transition/identity_credit_transfer_transition/to_object.rs +49 -0
  188. package/src/identity/state_transition/identity_credit_transfer_transition/transition.rs +344 -0
  189. package/src/identity/state_transition/identity_public_key_transitions.rs +89 -75
  190. package/src/identity/state_transition/identity_topup_transition/identity_topup_transition.rs +68 -62
  191. package/src/identity/state_transition/identity_topup_transition/identity_topup_transition_basic_validator.rs +0 -2
  192. package/src/identity/state_transition/identity_topup_transition/mod.rs +3 -3
  193. package/src/identity/state_transition/identity_topup_transition/to_object.rs +9 -12
  194. package/src/identity/state_transition/identity_update_transition/identity_update_public_keys_validator.rs +2 -2
  195. package/src/identity/state_transition/identity_update_transition/identity_update_transition.rs +99 -104
  196. package/src/identity/state_transition/identity_update_transition/mod.rs +4 -4
  197. package/src/identity/state_transition/identity_update_transition/to_object.rs +15 -19
  198. package/src/identity/state_transition/mod.rs +5 -2
  199. package/src/identity/state_transition/transition_types.rs +34 -0
  200. package/src/identity/state_transition/validate_public_key_signatures.rs +2 -2
  201. package/src/lib.rs +9 -10
  202. package/src/metadata.rs +3 -3
  203. package/src/protocol_version.rs +7 -0
  204. package/src/state_transition/conversion.rs +11 -1
  205. package/src/state_transition/errors/invalid_state_transition_error.rs +12 -1
  206. package/src/state_transition/fee/operations/pre_calculated_operation.rs +2 -1
  207. package/src/state_transition/mod.rs +137 -139
  208. package/src/state_transition/state_transition_facade.rs +11 -11
  209. package/src/state_transition/state_transition_factory.rs +142 -153
  210. package/src/state_transition/validation/state_transition_fee_validator.rs +1 -1
  211. package/src/state_transition/validation/validate_state_transition_identity_signature.rs +28 -10
  212. package/src/state_transition/validation/validate_state_transition_key_signature.rs +1 -1
  213. package/src/utils.rs +7 -8
  214. package/src/validation/mod.rs +2 -2
  215. package/src/validation/validation_result.rs +17 -15
  216. package/test/integration/dataContract/DataContractFacade.spec.js +25 -32
  217. package/test/integration/dataContract/stateTransition/DataContractCreateTransition/validation/basic/validateDataContractCreateTransitionBasicFactory.spec.js +6 -6
  218. package/test/integration/dataContract/stateTransition/DataContractUpdateTransition/validation/basic/validateDataContractUpdateTransitionBasicFactory.spec.js +11 -10
  219. package/test/integration/dataContract/validation/validateDataContractFactory.spec.js +3 -3
  220. package/test/integration/document/Document.spec.js +3 -3
  221. package/test/integration/document/DocumentFacade.spec.js +33 -48
  222. package/test/integration/document/stateTransition/DocumentsBatchTransition/DocumentBatchTransition.spec.js +13 -24
  223. package/test/integration/document/stateTransition/DocumentsBatchTransition/validation/basic/validateDocumentsBatchTransitionBasicFactory.spec.js +15 -15
  224. package/test/integration/document/validation/validateDocumentFactory.spec.js +3 -3
  225. package/test/integration/identity/IdentityFacade.spec.js +33 -63
  226. package/test/integration/identity/stateTransition/IdentityCreateTransition/validation/basic/validateIdentityCreateTransitionBasicFactory.spec.js +6 -8
  227. package/test/integration/identity/stateTransition/IdentityTopUpTransition/validation/basic/validateIdentityTopUpTransitionBasicFactory.spec.js +4 -7
  228. package/test/integration/identity/stateTransition/IdentityUpdateTransition/validation/basic/validateIdentityUpdateTransitionBasicFactory.spec.js +1 -1
  229. package/test/integration/identity/stateTransition/IdentityUpdateTransition/validation/state/validateIdentityUpdateTransitionStateFactory.spec.js +21 -24
  230. package/test/integration/identity/stateTransition/IdentityUpdateTransition/validation/state/validatePublicKeysState.spec.js +2 -2
  231. package/test/integration/identity/stateTransition/assetLockProof/chain/validateChainAssetLockProofStructureFactory.spec.js +4 -4
  232. package/test/integration/identity/stateTransition/assetLockProof/fetchAssetLockTransactionOutputFactory.spec.js +7 -10
  233. package/test/integration/identity/stateTransition/assetLockProof/instant/validateInstantAssetLockProofStructureFactory.spec.js +5 -6
  234. package/test/integration/identity/stateTransition/assetLockProof/validateAssetLockTransactionFactory.spec.js +6 -6
  235. package/test/integration/identity/stateTransition/validatePublicKeySignaturesFactory.spec.js +5 -9
  236. package/test/integration/identity/validation/validateIdentityFactory.spec.js +7 -6
  237. package/test/integration/identity/validation/validatePublicKeysFactory.spec.js +5 -25
  238. package/test/integration/stateTransition/StateTransitionFacade.spec.js +45 -58
  239. package/test/integration/util/generateTemporaryEcdsaPrivateKey.spec.js +1 -1
  240. package/test/unit/DashPlatformProtocol.spec.js +10 -25
  241. package/test/unit/dataContract/DataContract.spec.js +119 -148
  242. package/test/unit/dataContract/DataContractFactory.spec.js +42 -31
  243. package/test/unit/dataContract/createDataContract.spec.js +6 -6
  244. package/test/unit/dataContract/generateDataContractId.spec.js +1 -1
  245. package/test/unit/dataContract/stateTransition/DataContractCreateTransition/DataContractCreateTransition.spec.js +34 -26
  246. package/test/unit/dataContract/stateTransition/DataContractCreateTransition/validation/state/validateDataContractCreateTransitionStateFactory.spec.js +10 -9
  247. package/test/unit/dataContract/stateTransition/DataContractUpdateTransition/DataContractUpdateTransition.spec.js +34 -27
  248. package/test/unit/dataContract/stateTransition/DataContractUpdateTransition/validation/basic/validateIndicesAreBackwardCompatible.spec.js +5 -5
  249. package/test/unit/dataContract/stateTransition/DataContractUpdateTransition/validation/state/validateDataContractUpdateTransitionStateFactory.spec.js +11 -10
  250. package/test/unit/dataContract/validation/validateDataContractPatterns.spec.js +7 -7
  251. package/test/unit/document/Document.spec.js +59 -70
  252. package/test/unit/document/DocumentFactory.spec.js +46 -111
  253. package/test/unit/document/errors/InvalidDocumentError.spec.js +9 -9
  254. package/test/unit/document/fetchAndValidateDataContractFactory.spec.js +1 -1
  255. package/test/unit/document/stateTransition/DocumetsBatchTransition/DocumentsBatchTransition.spec.js +160 -158
  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 +134 -136
  259. package/test/unit/document/stateTransition/DocumetsBatchTransition/validation/basic/validatePartialCompoundIndices.spec.js +4 -4
  260. package/test/unit/document/stateTransition/DocumetsBatchTransition/validation/state/validateDocumentsBatchTransitionStateFactory.spec.js +572 -595
  261. package/test/unit/document/stateTransition/DocumetsBatchTransition/validation/state/validateDocumentsUniquenessByIndicesFactory.spec.js +6 -14
  262. package/test/unit/identity/Identity.spec.js +48 -83
  263. package/test/unit/identity/IdentityFactory.spec.js +61 -75
  264. package/test/unit/identity/IdentityPublicKey.spec.js +34 -48
  265. package/test/unit/identity/stateTransition/IdentityCreateTransition/IdentityCreateTransition.spec.js +30 -63
  266. package/test/unit/identity/stateTransition/IdentityCreateTransition/validation/state/validateIdentityCreateTransitionStateFactory.spec.js +5 -9
  267. package/test/unit/identity/stateTransition/IdentityTopUpTransition/IdentityTopUpTransition.spec.js +13 -35
  268. package/test/unit/identity/stateTransition/IdentityTopUpTransition/validation/state/validateIdentityTopUpTransitionStateFactory.spec.js +5 -9
  269. package/test/unit/identity/stateTransition/IdentityUpdateTransition/IdentityUpdateTransition.spec.js +24 -46
  270. package/test/unit/identity/stateTransition/assetLockProof/ChainAssetLockProof.spec.js +9 -28
  271. package/test/unit/identity/stateTransition/assetLockProof/InstantAssetLockProof.spec.js +19 -27
  272. package/test/unit/identity/stateTransition/identityCreditTransferTransition/identityCreditTransferTransition.spec.js +130 -0
  273. package/test/unit/stateTransition/StateTransitionExecutionContext.spec.js +1 -1
  274. package/test/unit/stateTransition/StateTransitionFactory.spec.js +16 -22
  275. package/test/unit/stateTransition/createStateTransitionFactory.spec.js +43 -21
  276. package/test/unit/stateTransition/validation/validateStateTransitionBasicFactory.spec.js +3 -3
  277. package/test/unit/stateTransition/validation/validateStateTransitionFeeFactory.spec.js +5 -17
  278. package/test/unit/stateTransition/validation/validateStateTransitionIdentitySignatureFactory.spec.js +9 -5
  279. package/test/unit/stateTransition/validation/validateStateTransitionKeySignatureFactory.spec.js +8 -14
  280. package/test/unit/stateTransition/validation/validateStateTransitionStateFactory.spec.js +1 -1
  281. package/test/unit/version/validateProtocolVersionFactory.spec.js +1 -1
  282. package/test-d/index.test-d.ts +2 -2
  283. package/lib/test/fixtures/getDashPayContractFixture.js +0 -1
  284. package/lib/test/fixtures/getDashPayDocumentFixture.js +0 -1
  285. package/lib/test/fixtures/getDpnsContractFixture.js +0 -1
  286. package/lib/test/fixtures/getDpnsDocumentFixture.js +0 -1
  287. package/lib/test/fixtures/getFeatureFlagsContractFixture.js +0 -1
  288. package/lib/test/fixtures/getFeatureFlagsDocumentsFixture.js +0 -1
  289. package/lib/test/fixtures/getIdentityTopUpTransitionFixtureJs.js +0 -1
  290. package/lib/test/fixtures/getMasternodeRewardShareDocumentsFixture.js +0 -1
  291. package/lib/test/fixtures/getMasternodeRewardSharesContractFixture.js +0 -1
  292. package/lib/test/fixtures/getPreorderDocumentFixture.js +0 -1
  293. package/lib/test/fixtures/getRawTransactionFixture.js +0 -1
  294. package/src/data_contract/state_transition/data_contract_create_transition/apply.rs +0 -45
  295. package/src/data_contract/state_transition/data_contract_update_transition/apply.rs +0 -49
  296. package/src/decode_protocol_entity.rs +0 -25
  297. package/src/document/state_transition/document_batch_transition/apply_document_batch_transition.rs +0 -25
  298. package/test/integration/DashPlatformProtocol.spec.js +0 -53
  299. package/test/integration/ajv/keywords/byteArray/addByteArrayKeyword.spec.js +0 -148
  300. package/test/integration/document/stateTransition/DocumentsBatchTransition/validation/state/executeDataTriggersFactory.spec.js +0 -195
  301. package/test/integration/stateTransition/AbstractStateTransitionIdentitySigned.spec.js +0 -500
  302. package/test/integration/stateTransition/calculateStateTransitionFeeFromOperationsFactory.spec.js +0 -53
  303. package/test/integration/util/generateEntropy.spec.js +0 -17
  304. package/test/integration/util/serializer.spec.js +0 -24
  305. package/test/unit/dataContract/getBinaryPropertiesFromSchema.spec.js +0 -103
  306. package/test/unit/dataContract/getPropertyDefinitionByPath.spec.js +0 -84
  307. package/test/unit/dataContract/stateTransition/DataContractCreateTransition/applyDataContractCreateTransitionFactory.spec.js +0 -47
  308. package/test/unit/dataContract/stateTransition/DataContractUpdateTransition/applyDataContractUpdateTransitionFactory.spec.js +0 -49
  309. package/test/unit/dataTrigger/DataTrigger.spec.js +0 -132
  310. package/test/unit/dataTrigger/DataTriggerExecutionContext.spec.js +0 -29
  311. package/test/unit/dataTrigger/dashpayDataTriggers/createContactRequestDataTrigger.spec.js +0 -107
  312. package/test/unit/dataTrigger/dpnsTriggers/createDomainDataTrigger.spec.js +0 -382
  313. package/test/unit/dataTrigger/featureFlagDataTriggers/createFeatureFlagDataTrigger.spec.js +0 -99
  314. package/test/unit/dataTrigger/getDataTriggersFactory.spec.js +0 -113
  315. package/test/unit/dataTrigger/rejectDataTrigger.spec.js +0 -51
  316. package/test/unit/dataTrigger/rewardShareDataTriggers/createMasternodeRewardSharesDataTrigger.spec.js +0 -202
  317. package/test/unit/decodeProtocolEntityFactory.spec.js +0 -69
  318. package/test/unit/document/stateTransition/DocumetsBatchTransition/applyDocumentsBatchTransitionFactory.spec.js +0 -257
  319. package/test/unit/document/stateTransition/DocumetsBatchTransition/validation/state/fetchDocumentsFactory.spec.js +0 -94
  320. package/test/unit/errors/consensus/codes.spec.js +0 -102
  321. package/test/unit/identity/creditsConverter.spec.js +0 -34
  322. package/test/unit/identity/errors/InvalidIdentityError.spec.js +0 -46
  323. package/test/unit/identity/stateTransition/IdentityCreateTransition/applyIdentityCreateTransitionFactory.spec.js +0 -89
  324. package/test/unit/identity/stateTransition/IdentityTopUpTransition/applyIdentityTopUpTransitionFactory.spec.js +0 -142
  325. package/test/unit/identity/stateTransition/IdentityUpdateTransition/applyIdentityUpdateTransitionFactory.spec.js +0 -100
  326. package/test/unit/identity/stateTransition/assetLockProof/createAssetLockProofInstance.spec.js +0 -36
  327. package/test/unit/identity/stateTransition/assetLockProof/fetchAssetLockPublicKeyHashFactory.spec.js +0 -63
  328. package/test/unit/identity/validation/validateRequiredPurposeAndSecurityLevelFactory.spec.js +0 -47
  329. 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() {}
@@ -30,4 +30,9 @@ impl InvalidDocumentError {
30
30
  pub fn get_document(&self) -> JsValue {
31
31
  self.raw_document.clone()
32
32
  }
33
+
34
+ #[wasm_bindgen(js_name=getMessage)]
35
+ pub fn get_message(&self) -> String {
36
+ self.to_string()
37
+ }
33
38
  }
@@ -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
  }