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

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,15 +1,8 @@
1
1
  use dpp::identity::KeyID;
2
2
 
3
3
  use dpp::{
4
- document::{
5
- document_transition::document_base_transition,
6
- state_transition::documents_batch_transition::property_names, DocumentsBatchTransition,
7
- },
8
- prelude::{DataContract, DocumentTransition, Identifier},
9
- state_transition::{
10
- StateTransitionConvert, StateTransitionIdentitySigned, StateTransitionLike,
11
- StateTransitionType,
12
- },
4
+ prelude::{DataContract, Identifier},
5
+ state_transition::{StateTransitionFieldTypes, StateTransitionLike, StateTransitionType},
13
6
  util::json_value::JsonValueExt,
14
7
  ProtocolError,
15
8
  };
@@ -19,20 +12,29 @@ use serde::{Deserialize, Serialize};
19
12
  use dpp::consensus::signature::SignatureError;
20
13
  use dpp::consensus::ConsensusError;
21
14
  use dpp::platform_value::{BinaryData, ReplacementType};
15
+ use dpp::serialization::PlatformSerializable;
16
+ use dpp::state_transition::documents_batch_transition::accessors::DocumentsBatchTransitionAccessorsV0;
17
+ use dpp::state_transition::documents_batch_transition::document_transition::DocumentTransition;
18
+ use dpp::state_transition::documents_batch_transition::DocumentsBatchTransition;
19
+ use dpp::state_transition::StateTransition;
22
20
  use wasm_bindgen::prelude::*;
23
21
 
24
22
  use crate::{
25
23
  bls_adapter::{BlsAdapter, JsBlsAdapter},
26
24
  buffer::Buffer,
27
- document_batch_transition::document_transition::DocumentTransitionWasm,
28
25
  identifier::IdentifierWrapper,
29
26
  lodash::lodash_set,
30
27
  utils::{Inner, IntoWasm, ToSerdeJSONExt, WithJsError},
31
28
  IdentityPublicKeyWasm,
32
29
  };
33
- pub mod apply_document_batch_transition;
30
+
31
+ use document_transition::DocumentTransitionWasm;
32
+ use dpp::state_transition::documents_batch_transition::methods::v0::DocumentsBatchTransitionMethodsV0;
33
+
34
+ use dpp::state_transition::StateTransitionIdentitySigned;
35
+
34
36
  pub mod document_transition;
35
- pub mod validation;
37
+ // pub mod validation;
36
38
 
37
39
  #[derive(Clone, Debug)]
38
40
  #[wasm_bindgen(js_name = DocumentsBatchTransition)]
