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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (295) hide show
  1. package/Cargo.toml +33 -7
  2. package/README.md +11 -6
  3. package/dist/errors/patchConsensusErrors.js +94 -115
  4. package/dist/wasm/wasm_dpp.d.ts +2213 -4113
  5. package/dist/wasm/wasm_dpp.js +17748 -2639
  6. package/dist/wasm/wasm_dpp_bg.js +1 -1
  7. package/lib/dpp.ts +1 -1
  8. package/lib/errors/patchConsensusErrors.ts +94 -93
  9. package/lib/test/bootstrap.js +5 -0
  10. package/lib/test/fixtures/getDataContractFixture.js +11 -5
  11. package/lib/test/fixtures/getDocumentsFixture.js +9 -5
  12. package/lib/test/fixtures/getIdentityCreateTransitionFixture.js +14 -20
  13. package/lib/test/fixtures/getIdentityCreditTransferTransitionFixture.js +14 -0
  14. package/lib/test/fixtures/getIdentityFixture.js +21 -32
  15. package/lib/test/fixtures/getIdentityTopUpTransitionFixture.js +7 -10
  16. package/lib/test/fixtures/getIdentityUpdateTransitionFixture.js +13 -28
  17. package/lib/test/fixtures/getPrivateAndPublicKeyForSigningFixture.js +7 -9
  18. package/lib/test/fixtures/js/generateRandomIdentifier.js +1 -0
  19. package/lib/test/fixtures/js/getChainAssetLockProofFixture.js +1 -0
  20. package/lib/test/fixtures/js/getDataContractFixture.js +1 -0
  21. package/lib/test/fixtures/js/getDocumentTransitionsFixture.js +1 -0
  22. package/lib/test/fixtures/js/getDocumentsFixture.js +1 -0
  23. package/lib/test/fixtures/js/getInstantAssetLockProofFixture.js +1 -0
  24. package/lib/test/mocks/createStateRepositoryMock.js +1 -0
  25. package/lib/wasm/wasm_dpp.d.ts +2213 -4113
  26. package/package.json +6 -6
  27. package/scripts/build-wasm.sh +30 -29
  28. package/src/bls_adapter.rs +1 -1
  29. package/src/dash_platform_protocol.rs +173 -196
  30. package/src/data_contract/data_contract.rs +309 -199
  31. package/src/data_contract/data_contract_facade.rs +28 -47
  32. package/src/data_contract/errors/mod.rs +1 -0
  33. package/src/data_contract/mod.rs +2 -2
  34. package/src/data_contract/state_transition/data_contract_create_transition/mod.rs +92 -79
  35. package/src/data_contract/state_transition/data_contract_update_transition/mod.rs +84 -77
  36. package/src/data_contract_factory/data_contract_factory.rs +43 -83
  37. package/src/document/document_facade.rs +81 -76
  38. package/src/document/errors/document_already_exists_error.rs +6 -6
  39. package/src/document/errors/document_no_revision_error.rs +1 -0
  40. package/src/document/errors/document_not_provided_error.rs +6 -6
  41. package/src/document/errors/invalid_document_action_error.rs +11 -7
  42. package/src/document/errors/invalid_initial_revision_error.rs +4 -4
  43. package/src/document/errors/mismatch_owners_ids_error.rs +5 -8
  44. package/src/document/errors/mod.rs +5 -0
  45. package/src/document/errors/revision_absent_error.rs +6 -6
  46. package/src/document/errors/trying_to_delete_immutable_document_error.rs +19 -0
  47. package/src/document/errors/trying_to_replace_immutable_document_error.rs +4 -4
  48. package/src/document/extended_document.rs +76 -76
  49. package/src/document/factory.rs +140 -119
  50. package/src/document/generate_document_id.rs +2 -2
  51. package/src/document/mod.rs +164 -150
  52. package/src/document/state_transition/document_batch_transition/document_transition/document_create_transition.rs +50 -48
  53. package/src/document/state_transition/document_batch_transition/document_transition/document_delete_transition.rs +14 -14
  54. package/src/document/state_transition/document_batch_transition/document_transition/document_replace_transition.rs +50 -38
  55. package/src/document/state_transition/document_batch_transition/document_transition/mod.rs +165 -153
  56. package/src/document/state_transition/document_batch_transition/mod.rs +232 -222
  57. package/src/errors/consensus/basic/data_contract/data_contract_have_new_unique_index_error.rs +2 -9
  58. package/src/errors/consensus/basic/data_contract/data_contract_immutable_properties_update_error.rs +1 -9
  59. package/src/errors/consensus/basic/data_contract/data_contract_invalid_index_definition_update_error.rs +2 -10
  60. package/src/errors/consensus/basic/data_contract/data_contract_max_depth_exceed_error.rs +1 -9
  61. package/src/errors/consensus/basic/data_contract/data_contract_unique_indices_changed_error.rs +1 -9
  62. package/src/errors/consensus/basic/data_contract/duplicate_index_name_error.rs +1 -9
  63. package/src/errors/consensus/basic/data_contract/incompatible_data_contract_schema_error.rs +1 -9
  64. package/src/errors/consensus/basic/data_contract/incompatible_re2_pattern_error.rs +1 -9
  65. package/src/errors/consensus/basic/data_contract/index_error/duplicate_index_error.rs +1 -9
  66. package/src/errors/consensus/basic/data_contract/index_error/invalid_compound_index_error.rs +1 -9
  67. package/src/errors/consensus/basic/data_contract/index_error/invalid_index_property_type_error.rs +1 -9
  68. package/src/errors/consensus/basic/data_contract/index_error/invalid_indexed_property_constraint_error.rs +1 -9
  69. package/src/errors/consensus/basic/data_contract/index_error/system_property_index_already_present_error.rs +1 -9
  70. package/src/errors/consensus/basic/data_contract/index_error/undefined_index_property_error.rs +1 -9
  71. package/src/errors/consensus/basic/data_contract/index_error/unique_indices_limit_reached_error.rs +1 -9
  72. package/src/errors/consensus/basic/data_contract/invalid_data_contract_id_error.rs +1 -9
  73. package/src/errors/consensus/basic/data_contract/invalid_data_contract_version_error.rs +1 -9
  74. package/src/errors/consensus/basic/data_contract/invalid_json_schema_ref_error.rs +1 -9
  75. package/src/errors/consensus/basic/decode/protocol_version_parsing_error.rs +10 -7
  76. package/src/errors/consensus/basic/decode/serialized_object_parsing_error.rs +1 -9
  77. package/src/errors/consensus/basic/document/data_contract_not_present_error.rs +1 -9
  78. package/src/errors/consensus/basic/document/duplicate_document_transitions_with_ids_error.rs +1 -9
  79. package/src/errors/consensus/basic/document/duplicate_document_transitions_with_indices_error.rs +1 -9
  80. package/src/errors/consensus/basic/document/inconsistent_compound_index_data_error.rs +1 -9
  81. package/src/errors/consensus/basic/document/invalid_document_transition_action_error.rs +1 -9
  82. package/src/errors/consensus/basic/document/invalid_document_transition_id_error.rs +1 -9
  83. package/src/errors/consensus/basic/document/invalid_document_type_error.rs +1 -9
  84. package/src/errors/consensus/basic/document/missing_data_contract_id_error.rs +1 -9
  85. package/src/errors/consensus/basic/document/missing_document_transition_action_error.rs +1 -9
  86. package/src/errors/consensus/basic/document/missing_document_transition_type_error.rs +1 -9
  87. package/src/errors/consensus/basic/document/missing_document_type_error.rs +1 -9
  88. package/src/errors/consensus/basic/identity/duplicated_identity_public_key_error.rs +1 -9
  89. package/src/errors/consensus/basic/identity/duplicated_identity_public_key_id_error.rs +1 -9
  90. package/src/errors/consensus/basic/identity/identity_asset_lock_proof_locked_transaction_mismatch_error.rs +3 -11
  91. package/src/errors/consensus/basic/identity/identity_asset_lock_transaction_is_not_found_error.rs +1 -9
  92. package/src/errors/consensus/basic/identity/identity_asset_lock_transaction_out_point_already_exists_error.rs +2 -10
  93. package/src/errors/consensus/basic/identity/identity_asset_lock_transaction_output_not_found_error.rs +1 -9
  94. package/src/errors/consensus/basic/identity/identity_insufficient_balance_error.rs +1 -9
  95. package/src/errors/consensus/basic/identity/invalid_asset_lock_proof_core_chain_height_error.rs +1 -9
  96. package/src/errors/consensus/basic/identity/invalid_asset_lock_proof_transaction_height_error.rs +1 -9
  97. package/src/errors/consensus/basic/identity/invalid_asset_lock_transaction_output_return_size_error.rs +1 -9
  98. package/src/errors/consensus/basic/identity/invalid_identity_asset_lock_proof_chain_lock_validation_error.rs +1 -1
  99. package/src/errors/consensus/basic/identity/invalid_identity_asset_lock_transaction_error.rs +1 -9
  100. package/src/errors/consensus/basic/identity/invalid_identity_asset_lock_transaction_output_error.rs +1 -9
  101. package/src/errors/consensus/basic/identity/invalid_identity_credit_withdrawal_transition_core_fee_error.rs +1 -9
  102. package/src/errors/consensus/basic/identity/invalid_identity_credit_withdrawal_transition_output_script_error.rs +1 -9
  103. package/src/errors/consensus/basic/identity/invalid_identity_credit_withdrawal_transition_pooling_error.rs +1 -9
  104. package/src/errors/consensus/basic/identity/invalid_identity_key_signature_error.rs +1 -9
  105. package/src/errors/consensus/basic/identity/invalid_identity_public_key_data_error.rs +1 -9
  106. package/src/errors/consensus/basic/identity/invalid_identity_public_key_security_level_error.rs +1 -9
  107. package/src/errors/consensus/basic/identity/invalid_identity_public_key_type_error.rs +1 -9
  108. package/src/errors/consensus/basic/identity/invalid_instant_asset_lock_proof_error.rs +1 -9
  109. package/src/errors/consensus/basic/identity/invalid_instant_asset_lock_proof_signature_error.rs +1 -9
  110. package/src/errors/consensus/basic/identity/missing_master_public_key_error.rs +1 -9
  111. package/src/errors/consensus/basic/identity/missing_public_key_error.rs +1 -9
  112. package/src/errors/consensus/basic/incompatible_protocol_version_error.rs +1 -9
  113. package/src/errors/consensus/basic/invalid_identifier_error.rs +1 -9
  114. package/src/errors/consensus/basic/invalid_signature_public_key_security_level_error.rs +7 -15
  115. package/src/errors/consensus/basic/invalid_state_transition_signature_error.rs +1 -9
  116. package/src/errors/consensus/basic/json_schema_compilation_error.rs +1 -9
  117. package/src/errors/consensus/basic/json_schema_error.rs +1 -9
  118. package/src/errors/consensus/basic/mod.rs +2 -0
  119. package/src/errors/consensus/basic/public_key_is_disabled_error.rs +1 -9
  120. package/src/errors/consensus/basic/public_key_security_level_not_met_error.rs +2 -11
  121. package/src/errors/consensus/basic/state_transition/invalid_state_transition_type_error.rs +1 -9
  122. package/src/errors/consensus/basic/state_transition/missing_state_transition_type_error.rs +1 -9
  123. package/src/errors/consensus/basic/state_transition/state_transition_max_size_exceeded_error.rs +1 -9
  124. package/src/errors/consensus/basic/unsupported_protocol_version_error.rs +1 -9
  125. package/src/errors/consensus/basic/unsupported_version_error.rs +44 -0
  126. package/src/errors/consensus/basic/wrong_public_key_purpose_error.rs +1 -9
  127. package/src/errors/consensus/consensus_error.rs +44 -21
  128. package/src/errors/consensus/deserialize.rs +2 -1
  129. package/src/errors/consensus/fee/balance_is_not_enough_error.rs +5 -2
  130. package/src/errors/consensus/signature/basic_bls_error.rs +1 -9
  131. package/src/errors/consensus/signature/basic_ecdsa_error.rs +1 -9
  132. package/src/errors/consensus/signature/identity_not_found_error.rs +4 -2
  133. package/src/errors/consensus/signature/signature_should_not_be_present_error.rs +1 -9
  134. package/src/errors/consensus/state/data_contract/data_contract_already_present_error.rs +3 -2
  135. package/src/errors/consensus/state/data_contract/data_contract_config_update_error.rs +42 -0
  136. package/src/errors/consensus/state/data_contract/data_contract_is_readonly_error.rs +44 -0
  137. package/src/errors/consensus/state/data_contract/data_trigger/data_trigger_condition_error.rs +2 -1
  138. package/src/errors/consensus/state/data_contract/data_trigger/data_trigger_execution_error.rs +2 -1
  139. package/src/errors/consensus/state/data_contract/data_trigger/data_trigger_invalid_result_error.rs +2 -1
  140. package/src/errors/consensus/state/data_contract/mod.rs +7 -1
  141. package/src/errors/consensus/state/document/document_already_present_error.rs +1 -9
  142. package/src/errors/consensus/state/document/document_not_found_error.rs +1 -9
  143. package/src/errors/consensus/state/document/document_owner_id_mismatch_error.rs +1 -9
  144. package/src/errors/consensus/state/document/document_timestamp_window_violation_error.rs +1 -9
  145. package/src/errors/consensus/state/document/document_timestamps_are_equal_error.rs +34 -0
  146. package/src/errors/consensus/state/document/document_timestamps_mismatch_error.rs +1 -9
  147. package/src/errors/consensus/state/document/duplicate_unique_index_error.rs +1 -9
  148. package/src/errors/consensus/state/document/invalid_document_revision_error.rs +9 -12
  149. package/src/errors/consensus/state/document/mod.rs +2 -0
  150. package/src/errors/consensus/state/identity/duplicated_identity_public_key_id_state_error.rs +1 -9
  151. package/src/errors/consensus/state/identity/duplicated_identity_public_key_state_error.rs +1 -9
  152. package/src/errors/consensus/state/identity/identity_already_exists_error.rs +1 -9
  153. package/src/errors/consensus/state/identity/identity_public_key_disabled_at_window_violation_error.rs +1 -9
  154. package/src/errors/consensus/state/identity/identity_public_key_is_disabled_error.rs +1 -9
  155. package/src/errors/consensus/state/identity/identity_public_key_is_read_only_error.rs +1 -9
  156. package/src/errors/consensus/state/identity/invalid_identity_public_key_id_error.rs +2 -9
  157. package/src/errors/consensus/state/identity/invalid_identity_revision_error.rs +1 -9
  158. package/src/errors/consensus/state/identity/max_identity_public_key_limit_reached_error.rs +1 -9
  159. package/src/errors/consensus/value_error.rs +1 -9
  160. package/src/errors/from.rs +12 -8
  161. package/src/errors/mod.rs +7 -7
  162. package/src/errors/value_error.rs +5 -0
  163. package/src/identity/errors/asset_lock_transaction_is_not_found_error.rs +1 -2
  164. package/src/identity/factory_utils.rs +13 -13
  165. package/src/identity/identity.rs +275 -0
  166. package/src/identity/identity_facade.rs +87 -70
  167. package/src/identity/identity_factory.rs +74 -54
  168. package/src/identity/identity_public_key/mod.rs +87 -64
  169. package/src/identity/mod.rs +25 -247
  170. package/src/identity/state_transition/asset_lock_proof/chain/chain_asset_lock_proof_structure_validator.rs +0 -1
  171. package/src/identity/state_transition/asset_lock_proof/chain/mod.rs +3 -1
  172. package/src/identity/state_transition/asset_lock_proof/instant/instant_asset_lock_proof.rs +2 -2
  173. package/src/identity/state_transition/asset_lock_proof/instant/instant_asset_lock_proof_structure_validator.rs +0 -1
  174. package/src/identity/state_transition/asset_lock_proof/instant/mod.rs +3 -1
  175. package/src/identity/state_transition/asset_lock_proof/mod.rs +112 -116
  176. package/src/identity/state_transition/identity_create_transition/identity_create_transition.rs +71 -65
  177. package/src/identity/state_transition/identity_create_transition/identity_create_transition_basic_validator.rs +0 -1
  178. package/src/identity/state_transition/identity_create_transition/mod.rs +3 -3
  179. package/src/identity/state_transition/identity_create_transition/to_object.rs +10 -12
  180. package/src/identity/state_transition/identity_credit_transfer_transition/apply_identity_credit_transfer_transition.rs +31 -0
  181. package/src/identity/state_transition/identity_credit_transfer_transition/identity_credit_transfer_transition_basic_validator.rs +66 -0
  182. package/src/identity/state_transition/identity_credit_transfer_transition/identity_credit_transfer_transition_state_validator.rs +44 -0
  183. package/src/identity/state_transition/identity_credit_transfer_transition/mod.rs +8 -0
  184. package/src/identity/state_transition/identity_credit_transfer_transition/to_object.rs +49 -0
  185. package/src/identity/state_transition/identity_credit_transfer_transition/transition.rs +344 -0
  186. package/src/identity/state_transition/identity_public_key_transitions.rs +89 -75
  187. package/src/identity/state_transition/identity_topup_transition/identity_topup_transition.rs +67 -62
  188. package/src/identity/state_transition/identity_topup_transition/identity_topup_transition_basic_validator.rs +0 -2
  189. package/src/identity/state_transition/identity_topup_transition/mod.rs +3 -3
  190. package/src/identity/state_transition/identity_topup_transition/to_object.rs +8 -12
  191. package/src/identity/state_transition/identity_update_transition/identity_update_public_keys_validator.rs +2 -2
  192. package/src/identity/state_transition/identity_update_transition/identity_update_transition.rs +99 -104
  193. package/src/identity/state_transition/identity_update_transition/mod.rs +4 -4
  194. package/src/identity/state_transition/identity_update_transition/to_object.rs +15 -19
  195. package/src/identity/state_transition/mod.rs +5 -2
  196. package/src/identity/state_transition/transition_types.rs +34 -0
  197. package/src/identity/state_transition/validate_public_key_signatures.rs +2 -2
  198. package/src/lib.rs +10 -11
  199. package/src/metadata.rs +3 -3
  200. package/src/protocol_version.rs +7 -0
  201. package/src/state_transition/conversion.rs +11 -1
  202. package/src/state_transition/errors/invalid_state_transition_error.rs +12 -1
  203. package/src/state_transition/fee/operations/pre_calculated_operation.rs +2 -1
  204. package/src/state_transition/mod.rs +137 -139
  205. package/src/state_transition/state_transition_facade.rs +11 -11
  206. package/src/state_transition/state_transition_factory.rs +142 -153
  207. package/src/state_transition/validation/state_transition_fee_validator.rs +1 -1
  208. package/src/state_transition/validation/validate_state_transition_identity_signature.rs +28 -10
  209. package/src/state_transition/validation/validate_state_transition_key_signature.rs +1 -1
  210. package/src/utils.rs +7 -8
  211. package/src/validation/validation_result.rs +1 -0
  212. package/test/integration/dataContract/DataContractFacade.spec.js +25 -32
  213. package/test/integration/dataContract/stateTransition/DataContractCreateTransition/validation/basic/validateDataContractCreateTransitionBasicFactory.spec.js +6 -6
  214. package/test/integration/dataContract/stateTransition/DataContractUpdateTransition/validation/basic/validateDataContractUpdateTransitionBasicFactory.spec.js +11 -10
  215. package/test/integration/dataContract/validation/validateDataContractFactory.spec.js +3 -3
  216. package/test/integration/document/Document.spec.js +3 -3
  217. package/test/integration/document/DocumentFacade.spec.js +39 -38
  218. package/test/integration/document/stateTransition/DocumentsBatchTransition/DocumentBatchTransition.spec.js +6 -7
  219. package/test/integration/document/stateTransition/DocumentsBatchTransition/validation/basic/validateDocumentsBatchTransitionBasicFactory.spec.js +15 -15
  220. package/test/integration/document/stateTransition/DocumentsBatchTransition/validation/state/executeDataTriggersFactory.spec.js +2 -2
  221. package/test/integration/document/validation/validateDocumentFactory.spec.js +3 -3
  222. package/test/integration/identity/IdentityFacade.spec.js +33 -62
  223. package/test/integration/identity/stateTransition/IdentityCreateTransition/validation/basic/validateIdentityCreateTransitionBasicFactory.spec.js +6 -8
  224. package/test/integration/identity/stateTransition/IdentityTopUpTransition/validation/basic/validateIdentityTopUpTransitionBasicFactory.spec.js +4 -7
  225. package/test/integration/identity/stateTransition/IdentityUpdateTransition/validation/basic/validateIdentityUpdateTransitionBasicFactory.spec.js +1 -1
  226. package/test/integration/identity/stateTransition/IdentityUpdateTransition/validation/state/validateIdentityUpdateTransitionStateFactory.spec.js +21 -24
  227. package/test/integration/identity/stateTransition/IdentityUpdateTransition/validation/state/validatePublicKeysState.spec.js +2 -2
  228. package/test/integration/identity/stateTransition/assetLockProof/chain/validateChainAssetLockProofStructureFactory.spec.js +4 -4
  229. package/test/integration/identity/stateTransition/assetLockProof/fetchAssetLockTransactionOutputFactory.spec.js +7 -10
  230. package/test/integration/identity/stateTransition/assetLockProof/instant/validateInstantAssetLockProofStructureFactory.spec.js +4 -5
  231. package/test/integration/identity/stateTransition/assetLockProof/validateAssetLockTransactionFactory.spec.js +6 -6
  232. package/test/integration/identity/stateTransition/validatePublicKeySignaturesFactory.spec.js +3 -7
  233. package/test/integration/identity/validation/validateIdentityFactory.spec.js +7 -6
  234. package/test/integration/identity/validation/validatePublicKeysFactory.spec.js +5 -25
  235. package/test/integration/stateTransition/StateTransitionFacade.spec.js +45 -58
  236. package/test/integration/util/generateTemporaryEcdsaPrivateKey.spec.js +1 -1
  237. package/test/unit/DashPlatformProtocol.spec.js +10 -25
  238. package/test/unit/dataContract/DataContract.spec.js +119 -148
  239. package/test/unit/dataContract/DataContractFactory.spec.js +42 -31
  240. package/test/unit/dataContract/createDataContract.spec.js +6 -6
  241. package/test/unit/dataContract/generateDataContractId.spec.js +1 -1
  242. package/test/unit/dataContract/stateTransition/DataContractCreateTransition/DataContractCreateTransition.spec.js +34 -26
  243. package/test/unit/dataContract/stateTransition/DataContractCreateTransition/applyDataContractCreateTransitionFactory.spec.js +7 -9
  244. package/test/unit/dataContract/stateTransition/DataContractCreateTransition/validation/state/validateDataContractCreateTransitionStateFactory.spec.js +10 -9
  245. package/test/unit/dataContract/stateTransition/DataContractUpdateTransition/DataContractUpdateTransition.spec.js +28 -19
  246. package/test/unit/dataContract/stateTransition/DataContractUpdateTransition/applyDataContractUpdateTransitionFactory.spec.js +7 -7
  247. package/test/unit/dataContract/stateTransition/DataContractUpdateTransition/validation/basic/validateIndicesAreBackwardCompatible.spec.js +5 -5
  248. package/test/unit/dataContract/stateTransition/DataContractUpdateTransition/validation/state/validateDataContractUpdateTransitionStateFactory.spec.js +11 -10
  249. package/test/unit/dataContract/validation/validateDataContractPatterns.spec.js +7 -7
  250. package/test/unit/dataTrigger/dpnsTriggers/createDomainDataTrigger.spec.js +1 -1
  251. package/test/unit/document/Document.spec.js +31 -20
  252. package/test/unit/document/DocumentFactory.spec.js +45 -110
  253. package/test/unit/document/fetchAndValidateDataContractFactory.spec.js +1 -1
  254. package/test/unit/document/stateTransition/DocumetsBatchTransition/DocumentsBatchTransition.spec.js +6 -7
  255. package/test/unit/document/stateTransition/DocumetsBatchTransition/applyDocumentsBatchTransitionFactory.spec.js +11 -12
  256. package/test/unit/document/stateTransition/DocumetsBatchTransition/documentTransition/DocumentCreateTransition.spec.js +1 -1
  257. package/test/unit/document/stateTransition/DocumetsBatchTransition/validation/basic/findDuplicatesById.spec.js +1 -1
  258. package/test/unit/document/stateTransition/DocumetsBatchTransition/validation/basic/findDuplicatesByIndices.spec.js +1 -1
  259. package/test/unit/document/stateTransition/DocumetsBatchTransition/validation/basic/validatePartialCompoundIndices.spec.js +1 -1
  260. package/test/unit/document/stateTransition/DocumetsBatchTransition/validation/state/fetchDocumentsFactory.spec.js +1 -1
  261. package/test/unit/document/stateTransition/DocumetsBatchTransition/validation/state/validateDocumentsBatchTransitionStateFactory.spec.js +9 -9
  262. package/test/unit/document/stateTransition/DocumetsBatchTransition/validation/state/validateDocumentsUniquenessByIndicesFactory.spec.js +1 -1
  263. package/test/unit/identity/Identity.spec.js +46 -81
  264. package/test/unit/identity/IdentityFactory.spec.js +61 -75
  265. package/test/unit/identity/IdentityPublicKey.spec.js +34 -48
  266. package/test/unit/identity/stateTransition/IdentityCreateTransition/IdentityCreateTransition.spec.js +30 -63
  267. package/test/unit/identity/stateTransition/IdentityCreateTransition/applyIdentityCreateTransitionFactory.spec.js +9 -15
  268. package/test/unit/identity/stateTransition/IdentityCreateTransition/validation/state/validateIdentityCreateTransitionStateFactory.spec.js +5 -9
  269. package/test/unit/identity/stateTransition/IdentityTopUpTransition/IdentityTopUpTransition.spec.js +13 -35
  270. package/test/unit/identity/stateTransition/IdentityTopUpTransition/applyIdentityTopUpTransitionFactory.spec.js +9 -13
  271. package/test/unit/identity/stateTransition/IdentityTopUpTransition/validation/state/validateIdentityTopUpTransitionStateFactory.spec.js +5 -9
  272. package/test/unit/identity/stateTransition/IdentityUpdateTransition/IdentityUpdateTransition.spec.js +24 -46
  273. package/test/unit/identity/stateTransition/IdentityUpdateTransition/applyIdentityUpdateTransitionFactory.spec.js +4 -4
  274. package/test/unit/identity/stateTransition/assetLockProof/fetchAssetLockPublicKeyHashFactory.spec.js +1 -1
  275. package/test/unit/identity/stateTransition/identityCreditTransferTransition/identityCreditTransferTransition.spec.js +130 -0
  276. package/test/unit/stateTransition/StateTransitionExecutionContext.spec.js +1 -1
  277. package/test/unit/stateTransition/StateTransitionFactory.spec.js +16 -22
  278. package/test/unit/stateTransition/createStateTransitionFactory.spec.js +43 -21
  279. package/test/unit/stateTransition/validation/validateStateTransitionBasicFactory.spec.js +3 -3
  280. package/test/unit/stateTransition/validation/validateStateTransitionFeeFactory.spec.js +5 -17
  281. package/test/unit/stateTransition/validation/validateStateTransitionIdentitySignatureFactory.spec.js +9 -5
  282. package/test/unit/stateTransition/validation/validateStateTransitionKeySignatureFactory.spec.js +8 -14
  283. package/test/unit/stateTransition/validation/validateStateTransitionStateFactory.spec.js +1 -1
  284. package/test/unit/version/validateProtocolVersionFactory.spec.js +1 -1
  285. package/test-d/index.test-d.ts +2 -2
  286. package/src/data_contract/state_transition/data_contract_create_transition/apply.rs +0 -45
  287. package/src/data_contract/state_transition/data_contract_update_transition/apply.rs +0 -49
  288. package/src/decode_protocol_entity.rs +0 -25
  289. package/src/document/state_transition/document_batch_transition/apply_document_batch_transition.rs +0 -25
  290. package/test/integration/ajv/keywords/byteArray/addByteArrayKeyword.spec.js +0 -148
  291. package/test/integration/util/generateEntropy.spec.js +0 -17
  292. package/test/integration/util/serializer.spec.js +0 -24
  293. package/test/unit/decodeProtocolEntityFactory.spec.js +0 -69
  294. package/test/unit/identity/errors/InvalidIdentityError.spec.js +0 -46
  295. package/test/unit/stateTransition/errors/InvalidStateTransitionError.spec.js +0 -51