@@ -49,44 +51,44 @@ pub struct ToObjectOptions {
49
51
 
50
52
  #[wasm_bindgen(js_class=DocumentsBatchTransition)]
51
53
  impl DocumentsBatchTransitionWasm {
52
- #[wasm_bindgen(constructor)]
53
- pub fn from_raw_object(
54
- js_raw_transition: JsValue,
55
- data_contracts: Array,
56
- ) -> Result<DocumentsBatchTransitionWasm, JsValue> {
57
- let data_contracts_array_js = Array::from(&data_contracts);
58
-
59
- let mut data_contracts: Vec<DataContract> = vec![];
60
-
61
- for contract in data_contracts_array_js.iter() {
62
- let value = contract.with_serde_to_platform_value()?;
63
- let data_contract = DataContract::from_raw_object(value).with_js_error()?;
64
- data_contracts.push(data_contract);
65
- }
66
-
67
- let mut batch_transition_value = js_raw_transition.with_serde_to_platform_value()?;
68
- let base_identifier_fields = document_base_transition::IDENTIFIER_FIELDS
69
- .iter()
70
- .map(|field| format!("{}[].{}", property_names::TRANSITIONS, field))
71
- .collect::<Vec<_>>();
72
- batch_transition_value
73
- .replace_at_paths(
74
- DocumentsBatchTransition::identifiers_property_paths()
75
- .into_iter()
76
- .chain(base_identifier_fields.iter().map(|s| s.as_str())),
77
- ReplacementType::Identifier,
78
- )
79
- .map_err(ProtocolError::ValueError)
80
- .with_js_error()?;
81
-
82
- let documents_batch_transition = DocumentsBatchTransition::from_raw_object_with_contracts(
83
- batch_transition_value,
84
- data_contracts,
85
- )
86
- .with_js_error()?;
87
-
88
- Ok(documents_batch_transition.into())
89
- }
54
+ // #[wasm_bindgen(constructor)]
55
+ // pub fn from_object(
56
+ // js_raw_transition: JsValue,
57
+ // data_contracts: Array,
58
+ // ) -> Result<DocumentsBatchTransitionWasm, JsValue> {
59
+ // let data_contracts_array_js = Array::from(&data_contracts);
60
+ //
61
+ // let mut data_contracts: Vec<DataContract> = vec![];
62
+ //
63
+ // for contract in data_contracts_array_js.iter() {
64
+ // let value = contract.with_serde_to_platform_value()?;
65
+ // let data_contract = DataContract::from_value(value).with_js_error()?;
66
+ // data_contracts.push(data_contract);
67
+ // }
68
+ //
69
+ // let mut batch_transition_value = js_raw_transition.with_serde_to_platform_value()?;
70
+ // let base_identifier_fields = document_base_transition::IDENTIFIER_FIELDS
71
+ // .iter()
72
+ // .map(|field| format!("{}[].{}", property_names::TRANSITIONS, field))
73
+ // .collect::<Vec<_>>();
74
+ // batch_transition_value
75
+ // .replace_at_paths(
76
+ // DocumentsBatchTransition::identifiers_property_paths()
77
+ // .into_iter()
78
+ // .chain(base_identifier_fields.iter().map(|s| s.as_str())),
79
+ // ReplacementType::Identifier,
80
+ // )
81
+ // .map_err(ProtocolError::ValueError)
82
+ // .with_js_error()?;
83
+ //
84
+ // let documents_batch_transition = DocumentsBatchTransition::from_object_with_contracts(
85
+ // batch_transition_value,
86
+ // data_contracts,
87
+ // )
88
+ // .with_js_error()?;
89
+ //
90
+ // Ok(documents_batch_transition.into())
91
+ // }
90
92
 
91
93
  #[wasm_bindgen(js_name=getType)]
92
94
  pub fn get_type(&self) -> u8 {
@@ -95,13 +97,13 @@ impl DocumentsBatchTransitionWasm {
95
97
 
96
98
  #[wasm_bindgen(js_name=getOwnerId)]
97
99
  pub fn get_owner_id(&self) -> IdentifierWrapper {
98
- self.0.get_owner_id().to_owned().into()
100
+ self.0.owner_id().to_owned().into()
99
101
  }
100
102
 
101
103
  #[wasm_bindgen(js_name=getTransitions)]
102
104
  pub fn get_transitions(&self) -> js_sys::Array {
103
105
  let array = js_sys::Array::new();
104
- let transitions = self.0.get_transitions();
106
+ let transitions = self.0.transitions();
105
107
 
106
108
  for tr in transitions.iter().cloned() {
107
109
  let transition: DocumentTransitionWasm = tr.into();
@@ -122,131 +124,132 @@ impl DocumentsBatchTransitionWasm {
122
124
  transitions.push(transition)
123
125
  }
124
126
 
125
- self.0.transitions = transitions;
126
- Ok(())
127
- }
128
-
129
- #[wasm_bindgen(js_name=toJSON)]
130
- pub fn to_json(&self) -> Result<JsValue, JsValue> {
131
- let value = self.0.to_json(false).with_js_error()?;
132
- let serializer = serde_wasm_bindgen::Serializer::json_compatible();
133
-
134
- let is_null_signature = value.get(property_names::SIGNATURE).is_none();
135
- let is_null_signature_public_key_id =
136
- value.get(property_names::SIGNATURE_PUBLIC_KEY_ID).is_none();
127
+ self.0.set_transitions(transitions);
137
128
 
138
- let js_value = value.serialize(&serializer)?;
139
-
140
- if is_null_signature {
141
- js_sys::Reflect::set(
142
- &js_value,
143
- &property_names::SIGNATURE.into(),
144
- &JsValue::undefined(),
145
- )?;
146
- }
147
- if is_null_signature_public_key_id {
148
- js_sys::Reflect::set(
149
- &js_value,
150
- &property_names::SIGNATURE_PUBLIC_KEY_ID.into(),
151
- &JsValue::undefined(),
152
- )?;
153
- }
154
-
155
- Ok(js_value)
129
+ Ok(())
156
130
  }
157
131
 
158
- #[wasm_bindgen(js_name=toObject)]
159
- pub fn to_object(&self, js_options: &JsValue) -> Result<JsValue, JsValue> {
160
- let options: ToObjectOptions = if js_options.is_object() {
161
- let raw_options = js_options.with_serde_to_json_value()?;
162
- serde_json::from_value(raw_options).with_js_error()?
163
- } else {
164
- Default::default()
165
- };
166
-
167
- let mut value = self
168
- .0
169
- .to_cleaned_object(options.skip_signature)
170
- .with_js_error()?;
171
- let serializer = serde_wasm_bindgen::Serializer::json_compatible();
172
- let js_value = value.serialize(&serializer)?;
173
- let is_signature_present = value
174
- .get(property_names::SIGNATURE)
175
- .map_err(ProtocolError::ValueError)
176
- .with_js_error()?
177
- .is_some();
178
-
179
- // Transform every transition individually
180
- let transitions = Array::new();
181
- for transition in self.0.transitions.iter() {
182
- let js_value =
183
- DocumentTransitionWasm::from(transition.to_owned()).to_object(js_options)?;
184
- transitions.push(&js_value);
185
- }
186
- // Replace the whole collection of transitions
187
- Reflect::set(
188
- &js_value,
189
- &property_names::TRANSITIONS.into(),
190
- &transitions.into(),
191
- )?;
192
-
193
- // Transform paths that are specific to the DocumentsBatchTransition
194
- for path in DocumentsBatchTransition::binary_property_paths() {
195
- if let Some(bytes) = value
196
- .remove_optional_value_at_path(path)
197
- .and_then(|value| value.map(|value| value.to_binary_bytes()).transpose())
198
- .map_err(ProtocolError::ValueError)
199
- .with_js_error()?
200
- {
201
- let buffer = Buffer::from_bytes_owned(bytes);
202
- lodash_set(&js_value, path, buffer.into());
203
- }
204
- }
205
- for path in DocumentsBatchTransition::identifiers_property_paths() {
206
- if let Some(bytes) = value
207
- .remove_optional_value_at_path(path)
208
- .and_then(|value| value.map(|value| value.to_identifier_bytes()).transpose())
209
- .map_err(ProtocolError::ValueError)
210
- .with_js_error()?
211
- {
212
- let buffer = Buffer::from_bytes_owned(bytes);
213
- if !options.skip_identifiers_conversion {
214
- lodash_set(&js_value, path, buffer.into());
215
- } else {
216
- let id = IdentifierWrapper::new(buffer.into());
217
- lodash_set(&js_value, path, id.into());
218
- }
219
- }
220
- }
221
-
222
- if !is_signature_present && !options.skip_signature {
223
- js_sys::Reflect::set(
224
- &js_value,
225
- &property_names::SIGNATURE.into(),
226
- &JsValue::undefined(),
227
- )?;
228
- }
229
- if value
230
- .get(property_names::SIGNATURE_PUBLIC_KEY_ID)
231
- .map_err(ProtocolError::ValueError)
232
- .with_js_error()?
233
- .is_none()
234
- {
235
- js_sys::Reflect::set(
236
- &js_value,
237
- &property_names::SIGNATURE_PUBLIC_KEY_ID.into(),
238
- &JsValue::undefined(),
239
- )?;
240
- }
241
-
242
- Ok(js_value)
243
- }
132
+ // #[wasm_bindgen(js_name=toJSON)]
133
+ // pub fn to_json(&self) -> Result<JsValue, JsValue> {
134
+ // let value = self.0.to_json(false).with_js_error()?;
135
+ // let serializer = serde_wasm_bindgen::Serializer::json_compatible();
136
+ //
137
+ // let is_null_signature = value.get(property_names::SIGNATURE).is_none();
138
+ // let is_null_signature_public_key_id =
139
+ // value.get(property_names::SIGNATURE_PUBLIC_KEY_ID).is_none();
140
+ //
141
+ // let js_value = value.serialize(&serializer)?;
142
+ //
143
+ // if is_null_signature {
144
+ // js_sys::Reflect::set(
145
+ // &js_value,
146
+ // &property_names::SIGNATURE.into(),
147
+ // &JsValue::undefined(),
148
+ // )?;
149
+ // }
150
+ // if is_null_signature_public_key_id {
151
+ // js_sys::Reflect::set(
152
+ // &js_value,
153
+ // &property_names::SIGNATURE_PUBLIC_KEY_ID.into(),
154
+ // &JsValue::undefined(),
155
+ // )?;
156
+ // }
157
+ //
158
+ // Ok(js_value)
159
+ // }
160
+
161
+ // #[wasm_bindgen(js_name=toObject)]
162
+ // pub fn to_object(&self, js_options: &JsValue) -> Result<JsValue, JsValue> {
163
+ // let options: ToObjectOptions = if js_options.is_object() {
164
+ // let raw_options = js_options.with_serde_to_json_value()?;
165
+ // serde_json::from_value(raw_options).with_js_error()?
166
+ // } else {
167
+ // Default::default()
168
+ // };
169
+ //
170
+ // let mut value = self
171
+ // .0
172
+ // .to_cleaned_object(options.skip_signature)
173
+ // .with_js_error()?;
174
+ // let serializer = serde_wasm_bindgen::Serializer::json_compatible();
175
+ // let js_value = value.serialize(&serializer)?;
176
+ // let is_signature_present = value
177
+ // .get(property_names::SIGNATURE)
178
+ // .map_err(ProtocolError::ValueError)
179
+ // .with_js_error()?
180
+ // .is_some();
181
+ //
182
+ // // Transform every transition individually
183
+ // let transitions = Array::new();
184
+ // for transition in self.0.transitions.iter() {
185
+ // let js_value =
186
+ // DocumentTransitionWasm::from(transition.to_owned()).to_object(js_options)?;
187
+ // transitions.push(&js_value);
188
+ // }
189
+ // // Replace the whole collection of transitions
190
+ // Reflect::set(
191
+ // &js_value,
192
+ // &property_names::TRANSITIONS.into(),
193
+ // &transitions.into(),
194
+ // )?;
195
+ //
196
+ // // Transform paths that are specific to the DocumentsBatchTransition
197
+ // for path in DocumentsBatchTransition::binary_property_paths() {
198
+ // if let Some(bytes) = value
199
+ // .remove_optional_value_at_path(path)
200
+ // .and_then(|value| value.map(|value| value.to_binary_bytes()).transpose())
201
+ // .map_err(ProtocolError::ValueError)
202
+ // .with_js_error()?
203
+ // {
204
+ // let buffer = Buffer::from_bytes_owned(bytes);
205
+ // lodash_set(&js_value, path, buffer.into());
206
+ // }
207
+ // }
208
+ // for path in DocumentsBatchTransition::identifiers_property_paths() {
209
+ // if let Some(bytes) = value
210
+ // .remove_optional_value_at_path(path)
211
+ // .and_then(|value| value.map(|value| value.to_identifier_bytes()).transpose())
212
+ // .map_err(ProtocolError::ValueError)
213
+ // .with_js_error()?
214
+ // {
215
+ // let buffer = Buffer::from_bytes_owned(bytes);
216
+ // if !options.skip_identifiers_conversion {
217
+ // lodash_set(&js_value, path, buffer.into());
218
+ // } else {
219
+ // let id = IdentifierWrapper::new(buffer.into());
220
+ // lodash_set(&js_value, path, id.into());
221
+ // }
222
+ // }
223
+ // }
224
+ //
225
+ // if !is_signature_present && !options.skip_signature {
226
+ // js_sys::Reflect::set(
227
+ // &js_value,
228
+ // &property_names::SIGNATURE.into(),
229
+ // &JsValue::undefined(),
230
+ // )?;
231
+ // }
232
+ // if value
233
+ // .get(property_names::SIGNATURE_PUBLIC_KEY_ID)
234
+ // .map_err(ProtocolError::ValueError)
235
+ // .with_js_error()?
236
+ // .is_none()
237
+ // {
238
+ // js_sys::Reflect::set(
239
+ // &js_value,
240
+ // &property_names::SIGNATURE_PUBLIC_KEY_ID.into(),
241
+ // &JsValue::undefined(),
242
+ // )?;
243
+ // }
244
+ //
245
+ // Ok(js_value)
246
+ // }
244
247
 
245
248
  #[wasm_bindgen(js_name=getModifiedDataIds)]
246
249
  pub fn get_modified_ids(&self) -> Array {
247
250
  let array = Array::new();
248
251
 
249
- for id in self.0.get_modified_data_ids() {
252
+ for id in self.0.modified_data_ids() {
250
253
  let id = <IdentifierWrapper as From<Identifier>>::from(id.to_owned());
251
254
  array.push(&id.into());
252
255
  }
@@ -256,8 +259,8 @@ impl DocumentsBatchTransitionWasm {
256
259
 
257
260
  // AbstractSTateTransitionIdentitySigned methods
258
261
  #[wasm_bindgen(js_name=getSignaturePublicKeyId)]
259
- pub fn get_signature_public_key_id(&self) -> Option<f64> {
260
- self.0.get_signature_public_key_id().map(|v| v as f64)
262
+ pub fn get_signature_public_key_id(&self) -> u32 {
263
+ self.0.signature_public_key_id()
261
264
  }
262
265
 
263
266
  #[wasm_bindgen(js_name=sign)]
@@ -267,34 +270,46 @@ impl DocumentsBatchTransitionWasm {
267
270
  private_key: &[u8],
268
271
  bls: JsBlsAdapter,
269
272
  ) -> Result<(), JsValue> {
270
- self.0
273
+ let bls_adapter = BlsAdapter(bls);
274
+
275
+ // TODO: come up with a better way to set signature to the binding.
276
+ let mut state_transition = StateTransition::DocumentsBatch(self.0.clone());
277
+ state_transition
271
278
  .sign(
272
279
  &identity_public_key.to_owned().into(),
273
- private_key,
274
- &BlsAdapter(bls),
280
+ &private_key,
281
+ &bls_adapter,
275
282
  )
276
- .with_js_error()
277
- }
283
+ .with_js_error()?;
278
284
 
279
- #[wasm_bindgen(js_name=verifyPublicKeyLevelAndPurpose)]
280
- pub fn verify_public_key_level_and_purpose(
281
- &self,
282
- public_key: &IdentityPublicKeyWasm,
283
- ) -> Result<(), JsValue> {
284
- self.0
285
- .verify_public_key_level_and_purpose(public_key.inner())
286
- .with_js_error()
287
- }
285
+ let signature = state_transition.signature().to_owned();
286
+ let signature_public_key_id = state_transition.signature_public_key_id().unwrap_or(0);
288
287
 
289
- #[wasm_bindgen(js_name=verifyPublicKeyIsEnabled)]
290
- pub fn verify_public_key_is_enabled(
291
- &self,
292
- public_key: &IdentityPublicKeyWasm,
293
- ) -> Result<(), JsValue> {
294
- self.0
295
- .verify_public_key_is_enabled(public_key.inner())
296
- .with_js_error()
288
+ self.0.set_signature(signature);
289
+ self.0.set_signature_public_key_id(signature_public_key_id);
290
+
291
+ Ok(())
297
292
  }
293
+ //
294
+ // #[wasm_bindgen(js_name=verifyPublicKeyLevelAndPurpose)]
295
+ // pub fn verify_public_key_level_and_purpose(
296
+ // &self,
297
+ // public_key: &IdentityPublicKeyWasm,
298
+ // ) -> Result<(), JsValue> {
299
+ // self.0
300
+ // .verify_public_key_level_and_purpose(public_key.inner())
301
+ // .with_js_error()
302
+ // }
303
+ //
304
+ // #[wasm_bindgen(js_name=verifyPublicKeyIsEnabled)]
305
+ // pub fn verify_public_key_is_enabled(
306
+ // &self,
307
+ // public_key: &IdentityPublicKeyWasm,
308
+ // ) -> Result<(), JsValue> {
309
+ // self.0
310
+ // .verify_public_key_is_enabled(public_key.inner())
311
+ // .with_js_error()
312
+ // }
298
313
 
299
314
  #[wasm_bindgen(js_name=verifySignature)]
300
315
  pub fn verify_signature(
@@ -304,8 +319,7 @@ impl DocumentsBatchTransitionWasm {
304
319
  ) -> Result<bool, JsValue> {
305
320
  let bls_adapter = BlsAdapter(bls);
306
321
 
307
- let verification_result = self
308
- .0
322
+ let verification_result = StateTransition::DocumentsBatch(self.0.clone())
309
323
  .verify_signature(&identity_public_key.to_owned().into(), &bls_adapter);
310
324
 
311
325
  match verification_result {
@@ -331,21 +345,21 @@ impl DocumentsBatchTransitionWasm {
331
345
  #[wasm_bindgen(js_name=getKeySecurityLevelRequirement)]
332
346
  pub fn get_security_level_requirement(&self) -> js_sys::Array {
333
347
  let array = js_sys::Array::new();
334
- for security_level in self.0.get_security_level_requirement() {
348
+ for security_level in self.0.security_level_requirement() {
335
349
  array.push(&JsValue::from(security_level as u32));
336
350
  }
337
351
  array
338
352
  }
339
353
 
340
354
  // AbstractStateTransition methods
341
- #[wasm_bindgen(js_name=getProtocolVersion)]
342
- pub fn get_protocol_version(&self) -> u32 {
343
- self.0.get_protocol_version()
344
- }
355
+ // #[wasm_bindgen(js_name=getProtocolVersion)]
356
+ // pub fn get_protocol_version(&self) -> u32 {
357
+ // self.0.state_transition_protocol_version()
358
+ // }
345
359
 
346
360
  #[wasm_bindgen(js_name=getSignature)]
347
361
  pub fn get_signature(&self) -> Vec<u8> {
348
- self.0.get_signature().to_vec()
362
+ self.0.signature().to_vec()
349
363
  }
350
364
 
351
365
  #[wasm_bindgen(js_name=setSignature)]
@@ -369,30 +383,26 @@ impl DocumentsBatchTransitionWasm {
369
383
  }
370
384
 
371
385
  #[wasm_bindgen(js_name=toBuffer)]
372
- pub fn to_buffer(&self, options: &JsValue) -> Result<Buffer, JsValue> {
373
- let skip_signature = if options.is_object() {
374
- let options = options.with_serde_to_json_value()?;
375
- options.get_bool("skipSignature").unwrap_or_default()
376
- } else {
377
- false
378
- };
379
- let bytes = self.0.to_cbor_buffer(skip_signature).with_js_error()?;
380
-
386
+ pub fn to_buffer(&self) -> Result<Buffer, JsValue> {
387
+ let bytes = PlatformSerializable::serialize_to_bytes(&StateTransition::DocumentsBatch(
388
+ self.0.clone(),
389
+ ))
390
+ .with_js_error()?;
381
391
  Ok(Buffer::from_bytes(&bytes))
382
392
  }
383
393
 
384
- #[wasm_bindgen(js_name=hash)]
385
- pub fn hash(&self, options: JsValue) -> Result<Buffer, JsValue> {
386
- let skip_signature = if options.is_object() {
387
- let options = options.with_serde_to_json_value()?;
388
- options.get_bool("skipSignature").unwrap_or_default()
389
- } else {
390
- false
391
- };
392
- let bytes = self.0.hash(skip_signature).with_js_error()?;
393
-
394
- Ok(Buffer::from_bytes(&bytes))
395
- }
394
+ // #[wasm_bindgen(js_name=hash)]
395
+ // pub fn hash(&self, options: JsValue) -> Result<Buffer, JsValue> {
396
+ // let skip_signature = if options.is_object() {
397
+ // let options = options.with_serde_to_json_value()?;
398
+ // options.get_bool("skipSignature").unwrap_or_default()
399
+ // } else {
400
+ // false
401
+ // };
402
+ // let bytes = self.0.hash(skip_signature).with_js_error()?;
403
+ //
404
+ // Ok(Buffer::from_bytes(&bytes))
405
+ // }
396
406
  }
397
407
 
398
408
  impl From<DocumentsBatchTransition> for DocumentsBatchTransitionWasm {
@@ -2,6 +2,8 @@ use crate::buffer::Buffer;
2
2
  use dpp::consensus::basic::data_contract::DataContractHaveNewUniqueIndexError;
3
3
  use dpp::consensus::codes::ErrorWithCode;
4
4
  use dpp::consensus::ConsensusError;
5
+ use dpp::serialization::PlatformSerializable;
6
+ use serde::Serialize;
5
7
  use wasm_bindgen::prelude::*;
6
8
 
7
9
  #[wasm_bindgen(js_name=DataContractHaveNewUniqueIndexError)]
@@ -36,13 +38,4 @@ impl DataContractHaveNewUniqueIndexErrorWasm {
36
38
  pub fn message(&self) -> String {
37
39
  self.inner.to_string()
38
40
  }
39
-
40
- #[wasm_bindgen(js_name=serialize)]
41
- pub fn serialize(&self) -> Result<Buffer, JsError> {
42
- let bytes = ConsensusError::from(self.inner.clone())
43
- .serialize()
44
- .map_err(JsError::from)?;
45
-
46
- Ok(Buffer::from_bytes(bytes.as_slice()))
47
- }
48
41
  }
@@ -2,6 +2,7 @@ use crate::buffer::Buffer;
2
2
  use dpp::consensus::basic::data_contract::DataContractImmutablePropertiesUpdateError;
3
3
  use dpp::consensus::codes::ErrorWithCode;
4
4
  use dpp::consensus::ConsensusError;
5
+ use dpp::serialization::PlatformSerializable;
5
6
  use wasm_bindgen::prelude::*;
6
7
 
7
8
  #[wasm_bindgen(js_name=DataContractImmutablePropertiesUpdateError)]
@@ -38,13 +39,4 @@ impl DataContractImmutablePropertiesUpdateErrorWasm {
38
39
  pub fn message(&self) -> String {
39
40
  self.inner.to_string()
40
41
  }
41
-
42
- #[wasm_bindgen(js_name=serialize)]
43
- pub fn serialize(&self) -> Result<Buffer, JsError> {
44
- let bytes = ConsensusError::from(self.inner.clone())
45
- .serialize()
46
- .map_err(JsError::from)?;
47
-
48
- Ok(Buffer::from_bytes(bytes.as_slice()))
49
- }
50
42
  }
@@ -2,6 +2,7 @@ use crate::buffer::Buffer;
2
2
  use dpp::consensus::basic::data_contract::DataContractInvalidIndexDefinitionUpdateError;
3
3
  use dpp::consensus::codes::ErrorWithCode;
4
4
  use dpp::consensus::ConsensusError;
5
+ use dpp::serialization::PlatformSerializable;
5
6
  use wasm_bindgen::prelude::*;
6
7
 
7
8
  #[wasm_bindgen(js_name=DataContractInvalidIndexDefinitionUpdateError)]
@@ -26,7 +27,7 @@ impl DataContractInvalidIndexDefinitionUpdateErrorWasm {
26
27
 
27
28
  #[wasm_bindgen(js_name=getIndexName)]
28
29
  pub fn get_index_name(&self) -> String {
29
- self.inner.index_name().to_string()
30
+ self.inner.index_path().to_string()
30
31
  }
31
32
 
32
33
  #[wasm_bindgen(js_name=getCode)]
@@ -38,13 +39,4 @@ impl DataContractInvalidIndexDefinitionUpdateErrorWasm {
38
39
  pub fn message(&self) -> String {
39
40
  self.inner.to_string()
40
41
  }
41
-
42
- #[wasm_bindgen(js_name=serialize)]
43
- pub fn serialize(&self) -> Result<Buffer, JsError> {
44
- let bytes = ConsensusError::from(self.inner.clone())
45
- .serialize()
46
- .map_err(JsError::from)?;
47
-
48
- Ok(Buffer::from_bytes(bytes.as_slice()))
49
- }
50
42
  }
@@ -2,6 +2,7 @@ use crate::buffer::Buffer;
2
2
  use dpp::consensus::basic::data_contract::data_contract_max_depth_exceed_error::DataContractMaxDepthExceedError;
3
3
  use dpp::consensus::codes::ErrorWithCode;
4
4
  use dpp::consensus::ConsensusError;
5
+ use dpp::serialization::PlatformSerializable;
5
6
  use wasm_bindgen::prelude::*;
6
7
 
7
8
  #[wasm_bindgen(js_name=DataContractMaxDepthExceedError)]
@@ -36,13 +37,4 @@ impl DataContractMaxDepthExceedErrorWasm {
36
37
  pub fn message(&self) -> String {
37
38
  self.inner.to_string()
38
39
  }
39
-
40
- #[wasm_bindgen(js_name=serialize)]
41
- pub fn serialize(&self) -> Result<Buffer, JsError> {
42
- let bytes = ConsensusError::from(self.inner.clone())
43
- .serialize()
44
- .map_err(JsError::from)?;
45
-
46
- Ok(Buffer::from_bytes(bytes.as_slice()))
47
- }
48
40
  }