@@ -1,13 +1,18 @@
1
- use dpp::document::document_transition::{
2
- document_delete_transition, DocumentDeleteTransition, DocumentTransitionObjectLike,
1
+ use dpp::state_transition::documents_batch_transition::{
2
+ document_delete_transition, DocumentDeleteTransition,
3
3
  };
4
+
4
5
  use serde::Serialize;
5
6
  use wasm_bindgen::prelude::*;
6
7
 
7
8
  use crate::{
8
- document_batch_transition::document_transition::to_object, identifier::IdentifierWrapper,
9
- utils::WithJsError, DataContractWasm,
9
+ data_contract::DataContractWasm,
10
+ document::document_batch_transition::document_transition::to_object,
11
+ identifier::IdentifierWrapper, utils::WithJsError,
10
12
  };
13
+ use dpp::state_transition::documents_batch_transition::document_base_transition::v0::v0_methods::DocumentBaseTransitionV0Methods;
14
+ use dpp::state_transition::documents_batch_transition::document_delete_transition::v0::v0_methods::DocumentDeleteTransitionV0Methods;
15
+ use dpp::state_transition::documents_batch_transition::document_transition::action_type::DocumentTransitionActionType;
11
16
 
12
17
  #[wasm_bindgen(js_name=DocumentDeleteTransition)]
13
18
  #[derive(Debug, Clone)]
@@ -31,7 +36,7 @@ impl From<DocumentDeleteTransitionWasm> for DocumentDeleteTransition {
31
36
  impl DocumentDeleteTransitionWasm {
32
37
  #[wasm_bindgen(js_name=getAction)]
33
38
  pub fn action(&self) -> u8 {
34
- self.inner.base.action as u8
39
+ DocumentTransitionActionType::Delete as u8
35
40
  }
36
41
 
37
42
  #[wasm_bindgen(js_name=toObject)]
@@ -39,7 +44,7 @@ impl DocumentDeleteTransitionWasm {
39
44
  to_object(
40
45
  self.inner.to_object().with_js_error()?,
41
46
  options,
42
- document_delete_transition::IDENTIFIER_FIELDS,
47
+ document_delete_transition::v0::IDENTIFIER_FIELDS,
43
48
  [],
44
49
  )
45
50
  }
@@ -55,22 +60,17 @@ impl DocumentDeleteTransitionWasm {
55
60
  // AbstractDocumentTransition
56
61
  #[wasm_bindgen(js_name=getId)]
57
62
  pub fn id(&self) -> IdentifierWrapper {
58
- self.inner.base.id.into()
63
+ self.inner.base().id().into()
59
64
  }
60
65
 
61
66
  #[wasm_bindgen(js_name=getType)]
62
67
  pub fn document_type(&self) -> String {
63
- self.inner.base.document_type_name.clone()
64
- }
65
-
66
- #[wasm_bindgen(js_name=getDataContract)]
67
- pub fn data_contract(&self) -> DataContractWasm {
68
- self.inner.base.data_contract.clone().into()
68
+ self.inner.base().document_type_name().clone()
69
69
  }
70
70
 
71
71
  #[wasm_bindgen(js_name=getDataContractId)]
72
72
  pub fn data_contract_id(&self) -> IdentifierWrapper {
73
- self.inner.base.data_contract.id.into()
73
+ self.inner.base().data_contract_id().into()
74
74
  }
75
75
 
76
76
  #[wasm_bindgen(js_name=get)]
@@ -1,7 +1,7 @@
1
1
  use std::convert;
2
2
  use std::convert::TryInto;
3
3
 
4
- use dpp::document::document_transition::document_base_transition::JsonValue;
4
+ use serde_json::Value as JsonValue;
5
5
 
6
6
  use dpp::platform_value::btreemap_extensions::{
7
7
  BTreeValueMapHelper, BTreeValueMapPathHelper, BTreeValueMapReplacementPathHelper,
@@ -9,24 +9,29 @@ use dpp::platform_value::btreemap_extensions::{
9
9
  use dpp::platform_value::ReplacementType;
10
10
  use dpp::prelude::Revision;
11
11
  use dpp::{
12
- document::document_transition::{
13
- document_replace_transition, DocumentReplaceTransition, DocumentTransitionObjectLike,
14
- },
15
12
  prelude::{DataContract, Identifier},
13
+ state_transition::documents_batch_transition::{
14
+ document_replace_transition, DocumentReplaceTransition,
15
+ },
16
16
  util::json_schema::JsonSchemaExt,
17
17
  ProtocolError,
18
18
  };
19
19
  use serde::Serialize;
20
20
  use wasm_bindgen::prelude::*;
21
+ use dpp::data_contract::accessors::v0::DataContractV0Getters;
22
+ use dpp::data_contract::document_type::accessors::DocumentTypeV0Getters;
23
+ use dpp::state_transition::documents_batch_transition::document_base_transition::v0::v0_methods::DocumentBaseTransitionV0Methods;
24
+ use dpp::state_transition::documents_batch_transition::document_replace_transition::v0::v0_methods::DocumentReplaceTransitionV0Methods;
21
25
 
22
26
  use crate::{
23
27
  buffer::Buffer,
24
- document_batch_transition::document_transition::to_object,
28
+ document::state_transition::document_batch_transition::document_transition::to_object,
25
29
  identifier::IdentifierWrapper,
26
30
  lodash::lodash_set,
27
31
  utils::{ToSerdeJSONExt, WithJsError},
28
32
  BinaryType, DataContractWasm,
29
33
  };
34
+ use dpp::state_transition::documents_batch_transition::document_transition::action_type::DocumentTransitionActionType;
30
35
 
31
36
  #[wasm_bindgen(js_name=DocumentReplaceTransition)]
32
37
  #[derive(Debug, Clone)]
@@ -49,24 +54,32 @@ impl From<DocumentReplaceTransitionWasm> for DocumentReplaceTransition {
49
54
  #[wasm_bindgen(js_class=DocumentReplaceTransition)]
50
55
  impl DocumentReplaceTransitionWasm {
51
56
  #[wasm_bindgen(constructor)]
52
- pub fn from_raw_object(
57
+ pub fn from_object(
53
58
  raw_object: JsValue,
54
59
  data_contract: &DataContractWasm,
55
60
  ) -> Result<DocumentReplaceTransitionWasm, JsValue> {
56
- let data_contract: DataContract = data_contract.clone().into();
57
61
  let mut value = raw_object.with_serde_to_platform_value_map()?;
58
- let document_type = value
59
- .get_string(dpp::document::extended_document::property_names::DOCUMENT_TYPE)
62
+ let document_type_name = value
63
+ .get_string(dpp::document::extended_document::property_names::DOCUMENT_TYPE_NAME)
60
64
  .map_err(ProtocolError::ValueError)
61
65
  .with_js_error()?;
62
66
 
63
- let (identifier_paths, _): (Vec<_>, Vec<_>) = data_contract
64
- .get_identifiers_and_binary_paths_owned(document_type.as_str())
67
+ let document_type = data_contract
68
+ .inner()
69
+ .document_type_for_name(document_type_name)
65
70
  .with_js_error()?;
71
+ let identifier_paths = document_type.identifier_paths();
72
+ let binary_paths = document_type.binary_paths();
73
+
66
74
  value
67
75
  .replace_at_paths(identifier_paths, ReplacementType::Identifier)
68
76
  .map_err(ProtocolError::ValueError)
69
77
  .with_js_error()?;
78
+
79
+ value
80
+ .replace_at_paths(binary_paths, ReplacementType::BinaryBytes)
81
+ .map_err(ProtocolError::ValueError)
82
+ .with_js_error()?;
70
83
  let transition =
71
84
  DocumentReplaceTransition::from_value_map(value, data_contract).with_js_error()?;
72
85
 
@@ -75,36 +88,40 @@ impl DocumentReplaceTransitionWasm {
75
88
 
76
89
  #[wasm_bindgen(js_name=getAction)]
77
90
  pub fn action(&self) -> u8 {
78
- self.inner.base.action as u8
91
+ DocumentTransitionActionType::Replace as u8
79
92
  }
80
93
 
81
94
  #[wasm_bindgen(js_name=getRevision)]
82
95
  pub fn revision(&self) -> Revision {
83
- self.inner.revision
96
+ self.inner.revision()
84
97
  }
85
98
 
86
99
  #[wasm_bindgen(js_name=getUpdatedAt)]
87
100
  pub fn updated_at(&self) -> Option<js_sys::Date> {
88
101
  self.inner
89
- .updated_at
102
+ .updated_at()
90
103
  .map(|timestamp| js_sys::Date::new(&JsValue::from_f64(timestamp as f64)))
91
104
  }
92
105
 
93
106
  #[wasm_bindgen(js_name=toObject)]
94
- pub fn to_object(&self, options: &JsValue) -> Result<JsValue, JsValue> {
95
- let (identifiers_paths, binary_paths) = self
96
- .inner
97
- .base
98
- .data_contract
99
- .get_identifiers_and_binary_paths(&self.inner.base.document_type_name)
107
+ pub fn to_object(
108
+ &self,
109
+ options: &JsValue,
110
+ data_contract: DataContractWasm,
111
+ ) -> Result<JsValue, JsValue> {
112
+ let document_type = data_contract
113
+ .inner()
114
+ .document_type_for_name(self.inner.base().document_type_name())
100
115
  .with_js_error()?;
116
+ let identifier_paths = document_type.identifier_paths();
117
+ let binary_paths = document_type.binary_paths();
101
118
 
102
119
  to_object(
103
120
  self.inner.to_object().with_js_error()?,
104
121
  options,
105
- identifiers_paths
122
+ identifier_paths
106
123
  .into_iter()
107
- .chain(document_replace_transition::IDENTIFIER_FIELDS),
124
+ .chain(document_replace_transition::v0::IDENTIFIER_FIELDS),
108
125
  binary_paths,
109
126
  )
110
127
  }
@@ -119,20 +136,20 @@ impl DocumentReplaceTransitionWasm {
119
136
 
120
137
  // AbstractDataDocumentTransition
121
138
  #[wasm_bindgen(js_name=getData)]
122
- pub fn get_data(&self) -> Result<JsValue, JsValue> {
123
- let data = if let Some(ref data) = self.inner.data {
139
+ pub fn get_data(&self, data_contract: DataContractWasm) -> Result<JsValue, JsValue> {
140
+ let data = if let Some(ref data) = self.inner.data() {
124
141
  data
125
142
  } else {
126
143
  return Ok(JsValue::undefined());
127
144
  };
128
145
 
129
146
  let js_value = data.serialize(&serde_wasm_bindgen::Serializer::json_compatible())?;
130
- let (identifier_paths, binary_paths) = self
131
- .inner
132
- .base
133
- .data_contract
134
- .get_identifiers_and_binary_paths(&self.inner.base.document_type_name)
147
+ let document_type = data_contract
148
+ .inner()
149
+ .document_type_for_name(self.inner.base().document_type_name())
135
150
  .with_js_error()?;
151
+ let identifier_paths = document_type.identifier_paths();
152
+ let binary_paths = document_type.binary_paths();
136
153
 
137
154
  for path in identifier_paths {
138
155
  let bytes = data
@@ -159,27 +176,22 @@ impl DocumentReplaceTransitionWasm {
159
176
  // AbstractDocumentTransition
160
177
  #[wasm_bindgen(js_name=getId)]
161
178
  pub fn id(&self) -> IdentifierWrapper {
162
- self.inner.base.id.into()
179
+ self.inner.base().id().into()
163
180
  }
164
181
 
165
182
  #[wasm_bindgen(js_name=getType)]
166
183
  pub fn document_type(&self) -> String {
167
- self.inner.base.document_type_name.clone()
168
- }
169
-
170
- #[wasm_bindgen(js_name=getDataContract)]
171
- pub fn data_contract(&self) -> DataContractWasm {
172
- self.inner.base.data_contract.clone().into()
184
+ self.inner.base().document_type_name().clone()
173
185
  }
174
186
 
175
187
  #[wasm_bindgen(js_name=getDataContractId)]
176
188
  pub fn data_contract_id(&self) -> IdentifierWrapper {
177
- self.inner.base.data_contract.id.into()
189
+ self.inner.base().data_contract_id().into()
178
190
  }
179
191
 
180
192
  #[wasm_bindgen(js_name=get)]
181
193
  pub fn get(&self, path: String) -> Result<JsValue, JsValue> {
182
- let document_data = if let Some(ref data) = self.inner.data {
194
+ let document_data = if let Some(ref data) = self.inner.data() {
183
195
  data
184
196
  } else {
185
197
  return Ok(JsValue::undefined());
@@ -1,19 +1,23 @@
1
- mod document_create_transition;
2
- mod document_delete_transition;
3
- mod document_replace_transition;
1
+ // mod document_create_transition;
2
+ // mod document_delete_transition;
3
+ // mod document_replace_transition;
4
4
 
5
- pub use document_create_transition::*;
6
- pub use document_delete_transition::*;
7
- pub use document_replace_transition::*;
5
+ // pub use document_create_transition::*;
6
+ // pub use document_delete_transition::*;
7
+ // pub use document_replace_transition::*;
8
8
 
9
+ use dpp::data_contract::accessors::v0::DataContractV0Getters;
10
+ use dpp::data_contract::document_type::accessors::DocumentTypeV0Getters;
9
11
  use dpp::platform_value::Value;
10
12
  use dpp::prelude::TimestampMillis;
13
+ use dpp::state_transition::documents_batch_transition::document_transition::action_type::TransitionActionTypeGetter;
14
+ use dpp::state_transition::documents_batch_transition::document_transition::DocumentTransitionV0Methods;
11
15
  use dpp::{
12
- document::document_transition::{
13
- DocumentCreateTransition, DocumentDeleteTransition, DocumentReplaceTransition,
14
- DocumentTransitionExt, DocumentTransitionObjectLike,
16
+ prelude::Identifier,
17
+ state_transition::documents_batch_transition::{
18
+ document_transition::DocumentTransition, DocumentCreateTransition,
19
+ DocumentDeleteTransition, DocumentReplaceTransition,
15
20
  },
16
- prelude::{DocumentTransition, Identifier},
17
21
  util::{json_schema::JsonSchemaExt, json_value::JsonValueExt},
18
22
  ProtocolError,
19
23
  };
@@ -42,22 +46,22 @@ impl DocumentTransitionWasm {
42
46
 
43
47
  #[wasm_bindgen(js_name=getType)]
44
48
  pub fn get_type(&self) -> String {
45
- self.0.get_document_type().to_owned()
49
+ self.0.document_type_name().to_owned()
46
50
  }
47
51
 
48
52
  #[wasm_bindgen(js_name=getAction)]
49
53
  pub fn get_action(&self) -> u8 {
50
- self.0.get_action().into()
54
+ self.0.action_type() as u8
51
55
  }
52
56
 
53
- #[wasm_bindgen(js_name=getDataContract)]
54
- pub fn get_data_contract(&self) -> DataContractWasm {
55
- self.0.get_data_contract().to_owned().into()
56
- }
57
+ // #[wasm_bindgen(js_name=getDataContract)]
58
+ // pub fn get_data_contract(&self) -> DataContractWasm {
59
+ // self.0.data_contract().to_owned().into()
60
+ // }
57
61
 
58
62
  #[wasm_bindgen(js_name=getDataContractId)]
59
63
  pub fn get_data_contract_id(&self) -> IdentifierWrapper {
60
- self.0.get_data_contract_id().to_owned().into()
64
+ self.0.data_contract_id().to_owned().into()
61
65
  }
62
66
 
63
67
  #[wasm_bindgen(js_name=setDataContractId)]
@@ -69,16 +73,21 @@ impl DocumentTransitionWasm {
69
73
 
70
74
  #[wasm_bindgen(js_name=getRevision)]
71
75
  pub fn get_revision(&self) -> JsValue {
72
- if let Some(revision) = self.0.get_revision() {
76
+ if let Some(revision) = self.0.revision() {
73
77
  (revision as f64).into()
74
78
  } else {
75
79
  JsValue::NULL
76
80
  }
77
81
  }
78
82
 
83
+ #[wasm_bindgen(js_name=setRevision)]
84
+ pub fn set_revision(&mut self, revision: u32) {
85
+ self.0.set_revision(revision as u64);
86
+ }
87
+
79
88
  #[wasm_bindgen(js_name=getCreatedAt)]
80
89
  pub fn get_created_at(&self) -> JsValue {
81
- if let Some(created_at) = self.0.get_created_at() {
90
+ if let Some(created_at) = self.0.created_at() {
82
91
  js_sys::Date::new(&JsValue::from_f64(created_at as f64)).into()
83
92
  } else {
84
93
  JsValue::NULL
@@ -87,7 +96,7 @@ impl DocumentTransitionWasm {
87
96
 
88
97
  #[wasm_bindgen(js_name=getUpdatedAt)]
89
98
  pub fn get_updated_at(&self) -> JsValue {
90
- if let Some(updated_at) = self.0.get_updated_at() {
99
+ if let Some(updated_at) = self.0.updated_at() {
91
100
  js_sys::Date::new(&JsValue::from_f64(updated_at as f64)).into()
92
101
  } else {
93
102
  JsValue::NULL
@@ -108,126 +117,129 @@ impl DocumentTransitionWasm {
108
117
  .set_created_at(created_at.map(|timestamp| timestamp.get_time() as TimestampMillis));
109
118
  }
110
119
 
111
- #[wasm_bindgen(js_name=getData)]
112
- pub fn get_data(&self) -> Result<JsValue, JsValue> {
113
- if let Some(data) = self.0.get_data() {
114
- let (identifier_paths, binary_paths) = self
115
- .0
116
- .get_data_contract()
117
- .get_identifiers_and_binary_paths(self.0.get_document_type())
118
- .with_js_error()?;
119
-
120
- let js_value = to_object(
121
- data.clone().into(),
122
- &JsValue::NULL,
123
- identifier_paths,
124
- binary_paths,
125
- )?;
126
- Ok(js_value)
127
- } else {
128
- Ok(JsValue::NULL)
129
- }
130
- }
131
-
132
- #[wasm_bindgen(js_name=get)]
133
- pub fn get(&self, path: &str) -> JsValue {
134
- let binary_type = self.get_binary_type_of_path(path);
135
-
136
- if let Some(value) = self.0.get_dynamic_property(path) {
137
- match binary_type {
138
- BinaryType::Identifier => {
139
- if let Ok(bytes) = value.to_identifier_bytes() {
140
- let id: IdentifierWrapper = Identifier::from_bytes(&bytes).unwrap().into();
141
- return id.into();
142
- }
143
- }
144
- BinaryType::Buffer => {
145
- if let Ok(bytes) = value.to_binary_bytes() {
146
- return Buffer::from_bytes(&bytes).into();
147
- }
148
- }
149
- BinaryType::None => {
150
- let serializer = serde_wasm_bindgen::Serializer::json_compatible();
151
- if let Ok(js_value) = value.serialize(&serializer) {
152
- return js_value;
153
- }
154
- }
155
- }
156
- }
157
-
158
- JsValue::undefined()
159
- }
160
-
161
- #[wasm_bindgen(js_name=toObject)]
162
- pub fn to_object(&self, options: &JsValue) -> Result<JsValue, JsValue> {
163
- match self.0 {
164
- DocumentTransition::Create(ref t) => {
165
- DocumentCreateTransitionWasm::from(t.to_owned()).to_object(options)
166
- }
167
- DocumentTransition::Replace(ref t) => {
168
- DocumentReplaceTransitionWasm::from(t.to_owned()).to_object(options)
169
- }
170
- DocumentTransition::Delete(ref t) => {
171
- DocumentDeleteTransitionWasm::from(t.to_owned()).to_object(options)
172
- }
173
- }
174
- }
175
-
176
- #[wasm_bindgen(js_name=toJSON)]
177
- pub fn to_json(&self) -> Result<JsValue, JsValue> {
178
- let json_value = self.0.to_json().with_js_error()?;
179
- with_js_error!(json_value.serialize(&serde_wasm_bindgen::Serializer::json_compatible()))
180
- }
181
-
182
- #[wasm_bindgen(js_name=fromTransitionCreate)]
183
- pub fn from_transition_create(
184
- js_create_transition: DocumentCreateTransitionWasm,
185
- ) -> DocumentTransitionWasm {
186
- let transition_create: DocumentCreateTransition = js_create_transition.into();
187
- let document_transition = DocumentTransition::Create(transition_create);
188
-
189
- document_transition.into()
190
- }
191
-
192
- #[wasm_bindgen(js_name=fromTransitionReplace)]
193
- pub fn from_transition_replace(
194
- js_replace_transition: DocumentReplaceTransitionWasm,
195
- ) -> DocumentTransitionWasm {
196
- let transition_replace: DocumentReplaceTransition = js_replace_transition.into();
197
- let document_transition = DocumentTransition::Replace(transition_replace);
198
-
199
- document_transition.into()
200
- }
201
-
202
- #[wasm_bindgen(js_name=fromTransitionDelete)]
203
- pub fn from_transition_delete(
204
- js_delete_transition: DocumentDeleteTransitionWasm,
205
- ) -> DocumentTransitionWasm {
206
- let transition_delete: DocumentDeleteTransition = js_delete_transition.into();
207
- let document_transition = DocumentTransition::Delete(transition_delete);
208
-
209
- document_transition.into()
210
- }
211
- }
212
-
213
- impl DocumentTransitionWasm {
214
- fn get_binary_type_of_path(&self, path: impl AsRef<str>) -> BinaryType {
215
- let maybe_binary_properties = self
216
- .0
217
- .get_data_contract()
218
- .get_binary_properties(self.0.get_document_type());
219
-
220
- if let Ok(binary_properties) = maybe_binary_properties {
221
- if let Some(data) = binary_properties.get(path.as_ref()) {
222
- if data.is_type_of_identifier() {
223
- return BinaryType::Identifier;
224
- }
225
- return BinaryType::Buffer;
226
- }
227
- }
228
- BinaryType::None
229
- }
120
+ // #[wasm_bindgen(js_name=getData)]
121
+ // pub fn get_data(&self) -> Result<JsValue, JsValue> {
122
+ // if let Some(data) = self.0.data() {
123
+ // let (identifier_paths, binary_paths) = self
124
+ // .0
125
+ // .data_contract()
126
+ // .get_identifiers_and_binary_paths(self.0.document_type_name())
127
+ // .with_js_error()?;
128
+ //
129
+ // let js_value = to_object(
130
+ // data.clone().into(),
131
+ // &JsValue::NULL,
132
+ // identifier_paths,
133
+ // binary_paths,
134
+ // )?;
135
+ // Ok(js_value)
136
+ // } else {
137
+ // Ok(JsValue::NULL)
138
+ // }
139
+ // }
140
+ //
141
+ // #[wasm_bindgen(js_name=get)]
142
+ // pub fn get(&self, path: &str, data_contract: &DataContractWasm) -> JsValue {
143
+ // let binary_type = self.get_binary_type_of_path(path, data_contract);
144
+ //
145
+ // if let Some(value) = self.0.get_dynamic_property(path) {
146
+ // match binary_type {
147
+ // BinaryType::Identifier => {
148
+ // if let Ok(bytes) = value.to_identifier_bytes() {
149
+ // let id: IdentifierWrapper = Identifier::from_bytes(&bytes).unwrap().into();
150
+ // return id.into();
151
+ // }
152
+ // }
153
+ // BinaryType::Buffer => {
154
+ // if let Ok(bytes) = value.to_binary_bytes() {
155
+ // return Buffer::from_bytes(&bytes).into();
156
+ // }
157
+ // }
158
+ // BinaryType::None => {
159
+ // let serializer = serde_wasm_bindgen::Serializer::json_compatible();
160
+ // if let Ok(js_value) = value.serialize(&serializer) {
161
+ // return js_value;
162
+ // }
163
+ // }
164
+ // }
165
+ // }
166
+ //
167
+ // JsValue::undefined()
168
+ // }
169
+
170
+ // #[wasm_bindgen(js_name=toObject)]
171
+ // pub fn to_object(
172
+ // &self,
173
+ // options: &JsValue,
174
+ // data_contract: &DataContractWasm,
175
+ // ) -> Result<JsValue, JsValue> {
176
+ // match self.0 {
177
+ // DocumentTransition::Create(ref t) => DocumentCreateTransitionWasm::from(t.to_owned())
178
+ // .to_object(options, data_contract.inner()),
179
+ // DocumentTransition::Replace(ref t) => DocumentReplaceTransitionWasm::from(t.to_owned())
180
+ // .to_object(options, data_contract.inner()),
181
+ // DocumentTransition::Delete(ref t) => DocumentDeleteTransitionWasm::from(t.to_owned())
182
+ // .to_object(options, data_contract.inner()),
183
+ // }
184
+ // }
185
+
186
+ // #[wasm_bindgen(js_name=toJSON)]
187
+ // pub fn to_json(&self) -> Result<JsValue, JsValue> {
188
+ // let json_value = self.0.to_json().with_js_error()?;
189
+ // with_js_error!(json_value.serialize(&serde_wasm_bindgen::Serializer::json_compatible()))
190
+ // }
191
+ //
192
+ // #[wasm_bindgen(js_name=fromTransitionCreate)]
193
+ // pub fn from_transition_create(
194
+ // js_create_transition: DocumentCreateTransitionWasm,
195
+ // ) -> DocumentTransitionWasm {
196
+ // let transition_create: DocumentCreateTransition = js_create_transition.into();
197
+ // let document_transition = DocumentTransition::Create(transition_create);
198
+ //
199
+ // document_transition.into()
200
+ // }
201
+ //
202
+ // #[wasm_bindgen(js_name=fromTransitionReplace)]
203
+ // pub fn from_transition_replace(
204
+ // js_replace_transition: DocumentReplaceTransitionWasm,
205
+ // ) -> DocumentTransitionWasm {
206
+ // let transition_replace: DocumentReplaceTransition = js_replace_transition.into();
207
+ // let document_transition = DocumentTransition::Replace(transition_replace);
208
+ //
209
+ // document_transition.into()
210
+ // }
211
+ //
212
+ // #[wasm_bindgen(js_name=fromTransitionDelete)]
213
+ // pub fn from_transition_delete(
214
+ // js_delete_transition: DocumentDeleteTransitionWasm,
215
+ // ) -> DocumentTransitionWasm {
216
+ // let transition_delete: DocumentDeleteTransition = js_delete_transition.into();
217
+ // let document_transition = DocumentTransition::Delete(transition_delete);
218
+ //
219
+ // document_transition.into()
220
+ // }
230
221
  }
222
+ //
223
+ // impl DocumentTransitionWasm {
224
+ // fn get_binary_type_of_path(
225
+ // &self,
226
+ // path: impl AsRef<str>,
227
+ // data_contract: DataContractWasm,
228
+ // ) -> Result<BinaryType, JsValue> {
229
+ // let document_type = data_contract
230
+ // .inner()
231
+ // .document_type_for_name(self.0.document_type_name().as_str())
232
+ // .with_js_error()?;
233
+ //
234
+ // if document_type.binary_paths().contains(&path) {
235
+ // Ok(BinaryType::Buffer)
236
+ // } else if document_type.identifier_paths().contains(&path) {
237
+ // Ok(BinaryType::Identifier)
238
+ // } else {
239
+ // Ok(BinaryType::None)
240
+ // }
241
+ // }
242
+ // }
231
243
 
232
244
  impl From<DocumentTransition> for DocumentTransitionWasm {
233
245
  fn from(v: DocumentTransition) -> Self {
@@ -257,19 +269,19 @@ impl Inner for DocumentTransitionWasm {
257
269
  }
258
270
  }
259
271
 
260
- pub fn from_document_transition_to_js_value(document_transition: DocumentTransition) -> JsValue {
261
- match document_transition {
262
- DocumentTransition::Create(create_transition) => {
263
- DocumentCreateTransitionWasm::from(create_transition).into()
264
- }
265
- DocumentTransition::Replace(replace_transition) => {
266
- DocumentReplaceTransitionWasm::from(replace_transition).into()
267
- }
268
- DocumentTransition::Delete(delete_transition) => {
269
- DocumentDeleteTransitionWasm::from(delete_transition).into()
270
- }
271
- }
272
- }
272
+ // pub fn from_document_transition_to_js_value(document_transition: DocumentTransition) -> JsValue {
273
+ // match document_transition {
274
+ // DocumentTransition::Create(create_transition) => {
275
+ // DocumentCreateTransitionWasm::from(create_transition).into()
276
+ // }
277
+ // DocumentTransition::Replace(replace_transition) => {
278
+ // DocumentReplaceTransitionWasm::from(replace_transition).into()
279
+ // }
280
+ // DocumentTransition::Delete(delete_transition) => {
281
+ // DocumentDeleteTransitionWasm::from(delete_transition).into()
282
+ // }
283
+ // }
284
+ // }
273
285
 
274
286
  pub(crate) fn to_object<'a>(
275
287
  value: Value,
@@ -292,7 +304,7 @@ pub(crate) fn to_object<'a>(
292
304
  let js_value = value.serialize(&serializer)?;
293
305
 
294
306
  for path in identifiers_paths.into_iter() {
295
- if let Ok(bytes) = value.remove_value_at_path_into::<Vec<u8>>(path) {
307
+ if let Ok(bytes) = value.remove_value_at_path_into::<Vec<u8>>(path.clone()) {
296
308
  let buffer = Buffer::from_bytes_owned(bytes);
297
309
  if !options.skip_identifiers_conversion {
298
310
  lodash_set(&js_value, path, buffer.into());